@solarpunkltd/swarm-chat-js 2.1.2 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +21483 -23747
- package/dist/index.js +21 -23
- package/dist/src/lib/core.d.ts +1 -0
- package/dist/src/lib/core.d.ts.map +1 -1
- package/dist/src/lib/history.d.ts +3 -40
- package/dist/src/lib/history.d.ts.map +1 -1
- package/dist/src/lib/swarmEventEmitterReader.d.ts +1 -1
- package/dist/src/lib/swarmEventEmitterReader.d.ts.map +1 -1
- package/dist/src/lib/types/chat.d.ts +2 -0
- package/dist/src/lib/types/chat.d.ts.map +1 -1
- package/dist/src/lib/types/message.d.ts +1 -2
- package/dist/src/lib/types/message.d.ts.map +1 -1
- package/dist/src/lib/types/user.d.ts +0 -14
- package/dist/src/lib/types/user.d.ts.map +1 -1
- package/dist/src/lib/utils.d.ts +7 -3
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/utils/common.d.ts +0 -1
- package/dist/src/utils/common.d.ts.map +1 -1
- package/dist/src/utils/validation.d.ts +0 -3
- package/dist/src/utils/validation.d.ts.map +1 -1
- package/dist/swarm-chat-umd.js +21 -23
- package/package.json +1 -2
package/dist/swarm-chat-umd.js
CHANGED
|
@@ -1,27 +1,25 @@
|
|
|
1
|
-
(function(ft,Se){typeof exports=="object"&&typeof module<"u"?Se(exports,require("@ethersphere/bee-js")):typeof define=="function"&&define.amd?define(["exports","@ethersphere/bee-js"],Se):(ft=typeof globalThis<"u"?globalThis:ft||self,Se(ft.SwarmChatJs={},ft.BeeJs))})(this,function(ft,Se){"use strict";var aae=Object.defineProperty;var zC=ft=>{throw TypeError(ft)};var cae=(ft,Se,ut)=>Se in ft?aae(ft,Se,{enumerable:!0,configurable:!0,writable:!0,value:ut}):ft[Se]=ut;var Q=(ft,Se,ut)=>cae(ft,typeof Se!="symbol"?Se+"":Se,ut),E_=(ft,Se,ut)=>Se.has(ft)||zC("Cannot "+ut);var T=(ft,Se,ut)=>(E_(ft,Se,"read from private field"),ut?ut.call(ft):Se.get(ft)),se=(ft,Se,ut)=>Se.has(ft)?zC("Cannot add the same private member more than once"):Se instanceof WeakSet?Se.add(ft):Se.set(ft,ut),F=(ft,Se,ut,xn)=>(E_(ft,Se,"write to private field"),xn?xn.call(ft,ut):Se.set(ft,ut),ut),Ee=(ft,Se,ut)=>(E_(ft,Se,"access private method"),ut);var bd=(ft,Se,ut,xn)=>({set _(Lc){F(ft,Se,Lc,ut)},get _(){return T(ft,Se,xn)}});var Qu,sc,$o,Yu,Ju,Oi,js,Xu,el,Hr,qn,Ws,oc,ac,cc,as,Ni,Fo,uc,_d,Nh,Ch,Bh,Zn,tl,lc,rl,Vs,fc,il,mg,Un,Qn,hc,dc,Ho,pc,R_,jC,sl,ol,al,gc,qs,mc,cs,cl,ul,ll,fl,hl,dl,pl,gl,yl,ml,wl,wc,zo,Qs,Go,bl,wg,Ph,Js,_l,Qp,WC,Xr,Bi,Mh,I_,Al,bg,Ko,Vl,us,ls,fs,cn,hs,_g,Ag,Xs,Lh,jo,vl,Uh,Dh,PN,Wo,_c,Vo,ql,Xp,VC,Fh,Hh,xl,Rl,qo,eo,hi,Zo,ds,Sl,vg,Ac,vc,Qo,kl,to,eg,Tl,ro,Ol,Nl,Yo,di,tg,qC,un,Jo,ln,Cl,Yn,Ec,Xo,no,zh,pi,Bl,Pl,ct,Jn,S_,k_,Ad,T_,vd,Eg,En,ps,xc,ea,Rc,Ml,ta,O_,N_,Ic,Sc,Ll,io,gs,Pi,gi,Dn,Gh,C_,ra,Ul,ys,Kh,na,kc,ia,jh,Tc,Dl,sa,Oc,Mi;var ut=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function xn(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}function Lc(r){if(r.__esModule)return r;var e=r.default;if(typeof e=="function"){var t=function n(){return this instanceof n?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};t.prototype=e.prototype}else t={};return Object.defineProperty(t,"__esModule",{value:!0}),Object.keys(r).forEach(function(n){var i=Object.getOwnPropertyDescriptor(r,n);Object.defineProperty(t,n,i.get?i:{enumerable:!0,get:function(){return r[n]}})}),t}function ZC(){this.__data__=[],this.size=0}var QC=ZC;function YC(r,e){return r===e||r!==r&&e!==e}var Zl=YC,JC=Zl;function XC(r,e){for(var t=r.length;t--;)if(JC(r[t][0],e))return t;return-1}var Ed=XC,e6=Ed,t6=Array.prototype,r6=t6.splice;function n6(r){var e=this.__data__,t=e6(e,r);if(t<0)return!1;var n=e.length-1;return t==n?e.pop():r6.call(e,t,1),--this.size,!0}var i6=n6,s6=Ed;function o6(r){var e=this.__data__,t=s6(e,r);return t<0?void 0:e[t][1]}var a6=o6,c6=Ed;function u6(r){return c6(this.__data__,r)>-1}var l6=u6,f6=Ed;function h6(r,e){var t=this.__data__,n=f6(t,r);return n<0?(++this.size,t.push([r,e])):t[n][1]=e,this}var d6=h6,p6=QC,g6=i6,y6=a6,m6=l6,w6=d6;function Uc(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var n=r[e];this.set(n[0],n[1])}}Uc.prototype.clear=p6,Uc.prototype.delete=g6,Uc.prototype.get=y6,Uc.prototype.has=m6,Uc.prototype.set=w6;var xd=Uc,b6=xd;function _6(){this.__data__=new b6,this.size=0}var A6=_6;function v6(r){var e=this.__data__,t=e.delete(r);return this.size=e.size,t}var E6=v6;function x6(r){return this.__data__.get(r)}var R6=x6;function I6(r){return this.__data__.has(r)}var S6=I6,k6=typeof ut=="object"&&ut&&ut.Object===Object&&ut,B_=k6,T6=B_,O6=typeof self=="object"&&self&&self.Object===Object&&self,N6=T6||O6||Function("return this")(),Rn=N6,C6=Rn,B6=C6.Symbol,Dc=B6,P_=Dc,M_=Object.prototype,P6=M_.hasOwnProperty,M6=M_.toString,Ql=P_?P_.toStringTag:void 0;function L6(r){var e=P6.call(r,Ql),t=r[Ql];try{r[Ql]=void 0;var n=!0}catch{}var i=M6.call(r);return n&&(e?r[Ql]=t:delete r[Ql]),i}var U6=L6,D6=Object.prototype,$6=D6.toString;function F6(r){return $6.call(r)}var H6=F6,L_=Dc,z6=U6,G6=H6,K6="[object Null]",j6="[object Undefined]",U_=L_?L_.toStringTag:void 0;function W6(r){return r==null?r===void 0?j6:K6:U_&&U_ in Object(r)?z6(r):G6(r)}var la=W6;function V6(r){var e=typeof r;return r!=null&&(e=="object"||e=="function")}var yi=V6,q6=la,Z6=yi,Q6="[object AsyncFunction]",Y6="[object Function]",J6="[object GeneratorFunction]",X6="[object Proxy]";function e3(r){if(!Z6(r))return!1;var e=q6(r);return e==Y6||e==J6||e==Q6||e==X6}var Rd=e3,t3=Rn,r3=t3["__core-js_shared__"],n3=r3,xg=n3,D_=function(){var r=/[^.]+$/.exec(xg&&xg.keys&&xg.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function i3(r){return!!D_&&D_ in r}var s3=i3,o3=Function.prototype,a3=o3.toString;function c3(r){if(r!=null){try{return a3.call(r)}catch{}try{return r+""}catch{}}return""}var $_=c3,u3=Rd,l3=s3,f3=yi,h3=$_,d3=/[\\^$.*+?()[\]{}|]/g,p3=/^\[object .+?Constructor\]$/,g3=Function.prototype,y3=Object.prototype,m3=g3.toString,w3=y3.hasOwnProperty,b3=RegExp("^"+m3.call(w3).replace(d3,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function _3(r){if(!f3(r)||l3(r))return!1;var e=u3(r)?b3:p3;return e.test(h3(r))}var A3=_3;function v3(r,e){return r==null?void 0:r[e]}var E3=v3,x3=A3,R3=E3;function I3(r,e){var t=R3(r,e);return x3(t)?t:void 0}var fa=I3,S3=fa,k3=Rn,T3=S3(k3,"Map"),Rg=T3,O3=fa,N3=O3(Object,"create"),Id=N3,F_=Id;function C3(){this.__data__=F_?F_(null):{},this.size=0}var B3=C3;function P3(r){var e=this.has(r)&&delete this.__data__[r];return this.size-=e?1:0,e}var M3=P3,L3=Id,U3="__lodash_hash_undefined__",D3=Object.prototype,$3=D3.hasOwnProperty;function F3(r){var e=this.__data__;if(L3){var t=e[r];return t===U3?void 0:t}return $3.call(e,r)?e[r]:void 0}var H3=F3,z3=Id,G3=Object.prototype,K3=G3.hasOwnProperty;function j3(r){var e=this.__data__;return z3?e[r]!==void 0:K3.call(e,r)}var W3=j3,V3=Id,q3="__lodash_hash_undefined__";function Z3(r,e){var t=this.__data__;return this.size+=this.has(r)?0:1,t[r]=V3&&e===void 0?q3:e,this}var Q3=Z3,Y3=B3,J3=M3,X3=H3,eB=W3,tB=Q3;function $c(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var n=r[e];this.set(n[0],n[1])}}$c.prototype.clear=Y3,$c.prototype.delete=J3,$c.prototype.get=X3,$c.prototype.has=eB,$c.prototype.set=tB;var rB=$c,H_=rB,nB=xd,iB=Rg;function sB(){this.size=0,this.__data__={hash:new H_,map:new(iB||nB),string:new H_}}var oB=sB;function aB(r){var e=typeof r;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?r!=="__proto__":r===null}var cB=aB,uB=cB;function lB(r,e){var t=r.__data__;return uB(e)?t[typeof e=="string"?"string":"hash"]:t.map}var Sd=lB,fB=Sd;function hB(r){var e=fB(this,r).delete(r);return this.size-=e?1:0,e}var dB=hB,pB=Sd;function gB(r){return pB(this,r).get(r)}var yB=gB,mB=Sd;function wB(r){return mB(this,r).has(r)}var bB=wB,_B=Sd;function AB(r,e){var t=_B(this,r),n=t.size;return t.set(r,e),this.size+=t.size==n?0:1,this}var vB=AB,EB=oB,xB=dB,RB=yB,IB=bB,SB=vB;function Fc(r){var e=-1,t=r==null?0:r.length;for(this.clear();++e<t;){var n=r[e];this.set(n[0],n[1])}}Fc.prototype.clear=EB,Fc.prototype.delete=xB,Fc.prototype.get=RB,Fc.prototype.has=IB,Fc.prototype.set=SB;var Ig=Fc,kB=xd,TB=Rg,OB=Ig,NB=200;function CB(r,e){var t=this.__data__;if(t instanceof kB){var n=t.__data__;if(!TB||n.length<NB-1)return n.push([r,e]),this.size=++t.size,this;t=this.__data__=new OB(n)}return t.set(r,e),this.size=t.size,this}var BB=CB,PB=xd,MB=A6,LB=E6,UB=R6,DB=S6,$B=BB;function Hc(r){var e=this.__data__=new PB(r);this.size=e.size}Hc.prototype.clear=MB,Hc.prototype.delete=LB,Hc.prototype.get=UB,Hc.prototype.has=DB,Hc.prototype.set=$B;var kd=Hc,FB="__lodash_hash_undefined__";function HB(r){return this.__data__.set(r,FB),this}var zB=HB;function GB(r){return this.__data__.has(r)}var KB=GB,jB=Ig,WB=zB,VB=KB;function Td(r){var e=-1,t=r==null?0:r.length;for(this.__data__=new jB;++e<t;)this.add(r[e])}Td.prototype.add=Td.prototype.push=WB,Td.prototype.has=VB;var qB=Td;function ZB(r,e){for(var t=-1,n=r==null?0:r.length;++t<n;)if(e(r[t],t,r))return!0;return!1}var QB=ZB;function YB(r,e){return r.has(e)}var JB=YB,XB=qB,e8=QB,t8=JB,r8=1,n8=2;function i8(r,e,t,n,i,s){var o=t&r8,a=r.length,u=e.length;if(a!=u&&!(o&&u>a))return!1;var l=s.get(r),h=s.get(e);if(l&&h)return l==e&&h==r;var g=-1,b=!0,w=t&n8?new XB:void 0;for(s.set(r,e),s.set(e,r);++g<a;){var I=r[g],S=e[g];if(n)var x=o?n(S,I,g,e,r,s):n(I,S,g,r,e,s);if(x!==void 0){if(x)continue;b=!1;break}if(w){if(!e8(e,function(C,H){if(!t8(w,H)&&(I===C||i(I,C,t,n,s)))return w.push(H)})){b=!1;break}}else if(!(I===S||i(I,S,t,n,s))){b=!1;break}}return s.delete(r),s.delete(e),b}var z_=i8,s8=Rn,o8=s8.Uint8Array,G_=o8;function a8(r){var e=-1,t=Array(r.size);return r.forEach(function(n,i){t[++e]=[i,n]}),t}var c8=a8;function u8(r){var e=-1,t=Array(r.size);return r.forEach(function(n){t[++e]=n}),t}var l8=u8,K_=Dc,j_=G_,f8=Zl,h8=z_,d8=c8,p8=l8,g8=1,y8=2,m8="[object Boolean]",w8="[object Date]",b8="[object Error]",_8="[object Map]",A8="[object Number]",v8="[object RegExp]",E8="[object Set]",x8="[object String]",R8="[object Symbol]",I8="[object ArrayBuffer]",S8="[object DataView]",W_=K_?K_.prototype:void 0,Sg=W_?W_.valueOf:void 0;function k8(r,e,t,n,i,s,o){switch(t){case S8:if(r.byteLength!=e.byteLength||r.byteOffset!=e.byteOffset)return!1;r=r.buffer,e=e.buffer;case I8:return!(r.byteLength!=e.byteLength||!s(new j_(r),new j_(e)));case m8:case w8:case A8:return f8(+r,+e);case b8:return r.name==e.name&&r.message==e.message;case v8:case x8:return r==e+"";case _8:var a=d8;case E8:var u=n&g8;if(a||(a=p8),r.size!=e.size&&!u)return!1;var l=o.get(r);if(l)return l==e;n|=y8,o.set(r,e);var h=h8(a(r),a(e),n,i,s,o);return o.delete(r),h;case R8:if(Sg)return Sg.call(r)==Sg.call(e)}return!1}var T8=k8;function O8(r,e){for(var t=-1,n=e.length,i=r.length;++t<n;)r[i+t]=e[t];return r}var kg=O8,N8=Array.isArray,In=N8,C8=kg,B8=In;function P8(r,e,t){var n=e(r);return B8(r)?n:C8(n,t(r))}var V_=P8;function M8(r,e){for(var t=-1,n=r==null?0:r.length,i=0,s=[];++t<n;){var o=r[t];e(o,t,r)&&(s[i++]=o)}return s}var L8=M8;function U8(){return[]}var q_=U8,D8=L8,$8=q_,F8=Object.prototype,H8=F8.propertyIsEnumerable,Z_=Object.getOwnPropertySymbols,z8=Z_?function(r){return r==null?[]:(r=Object(r),D8(Z_(r),function(e){return H8.call(r,e)}))}:$8,Tg=z8;function G8(r,e){for(var t=-1,n=Array(r);++t<r;)n[t]=e(t);return n}var K8=G8;function j8(r){return r!=null&&typeof r=="object"}var Xn=j8,W8=la,V8=Xn,q8="[object Arguments]";function Z8(r){return V8(r)&&W8(r)==q8}var Q8=Z8,Q_=Q8,Y8=Xn,Y_=Object.prototype,J8=Y_.hasOwnProperty,X8=Y_.propertyIsEnumerable,eP=Q_(function(){return arguments}())?Q_:function(r){return Y8(r)&&J8.call(r,"callee")&&!X8.call(r,"callee")},Od=eP,Nd={exports:{}};function tP(){return!1}var rP=tP;Nd.exports,function(r,e){var t=Rn,n=rP,i=e&&!e.nodeType&&e,s=i&&!0&&r&&!r.nodeType&&r,o=s&&s.exports===i,a=o?t.Buffer:void 0,u=a?a.isBuffer:void 0,l=u||n;r.exports=l}(Nd,Nd.exports);var Cd=Nd.exports,nP=9007199254740991,iP=/^(?:0|[1-9]\d*)$/;function sP(r,e){var t=typeof r;return e=e??nP,!!e&&(t=="number"||t!="symbol"&&iP.test(r))&&r>-1&&r%1==0&&r<e}var Bd=sP,oP=9007199254740991;function aP(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=oP}var Og=aP,cP=la,uP=Og,lP=Xn,fP="[object Arguments]",hP="[object Array]",dP="[object Boolean]",pP="[object Date]",gP="[object Error]",yP="[object Function]",mP="[object Map]",wP="[object Number]",bP="[object Object]",_P="[object RegExp]",AP="[object Set]",vP="[object String]",EP="[object WeakMap]",xP="[object ArrayBuffer]",RP="[object DataView]",IP="[object Float32Array]",SP="[object Float64Array]",kP="[object Int8Array]",TP="[object Int16Array]",OP="[object Int32Array]",NP="[object Uint8Array]",CP="[object Uint8ClampedArray]",BP="[object Uint16Array]",PP="[object Uint32Array]",jt={};jt[IP]=jt[SP]=jt[kP]=jt[TP]=jt[OP]=jt[NP]=jt[CP]=jt[BP]=jt[PP]=!0,jt[fP]=jt[hP]=jt[xP]=jt[dP]=jt[RP]=jt[pP]=jt[gP]=jt[yP]=jt[mP]=jt[wP]=jt[bP]=jt[_P]=jt[AP]=jt[vP]=jt[EP]=!1;function MP(r){return lP(r)&&uP(r.length)&&!!jt[cP(r)]}var LP=MP;function UP(r){return function(e){return r(e)}}var Ng=UP,Pd={exports:{}};Pd.exports,function(r,e){var t=B_,n=e&&!e.nodeType&&e,i=n&&!0&&r&&!r.nodeType&&r,s=i&&i.exports===n,o=s&&t.process,a=function(){try{var u=i&&i.require&&i.require("util").types;return u||o&&o.binding&&o.binding("util")}catch{}}();r.exports=a}(Pd,Pd.exports);var Cg=Pd.exports,DP=LP,$P=Ng,J_=Cg,X_=J_&&J_.isTypedArray,FP=X_?$P(X_):DP,Bg=FP,HP=K8,zP=Od,GP=In,KP=Cd,jP=Bd,WP=Bg,VP=Object.prototype,qP=VP.hasOwnProperty;function ZP(r,e){var t=GP(r),n=!t&&zP(r),i=!t&&!n&&KP(r),s=!t&&!n&&!i&&WP(r),o=t||n||i||s,a=o?HP(r.length,String):[],u=a.length;for(var l in r)(e||qP.call(r,l))&&!(o&&(l=="length"||i&&(l=="offset"||l=="parent")||s&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||jP(l,u)))&&a.push(l);return a}var eA=ZP,QP=Object.prototype;function YP(r){var e=r&&r.constructor,t=typeof e=="function"&&e.prototype||QP;return r===t}var Pg=YP;function JP(r,e){return function(t){return r(e(t))}}var tA=JP,XP=tA,e5=XP(Object.keys,Object),t5=e5,r5=Pg,n5=t5,i5=Object.prototype,s5=i5.hasOwnProperty;function o5(r){if(!r5(r))return n5(r);var e=[];for(var t in Object(r))s5.call(r,t)&&t!="constructor"&&e.push(t);return e}var rA=o5,a5=Rd,c5=Og;function u5(r){return r!=null&&c5(r.length)&&!a5(r)}var Md=u5,l5=eA,f5=rA,h5=Md;function d5(r){return h5(r)?l5(r):f5(r)}var Ld=d5,p5=V_,g5=Tg,y5=Ld;function m5(r){return p5(r,y5,g5)}var nA=m5,iA=nA,w5=1,b5=Object.prototype,_5=b5.hasOwnProperty;function A5(r,e,t,n,i,s){var o=t&w5,a=iA(r),u=a.length,l=iA(e),h=l.length;if(u!=h&&!o)return!1;for(var g=u;g--;){var b=a[g];if(!(o?b in e:_5.call(e,b)))return!1}var w=s.get(r),I=s.get(e);if(w&&I)return w==e&&I==r;var S=!0;s.set(r,e),s.set(e,r);for(var x=o;++g<u;){b=a[g];var C=r[b],H=e[b];if(n)var D=o?n(H,C,b,e,r,s):n(C,H,b,r,e,s);if(!(D===void 0?C===H||i(C,H,t,n,s):D)){S=!1;break}x||(x=b=="constructor")}if(S&&!x){var z=r.constructor,V=e.constructor;z!=V&&"constructor"in r&&"constructor"in e&&!(typeof z=="function"&&z instanceof z&&typeof V=="function"&&V instanceof V)&&(S=!1)}return s.delete(r),s.delete(e),S}var v5=A5,E5=fa,x5=Rn,R5=E5(x5,"DataView"),I5=R5,S5=fa,k5=Rn,T5=S5(k5,"Promise"),O5=T5,N5=fa,C5=Rn,B5=N5(C5,"Set"),P5=B5,M5=fa,L5=Rn,U5=M5(L5,"WeakMap"),sA=U5,Mg=I5,Lg=Rg,Ug=O5,Dg=P5,$g=sA,oA=la,zc=$_,aA="[object Map]",D5="[object Object]",cA="[object Promise]",uA="[object Set]",lA="[object WeakMap]",fA="[object DataView]",$5=zc(Mg),F5=zc(Lg),H5=zc(Ug),z5=zc(Dg),G5=zc($g),ha=oA;(Mg&&ha(new Mg(new ArrayBuffer(1)))!=fA||Lg&&ha(new Lg)!=aA||Ug&&ha(Ug.resolve())!=cA||Dg&&ha(new Dg)!=uA||$g&&ha(new $g)!=lA)&&(ha=function(r){var e=oA(r),t=e==D5?r.constructor:void 0,n=t?zc(t):"";if(n)switch(n){case $5:return fA;case F5:return aA;case H5:return cA;case z5:return uA;case G5:return lA}return e});var Yl=ha,Fg=kd,K5=z_,j5=T8,W5=v5,hA=Yl,dA=In,pA=Cd,V5=Bg,q5=1,gA="[object Arguments]",yA="[object Array]",Ud="[object Object]",Z5=Object.prototype,mA=Z5.hasOwnProperty;function Q5(r,e,t,n,i,s){var o=dA(r),a=dA(e),u=o?yA:hA(r),l=a?yA:hA(e);u=u==gA?Ud:u,l=l==gA?Ud:l;var h=u==Ud,g=l==Ud,b=u==l;if(b&&pA(r)){if(!pA(e))return!1;o=!0,h=!1}if(b&&!h)return s||(s=new Fg),o||V5(r)?K5(r,e,t,n,i,s):j5(r,e,u,t,n,i,s);if(!(t&q5)){var w=h&&mA.call(r,"__wrapped__"),I=g&&mA.call(e,"__wrapped__");if(w||I){var S=w?r.value():r,x=I?e.value():e;return s||(s=new Fg),i(S,x,t,n,s)}}return b?(s||(s=new Fg),W5(r,e,t,n,i,s)):!1}var Y5=Q5,J5=Y5,wA=Xn;function bA(r,e,t,n,i){return r===e?!0:r==null||e==null||!wA(r)&&!wA(e)?r!==r&&e!==e:J5(r,e,t,n,bA,i)}var Hg=bA,X5=Hg;function e4(r,e){return X5(r,e)}var t4=e4;const r4=xn(t4),Kr=[];for(let r=0;r<256;++r)Kr.push((r+256).toString(16).slice(1));function n4(r,e=0){return(Kr[r[e+0]]+Kr[r[e+1]]+Kr[r[e+2]]+Kr[r[e+3]]+"-"+Kr[r[e+4]]+Kr[r[e+5]]+"-"+Kr[r[e+6]]+Kr[r[e+7]]+"-"+Kr[r[e+8]]+Kr[r[e+9]]+"-"+Kr[r[e+10]]+Kr[r[e+11]]+Kr[r[e+12]]+Kr[r[e+13]]+Kr[r[e+14]]+Kr[r[e+15]]).toLowerCase()}let zg;const i4=new Uint8Array(16);function s4(){if(!zg){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");zg=crypto.getRandomValues.bind(crypto)}return zg(i4)}const _A={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function o4(r,e,t){if(_A.randomUUID&&!e&&!r)return _A.randomUUID();r=r||{};const n=r.random||(r.rng||s4)();return n[6]=n[6]&15|64,n[8]=n[8]&63|128,n4(n)}function Gg(r){return new Promise(e=>{setTimeout(e,r)})}function AA(r,e,t,n){const i=new Map;return r.forEach(s=>{i.set(t(s),s)}),e.forEach(s=>{i.set(t(s),s)}),Array.from(i.values()).sort(n)}function da(r){return(r.startsWith("0x")?r.slice(2):r).toLowerCase()}class Ui{constructor(){}static getInstance(){return Ui.instance||(Ui.instance=new Ui),Ui.instance}formatMessage(e,...t){return`[${new Date().toISOString()}] [${e.toUpperCase()}] - ${t.map(i=>typeof i=="object"?JSON.stringify(i):i).join(" ")}`}log(...e){console.log(this.formatMessage("log",...e))}info(...e){console.info(this.formatMessage("info",...e))}warn(...e){console.warn(this.formatMessage("warn",...e))}error(...e){console.error(this.formatMessage("error",...e))}debug(...e){console.debug(this.formatMessage("debug",...e))}}class Dd{constructor(){this.logger=Ui.getInstance()}handleError(e,t){const n=e instanceof Error?e.message:"Unknown error occurred",i=e instanceof Error?e.stack:null;this.logger.error(`Error in ${t||"unknown context"}: ${n}`,{stack:i})}}let a4=class{constructor(){this.events={},this.on=this.on.bind(this),this.off=this.off.bind(this),this.cleanAll=this.cleanAll.bind(this),this.emit=this.emit.bind(this)}on(e,t){this.events[e]||(this.events[e]=[]),this.events[e].push(t)}off(e,t){if(!this.events[e])return;const n=this.events[e].indexOf(t);n>-1&&this.events[e].splice(n,1)}cleanAll(){this.events={}}emit(e,t){this.events[e]&&this.events[e].forEach(n=>n(t))}};class Kg{constructor(e={}){this.tasks=[],this.isProcessing=!1,this.isWaiting=!1,this.errorHandler=new Dd,this.clearWaitTime=e.clearWaitTime||500}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.tasks.length>0;){const e=this.tasks.shift();if(e)try{const t=e();t instanceof Promise&&await t}catch(t){this.errorHandler.handleError(t,"Queue.processQueue")}}this.isProcessing=!1}}enqueue(e){this.tasks.push(e),this.processQueue()}async waitForProcessing(){if(this.isWaiting)return!0;for(this.isWaiting=!0;this.isProcessing;)await Gg(this.clearWaitTime);return this.isWaiting=!1,!1}}var vA={};(function(r){var e;Object.defineProperty(r,"__esModule",{value:!0}),r.Vector=r.Cache=r.Assertions=r.Strings=r.Types=r.Objects=r.Dates=r.Promises=r.Numbers=r.System=r.Arrays=r.Random=r.Elliptic=r.Binary=r.AsyncQueue=r.PubSubChannel=r.FixedPointNumber=r.MerkleTree=r.Chunk=r.Uint8ArrayWriter=r.Uint8ArrayReader=r.AsyncLazy=r.Lazy=r.Optional=void 0;async function t(c){return new Promise((f,d)=>c.then(d,f))}async function n(c){return t(Promise.all(c.map(t)))}async function i(c,f=1){const d=dC(c,f),y=[],R=d.map(async L=>{for(const J of L)y.push(await J())});return await Promise.all(R),y}async function s(c){return new Promise(f=>setTimeout(()=>{f(!0)},c))}function o(c,f=Math.random){for(let d=c.length-1;d>0;d--){const y=Math.floor(f()*(d+1)),R=c[d];c[d]=c[y],c[y]=R}return c}function a(c){if(c.length===1)return c[0];throw Error(`Expected exactly one element, actual: ${c.length}`)}function u(c){return c.length===1?c[0]:null}function l(c){return c.length>0?c[0]:null}function h(c){if(!c.length)throw Error("Received empty array");return c[0]}function g(c,f){const d=[];for(let y=0;y<c;y++)d.push(f(y));return d}function b(c){const f=[];for(let d=0;d<c[0].length;d++){f.push([]);for(let y=0;y<c.length;y++)f[d].push(c[y][d])}return f}function w(c,f,d){const y=[];for(let R=0;R<c;R++){y.push([]);for(let L=0;L<f;L++)y[R].push(d)}return y}function I(c,f,d,y){if(d<0||y<0||y+f[0].length>c[0].length||d+f.length>c.length)return!1;for(let R=0;R<f.length;R++)for(let L=0;L<f[R].length;L++)if(f[R][L]!==void 0&&c[d+R][y+L]!==f[R][L])return!1;return!0}function S(c,f,d=Math.random){return o(MN(0,c.length-1),d).slice(0,f)}function x(c,f){return c.map(d=>d[f])}function C(c){let f=c,d=3405648695,y=3735928559;return function(){return f+=d,d^=f<<7,f*=y,y^=f<<13,f^=d^y,(f>>>0)/4294967296}}function H(c,f,d=Math.random){return Math.floor(d()*(f-c+1))+c}function D(c,f,d=Math.random){return d()*(f-c)+c}function z(){return Math.random()*2-1}function V(c,f,d){return f>=c.x&&f<c.x+c.width&&d>=c.y&&d<c.y+c.height}function Z(c,f,d,y=Math.random){let R,L;do R=H(0,c-1,y),L=H(0,f-1,y);while(d&&V(d,R,L));return[R,L]}function K(c,f=Math.random){const d=Math.floor(c),y=c-d;return W(y,f)?d+1:d}function W(c,f=Math.random){return f()<c}function oe(c,f=Math.random){return c[Math.floor(c.length*f())]}function ce(c,f,d=Math.random){if(f>c.length)throw new Error(`Count (${f}) is greater than array length (${c.length})`);return S(c,f,d).map(y=>c[y])}function ie(c,f,d,y=Math.random){if(f>c.length)throw new Error(`Count (${f}) is greater than array length (${c.length})`);const R=[];for(;R.length<f;){const L=oe(c,y);R.some(J=>d(J,L))||R.push(L)}return R}function ue(c,f,d,y,R,L=Math.random){const J=c.filter(fe=>fe!==f&&fe!==d),de=[];for(f!==null&&de.push(f);J.length&&de.length<y;){const fe=r.Random.intBetween(0,J.length-1,L);R(J[fe],de)&&de.push(J[fe]),J.splice(fe,1)}return o(de,L),{values:de,indexOfGuaranteed:f!==null?de.indexOf(f):-1}}function B(c){if(!c.length)throw Error("Received empty array");return c[c.length-1]}function p(c,f,d){return d(f.reduce((y,R)=>R(y),c))}function m(c,f){return d=>p(d,c,f)}function E(c,f,d){if(d===void 0&&(d=Math.random()),c.length!==f.length)throw new Error("Array length mismatch");let y=f.reduce((L,J)=>L+J,0);const R=d*y;for(let L=0;L<c.length-1;L++)if(y-=f[L],R>=y)return c[L];return B(c)}function k(c,f,d=Math.random){const y=f.map(L=>d()*L),R=[];for(let L=0;L<c.length;L++)R.push([c[L],y[L]]);return R.sort((L,J)=>J[1]-L[1]).map(L=>L[0])}function O(c,f){if(c==null)return null;const d=f.split(".");let y=c;for(const R of d){if(y[R]===null||y[R]===void 0)return null;y=y[R]}return y}function M(c,f,d){const y=f.split(/\.|\[/);let R=c;for(let L=0;L<y.length;L++){const J=y[L],de=L<y.length-1&&y[L+1].includes("]"),fe=J.includes("]")?J.replace(/\[|\]/g,""):J;if(L===y.length-1)return R[fe]=d,d;sr(R[fe])||(de?R[fe]=[]:R[fe]={}),R=R[fe]}return d}function G(c,f,d=1){const y=O(c,f)||0;return M(c,f,y+d),y}function P(c,f,d){return O(c,f)||M(c,f,d)}function A(c,f){const d=cb(f,"."),y=UN(f,".");if(!d||!y)return;const R=O(c,d);delete R[y]}function U(c,f,d){const y=O(c,f);if(!y)throw new Error("Key '"+f+"' does not exist.");return M(c,f,d),y}function le(c,f,d){for(const y of f){const R=O(c,y);if(R)return R}if(d){const y=Object.values(c);if(y.length)return y[0]}return null}async function te(c,f,d){for(;;){try{await c()}catch(y){d&&d("Error in forever",y)}await s(f)}}function re(c,f){c();const d=setInterval(()=>{c()},f);return()=>clearInterval(d)}function he(c){return c/1024/1024}function ye(c){return c>=1024*1024*1024*1024?(c/1024/1024/1024/1024).toFixed(3)+" TB":c>=1024*1024*1024?(c/1024/1024/1024).toFixed(3)+" GB":c>=1024*1024?(c/1024/1024).toFixed(3)+" MB":c>=1024?(c/1024).toFixed(3)+" KB":c+" B"}function be(c){const f=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(c.toLowerCase());if(!f)throw new Error("Invalid hex color: "+c);return[parseInt(f[1],16),parseInt(f[2],16),parseInt(f[3],16)]}function We(c){return"#"+c.map(f=>f.toString(16).padStart(2,"0")).join("")}function Fe(c,f,d,y){const R=c*Math.PI/180,L=d*Math.PI/180,J=(d-c)*Math.PI/180,de=(y-f)*Math.PI/180,fe=Math.sin(J/2)*Math.sin(J/2)+Math.cos(R)*Math.cos(L)*Math.sin(de/2)*Math.sin(de/2);return 6371e3*(2*Math.atan2(Math.sqrt(fe),Math.sqrt(1-fe)))}function Be(c,f){return Math.round(c/f)*f}function et(c){return c>1e3?(c/1e3).toFixed(0)+" km":c>=500?Be(c,100)+" m":c>=100?Be(c,50)+" m":Be(c,10)+" m"}function Qe(c){return c*(c+1)/2}function ot(c){const f=c.match(/-?\d+(\.\d+)?/);if(!f)throw Error("No float found in "+c);return parseFloat(f[0])}function sr(c,f=!0){return!c||f&&!It(c._readableState)||f&&c.constructor&&(c.constructor.isBuffer||c.constructor.name=="Uint8Array"||c.constructor.name==="ArrayBuffer"||c.constructor.name==="ReadableStream")?!1:typeof c=="object"}function dt(c){return sr(c)&&!Array.isArray(c)}function Ut(c){return Array.isArray(c)&&c.length===0}function oa(c){return dt(c)&&Object.keys(c).length===0}function It(c){return c===void 0}function Ct(c){return Object.prototype.toString.call(c)==="[object Function]"||Object.prototype.toString.call(c)==="[object AsyncFunction]"}function kr(c){return Object.prototype.toString.call(c)==="[object String]"}function pt(c){return typeof c=="number"&&isFinite(c)}function St(c){return c===!0||c===!1}function or(c){return Object.prototype.toString.call(c)==="[object Date]"}function xt(c){return!kr(c)||c.trim().length===0}function Bt(c){return pt(c)&&Number.isInteger(c)&&c>=1}function fn(c){return kr(c)&&c.match(/^-?\d+$/)!==null}function Dt(c){return kr(c)&&c.match(/^(0x)?[0-9a-f]+$/i)!==null}const N="!@#$%^&*()_+-=[]{}|;:<>?,./",_="!@#$%^&*()_+-=[]{}|;:<>?,./".split(""),v="abcdefghijklmnopqrstuvwxyz",$="ABCDEFGHIJKLMNOPQRSTUVWXYZ",j="1234567890",Y=v+$+j,ae=Y+N,Ye=["—","\\","東","京","都","𝖆","𝖇","𝖈","👾","🙇","💁","🙅","ᚠ","ᛇ","ᚻ","ᛦ"],qe="0123456789abcdef";function Ve(c,f=Math.random){let d="";for(let y=0;y<c;y++)d+=v[Math.floor(f()*v.length)];return d}function $t(c,f=Math.random){let d="";for(let y=0;y<c;y++)d+=Y[Math.floor(f()*Y.length)];return d}function Ge(c,f=Math.random){let d="";for(let y=0;y<c;y++)d+=ae[Math.floor(f()*ae.length)];return d}function fr(c,f=Math.random){let d="";for(let y=0;y<c;y++)d+=Ye[Math.floor(f()*Ye.length)];return d}function rg(c,f){const d=new RegExp(`[0-9a-f]{${f}}`,"i"),y=c.match(d);return y?y[0]:null}function hr(c,f,d=_){const y=DN(c,d);for(const R of y)if(f(R))return R;return null}function dr(c,f=Math.random){let d="";for(let y=0;y<c;y++)d+=qe[Math.floor(f()*qe.length)];return d}function ng(c,f){if(!fn(c))throw new TypeError(`Expected integer string${f!=null&&f.name?` for ${f.name}`:""}, got: `+c);const d=BigInt(c);if(f&&(f.min&&d<f.min||f.max&&d>f.max))throw RangeError(`Expected integer string${f!=null&&f.name?` for ${f.name}`:""} in range: ${f.min??"-inf"}..${f.max??"inf"}; got: `+d);return c}function ar(c,f){if(xt(c))throw new TypeError(`Expected string${f!=null&&f.name?` for ${f.name}`:""}, got: `+c);if(f&&(f.min!==void 0&&c.length<f.min||f.max!==void 0&&c.length>f.max))throw RangeError(`Expected string${f!=null&&f.name?` for ${f.name}`:""} length in range: ${f.min??"-inf"}..${f.max??"inf"}; got: ${c.length}`);return c}function pr(c,f){if(!Dt(c))throw new TypeError(`Expected hex string${f!=null&&f.name?` for ${f.name}`:""}, got: `+c);const d=c.replace(/^0x/,"");if(f&&f.byteLength&&d.length!==f.byteLength*2)throw RangeError(`Expected hex string${f!=null&&f.name?` for ${f.name}`:""} of byte length ${f.byteLength}; got: `+d);return d}function ig(c,f){if(!ar(c,f).split("").every(d=>d==="_"||od(d)))throw new TypeError(`Expected safe string${f!=null&&f.name?` for ${f.name}`:""}, got: `+c);return c}function cr(c,f){if(f.min!==void 0&&c<f.min||f.max!==void 0&&c>f.max)throw RangeError(`Expected value${f!=null&&f.name?` for ${f.name}`:""} in range: ${f.min??"-inf"}..${f.max??"inf"}; got: ${c}`)}function gr(c,f){if(!Ct(c))throw new TypeError(`Expected function${f!=null&&f.name?` for ${f.name}`:""}, got: `+c);return c}function Nc(c,f){if(pt(c))return f&&cr(c,f),c;if(!kr(c)||!c.match(/^-?\d+(\.\d+)?$/))throw new TypeError(`Expected number${f!=null&&f.name?` for ${f.name}`:""}, got: `+c);const d=parseFloat(c);return f&&cr(d,f),d}function Xt(c,f){return Nc(c,f)|0}function yr(c,f){if(c==="true")return!0;if(c==="false")return!1;if(!St(c))throw new TypeError(`Expected boolean${f!=null&&f.name?` for ${f.name}`:""}, got: `+c);return c}function sg(c,f){if(!or(c))throw new TypeError(`Expected date${f!=null&&f.name?` for ${f.name}`:""}, got: `+c);return c}function mr(c){return xt(c)?null:c}function wr(c,f){if(!kr(c))throw new TypeError(`Expected string${f!=null&&f.name?` for ${f.name}`:""}, got: `+c);return c}function og(c,f){if(Bt(c))return c;const d=parseInt(c,10);if(!Bt(d))throw new TypeError(`Expected id${f!=null&&f.name?` for ${f.name}`:""}, got: `+c);return d}function br(c,f){if(!kr(c))throw new TypeError(`Expected time${f!=null&&f.name?` for ${f.name}`:""}, got: `+c);const d=c.split(":");if(d.length!==2)throw new TypeError(`Expected time${f!=null&&f.name?` for ${f.name}`:""}, got: `+c);const y=parseInt(d[0],10),R=parseInt(d[1],10);if(!pt(y)||!pt(R)||y<0||y>23||R<0||R>59)throw new TypeError(`Expected time, got${f!=null&&f.name?` for ${f.name}`:""}: `+c);return`${String(y).padStart(2,"0")}:${String(R).padStart(2,"0")}`}function _r(c,f){if(!Array.isArray(c))throw new TypeError(`Expected array${f!=null&&f.name?` for ${f.name}`:""}, got: `+c);return c}function Cc(c,f){if(!dt(c))throw new TypeError(`Expected object${f!=null&&f.name?` for ${f.name}`:""}, got: `+c);return c}function Ar(c,f){return c===null?null:Cc(c,f)}function vr(c,f){const d=Cc(c,f);for(const y of Object.keys(d))if(!kr(d[y]))throw new TypeError(`Expected string map${f!=null&&f.name?` for ${f.name}`:""}, got: `+c);return d}function Wh(c,f){const d=Cc(c),y=Object.keys(d),R=Object.values(d);if(!y.every(kr)||!R.every(pt))throw new TypeError(`Expected numeric dictionary${f!=null&&f.name?` for ${f.name}`:""}, got: `+c);return d}function $l(c){return kr(c)&&c.match(/^https?:\/\/.+/)!==null}function Vh(c,f){if(!$l(c))throw new TypeError(`Expected url${f!=null&&f.name?` for ${f.name}`:""}, got: `+c);return c}function qh(c,f){return f==null?!0:c(f)}function Zh(c,f){return f==null?null:c(f)}function Qh(c,f){return f==null?void 0:c(f)}function Fl(c,f){for(const[d,y]of Object.entries(f))if(!y(c[d]))throw TypeError(`${d} in value does not exist or match shape`);for(const d of Object.keys(c))if(!f[d])throw TypeError(`${d} exists in value but not in shape`);return!0}function Yh(c,f){return c.every(d=>Fl(d,f))}function so(c,f="json",d=0){if(sr(c,!1)){if(d>1)return"[object Object]";if(f==="json"){if(Array.isArray(c)){const R=c.map(L=>so(L,"json",d+1));return d===0?JSON.stringify(R):R}const y={};c.message&&(y.message=so(c.message,"json",d+1));for(const[R,L]of Object.entries(c))y[R]=so(L,"json",d+1);return d===0?JSON.stringify(y):y}else if(f==="key-value"){const y=Object.keys(c);return c.message&&!y.includes("message")&&y.unshift("message"),y.map(R=>`${R}=${JSON.stringify(so(c[R],"json",d+1))}`).join(" ")}}return It(c)&&(c="undefined"),d===0?JSON.stringify(c):c}function Jh(c,f){if(kr(c))return c;const d=Object.keys(c);c.message&&!d.includes("message")&&d.push("message");const y=d.map(R=>`${R}: ${c[R]}`).join("; ");return f&&c.stack?y+`
|
|
2
|
-
`+
|
|
3
|
-
`).map(
|
|
4
|
-
`)}function
|
|
5
|
-
\r.,?!:;"'\`(){}[]~@#$%^&*-+=|<>/\\`.split("");function
|
|
6
|
-
`],
|
|
7
|
-
`],
|
|
8
|
-
`],
|
|
9
|
-
`],y);if(R===-1){y>d&&f.push({string:c.slice(d,y),symbol:null}),f.push({string:c.slice(y),symbol:"http"});break}y>d&&f.push({string:c.slice(d,y),symbol:null}),f.push({string:c.slice(y,R),symbol:"http"}),d=R}return f}const qN="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ZN="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";function Jne(c){return QN(c,qN)}function Xne(c){return YN(c,qN)}function eie(c){return QN(c,ZN)}function tie(c){return YN(c,ZN)}function QN(c,f){const d="=",y=f.length;let R=0,L=0;const J=[];for(let de=0;de<c.length;de++){const fe=c[de];if(fe===d)break;const De=f.indexOf(fe);if(De===-1)throw new Error(`Invalid character: ${fe}`);L=L<<Math.log2(y)|De,R+=Math.log2(y),R>=8&&(R-=8,J.push(L>>R&255))}return new Uint8Array(J)}function YN(c,f){const d=f.length;let y=0,R=0,L="";for(let J=0;J<c.length;J++)for(R=R<<8|c[J],y+=8;y>=Math.log2(d);)y-=Math.log2(d),L+=f[R>>y&d-1];return y>0&&(L+=f[R<<Math.log2(d)-y&d-1]),L.length%4!==0&&(L+="=".repeat(4-L.length%4)),L}function rie(c){c.startsWith("0x")&&(c=c.slice(2));const f=c.length/2,d=new Uint8Array(f);for(let y=0;y<f;y++){const R=parseInt(c.slice(y*2,y*2+2),16);d[y]=R}return d}function nie(c){return Array.from(c).map(f=>f.toString(16).padStart(2,"0")).join("")}function iie(c,f){const d=c.split("/").filter(L=>L),y=f.split("/").filter(L=>L);if(d.length!==y.length)return null;const R={};for(let L=0;L<d.length;L++){const J=d[L];if(J.startsWith(":"))R[J.slice(1)]=y[L];else if(J!==y[L])return null}return R}function hb(c,f,d){const y=[];for(const R of d)R!==f&&y.push(c.replace(f,R));return y}function sie(c,f,d,y=Math.random){const R=r.Arrays.shuffle(f.map(J=>({variants:r.Arrays.shuffle(J.variants.map(de=>de),y),avoid:J.avoid})),y),L=[];for(const J of R){const de=J.variants.filter(De=>De!==J.avoid),fe=de.find(De=>c.includes(De));if(fe&&(aa(L,hb(c,fe,de)),L.length>=d))break}if(L.length<d)for(const J of R){const de=J.variants.find(fe=>c.includes(fe));if(de&&(aa(L,hb(c,de,J.variants)),L.length>=d))break}return L.slice(0,d)}function oie(c,f,d,y=!1){const R=new RegExp(y?`(?<=\\s|^)${f}(?=\\s|$)`:`\\b${f}\\b`,"g");return c.replace(R,d)}function aie(c,f){const d=/\b[A-Z][a-zA-Z0-9]*\b/g;return c.replace(d,y=>y.toUpperCase()===y?y:f(y))}function cie(c){return c.replace(/<[^>]*>/g,"")}function JN(c){const f=c.lastIndexOf(" ");if(f===-1)return{line:c,rest:""};const d=c.slice(0,f),y=c.slice(f+1);return{line:d,rest:y}}function uie(c,f={}){return[...c].reduce((d,y)=>d+(f[y]||1),0)}function lie(c,f,d={}){const y=[];let R="",L=0;for(let J=0;J<c.length;J++){const de=c[J],fe=d[de]||1;if(R+=de,L+=fe,L>f){const{line:De,rest:Lt}=JN(R);y.push(De),R=Lt,L=Lt.split("").map(Gr=>d[Gr]||1).reduce((Gr,Wl)=>Gr+Wl,0)}}return R&&y.push(R),y}function fie(c,f){const d=[];for(let y=0;y<=c.length;y++)d[y]=[y];for(let y=0;y<=f.length;y++)d[0][y]=y;for(let y=1;y<=c.length;y++)for(let R=1;R<=f.length;R++){const L=c[y-1]===f[R-1]?0:1;d[y][R]=Math.min(d[y-1][R]+1,d[y][R-1]+1,d[y-1][R-1]+L)}return d[c.length][f.length]}function db(c,f){return new RegExp(`\\b${f}\\b`).test(c)}function hie(c,f,d){return d==="any"?f.some(y=>db(c,y)):f.every(y=>db(c,y))}function die(c){const f={},d=c.match(/([a-z\-]+)="([^"]+)"/g);if(d)for(const y of d){const[R,L]=ub(y,"=");f[R]=L.slice(1,L.length-1)}return f}function ug(c,f,d=[]){let y="";for(;f<c.length&&(od(c[f])||d.includes(c[f]));)y+=c[f++];return y}function pie(c,f,d="$",y=":"){for(const R in f)c=XN(c,R,f[R],d,y);return c=eC(c),c}function XN(c,f,d,y="$",R=":"){if(d==="")return c;let L=c.indexOf(`${y}${f}`);for(;L!==-1;){if(c[L+f.length+1]===R)if(c[L+f.length+2]===R)c=c.replace(`${y}${f}${R}${R}`,d);else{const J=ug(c,L+f.length+2,["_"]);c=c.replace(`${y}${f}${R}${J}`,d)}else c=c.replace(`${y}${f}`,d);L=c.indexOf(`${y}${f}`,L+d.length)}return c}function eC(c,f="$",d=":"){let y=c.indexOf(f);for(;y!==-1;){const R=ug(c,y+1);if(c[y+R.length+1]===d)if(c[y+R.length+2]===d)c=c.replace(`${f}${R}${d}${d}`,"");else{const L=ug(c,y+R.length+2);c=c.replace(`${f}${R}${d}${L}`,L)}y=c.indexOf(f,y+1)}return c}function gie(c,f){let d=c.indexOf("](");for(;d!==-1;){const y=jN(c,"[",d),R=c.indexOf(")",d);if(y!==-1&&R!==-1){const[L,J]=c.slice(y+1,R).split("]("),de=f(L,J);c=c.slice(0,y)+de+c.slice(R+1)}d=c.indexOf("](",d+1)}return c}function tC(c,f=!0){const d=Object.entries(c).filter(([y,R])=>R!=null).map(([y,R])=>`${y}=${encodeURIComponent(R)}`).join("&");return d?(f?"?":"")+d:""}function yie(c){const f={},d=c.split("&");for(const y of d){const[R,L]=y.split("=");R&&L&&(f[R]=decodeURIComponent(L))}return f}function mie(c,f){return Object.prototype.hasOwnProperty.call(c,f)}function wie(c,f){let d=null,y=-1/0;for(const[R,L]of Object.entries(c)){const J=f(L);J>y&&(y=J,d=R)}return d?[d,c[d]]:null}function bie(c,f,d,y){const R=c.find(J=>J[f]===d),L=c.find(J=>J[f]===d+y);R&&L?(R[f]=d+y,L[f]=d):R&&(R[f]=d+y),c.sort((J,de)=>Nc(J[f])-Nc(de[f])),c.forEach((J,de)=>J[f]=de+1)}function _ie(c){const f=Object.keys(c);if(f.length===1)return c[f[0]];throw new Error("Expected object to have a single key")}function Aie(c,f=":"){return Object.fromEntries(c.map(d=>ub(d,f)).map(d=>d[0]&&d[1]?[sd(d[0]),sd(d[1])]:null).filter(d=>d))}function vie(c,f,d){return sC(c,f)+tC(d||{})}function Eie(c,f=",",d='"'){const y=[];let R="",L=!1;const J=c.split("");for(const de of J)de===f&&!L?(y.push(R),R=""):de===d&&(!R&&!L||L)?L=!L:R+=de;return y.push(R),y}function xie(c){return`[${Math.floor(c.progress*100)}%] ${lg(c.deltaMs)} out of ${lg(c.totalTimeMs)} (${lg(c.remainingTimeMs)} left) [${Math.round(c.baseTimeMs)} ms each]`}async function Rie(c,f,d){for(let y=0;y<d;y++){try{if(await c())return!0}catch{}y<d-1&&await s(f)}return!1}function Iie(c,f){const d=[];for(let y=c.length-1;y>=0;y--)f(c[y])&&d.push(c.splice(y,1)[0]);return d}function Sie(c){return JSON.parse(JSON.stringify(c))}function kie(c){return Math.ceil((c||Date.now())/1e3)}function Tie(c){return(c||new Date).toISOString().slice(0,10)}function Oie(c){return(c||new Date).toISOString().slice(0,19).replace(/T|:/g,"-")}function Nie(c){const f=new Date(c);return new Date(f.getTime()-f.getTimezoneOffset()*6e4)}function Cie(c){return new Date(c)}function ms(c){return String(Math.floor(c)).padStart(2,"0")}function Bie(c){let[f,d]=c.split(":");pt(parseInt(f,10))||(f="0"),pt(parseInt(d,10))||(d="0");let y=wb(Xt(f),0,23),R=wb(Xt(d),0,59);return`${ms(y)}:${ms(R)}`}function lg(c){const f=Math.floor(c/36e5);c=c%36e5;const d=Math.floor(c/6e4);c=c%6e4;const y=Math.floor(c/1e3);return f?`${ms(f)}:${ms(d)}:${ms(y)}`:`${ms(d)}:${ms(y)}`}function Bc(c){return Math.floor((or(c)?c.getTime():c)/864e5)}const Pie={today:(c,f)=>ms(c)+":"+ms(f),yesterday:()=>"Yesterday",monday:()=>"Mon",tuesday:()=>"Tue",wednesday:()=>"Wed",thursday:()=>"Thu",friday:()=>"Fri",saturday:()=>"Sat",sunday:()=>"Sun",weeks:c=>`${c}w`};function Mie(c,f){const d=new Date((f==null?void 0:f.now)||Date.now()),y=(f==null?void 0:f.labels)||Pie,R=or(c)?c:new Date(c);if(Bc(d)===Bc(R))return y.today(R.getUTCHours(),R.getUTCMinutes(),R.getUTCHours()>12);if(Bc(d)-Bc(R)===1)return y.yesterday();const L=gb(R);return Bc(d)-Bc(R)<7?y[L.day]():y.weeks(Math.round((d.getTime()-R.getTime())/6048e5))}const rC={now:()=>"A few seconds",seconds:c=>`${c} seconds`,minutes:c=>`${c} minutes`,hours:c=>`${c} hours`,days:c=>`${c} days`,weeks:c=>`${c} weeks`};function nC(c,f){const d=(f==null?void 0:f.now)??Date.now(),y=(f==null?void 0:f.labels)||rC,R=r.Types.isDate(c)?c.getTime():c;let L=(d-R)/1e3;return L<10?y.now():L<120?y.seconds(Math.floor(L)):(L/=60,L<120?y.minutes(Math.floor(L)):(L/=60,L<48?y.hours(Math.floor(L)):(L/=24,L<14?y.days(Math.floor(L)):(L/=7,y.weeks(Math.floor(L))))))}function Lie(c,f=rC){return nC(0,{now:c*1e3,labels:f})}function Uie(c,f,d){const y=((d==null?void 0:d.now)??Date.now())-c,R=Math.floor(y/f),L=f/((d==null?void 0:d.precision)??1)-Math.ceil(y%f/((d==null?void 0:d.precision)??1));return{cycles:R,remaining:L}}const pb={};function Die(c,f){return!pb[c]||Date.now()>pb[c]?(pb[c]=Date.now()+f,!0):!1}const $ie={s:1e3,m:6e4,h:36e5,d:864e5};function Fie(c,f,d){return f=or(f)?f.getTime():f,d=d?or(d)?d.getTime():d:Date.now(),(d-f)/$ie[c]}function Hie(c,f,d,y){y||(y=Date.now());const R=f/d,L=y-c,J=L/f,de=J*d,fe=de-L;return{deltaMs:L,progress:R,baseTimeMs:J,totalTimeMs:de,remainingTimeMs:fe}}const zie={0:"sunday",1:"monday",2:"tuesday",3:"wednesday",4:"thursday",5:"friday",6:"saturday"};function iC(c){return{zeroBasedIndex:c,day:zie[c]}}function gb(c){return iC(c.getDay())}function Gie(c){return gb(new Date(c))}function Kie(c){return c*1e3}function jie(c){return c*6e4}function Wie(c){return c*36e5}function Vie(c){return c*864e5}const qie={ms:1,milli:1,millis:1,millisecond:1,milliseconds:1,s:1e3,sec:1e3,second:1e3,seconds:1e3,m:6e4,min:6e4,minute:6e4,minutes:6e4,h:36e5,hour:36e5,hours:36e5,d:864e5,day:864e5,days:864e5,w:6048e5,week:6048e5,weeks:6048e5,month:2592e6,months:2592e6,y:31536e6,year:31536e6,years:31536e6};function Zie(c){const f=parseFloat(c);if(isNaN(f))throw Error("makeDate got NaN for input");const d=c.replace(/^-?[0-9.]+/,"").trim().toLowerCase(),y=qie[d];if(!y)throw Error(`Unknown unit: "${d}"`);return f*y}const Qie={b:1,byte:1,bytes:1,kb:1024,kilobyte:1024,kilobytes:1024,mb:1024**2,megabyte:1024**2,megabytes:1024**2,gb:1024**3,gigabyte:1024**3,gigabytes:1024**3,tb:1024**4,terabyte:1024**4,terabytes:1024**4};function Yie(c){const f=parseFloat(c);if(isNaN(f))throw Error("makeDate got NaN for input");const d=c.replace(/^-?[0-9.]+/,"").trim().toLowerCase(),y=Qie[d];if(!y)throw Error(`Unknown unit: "${d}"`);return f*y}function Jie(c){return c.replace(/ +/g," ").replace(/^ /gm,"")}const yb={};async function Xie(c,f,d){const y=Date.now(),R=yb[c];if(R&&R.validUntil>y)return R.value;const L=await d(),J=y+f;return yb[c]={value:L,validUntil:J},L}function ese(c){delete yb[c]}function sC(...c){return c.filter(f=>f).join("/").replace(new RegExp("(?<!:)\\/+","g"),"/")}function tse(c,f,d,y,R=!0){const L=c.indexOf(f),J=c.indexOf(d,L+f.length);if(L===-1||J===-1)throw Error("Start or end not found");return R?c.substring(0,L+f.length)+y+c.substring(J):c.substring(0,L)+y+c.substring(J+d.length)}function rse(c){let f="p";c.startsWith("#")?(f="h1",c=c.slice(1).trim()):c.startsWith("-")&&(f="li",c=c.slice(1).trim());const d=c[0]===c[0].toUpperCase(),y=/[.?!]$/.test(c),R=/:$/.test(c);return{type:f,isCapitalized:d,hasPunctuation:y,endsWithColon:R}}function nse(c,f="(",d=")"){let y=0,R=0;for(;R<c.length;)if(c.startsWith(f,R)?(y++,R+=f.length):c.startsWith(d,R)?(y--,R+=d.length):R++,y<0)return!1;return f===d?y%2===0:y===0}function ise(c){c=c.normalize("NFD").replace(/[\u0300-\u036f]/g,"");let f=c.length;for(;c=c.replace(/(\w+)[\s,']+\w+/g,"$1"),c.length!==f;)f=c.length;return c=c.replaceAll(/[A-Z][a-zA-Z0-9]*/g,"A"),c=c.replaceAll(/[a-z][a-zA-Z0-9]*/g,"a"),c=c.replaceAll(/[\u4E00-\u9FA5]+/g,"Z"),c}function oC(c){const f=Object.keys(c).sort((y,R)=>y.localeCompare(R)),d={};for(const y of f)d[y]=Pc(c[y]);return d}function aC(c){const f=[];return c.sort((d,y)=>JSON.stringify(Pc(d)).localeCompare(JSON.stringify(Pc(y)))).forEach(d=>f.push(Pc(d))),f}function Pc(c){return Array.isArray(c)?aC(c):sr(c)?oC(c):c}function cC(c,f){return JSON.stringify(Pc(c))===JSON.stringify(Pc(f))}function sse(...c){for(let f=1;f<c.length;f++)if(!cC(c[f-1],c[f]))return!1;return!0}function ose(c){try{return JSON.parse(c)}catch{return null}}function ase(){let c=0;return{next:()=>c++}}function cse(c){let f=0;return{next:()=>c[f++%c.length]}}function use(c){let f;return d=>{const y=d===c&&f!==c;return f=d,y}}function lse(c,f,d,y,R){const L={};for(const J of Object.keys(f))L[J]=[];L[y]=[],R&&(c=c.sort(R));for(const J of c){const de=J[d],fe=f[de]?de:y;L[fe].length>=f[fe]?L[y].push(J):L[fe].push(J)}return L}function fse(c,f){const d=Object.keys(c),y=Object.keys(f);return{uniqueToA:d.filter(R=>!y.includes(R)),uniqueToB:y.filter(R=>!d.includes(R))}}function uC(c){const f=Object.keys(c);return f[Math.floor(Math.random()*f.length)]}function hse(c,f){const d=uC(c);return c[d]=f(c[d]),d}function dse(c){return c=c.replace(/\r\n/g,`
|
|
10
|
-
`),c=c.replace(/(\w+)\((.+)\)/g,(f,d,y)=>`${d}(${y.replaceAll(",",",")})`),c=c.replace(/(,)(\s+})/g,"$2"),c=c.replace(/\.\.\..+?,/g,""),c=c.replace(/({\s+)([a-zA-Z]\w+),/g,"$1$2: '$2',"),c=c.replace(/(,\s+)([a-zA-Z]\w+),/g,"$1$2: '$2',"),c=c.replace(/:(.+)\?(.+):/g,(f,d,y)=>`: (${d.trim()} && ${y.trim()}) ||`),c=c.replace(/([a-zA-Z0-9]+)( ?: ?{)/g,'"$1"$2'),c=c.replace(/([a-zA-Z0-9]+) ?: ?(.+?)(,|\n|})/g,(f,d,y,R)=>`"${d}":"${y.trim()}"${R}`),c=c.replace(/("'|'")/g,'"'),c=c.replaceAll(",",","),JSON.parse(c)}const ca=[1e3,1e6,1e9,1e12,1e15,1e18,1e21,1e24,1e27,1e30,1e9,1e16,1e18,1e18,1e18,1e33],pse=["thousand","million","billion","trillion","quadrillion","quintillion","sextillion","septillion","octillion","nonillion","gwei","bzz","btc","eth","dai","decillion"],lC=["K","M","B","T","Qa","Qi","Sx","Sp","O","N","gwei","bzz","eth","btc","dai","D"];function gse(c,f,d){let y=c.length-f;if(y<=0)return"0."+"0".repeat(-y)+c+(d?" "+d:"");let R=c.substring(0,y),L=c.substring(y);return R===""&&(R="0"),R+"."+L+(d?" "+d:"")}function yse(c,f){const d=(f==null?void 0:f.longForm)??!1,y=f!=null&&f.unit?` ${f.unit}`:"",R=d?pse:lC,L=(f==null?void 0:f.precision)??1;if(c<ca[0])return`${c}${y}`;for(let J=0;J<ca.length-1;J++)if(c<ca[J+1])return`${(c/ca[J]).toFixed(L)}${d?" ":""}${R[J]}${y}`;return`${(c/ca[ca.length-1]).toFixed(L)}${d?" ":""}${R[ca.length-1]}${y}`}function mb(c){const f=parseFloat(c);if(isNaN(f))throw Error("makeNumber got NaN for input");const d=c.replace(/^-?[0-9.]+/,"").trim(),y=lC.findIndex(R=>R.toLowerCase()===d.toLowerCase());return y===-1?f:f*ca[y]}function wb(c,f,d){return c<f?f:c>d?d:c}function mse(c,f,d){const y=c+f;return y>d?d:y}function wse(c,f,d){const y=c-f;return y<d?d:y}function bse(c,f){return f(c),c}function _se(c,f){c&&f(c)}function Ase(c,f){const d=Object.keys(f);for(const y of d)Array.isArray(f[y])&&Array.isArray(c[y])&&aa(c[y],f[y])}function vse(c){return c.splice(0,c.length),c}function Ese(c){for(const f of Object.keys(c))(Ut(c[f])||Array.isArray(c[f])&&c[f].every(d=>d==null))&&delete c[f];return c}function xse(c){for(const f of Object.entries(c))(f[1]===null||f[1]===void 0||kr(f[1])&&xt(f[1]))&&delete c[f[0]];return c}function Rse(c,f){const d={};for(const[y,R]of Object.entries(c))f(y)&&(d[y]=R);return d}function Ise(c,f){const d={};for(const[y,R]of Object.entries(c))f(R)&&(d[y]=R);return d}function Sse(c,f){const d={};for(const y of Object.entries(c))d[y[0]]=f(y[1]);return d}function kse(c,f){const d=[];let y=0;for(const R of c)d.push(f(R,y++));return d}async function Tse(c,f){try{return await c()}catch{throw f}}function Ose(c,f,d){d!=null&&(c[f]=d)}function Nse(c,f,d,y){const R=O(d,y);R!=null&&M(c,f,R)}function Cse(c){const f={};for(const[d,y]of Object.entries(c))f[y]=d;return f}function Bse(c){const f=Object.keys(c),d=f.map(de=>c[de].length),y=d.reduce((de,fe)=>de*=fe);let R=1;const L=[1];for(let de=0;de<d.length-1;de++)R*=d[de],L.push(R);const J=[];for(let de=0;de<y;de++){const fe={};for(let De=0;De<f.length;De++){const Lt=c[f[De]],Gr=Math.floor(de/L[De])%Lt.length;fe[f[De]]=Lt[Gr]}J.push(fe)}return J}function Pse(c){return Object.values(c).filter(f=>f).length}function Mse(c,f,d){return c+(d?"["+f+"]":(c.length?".":"")+f)}function fg(c,f,d,y,R){if(!sr(f))return f;for(const[L,J]of Object.entries(f)){const de=Mse(d,L,y);Array.isArray(J)?R?fg(c,J,de,!0,R):c[de]=J.map(fe=>fg(Array.isArray(fe)?[]:{},fe,"",!1,R)):sr(J)?fg(c,J,de,!1,R):c[de]=J}return c}function Lse(c,f=!1,d){return fg({},c,d||"",!1,f)}function fC(c){if(!sr(c))return c;const f=Array.isArray(c)?[]:{};for(const[d,y]of Object.entries(c))Array.isArray(y)?M(f,d,y.map(R=>fC(R))):M(f,d,y);return f}function Use(c,f,d){return f[c]?f[c]:d}function hC(c,f){const d={};for(const y of c){const R=f(y);d[R]=y}return d}function Dse(c,f){const d={};for(const y of c){const R=f(y);d[R]||(d[R]=[]),d[R].push(y)}return d}function $se(c,f){const d=[];for(let y=0;y<c.length;y+=f)d.push(c.slice(y,y+f));return d}function dC(c,f){const d=Math.ceil(c.length/f),y=[];for(let R=0;R<c.length;R+=d)y.push(c.slice(R,R+d));return y}function pC(c,f){const d=[],y=Math.ceil(c.length/f);for(let R=0;R<y;R++)d.push(c.slice(R*f,R*f+f));return d}function Fse(c,f){const d=Math.ceil(c.length/f);return pC(c,d)}function Hse(c,f){return Object.values(hC(c,f))}function zse(c,f,d,y,R){const L=f?c.map(f):c,J={};for(const fe of L)J[fe]=(J[fe]||0)+1;const de=y?gC(J,R?(fe,De)=>fe[1]-De[1]:(fe,De)=>De[1]-fe[1]):J;return d?Object.keys(de):de}function gC(c,f){return Object.fromEntries(Object.entries(c).sort(f))}function Gse(c){const f=[],d=Object.keys(c),y=c[d[0]].length;for(let R=0;R<y;R++){const L={};for(const J of d)L[J]=c[J][R];f.push(L)}return f}function Kse(c,f,d=1){for(const y of c)y[f]+=d}function jse(c,f,d){for(const y of c)y[f]=d}function bb(c,f){const d=[];let y=[];return c.forEach((R,L)=>{(L===0||!f(R,c[L-1]))&&(y=[],d.push(y)),y.push(R)}),d}function Wse(){return{map:new Map,keys:[]}}function Vse(){return{map:new Map,keys:[]}}function yC(c,f,d,y=100){if(c.map.has(f)){const R=c.keys.indexOf(f);c.keys.splice(R,1)}if(c.map.set(f,d),c.keys.push(f),c.keys.length>y){const R=c.keys.shift();R&&c.map.delete(R)}}function qse(c,f,d,y=100){if(c.map.has(f)){const R=c.keys.indexOf(f);c.keys.splice(R,1)}if(c.map.set(f,d),c.keys.unshift(f),c.keys.length>y){const R=c.keys.shift();R&&c.map.delete(R)}}function Zse(c,f,d,y,R=100){yC(c,f,{validUntil:Date.now()+y,data:d},R)}function Qse(c,f){const d=c.map.get(f);return d&&d.validUntil>Date.now()?d.data:null}class ua{constructor(f){this.value=f}static of(f){return new ua(f)}static empty(){return new ua(null)}map(f){return new ua(this.value!==null&&this.value!==void 0?f(this.value):null)}mapAsync(f){return this.value!==null&&this.value!==void 0?f(this.value).then(d=>ua.of(d)):Promise.resolve(ua.empty())}ifPresent(f){return this.value!==null&&this.value!==void 0&&f(this.value),this}ifPresentAsync(f){return this.value!==null&&this.value!==void 0?f(this.value).then(()=>this):Promise.resolve(this)}ifAbsent(f){return(this.value===null||this.value===void 0)&&f(),this}ifAbsentAsync(f){return this.value===null||this.value===void 0?f().then(()=>this):Promise.resolve(this)}getOrFallback(f){return this.value??f()}getOrFallbackAsync(f){return this.value!==null&&this.value!==void 0?Promise.resolve(this.value):f()}getOrThrow(){if(this.value===null||this.value===void 0)throw Error("Optional.value is empty");return this.value}}r.Optional=ua;class Yse{constructor(f){this.supplier=f,this.value=null}get(){return this.value||(this.value=this.supplier()),this.value}}r.Lazy=Yse;class Jse{constructor(f){this.supplier=f,this.value=null}async get(){return this.value||(this.value=await this.supplier()),this.value}}r.AsyncLazy=Jse;function Xse(c){return()=>c.forEach(f=>f())}function eoe(c,f){return c.reduce((d,y)=>f(d)>f(y)?d:y)}function toe(c,f){const d=c.find(y=>y instanceof f);return ua.of(d)}function roe(c,f){return c.filter(d=>d instanceof f)}function noe(c,f){const d=[],y=Math.max(c.length,f.length);for(let R=0;R<y;R++)c[R]&&d.push(c[R]),f[R]&&d.push(f[R]);return d}function ioe(c,f){return c.includes(f)?c.filter(d=>d!==f):[...c,f]}class soe{constructor(f){this.value=f,this.children=[]}}function ooe(c,f,d,y,R=!1){const L=new Map,J=[];c.forEach(fe=>{const De=new soe(fe);L.set(fe[f],De)}),c.forEach(fe=>{const De=L.get(fe[f]);if(!De)return;const Lt=fe[d];if(Lt){const Gr=L.get(Lt);Gr&&Gr.children.push(De)}else J.push(De)});const de=fe=>{fe.children.sort((De,Lt)=>{const Gr=De.value[y],Wl=Lt.value[y];return R?Wl-Gr:Gr-Wl}),fe.children.forEach(de)};return J.forEach(de),J}function mC(c,f){if(Math.log2(c.length)%1!==0)throw new Error("Array length must be a power of 2");let d=[...c];for(;d.length>1;){const y=[];for(let R=0;R<d.length;R+=2){const L=d[R+1];y.push(f(d[R],L))}d=y}return d[0]}function Gl(...c){const f=c.reduce((R,L)=>R+L.length,0),d=new Uint8Array(f);let y=0;return c.forEach(R=>{d.set(R,y),y+=R.length}),d}function wC(c){return c[0]===137&&c[1]===80&&c[2]===78&&c[3]===71}function bC(c){return c[0]===255&&c[1]===216}function _C(c){return c[8]===87&&c[9]===69&&c[10]===66&&c[11]===80}function aoe(c){return wC(c)||bC(c)||_C(c)}function coe(c){return new Uint8Array([c])}function uoe(c){return c[0]}function loe(c,f){const d=new ArrayBuffer(2);return new DataView(d).setUint16(0,c,f==="LE"),new Uint8Array(d)}function foe(c,f){return new DataView(c.buffer).getUint16(c.byteOffset,f==="LE")}function hoe(c,f){const d=new ArrayBuffer(4);return new DataView(d).setUint32(0,c,f==="LE"),new Uint8Array(d)}function doe(c,f){return new DataView(c.buffer).getUint32(c.byteOffset,f==="LE")}function _b(c,f){const d=new ArrayBuffer(8);return new DataView(d).setBigUint64(0,BigInt(c),f==="LE"),new Uint8Array(d)}function poe(c,f){return new DataView(c.buffer).getBigUint64(c.byteOffset,f==="LE")}function Kl(c,f){const d=new Uint8Array(32);let y=c;if(f==="LE"){for(let R=0;R<32;R++)d[R]=Number(y&0xffn),y>>=8n;return d}for(let R=31;R>=0;R--)d[R]=Number(y&0xffn),y>>=8n;return d}function jl(c,f){let d=0n;if(f==="LE"){for(let y=31;y>=0;y--)d=d<<8n|BigInt(c[y]);return d}for(let y=0;y<32;y++)d=d<<8n|BigInt(c[y]);return d}function goe(c,f){const d=[];let y=0;for(const R of f)d.push(c.subarray(y,y+R)),y+=R;return d}function Ab(c,f){const d=[];for(let y=0;y<c.length;y+=f)d.push(c.subarray(y,y+f));return d}const AC=[0,1,0,32898,2147483648,32906,2147483648,2147516416,0,32907,0,2147483649,2147483648,2147516545,2147483648,32777,0,138,0,136,0,2147516425,0,2147483658,0,2147516555,2147483648,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,0,32778,2147483648,2147483658,2147483648,2147516545,2147483648,32896,0,2147483649,2147483648,2147516424];function yoe(c){for(let f=0;f<24;f++){const d=c[0]^c[10]^c[20]^c[30]^c[40],y=c[1]^c[11]^c[21]^c[31]^c[41],R=c[2]^c[12]^c[22]^c[32]^c[42],L=c[3]^c[13]^c[23]^c[33]^c[43],J=c[4]^c[14]^c[24]^c[34]^c[44],de=c[5]^c[15]^c[25]^c[35]^c[45],fe=c[6]^c[16]^c[26]^c[36]^c[46],De=c[7]^c[17]^c[27]^c[37]^c[47],Lt=c[8]^c[18]^c[28]^c[38]^c[48],Gr=c[9]^c[19]^c[29]^c[39]^c[49],Wl=R<<1|L>>>31,Joe=L<<1|R>>>31,ud=Lt^Wl,ld=Gr^Joe,Xoe=J<<1|de>>>31,eae=de<<1|J>>>31,fd=d^Xoe,hd=y^eae,tae=fe<<1|De>>>31,rae=De<<1|fe>>>31,dd=R^tae,pd=L^rae,nae=Lt<<1|Gr>>>31,iae=Gr<<1|Lt>>>31,gd=J^nae,yd=de^iae,sae=d<<1|y>>>31,oae=y<<1|d>>>31,md=fe^sae,wd=De^oae;c[0]^=ud,c[1]^=ld,c[2]^=fd,c[3]^=hd,c[4]^=dd,c[5]^=pd,c[6]^=gd,c[7]^=yd,c[8]^=md,c[9]^=wd,c[10]^=ud,c[11]^=ld,c[12]^=fd,c[13]^=hd,c[14]^=dd,c[15]^=pd,c[16]^=gd,c[17]^=yd,c[18]^=md,c[19]^=wd,c[20]^=ud,c[21]^=ld,c[22]^=fd,c[23]^=hd,c[24]^=dd,c[25]^=pd,c[26]^=gd,c[27]^=yd,c[28]^=md,c[29]^=wd,c[30]^=ud,c[31]^=ld,c[32]^=fd,c[33]^=hd,c[34]^=dd,c[35]^=pd,c[36]^=gd,c[37]^=yd,c[38]^=md,c[39]^=wd,c[40]^=ud,c[41]^=ld,c[42]^=fd,c[43]^=hd,c[44]^=dd,c[45]^=pd,c[46]^=gd,c[47]^=yd,c[48]^=md,c[49]^=wd;const Sb=c[0],kb=c[1],Tb=c[2]<<1|c[3]>>>31,Ob=c[3]<<1|c[2]>>>31,Nb=c[5]<<30|c[4]>>>2,Cb=c[4]<<30|c[5]>>>2,Bb=c[6]<<28|c[7]>>>4,Pb=c[7]<<28|c[6]>>>4,Mb=c[8]<<27|c[9]>>>5,Lb=c[9]<<27|c[8]>>>5,Ub=c[11]<<4|c[10]>>>28,Db=c[10]<<4|c[11]>>>28,$b=c[13]<<12|c[12]>>>20,Fb=c[12]<<12|c[13]>>>20,Hb=c[14]<<6|c[15]>>>26,zb=c[15]<<6|c[14]>>>26,Gb=c[17]<<23|c[16]>>>9,Kb=c[16]<<23|c[17]>>>9,jb=c[18]<<20|c[19]>>>12,Wb=c[19]<<20|c[18]>>>12,Vb=c[20]<<3|c[21]>>>29,qb=c[21]<<3|c[20]>>>29,Zb=c[22]<<10|c[23]>>>22,Qb=c[23]<<10|c[22]>>>22,Yb=c[25]<<11|c[24]>>>21,Jb=c[24]<<11|c[25]>>>21,Xb=c[26]<<25|c[27]>>>7,e_=c[27]<<25|c[26]>>>7,t_=c[29]<<7|c[28]>>>25,r_=c[28]<<7|c[29]>>>25,n_=c[31]<<9|c[30]>>>23,i_=c[30]<<9|c[31]>>>23,s_=c[33]<<13|c[32]>>>19,o_=c[32]<<13|c[33]>>>19,a_=c[34]<<15|c[35]>>>17,c_=c[35]<<15|c[34]>>>17,u_=c[36]<<21|c[37]>>>11,l_=c[37]<<21|c[36]>>>11,f_=c[38]<<8|c[39]>>>24,h_=c[39]<<8|c[38]>>>24,d_=c[40]<<18|c[41]>>>14,p_=c[41]<<18|c[40]>>>14,g_=c[42]<<2|c[43]>>>30,y_=c[43]<<2|c[42]>>>30,m_=c[45]<<29|c[44]>>>3,w_=c[44]<<29|c[45]>>>3,b_=c[47]<<24|c[46]>>>8,__=c[46]<<24|c[47]>>>8,A_=c[48]<<14|c[49]>>>18,v_=c[49]<<14|c[48]>>>18;c[0]=Sb^~$b&Yb,c[1]=kb^~Fb&Jb,c[2]=$b^~Yb&u_,c[3]=Fb^~Jb&l_,c[4]=Yb^~u_&A_,c[5]=Jb^~l_&v_,c[6]=u_^~A_&Sb,c[7]=l_^~v_&kb,c[8]=A_^~Sb&$b,c[9]=v_^~kb&Fb,c[10]=Bb^~jb&Vb,c[11]=Pb^~Wb&qb,c[12]=jb^~Vb&s_,c[13]=Wb^~qb&o_,c[14]=Vb^~s_&m_,c[15]=qb^~o_&w_,c[16]=s_^~m_&Bb,c[17]=o_^~w_&Pb,c[18]=m_^~Bb&jb,c[19]=w_^~Pb&Wb,c[20]=Tb^~Hb&Xb,c[21]=Ob^~zb&e_,c[22]=Hb^~Xb&f_,c[23]=zb^~e_&h_,c[24]=Xb^~f_&d_,c[25]=e_^~h_&p_,c[26]=f_^~d_&Tb,c[27]=h_^~p_&Ob,c[28]=d_^~Tb&Hb,c[29]=p_^~Ob&zb,c[30]=Mb^~Ub&Zb,c[31]=Lb^~Db&Qb,c[32]=Ub^~Zb&a_,c[33]=Db^~Qb&c_,c[34]=Zb^~a_&b_,c[35]=Qb^~c_&__,c[36]=a_^~b_&Mb,c[37]=c_^~__&Lb,c[38]=b_^~Mb&Ub,c[39]=__^~Lb&Db,c[40]=Nb^~Gb&t_,c[41]=Cb^~Kb&r_,c[42]=Gb^~t_&n_,c[43]=Kb^~r_&i_,c[44]=t_^~n_&g_,c[45]=r_^~i_&y_,c[46]=n_^~g_&Nb,c[47]=i_^~y_&Cb,c[48]=g_^~Nb&Gb,c[49]=y_^~Cb&Kb,c[0]^=AC[f*2],c[1]^=AC[f*2+1]}}function vC(c){const f=[];for(let d=0;d<c.length;d+=4)f.push(c[d]|c[d+1]<<8|c[d+2]<<16|c[d+3]<<24);return f}function EC(c,f){if(!c.length){const R=new Uint8Array(136);return R[0]=f,R[135]=128,[vC(R)]}const d=Ab(c,136),y=d[d.length-1];if(y.length<136){const R=new Uint8Array(136);R.set(y),R[y.length]=f,R[135]|=128,d[d.length-1]=R}if(y.length===136){const R=new Uint8Array(136);R[0]=f,R[135]=128,d.push(R)}return d.map(vC)}function xC(c,f){for(const d of f){for(let y=0;y<34;y+=2)c[y]^=d[y+1],c[y+1]^=d[y];yoe(c)}return c}function RC(c){return new Uint8Array([c[1],c[1]>>-24,c[1]>>-16,c[1]>>-8,c[0],c[0]>>8,c[0]>>16,c[0]>>24,c[3],c[3]>>-24,c[3]>>-16,c[3]>>-8,c[2],c[2]>>8,c[2]>>16,c[2]>>24,c[5],c[5]>>-24,c[5]>>-16,c[5]>>-8,c[4],c[4]>>8,c[4]>>16,c[4]>>24,c[7],c[7]>>-24,c[7]>>-16,c[7]>>-8,c[6],c[6]>>8,c[6]>>16,c[6]>>24])}function oo(c){return RC(xC(new Array(50).fill(0),EC(c,1)))}function moe(c){return RC(xC(new Array(50).fill(0),EC(c,6)))}function woe(c,f,d){const y=Math.min(c.length,f.length,d/8+1);for(let R=0;R<y;R++){const L=c[R]^f[R];for(let J=0;J<8;J++)if(L>>7-J&1)return R*8+J}return d}function boe(c,f){const d=Math.min(c.length,f.length);for(let y=0;y<d;y++)if(c[y]!==f[y])return c.subarray(0,y);return c.subarray(0,d)}function _oe(c,f,d,y){const R=Math.floor(f/8),L=f%8;d===1?c[R]|=1<<(y==="BE"?7-L:L):c[R]&=~(1<<(y==="BE"?7-L:L))}function Aoe(c,f,d){const y=Math.floor(f/8),R=f%8;return c[y]>>(d==="BE"?7-R:R)&1}function voe(c,f,d=0){for(let y=d;y<c.length;y++)for(let R=0;R<f.length&&c[y+R]===f[R];R++)if(R===f.length-1)return y;return-1}function IC(c,f,d=0){if(c.length>=f)return c;const y=new Uint8Array(f);return y.fill(d),y.set(c,f-c.length),y}function Eoe(c,f,d=0){const y=c.length%f;return y===0?c:IC(c,c.length+f-y,d)}function SC(c,f,d=0){if(c.length>=f)return c;const y=new Uint8Array(f);return y.fill(d),y.set(c,0),y}function xoe(c,f,d=0){const y=c.length%f;return y===0?c:SC(c,c.length+f-y,d)}function Roe(c,f){const d=new Uint8Array(c.length);for(let y=0;y<c.length;y++)d[y]=c[y]^f[y%f.length];return d}function Ioe(c,f){if(c.length!==f.length)return!1;for(let d=0;d<c.length;d++)if(c[d]!==f[d])return!1;return!0}function Kt(c,f){return(c%f+f)%f}function ad(c,f){c=Kt(c,f);let[d,y]=[0n,1n],[R,L]=[f,c];for(;L!==0n;){const J=R/L;[d,y]=[y,d-J*y],[R,L]=[L,R-J*L]}if(R>1n)throw new Error("a is not invertible");return d<0n&&(d+=f),d}function Soe(c,f,d){let y=1n;for(c=Kt(c,d);f>0;)f%2n===1n&&(y=Kt(y*c,d)),c=Kt(c*c,d),f=f/2n;return y}function kC(c,f){return Kt(c,f)===0n?0n:f%4n===3n?Soe(c,(f+1n)/4n,f):null}const hn=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn,zr=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n,hg=0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798n,dg=0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8n;function vb(c,f,d){if(f===0n)return[0n,0n];const y=Kt(3n*c*c*ad(2n*f,d),d),R=Kt(y*y-2n*c,d),L=Kt(y*(c-R)-f,d);return[R,L]}function pg(c,f,d,y,R){if(c===0n&&f===0n)return[d,y];if(d===0n&&y===0n)return[c,f];if(c===d&&f===Kt(-y,R))return[0n,0n];if(c===d&&f===y)return vb(c,f,R);const L=Kt((y-f)*ad(d-c,R),R),J=Kt(L*L-c-d,R),de=Kt(L*(c-J)-f,R);return[J,de]}function koe(c){if(c<=0n||c>=zr)throw new Error("Invalid private key");return Mc(hg,dg,c,hn)}function Toe(c){const f=c[1]%2n===0n?2:3;return new Uint8Array([f,...Kl(c[0],"BE")])}function Ooe(c){if(c.length!==33||c[0]!==2&&c[0]!==3)throw new Error("Invalid compressed public key");const f=jl(c.slice(1),"BE"),d=kC(Kt(f**3n+7n,hn),hn);if(!d)throw Error("Invalid x: does not correspond to a valid curve point");const y=Kt(-d,hn),R=d%2n===0n;return[f,c[0]===2?R?d:y:R?y:d]}function Noe(c){const f=new Uint8Array(20),d=oo(Gl(Kl(c[0],"BE"),Kl(c[1],"BE")));return f.set(d.subarray(12)),f}function Coe(c){const f=r.Binary.uint8ArrayToHex(c),d=r.Binary.uint8ArrayToHex(r.Binary.keccak256(new Uint8Array([...f].map(R=>R.charCodeAt(0)))));let y="0x";for(let R=0;R<f.length;R++)parseInt(d[R],16)>7?y+=f[R].toUpperCase():y+=f[R];return y}function Mc(c,f,d,y){let R=[0n,0n],L=[c,f];const J=d.toString(2);for(const de of J)de==="0"?(L=pg(R[0],R[1],L[0],L[1],y),R=vb(R[0],R[1],y)):(R=pg(R[0],R[1],L[0],L[1],y),L=vb(L[0],L[1],y));return R}function Boe(c,f,d){return TC(jl(oo(c),"BE"),f,d)}function TC(c,f,d){if(f<=0n||f>=zr)throw new Error("Invalid private key");if(d||(d=Kt(jl(oo(Gl(oo(Kl(f,"BE")),Kl(c,"BE"))),"BE"),zr)),d<=0n||d>=zr)throw new Error("Invalid nonce");const y=Kt(c,zr),R=Mc(hg,dg,d,hn),L=Kt(R[0],zr);let J=Kt((y+Kt(L,zr)*f)*ad(d,zr),zr);if(L===0n||J===0n)throw new Error("Invalid r or s value");let de=R[1]%2n===0n?27n:28n;return J>zr/2n&&(J=zr-J,de=de===27n?28n:27n),[L,J,de]}function Poe(c,f,d,y){const R=kC(Kt(f**3n+7n,hn),hn);if(!R)throw new Error("Invalid r: does not correspond to a valid curve point");const L=y===27n?0n:1n,J=R%2n===L?R:hn-R,de=Kt(jl(oo(c),"BE"),zr),fe=Mc(f,J,d,hn),De=Mc(hg,dg,de,hn),Lt=pg(fe[0],fe[1],De[0],Kt(-De[1],hn),hn);return Mc(Lt[0],Lt[1],ad(f,zr),hn)}function Moe(c,f,d,y){const R=Kt(jl(oo(c),"BE"),zr),L=ad(y,zr),J=Kt(R*L,zr),de=Kt(d*L,zr),fe=Mc(hg,dg,J,hn),De=Mc(f[0],f[1],de,hn),Lt=pg(fe[0],fe[1],De[0],De[1],hn);return d===Kt(Lt[0],zr)}class OC{constructor(f){this.cursor=0,this.buffer=f}read(f){const d=this.buffer.subarray(this.cursor,this.cursor+f);return this.cursor+=f,d}max(){return this.buffer.length-this.cursor}}r.Uint8ArrayReader=OC;class NC{constructor(f){this.buffer=f,this.cursor=0}write(f){const d=Math.min(this.max(),f.max());return this.buffer.set(f.read(d),this.cursor),this.cursor+=d,d}max(){return this.buffer.length-this.cursor}}r.Uint8ArrayWriter=NC;class gg{constructor(f,d=0n){this.span=d,this.writer=new NC(new Uint8Array(f))}build(){return Gl(_b(this.span,"LE"),this.writer.buffer)}hash(){const f=mC(Ab(this.writer.buffer,32),(d,y)=>oo(Gl(d,y)));return oo(Gl(_b(this.span,"LE"),f))}}r.Chunk=gg;class Eb{constructor(f,d=4096){this.counters=[1],this.capacity=d,this.chunks=[new gg(d)],this.onChunk=f}static async root(f,d=4096){const y=new e(e.NOOP,d);return await y.append(f),y.finalize()}async append(f,d=0,y=0n){const R=new OC(f);for(;R.max()>0;){this.chunks[d].writer.max()===0&&await this.elevate(d);const L=this.chunks[d].writer.write(R);y?this.chunks[d].span+=y:this.chunks[0].span+=BigInt(L)}}async elevate(f){this.counters[f]=++this.counters[f]%(this.capacity/32),this.chunks[f+1]||(this.chunks.push(new gg(this.capacity)),this.counters.push(1)),await this.append(this.chunks[f].hash(),f+1,this.chunks[f].span),await this.onChunk(this.chunks[f]),this.chunks[f]=new gg(this.capacity)}async finalize(f=0){return this.chunks[f+1]?this.counters[f]===1?(await this.elevate(f+1),this.chunks[f+1]=this.chunks[f],this.finalize(f+1)):(await this.elevate(f),this.finalize(f+1)):(await this.onChunk(this.chunks[f]),this.chunks[f])}}r.MerkleTree=Eb,e=Eb,Eb.NOOP=async c=>{};class ws{constructor(f,d){if(d<0)throw Error("Scale must be non-negative");this.value=BigInt(f),this.scale=d}static fromDecimalString(f,d){let[y,R]=f.split(".");return R=(R||"").padEnd(d,"0").slice(0,d),new ws(BigInt(y+R),d)}add(f){return this.assertSameScale(f),new ws(this.value+f.value,this.scale)}subtract(f){return this.assertSameScale(f),new ws(this.value-f.value,this.scale)}multiply(f){return new ws(this.value*f,this.scale)}divmod(f){if(f===0n)throw new Error("Division by zero is not allowed");const d=this.value/f,y=this.value%f;return[new ws(d,this.scale),new ws(y,this.scale)]}exchange(f,d,y){if(f==="*"){const L=this.value*d.value/10n**BigInt(this.scale);return new ws(L,y)}this.assertSameScale(d);const R=this.value*10n**BigInt(y)/d.value;return new ws(R,y)}compare(f){return this.assertSameScale(f),this.value>f.value?1:this.value<f.value?-1:0}toDecimalString(){if(this.scale===0)return this.value.toString();const f=this.value.toString(),d=f.slice(0,-this.scale)||"0",y=f.slice(-this.scale).padStart(this.scale,"0");return`${d}.${y}`}toString(){return this.value.toString()}toJSON(){return this.toString()}assertSameScale(f){if(this.scale!==f.scale)throw new Error(`Scale mismatch: expected ${this.scale}, but got ${f.scale}`)}}r.FixedPointNumber=ws;function Loe(c){if(c.length===0)return null;const f=c[0];return f.ttlMax?--f.ttl<=0&&c.shift():f.ttlMax=f.ttl,{progress:(f.ttlMax-f.ttl)/f.ttlMax,data:f.data}}function yg(c,f,d,y){const R=c.findIndex(de=>de===`--${f}`||de.startsWith(`--${f}=`)),L=c[R];if(!L)return(d||{})[y||f||""]||null;if(L.includes("="))return L.split("=")[1];const J=c[R+1];return J&&!J.startsWith("-")?J:(d||{})[y||f||""]||null}function Uoe(c,f,d,y){const R=yg(c,f,d,y);if(!R)return null;try{return mb(R)}catch{throw new Error(`Invalid number argument ${f}: ${R}`)}}function Doe(c,f,d,y){const R=c.some(fe=>fe.endsWith("-"+f)),L=yg(c,f,d,y);if(!L&&R)return!0;if(!L&&!R)return null;const J=["true","1","yes","y","on"],de=["false","0","no","n","off"];if(J.includes(L.toLowerCase()))return!0;if(de.includes(L.toLowerCase()))return!1;throw Error(`Invalid boolean argument ${f}: ${L}`)}function CC(c,f,d,y){const R=yg(c,f,d,y);if(!R)throw new Error(`Missing argument ${f}`);return R}function $oe(c,f,d,y){const R=CC(c,f,d,y);try{return mb(R)}catch{throw new Error(`Invalid argument ${f}: ${R}`)}}function BC(c,f){const d=c[f];c.splice(f,1),c.unshift(d)}function Foe(c,f){const d=[...c];return BC(d,f),d}function PC(c,f){return{x:c.x+f.x,y:c.y+f.y}}function Hoe(c,f){return{x:c.x-f.x,y:c.y-f.y}}function xb(c,f){return{x:c.x*f,y:c.y*f}}function zoe(c){const f=Math.sqrt(c.x*c.x+c.y*c.y);return{x:c.x/f,y:c.y/f}}function MC(c,f,d){return{x:c.x+Math.cos(f)*d,y:c.y+Math.sin(f)*d}}function LC(c,f){return Math.sqrt((c.x-f.x)**2+(c.y-f.y)**2)}function cd(c,f,d="row-first"){const y=[];if(d==="column-first")for(let R=0;R<c.length;R++)for(let L=0;L<c[0].length;L++)f(R,L)&&y.push({x:R,y:L});else for(let R=0;R<c[0].length;R++)for(let L=0;L<c.length;L++)f(L,R)&&y.push({x:L,y:R});return y}function Goe(c,f,d){var y,R;return((y=c[f+1])==null?void 0:y[d])&&((R=c[f-1])==null?void 0:R[d])&&!c[f][d-1]&&!c[f][d+1]}function Koe(c,f,d){var y,R;return c[f][d+1]&&c[f][d-1]&&!((y=c[f-1])!=null&&y[d])&&!((R=c[f+1])!=null&&R[d])}function UC(c,f,d){var y;return!((y=c[f-1])!=null&&y[d])}function DC(c,f,d){var y;return!((y=c[f+1])!=null&&y[d])}function $C(c,f,d){return!c[f][d-1]}function FC(c,f,d){return!c[f][d+1]}function joe(c,f,d){var R,L,J,de,fe,De,Lt,Gr;const y=[];return c[f][d]?Goe(c,f,d)||Koe(c,f,d)?[]:(!((R=c[f-1])!=null&&R[d-1])&&UC(c,f,d)&&$C(c,f,d)&&y.push({x:f,y:d}),!((L=c[f+1])!=null&&L[d-1])&&DC(c,f,d)&&$C(c,f,d)&&y.push({x:f+1,y:d}),!((J=c[f-1])!=null&&J[d+1])&&UC(c,f,d)&&FC(c,f,d)&&y.push({x:f,y:d+1}),!((de=c[f+1])!=null&&de[d+1])&&DC(c,f,d)&&FC(c,f,d)&&y.push({x:f+1,y:d+1}),y):((fe=c[f-1])!=null&&fe[d]&&c[f][d-1]&&y.push({x:f,y:d}),(De=c[f+1])!=null&&De[d]&&c[f][d-1]&&y.push({x:f+1,y:d}),(Lt=c[f-1])!=null&&Lt[d]&&c[f][d+1]&&y.push({x:f,y:d+1}),(Gr=c[f+1])!=null&&Gr[d]&&c[f][d+1]&&y.push({x:f+1,y:d+1}),y)}function Woe(c,f,d,y){const R=[{x:0,y:0},{x:d,y:0},{x:0,y},{x:d,y}];for(let L=0;L<c.length;L++)for(let J=0;J<c[0].length;J++){const de=joe(c,L,J);for(const fe of de)R.some(De=>De.x===fe.x&&De.y===fe.y)||R.push(fe)}return R.map(L=>({x:L.x*f,y:L.y*f}))}function Voe(c,f){const d=cd(c,(fe,De)=>c[fe][De]===0&&c[fe][De+1]!==0,"row-first").map(fe=>({...fe,dx:1,dy:0})),y=cd(c,(fe,De)=>c[fe][De]===0&&c[fe][De-1]!==0,"row-first").map(fe=>({...fe,dx:1,dy:0})),R=cd(c,(fe,De)=>{var Lt;return c[fe][De]===0&&((Lt=c[fe-1])==null?void 0:Lt[De])!==0},"column-first").map(fe=>({...fe,dx:0,dy:1})),L=cd(c,(fe,De)=>{var Lt;return c[fe][De]===0&&((Lt=c[fe+1])==null?void 0:Lt[De])!==0},"column-first").map(fe=>({...fe,dx:0,dy:1}));d.forEach(fe=>fe.y++),L.forEach(fe=>fe.x++);const J=bb([...R,...L],(fe,De)=>fe.x===De.x&&fe.y-1===De.y),de=bb([...y,...d],(fe,De)=>fe.y===De.y&&fe.x-1===De.x);return[...J,...de].map(fe=>({start:fe[0],end:B(fe)})).map(fe=>({start:xb(fe.start,f),end:xb(PC(fe.end,{x:fe.start.dx,y:fe.start.dy}),f)}))}function qoe(c,f){return Math.atan2(f.y-c.y,f.x-c.x)}function Zoe(c,f){return f.map(d=>qoe(c,d)).sort((d,y)=>d-y)}function HC(c,f,d,y){const R=(y.y-d.y)*(f.x-c.x)-(y.x-d.x)*(f.y-c.y);if(R===0)return null;let L=c.y-d.y,J=c.x-d.x;const de=(y.x-d.x)*L-(y.y-d.y)*J,fe=(f.x-c.x)*L-(f.y-c.y)*J;return L=de/R,J=fe/R,L>0&&L<1&&J>0&&J<1?{x:c.x+L*(f.x-c.x),y:c.y+L*(f.y-c.y)}:null}function Rb(c,f,d){const y=[],R=MC(c,d,1e4);for(const L of f){const J=HC(c,R,L.start,L.end);J&&y.push(J)}return y.length?y.reduce((L,J)=>{const de=LC(c,J),fe=LC(c,L);return de<fe?J:L}):null}function Qoe(c,f,d){const y=Zoe(c,d),R=[];for(const L of y){const J=Rb(c,f,L-.001),de=Rb(c,f,L+.001);J&&R.push(J),de&&R.push(de)}return R}class Ib{constructor(){this.subscribers=[]}subscribe(f){return this.subscribers.push(f),()=>{this.subscribers=this.subscribers.filter(d=>d!==f)}}publish(f){this.subscribers.forEach(d=>d(f))}clear(){this.subscribers=[]}getSubscriberCount(){return this.subscribers.length}}r.PubSubChannel=Ib;class Yoe{constructor(f,d){this.queue=[],this.running=0,this.onProcessed=new Ib,this.onDrained=new Ib,this.concurrency=f,this.capacity=d}process(){if(this.running>=this.concurrency)return;const f=this.queue.shift();f&&(this.running++,f().finally(()=>{this.running--,this.process(),this.onProcessed.publish(),this.running===0&&this.onDrained.publish()}))}enqueue(f){if(this.queue.length<this.capacity)return this.queue.push(f),this.process(),Promise.resolve();if(this.onProcessed.getSubscriberCount())throw Error("Queue capacity is full");return new Promise(d=>{this.onProcessed.subscribe(()=>{this.queue.length<this.capacity&&(this.queue.push(f),this.process(),this.onProcessed.clear(),d())})})}drain(){if(this.running===0)return Promise.resolve();if(this.onDrained.getSubscriberCount())throw Error("Already draining");return new Promise(f=>{this.onDrained.subscribe(()=>{this.onDrained.clear(),f()})})}}r.AsyncQueue=Yoe,r.Binary={hexToUint8Array:rie,uint8ArrayToHex:nie,base64ToUint8Array:Jne,uint8ArrayToBase64:Xne,base32ToUint8Array:eie,uint8ArrayToBase32:tie,log2Reduce:mC,partition:Ab,concatBytes:Gl,numberToUint8:coe,uint8ToNumber:uoe,numberToUint16:loe,uint16ToNumber:foe,numberToUint32:hoe,uint32ToNumber:doe,numberToUint64:_b,uint64ToNumber:poe,numberToUint256:Kl,uint256ToNumber:jl,sliceBytes:goe,keccak256:oo,sha3_256:moe,proximity:woe,commonPrefix:boe,setBit:_oe,getBit:Aoe,indexOf:voe,equals:Ioe,padStart:IC,padStartToMultiple:Eoe,padEnd:SC,padEndToMultiple:xoe,xorCypher:Roe},r.Elliptic={privateKeyToPublicKey:koe,compressPublicKey:Toe,publicKeyFromCompressed:Ooe,publicKeyToAddress:Noe,signMessage:Boe,signHash:TC,verifySignature:Moe,recoverPublicKey:Poe,checksumEncode:Coe},r.Random={intBetween:H,floatBetween:D,chance:W,signed:z,makeSeededRng:C,point:Z,procs:K},r.Arrays={countUnique:zse,makeUnique:Hse,splitBySize:$se,splitByCount:dC,index:hC,indexCollection:Dse,onlyOrThrow:a,onlyOrNull:u,firstOrThrow:h,firstOrNull:l,shuffle:o,initialize:g,initialize2D:w,rotate2D:b,containsShape:I,glue:ane,pluck:x,pick:oe,pickMany:ce,pickManyUnique:ie,pickWeighted:E,pickRandomIndices:S,pickGuaranteed:ue,last:B,pipe:p,makePipe:m,sortWeighted:k,pushAll:aa,unshiftAll:sne,filterAndRemove:Iie,merge:Ase,empty:vse,pushToBucket:rd,unshiftAndLimit:nd,atRolling:id,group:bb,createOscillator:cse,organiseWithLimits:lse,tickPlaybook:Loe,getArgument:yg,getBooleanArgument:Doe,getNumberArgument:Uoe,requireStringArgument:CC,requireNumberArgument:$oe,bringToFront:Foe,bringToFrontInPlace:BC,findInstance:toe,filterInstances:roe,interleave:noe,toggle:ioe,createHierarchy:ooe,multicall:Xse,maxBy:eoe},r.System={sleepMillis:s,forever:te,scheduleMany:pne,waitFor:Rie,expandError:Jh,runAndSetInterval:re},r.Numbers={make:mb,sum:yne,average:mne,median:wne,getDistanceFromMidpoint:bne,clamp:wb,range:MN,interpolate:gne,createSequence:ase,increment:mse,decrement:wse,format:yse,fromDecimals:gse,makeStorage:Yie,asMegabytes:he,convertBytes:ye,hexToRgb:be,rgbToHex:We,haversineDistanceToMeters:Fe,roundToNearest:Be,formatDistance:et,triangularNumber:Qe,searchFloat:ot},r.Promises={raceFulfilled:n,invert:t,runInParallelBatches:i},r.Dates={getTimestamp:Mie,getTimeDelta:nC,secondsToHumanTime:Lie,countCycles:Uie,isoDate:Tie,throttle:Die,timeSince:Fie,dateTimeSlug:Oie,unixTimestamp:kie,fromUtcString:Nie,fromMillis:Cie,getProgress:Hie,humanizeTime:lg,humanizeProgress:xie,createTimeDigits:ms,mapDayNumber:iC,getDayInfoFromDate:gb,getDayInfoFromDateTimeString:Gie,seconds:Kie,minutes:jie,hours:Wie,days:Vie,make:Zie,normalizeTime:Bie,absoluteDays:Bc},r.Objects={safeParse:ose,deleteDeep:A,getDeep:O,setDeep:M,incrementDeep:G,ensureDeep:P,replaceDeep:U,getFirstDeep:le,deepMergeInPlace:Li,deepMerge2:Xh,deepMerge3:ed,mapAllAsync:one,cloneWithJson:Sie,sortObject:oC,sortArray:aC,sortAny:Pc,deepEquals:cC,deepEqualsEvery:sse,runOn:bse,ifPresent:_se,zip:Hl,zipSum:td,removeEmptyArrays:Ese,removeEmptyValues:xse,flatten:Lse,unflatten:fC,match:Use,sort:gC,map:Sse,mapIterable:kse,filterKeys:Rse,filterValues:Ise,rethrow:Tse,setSomeOnObject:Ose,setSomeDeep:Nse,flip:Cse,getAllPermutations:Bse,countTruthyValues:Pse,transformToArray:Gse,setMulti:jse,incrementMulti:Kse,createBidirectionalMap:Wse,createTemporalBidirectionalMap:Vse,pushToBidirectionalMap:yC,unshiftToBidirectionalMap:qse,addToTemporalBidirectionalMap:Zse,getFromTemporalBidirectionalMap:Qse,createStatefulToggle:use,diffKeys:fse,pickRandomKey:uC,mapRandomKey:hse,fromObjectString:dse,toQueryString:tC,parseQueryString:yie,hasKey:mie,selectMax:wie,reposition:bie,unwrapSingleKey:_ie,parseKeyValues:Aie},r.Types={isFunction:Ct,isObject:sr,isStrictlyObject:dt,isEmptyArray:Ut,isEmptyObject:oa,isUndefined:It,isString:kr,isNumber:pt,isBoolean:St,isDate:or,isBlank:xt,isId:Bt,isIntegerString:fn,isHexString:Dt,isUrl:$l,isNullable:qh,asString:ar,asHexString:pr,asSafeString:ig,asIntegerString:ng,asNumber:Nc,asFunction:gr,asInteger:Xt,asBoolean:yr,asDate:sg,asNullableString:mr,asEmptiableString:wr,asId:og,asTime:br,asArray:_r,asObject:Cc,asNullableObject:Ar,asStringMap:vr,asNumericDictionary:Wh,asUrl:Vh,asNullable:Zh,asOptional:Qh,enforceObjectShape:Fl,enforceArrayShape:Yh,isPng:wC,isJpg:bC,isWebp:_C,isImage:aoe},r.Strings={tokenizeByCount:Fse,tokenizeByLength:pC,searchHex:rg,searchSubstring:hr,randomHex:dr,randomLetter:Ve,randomAlphanumeric:$t,randomRichAscii:Ge,randomUnicode:fr,includesAny:_ne,slugify:ob,normalForm:vne,enumify:kne,escapeHtml:One,decodeHtmlEntities:Cne,after:ab,afterLast:UN,before:LN,beforeLast:cb,betweenWide:Bne,betweenNarrow:Pne,getPreLine:Jie,containsWord:db,containsWords:hie,joinUrl:sC,getFuzzyMatchScore:ag,sortByFuzzyScore:Tne,splitOnce:ub,splitAll:DN,randomize:Dne,expand:$N,shrinkTrim:sd,capitalize:cg,decapitalize:FN,csvEscape:Kne,parseCsv:Eie,surroundInOut:Sne,getExtension:lb,getBasename:fb,normalizeEmail:Mne,normalizeFilename:Lne,parseFilename:Une,camelToTitle:Ene,slugToTitle:xne,slugToCamel:Rne,joinHumanly:Ine,findWeightedPair:WN,extractBlock:VN,extractAllBlocks:Vne,replaceBlocks:qne,indexOfEarliest:zl,lastIndexOfBefore:jN,parseHtmlAttributes:die,readNextWord:ug,resolveVariables:pie,resolveVariableWithDefaultSyntax:XN,resolveRemainingVariablesWithDefaults:eC,isLetter:HN,isDigit:zN,isLetterOrDigit:od,isValidObjectPathCharacter:Hne,insert:zne,indexOfRegex:GN,lineMatches:KN,linesMatchInOrder:Gne,represent:so,resolveMarkdownLinks:gie,buildUrl:vie,isChinese:Ane,replaceBetweenStrings:tse,describeMarkdown:rse,isBalanced:nse,textToFormat:ise,splitFormatting:Zne,splitHashtags:Qne,splitUrls:Yne,route:iie,explodeReplace:hb,generateVariants:sie,replaceWord:oie,replacePascalCaseWords:aie,stripHtml:cie,breakLine:JN,measureTextWidth:uie,toLines:lie,levenshteinDistance:fie},r.Assertions={asEqual:cne,asTrue:une,asTruthy:lne,asFalse:fne,asFalsy:hne,asEither:dne},r.Cache={get:Xie,invalidate:ese},r.Vector={addPoint:PC,subtractPoint:Hoe,multiplyPoint:xb,normalizePoint:zoe,pushPoint:MC,filterCoordinates:cd,findCorners:Woe,findLines:Voe,raycast:Rb,raycastCircle:Qoe,getLineIntersectionPoint:HC}})(vA);const Wt=xn(vA);Wt.Arrays,Wt.Assertions;const en=Wt.Binary;Wt.Cache,Wt.Dates,Wt.Elliptic,Wt.Numbers,Wt.Objects,Wt.Pagination,Wt.Promises,Wt.Random,Wt.Strings,Wt.System,Wt.Types,Wt.Optional,Wt.Vector,Wt.PubSubChannel,Wt.Chunk;const c4=Wt.MerkleTree;Wt.FixedPointNumber,Wt.Lazy,Wt.AsyncLazy,Wt.AsyncQueue,Wt.Uint8ArrayReader,Wt.Uint8ArrayWriter;var gt;(function(r){r.assertEqual=i=>i;function e(i){}r.assertIs=e;function t(i){throw new Error}r.assertNever=t,r.arrayToEnum=i=>{const s={};for(const o of i)s[o]=o;return s},r.getValidEnumValues=i=>{const s=r.objectKeys(i).filter(a=>typeof i[i[a]]!="number"),o={};for(const a of s)o[a]=i[a];return r.objectValues(o)},r.objectValues=i=>r.objectKeys(i).map(function(s){return i[s]}),r.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{const s=[];for(const o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},r.find=(i,s)=>{for(const o of i)if(s(o))return o},r.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&isFinite(i)&&Math.floor(i)===i;function n(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}r.joinValues=n,r.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(gt||(gt={}));var jg;(function(r){r.mergeShapes=(e,t)=>({...e,...t})})(jg||(jg={}));const Te=gt.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),bs=r=>{switch(typeof r){case"undefined":return Te.undefined;case"string":return Te.string;case"number":return isNaN(r)?Te.nan:Te.number;case"boolean":return Te.boolean;case"function":return Te.function;case"bigint":return Te.bigint;case"symbol":return Te.symbol;case"object":return Array.isArray(r)?Te.array:r===null?Te.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?Te.promise:typeof Map<"u"&&r instanceof Map?Te.map:typeof Set<"u"&&r instanceof Set?Te.set:typeof Date<"u"&&r instanceof Date?Te.date:Te.object;default:return Te.unknown}},we=gt.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),u4=r=>JSON.stringify(r,null,2).replace(/"([^"]+)":/g,"$1:");class $n extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=n=>{this.issues=[...this.issues,n]},this.addIssues=(n=[])=>{this.issues=[...this.issues,...n]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(s){return s.message},n={_errors:[]},i=s=>{for(const o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)n._errors.push(t(o));else{let a=n,u=0;for(;u<o.path.length;){const l=o.path[u];u===o.path.length-1?(a[l]=a[l]||{_errors:[]},a[l]._errors.push(t(o))):a[l]=a[l]||{_errors:[]},a=a[l],u++}}};return i(this),n}static assert(e){if(!(e instanceof $n))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,gt.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){const t={},n=[];for(const i of this.issues)i.path.length>0?(t[i.path[0]]=t[i.path[0]]||[],t[i.path[0]].push(e(i))):n.push(e(i));return{formErrors:n,fieldErrors:t}}get formErrors(){return this.flatten()}}$n.create=r=>new $n(r);const Gc=(r,e)=>{let t;switch(r.code){case we.invalid_type:r.received===Te.undefined?t="Required":t=`Expected ${r.expected}, received ${r.received}`;break;case we.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(r.expected,gt.jsonStringifyReplacer)}`;break;case we.unrecognized_keys:t=`Unrecognized key(s) in object: ${gt.joinValues(r.keys,", ")}`;break;case we.invalid_union:t="Invalid input";break;case we.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${gt.joinValues(r.options)}`;break;case we.invalid_enum_value:t=`Invalid enum value. Expected ${gt.joinValues(r.options)}, received '${r.received}'`;break;case we.invalid_arguments:t="Invalid function arguments";break;case we.invalid_return_type:t="Invalid function return type";break;case we.invalid_date:t="Invalid date";break;case we.invalid_string:typeof r.validation=="object"?"includes"in r.validation?(t=`Invalid input: must include "${r.validation.includes}"`,typeof r.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${r.validation.position}`)):"startsWith"in r.validation?t=`Invalid input: must start with "${r.validation.startsWith}"`:"endsWith"in r.validation?t=`Invalid input: must end with "${r.validation.endsWith}"`:gt.assertNever(r.validation):r.validation!=="regex"?t=`Invalid ${r.validation}`:t="Invalid";break;case we.too_small:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at least":"more than"} ${r.minimum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at least":"over"} ${r.minimum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(r.minimum))}`:t="Invalid input";break;case we.too_big:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at most":"less than"} ${r.maximum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at most":"under"} ${r.maximum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="bigint"?t=`BigInt must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly":r.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(r.maximum))}`:t="Invalid input";break;case we.custom:t="Invalid input";break;case we.invalid_intersection_types:t="Intersection results could not be merged";break;case we.not_multiple_of:t=`Number must be a multiple of ${r.multipleOf}`;break;case we.not_finite:t="Number must be finite";break;default:t=e.defaultError,gt.assertNever(r)}return{message:t}};let EA=Gc;function l4(r){EA=r}function $d(){return EA}const Fd=r=>{const{data:e,path:t,errorMaps:n,issueData:i}=r,s=[...t,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let a="";const u=n.filter(l=>!!l).slice().reverse();for(const l of u)a=l(o,{data:e,defaultError:a}).message;return{...i,path:s,message:a}},f4=[];function xe(r,e){const t=$d(),n=Fd({issueData:e,data:r.data,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,t,t===Gc?void 0:Gc].filter(i=>!!i)});r.common.issues.push(n)}class tn{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){const n=[];for(const i of t){if(i.status==="aborted")return je;i.status==="dirty"&&e.dirty(),n.push(i.value)}return{status:e.value,value:n}}static async mergeObjectAsync(e,t){const n=[];for(const i of t){const s=await i.key,o=await i.value;n.push({key:s,value:o})}return tn.mergeObjectSync(e,n)}static mergeObjectSync(e,t){const n={};for(const i of t){const{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return je;s.status==="dirty"&&e.dirty(),o.status==="dirty"&&e.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(n[s.value]=o.value)}return{status:e.value,value:n}}}const je=Object.freeze({status:"aborted"}),Kc=r=>({status:"dirty",value:r}),dn=r=>({status:"valid",value:r}),Wg=r=>r.status==="aborted",Vg=r=>r.status==="dirty",pa=r=>r.status==="valid",Jl=r=>typeof Promise<"u"&&r instanceof Promise;function Hd(r,e,t,n){if(typeof e=="function"?r!==e||!n:!e.has(r))throw new TypeError("Cannot read private member from an object whose class did not declare it");return e.get(r)}function xA(r,e,t,n,i){if(typeof e=="function"?r!==e||!i:!e.has(r))throw new TypeError("Cannot write private member to an object whose class did not declare it");return e.set(r,t),t}typeof SuppressedError=="function"&&SuppressedError;var Ue;(function(r){r.errToObj=e=>typeof e=="string"?{message:e}:e||{},r.toString=e=>typeof e=="string"?e:e==null?void 0:e.message})(Ue||(Ue={}));var Xl,ef;class Di{constructor(e,t,n,i){this._cachedPath=[],this.parent=e,this.data=t,this._path=n,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const RA=(r,e)=>{if(pa(e))return{success:!0,data:e.value};if(!r.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new $n(r.common.issues);return this._error=t,this._error}}};function Je(r){if(!r)return{};const{errorMap:e,invalid_type_error:t,required_error:n,description:i}=r;if(e&&(t||n))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:i}:{errorMap:(o,a)=>{var u,l;const{message:h}=r;return o.code==="invalid_enum_value"?{message:h??a.defaultError}:typeof a.data>"u"?{message:(u=h??n)!==null&&u!==void 0?u:a.defaultError}:o.code!=="invalid_type"?{message:a.defaultError}:{message:(l=h??t)!==null&&l!==void 0?l:a.defaultError}},description:i}}class tt{get description(){return this._def.description}_getType(e){return bs(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:bs(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new tn,ctx:{common:e.parent.common,data:e.data,parsedType:bs(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(Jl(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const n=this.safeParse(e,t);if(n.success)return n.data;throw n.error}safeParse(e,t){var n;const i={common:{issues:[],async:(n=t==null?void 0:t.async)!==null&&n!==void 0?n:!1,contextualErrorMap:t==null?void 0:t.errorMap},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:bs(e)},s=this._parseSync({data:e,path:i.path,parent:i});return RA(i,s)}"~validate"(e){var t,n;const i={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:bs(e)};if(!this["~standard"].async)try{const s=this._parseSync({data:e,path:[],parent:i});return pa(s)?{value:s.value}:{issues:i.common.issues}}catch(s){!((n=(t=s==null?void 0:s.message)===null||t===void 0?void 0:t.toLowerCase())===null||n===void 0)&&n.includes("encountered")&&(this["~standard"].async=!0),i.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:i}).then(s=>pa(s)?{value:s.value}:{issues:i.common.issues})}async parseAsync(e,t){const n=await this.safeParseAsync(e,t);if(n.success)return n.data;throw n.error}async safeParseAsync(e,t){const n={common:{issues:[],contextualErrorMap:t==null?void 0:t.errorMap,async:!0},path:(t==null?void 0:t.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:bs(e)},i=this._parse({data:e,path:n.path,parent:n}),s=await(Jl(i)?i:Promise.resolve(i));return RA(n,s)}refine(e,t){const n=i=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(i):t;return this._refinement((i,s)=>{const o=e(i),a=()=>s.addIssue({code:we.custom,...n(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(a(),!1)):o?!0:(a(),!1)})}refinement(e,t){return this._refinement((n,i)=>e(n)?!0:(i.addIssue(typeof t=="function"?t(n,i):t),!1))}_refinement(e){return new bi({schema:this,typeName:Ke.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:t=>this["~validate"](t)}}optional(){return Fi.create(this,this._def)}nullable(){return lo.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return wi.create(this)}promise(){return qc.create(this,this._def)}or(e){return sf.create([this,e],this._def)}and(e){return of.create(this,e,this._def)}transform(e){return new bi({...Je(this._def),schema:this,typeName:Ke.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new ff({...Je(this._def),innerType:this,defaultValue:t,typeName:Ke.ZodDefault})}brand(){return new Qg({typeName:Ke.ZodBranded,type:this,...Je(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new hf({...Je(this._def),innerType:this,catchValue:t,typeName:Ke.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return df.create(this,e)}readonly(){return pf.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const h4=/^c[^\s-]{8,}$/i,d4=/^[0-9a-z]+$/,p4=/^[0-9A-HJKMNP-TV-Z]{26}$/i,g4=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,y4=/^[a-z0-9_-]{21}$/i,m4=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,w4=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,b4=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,_4="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let qg;const A4=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,v4=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,E4=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,x4=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,R4=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,I4=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,IA="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",S4=new RegExp(`^${IA}$`);function SA(r){let e="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return r.precision?e=`${e}\\.\\d{${r.precision}}`:r.precision==null&&(e=`${e}(\\.\\d+)?`),e}function k4(r){return new RegExp(`^${SA(r)}$`)}function kA(r){let e=`${IA}T${SA(r)}`;const t=[];return t.push(r.local?"Z?":"Z"),r.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function T4(r,e){return!!((e==="v4"||!e)&&A4.test(r)||(e==="v6"||!e)&&E4.test(r))}function O4(r,e){if(!m4.test(r))return!1;try{const[t]=r.split("."),n=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),i=JSON.parse(atob(n));return!(typeof i!="object"||i===null||!i.typ||!i.alg||e&&i.alg!==e)}catch{return!1}}function N4(r,e){return!!((e==="v4"||!e)&&v4.test(r)||(e==="v6"||!e)&&x4.test(r))}class mi extends tt{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==Te.string){const s=this._getOrReturnCtx(e);return xe(s,{code:we.invalid_type,expected:Te.string,received:s.parsedType}),je}const n=new tn;let i;for(const s of this._def.checks)if(s.kind==="min")e.data.length<s.value&&(i=this._getOrReturnCtx(e,i),xe(i,{code:we.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="max")e.data.length>s.value&&(i=this._getOrReturnCtx(e,i),xe(i,{code:we.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),n.dirty());else if(s.kind==="length"){const o=e.data.length>s.value,a=e.data.length<s.value;(o||a)&&(i=this._getOrReturnCtx(e,i),o?xe(i,{code:we.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):a&&xe(i,{code:we.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),n.dirty())}else if(s.kind==="email")b4.test(e.data)||(i=this._getOrReturnCtx(e,i),xe(i,{validation:"email",code:we.invalid_string,message:s.message}),n.dirty());else if(s.kind==="emoji")qg||(qg=new RegExp(_4,"u")),qg.test(e.data)||(i=this._getOrReturnCtx(e,i),xe(i,{validation:"emoji",code:we.invalid_string,message:s.message}),n.dirty());else if(s.kind==="uuid")g4.test(e.data)||(i=this._getOrReturnCtx(e,i),xe(i,{validation:"uuid",code:we.invalid_string,message:s.message}),n.dirty());else if(s.kind==="nanoid")y4.test(e.data)||(i=this._getOrReturnCtx(e,i),xe(i,{validation:"nanoid",code:we.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid")h4.test(e.data)||(i=this._getOrReturnCtx(e,i),xe(i,{validation:"cuid",code:we.invalid_string,message:s.message}),n.dirty());else if(s.kind==="cuid2")d4.test(e.data)||(i=this._getOrReturnCtx(e,i),xe(i,{validation:"cuid2",code:we.invalid_string,message:s.message}),n.dirty());else if(s.kind==="ulid")p4.test(e.data)||(i=this._getOrReturnCtx(e,i),xe(i,{validation:"ulid",code:we.invalid_string,message:s.message}),n.dirty());else if(s.kind==="url")try{new URL(e.data)}catch{i=this._getOrReturnCtx(e,i),xe(i,{validation:"url",code:we.invalid_string,message:s.message}),n.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(e.data)||(i=this._getOrReturnCtx(e,i),xe(i,{validation:"regex",code:we.invalid_string,message:s.message}),n.dirty())):s.kind==="trim"?e.data=e.data.trim():s.kind==="includes"?e.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(e,i),xe(i,{code:we.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),n.dirty()):s.kind==="toLowerCase"?e.data=e.data.toLowerCase():s.kind==="toUpperCase"?e.data=e.data.toUpperCase():s.kind==="startsWith"?e.data.startsWith(s.value)||(i=this._getOrReturnCtx(e,i),xe(i,{code:we.invalid_string,validation:{startsWith:s.value},message:s.message}),n.dirty()):s.kind==="endsWith"?e.data.endsWith(s.value)||(i=this._getOrReturnCtx(e,i),xe(i,{code:we.invalid_string,validation:{endsWith:s.value},message:s.message}),n.dirty()):s.kind==="datetime"?kA(s).test(e.data)||(i=this._getOrReturnCtx(e,i),xe(i,{code:we.invalid_string,validation:"datetime",message:s.message}),n.dirty()):s.kind==="date"?S4.test(e.data)||(i=this._getOrReturnCtx(e,i),xe(i,{code:we.invalid_string,validation:"date",message:s.message}),n.dirty()):s.kind==="time"?k4(s).test(e.data)||(i=this._getOrReturnCtx(e,i),xe(i,{code:we.invalid_string,validation:"time",message:s.message}),n.dirty()):s.kind==="duration"?w4.test(e.data)||(i=this._getOrReturnCtx(e,i),xe(i,{validation:"duration",code:we.invalid_string,message:s.message}),n.dirty()):s.kind==="ip"?T4(e.data,s.version)||(i=this._getOrReturnCtx(e,i),xe(i,{validation:"ip",code:we.invalid_string,message:s.message}),n.dirty()):s.kind==="jwt"?O4(e.data,s.alg)||(i=this._getOrReturnCtx(e,i),xe(i,{validation:"jwt",code:we.invalid_string,message:s.message}),n.dirty()):s.kind==="cidr"?N4(e.data,s.version)||(i=this._getOrReturnCtx(e,i),xe(i,{validation:"cidr",code:we.invalid_string,message:s.message}),n.dirty()):s.kind==="base64"?R4.test(e.data)||(i=this._getOrReturnCtx(e,i),xe(i,{validation:"base64",code:we.invalid_string,message:s.message}),n.dirty()):s.kind==="base64url"?I4.test(e.data)||(i=this._getOrReturnCtx(e,i),xe(i,{validation:"base64url",code:we.invalid_string,message:s.message}),n.dirty()):gt.assertNever(s);return{status:n.value,value:e.data}}_regex(e,t,n){return this.refinement(i=>e.test(i),{validation:t,code:we.invalid_string,...Ue.errToObj(n)})}_addCheck(e){return new mi({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...Ue.errToObj(e)})}url(e){return this._addCheck({kind:"url",...Ue.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...Ue.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...Ue.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...Ue.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...Ue.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...Ue.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...Ue.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...Ue.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...Ue.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...Ue.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...Ue.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...Ue.errToObj(e)})}datetime(e){var t,n;return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,offset:(t=e==null?void 0:e.offset)!==null&&t!==void 0?t:!1,local:(n=e==null?void 0:e.local)!==null&&n!==void 0?n:!1,...Ue.errToObj(e==null?void 0:e.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof(e==null?void 0:e.precision)>"u"?null:e==null?void 0:e.precision,...Ue.errToObj(e==null?void 0:e.message)})}duration(e){return this._addCheck({kind:"duration",...Ue.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...Ue.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t==null?void 0:t.position,...Ue.errToObj(t==null?void 0:t.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...Ue.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...Ue.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...Ue.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...Ue.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...Ue.errToObj(t)})}nonempty(e){return this.min(1,Ue.errToObj(e))}trim(){return new mi({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new mi({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new mi({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}mi.create=r=>{var e;return new mi({checks:[],typeName:Ke.ZodString,coerce:(e=r==null?void 0:r.coerce)!==null&&e!==void 0?e:!1,...Je(r)})};function C4(r,e){const t=(r.toString().split(".")[1]||"").length,n=(e.toString().split(".")[1]||"").length,i=t>n?t:n,s=parseInt(r.toFixed(i).replace(".","")),o=parseInt(e.toFixed(i).replace(".",""));return s%o/Math.pow(10,i)}class ao extends tt{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==Te.number){const s=this._getOrReturnCtx(e);return xe(s,{code:we.invalid_type,expected:Te.number,received:s.parsedType}),je}let n;const i=new tn;for(const s of this._def.checks)s.kind==="int"?gt.isInteger(e.data)||(n=this._getOrReturnCtx(e,n),xe(n,{code:we.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),xe(n,{code:we.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),xe(n,{code:we.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?C4(e.data,s.value)!==0&&(n=this._getOrReturnCtx(e,n),xe(n,{code:we.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(e.data)||(n=this._getOrReturnCtx(e,n),xe(n,{code:we.not_finite,message:s.message}),i.dirty()):gt.assertNever(s);return{status:i.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,Ue.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Ue.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Ue.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Ue.toString(t))}setLimit(e,t,n,i){return new ao({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Ue.toString(i)}]})}_addCheck(e){return new ao({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:Ue.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Ue.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Ue.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Ue.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Ue.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Ue.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:Ue.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Ue.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Ue.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&>.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const n of this._def.checks){if(n.kind==="finite"||n.kind==="int"||n.kind==="multipleOf")return!0;n.kind==="min"?(t===null||n.value>t)&&(t=n.value):n.kind==="max"&&(e===null||n.value<e)&&(e=n.value)}return Number.isFinite(t)&&Number.isFinite(e)}}ao.create=r=>new ao({checks:[],typeName:Ke.ZodNumber,coerce:(r==null?void 0:r.coerce)||!1,...Je(r)});class co extends tt{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==Te.bigint)return this._getInvalidInput(e);let n;const i=new tn;for(const s of this._def.checks)s.kind==="min"?(s.inclusive?e.data<s.value:e.data<=s.value)&&(n=this._getOrReturnCtx(e,n),xe(n,{code:we.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?e.data>s.value:e.data>=s.value)&&(n=this._getOrReturnCtx(e,n),xe(n,{code:we.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?e.data%s.value!==BigInt(0)&&(n=this._getOrReturnCtx(e,n),xe(n,{code:we.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):gt.assertNever(s);return{status:i.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return xe(t,{code:we.invalid_type,expected:Te.bigint,received:t.parsedType}),je}gte(e,t){return this.setLimit("min",e,!0,Ue.toString(t))}gt(e,t){return this.setLimit("min",e,!1,Ue.toString(t))}lte(e,t){return this.setLimit("max",e,!0,Ue.toString(t))}lt(e,t){return this.setLimit("max",e,!1,Ue.toString(t))}setLimit(e,t,n,i){return new co({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:n,message:Ue.toString(i)}]})}_addCheck(e){return new co({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Ue.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Ue.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Ue.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Ue.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:Ue.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}co.create=r=>{var e;return new co({checks:[],typeName:Ke.ZodBigInt,coerce:(e=r==null?void 0:r.coerce)!==null&&e!==void 0?e:!1,...Je(r)})};class tf extends tt{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==Te.boolean){const n=this._getOrReturnCtx(e);return xe(n,{code:we.invalid_type,expected:Te.boolean,received:n.parsedType}),je}return dn(e.data)}}tf.create=r=>new tf({typeName:Ke.ZodBoolean,coerce:(r==null?void 0:r.coerce)||!1,...Je(r)});class ga extends tt{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==Te.date){const s=this._getOrReturnCtx(e);return xe(s,{code:we.invalid_type,expected:Te.date,received:s.parsedType}),je}if(isNaN(e.data.getTime())){const s=this._getOrReturnCtx(e);return xe(s,{code:we.invalid_date}),je}const n=new tn;let i;for(const s of this._def.checks)s.kind==="min"?e.data.getTime()<s.value&&(i=this._getOrReturnCtx(e,i),xe(i,{code:we.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),n.dirty()):s.kind==="max"?e.data.getTime()>s.value&&(i=this._getOrReturnCtx(e,i),xe(i,{code:we.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),n.dirty()):gt.assertNever(s);return{status:n.value,value:new Date(e.data.getTime())}}_addCheck(e){return new ga({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:Ue.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:Ue.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}}ga.create=r=>new ga({checks:[],coerce:(r==null?void 0:r.coerce)||!1,typeName:Ke.ZodDate,...Je(r)});class zd extends tt{_parse(e){if(this._getType(e)!==Te.symbol){const n=this._getOrReturnCtx(e);return xe(n,{code:we.invalid_type,expected:Te.symbol,received:n.parsedType}),je}return dn(e.data)}}zd.create=r=>new zd({typeName:Ke.ZodSymbol,...Je(r)});class rf extends tt{_parse(e){if(this._getType(e)!==Te.undefined){const n=this._getOrReturnCtx(e);return xe(n,{code:we.invalid_type,expected:Te.undefined,received:n.parsedType}),je}return dn(e.data)}}rf.create=r=>new rf({typeName:Ke.ZodUndefined,...Je(r)});class nf extends tt{_parse(e){if(this._getType(e)!==Te.null){const n=this._getOrReturnCtx(e);return xe(n,{code:we.invalid_type,expected:Te.null,received:n.parsedType}),je}return dn(e.data)}}nf.create=r=>new nf({typeName:Ke.ZodNull,...Je(r)});class jc extends tt{constructor(){super(...arguments),this._any=!0}_parse(e){return dn(e.data)}}jc.create=r=>new jc({typeName:Ke.ZodAny,...Je(r)});class ya extends tt{constructor(){super(...arguments),this._unknown=!0}_parse(e){return dn(e.data)}}ya.create=r=>new ya({typeName:Ke.ZodUnknown,...Je(r)});class _s extends tt{_parse(e){const t=this._getOrReturnCtx(e);return xe(t,{code:we.invalid_type,expected:Te.never,received:t.parsedType}),je}}_s.create=r=>new _s({typeName:Ke.ZodNever,...Je(r)});class Gd extends tt{_parse(e){if(this._getType(e)!==Te.undefined){const n=this._getOrReturnCtx(e);return xe(n,{code:we.invalid_type,expected:Te.void,received:n.parsedType}),je}return dn(e.data)}}Gd.create=r=>new Gd({typeName:Ke.ZodVoid,...Je(r)});class wi extends tt{_parse(e){const{ctx:t,status:n}=this._processInputParams(e),i=this._def;if(t.parsedType!==Te.array)return xe(t,{code:we.invalid_type,expected:Te.array,received:t.parsedType}),je;if(i.exactLength!==null){const o=t.data.length>i.exactLength.value,a=t.data.length<i.exactLength.value;(o||a)&&(xe(t,{code:o?we.too_big:we.too_small,minimum:a?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),n.dirty())}if(i.minLength!==null&&t.data.length<i.minLength.value&&(xe(t,{code:we.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),n.dirty()),i.maxLength!==null&&t.data.length>i.maxLength.value&&(xe(t,{code:we.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),n.dirty()),t.common.async)return Promise.all([...t.data].map((o,a)=>i.type._parseAsync(new Di(t,o,t.path,a)))).then(o=>tn.mergeArray(n,o));const s=[...t.data].map((o,a)=>i.type._parseSync(new Di(t,o,t.path,a)));return tn.mergeArray(n,s)}get element(){return this._def.type}min(e,t){return new wi({...this._def,minLength:{value:e,message:Ue.toString(t)}})}max(e,t){return new wi({...this._def,maxLength:{value:e,message:Ue.toString(t)}})}length(e,t){return new wi({...this._def,exactLength:{value:e,message:Ue.toString(t)}})}nonempty(e){return this.min(1,e)}}wi.create=(r,e)=>new wi({type:r,minLength:null,maxLength:null,exactLength:null,typeName:Ke.ZodArray,...Je(e)});function Wc(r){if(r instanceof er){const e={};for(const t in r.shape){const n=r.shape[t];e[t]=Fi.create(Wc(n))}return new er({...r._def,shape:()=>e})}else return r instanceof wi?new wi({...r._def,type:Wc(r.element)}):r instanceof Fi?Fi.create(Wc(r.unwrap())):r instanceof lo?lo.create(Wc(r.unwrap())):r instanceof $i?$i.create(r.items.map(e=>Wc(e))):r}class er extends tt{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),t=gt.objectKeys(e);return this._cached={shape:e,keys:t}}_parse(e){if(this._getType(e)!==Te.object){const l=this._getOrReturnCtx(e);return xe(l,{code:we.invalid_type,expected:Te.object,received:l.parsedType}),je}const{status:n,ctx:i}=this._processInputParams(e),{shape:s,keys:o}=this._getCached(),a=[];if(!(this._def.catchall instanceof _s&&this._def.unknownKeys==="strip"))for(const l in i.data)o.includes(l)||a.push(l);const u=[];for(const l of o){const h=s[l],g=i.data[l];u.push({key:{status:"valid",value:l},value:h._parse(new Di(i,g,i.path,l)),alwaysSet:l in i.data})}if(this._def.catchall instanceof _s){const l=this._def.unknownKeys;if(l==="passthrough")for(const h of a)u.push({key:{status:"valid",value:h},value:{status:"valid",value:i.data[h]}});else if(l==="strict")a.length>0&&(xe(i,{code:we.unrecognized_keys,keys:a}),n.dirty());else if(l!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const l=this._def.catchall;for(const h of a){const g=i.data[h];u.push({key:{status:"valid",value:h},value:l._parse(new Di(i,g,i.path,h)),alwaysSet:h in i.data})}}return i.common.async?Promise.resolve().then(async()=>{const l=[];for(const h of u){const g=await h.key,b=await h.value;l.push({key:g,value:b,alwaysSet:h.alwaysSet})}return l}).then(l=>tn.mergeObjectSync(n,l)):tn.mergeObjectSync(n,u)}get shape(){return this._def.shape()}strict(e){return Ue.errToObj,new er({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,n)=>{var i,s,o,a;const u=(o=(s=(i=this._def).errorMap)===null||s===void 0?void 0:s.call(i,t,n).message)!==null&&o!==void 0?o:n.defaultError;return t.code==="unrecognized_keys"?{message:(a=Ue.errToObj(e).message)!==null&&a!==void 0?a:u}:{message:u}}}:{}})}strip(){return new er({...this._def,unknownKeys:"strip"})}passthrough(){return new er({...this._def,unknownKeys:"passthrough"})}extend(e){return new er({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new er({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:Ke.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new er({...this._def,catchall:e})}pick(e){const t={};return gt.objectKeys(e).forEach(n=>{e[n]&&this.shape[n]&&(t[n]=this.shape[n])}),new er({...this._def,shape:()=>t})}omit(e){const t={};return gt.objectKeys(this.shape).forEach(n=>{e[n]||(t[n]=this.shape[n])}),new er({...this._def,shape:()=>t})}deepPartial(){return Wc(this)}partial(e){const t={};return gt.objectKeys(this.shape).forEach(n=>{const i=this.shape[n];e&&!e[n]?t[n]=i:t[n]=i.optional()}),new er({...this._def,shape:()=>t})}required(e){const t={};return gt.objectKeys(this.shape).forEach(n=>{if(e&&!e[n])t[n]=this.shape[n];else{let s=this.shape[n];for(;s instanceof Fi;)s=s._def.innerType;t[n]=s}}),new er({...this._def,shape:()=>t})}keyof(){return TA(gt.objectKeys(this.shape))}}er.create=(r,e)=>new er({shape:()=>r,unknownKeys:"strip",catchall:_s.create(),typeName:Ke.ZodObject,...Je(e)}),er.strictCreate=(r,e)=>new er({shape:()=>r,unknownKeys:"strict",catchall:_s.create(),typeName:Ke.ZodObject,...Je(e)}),er.lazycreate=(r,e)=>new er({shape:r,unknownKeys:"strip",catchall:_s.create(),typeName:Ke.ZodObject,...Je(e)});class sf extends tt{_parse(e){const{ctx:t}=this._processInputParams(e),n=this._def.options;function i(s){for(const a of s)if(a.result.status==="valid")return a.result;for(const a of s)if(a.result.status==="dirty")return t.common.issues.push(...a.ctx.common.issues),a.result;const o=s.map(a=>new $n(a.ctx.common.issues));return xe(t,{code:we.invalid_union,unionErrors:o}),je}if(t.common.async)return Promise.all(n.map(async s=>{const o={...t,common:{...t.common,issues:[]},parent:null};return{result:await s._parseAsync({data:t.data,path:t.path,parent:o}),ctx:o}})).then(i);{let s;const o=[];for(const u of n){const l={...t,common:{...t.common,issues:[]},parent:null},h=u._parseSync({data:t.data,path:t.path,parent:l});if(h.status==="valid")return h;h.status==="dirty"&&!s&&(s={result:h,ctx:l}),l.common.issues.length&&o.push(l.common.issues)}if(s)return t.common.issues.push(...s.ctx.common.issues),s.result;const a=o.map(u=>new $n(u));return xe(t,{code:we.invalid_union,unionErrors:a}),je}}get options(){return this._def.options}}sf.create=(r,e)=>new sf({options:r,typeName:Ke.ZodUnion,...Je(e)});const As=r=>r instanceof cf?As(r.schema):r instanceof bi?As(r.innerType()):r instanceof uf?[r.value]:r instanceof uo?r.options:r instanceof lf?gt.objectValues(r.enum):r instanceof ff?As(r._def.innerType):r instanceof rf?[void 0]:r instanceof nf?[null]:r instanceof Fi?[void 0,...As(r.unwrap())]:r instanceof lo?[null,...As(r.unwrap())]:r instanceof Qg||r instanceof pf?As(r.unwrap()):r instanceof hf?As(r._def.innerType):[];class Kd extends tt{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==Te.object)return xe(t,{code:we.invalid_type,expected:Te.object,received:t.parsedType}),je;const n=this.discriminator,i=t.data[n],s=this.optionsMap.get(i);return s?t.common.async?s._parseAsync({data:t.data,path:t.path,parent:t}):s._parseSync({data:t.data,path:t.path,parent:t}):(xe(t,{code:we.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[n]}),je)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,n){const i=new Map;for(const s of t){const o=As(s.shape[e]);if(!o.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const a of o){if(i.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);i.set(a,s)}}return new Kd({typeName:Ke.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:i,...Je(n)})}}function Zg(r,e){const t=bs(r),n=bs(e);if(r===e)return{valid:!0,data:r};if(t===Te.object&&n===Te.object){const i=gt.objectKeys(e),s=gt.objectKeys(r).filter(a=>i.indexOf(a)!==-1),o={...r,...e};for(const a of s){const u=Zg(r[a],e[a]);if(!u.valid)return{valid:!1};o[a]=u.data}return{valid:!0,data:o}}else if(t===Te.array&&n===Te.array){if(r.length!==e.length)return{valid:!1};const i=[];for(let s=0;s<r.length;s++){const o=r[s],a=e[s],u=Zg(o,a);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return t===Te.date&&n===Te.date&&+r==+e?{valid:!0,data:r}:{valid:!1}}class of extends tt{_parse(e){const{status:t,ctx:n}=this._processInputParams(e),i=(s,o)=>{if(Wg(s)||Wg(o))return je;const a=Zg(s.value,o.value);return a.valid?((Vg(s)||Vg(o))&&t.dirty(),{status:t.value,value:a.data}):(xe(n,{code:we.invalid_intersection_types}),je)};return n.common.async?Promise.all([this._def.left._parseAsync({data:n.data,path:n.path,parent:n}),this._def.right._parseAsync({data:n.data,path:n.path,parent:n})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:n.data,path:n.path,parent:n}),this._def.right._parseSync({data:n.data,path:n.path,parent:n}))}}of.create=(r,e,t)=>new of({left:r,right:e,typeName:Ke.ZodIntersection,...Je(t)});class $i extends tt{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Te.array)return xe(n,{code:we.invalid_type,expected:Te.array,received:n.parsedType}),je;if(n.data.length<this._def.items.length)return xe(n,{code:we.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),je;!this._def.rest&&n.data.length>this._def.items.length&&(xe(n,{code:we.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const s=[...n.data].map((o,a)=>{const u=this._def.items[a]||this._def.rest;return u?u._parse(new Di(n,o,n.path,a)):null}).filter(o=>!!o);return n.common.async?Promise.all(s).then(o=>tn.mergeArray(t,o)):tn.mergeArray(t,s)}get items(){return this._def.items}rest(e){return new $i({...this._def,rest:e})}}$i.create=(r,e)=>{if(!Array.isArray(r))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new $i({items:r,typeName:Ke.ZodTuple,rest:null,...Je(e)})};class af extends tt{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Te.object)return xe(n,{code:we.invalid_type,expected:Te.object,received:n.parsedType}),je;const i=[],s=this._def.keyType,o=this._def.valueType;for(const a in n.data)i.push({key:s._parse(new Di(n,a,n.path,a)),value:o._parse(new Di(n,n.data[a],n.path,a)),alwaysSet:a in n.data});return n.common.async?tn.mergeObjectAsync(t,i):tn.mergeObjectSync(t,i)}get element(){return this._def.valueType}static create(e,t,n){return t instanceof tt?new af({keyType:e,valueType:t,typeName:Ke.ZodRecord,...Je(n)}):new af({keyType:mi.create(),valueType:e,typeName:Ke.ZodRecord,...Je(t)})}}class jd extends tt{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Te.map)return xe(n,{code:we.invalid_type,expected:Te.map,received:n.parsedType}),je;const i=this._def.keyType,s=this._def.valueType,o=[...n.data.entries()].map(([a,u],l)=>({key:i._parse(new Di(n,a,n.path,[l,"key"])),value:s._parse(new Di(n,u,n.path,[l,"value"]))}));if(n.common.async){const a=new Map;return Promise.resolve().then(async()=>{for(const u of o){const l=await u.key,h=await u.value;if(l.status==="aborted"||h.status==="aborted")return je;(l.status==="dirty"||h.status==="dirty")&&t.dirty(),a.set(l.value,h.value)}return{status:t.value,value:a}})}else{const a=new Map;for(const u of o){const l=u.key,h=u.value;if(l.status==="aborted"||h.status==="aborted")return je;(l.status==="dirty"||h.status==="dirty")&&t.dirty(),a.set(l.value,h.value)}return{status:t.value,value:a}}}}jd.create=(r,e,t)=>new jd({valueType:e,keyType:r,typeName:Ke.ZodMap,...Je(t)});class ma extends tt{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.parsedType!==Te.set)return xe(n,{code:we.invalid_type,expected:Te.set,received:n.parsedType}),je;const i=this._def;i.minSize!==null&&n.data.size<i.minSize.value&&(xe(n,{code:we.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),t.dirty()),i.maxSize!==null&&n.data.size>i.maxSize.value&&(xe(n,{code:we.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),t.dirty());const s=this._def.valueType;function o(u){const l=new Set;for(const h of u){if(h.status==="aborted")return je;h.status==="dirty"&&t.dirty(),l.add(h.value)}return{status:t.value,value:l}}const a=[...n.data.values()].map((u,l)=>s._parse(new Di(n,u,n.path,l)));return n.common.async?Promise.all(a).then(u=>o(u)):o(a)}min(e,t){return new ma({...this._def,minSize:{value:e,message:Ue.toString(t)}})}max(e,t){return new ma({...this._def,maxSize:{value:e,message:Ue.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}ma.create=(r,e)=>new ma({valueType:r,minSize:null,maxSize:null,typeName:Ke.ZodSet,...Je(e)});class Vc extends tt{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==Te.function)return xe(t,{code:we.invalid_type,expected:Te.function,received:t.parsedType}),je;function n(a,u){return Fd({data:a,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,$d(),Gc].filter(l=>!!l),issueData:{code:we.invalid_arguments,argumentsError:u}})}function i(a,u){return Fd({data:a,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,$d(),Gc].filter(l=>!!l),issueData:{code:we.invalid_return_type,returnTypeError:u}})}const s={errorMap:t.common.contextualErrorMap},o=t.data;if(this._def.returns instanceof qc){const a=this;return dn(async function(...u){const l=new $n([]),h=await a._def.args.parseAsync(u,s).catch(w=>{throw l.addIssue(n(u,w)),l}),g=await Reflect.apply(o,this,h);return await a._def.returns._def.type.parseAsync(g,s).catch(w=>{throw l.addIssue(i(g,w)),l})})}else{const a=this;return dn(function(...u){const l=a._def.args.safeParse(u,s);if(!l.success)throw new $n([n(u,l.error)]);const h=Reflect.apply(o,this,l.data),g=a._def.returns.safeParse(h,s);if(!g.success)throw new $n([i(h,g.error)]);return g.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new Vc({...this._def,args:$i.create(e).rest(ya.create())})}returns(e){return new Vc({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,n){return new Vc({args:e||$i.create([]).rest(ya.create()),returns:t||ya.create(),typeName:Ke.ZodFunction,...Je(n)})}}class cf extends tt{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}cf.create=(r,e)=>new cf({getter:r,typeName:Ke.ZodLazy,...Je(e)});class uf extends tt{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return xe(t,{received:t.data,code:we.invalid_literal,expected:this._def.value}),je}return{status:"valid",value:e.data}}get value(){return this._def.value}}uf.create=(r,e)=>new uf({value:r,typeName:Ke.ZodLiteral,...Je(e)});function TA(r,e){return new uo({values:r,typeName:Ke.ZodEnum,...Je(e)})}class uo extends tt{constructor(){super(...arguments),Xl.set(this,void 0)}_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),n=this._def.values;return xe(t,{expected:gt.joinValues(n),received:t.parsedType,code:we.invalid_type}),je}if(Hd(this,Xl)||xA(this,Xl,new Set(this._def.values)),!Hd(this,Xl).has(e.data)){const t=this._getOrReturnCtx(e),n=this._def.values;return xe(t,{received:t.data,code:we.invalid_enum_value,options:n}),je}return dn(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return uo.create(e,{...this._def,...t})}exclude(e,t=this._def){return uo.create(this.options.filter(n=>!e.includes(n)),{...this._def,...t})}}Xl=new WeakMap,uo.create=TA;class lf extends tt{constructor(){super(...arguments),ef.set(this,void 0)}_parse(e){const t=gt.getValidEnumValues(this._def.values),n=this._getOrReturnCtx(e);if(n.parsedType!==Te.string&&n.parsedType!==Te.number){const i=gt.objectValues(t);return xe(n,{expected:gt.joinValues(i),received:n.parsedType,code:we.invalid_type}),je}if(Hd(this,ef)||xA(this,ef,new Set(gt.getValidEnumValues(this._def.values))),!Hd(this,ef).has(e.data)){const i=gt.objectValues(t);return xe(n,{received:n.data,code:we.invalid_enum_value,options:i}),je}return dn(e.data)}get enum(){return this._def.values}}ef=new WeakMap,lf.create=(r,e)=>new lf({values:r,typeName:Ke.ZodNativeEnum,...Je(e)});class qc extends tt{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==Te.promise&&t.common.async===!1)return xe(t,{code:we.invalid_type,expected:Te.promise,received:t.parsedType}),je;const n=t.parsedType===Te.promise?t.data:Promise.resolve(t.data);return dn(n.then(i=>this._def.type.parseAsync(i,{path:t.path,errorMap:t.common.contextualErrorMap})))}}qc.create=(r,e)=>new qc({type:r,typeName:Ke.ZodPromise,...Je(e)});class bi extends tt{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===Ke.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:n}=this._processInputParams(e),i=this._def.effect||null,s={addIssue:o=>{xe(n,o),o.fatal?t.abort():t.dirty()},get path(){return n.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){const o=i.transform(n.data,s);if(n.common.async)return Promise.resolve(o).then(async a=>{if(t.value==="aborted")return je;const u=await this._def.schema._parseAsync({data:a,path:n.path,parent:n});return u.status==="aborted"?je:u.status==="dirty"||t.value==="dirty"?Kc(u.value):u});{if(t.value==="aborted")return je;const a=this._def.schema._parseSync({data:o,path:n.path,parent:n});return a.status==="aborted"?je:a.status==="dirty"||t.value==="dirty"?Kc(a.value):a}}if(i.type==="refinement"){const o=a=>{const u=i.refinement(a,s);if(n.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(n.common.async===!1){const a=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});return a.status==="aborted"?je:(a.status==="dirty"&&t.dirty(),o(a.value),{status:t.value,value:a.value})}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(a=>a.status==="aborted"?je:(a.status==="dirty"&&t.dirty(),o(a.value).then(()=>({status:t.value,value:a.value}))))}if(i.type==="transform")if(n.common.async===!1){const o=this._def.schema._parseSync({data:n.data,path:n.path,parent:n});if(!pa(o))return o;const a=i.transform(o.value,s);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:n.data,path:n.path,parent:n}).then(o=>pa(o)?Promise.resolve(i.transform(o.value,s)).then(a=>({status:t.value,value:a})):o);gt.assertNever(i)}}bi.create=(r,e,t)=>new bi({schema:r,typeName:Ke.ZodEffects,effect:e,...Je(t)}),bi.createWithPreprocess=(r,e,t)=>new bi({schema:e,effect:{type:"preprocess",transform:r},typeName:Ke.ZodEffects,...Je(t)});class Fi extends tt{_parse(e){return this._getType(e)===Te.undefined?dn(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Fi.create=(r,e)=>new Fi({innerType:r,typeName:Ke.ZodOptional,...Je(e)});class lo extends tt{_parse(e){return this._getType(e)===Te.null?dn(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}lo.create=(r,e)=>new lo({innerType:r,typeName:Ke.ZodNullable,...Je(e)});class ff extends tt{_parse(e){const{ctx:t}=this._processInputParams(e);let n=t.data;return t.parsedType===Te.undefined&&(n=this._def.defaultValue()),this._def.innerType._parse({data:n,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}ff.create=(r,e)=>new ff({innerType:r,typeName:Ke.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...Je(e)});class hf extends tt{_parse(e){const{ctx:t}=this._processInputParams(e),n={...t,common:{...t.common,issues:[]}},i=this._def.innerType._parse({data:n.data,path:n.path,parent:{...n}});return Jl(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new $n(n.common.issues)},input:n.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new $n(n.common.issues)},input:n.data})}}removeCatch(){return this._def.innerType}}hf.create=(r,e)=>new hf({innerType:r,typeName:Ke.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...Je(e)});class Wd extends tt{_parse(e){if(this._getType(e)!==Te.nan){const n=this._getOrReturnCtx(e);return xe(n,{code:we.invalid_type,expected:Te.nan,received:n.parsedType}),je}return{status:"valid",value:e.data}}}Wd.create=r=>new Wd({typeName:Ke.ZodNaN,...Je(r)});const B4=Symbol("zod_brand");class Qg extends tt{_parse(e){const{ctx:t}=this._processInputParams(e),n=t.data;return this._def.type._parse({data:n,path:t.path,parent:t})}unwrap(){return this._def.type}}class df extends tt{_parse(e){const{status:t,ctx:n}=this._processInputParams(e);if(n.common.async)return(async()=>{const s=await this._def.in._parseAsync({data:n.data,path:n.path,parent:n});return s.status==="aborted"?je:s.status==="dirty"?(t.dirty(),Kc(s.value)):this._def.out._parseAsync({data:s.value,path:n.path,parent:n})})();{const i=this._def.in._parseSync({data:n.data,path:n.path,parent:n});return i.status==="aborted"?je:i.status==="dirty"?(t.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:n.path,parent:n})}}static create(e,t){return new df({in:e,out:t,typeName:Ke.ZodPipeline})}}class pf extends tt{_parse(e){const t=this._def.innerType._parse(e),n=i=>(pa(i)&&(i.value=Object.freeze(i.value)),i);return Jl(t)?t.then(i=>n(i)):n(t)}unwrap(){return this._def.innerType}}pf.create=(r,e)=>new pf({innerType:r,typeName:Ke.ZodReadonly,...Je(e)});function OA(r,e={},t){return r?jc.create().superRefine((n,i)=>{var s,o;if(!r(n)){const a=typeof e=="function"?e(n):typeof e=="string"?{message:e}:e,u=(o=(s=a.fatal)!==null&&s!==void 0?s:t)!==null&&o!==void 0?o:!0,l=typeof a=="string"?{message:a}:a;i.addIssue({code:"custom",...l,fatal:u})}}):jc.create()}const P4={object:er.lazycreate};var Ke;(function(r){r.ZodString="ZodString",r.ZodNumber="ZodNumber",r.ZodNaN="ZodNaN",r.ZodBigInt="ZodBigInt",r.ZodBoolean="ZodBoolean",r.ZodDate="ZodDate",r.ZodSymbol="ZodSymbol",r.ZodUndefined="ZodUndefined",r.ZodNull="ZodNull",r.ZodAny="ZodAny",r.ZodUnknown="ZodUnknown",r.ZodNever="ZodNever",r.ZodVoid="ZodVoid",r.ZodArray="ZodArray",r.ZodObject="ZodObject",r.ZodUnion="ZodUnion",r.ZodDiscriminatedUnion="ZodDiscriminatedUnion",r.ZodIntersection="ZodIntersection",r.ZodTuple="ZodTuple",r.ZodRecord="ZodRecord",r.ZodMap="ZodMap",r.ZodSet="ZodSet",r.ZodFunction="ZodFunction",r.ZodLazy="ZodLazy",r.ZodLiteral="ZodLiteral",r.ZodEnum="ZodEnum",r.ZodEffects="ZodEffects",r.ZodNativeEnum="ZodNativeEnum",r.ZodOptional="ZodOptional",r.ZodNullable="ZodNullable",r.ZodDefault="ZodDefault",r.ZodCatch="ZodCatch",r.ZodPromise="ZodPromise",r.ZodBranded="ZodBranded",r.ZodPipeline="ZodPipeline",r.ZodReadonly="ZodReadonly"})(Ke||(Ke={}));const M4=(r,e={message:`Input not instance of ${r.name}`})=>OA(t=>t instanceof r,e),NA=mi.create,CA=ao.create,L4=Wd.create,U4=co.create,BA=tf.create,D4=ga.create,$4=zd.create,F4=rf.create,H4=nf.create,z4=jc.create,G4=ya.create,K4=_s.create,j4=Gd.create,W4=wi.create,V4=er.create,q4=er.strictCreate,Z4=sf.create,Q4=Kd.create,Y4=of.create,J4=$i.create,X4=af.create,eM=jd.create,tM=ma.create,rM=Vc.create,nM=cf.create,iM=uf.create,sM=uo.create,oM=lf.create,aM=qc.create,PA=bi.create,cM=Fi.create,uM=lo.create,lM=bi.createWithPreprocess,fM=df.create;var Zt=Object.freeze({__proto__:null,defaultErrorMap:Gc,setErrorMap:l4,getErrorMap:$d,makeIssue:Fd,EMPTY_PATH:f4,addIssueToContext:xe,ParseStatus:tn,INVALID:je,DIRTY:Kc,OK:dn,isAborted:Wg,isDirty:Vg,isValid:pa,isAsync:Jl,get util(){return gt},get objectUtil(){return jg},ZodParsedType:Te,getParsedType:bs,ZodType:tt,datetimeRegex:kA,ZodString:mi,ZodNumber:ao,ZodBigInt:co,ZodBoolean:tf,ZodDate:ga,ZodSymbol:zd,ZodUndefined:rf,ZodNull:nf,ZodAny:jc,ZodUnknown:ya,ZodNever:_s,ZodVoid:Gd,ZodArray:wi,ZodObject:er,ZodUnion:sf,ZodDiscriminatedUnion:Kd,ZodIntersection:of,ZodTuple:$i,ZodRecord:af,ZodMap:jd,ZodSet:ma,ZodFunction:Vc,ZodLazy:cf,ZodLiteral:uf,ZodEnum:uo,ZodNativeEnum:lf,ZodPromise:qc,ZodEffects:bi,ZodTransformer:bi,ZodOptional:Fi,ZodNullable:lo,ZodDefault:ff,ZodCatch:hf,ZodNaN:Wd,BRAND:B4,ZodBranded:Qg,ZodPipeline:df,ZodReadonly:pf,custom:OA,Schema:tt,ZodSchema:tt,late:P4,get ZodFirstPartyTypeKind(){return Ke},coerce:{string:r=>mi.create({...r,coerce:!0}),number:r=>ao.create({...r,coerce:!0}),boolean:r=>tf.create({...r,coerce:!0}),bigint:r=>co.create({...r,coerce:!0}),date:r=>ga.create({...r,coerce:!0})},any:z4,array:W4,bigint:U4,boolean:BA,date:D4,discriminatedUnion:Q4,effect:PA,enum:sM,function:rM,instanceof:M4,intersection:Y4,lazy:nM,literal:iM,map:eM,nan:L4,nativeEnum:oM,never:K4,null:H4,nullable:uM,number:CA,object:V4,oboolean:()=>BA().optional(),onumber:()=>CA().optional(),optional:cM,ostring:()=>NA().optional(),pipeline:fM,preprocess:lM,promise:aM,record:X4,set:tM,strictObject:q4,string:NA,symbol:$4,transformer:PA,tuple:J4,undefined:F4,union:Z4,unknown:G4,void:j4,NEVER:je,ZodIssueCode:we,quotelessJson:u4,ZodError:$n});const gf=Ui.getInstance(),MA=Zt.object({username:Zt.string(),address:Zt.string(),timestamp:Zt.number(),index:Zt.number(),signature:Zt.string()}),LA=Zt.object({id:Zt.number(),ref:Zt.string(),updater:Zt.string(),timestamp:Zt.number()}),hM=Zt.object({topic:Zt.string(),messageSender:MA.optional(),historyEntry:LA}),dM=Zt.object({events:Zt.array(Zt.object({type:Zt.string(),timestamp:Zt.number()})),messageEntries:Zt.array(Zt.object({index:Zt.number(),timestamp:Zt.number()}))}),pM=Zt.object({allTimeUsers:Zt.record(dM)});function UA(r){const e=hM.safeParse(r);return e.success?r.messageSender&&!mM(r.messageSender)?(console.warn("Invalid messageSender"),!1):gM(r.historyEntry)?!0:(console.warn("Invalid historyEntry"),!1):(gf.warn(e.error.format()),!1)}function gM(r){const e=LA.safeParse(r);return e.success?!0:(gf.warn(e.error.format()),!1)}function yM(r){const e=pM.safeParse(r);return e.success?!0:(gf.warn(e.error.format()),!1)}function mM(r){const e=MA.safeParse(r);return e.success?wM(r):(gf.warn(e.error.format()),!1)}function wM(r){try{const e={username:r.username,address:r.address,timestamp:r.timestamp},t=new TextEncoder,n=en.concatBytes(t.encode(`Ethereum Signed Message:
|
|
11
|
-
32`),en.keccak256(t.encode(JSON.stringify(e))));if(new Se.Signature(r.signature).isValid(n,r.address))throw new Error("Signature verification failed!");return!0}catch(e){return gf.warn("Error in validateUserSignature",e),!1}}async function DA(r){const{condition:e,broadcast:t,maxRetries:n=2,initialDelayMs:i=2e3,checkIntervalMs:s=1e3,checkCount:o=10}=r;return new Promise((a,u)=>{let l=0;const h=async()=>{await Gg(i);for(let g=0;g<o;g++){if(await Promise.resolve(e()))return a();await Gg(s)}if(++l>=n)return u(new Error("Broadcast wait timeout"));console.warn(`Retrying broadcast... Attempt ${l} of ${n}`),await t(),h()};console.log("Starting broadcast..."),t().then(()=>h()).catch(u)})}const ei={LOADING_INIT:"loadingInit",LOADING_PREVIOUS_MESSAGES:"loadingPreviousMessages",MESSAGE_RECEIVED:"messageReceived",MESSAGE_REQUEST_INITIATED:"messageRequestInitiated",MESSAGE_REQUEST_UPLOADED:"messageRequestUploaded",MESSAGE_REQUEST_ERROR:"messageRequestError",CRITICAL_ERROR:"criticalError"},bM=1e3,_M=new Error("request for lock canceled");var AM=function(r,e,t,n){function i(s){return s instanceof t?s:new t(function(o){o(s)})}return new(t||(t=Promise))(function(s,o){function a(h){try{l(n.next(h))}catch(g){o(g)}}function u(h){try{l(n.throw(h))}catch(g){o(g)}}function l(h){h.done?s(h.value):i(h.value).then(a,u)}l((n=n.apply(r,e||[])).next())})};class vM{constructor(e,t=_M){this._value=e,this._cancelError=t,this._queue=[],this._weightedWaiters=[]}acquire(e=1,t=0){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);return new Promise((n,i)=>{const s={resolve:n,reject:i,weight:e,priority:t},o=$A(this._queue,a=>t<=a.priority);o===-1&&e<=this._value?this._dispatchItem(s):this._queue.splice(o+1,0,s)})}runExclusive(e){return AM(this,arguments,void 0,function*(t,n=1,i=0){const[s,o]=yield this.acquire(n,i);try{return yield t(s)}finally{o()}})}waitForUnlock(e=1,t=0){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);return this._couldLockImmediately(e,t)?Promise.resolve():new Promise(n=>{this._weightedWaiters[e-1]||(this._weightedWaiters[e-1]=[]),EM(this._weightedWaiters[e-1],{resolve:n,priority:t})})}isLocked(){return this._value<=0}getValue(){return this._value}setValue(e){this._value=e,this._dispatchQueue()}release(e=1){if(e<=0)throw new Error(`invalid weight ${e}: must be positive`);this._value+=e,this._dispatchQueue()}cancel(){this._queue.forEach(e=>e.reject(this._cancelError)),this._queue=[]}_dispatchQueue(){for(this._drainUnlockWaiters();this._queue.length>0&&this._queue[0].weight<=this._value;)this._dispatchItem(this._queue.shift()),this._drainUnlockWaiters()}_dispatchItem(e){const t=this._value;this._value-=e.weight,e.resolve([t,this._newReleaser(e.weight)])}_newReleaser(e){let t=!1;return()=>{t||(t=!0,this.release(e))}}_drainUnlockWaiters(){if(this._queue.length===0)for(let e=this._value;e>0;e--){const t=this._weightedWaiters[e-1];t&&(t.forEach(n=>n.resolve()),this._weightedWaiters[e-1]=[])}else{const e=this._queue[0].priority;for(let t=this._value;t>0;t--){const n=this._weightedWaiters[t-1];if(!n)continue;const i=n.findIndex(s=>s.priority<=e);(i===-1?n:n.splice(0,i)).forEach(s=>s.resolve())}}}_couldLockImmediately(e,t){return(this._queue.length===0||this._queue[0].priority<t)&&e<=this._value}}function EM(r,e){const t=$A(r,n=>e.priority<=n.priority);r.splice(t+1,0,e)}function $A(r,e){for(let t=r.length-1;t>=0;t--)if(e(r[t]))return t;return-1}var xM=function(r,e,t,n){function i(s){return s instanceof t?s:new t(function(o){o(s)})}return new(t||(t=Promise))(function(s,o){function a(h){try{l(n.next(h))}catch(g){o(g)}}function u(h){try{l(n.throw(h))}catch(g){o(g)}}function l(h){h.done?s(h.value):i(h.value).then(a,u)}l((n=n.apply(r,e||[])).next())})};class RM{constructor(e){this._semaphore=new vM(1,e)}acquire(){return xM(this,arguments,void 0,function*(e=0){const[,t]=yield this._semaphore.acquire(1,e);return t})}runExclusive(e,t=0){return this._semaphore.runExclusive(()=>e(),1,t)}isLocked(){return this._semaphore.isLocked()}waitForUnlock(e=0){return this._semaphore.waitForUnlock(1,e)}release(){this._semaphore.isLocked()&&this._semaphore.release()}cancel(){return this._semaphore.cancel()}}var FA={};(function(r){r.aliasToReal={each:"forEach",eachRight:"forEachRight",entries:"toPairs",entriesIn:"toPairsIn",extend:"assignIn",extendAll:"assignInAll",extendAllWith:"assignInAllWith",extendWith:"assignInWith",first:"head",conforms:"conformsTo",matches:"isMatch",property:"get",__:"placeholder",F:"stubFalse",T:"stubTrue",all:"every",allPass:"overEvery",always:"constant",any:"some",anyPass:"overSome",apply:"spread",assoc:"set",assocPath:"set",complement:"negate",compose:"flowRight",contains:"includes",dissoc:"unset",dissocPath:"unset",dropLast:"dropRight",dropLastWhile:"dropRightWhile",equals:"isEqual",identical:"eq",indexBy:"keyBy",init:"initial",invertObj:"invert",juxt:"over",omitAll:"omit",nAry:"ary",path:"get",pathEq:"matchesProperty",pathOr:"getOr",paths:"at",pickAll:"pick",pipe:"flow",pluck:"map",prop:"get",propEq:"matchesProperty",propOr:"getOr",props:"at",symmetricDifference:"xor",symmetricDifferenceBy:"xorBy",symmetricDifferenceWith:"xorWith",takeLast:"takeRight",takeLastWhile:"takeRightWhile",unapply:"rest",unnest:"flatten",useWith:"overArgs",where:"conformsTo",whereEq:"isMatch",zipObj:"zipObject"},r.aryMethod={1:["assignAll","assignInAll","attempt","castArray","ceil","create","curry","curryRight","defaultsAll","defaultsDeepAll","floor","flow","flowRight","fromPairs","invert","iteratee","memoize","method","mergeAll","methodOf","mixin","nthArg","over","overEvery","overSome","rest","reverse","round","runInContext","spread","template","trim","trimEnd","trimStart","uniqueId","words","zipAll"],2:["add","after","ary","assign","assignAllWith","assignIn","assignInAllWith","at","before","bind","bindAll","bindKey","chunk","cloneDeepWith","cloneWith","concat","conformsTo","countBy","curryN","curryRightN","debounce","defaults","defaultsDeep","defaultTo","delay","difference","divide","drop","dropRight","dropRightWhile","dropWhile","endsWith","eq","every","filter","find","findIndex","findKey","findLast","findLastIndex","findLastKey","flatMap","flatMapDeep","flattenDepth","forEach","forEachRight","forIn","forInRight","forOwn","forOwnRight","get","groupBy","gt","gte","has","hasIn","includes","indexOf","intersection","invertBy","invoke","invokeMap","isEqual","isMatch","join","keyBy","lastIndexOf","lt","lte","map","mapKeys","mapValues","matchesProperty","maxBy","meanBy","merge","mergeAllWith","minBy","multiply","nth","omit","omitBy","overArgs","pad","padEnd","padStart","parseInt","partial","partialRight","partition","pick","pickBy","propertyOf","pull","pullAll","pullAt","random","range","rangeRight","rearg","reject","remove","repeat","restFrom","result","sampleSize","some","sortBy","sortedIndex","sortedIndexOf","sortedLastIndex","sortedLastIndexOf","sortedUniqBy","split","spreadFrom","startsWith","subtract","sumBy","take","takeRight","takeRightWhile","takeWhile","tap","throttle","thru","times","trimChars","trimCharsEnd","trimCharsStart","truncate","union","uniqBy","uniqWith","unset","unzipWith","without","wrap","xor","zip","zipObject","zipObjectDeep"],3:["assignInWith","assignWith","clamp","differenceBy","differenceWith","findFrom","findIndexFrom","findLastFrom","findLastIndexFrom","getOr","includesFrom","indexOfFrom","inRange","intersectionBy","intersectionWith","invokeArgs","invokeArgsMap","isEqualWith","isMatchWith","flatMapDepth","lastIndexOfFrom","mergeWith","orderBy","padChars","padCharsEnd","padCharsStart","pullAllBy","pullAllWith","rangeStep","rangeStepRight","reduce","reduceRight","replace","set","slice","sortedIndexBy","sortedLastIndexBy","transform","unionBy","unionWith","update","xorBy","xorWith","zipWith"],4:["fill","setWith","updateWith"]},r.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]},r.iterateeAry={dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findFrom:1,findIndex:1,findIndexFrom:1,findKey:1,findLast:1,findLastFrom:1,findLastIndex:1,findLastIndexFrom:1,findLastKey:1,flatMap:1,flatMapDeep:1,flatMapDepth:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2},r.iterateeRearg={mapKeys:[1],reduceRight:[1,0]},r.methodRearg={assignInAllWith:[1,0],assignInWith:[1,2,0],assignAllWith:[1,0],assignWith:[1,2,0],differenceBy:[1,2,0],differenceWith:[1,2,0],getOr:[2,1,0],intersectionBy:[1,2,0],intersectionWith:[1,2,0],isEqualWith:[1,2,0],isMatchWith:[2,1,0],mergeAllWith:[1,0],mergeWith:[1,2,0],padChars:[2,1,0],padCharsEnd:[2,1,0],padCharsStart:[2,1,0],pullAllBy:[2,1,0],pullAllWith:[2,1,0],rangeStep:[1,2,0],rangeStepRight:[1,2,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],unionBy:[1,2,0],unionWith:[1,2,0],updateWith:[3,1,2,0],xorBy:[1,2,0],xorWith:[1,2,0],zipWith:[1,2,0]},r.methodSpread={assignAll:{start:0},assignAllWith:{start:0},assignInAll:{start:0},assignInAllWith:{start:0},defaultsAll:{start:0},defaultsDeepAll:{start:0},invokeArgs:{start:2},invokeArgsMap:{start:2},mergeAll:{start:0},mergeAllWith:{start:0},partial:{start:1},partialRight:{start:1},without:{start:1},zipAll:{start:0}},r.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAllWith:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignAll:!0,assignAllWith:!0,assignIn:!0,assignInAll:!0,assignInAllWith:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsAll:!0,defaultsDeep:!0,defaultsDeepAll:!0,merge:!0,mergeAll:!0,mergeAllWith:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0,update:!0,updateWith:!0}},r.realToAlias=function(){var e=Object.prototype.hasOwnProperty,t=r.aliasToReal,n={};for(var i in t){var s=t[i];e.call(n,s)?n[s].push(i):n[s]=[i]}return n}(),r.remap={assignAll:"assign",assignAllWith:"assignWith",assignInAll:"assignIn",assignInAllWith:"assignInWith",curryN:"curry",curryRightN:"curryRight",defaultsAll:"defaults",defaultsDeepAll:"defaultsDeep",findFrom:"find",findIndexFrom:"findIndex",findLastFrom:"findLast",findLastIndexFrom:"findLastIndex",getOr:"get",includesFrom:"includes",indexOfFrom:"indexOf",invokeArgs:"invoke",invokeArgsMap:"invokeMap",lastIndexOfFrom:"lastIndexOf",mergeAll:"merge",mergeAllWith:"mergeWith",padChars:"pad",padCharsEnd:"padEnd",padCharsStart:"padStart",propertyOf:"get",rangeStep:"range",rangeStepRight:"rangeRight",restFrom:"rest",spreadFrom:"spread",trimChars:"trim",trimCharsEnd:"trimEnd",trimCharsStart:"trimStart",zipAll:"zip"},r.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0},r.skipRearg={add:!0,assign:!0,assignIn:!0,bind:!0,bindKey:!0,concat:!0,difference:!0,divide:!0,eq:!0,gt:!0,gte:!0,isEqual:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,multiply:!0,overArgs:!0,partial:!0,partialRight:!0,propertyOf:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,zip:!0,zipObject:!0,zipObjectDeep:!0}})(FA);var Yg,HA;function zA(){return HA||(HA=1,Yg={}),Yg}var Cr=FA,IM=zA(),GA=Array.prototype.push;function SM(r,e){return e==2?function(t,n){return r.apply(void 0,arguments)}:function(t){return r.apply(void 0,arguments)}}function Jg(r,e){return e==2?function(t,n){return r(t,n)}:function(t){return r(t)}}function KA(r){for(var e=r?r.length:0,t=Array(e);e--;)t[e]=r[e];return t}function kM(r){return function(e){return r({},e)}}function TM(r,e){return function(){for(var t=arguments.length,n=t-1,i=Array(t);t--;)i[t]=arguments[t];var s=i[e],o=i.slice(0,e);return s&&GA.apply(o,s),e!=n&&GA.apply(o,i.slice(e+1)),r.apply(this,o)}}function Xg(r,e){return function(){var t=arguments.length;if(t){for(var n=Array(t);t--;)n[t]=arguments[t];var i=n[0]=e.apply(void 0,n);return r.apply(void 0,n),i}}}function ey(r,e,t,n){var i=typeof e=="function",s=e===Object(e);if(s&&(n=t,t=e,e=void 0),t==null)throw new TypeError;n||(n={});var o={cap:"cap"in n?n.cap:!0,curry:"curry"in n?n.curry:!0,fixed:"fixed"in n?n.fixed:!0,immutable:"immutable"in n?n.immutable:!0,rearg:"rearg"in n?n.rearg:!0},a=i?t:IM,u="curry"in n&&n.curry,l="fixed"in n&&n.fixed,h="rearg"in n&&n.rearg,g=i?t.runInContext():void 0,b=i?t:{ary:r.ary,assign:r.assign,clone:r.clone,curry:r.curry,forEach:r.forEach,isArray:r.isArray,isError:r.isError,isFunction:r.isFunction,isWeakMap:r.isWeakMap,iteratee:r.iteratee,keys:r.keys,rearg:r.rearg,toInteger:r.toInteger,toPath:r.toPath},w=b.ary,I=b.assign,S=b.clone,x=b.curry,C=b.forEach,H=b.isArray,D=b.isError,z=b.isFunction,V=b.isWeakMap,Z=b.keys,K=b.rearg,W=b.toInteger,oe=b.toPath,ce=Z(Cr.aryMethod),ie={castArray:function(te){return function(){var re=arguments[0];return H(re)?te(KA(re)):te.apply(void 0,arguments)}},iteratee:function(te){return function(){var re=arguments[0],he=arguments[1],ye=te(re,he),be=ye.length;return o.cap&&typeof he=="number"?(he=he>2?he-2:1,be&&be<=he?ye:Jg(ye,he)):ye}},mixin:function(te){return function(re){var he=this;if(!z(he))return te(he,Object(re));var ye=[];return C(Z(re),function(be){z(re[be])&&ye.push([be,he.prototype[be]])}),te(he,Object(re)),C(ye,function(be){var We=be[1];z(We)?he.prototype[be[0]]=We:delete he.prototype[be[0]]}),he}},nthArg:function(te){return function(re){var he=re<0?1:W(re)+1;return x(te(re),he)}},rearg:function(te){return function(re,he){var ye=he?he.length:0;return x(te(re,he),ye)}},runInContext:function(te){return function(re){return ey(r,te(re),n)}}};function ue(te,re){if(o.cap){var he=Cr.iterateeRearg[te];if(he)return G(re,he);var ye=!i&&Cr.iterateeAry[te];if(ye)return M(re,ye)}return re}function B(te,re,he){return u||o.curry&&he>1?x(re,he):re}function p(te,re,he){if(o.fixed&&(l||!Cr.skipFixed[te])){var ye=Cr.methodSpread[te],be=ye&&ye.start;return be===void 0?w(re,he):TM(re,be)}return re}function m(te,re,he){return o.rearg&&he>1&&(h||!Cr.skipRearg[te])?K(re,Cr.methodRearg[te]||Cr.aryRearg[he]):re}function E(te,re){re=oe(re);for(var he=-1,ye=re.length,be=ye-1,We=S(Object(te)),Fe=We;Fe!=null&&++he<ye;){var Be=re[he],et=Fe[Be];et!=null&&!(z(et)||D(et)||V(et))&&(Fe[Be]=S(he==be?et:Object(et))),Fe=Fe[Be]}return We}function k(te){return U.runInContext.convert(te)(void 0)}function O(te,re){var he=Cr.aliasToReal[te]||te,ye=Cr.remap[he]||he,be=n;return function(We){var Fe=i?g:b,Be=i?g[ye]:re,et=I(I({},be),We);return ey(Fe,he,Be,et)}}function M(te,re){return P(te,function(he){return typeof he=="function"?Jg(he,re):he})}function G(te,re){return P(te,function(he){var ye=re.length;return SM(K(Jg(he,ye),re),ye)})}function P(te,re){return function(){var he=arguments.length;if(!he)return te();for(var ye=Array(he);he--;)ye[he]=arguments[he];var be=o.rearg?0:he-1;return ye[be]=re(ye[be]),te.apply(void 0,ye)}}function A(te,re,he){var ye,be=Cr.aliasToReal[te]||te,We=re,Fe=ie[be];return Fe?We=Fe(re):o.immutable&&(Cr.mutate.array[be]?We=Xg(re,KA):Cr.mutate.object[be]?We=Xg(re,kM(re)):Cr.mutate.set[be]&&(We=Xg(re,E))),C(ce,function(Be){return C(Cr.aryMethod[Be],function(et){if(be==et){var Qe=Cr.methodSpread[be],ot=Qe&&Qe.afterRearg;return ye=ot?p(be,m(be,We,Be),Be):m(be,p(be,We,Be),Be),ye=ue(be,ye),ye=B(be,ye,Be),!1}}),!ye}),ye||(ye=We),ye==re&&(ye=u?x(ye,1):function(){return re.apply(this,arguments)}),ye.convert=O(be,re),ye.placeholder=re.placeholder=he,ye}if(!s)return A(e,t,a);var U=t,le=[];return C(ce,function(te){C(Cr.aryMethod[te],function(re){var he=U[Cr.remap[re]||re];he&&le.push([re,A(re,he,U)])})}),C(Z(U),function(te){var re=U[te];if(typeof re=="function"){for(var he=le.length;he--;)if(le[he][0]==te)return;re.convert=O(te,re),le.push([te,re])}}),C(le,function(te){U[te[0]]=te[1]}),U.convert=k,U.placeholder=U,C(Z(U),function(te){C(Cr.realToAlias[te]||[],function(re){U[re]=U[te]})}),U}var OM=ey;function NM(r){return r}var Vd=NM,jA=sA,CM=jA&&new jA,WA=CM,BM=Vd,VA=WA,PM=VA?function(r,e){return VA.set(r,e),r}:BM,qA=PM,MM=yi,ZA=Object.create,LM=function(){function r(){}return function(e){if(!MM(e))return{};if(ZA)return ZA(e);r.prototype=e;var t=new r;return r.prototype=void 0,t}}(),qd=LM,UM=qd,DM=yi;function $M(r){return function(){var e=arguments;switch(e.length){case 0:return new r;case 1:return new r(e[0]);case 2:return new r(e[0],e[1]);case 3:return new r(e[0],e[1],e[2]);case 4:return new r(e[0],e[1],e[2],e[3]);case 5:return new r(e[0],e[1],e[2],e[3],e[4]);case 6:return new r(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new r(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var t=UM(r.prototype),n=r.apply(t,e);return DM(n)?n:t}}var Zd=$M,FM=Zd,HM=Rn,zM=1;function GM(r,e,t){var n=e&zM,i=FM(r);function s(){var o=this&&this!==HM&&this instanceof s?i:r;return o.apply(n?t:this,arguments)}return s}var KM=GM;function jM(r,e,t){switch(t.length){case 0:return r.call(e);case 1:return r.call(e,t[0]);case 2:return r.call(e,t[0],t[1]);case 3:return r.call(e,t[0],t[1],t[2])}return r.apply(e,t)}var ty=jM,WM=Math.max;function VM(r,e,t,n){for(var i=-1,s=r.length,o=t.length,a=-1,u=e.length,l=WM(s-o,0),h=Array(u+l),g=!n;++a<u;)h[a]=e[a];for(;++i<o;)(g||i<s)&&(h[t[i]]=r[i]);for(;l--;)h[a++]=r[i++];return h}var QA=VM,qM=Math.max;function ZM(r,e,t,n){for(var i=-1,s=r.length,o=-1,a=t.length,u=-1,l=e.length,h=qM(s-a,0),g=Array(h+l),b=!n;++i<h;)g[i]=r[i];for(var w=i;++u<l;)g[w+u]=e[u];for(;++o<a;)(b||i<s)&&(g[w+t[o]]=r[i++]);return g}var YA=ZM;function QM(r,e){for(var t=r.length,n=0;t--;)r[t]===e&&++n;return n}var YM=QM;function JM(){}var ry=JM,XM=qd,eL=ry,tL=4294967295;function Qd(r){this.__wrapped__=r,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=tL,this.__views__=[]}Qd.prototype=XM(eL.prototype),Qd.prototype.constructor=Qd;var ny=Qd;function rL(){}var nL=rL,JA=WA,iL=nL,sL=JA?function(r){return JA.get(r)}:iL,XA=sL,oL={},aL=oL,ev=aL,cL=Object.prototype,uL=cL.hasOwnProperty;function lL(r){for(var e=r.name+"",t=ev[e],n=uL.call(ev,e)?t.length:0;n--;){var i=t[n],s=i.func;if(s==null||s==r)return i.name}return e}var fL=lL,hL=qd,dL=ry;function Yd(r,e){this.__wrapped__=r,this.__actions__=[],this.__chain__=!!e,this.__index__=0,this.__values__=void 0}Yd.prototype=hL(dL.prototype),Yd.prototype.constructor=Yd;var tv=Yd;function pL(r,e){var t=-1,n=r.length;for(e||(e=Array(n));++t<n;)e[t]=r[t];return e}var yf=pL,gL=ny,yL=tv,mL=yf;function wL(r){if(r instanceof gL)return r.clone();var e=new yL(r.__wrapped__,r.__chain__);return e.__actions__=mL(r.__actions__),e.__index__=r.__index__,e.__values__=r.__values__,e}var bL=wL,_L=ny,rv=tv,AL=ry,vL=In,EL=Xn,xL=bL,RL=Object.prototype,IL=RL.hasOwnProperty;function Jd(r){if(EL(r)&&!vL(r)&&!(r instanceof _L)){if(r instanceof rv)return r;if(IL.call(r,"__wrapped__"))return xL(r)}return new rv(r)}Jd.prototype=AL.prototype,Jd.prototype.constructor=Jd;var SL=Jd,kL=ny,TL=XA,OL=fL,NL=SL;function CL(r){var e=OL(r),t=NL[e];if(typeof t!="function"||!(e in kL.prototype))return!1;if(r===t)return!0;var n=TL(t);return!!n&&r===n[0]}var BL=CL,PL=800,ML=16,LL=Date.now;function UL(r){var e=0,t=0;return function(){var n=LL(),i=ML-(n-t);if(t=n,i>0){if(++e>=PL)return arguments[0]}else e=0;return r.apply(void 0,arguments)}}var nv=UL,DL=qA,$L=nv,FL=$L(DL),iv=FL,HL=/\{\n\/\* \[wrapped with (.+)\] \*/,zL=/,? & /;function GL(r){var e=r.match(HL);return e?e[1].split(zL):[]}var KL=GL,jL=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function WL(r,e){var t=e.length;if(!t)return r;var n=t-1;return e[n]=(t>1?"& ":"")+e[n],e=e.join(t>2?", ":" "),r.replace(jL,`{
|
|
12
|
-
/* [wrapped with `+e+`] */
|
|
13
|
-
`)}var VL=WL;function qL(r){return function(){return r}}var ZL=qL,QL=fa,YL=function(){try{var r=QL(Object,"defineProperty");return r({},"",{}),r}catch{}}(),sv=YL,JL=ZL,ov=sv,XL=Vd,eU=ov?function(r,e){return ov(r,"toString",{configurable:!0,enumerable:!1,value:JL(e),writable:!0})}:XL,tU=eU,rU=tU,nU=nv,iU=nU(rU),iy=iU;function sU(r,e){for(var t=-1,n=r==null?0:r.length;++t<n&&e(r[t],t,r)!==!1;);return r}var sy=sU;function oU(r,e,t,n){for(var i=r.length,s=t+(n?1:-1);n?s--:++s<i;)if(e(r[s],s,r))return s;return-1}var aU=oU;function cU(r){return r!==r}var uU=cU;function lU(r,e,t){for(var n=t-1,i=r.length;++n<i;)if(r[n]===e)return n;return-1}var fU=lU,hU=aU,dU=uU,pU=fU;function gU(r,e,t){return e===e?pU(r,e,t):hU(r,dU,t)}var yU=gU,mU=yU;function wU(r,e){var t=r==null?0:r.length;return!!t&&mU(r,e,0)>-1}var bU=wU,_U=sy,AU=bU,vU=1,EU=2,xU=8,RU=16,IU=32,SU=64,kU=128,TU=256,OU=512,NU=[["ary",kU],["bind",vU],["bindKey",EU],["curry",xU],["curryRight",RU],["flip",OU],["partial",IU],["partialRight",SU],["rearg",TU]];function CU(r,e){return _U(NU,function(t){var n="_."+t[0];e&t[1]&&!AU(r,n)&&r.push(n)}),r.sort()}var BU=CU,PU=KL,MU=VL,LU=iy,UU=BU;function DU(r,e,t){var n=e+"";return LU(r,MU(n,UU(PU(n),t)))}var av=DU,$U=BL,FU=iv,HU=av,zU=1,GU=2,KU=4,jU=8,cv=32,uv=64;function WU(r,e,t,n,i,s,o,a,u,l){var h=e&jU,g=h?o:void 0,b=h?void 0:o,w=h?s:void 0,I=h?void 0:s;e|=h?cv:uv,e&=~(h?uv:cv),e&KU||(e&=~(zU|GU));var S=[r,e,i,w,g,I,b,a,u,l],x=t.apply(void 0,S);return $U(r)&&FU(x,S),x.placeholder=n,HU(x,r,e)}var lv=WU;function VU(r){var e=r;return e.placeholder}var fv=VU,qU=yf,ZU=Bd,QU=Math.min;function YU(r,e){for(var t=r.length,n=QU(e.length,t),i=qU(r);n--;){var s=e[n];r[n]=ZU(s,t)?i[s]:void 0}return r}var JU=YU,hv="__lodash_placeholder__";function XU(r,e){for(var t=-1,n=r.length,i=0,s=[];++t<n;){var o=r[t];(o===e||o===hv)&&(r[t]=hv,s[i++]=t)}return s}var oy=XU,eD=QA,tD=YA,rD=YM,dv=Zd,nD=lv,iD=fv,sD=JU,oD=oy,aD=Rn,cD=1,uD=2,lD=8,fD=16,hD=128,dD=512;function pv(r,e,t,n,i,s,o,a,u,l){var h=e&hD,g=e&cD,b=e&uD,w=e&(lD|fD),I=e&dD,S=b?void 0:dv(r);function x(){for(var C=arguments.length,H=Array(C),D=C;D--;)H[D]=arguments[D];if(w)var z=iD(x),V=rD(H,z);if(n&&(H=eD(H,n,i,w)),s&&(H=tD(H,s,o,w)),C-=V,w&&C<l){var Z=oD(H,z);return nD(r,e,pv,x.placeholder,t,H,Z,a,u,l-C)}var K=g?t:this,W=b?K[r]:r;return C=H.length,a?H=sD(H,a):I&&C>1&&H.reverse(),h&&u<C&&(H.length=u),this&&this!==aD&&this instanceof x&&(W=S||dv(W)),W.apply(K,H)}return x}var gv=pv,pD=ty,gD=Zd,yD=gv,mD=lv,wD=fv,bD=oy,_D=Rn;function AD(r,e,t){var n=gD(r);function i(){for(var s=arguments.length,o=Array(s),a=s,u=wD(i);a--;)o[a]=arguments[a];var l=s<3&&o[0]!==u&&o[s-1]!==u?[]:bD(o,u);if(s-=l.length,s<t)return mD(r,e,yD,i.placeholder,void 0,o,l,void 0,void 0,t-s);var h=this&&this!==_D&&this instanceof i?n:r;return pD(h,this,o)}return i}var vD=AD,ED=ty,xD=Zd,RD=Rn,ID=1;function SD(r,e,t,n){var i=e&ID,s=xD(r);function o(){for(var a=-1,u=arguments.length,l=-1,h=n.length,g=Array(h+u),b=this&&this!==RD&&this instanceof o?s:r;++l<h;)g[l]=n[l];for(;u--;)g[l++]=arguments[++a];return ED(b,i?t:this,g)}return o}var kD=SD,TD=QA,OD=YA,yv=oy,mv="__lodash_placeholder__",ay=1,ND=2,CD=4,wv=8,mf=128,bv=256,BD=Math.min;function PD(r,e){var t=r[1],n=e[1],i=t|n,s=i<(ay|ND|mf),o=n==mf&&t==wv||n==mf&&t==bv&&r[7].length<=e[8]||n==(mf|bv)&&e[7].length<=e[8]&&t==wv;if(!(s||o))return r;n&ay&&(r[2]=e[2],i|=t&ay?0:CD);var a=e[3];if(a){var u=r[3];r[3]=u?TD(u,a,e[4]):a,r[4]=u?yv(r[3],mv):e[4]}return a=e[5],a&&(u=r[5],r[5]=u?OD(u,a,e[6]):a,r[6]=u?yv(r[5],mv):e[6]),a=e[7],a&&(r[7]=a),n&mf&&(r[8]=r[8]==null?e[8]:BD(r[8],e[8])),r[9]==null&&(r[9]=e[9]),r[0]=e[0],r[1]=i,r}var MD=PD,LD=/\s/;function UD(r){for(var e=r.length;e--&&LD.test(r.charAt(e)););return e}var DD=UD,$D=DD,FD=/^\s+/;function HD(r){return r&&r.slice(0,$D(r)+1).replace(FD,"")}var zD=HD,GD=la,KD=Xn,jD="[object Symbol]";function WD(r){return typeof r=="symbol"||KD(r)&&GD(r)==jD}var wf=WD,VD=zD,_v=yi,qD=wf,Av=NaN,ZD=/^[-+]0x[0-9a-f]+$/i,QD=/^0b[01]+$/i,YD=/^0o[0-7]+$/i,JD=parseInt;function XD(r){if(typeof r=="number")return r;if(qD(r))return Av;if(_v(r)){var e=typeof r.valueOf=="function"?r.valueOf():r;r=_v(e)?e+"":e}if(typeof r!="string")return r===0?r:+r;r=VD(r);var t=QD.test(r);return t||YD.test(r)?JD(r.slice(2),t?2:8):ZD.test(r)?Av:+r}var e$=XD,t$=e$,vv=1/0,r$=17976931348623157e292;function n$(r){if(!r)return r===0?r:0;if(r=t$(r),r===vv||r===-vv){var e=r<0?-1:1;return e*r$}return r===r?r:0}var i$=n$,s$=i$;function o$(r){var e=s$(r),t=e%1;return e===e?t?e-t:e:0}var Ev=o$,a$=qA,c$=KM,u$=vD,l$=gv,f$=kD,h$=XA,d$=MD,p$=iv,g$=av,xv=Ev,y$="Expected a function",Rv=1,m$=2,cy=8,uy=16,ly=32,Iv=64,Sv=Math.max;function w$(r,e,t,n,i,s,o,a){var u=e&m$;if(!u&&typeof r!="function")throw new TypeError(y$);var l=n?n.length:0;if(l||(e&=~(ly|Iv),n=i=void 0),o=o===void 0?o:Sv(xv(o),0),a=a===void 0?a:xv(a),l-=i?i.length:0,e&Iv){var h=n,g=i;n=i=void 0}var b=u?void 0:h$(r),w=[r,e,t,n,i,h,g,s,o,a];if(b&&d$(w,b),r=w[0],e=w[1],t=w[2],n=w[3],i=w[4],a=w[9]=w[9]===void 0?u?0:r.length:Sv(w[9]-l,0),!a&&e&(cy|uy)&&(e&=~(cy|uy)),!e||e==Rv)var I=c$(r,e,t);else e==cy||e==uy?I=u$(r,e,a):(e==ly||e==(Rv|ly))&&!i.length?I=f$(r,e,t,n):I=l$.apply(void 0,w);var S=b?a$:p$;return g$(S(I,w),r,e)}var fy=w$,b$=fy,_$=128;function A$(r,e,t){return e=t?void 0:e,e=r&&e==null?r.length:e,b$(r,_$,void 0,void 0,void 0,void 0,e)}var v$=A$,kv=sv;function E$(r,e,t){e=="__proto__"&&kv?kv(r,e,{configurable:!0,enumerable:!0,value:t,writable:!0}):r[e]=t}var hy=E$,x$=hy,R$=Zl,I$=Object.prototype,S$=I$.hasOwnProperty;function k$(r,e,t){var n=r[e];(!(S$.call(r,e)&&R$(n,t))||t===void 0&&!(e in r))&&x$(r,e,t)}var Tv=k$,T$=Tv,O$=hy;function N$(r,e,t,n){var i=!t;t||(t={});for(var s=-1,o=e.length;++s<o;){var a=e[s],u=n?n(t[a],r[a],a,t,r):void 0;u===void 0&&(u=r[a]),i?O$(t,a,u):T$(t,a,u)}return t}var bf=N$,C$=bf,B$=Ld;function P$(r,e){return r&&C$(e,B$(e),r)}var Ov=P$,dy,Nv;function M$(){if(Nv)return dy;Nv=1;function r(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}return dy=r,dy}var py,Cv;function L$(){if(Cv)return py;Cv=1;var r=yi,e=Pg,t=M$(),n=Object.prototype,i=n.hasOwnProperty;function s(o){if(!r(o))return t(o);var a=e(o),u=[];for(var l in o)l=="constructor"&&(a||!i.call(o,l))||u.push(l);return u}return py=s,py}var gy,Bv;function _f(){if(Bv)return gy;Bv=1;var r=eA,e=L$(),t=Md;function n(i){return t(i)?r(i,!0):e(i)}return gy=n,gy}var U$=bf,D$=_f();function $$(r,e){return r&&U$(e,D$(e),r)}var F$=$$,Xd={exports:{}};Xd.exports,function(r,e){var t=Rn,n=e&&!e.nodeType&&e,i=n&&!0&&r&&!r.nodeType&&r,s=i&&i.exports===n,o=s?t.Buffer:void 0,a=o?o.allocUnsafe:void 0;function u(l,h){if(h)return l.slice();var g=l.length,b=a?a(g):new l.constructor(g);return l.copy(b),b}r.exports=u}(Xd,Xd.exports);var Pv=Xd.exports,H$=bf,z$=Tg;function G$(r,e){return H$(r,z$(r),e)}var K$=G$,j$=tA,W$=j$(Object.getPrototypeOf,Object),yy=W$,V$=kg,q$=yy,Z$=Tg,Q$=q_,Y$=Object.getOwnPropertySymbols,J$=Y$?function(r){for(var e=[];r;)V$(e,Z$(r)),r=q$(r);return e}:Q$,Mv=J$,X$=bf,eF=Mv;function tF(r,e){return X$(r,eF(r),e)}var rF=tF,nF=V_,iF=Mv,sF=_f();function oF(r){return nF(r,sF,iF)}var aF=oF,cF=Object.prototype,uF=cF.hasOwnProperty;function lF(r){var e=r.length,t=new r.constructor(e);return e&&typeof r[0]=="string"&&uF.call(r,"index")&&(t.index=r.index,t.input=r.input),t}var fF=lF,Lv=G_;function hF(r){var e=new r.constructor(r.byteLength);return new Lv(e).set(new Lv(r)),e}var my=hF,dF=my;function pF(r,e){var t=e?dF(r.buffer):r.buffer;return new r.constructor(t,r.byteOffset,r.byteLength)}var gF=pF,yF=/\w*$/;function mF(r){var e=new r.constructor(r.source,yF.exec(r));return e.lastIndex=r.lastIndex,e}var wF=mF,Uv=Dc,Dv=Uv?Uv.prototype:void 0,$v=Dv?Dv.valueOf:void 0;function bF(r){return $v?Object($v.call(r)):{}}var _F=bF,wy,Fv;function Hv(){if(Fv)return wy;Fv=1;var r=my;function e(t,n){var i=n?r(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.length)}return wy=e,wy}var AF=my,vF=gF,EF=wF,xF=_F,RF=Hv(),IF="[object Boolean]",SF="[object Date]",kF="[object Map]",TF="[object Number]",OF="[object RegExp]",NF="[object Set]",CF="[object String]",BF="[object Symbol]",PF="[object ArrayBuffer]",MF="[object DataView]",LF="[object Float32Array]",UF="[object Float64Array]",DF="[object Int8Array]",$F="[object Int16Array]",FF="[object Int32Array]",HF="[object Uint8Array]",zF="[object Uint8ClampedArray]",GF="[object Uint16Array]",KF="[object Uint32Array]";function jF(r,e,t){var n=r.constructor;switch(e){case PF:return AF(r);case IF:case SF:return new n(+r);case MF:return vF(r,t);case LF:case UF:case DF:case $F:case FF:case HF:case zF:case GF:case KF:return RF(r,t);case kF:return new n;case TF:case CF:return new n(r);case OF:return EF(r);case NF:return new n;case BF:return xF(r)}}var WF=jF,VF=qd,qF=yy,ZF=Pg;function QF(r){return typeof r.constructor=="function"&&!ZF(r)?VF(qF(r)):{}}var zv=QF,YF=Yl,JF=Xn,XF="[object Map]";function e9(r){return JF(r)&&YF(r)==XF}var t9=e9,r9=t9,n9=Ng,Gv=Cg,Kv=Gv&&Gv.isMap,i9=Kv?n9(Kv):r9,s9=i9,o9=Yl,a9=Xn,c9="[object Set]";function u9(r){return a9(r)&&o9(r)==c9}var l9=u9,f9=l9,h9=Ng,jv=Cg,Wv=jv&&jv.isSet,d9=Wv?h9(Wv):f9,p9=d9,g9=kd,y9=sy,m9=Tv,w9=Ov,b9=F$,_9=Pv,A9=yf,v9=K$,E9=rF,x9=nA,R9=aF,I9=Yl,S9=fF,k9=WF,T9=zv,O9=In,N9=Cd,C9=s9,B9=yi,P9=p9,M9=Ld,L9=_f(),U9=1,D9=2,$9=4,Vv="[object Arguments]",F9="[object Array]",H9="[object Boolean]",z9="[object Date]",G9="[object Error]",qv="[object Function]",K9="[object GeneratorFunction]",j9="[object Map]",W9="[object Number]",Zv="[object Object]",V9="[object RegExp]",q9="[object Set]",Z9="[object String]",Q9="[object Symbol]",Y9="[object WeakMap]",J9="[object ArrayBuffer]",X9="[object DataView]",eH="[object Float32Array]",tH="[object Float64Array]",rH="[object Int8Array]",nH="[object Int16Array]",iH="[object Int32Array]",sH="[object Uint8Array]",oH="[object Uint8ClampedArray]",aH="[object Uint16Array]",cH="[object Uint32Array]",Ft={};Ft[Vv]=Ft[F9]=Ft[J9]=Ft[X9]=Ft[H9]=Ft[z9]=Ft[eH]=Ft[tH]=Ft[rH]=Ft[nH]=Ft[iH]=Ft[j9]=Ft[W9]=Ft[Zv]=Ft[V9]=Ft[q9]=Ft[Z9]=Ft[Q9]=Ft[sH]=Ft[oH]=Ft[aH]=Ft[cH]=!0,Ft[G9]=Ft[qv]=Ft[Y9]=!1;function e0(r,e,t,n,i,s){var o,a=e&U9,u=e&D9,l=e&$9;if(t&&(o=i?t(r,n,i,s):t(r)),o!==void 0)return o;if(!B9(r))return r;var h=O9(r);if(h){if(o=S9(r),!a)return A9(r,o)}else{var g=I9(r),b=g==qv||g==K9;if(N9(r))return _9(r,a);if(g==Zv||g==Vv||b&&!i){if(o=u||b?{}:T9(r),!a)return u?E9(r,b9(o,r)):v9(r,w9(o,r))}else{if(!Ft[g])return i?r:{};o=k9(r,g,a)}}s||(s=new g9);var w=s.get(r);if(w)return w;s.set(r,o),P9(r)?r.forEach(function(x){o.add(e0(x,e,t,x,r,s))}):C9(r)&&r.forEach(function(x,C){o.set(C,e0(x,e,t,C,r,s))});var I=l?u?R9:x9:u?L9:M9,S=h?void 0:I(r);return y9(S||r,function(x,C){S&&(C=x,x=r[C]),m9(o,C,e0(x,e,t,C,r,s))}),o}var Qv=e0,uH=Qv,lH=4;function fH(r){return uH(r,lH)}var hH=fH,dH=fy,pH=8;function by(r,e,t){e=t?void 0:e;var n=dH(r,pH,void 0,void 0,void 0,void 0,void 0,e);return n.placeholder=by.placeholder,n}by.placeholder={};var gH=by,yH=la,mH=yy,wH=Xn,bH="[object Object]",_H=Function.prototype,AH=Object.prototype,Yv=_H.toString,vH=AH.hasOwnProperty,EH=Yv.call(Object);function xH(r){if(!wH(r)||yH(r)!=bH)return!1;var e=mH(r);if(e===null)return!0;var t=vH.call(e,"constructor")&&e.constructor;return typeof t=="function"&&t instanceof t&&Yv.call(t)==EH}var Jv=xH,RH=la,IH=Xn,SH=Jv,kH="[object DOMException]",TH="[object Error]";function OH(r){if(!IH(r))return!1;var e=RH(r);return e==TH||e==kH||typeof r.message=="string"&&typeof r.name=="string"&&!SH(r)}var NH=OH,CH=Yl,BH=Xn,PH="[object WeakMap]";function MH(r){return BH(r)&&CH(r)==PH}var LH=MH,UH=kd,DH=Hg,$H=1,FH=2;function HH(r,e,t,n){var i=t.length,s=i,o=!n;if(r==null)return!s;for(r=Object(r);i--;){var a=t[i];if(o&&a[2]?a[1]!==r[a[0]]:!(a[0]in r))return!1}for(;++i<s;){a=t[i];var u=a[0],l=r[u],h=a[1];if(o&&a[2]){if(l===void 0&&!(u in r))return!1}else{var g=new UH;if(n)var b=n(l,h,u,r,e,g);if(!(b===void 0?DH(h,l,$H|FH,n,g):b))return!1}}return!0}var zH=HH,GH=yi;function KH(r){return r===r&&!GH(r)}var Xv=KH,jH=Xv,WH=Ld;function VH(r){for(var e=WH(r),t=e.length;t--;){var n=e[t],i=r[n];e[t]=[n,i,jH(i)]}return e}var qH=VH;function ZH(r,e){return function(t){return t==null?!1:t[r]===e&&(e!==void 0||r in Object(t))}}var eE=ZH,QH=zH,YH=qH,JH=eE;function XH(r){var e=YH(r);return e.length==1&&e[0][2]?JH(e[0][0],e[0][1]):function(t){return t===r||QH(t,r,e)}}var e7=XH,t7=In,r7=wf,n7=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,i7=/^\w*$/;function s7(r,e){if(t7(r))return!1;var t=typeof r;return t=="number"||t=="symbol"||t=="boolean"||r==null||r7(r)?!0:i7.test(r)||!n7.test(r)||e!=null&&r in Object(e)}var _y=s7,tE=Ig,o7="Expected a function";function Ay(r,e){if(typeof r!="function"||e!=null&&typeof e!="function")throw new TypeError(o7);var t=function(){var n=arguments,i=e?e.apply(this,n):n[0],s=t.cache;if(s.has(i))return s.get(i);var o=r.apply(this,n);return t.cache=s.set(i,o)||s,o};return t.cache=new(Ay.Cache||tE),t}Ay.Cache=tE;var a7=Ay,c7=a7,u7=500;function l7(r){var e=c7(r,function(n){return t.size===u7&&t.clear(),n}),t=e.cache;return e}var f7=l7,h7=f7,d7=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,p7=/\\(\\)?/g,g7=h7(function(r){var e=[];return r.charCodeAt(0)===46&&e.push(""),r.replace(d7,function(t,n,i,s){e.push(i?s.replace(p7,"$1"):n||t)}),e}),rE=g7;function y7(r,e){for(var t=-1,n=r==null?0:r.length,i=Array(n);++t<n;)i[t]=e(r[t],t,r);return i}var nE=y7,iE=Dc,m7=nE,w7=In,b7=wf,_7=1/0,sE=iE?iE.prototype:void 0,oE=sE?sE.toString:void 0;function aE(r){if(typeof r=="string")return r;if(w7(r))return m7(r,aE)+"";if(b7(r))return oE?oE.call(r):"";var e=r+"";return e=="0"&&1/r==-_7?"-0":e}var A7=aE,v7=A7;function E7(r){return r==null?"":v7(r)}var cE=E7,x7=In,R7=_y,I7=rE,S7=cE;function k7(r,e){return x7(r)?r:R7(r,e)?[r]:I7(S7(r))}var uE=k7,T7=wf,O7=1/0;function N7(r){if(typeof r=="string"||T7(r))return r;var e=r+"";return e=="0"&&1/r==-O7?"-0":e}var Af=N7,C7=uE,B7=Af;function P7(r,e){e=C7(e,r);for(var t=0,n=e.length;r!=null&&t<n;)r=r[B7(e[t++])];return t&&t==n?r:void 0}var lE=P7,M7=lE;function L7(r,e,t){var n=r==null?void 0:M7(r,e);return n===void 0?t:n}var U7=L7;function D7(r,e){return r!=null&&e in Object(r)}var $7=D7,F7=uE,H7=Od,z7=In,G7=Bd,K7=Og,j7=Af;function W7(r,e,t){e=F7(e,r);for(var n=-1,i=e.length,s=!1;++n<i;){var o=j7(e[n]);if(!(s=r!=null&&t(r,o)))break;r=r[o]}return s||++n!=i?s:(i=r==null?0:r.length,!!i&&K7(i)&&G7(o,i)&&(z7(r)||H7(r)))}var V7=W7,q7=$7,Z7=V7;function Q7(r,e){return r!=null&&Z7(r,e,q7)}var Y7=Q7,J7=Hg,X7=U7,ez=Y7,tz=_y,rz=Xv,nz=eE,iz=Af,sz=1,oz=2;function az(r,e){return tz(r)&&rz(e)?nz(iz(r),e):function(t){var n=X7(t,r);return n===void 0&&n===e?ez(t,r):J7(e,n,sz|oz)}}var cz=az;function uz(r){return function(e){return e==null?void 0:e[r]}}var lz=uz,fz=lE;function hz(r){return function(e){return fz(e,r)}}var dz=hz,pz=lz,gz=dz,yz=_y,mz=Af;function wz(r){return yz(r)?pz(mz(r)):gz(r)}var bz=wz,_z=e7,Az=cz,vz=Vd,Ez=In,xz=bz;function Rz(r){return typeof r=="function"?r:r==null?vz:typeof r=="object"?Ez(r)?Az(r[0],r[1]):_z(r):xz(r)}var Iz=Rz,Sz=Qv,kz=Iz,Tz=1;function Oz(r){return kz(typeof r=="function"?r:Sz(r,Tz))}var Nz=Oz,fE=Dc,Cz=Od,Bz=In,hE=fE?fE.isConcatSpreadable:void 0;function Pz(r){return Bz(r)||Cz(r)||!!(hE&&r&&r[hE])}var Mz=Pz,Lz=kg,Uz=Mz;function dE(r,e,t,n,i){var s=-1,o=r.length;for(t||(t=Uz),i||(i=[]);++s<o;){var a=r[s];e>0&&t(a)?e>1?dE(a,e-1,t,n,i):Lz(i,a):n||(i[i.length]=a)}return i}var Dz=dE,$z=Dz;function Fz(r){var e=r==null?0:r.length;return e?$z(r,1):[]}var Hz=Fz,zz=ty,pE=Math.max;function Gz(r,e,t){return e=pE(e===void 0?r.length-1:e,0),function(){for(var n=arguments,i=-1,s=pE(n.length-e,0),o=Array(s);++i<s;)o[i]=n[e+i];i=-1;for(var a=Array(e+1);++i<e;)a[i]=n[i];return a[e]=t(o),zz(r,this,a)}}var gE=Gz,Kz=Hz,jz=gE,Wz=iy;function Vz(r){return Wz(jz(r,void 0,Kz),r+"")}var qz=Vz,Zz=fy,Qz=qz,Yz=256,Jz=Qz(function(r,e){return Zz(r,Yz,void 0,void 0,void 0,e)}),Xz=Jz,eG=nE,tG=yf,rG=In,nG=wf,iG=rE,sG=Af,oG=cE;function aG(r){return rG(r)?eG(r,sG):nG(r)?[r]:tG(iG(oG(r)))}var cG=aG,uG={ary:v$,assign:Ov,clone:hH,curry:gH,forEach:sy,isArray:In,isError:NH,isFunction:Rd,isWeakMap:LH,iteratee:Nz,keys:rA,rearg:Xz,toInteger:Ev,toPath:cG},lG=OM,fG=uG;function hG(r,e,t){return lG(fG,r,e,t)}var dG=hG,vy,yE;function mE(){if(yE)return vy;yE=1;var r=hy,e=Zl;function t(n,i,s){(s!==void 0&&!e(n[i],s)||s===void 0&&!(i in n))&&r(n,i,s)}return vy=t,vy}var Ey,wE;function pG(){if(wE)return Ey;wE=1;function r(e){return function(t,n,i){for(var s=-1,o=Object(t),a=i(t),u=a.length;u--;){var l=a[e?u:++s];if(n(o[l],l,o)===!1)break}return t}}return Ey=r,Ey}var xy,bE;function gG(){if(bE)return xy;bE=1;var r=pG(),e=r();return xy=e,xy}var Ry,_E;function yG(){if(_E)return Ry;_E=1;var r=Md,e=Xn;function t(n){return e(n)&&r(n)}return Ry=t,Ry}var Iy,AE;function vE(){if(AE)return Iy;AE=1;function r(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}return Iy=r,Iy}var Sy,EE;function mG(){if(EE)return Sy;EE=1;var r=bf,e=_f();function t(n){return r(n,e(n))}return Sy=t,Sy}var ky,xE;function wG(){if(xE)return ky;xE=1;var r=mE(),e=Pv,t=Hv(),n=yf,i=zv,s=Od,o=In,a=yG(),u=Cd,l=Rd,h=yi,g=Jv,b=Bg,w=vE(),I=mG();function S(x,C,H,D,z,V,Z){var K=w(x,H),W=w(C,H),oe=Z.get(W);if(oe){r(x,H,oe);return}var ce=V?V(K,W,H+"",x,C,Z):void 0,ie=ce===void 0;if(ie){var ue=o(W),B=!ue&&u(W),p=!ue&&!B&&b(W);ce=W,ue||B||p?o(K)?ce=K:a(K)?ce=n(K):B?(ie=!1,ce=e(W,!0)):p?(ie=!1,ce=t(W,!0)):ce=[]:g(W)||s(W)?(ce=K,s(K)?ce=I(K):(!h(K)||l(K))&&(ce=i(W))):ie=!1}ie&&(Z.set(W,ce),z(ce,W,D,V,Z),Z.delete(W)),r(x,H,ce)}return ky=S,ky}var Ty,RE;function bG(){if(RE)return Ty;RE=1;var r=kd,e=mE(),t=gG(),n=wG(),i=yi,s=_f(),o=vE();function a(u,l,h,g,b){u!==l&&t(l,function(w,I){if(b||(b=new r),i(w))n(u,l,I,h,a,g,b);else{var S=g?g(o(u,I),w,I+"",u,l,b):void 0;S===void 0&&(S=w),e(u,I,S)}},s)}return Ty=a,Ty}var Oy,IE;function _G(){if(IE)return Oy;IE=1;var r=Vd,e=gE,t=iy;function n(i,s){return t(e(i,s,r),i+"")}return Oy=n,Oy}var Ny,SE;function AG(){if(SE)return Ny;SE=1;var r=Zl,e=Md,t=Bd,n=yi;function i(s,o,a){if(!n(a))return!1;var u=typeof o;return(u=="number"?e(a)&&t(o,a.length):u=="string"&&o in a)?r(a[o],s):!1}return Ny=i,Ny}var Cy,kE;function vG(){if(kE)return Cy;kE=1;var r=_G(),e=AG();function t(n){return r(function(i,s){var o=-1,a=s.length,u=a>1?s[a-1]:void 0,l=a>2?s[2]:void 0;for(u=n.length>3&&typeof u=="function"?(a--,u):void 0,l&&e(s[0],s[1],l)&&(u=a<3?void 0:u,a=1),i=Object(i);++o<a;){var h=s[o];h&&n(i,h,o,u)}return i})}return Cy=t,Cy}var By,TE;function EG(){if(TE)return By;TE=1;var r=bG(),e=vG(),t=e(function(n,i,s,o){r(n,i,s,o)});return By=t,By}var xG=dG,OE=xG("mergeWith",EG());OE.placeholder=zA();var RG=OE;const IG=xn(RG);class SG{constructor(e,t,n,i){this.userDetails=e,this.utils=t,this.chatSettings=n,this.emitter=i,this.mutex=new RM,this.logger=Ui.getInstance(),this.errorHandler=new Dd,this.messagesQueue=new Kg({clearWaitTime:200}),this.history={allTimeUsers:{}},this.processedUpdaterRefs=new Set,this.loadedMessagesCache=new Set,this.updaterEntryBuffer=[],this.historyUpdateTimer=null,this.HISTORY_UPDATE_INTERVAL_TIME=5e3,this.MAX_LOADED_MESSAGES_CACHE_SIZE=10}async init(){const e=await this.fetchLatestHistoryEntry();if(!this.historyEntry&&!e||!(e!=null&&e.ref)){this.initializeDefaultEntry();return}if(e!=null&&e.ref){this.setHistoryEntry(e);const t=await this.fetchHistory(e);this.history=t||this.history,this.trimHistory(),await this.fetchPreviousMessages({preDownloadHistory:!1})}}startHistoryUpdateProcess(){if(this.historyUpdateTimer){this.logger.warn("History update process is already running.");return}this.historyUpdateTimer=setInterval(this.createHistoryEntry.bind(this),this.HISTORY_UPDATE_INTERVAL_TIME)}stopHistoryUpdateProcess(){this.historyUpdateTimer&&(clearInterval(this.historyUpdateTimer),this.historyUpdateTimer=null)}getHistoryEntryWithNewUpdater(e){return{...this.historyEntry,updater:this.chooseNewUpdater(e)}}setHistoryEntry(e){this.historyEntry=e}async processHistoryUpdaterEntry(e,t){const n=await this.mutex.acquire();try{this.updateLocalHistory(e),da(t.updater.toLowerCase())===da(this.userDetails.ownAddress.toLowerCase())&&this.updaterEntryBuffer.push(t)}catch(i){this.errorHandler.handleError(i,"Chat.processHistoryUpdaterEntry")}finally{n()}}async fetchPreviousMessages(e){const t=await this.mutex.acquire();try{const n=e.preDownloadHistory?await this.fetchHistory(this.historyEntry):null,{allTimeUsers:i}=n?this.mergeChatHistory(n,this.history):this.history,s=this.selectLatestMessages(i);s.length>0&&await this.readAllMessageEntry(s)}finally{t()}}async createHistoryEntry(){const e=await this.mutex.acquire();try{const t=this.selectBestEntryForUpdate([...this.updaterEntryBuffer]);if(!t||this.processedUpdaterRefs.has(t.ref)){this.cleanupUpdaterEntryBuffer(t==null?void 0:t.id);return}const n=t.ref?await this.fetchHistory(this.historyEntry):null,i=n?this.mergeChatHistory(n,this.history):this.history,s=await this.uploadHistory(i),o=this.createNewHistoryEntry(s);await this.waitForHistoryEntryBroadcast(o),this.cleanupUpdaterEntryBuffer(t.id),this.processedUpdaterRefs.add(t.ref)}catch(t){this.errorHandler.handleError(t,"Chat.updateHistory")}finally{e()}}async waitForHistoryEntryBroadcast(e){return DA({condition:()=>this.historyEntry.ref===e.ref,broadcast:()=>this.broadcastHistoryEntry(e)})}async broadcastHistoryEntry(e){try{await this.utils.retryAwaitableAsync(()=>this.utils.sendMessageToGsoc(JSON.stringify({topic:this.chatSettings.chatTopic,historyEntry:e}))),this.logger.debug("NEW history entry broadcast CALLED")}catch(t){this.errorHandler.handleError(t,"Chat.broadcastNewAppState")}}async uploadHistory(e){const t=await this.utils.uploadObjectToBee(e);if(!t)throw new Error("History reference is null");return t}async fetchHistory(e){const t=e||await this.fetchLatestHistoryEntry();if(!t)return null;const n=await this.utils.downloadObjectFromBee(t.ref);return yM(n)?n:(this.logger.warn("Could not fetch remote history: invalid history data"),null)}async fetchLatestHistoryEntry(){try{const e=await this.utils.fetchLatestChatMessage();return this.logger.debug("Init GSOC message:",e),UA(e)?e.historyEntry:(this.logger.warn("Invalid GSOC message during latest history entry fetch"),null)}catch(e){return this.errorHandler.handleError(e,"Chat.fetchLatestHistoryEntry"),null}}async readAllMessageEntry(e){e.forEach(t=>{this.messagesQueue.enqueue(()=>this.readMessage(t))}),await this.messagesQueue.waitForProcessing()}async readMessage(e){try{const t=await this.utils.fetchUserFeedDataByIndex(e.address,e.entry.index);this.emitter.emit(ei.MESSAGE_RECEIVED,t)}catch(t){this.errorHandler.handleError(t,"SwarmHistory.readMessage")}}updateLocalHistory(e){const t={};Object.entries(e).forEach(([n,i])=>{t[n]={events:[],messageEntries:[{index:i.index,timestamp:i.timestamp}]}}),this.history={allTimeUsers:this.mergeUserHistory(t,this.history.allTimeUsers)}}mergeChatHistory(e,t){return{allTimeUsers:this.mergeUserHistory(e.allTimeUsers,t.allTimeUsers)}}mergeUserHistory(e,t){return IG((n,i)=>{if(!n)return i;if(!i)return n;const s=AA(n.events,i.events,a=>`${a.type}-${a.timestamp}`,(a,u)=>a.timestamp-u.timestamp),o=AA(n.messageEntries,i.messageEntries,a=>a.index,(a,u)=>a.timestamp-u.timestamp);return{events:s,messageEntries:o}},e,t)}trimHistory(e=2,t=1e4){try{const n=JSON.stringify(this.history);if(new Blob([n]).size/(1024*1024)<=e)return;const o=[];for(const l in this.history.allTimeUsers)this.history.allTimeUsers[l].messageEntries.forEach(g=>{o.push({address:l,entry:g})});o.sort((l,h)=>l.entry.timestamp-h.entry.timestamp);const a=o.slice(t),u={allTimeUsers:{}};for(const{address:l,entry:h}of a)u.allTimeUsers[l]||(u.allTimeUsers[l]={events:[],messageEntries:[]}),u.allTimeUsers[l].messageEntries.push(h);this.history=u}catch(n){this.errorHandler.handleError(n,"SwarmHistory.trimHistory")}}chooseNewUpdater(e){const t=Object.values(e);if(t.length===0)return this.userDetails.ownAddress;let n;if(window.crypto&&window.crypto.getRandomValues){const i=new Uint32Array(1);window.crypto.getRandomValues(i),n=i[0]%t.length}else n=Math.floor(Math.random()*t.length);return t[n].address}selectLatestMessages(e){const t=[];for(const[i,s]of Object.entries(e))for(const o of s.messageEntries)t.push({address:i,entry:o});t.sort((i,s)=>s.entry.timestamp-i.entry.timestamp);const n=[];for(const{address:i,entry:s}of t){const o=`${i}:${s.index}`;if(!this.loadedMessagesCache.has(o)&&(n.push({address:i,entry:s}),this.loadedMessagesCache.add(o),n.length===this.MAX_LOADED_MESSAGES_CACHE_SIZE))break}return n}selectBestEntryForUpdate(e){return e.filter(t=>t.updater===this.userDetails.ownAddress).reduce((t,n)=>!t||n.id>t.id||n.id===t.id&&n.timestamp>t.timestamp?n:t,null)}cleanupUpdaterEntryBuffer(e){e!==void 0&&(this.updaterEntryBuffer=this.updaterEntryBuffer.filter(t=>t.id!==e))}createNewHistoryEntry(e){return{id:this.historyEntry.id+1,ref:e,updater:this.userDetails.ownAddress,timestamp:Date.now()}}initializeDefaultEntry(){this.historyEntry={id:0,ref:"",updater:this.userDetails.ownAddress,timestamp:Date.now()}}}const Zc=globalThis||void 0||self;var Py={},t0={};t0.byteLength=OG,t0.toByteArray=CG,t0.fromByteArray=MG;for(var Hi=[],ti=[],kG=typeof Uint8Array<"u"?Uint8Array:Array,My="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Qc=0,TG=My.length;Qc<TG;++Qc)Hi[Qc]=My[Qc],ti[My.charCodeAt(Qc)]=Qc;ti[45]=62,ti[95]=63;function NE(r){var e=r.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var t=r.indexOf("=");t===-1&&(t=e);var n=t===e?0:4-t%4;return[t,n]}function OG(r){var e=NE(r),t=e[0],n=e[1];return(t+n)*3/4-n}function NG(r,e,t){return(e+t)*3/4-t}function CG(r){var e,t=NE(r),n=t[0],i=t[1],s=new kG(NG(r,n,i)),o=0,a=i>0?n-4:n,u;for(u=0;u<a;u+=4)e=ti[r.charCodeAt(u)]<<18|ti[r.charCodeAt(u+1)]<<12|ti[r.charCodeAt(u+2)]<<6|ti[r.charCodeAt(u+3)],s[o++]=e>>16&255,s[o++]=e>>8&255,s[o++]=e&255;return i===2&&(e=ti[r.charCodeAt(u)]<<2|ti[r.charCodeAt(u+1)]>>4,s[o++]=e&255),i===1&&(e=ti[r.charCodeAt(u)]<<10|ti[r.charCodeAt(u+1)]<<4|ti[r.charCodeAt(u+2)]>>2,s[o++]=e>>8&255,s[o++]=e&255),s}function BG(r){return Hi[r>>18&63]+Hi[r>>12&63]+Hi[r>>6&63]+Hi[r&63]}function PG(r,e,t){for(var n,i=[],s=e;s<t;s+=3)n=(r[s]<<16&16711680)+(r[s+1]<<8&65280)+(r[s+2]&255),i.push(BG(n));return i.join("")}function MG(r){for(var e,t=r.length,n=t%3,i=[],s=16383,o=0,a=t-n;o<a;o+=s)i.push(PG(r,o,o+s>a?a:o+s));return n===1?(e=r[t-1],i.push(Hi[e>>2]+Hi[e<<4&63]+"==")):n===2&&(e=(r[t-2]<<8)+r[t-1],i.push(Hi[e>>10]+Hi[e>>4&63]+Hi[e<<2&63]+"=")),i.join("")}var Ly={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */Ly.read=function(r,e,t,n,i){var s,o,a=i*8-n-1,u=(1<<a)-1,l=u>>1,h=-7,g=t?i-1:0,b=t?-1:1,w=r[e+g];for(g+=b,s=w&(1<<-h)-1,w>>=-h,h+=a;h>0;s=s*256+r[e+g],g+=b,h-=8);for(o=s&(1<<-h)-1,s>>=-h,h+=n;h>0;o=o*256+r[e+g],g+=b,h-=8);if(s===0)s=1-l;else{if(s===u)return o?NaN:(w?-1:1)*(1/0);o=o+Math.pow(2,n),s=s-l}return(w?-1:1)*o*Math.pow(2,s-n)},Ly.write=function(r,e,t,n,i,s){var o,a,u,l=s*8-i-1,h=(1<<l)-1,g=h>>1,b=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,w=n?0:s-1,I=n?1:-1,S=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,o=h):(o=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+g>=1?e+=b/u:e+=b*Math.pow(2,1-g),e*u>=2&&(o++,u/=2),o+g>=h?(a=0,o=h):o+g>=1?(a=(e*u-1)*Math.pow(2,i),o=o+g):(a=e*Math.pow(2,g-1)*Math.pow(2,i),o=0));i>=8;r[t+w]=a&255,w+=I,a/=256,i-=8);for(o=o<<i|a,l+=i;l>0;r[t+w]=o&255,w+=I,o/=256,l-=8);r[t+w-I]|=S*128};/*!
|
|
1
|
+
(function(ue,xt){typeof exports=="object"&&typeof module<"u"?xt(exports,require("@ethersphere/bee-js")):typeof define=="function"&&define.amd?define(["exports","@ethersphere/bee-js"],xt):(ue=typeof globalThis<"u"?globalThis:ue||self,xt(ue.SwarmChatJs={},ue.BeeJs))})(this,function(ue,xt){"use strict";var rZ=Object.defineProperty;var IT=ue=>{throw TypeError(ue)};var iZ=(ue,xt,ae)=>xt in ue?rZ(ue,xt,{enumerable:!0,configurable:!0,writable:!0,value:ae}):ue[xt]=ae;var Z=(ue,xt,ae)=>iZ(ue,typeof xt!="symbol"?xt+"":xt,ae),ib=(ue,xt,ae)=>xt.has(ue)||IT("Cannot "+ae);var T=(ue,xt,ae)=>(ib(ue,xt,"read from private field"),ae?ae.call(ue):xt.get(ue)),nt=(ue,xt,ae)=>xt.has(ue)?IT("Cannot add the same private member more than once"):xt instanceof WeakSet?xt.add(ue):xt.set(ue,ae),$=(ue,xt,ae,Br)=>(ib(ue,xt,"write to private field"),Br?Br.call(ue,ae):xt.set(ue,ae),ae),_t=(ue,xt,ae)=>(ib(ue,xt,"access private method"),ae);var rd=(ue,xt,ae,Br)=>({set _(kc){$(ue,xt,kc,ae)},get _(){return T(ue,xt,Br)}});var zu,Ya,Po,Gu,Vu,vi,Fs,Ku,ju,Fn,Vr,$s,Ja,Xa,tc,ts,xi,Mo,ec,id,gh,yh,mh,Kr,Wu,nc,Zu,Hs,rc,Qu,zp,Nr,jr,ic,sc,Lo,oc,ob,OT,Yu,Ju,Xu,ac,zs,uc,es,tl,el,nl,rl,il,sl,ol,al,cl,ul,ll,lc,Uo,Vs,Do,fl,Gp,wh,js,hl,Ap,NT,Yn,Si,bh,ab,dl,Vp,Fo,Fl,ns,rs,is,sr,ss,Kp,jp,Ws,_h,$o,pl,Ah,Eh,bk,Ho,hc,zo,$l,xp,CT,xh,Rh,yl,ml,Go,Zs,oi,Vo,os,bl,Wp,dc,pc,Ko,_l,qs,Rp,Al,Qs,El,vl,jo,ai,Sp,BT,or,Wo,ar,xl,Wr,gc,Zo,Ys,Sh,ci,Rl,Sl,se,Zr,cb,ub,sd,lb,od,Zp,_r,as,yc,qo,mc,Il,Qo,fb,hb,wc,bc,kl,Js,cs,Ii,ui,Cr,Ih,db,Yo,Tl,us,kh,Jo,_c,Xo,Th,Ac,Ol,ta,Ec,ki;var ae=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Br(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function kc(n){if(n.__esModule)return n;var t=n.default;if(typeof t=="function"){var e=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};e.prototype=t.prototype}else e={};return Object.defineProperty(e,"__esModule",{value:!0}),Object.keys(n).forEach(function(r){var i=Object.getOwnPropertyDescriptor(n,r);Object.defineProperty(e,r,i.get?i:{enumerable:!0,get:function(){return n[r]}})}),e}function PT(){this.__data__=[],this.size=0}var MT=PT;function LT(n,t){return n===t||n!==n&&t!==t}var pb=LT,UT=pb;function DT(n,t){for(var e=n.length;e--;)if(UT(n[e][0],t))return e;return-1}var ad=DT,FT=ad,$T=Array.prototype,HT=$T.splice;function zT(n){var t=this.__data__,e=FT(t,n);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():HT.call(t,e,1),--this.size,!0}var GT=zT,VT=ad;function KT(n){var t=this.__data__,e=VT(t,n);return e<0?void 0:t[e][1]}var jT=KT,WT=ad;function ZT(n){return WT(this.__data__,n)>-1}var qT=ZT,QT=ad;function YT(n,t){var e=this.__data__,r=QT(e,n);return r<0?(++this.size,e.push([n,t])):e[r][1]=t,this}var JT=YT,XT=MT,tO=GT,eO=jT,nO=qT,rO=JT;function Tc(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}Tc.prototype.clear=XT,Tc.prototype.delete=tO,Tc.prototype.get=eO,Tc.prototype.has=nO,Tc.prototype.set=rO;var cd=Tc,iO=cd;function sO(){this.__data__=new iO,this.size=0}var oO=sO;function aO(n){var t=this.__data__,e=t.delete(n);return this.size=t.size,e}var cO=aO;function uO(n){return this.__data__.get(n)}var lO=uO;function fO(n){return this.__data__.has(n)}var hO=fO,dO=typeof ae=="object"&&ae&&ae.Object===Object&&ae,gb=dO,pO=gb,gO=typeof self=="object"&&self&&self.Object===Object&&self,yO=pO||gO||Function("return this")(),hs=yO,mO=hs,wO=mO.Symbol,qp=wO,yb=qp,mb=Object.prototype,bO=mb.hasOwnProperty,_O=mb.toString,Hl=yb?yb.toStringTag:void 0;function AO(n){var t=bO.call(n,Hl),e=n[Hl];try{n[Hl]=void 0;var r=!0}catch{}var i=_O.call(n);return r&&(t?n[Hl]=e:delete n[Hl]),i}var EO=AO,vO=Object.prototype,xO=vO.toString;function RO(n){return xO.call(n)}var SO=RO,wb=qp,IO=EO,kO=SO,TO="[object Null]",OO="[object Undefined]",bb=wb?wb.toStringTag:void 0;function NO(n){return n==null?n===void 0?OO:TO:bb&&bb in Object(n)?IO(n):kO(n)}var ud=NO;function CO(n){var t=typeof n;return n!=null&&(t=="object"||t=="function")}var _b=CO,BO=ud,PO=_b,MO="[object AsyncFunction]",LO="[object Function]",UO="[object GeneratorFunction]",DO="[object Proxy]";function FO(n){if(!PO(n))return!1;var t=BO(n);return t==LO||t==UO||t==MO||t==DO}var Ab=FO,$O=hs,HO=$O["__core-js_shared__"],zO=HO,Qp=zO,Eb=function(){var n=/[^.]+$/.exec(Qp&&Qp.keys&&Qp.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}();function GO(n){return!!Eb&&Eb in n}var VO=GO,KO=Function.prototype,jO=KO.toString;function WO(n){if(n!=null){try{return jO.call(n)}catch{}try{return n+""}catch{}}return""}var vb=WO,ZO=Ab,qO=VO,QO=_b,YO=vb,JO=/[\\^$.*+?()[\]{}|]/g,XO=/^\[object .+?Constructor\]$/,tN=Function.prototype,eN=Object.prototype,nN=tN.toString,rN=eN.hasOwnProperty,iN=RegExp("^"+nN.call(rN).replace(JO,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function sN(n){if(!QO(n)||qO(n))return!1;var t=ZO(n)?iN:XO;return t.test(YO(n))}var oN=sN;function aN(n,t){return n==null?void 0:n[t]}var cN=aN,uN=oN,lN=cN;function fN(n,t){var e=lN(n,t);return uN(e)?e:void 0}var Oc=fN,hN=Oc,dN=hs,pN=hN(dN,"Map"),Yp=pN,gN=Oc,yN=gN(Object,"create"),ld=yN,xb=ld;function mN(){this.__data__=xb?xb(null):{},this.size=0}var wN=mN;function bN(n){var t=this.has(n)&&delete this.__data__[n];return this.size-=t?1:0,t}var _N=bN,AN=ld,EN="__lodash_hash_undefined__",vN=Object.prototype,xN=vN.hasOwnProperty;function RN(n){var t=this.__data__;if(AN){var e=t[n];return e===EN?void 0:e}return xN.call(t,n)?t[n]:void 0}var SN=RN,IN=ld,kN=Object.prototype,TN=kN.hasOwnProperty;function ON(n){var t=this.__data__;return IN?t[n]!==void 0:TN.call(t,n)}var NN=ON,CN=ld,BN="__lodash_hash_undefined__";function PN(n,t){var e=this.__data__;return this.size+=this.has(n)?0:1,e[n]=CN&&t===void 0?BN:t,this}var MN=PN,LN=wN,UN=_N,DN=SN,FN=NN,$N=MN;function Nc(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}Nc.prototype.clear=LN,Nc.prototype.delete=UN,Nc.prototype.get=DN,Nc.prototype.has=FN,Nc.prototype.set=$N;var HN=Nc,Rb=HN,zN=cd,GN=Yp;function VN(){this.size=0,this.__data__={hash:new Rb,map:new(GN||zN),string:new Rb}}var KN=VN;function jN(n){var t=typeof n;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?n!=="__proto__":n===null}var WN=jN,ZN=WN;function qN(n,t){var e=n.__data__;return ZN(t)?e[typeof t=="string"?"string":"hash"]:e.map}var fd=qN,QN=fd;function YN(n){var t=QN(this,n).delete(n);return this.size-=t?1:0,t}var JN=YN,XN=fd;function t6(n){return XN(this,n).get(n)}var e6=t6,n6=fd;function r6(n){return n6(this,n).has(n)}var i6=r6,s6=fd;function o6(n,t){var e=s6(this,n),r=e.size;return e.set(n,t),this.size+=e.size==r?0:1,this}var a6=o6,c6=KN,u6=JN,l6=e6,f6=i6,h6=a6;function Cc(n){var t=-1,e=n==null?0:n.length;for(this.clear();++t<e;){var r=n[t];this.set(r[0],r[1])}}Cc.prototype.clear=c6,Cc.prototype.delete=u6,Cc.prototype.get=l6,Cc.prototype.has=f6,Cc.prototype.set=h6;var Sb=Cc,d6=cd,p6=Yp,g6=Sb,y6=200;function m6(n,t){var e=this.__data__;if(e instanceof d6){var r=e.__data__;if(!p6||r.length<y6-1)return r.push([n,t]),this.size=++e.size,this;e=this.__data__=new g6(r)}return e.set(n,t),this.size=e.size,this}var w6=m6,b6=cd,_6=oO,A6=cO,E6=lO,v6=hO,x6=w6;function Bc(n){var t=this.__data__=new b6(n);this.size=t.size}Bc.prototype.clear=_6,Bc.prototype.delete=A6,Bc.prototype.get=E6,Bc.prototype.has=v6,Bc.prototype.set=x6;var R6=Bc,S6="__lodash_hash_undefined__";function I6(n){return this.__data__.set(n,S6),this}var k6=I6;function T6(n){return this.__data__.has(n)}var O6=T6,N6=Sb,C6=k6,B6=O6;function hd(n){var t=-1,e=n==null?0:n.length;for(this.__data__=new N6;++t<e;)this.add(n[t])}hd.prototype.add=hd.prototype.push=C6,hd.prototype.has=B6;var P6=hd;function M6(n,t){for(var e=-1,r=n==null?0:n.length;++e<r;)if(t(n[e],e,n))return!0;return!1}var L6=M6;function U6(n,t){return n.has(t)}var D6=U6,F6=P6,$6=L6,H6=D6,z6=1,G6=2;function V6(n,t,e,r,i,s){var o=e&z6,c=n.length,u=t.length;if(c!=u&&!(o&&u>c))return!1;var f=s.get(n),h=s.get(t);if(f&&h)return f==t&&h==n;var y=-1,A=!0,b=e&G6?new F6:void 0;for(s.set(n,t),s.set(t,n);++y<c;){var R=n[y],k=t[y];if(r)var S=o?r(k,R,y,t,n,s):r(R,k,y,n,t,s);if(S!==void 0){if(S)continue;A=!1;break}if(b){if(!$6(t,function(B,H){if(!H6(b,H)&&(R===B||i(R,B,e,r,s)))return b.push(H)})){A=!1;break}}else if(!(R===k||i(R,k,e,r,s))){A=!1;break}}return s.delete(n),s.delete(t),A}var Ib=V6,K6=hs,j6=K6.Uint8Array,W6=j6;function Z6(n){var t=-1,e=Array(n.size);return n.forEach(function(r,i){e[++t]=[i,r]}),e}var q6=Z6;function Q6(n){var t=-1,e=Array(n.size);return n.forEach(function(r){e[++t]=r}),e}var Y6=Q6,kb=qp,Tb=W6,J6=pb,X6=Ib,tC=q6,eC=Y6,nC=1,rC=2,iC="[object Boolean]",sC="[object Date]",oC="[object Error]",aC="[object Map]",cC="[object Number]",uC="[object RegExp]",lC="[object Set]",fC="[object String]",hC="[object Symbol]",dC="[object ArrayBuffer]",pC="[object DataView]",Ob=kb?kb.prototype:void 0,Jp=Ob?Ob.valueOf:void 0;function gC(n,t,e,r,i,s,o){switch(e){case pC:if(n.byteLength!=t.byteLength||n.byteOffset!=t.byteOffset)return!1;n=n.buffer,t=t.buffer;case dC:return!(n.byteLength!=t.byteLength||!s(new Tb(n),new Tb(t)));case iC:case sC:case cC:return J6(+n,+t);case oC:return n.name==t.name&&n.message==t.message;case uC:case fC:return n==t+"";case aC:var c=tC;case lC:var u=r&nC;if(c||(c=eC),n.size!=t.size&&!u)return!1;var f=o.get(n);if(f)return f==t;r|=rC,o.set(n,t);var h=X6(c(n),c(t),r,i,s,o);return o.delete(n),h;case hC:if(Jp)return Jp.call(n)==Jp.call(t)}return!1}var yC=gC;function mC(n,t){for(var e=-1,r=t.length,i=n.length;++e<r;)n[i+e]=t[e];return n}var wC=mC,bC=Array.isArray,Xp=bC,_C=wC,AC=Xp;function EC(n,t,e){var r=t(n);return AC(n)?r:_C(r,e(n))}var vC=EC;function xC(n,t){for(var e=-1,r=n==null?0:n.length,i=0,s=[];++e<r;){var o=n[e];t(o,e,n)&&(s[i++]=o)}return s}var RC=xC;function SC(){return[]}var IC=SC,kC=RC,TC=IC,OC=Object.prototype,NC=OC.propertyIsEnumerable,Nb=Object.getOwnPropertySymbols,CC=Nb?function(n){return n==null?[]:(n=Object(n),kC(Nb(n),function(t){return NC.call(n,t)}))}:TC,BC=CC;function PC(n,t){for(var e=-1,r=Array(n);++e<n;)r[e]=t(e);return r}var MC=PC;function LC(n){return n!=null&&typeof n=="object"}var dd=LC,UC=ud,DC=dd,FC="[object Arguments]";function $C(n){return DC(n)&&UC(n)==FC}var HC=$C,Cb=HC,zC=dd,Bb=Object.prototype,GC=Bb.hasOwnProperty,VC=Bb.propertyIsEnumerable,KC=Cb(function(){return arguments}())?Cb:function(n){return zC(n)&&GC.call(n,"callee")&&!VC.call(n,"callee")},jC=KC,pd={exports:{}};function WC(){return!1}var ZC=WC;pd.exports,function(n,t){var e=hs,r=ZC,i=t&&!t.nodeType&&t,s=i&&!0&&n&&!n.nodeType&&n,o=s&&s.exports===i,c=o?e.Buffer:void 0,u=c?c.isBuffer:void 0,f=u||r;n.exports=f}(pd,pd.exports);var Pb=pd.exports,qC=9007199254740991,QC=/^(?:0|[1-9]\d*)$/;function YC(n,t){var e=typeof n;return t=t??qC,!!t&&(e=="number"||e!="symbol"&&QC.test(n))&&n>-1&&n%1==0&&n<t}var JC=YC,XC=9007199254740991;function t3(n){return typeof n=="number"&&n>-1&&n%1==0&&n<=XC}var Mb=t3,e3=ud,n3=Mb,r3=dd,i3="[object Arguments]",s3="[object Array]",o3="[object Boolean]",a3="[object Date]",c3="[object Error]",u3="[object Function]",l3="[object Map]",f3="[object Number]",h3="[object Object]",d3="[object RegExp]",p3="[object Set]",g3="[object String]",y3="[object WeakMap]",m3="[object ArrayBuffer]",w3="[object DataView]",b3="[object Float32Array]",_3="[object Float64Array]",A3="[object Int8Array]",E3="[object Int16Array]",v3="[object Int32Array]",x3="[object Uint8Array]",R3="[object Uint8ClampedArray]",S3="[object Uint16Array]",I3="[object Uint32Array]",Ve={};Ve[b3]=Ve[_3]=Ve[A3]=Ve[E3]=Ve[v3]=Ve[x3]=Ve[R3]=Ve[S3]=Ve[I3]=!0,Ve[i3]=Ve[s3]=Ve[m3]=Ve[o3]=Ve[w3]=Ve[a3]=Ve[c3]=Ve[u3]=Ve[l3]=Ve[f3]=Ve[h3]=Ve[d3]=Ve[p3]=Ve[g3]=Ve[y3]=!1;function k3(n){return r3(n)&&n3(n.length)&&!!Ve[e3(n)]}var T3=k3;function O3(n){return function(t){return n(t)}}var N3=O3,gd={exports:{}};gd.exports,function(n,t){var e=gb,r=t&&!t.nodeType&&t,i=r&&!0&&n&&!n.nodeType&&n,s=i&&i.exports===r,o=s&&e.process,c=function(){try{var u=i&&i.require&&i.require("util").types;return u||o&&o.binding&&o.binding("util")}catch{}}();n.exports=c}(gd,gd.exports);var C3=gd.exports,B3=T3,P3=N3,Lb=C3,Ub=Lb&&Lb.isTypedArray,M3=Ub?P3(Ub):B3,Db=M3,L3=MC,U3=jC,D3=Xp,F3=Pb,$3=JC,H3=Db,z3=Object.prototype,G3=z3.hasOwnProperty;function V3(n,t){var e=D3(n),r=!e&&U3(n),i=!e&&!r&&F3(n),s=!e&&!r&&!i&&H3(n),o=e||r||i||s,c=o?L3(n.length,String):[],u=c.length;for(var f in n)(t||G3.call(n,f))&&!(o&&(f=="length"||i&&(f=="offset"||f=="parent")||s&&(f=="buffer"||f=="byteLength"||f=="byteOffset")||$3(f,u)))&&c.push(f);return c}var K3=V3,j3=Object.prototype;function W3(n){var t=n&&n.constructor,e=typeof t=="function"&&t.prototype||j3;return n===e}var Z3=W3;function q3(n,t){return function(e){return n(t(e))}}var Q3=q3,Y3=Q3,J3=Y3(Object.keys,Object),X3=J3,tB=Z3,eB=X3,nB=Object.prototype,rB=nB.hasOwnProperty;function iB(n){if(!tB(n))return eB(n);var t=[];for(var e in Object(n))rB.call(n,e)&&e!="constructor"&&t.push(e);return t}var sB=iB,oB=Ab,aB=Mb;function cB(n){return n!=null&&aB(n.length)&&!oB(n)}var uB=cB,lB=K3,fB=sB,hB=uB;function dB(n){return hB(n)?lB(n):fB(n)}var pB=dB,gB=vC,yB=BC,mB=pB;function wB(n){return gB(n,mB,yB)}var bB=wB,Fb=bB,_B=1,AB=Object.prototype,EB=AB.hasOwnProperty;function vB(n,t,e,r,i,s){var o=e&_B,c=Fb(n),u=c.length,f=Fb(t),h=f.length;if(u!=h&&!o)return!1;for(var y=u;y--;){var A=c[y];if(!(o?A in t:EB.call(t,A)))return!1}var b=s.get(n),R=s.get(t);if(b&&R)return b==t&&R==n;var k=!0;s.set(n,t),s.set(t,n);for(var S=o;++y<u;){A=c[y];var B=n[A],H=t[A];if(r)var U=o?r(H,B,A,t,n,s):r(B,H,A,n,t,s);if(!(U===void 0?B===H||i(B,H,e,r,s):U)){k=!1;break}S||(S=A=="constructor")}if(k&&!S){var G=n.constructor,W=t.constructor;G!=W&&"constructor"in n&&"constructor"in t&&!(typeof G=="function"&&G instanceof G&&typeof W=="function"&&W instanceof W)&&(k=!1)}return s.delete(n),s.delete(t),k}var xB=vB,RB=Oc,SB=hs,IB=RB(SB,"DataView"),kB=IB,TB=Oc,OB=hs,NB=TB(OB,"Promise"),CB=NB,BB=Oc,PB=hs,MB=BB(PB,"Set"),LB=MB,UB=Oc,DB=hs,FB=UB(DB,"WeakMap"),$B=FB,tg=kB,eg=Yp,ng=CB,rg=LB,ig=$B,$b=ud,Pc=vb,Hb="[object Map]",HB="[object Object]",zb="[object Promise]",Gb="[object Set]",Vb="[object WeakMap]",Kb="[object DataView]",zB=Pc(tg),GB=Pc(eg),VB=Pc(ng),KB=Pc(rg),jB=Pc(ig),sa=$b;(tg&&sa(new tg(new ArrayBuffer(1)))!=Kb||eg&&sa(new eg)!=Hb||ng&&sa(ng.resolve())!=zb||rg&&sa(new rg)!=Gb||ig&&sa(new ig)!=Vb)&&(sa=function(n){var t=$b(n),e=t==HB?n.constructor:void 0,r=e?Pc(e):"";if(r)switch(r){case zB:return Kb;case GB:return Hb;case VB:return zb;case KB:return Gb;case jB:return Vb}return t});var WB=sa,sg=R6,ZB=Ib,qB=yC,QB=xB,jb=WB,Wb=Xp,Zb=Pb,YB=Db,JB=1,qb="[object Arguments]",Qb="[object Array]",yd="[object Object]",XB=Object.prototype,Yb=XB.hasOwnProperty;function t8(n,t,e,r,i,s){var o=Wb(n),c=Wb(t),u=o?Qb:jb(n),f=c?Qb:jb(t);u=u==qb?yd:u,f=f==qb?yd:f;var h=u==yd,y=f==yd,A=u==f;if(A&&Zb(n)){if(!Zb(t))return!1;o=!0,h=!1}if(A&&!h)return s||(s=new sg),o||YB(n)?ZB(n,t,e,r,i,s):qB(n,t,u,e,r,i,s);if(!(e&JB)){var b=h&&Yb.call(n,"__wrapped__"),R=y&&Yb.call(t,"__wrapped__");if(b||R){var k=b?n.value():n,S=R?t.value():t;return s||(s=new sg),i(k,S,e,r,s)}}return A?(s||(s=new sg),QB(n,t,e,r,i,s)):!1}var e8=t8,n8=e8,Jb=dd;function Xb(n,t,e,r,i){return n===t?!0:n==null||t==null||!Jb(n)&&!Jb(t)?n!==n&&t!==t:n8(n,t,e,r,Xb,i)}var r8=Xb,i8=r8;function s8(n,t){return i8(n,t)}var o8=s8;const a8=Br(o8),zn=[];for(let n=0;n<256;++n)zn.push((n+256).toString(16).slice(1));function c8(n,t=0){return(zn[n[t+0]]+zn[n[t+1]]+zn[n[t+2]]+zn[n[t+3]]+"-"+zn[n[t+4]]+zn[n[t+5]]+"-"+zn[n[t+6]]+zn[n[t+7]]+"-"+zn[n[t+8]]+zn[n[t+9]]+"-"+zn[n[t+10]]+zn[n[t+11]]+zn[n[t+12]]+zn[n[t+13]]+zn[n[t+14]]+zn[n[t+15]]).toLowerCase()}let og;const u8=new Uint8Array(16);function l8(){if(!og){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");og=crypto.getRandomValues.bind(crypto)}return og(u8)}const t_={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function f8(n,t,e){if(t_.randomUUID&&!t&&!n)return t_.randomUUID();n=n||{};const r=n.random||(n.rng||l8)();return r[6]=r[6]&15|64,r[8]=r[8]&63|128,c8(r)}function ag(n){return new Promise(t=>{setTimeout(t,n)})}function zl(n){return(n.startsWith("0x")?n.slice(2):n).toLowerCase()}class Oi{constructor(){}static getInstance(){return Oi.instance||(Oi.instance=new Oi),Oi.instance}formatMessage(t,...e){return`[${new Date().toISOString()}] [${t.toUpperCase()}] - ${e.map(i=>typeof i=="object"?JSON.stringify(i):i).join(" ")}`}log(...t){console.log(this.formatMessage("log",...t))}info(...t){console.info(this.formatMessage("info",...t))}warn(...t){console.warn(this.formatMessage("warn",...t))}error(...t){console.error(this.formatMessage("error",...t))}debug(...t){console.debug(this.formatMessage("debug",...t))}}class md{constructor(){this.logger=Oi.getInstance()}handleError(t,e){const r=t instanceof Error?t.message:"Unknown error occurred",i=t instanceof Error?t.stack:null;this.logger.error(`Error in ${e||"unknown context"}: ${r}`,{stack:i})}}let h8=class{constructor(){this.events={},this.on=this.on.bind(this),this.off=this.off.bind(this),this.cleanAll=this.cleanAll.bind(this),this.emit=this.emit.bind(this)}on(t,e){this.events[t]||(this.events[t]=[]),this.events[t].push(e)}off(t,e){if(!this.events[t])return;const r=this.events[t].indexOf(e);r>-1&&this.events[t].splice(r,1)}cleanAll(){this.events={}}emit(t,e){this.events[t]&&this.events[t].forEach(r=>r(e))}};class e_{constructor(t={}){this.tasks=[],this.isProcessing=!1,this.isWaiting=!1,this.errorHandler=new md,this.clearWaitTime=t.clearWaitTime||500}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.tasks.length>0;){const t=this.tasks.shift();if(t)try{const e=t();e instanceof Promise&&await e}catch(e){this.errorHandler.handleError(e,"Queue.processQueue")}}this.isProcessing=!1}}enqueue(t){this.tasks.push(t),this.processQueue()}async waitForProcessing(){if(this.isWaiting)return!0;for(this.isWaiting=!0;this.isProcessing;)await ag(this.clearWaitTime);return this.isWaiting=!1,!1}}var n_={};(function(n){var t;Object.defineProperty(n,"__esModule",{value:!0}),n.Vector=n.Cache=n.Assertions=n.Strings=n.Types=n.Objects=n.Dates=n.Promises=n.Numbers=n.System=n.Arrays=n.Random=n.Elliptic=n.Binary=n.AsyncQueue=n.PubSubChannel=n.FixedPointNumber=n.MerkleTree=n.Chunk=n.Uint8ArrayWriter=n.Uint8ArrayReader=n.AsyncLazy=n.Lazy=n.Optional=void 0;async function e(a){return new Promise((l,d)=>a.then(d,l))}async function r(a){return e(Promise.all(a.map(e)))}async function i(a,l=1){const d=Jk(a,l),g=[],x=d.map(async L=>{for(const Q of L)g.push(await Q())});return await Promise.all(x),g}async function s(a){return new Promise(l=>setTimeout(()=>{l(!0)},a))}function o(a,l=Math.random){for(let d=a.length-1;d>0;d--){const g=Math.floor(l()*(d+1)),x=a[d];a[d]=a[g],a[g]=x}return a}function c(a){if(a.length===1)return a[0];throw Error(`Expected exactly one element, actual: ${a.length}`)}function u(a){return a.length===1?a[0]:null}function f(a){return a.length>0?a[0]:null}function h(a){if(!a.length)throw Error("Received empty array");return a[0]}function y(a,l){const d=[];for(let g=0;g<a;g++)d.push(l(g));return d}function A(a){const l=[];for(let d=0;d<a[0].length;d++){l.push([]);for(let g=0;g<a.length;g++)l[d].push(a[g][d])}return l}function b(a,l,d){const g=[];for(let x=0;x<a;x++){g.push([]);for(let L=0;L<l;L++)g[x].push(d)}return g}function R(a,l,d,g){if(d<0||g<0||g+l[0].length>a[0].length||d+l.length>a.length)return!1;for(let x=0;x<l.length;x++)for(let L=0;L<l[x].length;L++)if(l[x][L]!==void 0&&a[d+x][g+L]!==l[x][L])return!1;return!0}function k(a,l,d=Math.random){return o(_k(0,a.length-1),d).slice(0,l)}function S(a,l){return a.map(d=>d[l])}function B(a){let l=a,d=3405648695,g=3735928559;return function(){return l+=d,d^=l<<7,l*=g,g^=l<<13,l^=d^g,(l>>>0)/4294967296}}function H(a,l,d=Math.random){return Math.floor(d()*(l-a+1))+a}function U(a,l,d=Math.random){return d()*(l-a)+a}function G(){return Math.random()*2-1}function W(a,l,d){return l>=a.x&&l<a.x+a.width&&d>=a.y&&d<a.y+a.height}function J(a,l,d,g=Math.random){let x,L;do x=H(0,a-1,g),L=H(0,l-1,g);while(d&&W(d,x,L));return[x,L]}function j(a,l=Math.random){const d=Math.floor(a),g=a-d;return Y(g,l)?d+1:d}function Y(a,l=Math.random){return l()<a}function it(a,l=Math.random){return a[Math.floor(a.length*l())]}function ut(a,l,d=Math.random){if(l>a.length)throw new Error(`Count (${l}) is greater than array length (${a.length})`);return k(a,l,d).map(g=>a[g])}function rt(a,l,d,g=Math.random){if(l>a.length)throw new Error(`Count (${l}) is greater than array length (${a.length})`);const x=[];for(;x.length<l;){const L=it(a,g);x.some(Q=>d(Q,L))||x.push(L)}return x}function ot(a,l,d,g,x,L=Math.random){const Q=a.filter(at=>at!==l&&at!==d),lt=[];for(l!==null&<.push(l);Q.length&<.length<g;){const at=n.Random.intBetween(0,Q.length-1,L);x(Q[at],lt)&<.push(Q[at]),Q.splice(at,1)}return o(lt,L),{values:lt,indexOfGuaranteed:l!==null?lt.indexOf(l):-1}}function C(a){if(!a.length)throw Error("Received empty array");return a[a.length-1]}function p(a,l,d){return d(l.reduce((g,x)=>x(g),a))}function m(a,l){return d=>p(d,a,l)}function v(a,l,d){if(d===void 0&&(d=Math.random()),a.length!==l.length)throw new Error("Array length mismatch");let g=l.reduce((L,Q)=>L+Q,0);const x=d*g;for(let L=0;L<a.length-1;L++)if(g-=l[L],x>=g)return a[L];return C(a)}function I(a,l,d=Math.random){const g=l.map(L=>d()*L),x=[];for(let L=0;L<a.length;L++)x.push([a[L],g[L]]);return x.sort((L,Q)=>Q[1]-L[1]).map(L=>L[0])}function N(a,l){if(a==null)return null;const d=l.split(".");let g=a;for(const x of d){if(g[x]===null||g[x]===void 0)return null;g=g[x]}return g}function M(a,l,d){const g=l.split(/\.|\[/);let x=a;for(let L=0;L<g.length;L++){const Q=g[L],lt=L<g.length-1&&g[L+1].includes("]"),at=Q.includes("]")?Q.replace(/\[|\]/g,""):Q;if(L===g.length-1)return x[at]=d,d;rn(x[at])||(lt?x[at]=[]:x[at]={}),x=x[at]}return d}function z(a,l,d=1){const g=N(a,l)||0;return M(a,l,g+d),g}function P(a,l,d){return N(a,l)||M(a,l,d)}function _(a,l){const d=Gw(l,"."),g=Ek(l,".");if(!d||!g)return;const x=N(a,d);delete x[g]}function F(a,l,d){const g=N(a,l);if(!g)throw new Error("Key '"+l+"' does not exist.");return M(a,l,d),g}function ct(a,l,d){for(const g of l){const x=N(a,g);if(x)return x}if(d){const g=Object.values(a);if(g.length)return g[0]}return null}async function dt(a,l,d){for(;;){try{await a()}catch(g){d&&d("Error in forever",g)}await s(l)}}function mt(a,l){a();const d=setInterval(()=>{a()},l);return()=>clearInterval(d)}function Gt(a){return a/1024/1024}function Ut(a){return a>=1024*1024*1024*1024?(a/1024/1024/1024/1024).toFixed(3)+" TB":a>=1024*1024*1024?(a/1024/1024/1024).toFixed(3)+" GB":a>=1024*1024?(a/1024/1024).toFixed(3)+" MB":a>=1024?(a/1024).toFixed(3)+" KB":a+" B"}function Lt(a){const l=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a.toLowerCase());if(!l)throw new Error("Invalid hex color: "+a);return[parseInt(l[1],16),parseInt(l[2],16),parseInt(l[3],16)]}function xe(a){return"#"+a.map(l=>l.toString(16).padStart(2,"0")).join("")}function Kt(a,l,d,g){const x=a*Math.PI/180,L=d*Math.PI/180,Q=(d-a)*Math.PI/180,lt=(g-l)*Math.PI/180,at=Math.sin(Q/2)*Math.sin(Q/2)+Math.cos(x)*Math.cos(L)*Math.sin(lt/2)*Math.sin(lt/2);return 6371e3*(2*Math.atan2(Math.sqrt(at),Math.sqrt(1-at)))}function Ft(a,l){return Math.round(a/l)*l}function ke(a){return a>1e3?(a/1e3).toFixed(0)+" km":a>=500?Ft(a,100)+" m":a>=100?Ft(a,50)+" m":Ft(a,10)+" m"}function re(a){return a*(a+1)/2}function oe(a){const l=a.match(/-?\d+(\.\d+)?/);if(!l)throw Error("No float found in "+a);return parseFloat(l[0])}function rn(a,l=!0){return!a||l&&!Re(a._readableState)||l&&a.constructor&&(a.constructor.isBuffer||a.constructor.name=="Uint8Array"||a.constructor.name==="ArrayBuffer"||a.constructor.name==="ReadableStream")?!1:typeof a=="object"}function fe(a){return rn(a)&&!Array.isArray(a)}function Ue(a){return Array.isArray(a)&&a.length===0}function ea(a){return fe(a)&&Object.keys(a).length===0}function Re(a){return a===void 0}function Ce(a){return Object.prototype.toString.call(a)==="[object Function]"||Object.prototype.toString.call(a)==="[object AsyncFunction]"}function In(a){return Object.prototype.toString.call(a)==="[object String]"}function he(a){return typeof a=="number"&&isFinite(a)}function Se(a){return a===!0||a===!1}function sn(a){return Object.prototype.toString.call(a)==="[object Date]"}function Ee(a){return!In(a)||a.trim().length===0}function Be(a){return he(a)&&Number.isInteger(a)&&a>=1}function cr(a){return In(a)&&a.match(/^-?\d+$/)!==null}function De(a){return In(a)&&a.match(/^(0x)?[0-9a-f]+$/i)!==null}const O="!@#$%^&*()_+-=[]{}|;:<>?,./",w="!@#$%^&*()_+-=[]{}|;:<>?,./".split(""),E="abcdefghijklmnopqrstuvwxyz",D="ABCDEFGHIJKLMNOPQRSTUVWXYZ",V="1234567890",q=E+D+V,st=q+O,qt=["—","\\","東","京","都","𝖆","𝖇","𝖈","👾","🙇","💁","🙅","ᚠ","ᛇ","ᚻ","ᛦ"],Wt="0123456789abcdef";function jt(a,l=Math.random){let d="";for(let g=0;g<a;g++)d+=E[Math.floor(l()*E.length)];return d}function Fe(a,l=Math.random){let d="";for(let g=0;g<a;g++)d+=q[Math.floor(l()*q.length)];return d}function Ht(a,l=Math.random){let d="";for(let g=0;g<a;g++)d+=st[Math.floor(l()*st.length)];return d}function ln(a,l=Math.random){let d="";for(let g=0;g<a;g++)d+=qt[Math.floor(l()*qt.length)];return d}function Ip(a,l){const d=new RegExp(`[0-9a-f]{${l}}`,"i"),g=a.match(d);return g?g[0]:null}function fn(a,l,d=w){const g=vk(a,d);for(const x of g)if(l(x))return x;return null}function hn(a,l=Math.random){let d="";for(let g=0;g<a;g++)d+=Wt[Math.floor(l()*Wt.length)];return d}function kp(a,l){if(!cr(a))throw new TypeError(`Expected integer string${l!=null&&l.name?` for ${l.name}`:""}, got: `+a);const d=BigInt(a);if(l&&(l.min&&d<l.min||l.max&&d>l.max))throw RangeError(`Expected integer string${l!=null&&l.name?` for ${l.name}`:""} in range: ${l.min??"-inf"}..${l.max??"inf"}; got: `+d);return a}function on(a,l){if(Ee(a))throw new TypeError(`Expected string${l!=null&&l.name?` for ${l.name}`:""}, got: `+a);if(l&&(l.min!==void 0&&a.length<l.min||l.max!==void 0&&a.length>l.max))throw RangeError(`Expected string${l!=null&&l.name?` for ${l.name}`:""} length in range: ${l.min??"-inf"}..${l.max??"inf"}; got: ${a.length}`);return a}function dn(a,l){if(!De(a))throw new TypeError(`Expected hex string${l!=null&&l.name?` for ${l.name}`:""}, got: `+a);const d=a.replace(/^0x/,"");if(l&&l.byteLength&&d.length!==l.byteLength*2)throw RangeError(`Expected hex string${l!=null&&l.name?` for ${l.name}`:""} of byte length ${l.byteLength}; got: `+d);return d}function Tp(a,l){if(!on(a,l).split("").every(d=>d==="_"||Vh(d)))throw new TypeError(`Expected safe string${l!=null&&l.name?` for ${l.name}`:""}, got: `+a);return a}function an(a,l){if(l.min!==void 0&&a<l.min||l.max!==void 0&&a>l.max)throw RangeError(`Expected value${l!=null&&l.name?` for ${l.name}`:""} in range: ${l.min??"-inf"}..${l.max??"inf"}; got: ${a}`)}function pn(a,l){if(!Ce(a))throw new TypeError(`Expected function${l!=null&&l.name?` for ${l.name}`:""}, got: `+a);return a}function vc(a,l){if(he(a))return l&&an(a,l),a;if(!In(a)||!a.match(/^-?\d+(\.\d+)?$/))throw new TypeError(`Expected number${l!=null&&l.name?` for ${l.name}`:""}, got: `+a);const d=parseFloat(a);return l&&an(d,l),d}function Ye(a,l){return vc(a,l)|0}function gn(a,l){if(a==="true")return!0;if(a==="false")return!1;if(!Se(a))throw new TypeError(`Expected boolean${l!=null&&l.name?` for ${l.name}`:""}, got: `+a);return a}function Op(a,l){if(!sn(a))throw new TypeError(`Expected date${l!=null&&l.name?` for ${l.name}`:""}, got: `+a);return a}function yn(a){return Ee(a)?null:a}function mn(a,l){if(!In(a))throw new TypeError(`Expected string${l!=null&&l.name?` for ${l.name}`:""}, got: `+a);return a}function Np(a,l){if(Be(a))return a;const d=parseInt(a,10);if(!Be(d))throw new TypeError(`Expected id${l!=null&&l.name?` for ${l.name}`:""}, got: `+a);return d}function wn(a,l){if(!In(a))throw new TypeError(`Expected time${l!=null&&l.name?` for ${l.name}`:""}, got: `+a);const d=a.split(":");if(d.length!==2)throw new TypeError(`Expected time${l!=null&&l.name?` for ${l.name}`:""}, got: `+a);const g=parseInt(d[0],10),x=parseInt(d[1],10);if(!he(g)||!he(x)||g<0||g>23||x<0||x>59)throw new TypeError(`Expected time, got${l!=null&&l.name?` for ${l.name}`:""}: `+a);return`${String(g).padStart(2,"0")}:${String(x).padStart(2,"0")}`}function bn(a,l){if(!Array.isArray(a))throw new TypeError(`Expected array${l!=null&&l.name?` for ${l.name}`:""}, got: `+a);return a}function xc(a,l){if(!fe(a))throw new TypeError(`Expected object${l!=null&&l.name?` for ${l.name}`:""}, got: `+a);return a}function _n(a,l){return a===null?null:xc(a,l)}function An(a,l){const d=xc(a,l);for(const g of Object.keys(d))if(!In(d[g]))throw new TypeError(`Expected string map${l!=null&&l.name?` for ${l.name}`:""}, got: `+a);return d}function Oh(a,l){const d=xc(a),g=Object.keys(d),x=Object.values(d);if(!g.every(In)||!x.every(he))throw new TypeError(`Expected numeric dictionary${l!=null&&l.name?` for ${l.name}`:""}, got: `+a);return d}function Nl(a){return In(a)&&a.match(/^https?:\/\/.+/)!==null}function Nh(a,l){if(!Nl(a))throw new TypeError(`Expected url${l!=null&&l.name?` for ${l.name}`:""}, got: `+a);return a}function Ch(a,l){return l==null?!0:a(l)}function Bh(a,l){return l==null?null:a(l)}function Ph(a,l){return l==null?void 0:a(l)}function Cl(a,l){for(const[d,g]of Object.entries(l))if(!g(a[d]))throw TypeError(`${d} in value does not exist or match shape`);for(const d of Object.keys(a))if(!l[d])throw TypeError(`${d} exists in value but not in shape`);return!0}function Mh(a,l){return a.every(d=>Cl(d,l))}function Xs(a,l="json",d=0){if(rn(a,!1)){if(d>1)return"[object Object]";if(l==="json"){if(Array.isArray(a)){const x=a.map(L=>Xs(L,"json",d+1));return d===0?JSON.stringify(x):x}const g={};a.message&&(g.message=Xs(a.message,"json",d+1));for(const[x,L]of Object.entries(a))g[x]=Xs(L,"json",d+1);return d===0?JSON.stringify(g):g}else if(l==="key-value"){const g=Object.keys(a);return a.message&&!g.includes("message")&&g.unshift("message"),g.map(x=>`${x}=${JSON.stringify(Xs(a[x],"json",d+1))}`).join(" ")}}return Re(a)&&(a="undefined"),d===0?JSON.stringify(a):a}function Lh(a,l){if(In(a))return a;const d=Object.keys(a);a.message&&!d.includes("message")&&d.push("message");const g=d.map(x=>`${x}: ${a[x]}`).join("; ");return l&&a.stack?g+`
|
|
2
|
+
`+a.stack:g}function Ti(a,l){if(fe(a)&&fe(l))for(const d in l)fe(l[d])?(a[d]||(a[d]={}),Ti(a[d],l[d])):Array.isArray(l[d])?a[d]=[...l[d]]:(l[d]!==null&&l[d]!==void 0||a[d]===null||a[d]===void 0)&&(a[d]=l[d]);return a}function Uh(a,l){const d={};return Ti(d,a),Ti(d,l),d}function Dh(a,l,d){const g={};return Ti(g,a),Ti(g,l),Ti(g,d),g}function Bl(a,l){const d={};for(const g of a)for(const x of Object.keys(g))d[x]?d[x]=l(d[x],g[x]):d[x]=g[x];return d}function Fh(a){return Bl(a,(l,d)=>l+d)}function $h(a,l,d){a[l]||(a[l]=[]),a[l].push(d)}function Hh(a,l,d){for(a.unshift(l);a.length>d;)a.pop()}function zh(a,l){let d=l%a.length;return d<0&&(d+=a.length),a[d]}function na(a,l){Array.prototype.push.apply(a,l)}function eV(a,l){Array.prototype.unshift.apply(a,l)}async function nV(a,l){const d=[];for(const g of a)d.push(await l(g));return d}function rV(a,l){const d=[];for(let g=0;g<a.length;g++)d.push(a[g]),g<a.length-1&&(Ce(l)?d.push(l()):d.push(l));return d}function iV(a,l){if(a!==l)throw Error(`Expected [${a}] to equal [${l}]`);return[a,l]}function sV(a){if(a!==!0)throw Error(`Expected [true], got: [${a}]`);return a}function oV(a){if(!a)throw Error(`Expected truthy value, got: [${a}]`);return a}function aV(a){if(a!==!1)throw Error(`Expected [false], got: [${a}]`);return a}function cV(a){if(a)throw Error(`Expected falsy value, got: [${a}]`);return a}function uV(a,l){if(!l.includes(a))throw Error(`Expected any of [${l.join(", ")}], got: [${a}]`);return a}function lV(a,l){for(let d=0;d<a.length;d++){const g=a[d],x=l[d],L=Math.max(0,x.getTime()-Date.now());setTimeout(g,L)}}function fV(a,l,d){return a+(l-a)*d}function hV(a){return a.reduce((l,d)=>l+d,0)}function dV(a){return a.reduce((l,d)=>l+d,0)/a.length}function pV(a){const l=[...a].sort((g,x)=>g-x),d=Math.floor(l.length/2);return l.length%2===0?(l[d]+l[d-1])/2:l[d]}function gV(a,l){return a-(l-1)/2}function _k(a,l){const d=[];for(let g=a;g<=l;g++)d.push(g);return d}function yV(a,l){return l.some(d=>a.includes(d))}function mV(a){return/^[\u4E00-\u9FA5]+$/.test(a)}function Hw(a,l=()=>!1){return a.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,"").split("").map(d=>/[a-z0-9]/.test(d)||l(d)?d:"-").join("").replace(/-+/g,"-").replace(/^-|-$/g,"")}function wV(a){return Hw(a).replaceAll("-","")}function bV(a){return Bp(a.replace(/([A-Z])/g," $1"))}function _V(a){return a.split("-").map(Bp).join(" ")}function AV(a){return Rk(a.split("-").map(Bp).join(""))}function EV(a,l=", ",d=" and "){return!a||!a.length?"":a.length===1?a[0]:a.length===2?`${a[0]}${d}${a[1]}`:`${a.slice(0,a.length-1).join(l)}${d}${a[a.length-1]}`}function vV(a,l){return l+a.split("").join(l)+l}function xV(a){return Hw(a).replace(/-/g,"_").toUpperCase()}function Cp(a,l){if(l.length===0)return 0;const d=a.toLowerCase(),g=l.toLowerCase();return a===l?1e4:d.startsWith(g)?1e4-a.length:d.includes(g)?5e3-a.length:new RegExp(".*"+g.split("").join(".*")+".*").test(d)?1e3-a.length:0}function RV(a,l){return a.filter(d=>Cp(d,l)).sort((d,g)=>Cp(g,l)-Cp(d,l))}function SV(a){return a.replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}const IV={"&":"&",""":'"',"'":"'",">":">","<":"<"};function kV(a){let l=a.replace(/&#(\d+);/g,(d,g)=>String.fromCharCode(g)).replace(/&#x(\d+);/g,(d,g)=>String.fromCharCode(parseInt(g,16)));for(const[d,g]of Object.entries(IV))l=l.replaceAll(d,g);return l}function Ak(a,l){const d=a.indexOf(l);return d===-1?null:a.slice(0,d)}function zw(a,l){const d=a.indexOf(l);return d===-1?null:a.slice(d+l.length)}function Gw(a,l){const d=a.lastIndexOf(l);return d===-1?null:a.slice(0,d)}function Ek(a,l){const d=a.lastIndexOf(l);return d===-1?null:a.slice(d+l.length)}function TV(a,l,d){const g=Gw(a,d);return g?zw(g,l):null}function OV(a,l,d){const g=zw(a,l);return g?Ak(g,d):null}function Vw(a,l,d=!1){const g=d?a.lastIndexOf(l):a.indexOf(l);return g===-1?d?[null,a]:[a,null]:[a.slice(0,g),a.slice(g+l.length)]}function vk(a,l){let d=[a];for(const g of l)d=d.flatMap(x=>x.split(g));return d.filter(g=>g)}function Kw(a){const l=C(a.split(/\\|\//g)),d=l.lastIndexOf(".",l.length-1);return d<=0?"":l.slice(d+1)}function jw(a){const l=C(a.split(/\\|\//g)),d=l.lastIndexOf(".",l.length-1);return d<=0?l:l.slice(0,d)}function NV(a){let[l,d]=a.split("@");l=Gh(l.replaceAll(".","").toLowerCase()).replaceAll(" ","");const[g]=l.split("+");if(!g||!d||d.indexOf(".")===-1||d.indexOf(".")===d.length-1)throw new Error("Invalid email");return d=Gh(d.toLowerCase()).replaceAll(" ",""),`${g}@${d}`}function CV(a){const l=jw(a),d=Kw(a);return d?`${l}.${d}`:l}function BV(a){const l=jw(a),d=Kw(a);return{basename:l,extension:d,filename:d?`${l}.${d}`:l}}function PV(a,l=Math.random){return a.replace(/\{(.+?)\}/g,(d,g)=>it(g.split("|"),l))}function xk(a){const l=/\{(.+?)\}/,d=a.match(l);if(!d||!d.index)return[a];const g=d[1].split(","),x=a.slice(0,d.index),L=a.slice(d.index+d[0].length);let Q=[];for(const lt of g){const at=xk(x+lt+L);Q=Q.concat(at)}return Q}function Gh(a){return a.split(`
|
|
3
|
+
`).map(l=>l.trim().replace(/\s+/g," ")).filter(l=>l.length>0).join(`
|
|
4
|
+
`)}function Bp(a){return a.charAt(0).toUpperCase()+a.slice(1)}function Rk(a){return a.charAt(0).toLowerCase()+a.slice(1)}function Sk(a){if(!a)return!1;const l=a.charCodeAt(0);return l>=65&&l<=90||l>=97&&l<=122}function Ik(a){if(!a)return!1;const l=a.charCodeAt(0);return l>=48&&l<=57}function Vh(a){return Sk(a)||Ik(a)}const MV=`
|
|
5
|
+
\r.,?!:;"'\`(){}[]~@#$%^&*-+=|<>/\\`.split("");function LV(a){return MV.includes(a)}function UV(a){return Vh(a)||a==="."||a==="["||a==="]"||a==="_"}function DV(a,l,d,g,x){return a.slice(0,l)+g+a.slice(l,l+d)+x+a.slice(l+d)}function kk(a,l,d=0){const g=l.exec(a.slice(d));return g?{index:g.index,match:g[0]}:null}function Tk(a,l,d=!0){if(!d)return l.every(x=>x instanceof RegExp?x.test(a):a.indexOf(x,0)!==-1);let g=0;for(const x of l)if(x instanceof RegExp){const L=kk(a,x,g);if(!L)return!1;g=L.index+L.match.length}else{const L=a.indexOf(x,g);if(L===-1)return!1;g=L+x.length}return!0}function FV(a,l,d=!0){let g=0;for(const x of l){let L=!1;for(;!L&&g<a.length;)Tk(a[g],x,d)&&(L=!0),g++;if(!L)return!1}return!0}function $V(a){return a.match(/"|,/)?`"${a.replace(/"/g,'""')}"`:a}function Pl(a,l,d=0){let g=-1;for(const x of l){const L=a.indexOf(x,d);L!==-1&&(g===-1||L<g)&&(g=L)}return g}function HV(a,l=0){for(let d=l;d<a.length;d++)if(LV(a[d]))return d;return-1}function zV(a,l=0){for(let d=l;d<a.length;d++)if(a[d]==="#"&&Vh(a[d+1]))return d;return-1}function Ok(a,l,d=0){return a.slice(0,d).lastIndexOf(l)}function Nk(a,l=0,d="{",g="}"){let x=1;for(let L=l;L<a.length;L++)if(a.slice(L,L+g.length)===g){if(--x===0)return L}else a.slice(L,L+d.length)===d&&x++;return-1}function Ck(a,l){const d=l.wordBoundary?Pl(a,[`${l.opening} `,`${l.opening}
|
|
6
|
+
`],l.start||0):a.indexOf(l.opening,l.start||0);if(d===-1)return null;const g=Nk(a,d+l.opening.length,l.opening,l.closing);return g===-1?null:l.exclusive?a.slice(d+l.opening.length,g):a.slice(d,g+l.closing.length)}function GV(a,l){const d=[];let g=l.wordBoundary?Pl(a,[`${l.opening} `,`${l.opening}
|
|
7
|
+
`],l.start||0):a.indexOf(l.opening,l.start||0);for(;;){if(g===-1)return d;const x=Ck(a,{...l,start:g});if(!x)return d;d.push(x),g=l.wordBoundary?Pl(a,[`${l.opening} `,`${l.opening}
|
|
8
|
+
`],g+x.length):a.indexOf(l.opening,g+x.length)}}function VV(a,l,d){let g=0;for(;;){const x=n.Strings.extractBlock(a,{...d,start:g});if(!x)return a;const L=l(x);g=a.indexOf(x,g)+L.length,a=a.replace(x,L)}}function KV(a,l){const d=[];let g=0;for(;g<a.length;){const x=a.indexOf(l,g);if(x===-1){d.push({string:a.slice(g),symbol:null});break}const L=a.indexOf(l,x+l.length);if(x>g&&L!==-1&&d.push({string:a.slice(g,x),symbol:null}),L===-1){d.push({string:a.slice(g),symbol:null});break}d.push({string:a.slice(x+l.length,L),symbol:l}),g=L+l.length}return d}function jV(a){const l=[];let d=0;for(;d<a.length;){const g=zV(a,d);if(g===-1){l.push({string:a.slice(d),symbol:null});break}const x=HV(a,g+1);if(x===-1){l.push({string:a.slice(d,g),symbol:null}),l.push({string:a.slice(g+1),symbol:"#"});break}g>d&&l.push({string:a.slice(d,g),symbol:null}),l.push({string:a.slice(g+1,x),symbol:"#"}),d=x}return l}function WV(a){const l=[];let d=0;for(;d<a.length;){const g=Pl(a,["http://","https://"],d);if(g===-1){l.push({string:a.slice(d),symbol:null});break}const x=Pl(a,[" ",`
|
|
9
|
+
`],g);if(x===-1){g>d&&l.push({string:a.slice(d,g),symbol:null}),l.push({string:a.slice(g),symbol:"http"});break}g>d&&l.push({string:a.slice(d,g),symbol:null}),l.push({string:a.slice(g,x),symbol:"http"}),d=x}return l}const Bk="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Pk="ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";function ZV(a){return Mk(a,Bk)}function qV(a){return Lk(a,Bk)}function QV(a){return Mk(a,Pk)}function YV(a){return Lk(a,Pk)}function Mk(a,l){const d="=",g=l.length;let x=0,L=0;const Q=[];for(let lt=0;lt<a.length;lt++){const at=a[lt];if(at===d)break;const Pt=l.indexOf(at);if(Pt===-1)throw new Error(`Invalid character: ${at}`);L=L<<Math.log2(g)|Pt,x+=Math.log2(g),x>=8&&(x-=8,Q.push(L>>x&255))}return new Uint8Array(Q)}function Lk(a,l){const d=l.length;let g=0,x=0,L="";for(let Q=0;Q<a.length;Q++)for(x=x<<8|a[Q],g+=8;g>=Math.log2(d);)g-=Math.log2(d),L+=l[x>>g&d-1];return g>0&&(L+=l[x<<Math.log2(d)-g&d-1]),L.length%4!==0&&(L+="=".repeat(4-L.length%4)),L}function JV(a){a.startsWith("0x")&&(a=a.slice(2));const l=a.length/2,d=new Uint8Array(l);for(let g=0;g<l;g++){const x=parseInt(a.slice(g*2,g*2+2),16);d[g]=x}return d}function XV(a){return Array.from(a).map(l=>l.toString(16).padStart(2,"0")).join("")}function tK(a,l){const d=a.split("/").filter(L=>L),g=l.split("/").filter(L=>L);if(d.length!==g.length)return null;const x={};for(let L=0;L<d.length;L++){const Q=d[L];if(Q.startsWith(":"))x[Q.slice(1)]=g[L];else if(Q!==g[L])return null}return x}function Ww(a,l,d){const g=[];for(const x of d)x!==l&&g.push(a.replace(l,x));return g}function eK(a,l,d,g=Math.random){const x=n.Arrays.shuffle(l.map(Q=>({variants:n.Arrays.shuffle(Q.variants.map(lt=>lt),g),avoid:Q.avoid})),g),L=[];for(const Q of x){const lt=Q.variants.filter(Pt=>Pt!==Q.avoid),at=lt.find(Pt=>a.includes(Pt));if(at&&(na(L,Ww(a,at,lt)),L.length>=d))break}if(L.length<d)for(const Q of x){const lt=Q.variants.find(at=>a.includes(at));if(lt&&(na(L,Ww(a,lt,Q.variants)),L.length>=d))break}return L.slice(0,d)}function nK(a,l,d,g=!1){const x=new RegExp(g?`(?<=\\s|^)${l}(?=\\s|$)`:`\\b${l}\\b`,"g");return a.replace(x,d)}function rK(a,l){const d=/\b[A-Z][a-zA-Z0-9]*\b/g;return a.replace(d,g=>g.toUpperCase()===g?g:l(g))}function iK(a){return a.replace(/<[^>]*>/g,"")}function Uk(a){const l=a.lastIndexOf(" ");if(l===-1)return{line:a,rest:""};const d=a.slice(0,l),g=a.slice(l+1);return{line:d,rest:g}}function sK(a,l={}){return[...a].reduce((d,g)=>d+(l[g]||1),0)}function oK(a,l,d={}){const g=[];let x="",L=0;for(let Q=0;Q<a.length;Q++){const lt=a[Q],at=d[lt]||1;if(x+=lt,L+=at,L>l){const{line:Pt,rest:Le}=Uk(x);g.push(Pt),x=Le,L=Le.split("").map(Hn=>d[Hn]||1).reduce((Hn,Dl)=>Hn+Dl,0)}}return x&&g.push(x),g}function aK(a,l){const d=[];for(let g=0;g<=a.length;g++)d[g]=[g];for(let g=0;g<=l.length;g++)d[0][g]=g;for(let g=1;g<=a.length;g++)for(let x=1;x<=l.length;x++){const L=a[g-1]===l[x-1]?0:1;d[g][x]=Math.min(d[g-1][x]+1,d[g][x-1]+1,d[g-1][x-1]+L)}return d[a.length][l.length]}function Zw(a,l){return new RegExp(`\\b${l}\\b`).test(a)}function cK(a,l,d){return d==="any"?l.some(g=>Zw(a,g)):l.every(g=>Zw(a,g))}function uK(a){const l={},d=a.match(/([a-z\-]+)="([^"]+)"/g);if(d)for(const g of d){const[x,L]=Vw(g,"=");l[x]=L.slice(1,L.length-1)}return l}function Pp(a,l,d=[]){let g="";for(;l<a.length&&(Vh(a[l])||d.includes(a[l]));)g+=a[l++];return g}function lK(a,l,d="$",g=":"){for(const x in l)a=Dk(a,x,l[x],d,g);return a=Fk(a),a}function Dk(a,l,d,g="$",x=":"){if(d==="")return a;let L=a.indexOf(`${g}${l}`);for(;L!==-1;){if(a[L+l.length+1]===x)if(a[L+l.length+2]===x)a=a.replace(`${g}${l}${x}${x}`,d);else{const Q=Pp(a,L+l.length+2,["_"]);a=a.replace(`${g}${l}${x}${Q}`,d)}else a=a.replace(`${g}${l}`,d);L=a.indexOf(`${g}${l}`,L+d.length)}return a}function Fk(a,l="$",d=":"){let g=a.indexOf(l);for(;g!==-1;){const x=Pp(a,g+1);if(a[g+x.length+1]===d)if(a[g+x.length+2]===d)a=a.replace(`${l}${x}${d}${d}`,"");else{const L=Pp(a,g+x.length+2);a=a.replace(`${l}${x}${d}${L}`,L)}g=a.indexOf(l,g+1)}return a}function fK(a,l){let d=a.indexOf("](");for(;d!==-1;){const g=Ok(a,"[",d),x=a.indexOf(")",d);if(g!==-1&&x!==-1){const[L,Q]=a.slice(g+1,x).split("]("),lt=l(L,Q);a=a.slice(0,g)+lt+a.slice(x+1)}d=a.indexOf("](",d+1)}return a}function $k(a,l=!0){const d=Object.entries(a).filter(([g,x])=>x!=null).map(([g,x])=>`${g}=${encodeURIComponent(x)}`).join("&");return d?(l?"?":"")+d:""}function hK(a){const l={},d=a.split("&");for(const g of d){const[x,L]=g.split("=");x&&L&&(l[x]=decodeURIComponent(L))}return l}function dK(a,l){return Object.prototype.hasOwnProperty.call(a,l)}function pK(a,l){let d=null,g=-1/0;for(const[x,L]of Object.entries(a)){const Q=l(L);Q>g&&(g=Q,d=x)}return d?[d,a[d]]:null}function gK(a,l,d,g){const x=a.find(Q=>Q[l]===d),L=a.find(Q=>Q[l]===d+g);x&&L?(x[l]=d+g,L[l]=d):x&&(x[l]=d+g),a.sort((Q,lt)=>vc(Q[l])-vc(lt[l])),a.forEach((Q,lt)=>Q[l]=lt+1)}function yK(a){const l=Object.keys(a);if(l.length===1)return a[l[0]];throw new Error("Expected object to have a single key")}function mK(a,l=":"){return Object.fromEntries(a.map(d=>Vw(d,l)).map(d=>d[0]&&d[1]?[Gh(d[0]),Gh(d[1])]:null).filter(d=>d))}function wK(a,l,d){return Vk(a,l)+$k(d||{})}function bK(a,l=",",d='"'){const g=[];let x="",L=!1;const Q=a.split("");for(const lt of Q)lt===l&&!L?(g.push(x),x=""):lt===d&&(!x&&!L||L)?L=!L:x+=lt;return g.push(x),g}function _K(a){return`[${Math.floor(a.progress*100)}%] ${Mp(a.deltaMs)} out of ${Mp(a.totalTimeMs)} (${Mp(a.remainingTimeMs)} left) [${Math.round(a.baseTimeMs)} ms each]`}async function AK(a,l,d){for(let g=0;g<d;g++){try{if(await a())return!0}catch{}g<d-1&&await s(l)}return!1}function EK(a,l){const d=[];for(let g=a.length-1;g>=0;g--)l(a[g])&&d.push(a.splice(g,1)[0]);return d}function vK(a){return JSON.parse(JSON.stringify(a))}function xK(a){return Math.ceil((a||Date.now())/1e3)}function RK(a){return(a||new Date).toISOString().slice(0,10)}function SK(a){return(a||new Date).toISOString().slice(0,19).replace(/T|:/g,"-")}function IK(a){const l=new Date(a);return new Date(l.getTime()-l.getTimezoneOffset()*6e4)}function kK(a){return new Date(a)}function ls(a){return String(Math.floor(a)).padStart(2,"0")}function TK(a){let[l,d]=a.split(":");he(parseInt(l,10))||(l="0"),he(parseInt(d,10))||(d="0");let g=Xw(Ye(l),0,23),x=Xw(Ye(d),0,59);return`${ls(g)}:${ls(x)}`}function Mp(a){const l=Math.floor(a/36e5);a=a%36e5;const d=Math.floor(a/6e4);a=a%6e4;const g=Math.floor(a/1e3);return l?`${ls(l)}:${ls(d)}:${ls(g)}`:`${ls(d)}:${ls(g)}`}function Rc(a){return Math.floor((sn(a)?a.getTime():a)/864e5)}const OK={today:(a,l)=>ls(a)+":"+ls(l),yesterday:()=>"Yesterday",monday:()=>"Mon",tuesday:()=>"Tue",wednesday:()=>"Wed",thursday:()=>"Thu",friday:()=>"Fri",saturday:()=>"Sat",sunday:()=>"Sun",weeks:a=>`${a}w`};function NK(a,l){const d=new Date((l==null?void 0:l.now)||Date.now()),g=(l==null?void 0:l.labels)||OK,x=sn(a)?a:new Date(a);if(Rc(d)===Rc(x))return g.today(x.getUTCHours(),x.getUTCMinutes(),x.getUTCHours()>12);if(Rc(d)-Rc(x)===1)return g.yesterday();const L=Qw(x);return Rc(d)-Rc(x)<7?g[L.day]():g.weeks(Math.round((d.getTime()-x.getTime())/6048e5))}const Hk={now:()=>"A few seconds",seconds:a=>`${a} seconds`,minutes:a=>`${a} minutes`,hours:a=>`${a} hours`,days:a=>`${a} days`,weeks:a=>`${a} weeks`};function zk(a,l){const d=(l==null?void 0:l.now)??Date.now(),g=(l==null?void 0:l.labels)||Hk,x=n.Types.isDate(a)?a.getTime():a;let L=(d-x)/1e3;return L<10?g.now():L<120?g.seconds(Math.floor(L)):(L/=60,L<120?g.minutes(Math.floor(L)):(L/=60,L<48?g.hours(Math.floor(L)):(L/=24,L<14?g.days(Math.floor(L)):(L/=7,g.weeks(Math.floor(L))))))}function CK(a,l=Hk){return zk(0,{now:a*1e3,labels:l})}function BK(a,l,d){const g=((d==null?void 0:d.now)??Date.now())-a,x=Math.floor(g/l),L=l/((d==null?void 0:d.precision)??1)-Math.ceil(g%l/((d==null?void 0:d.precision)??1));return{cycles:x,remaining:L}}const qw={};function PK(a,l){return!qw[a]||Date.now()>qw[a]?(qw[a]=Date.now()+l,!0):!1}const MK={s:1e3,m:6e4,h:36e5,d:864e5};function LK(a,l,d){return l=sn(l)?l.getTime():l,d=d?sn(d)?d.getTime():d:Date.now(),(d-l)/MK[a]}function UK(a,l,d,g){g||(g=Date.now());const x=l/d,L=g-a,Q=L/l,lt=Q*d,at=lt-L;return{deltaMs:L,progress:x,baseTimeMs:Q,totalTimeMs:lt,remainingTimeMs:at}}const DK={0:"sunday",1:"monday",2:"tuesday",3:"wednesday",4:"thursday",5:"friday",6:"saturday"};function Gk(a){return{zeroBasedIndex:a,day:DK[a]}}function Qw(a){return Gk(a.getDay())}function FK(a){return Qw(new Date(a))}function $K(a){return a*1e3}function HK(a){return a*6e4}function zK(a){return a*36e5}function GK(a){return a*864e5}const VK={ms:1,milli:1,millis:1,millisecond:1,milliseconds:1,s:1e3,sec:1e3,second:1e3,seconds:1e3,m:6e4,min:6e4,minute:6e4,minutes:6e4,h:36e5,hour:36e5,hours:36e5,d:864e5,day:864e5,days:864e5,w:6048e5,week:6048e5,weeks:6048e5,month:2592e6,months:2592e6,y:31536e6,year:31536e6,years:31536e6};function KK(a){const l=parseFloat(a);if(isNaN(l))throw Error("makeDate got NaN for input");const d=a.replace(/^-?[0-9.]+/,"").trim().toLowerCase(),g=VK[d];if(!g)throw Error(`Unknown unit: "${d}"`);return l*g}const jK={b:1,byte:1,bytes:1,kb:1024,kilobyte:1024,kilobytes:1024,mb:1024**2,megabyte:1024**2,megabytes:1024**2,gb:1024**3,gigabyte:1024**3,gigabytes:1024**3,tb:1024**4,terabyte:1024**4,terabytes:1024**4};function WK(a){const l=parseFloat(a);if(isNaN(l))throw Error("makeDate got NaN for input");const d=a.replace(/^-?[0-9.]+/,"").trim().toLowerCase(),g=jK[d];if(!g)throw Error(`Unknown unit: "${d}"`);return l*g}function ZK(a){return a.replace(/ +/g," ").replace(/^ /gm,"")}const Yw={};async function qK(a,l,d){const g=Date.now(),x=Yw[a];if(x&&x.validUntil>g)return x.value;const L=await d(),Q=g+l;return Yw[a]={value:L,validUntil:Q},L}function QK(a){delete Yw[a]}function Vk(...a){return a.filter(l=>l).join("/").replace(new RegExp("(?<!:)\\/+","g"),"/")}function YK(a,l,d,g,x=!0){const L=a.indexOf(l),Q=a.indexOf(d,L+l.length);if(L===-1||Q===-1)throw Error("Start or end not found");return x?a.substring(0,L+l.length)+g+a.substring(Q):a.substring(0,L)+g+a.substring(Q+d.length)}function JK(a){let l="p";a.startsWith("#")?(l="h1",a=a.slice(1).trim()):a.startsWith("-")&&(l="li",a=a.slice(1).trim());const d=a[0]===a[0].toUpperCase(),g=/[.?!]$/.test(a),x=/:$/.test(a);return{type:l,isCapitalized:d,hasPunctuation:g,endsWithColon:x}}function XK(a,l="(",d=")"){let g=0,x=0;for(;x<a.length;)if(a.startsWith(l,x)?(g++,x+=l.length):a.startsWith(d,x)?(g--,x+=d.length):x++,g<0)return!1;return l===d?g%2===0:g===0}function tj(a){a=a.normalize("NFD").replace(/[\u0300-\u036f]/g,"");let l=a.length;for(;a=a.replace(/(\w+)[\s,']+\w+/g,"$1"),a.length!==l;)l=a.length;return a=a.replaceAll(/[A-Z][a-zA-Z0-9]*/g,"A"),a=a.replaceAll(/[a-z][a-zA-Z0-9]*/g,"a"),a=a.replaceAll(/[\u4E00-\u9FA5]+/g,"Z"),a}function Kk(a){const l=Object.keys(a).sort((g,x)=>g.localeCompare(x)),d={};for(const g of l)d[g]=Sc(a[g]);return d}function jk(a){const l=[];return a.sort((d,g)=>JSON.stringify(Sc(d)).localeCompare(JSON.stringify(Sc(g)))).forEach(d=>l.push(Sc(d))),l}function Sc(a){return Array.isArray(a)?jk(a):rn(a)?Kk(a):a}function Wk(a,l){return JSON.stringify(Sc(a))===JSON.stringify(Sc(l))}function ej(...a){for(let l=1;l<a.length;l++)if(!Wk(a[l-1],a[l]))return!1;return!0}function nj(a){try{return JSON.parse(a)}catch{return null}}function rj(){let a=0;return{next:()=>a++}}function ij(a){let l=0;return{next:()=>a[l++%a.length]}}function sj(a){let l;return d=>{const g=d===a&&l!==a;return l=d,g}}function oj(a,l,d,g,x){const L={};for(const Q of Object.keys(l))L[Q]=[];L[g]=[],x&&(a=a.sort(x));for(const Q of a){const lt=Q[d],at=l[lt]?lt:g;L[at].length>=l[at]?L[g].push(Q):L[at].push(Q)}return L}function aj(a,l){const d=Object.keys(a),g=Object.keys(l);return{uniqueToA:d.filter(x=>!g.includes(x)),uniqueToB:g.filter(x=>!d.includes(x))}}function Zk(a){const l=Object.keys(a);return l[Math.floor(Math.random()*l.length)]}function cj(a,l){const d=Zk(a);return a[d]=l(a[d]),d}function uj(a){return a=a.replace(/\r\n/g,`
|
|
10
|
+
`),a=a.replace(/(\w+)\((.+)\)/g,(l,d,g)=>`${d}(${g.replaceAll(",",",")})`),a=a.replace(/(,)(\s+})/g,"$2"),a=a.replace(/\.\.\..+?,/g,""),a=a.replace(/({\s+)([a-zA-Z]\w+),/g,"$1$2: '$2',"),a=a.replace(/(,\s+)([a-zA-Z]\w+),/g,"$1$2: '$2',"),a=a.replace(/:(.+)\?(.+):/g,(l,d,g)=>`: (${d.trim()} && ${g.trim()}) ||`),a=a.replace(/([a-zA-Z0-9]+)( ?: ?{)/g,'"$1"$2'),a=a.replace(/([a-zA-Z0-9]+) ?: ?(.+?)(,|\n|})/g,(l,d,g,x)=>`"${d}":"${g.trim()}"${x}`),a=a.replace(/("'|'")/g,'"'),a=a.replaceAll(",",","),JSON.parse(a)}const ra=[1e3,1e6,1e9,1e12,1e15,1e18,1e21,1e24,1e27,1e30,1e9,1e16,1e18,1e18,1e18,1e33],lj=["thousand","million","billion","trillion","quadrillion","quintillion","sextillion","septillion","octillion","nonillion","gwei","bzz","btc","eth","dai","decillion"],qk=["K","M","B","T","Qa","Qi","Sx","Sp","O","N","gwei","bzz","eth","btc","dai","D"];function fj(a,l,d){let g=a.length-l;if(g<=0)return"0."+"0".repeat(-g)+a+(d?" "+d:"");let x=a.substring(0,g),L=a.substring(g);return x===""&&(x="0"),x+"."+L+(d?" "+d:"")}function hj(a,l){const d=(l==null?void 0:l.longForm)??!1,g=l!=null&&l.unit?` ${l.unit}`:"",x=d?lj:qk,L=(l==null?void 0:l.precision)??1;if(a<ra[0])return`${a}${g}`;for(let Q=0;Q<ra.length-1;Q++)if(a<ra[Q+1])return`${(a/ra[Q]).toFixed(L)}${d?" ":""}${x[Q]}${g}`;return`${(a/ra[ra.length-1]).toFixed(L)}${d?" ":""}${x[ra.length-1]}${g}`}function Jw(a){const l=parseFloat(a);if(isNaN(l))throw Error("makeNumber got NaN for input");const d=a.replace(/^-?[0-9.]+/,"").trim(),g=qk.findIndex(x=>x.toLowerCase()===d.toLowerCase());return g===-1?l:l*ra[g]}function Xw(a,l,d){return a<l?l:a>d?d:a}function dj(a,l,d){const g=a+l;return g>d?d:g}function pj(a,l,d){const g=a-l;return g<d?d:g}function gj(a,l){return l(a),a}function yj(a,l){a&&l(a)}function mj(a,l){const d=Object.keys(l);for(const g of d)Array.isArray(l[g])&&Array.isArray(a[g])&&na(a[g],l[g])}function wj(a){return a.splice(0,a.length),a}function bj(a){for(const l of Object.keys(a))(Ue(a[l])||Array.isArray(a[l])&&a[l].every(d=>d==null))&&delete a[l];return a}function _j(a){for(const l of Object.entries(a))(l[1]===null||l[1]===void 0||In(l[1])&&Ee(l[1]))&&delete a[l[0]];return a}function Aj(a,l){const d={};for(const[g,x]of Object.entries(a))l(g)&&(d[g]=x);return d}function Ej(a,l){const d={};for(const[g,x]of Object.entries(a))l(x)&&(d[g]=x);return d}function vj(a,l){const d={};for(const g of Object.entries(a))d[g[0]]=l(g[1]);return d}function xj(a,l){const d=[];let g=0;for(const x of a)d.push(l(x,g++));return d}async function Rj(a,l){try{return await a()}catch{throw l}}function Sj(a,l,d){d!=null&&(a[l]=d)}function Ij(a,l,d,g){const x=N(d,g);x!=null&&M(a,l,x)}function kj(a){const l={};for(const[d,g]of Object.entries(a))l[g]=d;return l}function Tj(a){const l=Object.keys(a),d=l.map(lt=>a[lt].length),g=d.reduce((lt,at)=>lt*=at);let x=1;const L=[1];for(let lt=0;lt<d.length-1;lt++)x*=d[lt],L.push(x);const Q=[];for(let lt=0;lt<g;lt++){const at={};for(let Pt=0;Pt<l.length;Pt++){const Le=a[l[Pt]],Hn=Math.floor(lt/L[Pt])%Le.length;at[l[Pt]]=Le[Hn]}Q.push(at)}return Q}function Oj(a){return Object.values(a).filter(l=>l).length}function Nj(a,l,d){return a+(d?"["+l+"]":(a.length?".":"")+l)}function Lp(a,l,d,g,x){if(!rn(l))return l;for(const[L,Q]of Object.entries(l)){const lt=Nj(d,L,g);Array.isArray(Q)?x?Lp(a,Q,lt,!0,x):a[lt]=Q.map(at=>Lp(Array.isArray(at)?[]:{},at,"",!1,x)):rn(Q)?Lp(a,Q,lt,!1,x):a[lt]=Q}return a}function Cj(a,l=!1,d){return Lp({},a,d||"",!1,l)}function Qk(a){if(!rn(a))return a;const l=Array.isArray(a)?[]:{};for(const[d,g]of Object.entries(a))Array.isArray(g)?M(l,d,g.map(x=>Qk(x))):M(l,d,g);return l}function Bj(a,l,d){return l[a]?l[a]:d}function Yk(a,l){const d={};for(const g of a){const x=l(g);d[x]=g}return d}function Pj(a,l){const d={};for(const g of a){const x=l(g);d[x]||(d[x]=[]),d[x].push(g)}return d}function Mj(a,l){const d=[];for(let g=0;g<a.length;g+=l)d.push(a.slice(g,g+l));return d}function Jk(a,l){const d=Math.ceil(a.length/l),g=[];for(let x=0;x<a.length;x+=d)g.push(a.slice(x,x+d));return g}function Xk(a,l){const d=[],g=Math.ceil(a.length/l);for(let x=0;x<g;x++)d.push(a.slice(x*l,x*l+l));return d}function Lj(a,l){const d=Math.ceil(a.length/l);return Xk(a,d)}function Uj(a,l){return Object.values(Yk(a,l))}function Dj(a,l,d,g,x){const L=l?a.map(l):a,Q={};for(const at of L)Q[at]=(Q[at]||0)+1;const lt=g?tT(Q,x?(at,Pt)=>at[1]-Pt[1]:(at,Pt)=>Pt[1]-at[1]):Q;return d?Object.keys(lt):lt}function tT(a,l){return Object.fromEntries(Object.entries(a).sort(l))}function Fj(a){const l=[],d=Object.keys(a),g=a[d[0]].length;for(let x=0;x<g;x++){const L={};for(const Q of d)L[Q]=a[Q][x];l.push(L)}return l}function $j(a,l,d=1){for(const g of a)g[l]+=d}function Hj(a,l,d){for(const g of a)g[l]=d}function t1(a,l){const d=[];let g=[];return a.forEach((x,L)=>{(L===0||!l(x,a[L-1]))&&(g=[],d.push(g)),g.push(x)}),d}function zj(){return{map:new Map,keys:[]}}function Gj(){return{map:new Map,keys:[]}}function eT(a,l,d,g=100){if(a.map.has(l)){const x=a.keys.indexOf(l);a.keys.splice(x,1)}if(a.map.set(l,d),a.keys.push(l),a.keys.length>g){const x=a.keys.shift();x&&a.map.delete(x)}}function Vj(a,l,d,g=100){if(a.map.has(l)){const x=a.keys.indexOf(l);a.keys.splice(x,1)}if(a.map.set(l,d),a.keys.unshift(l),a.keys.length>g){const x=a.keys.shift();x&&a.map.delete(x)}}function Kj(a,l,d,g,x=100){eT(a,l,{validUntil:Date.now()+g,data:d},x)}function jj(a,l){const d=a.map.get(l);return d&&d.validUntil>Date.now()?d.data:null}class ia{constructor(l){this.value=l}static of(l){return new ia(l)}static empty(){return new ia(null)}map(l){return new ia(this.value!==null&&this.value!==void 0?l(this.value):null)}mapAsync(l){return this.value!==null&&this.value!==void 0?l(this.value).then(d=>ia.of(d)):Promise.resolve(ia.empty())}ifPresent(l){return this.value!==null&&this.value!==void 0&&l(this.value),this}ifPresentAsync(l){return this.value!==null&&this.value!==void 0?l(this.value).then(()=>this):Promise.resolve(this)}ifAbsent(l){return(this.value===null||this.value===void 0)&&l(),this}ifAbsentAsync(l){return this.value===null||this.value===void 0?l().then(()=>this):Promise.resolve(this)}getOrFallback(l){return this.value??l()}getOrFallbackAsync(l){return this.value!==null&&this.value!==void 0?Promise.resolve(this.value):l()}getOrThrow(){if(this.value===null||this.value===void 0)throw Error("Optional.value is empty");return this.value}}n.Optional=ia;class Wj{constructor(l){this.supplier=l,this.value=null}get(){return this.value||(this.value=this.supplier()),this.value}}n.Lazy=Wj;class Zj{constructor(l){this.supplier=l,this.value=null}async get(){return this.value||(this.value=await this.supplier()),this.value}}n.AsyncLazy=Zj;function qj(a){return()=>a.forEach(l=>l())}function Qj(a,l){return a.reduce((d,g)=>l(d)>l(g)?d:g)}function Yj(a,l){const d=a.find(g=>g instanceof l);return ia.of(d)}function Jj(a,l){return a.filter(d=>d instanceof l)}function Xj(a,l){const d=[],g=Math.max(a.length,l.length);for(let x=0;x<g;x++)a[x]&&d.push(a[x]),l[x]&&d.push(l[x]);return d}function tW(a,l){return a.includes(l)?a.filter(d=>d!==l):[...a,l]}class eW{constructor(l){this.value=l,this.children=[]}}function nW(a,l,d,g,x=!1){const L=new Map,Q=[];a.forEach(at=>{const Pt=new eW(at);L.set(at[l],Pt)}),a.forEach(at=>{const Pt=L.get(at[l]);if(!Pt)return;const Le=at[d];if(Le){const Hn=L.get(Le);Hn&&Hn.children.push(Pt)}else Q.push(Pt)});const lt=at=>{at.children.sort((Pt,Le)=>{const Hn=Pt.value[g],Dl=Le.value[g];return x?Dl-Hn:Hn-Dl}),at.children.forEach(lt)};return Q.forEach(lt),Q}function nT(a,l){if(Math.log2(a.length)%1!==0)throw new Error("Array length must be a power of 2");let d=[...a];for(;d.length>1;){const g=[];for(let x=0;x<d.length;x+=2){const L=d[x+1];g.push(l(d[x],L))}d=g}return d[0]}function Ml(...a){const l=a.reduce((x,L)=>x+L.length,0),d=new Uint8Array(l);let g=0;return a.forEach(x=>{d.set(x,g),g+=x.length}),d}function rT(a){return a[0]===137&&a[1]===80&&a[2]===78&&a[3]===71}function iT(a){return a[0]===255&&a[1]===216}function sT(a){return a[8]===87&&a[9]===69&&a[10]===66&&a[11]===80}function rW(a){return rT(a)||iT(a)||sT(a)}function iW(a){return new Uint8Array([a])}function sW(a){return a[0]}function oW(a,l){const d=new ArrayBuffer(2);return new DataView(d).setUint16(0,a,l==="LE"),new Uint8Array(d)}function aW(a,l){return new DataView(a.buffer).getUint16(a.byteOffset,l==="LE")}function cW(a,l){const d=new ArrayBuffer(4);return new DataView(d).setUint32(0,a,l==="LE"),new Uint8Array(d)}function uW(a,l){return new DataView(a.buffer).getUint32(a.byteOffset,l==="LE")}function e1(a,l){const d=new ArrayBuffer(8);return new DataView(d).setBigUint64(0,BigInt(a),l==="LE"),new Uint8Array(d)}function lW(a,l){return new DataView(a.buffer).getBigUint64(a.byteOffset,l==="LE")}function Ll(a,l){const d=new Uint8Array(32);let g=a;if(l==="LE"){for(let x=0;x<32;x++)d[x]=Number(g&0xffn),g>>=8n;return d}for(let x=31;x>=0;x--)d[x]=Number(g&0xffn),g>>=8n;return d}function Ul(a,l){let d=0n;if(l==="LE"){for(let g=31;g>=0;g--)d=d<<8n|BigInt(a[g]);return d}for(let g=0;g<32;g++)d=d<<8n|BigInt(a[g]);return d}function fW(a,l){const d=[];let g=0;for(const x of l)d.push(a.subarray(g,g+x)),g+=x;return d}function n1(a,l){const d=[];for(let g=0;g<a.length;g+=l)d.push(a.subarray(g,g+l));return d}const oT=[0,1,0,32898,2147483648,32906,2147483648,2147516416,0,32907,0,2147483649,2147483648,2147516545,2147483648,32777,0,138,0,136,0,2147516425,0,2147483658,0,2147516555,2147483648,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,0,32778,2147483648,2147483658,2147483648,2147516545,2147483648,32896,0,2147483649,2147483648,2147516424];function hW(a){for(let l=0;l<24;l++){const d=a[0]^a[10]^a[20]^a[30]^a[40],g=a[1]^a[11]^a[21]^a[31]^a[41],x=a[2]^a[12]^a[22]^a[32]^a[42],L=a[3]^a[13]^a[23]^a[33]^a[43],Q=a[4]^a[14]^a[24]^a[34]^a[44],lt=a[5]^a[15]^a[25]^a[35]^a[45],at=a[6]^a[16]^a[26]^a[36]^a[46],Pt=a[7]^a[17]^a[27]^a[37]^a[47],Le=a[8]^a[18]^a[28]^a[38]^a[48],Hn=a[9]^a[19]^a[29]^a[39]^a[49],Dl=x<<1|L>>>31,ZW=L<<1|x>>>31,Wh=Le^Dl,Zh=Hn^ZW,qW=Q<<1|lt>>>31,QW=lt<<1|Q>>>31,qh=d^qW,Qh=g^QW,YW=at<<1|Pt>>>31,JW=Pt<<1|at>>>31,Yh=x^YW,Jh=L^JW,XW=Le<<1|Hn>>>31,tZ=Hn<<1|Le>>>31,Xh=Q^XW,td=lt^tZ,eZ=d<<1|g>>>31,nZ=g<<1|d>>>31,ed=at^eZ,nd=Pt^nZ;a[0]^=Wh,a[1]^=Zh,a[2]^=qh,a[3]^=Qh,a[4]^=Yh,a[5]^=Jh,a[6]^=Xh,a[7]^=td,a[8]^=ed,a[9]^=nd,a[10]^=Wh,a[11]^=Zh,a[12]^=qh,a[13]^=Qh,a[14]^=Yh,a[15]^=Jh,a[16]^=Xh,a[17]^=td,a[18]^=ed,a[19]^=nd,a[20]^=Wh,a[21]^=Zh,a[22]^=qh,a[23]^=Qh,a[24]^=Yh,a[25]^=Jh,a[26]^=Xh,a[27]^=td,a[28]^=ed,a[29]^=nd,a[30]^=Wh,a[31]^=Zh,a[32]^=qh,a[33]^=Qh,a[34]^=Yh,a[35]^=Jh,a[36]^=Xh,a[37]^=td,a[38]^=ed,a[39]^=nd,a[40]^=Wh,a[41]^=Zh,a[42]^=qh,a[43]^=Qh,a[44]^=Yh,a[45]^=Jh,a[46]^=Xh,a[47]^=td,a[48]^=ed,a[49]^=nd;const c1=a[0],u1=a[1],l1=a[2]<<1|a[3]>>>31,f1=a[3]<<1|a[2]>>>31,h1=a[5]<<30|a[4]>>>2,d1=a[4]<<30|a[5]>>>2,p1=a[6]<<28|a[7]>>>4,g1=a[7]<<28|a[6]>>>4,y1=a[8]<<27|a[9]>>>5,m1=a[9]<<27|a[8]>>>5,w1=a[11]<<4|a[10]>>>28,b1=a[10]<<4|a[11]>>>28,_1=a[13]<<12|a[12]>>>20,A1=a[12]<<12|a[13]>>>20,E1=a[14]<<6|a[15]>>>26,v1=a[15]<<6|a[14]>>>26,x1=a[17]<<23|a[16]>>>9,R1=a[16]<<23|a[17]>>>9,S1=a[18]<<20|a[19]>>>12,I1=a[19]<<20|a[18]>>>12,k1=a[20]<<3|a[21]>>>29,T1=a[21]<<3|a[20]>>>29,O1=a[22]<<10|a[23]>>>22,N1=a[23]<<10|a[22]>>>22,C1=a[25]<<11|a[24]>>>21,B1=a[24]<<11|a[25]>>>21,P1=a[26]<<25|a[27]>>>7,M1=a[27]<<25|a[26]>>>7,L1=a[29]<<7|a[28]>>>25,U1=a[28]<<7|a[29]>>>25,D1=a[31]<<9|a[30]>>>23,F1=a[30]<<9|a[31]>>>23,$1=a[33]<<13|a[32]>>>19,H1=a[32]<<13|a[33]>>>19,z1=a[34]<<15|a[35]>>>17,G1=a[35]<<15|a[34]>>>17,V1=a[36]<<21|a[37]>>>11,K1=a[37]<<21|a[36]>>>11,j1=a[38]<<8|a[39]>>>24,W1=a[39]<<8|a[38]>>>24,Z1=a[40]<<18|a[41]>>>14,q1=a[41]<<18|a[40]>>>14,Q1=a[42]<<2|a[43]>>>30,Y1=a[43]<<2|a[42]>>>30,J1=a[45]<<29|a[44]>>>3,X1=a[44]<<29|a[45]>>>3,tb=a[47]<<24|a[46]>>>8,eb=a[46]<<24|a[47]>>>8,nb=a[48]<<14|a[49]>>>18,rb=a[49]<<14|a[48]>>>18;a[0]=c1^~_1&C1,a[1]=u1^~A1&B1,a[2]=_1^~C1&V1,a[3]=A1^~B1&K1,a[4]=C1^~V1&nb,a[5]=B1^~K1&rb,a[6]=V1^~nb&c1,a[7]=K1^~rb&u1,a[8]=nb^~c1&_1,a[9]=rb^~u1&A1,a[10]=p1^~S1&k1,a[11]=g1^~I1&T1,a[12]=S1^~k1&$1,a[13]=I1^~T1&H1,a[14]=k1^~$1&J1,a[15]=T1^~H1&X1,a[16]=$1^~J1&p1,a[17]=H1^~X1&g1,a[18]=J1^~p1&S1,a[19]=X1^~g1&I1,a[20]=l1^~E1&P1,a[21]=f1^~v1&M1,a[22]=E1^~P1&j1,a[23]=v1^~M1&W1,a[24]=P1^~j1&Z1,a[25]=M1^~W1&q1,a[26]=j1^~Z1&l1,a[27]=W1^~q1&f1,a[28]=Z1^~l1&E1,a[29]=q1^~f1&v1,a[30]=y1^~w1&O1,a[31]=m1^~b1&N1,a[32]=w1^~O1&z1,a[33]=b1^~N1&G1,a[34]=O1^~z1&tb,a[35]=N1^~G1&eb,a[36]=z1^~tb&y1,a[37]=G1^~eb&m1,a[38]=tb^~y1&w1,a[39]=eb^~m1&b1,a[40]=h1^~x1&L1,a[41]=d1^~R1&U1,a[42]=x1^~L1&D1,a[43]=R1^~U1&F1,a[44]=L1^~D1&Q1,a[45]=U1^~F1&Y1,a[46]=D1^~Q1&h1,a[47]=F1^~Y1&d1,a[48]=Q1^~h1&x1,a[49]=Y1^~d1&R1,a[0]^=oT[l*2],a[1]^=oT[l*2+1]}}function aT(a){const l=[];for(let d=0;d<a.length;d+=4)l.push(a[d]|a[d+1]<<8|a[d+2]<<16|a[d+3]<<24);return l}function cT(a,l){if(!a.length){const x=new Uint8Array(136);return x[0]=l,x[135]=128,[aT(x)]}const d=n1(a,136),g=d[d.length-1];if(g.length<136){const x=new Uint8Array(136);x.set(g),x[g.length]=l,x[135]|=128,d[d.length-1]=x}if(g.length===136){const x=new Uint8Array(136);x[0]=l,x[135]=128,d.push(x)}return d.map(aT)}function uT(a,l){for(const d of l){for(let g=0;g<34;g+=2)a[g]^=d[g+1],a[g+1]^=d[g];hW(a)}return a}function lT(a){return new Uint8Array([a[1],a[1]>>-24,a[1]>>-16,a[1]>>-8,a[0],a[0]>>8,a[0]>>16,a[0]>>24,a[3],a[3]>>-24,a[3]>>-16,a[3]>>-8,a[2],a[2]>>8,a[2]>>16,a[2]>>24,a[5],a[5]>>-24,a[5]>>-16,a[5]>>-8,a[4],a[4]>>8,a[4]>>16,a[4]>>24,a[7],a[7]>>-24,a[7]>>-16,a[7]>>-8,a[6],a[6]>>8,a[6]>>16,a[6]>>24])}function to(a){return lT(uT(new Array(50).fill(0),cT(a,1)))}function dW(a){return lT(uT(new Array(50).fill(0),cT(a,6)))}function pW(a,l,d){const g=Math.min(a.length,l.length,d/8+1);for(let x=0;x<g;x++){const L=a[x]^l[x];for(let Q=0;Q<8;Q++)if(L>>7-Q&1)return x*8+Q}return d}function gW(a,l){const d=Math.min(a.length,l.length);for(let g=0;g<d;g++)if(a[g]!==l[g])return a.subarray(0,g);return a.subarray(0,d)}function yW(a,l,d,g){const x=Math.floor(l/8),L=l%8;d===1?a[x]|=1<<(g==="BE"?7-L:L):a[x]&=~(1<<(g==="BE"?7-L:L))}function mW(a,l,d){const g=Math.floor(l/8),x=l%8;return a[g]>>(d==="BE"?7-x:x)&1}function wW(a,l,d=0){for(let g=d;g<a.length;g++)for(let x=0;x<l.length&&a[g+x]===l[x];x++)if(x===l.length-1)return g;return-1}function fT(a,l,d=0){if(a.length>=l)return a;const g=new Uint8Array(l);return g.fill(d),g.set(a,l-a.length),g}function bW(a,l,d=0){const g=a.length%l;return g===0?a:fT(a,a.length+l-g,d)}function hT(a,l,d=0){if(a.length>=l)return a;const g=new Uint8Array(l);return g.fill(d),g.set(a,0),g}function _W(a,l,d=0){const g=a.length%l;return g===0?a:hT(a,a.length+l-g,d)}function AW(a,l){const d=new Uint8Array(a.length);for(let g=0;g<a.length;g++)d[g]=a[g]^l[g%l.length];return d}function EW(a,l){if(a.length!==l.length)return!1;for(let d=0;d<a.length;d++)if(a[d]!==l[d])return!1;return!0}function Ge(a,l){return(a%l+l)%l}function Kh(a,l){a=Ge(a,l);let[d,g]=[0n,1n],[x,L]=[l,a];for(;L!==0n;){const Q=x/L;[d,g]=[g,d-Q*g],[x,L]=[L,x-Q*L]}if(x>1n)throw new Error("a is not invertible");return d<0n&&(d+=l),d}function vW(a,l,d){let g=1n;for(a=Ge(a,d);l>0;)l%2n===1n&&(g=Ge(g*a,d)),a=Ge(a*a,d),l=l/2n;return g}function dT(a,l){return Ge(a,l)===0n?0n:l%4n===3n?vW(a,(l+1n)/4n,l):null}const ur=0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2fn,$n=0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141n,Up=0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798n,Dp=0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8n;function r1(a,l,d){if(l===0n)return[0n,0n];const g=Ge(3n*a*a*Kh(2n*l,d),d),x=Ge(g*g-2n*a,d),L=Ge(g*(a-x)-l,d);return[x,L]}function Fp(a,l,d,g,x){if(a===0n&&l===0n)return[d,g];if(d===0n&&g===0n)return[a,l];if(a===d&&l===Ge(-g,x))return[0n,0n];if(a===d&&l===g)return r1(a,l,x);const L=Ge((g-l)*Kh(d-a,x),x),Q=Ge(L*L-a-d,x),lt=Ge(L*(a-Q)-l,x);return[Q,lt]}function xW(a){if(a<=0n||a>=$n)throw new Error("Invalid private key");return Ic(Up,Dp,a,ur)}function RW(a){const l=a[1]%2n===0n?2:3;return new Uint8Array([l,...Ll(a[0],"BE")])}function SW(a){if(a.length!==33||a[0]!==2&&a[0]!==3)throw new Error("Invalid compressed public key");const l=Ul(a.slice(1),"BE"),d=dT(Ge(l**3n+7n,ur),ur);if(!d)throw Error("Invalid x: does not correspond to a valid curve point");const g=Ge(-d,ur),x=d%2n===0n;return[l,a[0]===2?x?d:g:x?g:d]}function IW(a){const l=new Uint8Array(20),d=to(Ml(Ll(a[0],"BE"),Ll(a[1],"BE")));return l.set(d.subarray(12)),l}function kW(a){const l=n.Binary.uint8ArrayToHex(a),d=n.Binary.uint8ArrayToHex(n.Binary.keccak256(new Uint8Array([...l].map(x=>x.charCodeAt(0)))));let g="0x";for(let x=0;x<l.length;x++)parseInt(d[x],16)>7?g+=l[x].toUpperCase():g+=l[x];return g}function Ic(a,l,d,g){let x=[0n,0n],L=[a,l];const Q=d.toString(2);for(const lt of Q)lt==="0"?(L=Fp(x[0],x[1],L[0],L[1],g),x=r1(x[0],x[1],g)):(x=Fp(x[0],x[1],L[0],L[1],g),L=r1(L[0],L[1],g));return x}function TW(a,l,d){return pT(Ul(to(a),"BE"),l,d)}function pT(a,l,d){if(l<=0n||l>=$n)throw new Error("Invalid private key");if(d||(d=Ge(Ul(to(Ml(to(Ll(l,"BE")),Ll(a,"BE"))),"BE"),$n)),d<=0n||d>=$n)throw new Error("Invalid nonce");const g=Ge(a,$n),x=Ic(Up,Dp,d,ur),L=Ge(x[0],$n);let Q=Ge((g+Ge(L,$n)*l)*Kh(d,$n),$n);if(L===0n||Q===0n)throw new Error("Invalid r or s value");let lt=x[1]%2n===0n?27n:28n;return Q>$n/2n&&(Q=$n-Q,lt=lt===27n?28n:27n),[L,Q,lt]}function OW(a,l,d,g){const x=dT(Ge(l**3n+7n,ur),ur);if(!x)throw new Error("Invalid r: does not correspond to a valid curve point");const L=g===27n?0n:1n,Q=x%2n===L?x:ur-x,lt=Ge(Ul(to(a),"BE"),$n),at=Ic(l,Q,d,ur),Pt=Ic(Up,Dp,lt,ur),Le=Fp(at[0],at[1],Pt[0],Ge(-Pt[1],ur),ur);return Ic(Le[0],Le[1],Kh(l,$n),ur)}function NW(a,l,d,g){const x=Ge(Ul(to(a),"BE"),$n),L=Kh(g,$n),Q=Ge(x*L,$n),lt=Ge(d*L,$n),at=Ic(Up,Dp,Q,ur),Pt=Ic(l[0],l[1],lt,ur),Le=Fp(at[0],at[1],Pt[0],Pt[1],ur);return d===Ge(Le[0],$n)}class gT{constructor(l){this.cursor=0,this.buffer=l}read(l){const d=this.buffer.subarray(this.cursor,this.cursor+l);return this.cursor+=l,d}max(){return this.buffer.length-this.cursor}}n.Uint8ArrayReader=gT;class yT{constructor(l){this.buffer=l,this.cursor=0}write(l){const d=Math.min(this.max(),l.max());return this.buffer.set(l.read(d),this.cursor),this.cursor+=d,d}max(){return this.buffer.length-this.cursor}}n.Uint8ArrayWriter=yT;class $p{constructor(l,d=0n){this.span=d,this.writer=new yT(new Uint8Array(l))}build(){return Ml(e1(this.span,"LE"),this.writer.buffer)}hash(){const l=nT(n1(this.writer.buffer,32),(d,g)=>to(Ml(d,g)));return to(Ml(e1(this.span,"LE"),l))}}n.Chunk=$p;class i1{constructor(l,d=4096){this.counters=[1],this.capacity=d,this.chunks=[new $p(d)],this.onChunk=l}static async root(l,d=4096){const g=new t(t.NOOP,d);return await g.append(l),g.finalize()}async append(l,d=0,g=0n){const x=new gT(l);for(;x.max()>0;){this.chunks[d].writer.max()===0&&await this.elevate(d);const L=this.chunks[d].writer.write(x);g?this.chunks[d].span+=g:this.chunks[0].span+=BigInt(L)}}async elevate(l){this.counters[l]=++this.counters[l]%(this.capacity/32),this.chunks[l+1]||(this.chunks.push(new $p(this.capacity)),this.counters.push(1)),await this.append(this.chunks[l].hash(),l+1,this.chunks[l].span),await this.onChunk(this.chunks[l]),this.chunks[l]=new $p(this.capacity)}async finalize(l=0){return this.chunks[l+1]?this.counters[l]===1?(await this.elevate(l+1),this.chunks[l+1]=this.chunks[l],this.finalize(l+1)):(await this.elevate(l),this.finalize(l+1)):(await this.onChunk(this.chunks[l]),this.chunks[l])}}n.MerkleTree=i1,t=i1,i1.NOOP=async a=>{};class fs{constructor(l,d){if(d<0)throw Error("Scale must be non-negative");this.value=BigInt(l),this.scale=d}static fromDecimalString(l,d){let[g,x]=l.split(".");return x=(x||"").padEnd(d,"0").slice(0,d),new fs(BigInt(g+x),d)}add(l){return this.assertSameScale(l),new fs(this.value+l.value,this.scale)}subtract(l){return this.assertSameScale(l),new fs(this.value-l.value,this.scale)}multiply(l){return new fs(this.value*l,this.scale)}divmod(l){if(l===0n)throw new Error("Division by zero is not allowed");const d=this.value/l,g=this.value%l;return[new fs(d,this.scale),new fs(g,this.scale)]}exchange(l,d,g){if(l==="*"){const L=this.value*d.value/10n**BigInt(this.scale);return new fs(L,g)}this.assertSameScale(d);const x=this.value*10n**BigInt(g)/d.value;return new fs(x,g)}compare(l){return this.assertSameScale(l),this.value>l.value?1:this.value<l.value?-1:0}toDecimalString(){if(this.scale===0)return this.value.toString();const l=this.value.toString(),d=l.slice(0,-this.scale)||"0",g=l.slice(-this.scale).padStart(this.scale,"0");return`${d}.${g}`}toString(){return this.value.toString()}toJSON(){return this.toString()}assertSameScale(l){if(this.scale!==l.scale)throw new Error(`Scale mismatch: expected ${this.scale}, but got ${l.scale}`)}}n.FixedPointNumber=fs;function CW(a){if(a.length===0)return null;const l=a[0];return l.ttlMax?--l.ttl<=0&&a.shift():l.ttlMax=l.ttl,{progress:(l.ttlMax-l.ttl)/l.ttlMax,data:l.data}}function Hp(a,l,d,g){const x=a.findIndex(lt=>lt===`--${l}`||lt.startsWith(`--${l}=`)),L=a[x];if(!L)return(d||{})[g||l||""]||null;if(L.includes("="))return L.split("=")[1];const Q=a[x+1];return Q&&!Q.startsWith("-")?Q:(d||{})[g||l||""]||null}function BW(a,l,d,g){const x=Hp(a,l,d,g);if(!x)return null;try{return Jw(x)}catch{throw new Error(`Invalid number argument ${l}: ${x}`)}}function PW(a,l,d,g){const x=a.some(at=>at.endsWith("-"+l)),L=Hp(a,l,d,g);if(!L&&x)return!0;if(!L&&!x)return null;const Q=["true","1","yes","y","on"],lt=["false","0","no","n","off"];if(Q.includes(L.toLowerCase()))return!0;if(lt.includes(L.toLowerCase()))return!1;throw Error(`Invalid boolean argument ${l}: ${L}`)}function mT(a,l,d,g){const x=Hp(a,l,d,g);if(!x)throw new Error(`Missing argument ${l}`);return x}function MW(a,l,d,g){const x=mT(a,l,d,g);try{return Jw(x)}catch{throw new Error(`Invalid argument ${l}: ${x}`)}}function wT(a,l){const d=a[l];a.splice(l,1),a.unshift(d)}function LW(a,l){const d=[...a];return wT(d,l),d}function bT(a,l){return{x:a.x+l.x,y:a.y+l.y}}function UW(a,l){return{x:a.x-l.x,y:a.y-l.y}}function s1(a,l){return{x:a.x*l,y:a.y*l}}function DW(a){const l=Math.sqrt(a.x*a.x+a.y*a.y);return{x:a.x/l,y:a.y/l}}function _T(a,l,d){return{x:a.x+Math.cos(l)*d,y:a.y+Math.sin(l)*d}}function AT(a,l){return Math.sqrt((a.x-l.x)**2+(a.y-l.y)**2)}function jh(a,l,d="row-first"){const g=[];if(d==="column-first")for(let x=0;x<a.length;x++)for(let L=0;L<a[0].length;L++)l(x,L)&&g.push({x,y:L});else for(let x=0;x<a[0].length;x++)for(let L=0;L<a.length;L++)l(L,x)&&g.push({x:L,y:x});return g}function FW(a,l,d){var g,x;return((g=a[l+1])==null?void 0:g[d])&&((x=a[l-1])==null?void 0:x[d])&&!a[l][d-1]&&!a[l][d+1]}function $W(a,l,d){var g,x;return a[l][d+1]&&a[l][d-1]&&!((g=a[l-1])!=null&&g[d])&&!((x=a[l+1])!=null&&x[d])}function ET(a,l,d){var g;return!((g=a[l-1])!=null&&g[d])}function vT(a,l,d){var g;return!((g=a[l+1])!=null&&g[d])}function xT(a,l,d){return!a[l][d-1]}function RT(a,l,d){return!a[l][d+1]}function HW(a,l,d){var x,L,Q,lt,at,Pt,Le,Hn;const g=[];return a[l][d]?FW(a,l,d)||$W(a,l,d)?[]:(!((x=a[l-1])!=null&&x[d-1])&&ET(a,l,d)&&xT(a,l,d)&&g.push({x:l,y:d}),!((L=a[l+1])!=null&&L[d-1])&&vT(a,l,d)&&xT(a,l,d)&&g.push({x:l+1,y:d}),!((Q=a[l-1])!=null&&Q[d+1])&&ET(a,l,d)&&RT(a,l,d)&&g.push({x:l,y:d+1}),!((lt=a[l+1])!=null&<[d+1])&&vT(a,l,d)&&RT(a,l,d)&&g.push({x:l+1,y:d+1}),g):((at=a[l-1])!=null&&at[d]&&a[l][d-1]&&g.push({x:l,y:d}),(Pt=a[l+1])!=null&&Pt[d]&&a[l][d-1]&&g.push({x:l+1,y:d}),(Le=a[l-1])!=null&&Le[d]&&a[l][d+1]&&g.push({x:l,y:d+1}),(Hn=a[l+1])!=null&&Hn[d]&&a[l][d+1]&&g.push({x:l+1,y:d+1}),g)}function zW(a,l,d,g){const x=[{x:0,y:0},{x:d,y:0},{x:0,y:g},{x:d,y:g}];for(let L=0;L<a.length;L++)for(let Q=0;Q<a[0].length;Q++){const lt=HW(a,L,Q);for(const at of lt)x.some(Pt=>Pt.x===at.x&&Pt.y===at.y)||x.push(at)}return x.map(L=>({x:L.x*l,y:L.y*l}))}function GW(a,l){const d=jh(a,(at,Pt)=>a[at][Pt]===0&&a[at][Pt+1]!==0,"row-first").map(at=>({...at,dx:1,dy:0})),g=jh(a,(at,Pt)=>a[at][Pt]===0&&a[at][Pt-1]!==0,"row-first").map(at=>({...at,dx:1,dy:0})),x=jh(a,(at,Pt)=>{var Le;return a[at][Pt]===0&&((Le=a[at-1])==null?void 0:Le[Pt])!==0},"column-first").map(at=>({...at,dx:0,dy:1})),L=jh(a,(at,Pt)=>{var Le;return a[at][Pt]===0&&((Le=a[at+1])==null?void 0:Le[Pt])!==0},"column-first").map(at=>({...at,dx:0,dy:1}));d.forEach(at=>at.y++),L.forEach(at=>at.x++);const Q=t1([...x,...L],(at,Pt)=>at.x===Pt.x&&at.y-1===Pt.y),lt=t1([...g,...d],(at,Pt)=>at.y===Pt.y&&at.x-1===Pt.x);return[...Q,...lt].map(at=>({start:at[0],end:C(at)})).map(at=>({start:s1(at.start,l),end:s1(bT(at.end,{x:at.start.dx,y:at.start.dy}),l)}))}function VW(a,l){return Math.atan2(l.y-a.y,l.x-a.x)}function KW(a,l){return l.map(d=>VW(a,d)).sort((d,g)=>d-g)}function ST(a,l,d,g){const x=(g.y-d.y)*(l.x-a.x)-(g.x-d.x)*(l.y-a.y);if(x===0)return null;let L=a.y-d.y,Q=a.x-d.x;const lt=(g.x-d.x)*L-(g.y-d.y)*Q,at=(l.x-a.x)*L-(l.y-a.y)*Q;return L=lt/x,Q=at/x,L>0&&L<1&&Q>0&&Q<1?{x:a.x+L*(l.x-a.x),y:a.y+L*(l.y-a.y)}:null}function o1(a,l,d){const g=[],x=_T(a,d,1e4);for(const L of l){const Q=ST(a,x,L.start,L.end);Q&&g.push(Q)}return g.length?g.reduce((L,Q)=>{const lt=AT(a,Q),at=AT(a,L);return lt<at?Q:L}):null}function jW(a,l,d){const g=KW(a,d),x=[];for(const L of g){const Q=o1(a,l,L-.001),lt=o1(a,l,L+.001);Q&&x.push(Q),lt&&x.push(lt)}return x}class a1{constructor(){this.subscribers=[]}subscribe(l){return this.subscribers.push(l),()=>{this.subscribers=this.subscribers.filter(d=>d!==l)}}publish(l){this.subscribers.forEach(d=>d(l))}clear(){this.subscribers=[]}getSubscriberCount(){return this.subscribers.length}}n.PubSubChannel=a1;class WW{constructor(l,d){this.queue=[],this.running=0,this.onProcessed=new a1,this.onDrained=new a1,this.concurrency=l,this.capacity=d}process(){if(this.running>=this.concurrency)return;const l=this.queue.shift();l&&(this.running++,l().finally(()=>{this.running--,this.process(),this.onProcessed.publish(),this.running===0&&this.onDrained.publish()}))}enqueue(l){if(this.queue.length<this.capacity)return this.queue.push(l),this.process(),Promise.resolve();if(this.onProcessed.getSubscriberCount())throw Error("Queue capacity is full");return new Promise(d=>{this.onProcessed.subscribe(()=>{this.queue.length<this.capacity&&(this.queue.push(l),this.process(),this.onProcessed.clear(),d())})})}drain(){if(this.running===0)return Promise.resolve();if(this.onDrained.getSubscriberCount())throw Error("Already draining");return new Promise(l=>{this.onDrained.subscribe(()=>{this.onDrained.clear(),l()})})}}n.AsyncQueue=WW,n.Binary={hexToUint8Array:JV,uint8ArrayToHex:XV,base64ToUint8Array:ZV,uint8ArrayToBase64:qV,base32ToUint8Array:QV,uint8ArrayToBase32:YV,log2Reduce:nT,partition:n1,concatBytes:Ml,numberToUint8:iW,uint8ToNumber:sW,numberToUint16:oW,uint16ToNumber:aW,numberToUint32:cW,uint32ToNumber:uW,numberToUint64:e1,uint64ToNumber:lW,numberToUint256:Ll,uint256ToNumber:Ul,sliceBytes:fW,keccak256:to,sha3_256:dW,proximity:pW,commonPrefix:gW,setBit:yW,getBit:mW,indexOf:wW,equals:EW,padStart:fT,padStartToMultiple:bW,padEnd:hT,padEndToMultiple:_W,xorCypher:AW},n.Elliptic={privateKeyToPublicKey:xW,compressPublicKey:RW,publicKeyFromCompressed:SW,publicKeyToAddress:IW,signMessage:TW,signHash:pT,verifySignature:NW,recoverPublicKey:OW,checksumEncode:kW},n.Random={intBetween:H,floatBetween:U,chance:Y,signed:G,makeSeededRng:B,point:J,procs:j},n.Arrays={countUnique:Dj,makeUnique:Uj,splitBySize:Mj,splitByCount:Jk,index:Yk,indexCollection:Pj,onlyOrThrow:c,onlyOrNull:u,firstOrThrow:h,firstOrNull:f,shuffle:o,initialize:y,initialize2D:b,rotate2D:A,containsShape:R,glue:rV,pluck:S,pick:it,pickMany:ut,pickManyUnique:rt,pickWeighted:v,pickRandomIndices:k,pickGuaranteed:ot,last:C,pipe:p,makePipe:m,sortWeighted:I,pushAll:na,unshiftAll:eV,filterAndRemove:EK,merge:mj,empty:wj,pushToBucket:$h,unshiftAndLimit:Hh,atRolling:zh,group:t1,createOscillator:ij,organiseWithLimits:oj,tickPlaybook:CW,getArgument:Hp,getBooleanArgument:PW,getNumberArgument:BW,requireStringArgument:mT,requireNumberArgument:MW,bringToFront:LW,bringToFrontInPlace:wT,findInstance:Yj,filterInstances:Jj,interleave:Xj,toggle:tW,createHierarchy:nW,multicall:qj,maxBy:Qj},n.System={sleepMillis:s,forever:dt,scheduleMany:lV,waitFor:AK,expandError:Lh,runAndSetInterval:mt},n.Numbers={make:Jw,sum:hV,average:dV,median:pV,getDistanceFromMidpoint:gV,clamp:Xw,range:_k,interpolate:fV,createSequence:rj,increment:dj,decrement:pj,format:hj,fromDecimals:fj,makeStorage:WK,asMegabytes:Gt,convertBytes:Ut,hexToRgb:Lt,rgbToHex:xe,haversineDistanceToMeters:Kt,roundToNearest:Ft,formatDistance:ke,triangularNumber:re,searchFloat:oe},n.Promises={raceFulfilled:r,invert:e,runInParallelBatches:i},n.Dates={getTimestamp:NK,getTimeDelta:zk,secondsToHumanTime:CK,countCycles:BK,isoDate:RK,throttle:PK,timeSince:LK,dateTimeSlug:SK,unixTimestamp:xK,fromUtcString:IK,fromMillis:kK,getProgress:UK,humanizeTime:Mp,humanizeProgress:_K,createTimeDigits:ls,mapDayNumber:Gk,getDayInfoFromDate:Qw,getDayInfoFromDateTimeString:FK,seconds:$K,minutes:HK,hours:zK,days:GK,make:KK,normalizeTime:TK,absoluteDays:Rc},n.Objects={safeParse:nj,deleteDeep:_,getDeep:N,setDeep:M,incrementDeep:z,ensureDeep:P,replaceDeep:F,getFirstDeep:ct,deepMergeInPlace:Ti,deepMerge2:Uh,deepMerge3:Dh,mapAllAsync:nV,cloneWithJson:vK,sortObject:Kk,sortArray:jk,sortAny:Sc,deepEquals:Wk,deepEqualsEvery:ej,runOn:gj,ifPresent:yj,zip:Bl,zipSum:Fh,removeEmptyArrays:bj,removeEmptyValues:_j,flatten:Cj,unflatten:Qk,match:Bj,sort:tT,map:vj,mapIterable:xj,filterKeys:Aj,filterValues:Ej,rethrow:Rj,setSomeOnObject:Sj,setSomeDeep:Ij,flip:kj,getAllPermutations:Tj,countTruthyValues:Oj,transformToArray:Fj,setMulti:Hj,incrementMulti:$j,createBidirectionalMap:zj,createTemporalBidirectionalMap:Gj,pushToBidirectionalMap:eT,unshiftToBidirectionalMap:Vj,addToTemporalBidirectionalMap:Kj,getFromTemporalBidirectionalMap:jj,createStatefulToggle:sj,diffKeys:aj,pickRandomKey:Zk,mapRandomKey:cj,fromObjectString:uj,toQueryString:$k,parseQueryString:hK,hasKey:dK,selectMax:pK,reposition:gK,unwrapSingleKey:yK,parseKeyValues:mK},n.Types={isFunction:Ce,isObject:rn,isStrictlyObject:fe,isEmptyArray:Ue,isEmptyObject:ea,isUndefined:Re,isString:In,isNumber:he,isBoolean:Se,isDate:sn,isBlank:Ee,isId:Be,isIntegerString:cr,isHexString:De,isUrl:Nl,isNullable:Ch,asString:on,asHexString:dn,asSafeString:Tp,asIntegerString:kp,asNumber:vc,asFunction:pn,asInteger:Ye,asBoolean:gn,asDate:Op,asNullableString:yn,asEmptiableString:mn,asId:Np,asTime:wn,asArray:bn,asObject:xc,asNullableObject:_n,asStringMap:An,asNumericDictionary:Oh,asUrl:Nh,asNullable:Bh,asOptional:Ph,enforceObjectShape:Cl,enforceArrayShape:Mh,isPng:rT,isJpg:iT,isWebp:sT,isImage:rW},n.Strings={tokenizeByCount:Lj,tokenizeByLength:Xk,searchHex:Ip,searchSubstring:fn,randomHex:hn,randomLetter:jt,randomAlphanumeric:Fe,randomRichAscii:Ht,randomUnicode:ln,includesAny:yV,slugify:Hw,normalForm:wV,enumify:xV,escapeHtml:SV,decodeHtmlEntities:kV,after:zw,afterLast:Ek,before:Ak,beforeLast:Gw,betweenWide:TV,betweenNarrow:OV,getPreLine:ZK,containsWord:Zw,containsWords:cK,joinUrl:Vk,getFuzzyMatchScore:Cp,sortByFuzzyScore:RV,splitOnce:Vw,splitAll:vk,randomize:PV,expand:xk,shrinkTrim:Gh,capitalize:Bp,decapitalize:Rk,csvEscape:$V,parseCsv:bK,surroundInOut:vV,getExtension:Kw,getBasename:jw,normalizeEmail:NV,normalizeFilename:CV,parseFilename:BV,camelToTitle:bV,slugToTitle:_V,slugToCamel:AV,joinHumanly:EV,findWeightedPair:Nk,extractBlock:Ck,extractAllBlocks:GV,replaceBlocks:VV,indexOfEarliest:Pl,lastIndexOfBefore:Ok,parseHtmlAttributes:uK,readNextWord:Pp,resolveVariables:lK,resolveVariableWithDefaultSyntax:Dk,resolveRemainingVariablesWithDefaults:Fk,isLetter:Sk,isDigit:Ik,isLetterOrDigit:Vh,isValidObjectPathCharacter:UV,insert:DV,indexOfRegex:kk,lineMatches:Tk,linesMatchInOrder:FV,represent:Xs,resolveMarkdownLinks:fK,buildUrl:wK,isChinese:mV,replaceBetweenStrings:YK,describeMarkdown:JK,isBalanced:XK,textToFormat:tj,splitFormatting:KV,splitHashtags:jV,splitUrls:WV,route:tK,explodeReplace:Ww,generateVariants:eK,replaceWord:nK,replacePascalCaseWords:rK,stripHtml:iK,breakLine:Uk,measureTextWidth:sK,toLines:oK,levenshteinDistance:aK},n.Assertions={asEqual:iV,asTrue:sV,asTruthy:oV,asFalse:aV,asFalsy:cV,asEither:uV},n.Cache={get:qK,invalidate:QK},n.Vector={addPoint:bT,subtractPoint:UW,multiplyPoint:s1,normalizePoint:DW,pushPoint:_T,filterCoordinates:jh,findCorners:zW,findLines:GW,raycast:o1,raycastCircle:jW,getLineIntersectionPoint:ST}})(n_);const Ke=Br(n_);Ke.Arrays,Ke.Assertions;const Jn=Ke.Binary;Ke.Cache,Ke.Dates,Ke.Elliptic,Ke.Numbers,Ke.Objects,Ke.Pagination,Ke.Promises,Ke.Random,Ke.Strings,Ke.System,Ke.Types,Ke.Optional,Ke.Vector,Ke.PubSubChannel,Ke.Chunk;const d8=Ke.MerkleTree;Ke.FixedPointNumber,Ke.Lazy,Ke.AsyncLazy,Ke.AsyncQueue,Ke.Uint8ArrayReader,Ke.Uint8ArrayWriter;var de;(function(n){n.assertEqual=i=>i;function t(i){}n.assertIs=t;function e(i){throw new Error}n.assertNever=e,n.arrayToEnum=i=>{const s={};for(const o of i)s[o]=o;return s},n.getValidEnumValues=i=>{const s=n.objectKeys(i).filter(c=>typeof i[i[c]]!="number"),o={};for(const c of s)o[c]=i[c];return n.objectValues(o)},n.objectValues=i=>n.objectKeys(i).map(function(s){return i[s]}),n.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{const s=[];for(const o in i)Object.prototype.hasOwnProperty.call(i,o)&&s.push(o);return s},n.find=(i,s)=>{for(const o of i)if(s(o))return o},n.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&isFinite(i)&&Math.floor(i)===i;function r(i,s=" | "){return i.map(o=>typeof o=="string"?`'${o}'`:o).join(s)}n.joinValues=r,n.jsonStringifyReplacer=(i,s)=>typeof s=="bigint"?s.toString():s})(de||(de={}));var cg;(function(n){n.mergeShapes=(t,e)=>({...t,...e})})(cg||(cg={}));const St=de.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ds=n=>{switch(typeof n){case"undefined":return St.undefined;case"string":return St.string;case"number":return isNaN(n)?St.nan:St.number;case"boolean":return St.boolean;case"function":return St.function;case"bigint":return St.bigint;case"symbol":return St.symbol;case"object":return Array.isArray(n)?St.array:n===null?St.null:n.then&&typeof n.then=="function"&&n.catch&&typeof n.catch=="function"?St.promise:typeof Map<"u"&&n instanceof Map?St.map:typeof Set<"u"&&n instanceof Set?St.set:typeof Date<"u"&&n instanceof Date?St.date:St.object;default:return St.unknown}},gt=de.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),p8=n=>JSON.stringify(n,null,2).replace(/"([^"]+)":/g,"$1:");class Pr extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};const e=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,e):this.__proto__=e,this.name="ZodError",this.issues=t}format(t){const e=t||function(s){return s.message},r={_errors:[]},i=s=>{for(const o of s.issues)if(o.code==="invalid_union")o.unionErrors.map(i);else if(o.code==="invalid_return_type")i(o.returnTypeError);else if(o.code==="invalid_arguments")i(o.argumentsError);else if(o.path.length===0)r._errors.push(e(o));else{let c=r,u=0;for(;u<o.path.length;){const f=o.path[u];u===o.path.length-1?(c[f]=c[f]||{_errors:[]},c[f]._errors.push(e(o))):c[f]=c[f]||{_errors:[]},c=c[f],u++}}};return i(this),r}static assert(t){if(!(t instanceof Pr))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,de.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=e=>e.message){const e={},r=[];for(const i of this.issues)i.path.length>0?(e[i.path[0]]=e[i.path[0]]||[],e[i.path[0]].push(t(i))):r.push(t(i));return{formErrors:r,fieldErrors:e}}get formErrors(){return this.flatten()}}Pr.create=n=>new Pr(n);const Mc=(n,t)=>{let e;switch(n.code){case gt.invalid_type:n.received===St.undefined?e="Required":e=`Expected ${n.expected}, received ${n.received}`;break;case gt.invalid_literal:e=`Invalid literal value, expected ${JSON.stringify(n.expected,de.jsonStringifyReplacer)}`;break;case gt.unrecognized_keys:e=`Unrecognized key(s) in object: ${de.joinValues(n.keys,", ")}`;break;case gt.invalid_union:e="Invalid input";break;case gt.invalid_union_discriminator:e=`Invalid discriminator value. Expected ${de.joinValues(n.options)}`;break;case gt.invalid_enum_value:e=`Invalid enum value. Expected ${de.joinValues(n.options)}, received '${n.received}'`;break;case gt.invalid_arguments:e="Invalid function arguments";break;case gt.invalid_return_type:e="Invalid function return type";break;case gt.invalid_date:e="Invalid date";break;case gt.invalid_string:typeof n.validation=="object"?"includes"in n.validation?(e=`Invalid input: must include "${n.validation.includes}"`,typeof n.validation.position=="number"&&(e=`${e} at one or more positions greater than or equal to ${n.validation.position}`)):"startsWith"in n.validation?e=`Invalid input: must start with "${n.validation.startsWith}"`:"endsWith"in n.validation?e=`Invalid input: must end with "${n.validation.endsWith}"`:de.assertNever(n.validation):n.validation!=="regex"?e=`Invalid ${n.validation}`:e="Invalid";break;case gt.too_small:n.type==="array"?e=`Array must contain ${n.exact?"exactly":n.inclusive?"at least":"more than"} ${n.minimum} element(s)`:n.type==="string"?e=`String must contain ${n.exact?"exactly":n.inclusive?"at least":"over"} ${n.minimum} character(s)`:n.type==="number"?e=`Number must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${n.minimum}`:n.type==="date"?e=`Date must be ${n.exact?"exactly equal to ":n.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(n.minimum))}`:e="Invalid input";break;case gt.too_big:n.type==="array"?e=`Array must contain ${n.exact?"exactly":n.inclusive?"at most":"less than"} ${n.maximum} element(s)`:n.type==="string"?e=`String must contain ${n.exact?"exactly":n.inclusive?"at most":"under"} ${n.maximum} character(s)`:n.type==="number"?e=`Number must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`:n.type==="bigint"?e=`BigInt must be ${n.exact?"exactly":n.inclusive?"less than or equal to":"less than"} ${n.maximum}`:n.type==="date"?e=`Date must be ${n.exact?"exactly":n.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(n.maximum))}`:e="Invalid input";break;case gt.custom:e="Invalid input";break;case gt.invalid_intersection_types:e="Intersection results could not be merged";break;case gt.not_multiple_of:e=`Number must be a multiple of ${n.multipleOf}`;break;case gt.not_finite:e="Number must be finite";break;default:e=t.defaultError,de.assertNever(n)}return{message:e}};let r_=Mc;function g8(n){r_=n}function wd(){return r_}const bd=n=>{const{data:t,path:e,errorMaps:r,issueData:i}=n,s=[...e,...i.path||[]],o={...i,path:s};if(i.message!==void 0)return{...i,path:s,message:i.message};let c="";const u=r.filter(f=>!!f).slice().reverse();for(const f of u)c=f(o,{data:t,defaultError:c}).message;return{...i,path:s,message:c}},y8=[];function At(n,t){const e=wd(),r=bd({issueData:t,data:n.data,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,e,e===Mc?void 0:Mc].filter(i=>!!i)});n.common.issues.push(r)}class Xn{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,e){const r=[];for(const i of e){if(i.status==="aborted")return Vt;i.status==="dirty"&&t.dirty(),r.push(i.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,e){const r=[];for(const i of e){const s=await i.key,o=await i.value;r.push({key:s,value:o})}return Xn.mergeObjectSync(t,r)}static mergeObjectSync(t,e){const r={};for(const i of e){const{key:s,value:o}=i;if(s.status==="aborted"||o.status==="aborted")return Vt;s.status==="dirty"&&t.dirty(),o.status==="dirty"&&t.dirty(),s.value!=="__proto__"&&(typeof o.value<"u"||i.alwaysSet)&&(r[s.value]=o.value)}return{status:t.value,value:r}}}const Vt=Object.freeze({status:"aborted"}),Lc=n=>({status:"dirty",value:n}),lr=n=>({status:"valid",value:n}),ug=n=>n.status==="aborted",lg=n=>n.status==="dirty",oa=n=>n.status==="valid",Gl=n=>typeof Promise<"u"&&n instanceof Promise;function _d(n,t,e,r){if(typeof t=="function"?n!==t||!r:!t.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return t.get(n)}function i_(n,t,e,r,i){if(typeof t=="function"?n!==t||!i:!t.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return t.set(n,e),e}typeof SuppressedError=="function"&&SuppressedError;var Bt;(function(n){n.errToObj=t=>typeof t=="string"?{message:t}:t||{},n.toString=t=>typeof t=="string"?t:t==null?void 0:t.message})(Bt||(Bt={}));var Vl,Kl;class Ni{constructor(t,e,r,i){this._cachedPath=[],this.parent=t,this.data=e,this._path=r,this._key=i}get path(){return this._cachedPath.length||(this._key instanceof Array?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const s_=(n,t)=>{if(oa(t))return{success:!0,data:t.value};if(!n.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const e=new Pr(n.common.issues);return this._error=e,this._error}}};function Qt(n){if(!n)return{};const{errorMap:t,invalid_type_error:e,required_error:r,description:i}=n;if(t&&(e||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(o,c)=>{var u,f;const{message:h}=n;return o.code==="invalid_enum_value"?{message:h??c.defaultError}:typeof c.data>"u"?{message:(u=h??r)!==null&&u!==void 0?u:c.defaultError}:o.code!=="invalid_type"?{message:c.defaultError}:{message:(f=h??e)!==null&&f!==void 0?f:c.defaultError}},description:i}}class Jt{get description(){return this._def.description}_getType(t){return ds(t.data)}_getOrReturnCtx(t,e){return e||{common:t.parent.common,data:t.data,parsedType:ds(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Xn,ctx:{common:t.parent.common,data:t.data,parsedType:ds(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){const e=this._parse(t);if(Gl(e))throw new Error("Synchronous parse encountered promise.");return e}_parseAsync(t){const e=this._parse(t);return Promise.resolve(e)}parse(t,e){const r=this.safeParse(t,e);if(r.success)return r.data;throw r.error}safeParse(t,e){var r;const i={common:{issues:[],async:(r=e==null?void 0:e.async)!==null&&r!==void 0?r:!1,contextualErrorMap:e==null?void 0:e.errorMap},path:(e==null?void 0:e.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ds(t)},s=this._parseSync({data:t,path:i.path,parent:i});return s_(i,s)}"~validate"(t){var e,r;const i={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ds(t)};if(!this["~standard"].async)try{const s=this._parseSync({data:t,path:[],parent:i});return oa(s)?{value:s.value}:{issues:i.common.issues}}catch(s){!((r=(e=s==null?void 0:s.message)===null||e===void 0?void 0:e.toLowerCase())===null||r===void 0)&&r.includes("encountered")&&(this["~standard"].async=!0),i.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:i}).then(s=>oa(s)?{value:s.value}:{issues:i.common.issues})}async parseAsync(t,e){const r=await this.safeParseAsync(t,e);if(r.success)return r.data;throw r.error}async safeParseAsync(t,e){const r={common:{issues:[],contextualErrorMap:e==null?void 0:e.errorMap,async:!0},path:(e==null?void 0:e.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:ds(t)},i=this._parse({data:t,path:r.path,parent:r}),s=await(Gl(i)?i:Promise.resolve(i));return s_(r,s)}refine(t,e){const r=i=>typeof e=="string"||typeof e>"u"?{message:e}:typeof e=="function"?e(i):e;return this._refinement((i,s)=>{const o=t(i),c=()=>s.addIssue({code:gt.custom,...r(i)});return typeof Promise<"u"&&o instanceof Promise?o.then(u=>u?!0:(c(),!1)):o?!0:(c(),!1)})}refinement(t,e){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof e=="function"?e(r,i):e),!1))}_refinement(t){return new hi({schema:this,typeName:zt.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:e=>this["~validate"](e)}}optional(){return Bi.create(this,this._def)}nullable(){return io.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return fi.create(this)}promise(){return $c.create(this,this._def)}or(t){return ql.create([this,t],this._def)}and(t){return Ql.create(this,t,this._def)}transform(t){return new hi({...Qt(this._def),schema:this,typeName:zt.ZodEffects,effect:{type:"transform",transform:t}})}default(t){const e=typeof t=="function"?t:()=>t;return new ef({...Qt(this._def),innerType:this,defaultValue:e,typeName:zt.ZodDefault})}brand(){return new dg({typeName:zt.ZodBranded,type:this,...Qt(this._def)})}catch(t){const e=typeof t=="function"?t:()=>t;return new nf({...Qt(this._def),innerType:this,catchValue:e,typeName:zt.ZodCatch})}describe(t){const e=this.constructor;return new e({...this._def,description:t})}pipe(t){return rf.create(this,t)}readonly(){return sf.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const m8=/^c[^\s-]{8,}$/i,w8=/^[0-9a-z]+$/,b8=/^[0-9A-HJKMNP-TV-Z]{26}$/i,_8=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,A8=/^[a-z0-9_-]{21}$/i,E8=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,v8=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,x8=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,R8="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let fg;const S8=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,I8=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,k8=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,T8=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,O8=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,N8=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,o_="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",C8=new RegExp(`^${o_}$`);function a_(n){let t="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";return n.precision?t=`${t}\\.\\d{${n.precision}}`:n.precision==null&&(t=`${t}(\\.\\d+)?`),t}function B8(n){return new RegExp(`^${a_(n)}$`)}function c_(n){let t=`${o_}T${a_(n)}`;const e=[];return e.push(n.local?"Z?":"Z"),n.offset&&e.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${e.join("|")})`,new RegExp(`^${t}$`)}function P8(n,t){return!!((t==="v4"||!t)&&S8.test(n)||(t==="v6"||!t)&&k8.test(n))}function M8(n,t){if(!E8.test(n))return!1;try{const[e]=n.split("."),r=e.replace(/-/g,"+").replace(/_/g,"/").padEnd(e.length+(4-e.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||!i.typ||!i.alg||t&&i.alg!==t)}catch{return!1}}function L8(n,t){return!!((t==="v4"||!t)&&I8.test(n)||(t==="v6"||!t)&&T8.test(n))}class li extends Jt{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==St.string){const s=this._getOrReturnCtx(t);return At(s,{code:gt.invalid_type,expected:St.string,received:s.parsedType}),Vt}const r=new Xn;let i;for(const s of this._def.checks)if(s.kind==="min")t.data.length<s.value&&(i=this._getOrReturnCtx(t,i),At(i,{code:gt.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="max")t.data.length>s.value&&(i=this._getOrReturnCtx(t,i),At(i,{code:gt.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!1,message:s.message}),r.dirty());else if(s.kind==="length"){const o=t.data.length>s.value,c=t.data.length<s.value;(o||c)&&(i=this._getOrReturnCtx(t,i),o?At(i,{code:gt.too_big,maximum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}):c&&At(i,{code:gt.too_small,minimum:s.value,type:"string",inclusive:!0,exact:!0,message:s.message}),r.dirty())}else if(s.kind==="email")x8.test(t.data)||(i=this._getOrReturnCtx(t,i),At(i,{validation:"email",code:gt.invalid_string,message:s.message}),r.dirty());else if(s.kind==="emoji")fg||(fg=new RegExp(R8,"u")),fg.test(t.data)||(i=this._getOrReturnCtx(t,i),At(i,{validation:"emoji",code:gt.invalid_string,message:s.message}),r.dirty());else if(s.kind==="uuid")_8.test(t.data)||(i=this._getOrReturnCtx(t,i),At(i,{validation:"uuid",code:gt.invalid_string,message:s.message}),r.dirty());else if(s.kind==="nanoid")A8.test(t.data)||(i=this._getOrReturnCtx(t,i),At(i,{validation:"nanoid",code:gt.invalid_string,message:s.message}),r.dirty());else if(s.kind==="cuid")m8.test(t.data)||(i=this._getOrReturnCtx(t,i),At(i,{validation:"cuid",code:gt.invalid_string,message:s.message}),r.dirty());else if(s.kind==="cuid2")w8.test(t.data)||(i=this._getOrReturnCtx(t,i),At(i,{validation:"cuid2",code:gt.invalid_string,message:s.message}),r.dirty());else if(s.kind==="ulid")b8.test(t.data)||(i=this._getOrReturnCtx(t,i),At(i,{validation:"ulid",code:gt.invalid_string,message:s.message}),r.dirty());else if(s.kind==="url")try{new URL(t.data)}catch{i=this._getOrReturnCtx(t,i),At(i,{validation:"url",code:gt.invalid_string,message:s.message}),r.dirty()}else s.kind==="regex"?(s.regex.lastIndex=0,s.regex.test(t.data)||(i=this._getOrReturnCtx(t,i),At(i,{validation:"regex",code:gt.invalid_string,message:s.message}),r.dirty())):s.kind==="trim"?t.data=t.data.trim():s.kind==="includes"?t.data.includes(s.value,s.position)||(i=this._getOrReturnCtx(t,i),At(i,{code:gt.invalid_string,validation:{includes:s.value,position:s.position},message:s.message}),r.dirty()):s.kind==="toLowerCase"?t.data=t.data.toLowerCase():s.kind==="toUpperCase"?t.data=t.data.toUpperCase():s.kind==="startsWith"?t.data.startsWith(s.value)||(i=this._getOrReturnCtx(t,i),At(i,{code:gt.invalid_string,validation:{startsWith:s.value},message:s.message}),r.dirty()):s.kind==="endsWith"?t.data.endsWith(s.value)||(i=this._getOrReturnCtx(t,i),At(i,{code:gt.invalid_string,validation:{endsWith:s.value},message:s.message}),r.dirty()):s.kind==="datetime"?c_(s).test(t.data)||(i=this._getOrReturnCtx(t,i),At(i,{code:gt.invalid_string,validation:"datetime",message:s.message}),r.dirty()):s.kind==="date"?C8.test(t.data)||(i=this._getOrReturnCtx(t,i),At(i,{code:gt.invalid_string,validation:"date",message:s.message}),r.dirty()):s.kind==="time"?B8(s).test(t.data)||(i=this._getOrReturnCtx(t,i),At(i,{code:gt.invalid_string,validation:"time",message:s.message}),r.dirty()):s.kind==="duration"?v8.test(t.data)||(i=this._getOrReturnCtx(t,i),At(i,{validation:"duration",code:gt.invalid_string,message:s.message}),r.dirty()):s.kind==="ip"?P8(t.data,s.version)||(i=this._getOrReturnCtx(t,i),At(i,{validation:"ip",code:gt.invalid_string,message:s.message}),r.dirty()):s.kind==="jwt"?M8(t.data,s.alg)||(i=this._getOrReturnCtx(t,i),At(i,{validation:"jwt",code:gt.invalid_string,message:s.message}),r.dirty()):s.kind==="cidr"?L8(t.data,s.version)||(i=this._getOrReturnCtx(t,i),At(i,{validation:"cidr",code:gt.invalid_string,message:s.message}),r.dirty()):s.kind==="base64"?O8.test(t.data)||(i=this._getOrReturnCtx(t,i),At(i,{validation:"base64",code:gt.invalid_string,message:s.message}),r.dirty()):s.kind==="base64url"?N8.test(t.data)||(i=this._getOrReturnCtx(t,i),At(i,{validation:"base64url",code:gt.invalid_string,message:s.message}),r.dirty()):de.assertNever(s);return{status:r.value,value:t.data}}_regex(t,e,r){return this.refinement(i=>t.test(i),{validation:e,code:gt.invalid_string,...Bt.errToObj(r)})}_addCheck(t){return new li({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...Bt.errToObj(t)})}url(t){return this._addCheck({kind:"url",...Bt.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...Bt.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...Bt.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...Bt.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...Bt.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...Bt.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...Bt.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...Bt.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...Bt.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...Bt.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...Bt.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...Bt.errToObj(t)})}datetime(t){var e,r;return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof(t==null?void 0:t.precision)>"u"?null:t==null?void 0:t.precision,offset:(e=t==null?void 0:t.offset)!==null&&e!==void 0?e:!1,local:(r=t==null?void 0:t.local)!==null&&r!==void 0?r:!1,...Bt.errToObj(t==null?void 0:t.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof(t==null?void 0:t.precision)>"u"?null:t==null?void 0:t.precision,...Bt.errToObj(t==null?void 0:t.message)})}duration(t){return this._addCheck({kind:"duration",...Bt.errToObj(t)})}regex(t,e){return this._addCheck({kind:"regex",regex:t,...Bt.errToObj(e)})}includes(t,e){return this._addCheck({kind:"includes",value:t,position:e==null?void 0:e.position,...Bt.errToObj(e==null?void 0:e.message)})}startsWith(t,e){return this._addCheck({kind:"startsWith",value:t,...Bt.errToObj(e)})}endsWith(t,e){return this._addCheck({kind:"endsWith",value:t,...Bt.errToObj(e)})}min(t,e){return this._addCheck({kind:"min",value:t,...Bt.errToObj(e)})}max(t,e){return this._addCheck({kind:"max",value:t,...Bt.errToObj(e)})}length(t,e){return this._addCheck({kind:"length",value:t,...Bt.errToObj(e)})}nonempty(t){return this.min(1,Bt.errToObj(t))}trim(){return new li({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new li({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new li({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(const e of this._def.checks)e.kind==="min"&&(t===null||e.value>t)&&(t=e.value);return t}get maxLength(){let t=null;for(const e of this._def.checks)e.kind==="max"&&(t===null||e.value<t)&&(t=e.value);return t}}li.create=n=>{var t;return new li({checks:[],typeName:zt.ZodString,coerce:(t=n==null?void 0:n.coerce)!==null&&t!==void 0?t:!1,...Qt(n)})};function U8(n,t){const e=(n.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=e>r?e:r,s=parseInt(n.toFixed(i).replace(".","")),o=parseInt(t.toFixed(i).replace(".",""));return s%o/Math.pow(10,i)}class eo extends Jt{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==St.number){const s=this._getOrReturnCtx(t);return At(s,{code:gt.invalid_type,expected:St.number,received:s.parsedType}),Vt}let r;const i=new Xn;for(const s of this._def.checks)s.kind==="int"?de.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),At(r,{code:gt.invalid_type,expected:"integer",received:"float",message:s.message}),i.dirty()):s.kind==="min"?(s.inclusive?t.data<s.value:t.data<=s.value)&&(r=this._getOrReturnCtx(t,r),At(r,{code:gt.too_small,minimum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?t.data>s.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),At(r,{code:gt.too_big,maximum:s.value,type:"number",inclusive:s.inclusive,exact:!1,message:s.message}),i.dirty()):s.kind==="multipleOf"?U8(t.data,s.value)!==0&&(r=this._getOrReturnCtx(t,r),At(r,{code:gt.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):s.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),At(r,{code:gt.not_finite,message:s.message}),i.dirty()):de.assertNever(s);return{status:i.value,value:t.data}}gte(t,e){return this.setLimit("min",t,!0,Bt.toString(e))}gt(t,e){return this.setLimit("min",t,!1,Bt.toString(e))}lte(t,e){return this.setLimit("max",t,!0,Bt.toString(e))}lt(t,e){return this.setLimit("max",t,!1,Bt.toString(e))}setLimit(t,e,r,i){return new eo({...this._def,checks:[...this._def.checks,{kind:t,value:e,inclusive:r,message:Bt.toString(i)}]})}_addCheck(t){return new eo({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:Bt.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:Bt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:Bt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:Bt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:Bt.toString(t)})}multipleOf(t,e){return this._addCheck({kind:"multipleOf",value:t,message:Bt.toString(e)})}finite(t){return this._addCheck({kind:"finite",message:Bt.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:Bt.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:Bt.toString(t)})}get minValue(){let t=null;for(const e of this._def.checks)e.kind==="min"&&(t===null||e.value>t)&&(t=e.value);return t}get maxValue(){let t=null;for(const e of this._def.checks)e.kind==="max"&&(t===null||e.value<t)&&(t=e.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&de.isInteger(t.value))}get isFinite(){let t=null,e=null;for(const r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(e===null||r.value>e)&&(e=r.value):r.kind==="max"&&(t===null||r.value<t)&&(t=r.value)}return Number.isFinite(e)&&Number.isFinite(t)}}eo.create=n=>new eo({checks:[],typeName:zt.ZodNumber,coerce:(n==null?void 0:n.coerce)||!1,...Qt(n)});class no extends Jt{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==St.bigint)return this._getInvalidInput(t);let r;const i=new Xn;for(const s of this._def.checks)s.kind==="min"?(s.inclusive?t.data<s.value:t.data<=s.value)&&(r=this._getOrReturnCtx(t,r),At(r,{code:gt.too_small,type:"bigint",minimum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="max"?(s.inclusive?t.data>s.value:t.data>=s.value)&&(r=this._getOrReturnCtx(t,r),At(r,{code:gt.too_big,type:"bigint",maximum:s.value,inclusive:s.inclusive,message:s.message}),i.dirty()):s.kind==="multipleOf"?t.data%s.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),At(r,{code:gt.not_multiple_of,multipleOf:s.value,message:s.message}),i.dirty()):de.assertNever(s);return{status:i.value,value:t.data}}_getInvalidInput(t){const e=this._getOrReturnCtx(t);return At(e,{code:gt.invalid_type,expected:St.bigint,received:e.parsedType}),Vt}gte(t,e){return this.setLimit("min",t,!0,Bt.toString(e))}gt(t,e){return this.setLimit("min",t,!1,Bt.toString(e))}lte(t,e){return this.setLimit("max",t,!0,Bt.toString(e))}lt(t,e){return this.setLimit("max",t,!1,Bt.toString(e))}setLimit(t,e,r,i){return new no({...this._def,checks:[...this._def.checks,{kind:t,value:e,inclusive:r,message:Bt.toString(i)}]})}_addCheck(t){return new no({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:Bt.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:Bt.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:Bt.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:Bt.toString(t)})}multipleOf(t,e){return this._addCheck({kind:"multipleOf",value:t,message:Bt.toString(e)})}get minValue(){let t=null;for(const e of this._def.checks)e.kind==="min"&&(t===null||e.value>t)&&(t=e.value);return t}get maxValue(){let t=null;for(const e of this._def.checks)e.kind==="max"&&(t===null||e.value<t)&&(t=e.value);return t}}no.create=n=>{var t;return new no({checks:[],typeName:zt.ZodBigInt,coerce:(t=n==null?void 0:n.coerce)!==null&&t!==void 0?t:!1,...Qt(n)})};class jl extends Jt{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==St.boolean){const r=this._getOrReturnCtx(t);return At(r,{code:gt.invalid_type,expected:St.boolean,received:r.parsedType}),Vt}return lr(t.data)}}jl.create=n=>new jl({typeName:zt.ZodBoolean,coerce:(n==null?void 0:n.coerce)||!1,...Qt(n)});class aa extends Jt{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==St.date){const s=this._getOrReturnCtx(t);return At(s,{code:gt.invalid_type,expected:St.date,received:s.parsedType}),Vt}if(isNaN(t.data.getTime())){const s=this._getOrReturnCtx(t);return At(s,{code:gt.invalid_date}),Vt}const r=new Xn;let i;for(const s of this._def.checks)s.kind==="min"?t.data.getTime()<s.value&&(i=this._getOrReturnCtx(t,i),At(i,{code:gt.too_small,message:s.message,inclusive:!0,exact:!1,minimum:s.value,type:"date"}),r.dirty()):s.kind==="max"?t.data.getTime()>s.value&&(i=this._getOrReturnCtx(t,i),At(i,{code:gt.too_big,message:s.message,inclusive:!0,exact:!1,maximum:s.value,type:"date"}),r.dirty()):de.assertNever(s);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new aa({...this._def,checks:[...this._def.checks,t]})}min(t,e){return this._addCheck({kind:"min",value:t.getTime(),message:Bt.toString(e)})}max(t,e){return this._addCheck({kind:"max",value:t.getTime(),message:Bt.toString(e)})}get minDate(){let t=null;for(const e of this._def.checks)e.kind==="min"&&(t===null||e.value>t)&&(t=e.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(const e of this._def.checks)e.kind==="max"&&(t===null||e.value<t)&&(t=e.value);return t!=null?new Date(t):null}}aa.create=n=>new aa({checks:[],coerce:(n==null?void 0:n.coerce)||!1,typeName:zt.ZodDate,...Qt(n)});class Ad extends Jt{_parse(t){if(this._getType(t)!==St.symbol){const r=this._getOrReturnCtx(t);return At(r,{code:gt.invalid_type,expected:St.symbol,received:r.parsedType}),Vt}return lr(t.data)}}Ad.create=n=>new Ad({typeName:zt.ZodSymbol,...Qt(n)});class Wl extends Jt{_parse(t){if(this._getType(t)!==St.undefined){const r=this._getOrReturnCtx(t);return At(r,{code:gt.invalid_type,expected:St.undefined,received:r.parsedType}),Vt}return lr(t.data)}}Wl.create=n=>new Wl({typeName:zt.ZodUndefined,...Qt(n)});class Zl extends Jt{_parse(t){if(this._getType(t)!==St.null){const r=this._getOrReturnCtx(t);return At(r,{code:gt.invalid_type,expected:St.null,received:r.parsedType}),Vt}return lr(t.data)}}Zl.create=n=>new Zl({typeName:zt.ZodNull,...Qt(n)});class Uc extends Jt{constructor(){super(...arguments),this._any=!0}_parse(t){return lr(t.data)}}Uc.create=n=>new Uc({typeName:zt.ZodAny,...Qt(n)});class ca extends Jt{constructor(){super(...arguments),this._unknown=!0}_parse(t){return lr(t.data)}}ca.create=n=>new ca({typeName:zt.ZodUnknown,...Qt(n)});class ps extends Jt{_parse(t){const e=this._getOrReturnCtx(t);return At(e,{code:gt.invalid_type,expected:St.never,received:e.parsedType}),Vt}}ps.create=n=>new ps({typeName:zt.ZodNever,...Qt(n)});class Ed extends Jt{_parse(t){if(this._getType(t)!==St.undefined){const r=this._getOrReturnCtx(t);return At(r,{code:gt.invalid_type,expected:St.void,received:r.parsedType}),Vt}return lr(t.data)}}Ed.create=n=>new Ed({typeName:zt.ZodVoid,...Qt(n)});class fi extends Jt{_parse(t){const{ctx:e,status:r}=this._processInputParams(t),i=this._def;if(e.parsedType!==St.array)return At(e,{code:gt.invalid_type,expected:St.array,received:e.parsedType}),Vt;if(i.exactLength!==null){const o=e.data.length>i.exactLength.value,c=e.data.length<i.exactLength.value;(o||c)&&(At(e,{code:o?gt.too_big:gt.too_small,minimum:c?i.exactLength.value:void 0,maximum:o?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),r.dirty())}if(i.minLength!==null&&e.data.length<i.minLength.value&&(At(e,{code:gt.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),r.dirty()),i.maxLength!==null&&e.data.length>i.maxLength.value&&(At(e,{code:gt.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),e.common.async)return Promise.all([...e.data].map((o,c)=>i.type._parseAsync(new Ni(e,o,e.path,c)))).then(o=>Xn.mergeArray(r,o));const s=[...e.data].map((o,c)=>i.type._parseSync(new Ni(e,o,e.path,c)));return Xn.mergeArray(r,s)}get element(){return this._def.type}min(t,e){return new fi({...this._def,minLength:{value:t,message:Bt.toString(e)}})}max(t,e){return new fi({...this._def,maxLength:{value:t,message:Bt.toString(e)}})}length(t,e){return new fi({...this._def,exactLength:{value:t,message:Bt.toString(e)}})}nonempty(t){return this.min(1,t)}}fi.create=(n,t)=>new fi({type:n,minLength:null,maxLength:null,exactLength:null,typeName:zt.ZodArray,...Qt(t)});function Dc(n){if(n instanceof Je){const t={};for(const e in n.shape){const r=n.shape[e];t[e]=Bi.create(Dc(r))}return new Je({...n._def,shape:()=>t})}else return n instanceof fi?new fi({...n._def,type:Dc(n.element)}):n instanceof Bi?Bi.create(Dc(n.unwrap())):n instanceof io?io.create(Dc(n.unwrap())):n instanceof Ci?Ci.create(n.items.map(t=>Dc(t))):n}class Je extends Jt{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const t=this._def.shape(),e=de.objectKeys(t);return this._cached={shape:t,keys:e}}_parse(t){if(this._getType(t)!==St.object){const f=this._getOrReturnCtx(t);return At(f,{code:gt.invalid_type,expected:St.object,received:f.parsedType}),Vt}const{status:r,ctx:i}=this._processInputParams(t),{shape:s,keys:o}=this._getCached(),c=[];if(!(this._def.catchall instanceof ps&&this._def.unknownKeys==="strip"))for(const f in i.data)o.includes(f)||c.push(f);const u=[];for(const f of o){const h=s[f],y=i.data[f];u.push({key:{status:"valid",value:f},value:h._parse(new Ni(i,y,i.path,f)),alwaysSet:f in i.data})}if(this._def.catchall instanceof ps){const f=this._def.unknownKeys;if(f==="passthrough")for(const h of c)u.push({key:{status:"valid",value:h},value:{status:"valid",value:i.data[h]}});else if(f==="strict")c.length>0&&(At(i,{code:gt.unrecognized_keys,keys:c}),r.dirty());else if(f!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const f=this._def.catchall;for(const h of c){const y=i.data[h];u.push({key:{status:"valid",value:h},value:f._parse(new Ni(i,y,i.path,h)),alwaysSet:h in i.data})}}return i.common.async?Promise.resolve().then(async()=>{const f=[];for(const h of u){const y=await h.key,A=await h.value;f.push({key:y,value:A,alwaysSet:h.alwaysSet})}return f}).then(f=>Xn.mergeObjectSync(r,f)):Xn.mergeObjectSync(r,u)}get shape(){return this._def.shape()}strict(t){return Bt.errToObj,new Je({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(e,r)=>{var i,s,o,c;const u=(o=(s=(i=this._def).errorMap)===null||s===void 0?void 0:s.call(i,e,r).message)!==null&&o!==void 0?o:r.defaultError;return e.code==="unrecognized_keys"?{message:(c=Bt.errToObj(t).message)!==null&&c!==void 0?c:u}:{message:u}}}:{}})}strip(){return new Je({...this._def,unknownKeys:"strip"})}passthrough(){return new Je({...this._def,unknownKeys:"passthrough"})}extend(t){return new Je({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new Je({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:zt.ZodObject})}setKey(t,e){return this.augment({[t]:e})}catchall(t){return new Je({...this._def,catchall:t})}pick(t){const e={};return de.objectKeys(t).forEach(r=>{t[r]&&this.shape[r]&&(e[r]=this.shape[r])}),new Je({...this._def,shape:()=>e})}omit(t){const e={};return de.objectKeys(this.shape).forEach(r=>{t[r]||(e[r]=this.shape[r])}),new Je({...this._def,shape:()=>e})}deepPartial(){return Dc(this)}partial(t){const e={};return de.objectKeys(this.shape).forEach(r=>{const i=this.shape[r];t&&!t[r]?e[r]=i:e[r]=i.optional()}),new Je({...this._def,shape:()=>e})}required(t){const e={};return de.objectKeys(this.shape).forEach(r=>{if(t&&!t[r])e[r]=this.shape[r];else{let s=this.shape[r];for(;s instanceof Bi;)s=s._def.innerType;e[r]=s}}),new Je({...this._def,shape:()=>e})}keyof(){return u_(de.objectKeys(this.shape))}}Je.create=(n,t)=>new Je({shape:()=>n,unknownKeys:"strip",catchall:ps.create(),typeName:zt.ZodObject,...Qt(t)}),Je.strictCreate=(n,t)=>new Je({shape:()=>n,unknownKeys:"strict",catchall:ps.create(),typeName:zt.ZodObject,...Qt(t)}),Je.lazycreate=(n,t)=>new Je({shape:n,unknownKeys:"strip",catchall:ps.create(),typeName:zt.ZodObject,...Qt(t)});class ql extends Jt{_parse(t){const{ctx:e}=this._processInputParams(t),r=this._def.options;function i(s){for(const c of s)if(c.result.status==="valid")return c.result;for(const c of s)if(c.result.status==="dirty")return e.common.issues.push(...c.ctx.common.issues),c.result;const o=s.map(c=>new Pr(c.ctx.common.issues));return At(e,{code:gt.invalid_union,unionErrors:o}),Vt}if(e.common.async)return Promise.all(r.map(async s=>{const o={...e,common:{...e.common,issues:[]},parent:null};return{result:await s._parseAsync({data:e.data,path:e.path,parent:o}),ctx:o}})).then(i);{let s;const o=[];for(const u of r){const f={...e,common:{...e.common,issues:[]},parent:null},h=u._parseSync({data:e.data,path:e.path,parent:f});if(h.status==="valid")return h;h.status==="dirty"&&!s&&(s={result:h,ctx:f}),f.common.issues.length&&o.push(f.common.issues)}if(s)return e.common.issues.push(...s.ctx.common.issues),s.result;const c=o.map(u=>new Pr(u));return At(e,{code:gt.invalid_union,unionErrors:c}),Vt}}get options(){return this._def.options}}ql.create=(n,t)=>new ql({options:n,typeName:zt.ZodUnion,...Qt(t)});const gs=n=>n instanceof Jl?gs(n.schema):n instanceof hi?gs(n.innerType()):n instanceof Xl?[n.value]:n instanceof ro?n.options:n instanceof tf?de.objectValues(n.enum):n instanceof ef?gs(n._def.innerType):n instanceof Wl?[void 0]:n instanceof Zl?[null]:n instanceof Bi?[void 0,...gs(n.unwrap())]:n instanceof io?[null,...gs(n.unwrap())]:n instanceof dg||n instanceof sf?gs(n.unwrap()):n instanceof nf?gs(n._def.innerType):[];class vd extends Jt{_parse(t){const{ctx:e}=this._processInputParams(t);if(e.parsedType!==St.object)return At(e,{code:gt.invalid_type,expected:St.object,received:e.parsedType}),Vt;const r=this.discriminator,i=e.data[r],s=this.optionsMap.get(i);return s?e.common.async?s._parseAsync({data:e.data,path:e.path,parent:e}):s._parseSync({data:e.data,path:e.path,parent:e}):(At(e,{code:gt.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),Vt)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,e,r){const i=new Map;for(const s of e){const o=gs(s.shape[t]);if(!o.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(const c of o){if(i.has(c))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(c)}`);i.set(c,s)}}return new vd({typeName:zt.ZodDiscriminatedUnion,discriminator:t,options:e,optionsMap:i,...Qt(r)})}}function hg(n,t){const e=ds(n),r=ds(t);if(n===t)return{valid:!0,data:n};if(e===St.object&&r===St.object){const i=de.objectKeys(t),s=de.objectKeys(n).filter(c=>i.indexOf(c)!==-1),o={...n,...t};for(const c of s){const u=hg(n[c],t[c]);if(!u.valid)return{valid:!1};o[c]=u.data}return{valid:!0,data:o}}else if(e===St.array&&r===St.array){if(n.length!==t.length)return{valid:!1};const i=[];for(let s=0;s<n.length;s++){const o=n[s],c=t[s],u=hg(o,c);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return e===St.date&&r===St.date&&+n==+t?{valid:!0,data:n}:{valid:!1}}class Ql extends Jt{_parse(t){const{status:e,ctx:r}=this._processInputParams(t),i=(s,o)=>{if(ug(s)||ug(o))return Vt;const c=hg(s.value,o.value);return c.valid?((lg(s)||lg(o))&&e.dirty(),{status:e.value,value:c.data}):(At(r,{code:gt.invalid_intersection_types}),Vt)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([s,o])=>i(s,o)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}}Ql.create=(n,t,e)=>new Ql({left:n,right:t,typeName:zt.ZodIntersection,...Qt(e)});class Ci extends Jt{_parse(t){const{status:e,ctx:r}=this._processInputParams(t);if(r.parsedType!==St.array)return At(r,{code:gt.invalid_type,expected:St.array,received:r.parsedType}),Vt;if(r.data.length<this._def.items.length)return At(r,{code:gt.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),Vt;!this._def.rest&&r.data.length>this._def.items.length&&(At(r,{code:gt.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),e.dirty());const s=[...r.data].map((o,c)=>{const u=this._def.items[c]||this._def.rest;return u?u._parse(new Ni(r,o,r.path,c)):null}).filter(o=>!!o);return r.common.async?Promise.all(s).then(o=>Xn.mergeArray(e,o)):Xn.mergeArray(e,s)}get items(){return this._def.items}rest(t){return new Ci({...this._def,rest:t})}}Ci.create=(n,t)=>{if(!Array.isArray(n))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ci({items:n,typeName:zt.ZodTuple,rest:null,...Qt(t)})};class Yl extends Jt{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:e,ctx:r}=this._processInputParams(t);if(r.parsedType!==St.object)return At(r,{code:gt.invalid_type,expected:St.object,received:r.parsedType}),Vt;const i=[],s=this._def.keyType,o=this._def.valueType;for(const c in r.data)i.push({key:s._parse(new Ni(r,c,r.path,c)),value:o._parse(new Ni(r,r.data[c],r.path,c)),alwaysSet:c in r.data});return r.common.async?Xn.mergeObjectAsync(e,i):Xn.mergeObjectSync(e,i)}get element(){return this._def.valueType}static create(t,e,r){return e instanceof Jt?new Yl({keyType:t,valueType:e,typeName:zt.ZodRecord,...Qt(r)}):new Yl({keyType:li.create(),valueType:t,typeName:zt.ZodRecord,...Qt(e)})}}class xd extends Jt{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){const{status:e,ctx:r}=this._processInputParams(t);if(r.parsedType!==St.map)return At(r,{code:gt.invalid_type,expected:St.map,received:r.parsedType}),Vt;const i=this._def.keyType,s=this._def.valueType,o=[...r.data.entries()].map(([c,u],f)=>({key:i._parse(new Ni(r,c,r.path,[f,"key"])),value:s._parse(new Ni(r,u,r.path,[f,"value"]))}));if(r.common.async){const c=new Map;return Promise.resolve().then(async()=>{for(const u of o){const f=await u.key,h=await u.value;if(f.status==="aborted"||h.status==="aborted")return Vt;(f.status==="dirty"||h.status==="dirty")&&e.dirty(),c.set(f.value,h.value)}return{status:e.value,value:c}})}else{const c=new Map;for(const u of o){const f=u.key,h=u.value;if(f.status==="aborted"||h.status==="aborted")return Vt;(f.status==="dirty"||h.status==="dirty")&&e.dirty(),c.set(f.value,h.value)}return{status:e.value,value:c}}}}xd.create=(n,t,e)=>new xd({valueType:t,keyType:n,typeName:zt.ZodMap,...Qt(e)});class ua extends Jt{_parse(t){const{status:e,ctx:r}=this._processInputParams(t);if(r.parsedType!==St.set)return At(r,{code:gt.invalid_type,expected:St.set,received:r.parsedType}),Vt;const i=this._def;i.minSize!==null&&r.data.size<i.minSize.value&&(At(r,{code:gt.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),e.dirty()),i.maxSize!==null&&r.data.size>i.maxSize.value&&(At(r,{code:gt.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),e.dirty());const s=this._def.valueType;function o(u){const f=new Set;for(const h of u){if(h.status==="aborted")return Vt;h.status==="dirty"&&e.dirty(),f.add(h.value)}return{status:e.value,value:f}}const c=[...r.data.values()].map((u,f)=>s._parse(new Ni(r,u,r.path,f)));return r.common.async?Promise.all(c).then(u=>o(u)):o(c)}min(t,e){return new ua({...this._def,minSize:{value:t,message:Bt.toString(e)}})}max(t,e){return new ua({...this._def,maxSize:{value:t,message:Bt.toString(e)}})}size(t,e){return this.min(t,e).max(t,e)}nonempty(t){return this.min(1,t)}}ua.create=(n,t)=>new ua({valueType:n,minSize:null,maxSize:null,typeName:zt.ZodSet,...Qt(t)});class Fc extends Jt{constructor(){super(...arguments),this.validate=this.implement}_parse(t){const{ctx:e}=this._processInputParams(t);if(e.parsedType!==St.function)return At(e,{code:gt.invalid_type,expected:St.function,received:e.parsedType}),Vt;function r(c,u){return bd({data:c,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,wd(),Mc].filter(f=>!!f),issueData:{code:gt.invalid_arguments,argumentsError:u}})}function i(c,u){return bd({data:c,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,wd(),Mc].filter(f=>!!f),issueData:{code:gt.invalid_return_type,returnTypeError:u}})}const s={errorMap:e.common.contextualErrorMap},o=e.data;if(this._def.returns instanceof $c){const c=this;return lr(async function(...u){const f=new Pr([]),h=await c._def.args.parseAsync(u,s).catch(b=>{throw f.addIssue(r(u,b)),f}),y=await Reflect.apply(o,this,h);return await c._def.returns._def.type.parseAsync(y,s).catch(b=>{throw f.addIssue(i(y,b)),f})})}else{const c=this;return lr(function(...u){const f=c._def.args.safeParse(u,s);if(!f.success)throw new Pr([r(u,f.error)]);const h=Reflect.apply(o,this,f.data),y=c._def.returns.safeParse(h,s);if(!y.success)throw new Pr([i(h,y.error)]);return y.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new Fc({...this._def,args:Ci.create(t).rest(ca.create())})}returns(t){return new Fc({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,e,r){return new Fc({args:t||Ci.create([]).rest(ca.create()),returns:e||ca.create(),typeName:zt.ZodFunction,...Qt(r)})}}class Jl extends Jt{get schema(){return this._def.getter()}_parse(t){const{ctx:e}=this._processInputParams(t);return this._def.getter()._parse({data:e.data,path:e.path,parent:e})}}Jl.create=(n,t)=>new Jl({getter:n,typeName:zt.ZodLazy,...Qt(t)});class Xl extends Jt{_parse(t){if(t.data!==this._def.value){const e=this._getOrReturnCtx(t);return At(e,{received:e.data,code:gt.invalid_literal,expected:this._def.value}),Vt}return{status:"valid",value:t.data}}get value(){return this._def.value}}Xl.create=(n,t)=>new Xl({value:n,typeName:zt.ZodLiteral,...Qt(t)});function u_(n,t){return new ro({values:n,typeName:zt.ZodEnum,...Qt(t)})}class ro extends Jt{constructor(){super(...arguments),Vl.set(this,void 0)}_parse(t){if(typeof t.data!="string"){const e=this._getOrReturnCtx(t),r=this._def.values;return At(e,{expected:de.joinValues(r),received:e.parsedType,code:gt.invalid_type}),Vt}if(_d(this,Vl)||i_(this,Vl,new Set(this._def.values)),!_d(this,Vl).has(t.data)){const e=this._getOrReturnCtx(t),r=this._def.values;return At(e,{received:e.data,code:gt.invalid_enum_value,options:r}),Vt}return lr(t.data)}get options(){return this._def.values}get enum(){const t={};for(const e of this._def.values)t[e]=e;return t}get Values(){const t={};for(const e of this._def.values)t[e]=e;return t}get Enum(){const t={};for(const e of this._def.values)t[e]=e;return t}extract(t,e=this._def){return ro.create(t,{...this._def,...e})}exclude(t,e=this._def){return ro.create(this.options.filter(r=>!t.includes(r)),{...this._def,...e})}}Vl=new WeakMap,ro.create=u_;class tf extends Jt{constructor(){super(...arguments),Kl.set(this,void 0)}_parse(t){const e=de.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==St.string&&r.parsedType!==St.number){const i=de.objectValues(e);return At(r,{expected:de.joinValues(i),received:r.parsedType,code:gt.invalid_type}),Vt}if(_d(this,Kl)||i_(this,Kl,new Set(de.getValidEnumValues(this._def.values))),!_d(this,Kl).has(t.data)){const i=de.objectValues(e);return At(r,{received:r.data,code:gt.invalid_enum_value,options:i}),Vt}return lr(t.data)}get enum(){return this._def.values}}Kl=new WeakMap,tf.create=(n,t)=>new tf({values:n,typeName:zt.ZodNativeEnum,...Qt(t)});class $c extends Jt{unwrap(){return this._def.type}_parse(t){const{ctx:e}=this._processInputParams(t);if(e.parsedType!==St.promise&&e.common.async===!1)return At(e,{code:gt.invalid_type,expected:St.promise,received:e.parsedType}),Vt;const r=e.parsedType===St.promise?e.data:Promise.resolve(e.data);return lr(r.then(i=>this._def.type.parseAsync(i,{path:e.path,errorMap:e.common.contextualErrorMap})))}}$c.create=(n,t)=>new $c({type:n,typeName:zt.ZodPromise,...Qt(t)});class hi extends Jt{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===zt.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){const{status:e,ctx:r}=this._processInputParams(t),i=this._def.effect||null,s={addIssue:o=>{At(r,o),o.fatal?e.abort():e.dirty()},get path(){return r.path}};if(s.addIssue=s.addIssue.bind(s),i.type==="preprocess"){const o=i.transform(r.data,s);if(r.common.async)return Promise.resolve(o).then(async c=>{if(e.value==="aborted")return Vt;const u=await this._def.schema._parseAsync({data:c,path:r.path,parent:r});return u.status==="aborted"?Vt:u.status==="dirty"||e.value==="dirty"?Lc(u.value):u});{if(e.value==="aborted")return Vt;const c=this._def.schema._parseSync({data:o,path:r.path,parent:r});return c.status==="aborted"?Vt:c.status==="dirty"||e.value==="dirty"?Lc(c.value):c}}if(i.type==="refinement"){const o=c=>{const u=i.refinement(c,s);if(r.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return c};if(r.common.async===!1){const c=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return c.status==="aborted"?Vt:(c.status==="dirty"&&e.dirty(),o(c.value),{status:e.value,value:c.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(c=>c.status==="aborted"?Vt:(c.status==="dirty"&&e.dirty(),o(c.value).then(()=>({status:e.value,value:c.value}))))}if(i.type==="transform")if(r.common.async===!1){const o=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!oa(o))return o;const c=i.transform(o.value,s);if(c instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:e.value,value:c}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(o=>oa(o)?Promise.resolve(i.transform(o.value,s)).then(c=>({status:e.value,value:c})):o);de.assertNever(i)}}hi.create=(n,t,e)=>new hi({schema:n,typeName:zt.ZodEffects,effect:t,...Qt(e)}),hi.createWithPreprocess=(n,t,e)=>new hi({schema:t,effect:{type:"preprocess",transform:n},typeName:zt.ZodEffects,...Qt(e)});class Bi extends Jt{_parse(t){return this._getType(t)===St.undefined?lr(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}Bi.create=(n,t)=>new Bi({innerType:n,typeName:zt.ZodOptional,...Qt(t)});class io extends Jt{_parse(t){return this._getType(t)===St.null?lr(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}}io.create=(n,t)=>new io({innerType:n,typeName:zt.ZodNullable,...Qt(t)});class ef extends Jt{_parse(t){const{ctx:e}=this._processInputParams(t);let r=e.data;return e.parsedType===St.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:e.path,parent:e})}removeDefault(){return this._def.innerType}}ef.create=(n,t)=>new ef({innerType:n,typeName:zt.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...Qt(t)});class nf extends Jt{_parse(t){const{ctx:e}=this._processInputParams(t),r={...e,common:{...e.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Gl(i)?i.then(s=>({status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new Pr(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new Pr(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}}nf.create=(n,t)=>new nf({innerType:n,typeName:zt.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...Qt(t)});class Rd extends Jt{_parse(t){if(this._getType(t)!==St.nan){const r=this._getOrReturnCtx(t);return At(r,{code:gt.invalid_type,expected:St.nan,received:r.parsedType}),Vt}return{status:"valid",value:t.data}}}Rd.create=n=>new Rd({typeName:zt.ZodNaN,...Qt(n)});const D8=Symbol("zod_brand");class dg extends Jt{_parse(t){const{ctx:e}=this._processInputParams(t),r=e.data;return this._def.type._parse({data:r,path:e.path,parent:e})}unwrap(){return this._def.type}}class rf extends Jt{_parse(t){const{status:e,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{const s=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?Vt:s.status==="dirty"?(e.dirty(),Lc(s.value)):this._def.out._parseAsync({data:s.value,path:r.path,parent:r})})();{const i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?Vt:i.status==="dirty"?(e.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(t,e){return new rf({in:t,out:e,typeName:zt.ZodPipeline})}}class sf extends Jt{_parse(t){const e=this._def.innerType._parse(t),r=i=>(oa(i)&&(i.value=Object.freeze(i.value)),i);return Gl(e)?e.then(i=>r(i)):r(e)}unwrap(){return this._def.innerType}}sf.create=(n,t)=>new sf({innerType:n,typeName:zt.ZodReadonly,...Qt(t)});function l_(n,t={},e){return n?Uc.create().superRefine((r,i)=>{var s,o;if(!n(r)){const c=typeof t=="function"?t(r):typeof t=="string"?{message:t}:t,u=(o=(s=c.fatal)!==null&&s!==void 0?s:e)!==null&&o!==void 0?o:!0,f=typeof c=="string"?{message:c}:c;i.addIssue({code:"custom",...f,fatal:u})}}):Uc.create()}const F8={object:Je.lazycreate};var zt;(function(n){n.ZodString="ZodString",n.ZodNumber="ZodNumber",n.ZodNaN="ZodNaN",n.ZodBigInt="ZodBigInt",n.ZodBoolean="ZodBoolean",n.ZodDate="ZodDate",n.ZodSymbol="ZodSymbol",n.ZodUndefined="ZodUndefined",n.ZodNull="ZodNull",n.ZodAny="ZodAny",n.ZodUnknown="ZodUnknown",n.ZodNever="ZodNever",n.ZodVoid="ZodVoid",n.ZodArray="ZodArray",n.ZodObject="ZodObject",n.ZodUnion="ZodUnion",n.ZodDiscriminatedUnion="ZodDiscriminatedUnion",n.ZodIntersection="ZodIntersection",n.ZodTuple="ZodTuple",n.ZodRecord="ZodRecord",n.ZodMap="ZodMap",n.ZodSet="ZodSet",n.ZodFunction="ZodFunction",n.ZodLazy="ZodLazy",n.ZodLiteral="ZodLiteral",n.ZodEnum="ZodEnum",n.ZodEffects="ZodEffects",n.ZodNativeEnum="ZodNativeEnum",n.ZodOptional="ZodOptional",n.ZodNullable="ZodNullable",n.ZodDefault="ZodDefault",n.ZodCatch="ZodCatch",n.ZodPromise="ZodPromise",n.ZodBranded="ZodBranded",n.ZodPipeline="ZodPipeline",n.ZodReadonly="ZodReadonly"})(zt||(zt={}));const $8=(n,t={message:`Input not instance of ${n.name}`})=>l_(e=>e instanceof n,t),f_=li.create,h_=eo.create,H8=Rd.create,z8=no.create,d_=jl.create,G8=aa.create,V8=Ad.create,K8=Wl.create,j8=Zl.create,W8=Uc.create,Z8=ca.create,q8=ps.create,Q8=Ed.create,Y8=fi.create,J8=Je.create,X8=Je.strictCreate,t5=ql.create,e5=vd.create,n5=Ql.create,r5=Ci.create,i5=Yl.create,s5=xd.create,o5=ua.create,a5=Fc.create,c5=Jl.create,u5=Xl.create,l5=ro.create,f5=tf.create,h5=$c.create,p_=hi.create,d5=Bi.create,p5=io.create,g5=hi.createWithPreprocess,y5=rf.create;var so=Object.freeze({__proto__:null,defaultErrorMap:Mc,setErrorMap:g8,getErrorMap:wd,makeIssue:bd,EMPTY_PATH:y8,addIssueToContext:At,ParseStatus:Xn,INVALID:Vt,DIRTY:Lc,OK:lr,isAborted:ug,isDirty:lg,isValid:oa,isAsync:Gl,get util(){return de},get objectUtil(){return cg},ZodParsedType:St,getParsedType:ds,ZodType:Jt,datetimeRegex:c_,ZodString:li,ZodNumber:eo,ZodBigInt:no,ZodBoolean:jl,ZodDate:aa,ZodSymbol:Ad,ZodUndefined:Wl,ZodNull:Zl,ZodAny:Uc,ZodUnknown:ca,ZodNever:ps,ZodVoid:Ed,ZodArray:fi,ZodObject:Je,ZodUnion:ql,ZodDiscriminatedUnion:vd,ZodIntersection:Ql,ZodTuple:Ci,ZodRecord:Yl,ZodMap:xd,ZodSet:ua,ZodFunction:Fc,ZodLazy:Jl,ZodLiteral:Xl,ZodEnum:ro,ZodNativeEnum:tf,ZodPromise:$c,ZodEffects:hi,ZodTransformer:hi,ZodOptional:Bi,ZodNullable:io,ZodDefault:ef,ZodCatch:nf,ZodNaN:Rd,BRAND:D8,ZodBranded:dg,ZodPipeline:rf,ZodReadonly:sf,custom:l_,Schema:Jt,ZodSchema:Jt,late:F8,get ZodFirstPartyTypeKind(){return zt},coerce:{string:n=>li.create({...n,coerce:!0}),number:n=>eo.create({...n,coerce:!0}),boolean:n=>jl.create({...n,coerce:!0}),bigint:n=>no.create({...n,coerce:!0}),date:n=>aa.create({...n,coerce:!0})},any:W8,array:Y8,bigint:z8,boolean:d_,date:G8,discriminatedUnion:e5,effect:p_,enum:l5,function:a5,instanceof:$8,intersection:n5,lazy:c5,literal:u5,map:s5,nan:H8,nativeEnum:f5,never:q8,null:j8,nullable:p5,number:h_,object:J8,oboolean:()=>d_().optional(),onumber:()=>h_().optional(),optional:d5,ostring:()=>f_().optional(),pipeline:y5,preprocess:g5,promise:h5,record:i5,set:o5,strictObject:X8,string:f_,symbol:V8,transformer:p_,tuple:r5,undefined:K8,union:t5,unknown:Z8,void:Q8,NEVER:Vt,ZodIssueCode:gt,quotelessJson:p8,ZodError:Pr});const pg=Oi.getInstance(),g_=so.object({username:so.string(),address:so.string(),timestamp:so.number(),index:so.number(),signature:so.string()}),m5=so.object({topic:so.string(),messageSender:g_});function w5(n){const t=m5.safeParse(n);return t.success?n.messageSender&&!b5(n.messageSender)?(console.warn("Invalid messageSender"),!1):!0:(pg.warn(t.error.format()),!1)}function b5(n){const t=g_.safeParse(n);return t.success?_5(n):(pg.warn(t.error.format()),!1)}function _5(n){try{const t={username:n.username,address:n.address,timestamp:n.timestamp},e=new TextEncoder,r=Jn.concatBytes(e.encode(`Ethereum Signed Message:
|
|
11
|
+
32`),Jn.keccak256(e.encode(JSON.stringify(t))));if(new xt.Signature(n.signature).isValid(r,n.address))throw new Error("Signature verification failed!");return!0}catch(t){return pg.warn("Error in validateUserSignature",t),!1}}async function A5(n){const{condition:t,broadcast:e,maxRetries:r=2,initialDelayMs:i=2e3,checkIntervalMs:s=1e3,checkCount:o=10}=n;return new Promise((c,u)=>{let f=0;const h=async()=>{await ag(i);for(let y=0;y<o;y++){if(await Promise.resolve(t()))return c();await ag(s)}if(++f>=r)return u(new Error("Broadcast wait timeout"));console.warn(`Retrying broadcast... Attempt ${f} of ${r}`),await e(),h()};console.log("Starting broadcast..."),e().then(()=>h()).catch(u)})}const Mr={LOADING_INIT:"loadingInit",LOADING_PREVIOUS_MESSAGES:"loadingPreviousMessages",MESSAGE_RECEIVED:"messageReceived",MESSAGE_REQUEST_INITIATED:"messageRequestInitiated",MESSAGE_REQUEST_UPLOADED:"messageRequestUploaded",MESSAGE_REQUEST_ERROR:"messageRequestError",CRITICAL_ERROR:"criticalError"},E5=1e3;class v5{constructor(t,e){this.utils=t,this.emitter=e,this.logger=Oi.getInstance(),this.errorHandler=new md,this.historyIndex=null}async init(){try{const t=await this.utils.fetchLatestChatMessage();this.historyIndex=t.index,await this.fetchPreviousMessages()}catch(t){this.errorHandler.handleError(t,"SwarmHistory.init")}}async fetchPreviousMessages(t=10){try{if(!this.historyIndex){this.logger.warn("History index is not set. Cannot fetch previous messages.");return}if(this.historyIndex.toBigInt()===0n){this.logger.warn("No previous messages to fetch.");return}const e=this.historyIndex.toBigInt(),r=e>BigInt(t)?e-BigInt(t):0n;for(let i=e-1n;i>=r;i--){const s=await this.utils.fetchChatMessage(xt.FeedIndex.fromBigInt(i));if(this.emitter.emit(Mr.MESSAGE_RECEIVED,s),this.historyIndex=xt.FeedIndex.fromBigInt(i),i===0n)break}}catch(e){this.errorHandler.handleError(e,"SwarmHistory.fetchPreviousMessages")}}}const Hc=globalThis||void 0||self;var gg={},Sd={};Sd.byteLength=S5,Sd.toByteArray=k5,Sd.fromByteArray=N5;for(var Pi=[],qr=[],x5=typeof Uint8Array<"u"?Uint8Array:Array,yg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",zc=0,R5=yg.length;zc<R5;++zc)Pi[zc]=yg[zc],qr[yg.charCodeAt(zc)]=zc;qr[45]=62,qr[95]=63;function y_(n){var t=n.length;if(t%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var e=n.indexOf("=");e===-1&&(e=t);var r=e===t?0:4-e%4;return[e,r]}function S5(n){var t=y_(n),e=t[0],r=t[1];return(e+r)*3/4-r}function I5(n,t,e){return(t+e)*3/4-e}function k5(n){var t,e=y_(n),r=e[0],i=e[1],s=new x5(I5(n,r,i)),o=0,c=i>0?r-4:r,u;for(u=0;u<c;u+=4)t=qr[n.charCodeAt(u)]<<18|qr[n.charCodeAt(u+1)]<<12|qr[n.charCodeAt(u+2)]<<6|qr[n.charCodeAt(u+3)],s[o++]=t>>16&255,s[o++]=t>>8&255,s[o++]=t&255;return i===2&&(t=qr[n.charCodeAt(u)]<<2|qr[n.charCodeAt(u+1)]>>4,s[o++]=t&255),i===1&&(t=qr[n.charCodeAt(u)]<<10|qr[n.charCodeAt(u+1)]<<4|qr[n.charCodeAt(u+2)]>>2,s[o++]=t>>8&255,s[o++]=t&255),s}function T5(n){return Pi[n>>18&63]+Pi[n>>12&63]+Pi[n>>6&63]+Pi[n&63]}function O5(n,t,e){for(var r,i=[],s=t;s<e;s+=3)r=(n[s]<<16&16711680)+(n[s+1]<<8&65280)+(n[s+2]&255),i.push(T5(r));return i.join("")}function N5(n){for(var t,e=n.length,r=e%3,i=[],s=16383,o=0,c=e-r;o<c;o+=s)i.push(O5(n,o,o+s>c?c:o+s));return r===1?(t=n[e-1],i.push(Pi[t>>2]+Pi[t<<4&63]+"==")):r===2&&(t=(n[e-2]<<8)+n[e-1],i.push(Pi[t>>10]+Pi[t>>4&63]+Pi[t<<2&63]+"=")),i.join("")}var mg={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */mg.read=function(n,t,e,r,i){var s,o,c=i*8-r-1,u=(1<<c)-1,f=u>>1,h=-7,y=e?i-1:0,A=e?-1:1,b=n[t+y];for(y+=A,s=b&(1<<-h)-1,b>>=-h,h+=c;h>0;s=s*256+n[t+y],y+=A,h-=8);for(o=s&(1<<-h)-1,s>>=-h,h+=r;h>0;o=o*256+n[t+y],y+=A,h-=8);if(s===0)s=1-f;else{if(s===u)return o?NaN:(b?-1:1)*(1/0);o=o+Math.pow(2,r),s=s-f}return(b?-1:1)*o*Math.pow(2,s-r)},mg.write=function(n,t,e,r,i,s){var o,c,u,f=s*8-i-1,h=(1<<f)-1,y=h>>1,A=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,b=r?0:s-1,R=r?1:-1,k=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(c=isNaN(t)?1:0,o=h):(o=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-o))<1&&(o--,u*=2),o+y>=1?t+=A/u:t+=A*Math.pow(2,1-y),t*u>=2&&(o++,u/=2),o+y>=h?(c=0,o=h):o+y>=1?(c=(t*u-1)*Math.pow(2,i),o=o+y):(c=t*Math.pow(2,y-1)*Math.pow(2,i),o=0));i>=8;n[e+b]=c&255,b+=R,c/=256,i-=8);for(o=o<<i|c,f+=i;f>0;n[e+b]=o&255,b+=R,o/=256,f-=8);n[e+b-R]|=k*128};/*!
|
|
14
12
|
* The buffer module from node.js, for the browser.
|
|
15
13
|
*
|
|
16
14
|
* @author Feross Aboukhadijeh <https://feross.org>
|
|
17
15
|
* @license MIT
|
|
18
|
-
*/(function(r){const e=t0,t=Ly,n=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;r.Buffer=h,r.SlowBuffer=V,r.INSPECT_MAX_BYTES=50;const i=2147483647;r.kMaxLength=i;const{Uint8Array:s,ArrayBuffer:o,SharedArrayBuffer:a}=globalThis;h.TYPED_ARRAY_SUPPORT=u(),!h.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function u(){try{const N=new s(1),_={foo:function(){return 42}};return Object.setPrototypeOf(_,s.prototype),Object.setPrototypeOf(N,_),N.foo()===42}catch{return!1}}Object.defineProperty(h.prototype,"parent",{enumerable:!0,get:function(){if(h.isBuffer(this))return this.buffer}}),Object.defineProperty(h.prototype,"offset",{enumerable:!0,get:function(){if(h.isBuffer(this))return this.byteOffset}});function l(N){if(N>i)throw new RangeError('The value "'+N+'" is invalid for option "size"');const _=new s(N);return Object.setPrototypeOf(_,h.prototype),_}function h(N,_,v){if(typeof N=="number"){if(typeof _=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return I(N)}return g(N,_,v)}h.poolSize=8192;function g(N,_,v){if(typeof N=="string")return S(N,_);if(o.isView(N))return C(N);if(N==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof N);if(or(N,o)||N&&or(N.buffer,o)||typeof a<"u"&&(or(N,a)||N&&or(N.buffer,a)))return H(N,_,v);if(typeof N=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const $=N.valueOf&&N.valueOf();if($!=null&&$!==N)return h.from($,_,v);const j=D(N);if(j)return j;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof N[Symbol.toPrimitive]=="function")return h.from(N[Symbol.toPrimitive]("string"),_,v);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof N)}h.from=function(N,_,v){return g(N,_,v)},Object.setPrototypeOf(h.prototype,s.prototype),Object.setPrototypeOf(h,s);function b(N){if(typeof N!="number")throw new TypeError('"size" argument must be of type number');if(N<0)throw new RangeError('The value "'+N+'" is invalid for option "size"')}function w(N,_,v){return b(N),N<=0?l(N):_!==void 0?typeof v=="string"?l(N).fill(_,v):l(N).fill(_):l(N)}h.alloc=function(N,_,v){return w(N,_,v)};function I(N){return b(N),l(N<0?0:z(N)|0)}h.allocUnsafe=function(N){return I(N)},h.allocUnsafeSlow=function(N){return I(N)};function S(N,_){if((typeof _!="string"||_==="")&&(_="utf8"),!h.isEncoding(_))throw new TypeError("Unknown encoding: "+_);const v=Z(N,_)|0;let $=l(v);const j=$.write(N,_);return j!==v&&($=$.slice(0,j)),$}function x(N){const _=N.length<0?0:z(N.length)|0,v=l(_);for(let $=0;$<_;$+=1)v[$]=N[$]&255;return v}function C(N){if(or(N,s)){const _=new s(N);return H(_.buffer,_.byteOffset,_.byteLength)}return x(N)}function H(N,_,v){if(_<0||N.byteLength<_)throw new RangeError('"offset" is outside of buffer bounds');if(N.byteLength<_+(v||0))throw new RangeError('"length" is outside of buffer bounds');let $;return _===void 0&&v===void 0?$=new s(N):v===void 0?$=new s(N,_):$=new s(N,_,v),Object.setPrototypeOf($,h.prototype),$}function D(N){if(h.isBuffer(N)){const _=z(N.length)|0,v=l(_);return v.length===0||N.copy(v,0,0,_),v}if(N.length!==void 0)return typeof N.length!="number"||xt(N.length)?l(0):x(N);if(N.type==="Buffer"&&Array.isArray(N.data))return x(N.data)}function z(N){if(N>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return N|0}function V(N){return+N!=N&&(N=0),h.alloc(+N)}h.isBuffer=function(_){return _!=null&&_._isBuffer===!0&&_!==h.prototype},h.compare=function(_,v){if(or(_,s)&&(_=h.from(_,_.offset,_.byteLength)),or(v,s)&&(v=h.from(v,v.offset,v.byteLength)),!h.isBuffer(_)||!h.isBuffer(v))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(_===v)return 0;let $=_.length,j=v.length;for(let Y=0,ae=Math.min($,j);Y<ae;++Y)if(_[Y]!==v[Y]){$=_[Y],j=v[Y];break}return $<j?-1:j<$?1:0},h.isEncoding=function(_){switch(String(_).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},h.concat=function(_,v){if(!Array.isArray(_))throw new TypeError('"list" argument must be an Array of Buffers');if(_.length===0)return h.alloc(0);let $;if(v===void 0)for(v=0,$=0;$<_.length;++$)v+=_[$].length;const j=h.allocUnsafe(v);let Y=0;for($=0;$<_.length;++$){let ae=_[$];if(or(ae,s))Y+ae.length>j.length?(h.isBuffer(ae)||(ae=h.from(ae)),ae.copy(j,Y)):s.prototype.set.call(j,ae,Y);else if(h.isBuffer(ae))ae.copy(j,Y);else throw new TypeError('"list" argument must be an Array of Buffers');Y+=ae.length}return j};function Z(N,_){if(h.isBuffer(N))return N.length;if(o.isView(N)||or(N,o))return N.byteLength;if(typeof N!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof N);const v=N.length,$=arguments.length>2&&arguments[2]===!0;if(!$&&v===0)return 0;let j=!1;for(;;)switch(_){case"ascii":case"latin1":case"binary":return v;case"utf8":case"utf-8":return It(N).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return v*2;case"hex":return v>>>1;case"base64":return pt(N).length;default:if(j)return $?-1:It(N).length;_=(""+_).toLowerCase(),j=!0}}h.byteLength=Z;function K(N,_,v){let $=!1;if((_===void 0||_<0)&&(_=0),_>this.length||((v===void 0||v>this.length)&&(v=this.length),v<=0)||(v>>>=0,_>>>=0,v<=_))return"";for(N||(N="utf8");;)switch(N){case"hex":return A(this,_,v);case"utf8":case"utf-8":return k(this,_,v);case"ascii":return G(this,_,v);case"latin1":case"binary":return P(this,_,v);case"base64":return E(this,_,v);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return U(this,_,v);default:if($)throw new TypeError("Unknown encoding: "+N);N=(N+"").toLowerCase(),$=!0}}h.prototype._isBuffer=!0;function W(N,_,v){const $=N[_];N[_]=N[v],N[v]=$}h.prototype.swap16=function(){const _=this.length;if(_%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let v=0;v<_;v+=2)W(this,v,v+1);return this},h.prototype.swap32=function(){const _=this.length;if(_%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let v=0;v<_;v+=4)W(this,v,v+3),W(this,v+1,v+2);return this},h.prototype.swap64=function(){const _=this.length;if(_%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let v=0;v<_;v+=8)W(this,v,v+7),W(this,v+1,v+6),W(this,v+2,v+5),W(this,v+3,v+4);return this},h.prototype.toString=function(){const _=this.length;return _===0?"":arguments.length===0?k(this,0,_):K.apply(this,arguments)},h.prototype.toLocaleString=h.prototype.toString,h.prototype.equals=function(_){if(!h.isBuffer(_))throw new TypeError("Argument must be a Buffer");return this===_?!0:h.compare(this,_)===0},h.prototype.inspect=function(){let _="";const v=r.INSPECT_MAX_BYTES;return _=this.toString("hex",0,v).replace(/(.{2})/g,"$1 ").trim(),this.length>v&&(_+=" ... "),"<Buffer "+_+">"},n&&(h.prototype[n]=h.prototype.inspect),h.prototype.compare=function(_,v,$,j,Y){if(or(_,s)&&(_=h.from(_,_.offset,_.byteLength)),!h.isBuffer(_))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof _);if(v===void 0&&(v=0),$===void 0&&($=_?_.length:0),j===void 0&&(j=0),Y===void 0&&(Y=this.length),v<0||$>_.length||j<0||Y>this.length)throw new RangeError("out of range index");if(j>=Y&&v>=$)return 0;if(j>=Y)return-1;if(v>=$)return 1;if(v>>>=0,$>>>=0,j>>>=0,Y>>>=0,this===_)return 0;let ae=Y-j,Ye=$-v;const qe=Math.min(ae,Ye),Ve=this.slice(j,Y),$t=_.slice(v,$);for(let Ge=0;Ge<qe;++Ge)if(Ve[Ge]!==$t[Ge]){ae=Ve[Ge],Ye=$t[Ge];break}return ae<Ye?-1:Ye<ae?1:0};function oe(N,_,v,$,j){if(N.length===0)return-1;if(typeof v=="string"?($=v,v=0):v>2147483647?v=2147483647:v<-2147483648&&(v=-2147483648),v=+v,xt(v)&&(v=j?0:N.length-1),v<0&&(v=N.length+v),v>=N.length){if(j)return-1;v=N.length-1}else if(v<0)if(j)v=0;else return-1;if(typeof _=="string"&&(_=h.from(_,$)),h.isBuffer(_))return _.length===0?-1:ce(N,_,v,$,j);if(typeof _=="number")return _=_&255,typeof s.prototype.indexOf=="function"?j?s.prototype.indexOf.call(N,_,v):s.prototype.lastIndexOf.call(N,_,v):ce(N,[_],v,$,j);throw new TypeError("val must be string, number or Buffer")}function ce(N,_,v,$,j){let Y=1,ae=N.length,Ye=_.length;if($!==void 0&&($=String($).toLowerCase(),$==="ucs2"||$==="ucs-2"||$==="utf16le"||$==="utf-16le")){if(N.length<2||_.length<2)return-1;Y=2,ae/=2,Ye/=2,v/=2}function qe($t,Ge){return Y===1?$t[Ge]:$t.readUInt16BE(Ge*Y)}let Ve;if(j){let $t=-1;for(Ve=v;Ve<ae;Ve++)if(qe(N,Ve)===qe(_,$t===-1?0:Ve-$t)){if($t===-1&&($t=Ve),Ve-$t+1===Ye)return $t*Y}else $t!==-1&&(Ve-=Ve-$t),$t=-1}else for(v+Ye>ae&&(v=ae-Ye),Ve=v;Ve>=0;Ve--){let $t=!0;for(let Ge=0;Ge<Ye;Ge++)if(qe(N,Ve+Ge)!==qe(_,Ge)){$t=!1;break}if($t)return Ve}return-1}h.prototype.includes=function(_,v,$){return this.indexOf(_,v,$)!==-1},h.prototype.indexOf=function(_,v,$){return oe(this,_,v,$,!0)},h.prototype.lastIndexOf=function(_,v,$){return oe(this,_,v,$,!1)};function ie(N,_,v,$){v=Number(v)||0;const j=N.length-v;$?($=Number($),$>j&&($=j)):$=j;const Y=_.length;$>Y/2&&($=Y/2);let ae;for(ae=0;ae<$;++ae){const Ye=parseInt(_.substr(ae*2,2),16);if(xt(Ye))return ae;N[v+ae]=Ye}return ae}function ue(N,_,v,$){return St(It(_,N.length-v),N,v,$)}function B(N,_,v,$){return St(Ct(_),N,v,$)}function p(N,_,v,$){return St(pt(_),N,v,$)}function m(N,_,v,$){return St(kr(_,N.length-v),N,v,$)}h.prototype.write=function(_,v,$,j){if(v===void 0)j="utf8",$=this.length,v=0;else if($===void 0&&typeof v=="string")j=v,$=this.length,v=0;else if(isFinite(v))v=v>>>0,isFinite($)?($=$>>>0,j===void 0&&(j="utf8")):(j=$,$=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const Y=this.length-v;if(($===void 0||$>Y)&&($=Y),_.length>0&&($<0||v<0)||v>this.length)throw new RangeError("Attempt to write outside buffer bounds");j||(j="utf8");let ae=!1;for(;;)switch(j){case"hex":return ie(this,_,v,$);case"utf8":case"utf-8":return ue(this,_,v,$);case"ascii":case"latin1":case"binary":return B(this,_,v,$);case"base64":return p(this,_,v,$);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return m(this,_,v,$);default:if(ae)throw new TypeError("Unknown encoding: "+j);j=(""+j).toLowerCase(),ae=!0}},h.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function E(N,_,v){return _===0&&v===N.length?e.fromByteArray(N):e.fromByteArray(N.slice(_,v))}function k(N,_,v){v=Math.min(N.length,v);const $=[];let j=_;for(;j<v;){const Y=N[j];let ae=null,Ye=Y>239?4:Y>223?3:Y>191?2:1;if(j+Ye<=v){let qe,Ve,$t,Ge;switch(Ye){case 1:Y<128&&(ae=Y);break;case 2:qe=N[j+1],(qe&192)===128&&(Ge=(Y&31)<<6|qe&63,Ge>127&&(ae=Ge));break;case 3:qe=N[j+1],Ve=N[j+2],(qe&192)===128&&(Ve&192)===128&&(Ge=(Y&15)<<12|(qe&63)<<6|Ve&63,Ge>2047&&(Ge<55296||Ge>57343)&&(ae=Ge));break;case 4:qe=N[j+1],Ve=N[j+2],$t=N[j+3],(qe&192)===128&&(Ve&192)===128&&($t&192)===128&&(Ge=(Y&15)<<18|(qe&63)<<12|(Ve&63)<<6|$t&63,Ge>65535&&Ge<1114112&&(ae=Ge))}}ae===null?(ae=65533,Ye=1):ae>65535&&(ae-=65536,$.push(ae>>>10&1023|55296),ae=56320|ae&1023),$.push(ae),j+=Ye}return M($)}const O=4096;function M(N){const _=N.length;if(_<=O)return String.fromCharCode.apply(String,N);let v="",$=0;for(;$<_;)v+=String.fromCharCode.apply(String,N.slice($,$+=O));return v}function G(N,_,v){let $="";v=Math.min(N.length,v);for(let j=_;j<v;++j)$+=String.fromCharCode(N[j]&127);return $}function P(N,_,v){let $="";v=Math.min(N.length,v);for(let j=_;j<v;++j)$+=String.fromCharCode(N[j]);return $}function A(N,_,v){const $=N.length;(!_||_<0)&&(_=0),(!v||v<0||v>$)&&(v=$);let j="";for(let Y=_;Y<v;++Y)j+=Bt[N[Y]];return j}function U(N,_,v){const $=N.slice(_,v);let j="";for(let Y=0;Y<$.length-1;Y+=2)j+=String.fromCharCode($[Y]+$[Y+1]*256);return j}h.prototype.slice=function(_,v){const $=this.length;_=~~_,v=v===void 0?$:~~v,_<0?(_+=$,_<0&&(_=0)):_>$&&(_=$),v<0?(v+=$,v<0&&(v=0)):v>$&&(v=$),v<_&&(v=_);const j=this.subarray(_,v);return Object.setPrototypeOf(j,h.prototype),j};function le(N,_,v){if(N%1!==0||N<0)throw new RangeError("offset is not uint");if(N+_>v)throw new RangeError("Trying to access beyond buffer length")}h.prototype.readUintLE=h.prototype.readUIntLE=function(_,v,$){_=_>>>0,v=v>>>0,$||le(_,v,this.length);let j=this[_],Y=1,ae=0;for(;++ae<v&&(Y*=256);)j+=this[_+ae]*Y;return j},h.prototype.readUintBE=h.prototype.readUIntBE=function(_,v,$){_=_>>>0,v=v>>>0,$||le(_,v,this.length);let j=this[_+--v],Y=1;for(;v>0&&(Y*=256);)j+=this[_+--v]*Y;return j},h.prototype.readUint8=h.prototype.readUInt8=function(_,v){return _=_>>>0,v||le(_,1,this.length),this[_]},h.prototype.readUint16LE=h.prototype.readUInt16LE=function(_,v){return _=_>>>0,v||le(_,2,this.length),this[_]|this[_+1]<<8},h.prototype.readUint16BE=h.prototype.readUInt16BE=function(_,v){return _=_>>>0,v||le(_,2,this.length),this[_]<<8|this[_+1]},h.prototype.readUint32LE=h.prototype.readUInt32LE=function(_,v){return _=_>>>0,v||le(_,4,this.length),(this[_]|this[_+1]<<8|this[_+2]<<16)+this[_+3]*16777216},h.prototype.readUint32BE=h.prototype.readUInt32BE=function(_,v){return _=_>>>0,v||le(_,4,this.length),this[_]*16777216+(this[_+1]<<16|this[_+2]<<8|this[_+3])},h.prototype.readBigUInt64LE=fn(function(_){_=_>>>0,sr(_,"offset");const v=this[_],$=this[_+7];(v===void 0||$===void 0)&&dt(_,this.length-8);const j=v+this[++_]*2**8+this[++_]*2**16+this[++_]*2**24,Y=this[++_]+this[++_]*2**8+this[++_]*2**16+$*2**24;return BigInt(j)+(BigInt(Y)<<BigInt(32))}),h.prototype.readBigUInt64BE=fn(function(_){_=_>>>0,sr(_,"offset");const v=this[_],$=this[_+7];(v===void 0||$===void 0)&&dt(_,this.length-8);const j=v*2**24+this[++_]*2**16+this[++_]*2**8+this[++_],Y=this[++_]*2**24+this[++_]*2**16+this[++_]*2**8+$;return(BigInt(j)<<BigInt(32))+BigInt(Y)}),h.prototype.readIntLE=function(_,v,$){_=_>>>0,v=v>>>0,$||le(_,v,this.length);let j=this[_],Y=1,ae=0;for(;++ae<v&&(Y*=256);)j+=this[_+ae]*Y;return Y*=128,j>=Y&&(j-=Math.pow(2,8*v)),j},h.prototype.readIntBE=function(_,v,$){_=_>>>0,v=v>>>0,$||le(_,v,this.length);let j=v,Y=1,ae=this[_+--j];for(;j>0&&(Y*=256);)ae+=this[_+--j]*Y;return Y*=128,ae>=Y&&(ae-=Math.pow(2,8*v)),ae},h.prototype.readInt8=function(_,v){return _=_>>>0,v||le(_,1,this.length),this[_]&128?(255-this[_]+1)*-1:this[_]},h.prototype.readInt16LE=function(_,v){_=_>>>0,v||le(_,2,this.length);const $=this[_]|this[_+1]<<8;return $&32768?$|4294901760:$},h.prototype.readInt16BE=function(_,v){_=_>>>0,v||le(_,2,this.length);const $=this[_+1]|this[_]<<8;return $&32768?$|4294901760:$},h.prototype.readInt32LE=function(_,v){return _=_>>>0,v||le(_,4,this.length),this[_]|this[_+1]<<8|this[_+2]<<16|this[_+3]<<24},h.prototype.readInt32BE=function(_,v){return _=_>>>0,v||le(_,4,this.length),this[_]<<24|this[_+1]<<16|this[_+2]<<8|this[_+3]},h.prototype.readBigInt64LE=fn(function(_){_=_>>>0,sr(_,"offset");const v=this[_],$=this[_+7];(v===void 0||$===void 0)&&dt(_,this.length-8);const j=this[_+4]+this[_+5]*2**8+this[_+6]*2**16+($<<24);return(BigInt(j)<<BigInt(32))+BigInt(v+this[++_]*2**8+this[++_]*2**16+this[++_]*2**24)}),h.prototype.readBigInt64BE=fn(function(_){_=_>>>0,sr(_,"offset");const v=this[_],$=this[_+7];(v===void 0||$===void 0)&&dt(_,this.length-8);const j=(v<<24)+this[++_]*2**16+this[++_]*2**8+this[++_];return(BigInt(j)<<BigInt(32))+BigInt(this[++_]*2**24+this[++_]*2**16+this[++_]*2**8+$)}),h.prototype.readFloatLE=function(_,v){return _=_>>>0,v||le(_,4,this.length),t.read(this,_,!0,23,4)},h.prototype.readFloatBE=function(_,v){return _=_>>>0,v||le(_,4,this.length),t.read(this,_,!1,23,4)},h.prototype.readDoubleLE=function(_,v){return _=_>>>0,v||le(_,8,this.length),t.read(this,_,!0,52,8)},h.prototype.readDoubleBE=function(_,v){return _=_>>>0,v||le(_,8,this.length),t.read(this,_,!1,52,8)};function te(N,_,v,$,j,Y){if(!h.isBuffer(N))throw new TypeError('"buffer" argument must be a Buffer instance');if(_>j||_<Y)throw new RangeError('"value" argument is out of bounds');if(v+$>N.length)throw new RangeError("Index out of range")}h.prototype.writeUintLE=h.prototype.writeUIntLE=function(_,v,$,j){if(_=+_,v=v>>>0,$=$>>>0,!j){const Ye=Math.pow(2,8*$)-1;te(this,_,v,$,Ye,0)}let Y=1,ae=0;for(this[v]=_&255;++ae<$&&(Y*=256);)this[v+ae]=_/Y&255;return v+$},h.prototype.writeUintBE=h.prototype.writeUIntBE=function(_,v,$,j){if(_=+_,v=v>>>0,$=$>>>0,!j){const Ye=Math.pow(2,8*$)-1;te(this,_,v,$,Ye,0)}let Y=$-1,ae=1;for(this[v+Y]=_&255;--Y>=0&&(ae*=256);)this[v+Y]=_/ae&255;return v+$},h.prototype.writeUint8=h.prototype.writeUInt8=function(_,v,$){return _=+_,v=v>>>0,$||te(this,_,v,1,255,0),this[v]=_&255,v+1},h.prototype.writeUint16LE=h.prototype.writeUInt16LE=function(_,v,$){return _=+_,v=v>>>0,$||te(this,_,v,2,65535,0),this[v]=_&255,this[v+1]=_>>>8,v+2},h.prototype.writeUint16BE=h.prototype.writeUInt16BE=function(_,v,$){return _=+_,v=v>>>0,$||te(this,_,v,2,65535,0),this[v]=_>>>8,this[v+1]=_&255,v+2},h.prototype.writeUint32LE=h.prototype.writeUInt32LE=function(_,v,$){return _=+_,v=v>>>0,$||te(this,_,v,4,4294967295,0),this[v+3]=_>>>24,this[v+2]=_>>>16,this[v+1]=_>>>8,this[v]=_&255,v+4},h.prototype.writeUint32BE=h.prototype.writeUInt32BE=function(_,v,$){return _=+_,v=v>>>0,$||te(this,_,v,4,4294967295,0),this[v]=_>>>24,this[v+1]=_>>>16,this[v+2]=_>>>8,this[v+3]=_&255,v+4};function re(N,_,v,$,j){ot(_,$,j,N,v,7);let Y=Number(_&BigInt(4294967295));N[v++]=Y,Y=Y>>8,N[v++]=Y,Y=Y>>8,N[v++]=Y,Y=Y>>8,N[v++]=Y;let ae=Number(_>>BigInt(32)&BigInt(4294967295));return N[v++]=ae,ae=ae>>8,N[v++]=ae,ae=ae>>8,N[v++]=ae,ae=ae>>8,N[v++]=ae,v}function he(N,_,v,$,j){ot(_,$,j,N,v,7);let Y=Number(_&BigInt(4294967295));N[v+7]=Y,Y=Y>>8,N[v+6]=Y,Y=Y>>8,N[v+5]=Y,Y=Y>>8,N[v+4]=Y;let ae=Number(_>>BigInt(32)&BigInt(4294967295));return N[v+3]=ae,ae=ae>>8,N[v+2]=ae,ae=ae>>8,N[v+1]=ae,ae=ae>>8,N[v]=ae,v+8}h.prototype.writeBigUInt64LE=fn(function(_,v=0){return re(this,_,v,BigInt(0),BigInt("0xffffffffffffffff"))}),h.prototype.writeBigUInt64BE=fn(function(_,v=0){return he(this,_,v,BigInt(0),BigInt("0xffffffffffffffff"))}),h.prototype.writeIntLE=function(_,v,$,j){if(_=+_,v=v>>>0,!j){const qe=Math.pow(2,8*$-1);te(this,_,v,$,qe-1,-qe)}let Y=0,ae=1,Ye=0;for(this[v]=_&255;++Y<$&&(ae*=256);)_<0&&Ye===0&&this[v+Y-1]!==0&&(Ye=1),this[v+Y]=(_/ae>>0)-Ye&255;return v+$},h.prototype.writeIntBE=function(_,v,$,j){if(_=+_,v=v>>>0,!j){const qe=Math.pow(2,8*$-1);te(this,_,v,$,qe-1,-qe)}let Y=$-1,ae=1,Ye=0;for(this[v+Y]=_&255;--Y>=0&&(ae*=256);)_<0&&Ye===0&&this[v+Y+1]!==0&&(Ye=1),this[v+Y]=(_/ae>>0)-Ye&255;return v+$},h.prototype.writeInt8=function(_,v,$){return _=+_,v=v>>>0,$||te(this,_,v,1,127,-128),_<0&&(_=255+_+1),this[v]=_&255,v+1},h.prototype.writeInt16LE=function(_,v,$){return _=+_,v=v>>>0,$||te(this,_,v,2,32767,-32768),this[v]=_&255,this[v+1]=_>>>8,v+2},h.prototype.writeInt16BE=function(_,v,$){return _=+_,v=v>>>0,$||te(this,_,v,2,32767,-32768),this[v]=_>>>8,this[v+1]=_&255,v+2},h.prototype.writeInt32LE=function(_,v,$){return _=+_,v=v>>>0,$||te(this,_,v,4,2147483647,-2147483648),this[v]=_&255,this[v+1]=_>>>8,this[v+2]=_>>>16,this[v+3]=_>>>24,v+4},h.prototype.writeInt32BE=function(_,v,$){return _=+_,v=v>>>0,$||te(this,_,v,4,2147483647,-2147483648),_<0&&(_=4294967295+_+1),this[v]=_>>>24,this[v+1]=_>>>16,this[v+2]=_>>>8,this[v+3]=_&255,v+4},h.prototype.writeBigInt64LE=fn(function(_,v=0){return re(this,_,v,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),h.prototype.writeBigInt64BE=fn(function(_,v=0){return he(this,_,v,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function ye(N,_,v,$,j,Y){if(v+$>N.length)throw new RangeError("Index out of range");if(v<0)throw new RangeError("Index out of range")}function be(N,_,v,$,j){return _=+_,v=v>>>0,j||ye(N,_,v,4),t.write(N,_,v,$,23,4),v+4}h.prototype.writeFloatLE=function(_,v,$){return be(this,_,v,!0,$)},h.prototype.writeFloatBE=function(_,v,$){return be(this,_,v,!1,$)};function We(N,_,v,$,j){return _=+_,v=v>>>0,j||ye(N,_,v,8),t.write(N,_,v,$,52,8),v+8}h.prototype.writeDoubleLE=function(_,v,$){return We(this,_,v,!0,$)},h.prototype.writeDoubleBE=function(_,v,$){return We(this,_,v,!1,$)},h.prototype.copy=function(_,v,$,j){if(!h.isBuffer(_))throw new TypeError("argument should be a Buffer");if($||($=0),!j&&j!==0&&(j=this.length),v>=_.length&&(v=_.length),v||(v=0),j>0&&j<$&&(j=$),j===$||_.length===0||this.length===0)return 0;if(v<0)throw new RangeError("targetStart out of bounds");if($<0||$>=this.length)throw new RangeError("Index out of range");if(j<0)throw new RangeError("sourceEnd out of bounds");j>this.length&&(j=this.length),_.length-v<j-$&&(j=_.length-v+$);const Y=j-$;return this===_&&typeof s.prototype.copyWithin=="function"?this.copyWithin(v,$,j):s.prototype.set.call(_,this.subarray($,j),v),Y},h.prototype.fill=function(_,v,$,j){if(typeof _=="string"){if(typeof v=="string"?(j=v,v=0,$=this.length):typeof $=="string"&&(j=$,$=this.length),j!==void 0&&typeof j!="string")throw new TypeError("encoding must be a string");if(typeof j=="string"&&!h.isEncoding(j))throw new TypeError("Unknown encoding: "+j);if(_.length===1){const ae=_.charCodeAt(0);(j==="utf8"&&ae<128||j==="latin1")&&(_=ae)}}else typeof _=="number"?_=_&255:typeof _=="boolean"&&(_=Number(_));if(v<0||this.length<v||this.length<$)throw new RangeError("Out of range index");if($<=v)return this;v=v>>>0,$=$===void 0?this.length:$>>>0,_||(_=0);let Y;if(typeof _=="number")for(Y=v;Y<$;++Y)this[Y]=_;else{const ae=h.isBuffer(_)?_:h.from(_,j),Ye=ae.length;if(Ye===0)throw new TypeError('The value "'+_+'" is invalid for argument "value"');for(Y=0;Y<$-v;++Y)this[Y+v]=ae[Y%Ye]}return this};const Fe={};function Be(N,_,v){Fe[N]=class extends v{constructor(){super(),Object.defineProperty(this,"message",{value:_.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${N}]`,this.stack,delete this.name}get code(){return N}set code(j){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:j,writable:!0})}toString(){return`${this.name} [${N}]: ${this.message}`}}}Be("ERR_BUFFER_OUT_OF_BOUNDS",function(N){return N?`${N} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),Be("ERR_INVALID_ARG_TYPE",function(N,_){return`The "${N}" argument must be of type number. Received type ${typeof _}`},TypeError),Be("ERR_OUT_OF_RANGE",function(N,_,v){let $=`The value of "${N}" is out of range.`,j=v;return Number.isInteger(v)&&Math.abs(v)>2**32?j=et(String(v)):typeof v=="bigint"&&(j=String(v),(v>BigInt(2)**BigInt(32)||v<-(BigInt(2)**BigInt(32)))&&(j=et(j)),j+="n"),$+=` It must be ${_}. Received ${j}`,$},RangeError);function et(N){let _="",v=N.length;const $=N[0]==="-"?1:0;for(;v>=$+4;v-=3)_=`_${N.slice(v-3,v)}${_}`;return`${N.slice(0,v)}${_}`}function Qe(N,_,v){sr(_,"offset"),(N[_]===void 0||N[_+v]===void 0)&&dt(_,N.length-(v+1))}function ot(N,_,v,$,j,Y){if(N>v||N<_){const ae=typeof _=="bigint"?"n":"";let Ye;throw _===0||_===BigInt(0)?Ye=`>= 0${ae} and < 2${ae} ** ${(Y+1)*8}${ae}`:Ye=`>= -(2${ae} ** ${(Y+1)*8-1}${ae}) and < 2 ** ${(Y+1)*8-1}${ae}`,new Fe.ERR_OUT_OF_RANGE("value",Ye,N)}Qe($,j,Y)}function sr(N,_){if(typeof N!="number")throw new Fe.ERR_INVALID_ARG_TYPE(_,"number",N)}function dt(N,_,v){throw Math.floor(N)!==N?(sr(N,v),new Fe.ERR_OUT_OF_RANGE("offset","an integer",N)):_<0?new Fe.ERR_BUFFER_OUT_OF_BOUNDS:new Fe.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${_}`,N)}const Ut=/[^+/0-9A-Za-z-_]/g;function oa(N){if(N=N.split("=")[0],N=N.trim().replace(Ut,""),N.length<2)return"";for(;N.length%4!==0;)N=N+"=";return N}function It(N,_){_=_||1/0;let v;const $=N.length;let j=null;const Y=[];for(let ae=0;ae<$;++ae){if(v=N.charCodeAt(ae),v>55295&&v<57344){if(!j){if(v>56319){(_-=3)>-1&&Y.push(239,191,189);continue}else if(ae+1===$){(_-=3)>-1&&Y.push(239,191,189);continue}j=v;continue}if(v<56320){(_-=3)>-1&&Y.push(239,191,189),j=v;continue}v=(j-55296<<10|v-56320)+65536}else j&&(_-=3)>-1&&Y.push(239,191,189);if(j=null,v<128){if((_-=1)<0)break;Y.push(v)}else if(v<2048){if((_-=2)<0)break;Y.push(v>>6|192,v&63|128)}else if(v<65536){if((_-=3)<0)break;Y.push(v>>12|224,v>>6&63|128,v&63|128)}else if(v<1114112){if((_-=4)<0)break;Y.push(v>>18|240,v>>12&63|128,v>>6&63|128,v&63|128)}else throw new Error("Invalid code point")}return Y}function Ct(N){const _=[];for(let v=0;v<N.length;++v)_.push(N.charCodeAt(v)&255);return _}function kr(N,_){let v,$,j;const Y=[];for(let ae=0;ae<N.length&&!((_-=2)<0);++ae)v=N.charCodeAt(ae),$=v>>8,j=v%256,Y.push(j),Y.push($);return Y}function pt(N){return e.toByteArray(oa(N))}function St(N,_,v,$){let j;for(j=0;j<$&&!(j+v>=_.length||j>=N.length);++j)_[j+v]=N[j];return j}function or(N,_){return N instanceof _||N!=null&&N.constructor!=null&&N.constructor.name!=null&&N.constructor.name===_.name}function xt(N){return N!==N}const Bt=function(){const N="0123456789abcdef",_=new Array(256);for(let v=0;v<16;++v){const $=v*16;for(let j=0;j<16;++j)_[$+j]=N[v]+N[j]}return _}();function fn(N){return typeof BigInt>"u"?Dt:N}function Dt(){throw new Error("BigInt not supported")}})(Py);const Ze=Py.Buffer,Ne=Py.Buffer,LG=Object.freeze(Object.defineProperty({__proto__:null,Buffer:Ne,default:Ze},Symbol.toStringTag,{value:"Module"}));var Uy={exports:{}};const Dy=Lc(LG);Uy.exports,function(r){(function(e,t){function n(B,p){if(!B)throw new Error(p||"Assertion failed")}function i(B,p){B.super_=p;var m=function(){};m.prototype=p.prototype,B.prototype=new m,B.prototype.constructor=B}function s(B,p,m){if(s.isBN(B))return B;this.negative=0,this.words=null,this.length=0,this.red=null,B!==null&&((p==="le"||p==="be")&&(m=p,p=10),this._init(B||0,p||10,m||"be"))}typeof e=="object"?e.exports=s:t.BN=s,s.BN=s,s.wordSize=26;var o;try{typeof window<"u"&&typeof window.Buffer<"u"?o=window.Buffer:o=Dy.Buffer}catch{}s.isBN=function(p){return p instanceof s?!0:p!==null&&typeof p=="object"&&p.constructor.wordSize===s.wordSize&&Array.isArray(p.words)},s.max=function(p,m){return p.cmp(m)>0?p:m},s.min=function(p,m){return p.cmp(m)<0?p:m},s.prototype._init=function(p,m,E){if(typeof p=="number")return this._initNumber(p,m,E);if(typeof p=="object")return this._initArray(p,m,E);m==="hex"&&(m=16),n(m===(m|0)&&m>=2&&m<=36),p=p.toString().replace(/\s+/g,"");var k=0;p[0]==="-"&&(k++,this.negative=1),k<p.length&&(m===16?this._parseHex(p,k,E):(this._parseBase(p,m,k),E==="le"&&this._initArray(this.toArray(),m,E)))},s.prototype._initNumber=function(p,m,E){p<0&&(this.negative=1,p=-p),p<67108864?(this.words=[p&67108863],this.length=1):p<4503599627370496?(this.words=[p&67108863,p/67108864&67108863],this.length=2):(n(p<9007199254740992),this.words=[p&67108863,p/67108864&67108863,1],this.length=3),E==="le"&&this._initArray(this.toArray(),m,E)},s.prototype._initArray=function(p,m,E){if(n(typeof p.length=="number"),p.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(p.length/3),this.words=new Array(this.length);for(var k=0;k<this.length;k++)this.words[k]=0;var O,M,G=0;if(E==="be")for(k=p.length-1,O=0;k>=0;k-=3)M=p[k]|p[k-1]<<8|p[k-2]<<16,this.words[O]|=M<<G&67108863,this.words[O+1]=M>>>26-G&67108863,G+=24,G>=26&&(G-=26,O++);else if(E==="le")for(k=0,O=0;k<p.length;k+=3)M=p[k]|p[k+1]<<8|p[k+2]<<16,this.words[O]|=M<<G&67108863,this.words[O+1]=M>>>26-G&67108863,G+=24,G>=26&&(G-=26,O++);return this._strip()};function a(B,p){var m=B.charCodeAt(p);if(m>=48&&m<=57)return m-48;if(m>=65&&m<=70)return m-55;if(m>=97&&m<=102)return m-87;n(!1,"Invalid character in "+B)}function u(B,p,m){var E=a(B,m);return m-1>=p&&(E|=a(B,m-1)<<4),E}s.prototype._parseHex=function(p,m,E){this.length=Math.ceil((p.length-m)/6),this.words=new Array(this.length);for(var k=0;k<this.length;k++)this.words[k]=0;var O=0,M=0,G;if(E==="be")for(k=p.length-1;k>=m;k-=2)G=u(p,m,k)<<O,this.words[M]|=G&67108863,O>=18?(O-=18,M+=1,this.words[M]|=G>>>26):O+=8;else{var P=p.length-m;for(k=P%2===0?m+1:m;k<p.length;k+=2)G=u(p,m,k)<<O,this.words[M]|=G&67108863,O>=18?(O-=18,M+=1,this.words[M]|=G>>>26):O+=8}this._strip()};function l(B,p,m,E){for(var k=0,O=0,M=Math.min(B.length,m),G=p;G<M;G++){var P=B.charCodeAt(G)-48;k*=E,P>=49?O=P-49+10:P>=17?O=P-17+10:O=P,n(P>=0&&O<E,"Invalid character"),k+=O}return k}s.prototype._parseBase=function(p,m,E){this.words=[0],this.length=1;for(var k=0,O=1;O<=67108863;O*=m)k++;k--,O=O/m|0;for(var M=p.length-E,G=M%k,P=Math.min(M,M-G)+E,A=0,U=E;U<P;U+=k)A=l(p,U,U+k,m),this.imuln(O),this.words[0]+A<67108864?this.words[0]+=A:this._iaddn(A);if(G!==0){var le=1;for(A=l(p,U,p.length,m),U=0;U<G;U++)le*=m;this.imuln(le),this.words[0]+A<67108864?this.words[0]+=A:this._iaddn(A)}this._strip()},s.prototype.copy=function(p){p.words=new Array(this.length);for(var m=0;m<this.length;m++)p.words[m]=this.words[m];p.length=this.length,p.negative=this.negative,p.red=this.red};function h(B,p){B.words=p.words,B.length=p.length,B.negative=p.negative,B.red=p.red}if(s.prototype._move=function(p){h(p,this)},s.prototype.clone=function(){var p=new s(null);return this.copy(p),p},s.prototype._expand=function(p){for(;this.length<p;)this.words[this.length++]=0;return this},s.prototype._strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},s.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{s.prototype[Symbol.for("nodejs.util.inspect.custom")]=g}catch{s.prototype.inspect=g}else s.prototype.inspect=g;function g(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var b=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],w=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],I=[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];s.prototype.toString=function(p,m){p=p||10,m=m|0||1;var E;if(p===16||p==="hex"){E="";for(var k=0,O=0,M=0;M<this.length;M++){var G=this.words[M],P=((G<<k|O)&16777215).toString(16);O=G>>>24-k&16777215,k+=2,k>=26&&(k-=26,M--),O!==0||M!==this.length-1?E=b[6-P.length]+P+E:E=P+E}for(O!==0&&(E=O.toString(16)+E);E.length%m!==0;)E="0"+E;return this.negative!==0&&(E="-"+E),E}if(p===(p|0)&&p>=2&&p<=36){var A=w[p],U=I[p];E="";var le=this.clone();for(le.negative=0;!le.isZero();){var te=le.modrn(U).toString(p);le=le.idivn(U),le.isZero()?E=te+E:E=b[A-te.length]+te+E}for(this.isZero()&&(E="0"+E);E.length%m!==0;)E="0"+E;return this.negative!==0&&(E="-"+E),E}n(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var p=this.words[0];return this.length===2?p+=this.words[1]*67108864:this.length===3&&this.words[2]===1?p+=4503599627370496+this.words[1]*67108864:this.length>2&&n(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-p:p},s.prototype.toJSON=function(){return this.toString(16,2)},o&&(s.prototype.toBuffer=function(p,m){return this.toArrayLike(o,p,m)}),s.prototype.toArray=function(p,m){return this.toArrayLike(Array,p,m)};var S=function(p,m){return p.allocUnsafe?p.allocUnsafe(m):new p(m)};s.prototype.toArrayLike=function(p,m,E){this._strip();var k=this.byteLength(),O=E||Math.max(1,k);n(k<=O,"byte array longer than desired length"),n(O>0,"Requested array length <= 0");var M=S(p,O),G=m==="le"?"LE":"BE";return this["_toArrayLike"+G](M,k),M},s.prototype._toArrayLikeLE=function(p,m){for(var E=0,k=0,O=0,M=0;O<this.length;O++){var G=this.words[O]<<M|k;p[E++]=G&255,E<p.length&&(p[E++]=G>>8&255),E<p.length&&(p[E++]=G>>16&255),M===6?(E<p.length&&(p[E++]=G>>24&255),k=0,M=0):(k=G>>>24,M+=2)}if(E<p.length)for(p[E++]=k;E<p.length;)p[E++]=0},s.prototype._toArrayLikeBE=function(p,m){for(var E=p.length-1,k=0,O=0,M=0;O<this.length;O++){var G=this.words[O]<<M|k;p[E--]=G&255,E>=0&&(p[E--]=G>>8&255),E>=0&&(p[E--]=G>>16&255),M===6?(E>=0&&(p[E--]=G>>24&255),k=0,M=0):(k=G>>>24,M+=2)}if(E>=0)for(p[E--]=k;E>=0;)p[E--]=0},Math.clz32?s.prototype._countBits=function(p){return 32-Math.clz32(p)}:s.prototype._countBits=function(p){var m=p,E=0;return m>=4096&&(E+=13,m>>>=13),m>=64&&(E+=7,m>>>=7),m>=8&&(E+=4,m>>>=4),m>=2&&(E+=2,m>>>=2),E+m},s.prototype._zeroBits=function(p){if(p===0)return 26;var m=p,E=0;return m&8191||(E+=13,m>>>=13),m&127||(E+=7,m>>>=7),m&15||(E+=4,m>>>=4),m&3||(E+=2,m>>>=2),m&1||E++,E},s.prototype.bitLength=function(){var p=this.words[this.length-1],m=this._countBits(p);return(this.length-1)*26+m};function x(B){for(var p=new Array(B.bitLength()),m=0;m<p.length;m++){var E=m/26|0,k=m%26;p[m]=B.words[E]>>>k&1}return p}s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var p=0,m=0;m<this.length;m++){var E=this._zeroBits(this.words[m]);if(p+=E,E!==26)break}return p},s.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},s.prototype.toTwos=function(p){return this.negative!==0?this.abs().inotn(p).iaddn(1):this.clone()},s.prototype.fromTwos=function(p){return this.testn(p-1)?this.notn(p).iaddn(1).ineg():this.clone()},s.prototype.isNeg=function(){return this.negative!==0},s.prototype.neg=function(){return this.clone().ineg()},s.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},s.prototype.iuor=function(p){for(;this.length<p.length;)this.words[this.length++]=0;for(var m=0;m<p.length;m++)this.words[m]=this.words[m]|p.words[m];return this._strip()},s.prototype.ior=function(p){return n((this.negative|p.negative)===0),this.iuor(p)},s.prototype.or=function(p){return this.length>p.length?this.clone().ior(p):p.clone().ior(this)},s.prototype.uor=function(p){return this.length>p.length?this.clone().iuor(p):p.clone().iuor(this)},s.prototype.iuand=function(p){var m;this.length>p.length?m=p:m=this;for(var E=0;E<m.length;E++)this.words[E]=this.words[E]&p.words[E];return this.length=m.length,this._strip()},s.prototype.iand=function(p){return n((this.negative|p.negative)===0),this.iuand(p)},s.prototype.and=function(p){return this.length>p.length?this.clone().iand(p):p.clone().iand(this)},s.prototype.uand=function(p){return this.length>p.length?this.clone().iuand(p):p.clone().iuand(this)},s.prototype.iuxor=function(p){var m,E;this.length>p.length?(m=this,E=p):(m=p,E=this);for(var k=0;k<E.length;k++)this.words[k]=m.words[k]^E.words[k];if(this!==m)for(;k<m.length;k++)this.words[k]=m.words[k];return this.length=m.length,this._strip()},s.prototype.ixor=function(p){return n((this.negative|p.negative)===0),this.iuxor(p)},s.prototype.xor=function(p){return this.length>p.length?this.clone().ixor(p):p.clone().ixor(this)},s.prototype.uxor=function(p){return this.length>p.length?this.clone().iuxor(p):p.clone().iuxor(this)},s.prototype.inotn=function(p){n(typeof p=="number"&&p>=0);var m=Math.ceil(p/26)|0,E=p%26;this._expand(m),E>0&&m--;for(var k=0;k<m;k++)this.words[k]=~this.words[k]&67108863;return E>0&&(this.words[k]=~this.words[k]&67108863>>26-E),this._strip()},s.prototype.notn=function(p){return this.clone().inotn(p)},s.prototype.setn=function(p,m){n(typeof p=="number"&&p>=0);var E=p/26|0,k=p%26;return this._expand(E+1),m?this.words[E]=this.words[E]|1<<k:this.words[E]=this.words[E]&~(1<<k),this._strip()},s.prototype.iadd=function(p){var m;if(this.negative!==0&&p.negative===0)return this.negative=0,m=this.isub(p),this.negative^=1,this._normSign();if(this.negative===0&&p.negative!==0)return p.negative=0,m=this.isub(p),p.negative=1,m._normSign();var E,k;this.length>p.length?(E=this,k=p):(E=p,k=this);for(var O=0,M=0;M<k.length;M++)m=(E.words[M]|0)+(k.words[M]|0)+O,this.words[M]=m&67108863,O=m>>>26;for(;O!==0&&M<E.length;M++)m=(E.words[M]|0)+O,this.words[M]=m&67108863,O=m>>>26;if(this.length=E.length,O!==0)this.words[this.length]=O,this.length++;else if(E!==this)for(;M<E.length;M++)this.words[M]=E.words[M];return this},s.prototype.add=function(p){var m;return p.negative!==0&&this.negative===0?(p.negative=0,m=this.sub(p),p.negative^=1,m):p.negative===0&&this.negative!==0?(this.negative=0,m=p.sub(this),this.negative=1,m):this.length>p.length?this.clone().iadd(p):p.clone().iadd(this)},s.prototype.isub=function(p){if(p.negative!==0){p.negative=0;var m=this.iadd(p);return p.negative=1,m._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(p),this.negative=1,this._normSign();var E=this.cmp(p);if(E===0)return this.negative=0,this.length=1,this.words[0]=0,this;var k,O;E>0?(k=this,O=p):(k=p,O=this);for(var M=0,G=0;G<O.length;G++)m=(k.words[G]|0)-(O.words[G]|0)+M,M=m>>26,this.words[G]=m&67108863;for(;M!==0&&G<k.length;G++)m=(k.words[G]|0)+M,M=m>>26,this.words[G]=m&67108863;if(M===0&&G<k.length&&k!==this)for(;G<k.length;G++)this.words[G]=k.words[G];return this.length=Math.max(this.length,G),k!==this&&(this.negative=1),this._strip()},s.prototype.sub=function(p){return this.clone().isub(p)};function C(B,p,m){m.negative=p.negative^B.negative;var E=B.length+p.length|0;m.length=E,E=E-1|0;var k=B.words[0]|0,O=p.words[0]|0,M=k*O,G=M&67108863,P=M/67108864|0;m.words[0]=G;for(var A=1;A<E;A++){for(var U=P>>>26,le=P&67108863,te=Math.min(A,p.length-1),re=Math.max(0,A-B.length+1);re<=te;re++){var he=A-re|0;k=B.words[he]|0,O=p.words[re]|0,M=k*O+le,U+=M/67108864|0,le=M&67108863}m.words[A]=le|0,P=U|0}return P!==0?m.words[A]=P|0:m.length--,m._strip()}var H=function(p,m,E){var k=p.words,O=m.words,M=E.words,G=0,P,A,U,le=k[0]|0,te=le&8191,re=le>>>13,he=k[1]|0,ye=he&8191,be=he>>>13,We=k[2]|0,Fe=We&8191,Be=We>>>13,et=k[3]|0,Qe=et&8191,ot=et>>>13,sr=k[4]|0,dt=sr&8191,Ut=sr>>>13,oa=k[5]|0,It=oa&8191,Ct=oa>>>13,kr=k[6]|0,pt=kr&8191,St=kr>>>13,or=k[7]|0,xt=or&8191,Bt=or>>>13,fn=k[8]|0,Dt=fn&8191,N=fn>>>13,_=k[9]|0,v=_&8191,$=_>>>13,j=O[0]|0,Y=j&8191,ae=j>>>13,Ye=O[1]|0,qe=Ye&8191,Ve=Ye>>>13,$t=O[2]|0,Ge=$t&8191,fr=$t>>>13,rg=O[3]|0,hr=rg&8191,dr=rg>>>13,ng=O[4]|0,ar=ng&8191,pr=ng>>>13,ig=O[5]|0,cr=ig&8191,gr=ig>>>13,Nc=O[6]|0,Xt=Nc&8191,yr=Nc>>>13,sg=O[7]|0,mr=sg&8191,wr=sg>>>13,og=O[8]|0,br=og&8191,_r=og>>>13,Cc=O[9]|0,Ar=Cc&8191,vr=Cc>>>13;E.negative=p.negative^m.negative,E.length=19,P=Math.imul(te,Y),A=Math.imul(te,ae),A=A+Math.imul(re,Y)|0,U=Math.imul(re,ae);var Wh=(G+P|0)+((A&8191)<<13)|0;G=(U+(A>>>13)|0)+(Wh>>>26)|0,Wh&=67108863,P=Math.imul(ye,Y),A=Math.imul(ye,ae),A=A+Math.imul(be,Y)|0,U=Math.imul(be,ae),P=P+Math.imul(te,qe)|0,A=A+Math.imul(te,Ve)|0,A=A+Math.imul(re,qe)|0,U=U+Math.imul(re,Ve)|0;var $l=(G+P|0)+((A&8191)<<13)|0;G=(U+(A>>>13)|0)+($l>>>26)|0,$l&=67108863,P=Math.imul(Fe,Y),A=Math.imul(Fe,ae),A=A+Math.imul(Be,Y)|0,U=Math.imul(Be,ae),P=P+Math.imul(ye,qe)|0,A=A+Math.imul(ye,Ve)|0,A=A+Math.imul(be,qe)|0,U=U+Math.imul(be,Ve)|0,P=P+Math.imul(te,Ge)|0,A=A+Math.imul(te,fr)|0,A=A+Math.imul(re,Ge)|0,U=U+Math.imul(re,fr)|0;var Vh=(G+P|0)+((A&8191)<<13)|0;G=(U+(A>>>13)|0)+(Vh>>>26)|0,Vh&=67108863,P=Math.imul(Qe,Y),A=Math.imul(Qe,ae),A=A+Math.imul(ot,Y)|0,U=Math.imul(ot,ae),P=P+Math.imul(Fe,qe)|0,A=A+Math.imul(Fe,Ve)|0,A=A+Math.imul(Be,qe)|0,U=U+Math.imul(Be,Ve)|0,P=P+Math.imul(ye,Ge)|0,A=A+Math.imul(ye,fr)|0,A=A+Math.imul(be,Ge)|0,U=U+Math.imul(be,fr)|0,P=P+Math.imul(te,hr)|0,A=A+Math.imul(te,dr)|0,A=A+Math.imul(re,hr)|0,U=U+Math.imul(re,dr)|0;var qh=(G+P|0)+((A&8191)<<13)|0;G=(U+(A>>>13)|0)+(qh>>>26)|0,qh&=67108863,P=Math.imul(dt,Y),A=Math.imul(dt,ae),A=A+Math.imul(Ut,Y)|0,U=Math.imul(Ut,ae),P=P+Math.imul(Qe,qe)|0,A=A+Math.imul(Qe,Ve)|0,A=A+Math.imul(ot,qe)|0,U=U+Math.imul(ot,Ve)|0,P=P+Math.imul(Fe,Ge)|0,A=A+Math.imul(Fe,fr)|0,A=A+Math.imul(Be,Ge)|0,U=U+Math.imul(Be,fr)|0,P=P+Math.imul(ye,hr)|0,A=A+Math.imul(ye,dr)|0,A=A+Math.imul(be,hr)|0,U=U+Math.imul(be,dr)|0,P=P+Math.imul(te,ar)|0,A=A+Math.imul(te,pr)|0,A=A+Math.imul(re,ar)|0,U=U+Math.imul(re,pr)|0;var Zh=(G+P|0)+((A&8191)<<13)|0;G=(U+(A>>>13)|0)+(Zh>>>26)|0,Zh&=67108863,P=Math.imul(It,Y),A=Math.imul(It,ae),A=A+Math.imul(Ct,Y)|0,U=Math.imul(Ct,ae),P=P+Math.imul(dt,qe)|0,A=A+Math.imul(dt,Ve)|0,A=A+Math.imul(Ut,qe)|0,U=U+Math.imul(Ut,Ve)|0,P=P+Math.imul(Qe,Ge)|0,A=A+Math.imul(Qe,fr)|0,A=A+Math.imul(ot,Ge)|0,U=U+Math.imul(ot,fr)|0,P=P+Math.imul(Fe,hr)|0,A=A+Math.imul(Fe,dr)|0,A=A+Math.imul(Be,hr)|0,U=U+Math.imul(Be,dr)|0,P=P+Math.imul(ye,ar)|0,A=A+Math.imul(ye,pr)|0,A=A+Math.imul(be,ar)|0,U=U+Math.imul(be,pr)|0,P=P+Math.imul(te,cr)|0,A=A+Math.imul(te,gr)|0,A=A+Math.imul(re,cr)|0,U=U+Math.imul(re,gr)|0;var Qh=(G+P|0)+((A&8191)<<13)|0;G=(U+(A>>>13)|0)+(Qh>>>26)|0,Qh&=67108863,P=Math.imul(pt,Y),A=Math.imul(pt,ae),A=A+Math.imul(St,Y)|0,U=Math.imul(St,ae),P=P+Math.imul(It,qe)|0,A=A+Math.imul(It,Ve)|0,A=A+Math.imul(Ct,qe)|0,U=U+Math.imul(Ct,Ve)|0,P=P+Math.imul(dt,Ge)|0,A=A+Math.imul(dt,fr)|0,A=A+Math.imul(Ut,Ge)|0,U=U+Math.imul(Ut,fr)|0,P=P+Math.imul(Qe,hr)|0,A=A+Math.imul(Qe,dr)|0,A=A+Math.imul(ot,hr)|0,U=U+Math.imul(ot,dr)|0,P=P+Math.imul(Fe,ar)|0,A=A+Math.imul(Fe,pr)|0,A=A+Math.imul(Be,ar)|0,U=U+Math.imul(Be,pr)|0,P=P+Math.imul(ye,cr)|0,A=A+Math.imul(ye,gr)|0,A=A+Math.imul(be,cr)|0,U=U+Math.imul(be,gr)|0,P=P+Math.imul(te,Xt)|0,A=A+Math.imul(te,yr)|0,A=A+Math.imul(re,Xt)|0,U=U+Math.imul(re,yr)|0;var Fl=(G+P|0)+((A&8191)<<13)|0;G=(U+(A>>>13)|0)+(Fl>>>26)|0,Fl&=67108863,P=Math.imul(xt,Y),A=Math.imul(xt,ae),A=A+Math.imul(Bt,Y)|0,U=Math.imul(Bt,ae),P=P+Math.imul(pt,qe)|0,A=A+Math.imul(pt,Ve)|0,A=A+Math.imul(St,qe)|0,U=U+Math.imul(St,Ve)|0,P=P+Math.imul(It,Ge)|0,A=A+Math.imul(It,fr)|0,A=A+Math.imul(Ct,Ge)|0,U=U+Math.imul(Ct,fr)|0,P=P+Math.imul(dt,hr)|0,A=A+Math.imul(dt,dr)|0,A=A+Math.imul(Ut,hr)|0,U=U+Math.imul(Ut,dr)|0,P=P+Math.imul(Qe,ar)|0,A=A+Math.imul(Qe,pr)|0,A=A+Math.imul(ot,ar)|0,U=U+Math.imul(ot,pr)|0,P=P+Math.imul(Fe,cr)|0,A=A+Math.imul(Fe,gr)|0,A=A+Math.imul(Be,cr)|0,U=U+Math.imul(Be,gr)|0,P=P+Math.imul(ye,Xt)|0,A=A+Math.imul(ye,yr)|0,A=A+Math.imul(be,Xt)|0,U=U+Math.imul(be,yr)|0,P=P+Math.imul(te,mr)|0,A=A+Math.imul(te,wr)|0,A=A+Math.imul(re,mr)|0,U=U+Math.imul(re,wr)|0;var Yh=(G+P|0)+((A&8191)<<13)|0;G=(U+(A>>>13)|0)+(Yh>>>26)|0,Yh&=67108863,P=Math.imul(Dt,Y),A=Math.imul(Dt,ae),A=A+Math.imul(N,Y)|0,U=Math.imul(N,ae),P=P+Math.imul(xt,qe)|0,A=A+Math.imul(xt,Ve)|0,A=A+Math.imul(Bt,qe)|0,U=U+Math.imul(Bt,Ve)|0,P=P+Math.imul(pt,Ge)|0,A=A+Math.imul(pt,fr)|0,A=A+Math.imul(St,Ge)|0,U=U+Math.imul(St,fr)|0,P=P+Math.imul(It,hr)|0,A=A+Math.imul(It,dr)|0,A=A+Math.imul(Ct,hr)|0,U=U+Math.imul(Ct,dr)|0,P=P+Math.imul(dt,ar)|0,A=A+Math.imul(dt,pr)|0,A=A+Math.imul(Ut,ar)|0,U=U+Math.imul(Ut,pr)|0,P=P+Math.imul(Qe,cr)|0,A=A+Math.imul(Qe,gr)|0,A=A+Math.imul(ot,cr)|0,U=U+Math.imul(ot,gr)|0,P=P+Math.imul(Fe,Xt)|0,A=A+Math.imul(Fe,yr)|0,A=A+Math.imul(Be,Xt)|0,U=U+Math.imul(Be,yr)|0,P=P+Math.imul(ye,mr)|0,A=A+Math.imul(ye,wr)|0,A=A+Math.imul(be,mr)|0,U=U+Math.imul(be,wr)|0,P=P+Math.imul(te,br)|0,A=A+Math.imul(te,_r)|0,A=A+Math.imul(re,br)|0,U=U+Math.imul(re,_r)|0;var so=(G+P|0)+((A&8191)<<13)|0;G=(U+(A>>>13)|0)+(so>>>26)|0,so&=67108863,P=Math.imul(v,Y),A=Math.imul(v,ae),A=A+Math.imul($,Y)|0,U=Math.imul($,ae),P=P+Math.imul(Dt,qe)|0,A=A+Math.imul(Dt,Ve)|0,A=A+Math.imul(N,qe)|0,U=U+Math.imul(N,Ve)|0,P=P+Math.imul(xt,Ge)|0,A=A+Math.imul(xt,fr)|0,A=A+Math.imul(Bt,Ge)|0,U=U+Math.imul(Bt,fr)|0,P=P+Math.imul(pt,hr)|0,A=A+Math.imul(pt,dr)|0,A=A+Math.imul(St,hr)|0,U=U+Math.imul(St,dr)|0,P=P+Math.imul(It,ar)|0,A=A+Math.imul(It,pr)|0,A=A+Math.imul(Ct,ar)|0,U=U+Math.imul(Ct,pr)|0,P=P+Math.imul(dt,cr)|0,A=A+Math.imul(dt,gr)|0,A=A+Math.imul(Ut,cr)|0,U=U+Math.imul(Ut,gr)|0,P=P+Math.imul(Qe,Xt)|0,A=A+Math.imul(Qe,yr)|0,A=A+Math.imul(ot,Xt)|0,U=U+Math.imul(ot,yr)|0,P=P+Math.imul(Fe,mr)|0,A=A+Math.imul(Fe,wr)|0,A=A+Math.imul(Be,mr)|0,U=U+Math.imul(Be,wr)|0,P=P+Math.imul(ye,br)|0,A=A+Math.imul(ye,_r)|0,A=A+Math.imul(be,br)|0,U=U+Math.imul(be,_r)|0,P=P+Math.imul(te,Ar)|0,A=A+Math.imul(te,vr)|0,A=A+Math.imul(re,Ar)|0,U=U+Math.imul(re,vr)|0;var Jh=(G+P|0)+((A&8191)<<13)|0;G=(U+(A>>>13)|0)+(Jh>>>26)|0,Jh&=67108863,P=Math.imul(v,qe),A=Math.imul(v,Ve),A=A+Math.imul($,qe)|0,U=Math.imul($,Ve),P=P+Math.imul(Dt,Ge)|0,A=A+Math.imul(Dt,fr)|0,A=A+Math.imul(N,Ge)|0,U=U+Math.imul(N,fr)|0,P=P+Math.imul(xt,hr)|0,A=A+Math.imul(xt,dr)|0,A=A+Math.imul(Bt,hr)|0,U=U+Math.imul(Bt,dr)|0,P=P+Math.imul(pt,ar)|0,A=A+Math.imul(pt,pr)|0,A=A+Math.imul(St,ar)|0,U=U+Math.imul(St,pr)|0,P=P+Math.imul(It,cr)|0,A=A+Math.imul(It,gr)|0,A=A+Math.imul(Ct,cr)|0,U=U+Math.imul(Ct,gr)|0,P=P+Math.imul(dt,Xt)|0,A=A+Math.imul(dt,yr)|0,A=A+Math.imul(Ut,Xt)|0,U=U+Math.imul(Ut,yr)|0,P=P+Math.imul(Qe,mr)|0,A=A+Math.imul(Qe,wr)|0,A=A+Math.imul(ot,mr)|0,U=U+Math.imul(ot,wr)|0,P=P+Math.imul(Fe,br)|0,A=A+Math.imul(Fe,_r)|0,A=A+Math.imul(Be,br)|0,U=U+Math.imul(Be,_r)|0,P=P+Math.imul(ye,Ar)|0,A=A+Math.imul(ye,vr)|0,A=A+Math.imul(be,Ar)|0,U=U+Math.imul(be,vr)|0;var Li=(G+P|0)+((A&8191)<<13)|0;G=(U+(A>>>13)|0)+(Li>>>26)|0,Li&=67108863,P=Math.imul(v,Ge),A=Math.imul(v,fr),A=A+Math.imul($,Ge)|0,U=Math.imul($,fr),P=P+Math.imul(Dt,hr)|0,A=A+Math.imul(Dt,dr)|0,A=A+Math.imul(N,hr)|0,U=U+Math.imul(N,dr)|0,P=P+Math.imul(xt,ar)|0,A=A+Math.imul(xt,pr)|0,A=A+Math.imul(Bt,ar)|0,U=U+Math.imul(Bt,pr)|0,P=P+Math.imul(pt,cr)|0,A=A+Math.imul(pt,gr)|0,A=A+Math.imul(St,cr)|0,U=U+Math.imul(St,gr)|0,P=P+Math.imul(It,Xt)|0,A=A+Math.imul(It,yr)|0,A=A+Math.imul(Ct,Xt)|0,U=U+Math.imul(Ct,yr)|0,P=P+Math.imul(dt,mr)|0,A=A+Math.imul(dt,wr)|0,A=A+Math.imul(Ut,mr)|0,U=U+Math.imul(Ut,wr)|0,P=P+Math.imul(Qe,br)|0,A=A+Math.imul(Qe,_r)|0,A=A+Math.imul(ot,br)|0,U=U+Math.imul(ot,_r)|0,P=P+Math.imul(Fe,Ar)|0,A=A+Math.imul(Fe,vr)|0,A=A+Math.imul(Be,Ar)|0,U=U+Math.imul(Be,vr)|0;var Xh=(G+P|0)+((A&8191)<<13)|0;G=(U+(A>>>13)|0)+(Xh>>>26)|0,Xh&=67108863,P=Math.imul(v,hr),A=Math.imul(v,dr),A=A+Math.imul($,hr)|0,U=Math.imul($,dr),P=P+Math.imul(Dt,ar)|0,A=A+Math.imul(Dt,pr)|0,A=A+Math.imul(N,ar)|0,U=U+Math.imul(N,pr)|0,P=P+Math.imul(xt,cr)|0,A=A+Math.imul(xt,gr)|0,A=A+Math.imul(Bt,cr)|0,U=U+Math.imul(Bt,gr)|0,P=P+Math.imul(pt,Xt)|0,A=A+Math.imul(pt,yr)|0,A=A+Math.imul(St,Xt)|0,U=U+Math.imul(St,yr)|0,P=P+Math.imul(It,mr)|0,A=A+Math.imul(It,wr)|0,A=A+Math.imul(Ct,mr)|0,U=U+Math.imul(Ct,wr)|0,P=P+Math.imul(dt,br)|0,A=A+Math.imul(dt,_r)|0,A=A+Math.imul(Ut,br)|0,U=U+Math.imul(Ut,_r)|0,P=P+Math.imul(Qe,Ar)|0,A=A+Math.imul(Qe,vr)|0,A=A+Math.imul(ot,Ar)|0,U=U+Math.imul(ot,vr)|0;var ed=(G+P|0)+((A&8191)<<13)|0;G=(U+(A>>>13)|0)+(ed>>>26)|0,ed&=67108863,P=Math.imul(v,ar),A=Math.imul(v,pr),A=A+Math.imul($,ar)|0,U=Math.imul($,pr),P=P+Math.imul(Dt,cr)|0,A=A+Math.imul(Dt,gr)|0,A=A+Math.imul(N,cr)|0,U=U+Math.imul(N,gr)|0,P=P+Math.imul(xt,Xt)|0,A=A+Math.imul(xt,yr)|0,A=A+Math.imul(Bt,Xt)|0,U=U+Math.imul(Bt,yr)|0,P=P+Math.imul(pt,mr)|0,A=A+Math.imul(pt,wr)|0,A=A+Math.imul(St,mr)|0,U=U+Math.imul(St,wr)|0,P=P+Math.imul(It,br)|0,A=A+Math.imul(It,_r)|0,A=A+Math.imul(Ct,br)|0,U=U+Math.imul(Ct,_r)|0,P=P+Math.imul(dt,Ar)|0,A=A+Math.imul(dt,vr)|0,A=A+Math.imul(Ut,Ar)|0,U=U+Math.imul(Ut,vr)|0;var Hl=(G+P|0)+((A&8191)<<13)|0;G=(U+(A>>>13)|0)+(Hl>>>26)|0,Hl&=67108863,P=Math.imul(v,cr),A=Math.imul(v,gr),A=A+Math.imul($,cr)|0,U=Math.imul($,gr),P=P+Math.imul(Dt,Xt)|0,A=A+Math.imul(Dt,yr)|0,A=A+Math.imul(N,Xt)|0,U=U+Math.imul(N,yr)|0,P=P+Math.imul(xt,mr)|0,A=A+Math.imul(xt,wr)|0,A=A+Math.imul(Bt,mr)|0,U=U+Math.imul(Bt,wr)|0,P=P+Math.imul(pt,br)|0,A=A+Math.imul(pt,_r)|0,A=A+Math.imul(St,br)|0,U=U+Math.imul(St,_r)|0,P=P+Math.imul(It,Ar)|0,A=A+Math.imul(It,vr)|0,A=A+Math.imul(Ct,Ar)|0,U=U+Math.imul(Ct,vr)|0;var td=(G+P|0)+((A&8191)<<13)|0;G=(U+(A>>>13)|0)+(td>>>26)|0,td&=67108863,P=Math.imul(v,Xt),A=Math.imul(v,yr),A=A+Math.imul($,Xt)|0,U=Math.imul($,yr),P=P+Math.imul(Dt,mr)|0,A=A+Math.imul(Dt,wr)|0,A=A+Math.imul(N,mr)|0,U=U+Math.imul(N,wr)|0,P=P+Math.imul(xt,br)|0,A=A+Math.imul(xt,_r)|0,A=A+Math.imul(Bt,br)|0,U=U+Math.imul(Bt,_r)|0,P=P+Math.imul(pt,Ar)|0,A=A+Math.imul(pt,vr)|0,A=A+Math.imul(St,Ar)|0,U=U+Math.imul(St,vr)|0;var rd=(G+P|0)+((A&8191)<<13)|0;G=(U+(A>>>13)|0)+(rd>>>26)|0,rd&=67108863,P=Math.imul(v,mr),A=Math.imul(v,wr),A=A+Math.imul($,mr)|0,U=Math.imul($,wr),P=P+Math.imul(Dt,br)|0,A=A+Math.imul(Dt,_r)|0,A=A+Math.imul(N,br)|0,U=U+Math.imul(N,_r)|0,P=P+Math.imul(xt,Ar)|0,A=A+Math.imul(xt,vr)|0,A=A+Math.imul(Bt,Ar)|0,U=U+Math.imul(Bt,vr)|0;var nd=(G+P|0)+((A&8191)<<13)|0;G=(U+(A>>>13)|0)+(nd>>>26)|0,nd&=67108863,P=Math.imul(v,br),A=Math.imul(v,_r),A=A+Math.imul($,br)|0,U=Math.imul($,_r),P=P+Math.imul(Dt,Ar)|0,A=A+Math.imul(Dt,vr)|0,A=A+Math.imul(N,Ar)|0,U=U+Math.imul(N,vr)|0;var id=(G+P|0)+((A&8191)<<13)|0;G=(U+(A>>>13)|0)+(id>>>26)|0,id&=67108863,P=Math.imul(v,Ar),A=Math.imul(v,vr),A=A+Math.imul($,Ar)|0,U=Math.imul($,vr);var aa=(G+P|0)+((A&8191)<<13)|0;return G=(U+(A>>>13)|0)+(aa>>>26)|0,aa&=67108863,M[0]=Wh,M[1]=$l,M[2]=Vh,M[3]=qh,M[4]=Zh,M[5]=Qh,M[6]=Fl,M[7]=Yh,M[8]=so,M[9]=Jh,M[10]=Li,M[11]=Xh,M[12]=ed,M[13]=Hl,M[14]=td,M[15]=rd,M[16]=nd,M[17]=id,M[18]=aa,G!==0&&(M[19]=G,E.length++),E};Math.imul||(H=C);function D(B,p,m){m.negative=p.negative^B.negative,m.length=B.length+p.length;for(var E=0,k=0,O=0;O<m.length-1;O++){var M=k;k=0;for(var G=E&67108863,P=Math.min(O,p.length-1),A=Math.max(0,O-B.length+1);A<=P;A++){var U=O-A,le=B.words[U]|0,te=p.words[A]|0,re=le*te,he=re&67108863;M=M+(re/67108864|0)|0,he=he+G|0,G=he&67108863,M=M+(he>>>26)|0,k+=M>>>26,M&=67108863}m.words[O]=G,E=M,M=k}return E!==0?m.words[O]=E:m.length--,m._strip()}function z(B,p,m){return D(B,p,m)}s.prototype.mulTo=function(p,m){var E,k=this.length+p.length;return this.length===10&&p.length===10?E=H(this,p,m):k<63?E=C(this,p,m):k<1024?E=D(this,p,m):E=z(this,p,m),E},s.prototype.mul=function(p){var m=new s(null);return m.words=new Array(this.length+p.length),this.mulTo(p,m)},s.prototype.mulf=function(p){var m=new s(null);return m.words=new Array(this.length+p.length),z(this,p,m)},s.prototype.imul=function(p){return this.clone().mulTo(p,this)},s.prototype.imuln=function(p){var m=p<0;m&&(p=-p),n(typeof p=="number"),n(p<67108864);for(var E=0,k=0;k<this.length;k++){var O=(this.words[k]|0)*p,M=(O&67108863)+(E&67108863);E>>=26,E+=O/67108864|0,E+=M>>>26,this.words[k]=M&67108863}return E!==0&&(this.words[k]=E,this.length++),m?this.ineg():this},s.prototype.muln=function(p){return this.clone().imuln(p)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(p){var m=x(p);if(m.length===0)return new s(1);for(var E=this,k=0;k<m.length&&m[k]===0;k++,E=E.sqr());if(++k<m.length)for(var O=E.sqr();k<m.length;k++,O=O.sqr())m[k]!==0&&(E=E.mul(O));return E},s.prototype.iushln=function(p){n(typeof p=="number"&&p>=0);var m=p%26,E=(p-m)/26,k=67108863>>>26-m<<26-m,O;if(m!==0){var M=0;for(O=0;O<this.length;O++){var G=this.words[O]&k,P=(this.words[O]|0)-G<<m;this.words[O]=P|M,M=G>>>26-m}M&&(this.words[O]=M,this.length++)}if(E!==0){for(O=this.length-1;O>=0;O--)this.words[O+E]=this.words[O];for(O=0;O<E;O++)this.words[O]=0;this.length+=E}return this._strip()},s.prototype.ishln=function(p){return n(this.negative===0),this.iushln(p)},s.prototype.iushrn=function(p,m,E){n(typeof p=="number"&&p>=0);var k;m?k=(m-m%26)/26:k=0;var O=p%26,M=Math.min((p-O)/26,this.length),G=67108863^67108863>>>O<<O,P=E;if(k-=M,k=Math.max(0,k),P){for(var A=0;A<M;A++)P.words[A]=this.words[A];P.length=M}if(M!==0)if(this.length>M)for(this.length-=M,A=0;A<this.length;A++)this.words[A]=this.words[A+M];else this.words[0]=0,this.length=1;var U=0;for(A=this.length-1;A>=0&&(U!==0||A>=k);A--){var le=this.words[A]|0;this.words[A]=U<<26-O|le>>>O,U=le&G}return P&&U!==0&&(P.words[P.length++]=U),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},s.prototype.ishrn=function(p,m,E){return n(this.negative===0),this.iushrn(p,m,E)},s.prototype.shln=function(p){return this.clone().ishln(p)},s.prototype.ushln=function(p){return this.clone().iushln(p)},s.prototype.shrn=function(p){return this.clone().ishrn(p)},s.prototype.ushrn=function(p){return this.clone().iushrn(p)},s.prototype.testn=function(p){n(typeof p=="number"&&p>=0);var m=p%26,E=(p-m)/26,k=1<<m;if(this.length<=E)return!1;var O=this.words[E];return!!(O&k)},s.prototype.imaskn=function(p){n(typeof p=="number"&&p>=0);var m=p%26,E=(p-m)/26;if(n(this.negative===0,"imaskn works only with positive numbers"),this.length<=E)return this;if(m!==0&&E++,this.length=Math.min(E,this.length),m!==0){var k=67108863^67108863>>>m<<m;this.words[this.length-1]&=k}return this._strip()},s.prototype.maskn=function(p){return this.clone().imaskn(p)},s.prototype.iaddn=function(p){return n(typeof p=="number"),n(p<67108864),p<0?this.isubn(-p):this.negative!==0?this.length===1&&(this.words[0]|0)<=p?(this.words[0]=p-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(p),this.negative=1,this):this._iaddn(p)},s.prototype._iaddn=function(p){this.words[0]+=p;for(var m=0;m<this.length&&this.words[m]>=67108864;m++)this.words[m]-=67108864,m===this.length-1?this.words[m+1]=1:this.words[m+1]++;return this.length=Math.max(this.length,m+1),this},s.prototype.isubn=function(p){if(n(typeof p=="number"),n(p<67108864),p<0)return this.iaddn(-p);if(this.negative!==0)return this.negative=0,this.iaddn(p),this.negative=1,this;if(this.words[0]-=p,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var m=0;m<this.length&&this.words[m]<0;m++)this.words[m]+=67108864,this.words[m+1]-=1;return this._strip()},s.prototype.addn=function(p){return this.clone().iaddn(p)},s.prototype.subn=function(p){return this.clone().isubn(p)},s.prototype.iabs=function(){return this.negative=0,this},s.prototype.abs=function(){return this.clone().iabs()},s.prototype._ishlnsubmul=function(p,m,E){var k=p.length+E,O;this._expand(k);var M,G=0;for(O=0;O<p.length;O++){M=(this.words[O+E]|0)+G;var P=(p.words[O]|0)*m;M-=P&67108863,G=(M>>26)-(P/67108864|0),this.words[O+E]=M&67108863}for(;O<this.length-E;O++)M=(this.words[O+E]|0)+G,G=M>>26,this.words[O+E]=M&67108863;if(G===0)return this._strip();for(n(G===-1),G=0,O=0;O<this.length;O++)M=-(this.words[O]|0)+G,G=M>>26,this.words[O]=M&67108863;return this.negative=1,this._strip()},s.prototype._wordDiv=function(p,m){var E=this.length-p.length,k=this.clone(),O=p,M=O.words[O.length-1]|0,G=this._countBits(M);E=26-G,E!==0&&(O=O.ushln(E),k.iushln(E),M=O.words[O.length-1]|0);var P=k.length-O.length,A;if(m!=="mod"){A=new s(null),A.length=P+1,A.words=new Array(A.length);for(var U=0;U<A.length;U++)A.words[U]=0}var le=k.clone()._ishlnsubmul(O,1,P);le.negative===0&&(k=le,A&&(A.words[P]=1));for(var te=P-1;te>=0;te--){var re=(k.words[O.length+te]|0)*67108864+(k.words[O.length+te-1]|0);for(re=Math.min(re/M|0,67108863),k._ishlnsubmul(O,re,te);k.negative!==0;)re--,k.negative=0,k._ishlnsubmul(O,1,te),k.isZero()||(k.negative^=1);A&&(A.words[te]=re)}return A&&A._strip(),k._strip(),m!=="div"&&E!==0&&k.iushrn(E),{div:A||null,mod:k}},s.prototype.divmod=function(p,m,E){if(n(!p.isZero()),this.isZero())return{div:new s(0),mod:new s(0)};var k,O,M;return this.negative!==0&&p.negative===0?(M=this.neg().divmod(p,m),m!=="mod"&&(k=M.div.neg()),m!=="div"&&(O=M.mod.neg(),E&&O.negative!==0&&O.iadd(p)),{div:k,mod:O}):this.negative===0&&p.negative!==0?(M=this.divmod(p.neg(),m),m!=="mod"&&(k=M.div.neg()),{div:k,mod:M.mod}):this.negative&p.negative?(M=this.neg().divmod(p.neg(),m),m!=="div"&&(O=M.mod.neg(),E&&O.negative!==0&&O.isub(p)),{div:M.div,mod:O}):p.length>this.length||this.cmp(p)<0?{div:new s(0),mod:this}:p.length===1?m==="div"?{div:this.divn(p.words[0]),mod:null}:m==="mod"?{div:null,mod:new s(this.modrn(p.words[0]))}:{div:this.divn(p.words[0]),mod:new s(this.modrn(p.words[0]))}:this._wordDiv(p,m)},s.prototype.div=function(p){return this.divmod(p,"div",!1).div},s.prototype.mod=function(p){return this.divmod(p,"mod",!1).mod},s.prototype.umod=function(p){return this.divmod(p,"mod",!0).mod},s.prototype.divRound=function(p){var m=this.divmod(p);if(m.mod.isZero())return m.div;var E=m.div.negative!==0?m.mod.isub(p):m.mod,k=p.ushrn(1),O=p.andln(1),M=E.cmp(k);return M<0||O===1&&M===0?m.div:m.div.negative!==0?m.div.isubn(1):m.div.iaddn(1)},s.prototype.modrn=function(p){var m=p<0;m&&(p=-p),n(p<=67108863);for(var E=(1<<26)%p,k=0,O=this.length-1;O>=0;O--)k=(E*k+(this.words[O]|0))%p;return m?-k:k},s.prototype.modn=function(p){return this.modrn(p)},s.prototype.idivn=function(p){var m=p<0;m&&(p=-p),n(p<=67108863);for(var E=0,k=this.length-1;k>=0;k--){var O=(this.words[k]|0)+E*67108864;this.words[k]=O/p|0,E=O%p}return this._strip(),m?this.ineg():this},s.prototype.divn=function(p){return this.clone().idivn(p)},s.prototype.egcd=function(p){n(p.negative===0),n(!p.isZero());var m=this,E=p.clone();m.negative!==0?m=m.umod(p):m=m.clone();for(var k=new s(1),O=new s(0),M=new s(0),G=new s(1),P=0;m.isEven()&&E.isEven();)m.iushrn(1),E.iushrn(1),++P;for(var A=E.clone(),U=m.clone();!m.isZero();){for(var le=0,te=1;!(m.words[0]&te)&&le<26;++le,te<<=1);if(le>0)for(m.iushrn(le);le-- >0;)(k.isOdd()||O.isOdd())&&(k.iadd(A),O.isub(U)),k.iushrn(1),O.iushrn(1);for(var re=0,he=1;!(E.words[0]&he)&&re<26;++re,he<<=1);if(re>0)for(E.iushrn(re);re-- >0;)(M.isOdd()||G.isOdd())&&(M.iadd(A),G.isub(U)),M.iushrn(1),G.iushrn(1);m.cmp(E)>=0?(m.isub(E),k.isub(M),O.isub(G)):(E.isub(m),M.isub(k),G.isub(O))}return{a:M,b:G,gcd:E.iushln(P)}},s.prototype._invmp=function(p){n(p.negative===0),n(!p.isZero());var m=this,E=p.clone();m.negative!==0?m=m.umod(p):m=m.clone();for(var k=new s(1),O=new s(0),M=E.clone();m.cmpn(1)>0&&E.cmpn(1)>0;){for(var G=0,P=1;!(m.words[0]&P)&&G<26;++G,P<<=1);if(G>0)for(m.iushrn(G);G-- >0;)k.isOdd()&&k.iadd(M),k.iushrn(1);for(var A=0,U=1;!(E.words[0]&U)&&A<26;++A,U<<=1);if(A>0)for(E.iushrn(A);A-- >0;)O.isOdd()&&O.iadd(M),O.iushrn(1);m.cmp(E)>=0?(m.isub(E),k.isub(O)):(E.isub(m),O.isub(k))}var le;return m.cmpn(1)===0?le=k:le=O,le.cmpn(0)<0&&le.iadd(p),le},s.prototype.gcd=function(p){if(this.isZero())return p.abs();if(p.isZero())return this.abs();var m=this.clone(),E=p.clone();m.negative=0,E.negative=0;for(var k=0;m.isEven()&&E.isEven();k++)m.iushrn(1),E.iushrn(1);do{for(;m.isEven();)m.iushrn(1);for(;E.isEven();)E.iushrn(1);var O=m.cmp(E);if(O<0){var M=m;m=E,E=M}else if(O===0||E.cmpn(1)===0)break;m.isub(E)}while(!0);return E.iushln(k)},s.prototype.invm=function(p){return this.egcd(p).a.umod(p)},s.prototype.isEven=function(){return(this.words[0]&1)===0},s.prototype.isOdd=function(){return(this.words[0]&1)===1},s.prototype.andln=function(p){return this.words[0]&p},s.prototype.bincn=function(p){n(typeof p=="number");var m=p%26,E=(p-m)/26,k=1<<m;if(this.length<=E)return this._expand(E+1),this.words[E]|=k,this;for(var O=k,M=E;O!==0&&M<this.length;M++){var G=this.words[M]|0;G+=O,O=G>>>26,G&=67108863,this.words[M]=G}return O!==0&&(this.words[M]=O,this.length++),this},s.prototype.isZero=function(){return this.length===1&&this.words[0]===0},s.prototype.cmpn=function(p){var m=p<0;if(this.negative!==0&&!m)return-1;if(this.negative===0&&m)return 1;this._strip();var E;if(this.length>1)E=1;else{m&&(p=-p),n(p<=67108863,"Number is too big");var k=this.words[0]|0;E=k===p?0:k<p?-1:1}return this.negative!==0?-E|0:E},s.prototype.cmp=function(p){if(this.negative!==0&&p.negative===0)return-1;if(this.negative===0&&p.negative!==0)return 1;var m=this.ucmp(p);return this.negative!==0?-m|0:m},s.prototype.ucmp=function(p){if(this.length>p.length)return 1;if(this.length<p.length)return-1;for(var m=0,E=this.length-1;E>=0;E--){var k=this.words[E]|0,O=p.words[E]|0;if(k!==O){k<O?m=-1:k>O&&(m=1);break}}return m},s.prototype.gtn=function(p){return this.cmpn(p)===1},s.prototype.gt=function(p){return this.cmp(p)===1},s.prototype.gten=function(p){return this.cmpn(p)>=0},s.prototype.gte=function(p){return this.cmp(p)>=0},s.prototype.ltn=function(p){return this.cmpn(p)===-1},s.prototype.lt=function(p){return this.cmp(p)===-1},s.prototype.lten=function(p){return this.cmpn(p)<=0},s.prototype.lte=function(p){return this.cmp(p)<=0},s.prototype.eqn=function(p){return this.cmpn(p)===0},s.prototype.eq=function(p){return this.cmp(p)===0},s.red=function(p){return new ie(p)},s.prototype.toRed=function(p){return n(!this.red,"Already a number in reduction context"),n(this.negative===0,"red works only with positives"),p.convertTo(this)._forceRed(p)},s.prototype.fromRed=function(){return n(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(p){return this.red=p,this},s.prototype.forceRed=function(p){return n(!this.red,"Already a number in reduction context"),this._forceRed(p)},s.prototype.redAdd=function(p){return n(this.red,"redAdd works only with red numbers"),this.red.add(this,p)},s.prototype.redIAdd=function(p){return n(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,p)},s.prototype.redSub=function(p){return n(this.red,"redSub works only with red numbers"),this.red.sub(this,p)},s.prototype.redISub=function(p){return n(this.red,"redISub works only with red numbers"),this.red.isub(this,p)},s.prototype.redShl=function(p){return n(this.red,"redShl works only with red numbers"),this.red.shl(this,p)},s.prototype.redMul=function(p){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,p),this.red.mul(this,p)},s.prototype.redIMul=function(p){return n(this.red,"redMul works only with red numbers"),this.red._verify2(this,p),this.red.imul(this,p)},s.prototype.redSqr=function(){return n(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return n(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return n(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return n(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return n(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(p){return n(this.red&&!p.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,p)};var V={k256:null,p224:null,p192:null,p25519:null};function Z(B,p){this.name=B,this.p=new s(p,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}Z.prototype._tmp=function(){var p=new s(null);return p.words=new Array(Math.ceil(this.n/13)),p},Z.prototype.ireduce=function(p){var m=p,E;do this.split(m,this.tmp),m=this.imulK(m),m=m.iadd(this.tmp),E=m.bitLength();while(E>this.n);var k=E<this.n?-1:m.ucmp(this.p);return k===0?(m.words[0]=0,m.length=1):k>0?m.isub(this.p):m.strip!==void 0?m.strip():m._strip(),m},Z.prototype.split=function(p,m){p.iushrn(this.n,0,m)},Z.prototype.imulK=function(p){return p.imul(this.k)};function K(){Z.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}i(K,Z),K.prototype.split=function(p,m){for(var E=4194303,k=Math.min(p.length,9),O=0;O<k;O++)m.words[O]=p.words[O];if(m.length=k,p.length<=9){p.words[0]=0,p.length=1;return}var M=p.words[9];for(m.words[m.length++]=M&E,O=10;O<p.length;O++){var G=p.words[O]|0;p.words[O-10]=(G&E)<<4|M>>>22,M=G}M>>>=22,p.words[O-10]=M,M===0&&p.length>10?p.length-=10:p.length-=9},K.prototype.imulK=function(p){p.words[p.length]=0,p.words[p.length+1]=0,p.length+=2;for(var m=0,E=0;E<p.length;E++){var k=p.words[E]|0;m+=k*977,p.words[E]=m&67108863,m=k*64+(m/67108864|0)}return p.words[p.length-1]===0&&(p.length--,p.words[p.length-1]===0&&p.length--),p};function W(){Z.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}i(W,Z);function oe(){Z.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}i(oe,Z);function ce(){Z.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}i(ce,Z),ce.prototype.imulK=function(p){for(var m=0,E=0;E<p.length;E++){var k=(p.words[E]|0)*19+m,O=k&67108863;k>>>=26,p.words[E]=O,m=k}return m!==0&&(p.words[p.length++]=m),p},s._prime=function(p){if(V[p])return V[p];var m;if(p==="k256")m=new K;else if(p==="p224")m=new W;else if(p==="p192")m=new oe;else if(p==="p25519")m=new ce;else throw new Error("Unknown prime "+p);return V[p]=m,m};function ie(B){if(typeof B=="string"){var p=s._prime(B);this.m=p.p,this.prime=p}else n(B.gtn(1),"modulus must be greater than 1"),this.m=B,this.prime=null}ie.prototype._verify1=function(p){n(p.negative===0,"red works only with positives"),n(p.red,"red works only with red numbers")},ie.prototype._verify2=function(p,m){n((p.negative|m.negative)===0,"red works only with positives"),n(p.red&&p.red===m.red,"red works only with red numbers")},ie.prototype.imod=function(p){return this.prime?this.prime.ireduce(p)._forceRed(this):(h(p,p.umod(this.m)._forceRed(this)),p)},ie.prototype.neg=function(p){return p.isZero()?p.clone():this.m.sub(p)._forceRed(this)},ie.prototype.add=function(p,m){this._verify2(p,m);var E=p.add(m);return E.cmp(this.m)>=0&&E.isub(this.m),E._forceRed(this)},ie.prototype.iadd=function(p,m){this._verify2(p,m);var E=p.iadd(m);return E.cmp(this.m)>=0&&E.isub(this.m),E},ie.prototype.sub=function(p,m){this._verify2(p,m);var E=p.sub(m);return E.cmpn(0)<0&&E.iadd(this.m),E._forceRed(this)},ie.prototype.isub=function(p,m){this._verify2(p,m);var E=p.isub(m);return E.cmpn(0)<0&&E.iadd(this.m),E},ie.prototype.shl=function(p,m){return this._verify1(p),this.imod(p.ushln(m))},ie.prototype.imul=function(p,m){return this._verify2(p,m),this.imod(p.imul(m))},ie.prototype.mul=function(p,m){return this._verify2(p,m),this.imod(p.mul(m))},ie.prototype.isqr=function(p){return this.imul(p,p.clone())},ie.prototype.sqr=function(p){return this.mul(p,p)},ie.prototype.sqrt=function(p){if(p.isZero())return p.clone();var m=this.m.andln(3);if(n(m%2===1),m===3){var E=this.m.add(new s(1)).iushrn(2);return this.pow(p,E)}for(var k=this.m.subn(1),O=0;!k.isZero()&&k.andln(1)===0;)O++,k.iushrn(1);n(!k.isZero());var M=new s(1).toRed(this),G=M.redNeg(),P=this.m.subn(1).iushrn(1),A=this.m.bitLength();for(A=new s(2*A*A).toRed(this);this.pow(A,P).cmp(G)!==0;)A.redIAdd(G);for(var U=this.pow(A,k),le=this.pow(p,k.addn(1).iushrn(1)),te=this.pow(p,k),re=O;te.cmp(M)!==0;){for(var he=te,ye=0;he.cmp(M)!==0;ye++)he=he.redSqr();n(ye<re);var be=this.pow(U,new s(1).iushln(re-ye-1));le=le.redMul(be),U=be.redSqr(),te=te.redMul(U),re=ye}return le},ie.prototype.invm=function(p){var m=p._invmp(this.m);return m.negative!==0?(m.negative=0,this.imod(m).redNeg()):this.imod(m)},ie.prototype.pow=function(p,m){if(m.isZero())return new s(1).toRed(this);if(m.cmpn(1)===0)return p.clone();var E=4,k=new Array(1<<E);k[0]=new s(1).toRed(this),k[1]=p;for(var O=2;O<k.length;O++)k[O]=this.mul(k[O-1],p);var M=k[0],G=0,P=0,A=m.bitLength()%26;for(A===0&&(A=26),O=m.length-1;O>=0;O--){for(var U=m.words[O],le=A-1;le>=0;le--){var te=U>>le&1;if(M!==k[0]&&(M=this.sqr(M)),te===0&&G===0){P=0;continue}G<<=1,G|=te,P++,!(P!==E&&(O!==0||le!==0))&&(M=this.mul(M,k[G]),P=0,G=0)}A=26}return M},ie.prototype.convertTo=function(p){var m=p.umod(this.m);return m===p?m.clone():m},ie.prototype.convertFrom=function(p){var m=p.clone();return m.red=null,m},s.mont=function(p){return new ue(p)};function ue(B){ie.call(this,B),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}i(ue,ie),ue.prototype.convertTo=function(p){return this.imod(p.ushln(this.shift))},ue.prototype.convertFrom=function(p){var m=this.imod(p.mul(this.rinv));return m.red=null,m},ue.prototype.imul=function(p,m){if(p.isZero()||m.isZero())return p.words[0]=0,p.length=1,p;var E=p.imul(m),k=E.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),O=E.isub(k).iushrn(this.shift),M=O;return O.cmp(this.m)>=0?M=O.isub(this.m):O.cmpn(0)<0&&(M=O.iadd(this.m)),M._forceRed(this)},ue.prototype.mul=function(p,m){if(p.isZero()||m.isZero())return new s(0)._forceRed(this);var E=p.mul(m),k=E.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),O=E.isub(k).iushrn(this.shift),M=O;return O.cmp(this.m)>=0?M=O.isub(this.m):O.cmpn(0)<0&&(M=O.iadd(this.m)),M._forceRed(this)},ue.prototype.invm=function(p){var m=this.imod(p._invmp(this.m).mul(this.r2));return m._forceRed(this)}})(r,ut)}(Uy);var $y=Uy.exports;const vs=xn($y);function r0(r){if(!Number.isSafeInteger(r)||r<0)throw new Error("positive integer expected, got "+r)}function UG(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function vf(r,...e){if(!UG(r))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(r.length))throw new Error("Uint8Array expected of length "+e+", got length="+r.length)}function DG(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");r0(r.outputLen),r0(r.blockLen)}function Yc(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function CE(r,e){vf(r);const t=e.outputLen;if(r.length<t)throw new Error("digestInto() expects output buffer of length at least "+t)}const Jc=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function $G(r){return new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4))}function Fy(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function zi(r,e){return r<<32-e|r>>>e}const BE=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function FG(r){return r<<24&4278190080|r<<8&16711680|r>>>8&65280|r>>>24&255}function PE(r){for(let e=0;e<r.length;e++)r[e]=FG(r[e])}function HG(r){if(typeof r!="string")throw new Error("utf8ToBytes expected string, got "+typeof r);return new Uint8Array(new TextEncoder().encode(r))}function n0(r){return typeof r=="string"&&(r=HG(r)),vf(r),r}function zG(...r){let e=0;for(let n=0;n<r.length;n++){const i=r[n];vf(i),e+=i.length}const t=new Uint8Array(e);for(let n=0,i=0;n<r.length;n++){const s=r[n];t.set(s,i),i+=s.length}return t}let Hy=class{clone(){return this._cloneInto()}};function zy(r){const e=n=>r().update(n0(n)).digest(),t=r();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>r(),e}function ME(r=32){if(Jc&&typeof Jc.getRandomValues=="function")return Jc.getRandomValues(new Uint8Array(r));if(Jc&&typeof Jc.randomBytes=="function")return Jc.randomBytes(r);throw new Error("crypto.getRandomValues must be defined")}function GG(r,e,t,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,n);const i=BigInt(32),s=BigInt(4294967295),o=Number(t>>i&s),a=Number(t&s),u=n?4:0,l=n?0:4;r.setUint32(e+u,o,n),r.setUint32(e+l,a,n)}function KG(r,e,t){return r&e^~r&t}function jG(r,e,t){return r&e^r&t^e&t}class LE extends Hy{constructor(e,t,n,i){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Fy(this.buffer)}update(e){Yc(this);const{view:t,buffer:n,blockLen:i}=this;e=n0(e);const s=e.length;for(let o=0;o<s;){const a=Math.min(i-this.pos,s-o);if(a===i){const u=Fy(e);for(;i<=s-o;o+=i)this.process(u,o);continue}n.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Yc(this),CE(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:i,isLE:s}=this;let{pos:o}=this;t[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>i-o&&(this.process(n,0),o=0);for(let g=o;g<i;g++)t[g]=0;GG(n,i-8,BigInt(this.length*8),s),this.process(n,0);const a=Fy(e),u=this.outputLen;if(u%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const l=u/4,h=this.get();if(l>h.length)throw new Error("_sha2: outputLen bigger than state");for(let g=0;g<l;g++)a.setUint32(4*g,h[g],s)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:n,length:i,finished:s,destroyed:o,pos:a}=this;return e.length=i,e.pos=a,e.finished=s,e.destroyed=o,i%t&&e.buffer.set(n),e}}const i0=BigInt(2**32-1),Gy=BigInt(32);function UE(r,e=!1){return e?{h:Number(r&i0),l:Number(r>>Gy&i0)}:{h:Number(r>>Gy&i0)|0,l:Number(r&i0)|0}}function DE(r,e=!1){let t=new Uint32Array(r.length),n=new Uint32Array(r.length);for(let i=0;i<r.length;i++){const{h:s,l:o}=UE(r[i],e);[t[i],n[i]]=[s,o]}return[t,n]}const WG=(r,e)=>BigInt(r>>>0)<<Gy|BigInt(e>>>0),VG=(r,e,t)=>r>>>t,qG=(r,e,t)=>r<<32-t|e>>>t,ZG=(r,e,t)=>r>>>t|e<<32-t,QG=(r,e,t)=>r<<32-t|e>>>t,YG=(r,e,t)=>r<<64-t|e>>>t-32,JG=(r,e,t)=>r>>>t-32|e<<64-t,XG=(r,e)=>e,eK=(r,e)=>r,$E=(r,e,t)=>r<<t|e>>>32-t,FE=(r,e,t)=>e<<t|r>>>32-t,HE=(r,e,t)=>e<<t-32|r>>>64-t,zE=(r,e,t)=>r<<t-32|e>>>64-t;function tK(r,e,t,n){const i=(e>>>0)+(n>>>0);return{h:r+t+(i/2**32|0)|0,l:i|0}}const rt={fromBig:UE,split:DE,toBig:WG,shrSH:VG,shrSL:qG,rotrSH:ZG,rotrSL:QG,rotrBH:YG,rotrBL:JG,rotr32H:XG,rotr32L:eK,rotlSH:$E,rotlSL:FE,rotlBH:HE,rotlBL:zE,add:tK,add3L:(r,e,t)=>(r>>>0)+(e>>>0)+(t>>>0),add3H:(r,e,t,n)=>e+t+n+(r/2**32|0)|0,add4L:(r,e,t,n)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0),add4H:(r,e,t,n,i)=>e+t+n+i+(r/2**32|0)|0,add5H:(r,e,t,n,i,s)=>e+t+n+i+s+(r/2**32|0)|0,add5L:(r,e,t,n,i)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0)+(i>>>0)},[rK,nK]=rt.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(r=>BigInt(r))),fo=new Uint32Array(80),ho=new Uint32Array(80);let iK=class extends LE{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:e,Al:t,Bh:n,Bl:i,Ch:s,Cl:o,Dh:a,Dl:u,Eh:l,El:h,Fh:g,Fl:b,Gh:w,Gl:I,Hh:S,Hl:x}=this;return[e,t,n,i,s,o,a,u,l,h,g,b,w,I,S,x]}set(e,t,n,i,s,o,a,u,l,h,g,b,w,I,S,x){this.Ah=e|0,this.Al=t|0,this.Bh=n|0,this.Bl=i|0,this.Ch=s|0,this.Cl=o|0,this.Dh=a|0,this.Dl=u|0,this.Eh=l|0,this.El=h|0,this.Fh=g|0,this.Fl=b|0,this.Gh=w|0,this.Gl=I|0,this.Hh=S|0,this.Hl=x|0}process(e,t){for(let D=0;D<16;D++,t+=4)fo[D]=e.getUint32(t),ho[D]=e.getUint32(t+=4);for(let D=16;D<80;D++){const z=fo[D-15]|0,V=ho[D-15]|0,Z=rt.rotrSH(z,V,1)^rt.rotrSH(z,V,8)^rt.shrSH(z,V,7),K=rt.rotrSL(z,V,1)^rt.rotrSL(z,V,8)^rt.shrSL(z,V,7),W=fo[D-2]|0,oe=ho[D-2]|0,ce=rt.rotrSH(W,oe,19)^rt.rotrBH(W,oe,61)^rt.shrSH(W,oe,6),ie=rt.rotrSL(W,oe,19)^rt.rotrBL(W,oe,61)^rt.shrSL(W,oe,6),ue=rt.add4L(K,ie,ho[D-7],ho[D-16]),B=rt.add4H(ue,Z,ce,fo[D-7],fo[D-16]);fo[D]=B|0,ho[D]=ue|0}let{Ah:n,Al:i,Bh:s,Bl:o,Ch:a,Cl:u,Dh:l,Dl:h,Eh:g,El:b,Fh:w,Fl:I,Gh:S,Gl:x,Hh:C,Hl:H}=this;for(let D=0;D<80;D++){const z=rt.rotrSH(g,b,14)^rt.rotrSH(g,b,18)^rt.rotrBH(g,b,41),V=rt.rotrSL(g,b,14)^rt.rotrSL(g,b,18)^rt.rotrBL(g,b,41),Z=g&w^~g&S,K=b&I^~b&x,W=rt.add5L(H,V,K,nK[D],ho[D]),oe=rt.add5H(W,C,z,Z,rK[D],fo[D]),ce=W|0,ie=rt.rotrSH(n,i,28)^rt.rotrBH(n,i,34)^rt.rotrBH(n,i,39),ue=rt.rotrSL(n,i,28)^rt.rotrBL(n,i,34)^rt.rotrBL(n,i,39),B=n&s^n&a^s&a,p=i&o^i&u^o&u;C=S|0,H=x|0,S=w|0,x=I|0,w=g|0,I=b|0,{h:g,l:b}=rt.add(l|0,h|0,oe|0,ce|0),l=a|0,h=u|0,a=s|0,u=o|0,s=n|0,o=i|0;const m=rt.add3L(ce,ue,p);n=rt.add3H(m,oe,ie,B),i=m|0}({h:n,l:i}=rt.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:s,l:o}=rt.add(this.Bh|0,this.Bl|0,s|0,o|0),{h:a,l:u}=rt.add(this.Ch|0,this.Cl|0,a|0,u|0),{h:l,l:h}=rt.add(this.Dh|0,this.Dl|0,l|0,h|0),{h:g,l:b}=rt.add(this.Eh|0,this.El|0,g|0,b|0),{h:w,l:I}=rt.add(this.Fh|0,this.Fl|0,w|0,I|0),{h:S,l:x}=rt.add(this.Gh|0,this.Gl|0,S|0,x|0),{h:C,l:H}=rt.add(this.Hh|0,this.Hl|0,C|0,H|0),this.set(n,i,s,o,a,u,l,h,g,b,w,I,S,x,C,H)}roundClean(){fo.fill(0),ho.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};const sK=zy(()=>new iK);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const s0=BigInt(0),o0=BigInt(1),oK=BigInt(2);function wa(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function Ef(r){if(!wa(r))throw new Error("Uint8Array expected")}function Es(r,e){if(typeof e!="boolean")throw new Error(r+" boolean expected, got "+e)}const aK=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));function ba(r){Ef(r);let e="";for(let t=0;t<r.length;t++)e+=aK[r[t]];return e}function Xc(r){const e=r.toString(16);return e.length&1?"0"+e:e}function Ky(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return r===""?s0:BigInt("0x"+r)}const xs={_0:48,_9:57,A:65,F:70,a:97,f:102};function GE(r){if(r>=xs._0&&r<=xs._9)return r-xs._0;if(r>=xs.A&&r<=xs.F)return r-(xs.A-10);if(r>=xs.a&&r<=xs.f)return r-(xs.a-10)}function eu(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);const e=r.length,t=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);const n=new Uint8Array(t);for(let i=0,s=0;i<t;i++,s+=2){const o=GE(r.charCodeAt(s)),a=GE(r.charCodeAt(s+1));if(o===void 0||a===void 0){const u=r[s]+r[s+1];throw new Error('hex string expected, got non-hex character "'+u+'" at index '+s)}n[i]=o*16+a}return n}function _a(r){return Ky(ba(r))}function tu(r){return Ef(r),Ky(ba(Uint8Array.from(r).reverse()))}function ru(r,e){return eu(r.toString(16).padStart(e*2,"0"))}function xf(r,e){return ru(r,e).reverse()}function cK(r){return eu(Xc(r))}function Tr(r,e,t){let n;if(typeof e=="string")try{n=eu(e)}catch(s){throw new Error(r+" must be hex string or Uint8Array, cause: "+s)}else if(wa(e))n=Uint8Array.from(e);else throw new Error(r+" must be hex string or Uint8Array");const i=n.length;if(typeof t=="number"&&i!==t)throw new Error(r+" of length "+t+" expected, got "+i);return n}function Aa(...r){let e=0;for(let n=0;n<r.length;n++){const i=r[n];Ef(i),e+=i.length}const t=new Uint8Array(e);for(let n=0,i=0;n<r.length;n++){const s=r[n];t.set(s,i),i+=s.length}return t}function uK(r,e){if(r.length!==e.length)return!1;let t=0;for(let n=0;n<r.length;n++)t|=r[n]^e[n];return t===0}function lK(r){if(typeof r!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(r))}const jy=r=>typeof r=="bigint"&&s0<=r;function a0(r,e,t){return jy(r)&&jy(e)&&jy(t)&&e<=r&&r<t}function ri(r,e,t,n){if(!a0(e,t,n))throw new Error("expected valid "+r+": "+t+" <= n < "+n+", got "+e)}function KE(r){let e;for(e=0;r>s0;r>>=o0,e+=1);return e}function fK(r,e){return r>>BigInt(e)&o0}function hK(r,e,t){return r|(t?o0:s0)<<BigInt(e)}const Wy=r=>(oK<<BigInt(r-1))-o0,Vy=r=>new Uint8Array(r),jE=r=>Uint8Array.from(r);function WE(r,e,t){if(typeof r!="number"||r<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof t!="function")throw new Error("hmacFn must be a function");let n=Vy(r),i=Vy(r),s=0;const o=()=>{n.fill(1),i.fill(0),s=0},a=(...g)=>t(i,n,...g),u=(g=Vy())=>{i=a(jE([0]),g),n=a(),g.length!==0&&(i=a(jE([1]),g),n=a())},l=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let g=0;const b=[];for(;g<e;){n=a();const w=n.slice();b.push(w),g+=n.length}return Aa(...b)};return(g,b)=>{o(),u(g);let w;for(;!(w=b(l()));)u();return o(),w}}const dK={bigint:r=>typeof r=="bigint",function:r=>typeof r=="function",boolean:r=>typeof r=="boolean",string:r=>typeof r=="string",stringOrUint8Array:r=>typeof r=="string"||wa(r),isSafeInteger:r=>Number.isSafeInteger(r),array:r=>Array.isArray(r),field:(r,e)=>e.Fp.isValid(r),hash:r=>typeof r=="function"&&Number.isSafeInteger(r.outputLen)};function nu(r,e,t={}){const n=(i,s,o)=>{const a=dK[s];if(typeof a!="function")throw new Error("invalid validator function");const u=r[i];if(!(o&&u===void 0)&&!a(u,r))throw new Error("param "+String(i)+" is invalid. Expected "+s+", got "+u)};for(const[i,s]of Object.entries(e))n(i,s,!1);for(const[i,s]of Object.entries(t))n(i,s,!0);return r}const pK=()=>{throw new Error("not implemented")};function Rf(r){const e=new WeakMap;return(t,...n)=>{const i=e.get(t);if(i!==void 0)return i;const s=r(t,...n);return e.set(t,s),s}}const gK=Object.freeze(Object.defineProperty({__proto__:null,aInRange:ri,abool:Es,abytes:Ef,bitGet:fK,bitLen:KE,bitMask:Wy,bitSet:hK,bytesToHex:ba,bytesToNumberBE:_a,bytesToNumberLE:tu,concatBytes:Aa,createHmacDrbg:WE,ensureBytes:Tr,equalBytes:uK,hexToBytes:eu,hexToNumber:Ky,inRange:a0,isBytes:wa,memoized:Rf,notImplemented:pK,numberToBytesBE:ru,numberToBytesLE:xf,numberToHexUnpadded:Xc,numberToVarBytesBE:cK,utf8ToBytes:lK,validateObject:nu},Symbol.toStringTag,{value:"Module"}));/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Mr=BigInt(0),tr=BigInt(1),va=BigInt(2),yK=BigInt(3),qy=BigInt(4),VE=BigInt(5),qE=BigInt(8);function Qt(r,e){const t=r%e;return t>=Mr?t:e+t}function mK(r,e,t){if(e<Mr)throw new Error("invalid exponent, negatives unsupported");if(t<=Mr)throw new Error("invalid modulus");if(t===tr)return Mr;let n=tr;for(;e>Mr;)e&tr&&(n=n*r%t),r=r*r%t,e>>=tr;return n}function ur(r,e,t){let n=r;for(;e-- >Mr;)n*=n,n%=t;return n}function Zy(r,e){if(r===Mr)throw new Error("invert: expected non-zero number");if(e<=Mr)throw new Error("invert: expected positive modulus, got "+e);let t=Qt(r,e),n=e,i=Mr,s=tr;for(;t!==Mr;){const a=n/t,u=n%t,l=i-s*a;n=t,t=u,i=s,s=l}if(n!==tr)throw new Error("invert: does not exist");return Qt(i,e)}function wK(r){const e=(r-tr)/va;let t,n,i;for(t=r-tr,n=0;t%va===Mr;t/=va,n++);for(i=va;i<r&&mK(i,e,r)!==r-tr;i++)if(i>1e3)throw new Error("Cannot find square root: likely non-prime P");if(n===1){const o=(r+tr)/qy;return function(u,l){const h=u.pow(l,o);if(!u.eql(u.sqr(h),l))throw new Error("Cannot find square root");return h}}const s=(t+tr)/va;return function(a,u){if(a.pow(u,e)===a.neg(a.ONE))throw new Error("Cannot find square root");let l=n,h=a.pow(a.mul(a.ONE,i),t),g=a.pow(u,s),b=a.pow(u,t);for(;!a.eql(b,a.ONE);){if(a.eql(b,a.ZERO))return a.ZERO;let w=1;for(let S=a.sqr(b);w<l&&!a.eql(S,a.ONE);w++)S=a.sqr(S);const I=a.pow(h,tr<<BigInt(l-w-1));h=a.sqr(I),g=a.mul(g,I),b=a.mul(b,h),l=w}return g}}function bK(r){if(r%qy===yK){const e=(r+tr)/qy;return function(n,i){const s=n.pow(i,e);if(!n.eql(n.sqr(s),i))throw new Error("Cannot find square root");return s}}if(r%qE===VE){const e=(r-VE)/qE;return function(n,i){const s=n.mul(i,va),o=n.pow(s,e),a=n.mul(i,o),u=n.mul(n.mul(a,va),o),l=n.mul(a,n.sub(u,n.ONE));if(!n.eql(n.sqr(l),i))throw new Error("Cannot find square root");return l}}return wK(r)}const _K=(r,e)=>(Qt(r,e)&tr)===tr,AK=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function vK(r){const e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},t=AK.reduce((n,i)=>(n[i]="function",n),e);return nu(r,t)}function EK(r,e,t){if(t<Mr)throw new Error("invalid exponent, negatives unsupported");if(t===Mr)return r.ONE;if(t===tr)return e;let n=r.ONE,i=e;for(;t>Mr;)t&tr&&(n=r.mul(n,i)),i=r.sqr(i),t>>=tr;return n}function xK(r,e){const t=new Array(e.length),n=e.reduce((s,o,a)=>r.is0(o)?s:(t[a]=s,r.mul(s,o)),r.ONE),i=r.inv(n);return e.reduceRight((s,o,a)=>r.is0(o)?s:(t[a]=r.mul(s,t[a]),r.mul(s,o)),i),t}function ZE(r,e){const t=e!==void 0?e:r.toString(2).length,n=Math.ceil(t/8);return{nBitLength:t,nByteLength:n}}function c0(r,e,t=!1,n={}){if(r<=Mr)throw new Error("invalid field: expected ORDER > 0, got "+r);const{nBitLength:i,nByteLength:s}=ZE(r,e);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let o;const a=Object.freeze({ORDER:r,isLE:t,BITS:i,BYTES:s,MASK:Wy(i),ZERO:Mr,ONE:tr,create:u=>Qt(u,r),isValid:u=>{if(typeof u!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof u);return Mr<=u&&u<r},is0:u=>u===Mr,isOdd:u=>(u&tr)===tr,neg:u=>Qt(-u,r),eql:(u,l)=>u===l,sqr:u=>Qt(u*u,r),add:(u,l)=>Qt(u+l,r),sub:(u,l)=>Qt(u-l,r),mul:(u,l)=>Qt(u*l,r),pow:(u,l)=>EK(a,u,l),div:(u,l)=>Qt(u*Zy(l,r),r),sqrN:u=>u*u,addN:(u,l)=>u+l,subN:(u,l)=>u-l,mulN:(u,l)=>u*l,inv:u=>Zy(u,r),sqrt:n.sqrt||(u=>(o||(o=bK(r)),o(a,u))),invertBatch:u=>xK(a,u),cmov:(u,l,h)=>h?l:u,toBytes:u=>t?xf(u,s):ru(u,s),fromBytes:u=>{if(u.length!==s)throw new Error("Field.fromBytes: expected "+s+" bytes, got "+u.length);return t?tu(u):_a(u)}});return Object.freeze(a)}function QE(r){if(typeof r!="bigint")throw new Error("field order must be bigint");const e=r.toString(2).length;return Math.ceil(e/8)}function YE(r){const e=QE(r);return e+Math.ceil(e/2)}function RK(r,e,t=!1){const n=r.length,i=QE(e),s=YE(e);if(n<16||n<s||n>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);const o=t?tu(r):_a(r),a=Qt(o,e-tr)+tr;return t?xf(a,i):ru(a,i)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const JE=BigInt(0),u0=BigInt(1);function Qy(r,e){const t=e.negate();return r?t:e}function XE(r,e){if(!Number.isSafeInteger(r)||r<=0||r>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+r)}function Yy(r,e){XE(r,e);const t=Math.ceil(e/r)+1,n=2**(r-1);return{windows:t,windowSize:n}}function IK(r,e){if(!Array.isArray(r))throw new Error("array expected");r.forEach((t,n)=>{if(!(t instanceof e))throw new Error("invalid point at index "+n)})}function SK(r,e){if(!Array.isArray(r))throw new Error("array of scalars expected");r.forEach((t,n)=>{if(!e.isValid(t))throw new Error("invalid scalar at index "+n)})}const Jy=new WeakMap,e2=new WeakMap;function Xy(r){return e2.get(r)||1}function t2(r,e){return{constTimeNegate:Qy,hasPrecomputes(t){return Xy(t)!==1},unsafeLadder(t,n,i=r.ZERO){let s=t;for(;n>JE;)n&u0&&(i=i.add(s)),s=s.double(),n>>=u0;return i},precomputeWindow(t,n){const{windows:i,windowSize:s}=Yy(n,e),o=[];let a=t,u=a;for(let l=0;l<i;l++){u=a,o.push(u);for(let h=1;h<s;h++)u=u.add(a),o.push(u);a=u.double()}return o},wNAF(t,n,i){const{windows:s,windowSize:o}=Yy(t,e);let a=r.ZERO,u=r.BASE;const l=BigInt(2**t-1),h=2**t,g=BigInt(t);for(let b=0;b<s;b++){const w=b*o;let I=Number(i&l);i>>=g,I>o&&(I-=h,i+=u0);const S=w,x=w+Math.abs(I)-1,C=b%2!==0,H=I<0;I===0?u=u.add(Qy(C,n[S])):a=a.add(Qy(H,n[x]))}return{p:a,f:u}},wNAFUnsafe(t,n,i,s=r.ZERO){const{windows:o,windowSize:a}=Yy(t,e),u=BigInt(2**t-1),l=2**t,h=BigInt(t);for(let g=0;g<o;g++){const b=g*a;if(i===JE)break;let w=Number(i&u);if(i>>=h,w>a&&(w-=l,i+=u0),w===0)continue;let I=n[b+Math.abs(w)-1];w<0&&(I=I.negate()),s=s.add(I)}return s},getPrecomputes(t,n,i){let s=Jy.get(n);return s||(s=this.precomputeWindow(n,t),t!==1&&Jy.set(n,i(s))),s},wNAFCached(t,n,i){const s=Xy(t);return this.wNAF(s,this.getPrecomputes(s,t,i),n)},wNAFCachedUnsafe(t,n,i,s){const o=Xy(t);return o===1?this.unsafeLadder(t,n,s):this.wNAFUnsafe(o,this.getPrecomputes(o,t,i),n,s)},setWindowSize(t,n){XE(n,e),e2.set(t,n),Jy.delete(t)}}}function r2(r,e,t,n){if(IK(t,r),SK(n,e),t.length!==n.length)throw new Error("arrays of points and scalars must have equal length");const i=r.ZERO,s=KE(BigInt(t.length)),o=s>12?s-3:s>4?s-2:s?2:1,a=(1<<o)-1,u=new Array(a+1).fill(i),l=Math.floor((e.BITS-1)/o)*o;let h=i;for(let g=l;g>=0;g-=o){u.fill(i);for(let w=0;w<n.length;w++){const I=n[w],S=Number(I>>BigInt(g)&BigInt(a));u[S]=u[S].add(t[w])}let b=i;for(let w=u.length-1,I=i;w>0;w--)I=I.add(u[w]),b=b.add(I);if(h=h.add(b),g!==0)for(let w=0;w<o;w++)h=h.double()}return h}function em(r){return vK(r.Fp),nu(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...ZE(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const _i=BigInt(0),Sn=BigInt(1),l0=BigInt(2),kK=BigInt(8),TK={zip215:!0};function OK(r){const e=em(r);return nu(r,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...e})}function NK(r){const e=OK(r),{Fp:t,n,prehash:i,hash:s,randomBytes:o,nByteLength:a,h:u}=e,l=l0<<BigInt(a*8)-Sn,h=t.create,g=c0(e.n,e.nBitLength),b=e.uvRatio||((E,k)=>{try{return{isValid:!0,value:t.sqrt(E*t.inv(k))}}catch{return{isValid:!1,value:_i}}}),w=e.adjustScalarBytes||(E=>E),I=e.domain||((E,k,O)=>{if(Es("phflag",O),k.length||O)throw new Error("Contexts/pre-hash are not supported");return E});function S(E,k){ri("coordinate "+E,k,_i,l)}function x(E){if(!(E instanceof D))throw new Error("ExtendedPoint expected")}const C=Rf((E,k)=>{const{ex:O,ey:M,ez:G}=E,P=E.is0();k==null&&(k=P?kK:t.inv(G));const A=h(O*k),U=h(M*k),le=h(G*k);if(P)return{x:_i,y:Sn};if(le!==Sn)throw new Error("invZ was invalid");return{x:A,y:U}}),H=Rf(E=>{const{a:k,d:O}=e;if(E.is0())throw new Error("bad point: ZERO");const{ex:M,ey:G,ez:P,et:A}=E,U=h(M*M),le=h(G*G),te=h(P*P),re=h(te*te),he=h(U*k),ye=h(te*h(he+le)),be=h(re+h(O*h(U*le)));if(ye!==be)throw new Error("bad point: equation left != right (1)");const We=h(M*G),Fe=h(P*A);if(We!==Fe)throw new Error("bad point: equation left != right (2)");return!0});class D{constructor(k,O,M,G){this.ex=k,this.ey=O,this.ez=M,this.et=G,S("x",k),S("y",O),S("z",M),S("t",G),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(k){if(k instanceof D)throw new Error("extended point not allowed");const{x:O,y:M}=k||{};return S("x",O),S("y",M),new D(O,M,Sn,h(O*M))}static normalizeZ(k){const O=t.invertBatch(k.map(M=>M.ez));return k.map((M,G)=>M.toAffine(O[G])).map(D.fromAffine)}static msm(k,O){return r2(D,g,k,O)}_setWindowSize(k){Z.setWindowSize(this,k)}assertValidity(){H(this)}equals(k){x(k);const{ex:O,ey:M,ez:G}=this,{ex:P,ey:A,ez:U}=k,le=h(O*U),te=h(P*G),re=h(M*U),he=h(A*G);return le===te&&re===he}is0(){return this.equals(D.ZERO)}negate(){return new D(h(-this.ex),this.ey,this.ez,h(-this.et))}double(){const{a:k}=e,{ex:O,ey:M,ez:G}=this,P=h(O*O),A=h(M*M),U=h(l0*h(G*G)),le=h(k*P),te=O+M,re=h(h(te*te)-P-A),he=le+A,ye=he-U,be=le-A,We=h(re*ye),Fe=h(he*be),Be=h(re*be),et=h(ye*he);return new D(We,Fe,et,Be)}add(k){x(k);const{a:O,d:M}=e,{ex:G,ey:P,ez:A,et:U}=this,{ex:le,ey:te,ez:re,et:he}=k;if(O===BigInt(-1)){const It=h((P-G)*(te+le)),Ct=h((P+G)*(te-le)),kr=h(Ct-It);if(kr===_i)return this.double();const pt=h(A*l0*he),St=h(U*l0*re),or=St+pt,xt=Ct+It,Bt=St-pt,fn=h(or*kr),Dt=h(xt*Bt),N=h(or*Bt),_=h(kr*xt);return new D(fn,Dt,_,N)}const ye=h(G*le),be=h(P*te),We=h(U*M*he),Fe=h(A*re),Be=h((G+P)*(le+te)-ye-be),et=Fe-We,Qe=Fe+We,ot=h(be-O*ye),sr=h(Be*et),dt=h(Qe*ot),Ut=h(Be*ot),oa=h(et*Qe);return new D(sr,dt,oa,Ut)}subtract(k){return this.add(k.negate())}wNAF(k){return Z.wNAFCached(this,k,D.normalizeZ)}multiply(k){const O=k;ri("scalar",O,Sn,n);const{p:M,f:G}=this.wNAF(O);return D.normalizeZ([M,G])[0]}multiplyUnsafe(k,O=D.ZERO){const M=k;return ri("scalar",M,_i,n),M===_i?V:this.is0()||M===Sn?this:Z.wNAFCachedUnsafe(this,M,D.normalizeZ,O)}isSmallOrder(){return this.multiplyUnsafe(u).is0()}isTorsionFree(){return Z.unsafeLadder(this,n).is0()}toAffine(k){return C(this,k)}clearCofactor(){const{h:k}=e;return k===Sn?this:this.multiplyUnsafe(k)}static fromHex(k,O=!1){const{d:M,a:G}=e,P=t.BYTES;k=Tr("pointHex",k,P),Es("zip215",O);const A=k.slice(),U=k[P-1];A[P-1]=U&-129;const le=tu(A),te=O?l:t.ORDER;ri("pointHex.y",le,_i,te);const re=h(le*le),he=h(re-Sn),ye=h(M*re-G);let{isValid:be,value:We}=b(he,ye);if(!be)throw new Error("Point.fromHex: invalid y coordinate");const Fe=(We&Sn)===Sn,Be=(U&128)!==0;if(!O&&We===_i&&Be)throw new Error("Point.fromHex: x=0 and x_0=1");return Be!==Fe&&(We=h(-We)),D.fromAffine({x:We,y:le})}static fromPrivateKey(k){return oe(k).point}toRawBytes(){const{x:k,y:O}=this.toAffine(),M=xf(O,t.BYTES);return M[M.length-1]|=k&Sn?128:0,M}toHex(){return ba(this.toRawBytes())}}D.BASE=new D(e.Gx,e.Gy,Sn,h(e.Gx*e.Gy)),D.ZERO=new D(_i,Sn,Sn,_i);const{BASE:z,ZERO:V}=D,Z=t2(D,a*8);function K(E){return Qt(E,n)}function W(E){return K(tu(E))}function oe(E){const k=t.BYTES;E=Tr("private key",E,k);const O=Tr("hashed private key",s(E),2*k),M=w(O.slice(0,k)),G=O.slice(k,2*k),P=W(M),A=z.multiply(P),U=A.toRawBytes();return{head:M,prefix:G,scalar:P,point:A,pointBytes:U}}function ce(E){return oe(E).pointBytes}function ie(E=new Uint8Array,...k){const O=Aa(...k);return W(s(I(O,Tr("context",E),!!i)))}function ue(E,k,O={}){E=Tr("message",E),i&&(E=i(E));const{prefix:M,scalar:G,pointBytes:P}=oe(k),A=ie(O.context,M,E),U=z.multiply(A).toRawBytes(),le=ie(O.context,U,P,E),te=K(A+le*G);ri("signature.s",te,_i,n);const re=Aa(U,xf(te,t.BYTES));return Tr("result",re,t.BYTES*2)}const B=TK;function p(E,k,O,M=B){const{context:G,zip215:P}=M,A=t.BYTES;E=Tr("signature",E,2*A),k=Tr("message",k),O=Tr("publicKey",O,A),P!==void 0&&Es("zip215",P),i&&(k=i(k));const U=tu(E.slice(A,2*A));let le,te,re;try{le=D.fromHex(O,P),te=D.fromHex(E.slice(0,A),P),re=z.multiplyUnsafe(U)}catch{return!1}if(!P&&le.isSmallOrder())return!1;const he=ie(G,te.toRawBytes(),le.toRawBytes(),k);return te.add(le.multiplyUnsafe(he)).subtract(re).clearCofactor().equals(D.ZERO)}return z._setWindowSize(8),{CURVE:e,getPublicKey:ce,sign:ue,verify:p,ExtendedPoint:D,utils:{getExtendedPublicKey:oe,randomPrivateKey:()=>o(t.BYTES),precompute(E=8,k=D.BASE){return k._setWindowSize(E),k.multiply(BigInt(3)),k}}}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const tm=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),n2=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");BigInt(0);const CK=BigInt(1),i2=BigInt(2);BigInt(3);const BK=BigInt(5),PK=BigInt(8);function MK(r){const e=BigInt(10),t=BigInt(20),n=BigInt(40),i=BigInt(80),s=tm,a=r*r%s*r%s,u=ur(a,i2,s)*a%s,l=ur(u,CK,s)*r%s,h=ur(l,BK,s)*l%s,g=ur(h,e,s)*h%s,b=ur(g,t,s)*g%s,w=ur(b,n,s)*b%s,I=ur(w,i,s)*w%s,S=ur(I,i,s)*w%s,x=ur(S,e,s)*h%s;return{pow_p_5_8:ur(x,i2,s)*r%s,b2:a}}function LK(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}function UK(r,e){const t=tm,n=Qt(e*e*e,t),i=Qt(n*n*e,t),s=MK(r*i).pow_p_5_8;let o=Qt(r*n*s,t);const a=Qt(e*o*o,t),u=o,l=Qt(o*n2,t),h=a===r,g=a===Qt(-r,t),b=a===Qt(-r*n2,t);return h&&(o=u),(g||b)&&(o=l),_K(o,t)&&(o=Qt(-o,t)),{isValid:h||g,value:o}}const DK=c0(tm,void 0,!0),$K={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:DK,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:PK,Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:sK,randomBytes:ME,adjustScalarBytes:LK,uvRatio:UK},iu=NK($K);var rm={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */(function(r,e){var t=Dy,n=t.Buffer;function i(o,a){for(var u in o)a[u]=o[u]}n.from&&n.alloc&&n.allocUnsafe&&n.allocUnsafeSlow?r.exports=t:(i(t,e),e.Buffer=s);function s(o,a,u){return n(o,a,u)}s.prototype=Object.create(n.prototype),i(n,s),s.from=function(o,a,u){if(typeof o=="number")throw new TypeError("Argument must not be a number");return n(o,a,u)},s.alloc=function(o,a,u){if(typeof o!="number")throw new TypeError("Argument must be a number");var l=n(o);return a!==void 0?typeof u=="string"?l.fill(a,u):l.fill(a):l.fill(0),l},s.allocUnsafe=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return n(o)},s.allocUnsafeSlow=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return t.SlowBuffer(o)}})(rm,rm.exports);var FK=rm.exports,f0=FK.Buffer;function HK(r){if(r.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),t=0;t<e.length;t++)e[t]=255;for(var n=0;n<r.length;n++){var i=r.charAt(n),s=i.charCodeAt(0);if(e[s]!==255)throw new TypeError(i+" is ambiguous");e[s]=n}var o=r.length,a=r.charAt(0),u=Math.log(o)/Math.log(256),l=Math.log(256)/Math.log(o);function h(w){if((Array.isArray(w)||w instanceof Uint8Array)&&(w=f0.from(w)),!f0.isBuffer(w))throw new TypeError("Expected Buffer");if(w.length===0)return"";for(var I=0,S=0,x=0,C=w.length;x!==C&&w[x]===0;)x++,I++;for(var H=(C-x)*l+1>>>0,D=new Uint8Array(H);x!==C;){for(var z=w[x],V=0,Z=H-1;(z!==0||V<S)&&Z!==-1;Z--,V++)z+=256*D[Z]>>>0,D[Z]=z%o>>>0,z=z/o>>>0;if(z!==0)throw new Error("Non-zero carry");S=V,x++}for(var K=H-S;K!==H&&D[K]===0;)K++;for(var W=a.repeat(I);K<H;++K)W+=r.charAt(D[K]);return W}function g(w){if(typeof w!="string")throw new TypeError("Expected String");if(w.length===0)return f0.alloc(0);for(var I=0,S=0,x=0;w[I]===a;)S++,I++;for(var C=(w.length-I)*u+1>>>0,H=new Uint8Array(C);I<w.length;){var D=w.charCodeAt(I);if(D>255)return;var z=e[D];if(z===255)return;for(var V=0,Z=C-1;(z!==0||V<x)&&Z!==-1;Z--,V++)z+=o*H[Z]>>>0,H[Z]=z%256>>>0,z=z/256>>>0;if(z!==0)throw new Error("Non-zero carry");x=V,I++}for(var K=C-x;K!==C&&H[K]===0;)K++;var W=f0.allocUnsafe(S+(C-K));W.fill(0,0,S);for(var oe=S;K!==C;)W[oe++]=H[K++];return W}function b(w){var I=g(w);if(I)return I;throw new Error("Non-base"+o+" character")}return{encode:h,decodeUnsafe:g,decode:b}}var zK=HK,GK=zK,KK="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",s2=GK(KK);const Or=xn(s2),jK=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),po=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),go=new Uint32Array(64);let WK=class extends LE{constructor(){super(64,32,8,!1),this.A=po[0]|0,this.B=po[1]|0,this.C=po[2]|0,this.D=po[3]|0,this.E=po[4]|0,this.F=po[5]|0,this.G=po[6]|0,this.H=po[7]|0}get(){const{A:e,B:t,C:n,D:i,E:s,F:o,G:a,H:u}=this;return[e,t,n,i,s,o,a,u]}set(e,t,n,i,s,o,a,u){this.A=e|0,this.B=t|0,this.C=n|0,this.D=i|0,this.E=s|0,this.F=o|0,this.G=a|0,this.H=u|0}process(e,t){for(let g=0;g<16;g++,t+=4)go[g]=e.getUint32(t,!1);for(let g=16;g<64;g++){const b=go[g-15],w=go[g-2],I=zi(b,7)^zi(b,18)^b>>>3,S=zi(w,17)^zi(w,19)^w>>>10;go[g]=S+go[g-7]+I+go[g-16]|0}let{A:n,B:i,C:s,D:o,E:a,F:u,G:l,H:h}=this;for(let g=0;g<64;g++){const b=zi(a,6)^zi(a,11)^zi(a,25),w=h+b+KG(a,u,l)+jK[g]+go[g]|0,S=(zi(n,2)^zi(n,13)^zi(n,22))+jG(n,i,s)|0;h=l,l=u,u=a,a=o+w|0,o=s,s=i,i=n,n=w+S|0}n=n+this.A|0,i=i+this.B|0,s=s+this.C|0,o=o+this.D|0,a=a+this.E|0,u=u+this.F|0,l=l+this.G|0,h=h+this.H|0,this.set(n,i,s,o,a,u,l,h)}roundClean(){go.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};const nm=zy(()=>new WK);var jr={};function Rs(r,e,t){return e<=r&&r<=t}function h0(r){if(r===void 0)return{};if(r===Object(r))return r;throw TypeError("Could not convert argument to dictionary")}function VK(r){for(var e=String(r),t=e.length,n=0,i=[];n<t;){var s=e.charCodeAt(n);if(s<55296||s>57343)i.push(s);else if(56320<=s&&s<=57343)i.push(65533);else if(55296<=s&&s<=56319)if(n===t-1)i.push(65533);else{var o=r.charCodeAt(n+1);if(56320<=o&&o<=57343){var a=s&1023,u=o&1023;i.push(65536+(a<<10)+u),n+=1}else i.push(65533)}n+=1}return i}function qK(r){for(var e="",t=0;t<r.length;++t){var n=r[t];n<=65535?e+=String.fromCharCode(n):(n-=65536,e+=String.fromCharCode((n>>10)+55296,(n&1023)+56320))}return e}var d0=-1;function im(r){this.tokens=[].slice.call(r)}im.prototype={endOfStream:function(){return!this.tokens.length},read:function(){return this.tokens.length?this.tokens.shift():d0},prepend:function(r){if(Array.isArray(r))for(var e=r;e.length;)this.tokens.unshift(e.pop());else this.tokens.unshift(r)},push:function(r){if(Array.isArray(r))for(var e=r;e.length;)this.tokens.push(e.shift());else this.tokens.push(r)}};var su=-1;function sm(r,e){if(r)throw TypeError("Decoder error");return e||65533}var p0="utf-8";function g0(r,e){if(!(this instanceof g0))return new g0(r,e);if(r=r!==void 0?String(r).toLowerCase():p0,r!==p0)throw new Error("Encoding not supported. Only utf-8 is supported");e=h0(e),this._streaming=!1,this._BOMseen=!1,this._decoder=null,this._fatal=!!e.fatal,this._ignoreBOM=!!e.ignoreBOM,Object.defineProperty(this,"encoding",{value:"utf-8"}),Object.defineProperty(this,"fatal",{value:this._fatal}),Object.defineProperty(this,"ignoreBOM",{value:this._ignoreBOM})}g0.prototype={decode:function(e,t){var n;typeof e=="object"&&e instanceof ArrayBuffer?n=new Uint8Array(e):typeof e=="object"&&"buffer"in e&&e.buffer instanceof ArrayBuffer?n=new Uint8Array(e.buffer,e.byteOffset,e.byteLength):n=new Uint8Array(0),t=h0(t),this._streaming||(this._decoder=new ZK({fatal:this._fatal}),this._BOMseen=!1),this._streaming=!!t.stream;for(var i=new im(n),s=[],o;!i.endOfStream()&&(o=this._decoder.handler(i,i.read()),o!==su);)o!==null&&(Array.isArray(o)?s.push.apply(s,o):s.push(o));if(!this._streaming){do{if(o=this._decoder.handler(i,i.read()),o===su)break;o!==null&&(Array.isArray(o)?s.push.apply(s,o):s.push(o))}while(!i.endOfStream());this._decoder=null}return s.length&&["utf-8"].indexOf(this.encoding)!==-1&&!this._ignoreBOM&&!this._BOMseen&&(s[0]===65279?(this._BOMseen=!0,s.shift()):this._BOMseen=!0),qK(s)}};function y0(r,e){if(!(this instanceof y0))return new y0(r,e);if(r=r!==void 0?String(r).toLowerCase():p0,r!==p0)throw new Error("Encoding not supported. Only utf-8 is supported");e=h0(e),this._streaming=!1,this._encoder=null,this._options={fatal:!!e.fatal},Object.defineProperty(this,"encoding",{value:"utf-8"})}y0.prototype={encode:function(e,t){e=e?String(e):"",t=h0(t),this._streaming||(this._encoder=new QK(this._options)),this._streaming=!!t.stream;for(var n=[],i=new im(VK(e)),s;!i.endOfStream()&&(s=this._encoder.handler(i,i.read()),s!==su);)Array.isArray(s)?n.push.apply(n,s):n.push(s);if(!this._streaming){for(;s=this._encoder.handler(i,i.read()),s!==su;)Array.isArray(s)?n.push.apply(n,s):n.push(s);this._encoder=null}return new Uint8Array(n)}};function ZK(r){var e=r.fatal,t=0,n=0,i=0,s=128,o=191;this.handler=function(a,u){if(u===d0&&i!==0)return i=0,sm(e);if(u===d0)return su;if(i===0){if(Rs(u,0,127))return u;if(Rs(u,194,223))i=1,t=u-192;else if(Rs(u,224,239))u===224&&(s=160),u===237&&(o=159),i=2,t=u-224;else if(Rs(u,240,244))u===240&&(s=144),u===244&&(o=143),i=3,t=u-240;else return sm(e);return t=t<<6*i,null}if(!Rs(u,s,o))return t=i=n=0,s=128,o=191,a.prepend(u),sm(e);if(s=128,o=191,n+=1,t+=u-128<<6*(i-n),n!==i)return null;var l=t;return t=i=n=0,l}}function QK(r){r.fatal,this.handler=function(e,t){if(t===d0)return su;if(Rs(t,0,127))return t;var n,i;Rs(t,128,2047)?(n=1,i=192):Rs(t,2048,65535)?(n=2,i=224):Rs(t,65536,1114111)&&(n=3,i=240);for(var s=[(t>>6*n)+i];n>0;){var o=t>>6*(n-1);s.push(128|o&63),n-=1}return s}}const YK=Lc(Object.freeze(Object.defineProperty({__proto__:null,TextDecoder:g0,TextEncoder:y0},Symbol.toStringTag,{value:"Module"})));var JK=ut&&ut.__createBinding||(Object.create?function(r,e,t,n){n===void 0&&(n=t),Object.defineProperty(r,n,{enumerable:!0,get:function(){return e[t]}})}:function(r,e,t,n){n===void 0&&(n=t),r[n]=e[t]}),XK=ut&&ut.__setModuleDefault||(Object.create?function(r,e){Object.defineProperty(r,"default",{enumerable:!0,value:e})}:function(r,e){r.default=e}),Gi=ut&&ut.__decorate||function(r,e,t,n){var i=arguments.length,s=i<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,t):n,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(r,e,t,n);else for(var a=r.length-1;a>=0;a--)(o=r[a])&&(s=(i<3?o(s):i>3?o(e,t,s):o(e,t))||s);return i>3&&s&&Object.defineProperty(e,t,s),s},ej=ut&&ut.__importStar||function(r){if(r&&r.__esModule)return r;var e={};if(r!=null)for(var t in r)t!=="default"&&Object.hasOwnProperty.call(r,t)&&JK(e,r,t);return XK(e,r),e},o2=ut&&ut.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(jr,"__esModule",{value:!0});var a2=jr.deserializeUnchecked=d2=jr.deserialize=h2=jr.serialize=jr.BinaryReader=jr.BinaryWriter=jr.BorshError=jr.baseDecode=jr.baseEncode=void 0;const yo=o2($y),c2=o2(s2),tj=ej(YK),rj=typeof TextDecoder!="function"?tj.TextDecoder:TextDecoder,nj=new rj("utf-8",{fatal:!0});function ij(r){return typeof r=="string"&&(r=Ze.from(r,"utf8")),c2.default.encode(Ze.from(r))}jr.baseEncode=ij;function sj(r){return Ze.from(c2.default.decode(r))}jr.baseDecode=sj;const om=1024;class pn extends Error{constructor(e){super(e),this.fieldPath=[],this.originalMessage=e}addToFieldPath(e){this.fieldPath.splice(0,0,e),this.message=this.originalMessage+": "+this.fieldPath.join(".")}}jr.BorshError=pn;class u2{constructor(){this.buf=Ze.alloc(om),this.length=0}maybeResize(){this.buf.length<16+this.length&&(this.buf=Ze.concat([this.buf,Ze.alloc(om)]))}writeU8(e){this.maybeResize(),this.buf.writeUInt8(e,this.length),this.length+=1}writeU16(e){this.maybeResize(),this.buf.writeUInt16LE(e,this.length),this.length+=2}writeU32(e){this.maybeResize(),this.buf.writeUInt32LE(e,this.length),this.length+=4}writeU64(e){this.maybeResize(),this.writeBuffer(Ze.from(new yo.default(e).toArray("le",8)))}writeU128(e){this.maybeResize(),this.writeBuffer(Ze.from(new yo.default(e).toArray("le",16)))}writeU256(e){this.maybeResize(),this.writeBuffer(Ze.from(new yo.default(e).toArray("le",32)))}writeU512(e){this.maybeResize(),this.writeBuffer(Ze.from(new yo.default(e).toArray("le",64)))}writeBuffer(e){this.buf=Ze.concat([Ze.from(this.buf.subarray(0,this.length)),e,Ze.alloc(om)]),this.length+=e.length}writeString(e){this.maybeResize();const t=Ze.from(e,"utf8");this.writeU32(t.length),this.writeBuffer(t)}writeFixedArray(e){this.writeBuffer(Ze.from(e))}writeArray(e,t){this.maybeResize(),this.writeU32(e.length);for(const n of e)this.maybeResize(),t(n)}toArray(){return this.buf.subarray(0,this.length)}}jr.BinaryWriter=u2;function Ki(r,e,t){const n=t.value;t.value=function(...i){try{return n.apply(this,i)}catch(s){if(s instanceof RangeError){const o=s.code;if(["ERR_BUFFER_OUT_OF_BOUNDS","ERR_OUT_OF_RANGE"].indexOf(o)>=0)throw new pn("Reached the end of buffer when deserializing")}throw s}}}class Fn{constructor(e){this.buf=e,this.offset=0}readU8(){const e=this.buf.readUInt8(this.offset);return this.offset+=1,e}readU16(){const e=this.buf.readUInt16LE(this.offset);return this.offset+=2,e}readU32(){const e=this.buf.readUInt32LE(this.offset);return this.offset+=4,e}readU64(){const e=this.readBuffer(8);return new yo.default(e,"le")}readU128(){const e=this.readBuffer(16);return new yo.default(e,"le")}readU256(){const e=this.readBuffer(32);return new yo.default(e,"le")}readU512(){const e=this.readBuffer(64);return new yo.default(e,"le")}readBuffer(e){if(this.offset+e>this.buf.length)throw new pn(`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 nj.decode(t)}catch(n){throw new pn(`Error decoding UTF-8 string: ${n}`)}}readFixedArray(e){return new Uint8Array(this.readBuffer(e))}readArray(e){const t=this.readU32(),n=Array();for(let i=0;i<t;++i)n.push(e());return n}}Gi([Ki],Fn.prototype,"readU8",null),Gi([Ki],Fn.prototype,"readU16",null),Gi([Ki],Fn.prototype,"readU32",null),Gi([Ki],Fn.prototype,"readU64",null),Gi([Ki],Fn.prototype,"readU128",null),Gi([Ki],Fn.prototype,"readU256",null),Gi([Ki],Fn.prototype,"readU512",null),Gi([Ki],Fn.prototype,"readString",null),Gi([Ki],Fn.prototype,"readFixedArray",null),Gi([Ki],Fn.prototype,"readArray",null),jr.BinaryReader=Fn;function l2(r){return r.charAt(0).toUpperCase()+r.slice(1)}function Ea(r,e,t,n,i){try{if(typeof n=="string")i[`write${l2(n)}`](t);else if(n instanceof Array)if(typeof n[0]=="number"){if(t.length!==n[0])throw new pn(`Expecting byte array of length ${n[0]}, but got ${t.length} bytes`);i.writeFixedArray(t)}else if(n.length===2&&typeof n[1]=="number"){if(t.length!==n[1])throw new pn(`Expecting byte array of length ${n[1]}, but got ${t.length} bytes`);for(let s=0;s<n[1];s++)Ea(r,null,t[s],n[0],i)}else i.writeArray(t,s=>{Ea(r,e,s,n[0],i)});else if(n.kind!==void 0)switch(n.kind){case"option":{t==null?i.writeU8(0):(i.writeU8(1),Ea(r,e,t,n.type,i));break}case"map":{i.writeU32(t.size),t.forEach((s,o)=>{Ea(r,e,o,n.key,i),Ea(r,e,s,n.value,i)});break}default:throw new pn(`FieldType ${n} unrecognized`)}else f2(r,t,i)}catch(s){throw s instanceof pn&&s.addToFieldPath(e),s}}function f2(r,e,t){if(typeof e.borshSerialize=="function"){e.borshSerialize(t);return}const n=r.get(e.constructor);if(!n)throw new pn(`Class ${e.constructor.name} is missing in schema`);if(n.kind==="struct")n.fields.map(([i,s])=>{Ea(r,i,e[i],s,t)});else if(n.kind==="enum"){const i=e[n.field];for(let s=0;s<n.values.length;++s){const[o,a]=n.values[s];if(o===i){t.writeU8(s),Ea(r,o,e[o],a,t);break}}}else throw new pn(`Unexpected schema kind: ${n.kind} for ${e.constructor.name}`)}function oj(r,e,t=u2){const n=new t;return f2(r,e,n),n.toArray()}var h2=jr.serialize=oj;function xa(r,e,t,n){try{if(typeof t=="string")return n[`read${l2(t)}`]();if(t instanceof Array){if(typeof t[0]=="number")return n.readFixedArray(t[0]);if(typeof t[1]=="number"){const i=[];for(let s=0;s<t[1];s++)i.push(xa(r,null,t[0],n));return i}else return n.readArray(()=>xa(r,e,t[0],n))}if(t.kind==="option")return n.readU8()?xa(r,e,t.type,n):void 0;if(t.kind==="map"){let i=new Map;const s=n.readU32();for(let o=0;o<s;o++){const a=xa(r,e,t.key,n),u=xa(r,e,t.value,n);i.set(a,u)}return i}return am(r,t,n)}catch(i){throw i instanceof pn&&i.addToFieldPath(e),i}}function am(r,e,t){if(typeof e.borshDeserialize=="function")return e.borshDeserialize(t);const n=r.get(e);if(!n)throw new pn(`Class ${e.name} is missing in schema`);if(n.kind==="struct"){const i={};for(const[s,o]of r.get(e).fields)i[s]=xa(r,s,o,t);return new e(i)}if(n.kind==="enum"){const i=t.readU8();if(i>=n.values.length)throw new pn(`Enum index: ${i} is out of range`);const[s,o]=n.values[i],a=xa(r,s,o,t);return new e({[s]:a})}throw new pn(`Unexpected schema kind: ${n.kind} for ${e.constructor.name}`)}function aj(r,e,t,n=Fn){const i=new n(t),s=am(r,e,i);if(i.offset<t.length)throw new pn(`Unexpected ${t.length-i.offset} bytes after deserialized data`);return s}var d2=jr.deserialize=aj;function cj(r,e,t,n=Fn){const i=new n(t);return am(r,e,i)}a2=jr.deserializeUnchecked=cj;var ne={};Object.defineProperty(ne,"__esModule",{value:!0}),ne.s16=ne.s8=ne.nu64be=ne.u48be=ne.u40be=ne.u32be=ne.u24be=ne.u16be=Wr=ne.nu64=ne.u48=ne.u40=Pe=ne.u32=ne.u24=ii=ne.u16=bt=ne.u8=mo=ne.offset=ne.greedy=ne.Constant=ne.UTF8=ne.CString=ne.Blob=ne.Boolean=ne.BitField=ne.BitStructure=ne.VariantLayout=ne.Union=ne.UnionLayoutDiscriminator=ne.UnionDiscriminator=ne.Structure=ne.Sequence=ne.DoubleBE=ne.Double=ne.FloatBE=ne.Float=ne.NearInt64BE=ne.NearInt64=ne.NearUInt64BE=ne.NearUInt64=ne.IntBE=ne.Int=ne.UIntBE=ne.UInt=ne.OffsetLayout=ne.GreedyCount=ne.ExternalLayout=ne.bindConstructorLayout=ne.nameWithProperty=ne.Layout=ne.uint8ArrayToBuffer=ne.checkUint8Array=void 0,ne.constant=ne.utf8=ne.cstr=Vt=ne.blob=ne.unionLayoutDiscriminator=ne.union=Vr=ne.seq=ne.bits=Me=ne.struct=ne.f64be=ne.f64=ne.f32be=ne.f32=ne.ns64be=ne.s48be=ne.s40be=ne.s32be=ne.s24be=ne.s16be=Hn=ne.ns64=ne.s48=ne.s40=ne.s32=ne.s24=void 0;const cm=Dy;function ou(r){if(!(r instanceof Uint8Array))throw new TypeError("b must be a Uint8Array")}ne.checkUint8Array=ou;function At(r){return ou(r),cm.Buffer.from(r.buffer,r.byteOffset,r.length)}ne.uint8ArrayToBuffer=At;let Tt=class{constructor(e,t){if(!Number.isInteger(e))throw new TypeError("span must be an integer");this.span=e,this.property=t}makeDestinationObject(){return{}}getSpan(e,t){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(e){const t=Object.create(this.constructor.prototype);return Object.assign(t,this),t.property=e,t}fromArray(e){}};ne.Layout=Tt;function um(r,e){return e.property?r+"["+e.property+"]":r}ne.nameWithProperty=um;function uj(r,e){if(typeof r!="function")throw new TypeError("Class must be constructor");if(Object.prototype.hasOwnProperty.call(r,"layout_"))throw new Error("Class is already bound to a layout");if(!(e&&e instanceof Tt))throw new TypeError("layout must be a Layout");if(Object.prototype.hasOwnProperty.call(e,"boundConstructor_"))throw new Error("layout is already bound to a constructor");r.layout_=e,e.boundConstructor_=r,e.makeDestinationObject=()=>new r,Object.defineProperty(r.prototype,"encode",{value(t,n){return e.encode(this,t,n)},writable:!0}),Object.defineProperty(r,"decode",{value(t,n){return e.decode(t,n)},writable:!0})}ne.bindConstructorLayout=uj;let kn=class extends Tt{isCount(){throw new Error("ExternalLayout is abstract")}};ne.ExternalLayout=kn;let p2=class extends kn{constructor(e=1,t){if(!Number.isInteger(e)||0>=e)throw new TypeError("elementSpan must be a (positive) integer");super(-1,t),this.elementSpan=e}isCount(){return!0}decode(e,t=0){ou(e);const n=e.length-t;return Math.floor(n/this.elementSpan)}encode(e,t,n){return 0}};ne.GreedyCount=p2;let lm=class extends kn{constructor(e,t=0,n){if(!(e instanceof Tt))throw new TypeError("layout must be a Layout");if(!Number.isInteger(t))throw new TypeError("offset must be integer or undefined");super(e.span,n||e.property),this.layout=e,this.offset=t}isCount(){return this.layout instanceof ni||this.layout instanceof Ai}decode(e,t=0){return this.layout.decode(e,t+this.offset)}encode(e,t,n=0){return this.layout.encode(e,t,n+this.offset)}};ne.OffsetLayout=lm;let ni=class extends Tt{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t=0){return At(e).readUIntLE(t,this.span)}encode(e,t,n=0){return At(t).writeUIntLE(e,n,this.span),this.span}};ne.UInt=ni;let Ai=class extends Tt{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t=0){return At(e).readUIntBE(t,this.span)}encode(e,t,n=0){return At(t).writeUIntBE(e,n,this.span),this.span}};ne.UIntBE=Ai;let Ra=class extends Tt{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t=0){return At(e).readIntLE(t,this.span)}encode(e,t,n=0){return At(t).writeIntLE(e,n,this.span),this.span}};ne.Int=Ra;let au=class extends Tt{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t=0){return At(e).readIntBE(t,this.span)}encode(e,t,n=0){return At(t).writeIntBE(e,n,this.span),this.span}};ne.IntBE=au;const fm=Math.pow(2,32);function m0(r){const e=Math.floor(r/fm),t=r-e*fm;return{hi32:e,lo32:t}}function w0(r,e){return r*fm+e}let g2=class extends Tt{constructor(e){super(8,e)}decode(e,t=0){const n=At(e),i=n.readUInt32LE(t),s=n.readUInt32LE(t+4);return w0(s,i)}encode(e,t,n=0){const i=m0(e),s=At(t);return s.writeUInt32LE(i.lo32,n),s.writeUInt32LE(i.hi32,n+4),8}};ne.NearUInt64=g2;let y2=class extends Tt{constructor(e){super(8,e)}decode(e,t=0){const n=At(e),i=n.readUInt32BE(t),s=n.readUInt32BE(t+4);return w0(i,s)}encode(e,t,n=0){const i=m0(e),s=At(t);return s.writeUInt32BE(i.hi32,n),s.writeUInt32BE(i.lo32,n+4),8}};ne.NearUInt64BE=y2;let m2=class extends Tt{constructor(e){super(8,e)}decode(e,t=0){const n=At(e),i=n.readUInt32LE(t),s=n.readInt32LE(t+4);return w0(s,i)}encode(e,t,n=0){const i=m0(e),s=At(t);return s.writeUInt32LE(i.lo32,n),s.writeInt32LE(i.hi32,n+4),8}};ne.NearInt64=m2;let w2=class extends Tt{constructor(e){super(8,e)}decode(e,t=0){const n=At(e),i=n.readInt32BE(t),s=n.readUInt32BE(t+4);return w0(i,s)}encode(e,t,n=0){const i=m0(e),s=At(t);return s.writeInt32BE(i.hi32,n),s.writeUInt32BE(i.lo32,n+4),8}};ne.NearInt64BE=w2;let b2=class extends Tt{constructor(e){super(4,e)}decode(e,t=0){return At(e).readFloatLE(t)}encode(e,t,n=0){return At(t).writeFloatLE(e,n),4}};ne.Float=b2;let _2=class extends Tt{constructor(e){super(4,e)}decode(e,t=0){return At(e).readFloatBE(t)}encode(e,t,n=0){return At(t).writeFloatBE(e,n),4}};ne.FloatBE=_2;let A2=class extends Tt{constructor(e){super(8,e)}decode(e,t=0){return At(e).readDoubleLE(t)}encode(e,t,n=0){return At(t).writeDoubleLE(e,n),8}};ne.Double=A2;let v2=class extends Tt{constructor(e){super(8,e)}decode(e,t=0){return At(e).readDoubleBE(t)}encode(e,t,n=0){return At(t).writeDoubleBE(e,n),8}};ne.DoubleBE=v2;let E2=class extends Tt{constructor(e,t,n){if(!(e instanceof Tt))throw new TypeError("elementLayout must be a Layout");if(!(t instanceof kn&&t.isCount()||Number.isInteger(t)&&0<=t))throw new TypeError("count must be non-negative integer or an unsigned integer ExternalLayout");let i=-1;!(t instanceof kn)&&0<e.span&&(i=t*e.span),super(i,n),this.elementLayout=e,this.count=t}getSpan(e,t=0){if(0<=this.span)return this.span;let n=0,i=this.count;if(i instanceof kn&&(i=i.decode(e,t)),0<this.elementLayout.span)n=i*this.elementLayout.span;else{let s=0;for(;s<i;)n+=this.elementLayout.getSpan(e,t+n),++s}return n}decode(e,t=0){const n=[];let i=0,s=this.count;for(s instanceof kn&&(s=s.decode(e,t));i<s;)n.push(this.elementLayout.decode(e,t)),t+=this.elementLayout.getSpan(e,t),i+=1;return n}encode(e,t,n=0){const i=this.elementLayout,s=e.reduce((o,a)=>o+i.encode(a,t,n+o),0);return this.count instanceof kn&&this.count.encode(e.length,t,n),s}};ne.Sequence=E2;let x2=class extends Tt{constructor(e,t,n){if(!(Array.isArray(e)&&e.reduce((s,o)=>s&&o instanceof Tt,!0)))throw new TypeError("fields must be array of Layout instances");typeof t=="boolean"&&n===void 0&&(n=t,t=void 0);for(const s of e)if(0>s.span&&s.property===void 0)throw new Error("fields cannot contain unnamed variable-length layout");let i=-1;try{i=e.reduce((s,o)=>s+o.getSpan(),0)}catch{}super(i,t),this.fields=e,this.decodePrefixes=!!n}getSpan(e,t=0){if(0<=this.span)return this.span;let n=0;try{n=this.fields.reduce((i,s)=>{const o=s.getSpan(e,t);return t+=o,i+o},0)}catch{throw new RangeError("indeterminate span")}return n}decode(e,t=0){ou(e);const n=this.makeDestinationObject();for(const i of this.fields)if(i.property!==void 0&&(n[i.property]=i.decode(e,t)),t+=i.getSpan(e,t),this.decodePrefixes&&e.length===t)break;return n}encode(e,t,n=0){const i=n;let s=0,o=0;for(const a of this.fields){let u=a.span;if(o=0<u?u:0,a.property!==void 0){const l=e[a.property];l!==void 0&&(o=a.encode(l,t,n),0>u&&(u=a.getSpan(t,n)))}s=n,n+=u}return s+o-i}fromArray(e){const t=this.makeDestinationObject();for(const n of this.fields)n.property!==void 0&&0<e.length&&(t[n.property]=e.shift());return t}layoutFor(e){if(typeof e!="string")throw new TypeError("property must be string");for(const t of this.fields)if(t.property===e)return t}offsetOf(e){if(typeof e!="string")throw new TypeError("property must be string");let t=0;for(const n of this.fields){if(n.property===e)return t;0>n.span?t=-1:0<=t&&(t+=n.span)}}};ne.Structure=x2;let hm=class{constructor(e){this.property=e}decode(e,t){throw new Error("UnionDiscriminator is abstract")}encode(e,t,n){throw new Error("UnionDiscriminator is abstract")}};ne.UnionDiscriminator=hm;let b0=class extends hm{constructor(e,t){if(!(e instanceof kn&&e.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(t||e.property||"variant"),this.layout=e}decode(e,t){return this.layout.decode(e,t)}encode(e,t,n){return this.layout.encode(e,t,n)}};ne.UnionLayoutDiscriminator=b0;let dm=class extends Tt{constructor(e,t,n){let i;if(e instanceof ni||e instanceof Ai)i=new b0(new lm(e));else if(e instanceof kn&&e.isCount())i=new b0(e);else if(e instanceof hm)i=e;else throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(t===void 0&&(t=null),!(t===null||t instanceof Tt))throw new TypeError("defaultLayout must be null or a Layout");if(t!==null){if(0>t.span)throw new Error("defaultLayout must have constant span");t.property===void 0&&(t=t.replicate("content"))}let s=-1;t&&(s=t.span,0<=s&&(e instanceof ni||e instanceof Ai)&&(s+=i.layout.span)),super(s,n),this.discriminator=i,this.usesPrefixDiscriminator=e instanceof ni||e instanceof Ai,this.defaultLayout=t,this.registry={};let o=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(a){return o(a)},this.configGetSourceVariant=function(a){o=a.bind(this)}}getSpan(e,t=0){if(0<=this.span)return this.span;const n=this.getVariant(e,t);if(!n)throw new Error("unable to determine span for unrecognized variant");return n.getSpan(e,t)}defaultGetSourceVariant(e){if(Object.prototype.hasOwnProperty.call(e,this.discriminator.property)){if(this.defaultLayout&&this.defaultLayout.property&&Object.prototype.hasOwnProperty.call(e,this.defaultLayout.property))return;const t=this.registry[e[this.discriminator.property]];if(t&&(!t.layout||t.property&&Object.prototype.hasOwnProperty.call(e,t.property)))return t}else for(const t in this.registry){const n=this.registry[t];if(n.property&&Object.prototype.hasOwnProperty.call(e,n.property))return n}throw new Error("unable to infer src variant")}decode(e,t=0){let n;const i=this.discriminator,s=i.decode(e,t),o=this.registry[s];if(o===void 0){const a=this.defaultLayout;let u=0;this.usesPrefixDiscriminator&&(u=i.layout.span),n=this.makeDestinationObject(),n[i.property]=s,n[a.property]=a.decode(e,t+u)}else n=o.decode(e,t);return n}encode(e,t,n=0){const i=this.getSourceVariant(e);if(i===void 0){const s=this.discriminator,o=this.defaultLayout;let a=0;return this.usesPrefixDiscriminator&&(a=s.layout.span),s.encode(e[s.property],t,n),a+o.encode(e[o.property],t,n+a)}return i.encode(e,t,n)}addVariant(e,t,n){const i=new R2(this,e,t,n);return this.registry[e]=i,i}getVariant(e,t=0){let n;return e instanceof Uint8Array?n=this.discriminator.decode(e,t):n=e,this.registry[n]}};ne.Union=dm;let R2=class extends Tt{constructor(e,t,n,i){if(!(e instanceof dm))throw new TypeError("union must be a Union");if(!Number.isInteger(t)||0>t)throw new TypeError("variant must be a (non-negative) integer");if(typeof n=="string"&&i===void 0&&(i=n,n=null),n){if(!(n instanceof Tt))throw new TypeError("layout must be a Layout");if(e.defaultLayout!==null&&0<=n.span&&n.span>e.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if(typeof i!="string")throw new TypeError("variant must have a String property")}let s=e.span;0>e.span&&(s=n?n.span:0,0<=s&&e.usesPrefixDiscriminator&&(s+=e.discriminator.layout.span)),super(s,i),this.union=e,this.variant=t,this.layout=n||null}getSpan(e,t=0){if(0<=this.span)return this.span;let n=0;this.union.usesPrefixDiscriminator&&(n=this.union.discriminator.layout.span);let i=0;return this.layout&&(i=this.layout.getSpan(e,t+n)),n+i}decode(e,t=0){const n=this.makeDestinationObject();if(this!==this.union.getVariant(e,t))throw new Error("variant mismatch");let i=0;return this.union.usesPrefixDiscriminator&&(i=this.union.discriminator.layout.span),this.layout?n[this.property]=this.layout.decode(e,t+i):this.property?n[this.property]=!0:this.union.usesPrefixDiscriminator&&(n[this.union.discriminator.property]=this.variant),n}encode(e,t,n=0){let i=0;if(this.union.usesPrefixDiscriminator&&(i=this.union.discriminator.layout.span),this.layout&&!Object.prototype.hasOwnProperty.call(e,this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,t,n);let s=i;if(this.layout&&(this.layout.encode(e[this.property],t,n+i),s+=this.layout.getSpan(t,n+i),0<=this.union.span&&s>this.union.span))throw new Error("encoded variant overruns containing union");return s}fromArray(e){if(this.layout)return this.layout.fromArray(e)}};ne.VariantLayout=R2;function cu(r){return 0>r&&(r+=4294967296),r}let pm=class extends Tt{constructor(e,t,n){if(!(e instanceof ni||e instanceof Ai))throw new TypeError("word must be a UInt or UIntBE layout");if(typeof t=="string"&&n===void 0&&(n=t,t=!1),4<e.span)throw new RangeError("word cannot exceed 32 bits");super(e.span,n),this.word=e,this.msb=!!t,this.fields=[];let i=0;this._packedSetValue=function(s){return i=cu(s),this},this._packedGetValue=function(){return i}}decode(e,t=0){const n=this.makeDestinationObject(),i=this.word.decode(e,t);this._packedSetValue(i);for(const s of this.fields)s.property!==void 0&&(n[s.property]=s.decode(e));return n}encode(e,t,n=0){const i=this.word.decode(t,n);this._packedSetValue(i);for(const s of this.fields)if(s.property!==void 0){const o=e[s.property];o!==void 0&&s.encode(o)}return this.word.encode(this._packedGetValue(),t,n)}addField(e,t){const n=new gm(this,e,t);return this.fields.push(n),n}addBoolean(e){const t=new I2(this,e);return this.fields.push(t),t}fieldFor(e){if(typeof e!="string")throw new TypeError("property must be string");for(const t of this.fields)if(t.property===e)return t}};ne.BitStructure=pm;let gm=class{constructor(e,t,n){if(!(e instanceof pm))throw new TypeError("container must be a BitStructure");if(!Number.isInteger(t)||0>=t)throw new TypeError("bits must be positive integer");const i=8*e.span,s=e.fields.reduce((o,a)=>o+a.bits,0);if(t+s>i)throw new Error("bits too long for span remainder ("+(i-s)+" of "+i+" remain)");this.container=e,this.bits=t,this.valueMask=(1<<t)-1,t===32&&(this.valueMask=4294967295),this.start=s,this.container.msb&&(this.start=i-s-t),this.wordMask=cu(this.valueMask<<this.start),this.property=n}decode(e,t){const n=this.container._packedGetValue();return cu(n&this.wordMask)>>>this.start}encode(e){if(typeof e!="number"||!Number.isInteger(e)||e!==cu(e&this.valueMask))throw new TypeError(um("BitField.encode",this)+" value must be integer not exceeding "+this.valueMask);const t=this.container._packedGetValue(),n=cu(e<<this.start);this.container._packedSetValue(cu(t&~this.wordMask)|n)}};ne.BitField=gm;let I2=class extends gm{constructor(e,t){super(e,1,t)}decode(e,t){return!!super.decode(e,t)}encode(e){typeof e=="boolean"&&(e=+e),super.encode(e)}};ne.Boolean=I2;let S2=class extends Tt{constructor(e,t){if(!(e instanceof kn&&e.isCount()||Number.isInteger(e)&&0<=e))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let n=-1;e instanceof kn||(n=e),super(n,t),this.length=e}getSpan(e,t){let n=this.span;return 0>n&&(n=this.length.decode(e,t)),n}decode(e,t=0){let n=this.span;return 0>n&&(n=this.length.decode(e,t)),At(e).slice(t,t+n)}encode(e,t,n){let i=this.length;if(this.length instanceof kn&&(i=e.length),!(e instanceof Uint8Array&&i===e.length))throw new TypeError(um("Blob.encode",this)+" requires (length "+i+") Uint8Array as src");if(n+i>t.length)throw new RangeError("encoding overruns Uint8Array");const s=At(e);return At(t).write(s.toString("hex"),n,i,"hex"),this.length instanceof kn&&this.length.encode(i,t,n),i}};ne.Blob=S2;let k2=class extends Tt{constructor(e){super(-1,e)}getSpan(e,t=0){ou(e);let n=t;for(;n<e.length&&e[n]!==0;)n+=1;return 1+n-t}decode(e,t=0){const n=this.getSpan(e,t);return At(e).slice(t,t+n-1).toString("utf-8")}encode(e,t,n=0){typeof e!="string"&&(e=String(e));const i=cm.Buffer.from(e,"utf8"),s=i.length;if(n+s>t.length)throw new RangeError("encoding overruns Buffer");const o=At(t);return i.copy(o,n),o[n+s]=0,s+1}};ne.CString=k2;let T2=class extends Tt{constructor(e,t){if(typeof e=="string"&&t===void 0&&(t=e,e=void 0),e===void 0)e=-1;else if(!Number.isInteger(e))throw new TypeError("maxSpan must be an integer");super(-1,t),this.maxSpan=e}getSpan(e,t=0){return ou(e),e.length-t}decode(e,t=0){const n=this.getSpan(e,t);if(0<=this.maxSpan&&this.maxSpan<n)throw new RangeError("text length exceeds maxSpan");return At(e).slice(t,t+n).toString("utf-8")}encode(e,t,n=0){typeof e!="string"&&(e=String(e));const i=cm.Buffer.from(e,"utf8"),s=i.length;if(0<=this.maxSpan&&this.maxSpan<s)throw new RangeError("text length exceeds maxSpan");if(n+s>t.length)throw new RangeError("encoding overruns Buffer");return i.copy(At(t),n),s}};ne.UTF8=T2;let O2=class extends Tt{constructor(e,t){super(0,t),this.value=e}decode(e,t){return this.value}encode(e,t,n){return 0}};ne.Constant=O2,ne.greedy=(r,e)=>new p2(r,e);var mo=ne.offset=(r,e,t)=>new lm(r,e,t),bt=ne.u8=r=>new ni(1,r),ii=ne.u16=r=>new ni(2,r);ne.u24=r=>new ni(3,r);var Pe=ne.u32=r=>new ni(4,r);ne.u40=r=>new ni(5,r),ne.u48=r=>new ni(6,r);var Wr=ne.nu64=r=>new g2(r);ne.u16be=r=>new Ai(2,r),ne.u24be=r=>new Ai(3,r),ne.u32be=r=>new Ai(4,r),ne.u40be=r=>new Ai(5,r),ne.u48be=r=>new Ai(6,r),ne.nu64be=r=>new y2(r),ne.s8=r=>new Ra(1,r),ne.s16=r=>new Ra(2,r),ne.s24=r=>new Ra(3,r),ne.s32=r=>new Ra(4,r),ne.s40=r=>new Ra(5,r),ne.s48=r=>new Ra(6,r);var Hn=ne.ns64=r=>new m2(r);ne.s16be=r=>new au(2,r),ne.s24be=r=>new au(3,r),ne.s32be=r=>new au(4,r),ne.s40be=r=>new au(5,r),ne.s48be=r=>new au(6,r),ne.ns64be=r=>new w2(r),ne.f32=r=>new b2(r),ne.f32be=r=>new _2(r),ne.f64=r=>new A2(r),ne.f64be=r=>new v2(r);var Me=ne.struct=(r,e,t)=>new x2(r,e,t);ne.bits=(r,e,t)=>new pm(r,e,t);var Vr=ne.seq=(r,e,t)=>new E2(r,e,t);ne.union=(r,e,t)=>new dm(r,e,t),ne.unionLayoutDiscriminator=(r,e)=>new b0(r,e);var Vt=ne.blob=(r,e)=>new S2(r,e);ne.cstr=r=>new k2(r),ne.utf8=(r,e)=>new T2(r,e),ne.constant=(r,e)=>new O2(r,e);var If={};Object.defineProperty(If,"__esModule",{value:!0});function lj(r){{const e=Ze.from(r);e.reverse();const t=e.toString("hex");return t.length===0?BigInt(0):BigInt(`0x${t}`)}}var fj=If.toBigIntLE=lj;function hj(r){{const e=r.toString("hex");return e.length===0?BigInt(0):BigInt(`0x${e}`)}}If.toBigIntBE=hj;function dj(r,e){{const t=r.toString(16),n=Ze.from(t.padStart(e*2,"0").slice(0,e*2),"hex");return n.reverse(),n}}var N2=If.toBufferLE=dj;function pj(r,e){{const t=r.toString(16);return Ze.from(t.padStart(e*2,"0").slice(0,e*2),"hex")}}If.toBufferBE=pj;let gj=class extends TypeError{constructor(e,t){let n;const{message:i,explanation:s,...o}=e,{path:a}=e,u=a.length===0?i:`At path: ${a.join(".")} -- ${i}`;super(s??u),s!=null&&(this.cause=u),Object.assign(this,o),this.name=this.constructor.name,this.failures=()=>n??(n=[e,...t()])}};function yj(r){return Sf(r)&&typeof r[Symbol.iterator]=="function"}function Sf(r){return typeof r=="object"&&r!=null}function _0(r){return Sf(r)&&!Array.isArray(r)}function vi(r){return typeof r=="symbol"?r.toString():typeof r=="string"?JSON.stringify(r):`${r}`}function mj(r){const{done:e,value:t}=r.next();return e?void 0:t}function wj(r,e,t,n){if(r===!0)return;r===!1?r={}:typeof r=="string"&&(r={message:r});const{path:i,branch:s}=e,{type:o}=t,{refinement:a,message:u=`Expected a value of type \`${o}\`${a?` with refinement \`${a}\``:""}, but received: \`${vi(n)}\``}=r;return{value:n,type:o,refinement:a,key:i[i.length-1],path:i,branch:s,...r,message:u}}function*C2(r,e,t,n){yj(r)||(r=[r]);for(const i of r){const s=wj(i,e,t,n);s&&(yield s)}}function*ym(r,e,t={}){const{path:n=[],branch:i=[r],coerce:s=!1,mask:o=!1}=t,a={path:n,branch:i,mask:o};s&&(r=e.coercer(r,a));let u="valid";for(const l of e.validator(r,a))l.explanation=t.message,u="not_valid",yield[l,void 0];for(let[l,h,g]of e.entries(r,a)){const b=ym(h,g,{path:l===void 0?n:[...n,l],branch:l===void 0?i:[...i,h],coerce:s,mask:o,message:t.message});for(const w of b)w[0]?(u=w[0].refinement!=null?"not_refined":"not_valid",yield[w[0],void 0]):s&&(h=w[1],l===void 0?r=h:r instanceof Map?r.set(l,h):r instanceof Set?r.add(h):Sf(r)&&(h!==void 0||l in r)&&(r[l]=h))}if(u!=="not_valid")for(const l of e.refiner(r,a))l.explanation=t.message,u="not_refined",yield[l,void 0];u==="valid"&&(yield[void 0,r])}let ji=class{constructor(e){const{type:t,schema:n,validator:i,refiner:s,coercer:o=u=>u,entries:a=function*(){}}=e;this.type=t,this.schema=n,this.entries=a,this.coercer=o,i?this.validator=(u,l)=>{const h=i(u,l);return C2(h,l,this,u)}:this.validator=()=>[],s?this.refiner=(u,l)=>{const h=s(u,l);return C2(h,l,this,u)}:this.refiner=()=>[]}assert(e,t){return B2(e,this,t)}create(e,t){return Ae(e,this,t)}is(e){return P2(e,this)}mask(e,t){return bj(e,this,t)}validate(e,t={}){return kf(e,this,t)}};function B2(r,e,t){const n=kf(r,e,{message:t});if(n[0])throw n[0]}function Ae(r,e,t){const n=kf(r,e,{coerce:!0,message:t});if(n[0])throw n[0];return n[1]}function bj(r,e,t){const n=kf(r,e,{coerce:!0,mask:!0,message:t});if(n[0])throw n[0];return n[1]}function P2(r,e){return!kf(r,e)[0]}function kf(r,e,t={}){const n=ym(r,e,t),i=mj(n);return i[0]?[new gj(i[0],function*(){for(const o of n)o[0]&&(yield o[0])}),void 0]:[void 0,i[1]]}function Ia(r,e){return new ji({type:r,schema:null,validator:e})}function _j(){return Ia("any",()=>!0)}function Re(r){return new ji({type:"array",schema:r,*entries(e){if(r&&Array.isArray(e))for(const[t,n]of e.entries())yield[t,n,r]},coercer(e){return Array.isArray(e)?e.slice():e},validator(e){return Array.isArray(e)||`Expected an array value, but received: ${vi(e)}`}})}function Wi(){return Ia("boolean",r=>typeof r=="boolean")}function mm(r){return Ia("instance",e=>e instanceof r||`Expected a \`${r.name}\` instance, but received: ${vi(e)}`)}function rr(r){const e=vi(r),t=typeof r;return new ji({type:"literal",schema:t==="string"||t==="number"||t==="boolean"?r:null,validator(n){return n===r||`Expected the literal \`${e}\`, but received: ${vi(n)}`}})}function Aj(){return Ia("never",()=>!1)}function Ie(r){return new ji({...r,validator:(e,t)=>e===null||r.validator(e,t),refiner:(e,t)=>e===null||r.refiner(e,t)})}function X(){return Ia("number",r=>typeof r=="number"&&!isNaN(r)||`Expected a number, but received: ${vi(r)}`)}function He(r){return new ji({...r,validator:(e,t)=>e===void 0||r.validator(e,t),refiner:(e,t)=>e===void 0||r.refiner(e,t)})}function M2(r,e){return new ji({type:"record",schema:null,*entries(t){if(Sf(t))for(const n in t){const i=t[n];yield[n,n,r],yield[n,i,e]}},validator(t){return _0(t)||`Expected an object, but received: ${vi(t)}`},coercer(t){return _0(t)?{...t}:t}})}function _e(){return Ia("string",r=>typeof r=="string"||`Expected a string, but received: ${vi(r)}`)}function wm(r){const e=Aj();return new ji({type:"tuple",schema:null,*entries(t){if(Array.isArray(t)){const n=Math.max(r.length,t.length);for(let i=0;i<n;i++)yield[i,t[i],r[i]||e]}},validator(t){return Array.isArray(t)||`Expected an array, but received: ${vi(t)}`},coercer(t){return Array.isArray(t)?t.slice():t}})}function pe(r){const e=Object.keys(r);return new ji({type:"type",schema:r,*entries(t){if(Sf(t))for(const n of e)yield[n,t[n],r[n]]},validator(t){return _0(t)||`Expected an object, but received: ${vi(t)}`},coercer(t){return _0(t)?{...t}:t}})}function gn(r){const e=r.map(t=>t.type).join(" | ");return new ji({type:"union",schema:null,coercer(t,n){for(const i of r){const[s,o]=i.validate(t,{coerce:!0,mask:n.mask});if(!s)return o}return t},validator(t,n){const i=[];for(const s of r){const[...o]=ym(t,s,n),[a]=o;if(a[0])for(const[u]of o)u&&i.push(u);else return[]}return[`Expected the value to satisfy a union of \`${e}\`, but received: ${vi(t)}`,...i]}})}function uu(){return Ia("unknown",()=>!0)}function Tf(r,e,t){return new ji({...r,coercer:(n,i)=>P2(n,e)?r.coercer(t(n,i),i):r.coercer(n,i)})}var A0,vj=new Uint8Array(16);function L2(){if(!A0&&(A0=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!A0))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return A0(vj)}const Ej=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function v0(r){return typeof r=="string"&&Ej.test(r)}for(var qr=[],bm=0;bm<256;++bm)qr.push((bm+256).toString(16).substr(1));function E0(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=(qr[r[e+0]]+qr[r[e+1]]+qr[r[e+2]]+qr[r[e+3]]+"-"+qr[r[e+4]]+qr[r[e+5]]+"-"+qr[r[e+6]]+qr[r[e+7]]+"-"+qr[r[e+8]]+qr[r[e+9]]+"-"+qr[r[e+10]]+qr[r[e+11]]+qr[r[e+12]]+qr[r[e+13]]+qr[r[e+14]]+qr[r[e+15]]).toLowerCase();if(!v0(t))throw TypeError("Stringified UUID is invalid");return t}var U2,_m,Am=0,vm=0;function xj(r,e,t){var n=e&&t||0,i=e||new Array(16);r=r||{};var s=r.node||U2,o=r.clockseq!==void 0?r.clockseq:_m;if(s==null||o==null){var a=r.random||(r.rng||L2)();s==null&&(s=U2=[a[0]|1,a[1],a[2],a[3],a[4],a[5]]),o==null&&(o=_m=(a[6]<<8|a[7])&16383)}var u=r.msecs!==void 0?r.msecs:Date.now(),l=r.nsecs!==void 0?r.nsecs:vm+1,h=u-Am+(l-vm)/1e4;if(h<0&&r.clockseq===void 0&&(o=o+1&16383),(h<0||u>Am)&&r.nsecs===void 0&&(l=0),l>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");Am=u,vm=l,_m=o,u+=122192928e5;var g=((u&268435455)*1e4+l)%4294967296;i[n++]=g>>>24&255,i[n++]=g>>>16&255,i[n++]=g>>>8&255,i[n++]=g&255;var b=u/4294967296*1e4&268435455;i[n++]=b>>>8&255,i[n++]=b&255,i[n++]=b>>>24&15|16,i[n++]=b>>>16&255,i[n++]=o>>>8|128,i[n++]=o&255;for(var w=0;w<6;++w)i[n+w]=s[w];return e||E0(i)}function D2(r){if(!v0(r))throw TypeError("Invalid UUID");var e,t=new Uint8Array(16);return t[0]=(e=parseInt(r.slice(0,8),16))>>>24,t[1]=e>>>16&255,t[2]=e>>>8&255,t[3]=e&255,t[4]=(e=parseInt(r.slice(9,13),16))>>>8,t[5]=e&255,t[6]=(e=parseInt(r.slice(14,18),16))>>>8,t[7]=e&255,t[8]=(e=parseInt(r.slice(19,23),16))>>>8,t[9]=e&255,t[10]=(e=parseInt(r.slice(24,36),16))/1099511627776&255,t[11]=e/4294967296&255,t[12]=e>>>24&255,t[13]=e>>>16&255,t[14]=e>>>8&255,t[15]=e&255,t}function Rj(r){r=unescape(encodeURIComponent(r));for(var e=[],t=0;t<r.length;++t)e.push(r.charCodeAt(t));return e}var Ij="6ba7b810-9dad-11d1-80b4-00c04fd430c8",Sj="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function $2(r,e,t){function n(i,s,o,a){if(typeof i=="string"&&(i=Rj(i)),typeof s=="string"&&(s=D2(s)),s.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var u=new Uint8Array(16+i.length);if(u.set(s),u.set(i,s.length),u=t(u),u[6]=u[6]&15|e,u[8]=u[8]&63|128,o){a=a||0;for(var l=0;l<16;++l)o[a+l]=u[l];return o}return E0(u)}try{n.name=r}catch{}return n.DNS=Ij,n.URL=Sj,n}function kj(r){if(typeof r=="string"){var e=unescape(encodeURIComponent(r));r=new Uint8Array(e.length);for(var t=0;t<e.length;++t)r[t]=e.charCodeAt(t)}return Tj(Oj(Nj(r),r.length*8))}function Tj(r){for(var e=[],t=r.length*32,n="0123456789abcdef",i=0;i<t;i+=8){var s=r[i>>5]>>>i%32&255,o=parseInt(n.charAt(s>>>4&15)+n.charAt(s&15),16);e.push(o)}return e}function F2(r){return(r+64>>>9<<4)+14+1}function Oj(r,e){r[e>>5]|=128<<e%32,r[F2(e)-1]=e;for(var t=1732584193,n=-271733879,i=-1732584194,s=271733878,o=0;o<r.length;o+=16){var a=t,u=n,l=i,h=s;t=rn(t,n,i,s,r[o],7,-680876936),s=rn(s,t,n,i,r[o+1],12,-389564586),i=rn(i,s,t,n,r[o+2],17,606105819),n=rn(n,i,s,t,r[o+3],22,-1044525330),t=rn(t,n,i,s,r[o+4],7,-176418897),s=rn(s,t,n,i,r[o+5],12,1200080426),i=rn(i,s,t,n,r[o+6],17,-1473231341),n=rn(n,i,s,t,r[o+7],22,-45705983),t=rn(t,n,i,s,r[o+8],7,1770035416),s=rn(s,t,n,i,r[o+9],12,-1958414417),i=rn(i,s,t,n,r[o+10],17,-42063),n=rn(n,i,s,t,r[o+11],22,-1990404162),t=rn(t,n,i,s,r[o+12],7,1804603682),s=rn(s,t,n,i,r[o+13],12,-40341101),i=rn(i,s,t,n,r[o+14],17,-1502002290),n=rn(n,i,s,t,r[o+15],22,1236535329),t=nn(t,n,i,s,r[o+1],5,-165796510),s=nn(s,t,n,i,r[o+6],9,-1069501632),i=nn(i,s,t,n,r[o+11],14,643717713),n=nn(n,i,s,t,r[o],20,-373897302),t=nn(t,n,i,s,r[o+5],5,-701558691),s=nn(s,t,n,i,r[o+10],9,38016083),i=nn(i,s,t,n,r[o+15],14,-660478335),n=nn(n,i,s,t,r[o+4],20,-405537848),t=nn(t,n,i,s,r[o+9],5,568446438),s=nn(s,t,n,i,r[o+14],9,-1019803690),i=nn(i,s,t,n,r[o+3],14,-187363961),n=nn(n,i,s,t,r[o+8],20,1163531501),t=nn(t,n,i,s,r[o+13],5,-1444681467),s=nn(s,t,n,i,r[o+2],9,-51403784),i=nn(i,s,t,n,r[o+7],14,1735328473),n=nn(n,i,s,t,r[o+12],20,-1926607734),t=sn(t,n,i,s,r[o+5],4,-378558),s=sn(s,t,n,i,r[o+8],11,-2022574463),i=sn(i,s,t,n,r[o+11],16,1839030562),n=sn(n,i,s,t,r[o+14],23,-35309556),t=sn(t,n,i,s,r[o+1],4,-1530992060),s=sn(s,t,n,i,r[o+4],11,1272893353),i=sn(i,s,t,n,r[o+7],16,-155497632),n=sn(n,i,s,t,r[o+10],23,-1094730640),t=sn(t,n,i,s,r[o+13],4,681279174),s=sn(s,t,n,i,r[o],11,-358537222),i=sn(i,s,t,n,r[o+3],16,-722521979),n=sn(n,i,s,t,r[o+6],23,76029189),t=sn(t,n,i,s,r[o+9],4,-640364487),s=sn(s,t,n,i,r[o+12],11,-421815835),i=sn(i,s,t,n,r[o+15],16,530742520),n=sn(n,i,s,t,r[o+2],23,-995338651),t=on(t,n,i,s,r[o],6,-198630844),s=on(s,t,n,i,r[o+7],10,1126891415),i=on(i,s,t,n,r[o+14],15,-1416354905),n=on(n,i,s,t,r[o+5],21,-57434055),t=on(t,n,i,s,r[o+12],6,1700485571),s=on(s,t,n,i,r[o+3],10,-1894986606),i=on(i,s,t,n,r[o+10],15,-1051523),n=on(n,i,s,t,r[o+1],21,-2054922799),t=on(t,n,i,s,r[o+8],6,1873313359),s=on(s,t,n,i,r[o+15],10,-30611744),i=on(i,s,t,n,r[o+6],15,-1560198380),n=on(n,i,s,t,r[o+13],21,1309151649),t=on(t,n,i,s,r[o+4],6,-145523070),s=on(s,t,n,i,r[o+11],10,-1120210379),i=on(i,s,t,n,r[o+2],15,718787259),n=on(n,i,s,t,r[o+9],21,-343485551),t=wo(t,a),n=wo(n,u),i=wo(i,l),s=wo(s,h)}return[t,n,i,s]}function Nj(r){if(r.length===0)return[];for(var e=r.length*8,t=new Uint32Array(F2(e)),n=0;n<e;n+=8)t[n>>5]|=(r[n/8]&255)<<n%32;return t}function wo(r,e){var t=(r&65535)+(e&65535),n=(r>>16)+(e>>16)+(t>>16);return n<<16|t&65535}function Cj(r,e){return r<<e|r>>>32-e}function x0(r,e,t,n,i,s){return wo(Cj(wo(wo(e,r),wo(n,s)),i),t)}function rn(r,e,t,n,i,s,o){return x0(e&t|~e&n,r,e,i,s,o)}function nn(r,e,t,n,i,s,o){return x0(e&n|t&~n,r,e,i,s,o)}function sn(r,e,t,n,i,s,o){return x0(e^t^n,r,e,i,s,o)}function on(r,e,t,n,i,s,o){return x0(t^(e|~n),r,e,i,s,o)}var Bj=$2("v3",48,kj);function Pj(r,e,t){r=r||{};var n=r.random||(r.rng||L2)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,e){t=t||0;for(var i=0;i<16;++i)e[t+i]=n[i];return e}return E0(n)}function Mj(r,e,t,n){switch(r){case 0:return e&t^~e&n;case 1:return e^t^n;case 2:return e&t^e&n^t&n;case 3:return e^t^n}}function Em(r,e){return r<<e|r>>>32-e}function Lj(r){var e=[1518500249,1859775393,2400959708,3395469782],t=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof r=="string"){var n=unescape(encodeURIComponent(r));r=[];for(var i=0;i<n.length;++i)r.push(n.charCodeAt(i))}else Array.isArray(r)||(r=Array.prototype.slice.call(r));r.push(128);for(var s=r.length/4+2,o=Math.ceil(s/16),a=new Array(o),u=0;u<o;++u){for(var l=new Uint32Array(16),h=0;h<16;++h)l[h]=r[u*64+h*4]<<24|r[u*64+h*4+1]<<16|r[u*64+h*4+2]<<8|r[u*64+h*4+3];a[u]=l}a[o-1][14]=(r.length-1)*8/Math.pow(2,32),a[o-1][14]=Math.floor(a[o-1][14]),a[o-1][15]=(r.length-1)*8&4294967295;for(var g=0;g<o;++g){for(var b=new Uint32Array(80),w=0;w<16;++w)b[w]=a[g][w];for(var I=16;I<80;++I)b[I]=Em(b[I-3]^b[I-8]^b[I-14]^b[I-16],1);for(var S=t[0],x=t[1],C=t[2],H=t[3],D=t[4],z=0;z<80;++z){var V=Math.floor(z/20),Z=Em(S,5)+Mj(V,x,C,H)+D+e[V]+b[z]>>>0;D=H,H=C,C=Em(x,30)>>>0,x=S,S=Z}t[0]=t[0]+S>>>0,t[1]=t[1]+x>>>0,t[2]=t[2]+C>>>0,t[3]=t[3]+H>>>0,t[4]=t[4]+D>>>0}return[t[0]>>24&255,t[0]>>16&255,t[0]>>8&255,t[0]&255,t[1]>>24&255,t[1]>>16&255,t[1]>>8&255,t[1]&255,t[2]>>24&255,t[2]>>16&255,t[2]>>8&255,t[2]&255,t[3]>>24&255,t[3]>>16&255,t[3]>>8&255,t[3]&255,t[4]>>24&255,t[4]>>16&255,t[4]>>8&255,t[4]&255]}var Uj=$2("v5",80,Lj);const Dj="00000000-0000-0000-0000-000000000000";function $j(r){if(!v0(r))throw TypeError("Invalid UUID");return parseInt(r.substr(14,1),16)}const H2=Lc(Object.freeze(Object.defineProperty({__proto__:null,NIL:Dj,parse:D2,stringify:E0,v1:xj,v3:Bj,v4:Pj,v5:Uj,validate:v0,version:$j},Symbol.toStringTag,{value:"Module"}))),Fj=H2.v4;var Hj=function(r,e,t,n){if(typeof r!="string")throw new TypeError(r+" must be a string");n=n||{};const i=typeof n.version=="number"?n.version:2;if(i!==1&&i!==2)throw new TypeError(i+" must be 1 or 2");const s={method:r};if(i===2&&(s.jsonrpc="2.0"),e){if(typeof e!="object"&&!Array.isArray(e))throw new TypeError(e+" must be an object, array or omitted");s.params=e}if(typeof t>"u"){const o=typeof n.generator=="function"?n.generator:function(){return Fj()};s.id=o(s,n)}else i===2&&t===null?n.notificationIdNull&&(s.id=null):s.id=t;return s};const zj=H2.v4,Gj=Hj,Of=function(r,e){if(!(this instanceof Of))return new Of(r,e);e||(e={}),this.options={reviver:typeof e.reviver<"u"?e.reviver:null,replacer:typeof e.replacer<"u"?e.replacer:null,generator:typeof e.generator<"u"?e.generator:function(){return zj()},version:typeof e.version<"u"?e.version:2,notificationIdNull:typeof e.notificationIdNull=="boolean"?e.notificationIdNull:!1},this.callServer=r};var Kj=Of;Of.prototype.request=function(r,e,t,n){const i=this;let s=null;const o=Array.isArray(r)&&typeof e=="function";if(this.options.version===1&&o)throw new TypeError("JSON-RPC 1.0 does not support batching");if(o||!o&&r&&typeof r=="object"&&typeof e=="function")n=e,s=r;else{typeof t=="function"&&(n=t,t=void 0);const l=typeof n=="function";try{s=Gj(r,e,t,{generator:this.options.generator,version:this.options.version,notificationIdNull:this.options.notificationIdNull})}catch(h){if(l)return n(h);throw h}if(!l)return s}let u;try{u=JSON.stringify(s,this.options.replacer)}catch(l){return n(l)}return this.callServer(u,function(l,h){i._parseResponse(l,h,n)}),s},Of.prototype._parseResponse=function(r,e,t){if(r){t(r);return}if(!e)return t();let n;try{n=JSON.parse(e,this.options.reviver)}catch(i){return t(i)}if(t.length===3)if(Array.isArray(n)){const i=function(o){return typeof o.error<"u"},s=function(o){return!i(o)};return t(null,n.filter(i),n.filter(s))}else return t(null,n.error,n.result);t(null,n)};const jj=xn(Kj);var z2={exports:{}};(function(r){var e=Object.prototype.hasOwnProperty,t="~";function n(){}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(t=!1));function i(u,l,h){this.fn=u,this.context=l,this.once=h||!1}function s(u,l,h,g,b){if(typeof h!="function")throw new TypeError("The listener must be a function");var w=new i(h,g||u,b),I=t?t+l:l;return u._events[I]?u._events[I].fn?u._events[I]=[u._events[I],w]:u._events[I].push(w):(u._events[I]=w,u._eventsCount++),u}function o(u,l){--u._eventsCount===0?u._events=new n:delete u._events[l]}function a(){this._events=new n,this._eventsCount=0}a.prototype.eventNames=function(){var l=[],h,g;if(this._eventsCount===0)return l;for(g in h=this._events)e.call(h,g)&&l.push(t?g.slice(1):g);return Object.getOwnPropertySymbols?l.concat(Object.getOwnPropertySymbols(h)):l},a.prototype.listeners=function(l){var h=t?t+l:l,g=this._events[h];if(!g)return[];if(g.fn)return[g.fn];for(var b=0,w=g.length,I=new Array(w);b<w;b++)I[b]=g[b].fn;return I},a.prototype.listenerCount=function(l){var h=t?t+l:l,g=this._events[h];return g?g.fn?1:g.length:0},a.prototype.emit=function(l,h,g,b,w,I){var S=t?t+l:l;if(!this._events[S])return!1;var x=this._events[S],C=arguments.length,H,D;if(x.fn){switch(x.once&&this.removeListener(l,x.fn,void 0,!0),C){case 1:return x.fn.call(x.context),!0;case 2:return x.fn.call(x.context,h),!0;case 3:return x.fn.call(x.context,h,g),!0;case 4:return x.fn.call(x.context,h,g,b),!0;case 5:return x.fn.call(x.context,h,g,b,w),!0;case 6:return x.fn.call(x.context,h,g,b,w,I),!0}for(D=1,H=new Array(C-1);D<C;D++)H[D-1]=arguments[D];x.fn.apply(x.context,H)}else{var z=x.length,V;for(D=0;D<z;D++)switch(x[D].once&&this.removeListener(l,x[D].fn,void 0,!0),C){case 1:x[D].fn.call(x[D].context);break;case 2:x[D].fn.call(x[D].context,h);break;case 3:x[D].fn.call(x[D].context,h,g);break;case 4:x[D].fn.call(x[D].context,h,g,b);break;default:if(!H)for(V=1,H=new Array(C-1);V<C;V++)H[V-1]=arguments[V];x[D].fn.apply(x[D].context,H)}}return!0},a.prototype.on=function(l,h,g){return s(this,l,h,g,!1)},a.prototype.once=function(l,h,g){return s(this,l,h,g,!0)},a.prototype.removeListener=function(l,h,g,b){var w=t?t+l:l;if(!this._events[w])return this;if(!h)return o(this,w),this;var I=this._events[w];if(I.fn)I.fn===h&&(!b||I.once)&&(!g||I.context===g)&&o(this,w);else{for(var S=0,x=[],C=I.length;S<C;S++)(I[S].fn!==h||b&&!I[S].once||g&&I[S].context!==g)&&x.push(I[S]);x.length?this._events[w]=x.length===1?x[0]:x:o(this,w)}return this},a.prototype.removeAllListeners=function(l){var h;return l?(h=t?t+l:l,this._events[h]&&o(this,h)):(this._events=new n,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=t,a.EventEmitter=a,r.exports=a})(z2);var Wj=z2.exports;const G2=xn(Wj);var Vj=class extends G2{constructor(e,t,n){super();Q(this,"socket");this.socket=new window.WebSocket(e,n),this.socket.onopen=()=>this.emit("open"),this.socket.onmessage=i=>this.emit("message",i.data),this.socket.onerror=i=>this.emit("error",i),this.socket.onclose=i=>{this.emit("close",i.code,i.reason)}}send(e,t,n){const i=n||t;try{this.socket.send(e),i()}catch(s){i(s)}}close(e,t){this.socket.close(e,t)}addEventListener(e,t,n){this.socket.addEventListener(e,t,n)}};function qj(r,e){return new Vj(r,e)}var Zj=class{encode(r){return JSON.stringify(r)}decode(r){return JSON.parse(r)}},Qj=class extends G2{constructor(e,t="ws://localhost:8080",{autoconnect:n=!0,reconnect:i=!0,reconnect_interval:s=1e3,max_reconnects:o=5,...a}={},u,l){super();Q(this,"address");Q(this,"rpc_id");Q(this,"queue");Q(this,"options");Q(this,"autoconnect");Q(this,"ready");Q(this,"reconnect");Q(this,"reconnect_timer_id");Q(this,"reconnect_interval");Q(this,"max_reconnects");Q(this,"rest_options");Q(this,"current_reconnects");Q(this,"generate_request_id");Q(this,"socket");Q(this,"webSocketFactory");Q(this,"dataPack");this.webSocketFactory=e,this.queue={},this.rpc_id=0,this.address=t,this.autoconnect=n,this.ready=!1,this.reconnect=i,this.reconnect_timer_id=void 0,this.reconnect_interval=s,this.max_reconnects=o,this.rest_options=a,this.current_reconnects=0,this.generate_request_id=u||(()=>typeof this.rpc_id=="number"?++this.rpc_id:Number(this.rpc_id)+1),l?this.dataPack=l:this.dataPack=new Zj,this.autoconnect&&this._connect(this.address,{autoconnect:this.autoconnect,reconnect:this.reconnect,reconnect_interval:this.reconnect_interval,max_reconnects:this.max_reconnects,...this.rest_options})}connect(){this.socket||this._connect(this.address,{autoconnect:this.autoconnect,reconnect:this.reconnect,reconnect_interval:this.reconnect_interval,max_reconnects:this.max_reconnects,...this.rest_options})}call(e,t,n,i){return!i&&typeof n=="object"&&(i=n,n=null),new Promise((s,o)=>{if(!this.ready)return o(new Error("socket not ready"));const a=this.generate_request_id(e,t),u={jsonrpc:"2.0",method:e,params:t||void 0,id:a};this.socket.send(this.dataPack.encode(u),i,l=>{if(l)return o(l);this.queue[a]={promise:[s,o]},n&&(this.queue[a].timeout=setTimeout(()=>{delete this.queue[a],o(new Error("reply timeout"))},n))})})}async login(e){const t=await this.call("rpc.login",e);if(!t)throw new Error("authentication failed");return t}async listMethods(){return await this.call("__listMethods")}notify(e,t){return new Promise((n,i)=>{if(!this.ready)return i(new Error("socket not ready"));const s={jsonrpc:"2.0",method:e,params:t};this.socket.send(this.dataPack.encode(s),o=>{if(o)return i(o);n()})})}async subscribe(e){typeof e=="string"&&(e=[e]);const t=await this.call("rpc.on",e);if(typeof e=="string"&&t[e]!=="ok")throw new Error("Failed subscribing to an event '"+e+"' with: "+t[e]);return t}async unsubscribe(e){typeof e=="string"&&(e=[e]);const t=await this.call("rpc.off",e);if(typeof e=="string"&&t[e]!=="ok")throw new Error("Failed unsubscribing from an event with: "+t);return t}close(e,t){this.socket.close(e||1e3,t)}setAutoReconnect(e){this.reconnect=e}setReconnectInterval(e){this.reconnect_interval=e}setMaxReconnects(e){this.max_reconnects=e}_connect(e,t){clearTimeout(this.reconnect_timer_id),this.socket=this.webSocketFactory(e,t),this.socket.addEventListener("open",()=>{this.ready=!0,this.emit("open"),this.current_reconnects=0}),this.socket.addEventListener("message",({data:n})=>{n instanceof ArrayBuffer&&(n=Ne.from(n).toString());try{n=this.dataPack.decode(n)}catch{return}if(n.notification&&this.listeners(n.notification).length){if(!Object.keys(n.params).length)return this.emit(n.notification);const i=[n.notification];if(n.params.constructor===Object)i.push(n.params);else for(let s=0;s<n.params.length;s++)i.push(n.params[s]);return Promise.resolve().then(()=>{this.emit.apply(this,i)})}if(!this.queue[n.id])return n.method?Promise.resolve().then(()=>{this.emit(n.method,n==null?void 0:n.params)}):void 0;"error"in n=="result"in n&&this.queue[n.id].promise[1](new Error('Server response malformed. Response must include either "result" or "error", but not both.')),this.queue[n.id].timeout&&clearTimeout(this.queue[n.id].timeout),n.error?this.queue[n.id].promise[1](n.error):this.queue[n.id].promise[0](n.result),delete this.queue[n.id]}),this.socket.addEventListener("error",n=>this.emit("error",n)),this.socket.addEventListener("close",({code:n,reason:i})=>{this.ready&&setTimeout(()=>this.emit("close",n,i),0),this.ready=!1,this.socket=void 0,n!==1e3&&(this.current_reconnects++,this.reconnect&&(this.max_reconnects>this.current_reconnects||this.max_reconnects===0)&&(this.reconnect_timer_id=setTimeout(()=>this._connect(e,t),this.reconnect_interval)))})}};const K2=[],j2=[],W2=[],Yj=BigInt(0),Nf=BigInt(1),Jj=BigInt(2),Xj=BigInt(7),eW=BigInt(256),tW=BigInt(113);for(let r=0,e=Nf,t=1,n=0;r<24;r++){[t,n]=[n,(2*t+3*n)%5],K2.push(2*(5*n+t)),j2.push((r+1)*(r+2)/2%64);let i=Yj;for(let s=0;s<7;s++)e=(e<<Nf^(e>>Xj)*tW)%eW,e&Jj&&(i^=Nf<<(Nf<<BigInt(s))-Nf);W2.push(i)}const[rW,nW]=DE(W2,!0),V2=(r,e,t)=>t>32?HE(r,e,t):$E(r,e,t),q2=(r,e,t)=>t>32?zE(r,e,t):FE(r,e,t);function iW(r,e=24){const t=new Uint32Array(10);for(let n=24-e;n<24;n++){for(let o=0;o<10;o++)t[o]=r[o]^r[o+10]^r[o+20]^r[o+30]^r[o+40];for(let o=0;o<10;o+=2){const a=(o+8)%10,u=(o+2)%10,l=t[u],h=t[u+1],g=V2(l,h,1)^t[a],b=q2(l,h,1)^t[a+1];for(let w=0;w<50;w+=10)r[o+w]^=g,r[o+w+1]^=b}let i=r[2],s=r[3];for(let o=0;o<24;o++){const a=j2[o],u=V2(i,s,a),l=q2(i,s,a),h=K2[o];i=r[h],s=r[h+1],r[h]=u,r[h+1]=l}for(let o=0;o<50;o+=10){for(let a=0;a<10;a++)t[a]=r[o+a];for(let a=0;a<10;a++)r[o+a]^=~t[(a+2)%10]&t[(a+4)%10]}r[0]^=rW[n],r[1]^=nW[n]}t.fill(0)}let sW=class GC extends Hy{constructor(e,t,n,i=!1,s=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=i,this.rounds=s,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,r0(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=$G(this.state)}keccak(){BE||PE(this.state32),iW(this.state32,this.rounds),BE||PE(this.state32),this.posOut=0,this.pos=0}update(e){Yc(this);const{blockLen:t,state:n}=this;e=n0(e);const i=e.length;for(let s=0;s<i;){const o=Math.min(t-this.pos,i-s);for(let a=0;a<o;a++)n[this.pos++]^=e[s++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:t,pos:n,blockLen:i}=this;e[n]^=t,t&128&&n===i-1&&this.keccak(),e[i-1]^=128,this.keccak()}writeInto(e){Yc(this,!1),vf(e),this.finish();const t=this.state,{blockLen:n}=this;for(let i=0,s=e.length;i<s;){this.posOut>=n&&this.keccak();const o=Math.min(n-this.posOut,s-i);e.set(t.subarray(this.posOut,this.posOut+o),i),this.posOut+=o,i+=o}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return r0(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(CE(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:n,outputLen:i,rounds:s,enableXOF:o}=this;return e||(e=new GC(t,n,i,o,s)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=s,e.suffix=n,e.outputLen=i,e.enableXOF=o,e.destroyed=this.destroyed,e}};const Z2=((r,e,t)=>zy(()=>new sW(e,r,t)))(1,136,256/8);let Q2=class extends Hy{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,DG(e);const n=n0(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const i=this.blockLen,s=new Uint8Array(i);s.set(n.length>i?e.create().update(n).digest():n);for(let o=0;o<s.length;o++)s[o]^=54;this.iHash.update(s),this.oHash=e.create();for(let o=0;o<s.length;o++)s[o]^=106;this.oHash.update(s),s.fill(0)}update(e){return Yc(this),this.iHash.update(e),this}digestInto(e){Yc(this),vf(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:n,finished:i,destroyed:s,blockLen:o,outputLen:a}=this;return e=e,e.finished=i,e.destroyed=s,e.blockLen=o,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}};const Y2=(r,e,t)=>new Q2(r,e).update(t).digest();Y2.create=(r,e)=>new Q2(r,e);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function J2(r){r.lowS!==void 0&&Es("lowS",r.lowS),r.prehash!==void 0&&Es("prehash",r.prehash)}function oW(r){const e=em(r);nu(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:t,Fp:n,a:i}=e;if(t){if(!n.eql(i,n.ZERO))throw new Error("invalid endomorphism, can only be defined for Koblitz curves that have a=0");if(typeof t!="object"||typeof t.beta!="bigint"||typeof t.splitScalar!="function")throw new Error("invalid endomorphism, expected beta: bigint and splitScalar: function")}return Object.freeze({...e})}const{bytesToNumberBE:aW,hexToBytes:cW}=gK;class uW extends Error{constructor(e=""){super(e)}}const Is={Err:uW,_tlv:{encode:(r,e)=>{const{Err:t}=Is;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length&1)throw new t("tlv.encode: unpadded data");const n=e.length/2,i=Xc(n);if(i.length/2&128)throw new t("tlv.encode: long form length too big");const s=n>127?Xc(i.length/2|128):"";return Xc(r)+s+i+e},decode(r,e){const{Err:t}=Is;let n=0;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length<2||e[n++]!==r)throw new t("tlv.decode: wrong tlv");const i=e[n++],s=!!(i&128);let o=0;if(!s)o=i;else{const u=i&127;if(!u)throw new t("tlv.decode(long): indefinite length not supported");if(u>4)throw new t("tlv.decode(long): byte length is too big");const l=e.subarray(n,n+u);if(l.length!==u)throw new t("tlv.decode: length bytes not complete");if(l[0]===0)throw new t("tlv.decode(long): zero leftmost byte");for(const h of l)o=o<<8|h;if(n+=u,o<128)throw new t("tlv.decode(long): not minimal encoding")}const a=e.subarray(n,n+o);if(a.length!==o)throw new t("tlv.decode: wrong value length");return{v:a,l:e.subarray(n+o)}}},_int:{encode(r){const{Err:e}=Is;if(r<Ss)throw new e("integer: negative integers are not allowed");let t=Xc(r);if(Number.parseInt(t[0],16)&8&&(t="00"+t),t.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return t},decode(r){const{Err:e}=Is;if(r[0]&128)throw new e("invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return aW(r)}},toSig(r){const{Err:e,_int:t,_tlv:n}=Is,i=typeof r=="string"?cW(r):r;Ef(i);const{v:s,l:o}=n.decode(48,i);if(o.length)throw new e("invalid signature: left bytes after parsing");const{v:a,l:u}=n.decode(2,s),{v:l,l:h}=n.decode(2,u);if(h.length)throw new e("invalid signature: left bytes after parsing");return{r:t.decode(a),s:t.decode(l)}},hexFromSig(r){const{_tlv:e,_int:t}=Is,n=e.encode(2,t.encode(r.r)),i=e.encode(2,t.encode(r.s)),s=n+i;return e.encode(48,s)}},Ss=BigInt(0),Lr=BigInt(1);BigInt(2);const X2=BigInt(3);BigInt(4);function lW(r){const e=oW(r),{Fp:t}=e,n=c0(e.n,e.nBitLength),i=e.toBytes||((S,x,C)=>{const H=x.toAffine();return Aa(Uint8Array.from([4]),t.toBytes(H.x),t.toBytes(H.y))}),s=e.fromBytes||(S=>{const x=S.subarray(1),C=t.fromBytes(x.subarray(0,t.BYTES)),H=t.fromBytes(x.subarray(t.BYTES,2*t.BYTES));return{x:C,y:H}});function o(S){const{a:x,b:C}=e,H=t.sqr(S),D=t.mul(H,S);return t.add(t.add(D,t.mul(S,x)),C)}if(!t.eql(t.sqr(e.Gy),o(e.Gx)))throw new Error("bad generator point: equation left != right");function a(S){return a0(S,Lr,e.n)}function u(S){const{allowedPrivateKeyLengths:x,nByteLength:C,wrapPrivateKey:H,n:D}=e;if(x&&typeof S!="bigint"){if(wa(S)&&(S=ba(S)),typeof S!="string"||!x.includes(S.length))throw new Error("invalid private key");S=S.padStart(C*2,"0")}let z;try{z=typeof S=="bigint"?S:_a(Tr("private key",S,C))}catch{throw new Error("invalid private key, expected hex or "+C+" bytes, got "+typeof S)}return H&&(z=Qt(z,D)),ri("private key",z,Lr,D),z}function l(S){if(!(S instanceof b))throw new Error("ProjectivePoint expected")}const h=Rf((S,x)=>{const{px:C,py:H,pz:D}=S;if(t.eql(D,t.ONE))return{x:C,y:H};const z=S.is0();x==null&&(x=z?t.ONE:t.inv(D));const V=t.mul(C,x),Z=t.mul(H,x),K=t.mul(D,x);if(z)return{x:t.ZERO,y:t.ZERO};if(!t.eql(K,t.ONE))throw new Error("invZ was invalid");return{x:V,y:Z}}),g=Rf(S=>{if(S.is0()){if(e.allowInfinityPoint&&!t.is0(S.py))return;throw new Error("bad point: ZERO")}const{x,y:C}=S.toAffine();if(!t.isValid(x)||!t.isValid(C))throw new Error("bad point: x or y not FE");const H=t.sqr(C),D=o(x);if(!t.eql(H,D))throw new Error("bad point: equation left != right");if(!S.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class b{constructor(x,C,H){if(this.px=x,this.py=C,this.pz=H,x==null||!t.isValid(x))throw new Error("x required");if(C==null||!t.isValid(C))throw new Error("y required");if(H==null||!t.isValid(H))throw new Error("z required");Object.freeze(this)}static fromAffine(x){const{x:C,y:H}=x||{};if(!x||!t.isValid(C)||!t.isValid(H))throw new Error("invalid affine point");if(x instanceof b)throw new Error("projective point not allowed");const D=z=>t.eql(z,t.ZERO);return D(C)&&D(H)?b.ZERO:new b(C,H,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(x){const C=t.invertBatch(x.map(H=>H.pz));return x.map((H,D)=>H.toAffine(C[D])).map(b.fromAffine)}static fromHex(x){const C=b.fromAffine(s(Tr("pointHex",x)));return C.assertValidity(),C}static fromPrivateKey(x){return b.BASE.multiply(u(x))}static msm(x,C){return r2(b,n,x,C)}_setWindowSize(x){I.setWindowSize(this,x)}assertValidity(){g(this)}hasEvenY(){const{y:x}=this.toAffine();if(t.isOdd)return!t.isOdd(x);throw new Error("Field doesn't support isOdd")}equals(x){l(x);const{px:C,py:H,pz:D}=this,{px:z,py:V,pz:Z}=x,K=t.eql(t.mul(C,Z),t.mul(z,D)),W=t.eql(t.mul(H,Z),t.mul(V,D));return K&&W}negate(){return new b(this.px,t.neg(this.py),this.pz)}double(){const{a:x,b:C}=e,H=t.mul(C,X2),{px:D,py:z,pz:V}=this;let Z=t.ZERO,K=t.ZERO,W=t.ZERO,oe=t.mul(D,D),ce=t.mul(z,z),ie=t.mul(V,V),ue=t.mul(D,z);return ue=t.add(ue,ue),W=t.mul(D,V),W=t.add(W,W),Z=t.mul(x,W),K=t.mul(H,ie),K=t.add(Z,K),Z=t.sub(ce,K),K=t.add(ce,K),K=t.mul(Z,K),Z=t.mul(ue,Z),W=t.mul(H,W),ie=t.mul(x,ie),ue=t.sub(oe,ie),ue=t.mul(x,ue),ue=t.add(ue,W),W=t.add(oe,oe),oe=t.add(W,oe),oe=t.add(oe,ie),oe=t.mul(oe,ue),K=t.add(K,oe),ie=t.mul(z,V),ie=t.add(ie,ie),oe=t.mul(ie,ue),Z=t.sub(Z,oe),W=t.mul(ie,ce),W=t.add(W,W),W=t.add(W,W),new b(Z,K,W)}add(x){l(x);const{px:C,py:H,pz:D}=this,{px:z,py:V,pz:Z}=x;let K=t.ZERO,W=t.ZERO,oe=t.ZERO;const ce=e.a,ie=t.mul(e.b,X2);let ue=t.mul(C,z),B=t.mul(H,V),p=t.mul(D,Z),m=t.add(C,H),E=t.add(z,V);m=t.mul(m,E),E=t.add(ue,B),m=t.sub(m,E),E=t.add(C,D);let k=t.add(z,Z);return E=t.mul(E,k),k=t.add(ue,p),E=t.sub(E,k),k=t.add(H,D),K=t.add(V,Z),k=t.mul(k,K),K=t.add(B,p),k=t.sub(k,K),oe=t.mul(ce,E),K=t.mul(ie,p),oe=t.add(K,oe),K=t.sub(B,oe),oe=t.add(B,oe),W=t.mul(K,oe),B=t.add(ue,ue),B=t.add(B,ue),p=t.mul(ce,p),E=t.mul(ie,E),B=t.add(B,p),p=t.sub(ue,p),p=t.mul(ce,p),E=t.add(E,p),ue=t.mul(B,E),W=t.add(W,ue),ue=t.mul(k,E),K=t.mul(m,K),K=t.sub(K,ue),ue=t.mul(m,B),oe=t.mul(k,oe),oe=t.add(oe,ue),new b(K,W,oe)}subtract(x){return this.add(x.negate())}is0(){return this.equals(b.ZERO)}wNAF(x){return I.wNAFCached(this,x,b.normalizeZ)}multiplyUnsafe(x){const{endo:C,n:H}=e;ri("scalar",x,Ss,H);const D=b.ZERO;if(x===Ss)return D;if(this.is0()||x===Lr)return this;if(!C||I.hasPrecomputes(this))return I.wNAFCachedUnsafe(this,x,b.normalizeZ);let{k1neg:z,k1:V,k2neg:Z,k2:K}=C.splitScalar(x),W=D,oe=D,ce=this;for(;V>Ss||K>Ss;)V&Lr&&(W=W.add(ce)),K&Lr&&(oe=oe.add(ce)),ce=ce.double(),V>>=Lr,K>>=Lr;return z&&(W=W.negate()),Z&&(oe=oe.negate()),oe=new b(t.mul(oe.px,C.beta),oe.py,oe.pz),W.add(oe)}multiply(x){const{endo:C,n:H}=e;ri("scalar",x,Lr,H);let D,z;if(C){const{k1neg:V,k1:Z,k2neg:K,k2:W}=C.splitScalar(x);let{p:oe,f:ce}=this.wNAF(Z),{p:ie,f:ue}=this.wNAF(W);oe=I.constTimeNegate(V,oe),ie=I.constTimeNegate(K,ie),ie=new b(t.mul(ie.px,C.beta),ie.py,ie.pz),D=oe.add(ie),z=ce.add(ue)}else{const{p:V,f:Z}=this.wNAF(x);D=V,z=Z}return b.normalizeZ([D,z])[0]}multiplyAndAddUnsafe(x,C,H){const D=b.BASE,z=(Z,K)=>K===Ss||K===Lr||!Z.equals(D)?Z.multiplyUnsafe(K):Z.multiply(K),V=z(this,C).add(z(x,H));return V.is0()?void 0:V}toAffine(x){return h(this,x)}isTorsionFree(){const{h:x,isTorsionFree:C}=e;if(x===Lr)return!0;if(C)return C(b,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:x,clearCofactor:C}=e;return x===Lr?this:C?C(b,this):this.multiplyUnsafe(e.h)}toRawBytes(x=!0){return Es("isCompressed",x),this.assertValidity(),i(b,this,x)}toHex(x=!0){return Es("isCompressed",x),ba(this.toRawBytes(x))}}b.BASE=new b(e.Gx,e.Gy,t.ONE),b.ZERO=new b(t.ZERO,t.ONE,t.ZERO);const w=e.nBitLength,I=t2(b,e.endo?Math.ceil(w/2):w);return{CURVE:e,ProjectivePoint:b,normPrivateKeyToScalar:u,weierstrassEquation:o,isWithinCurveOrder:a}}function fW(r){const e=em(r);return nu(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function hW(r){const e=fW(r),{Fp:t,n}=e,i=t.BYTES+1,s=2*t.BYTES+1;function o(p){return Qt(p,n)}function a(p){return Zy(p,n)}const{ProjectivePoint:u,normPrivateKeyToScalar:l,weierstrassEquation:h,isWithinCurveOrder:g}=lW({...e,toBytes(p,m,E){const k=m.toAffine(),O=t.toBytes(k.x),M=Aa;return Es("isCompressed",E),E?M(Uint8Array.from([m.hasEvenY()?2:3]),O):M(Uint8Array.from([4]),O,t.toBytes(k.y))},fromBytes(p){const m=p.length,E=p[0],k=p.subarray(1);if(m===i&&(E===2||E===3)){const O=_a(k);if(!a0(O,Lr,t.ORDER))throw new Error("Point is not on curve");const M=h(O);let G;try{G=t.sqrt(M)}catch(U){const le=U instanceof Error?": "+U.message:"";throw new Error("Point is not on curve"+le)}const P=(G&Lr)===Lr;return(E&1)===1!==P&&(G=t.neg(G)),{x:O,y:G}}else if(m===s&&E===4){const O=t.fromBytes(k.subarray(0,t.BYTES)),M=t.fromBytes(k.subarray(t.BYTES,2*t.BYTES));return{x:O,y:M}}else{const O=i,M=s;throw new Error("invalid Point, expected length of "+O+", or uncompressed "+M+", got "+m)}}}),b=p=>ba(ru(p,e.nByteLength));function w(p){const m=n>>Lr;return p>m}function I(p){return w(p)?o(-p):p}const S=(p,m,E)=>_a(p.slice(m,E));class x{constructor(m,E,k){this.r=m,this.s=E,this.recovery=k,this.assertValidity()}static fromCompact(m){const E=e.nByteLength;return m=Tr("compactSignature",m,E*2),new x(S(m,0,E),S(m,E,2*E))}static fromDER(m){const{r:E,s:k}=Is.toSig(Tr("DER",m));return new x(E,k)}assertValidity(){ri("r",this.r,Lr,n),ri("s",this.s,Lr,n)}addRecoveryBit(m){return new x(this.r,this.s,m)}recoverPublicKey(m){const{r:E,s:k,recovery:O}=this,M=Z(Tr("msgHash",m));if(O==null||![0,1,2,3].includes(O))throw new Error("recovery id invalid");const G=O===2||O===3?E+e.n:E;if(G>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");const P=O&1?"03":"02",A=u.fromHex(P+b(G)),U=a(G),le=o(-M*U),te=o(k*U),re=u.BASE.multiplyAndAddUnsafe(A,le,te);if(!re)throw new Error("point at infinify");return re.assertValidity(),re}hasHighS(){return w(this.s)}normalizeS(){return this.hasHighS()?new x(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return eu(this.toDERHex())}toDERHex(){return Is.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return eu(this.toCompactHex())}toCompactHex(){return b(this.r)+b(this.s)}}const C={isValidPrivateKey(p){try{return l(p),!0}catch{return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{const p=YE(e.n);return RK(e.randomBytes(p),e.n)},precompute(p=8,m=u.BASE){return m._setWindowSize(p),m.multiply(BigInt(3)),m}};function H(p,m=!0){return u.fromPrivateKey(p).toRawBytes(m)}function D(p){const m=wa(p),E=typeof p=="string",k=(m||E)&&p.length;return m?k===i||k===s:E?k===2*i||k===2*s:p instanceof u}function z(p,m,E=!0){if(D(p))throw new Error("first arg must be private key");if(!D(m))throw new Error("second arg must be public key");return u.fromHex(m).multiply(l(p)).toRawBytes(E)}const V=e.bits2int||function(p){if(p.length>8192)throw new Error("input is too large");const m=_a(p),E=p.length*8-e.nBitLength;return E>0?m>>BigInt(E):m},Z=e.bits2int_modN||function(p){return o(V(p))},K=Wy(e.nBitLength);function W(p){return ri("num < 2^"+e.nBitLength,p,Ss,K),ru(p,e.nByteLength)}function oe(p,m,E=ce){if(["recovered","canonical"].some(ye=>ye in E))throw new Error("sign() legacy options not supported");const{hash:k,randomBytes:O}=e;let{lowS:M,prehash:G,extraEntropy:P}=E;M==null&&(M=!0),p=Tr("msgHash",p),J2(E),G&&(p=Tr("prehashed msgHash",k(p)));const A=Z(p),U=l(m),le=[W(U),W(A)];if(P!=null&&P!==!1){const ye=P===!0?O(t.BYTES):P;le.push(Tr("extraEntropy",ye))}const te=Aa(...le),re=A;function he(ye){const be=V(ye);if(!g(be))return;const We=a(be),Fe=u.BASE.multiply(be).toAffine(),Be=o(Fe.x);if(Be===Ss)return;const et=o(We*o(re+Be*U));if(et===Ss)return;let Qe=(Fe.x===Be?0:2)|Number(Fe.y&Lr),ot=et;return M&&w(et)&&(ot=I(et),Qe^=1),new x(Be,ot,Qe)}return{seed:te,k2sig:he}}const ce={lowS:e.lowS,prehash:!1},ie={lowS:e.lowS,prehash:!1};function ue(p,m,E=ce){const{seed:k,k2sig:O}=oe(p,m,E),M=e;return WE(M.hash.outputLen,M.nByteLength,M.hmac)(k,O)}u.BASE._setWindowSize(8);function B(p,m,E,k=ie){var Qe;const O=p;m=Tr("msgHash",m),E=Tr("publicKey",E);const{lowS:M,prehash:G,format:P}=k;if(J2(k),"strict"in k)throw new Error("options.strict was renamed to lowS");if(P!==void 0&&P!=="compact"&&P!=="der")throw new Error("format must be compact or der");const A=typeof O=="string"||wa(O),U=!A&&!P&&typeof O=="object"&&O!==null&&typeof O.r=="bigint"&&typeof O.s=="bigint";if(!A&&!U)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let le,te;try{if(U&&(le=new x(O.r,O.s)),A){try{P!=="compact"&&(le=x.fromDER(O))}catch(ot){if(!(ot instanceof Is.Err))throw ot}!le&&P!=="der"&&(le=x.fromCompact(O))}te=u.fromHex(E)}catch{return!1}if(!le||M&&le.hasHighS())return!1;G&&(m=e.hash(m));const{r:re,s:he}=le,ye=Z(m),be=a(he),We=o(ye*be),Fe=o(re*be),Be=(Qe=u.BASE.multiplyAndAddUnsafe(te,We,Fe))==null?void 0:Qe.toAffine();return Be?o(Be.x)===re:!1}return{CURVE:e,getPublicKey:H,getSharedSecret:z,sign:ue,verify:B,ProjectivePoint:u,Signature:x,utils:C}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function dW(r){return{hash:r,hmac:(e,...t)=>Y2(r,e,zG(...t)),randomBytes:ME}}function pW(r,e){const t=n=>hW({...r,...dW(n)});return{...t(e),create:t}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const ex=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),tx=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),gW=BigInt(1),xm=BigInt(2),rx=(r,e)=>(r+e/xm)/e;function yW(r){const e=ex,t=BigInt(3),n=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),u=BigInt(88),l=r*r*r%e,h=l*l*r%e,g=ur(h,t,e)*h%e,b=ur(g,t,e)*h%e,w=ur(b,xm,e)*l%e,I=ur(w,i,e)*w%e,S=ur(I,s,e)*I%e,x=ur(S,a,e)*S%e,C=ur(x,u,e)*x%e,H=ur(C,a,e)*S%e,D=ur(H,t,e)*h%e,z=ur(D,o,e)*I%e,V=ur(z,n,e)*l%e,Z=ur(V,xm,e);if(!Rm.eql(Rm.sqr(Z),r))throw new Error("Cannot find square root");return Z}const Rm=c0(ex,void 0,void 0,{sqrt:yW}),R0=pW({a:BigInt(0),b:BigInt(7),Fp:Rm,n:tx,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{const e=tx,t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-gW*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=t,o=BigInt("0x100000000000000000000000000000000"),a=rx(s*r,e),u=rx(-n*r,e);let l=Qt(r-a*t-u*i,e),h=Qt(-a*n-u*s,e);const g=l>o,b=h>o;if(g&&(l=e-l),b&&(h=e-h),l>o||h>o)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:g,k1:l,k2neg:b,k2:h}}}},nm);BigInt(0),R0.ProjectivePoint;const mW=iu.utils.randomPrivateKey,nx=()=>{const r=iu.utils.randomPrivateKey(),e=I0(r),t=new Uint8Array(64);return t.set(r),t.set(e,32),{publicKey:e,secretKey:t}},I0=iu.getPublicKey;function ix(r){try{return iu.ExtendedPoint.fromHex(r),!0}catch{return!1}}const Im=(r,e)=>iu.sign(r,e.slice(0,32)),wW=iu.verify,nt=r=>Ne.isBuffer(r)?r:r instanceof Uint8Array?Ne.from(r.buffer,r.byteOffset,r.byteLength):Ne.from(r);let Sm=class{constructor(e){Object.assign(this,e)}encode(){return Ne.from(h2(Cf,this))}static decode(e){return d2(Cf,this,e)}static decodeUnchecked(e){return a2(Cf,this,e)}};class bW extends Sm{constructor(e){if(super(e),this.enum="",Object.keys(e).length!==1)throw new Error("Enum can only take single value");Object.keys(e).map(t=>{this.enum=t})}}const Cf=new Map;var sx;const ox=32,Vi=32;function _W(r){return r._bn!==void 0}let ax=1;class me extends Sm{constructor(e){if(super({}),this._bn=void 0,_W(e))this._bn=e._bn;else{if(typeof e=="string"){const t=Or.decode(e);if(t.length!=Vi)throw new Error("Invalid public key input");this._bn=new vs(t)}else this._bn=new vs(e);if(this._bn.byteLength()>Vi)throw new Error("Invalid public key input")}}static unique(){const e=new me(ax);return ax+=1,new me(e.toBuffer())}equals(e){return this._bn.eq(e._bn)}toBase58(){return Or.encode(this.toBytes())}toJSON(){return this.toBase58()}toBytes(){const e=this.toBuffer();return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}toBuffer(){const e=this._bn.toArrayLike(Ne);if(e.length===Vi)return e;const t=Ne.alloc(32);return e.copy(t,32-e.length),t}get[Symbol.toStringTag](){return`PublicKey(${this.toString()})`}toString(){return this.toBase58()}static async createWithSeed(e,t,n){const i=Ne.concat([e.toBuffer(),Ne.from(t),n.toBuffer()]),s=nm(i);return new me(s)}static createProgramAddressSync(e,t){let n=Ne.alloc(0);e.forEach(function(s){if(s.length>ox)throw new TypeError("Max seed length exceeded");n=Ne.concat([n,nt(s)])}),n=Ne.concat([n,t.toBuffer(),Ne.from("ProgramDerivedAddress")]);const i=nm(n);if(ix(i))throw new Error("Invalid seeds, address must fall off the curve");return new me(i)}static async createProgramAddress(e,t){return this.createProgramAddressSync(e,t)}static findProgramAddressSync(e,t){let n=255,i;for(;n!=0;){try{const s=e.concat(Ne.from([n]));i=this.createProgramAddressSync(s,t)}catch(s){if(s instanceof TypeError)throw s;n--;continue}return[i,n]}throw new Error("Unable to find a viable program address nonce")}static async findProgramAddress(e,t){return this.findProgramAddressSync(e,t)}static isOnCurve(e){const t=new me(e);return ix(t.toBytes())}}sx=me,me.default=new sx("11111111111111111111111111111111"),Cf.set(me,{kind:"struct",fields:[["_bn","u256"]]});class AW{constructor(e){if(this._publicKey=void 0,this._secretKey=void 0,e){const t=nt(e);if(e.length!==64)throw new Error("bad secret key size");this._publicKey=t.slice(32,64),this._secretKey=t.slice(0,32)}else this._secretKey=nt(mW()),this._publicKey=nt(I0(this._secretKey))}get publicKey(){return new me(this._publicKey)}get secretKey(){return Ne.concat([this._secretKey,this._publicKey],64)}}const vW=new me("BPFLoader1111111111111111111111111111111111"),bo=1232,S0=127,Bf=64;class km extends Error{constructor(e){super(`Signature ${e} has expired: block height exceeded.`),this.signature=void 0,this.signature=e}}Object.defineProperty(km.prototype,"name",{value:"TransactionExpiredBlockheightExceededError"});class Tm extends Error{constructor(e,t){super(`Transaction was not confirmed in ${t.toFixed(2)} seconds. It is unknown if it succeeded or failed. Check signature ${e} using the Solana Explorer or CLI tools.`),this.signature=void 0,this.signature=e}}Object.defineProperty(Tm.prototype,"name",{value:"TransactionExpiredTimeoutError"});class lu extends Error{constructor(e){super(`Signature ${e} has expired: the nonce is no longer valid.`),this.signature=void 0,this.signature=e}}Object.defineProperty(lu.prototype,"name",{value:"TransactionExpiredNonceInvalidError"});class Pf{constructor(e,t){this.staticAccountKeys=void 0,this.accountKeysFromLookups=void 0,this.staticAccountKeys=e,this.accountKeysFromLookups=t}keySegments(){const e=[this.staticAccountKeys];return this.accountKeysFromLookups&&(e.push(this.accountKeysFromLookups.writable),e.push(this.accountKeysFromLookups.readonly)),e}get(e){for(const t of this.keySegments()){if(e<t.length)return t[e];e-=t.length}}get length(){return this.keySegments().flat().length}compileInstructions(e){if(this.length>256)throw new Error("Account index overflow encountered during compilation");const n=new Map;this.keySegments().flat().forEach((s,o)=>{n.set(s.toBase58(),o)});const i=s=>{const o=n.get(s.toBase58());if(o===void 0)throw new Error("Encountered an unknown instruction account key during compilation");return o};return e.map(s=>({programIdIndex:i(s.programId),accountKeyIndexes:s.keys.map(o=>i(o.pubkey)),data:s.data}))}}const lt=(r="publicKey")=>Vt(32,r),EW=(r="signature")=>Vt(64,r),Sa=(r="string")=>{const e=Me([Pe("length"),Pe("lengthPadding"),Vt(mo(Pe(),-8),"chars")],r),t=e.decode.bind(e),n=e.encode.bind(e),i=e;return i.decode=(s,o)=>t(s,o).chars.toString(),i.encode=(s,o,a)=>{const u={chars:Ne.from(s,"utf8")};return n(u,o,a)},i.alloc=s=>Pe().span+Pe().span+Ne.from(s,"utf8").length,i},xW=(r="authorized")=>Me([lt("staker"),lt("withdrawer")],r),RW=(r="lockup")=>Me([Hn("unixTimestamp"),Hn("epoch"),lt("custodian")],r),IW=(r="voteInit")=>Me([lt("nodePubkey"),lt("authorizedVoter"),lt("authorizedWithdrawer"),bt("commission")],r),SW=(r="voteAuthorizeWithSeedArgs")=>Me([Pe("voteAuthorizationType"),lt("currentAuthorityDerivedKeyOwnerPubkey"),Sa("currentAuthorityDerivedKeySeed"),lt("newAuthorized")],r);function cx(r,e){const t=i=>{if(i.span>=0)return i.span;if(typeof i.alloc=="function")return i.alloc(e[i.property]);if("count"in i&&"elementLayout"in i){const s=e[i.property];if(Array.isArray(s))return s.length*t(i.elementLayout)}else if("fields"in i)return cx({layout:i},e[i.property]);return 0};let n=0;return r.layout.fields.forEach(i=>{n+=t(i)}),n}function Tn(r){let e=0,t=0;for(;;){let n=r.shift();if(e|=(n&127)<<t*7,t+=1,!(n&128))break}return e}function zn(r,e){let t=e;for(;;){let n=t&127;if(t>>=7,t==0){r.push(n);break}else n|=128,r.push(n)}}function vt(r,e){if(!r)throw new Error(e||"Assertion failed")}class k0{constructor(e,t){this.payer=void 0,this.keyMetaMap=void 0,this.payer=e,this.keyMetaMap=t}static compile(e,t){const n=new Map,i=o=>{const a=o.toBase58();let u=n.get(a);return u===void 0&&(u={isSigner:!1,isWritable:!1,isInvoked:!1},n.set(a,u)),u},s=i(t);s.isSigner=!0,s.isWritable=!0;for(const o of e){i(o.programId).isInvoked=!0;for(const a of o.keys){const u=i(a.pubkey);u.isSigner||(u.isSigner=a.isSigner),u.isWritable||(u.isWritable=a.isWritable)}}return new k0(t,n)}getMessageComponents(){const e=[...this.keyMetaMap.entries()];vt(e.length<=256,"Max static account keys length exceeded");const t=e.filter(([,u])=>u.isSigner&&u.isWritable),n=e.filter(([,u])=>u.isSigner&&!u.isWritable),i=e.filter(([,u])=>!u.isSigner&&u.isWritable),s=e.filter(([,u])=>!u.isSigner&&!u.isWritable),o={numRequiredSignatures:t.length+n.length,numReadonlySignedAccounts:n.length,numReadonlyUnsignedAccounts:s.length};{vt(t.length>0,"Expected at least one writable signer key");const[u]=t[0];vt(u===this.payer.toBase58(),"Expected first writable signer key to be the fee payer")}const a=[...t.map(([u])=>new me(u)),...n.map(([u])=>new me(u)),...i.map(([u])=>new me(u)),...s.map(([u])=>new me(u))];return[o,a]}extractTableLookup(e){const[t,n]=this.drainKeysFoundInLookupTable(e.state.addresses,o=>!o.isSigner&&!o.isInvoked&&o.isWritable),[i,s]=this.drainKeysFoundInLookupTable(e.state.addresses,o=>!o.isSigner&&!o.isInvoked&&!o.isWritable);if(!(t.length===0&&i.length===0))return[{accountKey:e.key,writableIndexes:t,readonlyIndexes:i},{writable:n,readonly:s}]}drainKeysFoundInLookupTable(e,t){const n=new Array,i=new Array;for(const[s,o]of this.keyMetaMap.entries())if(t(o)){const a=new me(s),u=e.findIndex(l=>l.equals(a));u>=0&&(vt(u<256,"Max lookup table index exceeded"),n.push(u),i.push(a),this.keyMetaMap.delete(s))}return[n,i]}}const ux="Reached end of buffer unexpectedly";function qi(r){if(r.length===0)throw new Error(ux);return r.shift()}function On(r,...e){const[t]=e;if(e.length===2?t+(e[1]??0)>r.length:t>=r.length)throw new Error(ux);return r.splice(...e)}class Ei{constructor(e){this.header=void 0,this.accountKeys=void 0,this.recentBlockhash=void 0,this.instructions=void 0,this.indexToProgramIds=new Map,this.header=e.header,this.accountKeys=e.accountKeys.map(t=>new me(t)),this.recentBlockhash=e.recentBlockhash,this.instructions=e.instructions,this.instructions.forEach(t=>this.indexToProgramIds.set(t.programIdIndex,this.accountKeys[t.programIdIndex]))}get version(){return"legacy"}get staticAccountKeys(){return this.accountKeys}get compiledInstructions(){return this.instructions.map(e=>({programIdIndex:e.programIdIndex,accountKeyIndexes:e.accounts,data:Or.decode(e.data)}))}get addressTableLookups(){return[]}getAccountKeys(){return new Pf(this.staticAccountKeys)}static compile(e){const t=k0.compile(e.instructions,e.payerKey),[n,i]=t.getMessageComponents(),o=new Pf(i).compileInstructions(e.instructions).map(a=>({programIdIndex:a.programIdIndex,accounts:a.accountKeyIndexes,data:Or.encode(a.data)}));return new Ei({header:n,accountKeys:i,recentBlockhash:e.recentBlockhash,instructions:o})}isAccountSigner(e){return e<this.header.numRequiredSignatures}isAccountWritable(e){const t=this.header.numRequiredSignatures;if(e>=this.header.numRequiredSignatures){const n=e-t,s=this.accountKeys.length-t-this.header.numReadonlyUnsignedAccounts;return n<s}else{const n=t-this.header.numReadonlySignedAccounts;return e<n}}isProgramId(e){return this.indexToProgramIds.has(e)}programIds(){return[...this.indexToProgramIds.values()]}nonProgramIds(){return this.accountKeys.filter((e,t)=>!this.isProgramId(t))}serialize(){const e=this.accountKeys.length;let t=[];zn(t,e);const n=this.instructions.map(g=>{const{accounts:b,programIdIndex:w}=g,I=Array.from(Or.decode(g.data));let S=[];zn(S,b.length);let x=[];return zn(x,I.length),{programIdIndex:w,keyIndicesCount:Ne.from(S),keyIndices:b,dataLength:Ne.from(x),data:I}});let i=[];zn(i,n.length);let s=Ne.alloc(bo);Ne.from(i).copy(s);let o=i.length;n.forEach(g=>{const w=Me([bt("programIdIndex"),Vt(g.keyIndicesCount.length,"keyIndicesCount"),Vr(bt("keyIndex"),g.keyIndices.length,"keyIndices"),Vt(g.dataLength.length,"dataLength"),Vr(bt("userdatum"),g.data.length,"data")]).encode(g,s,o);o+=w}),s=s.slice(0,o);const a=Me([Vt(1,"numRequiredSignatures"),Vt(1,"numReadonlySignedAccounts"),Vt(1,"numReadonlyUnsignedAccounts"),Vt(t.length,"keyCount"),Vr(lt("key"),e,"keys"),lt("recentBlockhash")]),u={numRequiredSignatures:Ne.from([this.header.numRequiredSignatures]),numReadonlySignedAccounts:Ne.from([this.header.numReadonlySignedAccounts]),numReadonlyUnsignedAccounts:Ne.from([this.header.numReadonlyUnsignedAccounts]),keyCount:Ne.from(t),keys:this.accountKeys.map(g=>nt(g.toBytes())),recentBlockhash:Or.decode(this.recentBlockhash)};let l=Ne.alloc(2048);const h=a.encode(u,l);return s.copy(l,h),l.slice(0,h+s.length)}static from(e){let t=[...e];const n=qi(t);if(n!==(n&S0))throw new Error("Versioned messages must be deserialized with VersionedMessage.deserialize()");const i=qi(t),s=qi(t),o=Tn(t);let a=[];for(let b=0;b<o;b++){const w=On(t,0,Vi);a.push(new me(Ne.from(w)))}const u=On(t,0,Vi),l=Tn(t);let h=[];for(let b=0;b<l;b++){const w=qi(t),I=Tn(t),S=On(t,0,I),x=Tn(t),C=On(t,0,x),H=Or.encode(Ne.from(C));h.push({programIdIndex:w,accounts:S,data:H})}const g={header:{numRequiredSignatures:n,numReadonlySignedAccounts:i,numReadonlyUnsignedAccounts:s},recentBlockhash:Or.encode(Ne.from(u)),accountKeys:a,instructions:h};return new Ei(g)}}class ka{constructor(e){this.header=void 0,this.staticAccountKeys=void 0,this.recentBlockhash=void 0,this.compiledInstructions=void 0,this.addressTableLookups=void 0,this.header=e.header,this.staticAccountKeys=e.staticAccountKeys,this.recentBlockhash=e.recentBlockhash,this.compiledInstructions=e.compiledInstructions,this.addressTableLookups=e.addressTableLookups}get version(){return 0}get numAccountKeysFromLookups(){let e=0;for(const t of this.addressTableLookups)e+=t.readonlyIndexes.length+t.writableIndexes.length;return e}getAccountKeys(e){let t;if(e&&"accountKeysFromLookups"in e&&e.accountKeysFromLookups){if(this.numAccountKeysFromLookups!=e.accountKeysFromLookups.writable.length+e.accountKeysFromLookups.readonly.length)throw new Error("Failed to get account keys because of a mismatch in the number of account keys from lookups");t=e.accountKeysFromLookups}else if(e&&"addressLookupTableAccounts"in e&&e.addressLookupTableAccounts)t=this.resolveAddressTableLookups(e.addressLookupTableAccounts);else if(this.addressTableLookups.length>0)throw new Error("Failed to get account keys because address table lookups were not resolved");return new Pf(this.staticAccountKeys,t)}isAccountSigner(e){return e<this.header.numRequiredSignatures}isAccountWritable(e){const t=this.header.numRequiredSignatures,n=this.staticAccountKeys.length;if(e>=n){const i=e-n,s=this.addressTableLookups.reduce((o,a)=>o+a.writableIndexes.length,0);return i<s}else if(e>=this.header.numRequiredSignatures){const i=e-t,o=n-t-this.header.numReadonlyUnsignedAccounts;return i<o}else{const i=t-this.header.numReadonlySignedAccounts;return e<i}}resolveAddressTableLookups(e){const t={writable:[],readonly:[]};for(const n of this.addressTableLookups){const i=e.find(s=>s.key.equals(n.accountKey));if(!i)throw new Error(`Failed to find address lookup table account for table key ${n.accountKey.toBase58()}`);for(const s of n.writableIndexes)if(s<i.state.addresses.length)t.writable.push(i.state.addresses[s]);else throw new Error(`Failed to find address for index ${s} in address lookup table ${n.accountKey.toBase58()}`);for(const s of n.readonlyIndexes)if(s<i.state.addresses.length)t.readonly.push(i.state.addresses[s]);else throw new Error(`Failed to find address for index ${s} in address lookup table ${n.accountKey.toBase58()}`)}return t}static compile(e){const t=k0.compile(e.instructions,e.payerKey),n=new Array,i={writable:new Array,readonly:new Array},s=e.addressLookupTableAccounts||[];for(const h of s){const g=t.extractTableLookup(h);if(g!==void 0){const[b,{writable:w,readonly:I}]=g;n.push(b),i.writable.push(...w),i.readonly.push(...I)}}const[o,a]=t.getMessageComponents(),l=new Pf(a,i).compileInstructions(e.instructions);return new ka({header:o,staticAccountKeys:a,recentBlockhash:e.recentBlockhash,compiledInstructions:l,addressTableLookups:n})}serialize(){const e=Array();zn(e,this.staticAccountKeys.length);const t=this.serializeInstructions(),n=Array();zn(n,this.compiledInstructions.length);const i=this.serializeAddressTableLookups(),s=Array();zn(s,this.addressTableLookups.length);const o=Me([bt("prefix"),Me([bt("numRequiredSignatures"),bt("numReadonlySignedAccounts"),bt("numReadonlyUnsignedAccounts")],"header"),Vt(e.length,"staticAccountKeysLength"),Vr(lt(),this.staticAccountKeys.length,"staticAccountKeys"),lt("recentBlockhash"),Vt(n.length,"instructionsLength"),Vt(t.length,"serializedInstructions"),Vt(s.length,"addressTableLookupsLength"),Vt(i.length,"serializedAddressTableLookups")]),a=new Uint8Array(bo),l=o.encode({prefix:128,header:this.header,staticAccountKeysLength:new Uint8Array(e),staticAccountKeys:this.staticAccountKeys.map(h=>h.toBytes()),recentBlockhash:Or.decode(this.recentBlockhash),instructionsLength:new Uint8Array(n),serializedInstructions:t,addressTableLookupsLength:new Uint8Array(s),serializedAddressTableLookups:i},a);return a.slice(0,l)}serializeInstructions(){let e=0;const t=new Uint8Array(bo);for(const n of this.compiledInstructions){const i=Array();zn(i,n.accountKeyIndexes.length);const s=Array();zn(s,n.data.length);const o=Me([bt("programIdIndex"),Vt(i.length,"encodedAccountKeyIndexesLength"),Vr(bt(),n.accountKeyIndexes.length,"accountKeyIndexes"),Vt(s.length,"encodedDataLength"),Vt(n.data.length,"data")]);e+=o.encode({programIdIndex:n.programIdIndex,encodedAccountKeyIndexesLength:new Uint8Array(i),accountKeyIndexes:n.accountKeyIndexes,encodedDataLength:new Uint8Array(s),data:n.data},t,e)}return t.slice(0,e)}serializeAddressTableLookups(){let e=0;const t=new Uint8Array(bo);for(const n of this.addressTableLookups){const i=Array();zn(i,n.writableIndexes.length);const s=Array();zn(s,n.readonlyIndexes.length);const o=Me([lt("accountKey"),Vt(i.length,"encodedWritableIndexesLength"),Vr(bt(),n.writableIndexes.length,"writableIndexes"),Vt(s.length,"encodedReadonlyIndexesLength"),Vr(bt(),n.readonlyIndexes.length,"readonlyIndexes")]);e+=o.encode({accountKey:n.accountKey.toBytes(),encodedWritableIndexesLength:new Uint8Array(i),writableIndexes:n.writableIndexes,encodedReadonlyIndexesLength:new Uint8Array(s),readonlyIndexes:n.readonlyIndexes},t,e)}return t.slice(0,e)}static deserialize(e){let t=[...e];const n=qi(t),i=n&S0;vt(n!==i,"Expected versioned message but received legacy message");const s=i;vt(s===0,`Expected versioned message with version 0 but found version ${s}`);const o={numRequiredSignatures:qi(t),numReadonlySignedAccounts:qi(t),numReadonlyUnsignedAccounts:qi(t)},a=[],u=Tn(t);for(let I=0;I<u;I++)a.push(new me(On(t,0,Vi)));const l=Or.encode(On(t,0,Vi)),h=Tn(t),g=[];for(let I=0;I<h;I++){const S=qi(t),x=Tn(t),C=On(t,0,x),H=Tn(t),D=new Uint8Array(On(t,0,H));g.push({programIdIndex:S,accountKeyIndexes:C,data:D})}const b=Tn(t),w=[];for(let I=0;I<b;I++){const S=new me(On(t,0,Vi)),x=Tn(t),C=On(t,0,x),H=Tn(t),D=On(t,0,H);w.push({accountKey:S,writableIndexes:C,readonlyIndexes:D})}return new ka({header:o,staticAccountKeys:a,recentBlockhash:l,compiledInstructions:g,addressTableLookups:w})}}const Om={deserializeMessageVersion(r){const e=r[0],t=e&S0;return t===e?"legacy":t},deserialize:r=>{const e=Om.deserializeMessageVersion(r);if(e==="legacy")return Ei.from(r);if(e===0)return ka.deserialize(r);throw new Error(`Transaction message version ${e} deserialization is not supported`)}};let ks=function(r){return r[r.BLOCKHEIGHT_EXCEEDED=0]="BLOCKHEIGHT_EXCEEDED",r[r.PROCESSED=1]="PROCESSED",r[r.TIMED_OUT=2]="TIMED_OUT",r[r.NONCE_INVALID=3]="NONCE_INVALID",r}({});const kW=Ne.alloc(Bf).fill(0);class Pt{constructor(e){this.keys=void 0,this.programId=void 0,this.data=Ne.alloc(0),this.programId=e.programId,this.keys=e.keys,e.data&&(this.data=e.data)}toJSON(){return{keys:this.keys.map(({pubkey:e,isSigner:t,isWritable:n})=>({pubkey:e.toJSON(),isSigner:t,isWritable:n})),programId:this.programId.toJSON(),data:[...this.data]}}}let Ot=class x_{get signature(){return this.signatures.length>0?this.signatures[0].signature:null}constructor(e){if(this.signatures=[],this.feePayer=void 0,this.instructions=[],this.recentBlockhash=void 0,this.lastValidBlockHeight=void 0,this.nonceInfo=void 0,this.minNonceContextSlot=void 0,this._message=void 0,this._json=void 0,!!e)if(e.feePayer&&(this.feePayer=e.feePayer),e.signatures&&(this.signatures=e.signatures),Object.prototype.hasOwnProperty.call(e,"nonceInfo")){const{minContextSlot:t,nonceInfo:n}=e;this.minNonceContextSlot=t,this.nonceInfo=n}else if(Object.prototype.hasOwnProperty.call(e,"lastValidBlockHeight")){const{blockhash:t,lastValidBlockHeight:n}=e;this.recentBlockhash=t,this.lastValidBlockHeight=n}else{const{recentBlockhash:t,nonceInfo:n}=e;n&&(this.nonceInfo=n),this.recentBlockhash=t}}toJSON(){return{recentBlockhash:this.recentBlockhash||null,feePayer:this.feePayer?this.feePayer.toJSON():null,nonceInfo:this.nonceInfo?{nonce:this.nonceInfo.nonce,nonceInstruction:this.nonceInfo.nonceInstruction.toJSON()}:null,instructions:this.instructions.map(e=>e.toJSON()),signers:this.signatures.map(({publicKey:e})=>e.toJSON())}}add(...e){if(e.length===0)throw new Error("No instructions");return e.forEach(t=>{"instructions"in t?this.instructions=this.instructions.concat(t.instructions):"data"in t&&"programId"in t&&"keys"in t?this.instructions.push(t):this.instructions.push(new Pt(t))}),this}compileMessage(){if(this._message&&JSON.stringify(this.toJSON())===JSON.stringify(this._json))return this._message;let e,t;if(this.nonceInfo?(e=this.nonceInfo.nonce,this.instructions[0]!=this.nonceInfo.nonceInstruction?t=[this.nonceInfo.nonceInstruction,...this.instructions]:t=this.instructions):(e=this.recentBlockhash,t=this.instructions),!e)throw new Error("Transaction recentBlockhash required");t.length<1&&console.warn("No instructions provided");let n;if(this.feePayer)n=this.feePayer;else if(this.signatures.length>0&&this.signatures[0].publicKey)n=this.signatures[0].publicKey;else throw new Error("Transaction fee payer required");for(let S=0;S<t.length;S++)if(t[S].programId===void 0)throw new Error(`Transaction instruction index ${S} has undefined program id`);const i=[],s=[];t.forEach(S=>{S.keys.forEach(C=>{s.push({...C})});const x=S.programId.toString();i.includes(x)||i.push(x)}),i.forEach(S=>{s.push({pubkey:new me(S),isSigner:!1,isWritable:!1})});const o=[];s.forEach(S=>{const x=S.pubkey.toString(),C=o.findIndex(H=>H.pubkey.toString()===x);C>-1?(o[C].isWritable=o[C].isWritable||S.isWritable,o[C].isSigner=o[C].isSigner||S.isSigner):o.push(S)}),o.sort(function(S,x){if(S.isSigner!==x.isSigner)return S.isSigner?-1:1;if(S.isWritable!==x.isWritable)return S.isWritable?-1:1;const C={localeMatcher:"best fit",usage:"sort",sensitivity:"variant",ignorePunctuation:!1,numeric:!1,caseFirst:"lower"};return S.pubkey.toBase58().localeCompare(x.pubkey.toBase58(),"en",C)});const a=o.findIndex(S=>S.pubkey.equals(n));if(a>-1){const[S]=o.splice(a,1);S.isSigner=!0,S.isWritable=!0,o.unshift(S)}else o.unshift({pubkey:n,isSigner:!0,isWritable:!0});for(const S of this.signatures){const x=o.findIndex(C=>C.pubkey.equals(S.publicKey));if(x>-1)o[x].isSigner||(o[x].isSigner=!0,console.warn("Transaction references a signature that is unnecessary, only the fee payer and instruction signer accounts should sign a transaction. This behavior is deprecated and will throw an error in the next major version release."));else throw new Error(`unknown signer: ${S.publicKey.toString()}`)}let u=0,l=0,h=0;const g=[],b=[];o.forEach(({pubkey:S,isSigner:x,isWritable:C})=>{x?(g.push(S.toString()),u+=1,C||(l+=1)):(b.push(S.toString()),C||(h+=1))});const w=g.concat(b),I=t.map(S=>{const{data:x,programId:C}=S;return{programIdIndex:w.indexOf(C.toString()),accounts:S.keys.map(H=>w.indexOf(H.pubkey.toString())),data:Or.encode(x)}});return I.forEach(S=>{vt(S.programIdIndex>=0),S.accounts.forEach(x=>vt(x>=0))}),new Ei({header:{numRequiredSignatures:u,numReadonlySignedAccounts:l,numReadonlyUnsignedAccounts:h},accountKeys:w,recentBlockhash:e,instructions:I})}_compile(){const e=this.compileMessage(),t=e.accountKeys.slice(0,e.header.numRequiredSignatures);return this.signatures.length===t.length&&this.signatures.every((i,s)=>t[s].equals(i.publicKey))||(this.signatures=t.map(n=>({signature:null,publicKey:n}))),e}serializeMessage(){return this._compile().serialize()}async getEstimatedFee(e){return(await e.getFeeForMessage(this.compileMessage())).value}setSigners(...e){if(e.length===0)throw new Error("No signers");const t=new Set;this.signatures=e.filter(n=>{const i=n.toString();return t.has(i)?!1:(t.add(i),!0)}).map(n=>({signature:null,publicKey:n}))}sign(...e){if(e.length===0)throw new Error("No signers");const t=new Set,n=[];for(const s of e){const o=s.publicKey.toString();t.has(o)||(t.add(o),n.push(s))}this.signatures=n.map(s=>({signature:null,publicKey:s.publicKey}));const i=this._compile();this._partialSign(i,...n)}partialSign(...e){if(e.length===0)throw new Error("No signers");const t=new Set,n=[];for(const s of e){const o=s.publicKey.toString();t.has(o)||(t.add(o),n.push(s))}const i=this._compile();this._partialSign(i,...n)}_partialSign(e,...t){const n=e.serialize();t.forEach(i=>{const s=Im(n,i.secretKey);this._addSignature(i.publicKey,nt(s))})}addSignature(e,t){this._compile(),this._addSignature(e,t)}_addSignature(e,t){vt(t.length===64);const n=this.signatures.findIndex(i=>e.equals(i.publicKey));if(n<0)throw new Error(`unknown signer: ${e.toString()}`);this.signatures[n].signature=Ne.from(t)}verifySignatures(e=!0){return!this._getMessageSignednessErrors(this.serializeMessage(),e)}_getMessageSignednessErrors(e,t){const n={};for(const{signature:i,publicKey:s}of this.signatures)i===null?t&&(n.missing||(n.missing=[])).push(s):wW(i,e,s.toBytes())||(n.invalid||(n.invalid=[])).push(s);return n.invalid||n.missing?n:void 0}serialize(e){const{requireAllSignatures:t,verifySignatures:n}=Object.assign({requireAllSignatures:!0,verifySignatures:!0},e),i=this.serializeMessage();if(n){const s=this._getMessageSignednessErrors(i,t);if(s){let o="Signature verification failed.";throw s.invalid&&(o+=`
|
|
19
|
-
Invalid signature for public key${s.invalid.length===1?"":"(s)"} [\`${s.invalid.map(
|
|
20
|
-
Missing signature for public key${s.missing.length===1?"":"(s)"} [\`${s.missing.map(
|
|
21
|
-
${JSON.stringify(i.slice(-10),null,2)}. `:"",o="\nCatch the `SendTransactionError` and call `getLogs()` on it for full details.";let
|
|
22
|
-
${
|
|
23
|
-
Message: ${
|
|
24
|
-
`+s+o;break;default:a=`Unknown action '${(u=>u)(e)}'`}super(a),this.signature=void 0,this.transactionMessage=void 0,this.transactionLogs=void 0,this.signature=t,this.transactionMessage=n,this.transactionLogs=i||void 0}get transactionError(){return{message:this.transactionMessage,logs:Array.isArray(this.transactionLogs)?this.transactionLogs:void 0}}get logs(){const e=this.transactionLogs;if(!(e!=null&&typeof e=="object"&&"then"in e))return e}async getLogs(e){return Array.isArray(this.transactionLogs)||(this.transactionLogs=new Promise((t,n)=>{e.getTransaction(this.signature).then(i=>{if(i&&i.meta&&i.meta.logMessages){const s=i.meta.logMessages;this.transactionLogs=s,t(s)}else n(new Error("Log messages not found"))}).catch(n)})),await this.transactionLogs}}const PW={JSON_RPC_SERVER_ERROR_BLOCK_CLEANED_UP:-32001,JSON_RPC_SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE:-32002,JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE:-32003,JSON_RPC_SERVER_ERROR_BLOCK_NOT_AVAILABLE:-32004,JSON_RPC_SERVER_ERROR_NODE_UNHEALTHY:-32005,JSON_RPC_SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE:-32006,JSON_RPC_SERVER_ERROR_SLOT_SKIPPED:-32007,JSON_RPC_SERVER_ERROR_NO_SNAPSHOT:-32008,JSON_RPC_SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED:-32009,JSON_RPC_SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX:-32010,JSON_RPC_SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE:-32011,JSON_RPC_SCAN_ERROR:-32012,JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH:-32013,JSON_RPC_SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET:-32014,JSON_RPC_SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION:-32015,JSON_RPC_SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED:-32016};class $e extends Error{constructor({code:e,message:t,data:n},i){super(i!=null?`${i}: ${t}`:t),this.code=void 0,this.data=void 0,this.code=e,this.data=n,this.name="SolanaJSONRPCError"}}async function Bm(r,e,t,n){const i=n&&{skipPreflight:n.skipPreflight,preflightCommitment:n.preflightCommitment||n.commitment,maxRetries:n.maxRetries,minContextSlot:n.minContextSlot},s=await r.sendTransaction(e,t,i);let o;if(e.recentBlockhash!=null&&e.lastValidBlockHeight!=null)o=(await r.confirmTransaction({abortSignal:n==null?void 0:n.abortSignal,signature:s,blockhash:e.recentBlockhash,lastValidBlockHeight:e.lastValidBlockHeight},n&&n.commitment)).value;else if(e.minNonceContextSlot!=null&&e.nonceInfo!=null){const{nonceInstruction:a}=e.nonceInfo,u=a.keys[0].pubkey;o=(await r.confirmTransaction({abortSignal:n==null?void 0:n.abortSignal,minContextSlot:e.minNonceContextSlot,nonceAccountPubkey:u,nonceValue:e.nonceInfo.nonce,signature:s},n&&n.commitment)).value}else(n==null?void 0:n.abortSignal)!=null&&console.warn("sendAndConfirmTransaction(): A transaction with a deprecated confirmation strategy was supplied along with an `abortSignal`. Only transactions having `lastValidBlockHeight` or a combination of `nonceInfo` and `minNonceContextSlot` are abortable."),o=(await r.confirmTransaction(s,n&&n.commitment)).value;if(o.err)throw s!=null?new _o({action:"send",signature:s,transactionMessage:`Status: (${JSON.stringify(o)})`}):new Error(`Transaction ${s} failed (${JSON.stringify(o)})`);return s}function Ta(r){return new Promise(e=>setTimeout(e,r))}function yt(r,e){const t=r.layout.span>=0?r.layout.span:cx(r,e),n=Ne.alloc(t),i=Object.assign({instruction:r.index},e);return r.layout.encode(i,n),n}function kt(r,e){let t;try{t=r.layout.decode(e)}catch(n){throw new Error("invalid instruction; "+n)}if(t.instruction!==r.index)throw new Error(`invalid instruction; instruction index mismatch ${t.instruction} != ${r.index}`);return t}const fx=Wr("lamportsPerSignature"),hx=Me([Pe("version"),Pe("state"),lt("authorizedPubkey"),lt("nonce"),Me([fx],"feeCalculator")]),Pm=hx.span;class N0{constructor(e){this.authorizedPubkey=void 0,this.nonce=void 0,this.feeCalculator=void 0,this.authorizedPubkey=e.authorizedPubkey,this.nonce=e.nonce,this.feeCalculator=e.feeCalculator}static fromAccountData(e){const t=hx.decode(nt(e),0);return new N0({authorizedPubkey:new me(t.authorizedPubkey),nonce:new me(t.nonce).toString(),feeCalculator:t.feeCalculator})}}const MW=r=>{const e=r.decode.bind(r),t=r.encode.bind(r);return{decode:e,encode:t}},hu=(r=>e=>{const t=Vt(r,e),{encode:n,decode:i}=MW(t),s=t;return s.decode=(o,a)=>{const u=i(o,a);return fj(Ne.from(u))},s.encode=(o,a,u)=>{const l=N2(o,r);return n(l,a,u)},s})(8);class LW{constructor(){}static decodeInstructionType(e){this.checkProgramId(e.programId);const n=Pe("instruction").decode(e.data);let i;for(const[s,o]of Object.entries(Ht))if(o.index==n){i=s;break}if(!i)throw new Error("Instruction type incorrect; not a SystemInstruction");return i}static decodeCreateAccount(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,2);const{lamports:t,space:n,programId:i}=kt(Ht.Create,e.data);return{fromPubkey:e.keys[0].pubkey,newAccountPubkey:e.keys[1].pubkey,lamports:t,space:n,programId:new me(i)}}static decodeTransfer(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,2);const{lamports:t}=kt(Ht.Transfer,e.data);return{fromPubkey:e.keys[0].pubkey,toPubkey:e.keys[1].pubkey,lamports:t}}static decodeTransferWithSeed(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{lamports:t,seed:n,programId:i}=kt(Ht.TransferWithSeed,e.data);return{fromPubkey:e.keys[0].pubkey,basePubkey:e.keys[1].pubkey,toPubkey:e.keys[2].pubkey,lamports:t,seed:n,programId:new me(i)}}static decodeAllocate(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,1);const{space:t}=kt(Ht.Allocate,e.data);return{accountPubkey:e.keys[0].pubkey,space:t}}static decodeAllocateWithSeed(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,1);const{base:t,seed:n,space:i,programId:s}=kt(Ht.AllocateWithSeed,e.data);return{accountPubkey:e.keys[0].pubkey,basePubkey:new me(t),seed:n,space:i,programId:new me(s)}}static decodeAssign(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,1);const{programId:t}=kt(Ht.Assign,e.data);return{accountPubkey:e.keys[0].pubkey,programId:new me(t)}}static decodeAssignWithSeed(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,1);const{base:t,seed:n,programId:i}=kt(Ht.AssignWithSeed,e.data);return{accountPubkey:e.keys[0].pubkey,basePubkey:new me(t),seed:n,programId:new me(i)}}static decodeCreateWithSeed(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,2);const{base:t,seed:n,lamports:i,space:s,programId:o}=kt(Ht.CreateWithSeed,e.data);return{fromPubkey:e.keys[0].pubkey,newAccountPubkey:e.keys[1].pubkey,basePubkey:new me(t),seed:n,lamports:i,space:s,programId:new me(o)}}static decodeNonceInitialize(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{authorized:t}=kt(Ht.InitializeNonceAccount,e.data);return{noncePubkey:e.keys[0].pubkey,authorizedPubkey:new me(t)}}static decodeNonceAdvance(e){return this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3),kt(Ht.AdvanceNonceAccount,e.data),{noncePubkey:e.keys[0].pubkey,authorizedPubkey:e.keys[2].pubkey}}static decodeNonceWithdraw(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,5);const{lamports:t}=kt(Ht.WithdrawNonceAccount,e.data);return{noncePubkey:e.keys[0].pubkey,toPubkey:e.keys[1].pubkey,authorizedPubkey:e.keys[4].pubkey,lamports:t}}static decodeNonceAuthorize(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,2);const{authorized:t}=kt(Ht.AuthorizeNonceAccount,e.data);return{noncePubkey:e.keys[0].pubkey,authorizedPubkey:e.keys[1].pubkey,newAuthorizedPubkey:new me(t)}}static checkProgramId(e){if(!e.equals(Br.programId))throw new Error("invalid instruction; programId is not SystemProgram")}static checkKeyLength(e,t){if(e.length<t)throw new Error(`invalid instruction; found ${e.length} keys, expected at least ${t}`)}}const Ht=Object.freeze({Create:{index:0,layout:Me([Pe("instruction"),Hn("lamports"),Hn("space"),lt("programId")])},Assign:{index:1,layout:Me([Pe("instruction"),lt("programId")])},Transfer:{index:2,layout:Me([Pe("instruction"),hu("lamports")])},CreateWithSeed:{index:3,layout:Me([Pe("instruction"),lt("base"),Sa("seed"),Hn("lamports"),Hn("space"),lt("programId")])},AdvanceNonceAccount:{index:4,layout:Me([Pe("instruction")])},WithdrawNonceAccount:{index:5,layout:Me([Pe("instruction"),Hn("lamports")])},InitializeNonceAccount:{index:6,layout:Me([Pe("instruction"),lt("authorized")])},AuthorizeNonceAccount:{index:7,layout:Me([Pe("instruction"),lt("authorized")])},Allocate:{index:8,layout:Me([Pe("instruction"),Hn("space")])},AllocateWithSeed:{index:9,layout:Me([Pe("instruction"),lt("base"),Sa("seed"),Hn("space"),lt("programId")])},AssignWithSeed:{index:10,layout:Me([Pe("instruction"),lt("base"),Sa("seed"),lt("programId")])},TransferWithSeed:{index:11,layout:Me([Pe("instruction"),hu("lamports"),Sa("seed"),lt("programId")])},UpgradeNonceAccount:{index:12,layout:Me([Pe("instruction")])}});class Br{constructor(){}static createAccount(e){const t=Ht.Create,n=yt(t,{lamports:e.lamports,space:e.space,programId:nt(e.programId.toBuffer())});return new Pt({keys:[{pubkey:e.fromPubkey,isSigner:!0,isWritable:!0},{pubkey:e.newAccountPubkey,isSigner:!0,isWritable:!0}],programId:this.programId,data:n})}static transfer(e){let t,n;if("basePubkey"in e){const i=Ht.TransferWithSeed;t=yt(i,{lamports:BigInt(e.lamports),seed:e.seed,programId:nt(e.programId.toBuffer())}),n=[{pubkey:e.fromPubkey,isSigner:!1,isWritable:!0},{pubkey:e.basePubkey,isSigner:!0,isWritable:!1},{pubkey:e.toPubkey,isSigner:!1,isWritable:!0}]}else{const i=Ht.Transfer;t=yt(i,{lamports:BigInt(e.lamports)}),n=[{pubkey:e.fromPubkey,isSigner:!0,isWritable:!0},{pubkey:e.toPubkey,isSigner:!1,isWritable:!0}]}return new Pt({keys:n,programId:this.programId,data:t})}static assign(e){let t,n;if("basePubkey"in e){const i=Ht.AssignWithSeed;t=yt(i,{base:nt(e.basePubkey.toBuffer()),seed:e.seed,programId:nt(e.programId.toBuffer())}),n=[{pubkey:e.accountPubkey,isSigner:!1,isWritable:!0},{pubkey:e.basePubkey,isSigner:!0,isWritable:!1}]}else{const i=Ht.Assign;t=yt(i,{programId:nt(e.programId.toBuffer())}),n=[{pubkey:e.accountPubkey,isSigner:!0,isWritable:!0}]}return new Pt({keys:n,programId:this.programId,data:t})}static createAccountWithSeed(e){const t=Ht.CreateWithSeed,n=yt(t,{base:nt(e.basePubkey.toBuffer()),seed:e.seed,lamports:e.lamports,space:e.space,programId:nt(e.programId.toBuffer())});let i=[{pubkey:e.fromPubkey,isSigner:!0,isWritable:!0},{pubkey:e.newAccountPubkey,isSigner:!1,isWritable:!0}];return e.basePubkey.equals(e.fromPubkey)||i.push({pubkey:e.basePubkey,isSigner:!0,isWritable:!1}),new Pt({keys:i,programId:this.programId,data:n})}static createNonceAccount(e){const t=new Ot;"basePubkey"in e&&"seed"in e?t.add(Br.createAccountWithSeed({fromPubkey:e.fromPubkey,newAccountPubkey:e.noncePubkey,basePubkey:e.basePubkey,seed:e.seed,lamports:e.lamports,space:Pm,programId:this.programId})):t.add(Br.createAccount({fromPubkey:e.fromPubkey,newAccountPubkey:e.noncePubkey,lamports:e.lamports,space:Pm,programId:this.programId}));const n={noncePubkey:e.noncePubkey,authorizedPubkey:e.authorizedPubkey};return t.add(this.nonceInitialize(n)),t}static nonceInitialize(e){const t=Ht.InitializeNonceAccount,n=yt(t,{authorized:nt(e.authorizedPubkey.toBuffer())}),i={keys:[{pubkey:e.noncePubkey,isSigner:!1,isWritable:!0},{pubkey:T0,isSigner:!1,isWritable:!1},{pubkey:fu,isSigner:!1,isWritable:!1}],programId:this.programId,data:n};return new Pt(i)}static nonceAdvance(e){const t=Ht.AdvanceNonceAccount,n=yt(t),i={keys:[{pubkey:e.noncePubkey,isSigner:!1,isWritable:!0},{pubkey:T0,isSigner:!1,isWritable:!1},{pubkey:e.authorizedPubkey,isSigner:!0,isWritable:!1}],programId:this.programId,data:n};return new Pt(i)}static nonceWithdraw(e){const t=Ht.WithdrawNonceAccount,n=yt(t,{lamports:e.lamports});return new Pt({keys:[{pubkey:e.noncePubkey,isSigner:!1,isWritable:!0},{pubkey:e.toPubkey,isSigner:!1,isWritable:!0},{pubkey:T0,isSigner:!1,isWritable:!1},{pubkey:fu,isSigner:!1,isWritable:!1},{pubkey:e.authorizedPubkey,isSigner:!0,isWritable:!1}],programId:this.programId,data:n})}static nonceAuthorize(e){const t=Ht.AuthorizeNonceAccount,n=yt(t,{authorized:nt(e.newAuthorizedPubkey.toBuffer())});return new Pt({keys:[{pubkey:e.noncePubkey,isSigner:!1,isWritable:!0},{pubkey:e.authorizedPubkey,isSigner:!0,isWritable:!1}],programId:this.programId,data:n})}static allocate(e){let t,n;if("basePubkey"in e){const i=Ht.AllocateWithSeed;t=yt(i,{base:nt(e.basePubkey.toBuffer()),seed:e.seed,space:e.space,programId:nt(e.programId.toBuffer())}),n=[{pubkey:e.accountPubkey,isSigner:!1,isWritable:!0},{pubkey:e.basePubkey,isSigner:!0,isWritable:!1}]}else{const i=Ht.Allocate;t=yt(i,{space:e.space}),n=[{pubkey:e.accountPubkey,isSigner:!0,isWritable:!0}]}return new Pt({keys:n,programId:this.programId,data:t})}}Br.programId=new me("11111111111111111111111111111111");const UW=bo-300;class Oa{constructor(){}static getMinNumSignatures(e){return 2*(Math.ceil(e/Oa.chunkSize)+1+1)}static async load(e,t,n,i,s){{const g=await e.getMinimumBalanceForRentExemption(s.length),b=await e.getAccountInfo(n.publicKey,"confirmed");let w=null;if(b!==null){if(b.executable)return console.error("Program load failed, account is already executable"),!1;b.data.length!==s.length&&(w=w||new Ot,w.add(Br.allocate({accountPubkey:n.publicKey,space:s.length}))),b.owner.equals(i)||(w=w||new Ot,w.add(Br.assign({accountPubkey:n.publicKey,programId:i}))),b.lamports<g&&(w=w||new Ot,w.add(Br.transfer({fromPubkey:t.publicKey,toPubkey:n.publicKey,lamports:g-b.lamports})))}else w=new Ot().add(Br.createAccount({fromPubkey:t.publicKey,newAccountPubkey:n.publicKey,lamports:g>0?g:1,space:s.length,programId:i}));w!==null&&await Bm(e,w,[t,n],{commitment:"confirmed"})}const o=Me([Pe("instruction"),Pe("offset"),Pe("bytesLength"),Pe("bytesLengthPadding"),Vr(bt("byte"),mo(Pe(),-8),"bytes")]),a=Oa.chunkSize;let u=0,l=s,h=[];for(;l.length>0;){const g=l.slice(0,a),b=Ne.alloc(a+16);o.encode({instruction:0,offset:u,bytes:g,bytesLength:0,bytesLengthPadding:0},b);const w=new Ot().add({keys:[{pubkey:n.publicKey,isSigner:!0,isWritable:!0}],programId:i,data:b});h.push(Bm(e,w,[t,n],{commitment:"confirmed"})),e._rpcEndpoint.includes("solana.com")&&await Ta(1e3/4),u+=a,l=l.slice(a)}await Promise.all(h);{const g=Me([Pe("instruction")]),b=Ne.alloc(g.span);g.encode({instruction:1},b);const w=new Ot().add({keys:[{pubkey:n.publicKey,isSigner:!0,isWritable:!0},{pubkey:fu,isSigner:!1,isWritable:!1}],programId:i,data:b}),I="processed",S=await e.sendTransaction(w,[t,n],{preflightCommitment:I}),{context:x,value:C}=await e.confirmTransaction({signature:S,lastValidBlockHeight:w.lastValidBlockHeight,blockhash:w.recentBlockhash},I);if(C.err)throw new Error(`Transaction ${S} failed (${JSON.stringify(C)})`);for(;;){try{if(await e.getSlot({commitment:I})>x.slot)break}catch{}await new Promise(H=>setTimeout(H,Math.round(lx/2)))}}return!0}}Oa.chunkSize=UW;const DW=new me("BPFLoader2111111111111111111111111111111111");class $W{static getMinNumSignatures(e){return Oa.getMinNumSignatures(e)}static load(e,t,n,i,s){return Oa.load(e,t,n,s,i)}}function FW(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var Mm,dx;function HW(){if(dx)return Mm;dx=1;var r=Object.prototype.toString,e=Object.keys||function(n){var i=[];for(var s in n)i.push(s);return i};function t(n,i){var s,o,a,u,l,h,g;if(n===!0)return"true";if(n===!1)return"false";switch(typeof n){case"object":if(n===null)return null;if(n.toJSON&&typeof n.toJSON=="function")return t(n.toJSON(),i);if(g=r.call(n),g==="[object Array]"){for(a="[",o=n.length-1,s=0;s<o;s++)a+=t(n[s],!0)+",";return o>-1&&(a+=t(n[s],!0)),a+"]"}else if(g==="[object Object]"){for(u=e(n).sort(),o=u.length,a="",s=0;s<o;)l=u[s],h=t(n[l],!1),h!==void 0&&(a&&(a+=","),a+=JSON.stringify(l)+":"+h),s++;return"{"+a+"}"}else return JSON.stringify(n);case"function":case"undefined":return i?null:void 0;case"string":return JSON.stringify(n);default:return isFinite(n)?n:null}}return Mm=function(n){var i=t(n,!1);if(i!==void 0)return""+i},Mm}var zW=HW(),px=FW(zW);const Mf=32;function Lm(r){let e=0;for(;r>1;)r/=2,e++;return e}function GW(r){return r===0?1:(r--,r|=r>>1,r|=r>>2,r|=r>>4,r|=r>>8,r|=r>>16,r|=r>>32,r+1)}class gx{constructor(e,t,n,i,s){this.slotsPerEpoch=void 0,this.leaderScheduleSlotOffset=void 0,this.warmup=void 0,this.firstNormalEpoch=void 0,this.firstNormalSlot=void 0,this.slotsPerEpoch=e,this.leaderScheduleSlotOffset=t,this.warmup=n,this.firstNormalEpoch=i,this.firstNormalSlot=s}getEpoch(e){return this.getEpochAndSlotIndex(e)[0]}getEpochAndSlotIndex(e){if(e<this.firstNormalSlot){const t=Lm(GW(e+Mf+1))-Lm(Mf)-1,n=this.getSlotsInEpoch(t),i=e-(n-Mf);return[t,i]}else{const t=e-this.firstNormalSlot,n=Math.floor(t/this.slotsPerEpoch),i=this.firstNormalEpoch+n,s=t%this.slotsPerEpoch;return[i,s]}}getFirstSlotInEpoch(e){return e<=this.firstNormalEpoch?(Math.pow(2,e)-1)*Mf:(e-this.firstNormalEpoch)*this.slotsPerEpoch+this.firstNormalSlot}getLastSlotInEpoch(e){return this.getFirstSlotInEpoch(e)+this.getSlotsInEpoch(e)-1}getSlotsInEpoch(e){return e<this.firstNormalEpoch?Math.pow(2,e+Lm(Mf)):this.slotsPerEpoch}}var KW=globalThis.fetch;class jW extends Qj{constructor(e,t,n){const i=s=>{const o=qj(s,{autoconnect:!0,max_reconnects:5,reconnect:!0,reconnect_interval:1e3,...t});return"socket"in o?this.underlyingSocket=o.socket:this.underlyingSocket=o,o};super(i,e,t,n),this.underlyingSocket=void 0}call(...e){var n;const t=(n=this.underlyingSocket)==null?void 0:n.readyState;return t===1?super.call(...e):Promise.reject(new Error("Tried to call a JSON-RPC method `"+e[0]+"` but the socket was not `CONNECTING` or `OPEN` (`readyState` was "+t+")"))}notify(...e){var n;const t=(n=this.underlyingSocket)==null?void 0:n.readyState;return t===1?super.notify(...e):Promise.reject(new Error("Tried to send a JSON-RPC notification `"+e[0]+"` but the socket was not `CONNECTING` or `OPEN` (`readyState` was "+t+")"))}}function WW(r,e){let t;try{t=r.layout.decode(e)}catch(n){throw new Error("invalid instruction; "+n)}if(t.typeIndex!==r.index)throw new Error(`invalid account data; account type mismatch ${t.typeIndex} != ${r.index}`);return t}const yx=56;class Um{constructor(e){this.key=void 0,this.state=void 0,this.key=e.key,this.state=e.state}isActive(){const e=BigInt("0xffffffffffffffff");return this.state.deactivationSlot===e}static deserialize(e){const t=WW(VW,e),n=e.length-yx;vt(n>=0,"lookup table is invalid"),vt(n%32===0,"lookup table is invalid");const i=n/32,{addresses:s}=Me([Vr(lt(),i,"addresses")]).decode(e.slice(yx));return{deactivationSlot:t.deactivationSlot,lastExtendedSlot:t.lastExtendedSlot,lastExtendedSlotStartIndex:t.lastExtendedStartIndex,authority:t.authority.length!==0?new me(t.authority[0]):void 0,addresses:s.map(o=>new me(o))}}}const VW={index:1,layout:Me([Pe("typeIndex"),hu("deactivationSlot"),Wr("lastExtendedSlot"),bt("lastExtendedStartIndex"),bt(),Vr(lt(),mo(bt(),-1),"authority")])},qW=/^[^:]+:\/\/([^:[]+|\[[^\]]+\])(:\d+)?(.*)/i;function ZW(r){const e=r.match(qW);if(e==null)throw TypeError(`Failed to validate endpoint URL \`${r}\``);const[t,n,i,s]=e,o=r.startsWith("https:")?"wss:":"ws:",a=i==null?null:parseInt(i.slice(1),10),u=a==null?"":`:${a+1}`;return`${o}//${n}${u}${s}`}const nr=Tf(mm(me),_e(),r=>new me(r)),mx=wm([_e(),rr("base64")]),Dm=Tf(mm(Ne),mx,r=>Ne.from(r[0],"base64")),wx=30*1e3;function QW(r){if(/^https?:/.test(r)===!1)throw new TypeError("Endpoint URL must start with `http:` or `https:`.");return r}function zt(r){let e,t;if(typeof r=="string")e=r;else if(r){const{commitment:n,...i}=r;e=n,t=i}return{commitment:e,config:t}}function bx(r){return r.map(e=>"memcmp"in e?{...e,memcmp:{...e.memcmp,encoding:e.memcmp.encoding??"base58"}}:e)}function _x(r){return gn([pe({jsonrpc:rr("2.0"),id:_e(),result:r}),pe({jsonrpc:rr("2.0"),id:_e(),error:pe({code:uu(),message:_e(),data:He(_j())})})])}const YW=_x(uu());function it(r){return Tf(_x(r),YW,e=>"error"in e?e:{...e,result:Ae(e.result,r)})}function Er(r){return it(pe({context:pe({slot:X()}),value:r}))}function C0(r){return pe({context:pe({slot:X()}),value:r})}function $m(r,e){return r===0?new ka({header:e.header,staticAccountKeys:e.accountKeys.map(t=>new me(t)),recentBlockhash:e.recentBlockhash,compiledInstructions:e.instructions.map(t=>({programIdIndex:t.programIdIndex,accountKeyIndexes:t.accounts,data:Or.decode(t.data)})),addressTableLookups:e.addressTableLookups}):new Ei(e)}const JW=pe({foundation:X(),foundationTerm:X(),initial:X(),taper:X(),terminal:X()}),XW=it(Re(Ie(pe({epoch:X(),effectiveSlot:X(),amount:X(),postBalance:X(),commission:He(Ie(X()))})))),eV=Re(pe({slot:X(),prioritizationFee:X()})),tV=pe({total:X(),validator:X(),foundation:X(),epoch:X()}),rV=pe({epoch:X(),slotIndex:X(),slotsInEpoch:X(),absoluteSlot:X(),blockHeight:He(X()),transactionCount:He(X())}),nV=pe({slotsPerEpoch:X(),leaderScheduleSlotOffset:X(),warmup:Wi(),firstNormalEpoch:X(),firstNormalSlot:X()}),iV=M2(_e(),Re(X())),Na=Ie(gn([pe({}),_e()])),sV=pe({err:Na}),oV=rr("receivedSignature"),aV=pe({"solana-core":_e(),"feature-set":He(X())}),cV=pe({program:_e(),programId:nr,parsed:uu()}),uV=pe({programId:nr,accounts:Re(nr),data:_e()}),Ax=Er(pe({err:Ie(gn([pe({}),_e()])),logs:Ie(Re(_e())),accounts:He(Ie(Re(Ie(pe({executable:Wi(),owner:_e(),lamports:X(),data:Re(_e()),rentEpoch:He(X())}))))),unitsConsumed:He(X()),returnData:He(Ie(pe({programId:_e(),data:wm([_e(),rr("base64")])}))),innerInstructions:He(Ie(Re(pe({index:X(),instructions:Re(gn([cV,uV]))}))))})),lV=Er(pe({byIdentity:M2(_e(),Re(X())),range:pe({firstSlot:X(),lastSlot:X()})}));function fV(r,e,t,n,i,s){const o=t||KW;let a;s!=null&&console.warn("You have supplied an `httpAgent` when creating a `Connection` in a browser environment.It has been ignored; `httpAgent` is only used in Node environments.");let u;return n&&(u=async(h,g)=>{const b=await new Promise((w,I)=>{try{n(h,g,(S,x)=>w([S,x]))}catch(S){I(S)}});return await o(...b)}),new jj(async(h,g)=>{const b={method:"POST",body:h,agent:a,headers:Object.assign({"Content-Type":"application/json"},e||{},fq)};try{let w=5,I,S=500;for(;u?I=await u(r,b):I=await o(r,b),!(I.status!==429||i===!0||(w-=1,w===0));)console.error(`Server responded with ${I.status} ${I.statusText}. Retrying after ${S}ms delay...`),await Ta(S),S*=2;const x=await I.text();I.ok?g(null,x):g(new Error(`${I.status} ${I.statusText}: ${x}`))}catch(w){w instanceof Error&&g(w)}},{})}function hV(r){return(e,t)=>new Promise((n,i)=>{r.request(e,t,(s,o)=>{if(s){i(s);return}n(o)})})}function dV(r){return e=>new Promise((t,n)=>{e.length===0&&t([]);const i=e.map(s=>r.request(s.methodName,s.args));r.request(i,(s,o)=>{if(s){n(s);return}t(o)})})}const pV=it(JW),gV=it(tV),yV=it(eV),mV=it(rV),wV=it(nV),bV=it(iV),_V=it(X()),AV=Er(pe({total:X(),circulating:X(),nonCirculating:X(),nonCirculatingAccounts:Re(nr)})),Fm=pe({amount:_e(),uiAmount:Ie(X()),decimals:X(),uiAmountString:He(_e())}),vV=Er(Re(pe({address:nr,amount:_e(),uiAmount:Ie(X()),decimals:X(),uiAmountString:He(_e())}))),EV=Er(Re(pe({pubkey:nr,account:pe({executable:Wi(),owner:nr,lamports:X(),data:Dm,rentEpoch:X()})}))),Hm=pe({program:_e(),parsed:uu(),space:X()}),xV=Er(Re(pe({pubkey:nr,account:pe({executable:Wi(),owner:nr,lamports:X(),data:Hm,rentEpoch:X()})}))),RV=Er(Re(pe({lamports:X(),address:nr}))),Lf=pe({executable:Wi(),owner:nr,lamports:X(),data:Dm,rentEpoch:X()}),IV=pe({pubkey:nr,account:Lf}),SV=Tf(gn([mm(Ne),Hm]),gn([mx,Hm]),r=>Array.isArray(r)?Ae(r,Dm):r),zm=pe({executable:Wi(),owner:nr,lamports:X(),data:SV,rentEpoch:X()}),kV=pe({pubkey:nr,account:zm}),TV=pe({state:gn([rr("active"),rr("inactive"),rr("activating"),rr("deactivating")]),active:X(),inactive:X()}),OV=it(Re(pe({signature:_e(),slot:X(),err:Na,memo:Ie(_e()),blockTime:He(Ie(X()))}))),NV=it(Re(pe({signature:_e(),slot:X(),err:Na,memo:Ie(_e()),blockTime:He(Ie(X()))}))),CV=pe({subscription:X(),result:C0(Lf)}),BV=pe({pubkey:nr,account:Lf}),PV=pe({subscription:X(),result:C0(BV)}),MV=pe({parent:X(),slot:X(),root:X()}),LV=pe({subscription:X(),result:MV}),UV=gn([pe({type:gn([rr("firstShredReceived"),rr("completed"),rr("optimisticConfirmation"),rr("root")]),slot:X(),timestamp:X()}),pe({type:rr("createdBank"),parent:X(),slot:X(),timestamp:X()}),pe({type:rr("frozen"),slot:X(),timestamp:X(),stats:pe({numTransactionEntries:X(),numSuccessfulTransactions:X(),numFailedTransactions:X(),maxTransactionsPerEntry:X()})}),pe({type:rr("dead"),slot:X(),timestamp:X(),err:_e()})]),DV=pe({subscription:X(),result:UV}),$V=pe({subscription:X(),result:C0(gn([sV,oV]))}),FV=pe({subscription:X(),result:X()}),HV=pe({pubkey:_e(),gossip:Ie(_e()),tpu:Ie(_e()),rpc:Ie(_e()),version:Ie(_e())}),vx=pe({votePubkey:_e(),nodePubkey:_e(),activatedStake:X(),epochVoteAccount:Wi(),epochCredits:Re(wm([X(),X(),X()])),commission:X(),lastVote:X(),rootSlot:Ie(X())}),zV=it(pe({current:Re(vx),delinquent:Re(vx)})),GV=gn([rr("processed"),rr("confirmed"),rr("finalized")]),KV=pe({slot:X(),confirmations:Ie(X()),err:Na,confirmationStatus:He(GV)}),jV=Er(Re(Ie(KV))),WV=it(X()),Ex=pe({accountKey:nr,writableIndexes:Re(X()),readonlyIndexes:Re(X())}),Gm=pe({signatures:Re(_e()),message:pe({accountKeys:Re(_e()),header:pe({numRequiredSignatures:X(),numReadonlySignedAccounts:X(),numReadonlyUnsignedAccounts:X()}),instructions:Re(pe({accounts:Re(X()),data:_e(),programIdIndex:X()})),recentBlockhash:_e(),addressTableLookups:He(Re(Ex))})}),xx=pe({pubkey:nr,signer:Wi(),writable:Wi(),source:He(gn([rr("transaction"),rr("lookupTable")]))}),Rx=pe({accountKeys:Re(xx),signatures:Re(_e())}),Ix=pe({parsed:uu(),program:_e(),programId:nr}),Sx=pe({accounts:Re(nr),data:_e(),programId:nr}),VV=gn([Sx,Ix]),qV=gn([pe({parsed:uu(),program:_e(),programId:_e()}),pe({accounts:Re(_e()),data:_e(),programId:_e()})]),kx=Tf(VV,qV,r=>"accounts"in r?Ae(r,Sx):Ae(r,Ix)),Tx=pe({signatures:Re(_e()),message:pe({accountKeys:Re(xx),instructions:Re(kx),recentBlockhash:_e(),addressTableLookups:He(Ie(Re(Ex)))})}),B0=pe({accountIndex:X(),mint:_e(),owner:He(_e()),programId:He(_e()),uiTokenAmount:Fm}),Ox=pe({writable:Re(nr),readonly:Re(nr)}),P0=pe({err:Na,fee:X(),innerInstructions:He(Ie(Re(pe({index:X(),instructions:Re(pe({accounts:Re(X()),data:_e(),programIdIndex:X()}))})))),preBalances:Re(X()),postBalances:Re(X()),logMessages:He(Ie(Re(_e()))),preTokenBalances:He(Ie(Re(B0))),postTokenBalances:He(Ie(Re(B0))),loadedAddresses:He(Ox),computeUnitsConsumed:He(X())}),Km=pe({err:Na,fee:X(),innerInstructions:He(Ie(Re(pe({index:X(),instructions:Re(kx)})))),preBalances:Re(X()),postBalances:Re(X()),logMessages:He(Ie(Re(_e()))),preTokenBalances:He(Ie(Re(B0))),postTokenBalances:He(Ie(Re(B0))),loadedAddresses:He(Ox),computeUnitsConsumed:He(X())}),du=gn([rr(0),rr("legacy")]),Ca=pe({pubkey:_e(),lamports:X(),postBalance:Ie(X()),rewardType:Ie(_e()),commission:He(Ie(X()))}),ZV=it(Ie(pe({blockhash:_e(),previousBlockhash:_e(),parentSlot:X(),transactions:Re(pe({transaction:Gm,meta:Ie(P0),version:He(du)})),rewards:He(Re(Ca)),blockTime:Ie(X()),blockHeight:Ie(X())}))),QV=it(Ie(pe({blockhash:_e(),previousBlockhash:_e(),parentSlot:X(),rewards:He(Re(Ca)),blockTime:Ie(X()),blockHeight:Ie(X())}))),YV=it(Ie(pe({blockhash:_e(),previousBlockhash:_e(),parentSlot:X(),transactions:Re(pe({transaction:Rx,meta:Ie(P0),version:He(du)})),rewards:He(Re(Ca)),blockTime:Ie(X()),blockHeight:Ie(X())}))),JV=it(Ie(pe({blockhash:_e(),previousBlockhash:_e(),parentSlot:X(),transactions:Re(pe({transaction:Tx,meta:Ie(Km),version:He(du)})),rewards:He(Re(Ca)),blockTime:Ie(X()),blockHeight:Ie(X())}))),XV=it(Ie(pe({blockhash:_e(),previousBlockhash:_e(),parentSlot:X(),transactions:Re(pe({transaction:Rx,meta:Ie(Km),version:He(du)})),rewards:He(Re(Ca)),blockTime:Ie(X()),blockHeight:Ie(X())}))),eq=it(Ie(pe({blockhash:_e(),previousBlockhash:_e(),parentSlot:X(),rewards:He(Re(Ca)),blockTime:Ie(X()),blockHeight:Ie(X())}))),tq=it(Ie(pe({blockhash:_e(),previousBlockhash:_e(),parentSlot:X(),transactions:Re(pe({transaction:Gm,meta:Ie(P0)})),rewards:He(Re(Ca)),blockTime:Ie(X())}))),Nx=it(Ie(pe({blockhash:_e(),previousBlockhash:_e(),parentSlot:X(),signatures:Re(_e()),blockTime:Ie(X())}))),jm=it(Ie(pe({slot:X(),meta:Ie(P0),blockTime:He(Ie(X())),transaction:Gm,version:He(du)}))),M0=it(Ie(pe({slot:X(),transaction:Tx,meta:Ie(Km),blockTime:He(Ie(X())),version:He(du)}))),rq=Er(pe({blockhash:_e(),lastValidBlockHeight:X()})),nq=Er(Wi()),iq=pe({slot:X(),numTransactions:X(),numSlots:X(),samplePeriodSecs:X()}),sq=it(Re(iq)),oq=Er(Ie(pe({feeCalculator:pe({lamportsPerSignature:X()})}))),aq=it(_e()),cq=it(_e()),uq=pe({err:Na,logs:Re(_e()),signature:_e()}),lq=pe({result:C0(uq),subscription:X()}),fq={"solana-client":"js/1.0.0-maintenance"};class Cx{constructor(e,t){this._commitment=void 0,this._confirmTransactionInitialTimeout=void 0,this._rpcEndpoint=void 0,this._rpcWsEndpoint=void 0,this._rpcClient=void 0,this._rpcRequest=void 0,this._rpcBatchRequest=void 0,this._rpcWebSocket=void 0,this._rpcWebSocketConnected=!1,this._rpcWebSocketHeartbeat=null,this._rpcWebSocketIdleTimeout=null,this._rpcWebSocketGeneration=0,this._disableBlockhashCaching=!1,this._pollingBlockhash=!1,this._blockhashInfo={latestBlockhash:null,lastFetch:0,transactionSignatures:[],simulatedSignatures:[]},this._nextClientSubscriptionId=0,this._subscriptionDisposeFunctionsByClientSubscriptionId={},this._subscriptionHashByClientSubscriptionId={},this._subscriptionStateChangeCallbacksByHash={},this._subscriptionCallbacksByServerSubscriptionId={},this._subscriptionsByHash={},this._subscriptionsAutoDisposedByRpc=new Set,this.getBlockHeight=(()=>{const l={};return async h=>{const{commitment:g,config:b}=zt(h),w=this._buildArgs([],g,void 0,b),I=px(w);return l[I]=l[I]??(async()=>{try{const S=await this._rpcRequest("getBlockHeight",w),x=Ae(S,it(X()));if("error"in x)throw new $e(x.error,"failed to get block height information");return x.result}finally{delete l[I]}})(),await l[I]}})();let n,i,s,o,a,u;t&&typeof t=="string"?this._commitment=t:t&&(this._commitment=t.commitment,this._confirmTransactionInitialTimeout=t.confirmTransactionInitialTimeout,n=t.wsEndpoint,i=t.httpHeaders,s=t.fetch,o=t.fetchMiddleware,a=t.disableRetryOnRateLimit,u=t.httpAgent),this._rpcEndpoint=QW(e),this._rpcWsEndpoint=n||ZW(e),this._rpcClient=fV(e,i,s,o,a,u),this._rpcRequest=hV(this._rpcClient),this._rpcBatchRequest=dV(this._rpcClient),this._rpcWebSocket=new jW(this._rpcWsEndpoint,{autoconnect:!1,max_reconnects:1/0}),this._rpcWebSocket.on("open",this._wsOnOpen.bind(this)),this._rpcWebSocket.on("error",this._wsOnError.bind(this)),this._rpcWebSocket.on("close",this._wsOnClose.bind(this)),this._rpcWebSocket.on("accountNotification",this._wsOnAccountNotification.bind(this)),this._rpcWebSocket.on("programNotification",this._wsOnProgramAccountNotification.bind(this)),this._rpcWebSocket.on("slotNotification",this._wsOnSlotNotification.bind(this)),this._rpcWebSocket.on("slotsUpdatesNotification",this._wsOnSlotUpdatesNotification.bind(this)),this._rpcWebSocket.on("signatureNotification",this._wsOnSignatureNotification.bind(this)),this._rpcWebSocket.on("rootNotification",this._wsOnRootNotification.bind(this)),this._rpcWebSocket.on("logsNotification",this._wsOnLogsNotification.bind(this))}get commitment(){return this._commitment}get rpcEndpoint(){return this._rpcEndpoint}async getBalanceAndContext(e,t){const{commitment:n,config:i}=zt(t),s=this._buildArgs([e.toBase58()],n,void 0,i),o=await this._rpcRequest("getBalance",s),a=Ae(o,Er(X()));if("error"in a)throw new $e(a.error,`failed to get balance for ${e.toBase58()}`);return a.result}async getBalance(e,t){return await this.getBalanceAndContext(e,t).then(n=>n.value).catch(n=>{throw new Error("failed to get balance of account "+e.toBase58()+": "+n)})}async getBlockTime(e){const t=await this._rpcRequest("getBlockTime",[e]),n=Ae(t,it(Ie(X())));if("error"in n)throw new $e(n.error,`failed to get block time for slot ${e}`);return n.result}async getMinimumLedgerSlot(){const e=await this._rpcRequest("minimumLedgerSlot",[]),t=Ae(e,it(X()));if("error"in t)throw new $e(t.error,"failed to get minimum ledger slot");return t.result}async getFirstAvailableBlock(){const e=await this._rpcRequest("getFirstAvailableBlock",[]),t=Ae(e,_V);if("error"in t)throw new $e(t.error,"failed to get first available block");return t.result}async getSupply(e){let t={};typeof e=="string"?t={commitment:e}:e?t={...e,commitment:e&&e.commitment||this.commitment}:t={commitment:this.commitment};const n=await this._rpcRequest("getSupply",[t]),i=Ae(n,AV);if("error"in i)throw new $e(i.error,"failed to get supply");return i.result}async getTokenSupply(e,t){const n=this._buildArgs([e.toBase58()],t),i=await this._rpcRequest("getTokenSupply",n),s=Ae(i,Er(Fm));if("error"in s)throw new $e(s.error,"failed to get token supply");return s.result}async getTokenAccountBalance(e,t){const n=this._buildArgs([e.toBase58()],t),i=await this._rpcRequest("getTokenAccountBalance",n),s=Ae(i,Er(Fm));if("error"in s)throw new $e(s.error,"failed to get token account balance");return s.result}async getTokenAccountsByOwner(e,t,n){const{commitment:i,config:s}=zt(n);let o=[e.toBase58()];"mint"in t?o.push({mint:t.mint.toBase58()}):o.push({programId:t.programId.toBase58()});const a=this._buildArgs(o,i,"base64",s),u=await this._rpcRequest("getTokenAccountsByOwner",a),l=Ae(u,EV);if("error"in l)throw new $e(l.error,`failed to get token accounts owned by account ${e.toBase58()}`);return l.result}async getParsedTokenAccountsByOwner(e,t,n){let i=[e.toBase58()];"mint"in t?i.push({mint:t.mint.toBase58()}):i.push({programId:t.programId.toBase58()});const s=this._buildArgs(i,n,"jsonParsed"),o=await this._rpcRequest("getTokenAccountsByOwner",s),a=Ae(o,xV);if("error"in a)throw new $e(a.error,`failed to get token accounts owned by account ${e.toBase58()}`);return a.result}async getLargestAccounts(e){const t={...e,commitment:e&&e.commitment||this.commitment},n=t.filter||t.commitment?[t]:[],i=await this._rpcRequest("getLargestAccounts",n),s=Ae(i,RV);if("error"in s)throw new $e(s.error,"failed to get largest accounts");return s.result}async getTokenLargestAccounts(e,t){const n=this._buildArgs([e.toBase58()],t),i=await this._rpcRequest("getTokenLargestAccounts",n),s=Ae(i,vV);if("error"in s)throw new $e(s.error,"failed to get token largest accounts");return s.result}async getAccountInfoAndContext(e,t){const{commitment:n,config:i}=zt(t),s=this._buildArgs([e.toBase58()],n,"base64",i),o=await this._rpcRequest("getAccountInfo",s),a=Ae(o,Er(Ie(Lf)));if("error"in a)throw new $e(a.error,`failed to get info about account ${e.toBase58()}`);return a.result}async getParsedAccountInfo(e,t){const{commitment:n,config:i}=zt(t),s=this._buildArgs([e.toBase58()],n,"jsonParsed",i),o=await this._rpcRequest("getAccountInfo",s),a=Ae(o,Er(Ie(zm)));if("error"in a)throw new $e(a.error,`failed to get info about account ${e.toBase58()}`);return a.result}async getAccountInfo(e,t){try{return(await this.getAccountInfoAndContext(e,t)).value}catch(n){throw new Error("failed to get info about account "+e.toBase58()+": "+n)}}async getMultipleParsedAccounts(e,t){const{commitment:n,config:i}=zt(t),s=e.map(l=>l.toBase58()),o=this._buildArgs([s],n,"jsonParsed",i),a=await this._rpcRequest("getMultipleAccounts",o),u=Ae(a,Er(Re(Ie(zm))));if("error"in u)throw new $e(u.error,`failed to get info for accounts ${s}`);return u.result}async getMultipleAccountsInfoAndContext(e,t){const{commitment:n,config:i}=zt(t),s=e.map(l=>l.toBase58()),o=this._buildArgs([s],n,"base64",i),a=await this._rpcRequest("getMultipleAccounts",o),u=Ae(a,Er(Re(Ie(Lf))));if("error"in u)throw new $e(u.error,`failed to get info for accounts ${s}`);return u.result}async getMultipleAccountsInfo(e,t){return(await this.getMultipleAccountsInfoAndContext(e,t)).value}async getStakeActivation(e,t,n){const{commitment:i,config:s}=zt(t),o=this._buildArgs([e.toBase58()],i,void 0,{...s,epoch:n??(s==null?void 0:s.epoch)}),a=await this._rpcRequest("getStakeActivation",o),u=Ae(a,it(TV));if("error"in u)throw new $e(u.error,`failed to get Stake Activation ${e.toBase58()}`);return u.result}async getProgramAccounts(e,t){const{commitment:n,config:i}=zt(t),{encoding:s,...o}=i||{},a=this._buildArgs([e.toBase58()],n,s||"base64",{...o,...o.filters?{filters:bx(o.filters)}:null}),u=await this._rpcRequest("getProgramAccounts",a),l=Re(IV),h=o.withContext===!0?Ae(u,Er(l)):Ae(u,it(l));if("error"in h)throw new $e(h.error,`failed to get accounts owned by program ${e.toBase58()}`);return h.result}async getParsedProgramAccounts(e,t){const{commitment:n,config:i}=zt(t),s=this._buildArgs([e.toBase58()],n,"jsonParsed",i),o=await this._rpcRequest("getProgramAccounts",s),a=Ae(o,it(Re(kV)));if("error"in a)throw new $e(a.error,`failed to get accounts owned by program ${e.toBase58()}`);return a.result}async confirmTransaction(e,t){var s;let n;if(typeof e=="string")n=e;else{const o=e;if((s=o.abortSignal)!=null&&s.aborted)return Promise.reject(o.abortSignal.reason);n=o.signature}let i;try{i=Or.decode(n)}catch{throw new Error("signature must be base58 encoded: "+n)}return vt(i.length===64,"signature has invalid length"),typeof e=="string"?await this.confirmTransactionUsingLegacyTimeoutStrategy({commitment:t||this.commitment,signature:n}):"lastValidBlockHeight"in e?await this.confirmTransactionUsingBlockHeightExceedanceStrategy({commitment:t||this.commitment,strategy:e}):await this.confirmTransactionUsingDurableNonceStrategy({commitment:t||this.commitment,strategy:e})}getCancellationPromise(e){return new Promise((t,n)=>{e!=null&&(e.aborted?n(e.reason):e.addEventListener("abort",()=>{n(e.reason)}))})}getTransactionConfirmationPromise({commitment:e,signature:t}){let n,i,s=!1;const o=new Promise((u,l)=>{try{n=this.onSignature(t,(g,b)=>{n=void 0;const w={context:b,value:g};u({__type:ks.PROCESSED,response:w})},e);const h=new Promise(g=>{n==null?g():i=this._onSubscriptionStateChange(n,b=>{b==="subscribed"&&g()})});(async()=>{if(await h,s)return;const g=await this.getSignatureStatus(t);if(s||g==null)return;const{context:b,value:w}=g;if(w!=null)if(w!=null&&w.err)l(w.err);else{switch(e){case"confirmed":case"single":case"singleGossip":{if(w.confirmationStatus==="processed")return;break}case"finalized":case"max":case"root":{if(w.confirmationStatus==="processed"||w.confirmationStatus==="confirmed")return;break}case"processed":case"recent":}s=!0,u({__type:ks.PROCESSED,response:{context:b,value:w}})}})()}catch(h){l(h)}});return{abortConfirmation:()=>{i&&(i(),i=void 0),n!=null&&(this.removeSignatureListener(n),n=void 0)},confirmationPromise:o}}async confirmTransactionUsingBlockHeightExceedanceStrategy({commitment:e,strategy:{abortSignal:t,lastValidBlockHeight:n,signature:i}}){let s=!1;const o=new Promise(g=>{const b=async()=>{try{return await this.getBlockHeight(e)}catch{return-1}};(async()=>{let w=await b();if(!s){for(;w<=n;)if(await Ta(1e3),s||(w=await b(),s))return;g({__type:ks.BLOCKHEIGHT_EXCEEDED})}})()}),{abortConfirmation:a,confirmationPromise:u}=this.getTransactionConfirmationPromise({commitment:e,signature:i}),l=this.getCancellationPromise(t);let h;try{const g=await Promise.race([l,u,o]);if(g.__type===ks.PROCESSED)h=g.response;else throw new km(i)}finally{s=!0,a()}return h}async confirmTransactionUsingDurableNonceStrategy({commitment:e,strategy:{abortSignal:t,minContextSlot:n,nonceAccountPubkey:i,nonceValue:s,signature:o}}){let a=!1;const u=new Promise(w=>{let I=s,S=null;const x=async()=>{try{const{context:C,value:H}=await this.getNonceAndContext(i,{commitment:e,minContextSlot:n});return S=C.slot,H==null?void 0:H.nonce}catch{return I}};(async()=>{if(I=await x(),!a)for(;;){if(s!==I){w({__type:ks.NONCE_INVALID,slotInWhichNonceDidAdvance:S});return}if(await Ta(2e3),a||(I=await x(),a))return}})()}),{abortConfirmation:l,confirmationPromise:h}=this.getTransactionConfirmationPromise({commitment:e,signature:o}),g=this.getCancellationPromise(t);let b;try{const w=await Promise.race([g,h,u]);if(w.__type===ks.PROCESSED)b=w.response;else{let I;for(;;){const S=await this.getSignatureStatus(o);if(S==null)break;if(S.context.slot<(w.slotInWhichNonceDidAdvance??n)){await Ta(400);continue}I=S;break}if(I!=null&&I.value){const S=e||"finalized",{confirmationStatus:x}=I.value;switch(S){case"processed":case"recent":if(x!=="processed"&&x!=="confirmed"&&x!=="finalized")throw new lu(o);break;case"confirmed":case"single":case"singleGossip":if(x!=="confirmed"&&x!=="finalized")throw new lu(o);break;case"finalized":case"max":case"root":if(x!=="finalized")throw new lu(o);break;default:}b={context:I.context,value:{err:I.value.err}}}else throw new lu(o)}}finally{a=!0,l()}return b}async confirmTransactionUsingLegacyTimeoutStrategy({commitment:e,signature:t}){let n;const i=new Promise(u=>{let l=this._confirmTransactionInitialTimeout||6e4;switch(e){case"processed":case"recent":case"single":case"confirmed":case"singleGossip":{l=this._confirmTransactionInitialTimeout||3e4;break}}n=setTimeout(()=>u({__type:ks.TIMED_OUT,timeoutMs:l}),l)}),{abortConfirmation:s,confirmationPromise:o}=this.getTransactionConfirmationPromise({commitment:e,signature:t});let a;try{const u=await Promise.race([o,i]);if(u.__type===ks.PROCESSED)a=u.response;else throw new Tm(t,u.timeoutMs/1e3)}finally{clearTimeout(n),s()}return a}async getClusterNodes(){const e=await this._rpcRequest("getClusterNodes",[]),t=Ae(e,it(Re(HV)));if("error"in t)throw new $e(t.error,"failed to get cluster nodes");return t.result}async getVoteAccounts(e){const t=this._buildArgs([],e),n=await this._rpcRequest("getVoteAccounts",t),i=Ae(n,zV);if("error"in i)throw new $e(i.error,"failed to get vote accounts");return i.result}async getSlot(e){const{commitment:t,config:n}=zt(e),i=this._buildArgs([],t,void 0,n),s=await this._rpcRequest("getSlot",i),o=Ae(s,it(X()));if("error"in o)throw new $e(o.error,"failed to get slot");return o.result}async getSlotLeader(e){const{commitment:t,config:n}=zt(e),i=this._buildArgs([],t,void 0,n),s=await this._rpcRequest("getSlotLeader",i),o=Ae(s,it(_e()));if("error"in o)throw new $e(o.error,"failed to get slot leader");return o.result}async getSlotLeaders(e,t){const n=[e,t],i=await this._rpcRequest("getSlotLeaders",n),s=Ae(i,it(Re(nr)));if("error"in s)throw new $e(s.error,"failed to get slot leaders");return s.result}async getSignatureStatus(e,t){const{context:n,value:i}=await this.getSignatureStatuses([e],t);vt(i.length===1);const s=i[0];return{context:n,value:s}}async getSignatureStatuses(e,t){const n=[e];t&&n.push(t);const i=await this._rpcRequest("getSignatureStatuses",n),s=Ae(i,jV);if("error"in s)throw new $e(s.error,"failed to get signature status");return s.result}async getTransactionCount(e){const{commitment:t,config:n}=zt(e),i=this._buildArgs([],t,void 0,n),s=await this._rpcRequest("getTransactionCount",i),o=Ae(s,it(X()));if("error"in o)throw new $e(o.error,"failed to get transaction count");return o.result}async getTotalSupply(e){return(await this.getSupply({commitment:e,excludeNonCirculatingAccountsList:!0})).value.total}async getInflationGovernor(e){const t=this._buildArgs([],e),n=await this._rpcRequest("getInflationGovernor",t),i=Ae(n,pV);if("error"in i)throw new $e(i.error,"failed to get inflation");return i.result}async getInflationReward(e,t,n){const{commitment:i,config:s}=zt(n),o=this._buildArgs([e.map(l=>l.toBase58())],i,void 0,{...s,epoch:t??(s==null?void 0:s.epoch)}),a=await this._rpcRequest("getInflationReward",o),u=Ae(a,XW);if("error"in u)throw new $e(u.error,"failed to get inflation reward");return u.result}async getInflationRate(){const e=await this._rpcRequest("getInflationRate",[]),t=Ae(e,gV);if("error"in t)throw new $e(t.error,"failed to get inflation rate");return t.result}async getEpochInfo(e){const{commitment:t,config:n}=zt(e),i=this._buildArgs([],t,void 0,n),s=await this._rpcRequest("getEpochInfo",i),o=Ae(s,mV);if("error"in o)throw new $e(o.error,"failed to get epoch info");return o.result}async getEpochSchedule(){const e=await this._rpcRequest("getEpochSchedule",[]),t=Ae(e,wV);if("error"in t)throw new $e(t.error,"failed to get epoch schedule");const n=t.result;return new gx(n.slotsPerEpoch,n.leaderScheduleSlotOffset,n.warmup,n.firstNormalEpoch,n.firstNormalSlot)}async getLeaderSchedule(){const e=await this._rpcRequest("getLeaderSchedule",[]),t=Ae(e,bV);if("error"in t)throw new $e(t.error,"failed to get leader schedule");return t.result}async getMinimumBalanceForRentExemption(e,t){const n=this._buildArgs([e],t),i=await this._rpcRequest("getMinimumBalanceForRentExemption",n),s=Ae(i,WV);return"error"in s?(console.warn("Unable to fetch minimum balance for rent exemption"),0):s.result}async getRecentBlockhashAndContext(e){const{context:t,value:{blockhash:n}}=await this.getLatestBlockhashAndContext(e);return{context:t,value:{blockhash:n,feeCalculator:{get lamportsPerSignature(){throw new Error("The capability to fetch `lamportsPerSignature` using the `getRecentBlockhash` API is no longer offered by the network. Use the `getFeeForMessage` API to obtain the fee for a given message.")},toJSON(){return{}}}}}}async getRecentPerformanceSamples(e){const t=await this._rpcRequest("getRecentPerformanceSamples",e?[e]:[]),n=Ae(t,sq);if("error"in n)throw new $e(n.error,"failed to get recent performance samples");return n.result}async getFeeCalculatorForBlockhash(e,t){const n=this._buildArgs([e],t),i=await this._rpcRequest("getFeeCalculatorForBlockhash",n),s=Ae(i,oq);if("error"in s)throw new $e(s.error,"failed to get fee calculator");const{context:o,value:a}=s.result;return{context:o,value:a!==null?a.feeCalculator:null}}async getFeeForMessage(e,t){const n=nt(e.serialize()).toString("base64"),i=this._buildArgs([n],t),s=await this._rpcRequest("getFeeForMessage",i),o=Ae(s,Er(Ie(X())));if("error"in o)throw new $e(o.error,"failed to get fee for message");if(o.result===null)throw new Error("invalid blockhash");return o.result}async getRecentPrioritizationFees(e){var o;const t=(o=e==null?void 0:e.lockedWritableAccounts)==null?void 0:o.map(a=>a.toBase58()),n=t!=null&&t.length?[t]:[],i=await this._rpcRequest("getRecentPrioritizationFees",n),s=Ae(i,yV);if("error"in s)throw new $e(s.error,"failed to get recent prioritization fees");return s.result}async getRecentBlockhash(e){try{return(await this.getRecentBlockhashAndContext(e)).value}catch(t){throw new Error("failed to get recent blockhash: "+t)}}async getLatestBlockhash(e){try{return(await this.getLatestBlockhashAndContext(e)).value}catch(t){throw new Error("failed to get recent blockhash: "+t)}}async getLatestBlockhashAndContext(e){const{commitment:t,config:n}=zt(e),i=this._buildArgs([],t,void 0,n),s=await this._rpcRequest("getLatestBlockhash",i),o=Ae(s,rq);if("error"in o)throw new $e(o.error,"failed to get latest blockhash");return o.result}async isBlockhashValid(e,t){const{commitment:n,config:i}=zt(t),s=this._buildArgs([e],n,void 0,i),o=await this._rpcRequest("isBlockhashValid",s),a=Ae(o,nq);if("error"in a)throw new $e(a.error,"failed to determine if the blockhash `"+e+"`is valid");return a.result}async getVersion(){const e=await this._rpcRequest("getVersion",[]),t=Ae(e,it(aV));if("error"in t)throw new $e(t.error,"failed to get version");return t.result}async getGenesisHash(){const e=await this._rpcRequest("getGenesisHash",[]),t=Ae(e,it(_e()));if("error"in t)throw new $e(t.error,"failed to get genesis hash");return t.result}async getBlock(e,t){const{commitment:n,config:i}=zt(t),s=this._buildArgsAtLeastConfirmed([e],n,void 0,i),o=await this._rpcRequest("getBlock",s);try{switch(i==null?void 0:i.transactionDetails){case"accounts":{const a=Ae(o,YV);if("error"in a)throw a.error;return a.result}case"none":{const a=Ae(o,QV);if("error"in a)throw a.error;return a.result}default:{const a=Ae(o,ZV);if("error"in a)throw a.error;const{result:u}=a;return u?{...u,transactions:u.transactions.map(({transaction:l,meta:h,version:g})=>({meta:h,transaction:{...l,message:$m(g,l.message)},version:g}))}:null}}}catch(a){throw new $e(a,"failed to get confirmed block")}}async getParsedBlock(e,t){const{commitment:n,config:i}=zt(t),s=this._buildArgsAtLeastConfirmed([e],n,"jsonParsed",i),o=await this._rpcRequest("getBlock",s);try{switch(i==null?void 0:i.transactionDetails){case"accounts":{const a=Ae(o,XV);if("error"in a)throw a.error;return a.result}case"none":{const a=Ae(o,eq);if("error"in a)throw a.error;return a.result}default:{const a=Ae(o,JV);if("error"in a)throw a.error;return a.result}}}catch(a){throw new $e(a,"failed to get block")}}async getBlockProduction(e){let t,n;if(typeof e=="string")n=e;else if(e){const{commitment:a,...u}=e;n=a,t=u}const i=this._buildArgs([],n,"base64",t),s=await this._rpcRequest("getBlockProduction",i),o=Ae(s,lV);if("error"in o)throw new $e(o.error,"failed to get block production information");return o.result}async getTransaction(e,t){const{commitment:n,config:i}=zt(t),s=this._buildArgsAtLeastConfirmed([e],n,void 0,i),o=await this._rpcRequest("getTransaction",s),a=Ae(o,jm);if("error"in a)throw new $e(a.error,"failed to get transaction");const u=a.result;return u&&{...u,transaction:{...u.transaction,message:$m(u.version,u.transaction.message)}}}async getParsedTransaction(e,t){const{commitment:n,config:i}=zt(t),s=this._buildArgsAtLeastConfirmed([e],n,"jsonParsed",i),o=await this._rpcRequest("getTransaction",s),a=Ae(o,M0);if("error"in a)throw new $e(a.error,"failed to get transaction");return a.result}async getParsedTransactions(e,t){const{commitment:n,config:i}=zt(t),s=e.map(u=>({methodName:"getTransaction",args:this._buildArgsAtLeastConfirmed([u],n,"jsonParsed",i)}));return(await this._rpcBatchRequest(s)).map(u=>{const l=Ae(u,M0);if("error"in l)throw new $e(l.error,"failed to get transactions");return l.result})}async getTransactions(e,t){const{commitment:n,config:i}=zt(t),s=e.map(u=>({methodName:"getTransaction",args:this._buildArgsAtLeastConfirmed([u],n,void 0,i)}));return(await this._rpcBatchRequest(s)).map(u=>{const l=Ae(u,jm);if("error"in l)throw new $e(l.error,"failed to get transactions");const h=l.result;return h&&{...h,transaction:{...h.transaction,message:$m(h.version,h.transaction.message)}}})}async getConfirmedBlock(e,t){const n=this._buildArgsAtLeastConfirmed([e],t),i=await this._rpcRequest("getBlock",n),s=Ae(i,tq);if("error"in s)throw new $e(s.error,"failed to get confirmed block");const o=s.result;if(!o)throw new Error("Confirmed block "+e+" not found");const a={...o,transactions:o.transactions.map(({transaction:u,meta:l})=>{const h=new Ei(u.message);return{meta:l,transaction:{...u,message:h}}})};return{...a,transactions:a.transactions.map(({transaction:u,meta:l})=>({meta:l,transaction:Ot.populate(u.message,u.signatures)}))}}async getBlocks(e,t,n){const i=this._buildArgsAtLeastConfirmed(t!==void 0?[e,t]:[e],n),s=await this._rpcRequest("getBlocks",i),o=Ae(s,it(Re(X())));if("error"in o)throw new $e(o.error,"failed to get blocks");return o.result}async getBlockSignatures(e,t){const n=this._buildArgsAtLeastConfirmed([e],t,void 0,{transactionDetails:"signatures",rewards:!1}),i=await this._rpcRequest("getBlock",n),s=Ae(i,Nx);if("error"in s)throw new $e(s.error,"failed to get block");const o=s.result;if(!o)throw new Error("Block "+e+" not found");return o}async getConfirmedBlockSignatures(e,t){const n=this._buildArgsAtLeastConfirmed([e],t,void 0,{transactionDetails:"signatures",rewards:!1}),i=await this._rpcRequest("getBlock",n),s=Ae(i,Nx);if("error"in s)throw new $e(s.error,"failed to get confirmed block");const o=s.result;if(!o)throw new Error("Confirmed block "+e+" not found");return o}async getConfirmedTransaction(e,t){const n=this._buildArgsAtLeastConfirmed([e],t),i=await this._rpcRequest("getTransaction",n),s=Ae(i,jm);if("error"in s)throw new $e(s.error,"failed to get transaction");const o=s.result;if(!o)return o;const a=new Ei(o.transaction.message),u=o.transaction.signatures;return{...o,transaction:Ot.populate(a,u)}}async getParsedConfirmedTransaction(e,t){const n=this._buildArgsAtLeastConfirmed([e],t,"jsonParsed"),i=await this._rpcRequest("getTransaction",n),s=Ae(i,M0);if("error"in s)throw new $e(s.error,"failed to get confirmed transaction");return s.result}async getParsedConfirmedTransactions(e,t){const n=e.map(o=>({methodName:"getTransaction",args:this._buildArgsAtLeastConfirmed([o],t,"jsonParsed")}));return(await this._rpcBatchRequest(n)).map(o=>{const a=Ae(o,M0);if("error"in a)throw new $e(a.error,"failed to get confirmed transactions");return a.result})}async getConfirmedSignaturesForAddress(e,t,n){let i={},s=await this.getFirstAvailableBlock();for(;!("until"in i)&&(t--,!(t<=0||t<s));)try{const u=await this.getConfirmedBlockSignatures(t,"finalized");u.signatures.length>0&&(i.until=u.signatures[u.signatures.length-1].toString())}catch(u){if(u instanceof Error&&u.message.includes("skipped"))continue;throw u}let o=await this.getSlot("finalized");for(;!("before"in i)&&(n++,!(n>o));)try{const u=await this.getConfirmedBlockSignatures(n);u.signatures.length>0&&(i.before=u.signatures[u.signatures.length-1].toString())}catch(u){if(u instanceof Error&&u.message.includes("skipped"))continue;throw u}return(await this.getConfirmedSignaturesForAddress2(e,i)).map(u=>u.signature)}async getConfirmedSignaturesForAddress2(e,t,n){const i=this._buildArgsAtLeastConfirmed([e.toBase58()],n,void 0,t),s=await this._rpcRequest("getConfirmedSignaturesForAddress2",i),o=Ae(s,OV);if("error"in o)throw new $e(o.error,"failed to get confirmed signatures for address");return o.result}async getSignaturesForAddress(e,t,n){const i=this._buildArgsAtLeastConfirmed([e.toBase58()],n,void 0,t),s=await this._rpcRequest("getSignaturesForAddress",i),o=Ae(s,NV);if("error"in o)throw new $e(o.error,"failed to get signatures for address");return o.result}async getAddressLookupTable(e,t){const{context:n,value:i}=await this.getAccountInfoAndContext(e,t);let s=null;return i!==null&&(s=new Um({key:e,state:Um.deserialize(i.data)})),{context:n,value:s}}async getNonceAndContext(e,t){const{context:n,value:i}=await this.getAccountInfoAndContext(e,t);let s=null;return i!==null&&(s=N0.fromAccountData(i.data)),{context:n,value:s}}async getNonce(e,t){return await this.getNonceAndContext(e,t).then(n=>n.value).catch(n=>{throw new Error("failed to get nonce for account "+e.toBase58()+": "+n)})}async requestAirdrop(e,t){const n=await this._rpcRequest("requestAirdrop",[e.toBase58(),t]),i=Ae(n,aq);if("error"in i)throw new $e(i.error,`airdrop to ${e.toBase58()} failed`);return i.result}async _blockhashWithExpiryBlockHeight(e){if(!e){for(;this._pollingBlockhash;)await Ta(100);const n=Date.now()-this._blockhashInfo.lastFetch>=wx;if(this._blockhashInfo.latestBlockhash!==null&&!n)return this._blockhashInfo.latestBlockhash}return await this._pollNewBlockhash()}async _pollNewBlockhash(){this._pollingBlockhash=!0;try{const e=Date.now(),t=this._blockhashInfo.latestBlockhash,n=t?t.blockhash:null;for(let i=0;i<50;i++){const s=await this.getLatestBlockhash("finalized");if(n!==s.blockhash)return this._blockhashInfo={latestBlockhash:s,lastFetch:Date.now(),transactionSignatures:[],simulatedSignatures:[]},s;await Ta(lx/2)}throw new Error(`Unable to obtain a new blockhash after ${Date.now()-e}ms`)}finally{this._pollingBlockhash=!1}}async getStakeMinimumDelegation(e){const{commitment:t,config:n}=zt(e),i=this._buildArgs([],t,"base64",n),s=await this._rpcRequest("getStakeMinimumDelegation",i),o=Ae(s,Er(X()));if("error"in o)throw new $e(o.error,"failed to get stake minimum delegation");return o.result}async simulateTransaction(e,t,n){if("message"in e){const S=e.serialize(),x=Ne.from(S).toString("base64");if(Array.isArray(t)||n!==void 0)throw new Error("Invalid arguments");const C=t||{};C.encoding="base64","commitment"in C||(C.commitment=this.commitment),t&&typeof t=="object"&&"innerInstructions"in t&&(C.innerInstructions=t.innerInstructions);const H=[x,C],D=await this._rpcRequest("simulateTransaction",H),z=Ae(D,Ax);if("error"in z)throw new Error("failed to simulate transaction: "+z.error.message);return z.result}let i;if(e instanceof Ot){let I=e;i=new Ot,i.feePayer=I.feePayer,i.instructions=e.instructions,i.nonceInfo=I.nonceInfo,i.signatures=I.signatures}else i=Ot.populate(e),i._message=i._json=void 0;if(t!==void 0&&!Array.isArray(t))throw new Error("Invalid arguments");const s=t;if(i.nonceInfo&&s)i.sign(...s);else{let I=this._disableBlockhashCaching;for(;;){const S=await this._blockhashWithExpiryBlockHeight(I);if(i.lastValidBlockHeight=S.lastValidBlockHeight,i.recentBlockhash=S.blockhash,!s)break;if(i.sign(...s),!i.signature)throw new Error("!signature");const x=i.signature.toString("base64");if(!this._blockhashInfo.simulatedSignatures.includes(x)&&!this._blockhashInfo.transactionSignatures.includes(x)){this._blockhashInfo.simulatedSignatures.push(x);break}else I=!0}}const o=i._compile(),a=o.serialize(),l=i._serialize(a).toString("base64"),h={encoding:"base64",commitment:this.commitment};if(n){const I=(Array.isArray(n)?n:o.nonProgramIds()).map(S=>S.toBase58());h.accounts={encoding:"base64",addresses:I}}s&&(h.sigVerify=!0),t&&typeof t=="object"&&"innerInstructions"in t&&(h.innerInstructions=t.innerInstructions);const g=[l,h],b=await this._rpcRequest("simulateTransaction",g),w=Ae(b,Ax);if("error"in w){let I;if("data"in w.error&&(I=w.error.data.logs,I&&Array.isArray(I))){const S=`
|
|
25
|
-
`,x=S+I.join(S);console.error(w.error.message,x)}throw new _o({action:"simulate",signature:"",transactionMessage:w.error.message,logs:I})}return w.result}async sendTransaction(e,t,n){if("version"in e){if(t&&Array.isArray(t))throw new Error("Invalid arguments");const o=e.serialize();return await this.sendRawTransaction(o,t)}if(t===void 0||!Array.isArray(t))throw new Error("Invalid arguments");const i=t;if(e.nonceInfo)e.sign(...i);else{let o=this._disableBlockhashCaching;for(;;){const a=await this._blockhashWithExpiryBlockHeight(o);if(e.lastValidBlockHeight=a.lastValidBlockHeight,e.recentBlockhash=a.blockhash,e.sign(...i),!e.signature)throw new Error("!signature");const u=e.signature.toString("base64");if(this._blockhashInfo.transactionSignatures.includes(u))o=!0;else{this._blockhashInfo.transactionSignatures.push(u);break}}}const s=e.serialize();return await this.sendRawTransaction(s,n)}async sendRawTransaction(e,t){const n=nt(e).toString("base64");return await this.sendEncodedTransaction(n,t)}async sendEncodedTransaction(e,t){const n={encoding:"base64"},i=t&&t.skipPreflight,s=i===!0?"processed":t&&t.preflightCommitment||this.commitment;t&&t.maxRetries!=null&&(n.maxRetries=t.maxRetries),t&&t.minContextSlot!=null&&(n.minContextSlot=t.minContextSlot),i&&(n.skipPreflight=i),s&&(n.preflightCommitment=s);const o=[e,n],a=await this._rpcRequest("sendTransaction",o),u=Ae(a,cq);if("error"in u){let l;throw"data"in u.error&&(l=u.error.data.logs),new _o({action:i?"send":"simulate",signature:"",transactionMessage:u.error.message,logs:l})}return u.result}_wsOnOpen(){this._rpcWebSocketConnected=!0,this._rpcWebSocketHeartbeat=setInterval(()=>{(async()=>{try{await this._rpcWebSocket.notify("ping")}catch{}})()},5e3),this._updateSubscriptions()}_wsOnError(e){this._rpcWebSocketConnected=!1,console.error("ws error:",e.message)}_wsOnClose(e){if(this._rpcWebSocketConnected=!1,this._rpcWebSocketGeneration=(this._rpcWebSocketGeneration+1)%Number.MAX_SAFE_INTEGER,this._rpcWebSocketIdleTimeout&&(clearTimeout(this._rpcWebSocketIdleTimeout),this._rpcWebSocketIdleTimeout=null),this._rpcWebSocketHeartbeat&&(clearInterval(this._rpcWebSocketHeartbeat),this._rpcWebSocketHeartbeat=null),e===1e3){this._updateSubscriptions();return}this._subscriptionCallbacksByServerSubscriptionId={},Object.entries(this._subscriptionsByHash).forEach(([t,n])=>{this._setSubscription(t,{...n,state:"pending"})})}_setSubscription(e,t){var i;const n=(i=this._subscriptionsByHash[e])==null?void 0:i.state;if(this._subscriptionsByHash[e]=t,n!==t.state){const s=this._subscriptionStateChangeCallbacksByHash[e];s&&s.forEach(o=>{try{o(t.state)}catch{}})}}_onSubscriptionStateChange(e,t){var s;const n=this._subscriptionHashByClientSubscriptionId[e];if(n==null)return()=>{};const i=(s=this._subscriptionStateChangeCallbacksByHash)[n]||(s[n]=new Set);return i.add(t),()=>{i.delete(t),i.size===0&&delete this._subscriptionStateChangeCallbacksByHash[n]}}async _updateSubscriptions(){if(Object.keys(this._subscriptionsByHash).length===0){this._rpcWebSocketConnected&&(this._rpcWebSocketConnected=!1,this._rpcWebSocketIdleTimeout=setTimeout(()=>{this._rpcWebSocketIdleTimeout=null;try{this._rpcWebSocket.close()}catch(n){n instanceof Error&&console.log(`Error when closing socket connection: ${n.message}`)}},500));return}if(this._rpcWebSocketIdleTimeout!==null&&(clearTimeout(this._rpcWebSocketIdleTimeout),this._rpcWebSocketIdleTimeout=null,this._rpcWebSocketConnected=!0),!this._rpcWebSocketConnected){this._rpcWebSocket.connect();return}const e=this._rpcWebSocketGeneration,t=()=>e===this._rpcWebSocketGeneration;await Promise.all(Object.keys(this._subscriptionsByHash).map(async n=>{const i=this._subscriptionsByHash[n];if(i!==void 0)switch(i.state){case"pending":case"unsubscribed":if(i.callbacks.size===0){delete this._subscriptionsByHash[n],i.state==="unsubscribed"&&delete this._subscriptionCallbacksByServerSubscriptionId[i.serverSubscriptionId],await this._updateSubscriptions();return}await(async()=>{const{args:s,method:o}=i;try{this._setSubscription(n,{...i,state:"subscribing"});const a=await this._rpcWebSocket.call(o,s);this._setSubscription(n,{...i,serverSubscriptionId:a,state:"subscribed"}),this._subscriptionCallbacksByServerSubscriptionId[a]=i.callbacks,await this._updateSubscriptions()}catch(a){if(console.error(`Received ${a instanceof Error?"":"JSON-RPC "}error calling \`${o}\``,{args:s,error:a}),!t())return;this._setSubscription(n,{...i,state:"pending"}),await this._updateSubscriptions()}})();break;case"subscribed":i.callbacks.size===0&&await(async()=>{const{serverSubscriptionId:s,unsubscribeMethod:o}=i;if(this._subscriptionsAutoDisposedByRpc.has(s))this._subscriptionsAutoDisposedByRpc.delete(s);else{this._setSubscription(n,{...i,state:"unsubscribing"}),this._setSubscription(n,{...i,state:"unsubscribing"});try{await this._rpcWebSocket.call(o,[s])}catch(a){if(a instanceof Error&&console.error(`${o} error:`,a.message),!t())return;this._setSubscription(n,{...i,state:"subscribed"}),await this._updateSubscriptions();return}}this._setSubscription(n,{...i,state:"unsubscribed"}),await this._updateSubscriptions()})();break}}))}_handleServerNotification(e,t){const n=this._subscriptionCallbacksByServerSubscriptionId[e];n!==void 0&&n.forEach(i=>{try{i(...t)}catch(s){console.error(s)}})}_wsOnAccountNotification(e){const{result:t,subscription:n}=Ae(e,CV);this._handleServerNotification(n,[t.value,t.context])}_makeSubscription(e,t){const n=this._nextClientSubscriptionId++,i=px([e.method,t]),s=this._subscriptionsByHash[i];return s===void 0?this._subscriptionsByHash[i]={...e,args:t,callbacks:new Set([e.callback]),state:"pending"}:s.callbacks.add(e.callback),this._subscriptionHashByClientSubscriptionId[n]=i,this._subscriptionDisposeFunctionsByClientSubscriptionId[n]=async()=>{delete this._subscriptionDisposeFunctionsByClientSubscriptionId[n],delete this._subscriptionHashByClientSubscriptionId[n];const o=this._subscriptionsByHash[i];vt(o!==void 0,`Could not find a \`Subscription\` when tearing down client subscription #${n}`),o.callbacks.delete(e.callback),await this._updateSubscriptions()},this._updateSubscriptions(),n}onAccountChange(e,t,n){const{commitment:i,config:s}=zt(n),o=this._buildArgs([e.toBase58()],i||this._commitment||"finalized","base64",s);return this._makeSubscription({callback:t,method:"accountSubscribe",unsubscribeMethod:"accountUnsubscribe"},o)}async removeAccountChangeListener(e){await this._unsubscribeClientSubscription(e,"account change")}_wsOnProgramAccountNotification(e){const{result:t,subscription:n}=Ae(e,PV);this._handleServerNotification(n,[{accountId:t.value.pubkey,accountInfo:t.value.account},t.context])}onProgramAccountChange(e,t,n,i){const{commitment:s,config:o}=zt(n),a=this._buildArgs([e.toBase58()],s||this._commitment||"finalized","base64",o||(i?{filters:bx(i)}:void 0));return this._makeSubscription({callback:t,method:"programSubscribe",unsubscribeMethod:"programUnsubscribe"},a)}async removeProgramAccountChangeListener(e){await this._unsubscribeClientSubscription(e,"program account change")}onLogs(e,t,n){const i=this._buildArgs([typeof e=="object"?{mentions:[e.toString()]}:e],n||this._commitment||"finalized");return this._makeSubscription({callback:t,method:"logsSubscribe",unsubscribeMethod:"logsUnsubscribe"},i)}async removeOnLogsListener(e){await this._unsubscribeClientSubscription(e,"logs")}_wsOnLogsNotification(e){const{result:t,subscription:n}=Ae(e,lq);this._handleServerNotification(n,[t.value,t.context])}_wsOnSlotNotification(e){const{result:t,subscription:n}=Ae(e,LV);this._handleServerNotification(n,[t])}onSlotChange(e){return this._makeSubscription({callback:e,method:"slotSubscribe",unsubscribeMethod:"slotUnsubscribe"},[])}async removeSlotChangeListener(e){await this._unsubscribeClientSubscription(e,"slot change")}_wsOnSlotUpdatesNotification(e){const{result:t,subscription:n}=Ae(e,DV);this._handleServerNotification(n,[t])}onSlotUpdate(e){return this._makeSubscription({callback:e,method:"slotsUpdatesSubscribe",unsubscribeMethod:"slotsUpdatesUnsubscribe"},[])}async removeSlotUpdateListener(e){await this._unsubscribeClientSubscription(e,"slot update")}async _unsubscribeClientSubscription(e,t){const n=this._subscriptionDisposeFunctionsByClientSubscriptionId[e];n?await n():console.warn(`Ignored unsubscribe request because an active subscription with id \`${e}\` for '${t}' events could not be found.`)}_buildArgs(e,t,n,i){const s=t||this._commitment;if(s||n||i){let o={};n&&(o.encoding=n),s&&(o.commitment=s),i&&(o=Object.assign(o,i)),e.push(o)}return e}_buildArgsAtLeastConfirmed(e,t,n,i){const s=t||this._commitment;if(s&&!["confirmed","finalized"].includes(s))throw new Error("Using Connection with default commitment: `"+this._commitment+"`, but method requires at least `confirmed`");return this._buildArgs(e,t,n,i)}_wsOnSignatureNotification(e){const{result:t,subscription:n}=Ae(e,$V);t.value!=="receivedSignature"&&this._subscriptionsAutoDisposedByRpc.add(n),this._handleServerNotification(n,t.value==="receivedSignature"?[{type:"received"},t.context]:[{type:"status",result:t.value},t.context])}onSignature(e,t,n){const i=this._buildArgs([e],n||this._commitment||"finalized"),s=this._makeSubscription({callback:(o,a)=>{if(o.type==="status"){t(o.result,a);try{this.removeSignatureListener(s)}catch{}}},method:"signatureSubscribe",unsubscribeMethod:"signatureUnsubscribe"},i);return s}onSignatureWithOptions(e,t,n){const{commitment:i,...s}={...n,commitment:n&&n.commitment||this._commitment||"finalized"},o=this._buildArgs([e],i,void 0,s),a=this._makeSubscription({callback:(u,l)=>{t(u,l);try{this.removeSignatureListener(a)}catch{}},method:"signatureSubscribe",unsubscribeMethod:"signatureUnsubscribe"},o);return a}async removeSignatureListener(e){await this._unsubscribeClientSubscription(e,"signature result")}_wsOnRootNotification(e){const{result:t,subscription:n}=Ae(e,FV);this._handleServerNotification(n,[t])}onRootChange(e){return this._makeSubscription({callback:e,method:"rootSubscribe",unsubscribeMethod:"rootUnsubscribe"},[])}async removeRootChangeListener(e){await this._unsubscribeClientSubscription(e,"root change")}}class Ba{constructor(e){this._keypair=void 0,this._keypair=e??nx()}static generate(){return new Ba(nx())}static fromSecretKey(e,t){if(e.byteLength!==64)throw new Error("bad secret key size");const n=e.slice(32,64);if(!t||!t.skipValidation){const i=e.slice(0,32),s=I0(i);for(let o=0;o<32;o++)if(n[o]!==s[o])throw new Error("provided secretKey is invalid")}return new Ba({publicKey:n,secretKey:e})}static fromSeed(e){const t=I0(e),n=new Uint8Array(64);return n.set(e),n.set(t,32),new Ba({publicKey:t,secretKey:n})}get publicKey(){return new me(this._keypair.publicKey)}get secretKey(){return new Uint8Array(this._keypair.secretKey)}}const Ts=Object.freeze({CreateLookupTable:{index:0,layout:Me([Pe("instruction"),hu("recentSlot"),bt("bumpSeed")])},FreezeLookupTable:{index:1,layout:Me([Pe("instruction")])},ExtendLookupTable:{index:2,layout:Me([Pe("instruction"),hu(),Vr(lt(),mo(Pe(),-8),"addresses")])},DeactivateLookupTable:{index:3,layout:Me([Pe("instruction")])},CloseLookupTable:{index:4,layout:Me([Pe("instruction")])}});class hq{constructor(){}static decodeInstructionType(e){this.checkProgramId(e.programId);const n=Pe("instruction").decode(e.data);let i;for(const[s,o]of Object.entries(Ts))if(o.index==n){i=s;break}if(!i)throw new Error("Invalid Instruction. Should be a LookupTable Instruction");return i}static decodeCreateLookupTable(e){this.checkProgramId(e.programId),this.checkKeysLength(e.keys,4);const{recentSlot:t}=kt(Ts.CreateLookupTable,e.data);return{authority:e.keys[1].pubkey,payer:e.keys[2].pubkey,recentSlot:Number(t)}}static decodeExtendLookupTable(e){if(this.checkProgramId(e.programId),e.keys.length<2)throw new Error(`invalid instruction; found ${e.keys.length} keys, expected at least 2`);const{addresses:t}=kt(Ts.ExtendLookupTable,e.data);return{lookupTable:e.keys[0].pubkey,authority:e.keys[1].pubkey,payer:e.keys.length>2?e.keys[2].pubkey:void 0,addresses:t.map(n=>new me(n))}}static decodeCloseLookupTable(e){return this.checkProgramId(e.programId),this.checkKeysLength(e.keys,3),{lookupTable:e.keys[0].pubkey,authority:e.keys[1].pubkey,recipient:e.keys[2].pubkey}}static decodeFreezeLookupTable(e){return this.checkProgramId(e.programId),this.checkKeysLength(e.keys,2),{lookupTable:e.keys[0].pubkey,authority:e.keys[1].pubkey}}static decodeDeactivateLookupTable(e){return this.checkProgramId(e.programId),this.checkKeysLength(e.keys,2),{lookupTable:e.keys[0].pubkey,authority:e.keys[1].pubkey}}static checkProgramId(e){if(!e.equals(Wm.programId))throw new Error("invalid instruction; programId is not AddressLookupTable Program")}static checkKeysLength(e,t){if(e.length<t)throw new Error(`invalid instruction; found ${e.length} keys, expected at least ${t}`)}}class Wm{constructor(){}static createLookupTable(e){const[t,n]=me.findProgramAddressSync([e.authority.toBuffer(),N2(BigInt(e.recentSlot),8)],this.programId),i=Ts.CreateLookupTable,s=yt(i,{recentSlot:BigInt(e.recentSlot),bumpSeed:n}),o=[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1},{pubkey:e.payer,isSigner:!0,isWritable:!0},{pubkey:Br.programId,isSigner:!1,isWritable:!1}];return[new Pt({programId:this.programId,keys:o,data:s}),t]}static freezeLookupTable(e){const t=Ts.FreezeLookupTable,n=yt(t),i=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1}];return new Pt({programId:this.programId,keys:i,data:n})}static extendLookupTable(e){const t=Ts.ExtendLookupTable,n=yt(t,{addresses:e.addresses.map(s=>s.toBytes())}),i=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1}];return e.payer&&i.push({pubkey:e.payer,isSigner:!0,isWritable:!0},{pubkey:Br.programId,isSigner:!1,isWritable:!1}),new Pt({programId:this.programId,keys:i,data:n})}static deactivateLookupTable(e){const t=Ts.DeactivateLookupTable,n=yt(t),i=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1}];return new Pt({programId:this.programId,keys:i,data:n})}static closeLookupTable(e){const t=Ts.CloseLookupTable,n=yt(t),i=[{pubkey:e.lookupTable,isSigner:!1,isWritable:!0},{pubkey:e.authority,isSigner:!0,isWritable:!1},{pubkey:e.recipient,isSigner:!1,isWritable:!0}];return new Pt({programId:this.programId,keys:i,data:n})}}Wm.programId=new me("AddressLookupTab1e1111111111111111111111111");class dq{constructor(){}static decodeInstructionType(e){this.checkProgramId(e.programId);const n=bt("instruction").decode(e.data);let i;for(const[s,o]of Object.entries(Qi))if(o.index==n){i=s;break}if(!i)throw new Error("Instruction type incorrect; not a ComputeBudgetInstruction");return i}static decodeRequestUnits(e){this.checkProgramId(e.programId);const{units:t,additionalFee:n}=kt(Qi.RequestUnits,e.data);return{units:t,additionalFee:n}}static decodeRequestHeapFrame(e){this.checkProgramId(e.programId);const{bytes:t}=kt(Qi.RequestHeapFrame,e.data);return{bytes:t}}static decodeSetComputeUnitLimit(e){this.checkProgramId(e.programId);const{units:t}=kt(Qi.SetComputeUnitLimit,e.data);return{units:t}}static decodeSetComputeUnitPrice(e){this.checkProgramId(e.programId);const{microLamports:t}=kt(Qi.SetComputeUnitPrice,e.data);return{microLamports:t}}static checkProgramId(e){if(!e.equals(Vm.programId))throw new Error("invalid instruction; programId is not ComputeBudgetProgram")}}const Qi=Object.freeze({RequestUnits:{index:0,layout:Me([bt("instruction"),Pe("units"),Pe("additionalFee")])},RequestHeapFrame:{index:1,layout:Me([bt("instruction"),Pe("bytes")])},SetComputeUnitLimit:{index:2,layout:Me([bt("instruction"),Pe("units")])},SetComputeUnitPrice:{index:3,layout:Me([bt("instruction"),hu("microLamports")])}});class Vm{constructor(){}static requestUnits(e){const t=Qi.RequestUnits,n=yt(t,e);return new Pt({keys:[],programId:this.programId,data:n})}static requestHeapFrame(e){const t=Qi.RequestHeapFrame,n=yt(t,e);return new Pt({keys:[],programId:this.programId,data:n})}static setComputeUnitLimit(e){const t=Qi.SetComputeUnitLimit,n=yt(t,e);return new Pt({keys:[],programId:this.programId,data:n})}static setComputeUnitPrice(e){const t=Qi.SetComputeUnitPrice,n=yt(t,{microLamports:BigInt(e.microLamports)});return new Pt({keys:[],programId:this.programId,data:n})}}Vm.programId=new me("ComputeBudget111111111111111111111111111111");const Bx=64,Px=32,Mx=64,Lx=Me([bt("numSignatures"),bt("padding"),ii("signatureOffset"),ii("signatureInstructionIndex"),ii("publicKeyOffset"),ii("publicKeyInstructionIndex"),ii("messageDataOffset"),ii("messageDataSize"),ii("messageInstructionIndex")]);class L0{constructor(){}static createInstructionWithPublicKey(e){const{publicKey:t,message:n,signature:i,instructionIndex:s}=e;vt(t.length===Px,`Public Key must be ${Px} bytes but received ${t.length} bytes`),vt(i.length===Mx,`Signature must be ${Mx} bytes but received ${i.length} bytes`);const o=Lx.span,a=o+t.length,u=a+i.length,l=1,h=Ne.alloc(u+n.length),g=s??65535;return Lx.encode({numSignatures:l,padding:0,signatureOffset:a,signatureInstructionIndex:g,publicKeyOffset:o,publicKeyInstructionIndex:g,messageDataOffset:u,messageDataSize:n.length,messageInstructionIndex:g},h),h.fill(t,o),h.fill(i,a),h.fill(n,u),new Pt({keys:[],programId:L0.programId,data:h})}static createInstructionWithPrivateKey(e){const{privateKey:t,message:n,instructionIndex:i}=e;vt(t.length===Bx,`Private key must be ${Bx} bytes but received ${t.length} bytes`);try{const s=Ba.fromSecretKey(t),o=s.publicKey.toBytes(),a=Im(n,s.secretKey);return this.createInstructionWithPublicKey({publicKey:o,message:n,signature:a,instructionIndex:i})}catch(s){throw new Error(`Error creating instruction; ${s}`)}}}L0.programId=new me("Ed25519SigVerify111111111111111111111111111");const pq=(r,e)=>{const t=R0.sign(r,e);return[t.toCompactRawBytes(),t.recovery]};R0.utils.isValidPrivateKey;const gq=R0.getPublicKey,Ux=32,qm=20,Dx=64,yq=11,Zm=Me([bt("numSignatures"),ii("signatureOffset"),bt("signatureInstructionIndex"),ii("ethAddressOffset"),bt("ethAddressInstructionIndex"),ii("messageDataOffset"),ii("messageDataSize"),bt("messageInstructionIndex"),Vt(20,"ethAddress"),Vt(64,"signature"),bt("recoveryId")]);class pu{constructor(){}static publicKeyToEthAddress(e){vt(e.length===Dx,`Public key must be ${Dx} bytes but received ${e.length} bytes`);try{return Ne.from(Z2(nt(e))).slice(-qm)}catch(t){throw new Error(`Error constructing Ethereum address: ${t}`)}}static createInstructionWithPublicKey(e){const{publicKey:t,message:n,signature:i,recoveryId:s,instructionIndex:o}=e;return pu.createInstructionWithEthAddress({ethAddress:pu.publicKeyToEthAddress(t),message:n,signature:i,recoveryId:s,instructionIndex:o})}static createInstructionWithEthAddress(e){const{ethAddress:t,message:n,signature:i,recoveryId:s,instructionIndex:o=0}=e;let a;typeof t=="string"?t.startsWith("0x")?a=Ne.from(t.substr(2),"hex"):a=Ne.from(t,"hex"):a=t,vt(a.length===qm,`Address must be ${qm} bytes but received ${a.length} bytes`);const u=1+yq,l=u,h=u+a.length,g=h+i.length+1,b=1,w=Ne.alloc(Zm.span+n.length);return Zm.encode({numSignatures:b,signatureOffset:h,signatureInstructionIndex:o,ethAddressOffset:l,ethAddressInstructionIndex:o,messageDataOffset:g,messageDataSize:n.length,messageInstructionIndex:o,signature:nt(i),ethAddress:nt(a),recoveryId:s},w),w.fill(nt(n),Zm.span),new Pt({keys:[],programId:pu.programId,data:w})}static createInstructionWithPrivateKey(e){const{privateKey:t,message:n,instructionIndex:i}=e;vt(t.length===Ux,`Private key must be ${Ux} bytes but received ${t.length} bytes`);try{const s=nt(t),o=gq(s,!1).slice(1),a=Ne.from(Z2(nt(n))),[u,l]=pq(a,s);return this.createInstructionWithPublicKey({publicKey:o,message:n,signature:u,recoveryId:l,instructionIndex:i})}catch(s){throw new Error(`Error creating instruction; ${s}`)}}}pu.programId=new me("KeccakSecp256k11111111111111111111111111111");var $x;const Fx=new me("StakeConfig11111111111111111111111111111111");class Hx{constructor(e,t){this.staker=void 0,this.withdrawer=void 0,this.staker=e,this.withdrawer=t}}class Uf{constructor(e,t,n){this.unixTimestamp=void 0,this.epoch=void 0,this.custodian=void 0,this.unixTimestamp=e,this.epoch=t,this.custodian=n}}$x=Uf,Uf.default=new $x(0,0,me.default);class mq{constructor(){}static decodeInstructionType(e){this.checkProgramId(e.programId);const n=Pe("instruction").decode(e.data);let i;for(const[s,o]of Object.entries(Ur))if(o.index==n){i=s;break}if(!i)throw new Error("Instruction type incorrect; not a StakeInstruction");return i}static decodeInitialize(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,2);const{authorized:t,lockup:n}=kt(Ur.Initialize,e.data);return{stakePubkey:e.keys[0].pubkey,authorized:new Hx(new me(t.staker),new me(t.withdrawer)),lockup:new Uf(n.unixTimestamp,n.epoch,new me(n.custodian))}}static decodeDelegate(e){return this.checkProgramId(e.programId),this.checkKeyLength(e.keys,6),kt(Ur.Delegate,e.data),{stakePubkey:e.keys[0].pubkey,votePubkey:e.keys[1].pubkey,authorizedPubkey:e.keys[5].pubkey}}static decodeAuthorize(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{newAuthorized:t,stakeAuthorizationType:n}=kt(Ur.Authorize,e.data),i={stakePubkey:e.keys[0].pubkey,authorizedPubkey:e.keys[2].pubkey,newAuthorizedPubkey:new me(t),stakeAuthorizationType:{index:n}};return e.keys.length>3&&(i.custodianPubkey=e.keys[3].pubkey),i}static decodeAuthorizeWithSeed(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,2);const{newAuthorized:t,stakeAuthorizationType:n,authoritySeed:i,authorityOwner:s}=kt(Ur.AuthorizeWithSeed,e.data),o={stakePubkey:e.keys[0].pubkey,authorityBase:e.keys[1].pubkey,authoritySeed:i,authorityOwner:new me(s),newAuthorizedPubkey:new me(t),stakeAuthorizationType:{index:n}};return e.keys.length>3&&(o.custodianPubkey=e.keys[3].pubkey),o}static decodeSplit(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{lamports:t}=kt(Ur.Split,e.data);return{stakePubkey:e.keys[0].pubkey,splitStakePubkey:e.keys[1].pubkey,authorizedPubkey:e.keys[2].pubkey,lamports:t}}static decodeMerge(e){return this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3),kt(Ur.Merge,e.data),{stakePubkey:e.keys[0].pubkey,sourceStakePubKey:e.keys[1].pubkey,authorizedPubkey:e.keys[4].pubkey}}static decodeWithdraw(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,5);const{lamports:t}=kt(Ur.Withdraw,e.data),n={stakePubkey:e.keys[0].pubkey,toPubkey:e.keys[1].pubkey,authorizedPubkey:e.keys[4].pubkey,lamports:t};return e.keys.length>5&&(n.custodianPubkey=e.keys[5].pubkey),n}static decodeDeactivate(e){return this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3),kt(Ur.Deactivate,e.data),{stakePubkey:e.keys[0].pubkey,authorizedPubkey:e.keys[2].pubkey}}static checkProgramId(e){if(!e.equals(U0.programId))throw new Error("invalid instruction; programId is not StakeProgram")}static checkKeyLength(e,t){if(e.length<t)throw new Error(`invalid instruction; found ${e.length} keys, expected at least ${t}`)}}const Ur=Object.freeze({Initialize:{index:0,layout:Me([Pe("instruction"),xW(),RW()])},Authorize:{index:1,layout:Me([Pe("instruction"),lt("newAuthorized"),Pe("stakeAuthorizationType")])},Delegate:{index:2,layout:Me([Pe("instruction")])},Split:{index:3,layout:Me([Pe("instruction"),Hn("lamports")])},Withdraw:{index:4,layout:Me([Pe("instruction"),Hn("lamports")])},Deactivate:{index:5,layout:Me([Pe("instruction")])},Merge:{index:7,layout:Me([Pe("instruction")])},AuthorizeWithSeed:{index:8,layout:Me([Pe("instruction"),lt("newAuthorized"),Pe("stakeAuthorizationType"),Sa("authoritySeed"),lt("authorityOwner")])}}),wq=Object.freeze({Staker:{index:0},Withdrawer:{index:1}});class U0{constructor(){}static initialize(e){const{stakePubkey:t,authorized:n,lockup:i}=e,s=i||Uf.default,o=Ur.Initialize,a=yt(o,{authorized:{staker:nt(n.staker.toBuffer()),withdrawer:nt(n.withdrawer.toBuffer())},lockup:{unixTimestamp:s.unixTimestamp,epoch:s.epoch,custodian:nt(s.custodian.toBuffer())}}),u={keys:[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:fu,isSigner:!1,isWritable:!1}],programId:this.programId,data:a};return new Pt(u)}static createAccountWithSeed(e){const t=new Ot;t.add(Br.createAccountWithSeed({fromPubkey:e.fromPubkey,newAccountPubkey:e.stakePubkey,basePubkey:e.basePubkey,seed:e.seed,lamports:e.lamports,space:this.space,programId:this.programId}));const{stakePubkey:n,authorized:i,lockup:s}=e;return t.add(this.initialize({stakePubkey:n,authorized:i,lockup:s}))}static createAccount(e){const t=new Ot;t.add(Br.createAccount({fromPubkey:e.fromPubkey,newAccountPubkey:e.stakePubkey,lamports:e.lamports,space:this.space,programId:this.programId}));const{stakePubkey:n,authorized:i,lockup:s}=e;return t.add(this.initialize({stakePubkey:n,authorized:i,lockup:s}))}static delegate(e){const{stakePubkey:t,authorizedPubkey:n,votePubkey:i}=e,s=Ur.Delegate,o=yt(s);return new Ot().add({keys:[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:Zi,isSigner:!1,isWritable:!1},{pubkey:O0,isSigner:!1,isWritable:!1},{pubkey:Fx,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}],programId:this.programId,data:o})}static authorize(e){const{stakePubkey:t,authorizedPubkey:n,newAuthorizedPubkey:i,stakeAuthorizationType:s,custodianPubkey:o}=e,a=Ur.Authorize,u=yt(a,{newAuthorized:nt(i.toBuffer()),stakeAuthorizationType:s.index}),l=[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:Zi,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!0,isWritable:!1}];return o&&l.push({pubkey:o,isSigner:!0,isWritable:!1}),new Ot().add({keys:l,programId:this.programId,data:u})}static authorizeWithSeed(e){const{stakePubkey:t,authorityBase:n,authoritySeed:i,authorityOwner:s,newAuthorizedPubkey:o,stakeAuthorizationType:a,custodianPubkey:u}=e,l=Ur.AuthorizeWithSeed,h=yt(l,{newAuthorized:nt(o.toBuffer()),stakeAuthorizationType:a.index,authoritySeed:i,authorityOwner:nt(s.toBuffer())}),g=[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!0,isWritable:!1},{pubkey:Zi,isSigner:!1,isWritable:!1}];return u&&g.push({pubkey:u,isSigner:!0,isWritable:!1}),new Ot().add({keys:g,programId:this.programId,data:h})}static splitInstruction(e){const{stakePubkey:t,authorizedPubkey:n,splitStakePubkey:i,lamports:s}=e,o=Ur.Split,a=yt(o,{lamports:s});return new Pt({keys:[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!0,isWritable:!1}],programId:this.programId,data:a})}static split(e,t){const n=new Ot;return n.add(Br.createAccount({fromPubkey:e.authorizedPubkey,newAccountPubkey:e.splitStakePubkey,lamports:t,space:this.space,programId:this.programId})),n.add(this.splitInstruction(e))}static splitWithSeed(e,t){const{stakePubkey:n,authorizedPubkey:i,splitStakePubkey:s,basePubkey:o,seed:a,lamports:u}=e,l=new Ot;return l.add(Br.allocate({accountPubkey:s,basePubkey:o,seed:a,space:this.space,programId:this.programId})),t&&t>0&&l.add(Br.transfer({fromPubkey:e.authorizedPubkey,toPubkey:s,lamports:t})),l.add(this.splitInstruction({stakePubkey:n,authorizedPubkey:i,splitStakePubkey:s,lamports:u}))}static merge(e){const{stakePubkey:t,sourceStakePubKey:n,authorizedPubkey:i}=e,s=Ur.Merge,o=yt(s);return new Ot().add({keys:[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!1,isWritable:!0},{pubkey:Zi,isSigner:!1,isWritable:!1},{pubkey:O0,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!0,isWritable:!1}],programId:this.programId,data:o})}static withdraw(e){const{stakePubkey:t,authorizedPubkey:n,toPubkey:i,lamports:s,custodianPubkey:o}=e,a=Ur.Withdraw,u=yt(a,{lamports:s}),l=[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:Zi,isSigner:!1,isWritable:!1},{pubkey:O0,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}];return o&&l.push({pubkey:o,isSigner:!0,isWritable:!1}),new Ot().add({keys:l,programId:this.programId,data:u})}static deactivate(e){const{stakePubkey:t,authorizedPubkey:n}=e,i=Ur.Deactivate,s=yt(i);return new Ot().add({keys:[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:Zi,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}],programId:this.programId,data:s})}}U0.programId=new me("Stake11111111111111111111111111111111111111"),U0.space=200;class zx{constructor(e,t,n,i){this.nodePubkey=void 0,this.authorizedVoter=void 0,this.authorizedWithdrawer=void 0,this.commission=void 0,this.nodePubkey=e,this.authorizedVoter=t,this.authorizedWithdrawer=n,this.commission=i}}class bq{constructor(){}static decodeInstructionType(e){this.checkProgramId(e.programId);const n=Pe("instruction").decode(e.data);let i;for(const[s,o]of Object.entries(Yi))if(o.index==n){i=s;break}if(!i)throw new Error("Instruction type incorrect; not a VoteInstruction");return i}static decodeInitializeAccount(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,4);const{voteInit:t}=kt(Yi.InitializeAccount,e.data);return{votePubkey:e.keys[0].pubkey,nodePubkey:e.keys[3].pubkey,voteInit:new zx(new me(t.nodePubkey),new me(t.authorizedVoter),new me(t.authorizedWithdrawer),t.commission)}}static decodeAuthorize(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{newAuthorized:t,voteAuthorizationType:n}=kt(Yi.Authorize,e.data);return{votePubkey:e.keys[0].pubkey,authorizedPubkey:e.keys[2].pubkey,newAuthorizedPubkey:new me(t),voteAuthorizationType:{index:n}}}static decodeAuthorizeWithSeed(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{voteAuthorizeWithSeedArgs:{currentAuthorityDerivedKeyOwnerPubkey:t,currentAuthorityDerivedKeySeed:n,newAuthorized:i,voteAuthorizationType:s}}=kt(Yi.AuthorizeWithSeed,e.data);return{currentAuthorityDerivedKeyBasePubkey:e.keys[2].pubkey,currentAuthorityDerivedKeyOwnerPubkey:new me(t),currentAuthorityDerivedKeySeed:n,newAuthorizedPubkey:new me(i),voteAuthorizationType:{index:s},votePubkey:e.keys[0].pubkey}}static decodeWithdraw(e){this.checkProgramId(e.programId),this.checkKeyLength(e.keys,3);const{lamports:t}=kt(Yi.Withdraw,e.data);return{votePubkey:e.keys[0].pubkey,authorizedWithdrawerPubkey:e.keys[2].pubkey,lamports:t,toPubkey:e.keys[1].pubkey}}static checkProgramId(e){if(!e.equals(gu.programId))throw new Error("invalid instruction; programId is not VoteProgram")}static checkKeyLength(e,t){if(e.length<t)throw new Error(`invalid instruction; found ${e.length} keys, expected at least ${t}`)}}const Yi=Object.freeze({InitializeAccount:{index:0,layout:Me([Pe("instruction"),IW()])},Authorize:{index:1,layout:Me([Pe("instruction"),lt("newAuthorized"),Pe("voteAuthorizationType")])},Withdraw:{index:3,layout:Me([Pe("instruction"),Hn("lamports")])},UpdateValidatorIdentity:{index:4,layout:Me([Pe("instruction")])},AuthorizeWithSeed:{index:10,layout:Me([Pe("instruction"),SW()])}}),_q=Object.freeze({Voter:{index:0},Withdrawer:{index:1}});class gu{constructor(){}static initializeAccount(e){const{votePubkey:t,nodePubkey:n,voteInit:i}=e,s=Yi.InitializeAccount,o=yt(s,{voteInit:{nodePubkey:nt(i.nodePubkey.toBuffer()),authorizedVoter:nt(i.authorizedVoter.toBuffer()),authorizedWithdrawer:nt(i.authorizedWithdrawer.toBuffer()),commission:i.commission}}),a={keys:[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:fu,isSigner:!1,isWritable:!1},{pubkey:Zi,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}],programId:this.programId,data:o};return new Pt(a)}static createAccount(e){const t=new Ot;return t.add(Br.createAccount({fromPubkey:e.fromPubkey,newAccountPubkey:e.votePubkey,lamports:e.lamports,space:this.space,programId:this.programId})),t.add(this.initializeAccount({votePubkey:e.votePubkey,nodePubkey:e.voteInit.nodePubkey,voteInit:e.voteInit}))}static authorize(e){const{votePubkey:t,authorizedPubkey:n,newAuthorizedPubkey:i,voteAuthorizationType:s}=e,o=Yi.Authorize,a=yt(o,{newAuthorized:nt(i.toBuffer()),voteAuthorizationType:s.index}),u=[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:Zi,isSigner:!1,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}];return new Ot().add({keys:u,programId:this.programId,data:a})}static authorizeWithSeed(e){const{currentAuthorityDerivedKeyBasePubkey:t,currentAuthorityDerivedKeyOwnerPubkey:n,currentAuthorityDerivedKeySeed:i,newAuthorizedPubkey:s,voteAuthorizationType:o,votePubkey:a}=e,u=Yi.AuthorizeWithSeed,l=yt(u,{voteAuthorizeWithSeedArgs:{currentAuthorityDerivedKeyOwnerPubkey:nt(n.toBuffer()),currentAuthorityDerivedKeySeed:i,newAuthorized:nt(s.toBuffer()),voteAuthorizationType:o.index}}),h=[{pubkey:a,isSigner:!1,isWritable:!0},{pubkey:Zi,isSigner:!1,isWritable:!1},{pubkey:t,isSigner:!0,isWritable:!1}];return new Ot().add({keys:h,programId:this.programId,data:l})}static withdraw(e){const{votePubkey:t,authorizedWithdrawerPubkey:n,lamports:i,toPubkey:s}=e,o=Yi.Withdraw,a=yt(o,{lamports:i}),u=[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:n,isSigner:!0,isWritable:!1}];return new Ot().add({keys:u,programId:this.programId,data:a})}static safeWithdraw(e,t,n){if(e.lamports>t-n)throw new Error("Withdraw will leave vote account with insufficient funds.");return gu.withdraw(e)}static updateValidatorIdentity(e){const{votePubkey:t,authorizedWithdrawerPubkey:n,nodePubkey:i}=e,s=Yi.UpdateValidatorIdentity,o=yt(s),a=[{pubkey:t,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!0,isWritable:!1},{pubkey:n,isSigner:!0,isWritable:!1}];return new Ot().add({keys:a,programId:this.programId,data:o})}}gu.programId=new me("Vote111111111111111111111111111111111111111"),gu.space=3762;const Gx=new me("Va1idator1nfo111111111111111111111111111111"),Aq=pe({name:_e(),website:He(_e()),details:He(_e()),iconUrl:He(_e()),keybaseUsername:He(_e())});class Qm{constructor(e,t){this.key=void 0,this.info=void 0,this.key=e,this.info=t}static fromConfigData(e){let t=[...e];if(Tn(t)!==2)return null;const i=[];for(let s=0;s<2;s++){const o=new me(On(t,0,Vi)),a=qi(t)===1;i.push({publicKey:o,isSigner:a})}if(i[0].publicKey.equals(Gx)&&i[1].isSigner){const s=Sa().decode(Ne.from(t)),o=JSON.parse(s);return B2(o,Aq),new Qm(i[1].publicKey,o)}return null}}const vq=new me("Vote111111111111111111111111111111111111111"),Eq=Me([lt("nodePubkey"),lt("authorizedWithdrawer"),bt("commission"),Wr(),Vr(Me([Wr("slot"),Pe("confirmationCount")]),mo(Pe(),-8),"votes"),bt("rootSlotValid"),Wr("rootSlot"),Wr(),Vr(Me([Wr("epoch"),lt("authorizedVoter")]),mo(Pe(),-8),"authorizedVoters"),Me([Vr(Me([lt("authorizedPubkey"),Wr("epochOfLastAuthorizedSwitch"),Wr("targetEpoch")]),32,"buf"),Wr("idx"),bt("isEmpty")],"priorVoters"),Wr(),Vr(Me([Wr("epoch"),Wr("credits"),Wr("prevCredits")]),mo(Pe(),-8),"epochCredits"),Me([Wr("slot"),Wr("timestamp")],"lastTimestamp")]);class Ym{constructor(e){this.nodePubkey=void 0,this.authorizedWithdrawer=void 0,this.commission=void 0,this.rootSlot=void 0,this.votes=void 0,this.authorizedVoters=void 0,this.priorVoters=void 0,this.epochCredits=void 0,this.lastTimestamp=void 0,this.nodePubkey=e.nodePubkey,this.authorizedWithdrawer=e.authorizedWithdrawer,this.commission=e.commission,this.rootSlot=e.rootSlot,this.votes=e.votes,this.authorizedVoters=e.authorizedVoters,this.priorVoters=e.priorVoters,this.epochCredits=e.epochCredits,this.lastTimestamp=e.lastTimestamp}static fromAccountData(e){const n=Eq.decode(nt(e),4);let i=n.rootSlot;return n.rootSlotValid||(i=null),new Ym({nodePubkey:new me(n.nodePubkey),authorizedWithdrawer:new me(n.authorizedWithdrawer),commission:n.commission,votes:n.votes,rootSlot:i,authorizedVoters:n.authorizedVoters.map(xq),priorVoters:Rq(n.priorVoters),epochCredits:n.epochCredits,lastTimestamp:n.lastTimestamp})}}function xq({authorizedVoter:r,epoch:e}){return{epoch:e,authorizedVoter:new me(r)}}function Kx({authorizedPubkey:r,epochOfLastAuthorizedSwitch:e,targetEpoch:t}){return{authorizedPubkey:new me(r),epochOfLastAuthorizedSwitch:e,targetEpoch:t}}function Rq({buf:r,idx:e,isEmpty:t}){return t?[]:[...r.slice(e+1).map(Kx),...r.slice(0,e).map(Kx)]}const jx={http:{devnet:"http://api.devnet.solana.com",testnet:"http://api.testnet.solana.com","mainnet-beta":"http://api.mainnet-beta.solana.com/"},https:{devnet:"https://api.devnet.solana.com",testnet:"https://api.testnet.solana.com","mainnet-beta":"https://api.mainnet-beta.solana.com/"}};function Iq(r,e){const t=e===!1?"http":"https";if(!r)return jx[t].devnet;const n=jx[t][r];if(!n)throw new Error(`Unknown ${t} cluster: ${r}`);return n}async function Sq(r,e,t,n){let i,s;t&&Object.prototype.hasOwnProperty.call(t,"lastValidBlockHeight")||t&&Object.prototype.hasOwnProperty.call(t,"nonceValue")?(i=t,s=n):s=t;const o=s&&{skipPreflight:s.skipPreflight,preflightCommitment:s.preflightCommitment||s.commitment,minContextSlot:s.minContextSlot},a=await r.sendRawTransaction(e,o),u=s&&s.commitment,h=(await(i?r.confirmTransaction(i,u):r.confirmTransaction(a,u))).value;if(h.err)throw a!=null?new _o({action:o!=null&&o.skipPreflight?"send":"simulate",signature:a,transactionMessage:`Status: (${JSON.stringify(h)})`}):new Error(`Raw transaction ${a} failed (${JSON.stringify(h)})`);return a}const kq=Object.freeze(Object.defineProperty({__proto__:null,Account:AW,AddressLookupTableAccount:Um,AddressLookupTableInstruction:hq,AddressLookupTableProgram:Wm,Authorized:Hx,BLOCKHASH_CACHE_TIMEOUT_MS:wx,BPF_LOADER_DEPRECATED_PROGRAM_ID:vW,BPF_LOADER_PROGRAM_ID:DW,BpfLoader:$W,COMPUTE_BUDGET_INSTRUCTION_LAYOUTS:Qi,ComputeBudgetInstruction:dq,ComputeBudgetProgram:Vm,Connection:Cx,Ed25519Program:L0,Enum:bW,EpochSchedule:gx,FeeCalculatorLayout:fx,Keypair:Ba,LAMPORTS_PER_SOL:1e9,LOOKUP_TABLE_INSTRUCTION_LAYOUTS:Ts,Loader:Oa,Lockup:Uf,MAX_SEED_LENGTH:ox,Message:Ei,MessageAccountKeys:Pf,MessageV0:ka,NONCE_ACCOUNT_LENGTH:Pm,NonceAccount:N0,PACKET_DATA_SIZE:bo,PUBLIC_KEY_LENGTH:Vi,PublicKey:me,SIGNATURE_LENGTH_IN_BYTES:Bf,SOLANA_SCHEMA:Cf,STAKE_CONFIG_ID:Fx,STAKE_INSTRUCTION_LAYOUTS:Ur,SYSTEM_INSTRUCTION_LAYOUTS:Ht,SYSVAR_CLOCK_PUBKEY:Zi,SYSVAR_EPOCH_SCHEDULE_PUBKEY:TW,SYSVAR_INSTRUCTIONS_PUBKEY:OW,SYSVAR_RECENT_BLOCKHASHES_PUBKEY:T0,SYSVAR_RENT_PUBKEY:fu,SYSVAR_REWARDS_PUBKEY:NW,SYSVAR_SLOT_HASHES_PUBKEY:CW,SYSVAR_SLOT_HISTORY_PUBKEY:BW,SYSVAR_STAKE_HISTORY_PUBKEY:O0,Secp256k1Program:pu,SendTransactionError:_o,SolanaJSONRPCError:$e,SolanaJSONRPCErrorCode:PW,StakeAuthorizationLayout:wq,StakeInstruction:mq,StakeProgram:U0,Struct:Sm,SystemInstruction:LW,SystemProgram:Br,Transaction:Ot,TransactionExpiredBlockheightExceededError:km,TransactionExpiredNonceInvalidError:lu,TransactionExpiredTimeoutError:Tm,TransactionInstruction:Pt,TransactionMessage:Nm,TransactionStatus:ks,VALIDATOR_INFO_KEY:Gx,VERSION_PREFIX_MASK:S0,VOTE_PROGRAM_ID:vq,ValidatorInfo:Qm,VersionedMessage:Om,VersionedTransaction:Cm,VoteAccount:Ym,VoteAuthorizationLayout:_q,VoteInit:zx,VoteInstruction:bq,VoteProgram:gu,clusterApiUrl:Iq,sendAndConfirmRawTransaction:Sq,sendAndConfirmTransaction:Bm},Symbol.toStringTag,{value:"Module"}));var Jm={exports:{}};const Tq=/[\p{Lu}]/u,Oq=/[\p{Ll}]/u,Wx=/^[\p{Lu}](?![\p{Lu}])/gu,Vx=/([\p{Alpha}\p{N}_]|$)/u,qx=/[_.\- ]+/,Nq=new RegExp("^"+qx.source),Zx=new RegExp(qx.source+Vx.source,"gu"),Qx=new RegExp("\\d+"+Vx.source,"gu"),Cq=(r,e,t)=>{let n=!1,i=!1,s=!1;for(let o=0;o<r.length;o++){const a=r[o];n&&Tq.test(a)?(r=r.slice(0,o)+"-"+r.slice(o),n=!1,s=i,i=!0,o++):i&&s&&Oq.test(a)?(r=r.slice(0,o-1)+"-"+r.slice(o-1),s=i,i=!1,n=!0):(n=e(a)===a&&t(a)!==a,s=i,i=t(a)===a&&e(a)!==a)}return r},Bq=(r,e)=>(Wx.lastIndex=0,r.replace(Wx,t=>e(t))),Pq=(r,e)=>(Zx.lastIndex=0,Qx.lastIndex=0,r.replace(Zx,(t,n)=>e(n)).replace(Qx,t=>e(t))),Yx=(r,e)=>{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");if(e={pascalCase:!1,preserveConsecutiveUppercase:!1,...e},Array.isArray(r)?r=r.map(s=>s.trim()).filter(s=>s.length).join("-"):r=r.trim(),r.length===0)return"";const t=e.locale===!1?s=>s.toLowerCase():s=>s.toLocaleLowerCase(e.locale),n=e.locale===!1?s=>s.toUpperCase():s=>s.toLocaleUpperCase(e.locale);return r.length===1?e.pascalCase?n(r):t(r):(r!==t(r)&&(r=Cq(r,t,n)),r=r.replace(Nq,""),e.preserveConsecutiveUppercase?r=Bq(r,t):r=t(r),e.pascalCase&&(r=n(r.charAt(0))+r.slice(1)),Pq(r,n))};Jm.exports=Yx,Jm.exports.default=Yx;var Mq=Jm.exports;const Lq=xn(Mq);var Xe={},ke={};let Nt=class{constructor(e,t){if(!Number.isInteger(e))throw new TypeError("span must be an integer");this.span=e,this.property=t}makeDestinationObject(){return{}}decode(e,t){throw new Error("Layout is abstract")}encode(e,t,n){throw new Error("Layout is abstract")}getSpan(e,t){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(e){const t=Object.create(this.constructor.prototype);return Object.assign(t,this),t.property=e,t}fromArray(e){}};ke.Layout=Nt;function Xm(r,e){return e.property?r+"["+e.property+"]":r}ke.nameWithProperty=Xm;function Uq(r,e){if(typeof r!="function")throw new TypeError("Class must be constructor");if(r.hasOwnProperty("layout_"))throw new Error("Class is already bound to a layout");if(!(e&&e instanceof Nt))throw new TypeError("layout must be a Layout");if(e.hasOwnProperty("boundConstructor_"))throw new Error("layout is already bound to a constructor");r.layout_=e,e.boundConstructor_=r,e.makeDestinationObject=()=>new r,Object.defineProperty(r.prototype,"encode",{value:function(t,n){return e.encode(this,t,n)},writable:!0}),Object.defineProperty(r,"decode",{value:function(t,n){return e.decode(t,n)},writable:!0})}ke.bindConstructorLayout=Uq;let Nn=class extends Nt{isCount(){throw new Error("ExternalLayout is abstract")}};class Jx extends Nn{constructor(e,t){if(e===void 0&&(e=1),!Number.isInteger(e)||0>=e)throw new TypeError("elementSpan must be a (positive) integer");super(-1,t),this.elementSpan=e}isCount(){return!0}decode(e,t){t===void 0&&(t=0);const n=e.length-t;return Math.floor(n/this.elementSpan)}encode(e,t,n){return 0}}let e1=class extends Nn{constructor(e,t,n){if(!(e instanceof Nt))throw new TypeError("layout must be a Layout");if(t===void 0)t=0;else if(!Number.isInteger(t))throw new TypeError("offset must be integer or undefined");super(e.span,n||e.property),this.layout=e,this.offset=t}isCount(){return this.layout instanceof Ji||this.layout instanceof Os}decode(e,t){return t===void 0&&(t=0),this.layout.decode(e,t+this.offset)}encode(e,t,n){return n===void 0&&(n=0),this.layout.encode(e,t,n+this.offset)}},Ji=class extends Nt{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return t===void 0&&(t=0),e.readUIntLE(t,this.span)}encode(e,t,n){return n===void 0&&(n=0),t.writeUIntLE(e,n,this.span),this.span}},Os=class extends Nt{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return t===void 0&&(t=0),e.readUIntBE(t,this.span)}encode(e,t,n){return n===void 0&&(n=0),t.writeUIntBE(e,n,this.span),this.span}};class Pa extends Nt{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return t===void 0&&(t=0),e.readIntLE(t,this.span)}encode(e,t,n){return n===void 0&&(n=0),t.writeIntLE(e,n,this.span),this.span}}class yu extends Nt{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return t===void 0&&(t=0),e.readIntBE(t,this.span)}encode(e,t,n){return n===void 0&&(n=0),t.writeIntBE(e,n,this.span),this.span}}const t1=Math.pow(2,32);function D0(r){const e=Math.floor(r/t1),t=r-e*t1;return{hi32:e,lo32:t}}function $0(r,e){return r*t1+e}let Dq=class extends Nt{constructor(e){super(8,e)}decode(e,t){t===void 0&&(t=0);const n=e.readUInt32LE(t),i=e.readUInt32LE(t+4);return $0(i,n)}encode(e,t,n){n===void 0&&(n=0);const i=D0(e);return t.writeUInt32LE(i.lo32,n),t.writeUInt32LE(i.hi32,n+4),8}};class $q extends Nt{constructor(e){super(8,e)}decode(e,t){t===void 0&&(t=0);const n=e.readUInt32BE(t),i=e.readUInt32BE(t+4);return $0(n,i)}encode(e,t,n){n===void 0&&(n=0);const i=D0(e);return t.writeUInt32BE(i.hi32,n),t.writeUInt32BE(i.lo32,n+4),8}}let Fq=class extends Nt{constructor(e){super(8,e)}decode(e,t){t===void 0&&(t=0);const n=e.readUInt32LE(t),i=e.readInt32LE(t+4);return $0(i,n)}encode(e,t,n){n===void 0&&(n=0);const i=D0(e);return t.writeUInt32LE(i.lo32,n),t.writeInt32LE(i.hi32,n+4),8}};class Hq extends Nt{constructor(e){super(8,e)}decode(e,t){t===void 0&&(t=0);const n=e.readInt32BE(t),i=e.readUInt32BE(t+4);return $0(n,i)}encode(e,t,n){n===void 0&&(n=0);const i=D0(e);return t.writeInt32BE(i.hi32,n),t.writeUInt32BE(i.lo32,n+4),8}}class Xx extends Nt{constructor(e){super(4,e)}decode(e,t){return t===void 0&&(t=0),e.readFloatLE(t)}encode(e,t,n){return n===void 0&&(n=0),t.writeFloatLE(e,n),4}}class eR extends Nt{constructor(e){super(4,e)}decode(e,t){return t===void 0&&(t=0),e.readFloatBE(t)}encode(e,t,n){return n===void 0&&(n=0),t.writeFloatBE(e,n),4}}class tR extends Nt{constructor(e){super(8,e)}decode(e,t){return t===void 0&&(t=0),e.readDoubleLE(t)}encode(e,t,n){return n===void 0&&(n=0),t.writeDoubleLE(e,n),8}}class rR extends Nt{constructor(e){super(8,e)}decode(e,t){return t===void 0&&(t=0),e.readDoubleBE(t)}encode(e,t,n){return n===void 0&&(n=0),t.writeDoubleBE(e,n),8}}class nR extends Nt{constructor(e,t,n){if(!(e instanceof Nt))throw new TypeError("elementLayout must be a Layout");if(!(t instanceof Nn&&t.isCount()||Number.isInteger(t)&&0<=t))throw new TypeError("count must be non-negative integer or an unsigned integer ExternalLayout");let i=-1;!(t instanceof Nn)&&0<e.span&&(i=t*e.span),super(i,n),this.elementLayout=e,this.count=t}getSpan(e,t){if(0<=this.span)return this.span;t===void 0&&(t=0);let n=0,i=this.count;if(i instanceof Nn&&(i=i.decode(e,t)),0<this.elementLayout.span)n=i*this.elementLayout.span;else{let s=0;for(;s<i;)n+=this.elementLayout.getSpan(e,t+n),++s}return n}decode(e,t){t===void 0&&(t=0);const n=[];let i=0,s=this.count;for(s instanceof Nn&&(s=s.decode(e,t));i<s;)n.push(this.elementLayout.decode(e,t)),t+=this.elementLayout.getSpan(e,t),i+=1;return n}encode(e,t,n){n===void 0&&(n=0);const i=this.elementLayout,s=e.reduce((o,a)=>o+i.encode(a,t,n+o),0);return this.count instanceof Nn&&this.count.encode(e.length,t,n),s}}let iR=class extends Nt{constructor(e,t,n){if(!(Array.isArray(e)&&e.reduce((s,o)=>s&&o instanceof Nt,!0)))throw new TypeError("fields must be array of Layout instances");typeof t=="boolean"&&n===void 0&&(n=t,t=void 0);for(const s of e)if(0>s.span&&s.property===void 0)throw new Error("fields cannot contain unnamed variable-length layout");let i=-1;try{i=e.reduce((s,o)=>s+o.getSpan(),0)}catch{}super(i,t),this.fields=e,this.decodePrefixes=!!n}getSpan(e,t){if(0<=this.span)return this.span;t===void 0&&(t=0);let n=0;try{n=this.fields.reduce((i,s)=>{const o=s.getSpan(e,t);return t+=o,i+o},0)}catch{throw new RangeError("indeterminate span")}return n}decode(e,t){t===void 0&&(t=0);const n=this.makeDestinationObject();for(const i of this.fields)if(i.property!==void 0&&(n[i.property]=i.decode(e,t)),t+=i.getSpan(e,t),this.decodePrefixes&&e.length===t)break;return n}encode(e,t,n){n===void 0&&(n=0);const i=n;let s=0,o=0;for(const a of this.fields){let u=a.span;if(o=0<u?u:0,a.property!==void 0){const l=e[a.property];l!==void 0&&(o=a.encode(l,t,n),0>u&&(u=a.getSpan(t,n)))}s=n,n+=u}return s+o-i}fromArray(e){const t=this.makeDestinationObject();for(const n of this.fields)n.property!==void 0&&0<e.length&&(t[n.property]=e.shift());return t}layoutFor(e){if(typeof e!="string")throw new TypeError("property must be string");for(const t of this.fields)if(t.property===e)return t}offsetOf(e){if(typeof e!="string")throw new TypeError("property must be string");let t=0;for(const n of this.fields){if(n.property===e)return t;0>n.span?t=-1:0<=t&&(t+=n.span)}}},r1=class{constructor(e){this.property=e}decode(){throw new Error("UnionDiscriminator is abstract")}encode(){throw new Error("UnionDiscriminator is abstract")}},F0=class extends r1{constructor(e,t){if(!(e instanceof Nn&&e.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(t||e.property||"variant"),this.layout=e}decode(e,t){return this.layout.decode(e,t)}encode(e,t,n){return this.layout.encode(e,t,n)}},n1=class extends Nt{constructor(e,t,n){const i=e instanceof Ji||e instanceof Os;if(i)e=new F0(new e1(e));else if(e instanceof Nn&&e.isCount())e=new F0(e);else if(!(e instanceof r1))throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(t===void 0&&(t=null),!(t===null||t instanceof Nt))throw new TypeError("defaultLayout must be null or a Layout");if(t!==null){if(0>t.span)throw new Error("defaultLayout must have constant span");t.property===void 0&&(t=t.replicate("content"))}let s=-1;t&&(s=t.span,0<=s&&i&&(s+=e.layout.span)),super(s,n),this.discriminator=e,this.usesPrefixDiscriminator=i,this.defaultLayout=t,this.registry={};let o=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(a){return o(a)},this.configGetSourceVariant=function(a){o=a.bind(this)}}getSpan(e,t){if(0<=this.span)return this.span;t===void 0&&(t=0);const n=this.getVariant(e,t);if(!n)throw new Error("unable to determine span for unrecognized variant");return n.getSpan(e,t)}defaultGetSourceVariant(e){if(e.hasOwnProperty(this.discriminator.property)){if(this.defaultLayout&&e.hasOwnProperty(this.defaultLayout.property))return;const t=this.registry[e[this.discriminator.property]];if(t&&(!t.layout||e.hasOwnProperty(t.property)))return t}else for(const t in this.registry){const n=this.registry[t];if(e.hasOwnProperty(n.property))return n}throw new Error("unable to infer src variant")}decode(e,t){t===void 0&&(t=0);let n;const i=this.discriminator,s=i.decode(e,t);let o=this.registry[s];if(o===void 0){let a=0;o=this.defaultLayout,this.usesPrefixDiscriminator&&(a=i.layout.span),n=this.makeDestinationObject(),n[i.property]=s,n[o.property]=this.defaultLayout.decode(e,t+a)}else n=o.decode(e,t);return n}encode(e,t,n){n===void 0&&(n=0);const i=this.getSourceVariant(e);if(i===void 0){const s=this.discriminator,o=this.defaultLayout;let a=0;return this.usesPrefixDiscriminator&&(a=s.layout.span),s.encode(e[s.property],t,n),a+o.encode(e[o.property],t,n+a)}return i.encode(e,t,n)}addVariant(e,t,n){const i=new sR(this,e,t,n);return this.registry[e]=i,i}getVariant(e,t){let n=e;return Ze.isBuffer(e)&&(t===void 0&&(t=0),n=this.discriminator.decode(e,t)),this.registry[n]}},sR=class extends Nt{constructor(e,t,n,i){if(!(e instanceof n1))throw new TypeError("union must be a Union");if(!Number.isInteger(t)||0>t)throw new TypeError("variant must be a (non-negative) integer");if(typeof n=="string"&&i===void 0&&(i=n,n=null),n){if(!(n instanceof Nt))throw new TypeError("layout must be a Layout");if(e.defaultLayout!==null&&0<=n.span&&n.span>e.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if(typeof i!="string")throw new TypeError("variant must have a String property")}let s=e.span;0>e.span&&(s=n?n.span:0,0<=s&&e.usesPrefixDiscriminator&&(s+=e.discriminator.layout.span)),super(s,i),this.union=e,this.variant=t,this.layout=n||null}getSpan(e,t){if(0<=this.span)return this.span;t===void 0&&(t=0);let n=0;return this.union.usesPrefixDiscriminator&&(n=this.union.discriminator.layout.span),n+this.layout.getSpan(e,t+n)}decode(e,t){const n=this.makeDestinationObject();if(t===void 0&&(t=0),this!==this.union.getVariant(e,t))throw new Error("variant mismatch");let i=0;return this.union.usesPrefixDiscriminator&&(i=this.union.discriminator.layout.span),this.layout?n[this.property]=this.layout.decode(e,t+i):this.property?n[this.property]=!0:this.union.usesPrefixDiscriminator&&(n[this.union.discriminator.property]=this.variant),n}encode(e,t,n){n===void 0&&(n=0);let i=0;if(this.union.usesPrefixDiscriminator&&(i=this.union.discriminator.layout.span),this.layout&&!e.hasOwnProperty(this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,t,n);let s=i;if(this.layout&&(this.layout.encode(e[this.property],t,n+i),s+=this.layout.getSpan(t,n+i),0<=this.union.span&&s>this.union.span))throw new Error("encoded variant overruns containing union");return s}fromArray(e){if(this.layout)return this.layout.fromArray(e)}};function mu(r){return 0>r&&(r+=4294967296),r}class i1 extends Nt{constructor(e,t,n){if(!(e instanceof Ji||e instanceof Os))throw new TypeError("word must be a UInt or UIntBE layout");if(typeof t=="string"&&n===void 0&&(n=t,t=void 0),4<e.span)throw new RangeError("word cannot exceed 32 bits");super(e.span,n),this.word=e,this.msb=!!t,this.fields=[];let i=0;this._packedSetValue=function(s){return i=mu(s),this},this._packedGetValue=function(){return i}}decode(e,t){const n=this.makeDestinationObject();t===void 0&&(t=0);const i=this.word.decode(e,t);this._packedSetValue(i);for(const s of this.fields)s.property!==void 0&&(n[s.property]=s.decode(i));return n}encode(e,t,n){n===void 0&&(n=0);const i=this.word.decode(t,n);this._packedSetValue(i);for(const s of this.fields)if(s.property!==void 0){const o=e[s.property];o!==void 0&&s.encode(o)}return this.word.encode(this._packedGetValue(),t,n)}addField(e,t){const n=new Df(this,e,t);return this.fields.push(n),n}addBoolean(e){const t=new oR(this,e);return this.fields.push(t),t}fieldFor(e){if(typeof e!="string")throw new TypeError("property must be string");for(const t of this.fields)if(t.property===e)return t}}class Df{constructor(e,t,n){if(!(e instanceof i1))throw new TypeError("container must be a BitStructure");if(!Number.isInteger(t)||0>=t)throw new TypeError("bits must be positive integer");const i=8*e.span,s=e.fields.reduce((o,a)=>o+a.bits,0);if(t+s>i)throw new Error("bits too long for span remainder ("+(i-s)+" of "+i+" remain)");this.container=e,this.bits=t,this.valueMask=(1<<t)-1,t===32&&(this.valueMask=4294967295),this.start=s,this.container.msb&&(this.start=i-s-t),this.wordMask=mu(this.valueMask<<this.start),this.property=n}decode(){const e=this.container._packedGetValue();return mu(e&this.wordMask)>>>this.start}encode(e){if(!Number.isInteger(e)||e!==mu(e&this.valueMask))throw new TypeError(Xm("BitField.encode",this)+" value must be integer not exceeding "+this.valueMask);const t=this.container._packedGetValue(),n=mu(e<<this.start);this.container._packedSetValue(mu(t&~this.wordMask)|n)}}let oR=class extends Df{constructor(e,t){super(e,1,t)}decode(e,t){return!!Df.prototype.decode.call(this,e,t)}encode(e){return typeof e=="boolean"&&(e=+e),Df.prototype.encode.call(this,e)}},aR=class extends Nt{constructor(e,t){if(!(e instanceof Nn&&e.isCount()||Number.isInteger(e)&&0<=e))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let n=-1;e instanceof Nn||(n=e),super(n,t),this.length=e}getSpan(e,t){let n=this.span;return 0>n&&(n=this.length.decode(e,t)),n}decode(e,t){t===void 0&&(t=0);let n=this.span;return 0>n&&(n=this.length.decode(e,t)),e.slice(t,t+n)}encode(e,t,n){let i=this.length;if(this.length instanceof Nn&&(i=e.length),!(Ze.isBuffer(e)&&i===e.length))throw new TypeError(Xm("Blob.encode",this)+" requires (length "+i+") Buffer as src");if(n+i>t.length)throw new RangeError("encoding overruns Buffer");return t.write(e.toString("hex"),n,i,"hex"),this.length instanceof Nn&&this.length.encode(i,t,n),i}};class cR extends Nt{constructor(e){super(-1,e)}getSpan(e,t){if(!Ze.isBuffer(e))throw new TypeError("b must be a Buffer");t===void 0&&(t=0);let n=t;for(;n<e.length&&e[n]!==0;)n+=1;return 1+n-t}decode(e,t,n){t===void 0&&(t=0);let i=this.getSpan(e,t);return e.slice(t,t+i-1).toString("utf-8")}encode(e,t,n){n===void 0&&(n=0),typeof e!="string"&&(e=e.toString());const i=new Ze(e,"utf8"),s=i.length;if(n+s>t.length)throw new RangeError("encoding overruns Buffer");return i.copy(t,n),t[n+s]=0,s+1}}class uR extends Nt{constructor(e,t){if(typeof e=="string"&&t===void 0&&(t=e,e=void 0),e===void 0)e=-1;else if(!Number.isInteger(e))throw new TypeError("maxSpan must be an integer");super(-1,t),this.maxSpan=e}getSpan(e,t){if(!Ze.isBuffer(e))throw new TypeError("b must be a Buffer");return t===void 0&&(t=0),e.length-t}decode(e,t,n){t===void 0&&(t=0);let i=this.getSpan(e,t);if(0<=this.maxSpan&&this.maxSpan<i)throw new RangeError("text length exceeds maxSpan");return e.slice(t,t+i).toString("utf-8")}encode(e,t,n){n===void 0&&(n=0),typeof e!="string"&&(e=e.toString());const i=new Ze(e,"utf8"),s=i.length;if(0<=this.maxSpan&&this.maxSpan<s)throw new RangeError("text length exceeds maxSpan");if(n+s>t.length)throw new RangeError("encoding overruns Buffer");return i.copy(t,n),s}}class lR extends Nt{constructor(e,t){super(0,t),this.value=e}decode(e,t,n){return this.value}encode(e,t,n){return 0}}ke.ExternalLayout=Nn,ke.GreedyCount=Jx,ke.OffsetLayout=e1,ke.UInt=Ji,ke.UIntBE=Os,ke.Int=Pa,ke.IntBE=yu,ke.Float=Xx,ke.FloatBE=eR,ke.Double=tR,ke.DoubleBE=rR,ke.Sequence=nR,ke.Structure=iR,ke.UnionDiscriminator=r1,ke.UnionLayoutDiscriminator=F0,ke.Union=n1,ke.VariantLayout=sR,ke.BitStructure=i1,ke.BitField=Df,ke.Boolean=oR,ke.Blob=aR,ke.CString=cR,ke.UTF8=uR,ke.Constant=lR,ke.greedy=(r,e)=>new Jx(r,e),ke.offset=(r,e,t)=>new e1(r,e,t),ke.u8=r=>new Ji(1,r),ke.u16=r=>new Ji(2,r),ke.u24=r=>new Ji(3,r),ke.u32=r=>new Ji(4,r),ke.u40=r=>new Ji(5,r),ke.u48=r=>new Ji(6,r),ke.nu64=r=>new Dq(r),ke.u16be=r=>new Os(2,r),ke.u24be=r=>new Os(3,r),ke.u32be=r=>new Os(4,r),ke.u40be=r=>new Os(5,r),ke.u48be=r=>new Os(6,r),ke.nu64be=r=>new $q(r),ke.s8=r=>new Pa(1,r),ke.s16=r=>new Pa(2,r),ke.s24=r=>new Pa(3,r),ke.s32=r=>new Pa(4,r),ke.s40=r=>new Pa(5,r),ke.s48=r=>new Pa(6,r),ke.ns64=r=>new Fq(r),ke.s16be=r=>new yu(2,r),ke.s24be=r=>new yu(3,r),ke.s32be=r=>new yu(4,r),ke.s40be=r=>new yu(5,r),ke.s48be=r=>new yu(6,r),ke.ns64be=r=>new Hq(r),ke.f32=r=>new Xx(r),ke.f32be=r=>new eR(r),ke.f64=r=>new tR(r),ke.f64be=r=>new rR(r),ke.struct=(r,e,t)=>new iR(r,e,t),ke.bits=(r,e,t)=>new i1(r,e,t),ke.seq=(r,e,t)=>new nR(r,e,t),ke.union=(r,e,t)=>new n1(r,e,t),ke.unionLayoutDiscriminator=(r,e)=>new F0(r,e),ke.blob=(r,e)=>new aR(r,e),ke.cstr=r=>new cR(r),ke.utf8=(r,e)=>new uR(r,e),ke.const=(r,e)=>new lR(r,e);const zq=Lc(kq);(function(r){var e=ut&&ut.__importDefault||function(ue){return ue&&ue.__esModule?ue:{default:ue}};Object.defineProperty(r,"__esModule",{value:!0}),r.struct=r.f64=r.f32=r.i32=r.u32=r.i16=r.u16=r.i8=r.u8=void 0,r.u64=a,r.i64=u,r.u128=l,r.i128=h,r.u256=g,r.i256=b,r.publicKey=I,r.option=x,r.bool=C,r.vec=z,r.tagged=V,r.vecU8=Z,r.str=K,r.rustEnum=W,r.array=oe,r.map=ie;const t=ke,n=zq,i=e($y);var s=ke;Object.defineProperty(r,"u8",{enumerable:!0,get:function(){return s.u8}}),Object.defineProperty(r,"i8",{enumerable:!0,get:function(){return s.s8}}),Object.defineProperty(r,"u16",{enumerable:!0,get:function(){return s.u16}}),Object.defineProperty(r,"i16",{enumerable:!0,get:function(){return s.s16}}),Object.defineProperty(r,"u32",{enumerable:!0,get:function(){return s.u32}}),Object.defineProperty(r,"i32",{enumerable:!0,get:function(){return s.s32}}),Object.defineProperty(r,"f32",{enumerable:!0,get:function(){return s.f32}}),Object.defineProperty(r,"f64",{enumerable:!0,get:function(){return s.f64}}),Object.defineProperty(r,"struct",{enumerable:!0,get:function(){return s.struct}});class o extends t.Layout{constructor(B,p,m){super(B,m),this.blob=(0,t.blob)(B),this.signed=p}decode(B,p=0){const m=new i.default(this.blob.decode(B,p),10,"le");return this.signed?m.fromTwos(this.span*8).clone():m}encode(B,p,m=0){return this.signed&&(B=B.toTwos(this.span*8)),this.blob.encode(B.toArrayLike(Ze,"le",this.span),p,m)}}function a(ue){return new o(8,!1,ue)}function u(ue){return new o(8,!0,ue)}function l(ue){return new o(16,!1,ue)}function h(ue){return new o(16,!0,ue)}function g(ue){return new o(32,!1,ue)}function b(ue){return new o(32,!0,ue)}class w extends t.Layout{constructor(B,p,m,E){super(B.span,E),this.layout=B,this.decoder=p,this.encoder=m}decode(B,p){return this.decoder(this.layout.decode(B,p))}encode(B,p,m){return this.layout.encode(this.encoder(B),p,m)}getSpan(B,p){return this.layout.getSpan(B,p)}}function I(ue){return new w((0,t.blob)(32),B=>new n.PublicKey(B),B=>B.toBuffer(),ue)}class S extends t.Layout{constructor(B,p){super(-1,p),this.layout=B,this.discriminator=(0,t.u8)()}encode(B,p,m=0){return B==null?this.discriminator.encode(0,p,m):(this.discriminator.encode(1,p,m),this.layout.encode(B,p,m+1)+1)}decode(B,p=0){const m=this.discriminator.decode(B,p);if(m===0)return null;if(m===1)return this.layout.decode(B,p+1);throw new Error("Invalid option "+this.property)}getSpan(B,p=0){const m=this.discriminator.decode(B,p);if(m===0)return 1;if(m===1)return this.layout.getSpan(B,p+1)+1;throw new Error("Invalid option "+this.property)}}function x(ue,B){return new S(ue,B)}function C(ue){return new w((0,t.u8)(),H,D,ue)}function H(ue){if(ue===0)return!1;if(ue===1)return!0;throw new Error("Invalid bool: "+ue)}function D(ue){return ue?1:0}function z(ue,B){const p=(0,t.u32)("length"),m=(0,t.struct)([p,(0,t.seq)(ue,(0,t.offset)(p,-p.span),"values")]);return new w(m,({values:E})=>E,E=>({values:E}),B)}function V(ue,B,p){const m=(0,t.struct)([a("tag"),B.replicate("data")]);function E({tag:k,data:O}){if(!k.eq(ue))throw new Error("Invalid tag, expected: "+ue.toString("hex")+", got: "+k.toString("hex"));return O}return new w(m,E,k=>({tag:ue,data:k}),p)}function Z(ue){const B=(0,t.u32)("length"),p=(0,t.struct)([B,(0,t.blob)((0,t.offset)(B,-B.span),"data")]);return new w(p,({data:m})=>m,m=>({data:m}),ue)}function K(ue){return new w(Z(),B=>B.toString("utf-8"),B=>Ze.from(B,"utf-8"),ue)}function W(ue,B,p){const m=(0,t.union)(p??(0,t.u8)(),B);return ue.forEach((E,k)=>m.addVariant(k,E,E.property)),m}function oe(ue,B,p){const m=(0,t.struct)([(0,t.seq)(ue,B,"values")]);return new w(m,({values:E})=>E,E=>({values:E}),p)}class ce extends t.Layout{constructor(B,p,m){super(B.span+p.span,m),this.keyLayout=B,this.valueLayout=p}decode(B,p){p=p||0;const m=this.keyLayout.decode(B,p),E=this.valueLayout.decode(B,p+this.keyLayout.getSpan(B,p));return[m,E]}encode(B,p,m){m=m||0;const E=this.keyLayout.encode(B[0],p,m),k=this.valueLayout.encode(B[1],p,m+E);return E+k}getSpan(B,p){return this.keyLayout.getSpan(B,p)+this.valueLayout.getSpan(B,p)}}function ie(ue,B,p){const m=(0,t.u32)("length"),E=(0,t.struct)([m,(0,t.seq)(new ce(ue,B),(0,t.offset)(m,-m.span),"values")]);return new w(E,({values:k})=>new Map(k),k=>({values:Array.from(k.entries())}),p)}})(Xe);/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const Gq=4,fR=0,hR=1,Kq=2;function wu(r){let e=r.length;for(;--e>=0;)r[e]=0}const jq=0,dR=1,Wq=2,Vq=3,qq=258,s1=29,$f=256,Ff=$f+1+s1,bu=30,o1=19,pR=2*Ff+1,Ma=15,a1=16,Zq=7,c1=256,gR=16,yR=17,mR=18,u1=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),H0=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Qq=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),wR=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Yq=512,Ns=new Array((Ff+2)*2);wu(Ns);const Hf=new Array(bu*2);wu(Hf);const zf=new Array(Yq);wu(zf);const Gf=new Array(qq-Vq+1);wu(Gf);const l1=new Array(s1);wu(l1);const z0=new Array(bu);wu(z0);function f1(r,e,t,n,i){this.static_tree=r,this.extra_bits=e,this.extra_base=t,this.elems=n,this.max_length=i,this.has_stree=r&&r.length}let bR,_R,AR;function h1(r,e){this.dyn_tree=r,this.max_code=0,this.stat_desc=e}const vR=r=>r<256?zf[r]:zf[256+(r>>>7)],Kf=(r,e)=>{r.pending_buf[r.pending++]=e&255,r.pending_buf[r.pending++]=e>>>8&255},Cn=(r,e,t)=>{r.bi_valid>a1-t?(r.bi_buf|=e<<r.bi_valid&65535,Kf(r,r.bi_buf),r.bi_buf=e>>a1-r.bi_valid,r.bi_valid+=t-a1):(r.bi_buf|=e<<r.bi_valid&65535,r.bi_valid+=t)},Xi=(r,e,t)=>{Cn(r,t[e*2],t[e*2+1])},ER=(r,e)=>{let t=0;do t|=r&1,r>>>=1,t<<=1;while(--e>0);return t>>>1},Jq=r=>{r.bi_valid===16?(Kf(r,r.bi_buf),r.bi_buf=0,r.bi_valid=0):r.bi_valid>=8&&(r.pending_buf[r.pending++]=r.bi_buf&255,r.bi_buf>>=8,r.bi_valid-=8)},Xq=(r,e)=>{const t=e.dyn_tree,n=e.max_code,i=e.stat_desc.static_tree,s=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,a=e.stat_desc.extra_base,u=e.stat_desc.max_length;let l,h,g,b,w,I,S=0;for(b=0;b<=Ma;b++)r.bl_count[b]=0;for(t[r.heap[r.heap_max]*2+1]=0,l=r.heap_max+1;l<pR;l++)h=r.heap[l],b=t[t[h*2+1]*2+1]+1,b>u&&(b=u,S++),t[h*2+1]=b,!(h>n)&&(r.bl_count[b]++,w=0,h>=a&&(w=o[h-a]),I=t[h*2],r.opt_len+=I*(b+w),s&&(r.static_len+=I*(i[h*2+1]+w)));if(S!==0){do{for(b=u-1;r.bl_count[b]===0;)b--;r.bl_count[b]--,r.bl_count[b+1]+=2,r.bl_count[u]--,S-=2}while(S>0);for(b=u;b!==0;b--)for(h=r.bl_count[b];h!==0;)g=r.heap[--l],!(g>n)&&(t[g*2+1]!==b&&(r.opt_len+=(b-t[g*2+1])*t[g*2],t[g*2+1]=b),h--)}},xR=(r,e,t)=>{const n=new Array(Ma+1);let i=0,s,o;for(s=1;s<=Ma;s++)i=i+t[s-1]<<1,n[s]=i;for(o=0;o<=e;o++){let a=r[o*2+1];a!==0&&(r[o*2]=ER(n[a]++,a))}},eZ=()=>{let r,e,t,n,i;const s=new Array(Ma+1);for(t=0,n=0;n<s1-1;n++)for(l1[n]=t,r=0;r<1<<u1[n];r++)Gf[t++]=n;for(Gf[t-1]=n,i=0,n=0;n<16;n++)for(z0[n]=i,r=0;r<1<<H0[n];r++)zf[i++]=n;for(i>>=7;n<bu;n++)for(z0[n]=i<<7,r=0;r<1<<H0[n]-7;r++)zf[256+i++]=n;for(e=0;e<=Ma;e++)s[e]=0;for(r=0;r<=143;)Ns[r*2+1]=8,r++,s[8]++;for(;r<=255;)Ns[r*2+1]=9,r++,s[9]++;for(;r<=279;)Ns[r*2+1]=7,r++,s[7]++;for(;r<=287;)Ns[r*2+1]=8,r++,s[8]++;for(xR(Ns,Ff+1,s),r=0;r<bu;r++)Hf[r*2+1]=5,Hf[r*2]=ER(r,5);bR=new f1(Ns,u1,$f+1,Ff,Ma),_R=new f1(Hf,H0,0,bu,Ma),AR=new f1(new Array(0),Qq,0,o1,Zq)},RR=r=>{let e;for(e=0;e<Ff;e++)r.dyn_ltree[e*2]=0;for(e=0;e<bu;e++)r.dyn_dtree[e*2]=0;for(e=0;e<o1;e++)r.bl_tree[e*2]=0;r.dyn_ltree[c1*2]=1,r.opt_len=r.static_len=0,r.sym_next=r.matches=0},IR=r=>{r.bi_valid>8?Kf(r,r.bi_buf):r.bi_valid>0&&(r.pending_buf[r.pending++]=r.bi_buf),r.bi_buf=0,r.bi_valid=0},SR=(r,e,t,n)=>{const i=e*2,s=t*2;return r[i]<r[s]||r[i]===r[s]&&n[e]<=n[t]},d1=(r,e,t)=>{const n=r.heap[t];let i=t<<1;for(;i<=r.heap_len&&(i<r.heap_len&&SR(e,r.heap[i+1],r.heap[i],r.depth)&&i++,!SR(e,n,r.heap[i],r.depth));)r.heap[t]=r.heap[i],t=i,i<<=1;r.heap[t]=n},kR=(r,e,t)=>{let n,i,s=0,o,a;if(r.sym_next!==0)do n=r.pending_buf[r.sym_buf+s++]&255,n+=(r.pending_buf[r.sym_buf+s++]&255)<<8,i=r.pending_buf[r.sym_buf+s++],n===0?Xi(r,i,e):(o=Gf[i],Xi(r,o+$f+1,e),a=u1[o],a!==0&&(i-=l1[o],Cn(r,i,a)),n--,o=vR(n),Xi(r,o,t),a=H0[o],a!==0&&(n-=z0[o],Cn(r,n,a)));while(s<r.sym_next);Xi(r,c1,e)},p1=(r,e)=>{const t=e.dyn_tree,n=e.stat_desc.static_tree,i=e.stat_desc.has_stree,s=e.stat_desc.elems;let o,a,u=-1,l;for(r.heap_len=0,r.heap_max=pR,o=0;o<s;o++)t[o*2]!==0?(r.heap[++r.heap_len]=u=o,r.depth[o]=0):t[o*2+1]=0;for(;r.heap_len<2;)l=r.heap[++r.heap_len]=u<2?++u:0,t[l*2]=1,r.depth[l]=0,r.opt_len--,i&&(r.static_len-=n[l*2+1]);for(e.max_code=u,o=r.heap_len>>1;o>=1;o--)d1(r,t,o);l=s;do o=r.heap[1],r.heap[1]=r.heap[r.heap_len--],d1(r,t,1),a=r.heap[1],r.heap[--r.heap_max]=o,r.heap[--r.heap_max]=a,t[l*2]=t[o*2]+t[a*2],r.depth[l]=(r.depth[o]>=r.depth[a]?r.depth[o]:r.depth[a])+1,t[o*2+1]=t[a*2+1]=l,r.heap[1]=l++,d1(r,t,1);while(r.heap_len>=2);r.heap[--r.heap_max]=r.heap[1],Xq(r,e),xR(t,u,r.bl_count)},TR=(r,e,t)=>{let n,i=-1,s,o=e[0*2+1],a=0,u=7,l=4;for(o===0&&(u=138,l=3),e[(t+1)*2+1]=65535,n=0;n<=t;n++)s=o,o=e[(n+1)*2+1],!(++a<u&&s===o)&&(a<l?r.bl_tree[s*2]+=a:s!==0?(s!==i&&r.bl_tree[s*2]++,r.bl_tree[gR*2]++):a<=10?r.bl_tree[yR*2]++:r.bl_tree[mR*2]++,a=0,i=s,o===0?(u=138,l=3):s===o?(u=6,l=3):(u=7,l=4))},OR=(r,e,t)=>{let n,i=-1,s,o=e[0*2+1],a=0,u=7,l=4;for(o===0&&(u=138,l=3),n=0;n<=t;n++)if(s=o,o=e[(n+1)*2+1],!(++a<u&&s===o)){if(a<l)do Xi(r,s,r.bl_tree);while(--a!==0);else s!==0?(s!==i&&(Xi(r,s,r.bl_tree),a--),Xi(r,gR,r.bl_tree),Cn(r,a-3,2)):a<=10?(Xi(r,yR,r.bl_tree),Cn(r,a-3,3)):(Xi(r,mR,r.bl_tree),Cn(r,a-11,7));a=0,i=s,o===0?(u=138,l=3):s===o?(u=6,l=3):(u=7,l=4)}},tZ=r=>{let e;for(TR(r,r.dyn_ltree,r.l_desc.max_code),TR(r,r.dyn_dtree,r.d_desc.max_code),p1(r,r.bl_desc),e=o1-1;e>=3&&r.bl_tree[wR[e]*2+1]===0;e--);return r.opt_len+=3*(e+1)+5+5+4,e},rZ=(r,e,t,n)=>{let i;for(Cn(r,e-257,5),Cn(r,t-1,5),Cn(r,n-4,4),i=0;i<n;i++)Cn(r,r.bl_tree[wR[i]*2+1],3);OR(r,r.dyn_ltree,e-1),OR(r,r.dyn_dtree,t-1)},nZ=r=>{let e=4093624447,t;for(t=0;t<=31;t++,e>>>=1)if(e&1&&r.dyn_ltree[t*2]!==0)return fR;if(r.dyn_ltree[9*2]!==0||r.dyn_ltree[10*2]!==0||r.dyn_ltree[13*2]!==0)return hR;for(t=32;t<$f;t++)if(r.dyn_ltree[t*2]!==0)return hR;return fR};let NR=!1;const iZ=r=>{NR||(eZ(),NR=!0),r.l_desc=new h1(r.dyn_ltree,bR),r.d_desc=new h1(r.dyn_dtree,_R),r.bl_desc=new h1(r.bl_tree,AR),r.bi_buf=0,r.bi_valid=0,RR(r)},CR=(r,e,t,n)=>{Cn(r,(jq<<1)+(n?1:0),3),IR(r),Kf(r,t),Kf(r,~t),t&&r.pending_buf.set(r.window.subarray(e,e+t),r.pending),r.pending+=t},sZ=r=>{Cn(r,dR<<1,3),Xi(r,c1,Ns),Jq(r)},oZ=(r,e,t,n)=>{let i,s,o=0;r.level>0?(r.strm.data_type===Kq&&(r.strm.data_type=nZ(r)),p1(r,r.l_desc),p1(r,r.d_desc),o=tZ(r),i=r.opt_len+3+7>>>3,s=r.static_len+3+7>>>3,s<=i&&(i=s)):i=s=t+5,t+4<=i&&e!==-1?CR(r,e,t,n):r.strategy===Gq||s===i?(Cn(r,(dR<<1)+(n?1:0),3),kR(r,Ns,Hf)):(Cn(r,(Wq<<1)+(n?1:0),3),rZ(r,r.l_desc.max_code+1,r.d_desc.max_code+1,o+1),kR(r,r.dyn_ltree,r.dyn_dtree)),RR(r),n&&IR(r)},aZ=(r,e,t)=>(r.pending_buf[r.sym_buf+r.sym_next++]=e,r.pending_buf[r.sym_buf+r.sym_next++]=e>>8,r.pending_buf[r.sym_buf+r.sym_next++]=t,e===0?r.dyn_ltree[t*2]++:(r.matches++,e--,r.dyn_ltree[(Gf[t]+$f+1)*2]++,r.dyn_dtree[vR(e)*2]++),r.sym_next===r.sym_end);var cZ=iZ,uZ=CR,lZ=oZ,fZ=aZ,hZ=sZ,dZ={_tr_init:cZ,_tr_stored_block:uZ,_tr_flush_block:lZ,_tr_tally:fZ,_tr_align:hZ},jf=(r,e,t,n)=>{let i=r&65535|0,s=r>>>16&65535|0,o=0;for(;t!==0;){o=t>2e3?2e3:t,t-=o;do i=i+e[n++]|0,s=s+i|0;while(--o);i%=65521,s%=65521}return i|s<<16|0};const pZ=()=>{let r,e=[];for(var t=0;t<256;t++){r=t;for(var n=0;n<8;n++)r=r&1?3988292384^r>>>1:r>>>1;e[t]=r}return e},gZ=new Uint32Array(pZ());var Dr=(r,e,t,n)=>{const i=gZ,s=n+t;r^=-1;for(let o=n;o<s;o++)r=r>>>8^i[(r^e[o])&255];return r^-1},_u={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Wf={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:yZ,_tr_stored_block:g1,_tr_flush_block:mZ,_tr_tally:Ao,_tr_align:wZ}=dZ,{Z_NO_FLUSH:vo,Z_PARTIAL_FLUSH:bZ,Z_FULL_FLUSH:_Z,Z_FINISH:si,Z_BLOCK:BR,Z_OK:Zr,Z_STREAM_END:PR,Z_STREAM_ERROR:es,Z_DATA_ERROR:AZ,Z_BUF_ERROR:y1,Z_DEFAULT_COMPRESSION:vZ,Z_FILTERED:EZ,Z_HUFFMAN_ONLY:G0,Z_RLE:xZ,Z_FIXED:RZ,Z_DEFAULT_STRATEGY:IZ,Z_UNKNOWN:SZ,Z_DEFLATED:K0}=Wf,kZ=9,TZ=15,OZ=8,m1=256+1+29,NZ=30,CZ=19,BZ=2*m1+1,PZ=15,ht=3,Eo=258,ts=Eo+ht+1,MZ=32,Au=42,w1=57,b1=69,_1=73,A1=91,v1=103,La=113,Vf=666,yn=1,vu=2,Ua=3,Eu=4,LZ=3,Da=(r,e)=>(r.msg=_u[e],e),MR=r=>r*2-(r>4?9:0),xo=r=>{let e=r.length;for(;--e>=0;)r[e]=0},UZ=r=>{let e,t,n,i=r.w_size;e=r.hash_size,n=e;do t=r.head[--n],r.head[n]=t>=i?t-i:0;while(--e);e=i,n=e;do t=r.prev[--n],r.prev[n]=t>=i?t-i:0;while(--e)};let Ro=(r,e,t)=>(e<<r.hash_shift^t)&r.hash_mask;const Gn=r=>{const e=r.state;let t=e.pending;t>r.avail_out&&(t=r.avail_out),t!==0&&(r.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+t),r.next_out),r.next_out+=t,e.pending_out+=t,r.total_out+=t,r.avail_out-=t,e.pending-=t,e.pending===0&&(e.pending_out=0))},Kn=(r,e)=>{mZ(r,r.block_start>=0?r.block_start:-1,r.strstart-r.block_start,e),r.block_start=r.strstart,Gn(r.strm)},Rt=(r,e)=>{r.pending_buf[r.pending++]=e},qf=(r,e)=>{r.pending_buf[r.pending++]=e>>>8&255,r.pending_buf[r.pending++]=e&255},E1=(r,e,t,n)=>{let i=r.avail_in;return i>n&&(i=n),i===0?0:(r.avail_in-=i,e.set(r.input.subarray(r.next_in,r.next_in+i),t),r.state.wrap===1?r.adler=jf(r.adler,e,i,t):r.state.wrap===2&&(r.adler=Dr(r.adler,e,i,t)),r.next_in+=i,r.total_in+=i,i)},LR=(r,e)=>{let t=r.max_chain_length,n=r.strstart,i,s,o=r.prev_length,a=r.nice_match;const u=r.strstart>r.w_size-ts?r.strstart-(r.w_size-ts):0,l=r.window,h=r.w_mask,g=r.prev,b=r.strstart+Eo;let w=l[n+o-1],I=l[n+o];r.prev_length>=r.good_match&&(t>>=2),a>r.lookahead&&(a=r.lookahead);do if(i=e,!(l[i+o]!==I||l[i+o-1]!==w||l[i]!==l[n]||l[++i]!==l[n+1])){n+=2,i++;do;while(l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&l[++n]===l[++i]&&n<b);if(s=Eo-(b-n),n=b-Eo,s>o){if(r.match_start=e,o=s,s>=a)break;w=l[n+o-1],I=l[n+o]}}while((e=g[e&h])>u&&--t!==0);return o<=r.lookahead?o:r.lookahead},xu=r=>{const e=r.w_size;let t,n,i;do{if(n=r.window_size-r.lookahead-r.strstart,r.strstart>=e+(e-ts)&&(r.window.set(r.window.subarray(e,e+e-n),0),r.match_start-=e,r.strstart-=e,r.block_start-=e,r.insert>r.strstart&&(r.insert=r.strstart),UZ(r),n+=e),r.strm.avail_in===0)break;if(t=E1(r.strm,r.window,r.strstart+r.lookahead,n),r.lookahead+=t,r.lookahead+r.insert>=ht)for(i=r.strstart-r.insert,r.ins_h=r.window[i],r.ins_h=Ro(r,r.ins_h,r.window[i+1]);r.insert&&(r.ins_h=Ro(r,r.ins_h,r.window[i+ht-1]),r.prev[i&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=i,i++,r.insert--,!(r.lookahead+r.insert<ht)););}while(r.lookahead<ts&&r.strm.avail_in!==0)},UR=(r,e)=>{let t=r.pending_buf_size-5>r.w_size?r.w_size:r.pending_buf_size-5,n,i,s,o=0,a=r.strm.avail_in;do{if(n=65535,s=r.bi_valid+42>>3,r.strm.avail_out<s||(s=r.strm.avail_out-s,i=r.strstart-r.block_start,n>i+r.strm.avail_in&&(n=i+r.strm.avail_in),n>s&&(n=s),n<t&&(n===0&&e!==si||e===vo||n!==i+r.strm.avail_in)))break;o=e===si&&n===i+r.strm.avail_in?1:0,g1(r,0,0,o),r.pending_buf[r.pending-4]=n,r.pending_buf[r.pending-3]=n>>8,r.pending_buf[r.pending-2]=~n,r.pending_buf[r.pending-1]=~n>>8,Gn(r.strm),i&&(i>n&&(i=n),r.strm.output.set(r.window.subarray(r.block_start,r.block_start+i),r.strm.next_out),r.strm.next_out+=i,r.strm.avail_out-=i,r.strm.total_out+=i,r.block_start+=i,n-=i),n&&(E1(r.strm,r.strm.output,r.strm.next_out,n),r.strm.next_out+=n,r.strm.avail_out-=n,r.strm.total_out+=n)}while(o===0);return a-=r.strm.avail_in,a&&(a>=r.w_size?(r.matches=2,r.window.set(r.strm.input.subarray(r.strm.next_in-r.w_size,r.strm.next_in),0),r.strstart=r.w_size,r.insert=r.strstart):(r.window_size-r.strstart<=a&&(r.strstart-=r.w_size,r.window.set(r.window.subarray(r.w_size,r.w_size+r.strstart),0),r.matches<2&&r.matches++,r.insert>r.strstart&&(r.insert=r.strstart)),r.window.set(r.strm.input.subarray(r.strm.next_in-a,r.strm.next_in),r.strstart),r.strstart+=a,r.insert+=a>r.w_size-r.insert?r.w_size-r.insert:a),r.block_start=r.strstart),r.high_water<r.strstart&&(r.high_water=r.strstart),o?Eu:e!==vo&&e!==si&&r.strm.avail_in===0&&r.strstart===r.block_start?vu:(s=r.window_size-r.strstart,r.strm.avail_in>s&&r.block_start>=r.w_size&&(r.block_start-=r.w_size,r.strstart-=r.w_size,r.window.set(r.window.subarray(r.w_size,r.w_size+r.strstart),0),r.matches<2&&r.matches++,s+=r.w_size,r.insert>r.strstart&&(r.insert=r.strstart)),s>r.strm.avail_in&&(s=r.strm.avail_in),s&&(E1(r.strm,r.window,r.strstart,s),r.strstart+=s,r.insert+=s>r.w_size-r.insert?r.w_size-r.insert:s),r.high_water<r.strstart&&(r.high_water=r.strstart),s=r.bi_valid+42>>3,s=r.pending_buf_size-s>65535?65535:r.pending_buf_size-s,t=s>r.w_size?r.w_size:s,i=r.strstart-r.block_start,(i>=t||(i||e===si)&&e!==vo&&r.strm.avail_in===0&&i<=s)&&(n=i>s?s:i,o=e===si&&r.strm.avail_in===0&&n===i?1:0,g1(r,r.block_start,n,o),r.block_start+=n,Gn(r.strm)),o?Ua:yn)},x1=(r,e)=>{let t,n;for(;;){if(r.lookahead<ts){if(xu(r),r.lookahead<ts&&e===vo)return yn;if(r.lookahead===0)break}if(t=0,r.lookahead>=ht&&(r.ins_h=Ro(r,r.ins_h,r.window[r.strstart+ht-1]),t=r.prev[r.strstart&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=r.strstart),t!==0&&r.strstart-t<=r.w_size-ts&&(r.match_length=LR(r,t)),r.match_length>=ht)if(n=Ao(r,r.strstart-r.match_start,r.match_length-ht),r.lookahead-=r.match_length,r.match_length<=r.max_lazy_match&&r.lookahead>=ht){r.match_length--;do r.strstart++,r.ins_h=Ro(r,r.ins_h,r.window[r.strstart+ht-1]),t=r.prev[r.strstart&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=r.strstart;while(--r.match_length!==0);r.strstart++}else r.strstart+=r.match_length,r.match_length=0,r.ins_h=r.window[r.strstart],r.ins_h=Ro(r,r.ins_h,r.window[r.strstart+1]);else n=Ao(r,0,r.window[r.strstart]),r.lookahead--,r.strstart++;if(n&&(Kn(r,!1),r.strm.avail_out===0))return yn}return r.insert=r.strstart<ht-1?r.strstart:ht-1,e===si?(Kn(r,!0),r.strm.avail_out===0?Ua:Eu):r.sym_next&&(Kn(r,!1),r.strm.avail_out===0)?yn:vu},Ru=(r,e)=>{let t,n,i;for(;;){if(r.lookahead<ts){if(xu(r),r.lookahead<ts&&e===vo)return yn;if(r.lookahead===0)break}if(t=0,r.lookahead>=ht&&(r.ins_h=Ro(r,r.ins_h,r.window[r.strstart+ht-1]),t=r.prev[r.strstart&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=r.strstart),r.prev_length=r.match_length,r.prev_match=r.match_start,r.match_length=ht-1,t!==0&&r.prev_length<r.max_lazy_match&&r.strstart-t<=r.w_size-ts&&(r.match_length=LR(r,t),r.match_length<=5&&(r.strategy===EZ||r.match_length===ht&&r.strstart-r.match_start>4096)&&(r.match_length=ht-1)),r.prev_length>=ht&&r.match_length<=r.prev_length){i=r.strstart+r.lookahead-ht,n=Ao(r,r.strstart-1-r.prev_match,r.prev_length-ht),r.lookahead-=r.prev_length-1,r.prev_length-=2;do++r.strstart<=i&&(r.ins_h=Ro(r,r.ins_h,r.window[r.strstart+ht-1]),t=r.prev[r.strstart&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=r.strstart);while(--r.prev_length!==0);if(r.match_available=0,r.match_length=ht-1,r.strstart++,n&&(Kn(r,!1),r.strm.avail_out===0))return yn}else if(r.match_available){if(n=Ao(r,0,r.window[r.strstart-1]),n&&Kn(r,!1),r.strstart++,r.lookahead--,r.strm.avail_out===0)return yn}else r.match_available=1,r.strstart++,r.lookahead--}return r.match_available&&(n=Ao(r,0,r.window[r.strstart-1]),r.match_available=0),r.insert=r.strstart<ht-1?r.strstart:ht-1,e===si?(Kn(r,!0),r.strm.avail_out===0?Ua:Eu):r.sym_next&&(Kn(r,!1),r.strm.avail_out===0)?yn:vu},DZ=(r,e)=>{let t,n,i,s;const o=r.window;for(;;){if(r.lookahead<=Eo){if(xu(r),r.lookahead<=Eo&&e===vo)return yn;if(r.lookahead===0)break}if(r.match_length=0,r.lookahead>=ht&&r.strstart>0&&(i=r.strstart-1,n=o[i],n===o[++i]&&n===o[++i]&&n===o[++i])){s=r.strstart+Eo;do;while(n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&n===o[++i]&&i<s);r.match_length=Eo-(s-i),r.match_length>r.lookahead&&(r.match_length=r.lookahead)}if(r.match_length>=ht?(t=Ao(r,1,r.match_length-ht),r.lookahead-=r.match_length,r.strstart+=r.match_length,r.match_length=0):(t=Ao(r,0,r.window[r.strstart]),r.lookahead--,r.strstart++),t&&(Kn(r,!1),r.strm.avail_out===0))return yn}return r.insert=0,e===si?(Kn(r,!0),r.strm.avail_out===0?Ua:Eu):r.sym_next&&(Kn(r,!1),r.strm.avail_out===0)?yn:vu},$Z=(r,e)=>{let t;for(;;){if(r.lookahead===0&&(xu(r),r.lookahead===0)){if(e===vo)return yn;break}if(r.match_length=0,t=Ao(r,0,r.window[r.strstart]),r.lookahead--,r.strstart++,t&&(Kn(r,!1),r.strm.avail_out===0))return yn}return r.insert=0,e===si?(Kn(r,!0),r.strm.avail_out===0?Ua:Eu):r.sym_next&&(Kn(r,!1),r.strm.avail_out===0)?yn:vu};function rs(r,e,t,n,i){this.good_length=r,this.max_lazy=e,this.nice_length=t,this.max_chain=n,this.func=i}const Zf=[new rs(0,0,0,0,UR),new rs(4,4,8,4,x1),new rs(4,5,16,8,x1),new rs(4,6,32,32,x1),new rs(4,4,16,16,Ru),new rs(8,16,32,32,Ru),new rs(8,16,128,128,Ru),new rs(8,32,128,256,Ru),new rs(32,128,258,1024,Ru),new rs(32,258,258,4096,Ru)],FZ=r=>{r.window_size=2*r.w_size,xo(r.head),r.max_lazy_match=Zf[r.level].max_lazy,r.good_match=Zf[r.level].good_length,r.nice_match=Zf[r.level].nice_length,r.max_chain_length=Zf[r.level].max_chain,r.strstart=0,r.block_start=0,r.lookahead=0,r.insert=0,r.match_length=r.prev_length=ht-1,r.match_available=0,r.ins_h=0};function HZ(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=K0,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(BZ*2),this.dyn_dtree=new Uint16Array((2*NZ+1)*2),this.bl_tree=new Uint16Array((2*CZ+1)*2),xo(this.dyn_ltree),xo(this.dyn_dtree),xo(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(PZ+1),this.heap=new Uint16Array(2*m1+1),xo(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*m1+1),xo(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Qf=r=>{if(!r)return 1;const e=r.state;return!e||e.strm!==r||e.status!==Au&&e.status!==w1&&e.status!==b1&&e.status!==_1&&e.status!==A1&&e.status!==v1&&e.status!==La&&e.status!==Vf?1:0},DR=r=>{if(Qf(r))return Da(r,es);r.total_in=r.total_out=0,r.data_type=SZ;const e=r.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap===2?w1:e.wrap?Au:La,r.adler=e.wrap===2?0:1,e.last_flush=-2,yZ(e),Zr},$R=r=>{const e=DR(r);return e===Zr&&FZ(r.state),e},zZ=(r,e)=>Qf(r)||r.state.wrap!==2?es:(r.state.gzhead=e,Zr),FR=(r,e,t,n,i,s)=>{if(!r)return es;let o=1;if(e===vZ&&(e=6),n<0?(o=0,n=-n):n>15&&(o=2,n-=16),i<1||i>kZ||t!==K0||n<8||n>15||e<0||e>9||s<0||s>RZ||n===8&&o!==1)return Da(r,es);n===8&&(n=9);const a=new HZ;return r.state=a,a.strm=r,a.status=Au,a.wrap=o,a.gzhead=null,a.w_bits=n,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=i+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+ht-1)/ht),a.window=new Uint8Array(a.w_size*2),a.head=new Uint16Array(a.hash_size),a.prev=new Uint16Array(a.w_size),a.lit_bufsize=1<<i+6,a.pending_buf_size=a.lit_bufsize*4,a.pending_buf=new Uint8Array(a.pending_buf_size),a.sym_buf=a.lit_bufsize,a.sym_end=(a.lit_bufsize-1)*3,a.level=e,a.strategy=s,a.method=t,$R(r)},GZ=(r,e)=>FR(r,e,K0,TZ,OZ,IZ),KZ=(r,e)=>{if(Qf(r)||e>BR||e<0)return r?Da(r,es):es;const t=r.state;if(!r.output||r.avail_in!==0&&!r.input||t.status===Vf&&e!==si)return Da(r,r.avail_out===0?y1:es);const n=t.last_flush;if(t.last_flush=e,t.pending!==0){if(Gn(r),r.avail_out===0)return t.last_flush=-1,Zr}else if(r.avail_in===0&&MR(e)<=MR(n)&&e!==si)return Da(r,y1);if(t.status===Vf&&r.avail_in!==0)return Da(r,y1);if(t.status===Au&&t.wrap===0&&(t.status=La),t.status===Au){let i=K0+(t.w_bits-8<<4)<<8,s=-1;if(t.strategy>=G0||t.level<2?s=0:t.level<6?s=1:t.level===6?s=2:s=3,i|=s<<6,t.strstart!==0&&(i|=MZ),i+=31-i%31,qf(t,i),t.strstart!==0&&(qf(t,r.adler>>>16),qf(t,r.adler&65535)),r.adler=1,t.status=La,Gn(r),t.pending!==0)return t.last_flush=-1,Zr}if(t.status===w1){if(r.adler=0,Rt(t,31),Rt(t,139),Rt(t,8),t.gzhead)Rt(t,(t.gzhead.text?1:0)+(t.gzhead.hcrc?2:0)+(t.gzhead.extra?4:0)+(t.gzhead.name?8:0)+(t.gzhead.comment?16:0)),Rt(t,t.gzhead.time&255),Rt(t,t.gzhead.time>>8&255),Rt(t,t.gzhead.time>>16&255),Rt(t,t.gzhead.time>>24&255),Rt(t,t.level===9?2:t.strategy>=G0||t.level<2?4:0),Rt(t,t.gzhead.os&255),t.gzhead.extra&&t.gzhead.extra.length&&(Rt(t,t.gzhead.extra.length&255),Rt(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(r.adler=Dr(r.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=b1;else if(Rt(t,0),Rt(t,0),Rt(t,0),Rt(t,0),Rt(t,0),Rt(t,t.level===9?2:t.strategy>=G0||t.level<2?4:0),Rt(t,LZ),t.status=La,Gn(r),t.pending!==0)return t.last_flush=-1,Zr}if(t.status===b1){if(t.gzhead.extra){let i=t.pending,s=(t.gzhead.extra.length&65535)-t.gzindex;for(;t.pending+s>t.pending_buf_size;){let a=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+a),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>i&&(r.adler=Dr(r.adler,t.pending_buf,t.pending-i,i)),t.gzindex+=a,Gn(r),t.pending!==0)return t.last_flush=-1,Zr;i=0,s-=a}let o=new Uint8Array(t.gzhead.extra);t.pending_buf.set(o.subarray(t.gzindex,t.gzindex+s),t.pending),t.pending+=s,t.gzhead.hcrc&&t.pending>i&&(r.adler=Dr(r.adler,t.pending_buf,t.pending-i,i)),t.gzindex=0}t.status=_1}if(t.status===_1){if(t.gzhead.name){let i=t.pending,s;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>i&&(r.adler=Dr(r.adler,t.pending_buf,t.pending-i,i)),Gn(r),t.pending!==0)return t.last_flush=-1,Zr;i=0}t.gzindex<t.gzhead.name.length?s=t.gzhead.name.charCodeAt(t.gzindex++)&255:s=0,Rt(t,s)}while(s!==0);t.gzhead.hcrc&&t.pending>i&&(r.adler=Dr(r.adler,t.pending_buf,t.pending-i,i)),t.gzindex=0}t.status=A1}if(t.status===A1){if(t.gzhead.comment){let i=t.pending,s;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>i&&(r.adler=Dr(r.adler,t.pending_buf,t.pending-i,i)),Gn(r),t.pending!==0)return t.last_flush=-1,Zr;i=0}t.gzindex<t.gzhead.comment.length?s=t.gzhead.comment.charCodeAt(t.gzindex++)&255:s=0,Rt(t,s)}while(s!==0);t.gzhead.hcrc&&t.pending>i&&(r.adler=Dr(r.adler,t.pending_buf,t.pending-i,i))}t.status=v1}if(t.status===v1){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(Gn(r),t.pending!==0))return t.last_flush=-1,Zr;Rt(t,r.adler&255),Rt(t,r.adler>>8&255),r.adler=0}if(t.status=La,Gn(r),t.pending!==0)return t.last_flush=-1,Zr}if(r.avail_in!==0||t.lookahead!==0||e!==vo&&t.status!==Vf){let i=t.level===0?UR(t,e):t.strategy===G0?$Z(t,e):t.strategy===xZ?DZ(t,e):Zf[t.level].func(t,e);if((i===Ua||i===Eu)&&(t.status=Vf),i===yn||i===Ua)return r.avail_out===0&&(t.last_flush=-1),Zr;if(i===vu&&(e===bZ?wZ(t):e!==BR&&(g1(t,0,0,!1),e===_Z&&(xo(t.head),t.lookahead===0&&(t.strstart=0,t.block_start=0,t.insert=0))),Gn(r),r.avail_out===0))return t.last_flush=-1,Zr}return e!==si?Zr:t.wrap<=0?PR:(t.wrap===2?(Rt(t,r.adler&255),Rt(t,r.adler>>8&255),Rt(t,r.adler>>16&255),Rt(t,r.adler>>24&255),Rt(t,r.total_in&255),Rt(t,r.total_in>>8&255),Rt(t,r.total_in>>16&255),Rt(t,r.total_in>>24&255)):(qf(t,r.adler>>>16),qf(t,r.adler&65535)),Gn(r),t.wrap>0&&(t.wrap=-t.wrap),t.pending!==0?Zr:PR)},jZ=r=>{if(Qf(r))return es;const e=r.state.status;return r.state=null,e===La?Da(r,AZ):Zr},WZ=(r,e)=>{let t=e.length;if(Qf(r))return es;const n=r.state,i=n.wrap;if(i===2||i===1&&n.status!==Au||n.lookahead)return es;if(i===1&&(r.adler=jf(r.adler,e,t,0)),n.wrap=0,t>=n.w_size){i===0&&(xo(n.head),n.strstart=0,n.block_start=0,n.insert=0);let u=new Uint8Array(n.w_size);u.set(e.subarray(t-n.w_size,t),0),e=u,t=n.w_size}const s=r.avail_in,o=r.next_in,a=r.input;for(r.avail_in=t,r.next_in=0,r.input=e,xu(n);n.lookahead>=ht;){let u=n.strstart,l=n.lookahead-(ht-1);do n.ins_h=Ro(n,n.ins_h,n.window[u+ht-1]),n.prev[u&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=u,u++;while(--l);n.strstart=u,n.lookahead=ht-1,xu(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=ht-1,n.match_available=0,r.next_in=o,r.input=a,r.avail_in=s,n.wrap=i,Zr};var VZ=GZ,qZ=FR,ZZ=$R,QZ=DR,YZ=zZ,JZ=KZ,XZ=jZ,eQ=WZ,tQ="pako deflate (from Nodeca project)",Yf={deflateInit:VZ,deflateInit2:qZ,deflateReset:ZZ,deflateResetKeep:QZ,deflateSetHeader:YZ,deflate:JZ,deflateEnd:XZ,deflateSetDictionary:eQ,deflateInfo:tQ};const rQ=(r,e)=>Object.prototype.hasOwnProperty.call(r,e);var nQ=function(r){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const t=e.shift();if(t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(const n in t)rQ(t,n)&&(r[n]=t[n])}}return r},iQ=r=>{let e=0;for(let n=0,i=r.length;n<i;n++)e+=r[n].length;const t=new Uint8Array(e);for(let n=0,i=0,s=r.length;n<s;n++){let o=r[n];t.set(o,i),i+=o.length}return t},j0={assign:nQ,flattenChunks:iQ};let HR=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{HR=!1}const Jf=new Uint8Array(256);for(let r=0;r<256;r++)Jf[r]=r>=252?6:r>=248?5:r>=240?4:r>=224?3:r>=192?2:1;Jf[254]=Jf[254]=1;var sQ=r=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(r);let e,t,n,i,s,o=r.length,a=0;for(i=0;i<o;i++)t=r.charCodeAt(i),(t&64512)===55296&&i+1<o&&(n=r.charCodeAt(i+1),(n&64512)===56320&&(t=65536+(t-55296<<10)+(n-56320),i++)),a+=t<128?1:t<2048?2:t<65536?3:4;for(e=new Uint8Array(a),s=0,i=0;s<a;i++)t=r.charCodeAt(i),(t&64512)===55296&&i+1<o&&(n=r.charCodeAt(i+1),(n&64512)===56320&&(t=65536+(t-55296<<10)+(n-56320),i++)),t<128?e[s++]=t:t<2048?(e[s++]=192|t>>>6,e[s++]=128|t&63):t<65536?(e[s++]=224|t>>>12,e[s++]=128|t>>>6&63,e[s++]=128|t&63):(e[s++]=240|t>>>18,e[s++]=128|t>>>12&63,e[s++]=128|t>>>6&63,e[s++]=128|t&63);return e};const oQ=(r,e)=>{if(e<65534&&r.subarray&&HR)return String.fromCharCode.apply(null,r.length===e?r:r.subarray(0,e));let t="";for(let n=0;n<e;n++)t+=String.fromCharCode(r[n]);return t};var aQ=(r,e)=>{const t=e||r.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(r.subarray(0,e));let n,i;const s=new Array(t*2);for(i=0,n=0;n<t;){let o=r[n++];if(o<128){s[i++]=o;continue}let a=Jf[o];if(a>4){s[i++]=65533,n+=a-1;continue}for(o&=a===2?31:a===3?15:7;a>1&&n<t;)o=o<<6|r[n++]&63,a--;if(a>1){s[i++]=65533;continue}o<65536?s[i++]=o:(o-=65536,s[i++]=55296|o>>10&1023,s[i++]=56320|o&1023)}return oQ(s,i)},cQ=(r,e)=>{e=e||r.length,e>r.length&&(e=r.length);let t=e-1;for(;t>=0&&(r[t]&192)===128;)t--;return t<0||t===0?e:t+Jf[r[t]]>e?t:e},Xf={string2buf:sQ,buf2string:aQ,utf8border:cQ};function uQ(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var zR=uQ;const GR=Object.prototype.toString,{Z_NO_FLUSH:lQ,Z_SYNC_FLUSH:fQ,Z_FULL_FLUSH:hQ,Z_FINISH:dQ,Z_OK:W0,Z_STREAM_END:pQ,Z_DEFAULT_COMPRESSION:gQ,Z_DEFAULT_STRATEGY:yQ,Z_DEFLATED:mQ}=Wf;function R1(r){this.options=j0.assign({level:gQ,method:mQ,chunkSize:16384,windowBits:15,memLevel:8,strategy:yQ},r||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zR,this.strm.avail_out=0;let t=Yf.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(t!==W0)throw new Error(_u[t]);if(e.header&&Yf.deflateSetHeader(this.strm,e.header),e.dictionary){let n;if(typeof e.dictionary=="string"?n=Xf.string2buf(e.dictionary):GR.call(e.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(e.dictionary):n=e.dictionary,t=Yf.deflateSetDictionary(this.strm,n),t!==W0)throw new Error(_u[t]);this._dict_set=!0}}R1.prototype.push=function(r,e){const t=this.strm,n=this.options.chunkSize;let i,s;if(this.ended)return!1;for(e===~~e?s=e:s=e===!0?dQ:lQ,typeof r=="string"?t.input=Xf.string2buf(r):GR.call(r)==="[object ArrayBuffer]"?t.input=new Uint8Array(r):t.input=r,t.next_in=0,t.avail_in=t.input.length;;){if(t.avail_out===0&&(t.output=new Uint8Array(n),t.next_out=0,t.avail_out=n),(s===fQ||s===hQ)&&t.avail_out<=6){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(i=Yf.deflate(t,s),i===pQ)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),i=Yf.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===W0;if(t.avail_out===0){this.onData(t.output);continue}if(s>0&&t.next_out>0){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(t.avail_in===0)break}return!0},R1.prototype.onData=function(r){this.chunks.push(r)},R1.prototype.onEnd=function(r){r===W0&&(this.result=j0.flattenChunks(this.chunks)),this.chunks=[],this.err=r,this.msg=this.strm.msg};const V0=16209,wQ=16191;var bQ=function(e,t){let n,i,s,o,a,u,l,h,g,b,w,I,S,x,C,H,D,z,V,Z,K,W,oe,ce;const ie=e.state;n=e.next_in,oe=e.input,i=n+(e.avail_in-5),s=e.next_out,ce=e.output,o=s-(t-e.avail_out),a=s+(e.avail_out-257),u=ie.dmax,l=ie.wsize,h=ie.whave,g=ie.wnext,b=ie.window,w=ie.hold,I=ie.bits,S=ie.lencode,x=ie.distcode,C=(1<<ie.lenbits)-1,H=(1<<ie.distbits)-1;e:do{I<15&&(w+=oe[n++]<<I,I+=8,w+=oe[n++]<<I,I+=8),D=S[w&C];t:for(;;){if(z=D>>>24,w>>>=z,I-=z,z=D>>>16&255,z===0)ce[s++]=D&65535;else if(z&16){V=D&65535,z&=15,z&&(I<z&&(w+=oe[n++]<<I,I+=8),V+=w&(1<<z)-1,w>>>=z,I-=z),I<15&&(w+=oe[n++]<<I,I+=8,w+=oe[n++]<<I,I+=8),D=x[w&H];r:for(;;){if(z=D>>>24,w>>>=z,I-=z,z=D>>>16&255,z&16){if(Z=D&65535,z&=15,I<z&&(w+=oe[n++]<<I,I+=8,I<z&&(w+=oe[n++]<<I,I+=8)),Z+=w&(1<<z)-1,Z>u){e.msg="invalid distance too far back",ie.mode=V0;break e}if(w>>>=z,I-=z,z=s-o,Z>z){if(z=Z-z,z>h&&ie.sane){e.msg="invalid distance too far back",ie.mode=V0;break e}if(K=0,W=b,g===0){if(K+=l-z,z<V){V-=z;do ce[s++]=b[K++];while(--z);K=s-Z,W=ce}}else if(g<z){if(K+=l+g-z,z-=g,z<V){V-=z;do ce[s++]=b[K++];while(--z);if(K=0,g<V){z=g,V-=z;do ce[s++]=b[K++];while(--z);K=s-Z,W=ce}}}else if(K+=g-z,z<V){V-=z;do ce[s++]=b[K++];while(--z);K=s-Z,W=ce}for(;V>2;)ce[s++]=W[K++],ce[s++]=W[K++],ce[s++]=W[K++],V-=3;V&&(ce[s++]=W[K++],V>1&&(ce[s++]=W[K++]))}else{K=s-Z;do ce[s++]=ce[K++],ce[s++]=ce[K++],ce[s++]=ce[K++],V-=3;while(V>2);V&&(ce[s++]=ce[K++],V>1&&(ce[s++]=ce[K++]))}}else if(z&64){e.msg="invalid distance code",ie.mode=V0;break e}else{D=x[(D&65535)+(w&(1<<z)-1)];continue r}break}}else if(z&64)if(z&32){ie.mode=wQ;break e}else{e.msg="invalid literal/length code",ie.mode=V0;break e}else{D=S[(D&65535)+(w&(1<<z)-1)];continue t}break}}while(n<i&&s<a);V=I>>3,n-=V,I-=V<<3,w&=(1<<I)-1,e.next_in=n,e.next_out=s,e.avail_in=n<i?5+(i-n):5-(n-i),e.avail_out=s<a?257+(a-s):257-(s-a),ie.hold=w,ie.bits=I};const Iu=15,KR=852,jR=592,WR=0,I1=1,VR=2,_Q=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),AQ=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),vQ=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),EQ=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var eh=(r,e,t,n,i,s,o,a)=>{const u=a.bits;let l=0,h=0,g=0,b=0,w=0,I=0,S=0,x=0,C=0,H=0,D,z,V,Z,K,W=null,oe;const ce=new Uint16Array(Iu+1),ie=new Uint16Array(Iu+1);let ue=null,B,p,m;for(l=0;l<=Iu;l++)ce[l]=0;for(h=0;h<n;h++)ce[e[t+h]]++;for(w=u,b=Iu;b>=1&&ce[b]===0;b--);if(w>b&&(w=b),b===0)return i[s++]=1<<24|64<<16|0,i[s++]=1<<24|64<<16|0,a.bits=1,0;for(g=1;g<b&&ce[g]===0;g++);for(w<g&&(w=g),x=1,l=1;l<=Iu;l++)if(x<<=1,x-=ce[l],x<0)return-1;if(x>0&&(r===WR||b!==1))return-1;for(ie[1]=0,l=1;l<Iu;l++)ie[l+1]=ie[l]+ce[l];for(h=0;h<n;h++)e[t+h]!==0&&(o[ie[e[t+h]]++]=h);if(r===WR?(W=ue=o,oe=20):r===I1?(W=_Q,ue=AQ,oe=257):(W=vQ,ue=EQ,oe=0),H=0,h=0,l=g,K=s,I=w,S=0,V=-1,C=1<<w,Z=C-1,r===I1&&C>KR||r===VR&&C>jR)return 1;for(;;){B=l-S,o[h]+1<oe?(p=0,m=o[h]):o[h]>=oe?(p=ue[o[h]-oe],m=W[o[h]-oe]):(p=96,m=0),D=1<<l-S,z=1<<I,g=z;do z-=D,i[K+(H>>S)+z]=B<<24|p<<16|m|0;while(z!==0);for(D=1<<l-1;H&D;)D>>=1;if(D!==0?(H&=D-1,H+=D):H=0,h++,--ce[l]===0){if(l===b)break;l=e[t+o[h]]}if(l>w&&(H&Z)!==V){for(S===0&&(S=w),K+=g,I=l-S,x=1<<I;I+S<b&&(x-=ce[I+S],!(x<=0));)I++,x<<=1;if(C+=1<<I,r===I1&&C>KR||r===VR&&C>jR)return 1;V=H&Z,i[V]=w<<24|I<<16|K-s|0}}return H!==0&&(i[K+H]=l-S<<24|64<<16|0),a.bits=w,0};const xQ=0,qR=1,ZR=2,{Z_FINISH:QR,Z_BLOCK:RQ,Z_TREES:q0,Z_OK:$a,Z_STREAM_END:IQ,Z_NEED_DICT:SQ,Z_STREAM_ERROR:oi,Z_DATA_ERROR:YR,Z_MEM_ERROR:JR,Z_BUF_ERROR:kQ,Z_DEFLATED:XR}=Wf,Z0=16180,eI=16181,tI=16182,rI=16183,nI=16184,iI=16185,sI=16186,oI=16187,aI=16188,cI=16189,Q0=16190,Cs=16191,S1=16192,uI=16193,k1=16194,lI=16195,fI=16196,hI=16197,dI=16198,Y0=16199,J0=16200,pI=16201,gI=16202,yI=16203,mI=16204,wI=16205,T1=16206,bI=16207,_I=16208,Yt=16209,AI=16210,vI=16211,TQ=852,OQ=592,NQ=15,EI=r=>(r>>>24&255)+(r>>>8&65280)+((r&65280)<<8)+((r&255)<<24);function CQ(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Fa=r=>{if(!r)return 1;const e=r.state;return!e||e.strm!==r||e.mode<Z0||e.mode>vI?1:0},xI=r=>{if(Fa(r))return oi;const e=r.state;return r.total_in=r.total_out=e.total=0,r.msg="",e.wrap&&(r.adler=e.wrap&1),e.mode=Z0,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(TQ),e.distcode=e.distdyn=new Int32Array(OQ),e.sane=1,e.back=-1,$a},RI=r=>{if(Fa(r))return oi;const e=r.state;return e.wsize=0,e.whave=0,e.wnext=0,xI(r)},II=(r,e)=>{let t;if(Fa(r))return oi;const n=r.state;return e<0?(t=0,e=-e):(t=(e>>4)+5,e<48&&(e&=15)),e&&(e<8||e>15)?oi:(n.window!==null&&n.wbits!==e&&(n.window=null),n.wrap=t,n.wbits=e,RI(r))},SI=(r,e)=>{if(!r)return oi;const t=new CQ;r.state=t,t.strm=r,t.window=null,t.mode=Z0;const n=II(r,e);return n!==$a&&(r.state=null),n},BQ=r=>SI(r,NQ);let kI=!0,O1,N1;const PQ=r=>{if(kI){O1=new Int32Array(512),N1=new Int32Array(32);let e=0;for(;e<144;)r.lens[e++]=8;for(;e<256;)r.lens[e++]=9;for(;e<280;)r.lens[e++]=7;for(;e<288;)r.lens[e++]=8;for(eh(qR,r.lens,0,288,O1,0,r.work,{bits:9}),e=0;e<32;)r.lens[e++]=5;eh(ZR,r.lens,0,32,N1,0,r.work,{bits:5}),kI=!1}r.lencode=O1,r.lenbits=9,r.distcode=N1,r.distbits=5},TI=(r,e,t,n)=>{let i;const s=r.state;return s.window===null&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new Uint8Array(s.wsize)),n>=s.wsize?(s.window.set(e.subarray(t-s.wsize,t),0),s.wnext=0,s.whave=s.wsize):(i=s.wsize-s.wnext,i>n&&(i=n),s.window.set(e.subarray(t-n,t-n+i),s.wnext),n-=i,n?(s.window.set(e.subarray(t-n,t),0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0},MQ=(r,e)=>{let t,n,i,s,o,a,u,l,h,g,b,w,I,S,x=0,C,H,D,z,V,Z,K,W;const oe=new Uint8Array(4);let ce,ie;const ue=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Fa(r)||!r.output||!r.input&&r.avail_in!==0)return oi;t=r.state,t.mode===Cs&&(t.mode=S1),o=r.next_out,i=r.output,u=r.avail_out,s=r.next_in,n=r.input,a=r.avail_in,l=t.hold,h=t.bits,g=a,b=u,W=$a;e:for(;;)switch(t.mode){case Z0:if(t.wrap===0){t.mode=S1;break}for(;h<16;){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}if(t.wrap&2&&l===35615){t.wbits===0&&(t.wbits=15),t.check=0,oe[0]=l&255,oe[1]=l>>>8&255,t.check=Dr(t.check,oe,2,0),l=0,h=0,t.mode=eI;break}if(t.head&&(t.head.done=!1),!(t.wrap&1)||(((l&255)<<8)+(l>>8))%31){r.msg="incorrect header check",t.mode=Yt;break}if((l&15)!==XR){r.msg="unknown compression method",t.mode=Yt;break}if(l>>>=4,h-=4,K=(l&15)+8,t.wbits===0&&(t.wbits=K),K>15||K>t.wbits){r.msg="invalid window size",t.mode=Yt;break}t.dmax=1<<t.wbits,t.flags=0,r.adler=t.check=1,t.mode=l&512?cI:Cs,l=0,h=0;break;case eI:for(;h<16;){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}if(t.flags=l,(t.flags&255)!==XR){r.msg="unknown compression method",t.mode=Yt;break}if(t.flags&57344){r.msg="unknown header flags set",t.mode=Yt;break}t.head&&(t.head.text=l>>8&1),t.flags&512&&t.wrap&4&&(oe[0]=l&255,oe[1]=l>>>8&255,t.check=Dr(t.check,oe,2,0)),l=0,h=0,t.mode=tI;case tI:for(;h<32;){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}t.head&&(t.head.time=l),t.flags&512&&t.wrap&4&&(oe[0]=l&255,oe[1]=l>>>8&255,oe[2]=l>>>16&255,oe[3]=l>>>24&255,t.check=Dr(t.check,oe,4,0)),l=0,h=0,t.mode=rI;case rI:for(;h<16;){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}t.head&&(t.head.xflags=l&255,t.head.os=l>>8),t.flags&512&&t.wrap&4&&(oe[0]=l&255,oe[1]=l>>>8&255,t.check=Dr(t.check,oe,2,0)),l=0,h=0,t.mode=nI;case nI:if(t.flags&1024){for(;h<16;){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}t.length=l,t.head&&(t.head.extra_len=l),t.flags&512&&t.wrap&4&&(oe[0]=l&255,oe[1]=l>>>8&255,t.check=Dr(t.check,oe,2,0)),l=0,h=0}else t.head&&(t.head.extra=null);t.mode=iI;case iI:if(t.flags&1024&&(w=t.length,w>a&&(w=a),w&&(t.head&&(K=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(n.subarray(s,s+w),K)),t.flags&512&&t.wrap&4&&(t.check=Dr(t.check,n,w,s)),a-=w,s+=w,t.length-=w),t.length))break e;t.length=0,t.mode=sI;case sI:if(t.flags&2048){if(a===0)break e;w=0;do K=n[s+w++],t.head&&K&&t.length<65536&&(t.head.name+=String.fromCharCode(K));while(K&&w<a);if(t.flags&512&&t.wrap&4&&(t.check=Dr(t.check,n,w,s)),a-=w,s+=w,K)break e}else t.head&&(t.head.name=null);t.length=0,t.mode=oI;case oI:if(t.flags&4096){if(a===0)break e;w=0;do K=n[s+w++],t.head&&K&&t.length<65536&&(t.head.comment+=String.fromCharCode(K));while(K&&w<a);if(t.flags&512&&t.wrap&4&&(t.check=Dr(t.check,n,w,s)),a-=w,s+=w,K)break e}else t.head&&(t.head.comment=null);t.mode=aI;case aI:if(t.flags&512){for(;h<16;){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}if(t.wrap&4&&l!==(t.check&65535)){r.msg="header crc mismatch",t.mode=Yt;break}l=0,h=0}t.head&&(t.head.hcrc=t.flags>>9&1,t.head.done=!0),r.adler=t.check=0,t.mode=Cs;break;case cI:for(;h<32;){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}r.adler=t.check=EI(l),l=0,h=0,t.mode=Q0;case Q0:if(t.havedict===0)return r.next_out=o,r.avail_out=u,r.next_in=s,r.avail_in=a,t.hold=l,t.bits=h,SQ;r.adler=t.check=1,t.mode=Cs;case Cs:if(e===RQ||e===q0)break e;case S1:if(t.last){l>>>=h&7,h-=h&7,t.mode=T1;break}for(;h<3;){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}switch(t.last=l&1,l>>>=1,h-=1,l&3){case 0:t.mode=uI;break;case 1:if(PQ(t),t.mode=Y0,e===q0){l>>>=2,h-=2;break e}break;case 2:t.mode=fI;break;case 3:r.msg="invalid block type",t.mode=Yt}l>>>=2,h-=2;break;case uI:for(l>>>=h&7,h-=h&7;h<32;){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}if((l&65535)!==(l>>>16^65535)){r.msg="invalid stored block lengths",t.mode=Yt;break}if(t.length=l&65535,l=0,h=0,t.mode=k1,e===q0)break e;case k1:t.mode=lI;case lI:if(w=t.length,w){if(w>a&&(w=a),w>u&&(w=u),w===0)break e;i.set(n.subarray(s,s+w),o),a-=w,s+=w,u-=w,o+=w,t.length-=w;break}t.mode=Cs;break;case fI:for(;h<14;){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}if(t.nlen=(l&31)+257,l>>>=5,h-=5,t.ndist=(l&31)+1,l>>>=5,h-=5,t.ncode=(l&15)+4,l>>>=4,h-=4,t.nlen>286||t.ndist>30){r.msg="too many length or distance symbols",t.mode=Yt;break}t.have=0,t.mode=hI;case hI:for(;t.have<t.ncode;){for(;h<3;){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}t.lens[ue[t.have++]]=l&7,l>>>=3,h-=3}for(;t.have<19;)t.lens[ue[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,ce={bits:t.lenbits},W=eh(xQ,t.lens,0,19,t.lencode,0,t.work,ce),t.lenbits=ce.bits,W){r.msg="invalid code lengths set",t.mode=Yt;break}t.have=0,t.mode=dI;case dI:for(;t.have<t.nlen+t.ndist;){for(;x=t.lencode[l&(1<<t.lenbits)-1],C=x>>>24,H=x>>>16&255,D=x&65535,!(C<=h);){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}if(D<16)l>>>=C,h-=C,t.lens[t.have++]=D;else{if(D===16){for(ie=C+2;h<ie;){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}if(l>>>=C,h-=C,t.have===0){r.msg="invalid bit length repeat",t.mode=Yt;break}K=t.lens[t.have-1],w=3+(l&3),l>>>=2,h-=2}else if(D===17){for(ie=C+3;h<ie;){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}l>>>=C,h-=C,K=0,w=3+(l&7),l>>>=3,h-=3}else{for(ie=C+7;h<ie;){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}l>>>=C,h-=C,K=0,w=11+(l&127),l>>>=7,h-=7}if(t.have+w>t.nlen+t.ndist){r.msg="invalid bit length repeat",t.mode=Yt;break}for(;w--;)t.lens[t.have++]=K}}if(t.mode===Yt)break;if(t.lens[256]===0){r.msg="invalid code -- missing end-of-block",t.mode=Yt;break}if(t.lenbits=9,ce={bits:t.lenbits},W=eh(qR,t.lens,0,t.nlen,t.lencode,0,t.work,ce),t.lenbits=ce.bits,W){r.msg="invalid literal/lengths set",t.mode=Yt;break}if(t.distbits=6,t.distcode=t.distdyn,ce={bits:t.distbits},W=eh(ZR,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,ce),t.distbits=ce.bits,W){r.msg="invalid distances set",t.mode=Yt;break}if(t.mode=Y0,e===q0)break e;case Y0:t.mode=J0;case J0:if(a>=6&&u>=258){r.next_out=o,r.avail_out=u,r.next_in=s,r.avail_in=a,t.hold=l,t.bits=h,bQ(r,b),o=r.next_out,i=r.output,u=r.avail_out,s=r.next_in,n=r.input,a=r.avail_in,l=t.hold,h=t.bits,t.mode===Cs&&(t.back=-1);break}for(t.back=0;x=t.lencode[l&(1<<t.lenbits)-1],C=x>>>24,H=x>>>16&255,D=x&65535,!(C<=h);){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}if(H&&!(H&240)){for(z=C,V=H,Z=D;x=t.lencode[Z+((l&(1<<z+V)-1)>>z)],C=x>>>24,H=x>>>16&255,D=x&65535,!(z+C<=h);){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}l>>>=z,h-=z,t.back+=z}if(l>>>=C,h-=C,t.back+=C,t.length=D,H===0){t.mode=wI;break}if(H&32){t.back=-1,t.mode=Cs;break}if(H&64){r.msg="invalid literal/length code",t.mode=Yt;break}t.extra=H&15,t.mode=pI;case pI:if(t.extra){for(ie=t.extra;h<ie;){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}t.length+=l&(1<<t.extra)-1,l>>>=t.extra,h-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=gI;case gI:for(;x=t.distcode[l&(1<<t.distbits)-1],C=x>>>24,H=x>>>16&255,D=x&65535,!(C<=h);){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}if(!(H&240)){for(z=C,V=H,Z=D;x=t.distcode[Z+((l&(1<<z+V)-1)>>z)],C=x>>>24,H=x>>>16&255,D=x&65535,!(z+C<=h);){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}l>>>=z,h-=z,t.back+=z}if(l>>>=C,h-=C,t.back+=C,H&64){r.msg="invalid distance code",t.mode=Yt;break}t.offset=D,t.extra=H&15,t.mode=yI;case yI:if(t.extra){for(ie=t.extra;h<ie;){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}t.offset+=l&(1<<t.extra)-1,l>>>=t.extra,h-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){r.msg="invalid distance too far back",t.mode=Yt;break}t.mode=mI;case mI:if(u===0)break e;if(w=b-u,t.offset>w){if(w=t.offset-w,w>t.whave&&t.sane){r.msg="invalid distance too far back",t.mode=Yt;break}w>t.wnext?(w-=t.wnext,I=t.wsize-w):I=t.wnext-w,w>t.length&&(w=t.length),S=t.window}else S=i,I=o-t.offset,w=t.length;w>u&&(w=u),u-=w,t.length-=w;do i[o++]=S[I++];while(--w);t.length===0&&(t.mode=J0);break;case wI:if(u===0)break e;i[o++]=t.length,u--,t.mode=J0;break;case T1:if(t.wrap){for(;h<32;){if(a===0)break e;a--,l|=n[s++]<<h,h+=8}if(b-=u,r.total_out+=b,t.total+=b,t.wrap&4&&b&&(r.adler=t.check=t.flags?Dr(t.check,i,b,o-b):jf(t.check,i,b,o-b)),b=u,t.wrap&4&&(t.flags?l:EI(l))!==t.check){r.msg="incorrect data check",t.mode=Yt;break}l=0,h=0}t.mode=bI;case bI:if(t.wrap&&t.flags){for(;h<32;){if(a===0)break e;a--,l+=n[s++]<<h,h+=8}if(t.wrap&4&&l!==(t.total&4294967295)){r.msg="incorrect length check",t.mode=Yt;break}l=0,h=0}t.mode=_I;case _I:W=IQ;break e;case Yt:W=YR;break e;case AI:return JR;case vI:default:return oi}return r.next_out=o,r.avail_out=u,r.next_in=s,r.avail_in=a,t.hold=l,t.bits=h,(t.wsize||b!==r.avail_out&&t.mode<Yt&&(t.mode<T1||e!==QR))&&TI(r,r.output,r.next_out,b-r.avail_out),g-=r.avail_in,b-=r.avail_out,r.total_in+=g,r.total_out+=b,t.total+=b,t.wrap&4&&b&&(r.adler=t.check=t.flags?Dr(t.check,i,b,r.next_out-b):jf(t.check,i,b,r.next_out-b)),r.data_type=t.bits+(t.last?64:0)+(t.mode===Cs?128:0)+(t.mode===Y0||t.mode===k1?256:0),(g===0&&b===0||e===QR)&&W===$a&&(W=kQ),W},LQ=r=>{if(Fa(r))return oi;let e=r.state;return e.window&&(e.window=null),r.state=null,$a},UQ=(r,e)=>{if(Fa(r))return oi;const t=r.state;return t.wrap&2?(t.head=e,e.done=!1,$a):oi},DQ=(r,e)=>{const t=e.length;let n,i,s;return Fa(r)||(n=r.state,n.wrap!==0&&n.mode!==Q0)?oi:n.mode===Q0&&(i=1,i=jf(i,e,t,0),i!==n.check)?YR:(s=TI(r,e,t,t),s?(n.mode=AI,JR):(n.havedict=1,$a))};var $Q=RI,FQ=II,HQ=xI,zQ=BQ,GQ=SI,KQ=MQ,jQ=LQ,WQ=UQ,VQ=DQ,qQ="pako inflate (from Nodeca project)",Bs={inflateReset:$Q,inflateReset2:FQ,inflateResetKeep:HQ,inflateInit:zQ,inflateInit2:GQ,inflate:KQ,inflateEnd:jQ,inflateGetHeader:WQ,inflateSetDictionary:VQ,inflateInfo:qQ};function ZQ(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var QQ=ZQ;const OI=Object.prototype.toString,{Z_NO_FLUSH:YQ,Z_FINISH:JQ,Z_OK:th,Z_STREAM_END:C1,Z_NEED_DICT:B1,Z_STREAM_ERROR:XQ,Z_DATA_ERROR:NI,Z_MEM_ERROR:eY}=Wf;function rh(r){this.options=j0.assign({chunkSize:1024*64,windowBits:15,to:""},r||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(r&&r.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zR,this.strm.avail_out=0;let t=Bs.inflateInit2(this.strm,e.windowBits);if(t!==th)throw new Error(_u[t]);if(this.header=new QQ,Bs.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=Xf.string2buf(e.dictionary):OI.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=Bs.inflateSetDictionary(this.strm,e.dictionary),t!==th)))throw new Error(_u[t])}rh.prototype.push=function(r,e){const t=this.strm,n=this.options.chunkSize,i=this.options.dictionary;let s,o,a;if(this.ended)return!1;for(e===~~e?o=e:o=e===!0?JQ:YQ,OI.call(r)==="[object ArrayBuffer]"?t.input=new Uint8Array(r):t.input=r,t.next_in=0,t.avail_in=t.input.length;;){for(t.avail_out===0&&(t.output=new Uint8Array(n),t.next_out=0,t.avail_out=n),s=Bs.inflate(t,o),s===B1&&i&&(s=Bs.inflateSetDictionary(t,i),s===th?s=Bs.inflate(t,o):s===NI&&(s=B1));t.avail_in>0&&s===C1&&t.state.wrap>0&&r[t.next_in]!==0;)Bs.inflateReset(t),s=Bs.inflate(t,o);switch(s){case XQ:case NI:case B1:case eY:return this.onEnd(s),this.ended=!0,!1}if(a=t.avail_out,t.next_out&&(t.avail_out===0||s===C1))if(this.options.to==="string"){let u=Xf.utf8border(t.output,t.next_out),l=t.next_out-u,h=Xf.buf2string(t.output,u);t.next_out=l,t.avail_out=n-l,l&&t.output.set(t.output.subarray(u,u+l),0),this.onData(h)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(!(s===th&&a===0)){if(s===C1)return s=Bs.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(t.avail_in===0)break}}return!0},rh.prototype.onData=function(r){this.chunks.push(r)},rh.prototype.onEnd=function(r){r===th&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=j0.flattenChunks(this.chunks)),this.chunks=[],this.err=r,this.msg=this.strm.msg};function P1(r,e){const t=new rh(e);if(t.push(r),t.err)throw t.msg||_u[t.err];return t.result}function tY(r,e){return e=e||{},e.raw=!0,P1(r,e)}var rY=rh,nY=P1,iY=tY,sY=P1,oY=Wf,aY={Inflate:rY,inflate:nY,inflateRaw:iY,ungzip:sY,constants:oY};const{Inflate:Uae,inflate:cY,inflateRaw:Dae,ungzip:$ae}=aY;var uY=cY,CI={exports:{}};(function(r){var e=Object.prototype.hasOwnProperty,t="~";function n(){}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(t=!1));function i(u,l,h){this.fn=u,this.context=l,this.once=h||!1}function s(u,l,h,g,b){if(typeof h!="function")throw new TypeError("The listener must be a function");var w=new i(h,g||u,b),I=t?t+l:l;return u._events[I]?u._events[I].fn?u._events[I]=[u._events[I],w]:u._events[I].push(w):(u._events[I]=w,u._eventsCount++),u}function o(u,l){--u._eventsCount===0?u._events=new n:delete u._events[l]}function a(){this._events=new n,this._eventsCount=0}a.prototype.eventNames=function(){var l=[],h,g;if(this._eventsCount===0)return l;for(g in h=this._events)e.call(h,g)&&l.push(t?g.slice(1):g);return Object.getOwnPropertySymbols?l.concat(Object.getOwnPropertySymbols(h)):l},a.prototype.listeners=function(l){var h=t?t+l:l,g=this._events[h];if(!g)return[];if(g.fn)return[g.fn];for(var b=0,w=g.length,I=new Array(w);b<w;b++)I[b]=g[b].fn;return I},a.prototype.listenerCount=function(l){var h=t?t+l:l,g=this._events[h];return g?g.fn?1:g.length:0},a.prototype.emit=function(l,h,g,b,w,I){var S=t?t+l:l;if(!this._events[S])return!1;var x=this._events[S],C=arguments.length,H,D;if(x.fn){switch(x.once&&this.removeListener(l,x.fn,void 0,!0),C){case 1:return x.fn.call(x.context),!0;case 2:return x.fn.call(x.context,h),!0;case 3:return x.fn.call(x.context,h,g),!0;case 4:return x.fn.call(x.context,h,g,b),!0;case 5:return x.fn.call(x.context,h,g,b,w),!0;case 6:return x.fn.call(x.context,h,g,b,w,I),!0}for(D=1,H=new Array(C-1);D<C;D++)H[D-1]=arguments[D];x.fn.apply(x.context,H)}else{var z=x.length,V;for(D=0;D<z;D++)switch(x[D].once&&this.removeListener(l,x[D].fn,void 0,!0),C){case 1:x[D].fn.call(x[D].context);break;case 2:x[D].fn.call(x[D].context,h);break;case 3:x[D].fn.call(x[D].context,h,g);break;case 4:x[D].fn.call(x[D].context,h,g,b);break;default:if(!H)for(V=1,H=new Array(C-1);V<C;V++)H[V-1]=arguments[V];x[D].fn.apply(x[D].context,H)}}return!0},a.prototype.on=function(l,h,g){return s(this,l,h,g,!1)},a.prototype.once=function(l,h,g){return s(this,l,h,g,!0)},a.prototype.removeListener=function(l,h,g,b){var w=t?t+l:l;if(!this._events[w])return this;if(!h)return o(this,w),this;var I=this._events[w];if(I.fn)I.fn===h&&(!b||I.once)&&(!g||I.context===g)&&o(this,w);else{for(var S=0,x=[],C=I.length;S<C;S++)(I[S].fn!==h||b&&!I[S].once||g&&I[S].context!==g)&&x.push(I[S]);x.length?this._events[w]=x.length===1?x[0]:x:o(this,w)}return this},a.prototype.removeAllListeners=function(l){var h;return l?(h=t?t+l:l,this._events[h]&&o(this,h)):(this._events=new n,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=t,a.EventEmitter=a,r.exports=a})(CI);var lY=CI.exports;const fY=xn(lY);function hY(r,e){return Array.apply(0,new Array(Math.ceil(r.length/e))).map((t,n)=>r.slice(n*e,(n+1)*e))}const Ha=r=>"version"in r;function dY(r){return new TextDecoder("utf-8").decode(r)}function BI(r){return Or.encode(r)}function PI(r){return Ne.from(r,"base64")}function Io(r){return"accounts"in r}async function pY(r){const e=(await me.findProgramAddress([],r))[0];return await me.createWithSeed(e,gY(),r)}function gY(){return"anchor:idl"}const yY=Xe.struct([Xe.publicKey("authority"),Xe.vecU8("data")]);function mY(r){return yY.decode(r)}function wY(r){const e=["name","path","account","relations","generic"],t=s=>s.split(".").map(Lq).join("."),n=s=>{for(const o in s){const a=s[o];e.includes(o)?s[o]=Array.isArray(a)?a.map(t):t(a):typeof a=="object"&&n(a)}},i=structuredClone(r);return n(i),i}function Su(r,e,t,n){return r!=null&&r.length?r[0].name?t(r):n(r):e()}function bY(r){const e=new Map;return r.errors&&r.errors.forEach(t=>{var n;let i=(n=t.msg)!==null&&n!==void 0?n:t.name;e.set(t.code,i)}),e}function _Y(r,...e){if(r.args.length!=e.length)throw new Error("Invalid argument length");const t={};let n=0;return r.args.forEach(i=>{t[i.name]=e[n],n+=1}),t}function MI(r,e={}){r.forEach(t=>{if(Io(t))MI(t.accounts,e[t.name]);else if(!e[t.name])throw new Error(`Account \`${t.name}\` not provided.`)})}function xi(r){return r instanceof me?r:new me(r)}class AY extends TypeError{constructor(e,t){let n;const{message:i,...s}=e,{path:o}=e,a=o.length===0?i:"At path: "+o.join(".")+" -- "+i;super(a),this.value=void 0,this.key=void 0,this.type=void 0,this.refinement=void 0,this.path=void 0,this.branch=void 0,this.failures=void 0,Object.assign(this,s),this.name=this.constructor.name,this.failures=()=>{var u;return(u=n)!=null?u:n=[e,...t()]}}}function vY(r){return ku(r)&&typeof r[Symbol.iterator]=="function"}function ku(r){return typeof r=="object"&&r!=null}function So(r){return typeof r=="string"?JSON.stringify(r):""+r}function EY(r){const{done:e,value:t}=r.next();return e?void 0:t}function xY(r,e,t,n){if(r===!0)return;r===!1?r={}:typeof r=="string"&&(r={message:r});const{path:i,branch:s}=e,{type:o}=t,{refinement:a,message:u="Expected a value of type `"+o+"`"+(a?" with refinement `"+a+"`":"")+", but received: `"+So(n)+"`"}=r;return{value:n,type:o,refinement:a,key:i[i.length-1],path:i,branch:s,...r,message:u}}function*LI(r,e,t,n){vY(r)||(r=[r]);for(const i of r){const s=xY(i,e,t,n);s&&(yield s)}}function*M1(r,e,t){t===void 0&&(t={});const{path:n=[],branch:i=[r],coerce:s=!1,mask:o=!1}=t,a={path:n,branch:i};if(s&&(r=e.coercer(r,a),o&&e.type!=="type"&&ku(e.schema)&&ku(r)&&!Array.isArray(r)))for(const l in r)e.schema[l]===void 0&&delete r[l];let u=!0;for(const l of e.validator(r,a))u=!1,yield[l,void 0];for(let[l,h,g]of e.entries(r,a)){const b=M1(h,g,{path:l===void 0?n:[...n,l],branch:l===void 0?i:[...i,h],coerce:s,mask:o});for(const w of b)w[0]?(u=!1,yield[w[0],void 0]):s&&(h=w[1],l===void 0?r=h:r instanceof Map?r.set(l,h):r instanceof Set?r.add(h):ku(r)&&(r[l]=h))}if(u)for(const l of e.refiner(r,a))u=!1,yield[l,void 0];u&&(yield[void 0,r])}class ko{constructor(e){this.TYPE=void 0,this.type=void 0,this.schema=void 0,this.coercer=void 0,this.validator=void 0,this.refiner=void 0,this.entries=void 0;const{type:t,schema:n,validator:i,refiner:s,coercer:o=u=>u,entries:a=function*(){}}=e;this.type=t,this.schema=n,this.entries=a,this.coercer=o,i?this.validator=(u,l)=>{const h=i(u,l);return LI(h,l,this,u)}:this.validator=()=>[],s?this.refiner=(u,l)=>{const h=s(u,l);return LI(h,l,this,u)}:this.refiner=()=>[]}assert(e){return RY(e,this)}create(e){return L1(e,this)}is(e){return UI(e,this)}mask(e){return IY(e,this)}validate(e,t){return t===void 0&&(t={}),nh(e,this,t)}}function RY(r,e){const t=nh(r,e);if(t[0])throw t[0]}function L1(r,e){const t=nh(r,e,{coerce:!0});if(t[0])throw t[0];return t[1]}function IY(r,e){const t=nh(r,e,{coerce:!0,mask:!0});if(t[0])throw t[0];return t[1]}function UI(r,e){return!nh(r,e)[0]}function nh(r,e,t){t===void 0&&(t={});const n=M1(r,e,t),i=EY(n);return i[0]?[new AY(i[0],function*(){for(const o of n)o[0]&&(yield o[0])}),void 0]:[void 0,i[1]]}function ih(r,e){return new ko({type:r,schema:null,validator:e})}function SY(){return ih("any",()=>!0)}function U1(r){return new ko({type:"array",schema:r,*entries(e){if(r&&Array.isArray(e))for(const[t,n]of e.entries())yield[t,n,r]},coercer(e){return Array.isArray(e)?e.slice():e},validator(e){return Array.isArray(e)||"Expected an array value, but received: "+So(e)}})}function kY(){return ih("boolean",r=>typeof r=="boolean")}function DI(r){const e=So(r);return new ko({type:"literal",schema:r,validator(t){return t===r||"Expected the literal `"+e+"`, but received: "+So(t)}})}function X0(r){return new ko({...r,validator:(e,t)=>e===null||r.validator(e,t),refiner:(e,t)=>e===null||r.refiner(e,t)})}function ep(){return ih("number",r=>typeof r=="number"&&!isNaN(r)||"Expected a number, but received: "+So(r))}function tp(r){return new ko({...r,validator:(e,t)=>e===void 0||r.validator(e,t),refiner:(e,t)=>e===void 0||r.refiner(e,t)})}function za(){return ih("string",r=>typeof r=="string"||"Expected a string, but received: "+So(r))}function To(r){const e=Object.keys(r);return new ko({type:"type",schema:r,*entries(t){if(ku(t))for(const n of e)yield[n,t[n],r[n]]},validator(t){return ku(t)||"Expected an object, but received: "+So(t)}})}function $I(r){const e=r.map(t=>t.type).join(" | ");return new ko({type:"union",schema:null,coercer(t,n){return(r.find(s=>{const[o]=s.validate(t,{coerce:!0});return!o})||D1()).coercer(t,n)},validator(t,n){const i=[];for(const s of r){const[...o]=M1(t,s,n),[a]=o;if(a[0])for(const[u]of o)u&&i.push(u);else return[]}return["Expected the value to satisfy a union of `"+e+"`, but received: "+So(t),...i]}})}function D1(){return ih("unknown",()=>!0)}function TY(r,e,t){return new ko({...r,coercer:(n,i)=>UI(n,e)?r.coercer(t(n,i),i):r.coercer(n,i)})}const FI=99;async function OY(r,e,t){if(e.length<=FI)return await HI(r,e,t);{const n=hY(e,FI);return(await Promise.all(n.map(s=>HI(r,s,t)))).flat()}}async function HI(r,e,t){const n=t??r.commitment,{value:i,context:s}=await r.getMultipleAccountsInfoAndContext(e,n);return i.map((a,u)=>a===null?null:{publicKey:e[u],account:a,context:s})}async function NY(r,e,t,n,i){var s;t&&t.length>0&&e.sign(...t);const o=e._compile(),a=o.serialize(),l=e._serialize(a).toString("base64"),h={encoding:"base64",commitment:n??r.commitment};if(i){const I=(Array.isArray(i)?i:o.nonProgramIds()).map(S=>S.toBase58());h.accounts={encoding:"base64",addresses:I}}t&&t.length>0&&(h.sigVerify=!0);const g=[l,h],b=await r._rpcRequest("simulateTransaction",g),w=L1(b,MY);if("error"in w){let I;if("data"in w.error&&(I=(s=w.error.data)===null||s===void 0?void 0:s.logs,I&&Array.isArray(I))){const S=`
|
|
26
|
-
`,x=S+I.join(S);console.error(w.error.message,x)}throw new _o("failed to simulate transaction: "+w.error.message,I)}return w.result}function CY(r){return TY(zI(r),BY,e=>"error"in e?e:{...e,result:L1(e.result,r)})}const BY=zI(D1());function zI(r){return $I([To({jsonrpc:DI("2.0"),id:za(),result:r}),To({jsonrpc:DI("2.0"),id:za(),error:To({code:D1(),message:za(),data:tp(SY())})})])}function PY(r){return CY(To({context:To({slot:ep()}),value:r}))}const MY=PY(To({err:X0($I([To({}),za()])),logs:X0(U1(za())),accounts:tp(X0(U1(X0(To({executable:kY(),owner:za(),lamports:ep(),data:U1(za()),rentEpoch:tp(ep())}))))),unitsConsumed:tp(ep())}));class sh{constructor(e,t,n=sh.defaultOptions()){this.connection=e,this.wallet=t,this.opts=n,this.publicKey=t==null?void 0:t.publicKey}static defaultOptions(){return{preflightCommitment:"processed",commitment:"processed"}}static local(e,t=sh.defaultOptions()){throw new Error("Provider local is not available on browser.")}static env(){throw new Error("Provider env is not available on browser.")}async sendAndConfirm(e,t,n){var i,s,o,a;if(n===void 0&&(n=this.opts),Ha(e))t&&e.sign(t);else if(e.feePayer=(i=e.feePayer)!==null&&i!==void 0?i:this.wallet.publicKey,e.recentBlockhash=(await this.connection.getLatestBlockhash(n.preflightCommitment)).blockhash,t)for(const l of t)e.partialSign(l);e=await this.wallet.signTransaction(e);const u=e.serialize();try{return await GI(this.connection,u,n)}catch(l){if(l instanceof $1){const h=BI(Ha(e)?((s=e.signatures)===null||s===void 0?void 0:s[0])||new Uint8Array:(o=e.signature)!==null&&o!==void 0?o:new Uint8Array),g=Ha(e)?0:void 0,b=await this.connection.getTransaction(h,{commitment:"confirmed",maxSupportedTransactionVersion:g});if(b){const w=(a=b.meta)===null||a===void 0?void 0:a.logMessages;throw w?new _o(l.message,w):l}else throw l}else throw l}}async sendAll(e,t){var n,i,s;t===void 0&&(t=this.opts);const o=(await this.connection.getLatestBlockhash(t.preflightCommitment)).blockhash;let a=e.map(h=>{var g,b;if(Ha(h.tx)){let w=h.tx;return h.signers&&w.sign(h.signers),w}else{let w=h.tx,I=(g=h.signers)!==null&&g!==void 0?g:[];return w.feePayer=(b=w.feePayer)!==null&&b!==void 0?b:this.wallet.publicKey,w.recentBlockhash=o,I.forEach(S=>{w.partialSign(S)}),w}});const u=await this.wallet.signAllTransactions(a),l=[];for(let h=0;h<a.length;h+=1){const g=u[h],b=g.serialize();try{l.push(await GI(this.connection,b,t))}catch(w){if(w instanceof $1){const I=BI(Ha(g)?((n=g.signatures)===null||n===void 0?void 0:n[0])||new Uint8Array:(i=g.signature)!==null&&i!==void 0?i:new Uint8Array),S=Ha(g)?0:void 0,x=await this.connection.getTransaction(I,{commitment:"confirmed",maxSupportedTransactionVersion:S});if(x){const C=(s=x.meta)===null||s===void 0?void 0:s.logMessages;throw C?new _o(w.message,C):w}else throw w}else throw w}}return l}async simulate(e,t,n,i){let s=(await this.connection.getLatestBlockhash(n??this.connection.commitment)).blockhash,o;if(Ha(e)?(t&&t.length>0&&(e.sign(t),e=await this.wallet.signTransaction(e)),o=await this.connection.simulateTransaction(e,{commitment:n})):(e.feePayer=e.feePayer||this.wallet.publicKey,e.recentBlockhash=s,t&&t.length>0&&(e=await this.wallet.signTransaction(e)),o=await NY(this.connection,e,t,n,i)),o.value.err)throw new LY(o.value);return o.value}}class LY extends Error{constructor(e,t){super(t),this.simulationResponse=e}}async function GI(r,e,t){const n=t?{skipPreflight:t.skipPreflight,preflightCommitment:t.preflightCommitment||t.commitment,maxRetries:t.maxRetries,minContextSlot:t.minContextSlot}:{};let i;const s=Date.now();for(;Date.now()-s<6e4;)try{const o=await r.sendRawTransaction(e,n);if(t!=null&&t.blockhash)if(n.maxRetries===0){const a=AbortSignal.timeout(15e3);i=(await r.confirmTransaction({abortSignal:a,signature:o,...t.blockhash},t&&t.commitment)).value}else i=(await r.confirmTransaction({signature:o,...t.blockhash},t&&t.commitment)).value;else i=(await r.confirmTransaction(o,t&&t.commitment)).value;if(i.err)throw new $1(`Raw transaction ${o} failed (${JSON.stringify(i)})`);return o}catch(o){if(o.name==="TimeoutError")continue;throw o}throw Error("Transaction failed to confirm in 60s")}class $1 extends Error{constructor(e){super(e)}}function F1(){return sh.local()}var UY=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof Zc<"u"?Zc:typeof self<"u"?self:{},ee={};Object.defineProperty(ee,"__esModule",{value:!0});var KI=ee.ANCHOR_ERROR__REQUIRE_EQ_VIOLATED=FS=ee.ANCHOR_ERROR__REQUIRE_VIOLATED=$S=ee.ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION_PROGRAM_ID=DS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION_AUTHORITY=US=ee.ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION=LS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_PERMANENT_DELEGATE_EXTENSION_DELEGATE=MS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_PERMANENT_DELEGATE_EXTENSION=PS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_CLOSE_AUTHORITY_EXTENSION_AUTHORITY=BS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_CLOSE_AUTHORITY_EXTENSION=CS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION_METADATA_ADDRESS=NS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION_AUTHORITY=OS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION=TS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION_MEMBER_ADDRESS=kS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION_AUTHORITY=SS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION=IS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION_GROUP_ADDRESS=RS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION_AUTHORITY=xS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION=ES=ee.ANCHOR_ERROR__CONSTRAINT_ASSOCIATED_TOKEN_TOKEN_PROGRAM=vS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_TOKEN_PROGRAM=AS=ee.ANCHOR_ERROR__CONSTRAINT_TOKEN_TOKEN_PROGRAM=_S=ee.ANCHOR_ERROR__CONSTRAINT_ACCOUNT_IS_NONE=bS=ee.ANCHOR_ERROR__CONSTRAINT_SPACE=wS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_DECIMALS=mS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_FREEZE_AUTHORITY=yS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_MINT_AUTHORITY=gS=ee.ANCHOR_ERROR__CONSTRAINT_TOKEN_OWNER=pS=ee.ANCHOR_ERROR__CONSTRAINT_TOKEN_MINT=dS=ee.ANCHOR_ERROR__CONSTRAINT_ZERO=hS=ee.ANCHOR_ERROR__CONSTRAINT_ADDRESS=fS=ee.ANCHOR_ERROR__CONSTRAINT_CLOSE=lS=ee.ANCHOR_ERROR__CONSTRAINT_ASSOCIATED_INIT=uS=ee.ANCHOR_ERROR__CONSTRAINT_ASSOCIATED=cS=ee.ANCHOR_ERROR__CONSTRAINT_STATE=aS=ee.ANCHOR_ERROR__CONSTRAINT_EXECUTABLE=oS=ee.ANCHOR_ERROR__CONSTRAINT_SEEDS=sS=ee.ANCHOR_ERROR__CONSTRAINT_RENT_EXEMPT=iS=ee.ANCHOR_ERROR__CONSTRAINT_OWNER=nS=ee.ANCHOR_ERROR__CONSTRAINT_RAW=rS=ee.ANCHOR_ERROR__CONSTRAINT_SIGNER=tS=ee.ANCHOR_ERROR__CONSTRAINT_HAS_ONE=eS=ee.ANCHOR_ERROR__CONSTRAINT_MUT=XI=ee.ANCHOR_ERROR__EVENT_INSTRUCTION_STUB=JI=ee.ANCHOR_ERROR__IDL_ACCOUNT_NOT_EMPTY=YI=ee.ANCHOR_ERROR__IDL_INSTRUCTION_INVALID_PROGRAM=QI=ee.ANCHOR_ERROR__IDL_INSTRUCTION_STUB=ZI=ee.ANCHOR_ERROR__INSTRUCTION_DID_NOT_SERIALIZE=qI=ee.ANCHOR_ERROR__INSTRUCTION_DID_NOT_DESERIALIZE=VI=ee.ANCHOR_ERROR__INSTRUCTION_FALLBACK_NOT_FOUND=WI=ee.ANCHOR_ERROR__INSTRUCTION_MISSING=void 0,jI=ee.ANCHOR_ERROR__DEPRECATED=hk=ee.ANCHOR_ERROR__INVALID_NUMERIC_CONVERSION=fk=ee.ANCHOR_ERROR__TRYING_TO_INIT_PAYER_AS_PROGRAM_ACCOUNT=lk=ee.ANCHOR_ERROR__DECLARED_PROGRAM_ID_MISMATCH=uk=ee.ANCHOR_ERROR__ACCOUNT_DUPLICATE_REALLOCS=ck=ee.ANCHOR_ERROR__ACCOUNT_REALLOC_EXCEEDS_LIMIT=ak=ee.ANCHOR_ERROR__ACCOUNT_SYSVAR_MISMATCH=ok=ee.ANCHOR_ERROR__ACCOUNT_NOT_ASSOCIATED_TOKEN_ACCOUNT=sk=ee.ANCHOR_ERROR__ACCOUNT_NOT_PROGRAM_DATA=ik=ee.ANCHOR_ERROR__ACCOUNT_NOT_INITIALIZED=nk=ee.ANCHOR_ERROR__ACCOUNT_NOT_SYSTEM_OWNED=rk=ee.ANCHOR_ERROR__ACCOUNT_NOT_SIGNER=tk=ee.ANCHOR_ERROR__INVALID_PROGRAM_EXECUTABLE=ek=ee.ANCHOR_ERROR__INVALID_PROGRAM_ID=XS=ee.ANCHOR_ERROR__ACCOUNT_OWNED_BY_WRONG_PROGRAM=JS=ee.ANCHOR_ERROR__ACCOUNT_NOT_MUTABLE=YS=ee.ANCHOR_ERROR__ACCOUNT_NOT_ENOUGH_KEYS=QS=ee.ANCHOR_ERROR__ACCOUNT_DID_NOT_SERIALIZE=ZS=ee.ANCHOR_ERROR__ACCOUNT_DID_NOT_DESERIALIZE=qS=ee.ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_MISMATCH=VS=ee.ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_NOT_FOUND=WS=ee.ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_ALREADY_SET=jS=ee.ANCHOR_ERROR__REQUIRE_GTE_VIOLATED=KS=ee.ANCHOR_ERROR__REQUIRE_GT_VIOLATED=GS=ee.ANCHOR_ERROR__REQUIRE_KEYS_NEQ_VIOLATED=zS=ee.ANCHOR_ERROR__REQUIRE_NEQ_VIOLATED=HS=ee.ANCHOR_ERROR__REQUIRE_KEYS_EQ_VIOLATED=void 0,WI=ee.ANCHOR_ERROR__INSTRUCTION_MISSING=100,VI=ee.ANCHOR_ERROR__INSTRUCTION_FALLBACK_NOT_FOUND=101,qI=ee.ANCHOR_ERROR__INSTRUCTION_DID_NOT_DESERIALIZE=102,ZI=ee.ANCHOR_ERROR__INSTRUCTION_DID_NOT_SERIALIZE=103,QI=ee.ANCHOR_ERROR__IDL_INSTRUCTION_STUB=1e3,YI=ee.ANCHOR_ERROR__IDL_INSTRUCTION_INVALID_PROGRAM=1001,JI=ee.ANCHOR_ERROR__IDL_ACCOUNT_NOT_EMPTY=1002,XI=ee.ANCHOR_ERROR__EVENT_INSTRUCTION_STUB=1500,eS=ee.ANCHOR_ERROR__CONSTRAINT_MUT=2e3,tS=ee.ANCHOR_ERROR__CONSTRAINT_HAS_ONE=2001,rS=ee.ANCHOR_ERROR__CONSTRAINT_SIGNER=2002,nS=ee.ANCHOR_ERROR__CONSTRAINT_RAW=2003,iS=ee.ANCHOR_ERROR__CONSTRAINT_OWNER=2004,sS=ee.ANCHOR_ERROR__CONSTRAINT_RENT_EXEMPT=2005,oS=ee.ANCHOR_ERROR__CONSTRAINT_SEEDS=2006,aS=ee.ANCHOR_ERROR__CONSTRAINT_EXECUTABLE=2007,cS=ee.ANCHOR_ERROR__CONSTRAINT_STATE=2008,uS=ee.ANCHOR_ERROR__CONSTRAINT_ASSOCIATED=2009,lS=ee.ANCHOR_ERROR__CONSTRAINT_ASSOCIATED_INIT=2010,fS=ee.ANCHOR_ERROR__CONSTRAINT_CLOSE=2011,hS=ee.ANCHOR_ERROR__CONSTRAINT_ADDRESS=2012,dS=ee.ANCHOR_ERROR__CONSTRAINT_ZERO=2013,pS=ee.ANCHOR_ERROR__CONSTRAINT_TOKEN_MINT=2014,gS=ee.ANCHOR_ERROR__CONSTRAINT_TOKEN_OWNER=2015,yS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_MINT_AUTHORITY=2016,mS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_FREEZE_AUTHORITY=2017,wS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_DECIMALS=2018,bS=ee.ANCHOR_ERROR__CONSTRAINT_SPACE=2019,_S=ee.ANCHOR_ERROR__CONSTRAINT_ACCOUNT_IS_NONE=2020,AS=ee.ANCHOR_ERROR__CONSTRAINT_TOKEN_TOKEN_PROGRAM=2021,vS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_TOKEN_PROGRAM=2022,ES=ee.ANCHOR_ERROR__CONSTRAINT_ASSOCIATED_TOKEN_TOKEN_PROGRAM=2023,xS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION=2024,RS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION_AUTHORITY=2025,IS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION_GROUP_ADDRESS=2026,SS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION=2027,kS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION_AUTHORITY=2028,TS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION_MEMBER_ADDRESS=2029,OS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION=2030,NS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION_AUTHORITY=2031,CS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION_METADATA_ADDRESS=2032,BS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_CLOSE_AUTHORITY_EXTENSION=2033,PS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_CLOSE_AUTHORITY_EXTENSION_AUTHORITY=2034,MS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_PERMANENT_DELEGATE_EXTENSION=2035,LS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_PERMANENT_DELEGATE_EXTENSION_DELEGATE=2036,US=ee.ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION=2037,DS=ee.ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION_AUTHORITY=2038,$S=ee.ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION_PROGRAM_ID=2039,FS=ee.ANCHOR_ERROR__REQUIRE_VIOLATED=2500;KI=ee.ANCHOR_ERROR__REQUIRE_EQ_VIOLATED=2501;var HS=ee.ANCHOR_ERROR__REQUIRE_KEYS_EQ_VIOLATED=2502,zS=ee.ANCHOR_ERROR__REQUIRE_NEQ_VIOLATED=2503,GS=ee.ANCHOR_ERROR__REQUIRE_KEYS_NEQ_VIOLATED=2504,KS=ee.ANCHOR_ERROR__REQUIRE_GT_VIOLATED=2505,jS=ee.ANCHOR_ERROR__REQUIRE_GTE_VIOLATED=2506,WS=ee.ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_ALREADY_SET=3e3,VS=ee.ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_NOT_FOUND=3001,qS=ee.ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_MISMATCH=3002,ZS=ee.ANCHOR_ERROR__ACCOUNT_DID_NOT_DESERIALIZE=3003,QS=ee.ANCHOR_ERROR__ACCOUNT_DID_NOT_SERIALIZE=3004,YS=ee.ANCHOR_ERROR__ACCOUNT_NOT_ENOUGH_KEYS=3005,JS=ee.ANCHOR_ERROR__ACCOUNT_NOT_MUTABLE=3006,XS=ee.ANCHOR_ERROR__ACCOUNT_OWNED_BY_WRONG_PROGRAM=3007,ek=ee.ANCHOR_ERROR__INVALID_PROGRAM_ID=3008,tk=ee.ANCHOR_ERROR__INVALID_PROGRAM_EXECUTABLE=3009,rk=ee.ANCHOR_ERROR__ACCOUNT_NOT_SIGNER=3010,nk=ee.ANCHOR_ERROR__ACCOUNT_NOT_SYSTEM_OWNED=3011,ik=ee.ANCHOR_ERROR__ACCOUNT_NOT_INITIALIZED=3012,sk=ee.ANCHOR_ERROR__ACCOUNT_NOT_PROGRAM_DATA=3013,ok=ee.ANCHOR_ERROR__ACCOUNT_NOT_ASSOCIATED_TOKEN_ACCOUNT=3014,ak=ee.ANCHOR_ERROR__ACCOUNT_SYSVAR_MISMATCH=3015,ck=ee.ANCHOR_ERROR__ACCOUNT_REALLOC_EXCEEDS_LIMIT=3016,uk=ee.ANCHOR_ERROR__ACCOUNT_DUPLICATE_REALLOCS=3017,lk=ee.ANCHOR_ERROR__DECLARED_PROGRAM_ID_MISMATCH=4100,fk=ee.ANCHOR_ERROR__TRYING_TO_INIT_PAYER_AS_PROGRAM_ACCOUNT=4101,hk=ee.ANCHOR_ERROR__INVALID_NUMERIC_CONVERSION=4102;jI=ee.ANCHOR_ERROR__DEPRECATED=5e3;const DY=new Map;function dk(r){return DY.get(r)!==void 0}class Oo extends Error{constructor(e){super(e),this.name="IdlError"}}class oh{constructor(e){this.stack=e}static parse(e){var t;const n=/^Program (\w*) invoke/,i=/^Program \w* success/,s=[];for(let o=0;o<e.length;o++){if(i.exec(e[o])){s.pop();continue}const a=(t=n.exec(e[o]))===null||t===void 0?void 0:t[1];a&&s.push(new me(a))}return new oh(s)}}class ah extends Error{constructor(e,t,n,i,s,o){super(n.join(`
|
|
27
|
-
`).replace("Program log: ","")),this.errorLogs=n,this.logs=i,this.error={errorCode:e,errorMessage:t,comparedValues:o,origin:s},this._programErrorStack=oh.parse(i)}static parse(e){if(!e)return null;const t=e.findIndex(b=>b.startsWith("Program log: AnchorError"));if(t===-1)return null;const n=e[t],i=[n];let s;if(t+1<e.length){if(e[t+1]==="Program log: Left:"){const b=/^Program log: (.*)$/,w=b.exec(e[t+2])[1],I=b.exec(e[t+4])[1];s=[new me(w),new me(I)],i.push(...e.slice(t+1,t+5))}else if(e[t+1].startsWith("Program log: Left:")){const b=/^Program log: (Left|Right): (.*)$/,w=b.exec(e[t+1])[2],I=b.exec(e[t+2])[2];i.push(...e.slice(t+1,t+3)),s=[w,I]}}const a=/^Program log: AnchorError occurred\. Error Code: (.*)\. Error Number: (\d*)\. Error Message: (.*)\./.exec(n),l=/^Program log: AnchorError thrown in (.*):(\d*)\. Error Code: (.*)\. Error Number: (\d*)\. Error Message: (.*)\./.exec(n),g=/^Program log: AnchorError caused by account: (.*)\. Error Code: (.*)\. Error Number: (\d*)\. Error Message: (.*)\./.exec(n);if(a){const[b,w,I]=a.slice(1,4),S={code:b,number:parseInt(w)};return new ah(S,I,i,e,void 0,s)}else if(l){const[b,w,I,S,x]=l.slice(1,6),C={code:I,number:parseInt(S)},H={file:b,line:parseInt(w)};return new ah(C,x,i,e,H,s)}else if(g){const[b,w,I,S]=g.slice(1,5),x=b,C={code:w,number:parseInt(I)};return new ah(C,S,i,e,x,s)}else return null}get program(){return this._programErrorStack.stack[this._programErrorStack.stack.length-1]}get programErrorStack(){return this._programErrorStack.stack}toString(){return this.message}}class rp extends Error{constructor(e,t,n){super(),this.code=e,this.msg=t,this.logs=n,n&&(this._programErrorStack=oh.parse(n))}static parse(e,t){const n=e.toString();let i;if(n.includes("custom program error:")){let a=n.split("custom program error: ");if(a.length!==2)return null;i=a[1]}else{const a=n.match(/"Custom":([0-9]+)}/g);if(!a||a.length>1)return null;i=a[0].match(/([0-9]+)/g)[0]}let s;try{s=parseInt(i)}catch{return null}let o=t.get(s);return o!==void 0?new rp(s,o,e.logs):(o=$Y.get(s),o!==void 0?new rp(s,o,e.logs):null)}get program(){var e;return(e=this._programErrorStack)===null||e===void 0?void 0:e.stack[this._programErrorStack.stack.length-1]}get programErrorStack(){var e;return(e=this._programErrorStack)===null||e===void 0?void 0:e.stack}toString(){return this.msg}}function pk(r,e){dk("debug-logs")&&console.log("Translating error:",r);const t=ah.parse(r.logs);if(t)return t;const n=rp.parse(r,e);if(n)return n;if(r.logs){const i={get:function(s,o){return o==="programErrorStack"?s.programErrorStack.stack:o==="program"?s.programErrorStack.stack[r.programErrorStack.stack.length-1]:Reflect.get(...arguments)}};return r.programErrorStack=oh.parse(r.logs),new Proxy(r,i)}return r}const ve={InstructionMissing:WI,InstructionFallbackNotFound:VI,InstructionDidNotDeserialize:qI,InstructionDidNotSerialize:ZI,IdlInstructionStub:QI,IdlInstructionInvalidProgram:YI,IdlAccountNotEmpty:JI,EventInstructionStub:XI,ConstraintMut:eS,ConstraintHasOne:tS,ConstraintSigner:rS,ConstraintRaw:nS,ConstraintOwner:iS,ConstraintRentExempt:sS,ConstraintSeeds:oS,ConstraintExecutable:aS,ConstraintState:cS,ConstraintAssociated:uS,ConstraintAssociatedInit:lS,ConstraintClose:fS,ConstraintAddress:hS,ConstraintZero:dS,ConstraintTokenMint:pS,ConstraintTokenOwner:gS,ConstraintMintMintAuthority:yS,ConstraintMintFreezeAuthority:mS,ConstraintMintDecimals:wS,ConstraintSpace:bS,ConstraintAccountIsNone:_S,ConstraintTokenTokenProgram:AS,ConstraintMintTokenProgram:vS,ConstraintAssociatedTokenTokenProgram:ES,ConstraintMintGroupPointerExtension:xS,ConstraintMintGroupPointerExtensionAuthority:RS,ConstraintMintGroupPointerExtensionGroupAddress:IS,ConstraintMintGroupMemberPointerExtension:SS,ConstraintMintGroupMemberPointerExtensionAuthority:kS,ConstraintMintGroupMemberPointerExtensionMemberAddress:TS,ConstraintMintMetadataPointerExtension:OS,ConstraintMintMetadataPointerExtensionAuthority:NS,ConstraintMintMetadataPointerExtensionMetadataAddress:CS,ConstraintMintCloseAuthorityExtension:BS,ConstraintMintCloseAuthorityExtensionAuthority:PS,ConstraintMintPermanentDelegateExtension:MS,ConstraintMintPermanentDelegateExtensionDelegate:LS,ConstraintMintTransferHookExtension:US,ConstraintMintTransferHookExtensionAuthority:DS,ConstraintMintTransferHookExtensionProgramId:$S,RequireViolated:FS,RequireEqViolated:KI,RequireKeysEqViolated:HS,RequireNeqViolated:zS,RequireKeysNeqViolated:GS,RequireGtViolated:KS,RequireGteViolated:jS,AccountDiscriminatorAlreadySet:WS,AccountDiscriminatorNotFound:VS,AccountDiscriminatorMismatch:qS,AccountDidNotDeserialize:ZS,AccountDidNotSerialize:QS,AccountNotEnoughKeys:YS,AccountNotMutable:JS,AccountOwnedByWrongProgram:XS,InvalidProgramId:ek,InvalidProgramExecutable:tk,AccountNotSigner:rk,AccountNotSystemOwned:nk,AccountNotInitialized:ik,AccountNotProgramData:sk,AccountNotAssociatedTokenAccount:ok,AccountSysvarMismatch:ak,AccountReallocExceedsLimit:ck,AccountDuplicateReallocs:uk,DeclaredProgramIdMismatch:lk,TryingToInitPayerAsProgramAccount:fk,InvalidNumericConversion:hk,Deprecated:jI},$Y=new Map([[ve.InstructionMissing,"Instruction discriminator not provided"],[ve.InstructionFallbackNotFound,"Fallback functions are not supported"],[ve.InstructionDidNotDeserialize,"The program could not deserialize the given instruction"],[ve.InstructionDidNotSerialize,"The program could not serialize the given instruction"],[ve.IdlInstructionStub,"The program was compiled without idl instructions"],[ve.IdlInstructionInvalidProgram,"The transaction was given an invalid program for the IDL instruction"],[ve.IdlAccountNotEmpty,"IDL account must be empty in order to resize, try closing first"],[ve.EventInstructionStub,"The program was compiled without `event-cpi` feature"],[ve.ConstraintMut,"A mut constraint was violated"],[ve.ConstraintHasOne,"A has one constraint was violated"],[ve.ConstraintSigner,"A signer constraint was violated"],[ve.ConstraintRaw,"A raw constraint was violated"],[ve.ConstraintOwner,"An owner constraint was violated"],[ve.ConstraintRentExempt,"A rent exemption constraint was violated"],[ve.ConstraintSeeds,"A seeds constraint was violated"],[ve.ConstraintExecutable,"An executable constraint was violated"],[ve.ConstraintState,"Deprecated Error, feel free to replace with something else"],[ve.ConstraintAssociated,"An associated constraint was violated"],[ve.ConstraintAssociatedInit,"An associated init constraint was violated"],[ve.ConstraintClose,"A close constraint was violated"],[ve.ConstraintAddress,"An address constraint was violated"],[ve.ConstraintZero,"Expected zero account discriminant"],[ve.ConstraintTokenMint,"A token mint constraint was violated"],[ve.ConstraintTokenOwner,"A token owner constraint was violated"],[ve.ConstraintMintMintAuthority,"A mint mint authority constraint was violated"],[ve.ConstraintMintFreezeAuthority,"A mint freeze authority constraint was violated"],[ve.ConstraintMintDecimals,"A mint decimals constraint was violated"],[ve.ConstraintSpace,"A space constraint was violated"],[ve.ConstraintAccountIsNone,"A required account for the constraint is None"],[ve.ConstraintTokenTokenProgram,"A token account token program constraint was violated"],[ve.ConstraintMintTokenProgram,"A mint token program constraint was violated"],[ve.ConstraintAssociatedTokenTokenProgram,"An associated token account token program constraint was violated"],[ve.ConstraintMintGroupPointerExtension,"A group pointer extension constraint was violated"],[ve.ConstraintMintGroupPointerExtensionAuthority,"A group pointer extension authority constraint was violated"],[ve.ConstraintMintGroupPointerExtensionGroupAddress,"A group pointer extension group address constraint was violated"],[ve.ConstraintMintGroupMemberPointerExtension,"A group member pointer extension constraint was violated"],[ve.ConstraintMintGroupMemberPointerExtensionAuthority,"A group member pointer extension authority constraint was violated"],[ve.ConstraintMintGroupMemberPointerExtensionMemberAddress,"A group member pointer extension group address constraint was violated"],[ve.ConstraintMintMetadataPointerExtension,"A metadata pointer extension constraint was violated"],[ve.ConstraintMintMetadataPointerExtensionAuthority,"A metadata pointer extension authority constraint was violated"],[ve.ConstraintMintMetadataPointerExtensionMetadataAddress,"A metadata pointer extension metadata address constraint was violated"],[ve.ConstraintMintCloseAuthorityExtension,"A close authority constraint was violated"],[ve.ConstraintMintCloseAuthorityExtensionAuthority,"A close authority extension authority constraint was violated"],[ve.ConstraintMintPermanentDelegateExtension,"A permanent delegate extension constraint was violated"],[ve.ConstraintMintPermanentDelegateExtensionDelegate,"A permanent delegate extension delegate constraint was violated"],[ve.ConstraintMintTransferHookExtension,"A transfer hook extension constraint was violated"],[ve.ConstraintMintTransferHookExtensionAuthority,"A transfer hook extension authority constraint was violated"],[ve.ConstraintMintTransferHookExtensionProgramId,"A transfer hook extension transfer hook program id constraint was violated"],[ve.RequireViolated,"A require expression was violated"],[ve.RequireEqViolated,"A require_eq expression was violated"],[ve.RequireKeysEqViolated,"A require_keys_eq expression was violated"],[ve.RequireNeqViolated,"A require_neq expression was violated"],[ve.RequireKeysNeqViolated,"A require_keys_neq expression was violated"],[ve.RequireGtViolated,"A require_gt expression was violated"],[ve.RequireGteViolated,"A require_gte expression was violated"],[ve.AccountDiscriminatorAlreadySet,"The account discriminator was already set on this account"],[ve.AccountDiscriminatorNotFound,"No discriminator was found on the account"],[ve.AccountDiscriminatorMismatch,"Account discriminator did not match what was expected"],[ve.AccountDidNotDeserialize,"Failed to deserialize the account"],[ve.AccountDidNotSerialize,"Failed to serialize the account"],[ve.AccountNotEnoughKeys,"Not enough account keys given to the instruction"],[ve.AccountNotMutable,"The given account is not mutable"],[ve.AccountOwnedByWrongProgram,"The given account is owned by a different program than expected"],[ve.InvalidProgramId,"Program ID was not as expected"],[ve.InvalidProgramExecutable,"Program account is not executable"],[ve.AccountNotSigner,"The given account did not sign"],[ve.AccountNotSystemOwned,"The given account is not owned by the system program"],[ve.AccountNotInitialized,"The program expected this account to be already initialized"],[ve.AccountNotProgramData,"The given account is not a program data account"],[ve.AccountNotAssociatedTokenAccount,"The given account is not the associated token account"],[ve.AccountSysvarMismatch,"The given public key does not match the required sysvar"],[ve.AccountReallocExceedsLimit,"The account reallocation exceeds the MAX_PERMITTED_DATA_INCREASE limit"],[ve.AccountDuplicateReallocs,"The account was duplicated for more than one reallocation"],[ve.DeclaredProgramIdMismatch,"The declared program id does not match the actual program id"],[ve.TryingToInitPayerAsProgramAccount,"You cannot/should not initialize the payer account as a program account"],[ve.InvalidNumericConversion,"The program could not perform the numeric conversion, out of range integral type conversion attempted"],[ve.Deprecated,"The API being used is deprecated and should no longer be used"]]);class mt{static fieldLayout(e,t=[],n){const i=e.name;switch(e.type){case"bool":return Xe.bool(i);case"u8":return Xe.u8(i);case"i8":return Xe.i8(i);case"u16":return Xe.u16(i);case"i16":return Xe.i16(i);case"u32":return Xe.u32(i);case"i32":return Xe.i32(i);case"f32":return Xe.f32(i);case"u64":return Xe.u64(i);case"i64":return Xe.i64(i);case"f64":return Xe.f64(i);case"u128":return Xe.u128(i);case"i128":return Xe.i128(i);case"u256":return Xe.u256(i);case"i256":return Xe.i256(i);case"bytes":return Xe.vecU8(i);case"string":return Xe.str(i);case"pubkey":return Xe.publicKey(i);default:{if("option"in e.type)return Xe.option(mt.fieldLayout({type:e.type.option},t,n),i);if("vec"in e.type)return Xe.vec(mt.fieldLayout({type:e.type.vec},t,n),i);if("array"in e.type){let[s,o]=e.type.array;return o=mt.resolveArrayLen(o,n),Xe.array(mt.fieldLayout({type:s},t,n),o,i)}if("defined"in e.type){if(!t)throw new Oo("User defined types not provided");const s=e.type.defined.name,o=t.find(a=>a.name===s);if(!o)throw new Oo(`Type not found: ${e.name}`);return mt.typeDefLayout({typeDef:o,types:t,genericArgs:n??e.type.defined.generics,name:i})}if("generic"in e.type){const s=n==null?void 0:n.at(0);if((s==null?void 0:s.kind)!=="type")throw new Oo(`Invalid generic field: ${e.name}`);return mt.fieldLayout({...e,type:s.type},t)}throw new Oo(`Not yet implemented: ${JSON.stringify(e.type)}`)}}}static typeDefLayout({typeDef:e,types:t,name:n,genericArgs:i}){switch(e.type.kind){case"struct":{const s=Su(e.type.fields,()=>[],o=>o.map(a=>{const u=i&&mt.resolveGenericArgs({type:a.type,typeDef:e,genericArgs:i});return mt.fieldLayout(a,t,u)}),o=>o.map((a,u)=>{const l=i&&mt.resolveGenericArgs({type:a,typeDef:e,genericArgs:i});return mt.fieldLayout({name:u.toString(),type:a},t,l)}));return Xe.struct(s,n)}case"enum":{const s=e.type.variants.map(o=>{const a=Su(o.fields,()=>[],u=>u.map(l=>{const h=i&&mt.resolveGenericArgs({type:l.type,typeDef:e,genericArgs:i});return mt.fieldLayout(l,t,h)}),u=>u.map((l,h)=>{const g=i&&mt.resolveGenericArgs({type:l,typeDef:e,genericArgs:i});return mt.fieldLayout({name:h.toString(),type:l},t,g)}));return Xe.struct(a,o.name)});return n!==void 0?Xe.rustEnum(s).replicate(n):Xe.rustEnum(s,n)}case"type":return mt.fieldLayout({type:e.type.alias,name:n},t)}}static typeSize(e,t,n){var i;switch(e){case"bool":return 1;case"u8":return 1;case"i8":return 1;case"i16":return 2;case"u16":return 2;case"u32":return 4;case"i32":return 4;case"f32":return 4;case"u64":return 8;case"i64":return 8;case"f64":return 8;case"u128":return 16;case"i128":return 16;case"u256":return 32;case"i256":return 32;case"bytes":return 1;case"string":return 1;case"pubkey":return 32;default:if("option"in e)return 1+mt.typeSize(e.option,t,n);if("coption"in e)return 4+mt.typeSize(e.coption,t,n);if("vec"in e)return 1;if("array"in e){let[s,o]=e.array;return o=mt.resolveArrayLen(o,n),mt.typeSize(s,t,n)*o}if("defined"in e){const s=(i=t.types)===null||i===void 0?void 0:i.find(a=>a.name===e.defined.name);if(!s)throw new Oo(`Type not found: ${JSON.stringify(e)}`);const o=a=>{const u=n??e.defined.generics,l=u&&mt.resolveGenericArgs({type:a,typeDef:s,genericArgs:u});return mt.typeSize(a,t,l)};switch(s.type.kind){case"struct":return Su(s.type.fields,()=>[0],a=>a.map(u=>o(u.type)),a=>a.map(u=>o(u))).reduce((a,u)=>a+u,0);case"enum":{const a=s.type.variants.map(u=>Su(u.fields,()=>[0],l=>l.map(h=>o(h.type)),l=>l.map(h=>o(h))).reduce((l,h)=>l+h,0));return Math.max(...a)+1}case"type":return mt.typeSize(s.type.alias,t,n)}}if("generic"in e){const s=n==null?void 0:n.at(0);if((s==null?void 0:s.kind)!=="type")throw new Oo(`Invalid generic: ${e.generic}`);return mt.typeSize(s.type,t,n)}throw new Error(`Invalid type ${JSON.stringify(e)}`)}}static resolveArrayLen(e,t){if(typeof e=="number")return e;if(t){const n=t.find(i=>i.kind==="const");(n==null?void 0:n.kind)==="const"&&(e=+n.value)}if(typeof e!="number")throw new Oo("Generic array length did not resolve");return e}static resolveGenericArgs({type:e,typeDef:t,genericArgs:n,isDefined:i}){if(typeof e!="object")return null;for(const s in t.generics){const o=t.generics[s];if("generic"in e&&o.name===e.generic)return[n[s]];if("option"in e){const a=mt.resolveGenericArgs({type:e.option,typeDef:t,genericArgs:n,isDefined:i});if(!a||!i)return a;if(a[0].kind==="type")return[{kind:"type",type:{option:a[0].type}}]}if("vec"in e){const a=mt.resolveGenericArgs({type:e.vec,typeDef:t,genericArgs:n,isDefined:i});if(!a||!i)return a;if(a[0].kind==="type")return[{kind:"type",type:{vec:a[0].type}}]}if("array"in e){const[a,u]=e.array,l=typeof u=="object",h=mt.resolveGenericArgs({type:a,typeDef:t,genericArgs:n,isDefined:i});if(h){for(const g in t.generics.slice(+s)){const b=+s+ +g;l&&t.generics[b].name===u.generic&&h.push(n[b])}if(!i)return h;if(h[0].kind==="type"&&h[1].kind==="const")return[{kind:"type",type:{array:[h[0].type,+h[1].value]}}]}if(l&&o.name===u.generic){const g=n[s];return i?[{kind:"type",type:{array:[a,+g.value]}}]:[g]}return null}if("defined"in e)return e.defined.generics?e.defined.generics.flatMap(a=>{switch(a.kind){case"type":return mt.resolveGenericArgs({type:a.type,typeDef:t,genericArgs:n,isDefined:!0});case"const":return[a]}}).filter(a=>a!==null):null}return null}}class FY{constructor(e){this.idl=e;const t=e.instructions.map(n=>{const i=n.name,s=n.args.map(a=>mt.fieldLayout(a,e.types)),o=Xe.struct(s,i);return[i,{discriminator:n.discriminator,layout:o}]});this.ixLayouts=new Map(t)}encode(e,t){const n=Ne.alloc(1e3),i=this.ixLayouts.get(e);if(!i)throw new Error(`Unknown method: ${e}`);const s=i.layout.encode(t,n),o=n.slice(0,s);return Ne.concat([Ne.from(i.discriminator),o])}decode(e,t="hex"){typeof e=="string"&&(e=t==="hex"?Ne.from(e,"hex"):Or.decode(e));for(const[n,i]of this.ixLayouts){const s=e.subarray(0,i.discriminator.length);if(s.equals(Ne.from(i.discriminator)))return{name:n,data:i.layout.decode(e.subarray(s.length))}}return null}format(e,t){return jn.format(e,t,this.idl)}}class jn{static format(e,t,n){const i=n.instructions.find(u=>e.name===u.name);if(!i)return console.error("Invalid instruction given"),null;const s=i.args.map(u=>({name:u.name,type:jn.formatIdlType(u.type),data:jn.formatIdlData(u,e.data[u.name],n.types)})),o=jn.flattenIdlAccounts(i.accounts),a=t.map((u,l)=>l<o.length?{name:o[l].name,...u}:{name:void 0,...u});return{args:s,accounts:a}}static formatIdlType(e){if(typeof e=="string")return e;if("option"in e)return`Option<${this.formatIdlType(e.option)}>`;if("coption"in e)return`COption<${this.formatIdlType(e.coption)}>`;if("vec"in e)return`Vec<${this.formatIdlType(e.vec)}>`;if("array"in e)return`Array<${e.array[0]}; ${e.array[1]}>`;if("defined"in e){const t=e.defined.name;if(e.defined.generics){const n=e.defined.generics.map(i=>{switch(i.kind){case"type":return jn.formatIdlType(i.type);case"const":return i.value}}).join(", ");return`${t}<${n}>`}return t}throw new Error(`Unknown IDL type: ${e}`)}static formatIdlData(e,t,n){if(typeof e.type=="string")return t.toString();if("vec"in e.type)return"["+t.map(i=>this.formatIdlData({name:"",type:e.type.vec},i,n)).join(", ")+"]";if("option"in e.type)return t===null?"null":this.formatIdlData({name:"",type:e.type.option},t,n);if("defined"in e.type){if(!n)throw new Error("User defined types not provided");const i=e.type.defined.name,s=n.find(o=>o.name===i);if(!s)throw new Error(`Type not found: ${i}`);return jn.formatIdlDataDefined(s,t,n)}return"unknown"}static formatIdlDataDefined(e,t,n){switch(e.type.kind){case"struct":return"{ "+Su(e.type.fields,()=>"",i=>Object.entries(t).map(([s,o])=>{const a=i.find(u=>u.name===s);if(!a)throw new Error(`Field not found: ${s}`);return s+": "+jn.formatIdlData(a,o,n)}).join(", "),i=>Object.entries(t).map(([s,o])=>s+": "+jn.formatIdlData({name:"",type:i[s]},o,n)).join(", "))+" }";case"enum":{const i=Object.keys(t)[0],s=e.type.variants.find(a=>a.name===i);if(!s)throw new Error(`Unable to find variant: ${i}`);const o=t[i];return Su(s.fields,()=>i,a=>{const u=Object.keys(o).map(l=>{const h=o[l],g=a.find(b=>b.name===l);if(!g)throw new Error(`Field not found: ${l}`);return l+": "+jn.formatIdlData(g,h,n)}).join(", ");return`${i} { ${u} }`},a=>{const u=Object.entries(o).map(([l,h])=>l+": "+jn.formatIdlData({name:"",type:a[l]},h,n)).join(", ");return`${i} { ${u} }`})}case"type":return jn.formatIdlType(e.type.alias)}}static flattenIdlAccounts(e,t){return e.map(n=>{const i=HY(n.name);if(n.hasOwnProperty("accounts")){const s=t?`${t} > ${i}`:i;return jn.flattenIdlAccounts(n.accounts,s)}else return{...n,name:t?`${t} > ${i}`:i}}).flat()}}function HY(r){const e=r.replace(/([A-Z])/g," $1");return e.charAt(0).toUpperCase()+e.slice(1)}class zY{constructor(e){if(this.idl=e,!e.accounts){this.accountLayouts=new Map;return}const t=e.types;if(!t)throw new Error("Accounts require `idl.types`");const n=e.accounts.map(i=>{const s=t.find(o=>o.name===i.name);if(!s)throw new Error(`Account not found: ${i.name}`);return[i.name,{discriminator:i.discriminator,layout:mt.typeDefLayout({typeDef:s,types:t})}]});this.accountLayouts=new Map(n)}async encode(e,t){const n=Ne.alloc(1e3),i=this.accountLayouts.get(e);if(!i)throw new Error(`Unknown account: ${e}`);const s=i.layout.encode(t,n),o=n.slice(0,s),a=this.accountDiscriminator(e);return Ne.concat([a,o])}decode(e,t){const n=this.accountDiscriminator(e);if(n.compare(t.slice(0,n.length)))throw new Error("Invalid account discriminator");return this.decodeUnchecked(e,t)}decodeAny(e){for(const[t,n]of this.accountLayouts)if(e.subarray(0,n.discriminator.length).equals(Ne.from(n.discriminator)))return this.decodeUnchecked(t,e);throw new Error("Account not found")}decodeUnchecked(e,t){const n=this.accountDiscriminator(e),i=t.subarray(n.length),s=this.accountLayouts.get(e);if(!s)throw new Error(`Unknown account: ${e}`);return s.layout.decode(i)}memcmp(e,t){const n=this.accountDiscriminator(e);return{offset:0,bytes:Or.encode(t?Ne.concat([n,t]):n)}}size(e){return this.accountDiscriminator(e).length+mt.typeSize({defined:{name:e}},this.idl)}accountDiscriminator(e){var t;const n=(t=this.idl.accounts)===null||t===void 0?void 0:t.find(i=>i.name===e);if(!n)throw new Error(`Account not found: ${e}`);return Ne.from(n.discriminator)}}class GY{constructor(e){if(!e.events){this.layouts=new Map;return}const t=e.types;if(!t)throw new Error("Events require `idl.types`");const n=e.events.map(i=>{const s=t.find(o=>o.name===i.name);if(!s)throw new Error(`Event not found: ${i.name}`);return[i.name,{discriminator:i.discriminator,layout:mt.typeDefLayout({typeDef:s,types:t})}]});this.layouts=new Map(n)}decode(e){let t;try{t=PI(e)}catch{return null}for(const[n,i]of this.layouts){const s=t.subarray(0,i.discriminator.length);if(s.equals(Ne.from(i.discriminator)))return{name:n,data:i.layout.decode(t.subarray(s.length))}}return null}}class KY{constructor(e){const t=e.types;if(!t){this.typeLayouts=new Map;return}const n=t.filter(i=>!i.generics).map(i=>[i.name,mt.typeDefLayout({typeDef:i,types:t})]);this.typeLayouts=new Map(n)}encode(e,t){const n=Ne.alloc(1e3),i=this.typeLayouts.get(e);if(!i)throw new Error(`Unknown type: ${e}`);const s=i.encode(t,n);return n.slice(0,s)}decode(e,t){const n=this.typeLayouts.get(e);if(!n)throw new Error(`Unknown type: ${e}`);return n.decode(t)}}class gk{constructor(e){this.instruction=new FY(e),this.accounts=new zY(e),this.events=new GY(e),this.types=new KY(e)}}class Bn{constructor(e,t){if(!Number.isInteger(e))throw new TypeError("span must be an integer");this.span=e,this.property=t}makeDestinationObject(){return{}}decode(e,t){throw new Error("Layout is abstract")}encode(e,t,n){throw new Error("Layout is abstract")}getSpan(e,t){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(e){const t=Object.create(this.constructor.prototype);return Object.assign(t,this),t.property=e,t}fromArray(e){}}var np=Bn;function jY(r,e){return e.property?r+"["+e.property+"]":r}class Ga extends Bn{isCount(){throw new Error("ExternalLayout is abstract")}}class yk extends Ga{constructor(e,t,n){if(!(e instanceof Bn))throw new TypeError("layout must be a Layout");if(t===void 0)t=0;else if(!Number.isInteger(t))throw new TypeError("offset must be integer or undefined");super(e.span,n||e.property),this.layout=e,this.offset=t}isCount(){return this.layout instanceof ip||this.layout instanceof mk}decode(e,t){return t===void 0&&(t=0),this.layout.decode(e,t+this.offset)}encode(e,t,n){return n===void 0&&(n=0),this.layout.encode(e,t,n+this.offset)}}class ip extends Bn{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return t===void 0&&(t=0),e.readUIntLE(t,this.span)}encode(e,t,n){return n===void 0&&(n=0),t.writeUIntLE(e,n,this.span),this.span}}class mk extends Bn{constructor(e,t){if(super(e,t),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(e,t){return t===void 0&&(t=0),e.readUIntBE(t,this.span)}encode(e,t,n){return n===void 0&&(n=0),t.writeUIntBE(e,n,this.span),this.span}}const H1=Math.pow(2,32);function wk(r){const e=Math.floor(r/H1),t=r-e*H1;return{hi32:e,lo32:t}}function bk(r,e){return r*H1+e}class WY extends Bn{constructor(e){super(8,e)}decode(e,t){t===void 0&&(t=0);const n=e.readUInt32LE(t),i=e.readUInt32LE(t+4);return bk(i,n)}encode(e,t,n){n===void 0&&(n=0);const i=wk(e);return t.writeUInt32LE(i.lo32,n),t.writeUInt32LE(i.hi32,n+4),8}}class VY extends Bn{constructor(e){super(8,e)}decode(e,t){t===void 0&&(t=0);const n=e.readUInt32LE(t),i=e.readInt32LE(t+4);return bk(i,n)}encode(e,t,n){n===void 0&&(n=0);const i=wk(e);return t.writeUInt32LE(i.lo32,n),t.writeInt32LE(i.hi32,n+4),8}}class qY extends Bn{constructor(e,t,n){if(!(Array.isArray(e)&&e.reduce((s,o)=>s&&o instanceof Bn,!0)))throw new TypeError("fields must be array of Layout instances");typeof t=="boolean"&&n===void 0&&(n=t,t=void 0);for(const s of e)if(0>s.span&&s.property===void 0)throw new Error("fields cannot contain unnamed variable-length layout");let i=-1;try{i=e.reduce((s,o)=>s+o.getSpan(),0)}catch{}super(i,t),this.fields=e,this.decodePrefixes=!!n}getSpan(e,t){if(0<=this.span)return this.span;t===void 0&&(t=0);let n=0;try{n=this.fields.reduce((i,s)=>{const o=s.getSpan(e,t);return t+=o,i+o},0)}catch{throw new RangeError("indeterminate span")}return n}decode(e,t){t===void 0&&(t=0);const n=this.makeDestinationObject();for(const i of this.fields)if(i.property!==void 0&&(n[i.property]=i.decode(e,t)),t+=i.getSpan(e,t),this.decodePrefixes&&e.length===t)break;return n}encode(e,t,n){n===void 0&&(n=0);const i=n;let s=0,o=0;for(const a of this.fields){let u=a.span;if(o=0<u?u:0,a.property!==void 0){const l=e[a.property];l!==void 0&&(o=a.encode(l,t,n),0>u&&(u=a.getSpan(t,n)))}s=n,n+=u}return s+o-i}fromArray(e){const t=this.makeDestinationObject();for(const n of this.fields)n.property!==void 0&&0<e.length&&(t[n.property]=e.shift());return t}layoutFor(e){if(typeof e!="string")throw new TypeError("property must be string");for(const t of this.fields)if(t.property===e)return t}offsetOf(e){if(typeof e!="string")throw new TypeError("property must be string");let t=0;for(const n of this.fields){if(n.property===e)return t;0>n.span?t=-1:0<=t&&(t+=n.span)}}}class _k{constructor(e){this.property=e}decode(){throw new Error("UnionDiscriminator is abstract")}encode(){throw new Error("UnionDiscriminator is abstract")}}class Ak extends _k{constructor(e,t){if(!(e instanceof Ga&&e.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(t||e.property||"variant"),this.layout=e}decode(e,t){return this.layout.decode(e,t)}encode(e,t,n){return this.layout.encode(e,t,n)}}class vk extends Bn{constructor(e,t,n){const i=e instanceof ip||e instanceof mk;if(i)e=new Ak(new yk(e));else if(e instanceof Ga&&e.isCount())e=new Ak(e);else if(!(e instanceof _k))throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(t===void 0&&(t=null),!(t===null||t instanceof Bn))throw new TypeError("defaultLayout must be null or a Layout");if(t!==null){if(0>t.span)throw new Error("defaultLayout must have constant span");t.property===void 0&&(t=t.replicate("content"))}let s=-1;t&&(s=t.span,0<=s&&i&&(s+=e.layout.span)),super(s,n),this.discriminator=e,this.usesPrefixDiscriminator=i,this.defaultLayout=t,this.registry={};let o=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(a){return o(a)},this.configGetSourceVariant=function(a){o=a.bind(this)}}getSpan(e,t){if(0<=this.span)return this.span;t===void 0&&(t=0);const n=this.getVariant(e,t);if(!n)throw new Error("unable to determine span for unrecognized variant");return n.getSpan(e,t)}defaultGetSourceVariant(e){if(e.hasOwnProperty(this.discriminator.property)){if(this.defaultLayout&&e.hasOwnProperty(this.defaultLayout.property))return;const t=this.registry[e[this.discriminator.property]];if(t&&(!t.layout||e.hasOwnProperty(t.property)))return t}else for(const t in this.registry){const n=this.registry[t];if(e.hasOwnProperty(n.property))return n}throw new Error("unable to infer src variant")}decode(e,t){t===void 0&&(t=0);let n;const i=this.discriminator,s=i.decode(e,t);let o=this.registry[s];if(o===void 0){let a=0;o=this.defaultLayout,this.usesPrefixDiscriminator&&(a=i.layout.span),n=this.makeDestinationObject(),n[i.property]=s,n[o.property]=this.defaultLayout.decode(e,t+a)}else n=o.decode(e,t);return n}encode(e,t,n){n===void 0&&(n=0);const i=this.getSourceVariant(e);if(i===void 0){const s=this.discriminator,o=this.defaultLayout;let a=0;return this.usesPrefixDiscriminator&&(a=s.layout.span),s.encode(e[s.property],t,n),a+o.encode(e[o.property],t,n+a)}return i.encode(e,t,n)}addVariant(e,t,n){const i=new ZY(this,e,t,n);return this.registry[e]=i,i}getVariant(e,t){let n=e;return Ze.isBuffer(e)&&(t===void 0&&(t=0),n=this.discriminator.decode(e,t)),this.registry[n]}}class ZY extends Bn{constructor(e,t,n,i){if(!(e instanceof vk))throw new TypeError("union must be a Union");if(!Number.isInteger(t)||0>t)throw new TypeError("variant must be a (non-negative) integer");if(typeof n=="string"&&i===void 0&&(i=n,n=null),n){if(!(n instanceof Bn))throw new TypeError("layout must be a Layout");if(e.defaultLayout!==null&&0<=n.span&&n.span>e.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if(typeof i!="string")throw new TypeError("variant must have a String property")}let s=e.span;0>e.span&&(s=n?n.span:0,0<=s&&e.usesPrefixDiscriminator&&(s+=e.discriminator.layout.span)),super(s,i),this.union=e,this.variant=t,this.layout=n||null}getSpan(e,t){if(0<=this.span)return this.span;t===void 0&&(t=0);let n=0;return this.union.usesPrefixDiscriminator&&(n=this.union.discriminator.layout.span),n+this.layout.getSpan(e,t+n)}decode(e,t){const n=this.makeDestinationObject();if(t===void 0&&(t=0),this!==this.union.getVariant(e,t))throw new Error("variant mismatch");let i=0;return this.union.usesPrefixDiscriminator&&(i=this.union.discriminator.layout.span),this.layout?n[this.property]=this.layout.decode(e,t+i):this.property?n[this.property]=!0:this.union.usesPrefixDiscriminator&&(n[this.union.discriminator.property]=this.variant),n}encode(e,t,n){n===void 0&&(n=0);let i=0;if(this.union.usesPrefixDiscriminator&&(i=this.union.discriminator.layout.span),this.layout&&!e.hasOwnProperty(this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,t,n);let s=i;if(this.layout&&(this.layout.encode(e[this.property],t,n+i),s+=this.layout.getSpan(t,n+i),0<=this.union.span&&s>this.union.span))throw new Error("encoded variant overruns containing union");return s}fromArray(e){if(this.layout)return this.layout.fromArray(e)}}class QY extends Bn{constructor(e,t){if(!(e instanceof Ga&&e.isCount()||Number.isInteger(e)&&0<=e))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let n=-1;e instanceof Ga||(n=e),super(n,t),this.length=e}getSpan(e,t){let n=this.span;return 0>n&&(n=this.length.decode(e,t)),n}decode(e,t){t===void 0&&(t=0);let n=this.span;return 0>n&&(n=this.length.decode(e,t)),e.slice(t,t+n)}encode(e,t,n){let i=this.length;if(this.length instanceof Ga&&(i=e.length),!(Ze.isBuffer(e)&&i===e.length))throw new TypeError(jY("Blob.encode",this)+" requires (length "+i+") Buffer as src");if(n+i>t.length)throw new RangeError("encoding overruns Buffer");return t.write(e.toString("hex"),n,i,"hex"),this.length instanceof Ga&&this.length.encode(i,t,n),i}}var YY=(r,e,t)=>new yk(r,e,t),JY=r=>new ip(1,r),Ps=r=>new ip(4,r),XY=r=>new WY(r),Ms=r=>new VY(r),Pr=(r,e,t)=>new qY(r,e,t),Ek=(r,e,t)=>new vk(r,e,t),ch=(r,e)=>new QY(r,e);class eJ extends np{constructor(e){super(-1,e),this.property=e,this.layout=Pr([Ps("length"),Ps("lengthPadding"),ch(YY(Ps(),-8),"chars")],this.property)}encode(e,t,n=0){if(e==null)return this.layout.span;const i={chars:Ze.from(e,"utf8")};return this.layout.encode(i,t,n)}decode(e,t=0){return this.layout.decode(e,t).chars.toString()}getSpan(e,t=0){return Ps().span+Ps().span+new vs(new Uint8Array(e).slice(t,t+4),10,"le").toNumber()}}function sp(r){return new eJ(r)}function ai(r){return ch(32,r)}const Wn=Ek(Ps("instruction"));Wn.addVariant(0,Pr([Ms("lamports"),Ms("space"),ai("owner")]),"createAccount"),Wn.addVariant(1,Pr([ai("owner")]),"assign"),Wn.addVariant(2,Pr([Ms("lamports")]),"transfer"),Wn.addVariant(3,Pr([ai("base"),sp("seed"),Ms("lamports"),Ms("space"),ai("owner")]),"createAccountWithSeed"),Wn.addVariant(4,Pr([ai("authorized")]),"advanceNonceAccount"),Wn.addVariant(5,Pr([Ms("lamports")]),"withdrawNonceAccount"),Wn.addVariant(6,Pr([ai("authorized")]),"initializeNonceAccount"),Wn.addVariant(7,Pr([ai("authorized")]),"authorizeNonceAccount"),Wn.addVariant(8,Pr([Ms("space")]),"allocate"),Wn.addVariant(9,Pr([ai("base"),sp("seed"),Ms("space"),ai("owner")]),"allocateWithSeed"),Wn.addVariant(10,Pr([ai("base"),sp("seed"),ai("owner")]),"assignWithSeed"),Wn.addVariant(11,Pr([Ms("lamports"),sp("seed"),ai("owner")]),"transferWithSeed"),Math.max(...Object.values(Wn.registry).map(r=>r.span));class tJ extends np{constructor(e,t,n,i){super(e.span,i),this.layout=e,this.decoder=t,this.encoder=n}decode(e,t){return this.decoder(this.layout.decode(e,t))}encode(e,t,n){return this.layout.encode(this.encoder(e),t,n)}getSpan(e,t){return this.layout.getSpan(e,t)}}function xk(r){return new tJ(ch(32),e=>new me(e),e=>e.toBuffer(),r)}Pr([Ps("version"),Ps("state"),xk("authorizedPubkey"),xk("nonce"),Pr([XY("lamportsPerSignature")],"feeCalculator")]),new me("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"),new me("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");var Rk={exports:{}};(function(r,e){var t=typeof self<"u"?self:UY,n=function(){function s(){this.fetch=!1,this.DOMException=t.DOMException}return s.prototype=t,new s}();(function(s){(function(o){var a={searchParams:"URLSearchParams"in s,iterable:"Symbol"in s&&"iterator"in Symbol,blob:"FileReader"in s&&"Blob"in s&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in s,arrayBuffer:"ArrayBuffer"in s};function u(p){return p&&DataView.prototype.isPrototypeOf(p)}if(a.arrayBuffer)var l=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],h=ArrayBuffer.isView||function(p){return p&&l.indexOf(Object.prototype.toString.call(p))>-1};function g(p){if(typeof p!="string"&&(p=String(p)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(p))throw new TypeError("Invalid character in header field name");return p.toLowerCase()}function b(p){return typeof p!="string"&&(p=String(p)),p}function w(p){var m={next:function(){var E=p.shift();return{done:E===void 0,value:E}}};return a.iterable&&(m[Symbol.iterator]=function(){return m}),m}function I(p){this.map={},p instanceof I?p.forEach(function(m,E){this.append(E,m)},this):Array.isArray(p)?p.forEach(function(m){this.append(m[0],m[1])},this):p&&Object.getOwnPropertyNames(p).forEach(function(m){this.append(m,p[m])},this)}I.prototype.append=function(p,m){p=g(p),m=b(m);var E=this.map[p];this.map[p]=E?E+", "+m:m},I.prototype.delete=function(p){delete this.map[g(p)]},I.prototype.get=function(p){return p=g(p),this.has(p)?this.map[p]:null},I.prototype.has=function(p){return this.map.hasOwnProperty(g(p))},I.prototype.set=function(p,m){this.map[g(p)]=b(m)},I.prototype.forEach=function(p,m){for(var E in this.map)this.map.hasOwnProperty(E)&&p.call(m,this.map[E],E,this)},I.prototype.keys=function(){var p=[];return this.forEach(function(m,E){p.push(E)}),w(p)},I.prototype.values=function(){var p=[];return this.forEach(function(m){p.push(m)}),w(p)},I.prototype.entries=function(){var p=[];return this.forEach(function(m,E){p.push([E,m])}),w(p)},a.iterable&&(I.prototype[Symbol.iterator]=I.prototype.entries);function S(p){if(p.bodyUsed)return Promise.reject(new TypeError("Already read"));p.bodyUsed=!0}function x(p){return new Promise(function(m,E){p.onload=function(){m(p.result)},p.onerror=function(){E(p.error)}})}function C(p){var m=new FileReader,E=x(m);return m.readAsArrayBuffer(p),E}function H(p){var m=new FileReader,E=x(m);return m.readAsText(p),E}function D(p){for(var m=new Uint8Array(p),E=new Array(m.length),k=0;k<m.length;k++)E[k]=String.fromCharCode(m[k]);return E.join("")}function z(p){if(p.slice)return p.slice(0);var m=new Uint8Array(p.byteLength);return m.set(new Uint8Array(p)),m.buffer}function V(){return this.bodyUsed=!1,this._initBody=function(p){this._bodyInit=p,p?typeof p=="string"?this._bodyText=p:a.blob&&Blob.prototype.isPrototypeOf(p)?this._bodyBlob=p:a.formData&&FormData.prototype.isPrototypeOf(p)?this._bodyFormData=p:a.searchParams&&URLSearchParams.prototype.isPrototypeOf(p)?this._bodyText=p.toString():a.arrayBuffer&&a.blob&&u(p)?(this._bodyArrayBuffer=z(p.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):a.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(p)||h(p))?this._bodyArrayBuffer=z(p):this._bodyText=p=Object.prototype.toString.call(p):this._bodyText="",this.headers.get("content-type")||(typeof p=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):a.searchParams&&URLSearchParams.prototype.isPrototypeOf(p)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},a.blob&&(this.blob=function(){var p=S(this);if(p)return p;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?S(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(C)}),this.text=function(){var p=S(this);if(p)return p;if(this._bodyBlob)return H(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(D(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},a.formData&&(this.formData=function(){return this.text().then(oe)}),this.json=function(){return this.text().then(JSON.parse)},this}var Z=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function K(p){var m=p.toUpperCase();return Z.indexOf(m)>-1?m:p}function W(p,m){m=m||{};var E=m.body;if(p instanceof W){if(p.bodyUsed)throw new TypeError("Already read");this.url=p.url,this.credentials=p.credentials,m.headers||(this.headers=new I(p.headers)),this.method=p.method,this.mode=p.mode,this.signal=p.signal,!E&&p._bodyInit!=null&&(E=p._bodyInit,p.bodyUsed=!0)}else this.url=String(p);if(this.credentials=m.credentials||this.credentials||"same-origin",(m.headers||!this.headers)&&(this.headers=new I(m.headers)),this.method=K(m.method||this.method||"GET"),this.mode=m.mode||this.mode||null,this.signal=m.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&E)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(E)}W.prototype.clone=function(){return new W(this,{body:this._bodyInit})};function oe(p){var m=new FormData;return p.trim().split("&").forEach(function(E){if(E){var k=E.split("="),O=k.shift().replace(/\+/g," "),M=k.join("=").replace(/\+/g," ");m.append(decodeURIComponent(O),decodeURIComponent(M))}}),m}function ce(p){var m=new I,E=p.replace(/\r?\n[\t ]+/g," ");return E.split(/\r?\n/).forEach(function(k){var O=k.split(":"),M=O.shift().trim();if(M){var G=O.join(":").trim();m.append(M,G)}}),m}V.call(W.prototype);function ie(p,m){m||(m={}),this.type="default",this.status=m.status===void 0?200:m.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in m?m.statusText:"OK",this.headers=new I(m.headers),this.url=m.url||"",this._initBody(p)}V.call(ie.prototype),ie.prototype.clone=function(){return new ie(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new I(this.headers),url:this.url})},ie.error=function(){var p=new ie(null,{status:0,statusText:""});return p.type="error",p};var ue=[301,302,303,307,308];ie.redirect=function(p,m){if(ue.indexOf(m)===-1)throw new RangeError("Invalid status code");return new ie(null,{status:m,headers:{location:p}})},o.DOMException=s.DOMException;try{new o.DOMException}catch{o.DOMException=function(m,E){this.message=m,this.name=E;var k=Error(m);this.stack=k.stack},o.DOMException.prototype=Object.create(Error.prototype),o.DOMException.prototype.constructor=o.DOMException}function B(p,m){return new Promise(function(E,k){var O=new W(p,m);if(O.signal&&O.signal.aborted)return k(new o.DOMException("Aborted","AbortError"));var M=new XMLHttpRequest;function G(){M.abort()}M.onload=function(){var P={status:M.status,statusText:M.statusText,headers:ce(M.getAllResponseHeaders()||"")};P.url="responseURL"in M?M.responseURL:P.headers.get("X-Request-URL");var A="response"in M?M.response:M.responseText;E(new ie(A,P))},M.onerror=function(){k(new TypeError("Network request failed"))},M.ontimeout=function(){k(new TypeError("Network request failed"))},M.onabort=function(){k(new o.DOMException("Aborted","AbortError"))},M.open(O.method,O.url,!0),O.credentials==="include"?M.withCredentials=!0:O.credentials==="omit"&&(M.withCredentials=!1),"responseType"in M&&a.blob&&(M.responseType="blob"),O.headers.forEach(function(P,A){M.setRequestHeader(A,P)}),O.signal&&(O.signal.addEventListener("abort",G),M.onreadystatechange=function(){M.readyState===4&&O.signal.removeEventListener("abort",G)}),M.send(typeof O._bodyInit>"u"?null:O._bodyInit)})}return B.polyfill=!0,s.fetch||(s.fetch=B,s.Headers=I,s.Request=W,s.Response=ie),o.Headers=I,o.Request=W,o.Response=ie,o.fetch=B,Object.defineProperty(o,"__esModule",{value:!0}),o})({})})(n),n.fetch.ponyfill=!0,delete n.fetch.polyfill;var i=n;e=i.fetch,e.default=i.fetch,e.fetch=i.fetch,e.Headers=i.Headers,e.Request=i.Request,e.Response=i.Response,r.exports=e})(Rk,Rk.exports),Xe.rustEnum([Xe.struct([],"uninitialized"),Xe.struct([Xe.option(Xe.publicKey(),"authorityAddress")],"buffer"),Xe.struct([Xe.publicKey("programdataAddress")],"program"),Xe.struct([Xe.u64("slot"),Xe.option(Xe.publicKey(),"upgradeAuthorityAddress")],"programData")],void 0,Xe.u32());const z1="Program log: ",Ik="Program data: ",rJ=z1.length,nJ=Ik.length;class iJ{constructor(e,t,n){this._programId=e,this._provider=t,this._eventParser=new Sk(e,n),this._eventCallbacks=new Map,this._eventListeners=new Map,this._listenerIdCount=0}addEventListener(e,t,n){var i;let s=this._listenerIdCount;return this._listenerIdCount+=1,this._eventListeners.has(e)||this._eventListeners.set(e,[]),this._eventListeners.set(e,((i=this._eventListeners.get(e))!==null&&i!==void 0?i:[]).concat(s)),this._eventCallbacks.set(s,[e,t]),this._onLogsSubscriptionId!==void 0||(this._onLogsSubscriptionId=this._provider.connection.onLogs(this._programId,(o,a)=>{if(!o.err)for(const u of this._eventParser.parseLogs(o.logs)){const l=this._eventListeners.get(u.name);l&&l.forEach(h=>{const g=this._eventCallbacks.get(h);if(g){const[,b]=g;b(u.data,a.slot,o.signature)}})}},n)),s}async removeEventListener(e){const t=this._eventCallbacks.get(e);if(!t)throw new Error(`Event listener ${e} doesn't exist!`);const[n]=t;let i=this._eventListeners.get(n);if(!i)throw new Error(`Event listeners don't exist for ${n}!`);if(this._eventCallbacks.delete(e),i=i.filter(s=>s!==e),this._eventListeners.set(n,i),i.length===0&&this._eventListeners.delete(n),this._eventCallbacks.size===0){if(this._eventListeners.size!==0)throw new Error(`Expected event listeners size to be 0 but got ${this._eventListeners.size}`);this._onLogsSubscriptionId!==void 0&&(await this._provider.connection.removeOnLogsListener(this._onLogsSubscriptionId),this._onLogsSubscriptionId=void 0)}}}class Sk{constructor(e,t){this.coder=t,this.programId=e}*parseLogs(e,t=!1){const n=new oJ(e),i=new sJ;let s=n.next();for(;s!==null;){let[o,a,u]=this.handleLog(i,s,t);o&&(yield o),a&&i.push(a),u&&i.pop(),s=n.next()}}handleLog(e,t,n){return e.stack.length>0&&e.program()===this.programId.toString()?this.handleProgramLog(t,n):[null,...this.handleSystemLog(t)]}handleProgramLog(e,t){if(e.startsWith(z1)||e.startsWith(Ik)){const n=e.startsWith(z1)?e.slice(rJ):e.slice(nJ),i=this.coder.events.decode(n);if(t&&i===null)throw new Error(`Unable to decode event ${n}`);return[i,null,!1]}else return[null,...this.handleSystemLog(e)]}handleSystemLog(e){const t=e.split(":")[0];return t.match(/^Program (.*) success/g)!==null?[null,!0]:t.startsWith(`Program ${this.programId.toString()} invoke`)?[this.programId.toString(),!1]:t.includes("invoke")?["cpi",!1]:[null,!1]}}class sJ{constructor(){this.stack=[]}program(){if(!this.stack.length)throw new Error("Expected the stack to have elements");return this.stack[this.stack.length-1]}push(e){this.stack.push(e)}pop(){if(!this.stack.length)throw new Error("Expected the stack to have elements");this.stack.pop()}}class oJ{constructor(e){this.logs=e}next(){if(this.logs.length===0)return null;let e=this.logs[0];return this.logs=this.logs.slice(1),e}}function op(r,e){var t,n;let i={};const s=r.args?r.args.length:0;if(e.length>s){if(e.length!==s+1)throw new Error(`provided too many arguments ${e} to instruction ${r==null?void 0:r.name} expecting: ${(n=(t=r.args)===null||t===void 0?void 0:t.map(o=>o.name))!==null&&n!==void 0?n:[]}`);i=e.pop()}return[e,i]}class ap{static build(e,t,n){if(e.name==="_inner")throw new Oo("the _inner name is reserved");const i=(...s)=>{const[o,a]=op(e,[...s]);MI(e.accounts,a.accounts),aJ(e,...s);const u=i.accounts(a.accounts);return a.remainingAccounts!==void 0&&u.push(...a.remainingAccounts),dk("debug-logs")&&console.log("Outgoing account metas:",u),new Pt({keys:u,programId:n,data:t(e.name,_Y(e,...o))})};return i.accounts=s=>ap.accountsArray(s,e.accounts,n,e.name),i}static accountsArray(e,t,n,i){return e?t.map(s=>{if(Io(s)){const h=e[s.name];return ap.accountsArray(h,s.accounts,n,i).flat()}let o;try{o=xi(e[s.name])}catch{throw new Error(`Wrong input type for account "${s.name}" in the instruction accounts object${i!==void 0?' for instruction "'+i+'"':""}. Expected PublicKey or string.`)}const a=s.optional&&o.equals(n),u=!!(s.writable&&!a),l=!!(s.signer&&!a);return{pubkey:o,isWritable:u,isSigner:l}}).flat():[]}}function aJ(r,...e){}class cJ{static build(e,t){return(...i)=>{var s,o,a;const[,u]=op(e,[...i]),l=new Ot;if(u.preInstructions&&u.instructions)throw new Error("instructions is deprecated, use preInstructions");return(s=u.preInstructions)===null||s===void 0||s.forEach(h=>l.add(h)),(o=u.instructions)===null||o===void 0||o.forEach(h=>l.add(h)),l.add(t(...i)),(a=u.postInstructions)===null||a===void 0||a.forEach(h=>l.add(h)),l}}}class uJ{static build(e,t,n,i){return async(...o)=>{var a;const u=t(...o),[,l]=op(e,[...o]);if(i.sendAndConfirm===void 0)throw new Error("This function requires 'Provider.sendAndConfirm' to be implemented.");try{return await i.sendAndConfirm(u,(a=l.signers)!==null&&a!==void 0?a:[],l.options)}catch(h){throw pk(h,n)}}}}class lJ{static build(e,t,n,i){var s;return((s=e.accounts)!==null&&s!==void 0?s:[]).reduce((o,a)=>(o[a.name]=new fJ(e,a,n,i,t),o),{})}}class fJ{get size(){return this._size}get programId(){return this._programId}get provider(){return this._provider}get coder(){return this._coder}constructor(e,t,n,i,s){this._idlAccount=t,this._programId=n,this._provider=i??F1(),this._coder=s??new gk(e),this._size=this._coder.accounts.size(t.name)}async fetchNullable(e,t){const{data:n}=await this.fetchNullableAndContext(e,t);return n}async fetchNullableAndContext(e,t){const n=await this.getAccountInfoAndContext(e,t),{value:i,context:s}=n;return{data:i&&i.data.length!==0?this._coder.accounts.decode(this._idlAccount.name,i.data):null,context:s}}async fetch(e,t){const{data:n}=await this.fetchNullableAndContext(e,t);if(n===null)throw new Error(`Account does not exist or has no data ${e.toString()}`);return n}async fetchAndContext(e,t){const{data:n,context:i}=await this.fetchNullableAndContext(e,t);if(n===null)throw new Error(`Account does not exist ${e.toString()}`);return{data:n,context:i}}async fetchMultiple(e,t){return(await this.fetchMultipleAndContext(e,t)).map(i=>i?i.data:null)}async fetchMultipleAndContext(e,t){return(await OY(this._provider.connection,e.map(i=>xi(i)),t)).map(i=>{if(i==null)return null;const{account:s,context:o}=i;return{data:this._coder.accounts.decode(this._idlAccount.name,s.data),context:o}})}async all(e){const t=this.coder.accounts.memcmp(this._idlAccount.name,e instanceof Ze?e:void 0),n=[];return(t==null?void 0:t.offset)!=null&&(t==null?void 0:t.bytes)!=null&&n.push({memcmp:{offset:t.offset,bytes:t.bytes}}),(t==null?void 0:t.dataSize)!=null&&n.push({dataSize:t.dataSize}),(await this._provider.connection.getProgramAccounts(this._programId,{commitment:this._provider.connection.commitment,filters:[...n,...Array.isArray(e)?e:[]]})).map(({pubkey:s,account:o})=>({publicKey:s,account:this._coder.accounts.decode(this._idlAccount.name,o.data)}))}subscribe(e,t){const n=uh.get(e.toString());if(n)return n.ee;const i=new fY;e=xi(e);const s=this._provider.connection.onAccountChange(e,o=>{const a=this._coder.accounts.decode(this._idlAccount.name,o.data);i.emit("change",a)},t);return uh.set(e.toString(),{ee:i,listener:s}),i}async unsubscribe(e){let t=uh.get(e.toString());if(!t){console.warn("Address is not subscribed");return}uh&&await this._provider.connection.removeAccountChangeListener(t.listener).then(()=>{uh.delete(e.toString())}).catch(console.error)}async createInstruction(e,t){const n=this.size;if(this._provider.publicKey===void 0)throw new Error("This function requires the Provider interface implementor to have a 'publicKey' field.");return Br.createAccount({fromPubkey:this._provider.publicKey,newAccountPubkey:e.publicKey,space:t??n,lamports:await this._provider.connection.getMinimumBalanceForRentExemption(t??n),programId:this._programId})}async getAccountInfo(e,t){return await this._provider.connection.getAccountInfo(xi(e),t)}async getAccountInfoAndContext(e,t){return await this._provider.connection.getAccountInfoAndContext(xi(e),t)}}const uh=new Map;class hJ{static build(e,t,n,i,s,o,a){return async(...l)=>{var h;const g=t(...l),[,b]=op(e,[...l]);let w;if(i.simulate===void 0)throw new Error("This function requires 'Provider.simulate' to be implemented.");try{w=await i.simulate(g,b.signers,(h=b.options)===null||h===void 0?void 0:h.commitment)}catch(x){throw pk(x,n)}if(w===void 0)throw new Error("Unable to simulate transaction");const I=w.logs;if(!I)throw new Error("Simulated logs not found");const S=[];if(a.events){let x=new Sk(o,s);for(const C of x.parseLogs(I))S.push(C)}return{events:S,raw:I}}}}function G1(r){return new kk(ch(8),e=>pJ.fromBuffer(e),e=>e.toBuffer(),r)}function cp(r){return new kk(ch(32),e=>new me(e),e=>e.toBuffer(),r)}function K1(r,e){return new dJ(r,e)}class kk extends np{constructor(e,t,n,i){super(e.span,i),this.layout=e,this.decoder=t,this.encoder=n}decode(e,t){return this.decoder(this.layout.decode(e,t))}encode(e,t,n){return this.layout.encode(this.encoder(e),t,n)}getSpan(e,t){return this.layout.getSpan(e,t)}}class dJ extends np{constructor(e,t){super(-1,t),this.layout=e,this.discriminator=Ps()}encode(e,t,n=0){return e==null?this.layout.span+this.discriminator.encode(0,t,n):(this.discriminator.encode(1,t,n),this.layout.encode(e,t,n+4)+4)}decode(e,t=0){const n=this.discriminator.decode(e,t);if(n===0)return null;if(n===1)return this.layout.decode(e,t+4);throw new Error("Invalid coption "+this.layout.property)}getSpan(e,t=0){return this.layout.getSpan(e,t+4)+4}}let pJ=class KC extends vs{toBuffer(){const e=super.toArray().reverse(),t=Ze.from(e);if(t.length===8)return t;if(t.length>=8)throw new Error("u64 too large");const n=Ze.alloc(8);return t.copy(n),n}static fromBuffer(e){if(e.length!==8)throw new Error(`Invalid buffer length: ${e.length}`);return new KC([...e].reverse().map(t=>`00${t.toString(16)}`.slice(-2)).join(""),16)}};const gJ=Pr([cp("mint"),cp("owner"),G1("amount"),K1(cp(),"delegate"),(r=>{const e=Ek(JY("discriminator"),null,r);return e.addVariant(0,Pr([]),"uninitialized"),e.addVariant(1,Pr([]),"initialized"),e.addVariant(2,Pr([]),"frozen"),e})("state"),K1(G1(),"isNative"),G1("delegatedAmount"),K1(cp(),"closeAuthority")]);function yJ(r){return gJ.decode(r)}class mJ{constructor(e,t,n,i,s,o,a,u){this._args=e,this._accounts=t,this._provider=n,this._programId=i,this._idlIx=s,this._idlTypes=a,this._customResolver=u,this._accountStore=new wJ(n,o,i)}args(e){this._args=e}async resolve(){this.resolveEventCpi(this._idlIx.accounts),this.resolveConst(this._idlIx.accounts);let e=0;for(;await this.resolvePdasAndRelations(this._idlIx.accounts)+await this.resolveCustom()>0;)if(e++,e===16){const t=o=>Io(o)?o.accounts.some(t):!!(o.address||o.pda||o.relations),n=(o,a=[],u=[])=>{for(const l of o)Io(l)?u.push(...n(l.accounts,[...a,l.name])):u.push([...a,l.name]);return u},i=this._idlIx.accounts.filter(t),s=n(i).filter(o=>!this.get(o)).map(o=>o.reduce((a,u)=>a+"."+u)).map(o=>`\`${o}\``).join(", ");throw new Error(["Reached maximum depth for account resolution.",`Unresolved accounts: ${s}`].join(" "))}}resolveOptionals(e){Object.assign(this._accounts,this.resolveOptionalsHelper(e,this._idlIx.accounts))}get(e){const t=e.reduce((n,i)=>n&&n[i],this._accounts);if(t&&t.toBase58)return t}set(e,t){let n=this._accounts;e.forEach((i,s)=>{var o;s===e.length-1&&(n[i]=t),n[i]=(o=n[i])!==null&&o!==void 0?o:{},n=n[i]})}resolveOptionalsHelper(e,t){const n={};for(const i of t){const s=i.name,o=e[s];o!==void 0&&(Tk(o)?Io(i)?n[s]=this.resolveOptionalsHelper(o,i.accounts):n[s]=Ok(o):o!==null?n[s]=xi(o):i.optional&&(n[s]=this._programId))}return n}async resolveCustom(){if(this._customResolver){const{accounts:e,resolved:t}=await this._customResolver({args:this._args,accounts:this._accounts,provider:this._provider,programId:this._programId,idlIx:this._idlIx});return this._accounts=e,t}return 0}resolveEventCpi(e,t=[]){for(const n in e){const i=e[n];Io(i)&&this.resolveEventCpi(i.accounts,[...t,i.name]);const s=+n+1;if(s===e.length)return;const o=e[n].name,a=e[s].name;if(o==="eventAuthority"&&a==="program"){const u=[...t,o],l=[...t,a];this.get(u)||this.set(u,me.findProgramAddressSync([Ze.from("__event_authority")],this._programId)[0]),this.get(l)||this.set(l,this._programId);return}}}resolveConst(e,t=[]){for(const n of e){const i=n.name;if(Io(n))this.resolveConst(n.accounts,[...t,i]);else{const s=n;if((s.signer||s.address)&&!this.get([...t,i])){if(s.signer){if(!this._provider.wallet)throw new Error("This function requires the `Provider` interface implementor to have a `wallet` field.");this.set([...t,i],this._provider.wallet.publicKey)}s.address&&this.set([...t,i],xi(s.address))}}}}async resolvePdasAndRelations(e,t=[]){let n=0;for(const i of e){const s=i.name;if(Io(i))n+=await this.resolvePdasAndRelations(i.accounts,[...t,s]);else{const o=i;if((o.pda||o.relations)&&!this.get([...t,s])){n++;try{if(o.pda){const a=await Promise.all(o.pda.seeds.map(h=>this.toBuffer(h,t)));if(a.some(h=>!h))continue;const u=await this.parseProgramId(o,t),[l]=me.findProgramAddressSync(a,u);this.set([...t,s],l)}}catch{}try{if(o.relations){const a=this.get([...t,o.relations[0]]);if(a){const u=await this._accountStore.fetchAccount({publicKey:a});this.set([...t,s],u[s])}}}catch{}}}}return n}async parseProgramId(e,t=[]){var n;if(!(!((n=e.pda)===null||n===void 0)&&n.program))return this._programId;const i=await this.toBuffer(e.pda.program,t);if(!i)throw new Error(`Program seed not resolved: ${e.name}`);return new me(i)}async toBuffer(e,t=[]){switch(e.kind){case"const":return this.toBufferConst(e);case"arg":return await this.toBufferArg(e);case"account":return await this.toBufferAccount(e,t);default:throw new Error(`Unexpected seed: ${e}`)}}toBufferConst(e){return this.toBufferValue("bytes",e.value)}async toBufferArg(e){const[t,...n]=e.path.split("."),i=this._idlIx.args.findIndex(a=>a.name===t);if(i===-1)throw new Error(`Unable to find argument for seed: ${t}`);const s=n.reduce((a,u)=>(a??{})[u],this._args[i]);if(s===void 0)return;const o=this.getType(this._idlIx.args[i].type,n);return this.toBufferValue(o,s)}async toBufferAccount(e,t=[]){const[n,...i]=e.path.split("."),s=this.get([...t,n]);if(!s)return;if(!i.length)return this.toBufferValue("pubkey",s);if(!e.account)throw new Error(`Seed account is required in order to resolve type: ${e.path}`);let a=await this._accountStore.fetchAccount({publicKey:s,name:e.account}),u=i;for(;u.length>0;)a=a[u[0]],u=u.slice(1);if(a===void 0)return;const l=this.getType({defined:{name:e.account}},i);return this.toBufferValue(l,a)}toBufferValue(e,t){switch(e){case"u8":case"i8":return Ze.from([t]);case"u16":case"i16":return new vs(t).toArrayLike(Ze,"le",2);case"u32":case"i32":return new vs(t).toArrayLike(Ze,"le",4);case"u64":case"i64":return new vs(t).toArrayLike(Ze,"le",8);case"u128":case"i128":return new vs(t).toArrayLike(Ze,"le",16);case"u256":case"i256":return new vs(t).toArrayLike(Ze,"le",32);case"string":return Ze.from(t);case"pubkey":return t.toBuffer();case"bytes":return Ze.from(t);default:if(e!=null&&e.array)return Ze.from(t);throw new Error(`Unexpected seed type: ${e}`)}}getType(e,t=[]){var n;const i=(n=e==null?void 0:e.defined)===null||n===void 0?void 0:n.name;if(i){if(i==="tokenAccount")switch(t.at(0)){case"mint":case"owner":return"pubkey";case"amount":case"delagatedAmount":return"u64";default:throw new Error(`Unknown token account path: ${t}`)}const s=this._idlTypes.find(h=>h.name===i);if(!s)throw new Error(`Type not found: ${i}`);const[o,...a]=t,l=s.type.fields.find(h=>h.name===o);if(!l)throw new Error(`Field not found: ${o}`);return this.getType(l.type,a)}return e}}class wJ{constructor(e,t,n){this._provider=e,this._cache=new Map,this._idls={},this._idls[n.toBase58()]=t}async fetchAccount({publicKey:e,name:t}){const n=e.toBase58();if(!this._cache.has(n)){const i=await this._provider.connection.getAccountInfo(e);if(i===null)throw new Error(`Account not found: ${n}`);if(t==="tokenAccount"){const s=yJ(i.data);this._cache.set(n,s)}else{const s=await this.getAccountsNs(i.owner);if(s){const o=Object.values(s)[0];if(o){const a=o.coder.accounts.decodeAny(i.data);this._cache.set(n,a)}}}}return this._cache.get(n)}async getAccountsNs(e){const t=e.toBase58();if(!this._idls[t]){const n=await Tu.fetchIdl(e,this._provider);if(n){const i=new Tu(n,this._provider);this._idls[t]=i.account}}return this._idls[t]}}class bJ{static build(e,t,n,i,s,o,a,u,l,h,g){return(...b)=>new _J(b,i,s,o,a,u,e,t,n,l,h,g)}}function Tk(r){return typeof r=="object"&&r!==null&&!("_bn"in r)}function Ok(r,e){const t={};for(const n in r){const i=r[n];if(i===null)throw new Error("Failed to resolve optionals due to IDL type mismatch with input accounts!");t[n]=Tk(i)?Ok(i):xi(i)}return t}class _J{constructor(e,t,n,i,s,o,a,u,l,h,g,b){this._args=e,this._ixFn=t,this._txFn=n,this._rpcFn=i,this._simulateFn=s,this._viewFn=o,this._accounts={},this._remainingAccounts=[],this._signers=[],this._preInstructions=[],this._postInstructions=[],this._resolveAccounts=!0,this._accountsResolver=new mJ(e,this._accounts,a,u,l,h,g,b)}args(e){this._args=e,this._accountsResolver.args(e)}accounts(e){return this.accountsPartial(e)}accountsPartial(e){return this._resolveAccounts=!0,this._accountsResolver.resolveOptionals(e),this}accountsStrict(e){return this._resolveAccounts=!1,this._accountsResolver.resolveOptionals(e),this}signers(e){return this._signers=this._signers.concat(e),this}remainingAccounts(e){return this._remainingAccounts=this._remainingAccounts.concat(e),this}preInstructions(e,t=!1){return t?this._preInstructions=e.concat(this._preInstructions):this._preInstructions=this._preInstructions.concat(e),this}postInstructions(e){return this._postInstructions=this._postInstructions.concat(e),this}async pubkeys(){return this._resolveAccounts&&await this._accountsResolver.resolve(),this._accounts}async instruction(){return this._resolveAccounts&&await this._accountsResolver.resolve(),this._ixFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions})}async transaction(){return this._resolveAccounts&&await this._accountsResolver.resolve(),this._txFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions})}async simulate(e){return this._resolveAccounts&&await this._accountsResolver.resolve(),this._simulateFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions,options:e})}async view(e){if(this._resolveAccounts&&await this._accountsResolver.resolve(),!this._viewFn)throw new Error(["Method does not support views.","The instruction should return a value, and its accounts must be read-only"].join(" "));return this._viewFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions,options:e})}async rpc(e){return this._resolveAccounts&&await this._accountsResolver.resolve(),this._rpcFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions,options:e})}async rpcAndKeys(e){return{signature:await this.rpc(e),pubkeys:await this.pubkeys()}}async prepare(){return{instruction:await this.instruction(),signers:this._signers,pubkeys:await this.pubkeys()}}}class AJ{static build(e,t,n,i){const s=t.accounts.find(u=>u.writable),o=!!t.returns;return s||!o?void 0:async(...u)=>{let l=await n(...u);const h=`Program return: ${e} `;let g=l.raw.find(S=>S.startsWith(h));if(!g)throw new Error("View expected return log");let b=PI(g.slice(h.length)),w=t.returns;if(!w)throw new Error("View expected return type");return mt.fieldLayout({type:w},i.types).decode(b)}}}class vJ{static build(e,t,n,i,s){const o={},a={},u={},l={},h={},g={},b=bY(e),w=e.accounts?lJ.build(e,t,n,i):{};return e.instructions.forEach(I=>{const S=ap.build(I,(Z,K)=>t.instruction.encode(Z,K),n),x=cJ.build(I,S),C=uJ.build(I,x,b,i),H=hJ.build(I,x,b,i,t,n,e),D=AJ.build(n,I,H,e),z=bJ.build(i,n,I,S,x,C,H,D,w,e.types||[],s==null?void 0:s(I)),V=I.name;a[V]=S,u[V]=x,o[V]=C,l[V]=H,h[V]=z,D&&(g[V]=D)}),[o,a,u,w,l,h,g]}}class Tu{get programId(){return this._programId}get idl(){return this._idl}get rawIdl(){return this._rawIdl}get coder(){return this._coder}get provider(){return this._provider}constructor(e,t=F1(),n,i){this._idl=wY(e),this._rawIdl=e,this._provider=t,this._programId=xi(e.address),this._coder=n??new gk(this._idl),this._events=new iJ(this._programId,t,this._coder);const[s,o,a,u,l,h,g]=vJ.build(this._idl,this._coder,this._programId,t,i);this.rpc=s,this.instruction=o,this.transaction=a,this.account=u,this.simulate=l,this.methods=h,this.views=g}static async at(e,t){const n=xi(e),i=await Tu.fetchIdl(n,t);if(!i)throw new Error(`IDL not found for program: ${e.toString()}`);return new Tu(i,t)}static async fetchIdl(e,t){t=t??F1();const n=xi(e),i=await pY(n),s=await t.connection.getAccountInfo(i);if(!s)return null;let o=mY(s.data.slice(8));const a=uY(o.data);return JSON.parse(dY(a))}addEventListener(e,t,n){return this._events.addEventListener(e,t,n)}async removeEventListener(e){return await this._events.removeEventListener(e)}}new me("11111111111111111111111111111111");const EJ="6.13.5";function xJ(r,e,t){const n=e.split("|").map(s=>s.trim());for(let s=0;s<n.length;s++)switch(e){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof r===e)return}const i=new Error(`invalid value for type ${e}`);throw i.code="INVALID_ARGUMENT",i.argument=`value.${t}`,i.value=r,i}async function mn(r){const e=Object.keys(r);return(await Promise.all(e.map(n=>Promise.resolve(r[n])))).reduce((n,i,s)=>(n[e[s]]=i,n),{})}function ze(r,e,t){for(let n in e){let i=e[n];const s=t?t[n]:null;s&&xJ(i,s,n),Object.defineProperty(r,n,{enumerable:!0,value:i,writable:!1})}}function Ou(r){if(r==null)return"null";if(Array.isArray(r))return"[ "+r.map(Ou).join(", ")+" ]";if(r instanceof Uint8Array){const e="0123456789abcdef";let t="0x";for(let n=0;n<r.length;n++)t+=e[r[n]>>4],t+=e[r[n]&15];return t}if(typeof r=="object"&&typeof r.toJSON=="function")return Ou(r.toJSON());switch(typeof r){case"boolean":case"symbol":return r.toString();case"bigint":return BigInt(r).toString();case"number":return r.toString();case"string":return JSON.stringify(r);case"object":{const e=Object.keys(r);return e.sort(),"{ "+e.map(t=>`${Ou(t)}: ${Ou(r[t])}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function Qr(r,e){return r&&r.code===e}function j1(r){return Qr(r,"CALL_EXCEPTION")}function Jt(r,e,t){let n=r;{const s=[];if(t){if("message"in t||"code"in t||"name"in t)throw new Error(`value will overwrite populated values: ${Ou(t)}`);for(const o in t){if(o==="shortMessage")continue;const a=t[o];s.push(o+"="+Ou(a))}}s.push(`code=${e}`),s.push(`version=${EJ}`),s.length&&(r+=" ("+s.join(", ")+")")}let i;switch(e){case"INVALID_ARGUMENT":i=new TypeError(r);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":i=new RangeError(r);break;default:i=new Error(r)}return ze(i,{code:e}),t&&Object.assign(i,t),i.shortMessage==null&&ze(i,{shortMessage:n}),i}function ge(r,e,t,n){if(!r)throw Jt(e,t,n)}function q(r,e,t,n){ge(r,e,"INVALID_ARGUMENT",{argument:t,value:n})}function Nk(r,e,t){t==null&&(t=""),t&&(t=": "+t),ge(r>=e,"missing argument"+t,"MISSING_ARGUMENT",{count:r,expectedCount:e}),ge(r<=e,"too many arguments"+t,"UNEXPECTED_ARGUMENT",{count:r,expectedCount:e})}["NFD","NFC","NFKD","NFKC"].reduce((r,e)=>{try{if("test".normalize(e)!=="test")throw new Error("bad");if(e==="NFD"&&"é".normalize("NFD")!=="é")throw new Error("broken");r.push(e)}catch{}return r},[]);function up(r,e,t){if(t==null&&(t=""),r!==e){let n=t,i="new";t&&(n+=".",i+=" "+t),ge(!1,`private constructor; use ${n}from* methods`,"UNSUPPORTED_OPERATION",{operation:i})}}function Ck(r,e,t){if(r instanceof Uint8Array)return t?new Uint8Array(r):r;if(typeof r=="string"&&r.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){const n=new Uint8Array((r.length-2)/2);let i=2;for(let s=0;s<n.length;s++)n[s]=parseInt(r.substring(i,i+2),16),i+=2;return n}q(!1,"invalid BytesLike value",e||"value",r)}function _t(r,e){return Ck(r,e,!1)}function wn(r,e){return Ck(r,e,!0)}function Gt(r,e){return!(typeof r!="string"||!r.match(/^0x[0-9A-Fa-f]*$/)||typeof e=="number"&&r.length!==2+2*e||e===!0&&r.length%2!==0)}function W1(r){return Gt(r,!0)||r instanceof Uint8Array}const Bk="0123456789abcdef";function Ce(r){const e=_t(r);let t="0x";for(let n=0;n<e.length;n++){const i=e[n];t+=Bk[(i&240)>>4]+Bk[i&15]}return t}function xr(r){return"0x"+r.map(e=>Ce(e).substring(2)).join("")}function Nu(r){return Gt(r,!0)?(r.length-2)/2:_t(r).length}function lr(r,e,t){const n=_t(r);return t!=null&&t>n.length&&ge(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:n,length:n.length,offset:t}),Ce(n.slice(e??0,t??n.length))}function Pk(r,e,t){const n=_t(r);ge(e>=n.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(n),length:e,offset:e+1});const i=new Uint8Array(e);return i.fill(0),t?i.set(n,e-n.length):i.set(n,0),Ce(i)}function Ka(r,e){return Pk(r,e,!0)}function RJ(r,e){return Pk(r,e,!1)}const lp=BigInt(0),Ri=BigInt(1),Cu=9007199254740991;function IJ(r,e){const t=fp(r,"value"),n=BigInt(at(e,"width"));if(ge(t>>n===lp,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:r}),t>>n-Ri){const i=(Ri<<n)-Ri;return-((~t&i)+Ri)}return t}function Mk(r,e){let t=Le(r,"value");const n=BigInt(at(e,"width")),i=Ri<<n-Ri;if(t<lp){t=-t,ge(t<=i,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:r});const s=(Ri<<n)-Ri;return(~t&s)+Ri}else ge(t<i,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:r});return t}function lh(r,e){const t=fp(r,"value"),n=BigInt(at(e,"bits"));return t&(Ri<<n)-Ri}function Le(r,e){switch(typeof r){case"bigint":return r;case"number":return q(Number.isInteger(r),"underflow",e||"value",r),q(r>=-Cu&&r<=Cu,"overflow",e||"value",r),BigInt(r);case"string":try{if(r==="")throw new Error("empty string");return r[0]==="-"&&r[1]!=="-"?-BigInt(r.substring(1)):BigInt(r)}catch(t){q(!1,`invalid BigNumberish string: ${t.message}`,e||"value",r)}}q(!1,"invalid BigNumberish value",e||"value",r)}function fp(r,e){const t=Le(r,e);return ge(t>=lp,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:r}),t}const Lk="0123456789abcdef";function V1(r){if(r instanceof Uint8Array){let e="0x0";for(const t of r)e+=Lk[t>>4],e+=Lk[t&15];return BigInt(e)}return Le(r)}function at(r,e){switch(typeof r){case"bigint":return q(r>=-Cu&&r<=Cu,"overflow",e||"value",r),Number(r);case"number":return q(Number.isInteger(r),"underflow",e||"value",r),q(r>=-Cu&&r<=Cu,"overflow",e||"value",r),r;case"string":try{if(r==="")throw new Error("empty string");return at(BigInt(r),e)}catch(t){q(!1,`invalid numeric string: ${t.message}`,e||"value",r)}}q(!1,"invalid numeric value",e||"value",r)}function SJ(r){return at(V1(r))}function No(r,e){let n=fp(r,"value").toString(16);if(e==null)n.length%2&&(n="0"+n);else{const i=at(e,"width");for(ge(i*2>=n.length,`value exceeds width (${i} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:r});n.length<i*2;)n="0"+n}return"0x"+n}function bn(r){const e=fp(r,"value");if(e===lp)return new Uint8Array([]);let t=e.toString(16);t.length%2&&(t="0"+t);const n=new Uint8Array(t.length/2);for(let i=0;i<n.length;i++){const s=i*2;n[i]=parseInt(t.substring(s,s+2),16)}return n}function Bu(r){let e=Ce(W1(r)?r:bn(r)).substring(2);for(;e.startsWith("0");)e=e.substring(1);return e===""&&(e="0"),"0x"+e}const Uk="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";BigInt(0);const Dk=BigInt(58);function kJ(r){const e=_t(r);let t=V1(e),n="";for(;t;)n=Uk[Number(t%Dk)]+n,t/=Dk;for(let i=0;i<e.length&&!e[i];i++)n=Uk[0]+n;return n}function TJ(r){r=atob(r);const e=new Uint8Array(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return _t(e)}function OJ(r){const e=_t(r);let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}class $k{constructor(e,t,n){Q(this,"filter");Q(this,"emitter");se(this,Qu);F(this,Qu,t),ze(this,{emitter:e,filter:n})}async removeListener(){T(this,Qu)!=null&&await this.emitter.off(this.filter,T(this,Qu))}}Qu=new WeakMap;function NJ(r,e,t,n,i){q(!1,`invalid codepoint at offset ${e}; ${r}`,"bytes",t)}function Fk(r,e,t,n,i){if(r==="BAD_PREFIX"||r==="UNEXPECTED_CONTINUE"){let s=0;for(let o=e+1;o<t.length&&t[o]>>6===2;o++)s++;return s}return r==="OVERRUN"?t.length-e-1:0}function CJ(r,e,t,n,i){return r==="OVERLONG"?(q(typeof i=="number","invalid bad code point for replacement","badCodepoint",i),n.push(i),0):(n.push(65533),Fk(r,e,t))}const BJ=Object.freeze({error:NJ,ignore:Fk,replace:CJ});function PJ(r,e){e==null&&(e=BJ.error);const t=_t(r,"bytes"),n=[];let i=0;for(;i<t.length;){const s=t[i++];if(!(s>>7)){n.push(s);continue}let o=null,a=null;if((s&224)===192)o=1,a=127;else if((s&240)===224)o=2,a=2047;else if((s&248)===240)o=3,a=65535;else{(s&192)===128?i+=e("UNEXPECTED_CONTINUE",i-1,t,n):i+=e("BAD_PREFIX",i-1,t,n);continue}if(i-1+o>=t.length){i+=e("OVERRUN",i-1,t,n);continue}let u=s&(1<<8-o-1)-1;for(let l=0;l<o;l++){let h=t[i];if((h&192)!=128){i+=e("MISSING_CONTINUE",i,t,n),u=null;break}u=u<<6|h&63,i++}if(u!==null){if(u>1114111){i+=e("OUT_OF_RANGE",i-1-o,t,n,u);continue}if(u>=55296&&u<=57343){i+=e("UTF16_SURROGATE",i-1-o,t,n,u);continue}if(u<=a){i+=e("OVERLONG",i-1-o,t,n,u);continue}n.push(u)}}return n}function Ls(r,e){q(typeof r=="string","invalid string value","str",r);let t=[];for(let n=0;n<r.length;n++){const i=r.charCodeAt(n);if(i<128)t.push(i);else if(i<2048)t.push(i>>6|192),t.push(i&63|128);else if((i&64512)==55296){n++;const s=r.charCodeAt(n);q(n<r.length&&(s&64512)===56320,"invalid surrogate pair","str",r);const o=65536+((i&1023)<<10)+(s&1023);t.push(o>>18|240),t.push(o>>12&63|128),t.push(o>>6&63|128),t.push(o&63|128)}else t.push(i>>12|224),t.push(i>>6&63|128),t.push(i&63|128)}return new Uint8Array(t)}function MJ(r){return r.map(e=>e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode((e>>10&1023)+55296,(e&1023)+56320))).join("")}function hp(r,e){return MJ(PJ(r,e))}function Hk(r){async function e(t,n){ge(n==null||!n.cancelled,"request cancelled before sending","CANCELLED");const i=t.url.split(":")[0].toLowerCase();ge(i==="http"||i==="https",`unsupported protocol ${i}`,"UNSUPPORTED_OPERATION",{info:{protocol:i},operation:"request"}),ge(i==="https"||!t.credentials||t.allowInsecureAuthentication,"insecure authorized connections unsupported","UNSUPPORTED_OPERATION",{operation:"request"});let s=null;const o=new AbortController,a=setTimeout(()=>{s=Jt("request timeout","TIMEOUT"),o.abort()},t.timeout);n&&n.addListener(()=>{s=Jt("request cancelled","CANCELLED"),o.abort()});const u={method:t.method,headers:new Headers(Array.from(t)),body:t.body||void 0,signal:o.signal};let l;try{l=await fetch(t.url,u)}catch(w){throw clearTimeout(a),s||w}clearTimeout(a);const h={};l.headers.forEach((w,I)=>{h[I.toLowerCase()]=w});const g=await l.arrayBuffer(),b=g==null?null:new Uint8Array(g);return{statusCode:l.status,statusMessage:l.statusText,headers:h,body:b}}return e}const LJ=12,UJ=250;let zk=Hk();const DJ=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),$J=new RegExp("^ipfs://(ipfs/)?(.*)$","i");let q1=!1;async function Gk(r,e){try{const t=r.match(DJ);if(!t)throw new Error("invalid data");return new Co(200,"OK",{"content-type":t[1]||"text/plain"},t[2]?TJ(t[3]):HJ(t[3]))}catch{return new Co(599,"BAD REQUEST (invalid data: URI)",{},null,new Us(r))}}function Kk(r){async function e(t,n){try{const i=t.match($J);if(!i)throw new Error("invalid link");return new Us(`${r}${i[2]}`)}catch{return new Co(599,"BAD REQUEST (invalid IPFS URI)",{},null,new Us(t))}}return e}const dp={data:Gk,ipfs:Kk("https://gateway.ipfs.io/ipfs/")},jk=new WeakMap;class FJ{constructor(e){se(this,sc);se(this,$o);F(this,sc,[]),F(this,$o,!1),jk.set(e,()=>{if(!T(this,$o)){F(this,$o,!0);for(const t of T(this,sc))setTimeout(()=>{t()},0);F(this,sc,[])}})}addListener(e){ge(!T(this,$o),"singal already cancelled","UNSUPPORTED_OPERATION",{operation:"fetchCancelSignal.addCancelListener"}),T(this,sc).push(e)}get cancelled(){return T(this,$o)}checkSignal(){ge(!this.cancelled,"cancelled","CANCELLED",{})}}sc=new WeakMap,$o=new WeakMap;function pp(r){if(r==null)throw new Error("missing signal; should not happen");return r.checkSignal(),r}const Zp=class Zp{constructor(e){se(this,uc);se(this,Yu);se(this,Ju);se(this,Oi);se(this,js);se(this,Xu);se(this,el);se(this,Hr);se(this,qn);se(this,Ws);se(this,oc);se(this,ac);se(this,cc);se(this,as);se(this,Ni);se(this,Fo);F(this,el,String(e)),F(this,Yu,!1),F(this,Ju,!0),F(this,Oi,{}),F(this,js,""),F(this,Xu,3e5),F(this,Ni,{slotInterval:UJ,maxAttempts:LJ}),F(this,Fo,null)}get url(){return T(this,el)}set url(e){F(this,el,String(e))}get body(){return T(this,Hr)==null?null:new Uint8Array(T(this,Hr))}set body(e){if(e==null)F(this,Hr,void 0),F(this,qn,void 0);else if(typeof e=="string")F(this,Hr,Ls(e)),F(this,qn,"text/plain");else if(e instanceof Uint8Array)F(this,Hr,e),F(this,qn,"application/octet-stream");else if(typeof e=="object")F(this,Hr,Ls(JSON.stringify(e))),F(this,qn,"application/json");else throw new Error("invalid body")}hasBody(){return T(this,Hr)!=null}get method(){return T(this,js)?T(this,js):this.hasBody()?"POST":"GET"}set method(e){e==null&&(e=""),F(this,js,String(e).toUpperCase())}get headers(){const e=Object.assign({},T(this,Oi));return T(this,Ws)&&(e.authorization=`Basic ${OJ(Ls(T(this,Ws)))}`),this.allowGzip&&(e["accept-encoding"]="gzip"),e["content-type"]==null&&T(this,qn)&&(e["content-type"]=T(this,qn)),this.body&&(e["content-length"]=String(this.body.length)),e}getHeader(e){return this.headers[e.toLowerCase()]}setHeader(e,t){T(this,Oi)[String(e).toLowerCase()]=String(t)}clearHeaders(){F(this,Oi,{})}[Symbol.iterator](){const e=this.headers,t=Object.keys(e);let n=0;return{next:()=>{if(n<t.length){const i=t[n++];return{value:[i,e[i]],done:!1}}return{value:void 0,done:!0}}}}get credentials(){return T(this,Ws)||null}setCredentials(e,t){q(!e.match(/:/),"invalid basic authentication username","username","[REDACTED]"),F(this,Ws,`${e}:${t}`)}get allowGzip(){return T(this,Ju)}set allowGzip(e){F(this,Ju,!!e)}get allowInsecureAuthentication(){return!!T(this,Yu)}set allowInsecureAuthentication(e){F(this,Yu,!!e)}get timeout(){return T(this,Xu)}set timeout(e){q(e>=0,"timeout must be non-zero","timeout",e),F(this,Xu,e)}get preflightFunc(){return T(this,oc)||null}set preflightFunc(e){F(this,oc,e)}get processFunc(){return T(this,ac)||null}set processFunc(e){F(this,ac,e)}get retryFunc(){return T(this,cc)||null}set retryFunc(e){F(this,cc,e)}get getUrlFunc(){return T(this,Fo)||zk}set getUrlFunc(e){F(this,Fo,e)}toString(){return`<FetchRequest method=${JSON.stringify(this.method)} url=${JSON.stringify(this.url)} headers=${JSON.stringify(this.headers)} body=${T(this,Hr)?Ce(T(this,Hr)):"null"}>`}setThrottleParams(e){e.slotInterval!=null&&(T(this,Ni).slotInterval=e.slotInterval),e.maxAttempts!=null&&(T(this,Ni).maxAttempts=e.maxAttempts)}send(){return ge(T(this,as)==null,"request already sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.send"}),F(this,as,new FJ(this)),Ee(this,uc,_d).call(this,0,Wk()+this.timeout,0,this,new Co(0,"",{},null,this))}cancel(){ge(T(this,as)!=null,"request has not been sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.cancel"});const e=jk.get(this);if(!e)throw new Error("missing signal; should not happen");e()}redirect(e){const t=this.url.split(":")[0].toLowerCase(),n=e.split(":")[0].toLowerCase();ge(this.method==="GET"&&(t!=="https"||n!=="http")&&e.match(/^https?:/),"unsupported redirect","UNSUPPORTED_OPERATION",{operation:`redirect(${this.method} ${JSON.stringify(this.url)} => ${JSON.stringify(e)})`});const i=new Zp(e);return i.method="GET",i.allowGzip=this.allowGzip,i.timeout=this.timeout,F(i,Oi,Object.assign({},T(this,Oi))),T(this,Hr)&&F(i,Hr,new Uint8Array(T(this,Hr))),F(i,qn,T(this,qn)),i}clone(){const e=new Zp(this.url);return F(e,js,T(this,js)),T(this,Hr)&&F(e,Hr,T(this,Hr)),F(e,qn,T(this,qn)),F(e,Oi,Object.assign({},T(this,Oi))),F(e,Ws,T(this,Ws)),this.allowGzip&&(e.allowGzip=!0),e.timeout=this.timeout,this.allowInsecureAuthentication&&(e.allowInsecureAuthentication=!0),F(e,oc,T(this,oc)),F(e,ac,T(this,ac)),F(e,cc,T(this,cc)),F(e,Ni,Object.assign({},T(this,Ni))),F(e,Fo,T(this,Fo)),e}static lockConfig(){q1=!0}static getGateway(e){return dp[e.toLowerCase()]||null}static registerGateway(e,t){if(e=e.toLowerCase(),e==="http"||e==="https")throw new Error(`cannot intercept ${e}; use registerGetUrl`);if(q1)throw new Error("gateways locked");dp[e]=t}static registerGetUrl(e){if(q1)throw new Error("gateways locked");zk=e}static createGetUrlFunc(e){return Hk()}static createDataGateway(){return Gk}static createIpfsGatewayFunc(e){return Kk(e)}};Yu=new WeakMap,Ju=new WeakMap,Oi=new WeakMap,js=new WeakMap,Xu=new WeakMap,el=new WeakMap,Hr=new WeakMap,qn=new WeakMap,Ws=new WeakMap,oc=new WeakMap,ac=new WeakMap,cc=new WeakMap,as=new WeakMap,Ni=new WeakMap,Fo=new WeakMap,uc=new WeakSet,_d=async function(e,t,n,i,s){var h,g,b;if(e>=T(this,Ni).maxAttempts)return s.makeServerError("exceeded maximum retry limit");ge(Wk()<=t,"timeout","TIMEOUT",{operation:"request.send",reason:"timeout",request:i}),n>0&&await zJ(n);let o=this.clone();const a=(o.url.split(":")[0]||"").toLowerCase();if(a in dp){const w=await dp[a](o.url,pp(T(i,as)));if(w instanceof Co){let I=w;if(this.processFunc){pp(T(i,as));try{I=await this.processFunc(o,I)}catch(S){(S.throttle==null||typeof S.stall!="number")&&I.makeServerError("error in post-processing function",S).assertOk()}}return I}o=w}this.preflightFunc&&(o=await this.preflightFunc(o));const u=await this.getUrlFunc(o,pp(T(i,as)));let l=new Co(u.statusCode,u.statusMessage,u.headers,u.body,i);if(l.statusCode===301||l.statusCode===302){try{const w=l.headers.location||"";return Ee(h=o.redirect(w),uc,_d).call(h,e+1,t,0,i,l)}catch{}return l}else if(l.statusCode===429&&(this.retryFunc==null||await this.retryFunc(o,l,e))){const w=l.headers["retry-after"];let I=T(this,Ni).slotInterval*Math.trunc(Math.random()*Math.pow(2,e));return typeof w=="string"&&w.match(/^[1-9][0-9]*$/)&&(I=parseInt(w)),Ee(g=o.clone(),uc,_d).call(g,e+1,t,I,i,l)}if(this.processFunc){pp(T(i,as));try{l=await this.processFunc(o,l)}catch(w){(w.throttle==null||typeof w.stall!="number")&&l.makeServerError("error in post-processing function",w).assertOk();let I=T(this,Ni).slotInterval*Math.trunc(Math.random()*Math.pow(2,e));return w.stall>=0&&(I=w.stall),Ee(b=o.clone(),uc,_d).call(b,e+1,t,I,i,l)}}return l};let Us=Zp;const nb=class nb{constructor(e,t,n,i,s){se(this,Nh);se(this,Ch);se(this,Bh);se(this,Zn);se(this,tl);se(this,lc);F(this,Nh,e),F(this,Ch,t),F(this,Bh,Object.keys(n).reduce((o,a)=>(o[a.toLowerCase()]=String(n[a]),o),{})),F(this,Zn,i==null?null:new Uint8Array(i)),F(this,tl,s||null),F(this,lc,{message:""})}toString(){return`<FetchResponse status=${this.statusCode} body=${T(this,Zn)?Ce(T(this,Zn)):"null"}>`}get statusCode(){return T(this,Nh)}get statusMessage(){return T(this,Ch)}get headers(){return Object.assign({},T(this,Bh))}get body(){return T(this,Zn)==null?null:new Uint8Array(T(this,Zn))}get bodyText(){try{return T(this,Zn)==null?"":hp(T(this,Zn))}catch{ge(!1,"response body is not valid UTF-8 data","UNSUPPORTED_OPERATION",{operation:"bodyText",info:{response:this}})}}get bodyJson(){try{return JSON.parse(this.bodyText)}catch{ge(!1,"response body is not valid JSON","UNSUPPORTED_OPERATION",{operation:"bodyJson",info:{response:this}})}}[Symbol.iterator](){const e=this.headers,t=Object.keys(e);let n=0;return{next:()=>{if(n<t.length){const i=t[n++];return{value:[i,e[i]],done:!1}}return{value:void 0,done:!0}}}}makeServerError(e,t){let n;e?n=`CLIENT ESCALATED SERVER ERROR (${this.statusCode} ${this.statusMessage}; ${e})`:(e=`${this.statusCode} ${this.statusMessage}`,n=`CLIENT ESCALATED SERVER ERROR (${e})`);const i=new nb(599,n,this.headers,this.body,T(this,tl)||void 0);return F(i,lc,{message:e,error:t}),i}throwThrottleError(e,t){t==null?t=-1:q(Number.isInteger(t)&&t>=0,"invalid stall timeout","stall",t);const n=new Error(e||"throttling requests");throw ze(n,{stall:t,throttle:!0}),n}getHeader(e){return this.headers[e.toLowerCase()]}hasBody(){return T(this,Zn)!=null}get request(){return T(this,tl)}ok(){return T(this,lc).message===""&&this.statusCode>=200&&this.statusCode<300}assertOk(){if(this.ok())return;let{message:e,error:t}=T(this,lc);e===""&&(e=`server response ${this.statusCode} ${this.statusMessage}`);let n=null;this.request&&(n=this.request.url);let i=null;try{T(this,Zn)&&(i=hp(T(this,Zn)))}catch{}ge(!1,e,"SERVER_ERROR",{request:this.request||"unknown request",response:this,error:t,info:{requestUrl:n,responseBody:i,responseStatus:`${this.statusCode} ${this.statusMessage}`}})}};Nh=new WeakMap,Ch=new WeakMap,Bh=new WeakMap,Zn=new WeakMap,tl=new WeakMap,lc=new WeakMap;let Co=nb;function Wk(){return new Date().getTime()}function HJ(r){return Ls(r.replace(/%([0-9a-f][0-9a-f])/gi,(e,t)=>String.fromCharCode(parseInt(t,16))))}function zJ(r){return new Promise(e=>setTimeout(e,r))}function GJ(r){let e=r.toString(16);for(;e.length<2;)e="0"+e;return"0x"+e}function Vk(r,e,t){let n=0;for(let i=0;i<t;i++)n=n*256+r[e+i];return n}function qk(r,e,t,n){const i=[];for(;t<e+1+n;){const s=Zk(r,t);i.push(s.result),t+=s.consumed,ge(t<=e+1+n,"child data too short","BUFFER_OVERRUN",{buffer:r,length:n,offset:e})}return{consumed:1+n,result:i}}function Zk(r,e){ge(r.length!==0,"data too short","BUFFER_OVERRUN",{buffer:r,length:0,offset:1});const t=n=>{ge(n<=r.length,"data short segment too short","BUFFER_OVERRUN",{buffer:r,length:r.length,offset:n})};if(r[e]>=248){const n=r[e]-247;t(e+1+n);const i=Vk(r,e+1,n);return t(e+1+n+i),qk(r,e,e+1+n,n+i)}else if(r[e]>=192){const n=r[e]-192;return t(e+1+n),qk(r,e,e+1,n)}else if(r[e]>=184){const n=r[e]-183;t(e+1+n);const i=Vk(r,e+1,n);t(e+1+n+i);const s=Ce(r.slice(e+1+n,e+1+n+i));return{consumed:1+n+i,result:s}}else if(r[e]>=128){const n=r[e]-128;t(e+1+n);const i=Ce(r.slice(e+1,e+1+n));return{consumed:1+n,result:i}}return{consumed:1,result:GJ(r[e])}}function gp(r){const e=_t(r,"data"),t=Zk(e,0);return q(t.consumed===e.length,"unexpected junk after rlp payload","data",r),t.result}function Qk(r){const e=[];for(;r;)e.unshift(r&255),r>>=8;return e}function Yk(r){if(Array.isArray(r)){let n=[];if(r.forEach(function(s){n=n.concat(Yk(s))}),n.length<=55)return n.unshift(192+n.length),n;const i=Qk(n.length);return i.unshift(247+i.length),i.concat(n)}const e=Array.prototype.slice.call(_t(r,"object"));if(e.length===1&&e[0]<=127)return e;if(e.length<=55)return e.unshift(128+e.length),e;const t=Qk(e.length);return t.unshift(183+t.length),t.concat(e)}const Jk="0123456789abcdef";function ja(r){let e="0x";for(const t of Yk(r))e+=Jk[t>>4],e+=Jk[t&15];return e}const _n=32,Z1=new Uint8Array(_n),KJ=["then"],yp={},Xk=new WeakMap;function Wa(r){return Xk.get(r)}function eT(r,e){Xk.set(r,e)}function fh(r,e){const t=new Error(`deferred error during ABI decoding triggered accessing ${r}`);throw t.error=e,t}function Q1(r,e,t){return r.indexOf(null)>=0?e.map((n,i)=>n instanceof Pu?Q1(Wa(n),n,t):n):r.reduce((n,i,s)=>{let o=e.getValue(i);return i in n||(t&&o instanceof Pu&&(o=Q1(Wa(o),o,t)),n[i]=o),n},{})}const nl=class nl extends Array{constructor(...t){const n=t[0];let i=t[1],s=(t[2]||[]).slice(),o=!0;n!==yp&&(i=t,s=[],o=!1);super(i.length);se(this,rl);i.forEach((l,h)=>{this[h]=l});const a=s.reduce((l,h)=>(typeof h=="string"&&l.set(h,(l.get(h)||0)+1),l),new Map);if(eT(this,Object.freeze(i.map((l,h)=>{const g=s[h];return g!=null&&a.get(g)===1?g:null}))),F(this,rl,[]),T(this,rl)==null&&T(this,rl),!o)return;Object.freeze(this);const u=new Proxy(this,{get:(l,h,g)=>{if(typeof h=="string"){if(h.match(/^[0-9]+$/)){const w=at(h,"%index");if(w<0||w>=this.length)throw new RangeError("out of result range");const I=l[w];return I instanceof Error&&fh(`index ${w}`,I),I}if(KJ.indexOf(h)>=0)return Reflect.get(l,h,g);const b=l[h];if(b instanceof Function)return function(...w){return b.apply(this===g?l:this,w)};if(!(h in l))return l.getValue.apply(this===g?l:this,[h])}return Reflect.get(l,h,g)}});return eT(u,Wa(this)),u}toArray(t){const n=[];return this.forEach((i,s)=>{i instanceof Error&&fh(`index ${s}`,i),t&&i instanceof nl&&(i=i.toArray(t)),n.push(i)}),n}toObject(t){const n=Wa(this);return n.reduce((i,s,o)=>(ge(s!=null,`value at index ${o} unnamed`,"UNSUPPORTED_OPERATION",{operation:"toObject()"}),Q1(n,this,t)),{})}slice(t,n){t==null&&(t=0),t<0&&(t+=this.length,t<0&&(t=0)),n==null&&(n=this.length),n<0&&(n+=this.length,n<0&&(n=0)),n>this.length&&(n=this.length);const i=Wa(this),s=[],o=[];for(let a=t;a<n;a++)s.push(this[a]),o.push(i[a]);return new nl(yp,s,o)}filter(t,n){const i=Wa(this),s=[],o=[];for(let a=0;a<this.length;a++){const u=this[a];u instanceof Error&&fh(`index ${a}`,u),t.call(n,u,a,this)&&(s.push(u),o.push(i[a]))}return new nl(yp,s,o)}map(t,n){const i=[];for(let s=0;s<this.length;s++){const o=this[s];o instanceof Error&&fh(`index ${s}`,o),i.push(t.call(n,o,s,this))}return i}getValue(t){const n=Wa(this).indexOf(t);if(n===-1)return;const i=this[n];return i instanceof Error&&fh(`property ${JSON.stringify(t)}`,i.error),i}static fromItems(t,n){return new nl(yp,t,n)}};rl=new WeakMap;let Pu=nl;function tT(r){let e=bn(r);return ge(e.length<=_n,"value out-of-bounds","BUFFER_OVERRUN",{buffer:e,length:_n,offset:e.length}),e.length!==_n&&(e=wn(xr([Z1.slice(e.length%_n),e]))),e}class Ds{constructor(e,t,n,i){Q(this,"name");Q(this,"type");Q(this,"localName");Q(this,"dynamic");ze(this,{name:e,type:t,localName:n,dynamic:i},{name:"string",type:"string",localName:"string",dynamic:"boolean"})}_throwError(e,t){q(!1,e,this.localName,t)}}class Y1{constructor(){se(this,il);se(this,Vs);se(this,fc);F(this,Vs,[]),F(this,fc,0)}get data(){return xr(T(this,Vs))}get length(){return T(this,fc)}appendWriter(e){return Ee(this,il,mg).call(this,wn(e.data))}writeBytes(e){let t=wn(e);const n=t.length%_n;return n&&(t=wn(xr([t,Z1.slice(n)]))),Ee(this,il,mg).call(this,t)}writeValue(e){return Ee(this,il,mg).call(this,tT(e))}writeUpdatableValue(){const e=T(this,Vs).length;return T(this,Vs).push(Z1),F(this,fc,T(this,fc)+_n),t=>{T(this,Vs)[e]=tT(t)}}}Vs=new WeakMap,fc=new WeakMap,il=new WeakSet,mg=function(e){return T(this,Vs).push(e),F(this,fc,T(this,fc)+e.length),e.length};const ib=class ib{constructor(e,t,n){se(this,pc);Q(this,"allowLoose");se(this,Un);se(this,Qn);se(this,hc);se(this,dc);se(this,Ho);ze(this,{allowLoose:!!t}),F(this,Un,wn(e)),F(this,hc,0),F(this,dc,null),F(this,Ho,n??1024),F(this,Qn,0)}get data(){return Ce(T(this,Un))}get dataLength(){return T(this,Un).length}get consumed(){return T(this,Qn)}get bytes(){return new Uint8Array(T(this,Un))}subReader(e){const t=new ib(T(this,Un).slice(T(this,Qn)+e),this.allowLoose,T(this,Ho));return F(t,dc,this),t}readBytes(e,t){let n=Ee(this,pc,jC).call(this,0,e,!!t);return Ee(this,pc,R_).call(this,e),F(this,Qn,T(this,Qn)+n.length),n.slice(0,e)}readValue(){return V1(this.readBytes(_n))}readIndex(){return SJ(this.readBytes(_n))}};Un=new WeakMap,Qn=new WeakMap,hc=new WeakMap,dc=new WeakMap,Ho=new WeakMap,pc=new WeakSet,R_=function(e){var t;if(T(this,dc))return Ee(t=T(this,dc),pc,R_).call(t,e);F(this,hc,T(this,hc)+e),ge(T(this,Ho)<1||T(this,hc)<=T(this,Ho)*this.dataLength,`compressed ABI data exceeds inflation ratio of ${T(this,Ho)} ( see: https://github.com/ethers-io/ethers.js/issues/4537 )`,"BUFFER_OVERRUN",{buffer:wn(T(this,Un)),offset:T(this,Qn),length:e,info:{bytesRead:T(this,hc),dataLength:this.dataLength}})},jC=function(e,t,n){let i=Math.ceil(t/_n)*_n;return T(this,Qn)+i>T(this,Un).length&&(this.allowLoose&&n&&T(this,Qn)+t<=T(this,Un).length?i=t:ge(!1,"data out-of-bounds","BUFFER_OVERRUN",{buffer:wn(T(this,Un)),length:T(this,Un).length,offset:T(this,Qn)+i})),T(this,Un).slice(T(this,Qn),T(this,Qn)+i)};let J1=ib;function mp(r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`Wrong positive integer: ${r}`)}function X1(r,...e){if(!(r instanceof Uint8Array))throw new Error("Expected Uint8Array");if(e.length>0&&!e.includes(r.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${r.length}`)}function jJ(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");mp(r.outputLen),mp(r.blockLen)}function Mu(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function rT(r,e){X1(r);const t=e.outputLen;if(r.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}const ew=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const nT=r=>r instanceof Uint8Array,WJ=r=>new Uint32Array(r.buffer,r.byteOffset,Math.floor(r.byteLength/4)),tw=r=>new DataView(r.buffer,r.byteOffset,r.byteLength),ns=(r,e)=>r<<32-e|r>>>e;if(!(new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68))throw new Error("Non little-endian hardware is not supported");function VJ(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}function wp(r){if(typeof r=="string"&&(r=VJ(r)),!nT(r))throw new Error(`expected Uint8Array, got ${typeof r}`);return r}function qJ(...r){const e=new Uint8Array(r.reduce((n,i)=>n+i.length,0));let t=0;return r.forEach(n=>{if(!nT(n))throw new Error("Uint8Array expected");e.set(n,t),t+=n.length}),e}class rw{clone(){return this._cloneInto()}}function nw(r){const e=n=>r().update(wp(n)).digest(),t=r();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>r(),e}function ZJ(r=32){if(ew&&typeof ew.getRandomValues=="function")return ew.getRandomValues(new Uint8Array(r));throw new Error("crypto.getRandomValues must be defined")}class iT extends rw{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,jJ(e);const n=wp(t);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const i=this.blockLen,s=new Uint8Array(i);s.set(n.length>i?e.create().update(n).digest():n);for(let o=0;o<s.length;o++)s[o]^=54;this.iHash.update(s),this.oHash=e.create();for(let o=0;o<s.length;o++)s[o]^=106;this.oHash.update(s),s.fill(0)}update(e){return Mu(this),this.iHash.update(e),this}digestInto(e){Mu(this),X1(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:t,iHash:n,finished:i,destroyed:s,blockLen:o,outputLen:a}=this;return e=e,e.finished=i,e.destroyed=s,e.blockLen=o,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const sT=(r,e,t)=>new iT(r,e).update(t).digest();sT.create=(r,e)=>new iT(r,e);function QJ(r,e,t,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,n);const i=BigInt(32),s=BigInt(4294967295),o=Number(t>>i&s),a=Number(t&s),u=n?4:0,l=n?0:4;r.setUint32(e+u,o,n),r.setUint32(e+l,a,n)}class oT extends rw{constructor(e,t,n,i){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=tw(this.buffer)}update(e){Mu(this);const{view:t,buffer:n,blockLen:i}=this;e=wp(e);const s=e.length;for(let o=0;o<s;){const a=Math.min(i-this.pos,s-o);if(a===i){const u=tw(e);for(;i<=s-o;o+=i)this.process(u,o);continue}n.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Mu(this),rT(e,this),this.finished=!0;const{buffer:t,view:n,blockLen:i,isLE:s}=this;let{pos:o}=this;t[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>i-o&&(this.process(n,0),o=0);for(let g=o;g<i;g++)t[g]=0;QJ(n,i-8,BigInt(this.length*8),s),this.process(n,0);const a=tw(e),u=this.outputLen;if(u%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const l=u/4,h=this.get();if(l>h.length)throw new Error("_sha2: outputLen bigger than state");for(let g=0;g<l;g++)a.setUint32(4*g,h[g],s)}digest(){const{buffer:e,outputLen:t}=this;this.digestInto(e);const n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:t,buffer:n,length:i,finished:s,destroyed:o,pos:a}=this;return e.length=i,e.pos=a,e.finished=s,e.destroyed=o,i%t&&e.buffer.set(n),e}}const YJ=(r,e,t)=>r&e^~r&t,JJ=(r,e,t)=>r&e^r&t^e&t,XJ=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Bo=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Po=new Uint32Array(64);class eX extends oT{constructor(){super(64,32,8,!1),this.A=Bo[0]|0,this.B=Bo[1]|0,this.C=Bo[2]|0,this.D=Bo[3]|0,this.E=Bo[4]|0,this.F=Bo[5]|0,this.G=Bo[6]|0,this.H=Bo[7]|0}get(){const{A:e,B:t,C:n,D:i,E:s,F:o,G:a,H:u}=this;return[e,t,n,i,s,o,a,u]}set(e,t,n,i,s,o,a,u){this.A=e|0,this.B=t|0,this.C=n|0,this.D=i|0,this.E=s|0,this.F=o|0,this.G=a|0,this.H=u|0}process(e,t){for(let g=0;g<16;g++,t+=4)Po[g]=e.getUint32(t,!1);for(let g=16;g<64;g++){const b=Po[g-15],w=Po[g-2],I=ns(b,7)^ns(b,18)^b>>>3,S=ns(w,17)^ns(w,19)^w>>>10;Po[g]=S+Po[g-7]+I+Po[g-16]|0}let{A:n,B:i,C:s,D:o,E:a,F:u,G:l,H:h}=this;for(let g=0;g<64;g++){const b=ns(a,6)^ns(a,11)^ns(a,25),w=h+b+YJ(a,u,l)+XJ[g]+Po[g]|0,S=(ns(n,2)^ns(n,13)^ns(n,22))+JJ(n,i,s)|0;h=l,l=u,u=a,a=o+w|0,o=s,s=i,i=n,n=w+S|0}n=n+this.A|0,i=i+this.B|0,s=s+this.C|0,o=o+this.D|0,a=a+this.E|0,u=u+this.F|0,l=l+this.G|0,h=h+this.H|0,this.set(n,i,s,o,a,u,l,h)}roundClean(){Po.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const aT=nw(()=>new eX),bp=BigInt(2**32-1),iw=BigInt(32);function cT(r,e=!1){return e?{h:Number(r&bp),l:Number(r>>iw&bp)}:{h:Number(r>>iw&bp)|0,l:Number(r&bp)|0}}function uT(r,e=!1){let t=new Uint32Array(r.length),n=new Uint32Array(r.length);for(let i=0;i<r.length;i++){const{h:s,l:o}=cT(r[i],e);[t[i],n[i]]=[s,o]}return[t,n]}const tX=(r,e)=>BigInt(r>>>0)<<iw|BigInt(e>>>0),rX=(r,e,t)=>r>>>t,nX=(r,e,t)=>r<<32-t|e>>>t,iX=(r,e,t)=>r>>>t|e<<32-t,sX=(r,e,t)=>r<<32-t|e>>>t,oX=(r,e,t)=>r<<64-t|e>>>t-32,aX=(r,e,t)=>r>>>t-32|e<<64-t,cX=(r,e)=>e,uX=(r,e)=>r,lT=(r,e,t)=>r<<t|e>>>32-t,fT=(r,e,t)=>e<<t|r>>>32-t,hT=(r,e,t)=>e<<t-32|r>>>64-t,dT=(r,e,t)=>r<<t-32|e>>>64-t;function lX(r,e,t,n){const i=(e>>>0)+(n>>>0);return{h:r+t+(i/2**32|0)|0,l:i|0}}const st={fromBig:cT,split:uT,toBig:tX,shrSH:rX,shrSL:nX,rotrSH:iX,rotrSL:sX,rotrBH:oX,rotrBL:aX,rotr32H:cX,rotr32L:uX,rotlSH:lT,rotlSL:fT,rotlBH:hT,rotlBL:dT,add:lX,add3L:(r,e,t)=>(r>>>0)+(e>>>0)+(t>>>0),add3H:(r,e,t,n)=>e+t+n+(r/2**32|0)|0,add4L:(r,e,t,n)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0),add4H:(r,e,t,n,i)=>e+t+n+i+(r/2**32|0)|0,add5H:(r,e,t,n,i,s)=>e+t+n+i+s+(r/2**32|0)|0,add5L:(r,e,t,n,i)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0)+(i>>>0)},[fX,hX]=st.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(r=>BigInt(r))),Mo=new Uint32Array(80),Lo=new Uint32Array(80);class dX extends oT{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:e,Al:t,Bh:n,Bl:i,Ch:s,Cl:o,Dh:a,Dl:u,Eh:l,El:h,Fh:g,Fl:b,Gh:w,Gl:I,Hh:S,Hl:x}=this;return[e,t,n,i,s,o,a,u,l,h,g,b,w,I,S,x]}set(e,t,n,i,s,o,a,u,l,h,g,b,w,I,S,x){this.Ah=e|0,this.Al=t|0,this.Bh=n|0,this.Bl=i|0,this.Ch=s|0,this.Cl=o|0,this.Dh=a|0,this.Dl=u|0,this.Eh=l|0,this.El=h|0,this.Fh=g|0,this.Fl=b|0,this.Gh=w|0,this.Gl=I|0,this.Hh=S|0,this.Hl=x|0}process(e,t){for(let D=0;D<16;D++,t+=4)Mo[D]=e.getUint32(t),Lo[D]=e.getUint32(t+=4);for(let D=16;D<80;D++){const z=Mo[D-15]|0,V=Lo[D-15]|0,Z=st.rotrSH(z,V,1)^st.rotrSH(z,V,8)^st.shrSH(z,V,7),K=st.rotrSL(z,V,1)^st.rotrSL(z,V,8)^st.shrSL(z,V,7),W=Mo[D-2]|0,oe=Lo[D-2]|0,ce=st.rotrSH(W,oe,19)^st.rotrBH(W,oe,61)^st.shrSH(W,oe,6),ie=st.rotrSL(W,oe,19)^st.rotrBL(W,oe,61)^st.shrSL(W,oe,6),ue=st.add4L(K,ie,Lo[D-7],Lo[D-16]),B=st.add4H(ue,Z,ce,Mo[D-7],Mo[D-16]);Mo[D]=B|0,Lo[D]=ue|0}let{Ah:n,Al:i,Bh:s,Bl:o,Ch:a,Cl:u,Dh:l,Dl:h,Eh:g,El:b,Fh:w,Fl:I,Gh:S,Gl:x,Hh:C,Hl:H}=this;for(let D=0;D<80;D++){const z=st.rotrSH(g,b,14)^st.rotrSH(g,b,18)^st.rotrBH(g,b,41),V=st.rotrSL(g,b,14)^st.rotrSL(g,b,18)^st.rotrBL(g,b,41),Z=g&w^~g&S,K=b&I^~b&x,W=st.add5L(H,V,K,hX[D],Lo[D]),oe=st.add5H(W,C,z,Z,fX[D],Mo[D]),ce=W|0,ie=st.rotrSH(n,i,28)^st.rotrBH(n,i,34)^st.rotrBH(n,i,39),ue=st.rotrSL(n,i,28)^st.rotrBL(n,i,34)^st.rotrBL(n,i,39),B=n&s^n&a^s&a,p=i&o^i&u^o&u;C=S|0,H=x|0,S=w|0,x=I|0,w=g|0,I=b|0,{h:g,l:b}=st.add(l|0,h|0,oe|0,ce|0),l=a|0,h=u|0,a=s|0,u=o|0,s=n|0,o=i|0;const m=st.add3L(ce,ue,p);n=st.add3H(m,oe,ie,B),i=m|0}({h:n,l:i}=st.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:s,l:o}=st.add(this.Bh|0,this.Bl|0,s|0,o|0),{h:a,l:u}=st.add(this.Ch|0,this.Cl|0,a|0,u|0),{h:l,l:h}=st.add(this.Dh|0,this.Dl|0,l|0,h|0),{h:g,l:b}=st.add(this.Eh|0,this.El|0,g|0,b|0),{h:w,l:I}=st.add(this.Fh|0,this.Fl|0,w|0,I|0),{h:S,l:x}=st.add(this.Gh|0,this.Gl|0,S|0,x|0),{h:C,l:H}=st.add(this.Hh|0,this.Hl|0,C|0,H|0),this.set(n,i,s,o,a,u,l,h,g,b,w,I,S,x,C,H)}roundClean(){Mo.fill(0),Lo.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const pX=nw(()=>new dX);function gX(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof Zc<"u")return Zc;throw new Error("unable to locate global object")}const pT=gX();pT.crypto||pT.msCrypto;function yX(r){switch(r){case"sha256":return aT.create();case"sha512":return pX.create()}q(!1,"invalid hashing algorithm name","algorithm",r)}const[gT,yT,mT]=[[],[],[]],mX=BigInt(0),hh=BigInt(1),wX=BigInt(2),bX=BigInt(7),_X=BigInt(256),AX=BigInt(113);for(let r=0,e=hh,t=1,n=0;r<24;r++){[t,n]=[n,(2*t+3*n)%5],gT.push(2*(5*n+t)),yT.push((r+1)*(r+2)/2%64);let i=mX;for(let s=0;s<7;s++)e=(e<<hh^(e>>bX)*AX)%_X,e&wX&&(i^=hh<<(hh<<BigInt(s))-hh);mT.push(i)}const[vX,EX]=uT(mT,!0),wT=(r,e,t)=>t>32?hT(r,e,t):lT(r,e,t),bT=(r,e,t)=>t>32?dT(r,e,t):fT(r,e,t);function xX(r,e=24){const t=new Uint32Array(10);for(let n=24-e;n<24;n++){for(let o=0;o<10;o++)t[o]=r[o]^r[o+10]^r[o+20]^r[o+30]^r[o+40];for(let o=0;o<10;o+=2){const a=(o+8)%10,u=(o+2)%10,l=t[u],h=t[u+1],g=wT(l,h,1)^t[a],b=bT(l,h,1)^t[a+1];for(let w=0;w<50;w+=10)r[o+w]^=g,r[o+w+1]^=b}let i=r[2],s=r[3];for(let o=0;o<24;o++){const a=yT[o],u=wT(i,s,a),l=bT(i,s,a),h=gT[o];i=r[h],s=r[h+1],r[h]=u,r[h+1]=l}for(let o=0;o<50;o+=10){for(let a=0;a<10;a++)t[a]=r[o+a];for(let a=0;a<10;a++)r[o+a]^=~t[(a+2)%10]&t[(a+4)%10]}r[0]^=vX[n],r[1]^=EX[n]}t.fill(0)}class sw extends rw{constructor(e,t,n,i=!1,s=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=n,this.enableXOF=i,this.rounds=s,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,mp(n),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=WJ(this.state)}keccak(){xX(this.state32,this.rounds),this.posOut=0,this.pos=0}update(e){Mu(this);const{blockLen:t,state:n}=this;e=wp(e);const i=e.length;for(let s=0;s<i;){const o=Math.min(t-this.pos,i-s);for(let a=0;a<o;a++)n[this.pos++]^=e[s++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:t,pos:n,blockLen:i}=this;e[n]^=t,t&128&&n===i-1&&this.keccak(),e[i-1]^=128,this.keccak()}writeInto(e){Mu(this,!1),X1(e),this.finish();const t=this.state,{blockLen:n}=this;for(let i=0,s=e.length;i<s;){this.posOut>=n&&this.keccak();const o=Math.min(n-this.posOut,s-i);e.set(t.subarray(this.posOut,this.posOut+o),i),this.posOut+=o,i+=o}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return mp(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(rT(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){const{blockLen:t,suffix:n,outputLen:i,rounds:s,enableXOF:o}=this;return e||(e=new sw(t,n,i,o,s)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=s,e.suffix=n,e.outputLen=i,e.enableXOF=o,e.destroyed=this.destroyed,e}}const RX=((r,e,t)=>nw(()=>new sw(e,r,t)))(1,136,256/8);let _T=!1;const AT=function(r){return RX(r)};let vT=AT;function Nr(r){const e=_t(r,"data");return Ce(vT(e))}Nr._=AT,Nr.lock=function(){_T=!0},Nr.register=function(r){if(_T)throw new TypeError("keccak256 is locked");vT=r},Object.freeze(Nr);const ET=function(r){return yX("sha256").update(r).digest()};let xT=ET,RT=!1;function Lu(r){const e=_t(r,"data");return Ce(xT(e))}Lu._=ET,Lu.lock=function(){RT=!0},Lu.register=function(r){if(RT)throw new Error("sha256 is locked");xT=r},Object.freeze(Lu),Object.freeze(Lu);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const IT=BigInt(0),_p=BigInt(1),IX=BigInt(2),Ap=r=>r instanceof Uint8Array,SX=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));function Uu(r){if(!Ap(r))throw new Error("Uint8Array expected");let e="";for(let t=0;t<r.length;t++)e+=SX[r[t]];return e}function ST(r){const e=r.toString(16);return e.length&1?`0${e}`:e}function ow(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return BigInt(r===""?"0":`0x${r}`)}function Du(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);const e=r.length;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);const t=new Uint8Array(e/2);for(let n=0;n<t.length;n++){const i=n*2,s=r.slice(i,i+2),o=Number.parseInt(s,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");t[n]=o}return t}function Va(r){return ow(Uu(r))}function aw(r){if(!Ap(r))throw new Error("Uint8Array expected");return ow(Uu(Uint8Array.from(r).reverse()))}function $u(r,e){return Du(r.toString(16).padStart(e*2,"0"))}function cw(r,e){return $u(r,e).reverse()}function kX(r){return Du(ST(r))}function Ii(r,e,t){let n;if(typeof e=="string")try{n=Du(e)}catch(s){throw new Error(`${r} must be valid hex string, got "${e}". Cause: ${s}`)}else if(Ap(e))n=Uint8Array.from(e);else throw new Error(`${r} must be hex string or Uint8Array`);const i=n.length;if(typeof t=="number"&&i!==t)throw new Error(`${r} expected ${t} bytes, got ${i}`);return n}function dh(...r){const e=new Uint8Array(r.reduce((n,i)=>n+i.length,0));let t=0;return r.forEach(n=>{if(!Ap(n))throw new Error("Uint8Array expected");e.set(n,t),t+=n.length}),e}function TX(r,e){if(r.length!==e.length)return!1;for(let t=0;t<r.length;t++)if(r[t]!==e[t])return!1;return!0}function OX(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}function NX(r){let e;for(e=0;r>IT;r>>=_p,e+=1);return e}function CX(r,e){return r>>BigInt(e)&_p}const BX=(r,e,t)=>r|(t?_p:IT)<<BigInt(e),uw=r=>(IX<<BigInt(r-1))-_p,lw=r=>new Uint8Array(r),kT=r=>Uint8Array.from(r);function TT(r,e,t){if(typeof r!="number"||r<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof t!="function")throw new Error("hmacFn must be a function");let n=lw(r),i=lw(r),s=0;const o=()=>{n.fill(1),i.fill(0),s=0},a=(...g)=>t(i,n,...g),u=(g=lw())=>{i=a(kT([0]),g),n=a(),g.length!==0&&(i=a(kT([1]),g),n=a())},l=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let g=0;const b=[];for(;g<e;){n=a();const w=n.slice();b.push(w),g+=n.length}return dh(...b)};return(g,b)=>{o(),u(g);let w;for(;!(w=b(l()));)u();return o(),w}}const PX={bigint:r=>typeof r=="bigint",function:r=>typeof r=="function",boolean:r=>typeof r=="boolean",string:r=>typeof r=="string",stringOrUint8Array:r=>typeof r=="string"||r instanceof Uint8Array,isSafeInteger:r=>Number.isSafeInteger(r),array:r=>Array.isArray(r),field:(r,e)=>e.Fp.isValid(r),hash:r=>typeof r=="function"&&Number.isSafeInteger(r.outputLen)};function ph(r,e,t={}){const n=(i,s,o)=>{const a=PX[s];if(typeof a!="function")throw new Error(`Invalid validator "${s}", expected function`);const u=r[i];if(!(o&&u===void 0)&&!a(u,r))throw new Error(`Invalid param ${String(i)}=${u} (${typeof u}), expected ${s}`)};for(const[i,s]of Object.entries(e))n(i,s,!1);for(const[i,s]of Object.entries(t))n(i,s,!0);return r}const MX=Object.freeze(Object.defineProperty({__proto__:null,bitGet:CX,bitLen:NX,bitMask:uw,bitSet:BX,bytesToHex:Uu,bytesToNumberBE:Va,bytesToNumberLE:aw,concatBytes:dh,createHmacDrbg:TT,ensureBytes:Ii,equalBytes:TX,hexToBytes:Du,hexToNumber:ow,numberToBytesBE:$u,numberToBytesLE:cw,numberToHexUnpadded:ST,numberToVarBytesBE:kX,utf8ToBytes:OX,validateObject:ph},Symbol.toStringTag,{value:"Module"}));/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const $r=BigInt(0),Rr=BigInt(1),qa=BigInt(2),LX=BigInt(3),fw=BigInt(4),OT=BigInt(5),NT=BigInt(8);BigInt(9),BigInt(16);function Pn(r,e){const t=r%e;return t>=$r?t:e+t}function UX(r,e,t){if(t<=$r||e<$r)throw new Error("Expected power/modulo > 0");if(t===Rr)return $r;let n=Rr;for(;e>$r;)e&Rr&&(n=n*r%t),r=r*r%t,e>>=Rr;return n}function ci(r,e,t){let n=r;for(;e-- >$r;)n*=n,n%=t;return n}function hw(r,e){if(r===$r||e<=$r)throw new Error(`invert: expected positive integers, got n=${r} mod=${e}`);let t=Pn(r,e),n=e,i=$r,s=Rr;for(;t!==$r;){const a=n/t,u=n%t,l=i-s*a;n=t,t=u,i=s,s=l}if(n!==Rr)throw new Error("invert: does not exist");return Pn(i,e)}function DX(r){const e=(r-Rr)/qa;let t,n,i;for(t=r-Rr,n=0;t%qa===$r;t/=qa,n++);for(i=qa;i<r&&UX(i,e,r)!==r-Rr;i++);if(n===1){const o=(r+Rr)/fw;return function(u,l){const h=u.pow(l,o);if(!u.eql(u.sqr(h),l))throw new Error("Cannot find square root");return h}}const s=(t+Rr)/qa;return function(a,u){if(a.pow(u,e)===a.neg(a.ONE))throw new Error("Cannot find square root");let l=n,h=a.pow(a.mul(a.ONE,i),t),g=a.pow(u,s),b=a.pow(u,t);for(;!a.eql(b,a.ONE);){if(a.eql(b,a.ZERO))return a.ZERO;let w=1;for(let S=a.sqr(b);w<l&&!a.eql(S,a.ONE);w++)S=a.sqr(S);const I=a.pow(h,Rr<<BigInt(l-w-1));h=a.sqr(I),g=a.mul(g,I),b=a.mul(b,h),l=w}return g}}function $X(r){if(r%fw===LX){const e=(r+Rr)/fw;return function(n,i){const s=n.pow(i,e);if(!n.eql(n.sqr(s),i))throw new Error("Cannot find square root");return s}}if(r%NT===OT){const e=(r-OT)/NT;return function(n,i){const s=n.mul(i,qa),o=n.pow(s,e),a=n.mul(i,o),u=n.mul(n.mul(a,qa),o),l=n.mul(a,n.sub(u,n.ONE));if(!n.eql(n.sqr(l),i))throw new Error("Cannot find square root");return l}}return DX(r)}const FX=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function HX(r){const e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},t=FX.reduce((n,i)=>(n[i]="function",n),e);return ph(r,t)}function zX(r,e,t){if(t<$r)throw new Error("Expected power > 0");if(t===$r)return r.ONE;if(t===Rr)return e;let n=r.ONE,i=e;for(;t>$r;)t&Rr&&(n=r.mul(n,i)),i=r.sqr(i),t>>=Rr;return n}function GX(r,e){const t=new Array(e.length),n=e.reduce((s,o,a)=>r.is0(o)?s:(t[a]=s,r.mul(s,o)),r.ONE),i=r.inv(n);return e.reduceRight((s,o,a)=>r.is0(o)?s:(t[a]=r.mul(s,t[a]),r.mul(s,o)),i),t}function CT(r,e){const t=e!==void 0?e:r.toString(2).length,n=Math.ceil(t/8);return{nBitLength:t,nByteLength:n}}function KX(r,e,t=!1,n={}){if(r<=$r)throw new Error(`Expected Field ORDER > 0, got ${r}`);const{nBitLength:i,nByteLength:s}=CT(r,e);if(s>2048)throw new Error("Field lengths over 2048 bytes are not supported");const o=$X(r),a=Object.freeze({ORDER:r,BITS:i,BYTES:s,MASK:uw(i),ZERO:$r,ONE:Rr,create:u=>Pn(u,r),isValid:u=>{if(typeof u!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof u}`);return $r<=u&&u<r},is0:u=>u===$r,isOdd:u=>(u&Rr)===Rr,neg:u=>Pn(-u,r),eql:(u,l)=>u===l,sqr:u=>Pn(u*u,r),add:(u,l)=>Pn(u+l,r),sub:(u,l)=>Pn(u-l,r),mul:(u,l)=>Pn(u*l,r),pow:(u,l)=>zX(a,u,l),div:(u,l)=>Pn(u*hw(l,r),r),sqrN:u=>u*u,addN:(u,l)=>u+l,subN:(u,l)=>u-l,mulN:(u,l)=>u*l,inv:u=>hw(u,r),sqrt:n.sqrt||(u=>o(a,u)),invertBatch:u=>GX(a,u),cmov:(u,l,h)=>h?l:u,toBytes:u=>t?cw(u,s):$u(u,s),fromBytes:u=>{if(u.length!==s)throw new Error(`Fp.fromBytes: expected ${s}, got ${u.length}`);return t?aw(u):Va(u)}});return Object.freeze(a)}function BT(r){if(typeof r!="bigint")throw new Error("field order must be bigint");const e=r.toString(2).length;return Math.ceil(e/8)}function PT(r){const e=BT(r);return e+Math.ceil(e/2)}function jX(r,e,t=!1){const n=r.length,i=BT(e),s=PT(e);if(n<16||n<s||n>1024)throw new Error(`expected ${s}-1024 bytes of input, got ${n}`);const o=t?Va(r):aw(r),a=Pn(o,e-Rr)+Rr;return t?cw(a,i):$u(a,i)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const WX=BigInt(0),dw=BigInt(1);function VX(r,e){const t=(i,s)=>{const o=s.negate();return i?o:s},n=i=>{const s=Math.ceil(e/i)+1,o=2**(i-1);return{windows:s,windowSize:o}};return{constTimeNegate:t,unsafeLadder(i,s){let o=r.ZERO,a=i;for(;s>WX;)s&dw&&(o=o.add(a)),a=a.double(),s>>=dw;return o},precomputeWindow(i,s){const{windows:o,windowSize:a}=n(s),u=[];let l=i,h=l;for(let g=0;g<o;g++){h=l,u.push(h);for(let b=1;b<a;b++)h=h.add(l),u.push(h);l=h.double()}return u},wNAF(i,s,o){const{windows:a,windowSize:u}=n(i);let l=r.ZERO,h=r.BASE;const g=BigInt(2**i-1),b=2**i,w=BigInt(i);for(let I=0;I<a;I++){const S=I*u;let x=Number(o&g);o>>=w,x>u&&(x-=b,o+=dw);const C=S,H=S+Math.abs(x)-1,D=I%2!==0,z=x<0;x===0?h=h.add(t(D,s[C])):l=l.add(t(z,s[H]))}return{p:l,f:h}},wNAFCached(i,s,o,a){const u=i._WINDOW_SIZE||1;let l=s.get(i);return l||(l=this.precomputeWindow(i,u),u!==1&&s.set(i,a(l))),this.wNAF(u,l,o)}}}function MT(r){return HX(r.Fp),ph(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...CT(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function qX(r){const e=MT(r);ph(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:t,Fp:n,a:i}=e;if(t){if(!n.eql(i,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof t!="object"||typeof t.beta!="bigint"||typeof t.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}const{bytesToNumberBE:ZX,hexToBytes:QX}=MX,Za={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(r){const{Err:e}=Za;if(r.length<2||r[0]!==2)throw new e("Invalid signature integer tag");const t=r[1],n=r.subarray(2,t+2);if(!t||n.length!==t)throw new e("Invalid signature integer: wrong length");if(n[0]&128)throw new e("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new e("Invalid signature integer: unnecessary leading zero");return{d:ZX(n),l:r.subarray(t+2)}},toSig(r){const{Err:e}=Za,t=typeof r=="string"?QX(r):r;if(!(t instanceof Uint8Array))throw new Error("ui8a expected");let n=t.length;if(n<2||t[0]!=48)throw new e("Invalid signature tag");if(t[1]!==n-2)throw new e("Invalid signature: incorrect length");const{d:i,l:s}=Za._parseInt(t.subarray(2)),{d:o,l:a}=Za._parseInt(s);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:i,s:o}},hexFromSig(r){const e=l=>Number.parseInt(l[0],16)&8?"00"+l:l,t=l=>{const h=l.toString(16);return h.length&1?`0${h}`:h},n=e(t(r.s)),i=e(t(r.r)),s=n.length/2,o=i.length/2,a=t(s),u=t(o);return`30${t(o+s+4)}02${u}${i}02${a}${n}`}},$s=BigInt(0),ui=BigInt(1);BigInt(2);const LT=BigInt(3);BigInt(4);function YX(r){const e=qX(r),{Fp:t}=e,n=e.toBytes||((I,S,x)=>{const C=S.toAffine();return dh(Uint8Array.from([4]),t.toBytes(C.x),t.toBytes(C.y))}),i=e.fromBytes||(I=>{const S=I.subarray(1),x=t.fromBytes(S.subarray(0,t.BYTES)),C=t.fromBytes(S.subarray(t.BYTES,2*t.BYTES));return{x,y:C}});function s(I){const{a:S,b:x}=e,C=t.sqr(I),H=t.mul(C,I);return t.add(t.add(H,t.mul(I,S)),x)}if(!t.eql(t.sqr(e.Gy),s(e.Gx)))throw new Error("bad generator point: equation left != right");function o(I){return typeof I=="bigint"&&$s<I&&I<e.n}function a(I){if(!o(I))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function u(I){const{allowedPrivateKeyLengths:S,nByteLength:x,wrapPrivateKey:C,n:H}=e;if(S&&typeof I!="bigint"){if(I instanceof Uint8Array&&(I=Uu(I)),typeof I!="string"||!S.includes(I.length))throw new Error("Invalid key");I=I.padStart(x*2,"0")}let D;try{D=typeof I=="bigint"?I:Va(Ii("private key",I,x))}catch{throw new Error(`private key must be ${x} bytes, hex or bigint, not ${typeof I}`)}return C&&(D=Pn(D,H)),a(D),D}const l=new Map;function h(I){if(!(I instanceof g))throw new Error("ProjectivePoint expected")}class g{constructor(S,x,C){if(this.px=S,this.py=x,this.pz=C,S==null||!t.isValid(S))throw new Error("x required");if(x==null||!t.isValid(x))throw new Error("y required");if(C==null||!t.isValid(C))throw new Error("z required")}static fromAffine(S){const{x,y:C}=S||{};if(!S||!t.isValid(x)||!t.isValid(C))throw new Error("invalid affine point");if(S instanceof g)throw new Error("projective point not allowed");const H=D=>t.eql(D,t.ZERO);return H(x)&&H(C)?g.ZERO:new g(x,C,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(S){const x=t.invertBatch(S.map(C=>C.pz));return S.map((C,H)=>C.toAffine(x[H])).map(g.fromAffine)}static fromHex(S){const x=g.fromAffine(i(Ii("pointHex",S)));return x.assertValidity(),x}static fromPrivateKey(S){return g.BASE.multiply(u(S))}_setWindowSize(S){this._WINDOW_SIZE=S,l.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!t.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:S,y:x}=this.toAffine();if(!t.isValid(S)||!t.isValid(x))throw new Error("bad point: x or y not FE");const C=t.sqr(x),H=s(S);if(!t.eql(C,H))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:S}=this.toAffine();if(t.isOdd)return!t.isOdd(S);throw new Error("Field doesn't support isOdd")}equals(S){h(S);const{px:x,py:C,pz:H}=this,{px:D,py:z,pz:V}=S,Z=t.eql(t.mul(x,V),t.mul(D,H)),K=t.eql(t.mul(C,V),t.mul(z,H));return Z&&K}negate(){return new g(this.px,t.neg(this.py),this.pz)}double(){const{a:S,b:x}=e,C=t.mul(x,LT),{px:H,py:D,pz:z}=this;let V=t.ZERO,Z=t.ZERO,K=t.ZERO,W=t.mul(H,H),oe=t.mul(D,D),ce=t.mul(z,z),ie=t.mul(H,D);return ie=t.add(ie,ie),K=t.mul(H,z),K=t.add(K,K),V=t.mul(S,K),Z=t.mul(C,ce),Z=t.add(V,Z),V=t.sub(oe,Z),Z=t.add(oe,Z),Z=t.mul(V,Z),V=t.mul(ie,V),K=t.mul(C,K),ce=t.mul(S,ce),ie=t.sub(W,ce),ie=t.mul(S,ie),ie=t.add(ie,K),K=t.add(W,W),W=t.add(K,W),W=t.add(W,ce),W=t.mul(W,ie),Z=t.add(Z,W),ce=t.mul(D,z),ce=t.add(ce,ce),W=t.mul(ce,ie),V=t.sub(V,W),K=t.mul(ce,oe),K=t.add(K,K),K=t.add(K,K),new g(V,Z,K)}add(S){h(S);const{px:x,py:C,pz:H}=this,{px:D,py:z,pz:V}=S;let Z=t.ZERO,K=t.ZERO,W=t.ZERO;const oe=e.a,ce=t.mul(e.b,LT);let ie=t.mul(x,D),ue=t.mul(C,z),B=t.mul(H,V),p=t.add(x,C),m=t.add(D,z);p=t.mul(p,m),m=t.add(ie,ue),p=t.sub(p,m),m=t.add(x,H);let E=t.add(D,V);return m=t.mul(m,E),E=t.add(ie,B),m=t.sub(m,E),E=t.add(C,H),Z=t.add(z,V),E=t.mul(E,Z),Z=t.add(ue,B),E=t.sub(E,Z),W=t.mul(oe,m),Z=t.mul(ce,B),W=t.add(Z,W),Z=t.sub(ue,W),W=t.add(ue,W),K=t.mul(Z,W),ue=t.add(ie,ie),ue=t.add(ue,ie),B=t.mul(oe,B),m=t.mul(ce,m),ue=t.add(ue,B),B=t.sub(ie,B),B=t.mul(oe,B),m=t.add(m,B),ie=t.mul(ue,m),K=t.add(K,ie),ie=t.mul(E,m),Z=t.mul(p,Z),Z=t.sub(Z,ie),ie=t.mul(p,ue),W=t.mul(E,W),W=t.add(W,ie),new g(Z,K,W)}subtract(S){return this.add(S.negate())}is0(){return this.equals(g.ZERO)}wNAF(S){return w.wNAFCached(this,l,S,x=>{const C=t.invertBatch(x.map(H=>H.pz));return x.map((H,D)=>H.toAffine(C[D])).map(g.fromAffine)})}multiplyUnsafe(S){const x=g.ZERO;if(S===$s)return x;if(a(S),S===ui)return this;const{endo:C}=e;if(!C)return w.unsafeLadder(this,S);let{k1neg:H,k1:D,k2neg:z,k2:V}=C.splitScalar(S),Z=x,K=x,W=this;for(;D>$s||V>$s;)D&ui&&(Z=Z.add(W)),V&ui&&(K=K.add(W)),W=W.double(),D>>=ui,V>>=ui;return H&&(Z=Z.negate()),z&&(K=K.negate()),K=new g(t.mul(K.px,C.beta),K.py,K.pz),Z.add(K)}multiply(S){a(S);let x=S,C,H;const{endo:D}=e;if(D){const{k1neg:z,k1:V,k2neg:Z,k2:K}=D.splitScalar(x);let{p:W,f:oe}=this.wNAF(V),{p:ce,f:ie}=this.wNAF(K);W=w.constTimeNegate(z,W),ce=w.constTimeNegate(Z,ce),ce=new g(t.mul(ce.px,D.beta),ce.py,ce.pz),C=W.add(ce),H=oe.add(ie)}else{const{p:z,f:V}=this.wNAF(x);C=z,H=V}return g.normalizeZ([C,H])[0]}multiplyAndAddUnsafe(S,x,C){const H=g.BASE,D=(V,Z)=>Z===$s||Z===ui||!V.equals(H)?V.multiplyUnsafe(Z):V.multiply(Z),z=D(this,x).add(D(S,C));return z.is0()?void 0:z}toAffine(S){const{px:x,py:C,pz:H}=this,D=this.is0();S==null&&(S=D?t.ONE:t.inv(H));const z=t.mul(x,S),V=t.mul(C,S),Z=t.mul(H,S);if(D)return{x:t.ZERO,y:t.ZERO};if(!t.eql(Z,t.ONE))throw new Error("invZ was invalid");return{x:z,y:V}}isTorsionFree(){const{h:S,isTorsionFree:x}=e;if(S===ui)return!0;if(x)return x(g,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:S,clearCofactor:x}=e;return S===ui?this:x?x(g,this):this.multiplyUnsafe(e.h)}toRawBytes(S=!0){return this.assertValidity(),n(g,this,S)}toHex(S=!0){return Uu(this.toRawBytes(S))}}g.BASE=new g(e.Gx,e.Gy,t.ONE),g.ZERO=new g(t.ZERO,t.ONE,t.ZERO);const b=e.nBitLength,w=VX(g,e.endo?Math.ceil(b/2):b);return{CURVE:e,ProjectivePoint:g,normPrivateKeyToScalar:u,weierstrassEquation:s,isWithinCurveOrder:o}}function JX(r){const e=MT(r);return ph(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function XX(r){const e=JX(r),{Fp:t,n}=e,i=t.BYTES+1,s=2*t.BYTES+1;function o(m){return $s<m&&m<t.ORDER}function a(m){return Pn(m,n)}function u(m){return hw(m,n)}const{ProjectivePoint:l,normPrivateKeyToScalar:h,weierstrassEquation:g,isWithinCurveOrder:b}=YX({...e,toBytes(m,E,k){const O=E.toAffine(),M=t.toBytes(O.x),G=dh;return k?G(Uint8Array.from([E.hasEvenY()?2:3]),M):G(Uint8Array.from([4]),M,t.toBytes(O.y))},fromBytes(m){const E=m.length,k=m[0],O=m.subarray(1);if(E===i&&(k===2||k===3)){const M=Va(O);if(!o(M))throw new Error("Point is not on curve");const G=g(M);let P=t.sqrt(G);const A=(P&ui)===ui;return(k&1)===1!==A&&(P=t.neg(P)),{x:M,y:P}}else if(E===s&&k===4){const M=t.fromBytes(O.subarray(0,t.BYTES)),G=t.fromBytes(O.subarray(t.BYTES,2*t.BYTES));return{x:M,y:G}}else throw new Error(`Point of length ${E} was invalid. Expected ${i} compressed bytes or ${s} uncompressed bytes`)}}),w=m=>Uu($u(m,e.nByteLength));function I(m){const E=n>>ui;return m>E}function S(m){return I(m)?a(-m):m}const x=(m,E,k)=>Va(m.slice(E,k));class C{constructor(E,k,O){this.r=E,this.s=k,this.recovery=O,this.assertValidity()}static fromCompact(E){const k=e.nByteLength;return E=Ii("compactSignature",E,k*2),new C(x(E,0,k),x(E,k,2*k))}static fromDER(E){const{r:k,s:O}=Za.toSig(Ii("DER",E));return new C(k,O)}assertValidity(){if(!b(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!b(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(E){return new C(this.r,this.s,E)}recoverPublicKey(E){const{r:k,s:O,recovery:M}=this,G=K(Ii("msgHash",E));if(M==null||![0,1,2,3].includes(M))throw new Error("recovery id invalid");const P=M===2||M===3?k+e.n:k;if(P>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");const A=M&1?"03":"02",U=l.fromHex(A+w(P)),le=u(P),te=a(-G*le),re=a(O*le),he=l.BASE.multiplyAndAddUnsafe(U,te,re);if(!he)throw new Error("point at infinify");return he.assertValidity(),he}hasHighS(){return I(this.s)}normalizeS(){return this.hasHighS()?new C(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return Du(this.toDERHex())}toDERHex(){return Za.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Du(this.toCompactHex())}toCompactHex(){return w(this.r)+w(this.s)}}const H={isValidPrivateKey(m){try{return h(m),!0}catch{return!1}},normPrivateKeyToScalar:h,randomPrivateKey:()=>{const m=PT(e.n);return jX(e.randomBytes(m),e.n)},precompute(m=8,E=l.BASE){return E._setWindowSize(m),E.multiply(BigInt(3)),E}};function D(m,E=!0){return l.fromPrivateKey(m).toRawBytes(E)}function z(m){const E=m instanceof Uint8Array,k=typeof m=="string",O=(E||k)&&m.length;return E?O===i||O===s:k?O===2*i||O===2*s:m instanceof l}function V(m,E,k=!0){if(z(m))throw new Error("first arg must be private key");if(!z(E))throw new Error("second arg must be public key");return l.fromHex(E).multiply(h(m)).toRawBytes(k)}const Z=e.bits2int||function(m){const E=Va(m),k=m.length*8-e.nBitLength;return k>0?E>>BigInt(k):E},K=e.bits2int_modN||function(m){return a(Z(m))},W=uw(e.nBitLength);function oe(m){if(typeof m!="bigint")throw new Error("bigint expected");if(!($s<=m&&m<W))throw new Error(`bigint expected < 2^${e.nBitLength}`);return $u(m,e.nByteLength)}function ce(m,E,k=ie){if(["recovered","canonical"].some(be=>be in k))throw new Error("sign() legacy options not supported");const{hash:O,randomBytes:M}=e;let{lowS:G,prehash:P,extraEntropy:A}=k;G==null&&(G=!0),m=Ii("msgHash",m),P&&(m=Ii("prehashed msgHash",O(m)));const U=K(m),le=h(E),te=[oe(le),oe(U)];if(A!=null){const be=A===!0?M(t.BYTES):A;te.push(Ii("extraEntropy",be))}const re=dh(...te),he=U;function ye(be){const We=Z(be);if(!b(We))return;const Fe=u(We),Be=l.BASE.multiply(We).toAffine(),et=a(Be.x);if(et===$s)return;const Qe=a(Fe*a(he+et*le));if(Qe===$s)return;let ot=(Be.x===et?0:2)|Number(Be.y&ui),sr=Qe;return G&&I(Qe)&&(sr=S(Qe),ot^=1),new C(et,sr,ot)}return{seed:re,k2sig:ye}}const ie={lowS:e.lowS,prehash:!1},ue={lowS:e.lowS,prehash:!1};function B(m,E,k=ie){const{seed:O,k2sig:M}=ce(m,E,k),G=e;return TT(G.hash.outputLen,G.nByteLength,G.hmac)(O,M)}l.BASE._setWindowSize(8);function p(m,E,k,O=ue){var Be;const M=m;if(E=Ii("msgHash",E),k=Ii("publicKey",k),"strict"in O)throw new Error("options.strict was renamed to lowS");const{lowS:G,prehash:P}=O;let A,U;try{if(typeof M=="string"||M instanceof Uint8Array)try{A=C.fromDER(M)}catch(et){if(!(et instanceof Za.Err))throw et;A=C.fromCompact(M)}else if(typeof M=="object"&&typeof M.r=="bigint"&&typeof M.s=="bigint"){const{r:et,s:Qe}=M;A=new C(et,Qe)}else throw new Error("PARSE");U=l.fromHex(k)}catch(et){if(et.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(G&&A.hasHighS())return!1;P&&(E=e.hash(E));const{r:le,s:te}=A,re=K(E),he=u(te),ye=a(re*he),be=a(le*he),We=(Be=l.BASE.multiplyAndAddUnsafe(U,ye,be))==null?void 0:Be.toAffine();return We?a(We.x)===le:!1}return{CURVE:e,getPublicKey:D,getSharedSecret:V,sign:B,verify:p,ProjectivePoint:l,Signature:C,utils:H}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function eee(r){return{hash:r,hmac:(e,...t)=>sT(r,e,qJ(...t)),randomBytes:ZJ}}function tee(r,e){const t=n=>XX({...r,...eee(n)});return Object.freeze({...t(e),create:t})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const UT=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),DT=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),ree=BigInt(1),pw=BigInt(2),$T=(r,e)=>(r+e/pw)/e;function nee(r){const e=UT,t=BigInt(3),n=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),u=BigInt(88),l=r*r*r%e,h=l*l*r%e,g=ci(h,t,e)*h%e,b=ci(g,t,e)*h%e,w=ci(b,pw,e)*l%e,I=ci(w,i,e)*w%e,S=ci(I,s,e)*I%e,x=ci(S,a,e)*S%e,C=ci(x,u,e)*x%e,H=ci(C,a,e)*S%e,D=ci(H,t,e)*h%e,z=ci(D,o,e)*I%e,V=ci(z,n,e)*l%e,Z=ci(V,pw,e);if(!gw.eql(gw.sqr(Z),r))throw new Error("Cannot find square root");return Z}const gw=KX(UT,void 0,void 0,{sqrt:nee}),Uo=tee({a:BigInt(0),b:BigInt(7),Fp:gw,n:DT,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{const e=DT,t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-ree*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=t,o=BigInt("0x100000000000000000000000000000000"),a=$T(s*r,e),u=$T(-n*r,e);let l=Pn(r-a*t-u*i,e),h=Pn(-a*n-u*s,e);const g=l>o,b=h>o;if(g&&(l=e-l),b&&(h=e-h),l>o||h>o)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:g,k1:l,k2neg:b,k2:h}}}},aT);BigInt(0),Uo.ProjectivePoint;const gh="0x0000000000000000000000000000000000000000",FT="0x0000000000000000000000000000000000000000000000000000000000000000",HT=BigInt(0),zT=BigInt(1),GT=BigInt(2),KT=BigInt(27),jT=BigInt(28),vp=BigInt(35),Fu={};function WT(r){return Ka(bn(r),32)}const Ci=class Ci{constructor(e,t,n,i){se(this,sl);se(this,ol);se(this,al);se(this,gc);up(e,Fu,"Signature"),F(this,sl,t),F(this,ol,n),F(this,al,i),F(this,gc,null)}get r(){return T(this,sl)}set r(e){q(Nu(e)===32,"invalid r","value",e),F(this,sl,Ce(e))}get s(){return T(this,ol)}set s(e){q(Nu(e)===32,"invalid s","value",e);const t=Ce(e);q(parseInt(t.substring(0,3))<8,"non-canonical s","value",t),F(this,ol,t)}get v(){return T(this,al)}set v(e){const t=at(e,"value");q(t===27||t===28,"invalid v","v",e),F(this,al,t)}get networkV(){return T(this,gc)}get legacyChainId(){const e=this.networkV;return e==null?null:Ci.getChainId(e)}get yParity(){return this.v===27?0:1}get yParityAndS(){const e=_t(this.s);return this.yParity&&(e[0]|=128),Ce(e)}get compactSerialized(){return xr([this.r,this.yParityAndS])}get serialized(){return xr([this.r,this.s,this.yParity?"0x1c":"0x1b"])}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this.s}", yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){const e=new Ci(Fu,this.r,this.s,this.v);return this.networkV&&F(e,gc,this.networkV),e}toJSON(){const e=this.networkV;return{_type:"signature",networkV:e!=null?e.toString():null,r:this.r,s:this.s,v:this.v}}static getChainId(e){const t=Le(e,"v");return t==KT||t==jT?HT:(q(t>=vp,"invalid EIP-155 v","v",e),(t-vp)/GT)}static getChainIdV(e,t){return Le(e)*GT+BigInt(35+t-27)}static getNormalizedV(e){const t=Le(e);return t===HT||t===KT?27:t===zT||t===jT?28:(q(t>=vp,"invalid v","v",e),t&zT?27:28)}static from(e){function t(l,h){q(l,h,"signature",e)}if(e==null)return new Ci(Fu,FT,FT,27);if(typeof e=="string"){const l=_t(e,"signature");if(l.length===64){const h=Ce(l.slice(0,32)),g=l.slice(32,64),b=g[0]&128?28:27;return g[0]&=127,new Ci(Fu,h,Ce(g),b)}if(l.length===65){const h=Ce(l.slice(0,32)),g=l.slice(32,64);t((g[0]&128)===0,"non-canonical s");const b=Ci.getNormalizedV(l[64]);return new Ci(Fu,h,Ce(g),b)}t(!1,"invalid raw signature length")}if(e instanceof Ci)return e.clone();const n=e.r;t(n!=null,"missing r");const i=WT(n),s=function(l,h){if(l!=null)return WT(l);if(h!=null){t(Gt(h,32),"invalid yParityAndS");const g=_t(h);return g[0]&=127,Ce(g)}t(!1,"missing s")}(e.s,e.yParityAndS);t((_t(s)[0]&128)==0,"non-canonical s");const{networkV:o,v:a}=function(l,h,g){if(l!=null){const b=Le(l);return{networkV:b>=vp?b:void 0,v:Ci.getNormalizedV(b)}}if(h!=null)return t(Gt(h,32),"invalid yParityAndS"),{v:_t(h)[0]&128?28:27};if(g!=null){switch(at(g,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}t(!1,"invalid yParity")}t(!1,"missing v")}(e.v,e.yParityAndS,e.yParity),u=new Ci(Fu,i,s,a);return o&&F(u,gc,o),t(e.yParity==null||at(e.yParity,"sig.yParity")===u.yParity,"yParity mismatch"),t(e.yParityAndS==null||e.yParityAndS===u.yParityAndS,"yParityAndS mismatch"),u}};sl=new WeakMap,ol=new WeakMap,al=new WeakMap,gc=new WeakMap;let Si=Ci;const yc=class yc{constructor(e){se(this,qs);q(Nu(e)===32,"invalid private key","privateKey","[REDACTED]"),F(this,qs,Ce(e))}get privateKey(){return T(this,qs)}get publicKey(){return yc.computePublicKey(T(this,qs))}get compressedPublicKey(){return yc.computePublicKey(T(this,qs),!0)}sign(e){q(Nu(e)===32,"invalid digest length","digest",e);const t=Uo.sign(wn(e),wn(T(this,qs)),{lowS:!0});return Si.from({r:No(t.r,32),s:No(t.s,32),v:t.recovery?28:27})}computeSharedSecret(e){const t=yc.computePublicKey(e);return Ce(Uo.getSharedSecret(wn(T(this,qs)),_t(t),!1))}static computePublicKey(e,t){let n=_t(e,"key");if(n.length===32){const s=Uo.getPublicKey(n,!!t);return Ce(s)}if(n.length===64){const s=new Uint8Array(65);s[0]=4,s.set(n,1),n=s}const i=Uo.ProjectivePoint.fromHex(n);return Ce(i.toRawBytes(t))}static recoverPublicKey(e,t){q(Nu(e)===32,"invalid digest length","digest",e);const n=Si.from(t);let i=Uo.Signature.fromCompact(wn(xr([n.r,n.s])));i=i.addRecoveryBit(n.yParity);const s=i.recoverPublicKey(wn(e));return q(s!=null,"invalid signautre for digest","signature",t),"0x"+s.toHex(!1)}static addPoints(e,t,n){const i=Uo.ProjectivePoint.fromHex(yc.computePublicKey(e).substring(2)),s=Uo.ProjectivePoint.fromHex(yc.computePublicKey(t).substring(2));return"0x"+i.add(s).toHex(!!n)}};qs=new WeakMap;let yh=yc;const iee=BigInt(0),see=BigInt(36);function VT(r){r=r.toLowerCase();const e=r.substring(2).split(""),t=new Uint8Array(40);for(let i=0;i<40;i++)t[i]=e[i].charCodeAt(0);const n=_t(Nr(t));for(let i=0;i<40;i+=2)n[i>>1]>>4>=8&&(e[i]=e[i].toUpperCase()),(n[i>>1]&15)>=8&&(e[i+1]=e[i+1].toUpperCase());return"0x"+e.join("")}const yw={};for(let r=0;r<10;r++)yw[String(r)]=String(r);for(let r=0;r<26;r++)yw[String.fromCharCode(65+r)]=String(10+r);const qT=15;function oee(r){r=r.toUpperCase(),r=r.substring(4)+r.substring(0,2)+"00";let e=r.split("").map(n=>yw[n]).join("");for(;e.length>=qT;){let n=e.substring(0,qT);e=parseInt(n,10)%97+e.substring(n.length)}let t=String(98-parseInt(e,10)%97);for(;t.length<2;)t="0"+t;return t}const aee=function(){const r={};for(let e=0;e<36;e++){const t="0123456789abcdefghijklmnopqrstuvwxyz"[e];r[t]=BigInt(e)}return r}();function cee(r){r=r.toLowerCase();let e=iee;for(let t=0;t<r.length;t++)e=e*see+aee[r[t]];return e}function Mt(r){if(q(typeof r=="string","invalid address","address",r),r.match(/^(0x)?[0-9a-fA-F]{40}$/)){r.startsWith("0x")||(r="0x"+r);const e=VT(r);return q(!r.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||e===r,"bad address checksum","address",r),e}if(r.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){q(r.substring(2,4)===oee(r),"bad icap checksum","address",r);let e=cee(r.substring(4)).toString(16);for(;e.length<40;)e="0"+e;return VT("0x"+e)}q(!1,"invalid address","address",r)}function uee(r){const e=Mt(r.from);let n=Le(r.nonce,"tx.nonce").toString(16);return n==="0"?n="0x":n.length%2?n="0x0"+n:n="0x"+n,Mt(lr(Nr(ja([e,n])),12))}function ZT(r){return r&&typeof r.getAddress=="function"}async function mw(r,e){const t=await e;return(t==null||t==="0x0000000000000000000000000000000000000000")&&(ge(typeof r!="string","unconfigured name","UNCONFIGURED_NAME",{value:r}),q(!1,"invalid AddressLike value; did not resolve to a value address","target",r)),Mt(t)}function An(r,e){if(typeof r=="string")return r.match(/^0x[0-9a-f]{40}$/i)?Mt(r):(ge(e!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),mw(r,e.resolveName(r)));if(ZT(r))return mw(r,r.getAddress());if(r&&typeof r.then=="function")return mw(r,r);q(!1,"unsupported addressable value","target",r)}const Fs={};function Oe(r,e){let t=!1;return e<0&&(t=!0,e*=-1),new an(Fs,`${t?"":"u"}int${e}`,r,{signed:t,width:e})}function Et(r,e){return new an(Fs,`bytes${e||""}`,r,{size:e})}const QT=Symbol.for("_ethers_typed"),Zs=class Zs{constructor(e,t,n,i){Q(this,"type");Q(this,"value");se(this,mc);Q(this,"_typedSymbol");i==null&&(i=null),up(Fs,e,"Typed"),ze(this,{_typedSymbol:QT,type:t,value:n}),F(this,mc,i),this.format()}format(){if(this.type==="array")throw new Error("");if(this.type==="dynamicArray")throw new Error("");return this.type==="tuple"?`tuple(${this.value.map(e=>e.format()).join(",")})`:this.type}defaultValue(){return 0}minValue(){return 0}maxValue(){return 0}isBigInt(){return!!this.type.match(/^u?int[0-9]+$/)}isData(){return this.type.startsWith("bytes")}isString(){return this.type==="string"}get tupleName(){if(this.type!=="tuple")throw TypeError("not a tuple");return T(this,mc)}get arrayLength(){if(this.type!=="array")throw TypeError("not an array");return T(this,mc)===!0?-1:T(this,mc)===!1?this.value.length:null}static from(e,t){return new Zs(Fs,e,t)}static uint8(e){return Oe(e,8)}static uint16(e){return Oe(e,16)}static uint24(e){return Oe(e,24)}static uint32(e){return Oe(e,32)}static uint40(e){return Oe(e,40)}static uint48(e){return Oe(e,48)}static uint56(e){return Oe(e,56)}static uint64(e){return Oe(e,64)}static uint72(e){return Oe(e,72)}static uint80(e){return Oe(e,80)}static uint88(e){return Oe(e,88)}static uint96(e){return Oe(e,96)}static uint104(e){return Oe(e,104)}static uint112(e){return Oe(e,112)}static uint120(e){return Oe(e,120)}static uint128(e){return Oe(e,128)}static uint136(e){return Oe(e,136)}static uint144(e){return Oe(e,144)}static uint152(e){return Oe(e,152)}static uint160(e){return Oe(e,160)}static uint168(e){return Oe(e,168)}static uint176(e){return Oe(e,176)}static uint184(e){return Oe(e,184)}static uint192(e){return Oe(e,192)}static uint200(e){return Oe(e,200)}static uint208(e){return Oe(e,208)}static uint216(e){return Oe(e,216)}static uint224(e){return Oe(e,224)}static uint232(e){return Oe(e,232)}static uint240(e){return Oe(e,240)}static uint248(e){return Oe(e,248)}static uint256(e){return Oe(e,256)}static uint(e){return Oe(e,256)}static int8(e){return Oe(e,-8)}static int16(e){return Oe(e,-16)}static int24(e){return Oe(e,-24)}static int32(e){return Oe(e,-32)}static int40(e){return Oe(e,-40)}static int48(e){return Oe(e,-48)}static int56(e){return Oe(e,-56)}static int64(e){return Oe(e,-64)}static int72(e){return Oe(e,-72)}static int80(e){return Oe(e,-80)}static int88(e){return Oe(e,-88)}static int96(e){return Oe(e,-96)}static int104(e){return Oe(e,-104)}static int112(e){return Oe(e,-112)}static int120(e){return Oe(e,-120)}static int128(e){return Oe(e,-128)}static int136(e){return Oe(e,-136)}static int144(e){return Oe(e,-144)}static int152(e){return Oe(e,-152)}static int160(e){return Oe(e,-160)}static int168(e){return Oe(e,-168)}static int176(e){return Oe(e,-176)}static int184(e){return Oe(e,-184)}static int192(e){return Oe(e,-192)}static int200(e){return Oe(e,-200)}static int208(e){return Oe(e,-208)}static int216(e){return Oe(e,-216)}static int224(e){return Oe(e,-224)}static int232(e){return Oe(e,-232)}static int240(e){return Oe(e,-240)}static int248(e){return Oe(e,-248)}static int256(e){return Oe(e,-256)}static int(e){return Oe(e,-256)}static bytes1(e){return Et(e,1)}static bytes2(e){return Et(e,2)}static bytes3(e){return Et(e,3)}static bytes4(e){return Et(e,4)}static bytes5(e){return Et(e,5)}static bytes6(e){return Et(e,6)}static bytes7(e){return Et(e,7)}static bytes8(e){return Et(e,8)}static bytes9(e){return Et(e,9)}static bytes10(e){return Et(e,10)}static bytes11(e){return Et(e,11)}static bytes12(e){return Et(e,12)}static bytes13(e){return Et(e,13)}static bytes14(e){return Et(e,14)}static bytes15(e){return Et(e,15)}static bytes16(e){return Et(e,16)}static bytes17(e){return Et(e,17)}static bytes18(e){return Et(e,18)}static bytes19(e){return Et(e,19)}static bytes20(e){return Et(e,20)}static bytes21(e){return Et(e,21)}static bytes22(e){return Et(e,22)}static bytes23(e){return Et(e,23)}static bytes24(e){return Et(e,24)}static bytes25(e){return Et(e,25)}static bytes26(e){return Et(e,26)}static bytes27(e){return Et(e,27)}static bytes28(e){return Et(e,28)}static bytes29(e){return Et(e,29)}static bytes30(e){return Et(e,30)}static bytes31(e){return Et(e,31)}static bytes32(e){return Et(e,32)}static address(e){return new Zs(Fs,"address",e)}static bool(e){return new Zs(Fs,"bool",!!e)}static bytes(e){return new Zs(Fs,"bytes",e)}static string(e){return new Zs(Fs,"string",e)}static array(e,t){throw new Error("not implemented yet")}static tuple(e,t){throw new Error("not implemented yet")}static overrides(e){return new Zs(Fs,"overrides",Object.assign({},e))}static isTyped(e){return e&&typeof e=="object"&&"_typedSymbol"in e&&e._typedSymbol===QT}static dereference(e,t){if(Zs.isTyped(e)){if(e.type!==t)throw new Error(`invalid type: expecetd ${t}, got ${e.type}`);return e.value}return e}};mc=new WeakMap;let an=Zs;class lee extends Ds{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){let n=an.dereference(t,"string");try{n=Mt(n)}catch(i){return this._throwError(i.message,t)}return e.writeValue(n)}decode(e){return Mt(No(e.readValue(),20))}}class fee extends Ds{constructor(t){super(t.name,t.type,"_",t.dynamic);Q(this,"coder");this.coder=t}defaultValue(){return this.coder.defaultValue()}encode(t,n){return this.coder.encode(t,n)}decode(t){return this.coder.decode(t)}}function YT(r,e,t){let n=[];if(Array.isArray(t))n=t;else if(t&&typeof t=="object"){let u={};n=e.map(l=>{const h=l.localName;return ge(h,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:l},value:t}),ge(!u[h],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:l},value:t}),u[h]=!0,t[h]})}else q(!1,"invalid tuple value","tuple",t);q(e.length===n.length,"types/value length mismatch","tuple",t);let i=new Y1,s=new Y1,o=[];e.forEach((u,l)=>{let h=n[l];if(u.dynamic){let g=s.length;u.encode(s,h);let b=i.writeUpdatableValue();o.push(w=>{b(w+g)})}else u.encode(i,h)}),o.forEach(u=>{u(i.length)});let a=r.appendWriter(i);return a+=r.appendWriter(s),a}function JT(r,e){let t=[],n=[],i=r.subReader(0);return e.forEach(s=>{let o=null;if(s.dynamic){let a=r.readIndex(),u=i.subReader(a);try{o=s.decode(u)}catch(l){if(Qr(l,"BUFFER_OVERRUN"))throw l;o=l,o.baseType=s.name,o.name=s.localName,o.type=s.type}}else try{o=s.decode(r)}catch(a){if(Qr(a,"BUFFER_OVERRUN"))throw a;o=a,o.baseType=s.name,o.name=s.localName,o.type=s.type}if(o==null)throw new Error("investigate");t.push(o),n.push(s.localName||null)}),Pu.fromItems(t,n)}class hee extends Ds{constructor(t,n,i){const s=t.type+"["+(n>=0?n:"")+"]",o=n===-1||t.dynamic;super("array",s,i,o);Q(this,"coder");Q(this,"length");ze(this,{coder:t,length:n})}defaultValue(){const t=this.coder.defaultValue(),n=[];for(let i=0;i<this.length;i++)n.push(t);return n}encode(t,n){const i=an.dereference(n,"array");Array.isArray(i)||this._throwError("expected array value",i);let s=this.length;s===-1&&(s=i.length,t.writeValue(i.length)),Nk(i.length,s,"coder array"+(this.localName?" "+this.localName:""));let o=[];for(let a=0;a<i.length;a++)o.push(this.coder);return YT(t,o,i)}decode(t){let n=this.length;n===-1&&(n=t.readIndex(),ge(n*_n<=t.dataLength,"insufficient data length","BUFFER_OVERRUN",{buffer:t.bytes,offset:n*_n,length:t.dataLength}));let i=[];for(let s=0;s<n;s++)i.push(new fee(this.coder));return JT(t,i)}}class dee extends Ds{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){const n=an.dereference(t,"bool");return e.writeValue(n?1:0)}decode(e){return!!e.readValue()}}class XT extends Ds{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=wn(t);let n=e.writeValue(t.length);return n+=e.writeBytes(t),n}decode(e){return e.readBytes(e.readIndex(),!0)}}class pee extends XT{constructor(e){super("bytes",e)}decode(e){return Ce(super.decode(e))}}class gee extends Ds{constructor(t,n){let i="bytes"+String(t);super(i,i,n,!1);Q(this,"size");ze(this,{size:t},{size:"number"})}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+this.size*2)}encode(t,n){let i=wn(an.dereference(n,this.type));return i.length!==this.size&&this._throwError("incorrect data length",n),t.writeBytes(i)}decode(t){return Ce(t.readBytes(this.size))}}const yee=new Uint8Array([]);class mee extends Ds{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return t!=null&&this._throwError("not null",t),e.writeBytes(yee)}decode(e){return e.readBytes(0),null}}const wee=BigInt(0),bee=BigInt(1),_ee=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class Aee extends Ds{constructor(t,n,i){const s=(n?"int":"uint")+t*8;super(s,s,i,!1);Q(this,"size");Q(this,"signed");ze(this,{size:t,signed:n},{size:"number",signed:"boolean"})}defaultValue(){return 0}encode(t,n){let i=Le(an.dereference(n,this.type)),s=lh(_ee,_n*8);if(this.signed){let o=lh(s,this.size*8-1);(i>o||i<-(o+bee))&&this._throwError("value out-of-bounds",n),i=Mk(i,8*_n)}else(i<wee||i>lh(s,this.size*8))&&this._throwError("value out-of-bounds",n);return t.writeValue(i)}decode(t){let n=lh(t.readValue(),this.size*8);return this.signed&&(n=IJ(n,this.size*8)),n}}class vee extends XT{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,Ls(an.dereference(t,"string")))}decode(e){return hp(super.decode(e))}}class Ep extends Ds{constructor(t,n){let i=!1;const s=[];t.forEach(a=>{a.dynamic&&(i=!0),s.push(a.type)});const o="tuple("+s.join(",")+")";super("tuple",o,n,i);Q(this,"coders");ze(this,{coders:Object.freeze(t.slice())})}defaultValue(){const t=[];this.coders.forEach(i=>{t.push(i.defaultValue())});const n=this.coders.reduce((i,s)=>{const o=s.localName;return o&&(i[o]||(i[o]=0),i[o]++),i},{});return this.coders.forEach((i,s)=>{let o=i.localName;!o||n[o]!==1||(o==="length"&&(o="_length"),t[o]==null&&(t[o]=t[s]))}),Object.freeze(t)}encode(t,n){const i=an.dereference(n,"tuple");return YT(t,this.coders,i)}decode(t){return JT(t,this.coders)}}function Qa(r){return Nr(Ls(r))}var Eee="AEEUdwmgDS8BxQKKAP4BOgDjATAAngDUAIMAoABoAOAAagCOAEQAhABMAHIAOwA9ACsANgAmAGIAHgAuACgAJwAXAC0AGgAjAB8ALwAUACkAEgAeAAkAGwARABkAFgA5ACgALQArADcAFQApABAAHgAiABAAGgAeABMAGAUhBe8BFxREN8sF2wC5AK5HAW8ArQkDzQCuhzc3NzcBP68NEfMABQdHBuw5BV8FYAA9MzkI9r4ZBg7QyQAWA9CeOwLNCjcCjqkChuA/lm+RAsXTAoP6ASfnEQDytQFJAjWVCkeXAOsA6godAB/cwdAUE0WlBCN/AQUCQRjFD/MRBjHxDQSJbw0jBzUAswBxme+tnIcAYwabAysG8QAjAEMMmxcDqgPKQyDXCMMxA7kUQwD3NXOrAKmFIAAfBC0D3x4BJQDBGdUFAhEgVD8JnwmQJiNWYUzrg0oAGwAUAB0AFnNcACkAFgBP9h3gPfsDOWDKneY2ChglX1UDYD30ABsAFAAdABZzIGRAnwDD8wAjAEEMzRbDqgMB2sAFYwXqAtCnAsS4AwpUJKRtFHsadUz9AMMVbwLpABM1NJEX0ZkCgYMBEyMAxRVvAukAEzUBUFAtmUwSAy4DBTER33EftQHfSwB5MxJ/AjkWKQLzL8E/cwBB6QH9LQDPDtO9ASNriQC5DQANAwCK21EFI91zHwCoL9kBqQcHBwcHKzUDowBvAQohPvU3fAQgHwCyAc8CKQMA5zMSezr7ULgFmDp/LzVQBgEGAi8FYQVgt8AFcTtlQhpCWEmfe5tmZ6IAExsDzQ8t+X8rBKtTAltbAn0jsy8Bl6utPWMDTR8Ei2kRANkDBrNHNysDBzECQWUAcwFpJ3kAiyUhAJ0BUb8AL3EfAbfNAz81KUsFWwF3YQZtAm0A+VEfAzEJDQBRSQCzAQBlAHsAM70GD/v3IZWHBwARKQAxALsjTwHZAeMPEzmXgIHwABIAGQA8AEUAQDt3gdvIEGcQZAkGTRFMdEIVEwK0D64L7REdDNkq09PgADSxB/MDWwfzA1sDWwfzB/MDWwfzA1sDWwNbA1scEvAi28gQZw9QBHUFlgWTBN4IiyZREYkHMAjaVBV0JhxPA00BBCMtSSQ7mzMTJUpMFE0LCAQ2SmyvfUADTzGzVP2QqgPTMlc5dAkGHnkSqAAyD3skNb1OhnpPcagKU0+2tYdJak5vAsY6sEAACikJm2/Dd1YGRRAfJ6kQ+ww3AbkBPw3xS9wE9QY/BM0fgRkdD9GVoAipLeEM8SbnLqWAXiP5KocF8Uv4POELUVFsD10LaQnnOmeBUgMlAREijwrhDT0IcRD3Cs1vDekRSQc9A9lJngCpBwULFR05FbkmFGKwCw05ewb/GvoLkyazEy17AAXXGiUGUQEtGwMA0y7rhbRaNVwgT2MGBwspI8sUrFAkDSlAu3hMGh8HGSWtApVDdEqLUToelyH6PEENai4XUYAH+TwJGVMLhTyiRq9FEhHWPpE9TCJNTDAEOYMsMyePCdMPiQy9fHYBXQklCbUMdRM1ERs3yQg9Bx0xlygnGQglRplgngT7owP3E9UDDwVDCUUHFwO5HDETMhUtBRGBKNsC9zbZLrcCk1aEARsFzw8pH+MQVEfkDu0InwJpA4cl7wAxFSUAGyKfCEdnAGOP3FMJLs8Iy2pwI3gDaxTrZRF3B5UOWwerHDcVwxzlcMxeD4YMKKezCV8BeQmdAWME5wgNNV+MpCBFZ1eLXBifIGVBQ14AAjUMaRWjRMGHfAKPD28SHwE5AXcHPQ0FAnsR8RFvEJkI74YINbkz/DopBFMhhyAVCisDU2zSCysm/Qz8bQGnEmYDEDRBd/Jnr2C6KBgBBx0yyUFkIfULlk/RDKAaxRhGVDIZ6AfDA/ca9yfuQVsGAwOnBxc6UTPyBMELbQiPCUMATQ6nGwfbGG4KdYzUATWPAbudA1uVhwJzkwY7Bw8Aaw+LBX3pACECqwinAAkA0wNbAD0CsQehAB0AiUUBQQMrMwEl6QKTA5cINc8BmTMB9y0EH8cMGQD7O25OAsO1AoBuZqYF4VwCkgJNOQFRKQQJUktVA7N15QDfAE8GF+NLARmvTs8e50cB43MvAMsA/wAJOQcJRQHRAfdxALsBYws1Caa3uQFR7S0AhwAZbwHbAo0A4QA5AIP1AVcAUQVd/QXXAlNNARU1HC9bZQG/AyMBNwERAH0Gz5GpzQsjBHEH1wIQHxXlAu8yB7kFAyLjE9FCyQK94lkAMhoKPAqrCqpgX2Q3CjV2PVQAEh+sPss/UgVVO1c7XDtXO1w7VztcO1c7XDtXO1wDm8Pmw+YKcF9JYe8Mqg3YRMw6TRPfYFVgNhPMLbsUxRXSJVoZQRrAJwkl6FUNDwgt12Y0CDA0eRfAAEMpbINFY4oeNApPHOtTlVT8LR8AtUumM7MNsBsZREQFS3XxYi4WEgomAmSFAmJGX1GzAV83JAKh+wJonAJmDQKfiDgfDwJmPwJmKgRyBIMDfxcDfpY5Cjl7GzmGOicnAmwhAjI6OA4CbcsCbbLzjgM3a0kvAWsA4gDlAE4JB5wMkQECD8YAEbkCdzMCdqZDAnlPRwJ4viFg30WyRvcCfEMCeswCfQ0CfPRIBEiBZygALxlJXEpfGRtK0ALRBQLQ0EsrA4hTA4fqRMmRNgLypV0HAwOyS9JMMSkH001QTbMCi0MCitzFHwshR2sJuwKOOwKOYESbhQKO3QKOYHxRuFM5AQ5S2FSJApP/ApMQAO0AIFUiVbNV1AosHymZijLleGpFPz0Cl6MC77ZYJawAXSkClpMCloCgAK1ZsFoNhVEAPwKWuQKWUlxIXNUCmc8CmWhczl0LHQKcnznGOqECnBoCn58CnryOACETNS4TAp31Ap6WALlBYThh8wKe1wKgcgGtAp6jIwKeUqljzGQrKS8CJ7MCJoICoP8CoFDbAqYzAqXSAqgDAIECp/ZogGi1AAdNaiBq1QKs5wKssgKtawKtBgJXIQJV4AKx5dsDH1JsmwKywRECsuwbbORtZ21MYwMl0QK2YD9DbpQDKUkCuGICuUsZArkue3A6cOUCvR0DLbYDMhUCvoxyBgMzdQK+HnMmc1MCw88CwwhzhnRPOUl05AM8qwEDPJ4DPcMCxYACxksCxhSNAshtVQLISALJUwLJMgJkoQLd1nh9ZXiyeSlL1AMYp2cGAmH4GfeVKHsPXpZevxUCz28Cz3AzT1fW9xejAMqxAs93AS3uA04Wfk8JAtwrAtuOAtJTA1JgA1NjAQUDVZCAjUMEzxrxZEl5A4LSg5EC2ssC2eKEFIRNp0ADhqkAMwNkEoZ1Xf0AWQLfaQLevHd7AuIz7RgB8zQrAfSfAfLWiwLr9wLpdH0DAur9AuroAP1LAb0C7o0C66CWrpcHAu5DA4XkmH1w5HGlAvMHAG0DjhqZlwL3FwORcgOSiwL3nAL53QL4apogmq+/O5siA52HAv7+AR8APZ8gAZ+3AwWRA6ZuA6bdANXJAwZuoYyiCQ0DDE0BEwEjB3EGZb1rCQC/BG/DFY8etxEAG3k9ACcDNxJRA42DAWcrJQCM8wAlAOanC6OVCLsGI6fJBgCvBRnDBvElRUYFFoAFcD9GSDNCKUK8X3kZX8QAls0FOgCQVCGbwTsuYDoZutcONxjOGJHJ/gVfBWAFXwVgBWsFYAVfBWAFXwVgBV8FYAVfBWBOHQjfjW8KCgoKbF7xMwTRA7kGN8PDAMMEr8MA70gxFroFTj5xPnhCR0K+X30/X/AAWBkzswCNBsxzzASm70aCRS4rDDMeLz49fnXfcsH5GcoscQFz13Y4HwVnBXLJycnACNdRYwgICAqEXoWTxgA7P4kACxbZBu21Kw0AjMsTAwkVAOVtJUUsJ1JCuULESUArXy9gPi9AKwnJRQYKTD9LPoA+iT54PnkCkULEUUpDX9NWV3JVEjQAc1w3A3IBE3YnX+g7QiMJb6MKaiszRCUuQrNCxDPMCcwEX9EWJzYREBEEBwIHKn6l33JCNVIfybPJtAltydPUCmhBZw/tEKsZAJOVJU1CLRuxbUHOQAo7P0s+eEJHHA8SJVRPdGM0NVrpvBoKhfUlM0JHHGUQUhEWO1xLSj8MO0ucNAqJIzVCRxv9EFsqKyA4OQgNj2nwZgp5ZNFgE2A1K3YHS2AhQQojJmC7DgpzGG1WYFUZCQYHZO9gHWCdYIVgu2BTYJlwFh8GvRbcXbG8YgtDHrMBwzPVyQonHQgkCyYBgQJ0Ajc4nVqIAwGSCsBPIgDsK3SWEtIVBa5N8gGjAo+kVwVIZwD/AEUSCDweX4ITrRQsJ8K3TwBXFDwEAB0TvzVcAtoTS20RIwDgVgZ9BBImYgA5AL4Coi8LFnezOkCnIQFjAY4KBAPh9RcGsgZSBsEAJctdsWIRu2kTkQstRw7DAcMBKgpPBGIGMDAwKCYnKTQaLg4AKRSVAFwCdl+YUZ0JdicFD3lPAdt1F9ZZKCGxuE3yBxkFVGcA/wBFEgiCBwAOLHQSjxOtQDg1z7deFRMAZ8QTAGtKb1ApIiPHADkAvgKiLy1DFtYCmBiDAlDDWNB0eo7fpaMO/aEVRRv0ATEQZBIODyMEAc8JQhCbDRgzFD4TAEMAu9YBCgCsAOkAm5I3ABwAYxvONnR+MhXJAxgKQyxL2+kkJhMbhQKDBMkSsvF0AD9BNQ6uQC7WqSQHwxEAEEIu1hkhAH2z4iQPwyJPHNWpdyYBRSpnJALzoBAEVPPsH20MxA0CCEQKRgAFyAtFAlMNwwjEDUQJRArELtapMg7DDZgJIw+TGukEIwvDFkMAqAtDEMMMBhioe+QAO3MMRAACrgnEBSPY9Q0FDnbSBoMAB8MSYxkSxAEJAPIJAAB8FWMOFtMc/HcXwxhDAC7DAvOowwAewwJdKDKHAAHDAALrFUQVwwAbwyvzpWMWv8wA/ABpAy++bcYDUKPD0KhDCwKmJ1MAAmMA5+UZwxAagwipBRL/eADfw6fDGOMCGsOjk3l6BwOpo4sAEsMOGxMAA5sAbcMOAAvDp0MJGkMDwgipnNIPAwfIqUMGAOGDAAPzABXDAAcDAAnDAGmTABrDAA7DChjDjnEWAwABYwAOcwAuUyYABsMAF8MIKQANUgC6wy4AA8MADqMq8wCyYgAcIwAB8wqpAAXOCx0V4wAHowBCwwEKAGnDAAuDAB3DAAjDCakABdIAbqcZ3QCZCCkABdIAAAFDAAfjAB2jCCkABqIACYMAGzMAbSMA5sOIAAhjAAhDABTDBAkpAAbSAOOTAAlDC6kOzPtnAAdDAG6kQFAATwAKwwwAA0MACbUDPwAHIwAZgwACE6cDAAojAApDAAoDp/MGwwAJIwADEwAQQwgAFEMAEXMAD5MADfMADcMAGRMOFiMAFUMAbqMWuwHDAMIAE0MLAGkzEgDhUwACQwAEWgAXgwUjAAbYABjDBSYBgzBaAEFNALcQBxUMegAwMngBrA0IZgJ0KxQHBREPd1N0ZzKRJwaIHAZqNT4DqQq8BwngAB4DAwt2AX56T1ocKQNXAh1GATQGC3tOxYNagkgAMQA5CQADAQEAWxLjAIOYNAEzAH7tFRk6TglSAF8NAAlYAQ+S1ACAQwQorQBiAN4dAJ1wPyeTANVzuQDX3AIeEMp9eyMgXiUAEdkBkJizKltbVVAaRMqRAAEAhyQ/SDEz6BmfVwB6ATEsOClKIRcDOF0E/832AFNt5AByAnkCRxGCOs94NjXdAwINGBonDBwPALW2AwICAgAAAAAAAAYDBQMDARrUAwAtAAAAAgEGBgYGBgYFBQUFBQUEBQYHCAkEBQUFBQQAAAICAAAAIgCNAJAAlT0A6gC7ANwApEQAwgCyAK0AqADuAKYA2gCjAOcBCAEDAMcAgQBiANIA1AEDAN4A8gCQAKkBMQDqAN8A3AsBCQ8yO9ra2tq8xuLT1tRJOB0BUgFcNU0BWgFpAWgBWwFMUUlLbhMBUxsNEAs6PhMOACcUKy0vMj5AQENDQ0RFFEYGJFdXV1dZWVhZL1pbXVxcI2NnZ2ZoZypsbnZ1eHh4eHh4enp6enp6enp6enp8fH18e2IARPIASQCaAHgAMgBm+ACOAFcAVwA3AnbvAIsABfj4AGQAk/IAnwBPAGIAZP//sACFAIUAaQBWALEAJAC2AIMCQAJDAPwA5wD+AP4A6AD/AOkA6QDoAOYALwJ7AVEBQAE+AVQBPgE+AT4BOQE4ATgBOAEcAVgXADEQCAEAUx8SHgsdHhYAjgCWAKYAUQBqIAIxAHYAbwCXAxUDJzIDIUlGTzEAkQJPAMcCVwKkAMAClgKWApYClgKWApYCiwKWApYClgKWApYClgKVApUCmAKgApcClgKWApQClAKUApQCkgKVAnUB1AKXAp8ClgKWApUeAIETBQD+DQOfAmECOh8BVBg9AuIZEjMbAU4/G1WZAXusRAFpYQEFA0FPAQYAmTEeIJdyADFoAHEANgCRA5zMk/C2jGINwjMWygIZCaXdfDILBCs5dAE7YnQBugDlhoiHhoiGiYqKhouOjIaNkI6Ij4qQipGGkoaThpSSlYaWhpeKmIaZhpqGm4aci52QnoqfhuIC4XTpAt90AIp0LHSoAIsAdHQEQwRABEIERQRDBEkERgRBBEcESQRIBEQERgRJAJ5udACrA490ALxuAQ10ANFZdHQA13QCFHQA/mJ0AP4BIQD+APwA/AD9APwDhGZ03ASMK23HAP4A/AD8AP0A/CR0dACRYnQA/gCRASEA/gCRAvQA/gCRA4RmdNwEjCttxyR0AP9idAEhAP4A/gD8APwA/QD8AP8A/AD8AP0A/AOEZnTcBIwrbcckdHQAkWJ0ASEA/gCRAP4AkQL0AP4AkQOEZnTcBIwrbcckdAJLAT50AlIBQXQCU8l0dAJfdHQDpgL0A6YDpgOnA6cDpwOnA4RmdNwEjCttxyR0dACRYnQBIQOmAJEDpgCRAvQDpgCRA4RmdNwEjCttxyR0BDh0AJEEOQCRDpU5dSgCADR03gV2CwArdAEFAM5iCnR0AF1iAAYcOgp0dACRCnQAXAEIwWZ0CnRmdHQAkWZ0CnRmdEXgAFF03gp0dEY0tlT2u3SOAQTwscwhjZZKrhYcBSfFp9XNbKiVDOD2b+cpe4/Z17mQnbtzzhaeQtE2GGj0IDNTjRUSyTxxw/RPHW/+vS7d1NfRt9z9QPZg4X7QFfhCnkvgNPIItOsC2eV6hPannZNHlZ9xrwZXIMOlu3jSoQSq78WEjwLjw1ELSlF1aBvfzwk5ZX7AUvQzjPQKbDuQ+sm4wNOp4A6AdVuRS0t1y/DZpg4R6m7FNjM9HgvW7Bi88zaMjOo6lM8wtBBdj8LP4ylv3zCXPhebMKJc066o9sF71oFW/8JXu86HJbwDID5lzw5GWLR/LhT0Qqnp2JQxNZNfcbLIzPy+YypqRm/lBmGmex+82+PisxUumSeJkALIT6rJezxMH+CTJmQtt5uwTVbL3ptmjDUQzlSIvWi8Tl7ng1NpuRn1Ng4n14Qc+3Iil7OwkvNWogLSPkn3pihIFytyIGmMhOe3n1tWsuMy9BdKyqF4Z3v2SgggTL9KVvMXPnCbRe+oOuFFP3HejBG/w9gvmfNYvg6JuWia2lcSSN1uIjBktzoIazOHPJZ7kKHPz8mRWVdW3lA8WGF9dQF6Bm673boov3BUWDU2JNcahR23GtfHKLOz/viZ+rYnZFaIznXO67CYEJ1fXuTRpZhYZkKe54xeoagkNGLs+NTZHE0rX45/XvQ2RGADX6vcAvdxIUBV27wxGm2zjZo4X3ILgAlrOFheuZ6wtsvaIj4yLY7qqawlliaIcrz2G+c3vscAnCkCuMzMmZvMfu9lLwTvfX+3cVSyPdN9ZwgDZhfjRgNJcLiJ67b9xx8JHswprbiE3v9UphotAPIgnXVIN5KmMc0piXhc6cChPnN+MRhG9adtdttQTTwSIpl8I4/j//d3sz1326qTBTpPRM/Hgh3kzqEXs8ZAk4ErQhNO8hzrQ0DLkWMA/N+91tn2MdOJnWC2FCZehkQrwzwbKOjhvZsbM95QoeL9skYyMf4srVPVJSgg7pOLUtr/n9eT99oe9nLtFRpjA9okV2Kj8h9k5HaC0oivRD8VyXkJ81tcd4fHNXPCfloIQasxsuO18/46dR2jgul/UIet2G0kRvnyONMKhHs6J26FEoqSqd+rfYjeEGwHWVDpX1fh1jBBcKGMqRepju9Y00mDVHC+Xdij/j44rKfvfjGinNs1jO/0F3jB83XCDINN/HB84axlP+3E/klktRo+vl3U/aiyMJbIodE1XSsDn6UAzIoMtUObY2+k/4gY/l+AkZJ5Sj2vQrkyLm3FoxjhDX+31UXBFf9XrAH31fFqoBmDEZvhvvpnZ87N+oZEu7U9O/nnk+QWj3x8uyoRbEnf+O5UMr9i0nHP38IF5AvzrBW8YWBUR0mIAzIvndQq9N3v/Jto3aPjPXUPl8ASdPPyAp7jENf8bk7VMM9ol9XGmlBmeDMuGqt+WzuL6CXAxXjIhCPM5vACchgMJ/8XBGLO/D1isVvGhwwHHr1DLaI5mn2Jr/b1pUD90uciDaS8cXNDzCWvNmT/PhQe5e8nTnnnkt8Ds/SIjibcum/fqDhKopxAY8AkSrPn+IGDEKOO+U3XOP6djFs2H5N9+orhOahiQk5KnEUWa+CzkVzhp8bMHRbg81qhjjXuIKbHjSLSIBKWqockGtKinY+z4/RdBUF6pcc3JmnlxVcNgrI4SEzKUZSwcD2QCyxzKve+gAmg6ZuSRkpPFa6mfThu7LJNu3H5K42uCpNvPAsoedolKV/LHe/eJ+BbaG5MG0NaSGVPRUmNFMFFSSpXEcXwbVh7UETOZZtoVNRGOIbbkig3McEtR68cG0RZAoJevWYo7Dg/lZ1CQzblWeUvVHmr8fY4Nqd9JJiH/zEX24mJviH60fAyFr0A3c4bC1j3yZU60VgJxXn8JgJXLUIsiBnmKmMYz+7yBQFBvqb2eYnuW59joZBf56/wXvWIR4R8wTmV80i1mZy+S4+BUES+hzjk0uXpC///z/IlqHZ1monzlXp8aCfhGKMti73FI1KbL1q6IKO4fuBuZ59gagjn5xU79muMpHXg6S+e+gDM/U9BKLHbl9l6o8czQKl4RUkJJiqftQG2i3BMg/TQlUYFkJDYBOOvAugYuzYSDnZbDDd/aSd9x0Oe6F+bJcHfl9+gp6L5/TgA+BdFFovbfCrQ40s5vMPw8866pNX8zyFGeFWdxIpPVp9Rg1UPOVFbFZrvaFq/YAzHQgqMWpahMYfqHpmwXfHL1/kpYmGuHFwT55mQu0dylfNuq2Oq0hTMCPwqfxnuBIPLXfci4Y1ANy+1CUipQxld/izVh16WyG2Q0CQQ9NqtAnx1HCHwDj7sYxOSB0wopZSnOzxQOcExmxrVTF2BkOthVpGfuhaGECfCJpJKpjnihY+xOT2QJxN61+9K6QSqtv2Shr82I3jgJrqBg0wELFZPjvHpvzTtaJnLK6Vb97Yn933koO/saN7fsjwNKzp4l2lJVx2orjCGzC/4ZL4zCver6aQYtC5sdoychuFE6ufOiog+VWi5UDkbmvmtah/3aArEBIi39s5ILUnlFLgilcGuz9CQshEY7fw2ouoILAYPVT/gyAIq3TFAIwVsl+ktkRz/qGfnCDGrm5gsl/l9QdvCWGsjPz3dU7XuqKfdUrr/6XIgjp4rey6AJBmCmUJMjITHVdFb5m1p+dLMCL8t55zD42cmftmLEJC0Da04YiRCVUBLLa8D071/N5UBNBXDh0LFsmhV/5B5ExOB4j3WVG/S3lfK5o+V6ELHvy6RR9n4ac+VsK4VE4yphPvV+kG9FegTBH4ZRXL2HytUHCduJazB/KykjfetYxOXTLws267aGOd+I+JhKP//+VnXmS90OD/jvLcVu0asyqcuYN1mSb6XTlCkqv1vigZPIYwNF/zpWcT1GR/6aEIRjkh0yhg4LXJfaGobYJTY4JI58KiAKgmmgAKWdl5nYCeLqavRJGQNuYuZtZFGx+IkI4w4NS2xwbetNMunOjBu/hmKCI/w7tfiiyUd//4rbTeWt4izBY8YvGIN6vyKYmP/8X8wHKCeN+WRcKM70+tXKNGyevU9H2Dg5BsljnTf8YbsJ1TmMs74Ce2XlHisleguhyeg44rQOHZuw/6HTkhnnurK2d62q6yS7210SsAIaR+jXMQA+svkrLpsUY+F30Uw89uOdGAR6vo4FIME0EfVVeHTu6eKicfhSqOeXJhbftcd08sWEnNUL1C9fnprTgd83IMut8onVUF0hvqzZfHduPjbjwEXIcoYmy+P6tcJZHmeOv6VrvEdkHDJecjHuHeWANe79VG662qTjA/HCvumVv3qL+LrOcpqGps2ZGwQdFJ7PU4iuyRlBrwfO+xnPyr47s2cXVbWzAyznDiBGjCM3ksxjjqM62GE9C8f5U38kB3VjtabKp/nRdvMESPGDG90bWRLAt1Qk5DyLuazRR1YzdC1c+hZXvAWV8xA72S4A8B67vjVhbba3MMop293FeEXpe7zItMWrJG/LOH9ByOXmYnNJfjmfuX9KbrpgLOba4nZ+fl8Gbdv/ihv+6wFGKHCYrVwmhFC0J3V2bn2tIB1wCc1CST3d3X2OyxhguXcs4sm679UngzofuSeBewMFJboIQHbUh/m2JhW2hG9DIvG2t7yZIzKBTz9wBtnNC+2pCRYhSIuQ1j8xsz5VvqnyUIthvuoyyu7fNIrg/KQUVmGQaqkqZk/Vx5b33/gsEs8yX7SC1J+NV4icz6bvIE7C5G6McBaI8rVg56q5QBJWxn/87Q1sPK4+sQa8fLU5gXo4paaq4cOcQ4wR0VBHPGjKh+UlPCbA1nLXyEUX45qZ8J7/Ln4FPJE2TdzD0Z8MLSNQiykMMmSyOCiFfy84Rq60emYB2vD09KjYwsoIpeDcBDTElBbXxND72yhd9pC/1CMid/5HUMvAL27OtcIJDzNKpRPNqPOpyt2aPGz9QWIs9hQ9LiX5s8m9hjTUu/f7MyIatjjd+tSfQ3ufZxPpmJhTaBtZtKLUcfOCUqADuO+QoH8B9v6U+P0HV1GLQmtoNFTb3s74ivZgjES0qfK+8RdGgBbcCMSy8eBvh98+et1KIFqSe1KQPyXULBMTsIYnysIwiZBJYdI20vseV+wuJkcqGemehKjaAb9L57xZm3g2zX0bZ2xk/fU+bCo7TlnbW7JuF1YdURo/2Gw7VclDG1W7LOtas2LX4upifZ/23rzpsnY/ALfRgrcWP5hYmV9VxVOQA1fZvp9F2UNU+7d7xRyVm5wiLp3/0dlV7vdw1PMiZrbDAYzIVqEjRY2YU03sJhPnlwIPcZUG5ltL6S8XCxU1eYS5cjr34veBmXAvy7yN4ZjArIG0dfD/5UpBNlX1ZPoxJOwyqRi3wQWtOzd4oNKh0LkoTm8cwqgIfKhqqGOhwo71I+zXnMemTv2B2AUzABWyFztGgGULjDDzWYwJUVBTjKCn5K2QGMK1CQT7SzziOjo+BhAmqBjzuc3xYym2eedGeOIRJVyTwDw37iCMe4g5Vbnsb5ZBdxOAnMT7HU4DHpxWGuQ7GeiY30Cpbvzss55+5Km1YsbD5ea3NI9QNYIXol5apgSu9dZ8f8xS5dtHpido5BclDuLWY4lhik0tbJa07yJhH0BOyEut/GRbYTS6RfiTYWGMCkNpfSHi7HvdiTglEVHKZXaVhezH4kkXiIvKopYAlPusftpE4a5IZwvw1x/eLvoDIh/zpo9FiQInsTb2SAkKHV42XYBjpJDg4374XiVb3ws4qM0s9eSQ5HzsMU4OZJKuopFjBM+dAZEl8RUMx5uU2N486Kr141tVsGQfGjORYMCJAMsxELeNT4RmWjRcpdTGBwcx6XN9drWqPmJzcrGrH4+DRc7+n1w3kPZwu0BkNr6hQrqgo7JTB9A5kdJ/H7P4cWBMwsmuixAzJB3yrQpnGIq90lxAXLzDCdn1LPibsRt7rHNjgQBklRgPZ8vTbjXdgXrTWQsK5MdrXXQVPp0Rinq3frzZKJ0qD6Qhc40VzAraUXlob1gvkhK3vpmHgI6FRlQZNx6eRqkp0zy4AQlX813fAPtL3jMRaitGFFjo0zmErloC+h+YYdVQ6k4F/epxAoF0BmqEoKNTt6j4vQZNQ2BoqF9Vj53TOIoNmDiu9Xp15RkIgQIGcoLpfoIbenzpGUAtqFJp5W+LLnx38jHeECTJ/navKY1NWfN0sY1T8/pB8kIH3DU3DX+u6W3YwpypBMYOhbSxGjq84RZ84fWJow8pyHqn4S/9J15EcCMsXqrfwyd9mhiu3+rEo9pPpoJkdZqHjra4NvzFwuThNKy6hao/SlLw3ZADUcUp3w3SRVfW2rhl80zOgTYnKE0Hs2qp1J6H3xqPqIkvUDRMFDYyRbsFI3M9MEyovPk8rlw7/0a81cDVLmBsR2ze2pBuKb23fbeZC0uXoIvDppfTwIDxk1Oq2dGesGc+oJXWJLGkOha3CX+DUnzgAp9HGH9RsPZN63Hn4RMA5eSVhPHO+9RcRb/IOgtW31V1Q5IPGtoxPjC+MEJbVlIMYADd9aHYWUIQKopuPOHmoqSkubnAKnzgKHqgIOfW5RdAgotN6BN+O2ZYHkuemLnvQ8U9THVrS1RtLmKbcC7PeeDsYznvqzeg6VCNwmr0Yyx1wnLjyT84BZz3EJyCptD3yeueAyDWIs0L2qs/VQ3HUyqfrja0V1LdDzqAikeWuV4sc7RLIB69jEIBjCkyZedoUHqCrOvShVzyd73OdrJW0hPOuQv2qOoHDc9xVb6Yu6uq3Xqp2ZaH46A7lzevbxQEmfrzvAYSJuZ4WDk1Hz3QX1LVdiUK0EvlAGAYlG3Md30r7dcPN63yqBCIj25prpvZP0nI4+EgWoFG95V596CurXpKRBGRjQlHCvy5Ib/iW8nZJWwrET3mgd6mEhfP4KCuaLjopWs7h+MdXFdIv8dHQJgg1xi1eYqB0uDYjxwVmri0Sv5XKut/onqapC+FQiC2C1lvYJ9MVco6yDYsS3AANUfMtvtbYI2hfwZatiSsnoUeMZd34GVjkMMKA+XnjJpXgRW2SHTZplVowPmJsvXy6w3cfO1AK2dvtZEKTkC/TY9LFiKHCG0DnrMQdGm2lzlBHM9iEYynH2UcVMhUEjsc0oDBTgo2ZSQ1gzkAHeWeBXYFjYLuuf8yzTCy7/RFR81WDjXMbq2BOH5dURnxo6oivmxL3cKzKInlZkD31nvpHB9Kk7GfcfE1t+1V64b9LtgeJGlpRFxQCAqWJ5DoY77ski8gsOEOr2uywZaoO/NGa0X0y1pNQHBi3b2SUGNpcZxDT7rLbBf1FSnQ8guxGW3W+36BW0gBje4DOz6Ba6SVk0xiKgt+q2JOFyr4SYfnu+Ic1QZYIuwHBrgzr6UvOcSCzPTOo7D6IC4ISeS7zkl4h+2VoeHpnG/uWR3+ysNgPcOIXQbv0n4mr3BwQcdKJxgPSeyuP/z1Jjg4e9nUvoXegqQVIE30EHx5GHv+FAVUNTowYDJgyFhf5IvlYmEqRif6+WN1MkEJmDcQITx9FX23a4mxy1AQRsOHO/+eImX9l8EMJI3oPWzVXxSOeHU1dUWYr2uAA7AMb+vAEZSbU3qob9ibCyXeypEMpZ6863o6QPqlqGHZkuWABSTVNd4cOh9hv3qEpSx2Zy/DJMP6cItEmiBJ5PFqQnDEIt3NrA3COlOSgz43D7gpNFNJ5MBh4oFzhDPiglC2ypsNU4ISywY2erkyb1NC3Qh/IfWj0eDgZI4/ln8WPfBsT3meTjq1Uqt1E7Zl/qftqkx6aM9KueMCekSnMrcHj1CqTWWzEzPsZGcDe3Ue4Ws+XFYVxNbOFF8ezkvQGR6ZOtOLU2lQEnMBStx47vE6Pb7AYMBRj2OOfZXfisjJnpTfSNjo6sZ6qSvNxZNmDeS7Gk3yYyCk1HtKN2UnhMIjOXUzAqDv90lx9O/q/AT1ZMnit5XQe9wmQxnE/WSH0CqZ9/2Hy+Sfmpeg8RwsHI5Z8kC8H293m/LHVVM/BA7HaTJYg5Enk7M/xWpq0192ACfBai2LA/qrCjCr6Dh1BIMzMXINBmX96MJ5Hn2nxln/RXPFhwHxUmSV0EV2V0jm86/dxxuYSU1W7sVkEbN9EzkG0QFwPhyHKyb3t+Fj5WoUUTErcazE/N6EW6Lvp0d//SDPj7EV9UdJN+Amnf3Wwk3A0SlJ9Z00yvXZ7n3z70G47Hfsow8Wq1JXcfwnA+Yxa5mFsgV464KKP4T31wqIgzFPd3eCe3j5ory5fBF2hgCFyVFrLzI9eetNXvM7oQqyFgDo4CTp/hDV9NMX9JDHQ/nyHTLvZLNLF6ftn2OxjGm8+PqOwhxnPHWipkE/8wbtyri80Sr7pMNkQGMfo4ZYK9OcCC4ESVFFbLMIvlxSoRqWie0wxqnLfcLSXMSpMMQEJYDVObYsXIQNv4TGNwjq1kvT1UOkicTrG3IaBZ3XdScS3u8sgeZPVpOLkbiF940FjbCeNRINNvDbd01EPBrTCPpm12m43ze1bBB59Ia6Ovhnur/Nvx3IxwSWol+3H2qfCJR8df6aQf4v6WiONxkK+IqT4pKQrZK/LplgDI/PJZbOep8dtbV7oCr6CgfpWa8NczOkPx81iSHbsNhVSJBOtrLIMrL31LK9TqHqAbAHe0RLmmV806kRLDLNEhUEJfm9u0sxpkL93Zgd6rw+tqBfTMi59xqXHLXSHwSbSBl0EK0+loECOPtrl+/nsaFe197di4yUgoe4jKoAJDXc6DGDjrQOoFDWZJ9HXwt8xDrQP+7aRwWKWI1GF8s8O4KzxWBBcwnl3vnl1Oez3oh6Ea1vjR7/z7DDTrFtqU2W/KAEzAuXDNZ7MY73MF216dzdSbWmUp4lcm7keJfWaMHgut9x5C9mj66Z0lJ+yhsjVvyiWrfk1lzPOTdhG15Y7gQlXtacvI7qv/XNSscDwqkgwHT/gUsD5yB7LdRRvJxQGYINn9hTpodKFVSTPrtGvyQw+HlRFXIkodErAGu9Iy1YpfSPc3jkFh5CX3lPxv7aqjE/JAfTIpEjGb/H7MO0e2vsViSW1qa/Lmi4/n4DEI3g7lYrcanspDfEpKkdV1OjSLOy0BCUqVoECaB55vs06rXl4jqmLsPsFM/7vYJ0vrBhDCm/00A/H81l1uekJ/6Lml3Hb9+NKiLqATJmDpyzfYZFHumEjC662L0Bwkxi7E9U4cQA0XMVDuMYAIeLMPgQaMVOd8fmt5SflFIfuBoszeAw7ow5gXPE2Y/yBc/7jExARUf/BxIHQBF5Sn3i61w4z5xJdCyO1F1X3+3ax+JSvMeZ7S6QSKp1Fp/sjYz6Z+VgCZzibGeEoujryfMulH7Rai5kAft9ebcW50DyJr2uo2z97mTWIu45YsSnNSMrrNUuG1XsYBtD9TDYzQffKB87vWbkM4EbPAFgoBV4GQS+vtFDUqOFAoi1nTtmIOvg38N4hT2Sn8r8clmBCXspBlMBYTnrqFJGBT3wZOzAyJDre9dHH7+x7qaaKDOB4UQALD5ecS0DE4obubQEiuJZ0EpBVpLuYcce8Aa4PYd/V4DLDAJBYKQPCWTcrEaZ5HYbJi11Gd6hjGom1ii18VHYnG28NKpkz2UKVPxlhYSp8uZr367iOmoy7zsxehW9wzcy2zG0a80PBMCRQMb32hnaHeOR8fnNDzZhaNYhkOdDsBUZ3loDMa1YP0uS0cjUP3b/6DBlqmZOeNABDsLl5BI5QJups8uxAuWJdkUB/pO6Zax6tsg7fN5mjjDgMGngO+DPcKqiHIDbFIGudxtPTIyDi9SFMKBDcfdGQRv41q1AqmxgkVfJMnP8w/Bc7N9/TR6C7mGObFqFkIEom8sKi2xYqJLTCHK7cxzaZvqODo22c3wisBCP4HeAgcRbNPAsBkNRhSmD48dHupdBRw4mIvtS5oeF6zeT1KMCyhMnmhpkFAGWnGscoNkwvQ8ZM5lE/vgTHFYL99OuNxdFBxTEDd5v2qLR8y9WkXsWgG6kZNndFG+pO/UAkOCipqIhL3hq7cRSdrCq7YhUsTocEcnaFa6nVkhnSeRYUA1YO0z5itF9Sly3VlxYDw239TJJH6f3EUfYO5lb7bcFcz8Bp7Oo8QmnsUHOz/fagVUBtKEw1iT88j+aKkv8cscKNkMxjYr8344D1kFoZ7/td1W6LCNYN594301tUGRmFjAzeRg5vyoM1F6+bJZ/Q54jN/k8SFd3DxPTYaAUsivsBfgTn7Mx8H2SpPt4GOdYRnEJOH6jHM2p6SgB0gzIRq6fHxGMmSmqaPCmlfwxiuloaVIitLGN8wie2CDWhkzLoCJcODh7KIOAqbHEvXdUxaS4TTTs07Clzj/6GmVs9kiZDerMxEnhUB6QQPlcfqkG9882RqHoLiHGBoHfQuXIsAG8GTAtao2KVwRnvvam8jo1e312GQAKWEa4sUVEAMG4G6ckcONDwRcg1e2D3+ohXgY4UAWF8wHKQMrSnzCgfFpsxh+aHXMGtPQroQasRY4U6UdG0rz1Vjbka0MekOGRZQEvqQFlxseFor8zWFgHek3v29+WqN6gaK5gZOTOMZzpQIC1201LkMCXild3vWXSc5UX9xcFYfbRPzGFa1FDcPfPB/jUEq/FeGt419CI3YmBlVoHsa4KdcwQP5ZSwHHhFJ7/Ph/Rap/4vmG91eDwPP0lDfCDRCLszTqfzM71xpmiKi2HwS4WlqvGNwtvwF5Dqpn6KTq8ax00UMPkxDcZrEEEsIvHiUXXEphdb4GB4FymlPwBz4Gperqq5pW7TQ6/yNRhW8VT5NhuP0udlxo4gILq5ZxAZk8ZGh3g4CqxJlPKY7AQxupfUcVpWT5VItp1+30UqoyP4wWsRo3olRRgkWZZ2ZN6VC3OZFeXB8NbnUrSdikNptD1QiGuKkr8EmSR/AK9Rw+FF3s5uwuPbvHGiPeFOViltMK7AUaOsq9+x9cndk3iJEE5LKZRlWJbKOZweROzmPNVPkjE3K/TyA57Rs68TkZ3MR8akKpm7cFjnjPd/DdkWjgYoKHSr5Wu5ssoBYU4acRs5g2DHxUmdq8VXOXRbunD8QN0LhgkssgahcdoYsNvuXGUK/KXD/7oFb+VGdhqIn02veuM5bLudJOc2Ky0GMaG4W/xWBxIJcL7yliJOXOpx0AkBqUgzlDczmLT4iILXDxxtRR1oZa2JWFgiAb43obrJnG/TZC2KSK2wqOzRZTXavZZFMb1f3bXvVaNaK828w9TO610gk8JNf3gMfETzXXsbcvRGCG9JWQZ6+cDPqc4466Yo2RcKH+PILeKOqtnlbInR3MmBeGG3FH10yzkybuqEC2HSQwpA0An7d9+73BkDUTm30bZmoP/RGbgFN+GrCOfADgqr0WbI1a1okpFms8iHYw9hm0zUvlEMivBRxModrbJJ+9/p3jUdQQ9BCtQdxnOGrT5dzRUmw0593/mbRSdBg0nRvRZM5/E16m7ZHmDEtWhwvfdZCZ8J8M12W0yRMszXamWfQTwIZ4ayYktrnscQuWr8idp3PjT2eF/jmtdhIfcpMnb+IfZY2FebW6UY/AK3jP4u3Tu4zE4qlnQgLFbM19EBIsNf7KhjdbqQ/D6yiDb+NlEi2SKD+ivXVUK8ib0oBo366gXkR8ZxGjpJIDcEgZPa9TcYe0TIbiPl/rPUQDu3XBJ9X/GNq3FAUsKsll57DzaGMrjcT+gctp+9MLYXCq+sqP81eVQ0r9lt+gcQfZbACRbEjvlMskztZG8gbC8Qn9tt26Q7y7nDrbZq/LEz7kR6Jc6pg3N9rVX8Y5MJrGlML9p9lU4jbTkKqCveeZUJjHB03m2KRKR2TytoFkTXOLg7keU1s1lrPMQJpoOKLuAAC+y1HlJucU6ysB5hsXhvSPPLq5J7JtnqHKZ4vYjC4Vy8153QY+6780xDuGARsGbOs1WqzH0QS765rnSKEbbKlkO8oI/VDwUd0is13tKpqILu1mDJFNy/iJAWcvDgjxvusIT+PGz3ST/J9r9Mtfd0jpaGeiLYIqXc7DiHSS8TcjFVksi66PEkxW1z6ujbLLUGNNYnzOWpH8BZGK4bCK7iR+MbIv8ncDAz1u4StN3vTTzewr9IQjk9wxFxn+6N1ddKs0vffJiS08N3a4G1SVrlZ97Q/M+8G9fe5AP6d9/Qq4WRnORVhofPIKEdCr3llspUfE0oKIIYoByBRPh+bX1HLS3JWGJRhIvE1aW4NTd8ePi4Z+kXb+Z8snYfSNcqijhAgVsx4RCM54cXUiYkjeBmmC4ajOHrChoELscJJC7+9jjMjw5BagZKlgRMiSNYz7h7vvZIoQqbtQmspc0cUk1G/73iXtSpROl5wtLgQi0mW2Ex8i3WULhcggx6E1LMVHUsdc9GHI1PH3U2Ko0PyGdn9KdVOLm7FPBui0i9a0HpA60MsewVE4z8CAt5d401Gv6zXlIT5Ybit1VIA0FCs7wtvYreru1fUyW3oLAZ/+aTnZrOcYRNVA8spoRtlRoWflsRClFcgzkqiHOrf0/SVw+EpVaFlJ0g4Kxq1MMOmiQdpMNpte8lMMQqm6cIFXlnGbfJllysKDi+0JJMotkqgIxOSQgU9dn/lWkeVf8nUm3iwX2Nl3WDw9i6AUK3vBAbZZrcJpDQ/N64AVwjT07Jef30GSSmtNu2WlW7YoyW2FlWfZFQUwk867EdLYKk9VG6JgEnBiBxkY7LMo4YLQJJlAo9l/oTvJkSARDF/XtyAzM8O2t3eT/iXa6wDN3WewNmQHdPfsxChU/KtLG2Mn8i4ZqKdSlIaBZadxJmRzVS/o4yA65RTSViq60oa395Lqw0pzY4SipwE0SXXsKV+GZraGSkr/RW08wPRvqvSUkYBMA9lPx4m24az+IHmCbXA+0faxTRE9wuGeO06DIXa6QlKJ3puIyiuAVfPr736vzo2pBirS+Vxel3TMm3JKhz9o2ZoRvaFVpIkykb0Hcm4oHFBMcNSNj7/4GJt43ogonY2Vg4nsDQIWxAcorpXACzgBqQPjYsE/VUpXpwNManEru4NwMCFPkXvMoqvoeLN3qyu/N1eWEHttMD65v19l/0kH2mR35iv/FI+yjoHJ9gPMz67af3Mq/BoWXqu3rphiWMXVkmnPSEkpGpUI2h1MThideGFEOK6YZHPwYzMBvpNC7+ZHxPb7epfefGyIB4JzO9DTNEYnDLVVHdQyvOEVefrk6Uv5kTQYVYWWdqrdcIl7yljwwIWdfQ/y+2QB3eR/qxYObuYyB4gTbo2in4PzarU1sO9nETkmj9/AoxDA+JM3GMqQtJR4jtduHtnoCLxd1gQUscHRB/MoRYIEsP2pDZ9KvHgtlk1iTbWWbHhohwFEYX7y51fUV2nuUmnoUcqnWIQAAgl9LTVX+Bc0QGNEhChxHR4YjfE51PUdGfsSFE6ck7BL3/hTf9jLq4G1IafINxOLKeAtO7quulYvH5YOBc+zX7CrMgWnW47/jfRsWnJjYYoE7xMfWV2HN2iyIqLI";const eO=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]),tO=4;function xee(r){let e=0;function t(){return r[e++]<<8|r[e++]}let n=t(),i=1,s=[0,1];for(let V=1;V<n;V++)s.push(i+=t());let o=t(),a=e;e+=o;let u=0,l=0;function h(){return u==0&&(l=l<<8|r[e++],u=8),l>>--u&1}const g=31,b=2**g,w=b>>>1,I=w>>1,S=b-1;let x=0;for(let V=0;V<g;V++)x=x<<1|h();let C=[],H=0,D=b;for(;;){let V=Math.floor(((x-H+1)*i-1)/D),Z=0,K=n;for(;K-Z>1;){let ce=Z+K>>>1;V<s[ce]?K=ce:Z=ce}if(Z==0)break;C.push(Z);let W=H+Math.floor(D*s[Z]/i),oe=H+Math.floor(D*s[Z+1]/i)-1;for(;!((W^oe)&w);)x=x<<1&S|h(),W=W<<1&S,oe=oe<<1&S|1;for(;W&~oe&I;)x=x&w|x<<1&S>>>1|h(),W=W<<1^w,oe=(oe^w)<<1|w|1;H=W,D=1+oe-W}let z=n-4;return C.map(V=>{switch(V-z){case 3:return z+65792+(r[a++]<<16|r[a++]<<8|r[a++]);case 2:return z+256+(r[a++]<<8|r[a++]);case 1:return z+r[a++];default:return V-1}})}function Ree(r){let e=0;return()=>r[e++]}function rO(r){return Ree(xee(Iee(r)))}function Iee(r){let e=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach((i,s)=>e[i.charCodeAt(0)]=s);let t=r.length,n=new Uint8Array(6*t>>3);for(let i=0,s=0,o=0,a=0;i<t;i++)a=a<<6|e[r.charCodeAt(i)],o+=6,o>=8&&(n[s++]=a>>(o-=8));return n}function See(r){return r&1?~r>>1:r>>1}function kee(r,e){let t=Array(r);for(let n=0,i=0;n<r;n++)t[n]=i+=See(e());return t}function mh(r,e=0){let t=[];for(;;){let n=r(),i=r();if(!i)break;e+=n;for(let s=0;s<i;s++)t.push(e+s);e+=i+1}return t}function nO(r){return wh(()=>{let e=mh(r);if(e.length)return e})}function iO(r){let e=[];for(;;){let t=r();if(t==0)break;e.push(Tee(t,r))}for(;;){let t=r()-1;if(t<0)break;e.push(Oee(t,r))}return e.flat()}function wh(r){let e=[];for(;;){let t=r(e.length);if(!t)break;e.push(t)}return e}function sO(r,e,t){let n=Array(r).fill().map(()=>[]);for(let i=0;i<e;i++)kee(r,t).forEach((s,o)=>n[o].push(s));return n}function Tee(r,e){let t=1+e(),n=e(),i=wh(e);return sO(i.length,1+r,e).flatMap((o,a)=>{let[u,...l]=o;return Array(i[a]).fill().map((h,g)=>{let b=g*n;return[u+g*t,l.map(w=>w+b)]})})}function Oee(r,e){let t=1+e();return sO(t,1+r,e).map(i=>[i[0],i.slice(1)])}function Nee(r){let e=[],t=mh(r);return i(n([]),[]),e;function n(s){let o=r(),a=wh(()=>{let u=mh(r).map(l=>t[l]);if(u.length)return n(u)});return{S:o,B:a,Q:s}}function i({S:s,B:o},a,u){if(!(s&4&&u===a[a.length-1])){s&2&&(u=a[a.length-1]),s&1&&e.push(a);for(let l of o)for(let h of l.Q)i(l,[...a,h],u)}}}function Cee(r){return r.toString(16).toUpperCase().padStart(2,"0")}function oO(r){return`{${Cee(r)}}`}function Bee(r){let e=[];for(let t=0,n=r.length;t<n;){let i=r.codePointAt(t);t+=i<65536?1:2,e.push(i)}return e}function Hu(r){let t=r.length;if(t<4096)return String.fromCodePoint(...r);let n=[];for(let i=0;i<t;)n.push(String.fromCodePoint(...r.slice(i,i+=4096)));return n.join("")}function Pee(r,e){let t=r.length,n=t-e.length;for(let i=0;n==0&&i<t;i++)n=r[i]-e[i];return n}var Mee="AEUDTAHBCFQATQDRADAAcgAgADQAFAAsABQAHwAOACQADQARAAoAFwAHABIACAAPAAUACwAFAAwABAAQAAMABwAEAAoABQAIAAIACgABAAQAFAALAAIACwABAAIAAQAHAAMAAwAEAAsADAAMAAwACgANAA0AAwAKAAkABAAdAAYAZwDSAdsDJgC0CkMB8xhZAqfoC190UGcThgBurwf7PT09Pb09AjgJum8OjDllxHYUKXAPxzq6tABAxgK8ysUvWAgMPT09PT09PSs6LT2HcgWXWwFLoSMEEEl5RFVMKvO0XQ8ExDdJMnIgsj26PTQyy8FfEQ8AY8IPAGcEbwRwBHEEcgRzBHQEdQR2BHcEeAR6BHsEfAR+BIAEgfndBQoBYgULAWIFDAFiBNcE2ATZBRAFEQUvBdALFAsVDPcNBw13DYcOMA4xDjMB4BllHI0B2grbAMDpHLkQ7QHVAPRNQQFnGRUEg0yEB2uaJF8AJpIBpob5AERSMAKNoAXqaQLUBMCzEiACnwRZEkkVsS7tANAsBG0RuAQLEPABv9HICTUBXigPZwRBApMDOwAamhtaABqEAY8KvKx3LQ4ArAB8UhwEBAVSagD8AEFZADkBIadVj2UMUgx5Il4ANQC9AxIB1BlbEPMAs30CGxlXAhwZKQIECBc6EbsCoxngzv7UzRQA8M0BawL6ZwkN7wABAD33OQRcsgLJCjMCjqUChtw/km+NAsXPAoP2BT84PwURAK0RAvptb6cApQS/OMMey5HJS84UdxpxTPkCogVFITaTOwERAK5pAvkNBOVyA7q3BKlOJSALAgUIBRcEdASpBXqzABXFSWZOawLCOqw//AolCZdvv3dSBkEQGyelEPcMMwG1ATsN7UvYBPEGOwTJH30ZGQ/NlZwIpS3dDO0m4y6hgFoj9SqDBe1L9DzdC01RaA9ZC2UJ4zpjgU4DIQENIosK3Q05CG0Q8wrJaw3lEUUHOQPVSZoApQcBCxEdNRW1JhBirAsJOXcG+xr2C48mrxMpevwF0xohBk0BKRr/AM8u54WwWjFcHE9fBgMLJSPHFKhQIA0lQLd4SBobBxUlqQKRQ3BKh1E2HpMh9jw9DWYuE1F8B/U8BRlPC4E8nkarRQ4R0j6NPUgiSUwsBDV/LC8niwnPD4UMuXxyAVkJIQmxDHETMREXN8UIOQcZLZckJxUIIUaVYJoE958D8xPRAwsFPwlBBxMDtRwtEy4VKQUNgSTXAvM21S6zAo9WgAEXBcsPJR/fEFBH4A7pCJsCZQODJesALRUhABcimwhDYwBfj9hTBS7LCMdqbCN0A2cU52ERcweRDlcHpxwzFb8c4XDIXguGCCijrwlbAXUJmQFfBOMICTVbjKAgQWdTi1gYmyBhQT9d/AIxDGUVn0S9h3gCiw9rEhsBNQFzBzkNAQJ3Ee0RaxCVCOuGBDW1M/g6JQRPIYMgEQonA09szgsnJvkM+GkBoxJiAww0PXfuZ6tgtiQX/QcZMsVBYCHxC5JPzQycGsEYQlQuGeQHvwPzGvMn6kFXBf8DowMTOk0z7gS9C2kIiwk/AEkOoxcH1xhqCnGM0AExiwG3mQNXkYMCb48GNwcLAGcLhwV55QAdAqcIowAFAM8DVwA5Aq0HnQAZAIVBAT0DJy8BIeUCjwOTCDHLAZUvAfMpBBvDDBUA9zduSgLDsQKAamaiBd1YAo4CSTUBTSUEBU5HUQOvceEA2wBLBhPfRwEVq0rLGuNDAd9vKwDHAPsABTUHBUEBzQHzbQC3AV8LMQmis7UBTekpAIMAFWsB1wKJAN0ANQB/8QFTAE0FWfkF0wJPSQERMRgrV2EBuwMfATMBDQB5BsuNpckHHwRtB9MCEBsV4QLvLge1AQMi3xPNQsUCvd5VoWACZIECYkJbTa9bNyACofcCaJgCZgkCn4Q4GwsCZjsCZiYEbgR/A38TA36SOQY5dxc5gjojIwJsHQIyNjgKAm3HAm2u74ozZ0UrAWcA3gDhAEoFB5gMjQD+C8IADbUCdy8CdqI/AnlLQwJ4uh1c20WuRtcCfD8CesgCfQkCfPAFWQUgSABIfWMkAoFtAoAAAoAFAn+uSVhKWxUXSswC0QEC0MxLJwOITwOH5kTFkTIC8qFdAwMDrkvOTC0lA89NTE2vAos/AorYwRsHHUNnBbcCjjcCjlxAl4ECjtkCjlx4UbRTNQpS1FSFApP7ApMMAOkAHFUeVa9V0AYsGymVhjLheGZFOzkCl58C77JYIagAWSUClo8ClnycAKlZrFoJgU0AOwKWtQKWTlxEXNECmcsCmWRcyl0HGQKcmznCOp0CnBYCn5sCnriKAB0PMSoPAp3xAp6SALU9YTRh7wKe0wKgbgGpAp6fHwKeTqVjyGQnJSsCJ68CJn4CoPsCoEwCot0CocQCpi8Cpc4Cp/8AfQKn8mh8aLEAA0lqHGrRAqzjAqyuAq1nAq0CAlcdAlXcArHh1wMfTmyXArK9DQKy6Bds4G1jbUhfAyXNArZcOz9ukAMpRQK4XgK5RxUCuSp3cDZw4QK9GQK72nCWAzIRAr6IcgIDM3ECvhpzInNPAsPLAsMEc4J0SzVFdOADPKcDPJoDPb8CxXwCxkcCxhCJAshpUQLIRALJTwLJLgJknQLd0nh5YXiueSVL0AMYo2cCAmH0GfOVJHsLXpJeuxECz2sCz2wvS1PS8xOfAMatAs9zASnqA04SfksFAtwnAtuKAtJPA1JcA1NfAQEDVYyAiT8AyxbtYEWCHILTgs6DjQLaxwLZ3oQQhEmnPAOGpQAvA2QOhnFZ+QBVAt9lAt64c3cC4i/tFAHzMCcB9JsB8tKHAuvzAulweQLq+QLq5AD5RwG5Au6JAuuclqqXAwLuPwOF4Jh5cOBxoQLzAwBpA44WmZMC9xMDkW4DkocC95gC+dkC+GaaHJqruzebHgOdgwL++gEbADmfHJ+zAwWNA6ZqA6bZANHFAwZqoYiiBQkDDEkCwAA/AwDhQRdTARHzA2sHl2cFAJMtK7evvdsBiZkUfxEEOQH7KQUhDp0JnwCS/SlXxQL3AZ0AtwW5AG8LbUEuFCaNLgFDAYD8AbUmAHUDDgRtACwCFgyhAAAKAj0CagPdA34EkQEgRQUhfAoABQBEABMANhICdwEABdUDa+8KxQIA9wqfJ7+xt+UBkSFBQgHpFH8RNMCJAAQAGwBaAkUChIsABjpTOpSNbQC4Oo860ACNOME63AClAOgAywE6gTo7Ofw5+Tt2iTpbO56JOm85GAFWATMBbAUvNV01njWtNWY1dTW2NcU1gjWRNdI14TWeNa017jX9NbI1wTYCNhE1xjXVNhY2JzXeNe02LjY9Ni41LSE2OjY9Njw2yTcIBJA8VzY4Nt03IDcPNsogN4k3MAoEsDxnNiQ3GTdsOo03IULUQwdC4EMLHA8PCZsobShRVQYA6X8A6bABFCnXAukBowC9BbcAbwNzBL8MDAMMAQgDAAkKCwsLCQoGBAVVBI/DvwDz9b29kaUCb0QtsRTNLt4eGBcSHAMZFhYZEhYEARAEBUEcQRxBHEEcQRxBHEEaQRxBHEFCSTxBPElISUhBNkM2QTYbNklISVmBVIgBFLWZAu0BhQCjBcEAbykBvwGJAaQcEZ0ePCklMAAhMvAIMAL54gC7Bm8EescjzQMpARQpKgDUABavAj626xQAJP0A3etzuf4NNRA7efy2Z9NQrCnC0OSyANz5BBIbJ5IFDR6miIavYS6tprjjmuKebxm5C74Q225X1pkaYYPb6f1DK4k3xMEBb9S2WMjEibTNWhsRJIA+vwNVEiXTE5iXs/wezV66oFLfp9NZGYW+Gk19J2+bCT6Ye2w6LDYdgzKMUabk595eLBCXANz9HUpWbATq9vqXVx9XDg+Pc9Xp4+bsS005SVM/BJBM4687WUuf+Uj9dEi8aDNaPxtpbDxcG1THTImUMZq4UCaaNYpsVqraNyKLJXDYsFZ/5jl7bLRtO88t7P3xZaAxhb5OdPMXqsSkp1WCieG8jXm1U99+blvLlXzPCS+M93VnJCiK+09LfaSaBAVBomyDgJua8dfUzR7ga34IvR2Nvj+A9heJ6lsl1KG4NkI1032Cnff1m1wof2B9oHJK4bi6JkEdSqeNeiuo6QoZZincoc73/TH9SXF8sCE7XyuYyW8WSgbGFCjPV0ihLKhdPs08Tx82fYAkLLc4I2wdl4apY7GU5lHRFzRWJep7Ww3wbeA3qmd59/86P4xuNaqDpygXt6M85glSBHOCGgJDnt+pN9bK7HApMguX6+06RZNjzVmcZJ+wcUrJ9//bpRNxNuKpNl9uFds+S9tdx7LaM5ZkIrPj6nIU9mnbFtVbs9s/uLgl8MVczAwet+iOEzzBlYW7RCMgE6gyNLeq6+1tIx4dpgZnd0DksJS5f+JNDpwwcPNXaaVspq1fbQajOrJgK0ofKtJ1Ne90L6VO4MOl5S886p7u6xo7OLjG8TGL+HU1JXGJgppg4nNbNJ5nlzSpuPYy21JUEcUA94PoFiZfjZue+QnyQ80ekOuZVkxx4g+cvhJfHgNl4hy1/a6+RKcKlar/J29y//EztlbVPHVUeQ1zX86eQVAjR/M3dA9w4W8LfaXp4EgM85wOWasli837PzVMOnsLzR+k3o75/lRPAJSE1xAKQzEi5v10ke+VBvRt1cwQRMd+U5mLCTGVd6XiZtgBG5cDi0w22GKcVNvHiu5LQbZEDVtz0onn7k5+heuKXVsZtSzilkLRAUmjMXEMB3J9YC50XBxPiz53SC+EhnPl9WsKCv92SM/OFFIMJZYfl0WW8tIO3UxYcwdMAj7FSmgrsZ2aAZO03BOhP1bNNZItyXYQFTpC3SG1VuPDqH9GkiCDmE+JwxyIVSO5siDErAOpEXFgjy6PQtOVDj+s6e1r8heWVvmZnTciuf4EiNZzCAd7SOMhXERIOlsHIMG399i9aLTy3m2hRLZjJVDNLS53iGIK11dPqQt0zBDyg6qc7YqkDm2M5Ve6dCWCaCbTXX2rToaIgz6+zh4lYUi/+6nqcFMAkQJKHYLK0wYk5N9szV6xihDbDDFr45lN1K4aCXBq/FitPSud9gLt5ZVn+ZqGX7cwm2z5EGMgfFpIFyhGGuDPmso6TItTMwny+7uPnLCf4W6goFQFV0oQSsc9VfMmVLcLr6ZetDZbaSFTLqnSO/bIPjA3/zAUoqgGFAEQS4IhuMzEp2I3jJzbzkk/IEmyax+rhZTwd6f+CGtwPixu8IvzACquPWPREu9ZvGkUzpRwvRRuaNN6cr0W1wWits9ICdYJ7ltbgMiSL3sTPeufgNcVqMVWFkCPDH4jG2jA0XcVgQj62Cb29v9f/z/+2KbYvIv/zzjpQAPkliaVDzNrW57TZ/ZOyZD0nlfMmAIBIAGAI0D3k/mdN4xr9v85ZbZbbqfH2jGd5hUqNZWwl5SPfoGmfElmazUIeNL1j/mkF7VNAzTq4jNt8JoQ11NQOcmhprXoxSxfRGJ9LDEOAQ+dmxAQH90iti9e2u/MoeuaGcDTHoC+xsmEeWmxEKefQuIzHbpw5Tc5cEocboAD09oipWQhtTO1wivf/O+DRe2rpl/E9wlrzBorjJsOeG1B/XPW4EaJEFdNlECEZga5ZoGRHXgYouGRuVkm8tDESiEyFNo+3s5M5puSdTyUL2llnINVHEt91XUNW4ewdMgJ4boJfEyt/iY5WXqbA+A2Fkt5Z0lutiWhe9nZIyIUjyXDC3UsaG1t+eNx6z4W/OYoTB7A6x+dNSTOi9AInctbESqm5gvOLww7OWXPrmHwVZasrl4eD113pm+JtT7JVOvnCXqdzzdTRHgJ0PiGTFYW5Gvt9R9LD6Lzfs0v/TZZHSmyVNq7viIHE6DBK7Qp07Iz55EM8SYtQvZf/obBniTWi5C2/ovHfw4VndkE5XYdjOhCMRjDeOEfXeN/CwfGduiUIfsoFeUxXeQXba7c7972XNv8w+dTjjUM0QeNAReW+J014dKAD/McQYXT7c0GQPIkn3Ll6R7gGjuiQoZD0TEeEqQpKoZ15g/0OPQI17QiSv9AUROa/V/TQN3dvLArec3RrsYlvBm1b8LWzltdugsC50lNKYLEp2a+ZZYqPejULRlOJh5zj/LVMyTDvwKhMxxwuDkxJ1QpoNI0OTWLom4Z71SNzI9TV1iXJrIu9Wcnd+MCaAw8o1jSXd94YU/1gnkrC9BUEOtQvEIQ7g0i6h+KL2JKk8Ydl7HruvgWMSAmNe+LshGhV4qnWHhO9/RIPQzY1tHRj2VqOyNsDpK0cww+56AdDC4gsWwY0XxoucIWIqs/GcwnWqlaT0KPr8mbK5U94/301i1WLt4YINTVvCFBrFZbIbY8eycOdeJ2teD5IfPLCRg7jjcFTwlMFNl9zdh/o3E/hHPwj7BWg0MU09pPrBLbrCgm54A6H+I6v27+jL5gkjWg/iYdks9jbfVP5y/n0dlgWEMlKasl7JvFZd56LfybW1eeaVO0gxTfXZwD8G4SI116yx7UKVRgui6Ya1YpixqXeNLc8IxtAwCU5IhwQgn+NqHnRaDv61CxKhOq4pOX7M6pkA+Pmpd4j1vn6ACUALoLLc4vpXci8VidLxzm7qFBe7s+quuJs6ETYmnpgS3LwSZxPIltgBDXz8M1k/W2ySNv2f9/NPhxLGK2D21dkHeSGmenRT3Yqcdl0m/h3OYr8V+lXNYGf8aCCpd4bWjE4QIPj7vUKN4Nrfs7ML6Y2OyS830JCnofg/k7lpFpt4SqZc5HGg1HCOrHvOdC8bP6FGDbE/VV0mX4IakzbdS/op+Kt3G24/8QbBV7y86sGSQ/vZzU8FXs7u6jIvwchsEP2BpIhW3G8uWNwa3HmjfH/ZjhhCWvluAcF+nMf14ClKg5hGgtPLJ98ueNAkc5Hs2WZlk2QHvfreCK1CCGO6nMZVSb99VM/ajr8WHTte9JSmkXq/i/U943HEbdzW6Re/S88dKgg8pGOLlAeNiqrcLkUR3/aClFpMXcOUP3rmETcWSfMXZE3TUOi8i+fqRnTYLflVx/Vb/6GJ7eIRZUA6k3RYR3iFSK9c4iDdNwJuZL2FKz/IK5VimcNWEqdXjSoxSgmF0UPlDoUlNrPcM7ftmA8Y9gKiqKEHuWN+AZRIwtVSxye2Kf8rM3lhJ5XcBXU9n4v0Oy1RU2M+4qM8AQPVwse8ErNSob5oFPWxuqZnVzo1qB/IBxkM3EVUKFUUlO3e51259GgNcJbCmlvrdjtoTW7rChm1wyCKzpCTwozUUEOIcWLneRLgMXh+SjGSFkAllzbGS5HK7LlfCMRNRDSvbQPjcXaenNYxCvu2Qyznz6StuxVj66SgI0T8B6/sfHAJYZaZ78thjOSIFumNWLQbeZixDCCC+v0YBtkxiBB3jefHqZ/dFHU+crbj6OvS1x/JDD7vlm7zOVPwpUC01nhxZuY/63E7g";const bh=44032,xp=4352,Rp=4449,Ip=4519,aO=19,cO=21,zu=28,Sp=cO*zu,Lee=aO*Sp,Uee=bh+Lee,Dee=xp+aO,$ee=Rp+cO,Fee=Ip+zu;function _h(r){return r>>24&255}function uO(r){return r&16777215}let ww,lO,bw,kp;function Hee(){let r=rO(Mee);ww=new Map(nO(r).flatMap((e,t)=>e.map(n=>[n,t+1<<24]))),lO=new Set(mh(r)),bw=new Map,kp=new Map;for(let[e,t]of iO(r)){if(!lO.has(e)&&t.length==2){let[n,i]=t,s=kp.get(n);s||(s=new Map,kp.set(n,s)),s.set(i,e)}bw.set(e,t.reverse())}}function fO(r){return r>=bh&&r<Uee}function zee(r,e){if(r>=xp&&r<Dee&&e>=Rp&&e<$ee)return bh+(r-xp)*Sp+(e-Rp)*zu;if(fO(r)&&e>Ip&&e<Fee&&(r-bh)%zu==0)return r+(e-Ip);{let t=kp.get(r);return t&&(t=t.get(e),t)?t:-1}}function hO(r){ww||Hee();let e=[],t=[],n=!1;function i(s){let o=ww.get(s);o&&(n=!0,s|=o),e.push(s)}for(let s of r)for(;;){if(s<128)e.push(s);else if(fO(s)){let o=s-bh,a=o/Sp|0,u=o%Sp/zu|0,l=o%zu;i(xp+a),i(Rp+u),l>0&&i(Ip+l)}else{let o=bw.get(s);o?t.push(...o):i(s)}if(!t.length)break;s=t.pop()}if(n&&e.length>1){let s=_h(e[0]);for(let o=1;o<e.length;o++){let a=_h(e[o]);if(a==0||s<=a){s=a;continue}let u=o-1;for(;;){let l=e[u+1];if(e[u+1]=e[u],e[u]=l,!u||(s=_h(e[--u]),s<=a))break}s=_h(e[o])}}return e}function Gee(r){let e=[],t=[],n=-1,i=0;for(let s of r){let o=_h(s),a=uO(s);if(n==-1)o==0?n=a:e.push(a);else if(i>0&&i>=o)o==0?(e.push(n,...t),t.length=0,n=a):t.push(a),i=o;else{let u=zee(n,a);u>=0?n=u:i==0&&o==0?(e.push(n),n=a):(t.push(a),i=o)}}return n>=0&&e.push(n,...t),e}function dO(r){return hO(r).map(uO)}function Kee(r){return Gee(hO(r))}const pO=45,gO=".",yO=65039,mO=1,Tp=r=>Array.from(r);function Ah(r,e){return r.P.has(e)||r.Q.has(e)}class jee extends Array{get is_emoji(){return!0}}let _w,wO,Ya,Aw,bO,Gu,vw,Ku,Ja,_O,Ew;function xw(){if(_w)return;let r=rO(Eee);const e=()=>mh(r),t=()=>new Set(e()),n=(h,g)=>g.forEach(b=>h.add(b));_w=new Map(iO(r)),wO=t(),Ya=e(),Aw=new Set(e().map(h=>Ya[h])),Ya=new Set(Ya),bO=t(),t();let i=nO(r),s=r();const o=()=>{let h=new Set;return e().forEach(g=>n(h,i[g])),n(h,e()),h};Gu=wh(h=>{let g=wh(r).map(b=>b+96);if(g.length){let b=h>=s;g[0]-=32,g=Hu(g),b&&(g=`Restricted[${g}]`);let w=o(),I=o(),S=!r();return{N:g,P:w,Q:I,M:S,R:b}}}),vw=t(),Ku=new Map;let a=e().concat(Tp(vw)).sort((h,g)=>h-g);a.forEach((h,g)=>{let b=r(),w=a[g]=b?a[g-b]:{V:[],M:new Map};w.V.push(h),vw.has(h)||Ku.set(h,w)});for(let{V:h,M:g}of new Set(Ku.values())){let b=[];for(let I of h){let S=Gu.filter(C=>Ah(C,I)),x=b.find(({G:C})=>S.some(H=>C.has(H)));x||(x={G:new Set,V:[]},b.push(x)),x.V.push(I),n(x.G,S)}let w=b.flatMap(I=>Tp(I.G));for(let{G:I,V:S}of b){let x=new Set(w.filter(C=>!I.has(C)));for(let C of S)g.set(C,x)}}Ja=new Set;let u=new Set;const l=h=>Ja.has(h)?u.add(h):Ja.add(h);for(let h of Gu){for(let g of h.P)l(g);for(let g of h.Q)l(g)}for(let h of Ja)!Ku.has(h)&&!u.has(h)&&Ku.set(h,mO);n(Ja,dO(Ja)),_O=Nee(r).map(h=>jee.from(h)).sort(Pee),Ew=new Map;for(let h of _O){let g=[Ew];for(let b of h){let w=g.map(I=>{let S=I.get(b);return S||(S=new Map,I.set(b,S)),S});b===yO?g.push(...w):g=w}for(let b of g)b.V=h}}function Rw(r){return(AO(r)?"":`${Iw(Op([r]))} `)+oO(r)}function Iw(r){return`"${r}"`}function Wee(r){if(r.length>=4&&r[2]==pO&&r[3]==pO)throw new Error(`invalid label extension: "${Hu(r.slice(0,4))}"`)}function Vee(r){for(let t=r.lastIndexOf(95);t>0;)if(r[--t]!==95)throw new Error("underscore allowed only at start")}function qee(r){let e=r[0],t=eO.get(e);if(t)throw vh(`leading ${t}`);let n=r.length,i=-1;for(let s=1;s<n;s++){e=r[s];let o=eO.get(e);if(o){if(i==s)throw vh(`${t} + ${o}`);i=s+1,t=o}}if(i==n)throw vh(`trailing ${t}`)}function Op(r,e=1/0,t=oO){let n=[];Zee(r[0])&&n.push("◌"),r.length>e&&(e>>=1,r=[...r.slice(0,e),8230,...r.slice(-e)]);let i=0,s=r.length;for(let o=0;o<s;o++){let a=r[o];AO(a)&&(n.push(Hu(r.slice(i,o))),n.push(t(a)),i=o+1)}return n.push(Hu(r.slice(i,s))),n.join("")}function Zee(r){return xw(),Ya.has(r)}function AO(r){return xw(),bO.has(r)}function Qee(r){return ete(Yee(r,Kee,nte))}function Yee(r,e,t){if(!r)return[];xw();let n=0;return r.split(gO).map(i=>{let s=Bee(i),o={input:s,offset:n};n+=s.length+1;try{let a=o.tokens=rte(s,e,t),u=a.length,l;if(!u)throw new Error("empty label");let h=o.output=a.flat();if(Vee(h),!(o.emoji=u>1||a[0].is_emoji)&&h.every(b=>b<128))Wee(h),l="ASCII";else{let b=a.flatMap(w=>w.is_emoji?[]:w);if(!b.length)l="Emoji";else{if(Ya.has(h[0]))throw vh("leading combining mark");for(let S=1;S<u;S++){let x=a[S];if(!x.is_emoji&&Ya.has(x[0]))throw vh(`emoji + combining mark: "${Hu(a[S-1])} + ${Op([x[0]])}"`)}qee(h);let w=Tp(new Set(b)),[I]=Xee(w);tte(I,b),Jee(I,w),l=I.N}}o.type=l}catch(a){o.error=a}return o})}function Jee(r,e){let t,n=[];for(let i of e){let s=Ku.get(i);if(s===mO)return;if(s){let o=s.M.get(i);if(t=t?t.filter(a=>o.has(a)):Tp(o),!t.length)return}else n.push(i)}if(t){for(let i of t)if(n.every(s=>Ah(i,s)))throw new Error(`whole-script confusable: ${r.N}/${i.N}`)}}function Xee(r){let e=Gu;for(let t of r){let n=e.filter(i=>Ah(i,t));if(!n.length)throw Gu.some(i=>Ah(i,t))?EO(e[0],t):vO(t);if(e=n,n.length==1)break}return e}function ete(r){return r.map(({input:e,error:t,output:n})=>{if(t){let i=t.message;throw new Error(r.length==1?i:`Invalid label ${Iw(Op(e,63))}: ${i}`)}return Hu(n)}).join(gO)}function vO(r){return new Error(`disallowed character: ${Rw(r)}`)}function EO(r,e){let t=Rw(e),n=Gu.find(i=>i.P.has(e));return n&&(t=`${n.N} ${t}`),new Error(`illegal mixture: ${r.N} + ${t}`)}function vh(r){return new Error(`illegal placement: ${r}`)}function tte(r,e){for(let t of e)if(!Ah(r,t))throw EO(r,t);if(r.M){let t=dO(e);for(let n=1,i=t.length;n<i;n++)if(Aw.has(t[n])){let s=n+1;for(let o;s<i&&Aw.has(o=t[s]);s++)for(let a=n;a<s;a++)if(t[a]==o)throw new Error(`duplicate non-spacing marks: ${Rw(o)}`);if(s-n>tO)throw new Error(`excessive non-spacing marks: ${Iw(Op(t.slice(n-1,s)))} (${s-n}/${tO})`);n=s}}}function rte(r,e,t){let n=[],i=[];for(r=r.slice().reverse();r.length;){let s=ite(r);if(s)i.length&&(n.push(e(i)),i=[]),n.push(t(s));else{let o=r.pop();if(Ja.has(o))i.push(o);else{let a=_w.get(o);if(a)i.push(...a);else if(!wO.has(o))throw vO(o)}}}return i.length&&n.push(e(i)),n}function nte(r){return r.filter(e=>e!=yO)}function ite(r,e){let t=Ew,n,i=r.length;for(;i&&(t=t.get(r[--i]),!!t);){let{V:s}=t;s&&(n=s,r.length=i)}return n}const xO=new Uint8Array(32);xO.fill(0);function RO(r){return q(r.length!==0,"invalid ENS name; empty component","comp",r),r}function IO(r){const e=Ls(ste(r)),t=[];if(r.length===0)return t;let n=0;for(let i=0;i<e.length;i++)e[i]===46&&(t.push(RO(e.slice(n,i))),n=i+1);return q(n<e.length,"invalid ENS name; empty component","name",r),t.push(RO(e.slice(n))),t}function ste(r){try{if(r.length===0)throw new Error("empty label");return Qee(r)}catch(e){q(!1,`invalid ENS name (${e.message})`,"name",r)}}function Sw(r){q(typeof r=="string","invalid ENS name; not a string","name",r),q(r.length,"invalid ENS name (empty label)","name",r);let e=xO;const t=IO(r);for(;t.length;)e=Nr(xr([e,Nr(t.pop())]));return Ce(e)}function ote(r,e){const t=e;return q(t<=255,"DNS encoded label cannot exceed 255","length",t),Ce(xr(IO(r).map(n=>{q(n.length<=t,`label ${JSON.stringify(r)} exceeds ${t} bytes`,"name",r);const i=new Uint8Array(n.length+1);return i.set(n,1),i[0]=i.length-1,i})))+"00"}function kw(r,e){return{address:Mt(r),storageKeys:e.map((t,n)=>(q(Gt(t,32),"invalid slot",`storageKeys[${n}]`,t),t.toLowerCase()))}}function Xa(r){if(Array.isArray(r))return r.map((t,n)=>Array.isArray(t)?(q(t.length===2,"invalid slot set",`value[${n}]`,t),kw(t[0],t[1])):(q(t!=null&&typeof t=="object","invalid address-slot set","value",r),kw(t.address,t.storageKeys)));q(r!=null&&typeof r=="object","invalid access list","value",r);const e=Object.keys(r).map(t=>{const n=r[t].reduce((i,s)=>(i[s]=!0,i),{});return kw(t,Object.keys(n).sort())});return e.sort((t,n)=>t.address.localeCompare(n.address)),e}function ate(r){let e;return typeof r=="string"?e=yh.computePublicKey(r,!1):e=r.publicKey,Mt(Nr("0x"+e.substring(4)).substring(26))}function cte(r,e){return ate(yh.recoverPublicKey(r,e))}const Fr=BigInt(0),ute=BigInt(2),lte=BigInt(27),fte=BigInt(28),hte=BigInt(35),dte=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),Tw=4096*32;function SO(r,e){let t=r.toString(16);for(;t.length<2;)t="0"+t;return t+=Lu(e).substring(4),"0x"+t}function Np(r){return r==="0x"?null:Mt(r)}function Ow(r,e){try{return Xa(r)}catch(t){q(!1,t.message,e,r)}}function Eh(r,e){return r==="0x"?0:at(r,e)}function Ir(r,e){if(r==="0x")return Fr;const t=Le(r,e);return q(t<=dte,"value exceeds uint size",e,t),t}function qt(r,e){const t=Le(r,"value"),n=bn(t);return q(n.length<=32,"value too large",`tx.${e}`,t),n}function Nw(r){return Xa(r).map(e=>[e.address,e.storageKeys])}function pte(r,e){q(Array.isArray(r),`invalid ${e}`,"value",r);for(let t=0;t<r.length;t++)q(Gt(r[t],32),"invalid ${ param } hash",`value[${t}]`,r[t]);return r}function gte(r){const e=gp(r);q(Array.isArray(e)&&(e.length===9||e.length===6),"invalid field count for legacy transaction","data",r);const t={type:0,nonce:Eh(e[0],"nonce"),gasPrice:Ir(e[1],"gasPrice"),gasLimit:Ir(e[2],"gasLimit"),to:Np(e[3]),value:Ir(e[4],"value"),data:Ce(e[5]),chainId:Fr};if(e.length===6)return t;const n=Ir(e[6],"v"),i=Ir(e[7],"r"),s=Ir(e[8],"s");if(i===Fr&&s===Fr)t.chainId=n;else{let o=(n-hte)/ute;o<Fr&&(o=Fr),t.chainId=o,q(o!==Fr||n===lte||n===fte,"non-canonical legacy v","v",e[6]),t.signature=Si.from({r:Ka(e[7],32),s:Ka(e[8],32),v:n})}return t}function yte(r,e){const t=[qt(r.nonce,"nonce"),qt(r.gasPrice||0,"gasPrice"),qt(r.gasLimit,"gasLimit"),r.to||"0x",qt(r.value,"value"),r.data];let n=Fr;if(r.chainId!=Fr)n=Le(r.chainId,"tx.chainId"),q(!e||e.networkV==null||e.legacyChainId===n,"tx.chainId/sig.v mismatch","sig",e);else if(r.signature){const s=r.signature.legacyChainId;s!=null&&(n=s)}if(!e)return n!==Fr&&(t.push(bn(n)),t.push("0x"),t.push("0x")),ja(t);let i=BigInt(27+e.yParity);return n!==Fr?i=Si.getChainIdV(n,e.v):BigInt(e.v)!==i&&q(!1,"tx.chainId/sig.v mismatch","sig",e),t.push(bn(i)),t.push(bn(e.r)),t.push(bn(e.s)),ja(t)}function Cw(r,e){let t;try{if(t=Eh(e[0],"yParity"),t!==0&&t!==1)throw new Error("bad yParity")}catch{q(!1,"invalid yParity","yParity",e[0])}const n=Ka(e[1],32),i=Ka(e[2],32),s=Si.from({r:n,s:i,yParity:t});r.signature=s}function mte(r){const e=gp(_t(r).slice(1));q(Array.isArray(e)&&(e.length===9||e.length===12),"invalid field count for transaction type: 2","data",Ce(r));const t={type:2,chainId:Ir(e[0],"chainId"),nonce:Eh(e[1],"nonce"),maxPriorityFeePerGas:Ir(e[2],"maxPriorityFeePerGas"),maxFeePerGas:Ir(e[3],"maxFeePerGas"),gasPrice:null,gasLimit:Ir(e[4],"gasLimit"),to:Np(e[5]),value:Ir(e[6],"value"),data:Ce(e[7]),accessList:Ow(e[8],"accessList")};return e.length===9||Cw(t,e.slice(9)),t}function wte(r,e){const t=[qt(r.chainId,"chainId"),qt(r.nonce,"nonce"),qt(r.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),qt(r.maxFeePerGas||0,"maxFeePerGas"),qt(r.gasLimit,"gasLimit"),r.to||"0x",qt(r.value,"value"),r.data,Nw(r.accessList||[])];return e&&(t.push(qt(e.yParity,"yParity")),t.push(bn(e.r)),t.push(bn(e.s))),xr(["0x02",ja(t)])}function bte(r){const e=gp(_t(r).slice(1));q(Array.isArray(e)&&(e.length===8||e.length===11),"invalid field count for transaction type: 1","data",Ce(r));const t={type:1,chainId:Ir(e[0],"chainId"),nonce:Eh(e[1],"nonce"),gasPrice:Ir(e[2],"gasPrice"),gasLimit:Ir(e[3],"gasLimit"),to:Np(e[4]),value:Ir(e[5],"value"),data:Ce(e[6]),accessList:Ow(e[7],"accessList")};return e.length===8||Cw(t,e.slice(8)),t}function _te(r,e){const t=[qt(r.chainId,"chainId"),qt(r.nonce,"nonce"),qt(r.gasPrice||0,"gasPrice"),qt(r.gasLimit,"gasLimit"),r.to||"0x",qt(r.value,"value"),r.data,Nw(r.accessList||[])];return e&&(t.push(qt(e.yParity,"recoveryParam")),t.push(bn(e.r)),t.push(bn(e.s))),xr(["0x01",ja(t)])}function Ate(r){let e=gp(_t(r).slice(1)),t="3",n=null;if(e.length===4&&Array.isArray(e[0])){t="3 (network format)";const s=e[1],o=e[2],a=e[3];q(Array.isArray(s),"invalid network format: blobs not an array","fields[1]",s),q(Array.isArray(o),"invalid network format: commitments not an array","fields[2]",o),q(Array.isArray(a),"invalid network format: proofs not an array","fields[3]",a),q(s.length===o.length,"invalid network format: blobs/commitments length mismatch","fields",e),q(s.length===a.length,"invalid network format: blobs/proofs length mismatch","fields",e),n=[];for(let u=0;u<e[1].length;u++)n.push({data:s[u],commitment:o[u],proof:a[u]});e=e[0]}q(Array.isArray(e)&&(e.length===11||e.length===14),`invalid field count for transaction type: ${t}`,"data",Ce(r));const i={type:3,chainId:Ir(e[0],"chainId"),nonce:Eh(e[1],"nonce"),maxPriorityFeePerGas:Ir(e[2],"maxPriorityFeePerGas"),maxFeePerGas:Ir(e[3],"maxFeePerGas"),gasPrice:null,gasLimit:Ir(e[4],"gasLimit"),to:Np(e[5]),value:Ir(e[6],"value"),data:Ce(e[7]),accessList:Ow(e[8],"accessList"),maxFeePerBlobGas:Ir(e[9],"maxFeePerBlobGas"),blobVersionedHashes:e[10]};n&&(i.blobs=n),q(i.to!=null,`invalid address for transaction type: ${t}`,"data",r),q(Array.isArray(i.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",r);for(let s=0;s<i.blobVersionedHashes.length;s++)q(Gt(i.blobVersionedHashes[s],32),`invalid blobVersionedHash at index ${s}: must be length 32`,"data",r);return e.length===11||Cw(i,e.slice(11)),i}function vte(r,e,t){const n=[qt(r.chainId,"chainId"),qt(r.nonce,"nonce"),qt(r.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),qt(r.maxFeePerGas||0,"maxFeePerGas"),qt(r.gasLimit,"gasLimit"),r.to||gh,qt(r.value,"value"),r.data,Nw(r.accessList||[]),qt(r.maxFeePerBlobGas||0,"maxFeePerBlobGas"),pte(r.blobVersionedHashes||[],"blobVersionedHashes")];return e&&(n.push(qt(e.yParity,"yParity")),n.push(bn(e.r)),n.push(bn(e.s)),t)?xr(["0x03",ja([n,t.map(i=>i.data),t.map(i=>i.commitment),t.map(i=>i.proof)])]):xr(["0x03",ja(n)])}const Ys=class Ys{constructor(){se(this,bl);se(this,cs);se(this,cl);se(this,ul);se(this,ll);se(this,fl);se(this,hl);se(this,dl);se(this,pl);se(this,gl);se(this,yl);se(this,ml);se(this,wl);se(this,wc);se(this,zo);se(this,Qs);se(this,Go);F(this,cs,null),F(this,cl,null),F(this,ll,0),F(this,fl,Fr),F(this,hl,null),F(this,dl,null),F(this,pl,null),F(this,ul,"0x"),F(this,gl,Fr),F(this,yl,Fr),F(this,ml,null),F(this,wl,null),F(this,wc,null),F(this,zo,null),F(this,Go,null),F(this,Qs,null)}get type(){return T(this,cs)}set type(e){switch(e){case null:F(this,cs,null);break;case 0:case"legacy":F(this,cs,0);break;case 1:case"berlin":case"eip-2930":F(this,cs,1);break;case 2:case"london":case"eip-1559":F(this,cs,2);break;case 3:case"cancun":case"eip-4844":F(this,cs,3);break;default:q(!1,"unsupported transaction type","type",e)}}get typeName(){switch(this.type){case 0:return"legacy";case 1:return"eip-2930";case 2:return"eip-1559";case 3:return"eip-4844"}return null}get to(){const e=T(this,cl);return e==null&&this.type===3?gh:e}set to(e){F(this,cl,e==null?null:Mt(e))}get nonce(){return T(this,ll)}set nonce(e){F(this,ll,at(e,"value"))}get gasLimit(){return T(this,fl)}set gasLimit(e){F(this,fl,Le(e))}get gasPrice(){const e=T(this,hl);return e==null&&(this.type===0||this.type===1)?Fr:e}set gasPrice(e){F(this,hl,e==null?null:Le(e,"gasPrice"))}get maxPriorityFeePerGas(){const e=T(this,dl);return e??(this.type===2||this.type===3?Fr:null)}set maxPriorityFeePerGas(e){F(this,dl,e==null?null:Le(e,"maxPriorityFeePerGas"))}get maxFeePerGas(){const e=T(this,pl);return e??(this.type===2||this.type===3?Fr:null)}set maxFeePerGas(e){F(this,pl,e==null?null:Le(e,"maxFeePerGas"))}get data(){return T(this,ul)}set data(e){F(this,ul,Ce(e))}get value(){return T(this,gl)}set value(e){F(this,gl,Le(e,"value"))}get chainId(){return T(this,yl)}set chainId(e){F(this,yl,Le(e))}get signature(){return T(this,ml)||null}set signature(e){F(this,ml,e==null?null:Si.from(e))}get accessList(){const e=T(this,wl)||null;return e??(this.type===1||this.type===2||this.type===3?[]:null)}set accessList(e){F(this,wl,e==null?null:Xa(e))}get maxFeePerBlobGas(){const e=T(this,wc);return e==null&&this.type===3?Fr:e}set maxFeePerBlobGas(e){F(this,wc,e==null?null:Le(e,"maxFeePerBlobGas"))}get blobVersionedHashes(){let e=T(this,zo);return e==null&&this.type===3?[]:e}set blobVersionedHashes(e){if(e!=null){q(Array.isArray(e),"blobVersionedHashes must be an Array","value",e),e=e.slice();for(let t=0;t<e.length;t++)q(Gt(e[t],32),"invalid blobVersionedHash",`value[${t}]`,e[t])}F(this,zo,e)}get blobs(){return T(this,Go)==null?null:T(this,Go).map(e=>Object.assign({},e))}set blobs(e){if(e==null){F(this,Go,null);return}const t=[],n=[];for(let i=0;i<e.length;i++){const s=e[i];if(W1(s)){ge(T(this,Qs),"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let o=_t(s);if(q(o.length<=Tw,"blob is too large",`blobs[${i}]`,s),o.length!==Tw){const l=new Uint8Array(Tw);l.set(o),o=l}const a=T(this,Qs).blobToKzgCommitment(o),u=Ce(T(this,Qs).computeBlobKzgProof(o,a));t.push({data:Ce(o),commitment:Ce(a),proof:u}),n.push(SO(1,a))}else{const o=Ce(s.commitment);t.push({data:Ce(s.data),commitment:o,proof:Ce(s.proof)}),n.push(SO(1,o))}}F(this,Go,t),F(this,zo,n)}get kzg(){return T(this,Qs)}set kzg(e){F(this,Qs,e)}get hash(){return this.signature==null?null:Nr(Ee(this,bl,wg).call(this,!0,!1))}get unsignedHash(){return Nr(this.unsignedSerialized)}get from(){return this.signature==null?null:cte(this.unsignedHash,this.signature)}get fromPublicKey(){return this.signature==null?null:yh.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return this.signature!=null}get serialized(){return Ee(this,bl,wg).call(this,!0,!0)}get unsignedSerialized(){return Ee(this,bl,wg).call(this,!1,!1)}inferType(){const e=this.inferTypes();return e.indexOf(2)>=0?2:e.pop()}inferTypes(){const e=this.gasPrice!=null,t=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,n=this.accessList!=null,i=T(this,wc)!=null||T(this,zo);this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null&&ge(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this}),ge(!t||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),ge(this.type!==0||!n,"legacy transaction cannot have accessList","BAD_DATA",{value:this});const s=[];return this.type!=null?s.push(this.type):t?s.push(2):e?(s.push(1),n||s.push(0)):n?(s.push(1),s.push(2)):(i&&this.to||(s.push(0),s.push(1),s.push(2)),s.push(3)),s.sort(),s}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return Ys.from(this)}toJSON(){const e=t=>t==null?null:t.toString();return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:e(this.gasLimit),gasPrice:e(this.gasPrice),maxPriorityFeePerGas:e(this.maxPriorityFeePerGas),maxFeePerGas:e(this.maxFeePerGas),value:e(this.value),chainId:e(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(e){if(e==null)return new Ys;if(typeof e=="string"){const n=_t(e);if(n[0]>=127)return Ys.from(gte(n));switch(n[0]){case 1:return Ys.from(bte(n));case 2:return Ys.from(mte(n));case 3:return Ys.from(Ate(n))}ge(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}const t=new Ys;return e.type!=null&&(t.type=e.type),e.to!=null&&(t.to=e.to),e.nonce!=null&&(t.nonce=e.nonce),e.gasLimit!=null&&(t.gasLimit=e.gasLimit),e.gasPrice!=null&&(t.gasPrice=e.gasPrice),e.maxPriorityFeePerGas!=null&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas),e.maxFeePerGas!=null&&(t.maxFeePerGas=e.maxFeePerGas),e.maxFeePerBlobGas!=null&&(t.maxFeePerBlobGas=e.maxFeePerBlobGas),e.data!=null&&(t.data=e.data),e.value!=null&&(t.value=e.value),e.chainId!=null&&(t.chainId=e.chainId),e.signature!=null&&(t.signature=Si.from(e.signature)),e.accessList!=null&&(t.accessList=e.accessList),e.blobVersionedHashes!=null&&(t.blobVersionedHashes=e.blobVersionedHashes),e.kzg!=null&&(t.kzg=e.kzg),e.blobs!=null&&(t.blobs=e.blobs),e.hash!=null&&(q(t.isSigned(),"unsigned transaction cannot define '.hash'","tx",e),q(t.hash===e.hash,"hash mismatch","tx",e)),e.from!=null&&(q(t.isSigned(),"unsigned transaction cannot define '.from'","tx",e),q(t.from.toLowerCase()===(e.from||"").toLowerCase(),"from mismatch","tx",e)),t}};cs=new WeakMap,cl=new WeakMap,ul=new WeakMap,ll=new WeakMap,fl=new WeakMap,hl=new WeakMap,dl=new WeakMap,pl=new WeakMap,gl=new WeakMap,yl=new WeakMap,ml=new WeakMap,wl=new WeakMap,wc=new WeakMap,zo=new WeakMap,Qs=new WeakMap,Go=new WeakMap,bl=new WeakSet,wg=function(e,t){ge(!e||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});const n=e?this.signature:null;switch(this.inferType()){case 0:return yte(this,n);case 1:return _te(this,n);case 2:return wte(this,n);case 3:return vte(this,n,t?this.blobs:null)}ge(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})};let Cp=Ys;const kO=new Uint8Array(32);kO.fill(0);const Ete=BigInt(-1),TO=BigInt(0),OO=BigInt(1),xte=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function Rte(r){const e=_t(r),t=e.length%32;return t?xr([e,kO.slice(t)]):Ce(e)}const Ite=No(OO,32),Ste=No(TO,32),NO={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},Bw=["name","version","chainId","verifyingContract","salt"];function CO(r){return function(e){return q(typeof e=="string",`invalid domain value for ${JSON.stringify(r)}`,`domain.${r}`,e),e}}const kte={name:CO("name"),version:CO("version"),chainId:function(r){const e=Le(r,"domain.chainId");return q(e>=0,"invalid chain ID","domain.chainId",r),Number.isSafeInteger(e)?Number(e):Bu(e)},verifyingContract:function(r){try{return Mt(r).toLowerCase()}catch{}q(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",r)},salt:function(r){const e=_t(r,"domain.salt");return q(e.length===32,'invalid domain value "salt"',"domain.salt",r),Ce(e)}};function Pw(r){{const e=r.match(/^(u?)int(\d+)$/);if(e){const t=e[1]==="",n=parseInt(e[2]);q(n%8===0&&n!==0&&n<=256&&e[2]===String(n),"invalid numeric width","type",r);const i=lh(xte,t?n-1:n),s=t?(i+OO)*Ete:TO;return function(o){const a=Le(o,"value");return q(a>=s&&a<=i,`value out-of-bounds for ${r}`,"value",a),No(t?Mk(a,256):a,32)}}}{const e=r.match(/^bytes(\d+)$/);if(e){const t=parseInt(e[1]);return q(t!==0&&t<=32&&e[1]===String(t),"invalid bytes width","type",r),function(n){const i=_t(n);return q(i.length===t,`invalid length for ${r}`,"value",n),Rte(n)}}}switch(r){case"address":return function(e){return Ka(Mt(e),32)};case"bool":return function(e){return e?Ite:Ste};case"bytes":return function(e){return Nr(e)};case"string":return function(e){return Qa(e)}}return null}function BO(r,e){return`${r}(${e.map(({name:t,type:n})=>n+" "+t).join(",")})`}function Bp(r){const e=r.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);return e?{base:e[1],index:e[2]+e[4],array:{base:e[1],prefix:e[1]+e[2],count:e[5]?parseInt(e[5]):-1}}:{base:r}}const li=class li{constructor(e){se(this,Qp);Q(this,"primaryType");se(this,Ph);se(this,Js);se(this,_l);F(this,Js,new Map),F(this,_l,new Map);const t=new Map,n=new Map,i=new Map,s={};Object.keys(e).forEach(u=>{s[u]=e[u].map(({name:l,type:h})=>{let{base:g,index:b}=Bp(h);return g==="int"&&!e.int&&(g="int256"),g==="uint"&&!e.uint&&(g="uint256"),{name:l,type:g+(b||"")}}),t.set(u,new Set),n.set(u,[]),i.set(u,new Set)}),F(this,Ph,JSON.stringify(s));for(const u in s){const l=new Set;for(const h of s[u]){q(!l.has(h.name),`duplicate variable name ${JSON.stringify(h.name)} in ${JSON.stringify(u)}`,"types",e),l.add(h.name);const g=Bp(h.type).base;q(g!==u,`circular type reference to ${JSON.stringify(g)}`,"types",e),!Pw(g)&&(q(n.has(g),`unknown type ${JSON.stringify(g)}`,"types",e),n.get(g).push(u),t.get(u).add(g))}}const o=Array.from(n.keys()).filter(u=>n.get(u).length===0);q(o.length!==0,"missing primary type","types",e),q(o.length===1,`ambiguous primary types or unused types: ${o.map(u=>JSON.stringify(u)).join(", ")}`,"types",e),ze(this,{primaryType:o[0]});function a(u,l){q(!l.has(u),`circular type reference to ${JSON.stringify(u)}`,"types",e),l.add(u);for(const h of t.get(u))if(n.has(h)){a(h,l);for(const g of l)i.get(g).add(h)}l.delete(u)}a(this.primaryType,new Set);for(const[u,l]of i){const h=Array.from(l);h.sort(),T(this,Js).set(u,BO(u,s[u])+h.map(g=>BO(g,s[g])).join(""))}}get types(){return JSON.parse(T(this,Ph))}getEncoder(e){let t=T(this,_l).get(e);return t||(t=Ee(this,Qp,WC).call(this,e),T(this,_l).set(e,t)),t}encodeType(e){const t=T(this,Js).get(e);return q(t,`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return Nr(this.encodeData(e,t))}encode(e){return this.encodeData(this.primaryType,e)}hash(e){return this.hashStruct(this.primaryType,e)}_visit(e,t,n){if(Pw(e))return n(e,t);const i=Bp(e).array;if(i)return q(i.count===-1||i.count===t.length,`array length mismatch; expected length ${i.count}`,"value",t),t.map(o=>this._visit(i.prefix,o,n));const s=this.types[e];if(s)return s.reduce((o,{name:a,type:u})=>(o[a]=this._visit(u,t[a],n),o),{});q(!1,`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new li(e)}static getPrimaryType(e){return li.from(e).primaryType}static hashStruct(e,t,n){return li.from(t).hashStruct(e,n)}static hashDomain(e){const t=[];for(const n in e){if(e[n]==null)continue;const i=NO[n];q(i,`invalid typed-data domain key: ${JSON.stringify(n)}`,"domain",e),t.push({name:n,type:i})}return t.sort((n,i)=>Bw.indexOf(n.name)-Bw.indexOf(i.name)),li.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,n){return xr(["0x1901",li.hashDomain(e),li.from(t).hash(n)])}static hash(e,t,n){return Nr(li.encode(e,t,n))}static async resolveNames(e,t,n,i){e=Object.assign({},e);for(const a in e)e[a]==null&&delete e[a];const s={};e.verifyingContract&&!Gt(e.verifyingContract,20)&&(s[e.verifyingContract]="0x");const o=li.from(t);o.visit(n,(a,u)=>(a==="address"&&!Gt(u,20)&&(s[u]="0x"),u));for(const a in s)s[a]=await i(a);return e.verifyingContract&&s[e.verifyingContract]&&(e.verifyingContract=s[e.verifyingContract]),n=o.visit(n,(a,u)=>a==="address"&&s[u]?s[u]:u),{domain:e,value:n}}static getPayload(e,t,n){li.hashDomain(e);const i={},s=[];Bw.forEach(u=>{const l=e[u];l!=null&&(i[u]=kte[u](l),s.push({name:u,type:NO[u]}))});const o=li.from(t);t=o.types;const a=Object.assign({},t);return q(a.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",t),a.EIP712Domain=s,o.encode(n),{types:a,domain:i,primaryType:o.primaryType,message:o.visit(n,(u,l)=>{if(u.match(/^bytes(\d*)/))return Ce(_t(l));if(u.match(/^u?int/))return Le(l).toString();switch(u){case"address":return l.toLowerCase();case"bool":return!!l;case"string":return q(typeof l=="string","invalid string","value",l),l}q(!1,"unsupported type","type",u)})}}};Ph=new WeakMap,Js=new WeakMap,_l=new WeakMap,Qp=new WeakSet,WC=function(e){{const i=Pw(e);if(i)return i}const t=Bp(e).array;if(t){const i=t.prefix,s=this.getEncoder(i);return o=>{q(t.count===-1||t.count===o.length,`array length mismatch; expected length ${t.count}`,"value",o);let a=o.map(s);return T(this,Js).has(i)&&(a=a.map(Nr)),Nr(xr(a))}}const n=this.types[e];if(n){const i=Qa(T(this,Js).get(e));return s=>{const o=n.map(({name:a,type:u})=>{const l=this.getEncoder(u)(s[a]);return T(this,Js).has(u)?Nr(l):l});return o.unshift(i),xr(o)}}q(!1,`unknown type: ${e}`,"type",e)};let Pp=li;function vn(r){const e=new Set;return r.forEach(t=>e.add(t)),Object.freeze(e)}const Tte=vn("external public payable override".split(" ")),PO="constant external internal payable private public pure view override",Ote=vn(PO.split(" ")),MO="constructor error event fallback function receive struct",LO=vn(MO.split(" ")),UO="calldata memory storage payable indexed",Nte=vn(UO.split(" ")),Cte=[MO,UO,"tuple returns",PO].join(" "),Bte=vn(Cte.split(" ")),Pte={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},Mte=new RegExp("^(\\s*)"),Lte=new RegExp("^([0-9]+)"),Ute=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),DO=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),$O=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$"),Yp=class Yp{constructor(e){se(this,Mh);se(this,Xr);se(this,Bi);F(this,Xr,0),F(this,Bi,e.slice())}get offset(){return T(this,Xr)}get length(){return T(this,Bi).length-T(this,Xr)}clone(){return new Yp(T(this,Bi))}reset(){F(this,Xr,0)}popKeyword(e){const t=this.peek();if(t.type!=="KEYWORD"||!e.has(t.text))throw new Error(`expected keyword ${t.text}`);return this.pop().text}popType(e){if(this.peek().type!==e){const t=this.peek();throw new Error(`expected ${e}; got ${t.type} ${JSON.stringify(t.text)}`)}return this.pop().text}popParen(){const e=this.peek();if(e.type!=="OPEN_PAREN")throw new Error("bad start");const t=Ee(this,Mh,I_).call(this,T(this,Xr)+1,e.match+1);return F(this,Xr,e.match+1),t}popParams(){const e=this.peek();if(e.type!=="OPEN_PAREN")throw new Error("bad start");const t=[];for(;T(this,Xr)<e.match-1;){const n=this.peek().linkNext;t.push(Ee(this,Mh,I_).call(this,T(this,Xr)+1,n)),F(this,Xr,n)}return F(this,Xr,e.match+1),t}peek(){if(T(this,Xr)>=T(this,Bi).length)throw new Error("out-of-bounds");return T(this,Bi)[T(this,Xr)]}peekKeyword(e){const t=this.peekType("KEYWORD");return t!=null&&e.has(t)?t:null}peekType(e){if(this.length===0)return null;const t=this.peek();return t.type===e?t.text:null}pop(){const e=this.peek();return bd(this,Xr)._++,e}toString(){const e=[];for(let t=T(this,Xr);t<T(this,Bi).length;t++){const n=T(this,Bi)[t];e.push(`${n.type}:${n.text}`)}return`<TokenString ${e.join(" ")}>`}};Xr=new WeakMap,Bi=new WeakMap,Mh=new WeakSet,I_=function(e=0,t=0){return new Yp(T(this,Bi).slice(e,t).map(n=>Object.freeze(Object.assign({},n,{match:n.match-e,linkBack:n.linkBack-e,linkNext:n.linkNext-e}))))};let ki=Yp;function Do(r){const e=[],t=o=>{const a=s<r.length?JSON.stringify(r[s]):"$EOI";throw new Error(`invalid token ${a} at ${s}: ${o}`)};let n=[],i=[],s=0;for(;s<r.length;){let o=r.substring(s),a=o.match(Mte);a&&(s+=a[1].length,o=r.substring(s));const u={depth:n.length,linkBack:-1,linkNext:-1,match:-1,type:"",text:"",offset:s,value:-1};e.push(u);let l=Pte[o[0]]||"";if(l){if(u.type=l,u.text=o[0],s++,l==="OPEN_PAREN")n.push(e.length-1),i.push(e.length-1);else if(l=="CLOSE_PAREN")n.length===0&&t("no matching open bracket"),u.match=n.pop(),e[u.match].match=e.length-1,u.depth--,u.linkBack=i.pop(),e[u.linkBack].linkNext=e.length-1;else if(l==="COMMA")u.linkBack=i.pop(),e[u.linkBack].linkNext=e.length-1,i.push(e.length-1);else if(l==="OPEN_BRACKET")u.type="BRACKET";else if(l==="CLOSE_BRACKET"){let h=e.pop().text;if(e.length>0&&e[e.length-1].type==="NUMBER"){const g=e.pop().text;h=g+h,e[e.length-1].value=at(g)}if(e.length===0||e[e.length-1].type!=="BRACKET")throw new Error("missing opening bracket");e[e.length-1].text+=h}continue}if(a=o.match(Ute),a){if(u.text=a[1],s+=u.text.length,Bte.has(u.text)){u.type="KEYWORD";continue}if(u.text.match($O)){u.type="TYPE";continue}u.type="ID";continue}if(a=o.match(Lte),a){u.text=a[1],u.type="NUMBER",s+=u.text.length;continue}throw new Error(`unexpected token ${JSON.stringify(o[0])} at position ${s}`)}return new ki(e.map(o=>Object.freeze(o)))}function FO(r,e){let t=[];for(const n in e.keys())r.has(n)&&t.push(n);if(t.length>1)throw new Error(`conflicting types: ${t.join(", ")}`)}function Mp(r,e){if(e.peekKeyword(LO)){const t=e.pop().text;if(t!==r)throw new Error(`expected ${r}, got ${t}`)}return e.popType("ID")}function Hs(r,e){const t=new Set;for(;;){const n=r.peekType("KEYWORD");if(n==null||e&&!e.has(n))break;if(r.pop(),t.has(n))throw new Error(`duplicate keywords: ${JSON.stringify(n)}`);t.add(n)}return Object.freeze(t)}function HO(r){let e=Hs(r,Ote);return FO(e,vn("constant payable nonpayable".split(" "))),FO(e,vn("pure view payable nonpayable".split(" "))),e.has("view")?"view":e.has("pure")?"pure":e.has("payable")?"payable":e.has("nonpayable")?"nonpayable":e.has("constant")?"view":"nonpayable"}function zs(r,e){return r.popParams().map(t=>Yr.from(t,e))}function zO(r){if(r.peekType("AT")){if(r.pop(),r.peekType("NUMBER"))return Le(r.pop().text);throw new Error("invalid gas")}return null}function ec(r){if(r.length)throw new Error(`unexpected tokens at offset ${r.offset}: ${r.toString()}`)}const Dte=new RegExp(/^(.*)\[([0-9]*)\]$/);function GO(r){const e=r.match($O);if(q(e,"invalid type","type",r),r==="uint")return"uint256";if(r==="int")return"int256";if(e[2]){const t=parseInt(e[2]);q(t!==0&&t<=32,"invalid bytes length","type",r)}else if(e[3]){const t=parseInt(e[3]);q(t!==0&&t<=256&&t%8===0,"invalid numeric width","type",r)}return r}const ir={},Mn=Symbol.for("_ethers_internal"),KO="_ParamTypeInternal",jO="_ErrorInternal",WO="_EventInternal",VO="_ConstructorInternal",qO="_FallbackInternal",ZO="_FunctionInternal",QO="_StructInternal",fi=class fi{constructor(e,t,n,i,s,o,a,u){se(this,Al);Q(this,"name");Q(this,"type");Q(this,"baseType");Q(this,"indexed");Q(this,"components");Q(this,"arrayLength");Q(this,"arrayChildren");if(up(e,ir,"ParamType"),Object.defineProperty(this,Mn,{value:KO}),o&&(o=Object.freeze(o.slice())),i==="array"){if(a==null||u==null)throw new Error("")}else if(a!=null||u!=null)throw new Error("");if(i==="tuple"){if(o==null)throw new Error("")}else if(o!=null)throw new Error("");ze(this,{name:t,type:n,baseType:i,indexed:s,components:o,arrayLength:a,arrayChildren:u})}format(e){if(e==null&&(e="sighash"),e==="json"){const n=this.name||"";if(this.isArray()){const s=JSON.parse(this.arrayChildren.format("json"));return s.name=n,s.type+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`,JSON.stringify(s)}const i={type:this.baseType==="tuple"?"tuple":this.type,name:n};return typeof this.indexed=="boolean"&&(i.indexed=this.indexed),this.isTuple()&&(i.components=this.components.map(s=>JSON.parse(s.format(e)))),JSON.stringify(i)}let t="";return this.isArray()?(t+=this.arrayChildren.format(e),t+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`):this.isTuple()?t+="("+this.components.map(n=>n.format(e)).join(e==="full"?", ":",")+")":t+=this.type,e!=="sighash"&&(this.indexed===!0&&(t+=" indexed"),e==="full"&&this.name&&(t+=" "+this.name)),t}isArray(){return this.baseType==="array"}isTuple(){return this.baseType==="tuple"}isIndexable(){return this.indexed!=null}walk(e,t){if(this.isArray()){if(!Array.isArray(e))throw new Error("invalid array value");if(this.arrayLength!==-1&&e.length!==this.arrayLength)throw new Error("array is wrong length");const n=this;return e.map(i=>n.arrayChildren.walk(i,t))}if(this.isTuple()){if(!Array.isArray(e))throw new Error("invalid tuple value");if(e.length!==this.components.length)throw new Error("array is wrong length");const n=this;return e.map((i,s)=>n.components[s].walk(i,t))}return t(this.type,e)}async walkAsync(e,t){const n=[],i=[e];return Ee(this,Al,bg).call(this,n,e,t,s=>{i[0]=s}),n.length&&await Promise.all(n),i[0]}static from(e,t){if(fi.isParamType(e))return e;if(typeof e=="string")try{return fi.from(Do(e),t)}catch{q(!1,"invalid param type","obj",e)}else if(e instanceof ki){let a="",u="",l=null;Hs(e,vn(["tuple"])).has("tuple")||e.peekType("OPEN_PAREN")?(u="tuple",l=e.popParams().map(S=>fi.from(S)),a=`tuple(${l.map(S=>S.format()).join(",")})`):(a=GO(e.popType("TYPE")),u=a);let h=null,g=null;for(;e.length&&e.peekType("BRACKET");){const S=e.pop();h=new fi(ir,"",a,u,null,l,g,h),g=S.value,a+=S.text,u="array",l=null}let b=null;if(Hs(e,Nte).has("indexed")){if(!t)throw new Error("");b=!0}const I=e.peekType("ID")?e.pop().text:"";if(e.length)throw new Error("leftover tokens");return new fi(ir,I,a,u,b,l,g,h)}const n=e.name;q(!n||typeof n=="string"&&n.match(DO),"invalid name","obj.name",n);let i=e.indexed;i!=null&&(q(t,"parameter cannot be indexed","obj.indexed",e.indexed),i=!!i);let s=e.type,o=s.match(Dte);if(o){const a=parseInt(o[2]||"-1"),u=fi.from({type:o[1],components:e.components});return new fi(ir,n||"",s,"array",i,null,a,u)}if(s==="tuple"||s.startsWith("tuple(")||s.startsWith("(")){const a=e.components!=null?e.components.map(l=>fi.from(l)):null;return new fi(ir,n||"",s,"tuple",i,a,null,null)}return s=GO(e.type),new fi(ir,n||"",s,s,i,null,null,null)}static isParamType(e){return e&&e[Mn]===KO}};Al=new WeakSet,bg=function(e,t,n,i){if(this.isArray()){if(!Array.isArray(t))throw new Error("invalid array value");if(this.arrayLength!==-1&&t.length!==this.arrayLength)throw new Error("array is wrong length");const o=this.arrayChildren,a=t.slice();a.forEach((u,l)=>{var h;Ee(h=o,Al,bg).call(h,e,u,n,g=>{a[l]=g})}),i(a);return}if(this.isTuple()){const o=this.components;let a;if(Array.isArray(t))a=t.slice();else{if(t==null||typeof t!="object")throw new Error("invalid tuple value");a=o.map(u=>{if(!u.name)throw new Error("cannot use object value with unnamed components");if(!(u.name in t))throw new Error(`missing value for component ${u.name}`);return t[u.name]})}if(a.length!==this.components.length)throw new Error("array is wrong length");a.forEach((u,l)=>{var h;Ee(h=o[l],Al,bg).call(h,e,u,n,g=>{a[l]=g})}),i(a);return}const s=n(this.type,t);s.then?e.push(async function(){i(await s)}()):i(s)};let Yr=fi;class tc{constructor(e,t,n){Q(this,"type");Q(this,"inputs");up(e,ir,"Fragment"),n=Object.freeze(n.slice()),ze(this,{type:t,inputs:n})}static from(e){if(typeof e=="string"){try{tc.from(JSON.parse(e))}catch{}return tc.from(Do(e))}if(e instanceof ki)switch(e.peekKeyword(LO)){case"constructor":return Gs.from(e);case"error":return Ln.from(e);case"event":return is.from(e);case"fallback":case"receive":return Ks.from(e);case"function":return ss.from(e);case"struct":return rc.from(e)}else if(typeof e=="object"){switch(e.type){case"constructor":return Gs.from(e);case"error":return Ln.from(e);case"event":return is.from(e);case"fallback":case"receive":return Ks.from(e);case"function":return ss.from(e);case"struct":return rc.from(e)}ge(!1,`unsupported type: ${e.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}q(!1,"unsupported frgament object","obj",e)}static isConstructor(e){return Gs.isFragment(e)}static isError(e){return Ln.isFragment(e)}static isEvent(e){return is.isFragment(e)}static isFunction(e){return ss.isFragment(e)}static isStruct(e){return rc.isFragment(e)}}class Lp extends tc{constructor(t,n,i,s){super(t,n,s);Q(this,"name");q(typeof i=="string"&&i.match(DO),"invalid identifier","name",i),s=Object.freeze(s.slice()),ze(this,{name:i})}}function xh(r,e){return"("+e.map(t=>t.format(r)).join(r==="full"?", ":",")+")"}class Ln extends Lp{constructor(e,t,n){super(e,"error",t,n),Object.defineProperty(this,Mn,{value:jO})}get selector(){return Qa(this.format("sighash")).substring(0,10)}format(e){if(e==null&&(e="sighash"),e==="json")return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(n=>JSON.parse(n.format(e)))});const t=[];return e!=="sighash"&&t.push("error"),t.push(this.name+xh(e,this.inputs)),t.join(" ")}static from(e){if(Ln.isFragment(e))return e;if(typeof e=="string")return Ln.from(Do(e));if(e instanceof ki){const t=Mp("error",e),n=zs(e);return ec(e),new Ln(ir,t,n)}return new Ln(ir,e.name,e.inputs?e.inputs.map(Yr.from):[])}static isFragment(e){return e&&e[Mn]===jO}}class is extends Lp{constructor(t,n,i,s){super(t,"event",n,i);Q(this,"anonymous");Object.defineProperty(this,Mn,{value:WO}),ze(this,{anonymous:s})}get topicHash(){return Qa(this.format("sighash"))}format(t){if(t==null&&(t="sighash"),t==="json")return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(i=>JSON.parse(i.format(t)))});const n=[];return t!=="sighash"&&n.push("event"),n.push(this.name+xh(t,this.inputs)),t!=="sighash"&&this.anonymous&&n.push("anonymous"),n.join(" ")}static getTopicHash(t,n){return n=(n||[]).map(s=>Yr.from(s)),new is(ir,t,n,!1).topicHash}static from(t){if(is.isFragment(t))return t;if(typeof t=="string")try{return is.from(Do(t))}catch{q(!1,"invalid event fragment","obj",t)}else if(t instanceof ki){const n=Mp("event",t),i=zs(t,!0),s=!!Hs(t,vn(["anonymous"])).has("anonymous");return ec(t),new is(ir,n,i,s)}return new is(ir,t.name,t.inputs?t.inputs.map(n=>Yr.from(n,!0)):[],!!t.anonymous)}static isFragment(t){return t&&t[Mn]===WO}}class Gs extends tc{constructor(t,n,i,s,o){super(t,n,i);Q(this,"payable");Q(this,"gas");Object.defineProperty(this,Mn,{value:VO}),ze(this,{payable:s,gas:o})}format(t){if(ge(t!=null&&t!=="sighash","cannot format a constructor for sighash","UNSUPPORTED_OPERATION",{operation:"format(sighash)"}),t==="json")return JSON.stringify({type:"constructor",stateMutability:this.payable?"payable":"undefined",payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map(i=>JSON.parse(i.format(t)))});const n=[`constructor${xh(t,this.inputs)}`];return this.payable&&n.push("payable"),this.gas!=null&&n.push(`@${this.gas.toString()}`),n.join(" ")}static from(t){if(Gs.isFragment(t))return t;if(typeof t=="string")try{return Gs.from(Do(t))}catch{q(!1,"invalid constuctor fragment","obj",t)}else if(t instanceof ki){Hs(t,vn(["constructor"]));const n=zs(t),i=!!Hs(t,Tte).has("payable"),s=zO(t);return ec(t),new Gs(ir,"constructor",n,i,s)}return new Gs(ir,"constructor",t.inputs?t.inputs.map(Yr.from):[],!!t.payable,t.gas!=null?t.gas:null)}static isFragment(t){return t&&t[Mn]===VO}}class Ks extends tc{constructor(t,n,i){super(t,"fallback",n);Q(this,"payable");Object.defineProperty(this,Mn,{value:qO}),ze(this,{payable:i})}format(t){const n=this.inputs.length===0?"receive":"fallback";if(t==="json"){const i=this.payable?"payable":"nonpayable";return JSON.stringify({type:n,stateMutability:i})}return`${n}()${this.payable?" payable":""}`}static from(t){if(Ks.isFragment(t))return t;if(typeof t=="string")try{return Ks.from(Do(t))}catch{q(!1,"invalid fallback fragment","obj",t)}else if(t instanceof ki){const n=t.toString(),i=t.peekKeyword(vn(["fallback","receive"]));if(q(i,"type must be fallback or receive","obj",n),t.popKeyword(vn(["fallback","receive"]))==="receive"){const u=zs(t);return q(u.length===0,"receive cannot have arguments","obj.inputs",u),Hs(t,vn(["payable"])),ec(t),new Ks(ir,[],!0)}let o=zs(t);o.length?q(o.length===1&&o[0].type==="bytes","invalid fallback inputs","obj.inputs",o.map(u=>u.format("minimal")).join(", ")):o=[Yr.from("bytes")];const a=HO(t);if(q(a==="nonpayable"||a==="payable","fallback cannot be constants","obj.stateMutability",a),Hs(t,vn(["returns"])).has("returns")){const u=zs(t);q(u.length===1&&u[0].type==="bytes","invalid fallback outputs","obj.outputs",u.map(l=>l.format("minimal")).join(", "))}return ec(t),new Ks(ir,o,a==="payable")}if(t.type==="receive")return new Ks(ir,[],!0);if(t.type==="fallback"){const n=[Yr.from("bytes")],i=t.stateMutability==="payable";return new Ks(ir,n,i)}q(!1,"invalid fallback description","obj",t)}static isFragment(t){return t&&t[Mn]===qO}}class ss extends Lp{constructor(t,n,i,s,o,a){super(t,"function",n,s);Q(this,"constant");Q(this,"outputs");Q(this,"stateMutability");Q(this,"payable");Q(this,"gas");Object.defineProperty(this,Mn,{value:ZO}),o=Object.freeze(o.slice()),ze(this,{constant:i==="view"||i==="pure",gas:a,outputs:o,payable:i==="payable",stateMutability:i})}get selector(){return Qa(this.format("sighash")).substring(0,10)}format(t){if(t==null&&(t="sighash"),t==="json")return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:this.stateMutability!=="nonpayable"?this.stateMutability:void 0,payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map(i=>JSON.parse(i.format(t))),outputs:this.outputs.map(i=>JSON.parse(i.format(t)))});const n=[];return t!=="sighash"&&n.push("function"),n.push(this.name+xh(t,this.inputs)),t!=="sighash"&&(this.stateMutability!=="nonpayable"&&n.push(this.stateMutability),this.outputs&&this.outputs.length&&(n.push("returns"),n.push(xh(t,this.outputs))),this.gas!=null&&n.push(`@${this.gas.toString()}`)),n.join(" ")}static getSelector(t,n){return n=(n||[]).map(s=>Yr.from(s)),new ss(ir,t,"view",n,[],null).selector}static from(t){if(ss.isFragment(t))return t;if(typeof t=="string")try{return ss.from(Do(t))}catch{q(!1,"invalid function fragment","obj",t)}else if(t instanceof ki){const i=Mp("function",t),s=zs(t),o=HO(t);let a=[];Hs(t,vn(["returns"])).has("returns")&&(a=zs(t));const u=zO(t);return ec(t),new ss(ir,i,o,s,a,u)}let n=t.stateMutability;return n==null&&(n="payable",typeof t.constant=="boolean"?(n="view",t.constant||(n="payable",typeof t.payable=="boolean"&&!t.payable&&(n="nonpayable"))):typeof t.payable=="boolean"&&!t.payable&&(n="nonpayable")),new ss(ir,t.name,n,t.inputs?t.inputs.map(Yr.from):[],t.outputs?t.outputs.map(Yr.from):[],t.gas!=null?t.gas:null)}static isFragment(t){return t&&t[Mn]===ZO}}class rc extends Lp{constructor(e,t,n){super(e,"struct",t,n),Object.defineProperty(this,Mn,{value:QO})}format(){throw new Error("@TODO")}static from(e){if(typeof e=="string")try{return rc.from(Do(e))}catch{q(!1,"invalid struct fragment","obj",e)}else if(e instanceof ki){const t=Mp("struct",e),n=zs(e);return ec(e),new rc(ir,t,n)}return new rc(ir,e.name,e.inputs?e.inputs.map(Yr.from):[])}static isFragment(e){return e&&e[Mn]===QO}}const Ti=new Map;Ti.set(0,"GENERIC_PANIC"),Ti.set(1,"ASSERT_FALSE"),Ti.set(17,"OVERFLOW"),Ti.set(18,"DIVIDE_BY_ZERO"),Ti.set(33,"ENUM_RANGE_ERROR"),Ti.set(34,"BAD_STORAGE_DATA"),Ti.set(49,"STACK_UNDERFLOW"),Ti.set(50,"ARRAY_RANGE_ERROR"),Ti.set(65,"OUT_OF_MEMORY"),Ti.set(81,"UNINITIALIZED_FUNCTION_CALL");const $te=new RegExp(/^bytes([0-9]*)$/),Fte=new RegExp(/^(u?int)([0-9]*)$/);let Mw=null,YO=1024;function Hte(r,e,t,n){let i="missing revert data",s=null;const o=null;let a=null;if(t){i="execution reverted";const l=_t(t);if(t=Ce(t),l.length===0)i+=" (no data present; likely require(false) occurred",s="require(false)";else if(l.length%32!==4)i+=" (could not decode reason; invalid data length)";else if(Ce(l.slice(0,4))==="0x08c379a0")try{s=n.decode(["string"],l.slice(4))[0],a={signature:"Error(string)",name:"Error",args:[s]},i+=`: ${JSON.stringify(s)}`}catch{i+=" (could not decode reason; invalid string data)"}else if(Ce(l.slice(0,4))==="0x4e487b71")try{const h=Number(n.decode(["uint256"],l.slice(4))[0]);a={signature:"Panic(uint256)",name:"Panic",args:[h]},s=`Panic due to ${Ti.get(h)||"UNKNOWN"}(${h})`,i+=`: ${s}`}catch{i+=" (could not decode panic code)"}else i+=" (unknown custom error)"}const u={to:e.to?Mt(e.to):null,data:e.data||"0x"};return e.from&&(u.from=Mt(e.from)),Jt(i,"CALL_EXCEPTION",{action:r,data:t,reason:s,transaction:u,invocation:o,revert:a})}const Jp=class Jp{constructor(){se(this,Ko)}getDefaultValue(e){const t=e.map(i=>Ee(this,Ko,Vl).call(this,Yr.from(i)));return new Ep(t,"_").defaultValue()}encode(e,t){Nk(t.length,e.length,"types/values length mismatch");const n=e.map(o=>Ee(this,Ko,Vl).call(this,Yr.from(o))),i=new Ep(n,"_"),s=new Y1;return i.encode(s,t),s.data}decode(e,t,n){const i=e.map(o=>Ee(this,Ko,Vl).call(this,Yr.from(o)));return new Ep(i,"_").decode(new J1(t,n,YO))}static _setDefaultMaxInflation(e){q(typeof e=="number"&&Number.isInteger(e),"invalid defaultMaxInflation factor","value",e),YO=e}static defaultAbiCoder(){return Mw==null&&(Mw=new Jp),Mw}static getBuiltinCallException(e,t,n){return Hte(e,t,n,Jp.defaultAbiCoder())}};Ko=new WeakSet,Vl=function(e){if(e.isArray())return new hee(Ee(this,Ko,Vl).call(this,e.arrayChildren),e.arrayLength,e.name);if(e.isTuple())return new Ep(e.components.map(n=>Ee(this,Ko,Vl).call(this,n)),e.name);switch(e.baseType){case"address":return new lee(e.name);case"bool":return new dee(e.name);case"string":return new vee(e.name);case"bytes":return new pee(e.name);case"":return new mee(e.name)}let t=e.type.match(Fte);if(t){let n=parseInt(t[2]||"256");return q(n!==0&&n<=256&&n%8===0,"invalid "+t[1]+" bit length","param",e),new Aee(n/8,t[1]==="int",e.name)}if(t=e.type.match($te),t){let n=parseInt(t[1]);return q(n!==0&&n<=32,"invalid bytes length","param",e),new gee(n,e.name)}q(!1,"invalid type","type",e.type)};let Rh=Jp;class zte{constructor(e,t,n){Q(this,"fragment");Q(this,"name");Q(this,"signature");Q(this,"topic");Q(this,"args");const i=e.name,s=e.format();ze(this,{fragment:e,name:i,signature:s,topic:t,args:n})}}class Gte{constructor(e,t,n,i){Q(this,"fragment");Q(this,"name");Q(this,"args");Q(this,"signature");Q(this,"selector");Q(this,"value");const s=e.name,o=e.format();ze(this,{fragment:e,name:s,args:n,signature:o,selector:t,value:i})}}class Kte{constructor(e,t,n){Q(this,"fragment");Q(this,"name");Q(this,"args");Q(this,"signature");Q(this,"selector");const i=e.name,s=e.format();ze(this,{fragment:e,name:i,args:n,signature:s,selector:t})}}class JO{constructor(e){Q(this,"hash");Q(this,"_isIndexed");ze(this,{hash:e,_isIndexed:!0})}static isIndexed(e){return!!(e&&e._isIndexed)}}const XO={0:"generic panic",1:"assert(false)",17:"arithmetic overflow",18:"division or modulo by zero",33:"enum overflow",34:"invalid encoded storage byte array accessed",49:"out-of-bounds array access; popping on an empty array",50:"out-of-bounds access of an array or bytesN",65:"out of memory",81:"uninitialized function"},eN={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:r=>`reverted with reason string ${JSON.stringify(r)}`},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"],reason:r=>{let e="unknown panic code";return r>=0&&r<=255&&XO[r.toString()]&&(e=XO[r.toString()]),`reverted with panic code 0x${r.toString(16)} (${e})`}}},bc=class bc{constructor(e){se(this,hs);Q(this,"fragments");Q(this,"deploy");Q(this,"fallback");Q(this,"receive");se(this,us);se(this,ls);se(this,fs);se(this,cn);let t=[];typeof e=="string"?t=JSON.parse(e):t=e,F(this,fs,new Map),F(this,us,new Map),F(this,ls,new Map);const n=[];for(const o of t)try{n.push(tc.from(o))}catch(a){console.log(`[Warning] Invalid Fragment ${JSON.stringify(o)}:`,a.message)}ze(this,{fragments:Object.freeze(n)});let i=null,s=!1;F(this,cn,this.getAbiCoder()),this.fragments.forEach((o,a)=>{let u;switch(o.type){case"constructor":if(this.deploy){console.log("duplicate definition - constructor");return}ze(this,{deploy:o});return;case"fallback":o.inputs.length===0?s=!0:(q(!i||o.payable!==i.payable,"conflicting fallback fragments",`fragments[${a}]`,o),i=o,s=i.payable);return;case"function":u=T(this,fs);break;case"event":u=T(this,ls);break;case"error":u=T(this,us);break;default:return}const l=o.format();u.has(l)||u.set(l,o)}),this.deploy||ze(this,{deploy:Gs.from("constructor()")}),ze(this,{fallback:i,receive:s})}format(e){const t=e?"minimal":"full";return this.fragments.map(i=>i.format(t))}formatJson(){const e=this.fragments.map(t=>t.format("json"));return JSON.stringify(e.map(t=>JSON.parse(t)))}getAbiCoder(){return Rh.defaultAbiCoder()}getFunctionName(e){const t=Ee(this,hs,_g).call(this,e,null,!1);return q(t,"no matching function","key",e),t.name}hasFunction(e){return!!Ee(this,hs,_g).call(this,e,null,!1)}getFunction(e,t){return Ee(this,hs,_g).call(this,e,t||null,!0)}forEachFunction(e){const t=Array.from(T(this,fs).keys());t.sort((n,i)=>n.localeCompare(i));for(let n=0;n<t.length;n++){const i=t[n];e(T(this,fs).get(i),n)}}getEventName(e){const t=Ee(this,hs,Ag).call(this,e,null,!1);return q(t,"no matching event","key",e),t.name}hasEvent(e){return!!Ee(this,hs,Ag).call(this,e,null,!1)}getEvent(e,t){return Ee(this,hs,Ag).call(this,e,t||null,!0)}forEachEvent(e){const t=Array.from(T(this,ls).keys());t.sort((n,i)=>n.localeCompare(i));for(let n=0;n<t.length;n++){const i=t[n];e(T(this,ls).get(i),n)}}getError(e,t){if(Gt(e)){const i=e.toLowerCase();if(eN[i])return Ln.from(eN[i].signature);for(const s of T(this,us).values())if(i===s.selector)return s;return null}if(e.indexOf("(")===-1){const i=[];for(const[s,o]of T(this,us))s.split("(")[0]===e&&i.push(o);if(i.length===0)return e==="Error"?Ln.from("error Error(string)"):e==="Panic"?Ln.from("error Panic(uint256)"):null;if(i.length>1){const s=i.map(o=>JSON.stringify(o.format())).join(", ");q(!1,`ambiguous error description (i.e. ${s})`,"name",e)}return i[0]}if(e=Ln.from(e).format(),e==="Error(string)")return Ln.from("error Error(string)");if(e==="Panic(uint256)")return Ln.from("error Panic(uint256)");const n=T(this,us).get(e);return n||null}forEachError(e){const t=Array.from(T(this,us).keys());t.sort((n,i)=>n.localeCompare(i));for(let n=0;n<t.length;n++){const i=t[n];e(T(this,us).get(i),n)}}_decodeParams(e,t){return T(this,cn).decode(e,t)}_encodeParams(e,t){return T(this,cn).encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){if(typeof e=="string"){const n=this.getError(e);q(n,"unknown error","fragment",e),e=n}return q(lr(t,0,4)===e.selector,`data signature does not match error ${e.name}.`,"data",t),this._decodeParams(e.inputs,lr(t,4))}encodeErrorResult(e,t){if(typeof e=="string"){const n=this.getError(e);q(n,"unknown error","fragment",e),e=n}return xr([e.selector,this._encodeParams(e.inputs,t||[])])}decodeFunctionData(e,t){if(typeof e=="string"){const n=this.getFunction(e);q(n,"unknown function","fragment",e),e=n}return q(lr(t,0,4)===e.selector,`data signature does not match function ${e.name}.`,"data",t),this._decodeParams(e.inputs,lr(t,4))}encodeFunctionData(e,t){if(typeof e=="string"){const n=this.getFunction(e);q(n,"unknown function","fragment",e),e=n}return xr([e.selector,this._encodeParams(e.inputs,t||[])])}decodeFunctionResult(e,t){if(typeof e=="string"){const s=this.getFunction(e);q(s,"unknown function","fragment",e),e=s}let n="invalid length for result data";const i=wn(t);if(i.length%32===0)try{return T(this,cn).decode(e.outputs,i)}catch{n="could not decode result data"}ge(!1,n,"BAD_DATA",{value:Ce(i),info:{method:e.name,signature:e.format()}})}makeError(e,t){const n=_t(e,"data"),i=Rh.getBuiltinCallException("call",t,n);if(i.message.startsWith("execution reverted (unknown custom error)")){const a=Ce(n.slice(0,4)),u=this.getError(a);if(u)try{const l=T(this,cn).decode(u.inputs,n.slice(4));i.revert={name:u.name,signature:u.format(),args:l},i.reason=i.revert.signature,i.message=`execution reverted: ${i.reason}`}catch{i.message="execution reverted (coult not decode custom error)"}}const o=this.parseTransaction(t);return o&&(i.invocation={method:o.name,signature:o.signature,args:o.args}),i}encodeFunctionResult(e,t){if(typeof e=="string"){const n=this.getFunction(e);q(n,"unknown function","fragment",e),e=n}return Ce(T(this,cn).encode(e.outputs,t||[]))}encodeFilterTopics(e,t){if(typeof e=="string"){const s=this.getEvent(e);q(s,"unknown event","eventFragment",e),e=s}ge(t.length<=e.inputs.length,`too many arguments for ${e.format()}`,"UNEXPECTED_ARGUMENT",{count:t.length,expectedCount:e.inputs.length});const n=[];e.anonymous||n.push(e.topicHash);const i=(s,o)=>s.type==="string"?Qa(o):s.type==="bytes"?Nr(Ce(o)):(s.type==="bool"&&typeof o=="boolean"?o=o?"0x01":"0x00":s.type.match(/^u?int/)?o=No(o):s.type.match(/^bytes/)?o=RJ(o,32):s.type==="address"&&T(this,cn).encode(["address"],[o]),Ka(Ce(o),32));for(t.forEach((s,o)=>{const a=e.inputs[o];if(!a.indexed){q(s==null,"cannot filter non-indexed parameters; must be null","contract."+a.name,s);return}s==null?n.push(null):a.baseType==="array"||a.baseType==="tuple"?q(!1,"filtering with tuples or arrays not supported","contract."+a.name,s):Array.isArray(s)?n.push(s.map(u=>i(a,u))):n.push(i(a,s))});n.length&&n[n.length-1]===null;)n.pop();return n}encodeEventLog(e,t){if(typeof e=="string"){const o=this.getEvent(e);q(o,"unknown event","eventFragment",e),e=o}const n=[],i=[],s=[];return e.anonymous||n.push(e.topicHash),q(t.length===e.inputs.length,"event arguments/values mismatch","values",t),e.inputs.forEach((o,a)=>{const u=t[a];if(o.indexed)if(o.type==="string")n.push(Qa(u));else if(o.type==="bytes")n.push(Nr(u));else{if(o.baseType==="tuple"||o.baseType==="array")throw new Error("not implemented");n.push(T(this,cn).encode([o.type],[u]))}else i.push(o),s.push(u)}),{data:T(this,cn).encode(i,s),topics:n}}decodeEventLog(e,t,n){if(typeof e=="string"){const w=this.getEvent(e);q(w,"unknown event","eventFragment",e),e=w}if(n!=null&&!e.anonymous){const w=e.topicHash;q(Gt(n[0],32)&&n[0].toLowerCase()===w,"fragment/topic mismatch","topics[0]",n[0]),n=n.slice(1)}const i=[],s=[],o=[];e.inputs.forEach((w,I)=>{w.indexed?w.type==="string"||w.type==="bytes"||w.baseType==="tuple"||w.baseType==="array"?(i.push(Yr.from({type:"bytes32",name:w.name})),o.push(!0)):(i.push(w),o.push(!1)):(s.push(w),o.push(!1))});const a=n!=null?T(this,cn).decode(i,xr(n)):null,u=T(this,cn).decode(s,t,!0),l=[],h=[];let g=0,b=0;return e.inputs.forEach((w,I)=>{let S=null;if(w.indexed)if(a==null)S=new JO(null);else if(o[I])S=new JO(a[b++]);else try{S=a[b++]}catch(x){S=x}else try{S=u[g++]}catch(x){S=x}l.push(S),h.push(w.name||null)}),Pu.fromItems(l,h)}parseTransaction(e){const t=_t(e.data,"tx.data"),n=Le(e.value!=null?e.value:0,"tx.value"),i=this.getFunction(Ce(t.slice(0,4)));if(!i)return null;const s=T(this,cn).decode(i.inputs,t.slice(4));return new Gte(i,i.selector,s,n)}parseCallResult(e){throw new Error("@TODO")}parseLog(e){const t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new zte(t,t.topicHash,this.decodeEventLog(t,e.data,e.topics))}parseError(e){const t=Ce(e),n=this.getError(lr(t,0,4));if(!n)return null;const i=T(this,cn).decode(n.inputs,lr(t,4));return new Kte(n,n.selector,i)}static from(e){return e instanceof bc?e:typeof e=="string"?new bc(JSON.parse(e)):typeof e.formatJson=="function"?new bc(e.formatJson()):typeof e.format=="function"?new bc(e.format("json")):new bc(e)}};us=new WeakMap,ls=new WeakMap,fs=new WeakMap,cn=new WeakMap,hs=new WeakSet,_g=function(e,t,n){if(Gt(e)){const s=e.toLowerCase();for(const o of T(this,fs).values())if(s===o.selector)return o;return null}if(e.indexOf("(")===-1){const s=[];for(const[o,a]of T(this,fs))o.split("(")[0]===e&&s.push(a);if(t){const o=t.length>0?t[t.length-1]:null;let a=t.length,u=!0;an.isTyped(o)&&o.type==="overrides"&&(u=!1,a--);for(let l=s.length-1;l>=0;l--){const h=s[l].inputs.length;h!==a&&(!u||h!==a-1)&&s.splice(l,1)}for(let l=s.length-1;l>=0;l--){const h=s[l].inputs;for(let g=0;g<t.length;g++)if(an.isTyped(t[g])){if(g>=h.length){if(t[g].type==="overrides")continue;s.splice(l,1);break}if(t[g].type!==h[g].baseType){s.splice(l,1);break}}}}if(s.length===1&&t&&t.length!==s[0].inputs.length){const o=t[t.length-1];(o==null||Array.isArray(o)||typeof o!="object")&&s.splice(0,1)}if(s.length===0)return null;if(s.length>1&&n){const o=s.map(a=>JSON.stringify(a.format())).join(", ");q(!1,`ambiguous function description (i.e. matches ${o})`,"key",e)}return s[0]}const i=T(this,fs).get(ss.from(e).format());return i||null},Ag=function(e,t,n){if(Gt(e)){const s=e.toLowerCase();for(const o of T(this,ls).values())if(s===o.topicHash)return o;return null}if(e.indexOf("(")===-1){const s=[];for(const[o,a]of T(this,ls))o.split("(")[0]===e&&s.push(a);if(t){for(let o=s.length-1;o>=0;o--)s[o].inputs.length<t.length&&s.splice(o,1);for(let o=s.length-1;o>=0;o--){const a=s[o].inputs;for(let u=0;u<t.length;u++)if(an.isTyped(t[u])&&t[u].type!==a[u].baseType){s.splice(o,1);break}}}if(s.length===0)return null;if(s.length>1&&n){const o=s.map(a=>JSON.stringify(a.format())).join(", ");q(!1,`ambiguous event description (i.e. matches ${o})`,"key",e)}return s[0]}const i=T(this,ls).get(is.from(e).format());return i||null};let Lw=bc;const tN=BigInt(0);function ju(r){return r??null}function Sr(r){return r==null?null:r.toString()}class rN{constructor(e,t,n){Q(this,"gasPrice");Q(this,"maxFeePerGas");Q(this,"maxPriorityFeePerGas");ze(this,{gasPrice:ju(e),maxFeePerGas:ju(t),maxPriorityFeePerGas:ju(n)})}toJSON(){const{gasPrice:e,maxFeePerGas:t,maxPriorityFeePerGas:n}=this;return{_type:"FeeData",gasPrice:Sr(e),maxFeePerGas:Sr(t),maxPriorityFeePerGas:Sr(n)}}}function Up(r){const e={};r.to&&(e.to=r.to),r.from&&(e.from=r.from),r.data&&(e.data=Ce(r.data));const t="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(const i of t)!(i in r)||r[i]==null||(e[i]=Le(r[i],`request.${i}`));const n="type,nonce".split(/,/);for(const i of n)!(i in r)||r[i]==null||(e[i]=at(r[i],`request.${i}`));return r.accessList&&(e.accessList=Xa(r.accessList)),"blockTag"in r&&(e.blockTag=r.blockTag),"enableCcipRead"in r&&(e.enableCcipRead=!!r.enableCcipRead),"customData"in r&&(e.customData=r.customData),"blobVersionedHashes"in r&&r.blobVersionedHashes&&(e.blobVersionedHashes=r.blobVersionedHashes.slice()),"kzg"in r&&(e.kzg=r.kzg),"blobs"in r&&r.blobs&&(e.blobs=r.blobs.map(i=>W1(i)?Ce(i):Object.assign({},i))),e}class jte{constructor(e,t){Q(this,"provider");Q(this,"number");Q(this,"hash");Q(this,"timestamp");Q(this,"parentHash");Q(this,"parentBeaconBlockRoot");Q(this,"nonce");Q(this,"difficulty");Q(this,"gasLimit");Q(this,"gasUsed");Q(this,"stateRoot");Q(this,"receiptsRoot");Q(this,"blobGasUsed");Q(this,"excessBlobGas");Q(this,"miner");Q(this,"prevRandao");Q(this,"extraData");Q(this,"baseFeePerGas");se(this,Xs);F(this,Xs,e.transactions.map(n=>typeof n!="string"?new Sh(n,t):n)),ze(this,{provider:t,hash:ju(e.hash),number:e.number,timestamp:e.timestamp,parentHash:e.parentHash,parentBeaconBlockRoot:e.parentBeaconBlockRoot,nonce:e.nonce,difficulty:e.difficulty,gasLimit:e.gasLimit,gasUsed:e.gasUsed,blobGasUsed:e.blobGasUsed,excessBlobGas:e.excessBlobGas,miner:e.miner,prevRandao:ju(e.prevRandao),extraData:e.extraData,baseFeePerGas:ju(e.baseFeePerGas),stateRoot:e.stateRoot,receiptsRoot:e.receiptsRoot})}get transactions(){return T(this,Xs).map(e=>typeof e=="string"?e:e.hash)}get prefetchedTransactions(){const e=T(this,Xs).slice();return e.length===0?[]:(ge(typeof e[0]=="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),e)}toJSON(){const{baseFeePerGas:e,difficulty:t,extraData:n,gasLimit:i,gasUsed:s,hash:o,miner:a,prevRandao:u,nonce:l,number:h,parentHash:g,parentBeaconBlockRoot:b,stateRoot:w,receiptsRoot:I,timestamp:S,transactions:x}=this;return{_type:"Block",baseFeePerGas:Sr(e),difficulty:Sr(t),extraData:n,gasLimit:Sr(i),gasUsed:Sr(s),blobGasUsed:Sr(this.blobGasUsed),excessBlobGas:Sr(this.excessBlobGas),hash:o,miner:a,prevRandao:u,nonce:l,number:h,parentHash:g,timestamp:S,parentBeaconBlockRoot:b,stateRoot:w,receiptsRoot:I,transactions:x}}[Symbol.iterator](){let e=0;const t=this.transactions;return{next:()=>e<this.length?{value:t[e++],done:!1}:{value:void 0,done:!0}}}get length(){return T(this,Xs).length}get date(){return this.timestamp==null?null:new Date(this.timestamp*1e3)}async getTransaction(e){let t;if(typeof e=="number")t=T(this,Xs)[e];else{const n=e.toLowerCase();for(const i of T(this,Xs))if(typeof i=="string"){if(i!==n)continue;t=i;break}else{if(i.hash!==n)continue;t=i;break}}if(t==null)throw new Error("no such tx");return typeof t=="string"?await this.provider.getTransaction(t):t}getPrefetchedTransaction(e){const t=this.prefetchedTransactions;if(typeof e=="number")return t[e];e=e.toLowerCase();for(const n of t)if(n.hash===e)return n;q(!1,"no matching transaction","indexOrHash",e)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw new Error("");return Wte(this)}}Xs=new WeakMap;class Ih{constructor(e,t){Q(this,"provider");Q(this,"transactionHash");Q(this,"blockHash");Q(this,"blockNumber");Q(this,"removed");Q(this,"address");Q(this,"data");Q(this,"topics");Q(this,"index");Q(this,"transactionIndex");this.provider=t;const n=Object.freeze(e.topics.slice());ze(this,{transactionHash:e.transactionHash,blockHash:e.blockHash,blockNumber:e.blockNumber,removed:e.removed,address:e.address,data:e.data,topics:n,index:e.index,transactionIndex:e.transactionIndex})}toJSON(){const{address:e,blockHash:t,blockNumber:n,data:i,index:s,removed:o,topics:a,transactionHash:u,transactionIndex:l}=this;return{_type:"log",address:e,blockHash:t,blockNumber:n,data:i,index:s,removed:o,topics:a,transactionHash:u,transactionIndex:l}}async getBlock(){const e=await this.provider.getBlock(this.blockHash);return ge(!!e,"failed to find transaction","UNKNOWN_ERROR",{}),e}async getTransaction(){const e=await this.provider.getTransaction(this.transactionHash);return ge(!!e,"failed to find transaction","UNKNOWN_ERROR",{}),e}async getTransactionReceipt(){const e=await this.provider.getTransactionReceipt(this.transactionHash);return ge(!!e,"failed to find transaction receipt","UNKNOWN_ERROR",{}),e}removedEvent(){return Vte(this)}}class nN{constructor(e,t){Q(this,"provider");Q(this,"to");Q(this,"from");Q(this,"contractAddress");Q(this,"hash");Q(this,"index");Q(this,"blockHash");Q(this,"blockNumber");Q(this,"logsBloom");Q(this,"gasUsed");Q(this,"blobGasUsed");Q(this,"cumulativeGasUsed");Q(this,"gasPrice");Q(this,"blobGasPrice");Q(this,"type");Q(this,"status");Q(this,"root");se(this,Lh);F(this,Lh,Object.freeze(e.logs.map(i=>new Ih(i,t))));let n=tN;e.effectiveGasPrice!=null?n=e.effectiveGasPrice:e.gasPrice!=null&&(n=e.gasPrice),ze(this,{provider:t,to:e.to,from:e.from,contractAddress:e.contractAddress,hash:e.hash,index:e.index,blockHash:e.blockHash,blockNumber:e.blockNumber,logsBloom:e.logsBloom,gasUsed:e.gasUsed,cumulativeGasUsed:e.cumulativeGasUsed,blobGasUsed:e.blobGasUsed,gasPrice:n,blobGasPrice:e.blobGasPrice,type:e.type,status:e.status,root:e.root})}get logs(){return T(this,Lh)}toJSON(){const{to:e,from:t,contractAddress:n,hash:i,index:s,blockHash:o,blockNumber:a,logsBloom:u,logs:l,status:h,root:g}=this;return{_type:"TransactionReceipt",blockHash:o,blockNumber:a,contractAddress:n,cumulativeGasUsed:Sr(this.cumulativeGasUsed),from:t,gasPrice:Sr(this.gasPrice),blobGasUsed:Sr(this.blobGasUsed),blobGasPrice:Sr(this.blobGasPrice),gasUsed:Sr(this.gasUsed),hash:i,index:s,logs:l,logsBloom:u,root:g,status:h,to:e}}get length(){return this.logs.length}[Symbol.iterator](){let e=0;return{next:()=>e<this.length?{value:this.logs[e++],done:!1}:{value:void 0,done:!0}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){const e=await this.provider.getBlock(this.blockHash);if(e==null)throw new Error("TODO");return e}async getTransaction(){const e=await this.provider.getTransaction(this.hash);if(e==null)throw new Error("TODO");return e}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return sN(this)}reorderedEvent(e){return ge(!e||e.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),iN(this,e)}}Lh=new WeakMap;const sb=class sb{constructor(e,t){Q(this,"provider");Q(this,"blockNumber");Q(this,"blockHash");Q(this,"index");Q(this,"hash");Q(this,"type");Q(this,"to");Q(this,"from");Q(this,"nonce");Q(this,"gasLimit");Q(this,"gasPrice");Q(this,"maxPriorityFeePerGas");Q(this,"maxFeePerGas");Q(this,"maxFeePerBlobGas");Q(this,"data");Q(this,"value");Q(this,"chainId");Q(this,"signature");Q(this,"accessList");Q(this,"blobVersionedHashes");se(this,jo);this.provider=t,this.blockNumber=e.blockNumber!=null?e.blockNumber:null,this.blockHash=e.blockHash!=null?e.blockHash:null,this.hash=e.hash,this.index=e.index,this.type=e.type,this.from=e.from,this.to=e.to||null,this.gasLimit=e.gasLimit,this.nonce=e.nonce,this.data=e.data,this.value=e.value,this.gasPrice=e.gasPrice,this.maxPriorityFeePerGas=e.maxPriorityFeePerGas!=null?e.maxPriorityFeePerGas:null,this.maxFeePerGas=e.maxFeePerGas!=null?e.maxFeePerGas:null,this.maxFeePerBlobGas=e.maxFeePerBlobGas!=null?e.maxFeePerBlobGas:null,this.chainId=e.chainId,this.signature=e.signature,this.accessList=e.accessList!=null?e.accessList:null,this.blobVersionedHashes=e.blobVersionedHashes!=null?e.blobVersionedHashes:null,F(this,jo,-1)}toJSON(){const{blockNumber:e,blockHash:t,index:n,hash:i,type:s,to:o,from:a,nonce:u,data:l,signature:h,accessList:g,blobVersionedHashes:b}=this;return{_type:"TransactionResponse",accessList:g,blockNumber:e,blockHash:t,blobVersionedHashes:b,chainId:Sr(this.chainId),data:l,from:a,gasLimit:Sr(this.gasLimit),gasPrice:Sr(this.gasPrice),hash:i,maxFeePerGas:Sr(this.maxFeePerGas),maxPriorityFeePerGas:Sr(this.maxPriorityFeePerGas),maxFeePerBlobGas:Sr(this.maxFeePerBlobGas),nonce:u,signature:h,to:o,index:n,type:s,value:Sr(this.value)}}async getBlock(){let e=this.blockNumber;if(e==null){const n=await this.getTransaction();n&&(e=n.blockNumber)}if(e==null)return null;const t=this.provider.getBlock(e);if(t==null)throw new Error("TODO");return t}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){const{tx:t,blockNumber:n}=await mn({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});return t==null||t.blockNumber==null?0:n-t.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(e,t){const n=e??1,i=t??0;let s=T(this,jo),o=-1,a=s===-1;const u=async()=>{if(a)return null;const{blockNumber:b,nonce:w}=await mn({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(w<this.nonce){s=b;return}if(a)return null;const I=await this.getTransaction();if(!(I&&I.blockNumber!=null))for(o===-1&&(o=s-3,o<T(this,jo)&&(o=T(this,jo)));o<=b;){if(a)return null;const S=await this.provider.getBlock(o,!0);if(S==null)return;for(const x of S)if(x===this.hash)return;for(let x=0;x<S.length;x++){const C=await S.getTransaction(x);if(C.from===this.from&&C.nonce===this.nonce){if(a)return null;const H=await this.provider.getTransactionReceipt(C.hash);if(H==null||b-H.blockNumber+1<n)return;let D="replaced";C.data===this.data&&C.to===this.to&&C.value===this.value?D="repriced":C.data==="0x"&&C.from===C.to&&C.value===tN&&(D="cancelled"),ge(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:D==="replaced"||D==="cancelled",reason:D,replacement:C.replaceableTransaction(s),hash:C.hash,receipt:H})}}o++}},l=b=>{if(b==null||b.status!==0)return b;ge(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:b.to,from:b.from,data:""},receipt:b})},h=await this.provider.getTransactionReceipt(this.hash);if(n===0)return l(h);if(h){if(await h.confirmations()>=n)return l(h)}else if(await u(),n===0)return null;return await new Promise((b,w)=>{const I=[],S=()=>{I.forEach(C=>C())};if(I.push(()=>{a=!0}),i>0){const C=setTimeout(()=>{S(),w(Jt("wait for transaction timeout","TIMEOUT"))},i);I.push(()=>{clearTimeout(C)})}const x=async C=>{if(await C.confirmations()>=n){S();try{b(l(C))}catch(H){w(H)}}};if(I.push(()=>{this.provider.off(this.hash,x)}),this.provider.on(this.hash,x),s>=0){const C=async()=>{try{await u()}catch(H){if(Qr(H,"TRANSACTION_REPLACED")){S(),w(H);return}}a||this.provider.once("block",C)};I.push(()=>{this.provider.off("block",C)}),this.provider.once("block",C)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}removedEvent(){return ge(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),sN(this)}reorderedEvent(e){return ge(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),ge(!e||e.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),iN(this,e)}replaceableTransaction(e){q(Number.isInteger(e)&&e>=0,"invalid startBlock","startBlock",e);const t=new sb(this,this.provider);return F(t,jo,e),t}};jo=new WeakMap;let Sh=sb;function Wte(r){return{orphan:"drop-block",hash:r.hash,number:r.number}}function iN(r,e){return{orphan:"reorder-transaction",tx:r,other:e}}function sN(r){return{orphan:"drop-transaction",tx:r}}function Vte(r){return{orphan:"drop-log",log:{transactionHash:r.transactionHash,blockHash:r.blockHash,blockNumber:r.blockNumber,address:r.address,data:r.data,topics:Object.freeze(r.topics.slice()),index:r.index}}}class Uw extends Ih{constructor(t,n,i){super(t,t.provider);Q(this,"interface");Q(this,"fragment");Q(this,"args");const s=n.decodeEventLog(i,t.data,t.topics);ze(this,{args:s,fragment:i,interface:n})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}class oN extends Ih{constructor(t,n){super(t,t.provider);Q(this,"error");ze(this,{error:n})}}class qte extends nN{constructor(t,n,i){super(i,n);se(this,vl);F(this,vl,t)}get logs(){return super.logs.map(t=>{const n=t.topics.length?T(this,vl).getEvent(t.topics[0]):null;if(n)try{return new Uw(t,T(this,vl),n)}catch(i){return new oN(t,i)}return t})}}vl=new WeakMap;class Dw extends Sh{constructor(t,n,i){super(i,n);se(this,Uh);F(this,Uh,t)}async wait(t,n){const i=await super.wait(t,n);return i==null?null:new qte(T(this,Uh),this.provider,i)}}Uh=new WeakMap;class aN extends $k{constructor(t,n,i,s){super(t,n,i);Q(this,"log");ze(this,{log:s})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}}class Zte extends aN{constructor(e,t,n,i,s){super(e,t,n,new Uw(s,e.interface,i));const o=e.interface.decodeEventLog(i,this.log.data,this.log.topics);ze(this,{args:o,fragment:i})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}const cN=BigInt(0);function uN(r){return r&&typeof r.call=="function"}function lN(r){return r&&typeof r.estimateGas=="function"}function Dp(r){return r&&typeof r.resolveName=="function"}function fN(r){return r&&typeof r.sendTransaction=="function"}function hN(r){if(r!=null){if(Dp(r))return r;if(r.provider)return r.provider}}class Qte{constructor(e,t,n){se(this,Dh);Q(this,"fragment");if(ze(this,{fragment:t}),t.inputs.length<n.length)throw new Error("too many arguments");const i=nc(e.runner,"resolveName"),s=Dp(i)?i:null;F(this,Dh,async function(){const o=await Promise.all(t.inputs.map((a,u)=>n[u]==null?null:a.walkAsync(n[u],(h,g)=>h==="address"?Array.isArray(g)?Promise.all(g.map(b=>An(b,s))):An(g,s):g)));return e.interface.encodeFilterTopics(t,o)}())}getTopicFilter(){return T(this,Dh)}}Dh=new WeakMap;function nc(r,e){return r==null?null:typeof r[e]=="function"?r:r.provider&&typeof r.provider[e]=="function"?r.provider:null}function ic(r){return r==null?null:r.provider||null}async function dN(r,e){const t=an.dereference(r,"overrides");q(typeof t=="object","invalid overrides parameter","overrides",r);const n=Up(t);return q(n.to==null||(e||[]).indexOf("to")>=0,"cannot override to","overrides.to",n.to),q(n.data==null||(e||[]).indexOf("data")>=0,"cannot override data","overrides.data",n.data),n.from&&(n.from=n.from),n}async function Yte(r,e,t){const n=nc(r,"resolveName"),i=Dp(n)?n:null;return await Promise.all(e.map((s,o)=>s.walkAsync(t[o],(a,u)=>(u=an.dereference(u,a),a==="address"?An(u,i):u))))}function Jte(r){const e=async function(o){const a=await dN(o,["data"]);a.to=await r.getAddress(),a.from&&(a.from=await An(a.from,hN(r.runner)));const u=r.interface,l=Le(a.value||cN,"overrides.value")===cN,h=(a.data||"0x")==="0x";u.fallback&&!u.fallback.payable&&u.receive&&!h&&!l&&q(!1,"cannot send data to receive or send value to non-payable fallback","overrides",o),q(u.fallback||h,"cannot send data to receive-only contract","overrides.data",a.data);const g=u.receive||u.fallback&&u.fallback.payable;return q(g||l,"cannot send value to non-payable fallback","overrides.value",a.value),q(u.fallback||h,"cannot send data to receive-only contract","overrides.data",a.data),a},t=async function(o){const a=nc(r.runner,"call");ge(uN(a),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const u=await e(o);try{return await a.call(u)}catch(l){throw j1(l)&&l.data?r.interface.makeError(l.data,u):l}},n=async function(o){const a=r.runner;ge(fN(a),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const u=await a.sendTransaction(await e(o)),l=ic(r.runner);return new Dw(r.interface,l,u)},i=async function(o){const a=nc(r.runner,"estimateGas");return ge(lN(a),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await a.estimateGas(await e(o))},s=async o=>await n(o);return ze(s,{_contract:r,estimateGas:i,populateTransaction:e,send:n,staticCall:t}),s}function Xte(r,e){const t=function(...l){const h=r.interface.getFunction(e,l);return ge(h,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e,args:l}}),h},n=async function(...l){const h=t(...l);let g={};if(h.inputs.length+1===l.length&&(g=await dN(l.pop()),g.from&&(g.from=await An(g.from,hN(r.runner)))),h.inputs.length!==l.length)throw new Error("internal error: fragment inputs doesn't match arguments; should not happen");const b=await Yte(r.runner,h.inputs,l);return Object.assign({},g,await mn({to:r.getAddress(),data:r.interface.encodeFunctionData(h,b)}))},i=async function(...l){const h=await a(...l);return h.length===1?h[0]:h},s=async function(...l){const h=r.runner;ge(fN(h),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const g=await h.sendTransaction(await n(...l)),b=ic(r.runner);return new Dw(r.interface,b,g)},o=async function(...l){const h=nc(r.runner,"estimateGas");return ge(lN(h),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await h.estimateGas(await n(...l))},a=async function(...l){const h=nc(r.runner,"call");ge(uN(h),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const g=await n(...l);let b="0x";try{b=await h.call(g)}catch(I){throw j1(I)&&I.data?r.interface.makeError(I.data,g):I}const w=t(...l);return r.interface.decodeFunctionResult(w,b)},u=async(...l)=>t(...l).constant?await i(...l):await s(...l);return ze(u,{name:r.interface.getFunctionName(e),_contract:r,_key:e,getFragment:t,estimateGas:o,populateTransaction:n,send:s,staticCall:i,staticCallResult:a}),Object.defineProperty(u,"fragment",{configurable:!1,enumerable:!0,get:()=>{const l=r.interface.getFunction(e);return ge(l,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e}}),l}}),u}function ere(r,e){const t=function(...i){const s=r.interface.getEvent(e,i);return ge(s,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e,args:i}}),s},n=function(...i){return new Qte(r,t(...i),i)};return ze(n,{name:r.interface.getEventName(e),_contract:r,_key:e,getFragment:t}),Object.defineProperty(n,"fragment",{configurable:!1,enumerable:!0,get:()=>{const i=r.interface.getEvent(e);return ge(i,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:e}}),i}}),n}const $p=Symbol.for("_ethersInternal_contract"),pN=new WeakMap;function tre(r,e){pN.set(r[$p],e)}function Vn(r){return pN.get(r[$p])}function rre(r){return r&&typeof r=="object"&&"getTopicFilter"in r&&typeof r.getTopicFilter=="function"&&r.fragment}async function $w(r,e){let t,n=null;if(Array.isArray(e)){const s=function(o){if(Gt(o,32))return o;const a=r.interface.getEvent(o);return q(a,"unknown fragment","name",o),a.topicHash};t=e.map(o=>o==null?null:Array.isArray(o)?o.map(s):s(o))}else e==="*"?t=[null]:typeof e=="string"?Gt(e,32)?t=[e]:(n=r.interface.getEvent(e),q(n,"unknown fragment","event",e),t=[n.topicHash]):rre(e)?t=await e.getTopicFilter():"fragment"in e?(n=e.fragment,t=[n.topicHash]):q(!1,"unknown event name","event",e);t=t.map(s=>{if(s==null)return null;if(Array.isArray(s)){const o=Array.from(new Set(s.map(a=>a.toLowerCase())).values());return o.length===1?o[0]:(o.sort(),o)}return s.toLowerCase()});const i=t.map(s=>s==null?"null":Array.isArray(s)?s.join("|"):s).join("&");return{fragment:n,tag:i,topics:t}}async function kh(r,e){const{subs:t}=Vn(r);return t.get((await $w(r,e)).tag)||null}async function gN(r,e,t){const n=ic(r.runner);ge(n,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:e});const{fragment:i,tag:s,topics:o}=await $w(r,t),{addr:a,subs:u}=Vn(r);let l=u.get(s);if(!l){const g={address:a||r,topics:o},b=x=>{let C=i;if(C==null)try{C=r.interface.getEvent(x.topics[0])}catch{}if(C){const H=C,D=i?r.interface.decodeEventLog(i,x.data,x.topics):[];Hw(r,t,D,z=>new Zte(r,z,t,H,x))}else Hw(r,t,[],H=>new aN(r,H,t,x))};let w=[];l={tag:s,listeners:[],start:()=>{w.length||w.push(n.on(g,b))},stop:async()=>{if(w.length==0)return;let x=w;w=[],await Promise.all(x),n.off(g,b)}},u.set(s,l)}return l}let Fw=Promise.resolve();async function nre(r,e,t,n){await Fw;const i=await kh(r,e);if(!i)return!1;const s=i.listeners.length;return i.listeners=i.listeners.filter(({listener:o,once:a})=>{const u=Array.from(t);n&&u.push(n(a?null:o));try{o.call(r,...u)}catch{}return!a}),i.listeners.length===0&&(i.stop(),Vn(r).subs.delete(i.tag)),s>0}async function Hw(r,e,t,n){try{await Fw}catch{}const i=nre(r,e,t,n);return Fw=i,await i}const Fp=["then"];PN=$p;const $h=class $h{constructor(e,t,n,i){Q(this,"target");Q(this,"interface");Q(this,"runner");Q(this,"filters");Q(this,PN);Q(this,"fallback");q(typeof e=="string"||ZT(e),"invalid value for Contract target","target",e),n==null&&(n=null);const s=Lw.from(t);ze(this,{target:e,runner:n,interface:s}),Object.defineProperty(this,$p,{value:{}});let o,a=null,u=null;if(i){const g=ic(n);u=new Dw(this.interface,g,i)}let l=new Map;if(typeof e=="string")if(Gt(e))a=e,o=Promise.resolve(e);else{const g=nc(n,"resolveName");if(!Dp(g))throw Jt("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});o=g.resolveName(e).then(b=>{if(b==null)throw Jt("an ENS name used for a contract target must be correctly configured","UNCONFIGURED_NAME",{value:e});return Vn(this).addr=b,b})}else o=e.getAddress().then(g=>{if(g==null)throw new Error("TODO");return Vn(this).addr=g,g});tre(this,{addrPromise:o,addr:a,deployTx:u,subs:l});const h=new Proxy({},{get:(g,b,w)=>{if(typeof b=="symbol"||Fp.indexOf(b)>=0)return Reflect.get(g,b,w);try{return this.getEvent(b)}catch(I){if(!Qr(I,"INVALID_ARGUMENT")||I.argument!=="key")throw I}},has:(g,b)=>Fp.indexOf(b)>=0?Reflect.has(g,b):Reflect.has(g,b)||this.interface.hasEvent(String(b))});return ze(this,{filters:h}),ze(this,{fallback:s.receive||s.fallback?Jte(this):null}),new Proxy(this,{get:(g,b,w)=>{if(typeof b=="symbol"||b in g||Fp.indexOf(b)>=0)return Reflect.get(g,b,w);try{return g.getFunction(b)}catch(I){if(!Qr(I,"INVALID_ARGUMENT")||I.argument!=="key")throw I}},has:(g,b)=>typeof b=="symbol"||b in g||Fp.indexOf(b)>=0?Reflect.has(g,b):g.interface.hasFunction(b)})}connect(e){return new $h(this.target,this.interface,e)}attach(e){return new $h(e,this.interface,this.runner)}async getAddress(){return await Vn(this).addrPromise}async getDeployedCode(){const e=ic(this.runner);ge(e,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});const t=await e.getCode(await this.getAddress());return t==="0x"?null:t}async waitForDeployment(){const e=this.deploymentTransaction();if(e)return await e.wait(),this;if(await this.getDeployedCode()!=null)return this;const n=ic(this.runner);return ge(n!=null,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"}),new Promise((i,s)=>{const o=async()=>{try{if(await this.getDeployedCode()!=null)return i(this);n.once("block",o)}catch(a){s(a)}};o()})}deploymentTransaction(){return Vn(this).deployTx}getFunction(e){return typeof e!="string"&&(e=e.format()),Xte(this,e)}getEvent(e){return typeof e!="string"&&(e=e.format()),ere(this,e)}async queryTransaction(e){throw new Error("@TODO")}async queryFilter(e,t,n){t==null&&(t=0),n==null&&(n="latest");const{addr:i,addrPromise:s}=Vn(this),o=i||await s,{fragment:a,topics:u}=await $w(this,e),l={address:o,topics:u,fromBlock:t,toBlock:n},h=ic(this.runner);return ge(h,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"}),(await h.getLogs(l)).map(g=>{let b=a;if(b==null)try{b=this.interface.getEvent(g.topics[0])}catch{}if(b)try{return new Uw(g,this.interface,b)}catch(w){return new oN(g,w)}return new Ih(g,h)})}async on(e,t){const n=await gN(this,"on",e);return n.listeners.push({listener:t,once:!1}),n.start(),this}async once(e,t){const n=await gN(this,"once",e);return n.listeners.push({listener:t,once:!0}),n.start(),this}async emit(e,...t){return await Hw(this,e,t,null)}async listenerCount(e){if(e){const i=await kh(this,e);return i?i.listeners.length:0}const{subs:t}=Vn(this);let n=0;for(const{listeners:i}of t.values())n+=i.length;return n}async listeners(e){if(e){const i=await kh(this,e);return i?i.listeners.map(({listener:s})=>s):[]}const{subs:t}=Vn(this);let n=[];for(const{listeners:i}of t.values())n=n.concat(i.map(({listener:s})=>s));return n}async off(e,t){const n=await kh(this,e);if(!n)return this;if(t){const i=n.listeners.map(({listener:s})=>s).indexOf(t);i>=0&&n.listeners.splice(i,1)}return(t==null||n.listeners.length===0)&&(n.stop(),Vn(this).subs.delete(n.tag)),this}async removeAllListeners(e){if(e){const t=await kh(this,e);if(!t)return this;t.stop(),Vn(this).subs.delete(t.tag)}else{const{subs:t}=Vn(this);for(const{tag:n,stop:i}of t.values())i(),t.delete(n)}return this}async addListener(e,t){return await this.on(e,t)}async removeListener(e,t){return await this.off(e,t)}static buildClass(e){class t extends $h{constructor(i,s=null){super(i,e,s)}}return t}static from(e,t,n){return n==null&&(n=null),new this(e,t,n)}};let zw=$h;function ire(){return zw}class Wu extends ire(){}function Gw(r){return r.match(/^ipfs:\/\/ipfs\//i)?r=r.substring(12):r.match(/^ipfs:\/\//i)?r=r.substring(7):q(!1,"unsupported IPFS format","link",r),`https://gateway.ipfs.io/ipfs/${r}`}class sre{constructor(e){Q(this,"name");ze(this,{name:e})}connect(e){return this}supportsCoinType(e){return!1}async encodeAddress(e,t){throw new Error("unsupported coin")}async decodeAddress(e,t){throw new Error("unsupported coin")}}const yN=new RegExp("^(ipfs)://(.*)$","i"),mN=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),yN,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")],El=class El{constructor(e,t,n){se(this,Vo);Q(this,"provider");Q(this,"address");Q(this,"name");se(this,Wo);se(this,_c);ze(this,{provider:e,address:t,name:n}),F(this,Wo,null),F(this,_c,new Wu(t,["function supportsInterface(bytes4) view returns (bool)","function resolve(bytes, bytes) view returns (bytes)","function addr(bytes32) view returns (address)","function addr(bytes32, uint) view returns (bytes)","function text(bytes32, string) view returns (string)","function contenthash(bytes32) view returns (bytes)"],e))}async supportsWildcard(){return T(this,Wo)==null&&F(this,Wo,(async()=>{try{return await T(this,_c).supportsInterface("0x9061b923")}catch(e){if(Qr(e,"CALL_EXCEPTION"))return!1;throw F(this,Wo,null),e}})()),await T(this,Wo)}async getAddress(e){if(e==null&&(e=60),e===60)try{const s=await Ee(this,Vo,ql).call(this,"addr(bytes32)");return s==null||s===gh?null:s}catch(s){if(Qr(s,"CALL_EXCEPTION"))return null;throw s}if(e>=0&&e<2147483648){let s=e+2147483648;const o=await Ee(this,Vo,ql).call(this,"addr(bytes32,uint)",[s]);if(Gt(o,20))return Mt(o)}let t=null;for(const s of this.provider.plugins)if(s instanceof sre&&s.supportsCoinType(e)){t=s;break}if(t==null)return null;const n=await Ee(this,Vo,ql).call(this,"addr(bytes32,uint)",[e]);if(n==null||n==="0x")return null;const i=await t.decodeAddress(e,n);if(i!=null)return i;ge(!1,"invalid coin data","UNSUPPORTED_OPERATION",{operation:`getAddress(${e})`,info:{coinType:e,data:n}})}async getText(e){const t=await Ee(this,Vo,ql).call(this,"text(bytes32,string)",[e]);return t==null||t==="0x"?null:t}async getContentHash(){const e=await Ee(this,Vo,ql).call(this,"contenthash(bytes32)");if(e==null||e==="0x")return null;const t=e.match(/^0x(e3010170|e5010172)(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(t){const i=t[1]==="e3010170"?"ipfs":"ipns",s=parseInt(t[4],16);if(t[5].length===s*2)return`${i}://${kJ("0x"+t[2])}`}const n=e.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(n&&n[1].length===64)return`bzz://${n[1]}`;ge(!1,"invalid or unsupported content hash data","UNSUPPORTED_OPERATION",{operation:"getContentHash()",info:{data:e}})}async getAvatar(){return(await this._getAvatar()).url}async _getAvatar(){const e=[{type:"name",value:this.name}];try{const t=await this.getText("avatar");if(t==null)return e.push({type:"!avatar",value:""}),{url:null,linkage:e};e.push({type:"avatar",value:t});for(let n=0;n<mN.length;n++){const i=t.match(mN[n]);if(i==null)continue;const s=i[1].toLowerCase();switch(s){case"https":case"data":return e.push({type:"url",value:t}),{linkage:e,url:t};case"ipfs":{const o=Gw(t);return e.push({type:"ipfs",value:t}),e.push({type:"url",value:o}),{linkage:e,url:o}}case"erc721":case"erc1155":{const o=s==="erc721"?"tokenURI(uint256)":"uri(uint256)";e.push({type:s,value:t});const a=await this.getAddress();if(a==null)return e.push({type:"!owner",value:""}),{url:null,linkage:e};const u=(i[2]||"").split("/");if(u.length!==2)return e.push({type:`!${s}caip`,value:i[2]||""}),{url:null,linkage:e};const l=u[1],h=new Wu(u[0],["function tokenURI(uint) view returns (string)","function ownerOf(uint) view returns (address)","function uri(uint) view returns (string)","function balanceOf(address, uint256) view returns (uint)"],this.provider);if(s==="erc721"){const S=await h.ownerOf(l);if(a!==S)return e.push({type:"!owner",value:S}),{url:null,linkage:e};e.push({type:"owner",value:S})}else if(s==="erc1155"){const S=await h.balanceOf(a,l);if(!S)return e.push({type:"!balance",value:"0"}),{url:null,linkage:e};e.push({type:"balance",value:S.toString()})}let g=await h[o](l);if(g==null||g==="0x")return e.push({type:"!metadata-url",value:""}),{url:null,linkage:e};e.push({type:"metadata-url-base",value:g}),s==="erc1155"&&(g=g.replace("{id}",No(l,32).substring(2)),e.push({type:"metadata-url-expanded",value:g})),g.match(/^ipfs:/i)&&(g=Gw(g)),e.push({type:"metadata-url",value:g});let b={};const w=await new Us(g).send();w.assertOk();try{b=w.bodyJson}catch{try{e.push({type:"!metadata",value:w.bodyText})}catch{const C=w.body;return C&&e.push({type:"!metadata",value:Ce(C)}),{url:null,linkage:e}}return{url:null,linkage:e}}if(!b)return e.push({type:"!metadata",value:""}),{url:null,linkage:e};e.push({type:"metadata",value:JSON.stringify(b)});let I=b.image;if(typeof I!="string")return e.push({type:"!imageUrl",value:""}),{url:null,linkage:e};if(!I.match(/^(https:\/\/|data:)/i)){if(I.match(yN)==null)return e.push({type:"!imageUrl-ipfs",value:I}),{url:null,linkage:e};e.push({type:"imageUrl-ipfs",value:I}),I=Gw(I)}return e.push({type:"url",value:I}),{linkage:e,url:I}}}}}catch{}return{linkage:e,url:null}}static async getEnsAddress(e){const t=await e.getNetwork(),n=t.getPlugin("org.ethers.plugins.network.Ens");return ge(n,"network does not support ENS","UNSUPPORTED_OPERATION",{operation:"getEnsAddress",info:{network:t}}),n.address}static async fromName(e,t){var i;let n=t;for(;;){if(n===""||n==="."||t!=="eth"&&n==="eth")return null;const s=await Ee(i=El,Xp,VC).call(i,e,n);if(s!=null){const o=new El(e,s,t);return n!==t&&!await o.supportsWildcard()?null:o}n=n.split(".").slice(1).join(".")}}};Wo=new WeakMap,_c=new WeakMap,Vo=new WeakSet,ql=async function(e,t){t=(t||[]).slice();const n=T(this,_c).interface;t.unshift(Sw(this.name));let i=null;await this.supportsWildcard()&&(i=n.getFunction(e),ge(i,"missing fragment","UNKNOWN_ERROR",{info:{funcName:e}}),t=[ote(this.name,255),n.encodeFunctionData(i,t)],e="resolve(bytes,bytes)"),t.push({enableCcipRead:!0});try{const s=await T(this,_c)[e](...t);return i?n.decodeFunctionResult(i,s)[0]:s}catch(s){if(!Qr(s,"CALL_EXCEPTION"))throw s}return null},Xp=new WeakSet,VC=async function(e,t){const n=await El.getEnsAddress(e);try{const s=await new Wu(n,["function resolver(bytes32) view returns (address)"],e).resolver(Sw(t),{enableCcipRead:!0});return s===gh?null:s}catch(i){throw i}return null},se(El,Xp);let Hp=El;const wN=BigInt(0);function wt(r,e){return function(t){return t==null?e:r(t)}}function zp(r,e){return t=>{if(e&&t==null)return null;if(!Array.isArray(t))throw new Error("not an array");return t.map(n=>r(n))}}function Th(r,e){return t=>{const n={};for(const i in r){let s=i;if(e&&i in e&&!(s in t)){for(const o of e[i])if(o in t){s=o;break}}try{const o=r[i](t[s]);o!==void 0&&(n[i]=o)}catch(o){const a=o instanceof Error?o.message:"not-an-error";ge(!1,`invalid value for value.${i} (${a})`,"BAD_DATA",{value:t})}}return n}}function ore(r){switch(r){case!0:case"true":return!0;case!1:case"false":return!1}q(!1,`invalid boolean; ${JSON.stringify(r)}`,"value",r)}function Vu(r){return q(Gt(r,!0),"invalid data","value",r),r}function Jr(r){return q(Gt(r,32),"invalid hash","value",r),r}const are=Th({address:Mt,blockHash:Jr,blockNumber:at,data:Vu,index:at,removed:wt(ore,!1),topics:zp(Jr),transactionHash:Jr,transactionIndex:at},{index:["logIndex"]});function cre(r){return are(r)}const ure=Th({hash:wt(Jr),parentHash:Jr,parentBeaconBlockRoot:wt(Jr,null),number:at,timestamp:at,nonce:wt(Vu),difficulty:Le,gasLimit:Le,gasUsed:Le,stateRoot:wt(Jr,null),receiptsRoot:wt(Jr,null),blobGasUsed:wt(Le,null),excessBlobGas:wt(Le,null),miner:wt(Mt),prevRandao:wt(Jr,null),extraData:Vu,baseFeePerGas:wt(Le)},{prevRandao:["mixHash"]});function lre(r){const e=ure(r);return e.transactions=r.transactions.map(t=>typeof t=="string"?t:bN(t)),e}const fre=Th({transactionIndex:at,blockNumber:at,transactionHash:Jr,address:Mt,topics:zp(Jr),data:Vu,index:at,blockHash:Jr},{index:["logIndex"]});function hre(r){return fre(r)}const dre=Th({to:wt(Mt,null),from:wt(Mt,null),contractAddress:wt(Mt,null),index:at,root:wt(Ce),gasUsed:Le,blobGasUsed:wt(Le,null),logsBloom:wt(Vu),blockHash:Jr,hash:Jr,logs:zp(hre),blockNumber:at,cumulativeGasUsed:Le,effectiveGasPrice:wt(Le),blobGasPrice:wt(Le,null),status:wt(at),type:wt(at,0)},{effectiveGasPrice:["gasPrice"],hash:["transactionHash"],index:["transactionIndex"]});function pre(r){return dre(r)}function bN(r){r.to&&Le(r.to)===wN&&(r.to="0x0000000000000000000000000000000000000000");const e=Th({hash:Jr,index:wt(at,void 0),type:t=>t==="0x"||t==null?0:at(t),accessList:wt(Xa,null),blobVersionedHashes:wt(zp(Jr,!0),null),blockHash:wt(Jr,null),blockNumber:wt(at,null),transactionIndex:wt(at,null),from:Mt,gasPrice:wt(Le),maxPriorityFeePerGas:wt(Le),maxFeePerGas:wt(Le),maxFeePerBlobGas:wt(Le,null),gasLimit:Le,to:wt(Mt,null),value:Le,nonce:at,data:Vu,creates:wt(Mt,null),chainId:wt(Le,null)},{data:["input"],gasLimit:["gas"],index:["transactionIndex"]})(r);if(e.to==null&&e.creates==null&&(e.creates=uee(e)),(r.type===1||r.type===2)&&r.accessList==null&&(e.accessList=[]),r.signature?e.signature=Si.from(r.signature):e.signature=Si.from(r),e.chainId==null){const t=e.signature.legacyChainId;t!=null&&(e.chainId=t)}return e.blockHash&&Le(e.blockHash)===wN&&(e.blockHash=null),e}const gre="0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";class Oh{constructor(e){Q(this,"name");ze(this,{name:e})}clone(){return new Oh(this.name)}}class Gp extends Oh{constructor(t,n){t==null&&(t=0);super(`org.ethers.network.plugins.GasCost#${t||0}`);Q(this,"effectiveBlock");Q(this,"txBase");Q(this,"txCreate");Q(this,"txDataZero");Q(this,"txDataNonzero");Q(this,"txAccessListStorageKey");Q(this,"txAccessListAddress");const i={effectiveBlock:t};function s(o,a){let u=(n||{})[o];u==null&&(u=a),q(typeof u=="number",`invalud value for ${o}`,"costs",n),i[o]=u}s("txBase",21e3),s("txCreate",32e3),s("txDataZero",4),s("txDataNonzero",16),s("txAccessListStorageKey",1900),s("txAccessListAddress",2400),ze(this,i)}clone(){return new Gp(this.effectiveBlock,this)}}class Kp extends Oh{constructor(t,n){super("org.ethers.plugins.network.Ens");Q(this,"address");Q(this,"targetNetwork");ze(this,{address:t||gre,targetNetwork:n??1})}clone(){return new Kp(this.address,this.targetNetwork)}}class yre extends Oh{constructor(t,n){super("org.ethers.plugins.network.FetchUrlFeeDataPlugin");se(this,Fh);se(this,Hh);F(this,Fh,t),F(this,Hh,n)}get url(){return T(this,Fh)}get processFunc(){return T(this,Hh)}clone(){return this}}Fh=new WeakMap,Hh=new WeakMap;const Kw=new Map,Il=class Il{constructor(e,t){se(this,xl);se(this,Rl);se(this,qo);F(this,xl,e),F(this,Rl,Le(t)),F(this,qo,new Map)}toJSON(){return{name:this.name,chainId:String(this.chainId)}}get name(){return T(this,xl)}set name(e){F(this,xl,e)}get chainId(){return T(this,Rl)}set chainId(e){F(this,Rl,Le(e,"chainId"))}matches(e){if(e==null)return!1;if(typeof e=="string"){try{return this.chainId===Le(e)}catch{}return this.name===e}if(typeof e=="number"||typeof e=="bigint"){try{return this.chainId===Le(e)}catch{}return!1}if(typeof e=="object"){if(e.chainId!=null){try{return this.chainId===Le(e.chainId)}catch{}return!1}return e.name!=null?this.name===e.name:!1}return!1}get plugins(){return Array.from(T(this,qo).values())}attachPlugin(e){if(T(this,qo).get(e.name))throw new Error(`cannot replace existing plugin: ${e.name} `);return T(this,qo).set(e.name,e.clone()),this}getPlugin(e){return T(this,qo).get(e)||null}getPlugins(e){return this.plugins.filter(t=>t.name.split("#")[0]===e)}clone(){const e=new Il(this.name,this.chainId);return this.plugins.forEach(t=>{e.attachPlugin(t.clone())}),e}computeIntrinsicGas(e){const t=this.getPlugin("org.ethers.plugins.network.GasCost")||new Gp;let n=t.txBase;if(e.to==null&&(n+=t.txCreate),e.data)for(let i=2;i<e.data.length;i+=2)e.data.substring(i,i+2)==="00"?n+=t.txDataZero:n+=t.txDataNonzero;if(e.accessList){const i=Xa(e.accessList);for(const s in i)n+=t.txAccessListAddress+t.txAccessListStorageKey*i[s].storageKeys.length}return n}static from(e){if(mre(),e==null)return Il.from("mainnet");if(typeof e=="number"&&(e=BigInt(e)),typeof e=="string"||typeof e=="bigint"){const t=Kw.get(e);if(t)return t();if(typeof e=="bigint")return new Il("unknown",e);q(!1,"unknown network","network",e)}if(typeof e.clone=="function")return e.clone();if(typeof e=="object"){q(typeof e.name=="string"&&typeof e.chainId=="number","invalid network object name or chainId","network",e);const t=new Il(e.name,e.chainId);return(e.ensAddress||e.ensNetwork!=null)&&t.attachPlugin(new Kp(e.ensAddress,e.ensNetwork)),t}q(!1,"invalid network","network",e)}static register(e,t){typeof e=="number"&&(e=BigInt(e));const n=Kw.get(e);n&&q(!1,`conflicting network for ${JSON.stringify(n.name)}`,"nameOrChainId",e),Kw.set(e,t)}};xl=new WeakMap,Rl=new WeakMap,qo=new WeakMap;let os=Il;function _N(r,e){const t=String(r);if(!t.match(/^[0-9.]+$/))throw new Error(`invalid gwei value: ${r}`);const n=t.split(".");if(n.length===1&&n.push(""),n.length!==2)throw new Error(`invalid gwei value: ${r}`);for(;n[1].length<e;)n[1]+="0";if(n[1].length>9){let i=BigInt(n[1].substring(0,9));n[1].substring(9).match(/^0+$/)||i++,n[1]=i.toString()}return BigInt(n[0]+n[1])}function AN(r){return new yre(r,async(e,t,n)=>{n.setHeader("User-Agent","ethers");let i;try{const[s,o]=await Promise.all([n.send(),e()]);i=s;const a=i.bodyJson.standard;return{gasPrice:o.gasPrice,maxFeePerGas:_N(a.maxFee,9),maxPriorityFeePerGas:_N(a.maxPriorityFee,9)}}catch(s){ge(!1,`error encountered with polygon gas station (${JSON.stringify(n.url)})`,"SERVER_ERROR",{request:n,response:i,error:s})}})}let vN=!1;function mre(){if(vN)return;vN=!0;function r(e,t,n){const i=function(){const s=new os(e,t);return n.ensNetwork!=null&&s.attachPlugin(new Kp(null,n.ensNetwork)),s.attachPlugin(new Gp),(n.plugins||[]).forEach(o=>{s.attachPlugin(o)}),s};os.register(e,i),os.register(t,i),n.altNames&&n.altNames.forEach(s=>{os.register(s,i)})}r("mainnet",1,{ensNetwork:1,altNames:["homestead"]}),r("ropsten",3,{ensNetwork:3}),r("rinkeby",4,{ensNetwork:4}),r("goerli",5,{ensNetwork:5}),r("kovan",42,{ensNetwork:42}),r("sepolia",11155111,{ensNetwork:11155111}),r("holesky",17e3,{ensNetwork:17e3}),r("classic",61,{}),r("classicKotti",6,{}),r("arbitrum",42161,{ensNetwork:1}),r("arbitrum-goerli",421613,{}),r("arbitrum-sepolia",421614,{}),r("base",8453,{ensNetwork:1}),r("base-goerli",84531,{}),r("base-sepolia",84532,{}),r("bnb",56,{ensNetwork:1}),r("bnbt",97,{}),r("linea",59144,{ensNetwork:1}),r("linea-goerli",59140,{}),r("linea-sepolia",59141,{}),r("matic",137,{ensNetwork:1,plugins:[AN("https://gasstation.polygon.technology/v2")]}),r("matic-amoy",80002,{}),r("matic-mumbai",80001,{altNames:["maticMumbai","maticmum"],plugins:[AN("https://gasstation-testnet.polygon.technology/v2")]}),r("optimism",10,{ensNetwork:1,plugins:[]}),r("optimism-goerli",420,{}),r("optimism-sepolia",11155420,{}),r("xdai",100,{ensNetwork:1})}function jw(r){return JSON.parse(JSON.stringify(r))}class wre{constructor(e){se(this,Sl);se(this,eo);se(this,hi);se(this,Zo);se(this,ds);F(this,eo,e),F(this,hi,null),F(this,Zo,4e3),F(this,ds,-2)}get pollingInterval(){return T(this,Zo)}set pollingInterval(e){F(this,Zo,e)}start(){T(this,hi)||(F(this,hi,T(this,eo)._setTimeout(Ee(this,Sl,vg).bind(this),T(this,Zo))),Ee(this,Sl,vg).call(this))}stop(){T(this,hi)&&(T(this,eo)._clearTimeout(T(this,hi)),F(this,hi,null))}pause(e){this.stop(),e&&F(this,ds,-2)}resume(){this.start()}}eo=new WeakMap,hi=new WeakMap,Zo=new WeakMap,ds=new WeakMap,Sl=new WeakSet,vg=async function(){try{const e=await T(this,eo).getBlockNumber();if(T(this,ds)===-2){F(this,ds,e);return}if(e!==T(this,ds)){for(let t=T(this,ds)+1;t<=e;t++){if(T(this,hi)==null)return;await T(this,eo).emit("block",t)}F(this,ds,e)}}catch{}T(this,hi)!=null&&F(this,hi,T(this,eo)._setTimeout(Ee(this,Sl,vg).bind(this),T(this,Zo)))};class Ww{constructor(e){se(this,Ac);se(this,vc);se(this,Qo);F(this,Ac,e),F(this,Qo,!1),F(this,vc,t=>{this._poll(t,T(this,Ac))})}async _poll(e,t){throw new Error("sub-classes must override this")}start(){T(this,Qo)||(F(this,Qo,!0),T(this,vc).call(this,-2),T(this,Ac).on("block",T(this,vc)))}stop(){T(this,Qo)&&(F(this,Qo,!1),T(this,Ac).off("block",T(this,vc)))}pause(e){this.stop()}resume(){this.start()}}Ac=new WeakMap,vc=new WeakMap,Qo=new WeakMap;class bre extends Ww{constructor(t,n){super(t);se(this,kl);se(this,to);F(this,kl,n),F(this,to,-2)}pause(t){t&&F(this,to,-2),super.pause(t)}async _poll(t,n){const i=await n.getBlock(T(this,kl));i!=null&&(T(this,to)===-2?F(this,to,i.number):i.number>T(this,to)&&(n.emit(T(this,kl),i.number),F(this,to,i.number)))}}kl=new WeakMap,to=new WeakMap;class _re extends Ww{constructor(t,n){super(t);se(this,eg);F(this,eg,jw(n))}async _poll(t,n){throw new Error("@TODO")}}eg=new WeakMap;class Are extends Ww{constructor(t,n){super(t);se(this,Tl);F(this,Tl,n)}async _poll(t,n){const i=await n.getTransactionReceipt(T(this,Tl));i&&n.emit(T(this,Tl),i)}}Tl=new WeakMap;class Vw{constructor(e,t){se(this,tg);se(this,ro);se(this,Ol);se(this,Nl);se(this,Yo);se(this,di);F(this,ro,e),F(this,Ol,jw(t)),F(this,Nl,Ee(this,tg,qC).bind(this)),F(this,Yo,!1),F(this,di,-2)}start(){T(this,Yo)||(F(this,Yo,!0),T(this,di)===-2&&T(this,ro).getBlockNumber().then(e=>{F(this,di,e)}),T(this,ro).on("block",T(this,Nl)))}stop(){T(this,Yo)&&(F(this,Yo,!1),T(this,ro).off("block",T(this,Nl)))}pause(e){this.stop(),e&&F(this,di,-2)}resume(){this.start()}}ro=new WeakMap,Ol=new WeakMap,Nl=new WeakMap,Yo=new WeakMap,di=new WeakMap,tg=new WeakSet,qC=async function(e){if(T(this,di)===-2)return;const t=jw(T(this,Ol));t.fromBlock=T(this,di)+1,t.toBlock=e;const n=await T(this,ro).getLogs(t);if(n.length===0){T(this,di)<e-60&&F(this,di,e-60);return}for(const i of n)T(this,ro).emit(T(this,Ol),i),F(this,di,i.blockNumber)};const vre=BigInt(2),Ere=10;function jp(r){return r&&typeof r.then=="function"}function Wp(r,e){return r+":"+JSON.stringify(e,(t,n)=>{if(n==null)return"null";if(typeof n=="bigint")return`bigint:${n.toString()}`;if(typeof n=="string")return n.toLowerCase();if(typeof n=="object"&&!Array.isArray(n)){const i=Object.keys(n);return i.sort(),i.reduce((s,o)=>(s[o]=n[o],s),{})}return n})}class Vp{constructor(e){Q(this,"name");ze(this,{name:e})}start(){}stop(){}pause(e){}resume(){}}function xre(r){return JSON.parse(JSON.stringify(r))}function qw(r){return r=Array.from(new Set(r).values()),r.sort(),r}async function Zw(r,e){if(r==null)throw new Error("invalid event");if(Array.isArray(r)&&(r={topics:r}),typeof r=="string")switch(r){case"block":case"debug":case"error":case"finalized":case"network":case"pending":case"safe":return{type:r,tag:r}}if(Gt(r,32)){const t=r.toLowerCase();return{type:"transaction",tag:Wp("tx",{hash:t}),hash:t}}if(r.orphan){const t=r;return{type:"orphan",tag:Wp("orphan",t),filter:xre(t)}}if(r.address||r.topics){const t=r,n={topics:(t.topics||[]).map(i=>i==null?null:Array.isArray(i)?qw(i.map(s=>s.toLowerCase())):i.toLowerCase())};if(t.address){const i=[],s=[],o=a=>{Gt(a)?i.push(a):s.push((async()=>{i.push(await An(a,e))})())};Array.isArray(t.address)?t.address.forEach(o):o(t.address),s.length&&await Promise.all(s),n.address=qw(i.map(a=>a.toLowerCase()))}return{filter:n,tag:Wp("event",n),type:"event"}}q(!1,"unknown ProviderEvent","event",r)}function Qw(){return new Date().getTime()}const Rre={cacheTimeout:250,pollingInterval:4e3};class Ire{constructor(e,t){se(this,ct);se(this,un);se(this,Jo);se(this,ln);se(this,Cl);se(this,Yn);se(this,Ec);se(this,Xo);se(this,no);se(this,zh);se(this,pi);se(this,Bl);se(this,Pl);if(F(this,Pl,Object.assign({},Rre,t||{})),e==="any")F(this,Ec,!0),F(this,Yn,null);else if(e){const n=os.from(e);F(this,Ec,!1),F(this,Yn,Promise.resolve(n)),setTimeout(()=>{this.emit("network",n,null)},0)}else F(this,Ec,!1),F(this,Yn,null);F(this,no,-1),F(this,Xo,new Map),F(this,un,new Map),F(this,Jo,new Map),F(this,ln,null),F(this,Cl,!1),F(this,zh,1),F(this,pi,new Map),F(this,Bl,!1)}get pollingInterval(){return T(this,Pl).pollingInterval}get provider(){return this}get plugins(){return Array.from(T(this,Jo).values())}attachPlugin(e){if(T(this,Jo).get(e.name))throw new Error(`cannot replace existing plugin: ${e.name} `);return T(this,Jo).set(e.name,e.connect(this)),this}getPlugin(e){return T(this,Jo).get(e)||null}get disableCcipRead(){return T(this,Bl)}set disableCcipRead(e){F(this,Bl,!!e)}async ccipReadFetch(e,t,n){if(this.disableCcipRead||n.length===0||e.to==null)return null;const i=e.to.toLowerCase(),s=t.toLowerCase(),o=[];for(let a=0;a<n.length;a++){const u=n[a],l=u.replace("{sender}",i).replace("{data}",s),h=new Us(l);u.indexOf("{data}")===-1&&(h.body={data:s,sender:i}),this.emit("debug",{action:"sendCcipReadFetchRequest",request:h,index:a,urls:n});let g="unknown error",b;try{b=await h.send()}catch(w){o.push(w.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:h,result:{error:w}});continue}try{const w=b.bodyJson;if(w.data)return this.emit("debug",{action:"receiveCcipReadFetchResult",request:h,result:w}),w.data;w.message&&(g=w.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:h,result:w})}catch{}ge(b.statusCode<400||b.statusCode>=500,`response not found during CCIP fetch: ${g}`,"OFFCHAIN_FAULT",{reason:"404_MISSING_RESOURCE",transaction:e,info:{url:u,errorMessage:g}}),o.push(g)}ge(!1,`error encountered during CCIP fetch: ${o.map(a=>JSON.stringify(a)).join(", ")}`,"OFFCHAIN_FAULT",{reason:"500_SERVER_ERROR",transaction:e,info:{urls:n,errorMessages:o}})}_wrapBlock(e,t){return new jte(lre(e),this)}_wrapLog(e,t){return new Ih(cre(e),this)}_wrapTransactionReceipt(e,t){return new nN(pre(e),this)}_wrapTransactionResponse(e,t){return new Sh(bN(e),this)}_detectNetwork(){ge(!1,"sub-classes must implement this","UNSUPPORTED_OPERATION",{operation:"_detectNetwork"})}async _perform(e){ge(!1,`unsupported method: ${e.method}`,"UNSUPPORTED_OPERATION",{operation:e.method,info:e})}async getBlockNumber(){const e=at(await Ee(this,ct,Jn).call(this,{method:"getBlockNumber"}),"%response");return T(this,no)>=0&&F(this,no,e),e}_getAddress(e){return An(e,this)}_getBlockTag(e){if(e==null)return"latest";switch(e){case"earliest":return"0x0";case"finalized":case"latest":case"pending":case"safe":return e}if(Gt(e))return Gt(e,32)?e:Bu(e);if(typeof e=="bigint"&&(e=at(e,"blockTag")),typeof e=="number")return e>=0?Bu(e):T(this,no)>=0?Bu(T(this,no)+e):this.getBlockNumber().then(t=>Bu(t+e));q(!1,"invalid blockTag","blockTag",e)}_getFilter(e){const t=(e.topics||[]).map(u=>u==null?null:Array.isArray(u)?qw(u.map(l=>l.toLowerCase())):u.toLowerCase()),n="blockHash"in e?e.blockHash:void 0,i=(u,l,h)=>{let g;switch(u.length){case 0:break;case 1:g=u[0];break;default:u.sort(),g=u}if(n&&(l!=null||h!=null))throw new Error("invalid filter");const b={};return g&&(b.address=g),t.length&&(b.topics=t),l&&(b.fromBlock=l),h&&(b.toBlock=h),n&&(b.blockHash=n),b};let s=[];if(e.address)if(Array.isArray(e.address))for(const u of e.address)s.push(this._getAddress(u));else s.push(this._getAddress(e.address));let o;"fromBlock"in e&&(o=this._getBlockTag(e.fromBlock));let a;return"toBlock"in e&&(a=this._getBlockTag(e.toBlock)),s.filter(u=>typeof u!="string").length||o!=null&&typeof o!="string"||a!=null&&typeof a!="string"?Promise.all([Promise.all(s),o,a]).then(u=>i(u[0],u[1],u[2])):i(s,o,a)}_getTransactionRequest(e){const t=Up(e),n=[];if(["to","from"].forEach(i=>{if(t[i]==null)return;const s=An(t[i],this);jp(s)?n.push(async function(){t[i]=await s}()):t[i]=s}),t.blockTag!=null){const i=this._getBlockTag(t.blockTag);jp(i)?n.push(async function(){t.blockTag=await i}()):t.blockTag=i}return n.length?async function(){return await Promise.all(n),t}():t}async getNetwork(){if(T(this,Yn)==null){const i=(async()=>{try{const s=await this._detectNetwork();return this.emit("network",s,null),s}catch(s){throw T(this,Yn)===i&&F(this,Yn,null),s}})();return F(this,Yn,i),(await i).clone()}const e=T(this,Yn),[t,n]=await Promise.all([e,this._detectNetwork()]);return t.chainId!==n.chainId&&(T(this,Ec)?(this.emit("network",n,t),T(this,Yn)===e&&F(this,Yn,Promise.resolve(n))):ge(!1,`network changed: ${t.chainId} => ${n.chainId} `,"NETWORK_ERROR",{event:"changed"})),t.clone()}async getFeeData(){const e=await this.getNetwork(),t=async()=>{const{_block:i,gasPrice:s,priorityFee:o}=await mn({_block:Ee(this,ct,T_).call(this,"latest",!1),gasPrice:(async()=>{try{const h=await Ee(this,ct,Jn).call(this,{method:"getGasPrice"});return Le(h,"%response")}catch{}return null})(),priorityFee:(async()=>{try{const h=await Ee(this,ct,Jn).call(this,{method:"getPriorityFee"});return Le(h,"%response")}catch{}return null})()});let a=null,u=null;const l=this._wrapBlock(i,e);return l&&l.baseFeePerGas&&(u=o??BigInt("1000000000"),a=l.baseFeePerGas*vre+u),new rN(s,a,u)},n=e.getPlugin("org.ethers.plugins.network.FetchUrlFeeDataPlugin");if(n){const i=new Us(n.url),s=await n.processFunc(t,this,i);return new rN(s.gasPrice,s.maxFeePerGas,s.maxPriorityFeePerGas)}return await t()}async estimateGas(e){let t=this._getTransactionRequest(e);return jp(t)&&(t=await t),Le(await Ee(this,ct,Jn).call(this,{method:"estimateGas",transaction:t}),"%response")}async call(e){const{tx:t,blockTag:n}=await mn({tx:this._getTransactionRequest(e),blockTag:this._getBlockTag(e.blockTag)});return await Ee(this,ct,k_).call(this,Ee(this,ct,S_).call(this,t,n,e.enableCcipRead?0:-1))}async getBalance(e,t){return Le(await Ee(this,ct,Ad).call(this,{method:"getBalance"},e,t),"%response")}async getTransactionCount(e,t){return at(await Ee(this,ct,Ad).call(this,{method:"getTransactionCount"},e,t),"%response")}async getCode(e,t){return Ce(await Ee(this,ct,Ad).call(this,{method:"getCode"},e,t))}async getStorage(e,t,n){const i=Le(t,"position");return Ce(await Ee(this,ct,Ad).call(this,{method:"getStorage",position:i},e,n))}async broadcastTransaction(e){const{blockNumber:t,hash:n,network:i}=await mn({blockNumber:this.getBlockNumber(),hash:this._perform({method:"broadcastTransaction",signedTransaction:e}),network:this.getNetwork()}),s=Cp.from(e);if(s.hash!==n)throw new Error("@TODO: the returned hash did not match");return this._wrapTransactionResponse(s,i).replaceableTransaction(t)}async getBlock(e,t){const{network:n,params:i}=await mn({network:this.getNetwork(),params:Ee(this,ct,T_).call(this,e,!!t)});return i==null?null:this._wrapBlock(i,n)}async getTransaction(e){const{network:t,params:n}=await mn({network:this.getNetwork(),params:Ee(this,ct,Jn).call(this,{method:"getTransaction",hash:e})});return n==null?null:this._wrapTransactionResponse(n,t)}async getTransactionReceipt(e){const{network:t,params:n}=await mn({network:this.getNetwork(),params:Ee(this,ct,Jn).call(this,{method:"getTransactionReceipt",hash:e})});if(n==null)return null;if(n.gasPrice==null&&n.effectiveGasPrice==null){const i=await Ee(this,ct,Jn).call(this,{method:"getTransaction",hash:e});if(i==null)throw new Error("report this; could not find tx or effectiveGasPrice");n.effectiveGasPrice=i.gasPrice}return this._wrapTransactionReceipt(n,t)}async getTransactionResult(e){const{result:t}=await mn({network:this.getNetwork(),result:Ee(this,ct,Jn).call(this,{method:"getTransactionResult",hash:e})});return t==null?null:Ce(t)}async getLogs(e){let t=this._getFilter(e);jp(t)&&(t=await t);const{network:n,params:i}=await mn({network:this.getNetwork(),params:Ee(this,ct,Jn).call(this,{method:"getLogs",filter:t})});return i.map(s=>this._wrapLog(s,n))}_getProvider(e){ge(!1,"provider cannot connect to target network","UNSUPPORTED_OPERATION",{operation:"_getProvider()"})}async getResolver(e){return await Hp.fromName(this,e)}async getAvatar(e){const t=await this.getResolver(e);return t?await t.getAvatar():null}async resolveName(e){const t=await this.getResolver(e);return t?await t.getAddress():null}async lookupAddress(e){e=Mt(e);const t=Sw(e.substring(2).toLowerCase()+".addr.reverse");try{const n=await Hp.getEnsAddress(this),s=await new Wu(n,["function resolver(bytes32) view returns (address)"],this).resolver(t);if(s==null||s===gh)return null;const a=await new Wu(s,["function name(bytes32) view returns (string)"],this).name(t);return await this.resolveName(a)!==e?null:a}catch(n){if(Qr(n,"BAD_DATA")&&n.value==="0x"||Qr(n,"CALL_EXCEPTION"))return null;throw n}return null}async waitForTransaction(e,t,n){const i=t??1;return i===0?this.getTransactionReceipt(e):new Promise(async(s,o)=>{let a=null;const u=async l=>{try{const h=await this.getTransactionReceipt(e);if(h!=null&&l-h.blockNumber+1>=i){s(h),a&&(clearTimeout(a),a=null);return}}catch(h){console.log("EEE",h)}this.once("block",u)};n!=null&&(a=setTimeout(()=>{a!=null&&(a=null,this.off("block",u),o(Jt("timeout","TIMEOUT",{reason:"timeout"})))},n)),u(await this.getBlockNumber())})}async waitForBlock(e){ge(!1,"not implemented yet","NOT_IMPLEMENTED",{operation:"waitForBlock"})}_clearTimeout(e){const t=T(this,pi).get(e);t&&(t.timer&&clearTimeout(t.timer),T(this,pi).delete(e))}_setTimeout(e,t){t==null&&(t=0);const n=bd(this,zh)._++,i=()=>{T(this,pi).delete(n),e()};if(this.paused)T(this,pi).set(n,{timer:null,func:i,time:t});else{const s=setTimeout(i,t);T(this,pi).set(n,{timer:s,func:i,time:Qw()})}return n}_forEachSubscriber(e){for(const t of T(this,un).values())e(t.subscriber)}_getSubscriber(e){switch(e.type){case"debug":case"error":case"network":return new Vp(e.type);case"block":{const t=new wre(this);return t.pollingInterval=this.pollingInterval,t}case"safe":case"finalized":return new bre(this,e.type);case"event":return new Vw(this,e.filter);case"transaction":return new Are(this,e.hash);case"orphan":return new _re(this,e.filter)}throw new Error(`unsupported event: ${e.type}`)}_recoverSubscriber(e,t){for(const n of T(this,un).values())if(n.subscriber===e){n.started&&n.subscriber.stop(),n.subscriber=t,n.started&&t.start(),T(this,ln)!=null&&t.pause(T(this,ln));break}}async on(e,t){const n=await Ee(this,ct,Eg).call(this,e);return n.listeners.push({listener:t,once:!1}),n.started||(n.subscriber.start(),n.started=!0,T(this,ln)!=null&&n.subscriber.pause(T(this,ln))),this}async once(e,t){const n=await Ee(this,ct,Eg).call(this,e);return n.listeners.push({listener:t,once:!0}),n.started||(n.subscriber.start(),n.started=!0,T(this,ln)!=null&&n.subscriber.pause(T(this,ln))),this}async emit(e,...t){const n=await Ee(this,ct,vd).call(this,e,t);if(!n||n.listeners.length===0)return!1;const i=n.listeners.length;return n.listeners=n.listeners.filter(({listener:s,once:o})=>{const a=new $k(this,o?null:s,e);try{s.call(this,...t,a)}catch{}return!o}),n.listeners.length===0&&(n.started&&n.subscriber.stop(),T(this,un).delete(n.tag)),i>0}async listenerCount(e){if(e){const n=await Ee(this,ct,vd).call(this,e);return n?n.listeners.length:0}let t=0;for(const{listeners:n}of T(this,un).values())t+=n.length;return t}async listeners(e){if(e){const n=await Ee(this,ct,vd).call(this,e);return n?n.listeners.map(({listener:i})=>i):[]}let t=[];for(const{listeners:n}of T(this,un).values())t=t.concat(n.map(({listener:i})=>i));return t}async off(e,t){const n=await Ee(this,ct,vd).call(this,e);if(!n)return this;if(t){const i=n.listeners.map(({listener:s})=>s).indexOf(t);i>=0&&n.listeners.splice(i,1)}return(!t||n.listeners.length===0)&&(n.started&&n.subscriber.stop(),T(this,un).delete(n.tag)),this}async removeAllListeners(e){if(e){const{tag:t,started:n,subscriber:i}=await Ee(this,ct,Eg).call(this,e);n&&i.stop(),T(this,un).delete(t)}else for(const[t,{started:n,subscriber:i}]of T(this,un))n&&i.stop(),T(this,un).delete(t);return this}async addListener(e,t){return await this.on(e,t)}async removeListener(e,t){return this.off(e,t)}get destroyed(){return T(this,Cl)}destroy(){this.removeAllListeners();for(const e of T(this,pi).keys())this._clearTimeout(e);F(this,Cl,!0)}get paused(){return T(this,ln)!=null}set paused(e){!!e!==this.paused&&(this.paused?this.resume():this.pause(!1))}pause(e){if(F(this,no,-1),T(this,ln)!=null){if(T(this,ln)==!!e)return;ge(!1,"cannot change pause type; resume first","UNSUPPORTED_OPERATION",{operation:"pause"})}this._forEachSubscriber(t=>t.pause(e)),F(this,ln,!!e);for(const t of T(this,pi).values())t.timer&&clearTimeout(t.timer),t.time=Qw()-t.time}resume(){if(T(this,ln)!=null){this._forEachSubscriber(e=>e.resume()),F(this,ln,null);for(const e of T(this,pi).values()){let t=e.time;t<0&&(t=0),e.time=Qw(),setTimeout(e.func,t)}}}}un=new WeakMap,Jo=new WeakMap,ln=new WeakMap,Cl=new WeakMap,Yn=new WeakMap,Ec=new WeakMap,Xo=new WeakMap,no=new WeakMap,zh=new WeakMap,pi=new WeakMap,Bl=new WeakMap,Pl=new WeakMap,ct=new WeakSet,Jn=async function(e){const t=T(this,Pl).cacheTimeout;if(t<0)return await this._perform(e);const n=Wp(e.method,e);let i=T(this,Xo).get(n);return i||(i=this._perform(e),T(this,Xo).set(n,i),setTimeout(()=>{T(this,Xo).get(n)===i&&T(this,Xo).delete(n)},t)),await i},S_=async function(e,t,n){ge(n<Ere,"CCIP read exceeded maximum redirections","OFFCHAIN_FAULT",{reason:"TOO_MANY_REDIRECTS",transaction:Object.assign({},e,{blockTag:t,enableCcipRead:!0})});const i=Up(e);try{return Ce(await this._perform({method:"call",transaction:i,blockTag:t}))}catch(s){if(!this.disableCcipRead&&j1(s)&&s.data&&n>=0&&t==="latest"&&i.to!=null&&lr(s.data,0,4)==="0x556f1830"){const o=s.data,a=await An(i.to,this);let u;try{u=Nre(lr(s.data,4))}catch(g){ge(!1,g.message,"OFFCHAIN_FAULT",{reason:"BAD_DATA",transaction:i,info:{data:o}})}ge(u.sender.toLowerCase()===a.toLowerCase(),"CCIP Read sender mismatch","CALL_EXCEPTION",{action:"call",data:o,reason:"OffchainLookup",transaction:i,invocation:null,revert:{signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",name:"OffchainLookup",args:u.errorArgs}});const l=await this.ccipReadFetch(i,u.calldata,u.urls);ge(l!=null,"CCIP Read failed to fetch data","OFFCHAIN_FAULT",{reason:"FETCH_FAILED",transaction:i,info:{data:s.data,errorArgs:u.errorArgs}});const h={to:a,data:xr([u.selector,Ore([l,u.extraData])])};this.emit("debug",{action:"sendCcipReadCall",transaction:h});try{const g=await Ee(this,ct,S_).call(this,h,t,n+1);return this.emit("debug",{action:"receiveCcipReadCallResult",transaction:Object.assign({},h),result:g}),g}catch(g){throw this.emit("debug",{action:"receiveCcipReadCallError",transaction:Object.assign({},h),error:g}),g}}throw s}},k_=async function(e){const{value:t}=await mn({network:this.getNetwork(),value:e});return t},Ad=async function(e,t,n){let i=this._getAddress(t),s=this._getBlockTag(n);return(typeof i!="string"||typeof s!="string")&&([i,s]=await Promise.all([i,s])),await Ee(this,ct,k_).call(this,Ee(this,ct,Jn).call(this,Object.assign(e,{address:i,blockTag:s})))},T_=async function(e,t){if(Gt(e,32))return await Ee(this,ct,Jn).call(this,{method:"getBlock",blockHash:e,includeTransactions:t});let n=this._getBlockTag(e);return typeof n!="string"&&(n=await n),await Ee(this,ct,Jn).call(this,{method:"getBlock",blockTag:n,includeTransactions:t})},vd=async function(e,t){let n=await Zw(e,this);return n.type==="event"&&t&&t.length>0&&t[0].removed===!0&&(n=await Zw({orphan:"drop-log",log:t[0]},this)),T(this,un).get(n.tag)||null},Eg=async function(e){const t=await Zw(e,this),n=t.tag;let i=T(this,un).get(n);return i||(i={subscriber:this._getSubscriber(t),tag:n,addressableMap:new WeakMap,nameMap:new Map,started:!1,listeners:[]},T(this,un).set(n,i)),i};function Sre(r,e){try{const t=Yw(r,e);if(t)return hp(t)}catch{}return null}function Yw(r,e){if(r==="0x")return null;try{const t=at(lr(r,e,e+32)),n=at(lr(r,t,t+32));return lr(r,t+32,t+32+n)}catch{}return null}function EN(r){const e=bn(r);if(e.length>32)throw new Error("internal; should not happen");const t=new Uint8Array(32);return t.set(e,32-e.length),t}function kre(r){if(r.length%32===0)return r;const e=new Uint8Array(Math.ceil(r.length/32)*32);return e.set(r),e}const Tre=new Uint8Array([]);function Ore(r){const e=[];let t=0;for(let n=0;n<r.length;n++)e.push(Tre),t+=32;for(let n=0;n<r.length;n++){const i=_t(r[n]);e[n]=EN(t),e.push(EN(i.length)),e.push(kre(i)),t+=32+Math.ceil(i.length/32)*32}return xr(e)}const xN="0x0000000000000000000000000000000000000000000000000000000000000000";function Nre(r){const e={sender:"",urls:[],calldata:"",selector:"",extraData:"",errorArgs:[]};ge(Nu(r)>=5*32,"insufficient OffchainLookup data","OFFCHAIN_FAULT",{reason:"insufficient OffchainLookup data"});const t=lr(r,0,32);ge(lr(t,0,12)===lr(xN,0,12),"corrupt OffchainLookup sender","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup sender"}),e.sender=lr(t,12);try{const n=[],i=at(lr(r,32,64)),s=at(lr(r,i,i+32)),o=lr(r,i+32);for(let a=0;a<s;a++){const u=Sre(o,a*32);if(u==null)throw new Error("abort");n.push(u)}e.urls=n}catch{ge(!1,"corrupt OffchainLookup urls","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup urls"})}try{const n=Yw(r,64);if(n==null)throw new Error("abort");e.calldata=n}catch{ge(!1,"corrupt OffchainLookup calldata","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup calldata"})}ge(lr(r,100,128)===lr(xN,0,28),"corrupt OffchainLookup callbaackSelector","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup callbaackSelector"}),e.selector=lr(r,96,100);try{const n=Yw(r,128);if(n==null)throw new Error("abort");e.extraData=n}catch{ge(!1,"corrupt OffchainLookup extraData","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup extraData"})}return e.errorArgs="sender,urls,calldata,selector,extraData".split(/,/).map(n=>e[n]),e}function qu(r,e){if(r.provider)return r.provider;ge(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:e})}async function RN(r,e){let t=Up(e);if(t.to!=null&&(t.to=An(t.to,r)),t.from!=null){const n=t.from;t.from=Promise.all([r.getAddress(),An(n,r)]).then(([i,s])=>(q(i.toLowerCase()===s.toLowerCase(),"transaction from mismatch","tx.from",s),i))}else t.from=r.getAddress();return await mn(t)}class Cre{constructor(e){Q(this,"provider");ze(this,{provider:e||null})}async getNonce(e){return qu(this,"getTransactionCount").getTransactionCount(await this.getAddress(),e)}async populateCall(e){return await RN(this,e)}async populateTransaction(e){const t=qu(this,"populateTransaction"),n=await RN(this,e);n.nonce==null&&(n.nonce=await this.getNonce("pending")),n.gasLimit==null&&(n.gasLimit=await this.estimateGas(n));const i=await this.provider.getNetwork();if(n.chainId!=null){const o=Le(n.chainId);q(o===i.chainId,"transaction chainId mismatch","tx.chainId",e.chainId)}else n.chainId=i.chainId;const s=n.maxFeePerGas!=null||n.maxPriorityFeePerGas!=null;if(n.gasPrice!=null&&(n.type===2||s)?q(!1,"eip-1559 transaction do not support gasPrice","tx",e):(n.type===0||n.type===1)&&s&&q(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",e),(n.type===2||n.type==null)&&n.maxFeePerGas!=null&&n.maxPriorityFeePerGas!=null)n.type=2;else if(n.type===0||n.type===1){const o=await t.getFeeData();ge(o.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),n.gasPrice==null&&(n.gasPrice=o.gasPrice)}else{const o=await t.getFeeData();if(n.type==null)if(o.maxFeePerGas!=null&&o.maxPriorityFeePerGas!=null)if(n.type=2,n.gasPrice!=null){const a=n.gasPrice;delete n.gasPrice,n.maxFeePerGas=a,n.maxPriorityFeePerGas=a}else n.maxFeePerGas==null&&(n.maxFeePerGas=o.maxFeePerGas),n.maxPriorityFeePerGas==null&&(n.maxPriorityFeePerGas=o.maxPriorityFeePerGas);else o.gasPrice!=null?(ge(!s,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),n.gasPrice==null&&(n.gasPrice=o.gasPrice),n.type=0):ge(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else(n.type===2||n.type===3)&&(n.maxFeePerGas==null&&(n.maxFeePerGas=o.maxFeePerGas),n.maxPriorityFeePerGas==null&&(n.maxPriorityFeePerGas=o.maxPriorityFeePerGas))}return await mn(n)}async estimateGas(e){return qu(this,"estimateGas").estimateGas(await this.populateCall(e))}async call(e){return qu(this,"call").call(await this.populateCall(e))}async resolveName(e){return await qu(this,"resolveName").resolveName(e)}async sendTransaction(e){const t=qu(this,"sendTransaction"),n=await this.populateTransaction(e);delete n.from;const i=Cp.from(n);return await t.broadcastTransaction(await this.signTransaction(i))}}function Bre(r){return JSON.parse(JSON.stringify(r))}class IN{constructor(e){se(this,ta);se(this,En);se(this,ps);se(this,xc);se(this,ea);se(this,Rc);se(this,Ml);F(this,En,e),F(this,ps,null),F(this,xc,Ee(this,ta,O_).bind(this)),F(this,ea,!1),F(this,Rc,null),F(this,Ml,!1)}_subscribe(e){throw new Error("subclasses must override this")}_emitResults(e,t){throw new Error("subclasses must override this")}_recover(e){throw new Error("subclasses must override this")}start(){T(this,ea)||(F(this,ea,!0),Ee(this,ta,O_).call(this,-2))}stop(){T(this,ea)&&(F(this,ea,!1),F(this,Ml,!0),Ee(this,ta,N_).call(this),T(this,En).off("block",T(this,xc)))}pause(e){e&&Ee(this,ta,N_).call(this),T(this,En).off("block",T(this,xc))}resume(){this.start()}}En=new WeakMap,ps=new WeakMap,xc=new WeakMap,ea=new WeakMap,Rc=new WeakMap,Ml=new WeakMap,ta=new WeakSet,O_=async function(e){try{T(this,ps)==null&&F(this,ps,this._subscribe(T(this,En)));let t=null;try{t=await T(this,ps)}catch(s){if(!Qr(s,"UNSUPPORTED_OPERATION")||s.operation!=="eth_newFilter")throw s}if(t==null){F(this,ps,null),T(this,En)._recoverSubscriber(this,this._recover(T(this,En)));return}const n=await T(this,En).getNetwork();if(T(this,Rc)||F(this,Rc,n),T(this,Rc).chainId!==n.chainId)throw new Error("chaid changed");if(T(this,Ml))return;const i=await T(this,En).send("eth_getFilterChanges",[t]);await this._emitResults(T(this,En),i)}catch(t){console.log("@TODO",t)}T(this,En).once("block",T(this,xc))},N_=function(){const e=T(this,ps);e&&(F(this,ps,null),e.then(t=>{T(this,En).destroyed||T(this,En).send("eth_uninstallFilter",[t])}))};class Pre extends IN{constructor(t,n){super(t);se(this,Ic);F(this,Ic,Bre(n))}_recover(t){return new Vw(t,T(this,Ic))}async _subscribe(t){return await t.send("eth_newFilter",[T(this,Ic)])}async _emitResults(t,n){for(const i of n)t.emit(T(this,Ic),t._wrapLog(i,t._network))}}Ic=new WeakMap;class Mre extends IN{async _subscribe(e){return await e.send("eth_newPendingTransactionFilter",[])}async _emitResults(e,t){for(const n of t)e.emit("pending",n)}}const Lre="bigint,boolean,function,number,string,symbol".split(/,/g);function qp(r){if(r==null||Lre.indexOf(typeof r)>=0||typeof r.getAddress=="function")return r;if(Array.isArray(r))return r.map(qp);if(typeof r=="object")return Object.keys(r).reduce((e,t)=>(e[t]=r[t],e),{});throw new Error(`should not happen: ${r} (${typeof r})`)}function Ure(r){return new Promise(e=>{setTimeout(e,r)})}function Zu(r){return r&&r.toLowerCase()}function SN(r){return r&&typeof r.pollingInterval=="number"}const kN={polling:!1,staticNetwork:null,batchStallTime:10,batchMaxSize:1<<20,batchMaxCount:100,cacheTimeout:250,pollingInterval:4e3};class Jw extends Cre{constructor(t,n){super(t);Q(this,"address");n=Mt(n),ze(this,{address:n})}connect(t){ge(!1,"cannot reconnect JsonRpcSigner","UNSUPPORTED_OPERATION",{operation:"signer.connect"})}async getAddress(){return this.address}async populateTransaction(t){return await this.populateCall(t)}async sendUncheckedTransaction(t){const n=qp(t),i=[];if(n.from){const o=n.from;i.push((async()=>{const a=await An(o,this.provider);q(a!=null&&a.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",t),n.from=a})())}else n.from=this.address;if(n.gasLimit==null&&i.push((async()=>{n.gasLimit=await this.provider.estimateGas({...n,from:this.address})})()),n.to!=null){const o=n.to;i.push((async()=>{n.to=await An(o,this.provider)})())}i.length&&await Promise.all(i);const s=this.provider.getRpcTransaction(n);return this.provider.send("eth_sendTransaction",[s])}async sendTransaction(t){const n=await this.provider.getBlockNumber(),i=await this.sendUncheckedTransaction(t);return await new Promise((s,o)=>{const a=[1e3,100];let u=0;const l=async()=>{try{const h=await this.provider.getTransaction(i);if(h!=null){s(h.replaceableTransaction(n));return}}catch(h){if(Qr(h,"CANCELLED")||Qr(h,"BAD_DATA")||Qr(h,"NETWORK_ERROR")||Qr(h,"UNSUPPORTED_OPERATION")){h.info==null&&(h.info={}),h.info.sendTransactionHash=i,o(h);return}if(Qr(h,"INVALID_ARGUMENT")&&(u++,h.info==null&&(h.info={}),h.info.sendTransactionHash=i,u>10)){o(h);return}this.provider.emit("error",Jt("failed to fetch transation after sending (will try again)","UNKNOWN_ERROR",{error:h}))}this.provider._setTimeout(()=>{l()},a.pop()||4e3)};l()})}async signTransaction(t){const n=qp(t);if(n.from){const s=await An(n.from,this.provider);q(s!=null&&s.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",t),n.from=s}else n.from=this.address;const i=this.provider.getRpcTransaction(n);return await this.provider.send("eth_signTransaction",[i])}async signMessage(t){const n=typeof t=="string"?Ls(t):t;return await this.provider.send("personal_sign",[Ce(n),this.address.toLowerCase()])}async signTypedData(t,n,i){const s=qp(i),o=await Pp.resolveNames(t,n,s,async a=>{const u=await An(a);return q(u!=null,"TypedData does not support null address","value",a),u});return await this.provider.send("eth_signTypedData_v4",[this.address.toLowerCase(),JSON.stringify(Pp.getPayload(o.domain,n,o.value))])}async unlock(t){return this.provider.send("personal_unlockAccount",[this.address.toLowerCase(),t,null])}async _legacySignMessage(t){const n=typeof t=="string"?Ls(t):t;return await this.provider.send("eth_sign",[this.address.toLowerCase(),Ce(n)])}}class TN extends Ire{constructor(t,n){super(t,n);se(this,Gh);se(this,Sc);se(this,Ll);se(this,io);se(this,gs);se(this,Pi);se(this,gi);se(this,Dn);F(this,Ll,1),F(this,Sc,Object.assign({},kN,n||{})),F(this,io,[]),F(this,gs,null),F(this,gi,null),F(this,Dn,null);{let s=null;const o=new Promise(a=>{s=a});F(this,Pi,{promise:o,resolve:s})}const i=this._getOption("staticNetwork");typeof i=="boolean"?(q(!i||t!=="any","staticNetwork cannot be used on special network 'any'","options",n),i&&t!=null&&F(this,gi,os.from(t))):i&&(q(t==null||i.matches(t),"staticNetwork MUST match network object","options",n),F(this,gi,i))}_getOption(t){return T(this,Sc)[t]}get _network(){return ge(T(this,gi),"network is not available yet","NETWORK_ERROR"),T(this,gi)}async _perform(t){if(t.method==="call"||t.method==="estimateGas"){let i=t.transaction;if(i&&i.type!=null&&Le(i.type)&&i.maxFeePerGas==null&&i.maxPriorityFeePerGas==null){const s=await this.getFeeData();s.maxFeePerGas==null&&s.maxPriorityFeePerGas==null&&(t=Object.assign({},t,{transaction:Object.assign({},i,{type:void 0})}))}}const n=this.getRpcRequest(t);return n!=null?await this.send(n.method,n.args):super._perform(t)}async _detectNetwork(){const t=this._getOption("staticNetwork");if(t)if(t===!0){if(T(this,gi))return T(this,gi)}else return t;return T(this,Dn)?await T(this,Dn):this.ready?(F(this,Dn,(async()=>{try{const n=os.from(Le(await this.send("eth_chainId",[])));return F(this,Dn,null),n}catch(n){throw F(this,Dn,null),n}})()),await T(this,Dn)):(F(this,Dn,(async()=>{const n={id:bd(this,Ll)._++,method:"eth_chainId",params:[],jsonrpc:"2.0"};this.emit("debug",{action:"sendRpcPayload",payload:n});let i;try{i=(await this._send(n))[0],F(this,Dn,null)}catch(s){throw F(this,Dn,null),this.emit("debug",{action:"receiveRpcError",error:s}),s}if(this.emit("debug",{action:"receiveRpcResult",result:i}),"result"in i)return os.from(Le(i.result));throw this.getRpcError(n,i)})()),await T(this,Dn))}_start(){T(this,Pi)==null||T(this,Pi).resolve==null||(T(this,Pi).resolve(),F(this,Pi,null),(async()=>{for(;T(this,gi)==null&&!this.destroyed;)try{F(this,gi,await this._detectNetwork())}catch(t){if(this.destroyed)break;console.log("JsonRpcProvider failed to detect network and cannot start up; retry in 1s (perhaps the URL is wrong or the node is not started)"),this.emit("error",Jt("failed to bootstrap network detection","NETWORK_ERROR",{event:"initial-network-discovery",info:{error:t}})),await Ure(1e3)}Ee(this,Gh,C_).call(this)})())}async _waitUntilReady(){if(T(this,Pi)!=null)return await T(this,Pi).promise}_getSubscriber(t){return t.type==="pending"?new Mre(this):t.type==="event"?this._getOption("polling")?new Vw(this,t.filter):new Pre(this,t.filter):t.type==="orphan"&&t.filter.orphan==="drop-log"?new Vp("orphan"):super._getSubscriber(t)}get ready(){return T(this,Pi)==null}getRpcTransaction(t){const n={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(i=>{if(t[i]==null)return;let s=i;i==="gasLimit"&&(s="gas"),n[s]=Bu(Le(t[i],`tx.${i}`))}),["from","to","data"].forEach(i=>{t[i]!=null&&(n[i]=Ce(t[i]))}),t.accessList&&(n.accessList=Xa(t.accessList)),t.blobVersionedHashes&&(n.blobVersionedHashes=t.blobVersionedHashes.map(i=>i.toLowerCase())),n}getRpcRequest(t){switch(t.method){case"chainId":return{method:"eth_chainId",args:[]};case"getBlockNumber":return{method:"eth_blockNumber",args:[]};case"getGasPrice":return{method:"eth_gasPrice",args:[]};case"getPriorityFee":return{method:"eth_maxPriorityFeePerGas",args:[]};case"getBalance":return{method:"eth_getBalance",args:[Zu(t.address),t.blockTag]};case"getTransactionCount":return{method:"eth_getTransactionCount",args:[Zu(t.address),t.blockTag]};case"getCode":return{method:"eth_getCode",args:[Zu(t.address),t.blockTag]};case"getStorage":return{method:"eth_getStorageAt",args:[Zu(t.address),"0x"+t.position.toString(16),t.blockTag]};case"broadcastTransaction":return{method:"eth_sendRawTransaction",args:[t.signedTransaction]};case"getBlock":if("blockTag"in t)return{method:"eth_getBlockByNumber",args:[t.blockTag,!!t.includeTransactions]};if("blockHash"in t)return{method:"eth_getBlockByHash",args:[t.blockHash,!!t.includeTransactions]};break;case"getTransaction":return{method:"eth_getTransactionByHash",args:[t.hash]};case"getTransactionReceipt":return{method:"eth_getTransactionReceipt",args:[t.hash]};case"call":return{method:"eth_call",args:[this.getRpcTransaction(t.transaction),t.blockTag]};case"estimateGas":return{method:"eth_estimateGas",args:[this.getRpcTransaction(t.transaction)]};case"getLogs":return t.filter&&t.filter.address!=null&&(Array.isArray(t.filter.address)?t.filter.address=t.filter.address.map(Zu):t.filter.address=Zu(t.filter.address)),{method:"eth_getLogs",args:[t.filter]}}return null}getRpcError(t,n){const{method:i}=t,{error:s}=n;if(i==="eth_estimateGas"&&s.message){const u=s.message;if(!u.match(/revert/i)&&u.match(/insufficient funds/i))return Jt("insufficient funds","INSUFFICIENT_FUNDS",{transaction:t.params[0],info:{payload:t,error:s}})}if(i==="eth_call"||i==="eth_estimateGas"){const u=Xw(s),l=Rh.getBuiltinCallException(i==="eth_call"?"call":"estimateGas",t.params[0],u?u.data:null);return l.info={error:s,payload:t},l}const o=JSON.stringify(Fre(s));if(typeof s.message=="string"&&s.message.match(/user denied|ethers-user-denied/i))return Jt("user rejected action","ACTION_REJECTED",{action:{eth_sign:"signMessage",personal_sign:"signMessage",eth_signTypedData_v4:"signTypedData",eth_signTransaction:"signTransaction",eth_sendTransaction:"sendTransaction",eth_requestAccounts:"requestAccess",wallet_requestAccounts:"requestAccess"}[i]||"unknown",reason:"rejected",info:{payload:t,error:s}});if(i==="eth_sendRawTransaction"||i==="eth_sendTransaction"){const u=t.params[0];if(o.match(/insufficient funds|base fee exceeds gas limit/i))return Jt("insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:u,info:{error:s}});if(o.match(/nonce/i)&&o.match(/too low/i))return Jt("nonce has already been used","NONCE_EXPIRED",{transaction:u,info:{error:s}});if(o.match(/replacement transaction/i)&&o.match(/underpriced/i))return Jt("replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:u,info:{error:s}});if(o.match(/only replay-protected/i))return Jt("legacy pre-eip-155 transactions not supported","UNSUPPORTED_OPERATION",{operation:i,info:{transaction:u,info:{error:s}}})}let a=!!o.match(/the method .* does not exist/i);return a||s&&s.details&&s.details.startsWith("Unauthorized method:")&&(a=!0),a?Jt("unsupported operation","UNSUPPORTED_OPERATION",{operation:t.method,info:{error:s,payload:t}}):Jt("could not coalesce error","UNKNOWN_ERROR",{error:s,payload:t})}send(t,n){if(this.destroyed)return Promise.reject(Jt("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:t}));const i=bd(this,Ll)._++,s=new Promise((o,a)=>{T(this,io).push({resolve:o,reject:a,payload:{method:t,params:n,id:i,jsonrpc:"2.0"}})});return Ee(this,Gh,C_).call(this),s}async getSigner(t){t==null&&(t=0);const n=this.send("eth_accounts",[]);if(typeof t=="number"){const s=await n;if(t>=s.length)throw new Error("no such account");return new Jw(this,s[t])}const{accounts:i}=await mn({network:this.getNetwork(),accounts:n});t=Mt(t);for(const s of i)if(Mt(s)===t)return new Jw(this,t);throw new Error("invalid account")}async listAccounts(){return(await this.send("eth_accounts",[])).map(n=>new Jw(this,n))}destroy(){T(this,gs)&&(clearTimeout(T(this,gs)),F(this,gs,null));for(const{payload:t,reject:n}of T(this,io))n(Jt("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:t.method}));F(this,io,[]),super.destroy()}}Sc=new WeakMap,Ll=new WeakMap,io=new WeakMap,gs=new WeakMap,Pi=new WeakMap,gi=new WeakMap,Dn=new WeakMap,Gh=new WeakSet,C_=function(){if(T(this,gs))return;const t=this._getOption("batchMaxCount")===1?0:this._getOption("batchStallTime");F(this,gs,setTimeout(()=>{F(this,gs,null);const n=T(this,io);for(F(this,io,[]);n.length;){const i=[n.shift()];for(;n.length&&i.length!==T(this,Sc).batchMaxCount;)if(i.push(n.shift()),JSON.stringify(i.map(o=>o.payload)).length>T(this,Sc).batchMaxSize){n.unshift(i.pop());break}(async()=>{const s=i.length===1?i[0].payload:i.map(o=>o.payload);this.emit("debug",{action:"sendRpcPayload",payload:s});try{const o=await this._send(s);this.emit("debug",{action:"receiveRpcResult",result:o});for(const{resolve:a,reject:u,payload:l}of i){if(this.destroyed){u(Jt("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:l.method}));continue}const h=o.filter(g=>g.id===l.id)[0];if(h==null){const g=Jt("missing response for request","BAD_DATA",{value:o,info:{payload:l}});this.emit("error",g),u(g);continue}if("error"in h){u(this.getRpcError(l,h));continue}a(h.result)}}catch(o){this.emit("debug",{action:"receiveRpcError",error:o});for(const{reject:a}of i)a(o)}})()}},t))};class Dre extends TN{constructor(t,n){super(t,n);se(this,ra);let i=this._getOption("pollingInterval");i==null&&(i=kN.pollingInterval),F(this,ra,i)}_getSubscriber(t){const n=super._getSubscriber(t);return SN(n)&&(n.pollingInterval=T(this,ra)),n}get pollingInterval(){return T(this,ra)}set pollingInterval(t){if(!Number.isInteger(t)||t<0)throw new Error("invalid interval");F(this,ra,t),this._forEachSubscriber(n=>{SN(n)&&(n.pollingInterval=T(this,ra))})}}ra=new WeakMap;class $re extends Dre{constructor(t,n,i){t==null&&(t="http://localhost:8545");super(n,i);se(this,Ul);typeof t=="string"?F(this,Ul,new Us(t)):F(this,Ul,t.clone())}_getConnection(){return T(this,Ul).clone()}async send(t,n){return await this._start(),await super.send(t,n)}async _send(t){const n=this._getConnection();n.body=JSON.stringify(t),n.setHeader("content-type","application/json");const i=await n.send();i.assertOk();let s=i.bodyJson;return Array.isArray(s)||(s=[s]),s}}Ul=new WeakMap;function Xw(r){if(r==null)return null;if(typeof r.message=="string"&&r.message.match(/revert/i)&&Gt(r.data))return{message:r.message,data:r.data};if(typeof r=="object"){for(const e in r){const t=Xw(r[e]);if(t)return t}return null}if(typeof r=="string")try{return Xw(JSON.parse(r))}catch{}return null}function eb(r,e){if(r!=null){if(typeof r.message=="string"&&e.push(r.message),typeof r=="object")for(const t in r)eb(r[t],e);if(typeof r=="string")try{return eb(JSON.parse(r),e)}catch{}}}function Fre(r){const e=[];return eb(r,e),e}function Hre(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof Zc<"u")return Zc;throw new Error("unable to locate global object")}const zre=Hre().WebSocket;class tb{constructor(e,t){se(this,ys);se(this,Kh);se(this,na);se(this,kc);se(this,ia);F(this,ys,e),F(this,Kh,JSON.stringify(t)),F(this,na,null),F(this,kc,null),F(this,ia,null)}get filter(){return JSON.parse(T(this,Kh))}start(){F(this,na,T(this,ys).send("eth_subscribe",this.filter).then(e=>(T(this,ys)._register(e,this),e)))}stop(){T(this,na).then(e=>{T(this,ys).destroyed||T(this,ys).send("eth_unsubscribe",[e])}),F(this,na,null)}pause(e){ge(e,"preserve logs while paused not supported by SocketSubscriber yet","UNSUPPORTED_OPERATION",{operation:"pause(false)"}),F(this,kc,!!e)}resume(){F(this,kc,null)}_handleMessage(e){if(T(this,na)!=null&&T(this,kc)===null){let t=T(this,ia);t==null?t=this._emit(T(this,ys),e):t=t.then(async()=>{await this._emit(T(this,ys),e)}),F(this,ia,t.then(()=>{T(this,ia)===t&&F(this,ia,null)}))}}async _emit(e,t){throw new Error("sub-classes must implemente this; _emit")}}ys=new WeakMap,Kh=new WeakMap,na=new WeakMap,kc=new WeakMap,ia=new WeakMap;class Gre extends tb{constructor(e){super(e,["newHeads"])}async _emit(e,t){e.emit("block",parseInt(t.number))}}class Kre extends tb{constructor(e){super(e,["newPendingTransactions"])}async _emit(e,t){e.emit("pending",t)}}class jre extends tb{constructor(t,n){super(t,["logs",n]);se(this,jh);F(this,jh,JSON.stringify(n))}get logFilter(){return JSON.parse(T(this,jh))}async _emit(t,n){t.emit(this.logFilter,t._wrapLog(n,t._network))}}jh=new WeakMap;class Wre extends TN{constructor(t,n){const i=Object.assign({},n??{});q(i.batchMaxCount==null||i.batchMaxCount===1,"sockets-based providers do not support batches","options.batchMaxCount",n),i.batchMaxCount=1,i.staticNetwork==null&&(i.staticNetwork=!0);super(t,i);se(this,Tc);se(this,Dl);se(this,sa);F(this,Tc,new Map),F(this,Dl,new Map),F(this,sa,new Map)}_getSubscriber(t){switch(t.type){case"close":return new Vp("close");case"block":return new Gre(this);case"pending":return new Kre(this);case"event":return new jre(this,t.filter);case"orphan":if(t.filter.orphan==="drop-log")return new Vp("drop-log")}return super._getSubscriber(t)}_register(t,n){T(this,Dl).set(t,n);const i=T(this,sa).get(t);if(i){for(const s of i)n._handleMessage(s);T(this,sa).delete(t)}}async _send(t){q(!Array.isArray(t),"WebSocket does not support batch send","payload",t);const n=new Promise((i,s)=>{T(this,Tc).set(t.id,{payload:t,resolve:i,reject:s})});return await this._waitUntilReady(),await this._write(JSON.stringify(t)),[await n]}async _processMessage(t){const n=JSON.parse(t);if(n&&typeof n=="object"&&"id"in n){const i=T(this,Tc).get(n.id);if(i==null){this.emit("error",Jt("received result for unknown id","UNKNOWN_ERROR",{reasonCode:"UNKNOWN_ID",result:n}));return}T(this,Tc).delete(n.id),i.resolve(n)}else if(n&&n.method==="eth_subscription"){const i=n.params.subscription,s=T(this,Dl).get(i);if(s)s._handleMessage(n.params.result);else{let o=T(this,sa).get(i);o==null&&(o=[],T(this,sa).set(i,o)),o.push(n.params.result)}}else{this.emit("error",Jt("received unexpected message","UNKNOWN_ERROR",{reasonCode:"UNEXPECTED_MESSAGE",result:n}));return}}async _write(t){throw new Error("sub-classes must override this")}}Tc=new WeakMap,Dl=new WeakMap,sa=new WeakMap;class Vre extends Wre{constructor(t,n,i){super(n,i);se(this,Oc);se(this,Mi);typeof t=="string"?(F(this,Oc,()=>new zre(t)),F(this,Mi,T(this,Oc).call(this))):typeof t=="function"?(F(this,Oc,t),F(this,Mi,t())):(F(this,Oc,null),F(this,Mi,t)),this.websocket.onopen=async()=>{try{await this._start(),this.resume()}catch(s){console.log("failed to start WebsocketProvider",s)}},this.websocket.onmessage=s=>{this._processMessage(s.data)}}get websocket(){if(T(this,Mi)==null)throw new Error("websocket closed");return T(this,Mi)}async _write(t){this.websocket.send(t)}async destroy(){T(this,Mi)!=null&&(T(this,Mi).close(),F(this,Mi,null)),super.destroy()}}Oc=new WeakMap,Mi=new WeakMap;const qre={_format:"hh-sol-artifact-1",contractName:"SwarmEventEmitter",sourceName:"contracts/SwarmEventEmitter.sol",abi:[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"string",name:"message",type:"string"}],name:"MessageLogged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"RemovedFromWhitelist",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"Whitelisted",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"addToWhitelist",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"admin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"message",type:"string"}],name:"emitMessage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"removeFromWhitelist",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"whitelisted",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}],bytecode:"0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a5460405160405180910390a26107b08061013b6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80632ac0df261461005c5780638ab1d68114610078578063d936547e14610094578063e43252d7146100c4578063f851a440146100e0575b600080fd5b610076600480360381019061007191906104e8565b6100fe565b005b610092600480360381019061008d9190610593565b6101de565b005b6100ae60048036038101906100a99190610593565b61030a565b6040516100bb91906105db565b60405180910390f35b6100de60048036038101906100d99190610593565b61032a565b005b6100e8610455565b6040516100f59190610605565b60405180910390f35b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661018a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101819061067d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167fda502b164eb5cfccfa9f947e0fdc1a0bd060adfef2947810b256321c1a74ca4183836040516101d29291906106ea565b60405180910390a25050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461026c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102639061075a565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fcdd2e9b91a56913d370075169cefa1602ba36be5301664f752192bb1709df75760405160405180910390a250565b60016020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af9061075a565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a5460405160405180910390a250565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126104a8576104a7610483565b5b8235905067ffffffffffffffff8111156104c5576104c4610488565b5b6020830191508360018202830111156104e1576104e061048d565b5b9250929050565b600080602083850312156104ff576104fe610479565b5b600083013567ffffffffffffffff81111561051d5761051c61047e565b5b61052985828601610492565b92509250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056082610535565b9050919050565b61057081610555565b811461057b57600080fd5b50565b60008135905061058d81610567565b92915050565b6000602082840312156105a9576105a8610479565b5b60006105b78482850161057e565b91505092915050565b60008115159050919050565b6105d5816105c0565b82525050565b60006020820190506105f060008301846105cc565b92915050565b6105ff81610555565b82525050565b600060208201905061061a60008301846105f6565b92915050565b600082825260208201905092915050565b7f4e6f742077686974656c69737465640000000000000000000000000000000000600082015250565b6000610667600f83610620565b915061067282610631565b602082019050919050565b600060208201905081810360008301526106968161065a565b9050919050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006106c98385610620565b93506106d683858461069d565b6106df836106ac565b840190509392505050565b600060208201905081810360008301526107058184866106bd565b90509392505050565b7f4e6f742061646d696e0000000000000000000000000000000000000000000000600082015250565b6000610744600983610620565b915061074f8261070e565b602082019050919050565b6000602082019050818103600083015261077381610737565b905091905056fea26469706673582212202ad433ea9240cc561f6b9168c7880800e372f26e322166cedd6ce135222e699764736f6c634300081c0033",deployedBytecode:"0x608060405234801561001057600080fd5b50600436106100575760003560e01c80632ac0df261461005c5780638ab1d68114610078578063d936547e14610094578063e43252d7146100c4578063f851a440146100e0575b600080fd5b610076600480360381019061007191906104e8565b6100fe565b005b610092600480360381019061008d9190610593565b6101de565b005b6100ae60048036038101906100a99190610593565b61030a565b6040516100bb91906105db565b60405180910390f35b6100de60048036038101906100d99190610593565b61032a565b005b6100e8610455565b6040516100f59190610605565b60405180910390f35b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661018a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101819061067d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167fda502b164eb5cfccfa9f947e0fdc1a0bd060adfef2947810b256321c1a74ca4183836040516101d29291906106ea565b60405180910390a25050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461026c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102639061075a565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fcdd2e9b91a56913d370075169cefa1602ba36be5301664f752192bb1709df75760405160405180910390a250565b60016020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af9061075a565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a5460405160405180910390a250565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126104a8576104a7610483565b5b8235905067ffffffffffffffff8111156104c5576104c4610488565b5b6020830191508360018202830111156104e1576104e061048d565b5b9250929050565b600080602083850312156104ff576104fe610479565b5b600083013567ffffffffffffffff81111561051d5761051c61047e565b5b61052985828601610492565b92509250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056082610535565b9050919050565b61057081610555565b811461057b57600080fd5b50565b60008135905061058d81610567565b92915050565b6000602082840312156105a9576105a8610479565b5b60006105b78482850161057e565b91505092915050565b60008115159050919050565b6105d5816105c0565b82525050565b60006020820190506105f060008301846105cc565b92915050565b6105ff81610555565b82525050565b600060208201905061061a60008301846105f6565b92915050565b600082825260208201905092915050565b7f4e6f742077686974656c69737465640000000000000000000000000000000000600082015250565b6000610667600f83610620565b915061067282610631565b602082019050919050565b600060208201905081810360008301526106968161065a565b9050919050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006106c98385610620565b93506106d683858461069d565b6106df836106ac565b840190509392505050565b600060208201905081810360008301526107058184866106bd565b90509392505050565b7f4e6f742061646d696e0000000000000000000000000000000000000000000000600082015250565b6000610744600983610620565b915061074f8261070e565b602082019050919050565b6000602082019050818103600083015261077381610737565b905091905056fea26469706673582212202ad433ea9240cc561f6b9168c7880800e372f26e322166cedd6ce135222e699764736f6c634300081c0033",linkReferences:{},deployedLinkReferences:{}},Zre={address:"Eai8D93JKad51sYmft1r74fzLkBSwRGPQVAmwZoLoWDf",metadata:{name:"swarm_event_emitter",version:"0.1.0",spec:"0.1.0",description:"Created with Anchor"},instructions:[{name:"add_to_whitelist",discriminator:[157,211,52,54,144,81,5,55],accounts:[{name:"state",writable:!0},{name:"admin",signer:!0}],args:[{name:"user",type:"pubkey"}]},{name:"emit_message",discriminator:[118,99,20,87,25,132,207,62],accounts:[{name:"state",writable:!0},{name:"user",signer:!0}],args:[{name:"message",type:"string"}]},{name:"initialize",discriminator:[175,175,109,31,13,152,155,237],accounts:[{name:"state",writable:!0,pda:{seeds:[{kind:"const",value:[115,116,97,116,101]}]}},{name:"admin",writable:!0,signer:!0},{name:"system_program",address:"11111111111111111111111111111111"}],args:[]},{name:"remove_from_whitelist",discriminator:[7,144,216,239,243,236,193,235],accounts:[{name:"state",writable:!0},{name:"admin",signer:!0}],args:[{name:"user",type:"pubkey"}]}],accounts:[{name:"State",discriminator:[216,146,107,94,104,75,182,177]}],events:[{name:"MessageLogged",discriminator:[24,236,247,207,227,70,101,210]},{name:"RemovedFromWhitelist",discriminator:[107,247,94,185,182,200,82,172]},{name:"Whitelisted",discriminator:[235,202,86,232,226,75,139,182]}],errors:[{code:6e3,name:"NotAdmin",msg:"Only the admin can perform this action."},{code:6001,name:"NotWhitelisted",msg:"You are not whitelisted."}],types:[{name:"MessageLogged",type:{kind:"struct",fields:[{name:"sender",type:"pubkey"},{name:"message",type:"string"}]}},{name:"RemovedFromWhitelist",type:{kind:"struct",fields:[{name:"account",type:"pubkey"}]}},{name:"State",type:{kind:"struct",fields:[{name:"admin",type:"pubkey"},{name:"whitelisted",type:{vec:"pubkey"}}]}},{name:"Whitelisted",type:{kind:"struct",fields:[{name:"account",type:"pubkey"}]}}]};class Qre{constructor(e){this.settings=e,this.evm=null,this.svm=null,this.init()}init(){this.settings.chainType==="EVM"?this.initEvm():this.settings.chainType==="SVM"&&this.initSvm()}initEvm(){const{rpcUrl:e,contractAddress:t}=this.settings;if(!t)throw new Error("Contract address is required for EVM chain type");const n=e.startsWith("ws")?new Vre(e):new $re(e),i=new Wu(t,qre.abi,n);this.evm={provider:n,contract:i}}initSvm(){const e=new Cx(this.settings.rpcUrl,"confirmed"),t=Ba.generate(),n={signTransaction:async o=>o,signAllTransactions:async o=>o,publicKey:t.publicKey},i=new sh(e,n,{}),s=new Tu(Zre,i);this.svm={provider:e,program:s}}async onMessageFrom(e){this.settings.chainType==="EVM"?this.listenToEvm(e):this.settings.chainType==="SVM"&&await this.listenToSvm(e)}listenToEvm(e){var t;(t=this.evm)==null||t.contract.on("MessageLogged",(n,i)=>{da(n.toLowerCase())===da(this.settings.swarmEmitterAddress.toLowerCase())&&e(n,i)})}async listenToSvm(e){var n;const t=(n=this.svm)==null?void 0:n.program.addEventListener("messageLogged",i=>{const{sender:s,message:o}=i;s.toBase58()===this.settings.swarmEmitterAddress&&e(s.toBase58(),o)});this.svm&&t!==void 0&&(this.svm.listenerId=t)}async removeAllListeners(){var e,t;this.settings.chainType==="EVM"&&((e=this.evm)==null||e.contract.removeAllListeners("MessageLogged")),this.settings.chainType==="SVM"&&((t=this.svm)==null?void 0:t.listenerId)!==void 0&&(await this.svm.program.removeEventListener(this.svm.listenerId),this.svm.listenerId=void 0)}}const Yre=new TextEncoder,ON=1,NN=4096,rb=4096,Jre=32;function Xre(r,e){return e=typeof e=="number"?Se.FeedIndex.fromBigInt(BigInt(e)):e,new Se.Identifier(en.keccak256(en.concatBytes(r.toUint8Array(),e.toUint8Array())))}function ene(r){const e=r.slice(0,Se.Span.LENGTH),t=r.slice(Se.Span.LENGTH),n=tne(t),i=en.keccak256(en.concatBytes(e,n));return new Se.Reference(i)}function tne(r){if(r.length>rb)throw new Se.BeeArgumentError(`payload size ${r.length} exceeds maximum chunk payload size ${rb}`,r);const e=new Uint8Array(rb);return e.set(r),en.log2Reduce(en.partition(e,Jre),(t,n)=>en.keccak256(en.concatBytes(t,n)))}function CN(r){if(r instanceof Uint8Array||(r=Yre.encode(r)),r.length<ON||r.length>NN)throw new RangeError(`payload size ${r.length} exceeds limits [${ON}, ${NN}]`);const e=Se.Span.fromBigInt(BigInt(r.length)),t=en.concatBytes(e.toUint8Array(),r);return{data:t,span:e,payload:Se.Bytes.fromSlice(t,Se.Span.LENGTH),address:ene(t)}}function rne(r,e){return new Se.Reference(en.keccak256(en.concatBytes(r.toUint8Array(),e.toUint8Array())))}function BN(r,e,t){e=new Se.Identifier(e),t=new Se.PrivateKey(t);const n=rne(e,t.publicKey().address()),i=t.sign(en.concatBytes(e.toUint8Array(),r.address.toUint8Array())),s=en.concatBytes(e.toUint8Array(),i.toUint8Array(),r.data),o=Se.Span.fromSlice(r.data,0),a=Se.Bytes.fromSlice(r.data,Se.Span.LENGTH);return{data:s,identifier:e,signature:i,span:o,payload:a,address:n,owner:t.publicKey().address()}}class nne{constructor(e,t){this.userDetails=e,this.swarmSettings=t,this.depth=24,this.logger=Ui.getInstance(),this.errorHandler=new Dd,this.UPLOAD_GSOC_TIMEOUT=2e3}async writeOwnFeedDataByIndex(e,t){const{enveloped:n,stamp:i}=this.swarmSettings;if(!n)await this.writeOwnFeedDataByIndexOwned(e,t);else if(i)await this.writeOwnFeedDataByIndexEnvelope(e,t);else throw new Error("Enveloped mode is enabled, but stamp is not provided")}async writeOwnFeedDataByIndexOwned(e,t){const{bee:n,stamp:i,chatTopic:s}=this.swarmSettings,{privateKey:o,ownAddress:a}=this.userDetails,u=this.generateUserOwnedFeedId(s,a),l=Se.Topic.fromString(u);console.log("DEBUG: feedID write",l.toString(),a,e,u),await n.makeFeedWriter(l,new Se.PrivateKey(o)).uploadPayload(i,JSON.stringify(t),{index:e})}async writeOwnFeedDataByIndexEnvelope(e,t){const{bee:n,stamp:i,chatTopic:s}=this.swarmSettings,{privateKey:o,ownAddress:a}=this.userDetails,u=new Se.PrivateKey(o),l=Se.Stamper.fromBlank(o,i,this.depth),h=this.generateUserOwnedFeedId(s,a),g=Se.Topic.fromString(h),b=Xre(g,e),w=CN(t),I=BN(w,b,u),S={hash:()=>I.address.toUint8Array()},x=l.stamp(S),{upload:C}=n.makeSOCWriter(u),H=Se.Bytes.fromUtf8(t);return(await C(x,b,H.toUint8Array())).reference.toHex()}async fetchUserFeedDataByIndex(e,t,n){const{bee:i,chatTopic:s}=this.swarmSettings,o=(n==null?void 0:n.timeout)??1500,a=this.generateUserOwnedFeedId(s,e),u=Se.Topic.fromString(a);return console.log("DEBUG: feedID read",u.toString(),e,t,a),(await i.makeFeedReader(u,e,{timeout:o}).downloadPayload({index:t})).payload.toJSON()}orderMessages(e){return e.sort((t,n)=>t.timestamp-n.timestamp)}async retryAwaitableAsync(e,t=3,n=250){return new Promise((i,s)=>{e().then(i).catch(o=>{t>0?(this.logger.info(`Retrying... Attempts left: ${t}. Error: ${o.message}`),setTimeout(()=>{this.retryAwaitableAsync(e,t-1,n).then(i).catch(s)},n)):(this.errorHandler.handleError(o,"Utils.retryAwaitableAsync"),s(o))})})}async uploadObjectToBee(e){const{enveloped:t,stamp:n}=this.swarmSettings;if(t){if(n)return this.uploadObjectToBeeEnvelope(e);throw new Error("Enveloped mode is enabled, but stamp is not provided")}else return this.uploadObjectToBeeOwn(e)}async uploadObjectToBeeOwn(e){try{const{bee:t,stamp:n}=this.swarmSettings,i=await t.uploadData(n,JSON.stringify(e),{redundancyLevel:4});return console.log("DEBUG: result",i.reference.toString()),i.reference.toString()}catch(t){return this.errorHandler.handleError(t,"Utils.uploadObjectToBee"),null}}async uploadObjectToBeeEnvelope(e){try{const{bee:t,stamp:n}=this.swarmSettings,{privateKey:i}=this.userDetails,s=Se.Stamper.fromBlank(i,n,this.depth),o=Se.Bytes.fromUtf8(JSON.stringify(e)),a=new c4(async l=>{await t.uploadChunk(s.stamp(l),l.build())});await a.append(o.toUint8Array());const u=await a.finalize();return en.uint8ArrayToHex(u.hash())}catch(t){return this.errorHandler.handleError(t,"Utils.uploadObjectToBee"),null}}async downloadObjectFromBee(e){try{const{bee:t}=this.swarmSettings;return(await t.downloadData(e)).toJSON()}catch(t){return this.errorHandler.handleError(t,"Utils.beeDownloadObject"),null}}async getOwnLatestFeedIndex(){try{const{bee:e,chatTopic:t}=this.swarmSettings,{ownAddress:n}=this.userDetails,i=this.generateUserOwnedFeedId(t,n),s=Se.Topic.fromString(i),a=await e.makeFeedReader(s,n).downloadPayload(),u=Number(a.feedIndex.toBigInt()),l=u+1;return console.log("DEBUG: getLatestFeedIndex",u,l),{latestIndex:u,nextIndex:l}}catch(e){if(this.isNotFoundError(e))return{latestIndex:-1,nextIndex:0};throw e}}async fetchLatestChatMessage(){const{bee:e,chatTopic:t,chatAddress:n}=this.swarmSettings;return(await e.makeFeedReader(Se.Topic.fromString(t),da(n)).downloadPayload()).payload.toJSON()}async fetchChatMessage(e){const{bee:t,chatTopic:n,chatAddress:i}=this.swarmSettings;return(await t.makeFeedReader(Se.Topic.fromString(n),da(i)).downloadPayload({index:Se.FeedIndex.fromBigInt(BigInt(`0x${e}`))})).payload.toJSON()}async sendMessageToGsoc(e){const{enveloped:t,stamp:n}=this.swarmSettings;if(!t)await this.sendMessageToGsocOwn(e);else if(n)await this.sendMessageToGsocEnvelope(e);else throw new Error("Enveloped mode is enabled, but stamp is not provided")}async sendMessageToGsocOwn(e){this.logger.debug("sendMessageToGsoc entry CALLED");const{bee:t,stamp:n,gsocTopic:i,gsocResourceId:s}=this.swarmSettings,o=new Se.PrivateKey(s),a=Se.Identifier.fromString(i),u=Se.Bytes.fromUtf8(e),{upload:l}=t.makeSOCWriter(o,{timeout:this.UPLOAD_GSOC_TIMEOUT});await l(n,a,u.toUint8Array()),this.logger.debug("sendMessageToGsoc end CALLED")}async sendMessageToGsocEnvelope(e){this.logger.debug("sendMessageToGsoc entry CALLED");const{bee:t,stamp:n,gsocTopic:i,gsocResourceId:s}=this.swarmSettings,{privateKey:o}=this.userDetails,a=Se.Stamper.fromBlank(o,n,this.depth),u=new Se.PrivateKey(s),l=Se.Identifier.fromString(i),h=Se.Bytes.fromUtf8(e),g=CN(h.toUint8Array()),b=BN(g,l,u),w={hash:()=>b.address.toUint8Array()},I=a.stamp(w),{upload:S}=t.makeSOCWriter(u,{timeout:this.UPLOAD_GSOC_TIMEOUT});await S(I,l,h.toUint8Array()),this.logger.debug("sendMessageToGsoc end CALLED")}generateUserOwnedFeedId(e,t){return`${e}_EthercastChat_${t}`}isNotFoundError(e){return e.stack.includes("404")||e.message.includes("Not Found")||e.message.includes("404")}}class ine{constructor(e){var n,i,s;this.logger=Ui.getInstance(),this.errorHandler=new Dd,this.messagesQueue=new Kg({clearWaitTime:200}),this.gsocListenerQueue=new Kg({clearWaitTime:200}),this.activeUsers={},this.latestMessage=null,this.userIndexCache={};const t=new Se.PrivateKey(da(e.user.privateKey));this.userDetails={privateKey:e.user.privateKey,ownAddress:t.publicKey().address().toString(),nickname:e.user.nickname,ownIndex:-1},this.swarmSettings={bee:new Se.Bee(e.infra.swarm.beeUrl),stamp:e.infra.swarm.stamp||"0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",enveloped:e.infra.swarm.enveloped,gsocTopic:e.infra.swarm.gsocTopic,gsocResourceId:e.infra.swarm.gsocResourceId,chatTopic:e.infra.swarm.chatTopic,chatAddress:e.infra.swarm.chatAddress},this.options={fetchMessageTimer:null,idleUserCleanupInterval:null,FETCH_MESSAGE_INTERVAL_TIME:((n=e.options)==null?void 0:n.fetchMessageIntervalTime)||1e3,IDLE_USER_CLEANUP_INTERVAL_TIME:((i=e.options)==null?void 0:i.idleUserCleanupIntervalTime)||5e3,READ_MESSAGE_TIMEOUT:((s=e.options)==null?void 0:s.readMessageTimeout)||1500},this.emitter=new a4,this.utils=new nne(this.userDetails,this.swarmSettings),this.history=new SG(this.userDetails,this.utils,this.swarmSettings,this.emitter),this.swarmEventEmitterReader=new Qre(e.infra.chain)}start(){this.init(),this.subscribeToGSOCEvent(),this.startMessagesFetchProcess(),this.startIdleUserCleanup(),this.history.startHistoryUpdateProcess()}stop(){this.stopMessagesFetchProcess(),this.stopIdleUserCleanup(),this.unsubFromGSOCEvent(),this.history.stopHistoryUpdateProcess(),this.emitter.cleanAll()}getEmitter(){return this.emitter}orderMessages(e){return this.utils.orderMessages(e)}async sendMessage(e,t){const n=this.userDetails.ownIndex===-1?0:this.userDetails.ownIndex+1,i={id:t||o4(),username:this.userDetails.nickname,address:this.userDetails.ownAddress,timestamp:Date.now(),index:n,message:e};try{this.emitter.emit(ei.MESSAGE_REQUEST_INITIATED,i),await this.utils.writeOwnFeedDataByIndex(n,JSON.stringify(i)),this.userDetails.ownIndex=n,this.emitter.emit(ei.MESSAGE_REQUEST_UPLOADED,i),await this.broadcastUserMessage()}catch(s){this.emitter.emit(ei.MESSAGE_REQUEST_ERROR,i),this.errorHandler.handleError(s,"Chat.sendMessage")}}async fetchPreviousMessages(){try{return this.emitter.emit(ei.LOADING_PREVIOUS_MESSAGES,!0),await this.history.fetchPreviousMessages({preDownloadHistory:!0})}finally{this.emitter.emit(ei.LOADING_PREVIOUS_MESSAGES,!1)}}async retrySendMessage(e){this.sendMessage(e.message,e.id)}async retryBroadcastUserMessage(e){this.broadcastUserMessage()}async init(){try{this.emitter.emit(ei.LOADING_INIT,!0);const[e,t]=await Promise.allSettled([this.initOwnIndex(),this.history.init()]);if(e.status==="rejected")throw e.reason;t.status==="rejected"&&this.logger.warn(`historyInitResult failed: ${t.reason}`),this.emitter.emit(ei.LOADING_INIT,!1)}catch(e){this.errorHandler.handleError(e,"Chat.initSelfState"),this.emitter.emit(ei.CRITICAL_ERROR,e)}}async initOwnIndex(){const{latestIndex:n}=await this.utils.retryAwaitableAsync(()=>this.utils.getOwnLatestFeedIndex(),10,1e3);this.userDetails.ownIndex=n}subscribeToGSOCEvent(){try{this.swarmEventEmitterReader.onMessageFrom((e,t)=>this.gsocListenerQueue.enqueue(()=>this.processGsocEvent(t)))}catch(e){this.errorHandler.handleError(e,"Chat.listenToNewSubscribers"),this.emitter.emit(ei.CRITICAL_ERROR,e)}}async processGsocEvent(e){try{console.log("processGsocMessage CALLED",e);const[t,n]=e.split("_"),i=await this.utils.fetchChatMessage(n);if(console.log("DEBUG processGsocMessage",i),!UA(i)){this.logger.warn("Invalid GSOC message during processing");return}if(this.logger.debug("New GSOC message:",i),r4(this.latestMessage,i))return;i.messageSender?(this.updateActiveUsers(i.messageSender),this.history.processHistoryUpdaterEntry(this.activeUsers,i.historyEntry)):this.history.setHistoryEntry(i.historyEntry),this.latestMessage=i}catch(t){this.errorHandler.handleError(t,"Chat.processGsocMessage")}}async waitForMessageBroadcast(e){return DA({condition:()=>Object.values(this.activeUsers).some(t=>t.index===e),broadcast:()=>this.broadcastUserMessage()})}async broadcastUserMessage(){try{this.logger.debug("broadcastUserMessage entry CALLED");const e=await this.makeMessageSender();console.log("DEBUG broadcastUserMessage",e),await this.utils.retryAwaitableAsync(()=>this.utils.sendMessageToGsoc(JSON.stringify({topic:this.swarmSettings.chatTopic,messageSender:e,historyEntry:this.history.getHistoryEntryWithNewUpdater(this.activeUsers)})))}catch(e){this.errorHandler.handleError(e,"Chat.broadcastUserMessage")}}async makeMessageSender(){const{ownAddress:e,privateKey:t,nickname:n}=this.userDetails,i=new Se.EthAddress(e).toString(),s=new Se.PrivateKey(t);if(s.publicKey().address().toString()!==i)throw new Error("The provided address does not match the address derived from the private key");const a=Date.now(),u=s.sign(JSON.stringify({username:n,address:i,timestamp:a}));return{address:i,timestamp:a,signature:u.toHex(),index:this.getOwnIndex(),username:n}}async readAllActiveUserMessage(){if(!await this.messagesQueue.waitForProcessing())for(const t of Object.values(this.activeUsers))this.messagesQueue.enqueue(()=>this.readMessage(t))}async readMessage(e){try{let t;const n=this.isUserIndexRead(e.address,e.index);if(n.isIndexRead)return;t=n.cachedIndex?n.cachedIndex+1:e.index;const i=await this.utils.fetchUserFeedDataByIndex(e.address,t);this.setUserIndexCache(e.address,t),this.emitter.emit(ei.MESSAGE_RECEIVED,JSON.parse(i))}catch(t){this.errorHandler.handleError(t,"readMessage")}}unsubFromGSOCEvent(){this.swarmEventEmitterReader.removeAllListeners()}startMessagesFetchProcess(){const{fetchMessageTimer:e,FETCH_MESSAGE_INTERVAL_TIME:t}=this.options;if(e){this.logger.warn("Messages fetch process is already running.");return}this.options.fetchMessageTimer=setInterval(this.readAllActiveUserMessage.bind(this),t)}stopMessagesFetchProcess(){const{fetchMessageTimer:e}=this.options;e&&(clearInterval(e),this.options.fetchMessageTimer=null)}startIdleUserCleanup(){const{idleUserCleanupInterval:e,IDLE_USER_CLEANUP_INTERVAL_TIME:t}=this.options;if(e){this.logger.warn("Idle user cleanup is already running.");return}this.options.idleUserCleanupInterval=setInterval(this.removeIdleUsers.bind(this),t)}stopIdleUserCleanup(){const{idleUserCleanupInterval:e}=this.options;e&&(clearInterval(e),this.options.idleUserCleanupInterval=null)}isUserIndexRead(e,t){const n=this.userIndexCache[e];return{cachedIndex:n,isIndexRead:n===t}}setUserIndexCache(e,t){this.userIndexCache[e]=t}getOwnIndex(){return this.userDetails.ownIndex}removeIdleUsers(){const e=Date.now();for(const t of Object.values(this.activeUsers))e-t.timestamp>300*bM&&delete this.activeUsers[t.address]}updateActiveUsers(e){this.activeUsers[e.address]=e}}ft.EVENTS=ei,ft.SwarmChat=ine,Object.defineProperty(ft,Symbol.toStringTag,{value:"Module"})});
|
|
16
|
+
*/(function(n){const t=Sd,e=mg,r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;n.Buffer=h,n.SlowBuffer=W,n.INSPECT_MAX_BYTES=50;const i=2147483647;n.kMaxLength=i;const{Uint8Array:s,ArrayBuffer:o,SharedArrayBuffer:c}=globalThis;h.TYPED_ARRAY_SUPPORT=u(),!h.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function u(){try{const O=new s(1),w={foo:function(){return 42}};return Object.setPrototypeOf(w,s.prototype),Object.setPrototypeOf(O,w),O.foo()===42}catch{return!1}}Object.defineProperty(h.prototype,"parent",{enumerable:!0,get:function(){if(h.isBuffer(this))return this.buffer}}),Object.defineProperty(h.prototype,"offset",{enumerable:!0,get:function(){if(h.isBuffer(this))return this.byteOffset}});function f(O){if(O>i)throw new RangeError('The value "'+O+'" is invalid for option "size"');const w=new s(O);return Object.setPrototypeOf(w,h.prototype),w}function h(O,w,E){if(typeof O=="number"){if(typeof w=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return R(O)}return y(O,w,E)}h.poolSize=8192;function y(O,w,E){if(typeof O=="string")return k(O,w);if(o.isView(O))return B(O);if(O==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof O);if(sn(O,o)||O&&sn(O.buffer,o)||typeof c<"u"&&(sn(O,c)||O&&sn(O.buffer,c)))return H(O,w,E);if(typeof O=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');const D=O.valueOf&&O.valueOf();if(D!=null&&D!==O)return h.from(D,w,E);const V=U(O);if(V)return V;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof O[Symbol.toPrimitive]=="function")return h.from(O[Symbol.toPrimitive]("string"),w,E);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof O)}h.from=function(O,w,E){return y(O,w,E)},Object.setPrototypeOf(h.prototype,s.prototype),Object.setPrototypeOf(h,s);function A(O){if(typeof O!="number")throw new TypeError('"size" argument must be of type number');if(O<0)throw new RangeError('The value "'+O+'" is invalid for option "size"')}function b(O,w,E){return A(O),O<=0?f(O):w!==void 0?typeof E=="string"?f(O).fill(w,E):f(O).fill(w):f(O)}h.alloc=function(O,w,E){return b(O,w,E)};function R(O){return A(O),f(O<0?0:G(O)|0)}h.allocUnsafe=function(O){return R(O)},h.allocUnsafeSlow=function(O){return R(O)};function k(O,w){if((typeof w!="string"||w==="")&&(w="utf8"),!h.isEncoding(w))throw new TypeError("Unknown encoding: "+w);const E=J(O,w)|0;let D=f(E);const V=D.write(O,w);return V!==E&&(D=D.slice(0,V)),D}function S(O){const w=O.length<0?0:G(O.length)|0,E=f(w);for(let D=0;D<w;D+=1)E[D]=O[D]&255;return E}function B(O){if(sn(O,s)){const w=new s(O);return H(w.buffer,w.byteOffset,w.byteLength)}return S(O)}function H(O,w,E){if(w<0||O.byteLength<w)throw new RangeError('"offset" is outside of buffer bounds');if(O.byteLength<w+(E||0))throw new RangeError('"length" is outside of buffer bounds');let D;return w===void 0&&E===void 0?D=new s(O):E===void 0?D=new s(O,w):D=new s(O,w,E),Object.setPrototypeOf(D,h.prototype),D}function U(O){if(h.isBuffer(O)){const w=G(O.length)|0,E=f(w);return E.length===0||O.copy(E,0,0,w),E}if(O.length!==void 0)return typeof O.length!="number"||Ee(O.length)?f(0):S(O);if(O.type==="Buffer"&&Array.isArray(O.data))return S(O.data)}function G(O){if(O>=i)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+i.toString(16)+" bytes");return O|0}function W(O){return+O!=O&&(O=0),h.alloc(+O)}h.isBuffer=function(w){return w!=null&&w._isBuffer===!0&&w!==h.prototype},h.compare=function(w,E){if(sn(w,s)&&(w=h.from(w,w.offset,w.byteLength)),sn(E,s)&&(E=h.from(E,E.offset,E.byteLength)),!h.isBuffer(w)||!h.isBuffer(E))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(w===E)return 0;let D=w.length,V=E.length;for(let q=0,st=Math.min(D,V);q<st;++q)if(w[q]!==E[q]){D=w[q],V=E[q];break}return D<V?-1:V<D?1:0},h.isEncoding=function(w){switch(String(w).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},h.concat=function(w,E){if(!Array.isArray(w))throw new TypeError('"list" argument must be an Array of Buffers');if(w.length===0)return h.alloc(0);let D;if(E===void 0)for(E=0,D=0;D<w.length;++D)E+=w[D].length;const V=h.allocUnsafe(E);let q=0;for(D=0;D<w.length;++D){let st=w[D];if(sn(st,s))q+st.length>V.length?(h.isBuffer(st)||(st=h.from(st)),st.copy(V,q)):s.prototype.set.call(V,st,q);else if(h.isBuffer(st))st.copy(V,q);else throw new TypeError('"list" argument must be an Array of Buffers');q+=st.length}return V};function J(O,w){if(h.isBuffer(O))return O.length;if(o.isView(O)||sn(O,o))return O.byteLength;if(typeof O!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof O);const E=O.length,D=arguments.length>2&&arguments[2]===!0;if(!D&&E===0)return 0;let V=!1;for(;;)switch(w){case"ascii":case"latin1":case"binary":return E;case"utf8":case"utf-8":return Re(O).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return E*2;case"hex":return E>>>1;case"base64":return he(O).length;default:if(V)return D?-1:Re(O).length;w=(""+w).toLowerCase(),V=!0}}h.byteLength=J;function j(O,w,E){let D=!1;if((w===void 0||w<0)&&(w=0),w>this.length||((E===void 0||E>this.length)&&(E=this.length),E<=0)||(E>>>=0,w>>>=0,E<=w))return"";for(O||(O="utf8");;)switch(O){case"hex":return _(this,w,E);case"utf8":case"utf-8":return I(this,w,E);case"ascii":return z(this,w,E);case"latin1":case"binary":return P(this,w,E);case"base64":return v(this,w,E);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return F(this,w,E);default:if(D)throw new TypeError("Unknown encoding: "+O);O=(O+"").toLowerCase(),D=!0}}h.prototype._isBuffer=!0;function Y(O,w,E){const D=O[w];O[w]=O[E],O[E]=D}h.prototype.swap16=function(){const w=this.length;if(w%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let E=0;E<w;E+=2)Y(this,E,E+1);return this},h.prototype.swap32=function(){const w=this.length;if(w%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let E=0;E<w;E+=4)Y(this,E,E+3),Y(this,E+1,E+2);return this},h.prototype.swap64=function(){const w=this.length;if(w%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let E=0;E<w;E+=8)Y(this,E,E+7),Y(this,E+1,E+6),Y(this,E+2,E+5),Y(this,E+3,E+4);return this},h.prototype.toString=function(){const w=this.length;return w===0?"":arguments.length===0?I(this,0,w):j.apply(this,arguments)},h.prototype.toLocaleString=h.prototype.toString,h.prototype.equals=function(w){if(!h.isBuffer(w))throw new TypeError("Argument must be a Buffer");return this===w?!0:h.compare(this,w)===0},h.prototype.inspect=function(){let w="";const E=n.INSPECT_MAX_BYTES;return w=this.toString("hex",0,E).replace(/(.{2})/g,"$1 ").trim(),this.length>E&&(w+=" ... "),"<Buffer "+w+">"},r&&(h.prototype[r]=h.prototype.inspect),h.prototype.compare=function(w,E,D,V,q){if(sn(w,s)&&(w=h.from(w,w.offset,w.byteLength)),!h.isBuffer(w))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof w);if(E===void 0&&(E=0),D===void 0&&(D=w?w.length:0),V===void 0&&(V=0),q===void 0&&(q=this.length),E<0||D>w.length||V<0||q>this.length)throw new RangeError("out of range index");if(V>=q&&E>=D)return 0;if(V>=q)return-1;if(E>=D)return 1;if(E>>>=0,D>>>=0,V>>>=0,q>>>=0,this===w)return 0;let st=q-V,qt=D-E;const Wt=Math.min(st,qt),jt=this.slice(V,q),Fe=w.slice(E,D);for(let Ht=0;Ht<Wt;++Ht)if(jt[Ht]!==Fe[Ht]){st=jt[Ht],qt=Fe[Ht];break}return st<qt?-1:qt<st?1:0};function it(O,w,E,D,V){if(O.length===0)return-1;if(typeof E=="string"?(D=E,E=0):E>2147483647?E=2147483647:E<-2147483648&&(E=-2147483648),E=+E,Ee(E)&&(E=V?0:O.length-1),E<0&&(E=O.length+E),E>=O.length){if(V)return-1;E=O.length-1}else if(E<0)if(V)E=0;else return-1;if(typeof w=="string"&&(w=h.from(w,D)),h.isBuffer(w))return w.length===0?-1:ut(O,w,E,D,V);if(typeof w=="number")return w=w&255,typeof s.prototype.indexOf=="function"?V?s.prototype.indexOf.call(O,w,E):s.prototype.lastIndexOf.call(O,w,E):ut(O,[w],E,D,V);throw new TypeError("val must be string, number or Buffer")}function ut(O,w,E,D,V){let q=1,st=O.length,qt=w.length;if(D!==void 0&&(D=String(D).toLowerCase(),D==="ucs2"||D==="ucs-2"||D==="utf16le"||D==="utf-16le")){if(O.length<2||w.length<2)return-1;q=2,st/=2,qt/=2,E/=2}function Wt(Fe,Ht){return q===1?Fe[Ht]:Fe.readUInt16BE(Ht*q)}let jt;if(V){let Fe=-1;for(jt=E;jt<st;jt++)if(Wt(O,jt)===Wt(w,Fe===-1?0:jt-Fe)){if(Fe===-1&&(Fe=jt),jt-Fe+1===qt)return Fe*q}else Fe!==-1&&(jt-=jt-Fe),Fe=-1}else for(E+qt>st&&(E=st-qt),jt=E;jt>=0;jt--){let Fe=!0;for(let Ht=0;Ht<qt;Ht++)if(Wt(O,jt+Ht)!==Wt(w,Ht)){Fe=!1;break}if(Fe)return jt}return-1}h.prototype.includes=function(w,E,D){return this.indexOf(w,E,D)!==-1},h.prototype.indexOf=function(w,E,D){return it(this,w,E,D,!0)},h.prototype.lastIndexOf=function(w,E,D){return it(this,w,E,D,!1)};function rt(O,w,E,D){E=Number(E)||0;const V=O.length-E;D?(D=Number(D),D>V&&(D=V)):D=V;const q=w.length;D>q/2&&(D=q/2);let st;for(st=0;st<D;++st){const qt=parseInt(w.substr(st*2,2),16);if(Ee(qt))return st;O[E+st]=qt}return st}function ot(O,w,E,D){return Se(Re(w,O.length-E),O,E,D)}function C(O,w,E,D){return Se(Ce(w),O,E,D)}function p(O,w,E,D){return Se(he(w),O,E,D)}function m(O,w,E,D){return Se(In(w,O.length-E),O,E,D)}h.prototype.write=function(w,E,D,V){if(E===void 0)V="utf8",D=this.length,E=0;else if(D===void 0&&typeof E=="string")V=E,D=this.length,E=0;else if(isFinite(E))E=E>>>0,isFinite(D)?(D=D>>>0,V===void 0&&(V="utf8")):(V=D,D=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");const q=this.length-E;if((D===void 0||D>q)&&(D=q),w.length>0&&(D<0||E<0)||E>this.length)throw new RangeError("Attempt to write outside buffer bounds");V||(V="utf8");let st=!1;for(;;)switch(V){case"hex":return rt(this,w,E,D);case"utf8":case"utf-8":return ot(this,w,E,D);case"ascii":case"latin1":case"binary":return C(this,w,E,D);case"base64":return p(this,w,E,D);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return m(this,w,E,D);default:if(st)throw new TypeError("Unknown encoding: "+V);V=(""+V).toLowerCase(),st=!0}},h.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function v(O,w,E){return w===0&&E===O.length?t.fromByteArray(O):t.fromByteArray(O.slice(w,E))}function I(O,w,E){E=Math.min(O.length,E);const D=[];let V=w;for(;V<E;){const q=O[V];let st=null,qt=q>239?4:q>223?3:q>191?2:1;if(V+qt<=E){let Wt,jt,Fe,Ht;switch(qt){case 1:q<128&&(st=q);break;case 2:Wt=O[V+1],(Wt&192)===128&&(Ht=(q&31)<<6|Wt&63,Ht>127&&(st=Ht));break;case 3:Wt=O[V+1],jt=O[V+2],(Wt&192)===128&&(jt&192)===128&&(Ht=(q&15)<<12|(Wt&63)<<6|jt&63,Ht>2047&&(Ht<55296||Ht>57343)&&(st=Ht));break;case 4:Wt=O[V+1],jt=O[V+2],Fe=O[V+3],(Wt&192)===128&&(jt&192)===128&&(Fe&192)===128&&(Ht=(q&15)<<18|(Wt&63)<<12|(jt&63)<<6|Fe&63,Ht>65535&&Ht<1114112&&(st=Ht))}}st===null?(st=65533,qt=1):st>65535&&(st-=65536,D.push(st>>>10&1023|55296),st=56320|st&1023),D.push(st),V+=qt}return M(D)}const N=4096;function M(O){const w=O.length;if(w<=N)return String.fromCharCode.apply(String,O);let E="",D=0;for(;D<w;)E+=String.fromCharCode.apply(String,O.slice(D,D+=N));return E}function z(O,w,E){let D="";E=Math.min(O.length,E);for(let V=w;V<E;++V)D+=String.fromCharCode(O[V]&127);return D}function P(O,w,E){let D="";E=Math.min(O.length,E);for(let V=w;V<E;++V)D+=String.fromCharCode(O[V]);return D}function _(O,w,E){const D=O.length;(!w||w<0)&&(w=0),(!E||E<0||E>D)&&(E=D);let V="";for(let q=w;q<E;++q)V+=Be[O[q]];return V}function F(O,w,E){const D=O.slice(w,E);let V="";for(let q=0;q<D.length-1;q+=2)V+=String.fromCharCode(D[q]+D[q+1]*256);return V}h.prototype.slice=function(w,E){const D=this.length;w=~~w,E=E===void 0?D:~~E,w<0?(w+=D,w<0&&(w=0)):w>D&&(w=D),E<0?(E+=D,E<0&&(E=0)):E>D&&(E=D),E<w&&(E=w);const V=this.subarray(w,E);return Object.setPrototypeOf(V,h.prototype),V};function ct(O,w,E){if(O%1!==0||O<0)throw new RangeError("offset is not uint");if(O+w>E)throw new RangeError("Trying to access beyond buffer length")}h.prototype.readUintLE=h.prototype.readUIntLE=function(w,E,D){w=w>>>0,E=E>>>0,D||ct(w,E,this.length);let V=this[w],q=1,st=0;for(;++st<E&&(q*=256);)V+=this[w+st]*q;return V},h.prototype.readUintBE=h.prototype.readUIntBE=function(w,E,D){w=w>>>0,E=E>>>0,D||ct(w,E,this.length);let V=this[w+--E],q=1;for(;E>0&&(q*=256);)V+=this[w+--E]*q;return V},h.prototype.readUint8=h.prototype.readUInt8=function(w,E){return w=w>>>0,E||ct(w,1,this.length),this[w]},h.prototype.readUint16LE=h.prototype.readUInt16LE=function(w,E){return w=w>>>0,E||ct(w,2,this.length),this[w]|this[w+1]<<8},h.prototype.readUint16BE=h.prototype.readUInt16BE=function(w,E){return w=w>>>0,E||ct(w,2,this.length),this[w]<<8|this[w+1]},h.prototype.readUint32LE=h.prototype.readUInt32LE=function(w,E){return w=w>>>0,E||ct(w,4,this.length),(this[w]|this[w+1]<<8|this[w+2]<<16)+this[w+3]*16777216},h.prototype.readUint32BE=h.prototype.readUInt32BE=function(w,E){return w=w>>>0,E||ct(w,4,this.length),this[w]*16777216+(this[w+1]<<16|this[w+2]<<8|this[w+3])},h.prototype.readBigUInt64LE=cr(function(w){w=w>>>0,rn(w,"offset");const E=this[w],D=this[w+7];(E===void 0||D===void 0)&&fe(w,this.length-8);const V=E+this[++w]*2**8+this[++w]*2**16+this[++w]*2**24,q=this[++w]+this[++w]*2**8+this[++w]*2**16+D*2**24;return BigInt(V)+(BigInt(q)<<BigInt(32))}),h.prototype.readBigUInt64BE=cr(function(w){w=w>>>0,rn(w,"offset");const E=this[w],D=this[w+7];(E===void 0||D===void 0)&&fe(w,this.length-8);const V=E*2**24+this[++w]*2**16+this[++w]*2**8+this[++w],q=this[++w]*2**24+this[++w]*2**16+this[++w]*2**8+D;return(BigInt(V)<<BigInt(32))+BigInt(q)}),h.prototype.readIntLE=function(w,E,D){w=w>>>0,E=E>>>0,D||ct(w,E,this.length);let V=this[w],q=1,st=0;for(;++st<E&&(q*=256);)V+=this[w+st]*q;return q*=128,V>=q&&(V-=Math.pow(2,8*E)),V},h.prototype.readIntBE=function(w,E,D){w=w>>>0,E=E>>>0,D||ct(w,E,this.length);let V=E,q=1,st=this[w+--V];for(;V>0&&(q*=256);)st+=this[w+--V]*q;return q*=128,st>=q&&(st-=Math.pow(2,8*E)),st},h.prototype.readInt8=function(w,E){return w=w>>>0,E||ct(w,1,this.length),this[w]&128?(255-this[w]+1)*-1:this[w]},h.prototype.readInt16LE=function(w,E){w=w>>>0,E||ct(w,2,this.length);const D=this[w]|this[w+1]<<8;return D&32768?D|4294901760:D},h.prototype.readInt16BE=function(w,E){w=w>>>0,E||ct(w,2,this.length);const D=this[w+1]|this[w]<<8;return D&32768?D|4294901760:D},h.prototype.readInt32LE=function(w,E){return w=w>>>0,E||ct(w,4,this.length),this[w]|this[w+1]<<8|this[w+2]<<16|this[w+3]<<24},h.prototype.readInt32BE=function(w,E){return w=w>>>0,E||ct(w,4,this.length),this[w]<<24|this[w+1]<<16|this[w+2]<<8|this[w+3]},h.prototype.readBigInt64LE=cr(function(w){w=w>>>0,rn(w,"offset");const E=this[w],D=this[w+7];(E===void 0||D===void 0)&&fe(w,this.length-8);const V=this[w+4]+this[w+5]*2**8+this[w+6]*2**16+(D<<24);return(BigInt(V)<<BigInt(32))+BigInt(E+this[++w]*2**8+this[++w]*2**16+this[++w]*2**24)}),h.prototype.readBigInt64BE=cr(function(w){w=w>>>0,rn(w,"offset");const E=this[w],D=this[w+7];(E===void 0||D===void 0)&&fe(w,this.length-8);const V=(E<<24)+this[++w]*2**16+this[++w]*2**8+this[++w];return(BigInt(V)<<BigInt(32))+BigInt(this[++w]*2**24+this[++w]*2**16+this[++w]*2**8+D)}),h.prototype.readFloatLE=function(w,E){return w=w>>>0,E||ct(w,4,this.length),e.read(this,w,!0,23,4)},h.prototype.readFloatBE=function(w,E){return w=w>>>0,E||ct(w,4,this.length),e.read(this,w,!1,23,4)},h.prototype.readDoubleLE=function(w,E){return w=w>>>0,E||ct(w,8,this.length),e.read(this,w,!0,52,8)},h.prototype.readDoubleBE=function(w,E){return w=w>>>0,E||ct(w,8,this.length),e.read(this,w,!1,52,8)};function dt(O,w,E,D,V,q){if(!h.isBuffer(O))throw new TypeError('"buffer" argument must be a Buffer instance');if(w>V||w<q)throw new RangeError('"value" argument is out of bounds');if(E+D>O.length)throw new RangeError("Index out of range")}h.prototype.writeUintLE=h.prototype.writeUIntLE=function(w,E,D,V){if(w=+w,E=E>>>0,D=D>>>0,!V){const qt=Math.pow(2,8*D)-1;dt(this,w,E,D,qt,0)}let q=1,st=0;for(this[E]=w&255;++st<D&&(q*=256);)this[E+st]=w/q&255;return E+D},h.prototype.writeUintBE=h.prototype.writeUIntBE=function(w,E,D,V){if(w=+w,E=E>>>0,D=D>>>0,!V){const qt=Math.pow(2,8*D)-1;dt(this,w,E,D,qt,0)}let q=D-1,st=1;for(this[E+q]=w&255;--q>=0&&(st*=256);)this[E+q]=w/st&255;return E+D},h.prototype.writeUint8=h.prototype.writeUInt8=function(w,E,D){return w=+w,E=E>>>0,D||dt(this,w,E,1,255,0),this[E]=w&255,E+1},h.prototype.writeUint16LE=h.prototype.writeUInt16LE=function(w,E,D){return w=+w,E=E>>>0,D||dt(this,w,E,2,65535,0),this[E]=w&255,this[E+1]=w>>>8,E+2},h.prototype.writeUint16BE=h.prototype.writeUInt16BE=function(w,E,D){return w=+w,E=E>>>0,D||dt(this,w,E,2,65535,0),this[E]=w>>>8,this[E+1]=w&255,E+2},h.prototype.writeUint32LE=h.prototype.writeUInt32LE=function(w,E,D){return w=+w,E=E>>>0,D||dt(this,w,E,4,4294967295,0),this[E+3]=w>>>24,this[E+2]=w>>>16,this[E+1]=w>>>8,this[E]=w&255,E+4},h.prototype.writeUint32BE=h.prototype.writeUInt32BE=function(w,E,D){return w=+w,E=E>>>0,D||dt(this,w,E,4,4294967295,0),this[E]=w>>>24,this[E+1]=w>>>16,this[E+2]=w>>>8,this[E+3]=w&255,E+4};function mt(O,w,E,D,V){oe(w,D,V,O,E,7);let q=Number(w&BigInt(4294967295));O[E++]=q,q=q>>8,O[E++]=q,q=q>>8,O[E++]=q,q=q>>8,O[E++]=q;let st=Number(w>>BigInt(32)&BigInt(4294967295));return O[E++]=st,st=st>>8,O[E++]=st,st=st>>8,O[E++]=st,st=st>>8,O[E++]=st,E}function Gt(O,w,E,D,V){oe(w,D,V,O,E,7);let q=Number(w&BigInt(4294967295));O[E+7]=q,q=q>>8,O[E+6]=q,q=q>>8,O[E+5]=q,q=q>>8,O[E+4]=q;let st=Number(w>>BigInt(32)&BigInt(4294967295));return O[E+3]=st,st=st>>8,O[E+2]=st,st=st>>8,O[E+1]=st,st=st>>8,O[E]=st,E+8}h.prototype.writeBigUInt64LE=cr(function(w,E=0){return mt(this,w,E,BigInt(0),BigInt("0xffffffffffffffff"))}),h.prototype.writeBigUInt64BE=cr(function(w,E=0){return Gt(this,w,E,BigInt(0),BigInt("0xffffffffffffffff"))}),h.prototype.writeIntLE=function(w,E,D,V){if(w=+w,E=E>>>0,!V){const Wt=Math.pow(2,8*D-1);dt(this,w,E,D,Wt-1,-Wt)}let q=0,st=1,qt=0;for(this[E]=w&255;++q<D&&(st*=256);)w<0&&qt===0&&this[E+q-1]!==0&&(qt=1),this[E+q]=(w/st>>0)-qt&255;return E+D},h.prototype.writeIntBE=function(w,E,D,V){if(w=+w,E=E>>>0,!V){const Wt=Math.pow(2,8*D-1);dt(this,w,E,D,Wt-1,-Wt)}let q=D-1,st=1,qt=0;for(this[E+q]=w&255;--q>=0&&(st*=256);)w<0&&qt===0&&this[E+q+1]!==0&&(qt=1),this[E+q]=(w/st>>0)-qt&255;return E+D},h.prototype.writeInt8=function(w,E,D){return w=+w,E=E>>>0,D||dt(this,w,E,1,127,-128),w<0&&(w=255+w+1),this[E]=w&255,E+1},h.prototype.writeInt16LE=function(w,E,D){return w=+w,E=E>>>0,D||dt(this,w,E,2,32767,-32768),this[E]=w&255,this[E+1]=w>>>8,E+2},h.prototype.writeInt16BE=function(w,E,D){return w=+w,E=E>>>0,D||dt(this,w,E,2,32767,-32768),this[E]=w>>>8,this[E+1]=w&255,E+2},h.prototype.writeInt32LE=function(w,E,D){return w=+w,E=E>>>0,D||dt(this,w,E,4,2147483647,-2147483648),this[E]=w&255,this[E+1]=w>>>8,this[E+2]=w>>>16,this[E+3]=w>>>24,E+4},h.prototype.writeInt32BE=function(w,E,D){return w=+w,E=E>>>0,D||dt(this,w,E,4,2147483647,-2147483648),w<0&&(w=4294967295+w+1),this[E]=w>>>24,this[E+1]=w>>>16,this[E+2]=w>>>8,this[E+3]=w&255,E+4},h.prototype.writeBigInt64LE=cr(function(w,E=0){return mt(this,w,E,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),h.prototype.writeBigInt64BE=cr(function(w,E=0){return Gt(this,w,E,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Ut(O,w,E,D,V,q){if(E+D>O.length)throw new RangeError("Index out of range");if(E<0)throw new RangeError("Index out of range")}function Lt(O,w,E,D,V){return w=+w,E=E>>>0,V||Ut(O,w,E,4),e.write(O,w,E,D,23,4),E+4}h.prototype.writeFloatLE=function(w,E,D){return Lt(this,w,E,!0,D)},h.prototype.writeFloatBE=function(w,E,D){return Lt(this,w,E,!1,D)};function xe(O,w,E,D,V){return w=+w,E=E>>>0,V||Ut(O,w,E,8),e.write(O,w,E,D,52,8),E+8}h.prototype.writeDoubleLE=function(w,E,D){return xe(this,w,E,!0,D)},h.prototype.writeDoubleBE=function(w,E,D){return xe(this,w,E,!1,D)},h.prototype.copy=function(w,E,D,V){if(!h.isBuffer(w))throw new TypeError("argument should be a Buffer");if(D||(D=0),!V&&V!==0&&(V=this.length),E>=w.length&&(E=w.length),E||(E=0),V>0&&V<D&&(V=D),V===D||w.length===0||this.length===0)return 0;if(E<0)throw new RangeError("targetStart out of bounds");if(D<0||D>=this.length)throw new RangeError("Index out of range");if(V<0)throw new RangeError("sourceEnd out of bounds");V>this.length&&(V=this.length),w.length-E<V-D&&(V=w.length-E+D);const q=V-D;return this===w&&typeof s.prototype.copyWithin=="function"?this.copyWithin(E,D,V):s.prototype.set.call(w,this.subarray(D,V),E),q},h.prototype.fill=function(w,E,D,V){if(typeof w=="string"){if(typeof E=="string"?(V=E,E=0,D=this.length):typeof D=="string"&&(V=D,D=this.length),V!==void 0&&typeof V!="string")throw new TypeError("encoding must be a string");if(typeof V=="string"&&!h.isEncoding(V))throw new TypeError("Unknown encoding: "+V);if(w.length===1){const st=w.charCodeAt(0);(V==="utf8"&&st<128||V==="latin1")&&(w=st)}}else typeof w=="number"?w=w&255:typeof w=="boolean"&&(w=Number(w));if(E<0||this.length<E||this.length<D)throw new RangeError("Out of range index");if(D<=E)return this;E=E>>>0,D=D===void 0?this.length:D>>>0,w||(w=0);let q;if(typeof w=="number")for(q=E;q<D;++q)this[q]=w;else{const st=h.isBuffer(w)?w:h.from(w,V),qt=st.length;if(qt===0)throw new TypeError('The value "'+w+'" is invalid for argument "value"');for(q=0;q<D-E;++q)this[q+E]=st[q%qt]}return this};const Kt={};function Ft(O,w,E){Kt[O]=class extends E{constructor(){super(),Object.defineProperty(this,"message",{value:w.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${O}]`,this.stack,delete this.name}get code(){return O}set code(V){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:V,writable:!0})}toString(){return`${this.name} [${O}]: ${this.message}`}}}Ft("ERR_BUFFER_OUT_OF_BOUNDS",function(O){return O?`${O} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),Ft("ERR_INVALID_ARG_TYPE",function(O,w){return`The "${O}" argument must be of type number. Received type ${typeof w}`},TypeError),Ft("ERR_OUT_OF_RANGE",function(O,w,E){let D=`The value of "${O}" is out of range.`,V=E;return Number.isInteger(E)&&Math.abs(E)>2**32?V=ke(String(E)):typeof E=="bigint"&&(V=String(E),(E>BigInt(2)**BigInt(32)||E<-(BigInt(2)**BigInt(32)))&&(V=ke(V)),V+="n"),D+=` It must be ${w}. Received ${V}`,D},RangeError);function ke(O){let w="",E=O.length;const D=O[0]==="-"?1:0;for(;E>=D+4;E-=3)w=`_${O.slice(E-3,E)}${w}`;return`${O.slice(0,E)}${w}`}function re(O,w,E){rn(w,"offset"),(O[w]===void 0||O[w+E]===void 0)&&fe(w,O.length-(E+1))}function oe(O,w,E,D,V,q){if(O>E||O<w){const st=typeof w=="bigint"?"n":"";let qt;throw w===0||w===BigInt(0)?qt=`>= 0${st} and < 2${st} ** ${(q+1)*8}${st}`:qt=`>= -(2${st} ** ${(q+1)*8-1}${st}) and < 2 ** ${(q+1)*8-1}${st}`,new Kt.ERR_OUT_OF_RANGE("value",qt,O)}re(D,V,q)}function rn(O,w){if(typeof O!="number")throw new Kt.ERR_INVALID_ARG_TYPE(w,"number",O)}function fe(O,w,E){throw Math.floor(O)!==O?(rn(O,E),new Kt.ERR_OUT_OF_RANGE("offset","an integer",O)):w<0?new Kt.ERR_BUFFER_OUT_OF_BOUNDS:new Kt.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${w}`,O)}const Ue=/[^+/0-9A-Za-z-_]/g;function ea(O){if(O=O.split("=")[0],O=O.trim().replace(Ue,""),O.length<2)return"";for(;O.length%4!==0;)O=O+"=";return O}function Re(O,w){w=w||1/0;let E;const D=O.length;let V=null;const q=[];for(let st=0;st<D;++st){if(E=O.charCodeAt(st),E>55295&&E<57344){if(!V){if(E>56319){(w-=3)>-1&&q.push(239,191,189);continue}else if(st+1===D){(w-=3)>-1&&q.push(239,191,189);continue}V=E;continue}if(E<56320){(w-=3)>-1&&q.push(239,191,189),V=E;continue}E=(V-55296<<10|E-56320)+65536}else V&&(w-=3)>-1&&q.push(239,191,189);if(V=null,E<128){if((w-=1)<0)break;q.push(E)}else if(E<2048){if((w-=2)<0)break;q.push(E>>6|192,E&63|128)}else if(E<65536){if((w-=3)<0)break;q.push(E>>12|224,E>>6&63|128,E&63|128)}else if(E<1114112){if((w-=4)<0)break;q.push(E>>18|240,E>>12&63|128,E>>6&63|128,E&63|128)}else throw new Error("Invalid code point")}return q}function Ce(O){const w=[];for(let E=0;E<O.length;++E)w.push(O.charCodeAt(E)&255);return w}function In(O,w){let E,D,V;const q=[];for(let st=0;st<O.length&&!((w-=2)<0);++st)E=O.charCodeAt(st),D=E>>8,V=E%256,q.push(V),q.push(D);return q}function he(O){return t.toByteArray(ea(O))}function Se(O,w,E,D){let V;for(V=0;V<D&&!(V+E>=w.length||V>=O.length);++V)w[V+E]=O[V];return V}function sn(O,w){return O instanceof w||O!=null&&O.constructor!=null&&O.constructor.name!=null&&O.constructor.name===w.name}function Ee(O){return O!==O}const Be=function(){const O="0123456789abcdef",w=new Array(256);for(let E=0;E<16;++E){const D=E*16;for(let V=0;V<16;++V)w[D+V]=O[E]+O[V]}return w}();function cr(O){return typeof BigInt>"u"?De:O}function De(){throw new Error("BigInt not supported")}})(gg);const Zt=gg.Buffer,kt=gg.Buffer,C5=Object.freeze(Object.defineProperty({__proto__:null,Buffer:kt,default:Zt},Symbol.toStringTag,{value:"Module"}));var wg={exports:{}};const bg=kc(C5);wg.exports,function(n){(function(t,e){function r(C,p){if(!C)throw new Error(p||"Assertion failed")}function i(C,p){C.super_=p;var m=function(){};m.prototype=p.prototype,C.prototype=new m,C.prototype.constructor=C}function s(C,p,m){if(s.isBN(C))return C;this.negative=0,this.words=null,this.length=0,this.red=null,C!==null&&((p==="le"||p==="be")&&(m=p,p=10),this._init(C||0,p||10,m||"be"))}typeof t=="object"?t.exports=s:e.BN=s,s.BN=s,s.wordSize=26;var o;try{typeof window<"u"&&typeof window.Buffer<"u"?o=window.Buffer:o=bg.Buffer}catch{}s.isBN=function(p){return p instanceof s?!0:p!==null&&typeof p=="object"&&p.constructor.wordSize===s.wordSize&&Array.isArray(p.words)},s.max=function(p,m){return p.cmp(m)>0?p:m},s.min=function(p,m){return p.cmp(m)<0?p:m},s.prototype._init=function(p,m,v){if(typeof p=="number")return this._initNumber(p,m,v);if(typeof p=="object")return this._initArray(p,m,v);m==="hex"&&(m=16),r(m===(m|0)&&m>=2&&m<=36),p=p.toString().replace(/\s+/g,"");var I=0;p[0]==="-"&&(I++,this.negative=1),I<p.length&&(m===16?this._parseHex(p,I,v):(this._parseBase(p,m,I),v==="le"&&this._initArray(this.toArray(),m,v)))},s.prototype._initNumber=function(p,m,v){p<0&&(this.negative=1,p=-p),p<67108864?(this.words=[p&67108863],this.length=1):p<4503599627370496?(this.words=[p&67108863,p/67108864&67108863],this.length=2):(r(p<9007199254740992),this.words=[p&67108863,p/67108864&67108863,1],this.length=3),v==="le"&&this._initArray(this.toArray(),m,v)},s.prototype._initArray=function(p,m,v){if(r(typeof p.length=="number"),p.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(p.length/3),this.words=new Array(this.length);for(var I=0;I<this.length;I++)this.words[I]=0;var N,M,z=0;if(v==="be")for(I=p.length-1,N=0;I>=0;I-=3)M=p[I]|p[I-1]<<8|p[I-2]<<16,this.words[N]|=M<<z&67108863,this.words[N+1]=M>>>26-z&67108863,z+=24,z>=26&&(z-=26,N++);else if(v==="le")for(I=0,N=0;I<p.length;I+=3)M=p[I]|p[I+1]<<8|p[I+2]<<16,this.words[N]|=M<<z&67108863,this.words[N+1]=M>>>26-z&67108863,z+=24,z>=26&&(z-=26,N++);return this._strip()};function c(C,p){var m=C.charCodeAt(p);if(m>=48&&m<=57)return m-48;if(m>=65&&m<=70)return m-55;if(m>=97&&m<=102)return m-87;r(!1,"Invalid character in "+C)}function u(C,p,m){var v=c(C,m);return m-1>=p&&(v|=c(C,m-1)<<4),v}s.prototype._parseHex=function(p,m,v){this.length=Math.ceil((p.length-m)/6),this.words=new Array(this.length);for(var I=0;I<this.length;I++)this.words[I]=0;var N=0,M=0,z;if(v==="be")for(I=p.length-1;I>=m;I-=2)z=u(p,m,I)<<N,this.words[M]|=z&67108863,N>=18?(N-=18,M+=1,this.words[M]|=z>>>26):N+=8;else{var P=p.length-m;for(I=P%2===0?m+1:m;I<p.length;I+=2)z=u(p,m,I)<<N,this.words[M]|=z&67108863,N>=18?(N-=18,M+=1,this.words[M]|=z>>>26):N+=8}this._strip()};function f(C,p,m,v){for(var I=0,N=0,M=Math.min(C.length,m),z=p;z<M;z++){var P=C.charCodeAt(z)-48;I*=v,P>=49?N=P-49+10:P>=17?N=P-17+10:N=P,r(P>=0&&N<v,"Invalid character"),I+=N}return I}s.prototype._parseBase=function(p,m,v){this.words=[0],this.length=1;for(var I=0,N=1;N<=67108863;N*=m)I++;I--,N=N/m|0;for(var M=p.length-v,z=M%I,P=Math.min(M,M-z)+v,_=0,F=v;F<P;F+=I)_=f(p,F,F+I,m),this.imuln(N),this.words[0]+_<67108864?this.words[0]+=_:this._iaddn(_);if(z!==0){var ct=1;for(_=f(p,F,p.length,m),F=0;F<z;F++)ct*=m;this.imuln(ct),this.words[0]+_<67108864?this.words[0]+=_:this._iaddn(_)}this._strip()},s.prototype.copy=function(p){p.words=new Array(this.length);for(var m=0;m<this.length;m++)p.words[m]=this.words[m];p.length=this.length,p.negative=this.negative,p.red=this.red};function h(C,p){C.words=p.words,C.length=p.length,C.negative=p.negative,C.red=p.red}if(s.prototype._move=function(p){h(p,this)},s.prototype.clone=function(){var p=new s(null);return this.copy(p),p},s.prototype._expand=function(p){for(;this.length<p;)this.words[this.length++]=0;return this},s.prototype._strip=function(){for(;this.length>1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},s.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},typeof Symbol<"u"&&typeof Symbol.for=="function")try{s.prototype[Symbol.for("nodejs.util.inspect.custom")]=y}catch{s.prototype.inspect=y}else s.prototype.inspect=y;function y(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"}var A=["","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"],b=[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],R=[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];s.prototype.toString=function(p,m){p=p||10,m=m|0||1;var v;if(p===16||p==="hex"){v="";for(var I=0,N=0,M=0;M<this.length;M++){var z=this.words[M],P=((z<<I|N)&16777215).toString(16);N=z>>>24-I&16777215,I+=2,I>=26&&(I-=26,M--),N!==0||M!==this.length-1?v=A[6-P.length]+P+v:v=P+v}for(N!==0&&(v=N.toString(16)+v);v.length%m!==0;)v="0"+v;return this.negative!==0&&(v="-"+v),v}if(p===(p|0)&&p>=2&&p<=36){var _=b[p],F=R[p];v="";var ct=this.clone();for(ct.negative=0;!ct.isZero();){var dt=ct.modrn(F).toString(p);ct=ct.idivn(F),ct.isZero()?v=dt+v:v=A[_-dt.length]+dt+v}for(this.isZero()&&(v="0"+v);v.length%m!==0;)v="0"+v;return this.negative!==0&&(v="-"+v),v}r(!1,"Base should be between 2 and 36")},s.prototype.toNumber=function(){var p=this.words[0];return this.length===2?p+=this.words[1]*67108864:this.length===3&&this.words[2]===1?p+=4503599627370496+this.words[1]*67108864:this.length>2&&r(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-p:p},s.prototype.toJSON=function(){return this.toString(16,2)},o&&(s.prototype.toBuffer=function(p,m){return this.toArrayLike(o,p,m)}),s.prototype.toArray=function(p,m){return this.toArrayLike(Array,p,m)};var k=function(p,m){return p.allocUnsafe?p.allocUnsafe(m):new p(m)};s.prototype.toArrayLike=function(p,m,v){this._strip();var I=this.byteLength(),N=v||Math.max(1,I);r(I<=N,"byte array longer than desired length"),r(N>0,"Requested array length <= 0");var M=k(p,N),z=m==="le"?"LE":"BE";return this["_toArrayLike"+z](M,I),M},s.prototype._toArrayLikeLE=function(p,m){for(var v=0,I=0,N=0,M=0;N<this.length;N++){var z=this.words[N]<<M|I;p[v++]=z&255,v<p.length&&(p[v++]=z>>8&255),v<p.length&&(p[v++]=z>>16&255),M===6?(v<p.length&&(p[v++]=z>>24&255),I=0,M=0):(I=z>>>24,M+=2)}if(v<p.length)for(p[v++]=I;v<p.length;)p[v++]=0},s.prototype._toArrayLikeBE=function(p,m){for(var v=p.length-1,I=0,N=0,M=0;N<this.length;N++){var z=this.words[N]<<M|I;p[v--]=z&255,v>=0&&(p[v--]=z>>8&255),v>=0&&(p[v--]=z>>16&255),M===6?(v>=0&&(p[v--]=z>>24&255),I=0,M=0):(I=z>>>24,M+=2)}if(v>=0)for(p[v--]=I;v>=0;)p[v--]=0},Math.clz32?s.prototype._countBits=function(p){return 32-Math.clz32(p)}:s.prototype._countBits=function(p){var m=p,v=0;return m>=4096&&(v+=13,m>>>=13),m>=64&&(v+=7,m>>>=7),m>=8&&(v+=4,m>>>=4),m>=2&&(v+=2,m>>>=2),v+m},s.prototype._zeroBits=function(p){if(p===0)return 26;var m=p,v=0;return m&8191||(v+=13,m>>>=13),m&127||(v+=7,m>>>=7),m&15||(v+=4,m>>>=4),m&3||(v+=2,m>>>=2),m&1||v++,v},s.prototype.bitLength=function(){var p=this.words[this.length-1],m=this._countBits(p);return(this.length-1)*26+m};function S(C){for(var p=new Array(C.bitLength()),m=0;m<p.length;m++){var v=m/26|0,I=m%26;p[m]=C.words[v]>>>I&1}return p}s.prototype.zeroBits=function(){if(this.isZero())return 0;for(var p=0,m=0;m<this.length;m++){var v=this._zeroBits(this.words[m]);if(p+=v,v!==26)break}return p},s.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},s.prototype.toTwos=function(p){return this.negative!==0?this.abs().inotn(p).iaddn(1):this.clone()},s.prototype.fromTwos=function(p){return this.testn(p-1)?this.notn(p).iaddn(1).ineg():this.clone()},s.prototype.isNeg=function(){return this.negative!==0},s.prototype.neg=function(){return this.clone().ineg()},s.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},s.prototype.iuor=function(p){for(;this.length<p.length;)this.words[this.length++]=0;for(var m=0;m<p.length;m++)this.words[m]=this.words[m]|p.words[m];return this._strip()},s.prototype.ior=function(p){return r((this.negative|p.negative)===0),this.iuor(p)},s.prototype.or=function(p){return this.length>p.length?this.clone().ior(p):p.clone().ior(this)},s.prototype.uor=function(p){return this.length>p.length?this.clone().iuor(p):p.clone().iuor(this)},s.prototype.iuand=function(p){var m;this.length>p.length?m=p:m=this;for(var v=0;v<m.length;v++)this.words[v]=this.words[v]&p.words[v];return this.length=m.length,this._strip()},s.prototype.iand=function(p){return r((this.negative|p.negative)===0),this.iuand(p)},s.prototype.and=function(p){return this.length>p.length?this.clone().iand(p):p.clone().iand(this)},s.prototype.uand=function(p){return this.length>p.length?this.clone().iuand(p):p.clone().iuand(this)},s.prototype.iuxor=function(p){var m,v;this.length>p.length?(m=this,v=p):(m=p,v=this);for(var I=0;I<v.length;I++)this.words[I]=m.words[I]^v.words[I];if(this!==m)for(;I<m.length;I++)this.words[I]=m.words[I];return this.length=m.length,this._strip()},s.prototype.ixor=function(p){return r((this.negative|p.negative)===0),this.iuxor(p)},s.prototype.xor=function(p){return this.length>p.length?this.clone().ixor(p):p.clone().ixor(this)},s.prototype.uxor=function(p){return this.length>p.length?this.clone().iuxor(p):p.clone().iuxor(this)},s.prototype.inotn=function(p){r(typeof p=="number"&&p>=0);var m=Math.ceil(p/26)|0,v=p%26;this._expand(m),v>0&&m--;for(var I=0;I<m;I++)this.words[I]=~this.words[I]&67108863;return v>0&&(this.words[I]=~this.words[I]&67108863>>26-v),this._strip()},s.prototype.notn=function(p){return this.clone().inotn(p)},s.prototype.setn=function(p,m){r(typeof p=="number"&&p>=0);var v=p/26|0,I=p%26;return this._expand(v+1),m?this.words[v]=this.words[v]|1<<I:this.words[v]=this.words[v]&~(1<<I),this._strip()},s.prototype.iadd=function(p){var m;if(this.negative!==0&&p.negative===0)return this.negative=0,m=this.isub(p),this.negative^=1,this._normSign();if(this.negative===0&&p.negative!==0)return p.negative=0,m=this.isub(p),p.negative=1,m._normSign();var v,I;this.length>p.length?(v=this,I=p):(v=p,I=this);for(var N=0,M=0;M<I.length;M++)m=(v.words[M]|0)+(I.words[M]|0)+N,this.words[M]=m&67108863,N=m>>>26;for(;N!==0&&M<v.length;M++)m=(v.words[M]|0)+N,this.words[M]=m&67108863,N=m>>>26;if(this.length=v.length,N!==0)this.words[this.length]=N,this.length++;else if(v!==this)for(;M<v.length;M++)this.words[M]=v.words[M];return this},s.prototype.add=function(p){var m;return p.negative!==0&&this.negative===0?(p.negative=0,m=this.sub(p),p.negative^=1,m):p.negative===0&&this.negative!==0?(this.negative=0,m=p.sub(this),this.negative=1,m):this.length>p.length?this.clone().iadd(p):p.clone().iadd(this)},s.prototype.isub=function(p){if(p.negative!==0){p.negative=0;var m=this.iadd(p);return p.negative=1,m._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(p),this.negative=1,this._normSign();var v=this.cmp(p);if(v===0)return this.negative=0,this.length=1,this.words[0]=0,this;var I,N;v>0?(I=this,N=p):(I=p,N=this);for(var M=0,z=0;z<N.length;z++)m=(I.words[z]|0)-(N.words[z]|0)+M,M=m>>26,this.words[z]=m&67108863;for(;M!==0&&z<I.length;z++)m=(I.words[z]|0)+M,M=m>>26,this.words[z]=m&67108863;if(M===0&&z<I.length&&I!==this)for(;z<I.length;z++)this.words[z]=I.words[z];return this.length=Math.max(this.length,z),I!==this&&(this.negative=1),this._strip()},s.prototype.sub=function(p){return this.clone().isub(p)};function B(C,p,m){m.negative=p.negative^C.negative;var v=C.length+p.length|0;m.length=v,v=v-1|0;var I=C.words[0]|0,N=p.words[0]|0,M=I*N,z=M&67108863,P=M/67108864|0;m.words[0]=z;for(var _=1;_<v;_++){for(var F=P>>>26,ct=P&67108863,dt=Math.min(_,p.length-1),mt=Math.max(0,_-C.length+1);mt<=dt;mt++){var Gt=_-mt|0;I=C.words[Gt]|0,N=p.words[mt]|0,M=I*N+ct,F+=M/67108864|0,ct=M&67108863}m.words[_]=ct|0,P=F|0}return P!==0?m.words[_]=P|0:m.length--,m._strip()}var H=function(p,m,v){var I=p.words,N=m.words,M=v.words,z=0,P,_,F,ct=I[0]|0,dt=ct&8191,mt=ct>>>13,Gt=I[1]|0,Ut=Gt&8191,Lt=Gt>>>13,xe=I[2]|0,Kt=xe&8191,Ft=xe>>>13,ke=I[3]|0,re=ke&8191,oe=ke>>>13,rn=I[4]|0,fe=rn&8191,Ue=rn>>>13,ea=I[5]|0,Re=ea&8191,Ce=ea>>>13,In=I[6]|0,he=In&8191,Se=In>>>13,sn=I[7]|0,Ee=sn&8191,Be=sn>>>13,cr=I[8]|0,De=cr&8191,O=cr>>>13,w=I[9]|0,E=w&8191,D=w>>>13,V=N[0]|0,q=V&8191,st=V>>>13,qt=N[1]|0,Wt=qt&8191,jt=qt>>>13,Fe=N[2]|0,Ht=Fe&8191,ln=Fe>>>13,Ip=N[3]|0,fn=Ip&8191,hn=Ip>>>13,kp=N[4]|0,on=kp&8191,dn=kp>>>13,Tp=N[5]|0,an=Tp&8191,pn=Tp>>>13,vc=N[6]|0,Ye=vc&8191,gn=vc>>>13,Op=N[7]|0,yn=Op&8191,mn=Op>>>13,Np=N[8]|0,wn=Np&8191,bn=Np>>>13,xc=N[9]|0,_n=xc&8191,An=xc>>>13;v.negative=p.negative^m.negative,v.length=19,P=Math.imul(dt,q),_=Math.imul(dt,st),_=_+Math.imul(mt,q)|0,F=Math.imul(mt,st);var Oh=(z+P|0)+((_&8191)<<13)|0;z=(F+(_>>>13)|0)+(Oh>>>26)|0,Oh&=67108863,P=Math.imul(Ut,q),_=Math.imul(Ut,st),_=_+Math.imul(Lt,q)|0,F=Math.imul(Lt,st),P=P+Math.imul(dt,Wt)|0,_=_+Math.imul(dt,jt)|0,_=_+Math.imul(mt,Wt)|0,F=F+Math.imul(mt,jt)|0;var Nl=(z+P|0)+((_&8191)<<13)|0;z=(F+(_>>>13)|0)+(Nl>>>26)|0,Nl&=67108863,P=Math.imul(Kt,q),_=Math.imul(Kt,st),_=_+Math.imul(Ft,q)|0,F=Math.imul(Ft,st),P=P+Math.imul(Ut,Wt)|0,_=_+Math.imul(Ut,jt)|0,_=_+Math.imul(Lt,Wt)|0,F=F+Math.imul(Lt,jt)|0,P=P+Math.imul(dt,Ht)|0,_=_+Math.imul(dt,ln)|0,_=_+Math.imul(mt,Ht)|0,F=F+Math.imul(mt,ln)|0;var Nh=(z+P|0)+((_&8191)<<13)|0;z=(F+(_>>>13)|0)+(Nh>>>26)|0,Nh&=67108863,P=Math.imul(re,q),_=Math.imul(re,st),_=_+Math.imul(oe,q)|0,F=Math.imul(oe,st),P=P+Math.imul(Kt,Wt)|0,_=_+Math.imul(Kt,jt)|0,_=_+Math.imul(Ft,Wt)|0,F=F+Math.imul(Ft,jt)|0,P=P+Math.imul(Ut,Ht)|0,_=_+Math.imul(Ut,ln)|0,_=_+Math.imul(Lt,Ht)|0,F=F+Math.imul(Lt,ln)|0,P=P+Math.imul(dt,fn)|0,_=_+Math.imul(dt,hn)|0,_=_+Math.imul(mt,fn)|0,F=F+Math.imul(mt,hn)|0;var Ch=(z+P|0)+((_&8191)<<13)|0;z=(F+(_>>>13)|0)+(Ch>>>26)|0,Ch&=67108863,P=Math.imul(fe,q),_=Math.imul(fe,st),_=_+Math.imul(Ue,q)|0,F=Math.imul(Ue,st),P=P+Math.imul(re,Wt)|0,_=_+Math.imul(re,jt)|0,_=_+Math.imul(oe,Wt)|0,F=F+Math.imul(oe,jt)|0,P=P+Math.imul(Kt,Ht)|0,_=_+Math.imul(Kt,ln)|0,_=_+Math.imul(Ft,Ht)|0,F=F+Math.imul(Ft,ln)|0,P=P+Math.imul(Ut,fn)|0,_=_+Math.imul(Ut,hn)|0,_=_+Math.imul(Lt,fn)|0,F=F+Math.imul(Lt,hn)|0,P=P+Math.imul(dt,on)|0,_=_+Math.imul(dt,dn)|0,_=_+Math.imul(mt,on)|0,F=F+Math.imul(mt,dn)|0;var Bh=(z+P|0)+((_&8191)<<13)|0;z=(F+(_>>>13)|0)+(Bh>>>26)|0,Bh&=67108863,P=Math.imul(Re,q),_=Math.imul(Re,st),_=_+Math.imul(Ce,q)|0,F=Math.imul(Ce,st),P=P+Math.imul(fe,Wt)|0,_=_+Math.imul(fe,jt)|0,_=_+Math.imul(Ue,Wt)|0,F=F+Math.imul(Ue,jt)|0,P=P+Math.imul(re,Ht)|0,_=_+Math.imul(re,ln)|0,_=_+Math.imul(oe,Ht)|0,F=F+Math.imul(oe,ln)|0,P=P+Math.imul(Kt,fn)|0,_=_+Math.imul(Kt,hn)|0,_=_+Math.imul(Ft,fn)|0,F=F+Math.imul(Ft,hn)|0,P=P+Math.imul(Ut,on)|0,_=_+Math.imul(Ut,dn)|0,_=_+Math.imul(Lt,on)|0,F=F+Math.imul(Lt,dn)|0,P=P+Math.imul(dt,an)|0,_=_+Math.imul(dt,pn)|0,_=_+Math.imul(mt,an)|0,F=F+Math.imul(mt,pn)|0;var Ph=(z+P|0)+((_&8191)<<13)|0;z=(F+(_>>>13)|0)+(Ph>>>26)|0,Ph&=67108863,P=Math.imul(he,q),_=Math.imul(he,st),_=_+Math.imul(Se,q)|0,F=Math.imul(Se,st),P=P+Math.imul(Re,Wt)|0,_=_+Math.imul(Re,jt)|0,_=_+Math.imul(Ce,Wt)|0,F=F+Math.imul(Ce,jt)|0,P=P+Math.imul(fe,Ht)|0,_=_+Math.imul(fe,ln)|0,_=_+Math.imul(Ue,Ht)|0,F=F+Math.imul(Ue,ln)|0,P=P+Math.imul(re,fn)|0,_=_+Math.imul(re,hn)|0,_=_+Math.imul(oe,fn)|0,F=F+Math.imul(oe,hn)|0,P=P+Math.imul(Kt,on)|0,_=_+Math.imul(Kt,dn)|0,_=_+Math.imul(Ft,on)|0,F=F+Math.imul(Ft,dn)|0,P=P+Math.imul(Ut,an)|0,_=_+Math.imul(Ut,pn)|0,_=_+Math.imul(Lt,an)|0,F=F+Math.imul(Lt,pn)|0,P=P+Math.imul(dt,Ye)|0,_=_+Math.imul(dt,gn)|0,_=_+Math.imul(mt,Ye)|0,F=F+Math.imul(mt,gn)|0;var Cl=(z+P|0)+((_&8191)<<13)|0;z=(F+(_>>>13)|0)+(Cl>>>26)|0,Cl&=67108863,P=Math.imul(Ee,q),_=Math.imul(Ee,st),_=_+Math.imul(Be,q)|0,F=Math.imul(Be,st),P=P+Math.imul(he,Wt)|0,_=_+Math.imul(he,jt)|0,_=_+Math.imul(Se,Wt)|0,F=F+Math.imul(Se,jt)|0,P=P+Math.imul(Re,Ht)|0,_=_+Math.imul(Re,ln)|0,_=_+Math.imul(Ce,Ht)|0,F=F+Math.imul(Ce,ln)|0,P=P+Math.imul(fe,fn)|0,_=_+Math.imul(fe,hn)|0,_=_+Math.imul(Ue,fn)|0,F=F+Math.imul(Ue,hn)|0,P=P+Math.imul(re,on)|0,_=_+Math.imul(re,dn)|0,_=_+Math.imul(oe,on)|0,F=F+Math.imul(oe,dn)|0,P=P+Math.imul(Kt,an)|0,_=_+Math.imul(Kt,pn)|0,_=_+Math.imul(Ft,an)|0,F=F+Math.imul(Ft,pn)|0,P=P+Math.imul(Ut,Ye)|0,_=_+Math.imul(Ut,gn)|0,_=_+Math.imul(Lt,Ye)|0,F=F+Math.imul(Lt,gn)|0,P=P+Math.imul(dt,yn)|0,_=_+Math.imul(dt,mn)|0,_=_+Math.imul(mt,yn)|0,F=F+Math.imul(mt,mn)|0;var Mh=(z+P|0)+((_&8191)<<13)|0;z=(F+(_>>>13)|0)+(Mh>>>26)|0,Mh&=67108863,P=Math.imul(De,q),_=Math.imul(De,st),_=_+Math.imul(O,q)|0,F=Math.imul(O,st),P=P+Math.imul(Ee,Wt)|0,_=_+Math.imul(Ee,jt)|0,_=_+Math.imul(Be,Wt)|0,F=F+Math.imul(Be,jt)|0,P=P+Math.imul(he,Ht)|0,_=_+Math.imul(he,ln)|0,_=_+Math.imul(Se,Ht)|0,F=F+Math.imul(Se,ln)|0,P=P+Math.imul(Re,fn)|0,_=_+Math.imul(Re,hn)|0,_=_+Math.imul(Ce,fn)|0,F=F+Math.imul(Ce,hn)|0,P=P+Math.imul(fe,on)|0,_=_+Math.imul(fe,dn)|0,_=_+Math.imul(Ue,on)|0,F=F+Math.imul(Ue,dn)|0,P=P+Math.imul(re,an)|0,_=_+Math.imul(re,pn)|0,_=_+Math.imul(oe,an)|0,F=F+Math.imul(oe,pn)|0,P=P+Math.imul(Kt,Ye)|0,_=_+Math.imul(Kt,gn)|0,_=_+Math.imul(Ft,Ye)|0,F=F+Math.imul(Ft,gn)|0,P=P+Math.imul(Ut,yn)|0,_=_+Math.imul(Ut,mn)|0,_=_+Math.imul(Lt,yn)|0,F=F+Math.imul(Lt,mn)|0,P=P+Math.imul(dt,wn)|0,_=_+Math.imul(dt,bn)|0,_=_+Math.imul(mt,wn)|0,F=F+Math.imul(mt,bn)|0;var Xs=(z+P|0)+((_&8191)<<13)|0;z=(F+(_>>>13)|0)+(Xs>>>26)|0,Xs&=67108863,P=Math.imul(E,q),_=Math.imul(E,st),_=_+Math.imul(D,q)|0,F=Math.imul(D,st),P=P+Math.imul(De,Wt)|0,_=_+Math.imul(De,jt)|0,_=_+Math.imul(O,Wt)|0,F=F+Math.imul(O,jt)|0,P=P+Math.imul(Ee,Ht)|0,_=_+Math.imul(Ee,ln)|0,_=_+Math.imul(Be,Ht)|0,F=F+Math.imul(Be,ln)|0,P=P+Math.imul(he,fn)|0,_=_+Math.imul(he,hn)|0,_=_+Math.imul(Se,fn)|0,F=F+Math.imul(Se,hn)|0,P=P+Math.imul(Re,on)|0,_=_+Math.imul(Re,dn)|0,_=_+Math.imul(Ce,on)|0,F=F+Math.imul(Ce,dn)|0,P=P+Math.imul(fe,an)|0,_=_+Math.imul(fe,pn)|0,_=_+Math.imul(Ue,an)|0,F=F+Math.imul(Ue,pn)|0,P=P+Math.imul(re,Ye)|0,_=_+Math.imul(re,gn)|0,_=_+Math.imul(oe,Ye)|0,F=F+Math.imul(oe,gn)|0,P=P+Math.imul(Kt,yn)|0,_=_+Math.imul(Kt,mn)|0,_=_+Math.imul(Ft,yn)|0,F=F+Math.imul(Ft,mn)|0,P=P+Math.imul(Ut,wn)|0,_=_+Math.imul(Ut,bn)|0,_=_+Math.imul(Lt,wn)|0,F=F+Math.imul(Lt,bn)|0,P=P+Math.imul(dt,_n)|0,_=_+Math.imul(dt,An)|0,_=_+Math.imul(mt,_n)|0,F=F+Math.imul(mt,An)|0;var Lh=(z+P|0)+((_&8191)<<13)|0;z=(F+(_>>>13)|0)+(Lh>>>26)|0,Lh&=67108863,P=Math.imul(E,Wt),_=Math.imul(E,jt),_=_+Math.imul(D,Wt)|0,F=Math.imul(D,jt),P=P+Math.imul(De,Ht)|0,_=_+Math.imul(De,ln)|0,_=_+Math.imul(O,Ht)|0,F=F+Math.imul(O,ln)|0,P=P+Math.imul(Ee,fn)|0,_=_+Math.imul(Ee,hn)|0,_=_+Math.imul(Be,fn)|0,F=F+Math.imul(Be,hn)|0,P=P+Math.imul(he,on)|0,_=_+Math.imul(he,dn)|0,_=_+Math.imul(Se,on)|0,F=F+Math.imul(Se,dn)|0,P=P+Math.imul(Re,an)|0,_=_+Math.imul(Re,pn)|0,_=_+Math.imul(Ce,an)|0,F=F+Math.imul(Ce,pn)|0,P=P+Math.imul(fe,Ye)|0,_=_+Math.imul(fe,gn)|0,_=_+Math.imul(Ue,Ye)|0,F=F+Math.imul(Ue,gn)|0,P=P+Math.imul(re,yn)|0,_=_+Math.imul(re,mn)|0,_=_+Math.imul(oe,yn)|0,F=F+Math.imul(oe,mn)|0,P=P+Math.imul(Kt,wn)|0,_=_+Math.imul(Kt,bn)|0,_=_+Math.imul(Ft,wn)|0,F=F+Math.imul(Ft,bn)|0,P=P+Math.imul(Ut,_n)|0,_=_+Math.imul(Ut,An)|0,_=_+Math.imul(Lt,_n)|0,F=F+Math.imul(Lt,An)|0;var Ti=(z+P|0)+((_&8191)<<13)|0;z=(F+(_>>>13)|0)+(Ti>>>26)|0,Ti&=67108863,P=Math.imul(E,Ht),_=Math.imul(E,ln),_=_+Math.imul(D,Ht)|0,F=Math.imul(D,ln),P=P+Math.imul(De,fn)|0,_=_+Math.imul(De,hn)|0,_=_+Math.imul(O,fn)|0,F=F+Math.imul(O,hn)|0,P=P+Math.imul(Ee,on)|0,_=_+Math.imul(Ee,dn)|0,_=_+Math.imul(Be,on)|0,F=F+Math.imul(Be,dn)|0,P=P+Math.imul(he,an)|0,_=_+Math.imul(he,pn)|0,_=_+Math.imul(Se,an)|0,F=F+Math.imul(Se,pn)|0,P=P+Math.imul(Re,Ye)|0,_=_+Math.imul(Re,gn)|0,_=_+Math.imul(Ce,Ye)|0,F=F+Math.imul(Ce,gn)|0,P=P+Math.imul(fe,yn)|0,_=_+Math.imul(fe,mn)|0,_=_+Math.imul(Ue,yn)|0,F=F+Math.imul(Ue,mn)|0,P=P+Math.imul(re,wn)|0,_=_+Math.imul(re,bn)|0,_=_+Math.imul(oe,wn)|0,F=F+Math.imul(oe,bn)|0,P=P+Math.imul(Kt,_n)|0,_=_+Math.imul(Kt,An)|0,_=_+Math.imul(Ft,_n)|0,F=F+Math.imul(Ft,An)|0;var Uh=(z+P|0)+((_&8191)<<13)|0;z=(F+(_>>>13)|0)+(Uh>>>26)|0,Uh&=67108863,P=Math.imul(E,fn),_=Math.imul(E,hn),_=_+Math.imul(D,fn)|0,F=Math.imul(D,hn),P=P+Math.imul(De,on)|0,_=_+Math.imul(De,dn)|0,_=_+Math.imul(O,on)|0,F=F+Math.imul(O,dn)|0,P=P+Math.imul(Ee,an)|0,_=_+Math.imul(Ee,pn)|0,_=_+Math.imul(Be,an)|0,F=F+Math.imul(Be,pn)|0,P=P+Math.imul(he,Ye)|0,_=_+Math.imul(he,gn)|0,_=_+Math.imul(Se,Ye)|0,F=F+Math.imul(Se,gn)|0,P=P+Math.imul(Re,yn)|0,_=_+Math.imul(Re,mn)|0,_=_+Math.imul(Ce,yn)|0,F=F+Math.imul(Ce,mn)|0,P=P+Math.imul(fe,wn)|0,_=_+Math.imul(fe,bn)|0,_=_+Math.imul(Ue,wn)|0,F=F+Math.imul(Ue,bn)|0,P=P+Math.imul(re,_n)|0,_=_+Math.imul(re,An)|0,_=_+Math.imul(oe,_n)|0,F=F+Math.imul(oe,An)|0;var Dh=(z+P|0)+((_&8191)<<13)|0;z=(F+(_>>>13)|0)+(Dh>>>26)|0,Dh&=67108863,P=Math.imul(E,on),_=Math.imul(E,dn),_=_+Math.imul(D,on)|0,F=Math.imul(D,dn),P=P+Math.imul(De,an)|0,_=_+Math.imul(De,pn)|0,_=_+Math.imul(O,an)|0,F=F+Math.imul(O,pn)|0,P=P+Math.imul(Ee,Ye)|0,_=_+Math.imul(Ee,gn)|0,_=_+Math.imul(Be,Ye)|0,F=F+Math.imul(Be,gn)|0,P=P+Math.imul(he,yn)|0,_=_+Math.imul(he,mn)|0,_=_+Math.imul(Se,yn)|0,F=F+Math.imul(Se,mn)|0,P=P+Math.imul(Re,wn)|0,_=_+Math.imul(Re,bn)|0,_=_+Math.imul(Ce,wn)|0,F=F+Math.imul(Ce,bn)|0,P=P+Math.imul(fe,_n)|0,_=_+Math.imul(fe,An)|0,_=_+Math.imul(Ue,_n)|0,F=F+Math.imul(Ue,An)|0;var Bl=(z+P|0)+((_&8191)<<13)|0;z=(F+(_>>>13)|0)+(Bl>>>26)|0,Bl&=67108863,P=Math.imul(E,an),_=Math.imul(E,pn),_=_+Math.imul(D,an)|0,F=Math.imul(D,pn),P=P+Math.imul(De,Ye)|0,_=_+Math.imul(De,gn)|0,_=_+Math.imul(O,Ye)|0,F=F+Math.imul(O,gn)|0,P=P+Math.imul(Ee,yn)|0,_=_+Math.imul(Ee,mn)|0,_=_+Math.imul(Be,yn)|0,F=F+Math.imul(Be,mn)|0,P=P+Math.imul(he,wn)|0,_=_+Math.imul(he,bn)|0,_=_+Math.imul(Se,wn)|0,F=F+Math.imul(Se,bn)|0,P=P+Math.imul(Re,_n)|0,_=_+Math.imul(Re,An)|0,_=_+Math.imul(Ce,_n)|0,F=F+Math.imul(Ce,An)|0;var Fh=(z+P|0)+((_&8191)<<13)|0;z=(F+(_>>>13)|0)+(Fh>>>26)|0,Fh&=67108863,P=Math.imul(E,Ye),_=Math.imul(E,gn),_=_+Math.imul(D,Ye)|0,F=Math.imul(D,gn),P=P+Math.imul(De,yn)|0,_=_+Math.imul(De,mn)|0,_=_+Math.imul(O,yn)|0,F=F+Math.imul(O,mn)|0,P=P+Math.imul(Ee,wn)|0,_=_+Math.imul(Ee,bn)|0,_=_+Math.imul(Be,wn)|0,F=F+Math.imul(Be,bn)|0,P=P+Math.imul(he,_n)|0,_=_+Math.imul(he,An)|0,_=_+Math.imul(Se,_n)|0,F=F+Math.imul(Se,An)|0;var $h=(z+P|0)+((_&8191)<<13)|0;z=(F+(_>>>13)|0)+($h>>>26)|0,$h&=67108863,P=Math.imul(E,yn),_=Math.imul(E,mn),_=_+Math.imul(D,yn)|0,F=Math.imul(D,mn),P=P+Math.imul(De,wn)|0,_=_+Math.imul(De,bn)|0,_=_+Math.imul(O,wn)|0,F=F+Math.imul(O,bn)|0,P=P+Math.imul(Ee,_n)|0,_=_+Math.imul(Ee,An)|0,_=_+Math.imul(Be,_n)|0,F=F+Math.imul(Be,An)|0;var Hh=(z+P|0)+((_&8191)<<13)|0;z=(F+(_>>>13)|0)+(Hh>>>26)|0,Hh&=67108863,P=Math.imul(E,wn),_=Math.imul(E,bn),_=_+Math.imul(D,wn)|0,F=Math.imul(D,bn),P=P+Math.imul(De,_n)|0,_=_+Math.imul(De,An)|0,_=_+Math.imul(O,_n)|0,F=F+Math.imul(O,An)|0;var zh=(z+P|0)+((_&8191)<<13)|0;z=(F+(_>>>13)|0)+(zh>>>26)|0,zh&=67108863,P=Math.imul(E,_n),_=Math.imul(E,An),_=_+Math.imul(D,_n)|0,F=Math.imul(D,An);var na=(z+P|0)+((_&8191)<<13)|0;return z=(F+(_>>>13)|0)+(na>>>26)|0,na&=67108863,M[0]=Oh,M[1]=Nl,M[2]=Nh,M[3]=Ch,M[4]=Bh,M[5]=Ph,M[6]=Cl,M[7]=Mh,M[8]=Xs,M[9]=Lh,M[10]=Ti,M[11]=Uh,M[12]=Dh,M[13]=Bl,M[14]=Fh,M[15]=$h,M[16]=Hh,M[17]=zh,M[18]=na,z!==0&&(M[19]=z,v.length++),v};Math.imul||(H=B);function U(C,p,m){m.negative=p.negative^C.negative,m.length=C.length+p.length;for(var v=0,I=0,N=0;N<m.length-1;N++){var M=I;I=0;for(var z=v&67108863,P=Math.min(N,p.length-1),_=Math.max(0,N-C.length+1);_<=P;_++){var F=N-_,ct=C.words[F]|0,dt=p.words[_]|0,mt=ct*dt,Gt=mt&67108863;M=M+(mt/67108864|0)|0,Gt=Gt+z|0,z=Gt&67108863,M=M+(Gt>>>26)|0,I+=M>>>26,M&=67108863}m.words[N]=z,v=M,M=I}return v!==0?m.words[N]=v:m.length--,m._strip()}function G(C,p,m){return U(C,p,m)}s.prototype.mulTo=function(p,m){var v,I=this.length+p.length;return this.length===10&&p.length===10?v=H(this,p,m):I<63?v=B(this,p,m):I<1024?v=U(this,p,m):v=G(this,p,m),v},s.prototype.mul=function(p){var m=new s(null);return m.words=new Array(this.length+p.length),this.mulTo(p,m)},s.prototype.mulf=function(p){var m=new s(null);return m.words=new Array(this.length+p.length),G(this,p,m)},s.prototype.imul=function(p){return this.clone().mulTo(p,this)},s.prototype.imuln=function(p){var m=p<0;m&&(p=-p),r(typeof p=="number"),r(p<67108864);for(var v=0,I=0;I<this.length;I++){var N=(this.words[I]|0)*p,M=(N&67108863)+(v&67108863);v>>=26,v+=N/67108864|0,v+=M>>>26,this.words[I]=M&67108863}return v!==0&&(this.words[I]=v,this.length++),m?this.ineg():this},s.prototype.muln=function(p){return this.clone().imuln(p)},s.prototype.sqr=function(){return this.mul(this)},s.prototype.isqr=function(){return this.imul(this.clone())},s.prototype.pow=function(p){var m=S(p);if(m.length===0)return new s(1);for(var v=this,I=0;I<m.length&&m[I]===0;I++,v=v.sqr());if(++I<m.length)for(var N=v.sqr();I<m.length;I++,N=N.sqr())m[I]!==0&&(v=v.mul(N));return v},s.prototype.iushln=function(p){r(typeof p=="number"&&p>=0);var m=p%26,v=(p-m)/26,I=67108863>>>26-m<<26-m,N;if(m!==0){var M=0;for(N=0;N<this.length;N++){var z=this.words[N]&I,P=(this.words[N]|0)-z<<m;this.words[N]=P|M,M=z>>>26-m}M&&(this.words[N]=M,this.length++)}if(v!==0){for(N=this.length-1;N>=0;N--)this.words[N+v]=this.words[N];for(N=0;N<v;N++)this.words[N]=0;this.length+=v}return this._strip()},s.prototype.ishln=function(p){return r(this.negative===0),this.iushln(p)},s.prototype.iushrn=function(p,m,v){r(typeof p=="number"&&p>=0);var I;m?I=(m-m%26)/26:I=0;var N=p%26,M=Math.min((p-N)/26,this.length),z=67108863^67108863>>>N<<N,P=v;if(I-=M,I=Math.max(0,I),P){for(var _=0;_<M;_++)P.words[_]=this.words[_];P.length=M}if(M!==0)if(this.length>M)for(this.length-=M,_=0;_<this.length;_++)this.words[_]=this.words[_+M];else this.words[0]=0,this.length=1;var F=0;for(_=this.length-1;_>=0&&(F!==0||_>=I);_--){var ct=this.words[_]|0;this.words[_]=F<<26-N|ct>>>N,F=ct&z}return P&&F!==0&&(P.words[P.length++]=F),this.length===0&&(this.words[0]=0,this.length=1),this._strip()},s.prototype.ishrn=function(p,m,v){return r(this.negative===0),this.iushrn(p,m,v)},s.prototype.shln=function(p){return this.clone().ishln(p)},s.prototype.ushln=function(p){return this.clone().iushln(p)},s.prototype.shrn=function(p){return this.clone().ishrn(p)},s.prototype.ushrn=function(p){return this.clone().iushrn(p)},s.prototype.testn=function(p){r(typeof p=="number"&&p>=0);var m=p%26,v=(p-m)/26,I=1<<m;if(this.length<=v)return!1;var N=this.words[v];return!!(N&I)},s.prototype.imaskn=function(p){r(typeof p=="number"&&p>=0);var m=p%26,v=(p-m)/26;if(r(this.negative===0,"imaskn works only with positive numbers"),this.length<=v)return this;if(m!==0&&v++,this.length=Math.min(v,this.length),m!==0){var I=67108863^67108863>>>m<<m;this.words[this.length-1]&=I}return this._strip()},s.prototype.maskn=function(p){return this.clone().imaskn(p)},s.prototype.iaddn=function(p){return r(typeof p=="number"),r(p<67108864),p<0?this.isubn(-p):this.negative!==0?this.length===1&&(this.words[0]|0)<=p?(this.words[0]=p-(this.words[0]|0),this.negative=0,this):(this.negative=0,this.isubn(p),this.negative=1,this):this._iaddn(p)},s.prototype._iaddn=function(p){this.words[0]+=p;for(var m=0;m<this.length&&this.words[m]>=67108864;m++)this.words[m]-=67108864,m===this.length-1?this.words[m+1]=1:this.words[m+1]++;return this.length=Math.max(this.length,m+1),this},s.prototype.isubn=function(p){if(r(typeof p=="number"),r(p<67108864),p<0)return this.iaddn(-p);if(this.negative!==0)return this.negative=0,this.iaddn(p),this.negative=1,this;if(this.words[0]-=p,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var m=0;m<this.length&&this.words[m]<0;m++)this.words[m]+=67108864,this.words[m+1]-=1;return this._strip()},s.prototype.addn=function(p){return this.clone().iaddn(p)},s.prototype.subn=function(p){return this.clone().isubn(p)},s.prototype.iabs=function(){return this.negative=0,this},s.prototype.abs=function(){return this.clone().iabs()},s.prototype._ishlnsubmul=function(p,m,v){var I=p.length+v,N;this._expand(I);var M,z=0;for(N=0;N<p.length;N++){M=(this.words[N+v]|0)+z;var P=(p.words[N]|0)*m;M-=P&67108863,z=(M>>26)-(P/67108864|0),this.words[N+v]=M&67108863}for(;N<this.length-v;N++)M=(this.words[N+v]|0)+z,z=M>>26,this.words[N+v]=M&67108863;if(z===0)return this._strip();for(r(z===-1),z=0,N=0;N<this.length;N++)M=-(this.words[N]|0)+z,z=M>>26,this.words[N]=M&67108863;return this.negative=1,this._strip()},s.prototype._wordDiv=function(p,m){var v=this.length-p.length,I=this.clone(),N=p,M=N.words[N.length-1]|0,z=this._countBits(M);v=26-z,v!==0&&(N=N.ushln(v),I.iushln(v),M=N.words[N.length-1]|0);var P=I.length-N.length,_;if(m!=="mod"){_=new s(null),_.length=P+1,_.words=new Array(_.length);for(var F=0;F<_.length;F++)_.words[F]=0}var ct=I.clone()._ishlnsubmul(N,1,P);ct.negative===0&&(I=ct,_&&(_.words[P]=1));for(var dt=P-1;dt>=0;dt--){var mt=(I.words[N.length+dt]|0)*67108864+(I.words[N.length+dt-1]|0);for(mt=Math.min(mt/M|0,67108863),I._ishlnsubmul(N,mt,dt);I.negative!==0;)mt--,I.negative=0,I._ishlnsubmul(N,1,dt),I.isZero()||(I.negative^=1);_&&(_.words[dt]=mt)}return _&&_._strip(),I._strip(),m!=="div"&&v!==0&&I.iushrn(v),{div:_||null,mod:I}},s.prototype.divmod=function(p,m,v){if(r(!p.isZero()),this.isZero())return{div:new s(0),mod:new s(0)};var I,N,M;return this.negative!==0&&p.negative===0?(M=this.neg().divmod(p,m),m!=="mod"&&(I=M.div.neg()),m!=="div"&&(N=M.mod.neg(),v&&N.negative!==0&&N.iadd(p)),{div:I,mod:N}):this.negative===0&&p.negative!==0?(M=this.divmod(p.neg(),m),m!=="mod"&&(I=M.div.neg()),{div:I,mod:M.mod}):this.negative&p.negative?(M=this.neg().divmod(p.neg(),m),m!=="div"&&(N=M.mod.neg(),v&&N.negative!==0&&N.isub(p)),{div:M.div,mod:N}):p.length>this.length||this.cmp(p)<0?{div:new s(0),mod:this}:p.length===1?m==="div"?{div:this.divn(p.words[0]),mod:null}:m==="mod"?{div:null,mod:new s(this.modrn(p.words[0]))}:{div:this.divn(p.words[0]),mod:new s(this.modrn(p.words[0]))}:this._wordDiv(p,m)},s.prototype.div=function(p){return this.divmod(p,"div",!1).div},s.prototype.mod=function(p){return this.divmod(p,"mod",!1).mod},s.prototype.umod=function(p){return this.divmod(p,"mod",!0).mod},s.prototype.divRound=function(p){var m=this.divmod(p);if(m.mod.isZero())return m.div;var v=m.div.negative!==0?m.mod.isub(p):m.mod,I=p.ushrn(1),N=p.andln(1),M=v.cmp(I);return M<0||N===1&&M===0?m.div:m.div.negative!==0?m.div.isubn(1):m.div.iaddn(1)},s.prototype.modrn=function(p){var m=p<0;m&&(p=-p),r(p<=67108863);for(var v=(1<<26)%p,I=0,N=this.length-1;N>=0;N--)I=(v*I+(this.words[N]|0))%p;return m?-I:I},s.prototype.modn=function(p){return this.modrn(p)},s.prototype.idivn=function(p){var m=p<0;m&&(p=-p),r(p<=67108863);for(var v=0,I=this.length-1;I>=0;I--){var N=(this.words[I]|0)+v*67108864;this.words[I]=N/p|0,v=N%p}return this._strip(),m?this.ineg():this},s.prototype.divn=function(p){return this.clone().idivn(p)},s.prototype.egcd=function(p){r(p.negative===0),r(!p.isZero());var m=this,v=p.clone();m.negative!==0?m=m.umod(p):m=m.clone();for(var I=new s(1),N=new s(0),M=new s(0),z=new s(1),P=0;m.isEven()&&v.isEven();)m.iushrn(1),v.iushrn(1),++P;for(var _=v.clone(),F=m.clone();!m.isZero();){for(var ct=0,dt=1;!(m.words[0]&dt)&&ct<26;++ct,dt<<=1);if(ct>0)for(m.iushrn(ct);ct-- >0;)(I.isOdd()||N.isOdd())&&(I.iadd(_),N.isub(F)),I.iushrn(1),N.iushrn(1);for(var mt=0,Gt=1;!(v.words[0]&Gt)&&mt<26;++mt,Gt<<=1);if(mt>0)for(v.iushrn(mt);mt-- >0;)(M.isOdd()||z.isOdd())&&(M.iadd(_),z.isub(F)),M.iushrn(1),z.iushrn(1);m.cmp(v)>=0?(m.isub(v),I.isub(M),N.isub(z)):(v.isub(m),M.isub(I),z.isub(N))}return{a:M,b:z,gcd:v.iushln(P)}},s.prototype._invmp=function(p){r(p.negative===0),r(!p.isZero());var m=this,v=p.clone();m.negative!==0?m=m.umod(p):m=m.clone();for(var I=new s(1),N=new s(0),M=v.clone();m.cmpn(1)>0&&v.cmpn(1)>0;){for(var z=0,P=1;!(m.words[0]&P)&&z<26;++z,P<<=1);if(z>0)for(m.iushrn(z);z-- >0;)I.isOdd()&&I.iadd(M),I.iushrn(1);for(var _=0,F=1;!(v.words[0]&F)&&_<26;++_,F<<=1);if(_>0)for(v.iushrn(_);_-- >0;)N.isOdd()&&N.iadd(M),N.iushrn(1);m.cmp(v)>=0?(m.isub(v),I.isub(N)):(v.isub(m),N.isub(I))}var ct;return m.cmpn(1)===0?ct=I:ct=N,ct.cmpn(0)<0&&ct.iadd(p),ct},s.prototype.gcd=function(p){if(this.isZero())return p.abs();if(p.isZero())return this.abs();var m=this.clone(),v=p.clone();m.negative=0,v.negative=0;for(var I=0;m.isEven()&&v.isEven();I++)m.iushrn(1),v.iushrn(1);do{for(;m.isEven();)m.iushrn(1);for(;v.isEven();)v.iushrn(1);var N=m.cmp(v);if(N<0){var M=m;m=v,v=M}else if(N===0||v.cmpn(1)===0)break;m.isub(v)}while(!0);return v.iushln(I)},s.prototype.invm=function(p){return this.egcd(p).a.umod(p)},s.prototype.isEven=function(){return(this.words[0]&1)===0},s.prototype.isOdd=function(){return(this.words[0]&1)===1},s.prototype.andln=function(p){return this.words[0]&p},s.prototype.bincn=function(p){r(typeof p=="number");var m=p%26,v=(p-m)/26,I=1<<m;if(this.length<=v)return this._expand(v+1),this.words[v]|=I,this;for(var N=I,M=v;N!==0&&M<this.length;M++){var z=this.words[M]|0;z+=N,N=z>>>26,z&=67108863,this.words[M]=z}return N!==0&&(this.words[M]=N,this.length++),this},s.prototype.isZero=function(){return this.length===1&&this.words[0]===0},s.prototype.cmpn=function(p){var m=p<0;if(this.negative!==0&&!m)return-1;if(this.negative===0&&m)return 1;this._strip();var v;if(this.length>1)v=1;else{m&&(p=-p),r(p<=67108863,"Number is too big");var I=this.words[0]|0;v=I===p?0:I<p?-1:1}return this.negative!==0?-v|0:v},s.prototype.cmp=function(p){if(this.negative!==0&&p.negative===0)return-1;if(this.negative===0&&p.negative!==0)return 1;var m=this.ucmp(p);return this.negative!==0?-m|0:m},s.prototype.ucmp=function(p){if(this.length>p.length)return 1;if(this.length<p.length)return-1;for(var m=0,v=this.length-1;v>=0;v--){var I=this.words[v]|0,N=p.words[v]|0;if(I!==N){I<N?m=-1:I>N&&(m=1);break}}return m},s.prototype.gtn=function(p){return this.cmpn(p)===1},s.prototype.gt=function(p){return this.cmp(p)===1},s.prototype.gten=function(p){return this.cmpn(p)>=0},s.prototype.gte=function(p){return this.cmp(p)>=0},s.prototype.ltn=function(p){return this.cmpn(p)===-1},s.prototype.lt=function(p){return this.cmp(p)===-1},s.prototype.lten=function(p){return this.cmpn(p)<=0},s.prototype.lte=function(p){return this.cmp(p)<=0},s.prototype.eqn=function(p){return this.cmpn(p)===0},s.prototype.eq=function(p){return this.cmp(p)===0},s.red=function(p){return new rt(p)},s.prototype.toRed=function(p){return r(!this.red,"Already a number in reduction context"),r(this.negative===0,"red works only with positives"),p.convertTo(this)._forceRed(p)},s.prototype.fromRed=function(){return r(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},s.prototype._forceRed=function(p){return this.red=p,this},s.prototype.forceRed=function(p){return r(!this.red,"Already a number in reduction context"),this._forceRed(p)},s.prototype.redAdd=function(p){return r(this.red,"redAdd works only with red numbers"),this.red.add(this,p)},s.prototype.redIAdd=function(p){return r(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,p)},s.prototype.redSub=function(p){return r(this.red,"redSub works only with red numbers"),this.red.sub(this,p)},s.prototype.redISub=function(p){return r(this.red,"redISub works only with red numbers"),this.red.isub(this,p)},s.prototype.redShl=function(p){return r(this.red,"redShl works only with red numbers"),this.red.shl(this,p)},s.prototype.redMul=function(p){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,p),this.red.mul(this,p)},s.prototype.redIMul=function(p){return r(this.red,"redMul works only with red numbers"),this.red._verify2(this,p),this.red.imul(this,p)},s.prototype.redSqr=function(){return r(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},s.prototype.redISqr=function(){return r(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},s.prototype.redSqrt=function(){return r(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},s.prototype.redInvm=function(){return r(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},s.prototype.redNeg=function(){return r(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},s.prototype.redPow=function(p){return r(this.red&&!p.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,p)};var W={k256:null,p224:null,p192:null,p25519:null};function J(C,p){this.name=C,this.p=new s(p,16),this.n=this.p.bitLength(),this.k=new s(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}J.prototype._tmp=function(){var p=new s(null);return p.words=new Array(Math.ceil(this.n/13)),p},J.prototype.ireduce=function(p){var m=p,v;do this.split(m,this.tmp),m=this.imulK(m),m=m.iadd(this.tmp),v=m.bitLength();while(v>this.n);var I=v<this.n?-1:m.ucmp(this.p);return I===0?(m.words[0]=0,m.length=1):I>0?m.isub(this.p):m.strip!==void 0?m.strip():m._strip(),m},J.prototype.split=function(p,m){p.iushrn(this.n,0,m)},J.prototype.imulK=function(p){return p.imul(this.k)};function j(){J.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}i(j,J),j.prototype.split=function(p,m){for(var v=4194303,I=Math.min(p.length,9),N=0;N<I;N++)m.words[N]=p.words[N];if(m.length=I,p.length<=9){p.words[0]=0,p.length=1;return}var M=p.words[9];for(m.words[m.length++]=M&v,N=10;N<p.length;N++){var z=p.words[N]|0;p.words[N-10]=(z&v)<<4|M>>>22,M=z}M>>>=22,p.words[N-10]=M,M===0&&p.length>10?p.length-=10:p.length-=9},j.prototype.imulK=function(p){p.words[p.length]=0,p.words[p.length+1]=0,p.length+=2;for(var m=0,v=0;v<p.length;v++){var I=p.words[v]|0;m+=I*977,p.words[v]=m&67108863,m=I*64+(m/67108864|0)}return p.words[p.length-1]===0&&(p.length--,p.words[p.length-1]===0&&p.length--),p};function Y(){J.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}i(Y,J);function it(){J.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}i(it,J);function ut(){J.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}i(ut,J),ut.prototype.imulK=function(p){for(var m=0,v=0;v<p.length;v++){var I=(p.words[v]|0)*19+m,N=I&67108863;I>>>=26,p.words[v]=N,m=I}return m!==0&&(p.words[p.length++]=m),p},s._prime=function(p){if(W[p])return W[p];var m;if(p==="k256")m=new j;else if(p==="p224")m=new Y;else if(p==="p192")m=new it;else if(p==="p25519")m=new ut;else throw new Error("Unknown prime "+p);return W[p]=m,m};function rt(C){if(typeof C=="string"){var p=s._prime(C);this.m=p.p,this.prime=p}else r(C.gtn(1),"modulus must be greater than 1"),this.m=C,this.prime=null}rt.prototype._verify1=function(p){r(p.negative===0,"red works only with positives"),r(p.red,"red works only with red numbers")},rt.prototype._verify2=function(p,m){r((p.negative|m.negative)===0,"red works only with positives"),r(p.red&&p.red===m.red,"red works only with red numbers")},rt.prototype.imod=function(p){return this.prime?this.prime.ireduce(p)._forceRed(this):(h(p,p.umod(this.m)._forceRed(this)),p)},rt.prototype.neg=function(p){return p.isZero()?p.clone():this.m.sub(p)._forceRed(this)},rt.prototype.add=function(p,m){this._verify2(p,m);var v=p.add(m);return v.cmp(this.m)>=0&&v.isub(this.m),v._forceRed(this)},rt.prototype.iadd=function(p,m){this._verify2(p,m);var v=p.iadd(m);return v.cmp(this.m)>=0&&v.isub(this.m),v},rt.prototype.sub=function(p,m){this._verify2(p,m);var v=p.sub(m);return v.cmpn(0)<0&&v.iadd(this.m),v._forceRed(this)},rt.prototype.isub=function(p,m){this._verify2(p,m);var v=p.isub(m);return v.cmpn(0)<0&&v.iadd(this.m),v},rt.prototype.shl=function(p,m){return this._verify1(p),this.imod(p.ushln(m))},rt.prototype.imul=function(p,m){return this._verify2(p,m),this.imod(p.imul(m))},rt.prototype.mul=function(p,m){return this._verify2(p,m),this.imod(p.mul(m))},rt.prototype.isqr=function(p){return this.imul(p,p.clone())},rt.prototype.sqr=function(p){return this.mul(p,p)},rt.prototype.sqrt=function(p){if(p.isZero())return p.clone();var m=this.m.andln(3);if(r(m%2===1),m===3){var v=this.m.add(new s(1)).iushrn(2);return this.pow(p,v)}for(var I=this.m.subn(1),N=0;!I.isZero()&&I.andln(1)===0;)N++,I.iushrn(1);r(!I.isZero());var M=new s(1).toRed(this),z=M.redNeg(),P=this.m.subn(1).iushrn(1),_=this.m.bitLength();for(_=new s(2*_*_).toRed(this);this.pow(_,P).cmp(z)!==0;)_.redIAdd(z);for(var F=this.pow(_,I),ct=this.pow(p,I.addn(1).iushrn(1)),dt=this.pow(p,I),mt=N;dt.cmp(M)!==0;){for(var Gt=dt,Ut=0;Gt.cmp(M)!==0;Ut++)Gt=Gt.redSqr();r(Ut<mt);var Lt=this.pow(F,new s(1).iushln(mt-Ut-1));ct=ct.redMul(Lt),F=Lt.redSqr(),dt=dt.redMul(F),mt=Ut}return ct},rt.prototype.invm=function(p){var m=p._invmp(this.m);return m.negative!==0?(m.negative=0,this.imod(m).redNeg()):this.imod(m)},rt.prototype.pow=function(p,m){if(m.isZero())return new s(1).toRed(this);if(m.cmpn(1)===0)return p.clone();var v=4,I=new Array(1<<v);I[0]=new s(1).toRed(this),I[1]=p;for(var N=2;N<I.length;N++)I[N]=this.mul(I[N-1],p);var M=I[0],z=0,P=0,_=m.bitLength()%26;for(_===0&&(_=26),N=m.length-1;N>=0;N--){for(var F=m.words[N],ct=_-1;ct>=0;ct--){var dt=F>>ct&1;if(M!==I[0]&&(M=this.sqr(M)),dt===0&&z===0){P=0;continue}z<<=1,z|=dt,P++,!(P!==v&&(N!==0||ct!==0))&&(M=this.mul(M,I[z]),P=0,z=0)}_=26}return M},rt.prototype.convertTo=function(p){var m=p.umod(this.m);return m===p?m.clone():m},rt.prototype.convertFrom=function(p){var m=p.clone();return m.red=null,m},s.mont=function(p){return new ot(p)};function ot(C){rt.call(this,C),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new s(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}i(ot,rt),ot.prototype.convertTo=function(p){return this.imod(p.ushln(this.shift))},ot.prototype.convertFrom=function(p){var m=this.imod(p.mul(this.rinv));return m.red=null,m},ot.prototype.imul=function(p,m){if(p.isZero()||m.isZero())return p.words[0]=0,p.length=1,p;var v=p.imul(m),I=v.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=v.isub(I).iushrn(this.shift),M=N;return N.cmp(this.m)>=0?M=N.isub(this.m):N.cmpn(0)<0&&(M=N.iadd(this.m)),M._forceRed(this)},ot.prototype.mul=function(p,m){if(p.isZero()||m.isZero())return new s(0)._forceRed(this);var v=p.mul(m),I=v.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),N=v.isub(I).iushrn(this.shift),M=N;return N.cmp(this.m)>=0?M=N.isub(this.m):N.cmpn(0)<0&&(M=N.iadd(this.m)),M._forceRed(this)},ot.prototype.invm=function(p){var m=this.imod(p._invmp(this.m).mul(this.r2));return m._forceRed(this)}})(n,ae)}(wg);var _g=wg.exports;const ys=Br(_g);function Id(n){if(!Number.isSafeInteger(n)||n<0)throw new Error("positive integer expected, got "+n)}function B5(n){return n instanceof Uint8Array||ArrayBuffer.isView(n)&&n.constructor.name==="Uint8Array"}function of(n,...t){if(!B5(n))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(n.length))throw new Error("Uint8Array expected of length "+t+", got length="+n.length)}function P5(n){if(typeof n!="function"||typeof n.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Id(n.outputLen),Id(n.blockLen)}function Gc(n,t=!0){if(n.destroyed)throw new Error("Hash instance has been destroyed");if(t&&n.finished)throw new Error("Hash#digest() has already been called")}function m_(n,t){of(n);const e=t.outputLen;if(n.length<e)throw new Error("digestInto() expects output buffer of length at least "+e)}const Vc=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function M5(n){return new Uint32Array(n.buffer,n.byteOffset,Math.floor(n.byteLength/4))}function Ag(n){return new DataView(n.buffer,n.byteOffset,n.byteLength)}function Mi(n,t){return n<<32-t|n>>>t}const w_=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function L5(n){return n<<24&4278190080|n<<8&16711680|n>>>8&65280|n>>>24&255}function b_(n){for(let t=0;t<n.length;t++)n[t]=L5(n[t])}function U5(n){if(typeof n!="string")throw new Error("utf8ToBytes expected string, got "+typeof n);return new Uint8Array(new TextEncoder().encode(n))}function kd(n){return typeof n=="string"&&(n=U5(n)),of(n),n}function D5(...n){let t=0;for(let r=0;r<n.length;r++){const i=n[r];of(i),t+=i.length}const e=new Uint8Array(t);for(let r=0,i=0;r<n.length;r++){const s=n[r];e.set(s,i),i+=s.length}return e}let Eg=class{clone(){return this._cloneInto()}};function vg(n){const t=r=>n().update(kd(r)).digest(),e=n();return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=()=>n(),t}function __(n=32){if(Vc&&typeof Vc.getRandomValues=="function")return Vc.getRandomValues(new Uint8Array(n));if(Vc&&typeof Vc.randomBytes=="function")return Vc.randomBytes(n);throw new Error("crypto.getRandomValues must be defined")}function F5(n,t,e,r){if(typeof n.setBigUint64=="function")return n.setBigUint64(t,e,r);const i=BigInt(32),s=BigInt(4294967295),o=Number(e>>i&s),c=Number(e&s),u=r?4:0,f=r?0:4;n.setUint32(t+u,o,r),n.setUint32(t+f,c,r)}function $5(n,t,e){return n&t^~n&e}function H5(n,t,e){return n&t^n&e^t&e}class A_ extends Eg{constructor(t,e,r,i){super(),this.blockLen=t,this.outputLen=e,this.padOffset=r,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Ag(this.buffer)}update(t){Gc(this);const{view:e,buffer:r,blockLen:i}=this;t=kd(t);const s=t.length;for(let o=0;o<s;){const c=Math.min(i-this.pos,s-o);if(c===i){const u=Ag(t);for(;i<=s-o;o+=i)this.process(u,o);continue}r.set(t.subarray(o,o+c),this.pos),this.pos+=c,o+=c,this.pos===i&&(this.process(e,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Gc(this),m_(t,this),this.finished=!0;const{buffer:e,view:r,blockLen:i,isLE:s}=this;let{pos:o}=this;e[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>i-o&&(this.process(r,0),o=0);for(let y=o;y<i;y++)e[y]=0;F5(r,i-8,BigInt(this.length*8),s),this.process(r,0);const c=Ag(t),u=this.outputLen;if(u%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const f=u/4,h=this.get();if(f>h.length)throw new Error("_sha2: outputLen bigger than state");for(let y=0;y<f;y++)c.setUint32(4*y,h[y],s)}digest(){const{buffer:t,outputLen:e}=this;this.digestInto(t);const r=t.slice(0,e);return this.destroy(),r}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());const{blockLen:e,buffer:r,length:i,finished:s,destroyed:o,pos:c}=this;return t.length=i,t.pos=c,t.finished=s,t.destroyed=o,i%e&&t.buffer.set(r),t}}const Td=BigInt(2**32-1),xg=BigInt(32);function E_(n,t=!1){return t?{h:Number(n&Td),l:Number(n>>xg&Td)}:{h:Number(n>>xg&Td)|0,l:Number(n&Td)|0}}function v_(n,t=!1){let e=new Uint32Array(n.length),r=new Uint32Array(n.length);for(let i=0;i<n.length;i++){const{h:s,l:o}=E_(n[i],t);[e[i],r[i]]=[s,o]}return[e,r]}const z5=(n,t)=>BigInt(n>>>0)<<xg|BigInt(t>>>0),G5=(n,t,e)=>n>>>e,V5=(n,t,e)=>n<<32-e|t>>>e,K5=(n,t,e)=>n>>>e|t<<32-e,j5=(n,t,e)=>n<<32-e|t>>>e,W5=(n,t,e)=>n<<64-e|t>>>e-32,Z5=(n,t,e)=>n>>>e-32|t<<64-e,q5=(n,t)=>t,Q5=(n,t)=>n,x_=(n,t,e)=>n<<e|t>>>32-e,R_=(n,t,e)=>t<<e|n>>>32-e,S_=(n,t,e)=>t<<e-32|n>>>64-e,I_=(n,t,e)=>n<<e-32|t>>>64-e;function Y5(n,t,e,r){const i=(t>>>0)+(r>>>0);return{h:n+e+(i/2**32|0)|0,l:i|0}}const Xt={fromBig:E_,split:v_,toBig:z5,shrSH:G5,shrSL:V5,rotrSH:K5,rotrSL:j5,rotrBH:W5,rotrBL:Z5,rotr32H:q5,rotr32L:Q5,rotlSH:x_,rotlSL:R_,rotlBH:S_,rotlBL:I_,add:Y5,add3L:(n,t,e)=>(n>>>0)+(t>>>0)+(e>>>0),add3H:(n,t,e,r)=>t+e+r+(n/2**32|0)|0,add4L:(n,t,e,r)=>(n>>>0)+(t>>>0)+(e>>>0)+(r>>>0),add4H:(n,t,e,r,i)=>t+e+r+i+(n/2**32|0)|0,add5H:(n,t,e,r,i,s)=>t+e+r+i+s+(n/2**32|0)|0,add5L:(n,t,e,r,i)=>(n>>>0)+(t>>>0)+(e>>>0)+(r>>>0)+(i>>>0)},[J5,X5]=Xt.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(n=>BigInt(n))),oo=new Uint32Array(80),ao=new Uint32Array(80);let t4=class extends A_{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:t,Al:e,Bh:r,Bl:i,Ch:s,Cl:o,Dh:c,Dl:u,Eh:f,El:h,Fh:y,Fl:A,Gh:b,Gl:R,Hh:k,Hl:S}=this;return[t,e,r,i,s,o,c,u,f,h,y,A,b,R,k,S]}set(t,e,r,i,s,o,c,u,f,h,y,A,b,R,k,S){this.Ah=t|0,this.Al=e|0,this.Bh=r|0,this.Bl=i|0,this.Ch=s|0,this.Cl=o|0,this.Dh=c|0,this.Dl=u|0,this.Eh=f|0,this.El=h|0,this.Fh=y|0,this.Fl=A|0,this.Gh=b|0,this.Gl=R|0,this.Hh=k|0,this.Hl=S|0}process(t,e){for(let U=0;U<16;U++,e+=4)oo[U]=t.getUint32(e),ao[U]=t.getUint32(e+=4);for(let U=16;U<80;U++){const G=oo[U-15]|0,W=ao[U-15]|0,J=Xt.rotrSH(G,W,1)^Xt.rotrSH(G,W,8)^Xt.shrSH(G,W,7),j=Xt.rotrSL(G,W,1)^Xt.rotrSL(G,W,8)^Xt.shrSL(G,W,7),Y=oo[U-2]|0,it=ao[U-2]|0,ut=Xt.rotrSH(Y,it,19)^Xt.rotrBH(Y,it,61)^Xt.shrSH(Y,it,6),rt=Xt.rotrSL(Y,it,19)^Xt.rotrBL(Y,it,61)^Xt.shrSL(Y,it,6),ot=Xt.add4L(j,rt,ao[U-7],ao[U-16]),C=Xt.add4H(ot,J,ut,oo[U-7],oo[U-16]);oo[U]=C|0,ao[U]=ot|0}let{Ah:r,Al:i,Bh:s,Bl:o,Ch:c,Cl:u,Dh:f,Dl:h,Eh:y,El:A,Fh:b,Fl:R,Gh:k,Gl:S,Hh:B,Hl:H}=this;for(let U=0;U<80;U++){const G=Xt.rotrSH(y,A,14)^Xt.rotrSH(y,A,18)^Xt.rotrBH(y,A,41),W=Xt.rotrSL(y,A,14)^Xt.rotrSL(y,A,18)^Xt.rotrBL(y,A,41),J=y&b^~y&k,j=A&R^~A&S,Y=Xt.add5L(H,W,j,X5[U],ao[U]),it=Xt.add5H(Y,B,G,J,J5[U],oo[U]),ut=Y|0,rt=Xt.rotrSH(r,i,28)^Xt.rotrBH(r,i,34)^Xt.rotrBH(r,i,39),ot=Xt.rotrSL(r,i,28)^Xt.rotrBL(r,i,34)^Xt.rotrBL(r,i,39),C=r&s^r&c^s&c,p=i&o^i&u^o&u;B=k|0,H=S|0,k=b|0,S=R|0,b=y|0,R=A|0,{h:y,l:A}=Xt.add(f|0,h|0,it|0,ut|0),f=c|0,h=u|0,c=s|0,u=o|0,s=r|0,o=i|0;const m=Xt.add3L(ut,ot,p);r=Xt.add3H(m,it,rt,C),i=m|0}({h:r,l:i}=Xt.add(this.Ah|0,this.Al|0,r|0,i|0)),{h:s,l:o}=Xt.add(this.Bh|0,this.Bl|0,s|0,o|0),{h:c,l:u}=Xt.add(this.Ch|0,this.Cl|0,c|0,u|0),{h:f,l:h}=Xt.add(this.Dh|0,this.Dl|0,f|0,h|0),{h:y,l:A}=Xt.add(this.Eh|0,this.El|0,y|0,A|0),{h:b,l:R}=Xt.add(this.Fh|0,this.Fl|0,b|0,R|0),{h:k,l:S}=Xt.add(this.Gh|0,this.Gl|0,k|0,S|0),{h:B,l:H}=Xt.add(this.Hh|0,this.Hl|0,B|0,H|0),this.set(r,i,s,o,c,u,f,h,y,A,b,R,k,S,B,H)}roundClean(){oo.fill(0),ao.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};const e4=vg(()=>new t4);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Od=BigInt(0),Nd=BigInt(1),n4=BigInt(2);function la(n){return n instanceof Uint8Array||ArrayBuffer.isView(n)&&n.constructor.name==="Uint8Array"}function af(n){if(!la(n))throw new Error("Uint8Array expected")}function ms(n,t){if(typeof t!="boolean")throw new Error(n+" boolean expected, got "+t)}const r4=Array.from({length:256},(n,t)=>t.toString(16).padStart(2,"0"));function fa(n){af(n);let t="";for(let e=0;e<n.length;e++)t+=r4[n[e]];return t}function Kc(n){const t=n.toString(16);return t.length&1?"0"+t:t}function Rg(n){if(typeof n!="string")throw new Error("hex string expected, got "+typeof n);return n===""?Od:BigInt("0x"+n)}const ws={_0:48,_9:57,A:65,F:70,a:97,f:102};function k_(n){if(n>=ws._0&&n<=ws._9)return n-ws._0;if(n>=ws.A&&n<=ws.F)return n-(ws.A-10);if(n>=ws.a&&n<=ws.f)return n-(ws.a-10)}function jc(n){if(typeof n!="string")throw new Error("hex string expected, got "+typeof n);const t=n.length,e=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const r=new Uint8Array(e);for(let i=0,s=0;i<e;i++,s+=2){const o=k_(n.charCodeAt(s)),c=k_(n.charCodeAt(s+1));if(o===void 0||c===void 0){const u=n[s]+n[s+1];throw new Error('hex string expected, got non-hex character "'+u+'" at index '+s)}r[i]=o*16+c}return r}function ha(n){return Rg(fa(n))}function Wc(n){return af(n),Rg(fa(Uint8Array.from(n).reverse()))}function Zc(n,t){return jc(n.toString(16).padStart(t*2,"0"))}function cf(n,t){return Zc(n,t).reverse()}function i4(n){return jc(Kc(n))}function kn(n,t,e){let r;if(typeof t=="string")try{r=jc(t)}catch(s){throw new Error(n+" must be hex string or Uint8Array, cause: "+s)}else if(la(t))r=Uint8Array.from(t);else throw new Error(n+" must be hex string or Uint8Array");const i=r.length;if(typeof e=="number"&&i!==e)throw new Error(n+" of length "+e+" expected, got "+i);return r}function da(...n){let t=0;for(let r=0;r<n.length;r++){const i=n[r];af(i),t+=i.length}const e=new Uint8Array(t);for(let r=0,i=0;r<n.length;r++){const s=n[r];e.set(s,i),i+=s.length}return e}function s4(n,t){if(n.length!==t.length)return!1;let e=0;for(let r=0;r<n.length;r++)e|=n[r]^t[r];return e===0}function o4(n){if(typeof n!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(n))}const Sg=n=>typeof n=="bigint"&&Od<=n;function Cd(n,t,e){return Sg(n)&&Sg(t)&&Sg(e)&&t<=n&&n<e}function Qr(n,t,e,r){if(!Cd(t,e,r))throw new Error("expected valid "+n+": "+e+" <= n < "+r+", got "+t)}function T_(n){let t;for(t=0;n>Od;n>>=Nd,t+=1);return t}function a4(n,t){return n>>BigInt(t)&Nd}function c4(n,t,e){return n|(e?Nd:Od)<<BigInt(t)}const Ig=n=>(n4<<BigInt(n-1))-Nd,kg=n=>new Uint8Array(n),O_=n=>Uint8Array.from(n);function N_(n,t,e){if(typeof n!="number"||n<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof e!="function")throw new Error("hmacFn must be a function");let r=kg(n),i=kg(n),s=0;const o=()=>{r.fill(1),i.fill(0),s=0},c=(...y)=>e(i,r,...y),u=(y=kg())=>{i=c(O_([0]),y),r=c(),y.length!==0&&(i=c(O_([1]),y),r=c())},f=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let y=0;const A=[];for(;y<t;){r=c();const b=r.slice();A.push(b),y+=r.length}return da(...A)};return(y,A)=>{o(),u(y);let b;for(;!(b=A(f()));)u();return o(),b}}const u4={bigint:n=>typeof n=="bigint",function:n=>typeof n=="function",boolean:n=>typeof n=="boolean",string:n=>typeof n=="string",stringOrUint8Array:n=>typeof n=="string"||la(n),isSafeInteger:n=>Number.isSafeInteger(n),array:n=>Array.isArray(n),field:(n,t)=>t.Fp.isValid(n),hash:n=>typeof n=="function"&&Number.isSafeInteger(n.outputLen)};function qc(n,t,e={}){const r=(i,s,o)=>{const c=u4[s];if(typeof c!="function")throw new Error("invalid validator function");const u=n[i];if(!(o&&u===void 0)&&!c(u,n))throw new Error("param "+String(i)+" is invalid. Expected "+s+", got "+u)};for(const[i,s]of Object.entries(t))r(i,s,!1);for(const[i,s]of Object.entries(e))r(i,s,!0);return n}const l4=()=>{throw new Error("not implemented")};function uf(n){const t=new WeakMap;return(e,...r)=>{const i=t.get(e);if(i!==void 0)return i;const s=n(e,...r);return t.set(e,s),s}}const f4=Object.freeze(Object.defineProperty({__proto__:null,aInRange:Qr,abool:ms,abytes:af,bitGet:a4,bitLen:T_,bitMask:Ig,bitSet:c4,bytesToHex:fa,bytesToNumberBE:ha,bytesToNumberLE:Wc,concatBytes:da,createHmacDrbg:N_,ensureBytes:kn,equalBytes:s4,hexToBytes:jc,hexToNumber:Rg,inRange:Cd,isBytes:la,memoized:uf,notImplemented:l4,numberToBytesBE:Zc,numberToBytesLE:cf,numberToHexUnpadded:Kc,numberToVarBytesBE:i4,utf8ToBytes:o4,validateObject:qc},Symbol.toStringTag,{value:"Module"}));/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Bn=BigInt(0),Xe=BigInt(1),pa=BigInt(2),h4=BigInt(3),Tg=BigInt(4),C_=BigInt(5),B_=BigInt(8);function Ze(n,t){const e=n%t;return e>=Bn?e:t+e}function d4(n,t,e){if(t<Bn)throw new Error("invalid exponent, negatives unsupported");if(e<=Bn)throw new Error("invalid modulus");if(e===Xe)return Bn;let r=Xe;for(;t>Bn;)t&Xe&&(r=r*n%e),n=n*n%e,t>>=Xe;return r}function cn(n,t,e){let r=n;for(;t-- >Bn;)r*=r,r%=e;return r}function Og(n,t){if(n===Bn)throw new Error("invert: expected non-zero number");if(t<=Bn)throw new Error("invert: expected positive modulus, got "+t);let e=Ze(n,t),r=t,i=Bn,s=Xe;for(;e!==Bn;){const c=r/e,u=r%e,f=i-s*c;r=e,e=u,i=s,s=f}if(r!==Xe)throw new Error("invert: does not exist");return Ze(i,t)}function p4(n){const t=(n-Xe)/pa;let e,r,i;for(e=n-Xe,r=0;e%pa===Bn;e/=pa,r++);for(i=pa;i<n&&d4(i,t,n)!==n-Xe;i++)if(i>1e3)throw new Error("Cannot find square root: likely non-prime P");if(r===1){const o=(n+Xe)/Tg;return function(u,f){const h=u.pow(f,o);if(!u.eql(u.sqr(h),f))throw new Error("Cannot find square root");return h}}const s=(e+Xe)/pa;return function(c,u){if(c.pow(u,t)===c.neg(c.ONE))throw new Error("Cannot find square root");let f=r,h=c.pow(c.mul(c.ONE,i),e),y=c.pow(u,s),A=c.pow(u,e);for(;!c.eql(A,c.ONE);){if(c.eql(A,c.ZERO))return c.ZERO;let b=1;for(let k=c.sqr(A);b<f&&!c.eql(k,c.ONE);b++)k=c.sqr(k);const R=c.pow(h,Xe<<BigInt(f-b-1));h=c.sqr(R),y=c.mul(y,R),A=c.mul(A,h),f=b}return y}}function g4(n){if(n%Tg===h4){const t=(n+Xe)/Tg;return function(r,i){const s=r.pow(i,t);if(!r.eql(r.sqr(s),i))throw new Error("Cannot find square root");return s}}if(n%B_===C_){const t=(n-C_)/B_;return function(r,i){const s=r.mul(i,pa),o=r.pow(s,t),c=r.mul(i,o),u=r.mul(r.mul(c,pa),o),f=r.mul(c,r.sub(u,r.ONE));if(!r.eql(r.sqr(f),i))throw new Error("Cannot find square root");return f}}return p4(n)}const y4=(n,t)=>(Ze(n,t)&Xe)===Xe,m4=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function w4(n){const t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},e=m4.reduce((r,i)=>(r[i]="function",r),t);return qc(n,e)}function b4(n,t,e){if(e<Bn)throw new Error("invalid exponent, negatives unsupported");if(e===Bn)return n.ONE;if(e===Xe)return t;let r=n.ONE,i=t;for(;e>Bn;)e&Xe&&(r=n.mul(r,i)),i=n.sqr(i),e>>=Xe;return r}function _4(n,t){const e=new Array(t.length),r=t.reduce((s,o,c)=>n.is0(o)?s:(e[c]=s,n.mul(s,o)),n.ONE),i=n.inv(r);return t.reduceRight((s,o,c)=>n.is0(o)?s:(e[c]=n.mul(s,e[c]),n.mul(s,o)),i),e}function P_(n,t){const e=t!==void 0?t:n.toString(2).length,r=Math.ceil(e/8);return{nBitLength:e,nByteLength:r}}function Bd(n,t,e=!1,r={}){if(n<=Bn)throw new Error("invalid field: expected ORDER > 0, got "+n);const{nBitLength:i,nByteLength:s}=P_(n,t);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let o;const c=Object.freeze({ORDER:n,isLE:e,BITS:i,BYTES:s,MASK:Ig(i),ZERO:Bn,ONE:Xe,create:u=>Ze(u,n),isValid:u=>{if(typeof u!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof u);return Bn<=u&&u<n},is0:u=>u===Bn,isOdd:u=>(u&Xe)===Xe,neg:u=>Ze(-u,n),eql:(u,f)=>u===f,sqr:u=>Ze(u*u,n),add:(u,f)=>Ze(u+f,n),sub:(u,f)=>Ze(u-f,n),mul:(u,f)=>Ze(u*f,n),pow:(u,f)=>b4(c,u,f),div:(u,f)=>Ze(u*Og(f,n),n),sqrN:u=>u*u,addN:(u,f)=>u+f,subN:(u,f)=>u-f,mulN:(u,f)=>u*f,inv:u=>Og(u,n),sqrt:r.sqrt||(u=>(o||(o=g4(n)),o(c,u))),invertBatch:u=>_4(c,u),cmov:(u,f,h)=>h?f:u,toBytes:u=>e?cf(u,s):Zc(u,s),fromBytes:u=>{if(u.length!==s)throw new Error("Field.fromBytes: expected "+s+" bytes, got "+u.length);return e?Wc(u):ha(u)}});return Object.freeze(c)}function M_(n){if(typeof n!="bigint")throw new Error("field order must be bigint");const t=n.toString(2).length;return Math.ceil(t/8)}function L_(n){const t=M_(n);return t+Math.ceil(t/2)}function A4(n,t,e=!1){const r=n.length,i=M_(t),s=L_(t);if(r<16||r<s||r>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+r);const o=e?Wc(n):ha(n),c=Ze(o,t-Xe)+Xe;return e?cf(c,i):Zc(c,i)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const U_=BigInt(0),Pd=BigInt(1);function Ng(n,t){const e=t.negate();return n?e:t}function D_(n,t){if(!Number.isSafeInteger(n)||n<=0||n>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+n)}function Cg(n,t){D_(n,t);const e=Math.ceil(t/n)+1,r=2**(n-1);return{windows:e,windowSize:r}}function E4(n,t){if(!Array.isArray(n))throw new Error("array expected");n.forEach((e,r)=>{if(!(e instanceof t))throw new Error("invalid point at index "+r)})}function v4(n,t){if(!Array.isArray(n))throw new Error("array of scalars expected");n.forEach((e,r)=>{if(!t.isValid(e))throw new Error("invalid scalar at index "+r)})}const Bg=new WeakMap,F_=new WeakMap;function Pg(n){return F_.get(n)||1}function $_(n,t){return{constTimeNegate:Ng,hasPrecomputes(e){return Pg(e)!==1},unsafeLadder(e,r,i=n.ZERO){let s=e;for(;r>U_;)r&Pd&&(i=i.add(s)),s=s.double(),r>>=Pd;return i},precomputeWindow(e,r){const{windows:i,windowSize:s}=Cg(r,t),o=[];let c=e,u=c;for(let f=0;f<i;f++){u=c,o.push(u);for(let h=1;h<s;h++)u=u.add(c),o.push(u);c=u.double()}return o},wNAF(e,r,i){const{windows:s,windowSize:o}=Cg(e,t);let c=n.ZERO,u=n.BASE;const f=BigInt(2**e-1),h=2**e,y=BigInt(e);for(let A=0;A<s;A++){const b=A*o;let R=Number(i&f);i>>=y,R>o&&(R-=h,i+=Pd);const k=b,S=b+Math.abs(R)-1,B=A%2!==0,H=R<0;R===0?u=u.add(Ng(B,r[k])):c=c.add(Ng(H,r[S]))}return{p:c,f:u}},wNAFUnsafe(e,r,i,s=n.ZERO){const{windows:o,windowSize:c}=Cg(e,t),u=BigInt(2**e-1),f=2**e,h=BigInt(e);for(let y=0;y<o;y++){const A=y*c;if(i===U_)break;let b=Number(i&u);if(i>>=h,b>c&&(b-=f,i+=Pd),b===0)continue;let R=r[A+Math.abs(b)-1];b<0&&(R=R.negate()),s=s.add(R)}return s},getPrecomputes(e,r,i){let s=Bg.get(r);return s||(s=this.precomputeWindow(r,e),e!==1&&Bg.set(r,i(s))),s},wNAFCached(e,r,i){const s=Pg(e);return this.wNAF(s,this.getPrecomputes(s,e,i),r)},wNAFCachedUnsafe(e,r,i,s){const o=Pg(e);return o===1?this.unsafeLadder(e,r,s):this.wNAFUnsafe(o,this.getPrecomputes(o,e,i),r,s)},setWindowSize(e,r){D_(r,t),F_.set(e,r),Bg.delete(e)}}}function H_(n,t,e,r){if(E4(e,n),v4(r,t),e.length!==r.length)throw new Error("arrays of points and scalars must have equal length");const i=n.ZERO,s=T_(BigInt(e.length)),o=s>12?s-3:s>4?s-2:s?2:1,c=(1<<o)-1,u=new Array(c+1).fill(i),f=Math.floor((t.BITS-1)/o)*o;let h=i;for(let y=f;y>=0;y-=o){u.fill(i);for(let b=0;b<r.length;b++){const R=r[b],k=Number(R>>BigInt(y)&BigInt(c));u[k]=u[k].add(e[b])}let A=i;for(let b=u.length-1,R=i;b>0;b--)R=R.add(u[b]),A=A.add(R);if(h=h.add(A),y!==0)for(let b=0;b<o;b++)h=h.double()}return h}function Mg(n){return w4(n.Fp),qc(n,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...P_(n.n,n.nBitLength),...n,p:n.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const di=BigInt(0),Ar=BigInt(1),Md=BigInt(2),x4=BigInt(8),R4={zip215:!0};function S4(n){const t=Mg(n);return qc(n,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function I4(n){const t=S4(n),{Fp:e,n:r,prehash:i,hash:s,randomBytes:o,nByteLength:c,h:u}=t,f=Md<<BigInt(c*8)-Ar,h=e.create,y=Bd(t.n,t.nBitLength),A=t.uvRatio||((v,I)=>{try{return{isValid:!0,value:e.sqrt(v*e.inv(I))}}catch{return{isValid:!1,value:di}}}),b=t.adjustScalarBytes||(v=>v),R=t.domain||((v,I,N)=>{if(ms("phflag",N),I.length||N)throw new Error("Contexts/pre-hash are not supported");return v});function k(v,I){Qr("coordinate "+v,I,di,f)}function S(v){if(!(v instanceof U))throw new Error("ExtendedPoint expected")}const B=uf((v,I)=>{const{ex:N,ey:M,ez:z}=v,P=v.is0();I==null&&(I=P?x4:e.inv(z));const _=h(N*I),F=h(M*I),ct=h(z*I);if(P)return{x:di,y:Ar};if(ct!==Ar)throw new Error("invZ was invalid");return{x:_,y:F}}),H=uf(v=>{const{a:I,d:N}=t;if(v.is0())throw new Error("bad point: ZERO");const{ex:M,ey:z,ez:P,et:_}=v,F=h(M*M),ct=h(z*z),dt=h(P*P),mt=h(dt*dt),Gt=h(F*I),Ut=h(dt*h(Gt+ct)),Lt=h(mt+h(N*h(F*ct)));if(Ut!==Lt)throw new Error("bad point: equation left != right (1)");const xe=h(M*z),Kt=h(P*_);if(xe!==Kt)throw new Error("bad point: equation left != right (2)");return!0});class U{constructor(I,N,M,z){this.ex=I,this.ey=N,this.ez=M,this.et=z,k("x",I),k("y",N),k("z",M),k("t",z),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(I){if(I instanceof U)throw new Error("extended point not allowed");const{x:N,y:M}=I||{};return k("x",N),k("y",M),new U(N,M,Ar,h(N*M))}static normalizeZ(I){const N=e.invertBatch(I.map(M=>M.ez));return I.map((M,z)=>M.toAffine(N[z])).map(U.fromAffine)}static msm(I,N){return H_(U,y,I,N)}_setWindowSize(I){J.setWindowSize(this,I)}assertValidity(){H(this)}equals(I){S(I);const{ex:N,ey:M,ez:z}=this,{ex:P,ey:_,ez:F}=I,ct=h(N*F),dt=h(P*z),mt=h(M*F),Gt=h(_*z);return ct===dt&&mt===Gt}is0(){return this.equals(U.ZERO)}negate(){return new U(h(-this.ex),this.ey,this.ez,h(-this.et))}double(){const{a:I}=t,{ex:N,ey:M,ez:z}=this,P=h(N*N),_=h(M*M),F=h(Md*h(z*z)),ct=h(I*P),dt=N+M,mt=h(h(dt*dt)-P-_),Gt=ct+_,Ut=Gt-F,Lt=ct-_,xe=h(mt*Ut),Kt=h(Gt*Lt),Ft=h(mt*Lt),ke=h(Ut*Gt);return new U(xe,Kt,ke,Ft)}add(I){S(I);const{a:N,d:M}=t,{ex:z,ey:P,ez:_,et:F}=this,{ex:ct,ey:dt,ez:mt,et:Gt}=I;if(N===BigInt(-1)){const Re=h((P-z)*(dt+ct)),Ce=h((P+z)*(dt-ct)),In=h(Ce-Re);if(In===di)return this.double();const he=h(_*Md*Gt),Se=h(F*Md*mt),sn=Se+he,Ee=Ce+Re,Be=Se-he,cr=h(sn*In),De=h(Ee*Be),O=h(sn*Be),w=h(In*Ee);return new U(cr,De,w,O)}const Ut=h(z*ct),Lt=h(P*dt),xe=h(F*M*Gt),Kt=h(_*mt),Ft=h((z+P)*(ct+dt)-Ut-Lt),ke=Kt-xe,re=Kt+xe,oe=h(Lt-N*Ut),rn=h(Ft*ke),fe=h(re*oe),Ue=h(Ft*oe),ea=h(ke*re);return new U(rn,fe,ea,Ue)}subtract(I){return this.add(I.negate())}wNAF(I){return J.wNAFCached(this,I,U.normalizeZ)}multiply(I){const N=I;Qr("scalar",N,Ar,r);const{p:M,f:z}=this.wNAF(N);return U.normalizeZ([M,z])[0]}multiplyUnsafe(I,N=U.ZERO){const M=I;return Qr("scalar",M,di,r),M===di?W:this.is0()||M===Ar?this:J.wNAFCachedUnsafe(this,M,U.normalizeZ,N)}isSmallOrder(){return this.multiplyUnsafe(u).is0()}isTorsionFree(){return J.unsafeLadder(this,r).is0()}toAffine(I){return B(this,I)}clearCofactor(){const{h:I}=t;return I===Ar?this:this.multiplyUnsafe(I)}static fromHex(I,N=!1){const{d:M,a:z}=t,P=e.BYTES;I=kn("pointHex",I,P),ms("zip215",N);const _=I.slice(),F=I[P-1];_[P-1]=F&-129;const ct=Wc(_),dt=N?f:e.ORDER;Qr("pointHex.y",ct,di,dt);const mt=h(ct*ct),Gt=h(mt-Ar),Ut=h(M*mt-z);let{isValid:Lt,value:xe}=A(Gt,Ut);if(!Lt)throw new Error("Point.fromHex: invalid y coordinate");const Kt=(xe&Ar)===Ar,Ft=(F&128)!==0;if(!N&&xe===di&&Ft)throw new Error("Point.fromHex: x=0 and x_0=1");return Ft!==Kt&&(xe=h(-xe)),U.fromAffine({x:xe,y:ct})}static fromPrivateKey(I){return it(I).point}toRawBytes(){const{x:I,y:N}=this.toAffine(),M=cf(N,e.BYTES);return M[M.length-1]|=I&Ar?128:0,M}toHex(){return fa(this.toRawBytes())}}U.BASE=new U(t.Gx,t.Gy,Ar,h(t.Gx*t.Gy)),U.ZERO=new U(di,Ar,Ar,di);const{BASE:G,ZERO:W}=U,J=$_(U,c*8);function j(v){return Ze(v,r)}function Y(v){return j(Wc(v))}function it(v){const I=e.BYTES;v=kn("private key",v,I);const N=kn("hashed private key",s(v),2*I),M=b(N.slice(0,I)),z=N.slice(I,2*I),P=Y(M),_=G.multiply(P),F=_.toRawBytes();return{head:M,prefix:z,scalar:P,point:_,pointBytes:F}}function ut(v){return it(v).pointBytes}function rt(v=new Uint8Array,...I){const N=da(...I);return Y(s(R(N,kn("context",v),!!i)))}function ot(v,I,N={}){v=kn("message",v),i&&(v=i(v));const{prefix:M,scalar:z,pointBytes:P}=it(I),_=rt(N.context,M,v),F=G.multiply(_).toRawBytes(),ct=rt(N.context,F,P,v),dt=j(_+ct*z);Qr("signature.s",dt,di,r);const mt=da(F,cf(dt,e.BYTES));return kn("result",mt,e.BYTES*2)}const C=R4;function p(v,I,N,M=C){const{context:z,zip215:P}=M,_=e.BYTES;v=kn("signature",v,2*_),I=kn("message",I),N=kn("publicKey",N,_),P!==void 0&&ms("zip215",P),i&&(I=i(I));const F=Wc(v.slice(_,2*_));let ct,dt,mt;try{ct=U.fromHex(N,P),dt=U.fromHex(v.slice(0,_),P),mt=G.multiplyUnsafe(F)}catch{return!1}if(!P&&ct.isSmallOrder())return!1;const Gt=rt(z,dt.toRawBytes(),ct.toRawBytes(),I);return dt.add(ct.multiplyUnsafe(Gt)).subtract(mt).clearCofactor().equals(U.ZERO)}return G._setWindowSize(8),{CURVE:t,getPublicKey:ut,sign:ot,verify:p,ExtendedPoint:U,utils:{getExtendedPublicKey:it,randomPrivateKey:()=>o(e.BYTES),precompute(v=8,I=U.BASE){return I._setWindowSize(v),I.multiply(BigInt(3)),I}}}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Lg=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),z_=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");BigInt(0);const k4=BigInt(1),G_=BigInt(2);BigInt(3);const T4=BigInt(5),O4=BigInt(8);function N4(n){const t=BigInt(10),e=BigInt(20),r=BigInt(40),i=BigInt(80),s=Lg,c=n*n%s*n%s,u=cn(c,G_,s)*c%s,f=cn(u,k4,s)*n%s,h=cn(f,T4,s)*f%s,y=cn(h,t,s)*h%s,A=cn(y,e,s)*y%s,b=cn(A,r,s)*A%s,R=cn(b,i,s)*b%s,k=cn(R,i,s)*b%s,S=cn(k,t,s)*h%s;return{pow_p_5_8:cn(S,G_,s)*n%s,b2:c}}function C4(n){return n[0]&=248,n[31]&=127,n[31]|=64,n}function B4(n,t){const e=Lg,r=Ze(t*t*t,e),i=Ze(r*r*t,e),s=N4(n*i).pow_p_5_8;let o=Ze(n*r*s,e);const c=Ze(t*o*o,e),u=o,f=Ze(o*z_,e),h=c===n,y=c===Ze(-n,e),A=c===Ze(-n*z_,e);return h&&(o=u),(y||A)&&(o=f),y4(o,e)&&(o=Ze(-o,e)),{isValid:h||y,value:o}}const P4=Bd(Lg,void 0,!0),M4={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:P4,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:O4,Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:e4,randomBytes:__,adjustScalarBytes:C4,uvRatio:B4},Qc=I4(M4);var Ug={exports:{}};/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */(function(n,t){var e=bg,r=e.Buffer;function i(o,c){for(var u in o)c[u]=o[u]}r.from&&r.alloc&&r.allocUnsafe&&r.allocUnsafeSlow?n.exports=e:(i(e,t),t.Buffer=s);function s(o,c,u){return r(o,c,u)}s.prototype=Object.create(r.prototype),i(r,s),s.from=function(o,c,u){if(typeof o=="number")throw new TypeError("Argument must not be a number");return r(o,c,u)},s.alloc=function(o,c,u){if(typeof o!="number")throw new TypeError("Argument must be a number");var f=r(o);return c!==void 0?typeof u=="string"?f.fill(c,u):f.fill(c):f.fill(0),f},s.allocUnsafe=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return r(o)},s.allocUnsafeSlow=function(o){if(typeof o!="number")throw new TypeError("Argument must be a number");return e.SlowBuffer(o)}})(Ug,Ug.exports);var L4=Ug.exports,Ld=L4.Buffer;function U4(n){if(n.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),e=0;e<t.length;e++)t[e]=255;for(var r=0;r<n.length;r++){var i=n.charAt(r),s=i.charCodeAt(0);if(t[s]!==255)throw new TypeError(i+" is ambiguous");t[s]=r}var o=n.length,c=n.charAt(0),u=Math.log(o)/Math.log(256),f=Math.log(256)/Math.log(o);function h(b){if((Array.isArray(b)||b instanceof Uint8Array)&&(b=Ld.from(b)),!Ld.isBuffer(b))throw new TypeError("Expected Buffer");if(b.length===0)return"";for(var R=0,k=0,S=0,B=b.length;S!==B&&b[S]===0;)S++,R++;for(var H=(B-S)*f+1>>>0,U=new Uint8Array(H);S!==B;){for(var G=b[S],W=0,J=H-1;(G!==0||W<k)&&J!==-1;J--,W++)G+=256*U[J]>>>0,U[J]=G%o>>>0,G=G/o>>>0;if(G!==0)throw new Error("Non-zero carry");k=W,S++}for(var j=H-k;j!==H&&U[j]===0;)j++;for(var Y=c.repeat(R);j<H;++j)Y+=n.charAt(U[j]);return Y}function y(b){if(typeof b!="string")throw new TypeError("Expected String");if(b.length===0)return Ld.alloc(0);for(var R=0,k=0,S=0;b[R]===c;)k++,R++;for(var B=(b.length-R)*u+1>>>0,H=new Uint8Array(B);R<b.length;){var U=b.charCodeAt(R);if(U>255)return;var G=t[U];if(G===255)return;for(var W=0,J=B-1;(G!==0||W<S)&&J!==-1;J--,W++)G+=o*H[J]>>>0,H[J]=G%256>>>0,G=G/256>>>0;if(G!==0)throw new Error("Non-zero carry");S=W,R++}for(var j=B-S;j!==B&&H[j]===0;)j++;var Y=Ld.allocUnsafe(k+(B-j));Y.fill(0,0,k);for(var it=k;j!==B;)Y[it++]=H[j++];return Y}function A(b){var R=y(b);if(R)return R;throw new Error("Non-base"+o+" character")}return{encode:h,decodeUnsafe:y,decode:A}}var D4=U4,F4=D4,$4="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",V_=F4($4);const Tn=Br(V_),H4=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),co=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),uo=new Uint32Array(64);let z4=class extends A_{constructor(){super(64,32,8,!1),this.A=co[0]|0,this.B=co[1]|0,this.C=co[2]|0,this.D=co[3]|0,this.E=co[4]|0,this.F=co[5]|0,this.G=co[6]|0,this.H=co[7]|0}get(){const{A:t,B:e,C:r,D:i,E:s,F:o,G:c,H:u}=this;return[t,e,r,i,s,o,c,u]}set(t,e,r,i,s,o,c,u){this.A=t|0,this.B=e|0,this.C=r|0,this.D=i|0,this.E=s|0,this.F=o|0,this.G=c|0,this.H=u|0}process(t,e){for(let y=0;y<16;y++,e+=4)uo[y]=t.getUint32(e,!1);for(let y=16;y<64;y++){const A=uo[y-15],b=uo[y-2],R=Mi(A,7)^Mi(A,18)^A>>>3,k=Mi(b,17)^Mi(b,19)^b>>>10;uo[y]=k+uo[y-7]+R+uo[y-16]|0}let{A:r,B:i,C:s,D:o,E:c,F:u,G:f,H:h}=this;for(let y=0;y<64;y++){const A=Mi(c,6)^Mi(c,11)^Mi(c,25),b=h+A+$5(c,u,f)+H4[y]+uo[y]|0,k=(Mi(r,2)^Mi(r,13)^Mi(r,22))+H5(r,i,s)|0;h=f,f=u,u=c,c=o+b|0,o=s,s=i,i=r,r=b+k|0}r=r+this.A|0,i=i+this.B|0,s=s+this.C|0,o=o+this.D|0,c=c+this.E|0,u=u+this.F|0,f=f+this.G|0,h=h+this.H|0,this.set(r,i,s,o,c,u,f,h)}roundClean(){uo.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};const Dg=vg(()=>new z4);var Gn={};function bs(n,t,e){return t<=n&&n<=e}function Ud(n){if(n===void 0)return{};if(n===Object(n))return n;throw TypeError("Could not convert argument to dictionary")}function G4(n){for(var t=String(n),e=t.length,r=0,i=[];r<e;){var s=t.charCodeAt(r);if(s<55296||s>57343)i.push(s);else if(56320<=s&&s<=57343)i.push(65533);else if(55296<=s&&s<=56319)if(r===e-1)i.push(65533);else{var o=n.charCodeAt(r+1);if(56320<=o&&o<=57343){var c=s&1023,u=o&1023;i.push(65536+(c<<10)+u),r+=1}else i.push(65533)}r+=1}return i}function V4(n){for(var t="",e=0;e<n.length;++e){var r=n[e];r<=65535?t+=String.fromCharCode(r):(r-=65536,t+=String.fromCharCode((r>>10)+55296,(r&1023)+56320))}return t}var Dd=-1;function Fg(n){this.tokens=[].slice.call(n)}Fg.prototype={endOfStream:function(){return!this.tokens.length},read:function(){return this.tokens.length?this.tokens.shift():Dd},prepend:function(n){if(Array.isArray(n))for(var t=n;t.length;)this.tokens.unshift(t.pop());else this.tokens.unshift(n)},push:function(n){if(Array.isArray(n))for(var t=n;t.length;)this.tokens.push(t.shift());else this.tokens.push(n)}};var Yc=-1;function $g(n,t){if(n)throw TypeError("Decoder error");return t||65533}var Fd="utf-8";function $d(n,t){if(!(this instanceof $d))return new $d(n,t);if(n=n!==void 0?String(n).toLowerCase():Fd,n!==Fd)throw new Error("Encoding not supported. Only utf-8 is supported");t=Ud(t),this._streaming=!1,this._BOMseen=!1,this._decoder=null,this._fatal=!!t.fatal,this._ignoreBOM=!!t.ignoreBOM,Object.defineProperty(this,"encoding",{value:"utf-8"}),Object.defineProperty(this,"fatal",{value:this._fatal}),Object.defineProperty(this,"ignoreBOM",{value:this._ignoreBOM})}$d.prototype={decode:function(t,e){var r;typeof t=="object"&&t instanceof ArrayBuffer?r=new Uint8Array(t):typeof t=="object"&&"buffer"in t&&t.buffer instanceof ArrayBuffer?r=new Uint8Array(t.buffer,t.byteOffset,t.byteLength):r=new Uint8Array(0),e=Ud(e),this._streaming||(this._decoder=new K4({fatal:this._fatal}),this._BOMseen=!1),this._streaming=!!e.stream;for(var i=new Fg(r),s=[],o;!i.endOfStream()&&(o=this._decoder.handler(i,i.read()),o!==Yc);)o!==null&&(Array.isArray(o)?s.push.apply(s,o):s.push(o));if(!this._streaming){do{if(o=this._decoder.handler(i,i.read()),o===Yc)break;o!==null&&(Array.isArray(o)?s.push.apply(s,o):s.push(o))}while(!i.endOfStream());this._decoder=null}return s.length&&["utf-8"].indexOf(this.encoding)!==-1&&!this._ignoreBOM&&!this._BOMseen&&(s[0]===65279?(this._BOMseen=!0,s.shift()):this._BOMseen=!0),V4(s)}};function Hd(n,t){if(!(this instanceof Hd))return new Hd(n,t);if(n=n!==void 0?String(n).toLowerCase():Fd,n!==Fd)throw new Error("Encoding not supported. Only utf-8 is supported");t=Ud(t),this._streaming=!1,this._encoder=null,this._options={fatal:!!t.fatal},Object.defineProperty(this,"encoding",{value:"utf-8"})}Hd.prototype={encode:function(t,e){t=t?String(t):"",e=Ud(e),this._streaming||(this._encoder=new j4(this._options)),this._streaming=!!e.stream;for(var r=[],i=new Fg(G4(t)),s;!i.endOfStream()&&(s=this._encoder.handler(i,i.read()),s!==Yc);)Array.isArray(s)?r.push.apply(r,s):r.push(s);if(!this._streaming){for(;s=this._encoder.handler(i,i.read()),s!==Yc;)Array.isArray(s)?r.push.apply(r,s):r.push(s);this._encoder=null}return new Uint8Array(r)}};function K4(n){var t=n.fatal,e=0,r=0,i=0,s=128,o=191;this.handler=function(c,u){if(u===Dd&&i!==0)return i=0,$g(t);if(u===Dd)return Yc;if(i===0){if(bs(u,0,127))return u;if(bs(u,194,223))i=1,e=u-192;else if(bs(u,224,239))u===224&&(s=160),u===237&&(o=159),i=2,e=u-224;else if(bs(u,240,244))u===240&&(s=144),u===244&&(o=143),i=3,e=u-240;else return $g(t);return e=e<<6*i,null}if(!bs(u,s,o))return e=i=r=0,s=128,o=191,c.prepend(u),$g(t);if(s=128,o=191,r+=1,e+=u-128<<6*(i-r),r!==i)return null;var f=e;return e=i=r=0,f}}function j4(n){n.fatal,this.handler=function(t,e){if(e===Dd)return Yc;if(bs(e,0,127))return e;var r,i;bs(e,128,2047)?(r=1,i=192):bs(e,2048,65535)?(r=2,i=224):bs(e,65536,1114111)&&(r=3,i=240);for(var s=[(e>>6*r)+i];r>0;){var o=e>>6*(r-1);s.push(128|o&63),r-=1}return s}}const W4=kc(Object.freeze(Object.defineProperty({__proto__:null,TextDecoder:$d,TextEncoder:Hd},Symbol.toStringTag,{value:"Module"})));var Z4=ae&&ae.__createBinding||(Object.create?function(n,t,e,r){r===void 0&&(r=e),Object.defineProperty(n,r,{enumerable:!0,get:function(){return t[e]}})}:function(n,t,e,r){r===void 0&&(r=e),n[r]=t[e]}),q4=ae&&ae.__setModuleDefault||(Object.create?function(n,t){Object.defineProperty(n,"default",{enumerable:!0,value:t})}:function(n,t){n.default=t}),Li=ae&&ae.__decorate||function(n,t,e,r){var i=arguments.length,s=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(n,t,e,r);else for(var c=n.length-1;c>=0;c--)(o=n[c])&&(s=(i<3?o(s):i>3?o(t,e,s):o(t,e))||s);return i>3&&s&&Object.defineProperty(t,e,s),s},Q4=ae&&ae.__importStar||function(n){if(n&&n.__esModule)return n;var t={};if(n!=null)for(var e in n)e!=="default"&&Object.hasOwnProperty.call(n,e)&&Z4(t,n,e);return q4(t,n),t},K_=ae&&ae.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(Gn,"__esModule",{value:!0});var j_=Gn.deserializeUnchecked=J_=Gn.deserialize=Y_=Gn.serialize=Gn.BinaryReader=Gn.BinaryWriter=Gn.BorshError=Gn.baseDecode=Gn.baseEncode=void 0;const lo=K_(_g),W_=K_(V_),Y4=Q4(W4),J4=typeof TextDecoder!="function"?Y4.TextDecoder:TextDecoder,X4=new J4("utf-8",{fatal:!0});function tP(n){return typeof n=="string"&&(n=Zt.from(n,"utf8")),W_.default.encode(Zt.from(n))}Gn.baseEncode=tP;function eP(n){return Zt.from(W_.default.decode(n))}Gn.baseDecode=eP;const Hg=1024;class fr extends Error{constructor(t){super(t),this.fieldPath=[],this.originalMessage=t}addToFieldPath(t){this.fieldPath.splice(0,0,t),this.message=this.originalMessage+": "+this.fieldPath.join(".")}}Gn.BorshError=fr;class Z_{constructor(){this.buf=Zt.alloc(Hg),this.length=0}maybeResize(){this.buf.length<16+this.length&&(this.buf=Zt.concat([this.buf,Zt.alloc(Hg)]))}writeU8(t){this.maybeResize(),this.buf.writeUInt8(t,this.length),this.length+=1}writeU16(t){this.maybeResize(),this.buf.writeUInt16LE(t,this.length),this.length+=2}writeU32(t){this.maybeResize(),this.buf.writeUInt32LE(t,this.length),this.length+=4}writeU64(t){this.maybeResize(),this.writeBuffer(Zt.from(new lo.default(t).toArray("le",8)))}writeU128(t){this.maybeResize(),this.writeBuffer(Zt.from(new lo.default(t).toArray("le",16)))}writeU256(t){this.maybeResize(),this.writeBuffer(Zt.from(new lo.default(t).toArray("le",32)))}writeU512(t){this.maybeResize(),this.writeBuffer(Zt.from(new lo.default(t).toArray("le",64)))}writeBuffer(t){this.buf=Zt.concat([Zt.from(this.buf.subarray(0,this.length)),t,Zt.alloc(Hg)]),this.length+=t.length}writeString(t){this.maybeResize();const e=Zt.from(t,"utf8");this.writeU32(e.length),this.writeBuffer(e)}writeFixedArray(t){this.writeBuffer(Zt.from(t))}writeArray(t,e){this.maybeResize(),this.writeU32(t.length);for(const r of t)this.maybeResize(),e(r)}toArray(){return this.buf.subarray(0,this.length)}}Gn.BinaryWriter=Z_;function Ui(n,t,e){const r=e.value;e.value=function(...i){try{return r.apply(this,i)}catch(s){if(s instanceof RangeError){const o=s.code;if(["ERR_BUFFER_OUT_OF_BOUNDS","ERR_OUT_OF_RANGE"].indexOf(o)>=0)throw new fr("Reached the end of buffer when deserializing")}throw s}}}class Lr{constructor(t){this.buf=t,this.offset=0}readU8(){const t=this.buf.readUInt8(this.offset);return this.offset+=1,t}readU16(){const t=this.buf.readUInt16LE(this.offset);return this.offset+=2,t}readU32(){const t=this.buf.readUInt32LE(this.offset);return this.offset+=4,t}readU64(){const t=this.readBuffer(8);return new lo.default(t,"le")}readU128(){const t=this.readBuffer(16);return new lo.default(t,"le")}readU256(){const t=this.readBuffer(32);return new lo.default(t,"le")}readU512(){const t=this.readBuffer(64);return new lo.default(t,"le")}readBuffer(t){if(this.offset+t>this.buf.length)throw new fr(`Expected buffer length ${t} isn't within bounds`);const e=this.buf.slice(this.offset,this.offset+t);return this.offset+=t,e}readString(){const t=this.readU32(),e=this.readBuffer(t);try{return X4.decode(e)}catch(r){throw new fr(`Error decoding UTF-8 string: ${r}`)}}readFixedArray(t){return new Uint8Array(this.readBuffer(t))}readArray(t){const e=this.readU32(),r=Array();for(let i=0;i<e;++i)r.push(t());return r}}Li([Ui],Lr.prototype,"readU8",null),Li([Ui],Lr.prototype,"readU16",null),Li([Ui],Lr.prototype,"readU32",null),Li([Ui],Lr.prototype,"readU64",null),Li([Ui],Lr.prototype,"readU128",null),Li([Ui],Lr.prototype,"readU256",null),Li([Ui],Lr.prototype,"readU512",null),Li([Ui],Lr.prototype,"readString",null),Li([Ui],Lr.prototype,"readFixedArray",null),Li([Ui],Lr.prototype,"readArray",null),Gn.BinaryReader=Lr;function q_(n){return n.charAt(0).toUpperCase()+n.slice(1)}function ga(n,t,e,r,i){try{if(typeof r=="string")i[`write${q_(r)}`](e);else if(r instanceof Array)if(typeof r[0]=="number"){if(e.length!==r[0])throw new fr(`Expecting byte array of length ${r[0]}, but got ${e.length} bytes`);i.writeFixedArray(e)}else if(r.length===2&&typeof r[1]=="number"){if(e.length!==r[1])throw new fr(`Expecting byte array of length ${r[1]}, but got ${e.length} bytes`);for(let s=0;s<r[1];s++)ga(n,null,e[s],r[0],i)}else i.writeArray(e,s=>{ga(n,t,s,r[0],i)});else if(r.kind!==void 0)switch(r.kind){case"option":{e==null?i.writeU8(0):(i.writeU8(1),ga(n,t,e,r.type,i));break}case"map":{i.writeU32(e.size),e.forEach((s,o)=>{ga(n,t,o,r.key,i),ga(n,t,s,r.value,i)});break}default:throw new fr(`FieldType ${r} unrecognized`)}else Q_(n,e,i)}catch(s){throw s instanceof fr&&s.addToFieldPath(t),s}}function Q_(n,t,e){if(typeof t.borshSerialize=="function"){t.borshSerialize(e);return}const r=n.get(t.constructor);if(!r)throw new fr(`Class ${t.constructor.name} is missing in schema`);if(r.kind==="struct")r.fields.map(([i,s])=>{ga(n,i,t[i],s,e)});else if(r.kind==="enum"){const i=t[r.field];for(let s=0;s<r.values.length;++s){const[o,c]=r.values[s];if(o===i){e.writeU8(s),ga(n,o,t[o],c,e);break}}}else throw new fr(`Unexpected schema kind: ${r.kind} for ${t.constructor.name}`)}function nP(n,t,e=Z_){const r=new e;return Q_(n,t,r),r.toArray()}var Y_=Gn.serialize=nP;function ya(n,t,e,r){try{if(typeof e=="string")return r[`read${q_(e)}`]();if(e instanceof Array){if(typeof e[0]=="number")return r.readFixedArray(e[0]);if(typeof e[1]=="number"){const i=[];for(let s=0;s<e[1];s++)i.push(ya(n,null,e[0],r));return i}else return r.readArray(()=>ya(n,t,e[0],r))}if(e.kind==="option")return r.readU8()?ya(n,t,e.type,r):void 0;if(e.kind==="map"){let i=new Map;const s=r.readU32();for(let o=0;o<s;o++){const c=ya(n,t,e.key,r),u=ya(n,t,e.value,r);i.set(c,u)}return i}return zg(n,e,r)}catch(i){throw i instanceof fr&&i.addToFieldPath(t),i}}function zg(n,t,e){if(typeof t.borshDeserialize=="function")return t.borshDeserialize(e);const r=n.get(t);if(!r)throw new fr(`Class ${t.name} is missing in schema`);if(r.kind==="struct"){const i={};for(const[s,o]of n.get(t).fields)i[s]=ya(n,s,o,e);return new t(i)}if(r.kind==="enum"){const i=e.readU8();if(i>=r.values.length)throw new fr(`Enum index: ${i} is out of range`);const[s,o]=r.values[i],c=ya(n,s,o,e);return new t({[s]:c})}throw new fr(`Unexpected schema kind: ${r.kind} for ${t.constructor.name}`)}function rP(n,t,e,r=Lr){const i=new r(e),s=zg(n,t,i);if(i.offset<e.length)throw new fr(`Unexpected ${e.length-i.offset} bytes after deserialized data`);return s}var J_=Gn.deserialize=rP;function iP(n,t,e,r=Lr){const i=new r(e);return zg(n,t,i)}j_=Gn.deserializeUnchecked=iP;var et={};Object.defineProperty(et,"__esModule",{value:!0}),et.s16=et.s8=et.nu64be=et.u48be=et.u40be=et.u32be=et.u24be=et.u16be=Vn=et.nu64=et.u48=et.u40=Ot=et.u32=et.u24=Jr=et.u16=me=et.u8=fo=et.offset=et.greedy=et.Constant=et.UTF8=et.CString=et.Blob=et.Boolean=et.BitField=et.BitStructure=et.VariantLayout=et.Union=et.UnionLayoutDiscriminator=et.UnionDiscriminator=et.Structure=et.Sequence=et.DoubleBE=et.Double=et.FloatBE=et.Float=et.NearInt64BE=et.NearInt64=et.NearUInt64BE=et.NearUInt64=et.IntBE=et.Int=et.UIntBE=et.UInt=et.OffsetLayout=et.GreedyCount=et.ExternalLayout=et.bindConstructorLayout=et.nameWithProperty=et.Layout=et.uint8ArrayToBuffer=et.checkUint8Array=void 0,et.constant=et.utf8=et.cstr=je=et.blob=et.unionLayoutDiscriminator=et.union=Kn=et.seq=et.bits=Nt=et.struct=et.f64be=et.f64=et.f32be=et.f32=et.ns64be=et.s48be=et.s40be=et.s32be=et.s24be=et.s16be=Ur=et.ns64=et.s48=et.s40=et.s32=et.s24=void 0;const Gg=bg;function Jc(n){if(!(n instanceof Uint8Array))throw new TypeError("b must be a Uint8Array")}et.checkUint8Array=Jc;function be(n){return Jc(n),Gg.Buffer.from(n.buffer,n.byteOffset,n.length)}et.uint8ArrayToBuffer=be;let Te=class{constructor(t,e){if(!Number.isInteger(t))throw new TypeError("span must be an integer");this.span=t,this.property=e}makeDestinationObject(){return{}}getSpan(t,e){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(t){const e=Object.create(this.constructor.prototype);return Object.assign(e,this),e.property=t,e}fromArray(t){}};et.Layout=Te;function Vg(n,t){return t.property?n+"["+t.property+"]":n}et.nameWithProperty=Vg;function sP(n,t){if(typeof n!="function")throw new TypeError("Class must be constructor");if(Object.prototype.hasOwnProperty.call(n,"layout_"))throw new Error("Class is already bound to a layout");if(!(t&&t instanceof Te))throw new TypeError("layout must be a Layout");if(Object.prototype.hasOwnProperty.call(t,"boundConstructor_"))throw new Error("layout is already bound to a constructor");n.layout_=t,t.boundConstructor_=n,t.makeDestinationObject=()=>new n,Object.defineProperty(n.prototype,"encode",{value(e,r){return t.encode(this,e,r)},writable:!0}),Object.defineProperty(n,"decode",{value(e,r){return t.decode(e,r)},writable:!0})}et.bindConstructorLayout=sP;let Er=class extends Te{isCount(){throw new Error("ExternalLayout is abstract")}};et.ExternalLayout=Er;let X_=class extends Er{constructor(t=1,e){if(!Number.isInteger(t)||0>=t)throw new TypeError("elementSpan must be a (positive) integer");super(-1,e),this.elementSpan=t}isCount(){return!0}decode(t,e=0){Jc(t);const r=t.length-e;return Math.floor(r/this.elementSpan)}encode(t,e,r){return 0}};et.GreedyCount=X_;let Kg=class extends Er{constructor(t,e=0,r){if(!(t instanceof Te))throw new TypeError("layout must be a Layout");if(!Number.isInteger(e))throw new TypeError("offset must be integer or undefined");super(t.span,r||t.property),this.layout=t,this.offset=e}isCount(){return this.layout instanceof Yr||this.layout instanceof pi}decode(t,e=0){return this.layout.decode(t,e+this.offset)}encode(t,e,r=0){return this.layout.encode(t,e,r+this.offset)}};et.OffsetLayout=Kg;let Yr=class extends Te{constructor(t,e){if(super(t,e),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(t,e=0){return be(t).readUIntLE(e,this.span)}encode(t,e,r=0){return be(e).writeUIntLE(t,r,this.span),this.span}};et.UInt=Yr;let pi=class extends Te{constructor(t,e){if(super(t,e),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(t,e=0){return be(t).readUIntBE(e,this.span)}encode(t,e,r=0){return be(e).writeUIntBE(t,r,this.span),this.span}};et.UIntBE=pi;let ma=class extends Te{constructor(t,e){if(super(t,e),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(t,e=0){return be(t).readIntLE(e,this.span)}encode(t,e,r=0){return be(e).writeIntLE(t,r,this.span),this.span}};et.Int=ma;let Xc=class extends Te{constructor(t,e){if(super(t,e),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(t,e=0){return be(t).readIntBE(e,this.span)}encode(t,e,r=0){return be(e).writeIntBE(t,r,this.span),this.span}};et.IntBE=Xc;const jg=Math.pow(2,32);function zd(n){const t=Math.floor(n/jg),e=n-t*jg;return{hi32:t,lo32:e}}function Gd(n,t){return n*jg+t}let tA=class extends Te{constructor(t){super(8,t)}decode(t,e=0){const r=be(t),i=r.readUInt32LE(e),s=r.readUInt32LE(e+4);return Gd(s,i)}encode(t,e,r=0){const i=zd(t),s=be(e);return s.writeUInt32LE(i.lo32,r),s.writeUInt32LE(i.hi32,r+4),8}};et.NearUInt64=tA;let eA=class extends Te{constructor(t){super(8,t)}decode(t,e=0){const r=be(t),i=r.readUInt32BE(e),s=r.readUInt32BE(e+4);return Gd(i,s)}encode(t,e,r=0){const i=zd(t),s=be(e);return s.writeUInt32BE(i.hi32,r),s.writeUInt32BE(i.lo32,r+4),8}};et.NearUInt64BE=eA;let nA=class extends Te{constructor(t){super(8,t)}decode(t,e=0){const r=be(t),i=r.readUInt32LE(e),s=r.readInt32LE(e+4);return Gd(s,i)}encode(t,e,r=0){const i=zd(t),s=be(e);return s.writeUInt32LE(i.lo32,r),s.writeInt32LE(i.hi32,r+4),8}};et.NearInt64=nA;let rA=class extends Te{constructor(t){super(8,t)}decode(t,e=0){const r=be(t),i=r.readInt32BE(e),s=r.readUInt32BE(e+4);return Gd(i,s)}encode(t,e,r=0){const i=zd(t),s=be(e);return s.writeInt32BE(i.hi32,r),s.writeUInt32BE(i.lo32,r+4),8}};et.NearInt64BE=rA;let iA=class extends Te{constructor(t){super(4,t)}decode(t,e=0){return be(t).readFloatLE(e)}encode(t,e,r=0){return be(e).writeFloatLE(t,r),4}};et.Float=iA;let sA=class extends Te{constructor(t){super(4,t)}decode(t,e=0){return be(t).readFloatBE(e)}encode(t,e,r=0){return be(e).writeFloatBE(t,r),4}};et.FloatBE=sA;let oA=class extends Te{constructor(t){super(8,t)}decode(t,e=0){return be(t).readDoubleLE(e)}encode(t,e,r=0){return be(e).writeDoubleLE(t,r),8}};et.Double=oA;let aA=class extends Te{constructor(t){super(8,t)}decode(t,e=0){return be(t).readDoubleBE(e)}encode(t,e,r=0){return be(e).writeDoubleBE(t,r),8}};et.DoubleBE=aA;let cA=class extends Te{constructor(t,e,r){if(!(t instanceof Te))throw new TypeError("elementLayout must be a Layout");if(!(e instanceof Er&&e.isCount()||Number.isInteger(e)&&0<=e))throw new TypeError("count must be non-negative integer or an unsigned integer ExternalLayout");let i=-1;!(e instanceof Er)&&0<t.span&&(i=e*t.span),super(i,r),this.elementLayout=t,this.count=e}getSpan(t,e=0){if(0<=this.span)return this.span;let r=0,i=this.count;if(i instanceof Er&&(i=i.decode(t,e)),0<this.elementLayout.span)r=i*this.elementLayout.span;else{let s=0;for(;s<i;)r+=this.elementLayout.getSpan(t,e+r),++s}return r}decode(t,e=0){const r=[];let i=0,s=this.count;for(s instanceof Er&&(s=s.decode(t,e));i<s;)r.push(this.elementLayout.decode(t,e)),e+=this.elementLayout.getSpan(t,e),i+=1;return r}encode(t,e,r=0){const i=this.elementLayout,s=t.reduce((o,c)=>o+i.encode(c,e,r+o),0);return this.count instanceof Er&&this.count.encode(t.length,e,r),s}};et.Sequence=cA;let uA=class extends Te{constructor(t,e,r){if(!(Array.isArray(t)&&t.reduce((s,o)=>s&&o instanceof Te,!0)))throw new TypeError("fields must be array of Layout instances");typeof e=="boolean"&&r===void 0&&(r=e,e=void 0);for(const s of t)if(0>s.span&&s.property===void 0)throw new Error("fields cannot contain unnamed variable-length layout");let i=-1;try{i=t.reduce((s,o)=>s+o.getSpan(),0)}catch{}super(i,e),this.fields=t,this.decodePrefixes=!!r}getSpan(t,e=0){if(0<=this.span)return this.span;let r=0;try{r=this.fields.reduce((i,s)=>{const o=s.getSpan(t,e);return e+=o,i+o},0)}catch{throw new RangeError("indeterminate span")}return r}decode(t,e=0){Jc(t);const r=this.makeDestinationObject();for(const i of this.fields)if(i.property!==void 0&&(r[i.property]=i.decode(t,e)),e+=i.getSpan(t,e),this.decodePrefixes&&t.length===e)break;return r}encode(t,e,r=0){const i=r;let s=0,o=0;for(const c of this.fields){let u=c.span;if(o=0<u?u:0,c.property!==void 0){const f=t[c.property];f!==void 0&&(o=c.encode(f,e,r),0>u&&(u=c.getSpan(e,r)))}s=r,r+=u}return s+o-i}fromArray(t){const e=this.makeDestinationObject();for(const r of this.fields)r.property!==void 0&&0<t.length&&(e[r.property]=t.shift());return e}layoutFor(t){if(typeof t!="string")throw new TypeError("property must be string");for(const e of this.fields)if(e.property===t)return e}offsetOf(t){if(typeof t!="string")throw new TypeError("property must be string");let e=0;for(const r of this.fields){if(r.property===t)return e;0>r.span?e=-1:0<=e&&(e+=r.span)}}};et.Structure=uA;let Wg=class{constructor(t){this.property=t}decode(t,e){throw new Error("UnionDiscriminator is abstract")}encode(t,e,r){throw new Error("UnionDiscriminator is abstract")}};et.UnionDiscriminator=Wg;let Vd=class extends Wg{constructor(t,e){if(!(t instanceof Er&&t.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(e||t.property||"variant"),this.layout=t}decode(t,e){return this.layout.decode(t,e)}encode(t,e,r){return this.layout.encode(t,e,r)}};et.UnionLayoutDiscriminator=Vd;let Zg=class extends Te{constructor(t,e,r){let i;if(t instanceof Yr||t instanceof pi)i=new Vd(new Kg(t));else if(t instanceof Er&&t.isCount())i=new Vd(t);else if(t instanceof Wg)i=t;else throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(e===void 0&&(e=null),!(e===null||e instanceof Te))throw new TypeError("defaultLayout must be null or a Layout");if(e!==null){if(0>e.span)throw new Error("defaultLayout must have constant span");e.property===void 0&&(e=e.replicate("content"))}let s=-1;e&&(s=e.span,0<=s&&(t instanceof Yr||t instanceof pi)&&(s+=i.layout.span)),super(s,r),this.discriminator=i,this.usesPrefixDiscriminator=t instanceof Yr||t instanceof pi,this.defaultLayout=e,this.registry={};let o=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(c){return o(c)},this.configGetSourceVariant=function(c){o=c.bind(this)}}getSpan(t,e=0){if(0<=this.span)return this.span;const r=this.getVariant(t,e);if(!r)throw new Error("unable to determine span for unrecognized variant");return r.getSpan(t,e)}defaultGetSourceVariant(t){if(Object.prototype.hasOwnProperty.call(t,this.discriminator.property)){if(this.defaultLayout&&this.defaultLayout.property&&Object.prototype.hasOwnProperty.call(t,this.defaultLayout.property))return;const e=this.registry[t[this.discriminator.property]];if(e&&(!e.layout||e.property&&Object.prototype.hasOwnProperty.call(t,e.property)))return e}else for(const e in this.registry){const r=this.registry[e];if(r.property&&Object.prototype.hasOwnProperty.call(t,r.property))return r}throw new Error("unable to infer src variant")}decode(t,e=0){let r;const i=this.discriminator,s=i.decode(t,e),o=this.registry[s];if(o===void 0){const c=this.defaultLayout;let u=0;this.usesPrefixDiscriminator&&(u=i.layout.span),r=this.makeDestinationObject(),r[i.property]=s,r[c.property]=c.decode(t,e+u)}else r=o.decode(t,e);return r}encode(t,e,r=0){const i=this.getSourceVariant(t);if(i===void 0){const s=this.discriminator,o=this.defaultLayout;let c=0;return this.usesPrefixDiscriminator&&(c=s.layout.span),s.encode(t[s.property],e,r),c+o.encode(t[o.property],e,r+c)}return i.encode(t,e,r)}addVariant(t,e,r){const i=new lA(this,t,e,r);return this.registry[t]=i,i}getVariant(t,e=0){let r;return t instanceof Uint8Array?r=this.discriminator.decode(t,e):r=t,this.registry[r]}};et.Union=Zg;let lA=class extends Te{constructor(t,e,r,i){if(!(t instanceof Zg))throw new TypeError("union must be a Union");if(!Number.isInteger(e)||0>e)throw new TypeError("variant must be a (non-negative) integer");if(typeof r=="string"&&i===void 0&&(i=r,r=null),r){if(!(r instanceof Te))throw new TypeError("layout must be a Layout");if(t.defaultLayout!==null&&0<=r.span&&r.span>t.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if(typeof i!="string")throw new TypeError("variant must have a String property")}let s=t.span;0>t.span&&(s=r?r.span:0,0<=s&&t.usesPrefixDiscriminator&&(s+=t.discriminator.layout.span)),super(s,i),this.union=t,this.variant=e,this.layout=r||null}getSpan(t,e=0){if(0<=this.span)return this.span;let r=0;this.union.usesPrefixDiscriminator&&(r=this.union.discriminator.layout.span);let i=0;return this.layout&&(i=this.layout.getSpan(t,e+r)),r+i}decode(t,e=0){const r=this.makeDestinationObject();if(this!==this.union.getVariant(t,e))throw new Error("variant mismatch");let i=0;return this.union.usesPrefixDiscriminator&&(i=this.union.discriminator.layout.span),this.layout?r[this.property]=this.layout.decode(t,e+i):this.property?r[this.property]=!0:this.union.usesPrefixDiscriminator&&(r[this.union.discriminator.property]=this.variant),r}encode(t,e,r=0){let i=0;if(this.union.usesPrefixDiscriminator&&(i=this.union.discriminator.layout.span),this.layout&&!Object.prototype.hasOwnProperty.call(t,this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,e,r);let s=i;if(this.layout&&(this.layout.encode(t[this.property],e,r+i),s+=this.layout.getSpan(e,r+i),0<=this.union.span&&s>this.union.span))throw new Error("encoded variant overruns containing union");return s}fromArray(t){if(this.layout)return this.layout.fromArray(t)}};et.VariantLayout=lA;function tu(n){return 0>n&&(n+=4294967296),n}let qg=class extends Te{constructor(t,e,r){if(!(t instanceof Yr||t instanceof pi))throw new TypeError("word must be a UInt or UIntBE layout");if(typeof e=="string"&&r===void 0&&(r=e,e=!1),4<t.span)throw new RangeError("word cannot exceed 32 bits");super(t.span,r),this.word=t,this.msb=!!e,this.fields=[];let i=0;this._packedSetValue=function(s){return i=tu(s),this},this._packedGetValue=function(){return i}}decode(t,e=0){const r=this.makeDestinationObject(),i=this.word.decode(t,e);this._packedSetValue(i);for(const s of this.fields)s.property!==void 0&&(r[s.property]=s.decode(t));return r}encode(t,e,r=0){const i=this.word.decode(e,r);this._packedSetValue(i);for(const s of this.fields)if(s.property!==void 0){const o=t[s.property];o!==void 0&&s.encode(o)}return this.word.encode(this._packedGetValue(),e,r)}addField(t,e){const r=new Qg(this,t,e);return this.fields.push(r),r}addBoolean(t){const e=new fA(this,t);return this.fields.push(e),e}fieldFor(t){if(typeof t!="string")throw new TypeError("property must be string");for(const e of this.fields)if(e.property===t)return e}};et.BitStructure=qg;let Qg=class{constructor(t,e,r){if(!(t instanceof qg))throw new TypeError("container must be a BitStructure");if(!Number.isInteger(e)||0>=e)throw new TypeError("bits must be positive integer");const i=8*t.span,s=t.fields.reduce((o,c)=>o+c.bits,0);if(e+s>i)throw new Error("bits too long for span remainder ("+(i-s)+" of "+i+" remain)");this.container=t,this.bits=e,this.valueMask=(1<<e)-1,e===32&&(this.valueMask=4294967295),this.start=s,this.container.msb&&(this.start=i-s-e),this.wordMask=tu(this.valueMask<<this.start),this.property=r}decode(t,e){const r=this.container._packedGetValue();return tu(r&this.wordMask)>>>this.start}encode(t){if(typeof t!="number"||!Number.isInteger(t)||t!==tu(t&this.valueMask))throw new TypeError(Vg("BitField.encode",this)+" value must be integer not exceeding "+this.valueMask);const e=this.container._packedGetValue(),r=tu(t<<this.start);this.container._packedSetValue(tu(e&~this.wordMask)|r)}};et.BitField=Qg;let fA=class extends Qg{constructor(t,e){super(t,1,e)}decode(t,e){return!!super.decode(t,e)}encode(t){typeof t=="boolean"&&(t=+t),super.encode(t)}};et.Boolean=fA;let hA=class extends Te{constructor(t,e){if(!(t instanceof Er&&t.isCount()||Number.isInteger(t)&&0<=t))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let r=-1;t instanceof Er||(r=t),super(r,e),this.length=t}getSpan(t,e){let r=this.span;return 0>r&&(r=this.length.decode(t,e)),r}decode(t,e=0){let r=this.span;return 0>r&&(r=this.length.decode(t,e)),be(t).slice(e,e+r)}encode(t,e,r){let i=this.length;if(this.length instanceof Er&&(i=t.length),!(t instanceof Uint8Array&&i===t.length))throw new TypeError(Vg("Blob.encode",this)+" requires (length "+i+") Uint8Array as src");if(r+i>e.length)throw new RangeError("encoding overruns Uint8Array");const s=be(t);return be(e).write(s.toString("hex"),r,i,"hex"),this.length instanceof Er&&this.length.encode(i,e,r),i}};et.Blob=hA;let dA=class extends Te{constructor(t){super(-1,t)}getSpan(t,e=0){Jc(t);let r=e;for(;r<t.length&&t[r]!==0;)r+=1;return 1+r-e}decode(t,e=0){const r=this.getSpan(t,e);return be(t).slice(e,e+r-1).toString("utf-8")}encode(t,e,r=0){typeof t!="string"&&(t=String(t));const i=Gg.Buffer.from(t,"utf8"),s=i.length;if(r+s>e.length)throw new RangeError("encoding overruns Buffer");const o=be(e);return i.copy(o,r),o[r+s]=0,s+1}};et.CString=dA;let pA=class extends Te{constructor(t,e){if(typeof t=="string"&&e===void 0&&(e=t,t=void 0),t===void 0)t=-1;else if(!Number.isInteger(t))throw new TypeError("maxSpan must be an integer");super(-1,e),this.maxSpan=t}getSpan(t,e=0){return Jc(t),t.length-e}decode(t,e=0){const r=this.getSpan(t,e);if(0<=this.maxSpan&&this.maxSpan<r)throw new RangeError("text length exceeds maxSpan");return be(t).slice(e,e+r).toString("utf-8")}encode(t,e,r=0){typeof t!="string"&&(t=String(t));const i=Gg.Buffer.from(t,"utf8"),s=i.length;if(0<=this.maxSpan&&this.maxSpan<s)throw new RangeError("text length exceeds maxSpan");if(r+s>e.length)throw new RangeError("encoding overruns Buffer");return i.copy(be(e),r),s}};et.UTF8=pA;let gA=class extends Te{constructor(t,e){super(0,e),this.value=t}decode(t,e){return this.value}encode(t,e,r){return 0}};et.Constant=gA,et.greedy=(n,t)=>new X_(n,t);var fo=et.offset=(n,t,e)=>new Kg(n,t,e),me=et.u8=n=>new Yr(1,n),Jr=et.u16=n=>new Yr(2,n);et.u24=n=>new Yr(3,n);var Ot=et.u32=n=>new Yr(4,n);et.u40=n=>new Yr(5,n),et.u48=n=>new Yr(6,n);var Vn=et.nu64=n=>new tA(n);et.u16be=n=>new pi(2,n),et.u24be=n=>new pi(3,n),et.u32be=n=>new pi(4,n),et.u40be=n=>new pi(5,n),et.u48be=n=>new pi(6,n),et.nu64be=n=>new eA(n),et.s8=n=>new ma(1,n),et.s16=n=>new ma(2,n),et.s24=n=>new ma(3,n),et.s32=n=>new ma(4,n),et.s40=n=>new ma(5,n),et.s48=n=>new ma(6,n);var Ur=et.ns64=n=>new nA(n);et.s16be=n=>new Xc(2,n),et.s24be=n=>new Xc(3,n),et.s32be=n=>new Xc(4,n),et.s40be=n=>new Xc(5,n),et.s48be=n=>new Xc(6,n),et.ns64be=n=>new rA(n),et.f32=n=>new iA(n),et.f32be=n=>new sA(n),et.f64=n=>new oA(n),et.f64be=n=>new aA(n);var Nt=et.struct=(n,t,e)=>new uA(n,t,e);et.bits=(n,t,e)=>new qg(n,t,e);var Kn=et.seq=(n,t,e)=>new cA(n,t,e);et.union=(n,t,e)=>new Zg(n,t,e),et.unionLayoutDiscriminator=(n,t)=>new Vd(n,t);var je=et.blob=(n,t)=>new hA(n,t);et.cstr=n=>new dA(n),et.utf8=(n,t)=>new pA(n,t),et.constant=(n,t)=>new gA(n,t);var lf={};Object.defineProperty(lf,"__esModule",{value:!0});function oP(n){{const t=Zt.from(n);t.reverse();const e=t.toString("hex");return e.length===0?BigInt(0):BigInt(`0x${e}`)}}var aP=lf.toBigIntLE=oP;function cP(n){{const t=n.toString("hex");return t.length===0?BigInt(0):BigInt(`0x${t}`)}}lf.toBigIntBE=cP;function uP(n,t){{const e=n.toString(16),r=Zt.from(e.padStart(t*2,"0").slice(0,t*2),"hex");return r.reverse(),r}}var yA=lf.toBufferLE=uP;function lP(n,t){{const e=n.toString(16);return Zt.from(e.padStart(t*2,"0").slice(0,t*2),"hex")}}lf.toBufferBE=lP;let fP=class extends TypeError{constructor(t,e){let r;const{message:i,explanation:s,...o}=t,{path:c}=t,u=c.length===0?i:`At path: ${c.join(".")} -- ${i}`;super(s??u),s!=null&&(this.cause=u),Object.assign(this,o),this.name=this.constructor.name,this.failures=()=>r??(r=[t,...e()])}};function hP(n){return ff(n)&&typeof n[Symbol.iterator]=="function"}function ff(n){return typeof n=="object"&&n!=null}function Kd(n){return ff(n)&&!Array.isArray(n)}function gi(n){return typeof n=="symbol"?n.toString():typeof n=="string"?JSON.stringify(n):`${n}`}function dP(n){const{done:t,value:e}=n.next();return t?void 0:e}function pP(n,t,e,r){if(n===!0)return;n===!1?n={}:typeof n=="string"&&(n={message:n});const{path:i,branch:s}=t,{type:o}=e,{refinement:c,message:u=`Expected a value of type \`${o}\`${c?` with refinement \`${c}\``:""}, but received: \`${gi(r)}\``}=n;return{value:r,type:o,refinement:c,key:i[i.length-1],path:i,branch:s,...n,message:u}}function*mA(n,t,e,r){hP(n)||(n=[n]);for(const i of n){const s=pP(i,t,e,r);s&&(yield s)}}function*Yg(n,t,e={}){const{path:r=[],branch:i=[n],coerce:s=!1,mask:o=!1}=e,c={path:r,branch:i,mask:o};s&&(n=t.coercer(n,c));let u="valid";for(const f of t.validator(n,c))f.explanation=e.message,u="not_valid",yield[f,void 0];for(let[f,h,y]of t.entries(n,c)){const A=Yg(h,y,{path:f===void 0?r:[...r,f],branch:f===void 0?i:[...i,h],coerce:s,mask:o,message:e.message});for(const b of A)b[0]?(u=b[0].refinement!=null?"not_refined":"not_valid",yield[b[0],void 0]):s&&(h=b[1],f===void 0?n=h:n instanceof Map?n.set(f,h):n instanceof Set?n.add(h):ff(n)&&(h!==void 0||f in n)&&(n[f]=h))}if(u!=="not_valid")for(const f of t.refiner(n,c))f.explanation=e.message,u="not_refined",yield[f,void 0];u==="valid"&&(yield[void 0,n])}let Di=class{constructor(t){const{type:e,schema:r,validator:i,refiner:s,coercer:o=u=>u,entries:c=function*(){}}=t;this.type=e,this.schema=r,this.entries=c,this.coercer=o,i?this.validator=(u,f)=>{const h=i(u,f);return mA(h,f,this,u)}:this.validator=()=>[],s?this.refiner=(u,f)=>{const h=s(u,f);return mA(h,f,this,u)}:this.refiner=()=>[]}assert(t,e){return wA(t,this,e)}create(t,e){return wt(t,this,e)}is(t){return bA(t,this)}mask(t,e){return gP(t,this,e)}validate(t,e={}){return hf(t,this,e)}};function wA(n,t,e){const r=hf(n,t,{message:e});if(r[0])throw r[0]}function wt(n,t,e){const r=hf(n,t,{coerce:!0,message:e});if(r[0])throw r[0];return r[1]}function gP(n,t,e){const r=hf(n,t,{coerce:!0,mask:!0,message:e});if(r[0])throw r[0];return r[1]}function bA(n,t){return!hf(n,t)[0]}function hf(n,t,e={}){const r=Yg(n,t,e),i=dP(r);return i[0]?[new fP(i[0],function*(){for(const o of r)o[0]&&(yield o[0])}),void 0]:[void 0,i[1]]}function wa(n,t){return new Di({type:n,schema:null,validator:t})}function yP(){return wa("any",()=>!0)}function Et(n){return new Di({type:"array",schema:n,*entries(t){if(n&&Array.isArray(t))for(const[e,r]of t.entries())yield[e,r,n]},coercer(t){return Array.isArray(t)?t.slice():t},validator(t){return Array.isArray(t)||`Expected an array value, but received: ${gi(t)}`}})}function Fi(){return wa("boolean",n=>typeof n=="boolean")}function Jg(n){return wa("instance",t=>t instanceof n||`Expected a \`${n.name}\` instance, but received: ${gi(t)}`)}function tn(n){const t=gi(n),e=typeof n;return new Di({type:"literal",schema:e==="string"||e==="number"||e==="boolean"?n:null,validator(r){return r===n||`Expected the literal \`${t}\`, but received: ${gi(r)}`}})}function mP(){return wa("never",()=>!1)}function vt(n){return new Di({...n,validator:(t,e)=>t===null||n.validator(t,e),refiner:(t,e)=>t===null||n.refiner(t,e)})}function X(){return wa("number",n=>typeof n=="number"&&!isNaN(n)||`Expected a number, but received: ${gi(n)}`)}function Dt(n){return new Di({...n,validator:(t,e)=>t===void 0||n.validator(t,e),refiner:(t,e)=>t===void 0||n.refiner(t,e)})}function _A(n,t){return new Di({type:"record",schema:null,*entries(e){if(ff(e))for(const r in e){const i=e[r];yield[r,r,n],yield[r,i,t]}},validator(e){return Kd(e)||`Expected an object, but received: ${gi(e)}`},coercer(e){return Kd(e)?{...e}:e}})}function yt(){return wa("string",n=>typeof n=="string"||`Expected a string, but received: ${gi(n)}`)}function Xg(n){const t=mP();return new Di({type:"tuple",schema:null,*entries(e){if(Array.isArray(e)){const r=Math.max(n.length,e.length);for(let i=0;i<r;i++)yield[i,e[i],n[i]||t]}},validator(e){return Array.isArray(e)||`Expected an array, but received: ${gi(e)}`},coercer(e){return Array.isArray(e)?e.slice():e}})}function ft(n){const t=Object.keys(n);return new Di({type:"type",schema:n,*entries(e){if(ff(e))for(const r of t)yield[r,e[r],n[r]]},validator(e){return Kd(e)||`Expected an object, but received: ${gi(e)}`},coercer(e){return Kd(e)?{...e}:e}})}function hr(n){const t=n.map(e=>e.type).join(" | ");return new Di({type:"union",schema:null,coercer(e,r){for(const i of n){const[s,o]=i.validate(e,{coerce:!0,mask:r.mask});if(!s)return o}return e},validator(e,r){const i=[];for(const s of n){const[...o]=Yg(e,s,r),[c]=o;if(c[0])for(const[u]of o)u&&i.push(u);else return[]}return[`Expected the value to satisfy a union of \`${t}\`, but received: ${gi(e)}`,...i]}})}function eu(){return wa("unknown",()=>!0)}function df(n,t,e){return new Di({...n,coercer:(r,i)=>bA(r,t)?n.coercer(e(r,i),i):n.coercer(r,i)})}var jd,wP=new Uint8Array(16);function AA(){if(!jd&&(jd=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!jd))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return jd(wP)}const bP=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function Wd(n){return typeof n=="string"&&bP.test(n)}for(var jn=[],ty=0;ty<256;++ty)jn.push((ty+256).toString(16).substr(1));function Zd(n){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,e=(jn[n[t+0]]+jn[n[t+1]]+jn[n[t+2]]+jn[n[t+3]]+"-"+jn[n[t+4]]+jn[n[t+5]]+"-"+jn[n[t+6]]+jn[n[t+7]]+"-"+jn[n[t+8]]+jn[n[t+9]]+"-"+jn[n[t+10]]+jn[n[t+11]]+jn[n[t+12]]+jn[n[t+13]]+jn[n[t+14]]+jn[n[t+15]]).toLowerCase();if(!Wd(e))throw TypeError("Stringified UUID is invalid");return e}var EA,ey,ny=0,ry=0;function _P(n,t,e){var r=t&&e||0,i=t||new Array(16);n=n||{};var s=n.node||EA,o=n.clockseq!==void 0?n.clockseq:ey;if(s==null||o==null){var c=n.random||(n.rng||AA)();s==null&&(s=EA=[c[0]|1,c[1],c[2],c[3],c[4],c[5]]),o==null&&(o=ey=(c[6]<<8|c[7])&16383)}var u=n.msecs!==void 0?n.msecs:Date.now(),f=n.nsecs!==void 0?n.nsecs:ry+1,h=u-ny+(f-ry)/1e4;if(h<0&&n.clockseq===void 0&&(o=o+1&16383),(h<0||u>ny)&&n.nsecs===void 0&&(f=0),f>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");ny=u,ry=f,ey=o,u+=122192928e5;var y=((u&268435455)*1e4+f)%4294967296;i[r++]=y>>>24&255,i[r++]=y>>>16&255,i[r++]=y>>>8&255,i[r++]=y&255;var A=u/4294967296*1e4&268435455;i[r++]=A>>>8&255,i[r++]=A&255,i[r++]=A>>>24&15|16,i[r++]=A>>>16&255,i[r++]=o>>>8|128,i[r++]=o&255;for(var b=0;b<6;++b)i[r+b]=s[b];return t||Zd(i)}function vA(n){if(!Wd(n))throw TypeError("Invalid UUID");var t,e=new Uint8Array(16);return e[0]=(t=parseInt(n.slice(0,8),16))>>>24,e[1]=t>>>16&255,e[2]=t>>>8&255,e[3]=t&255,e[4]=(t=parseInt(n.slice(9,13),16))>>>8,e[5]=t&255,e[6]=(t=parseInt(n.slice(14,18),16))>>>8,e[7]=t&255,e[8]=(t=parseInt(n.slice(19,23),16))>>>8,e[9]=t&255,e[10]=(t=parseInt(n.slice(24,36),16))/1099511627776&255,e[11]=t/4294967296&255,e[12]=t>>>24&255,e[13]=t>>>16&255,e[14]=t>>>8&255,e[15]=t&255,e}function AP(n){n=unescape(encodeURIComponent(n));for(var t=[],e=0;e<n.length;++e)t.push(n.charCodeAt(e));return t}var EP="6ba7b810-9dad-11d1-80b4-00c04fd430c8",vP="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function xA(n,t,e){function r(i,s,o,c){if(typeof i=="string"&&(i=AP(i)),typeof s=="string"&&(s=vA(s)),s.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var u=new Uint8Array(16+i.length);if(u.set(s),u.set(i,s.length),u=e(u),u[6]=u[6]&15|t,u[8]=u[8]&63|128,o){c=c||0;for(var f=0;f<16;++f)o[c+f]=u[f];return o}return Zd(u)}try{r.name=n}catch{}return r.DNS=EP,r.URL=vP,r}function xP(n){if(typeof n=="string"){var t=unescape(encodeURIComponent(n));n=new Uint8Array(t.length);for(var e=0;e<t.length;++e)n[e]=t.charCodeAt(e)}return RP(SP(IP(n),n.length*8))}function RP(n){for(var t=[],e=n.length*32,r="0123456789abcdef",i=0;i<e;i+=8){var s=n[i>>5]>>>i%32&255,o=parseInt(r.charAt(s>>>4&15)+r.charAt(s&15),16);t.push(o)}return t}function RA(n){return(n+64>>>9<<4)+14+1}function SP(n,t){n[t>>5]|=128<<t%32,n[RA(t)-1]=t;for(var e=1732584193,r=-271733879,i=-1732584194,s=271733878,o=0;o<n.length;o+=16){var c=e,u=r,f=i,h=s;e=tr(e,r,i,s,n[o],7,-680876936),s=tr(s,e,r,i,n[o+1],12,-389564586),i=tr(i,s,e,r,n[o+2],17,606105819),r=tr(r,i,s,e,n[o+3],22,-1044525330),e=tr(e,r,i,s,n[o+4],7,-176418897),s=tr(s,e,r,i,n[o+5],12,1200080426),i=tr(i,s,e,r,n[o+6],17,-1473231341),r=tr(r,i,s,e,n[o+7],22,-45705983),e=tr(e,r,i,s,n[o+8],7,1770035416),s=tr(s,e,r,i,n[o+9],12,-1958414417),i=tr(i,s,e,r,n[o+10],17,-42063),r=tr(r,i,s,e,n[o+11],22,-1990404162),e=tr(e,r,i,s,n[o+12],7,1804603682),s=tr(s,e,r,i,n[o+13],12,-40341101),i=tr(i,s,e,r,n[o+14],17,-1502002290),r=tr(r,i,s,e,n[o+15],22,1236535329),e=er(e,r,i,s,n[o+1],5,-165796510),s=er(s,e,r,i,n[o+6],9,-1069501632),i=er(i,s,e,r,n[o+11],14,643717713),r=er(r,i,s,e,n[o],20,-373897302),e=er(e,r,i,s,n[o+5],5,-701558691),s=er(s,e,r,i,n[o+10],9,38016083),i=er(i,s,e,r,n[o+15],14,-660478335),r=er(r,i,s,e,n[o+4],20,-405537848),e=er(e,r,i,s,n[o+9],5,568446438),s=er(s,e,r,i,n[o+14],9,-1019803690),i=er(i,s,e,r,n[o+3],14,-187363961),r=er(r,i,s,e,n[o+8],20,1163531501),e=er(e,r,i,s,n[o+13],5,-1444681467),s=er(s,e,r,i,n[o+2],9,-51403784),i=er(i,s,e,r,n[o+7],14,1735328473),r=er(r,i,s,e,n[o+12],20,-1926607734),e=nr(e,r,i,s,n[o+5],4,-378558),s=nr(s,e,r,i,n[o+8],11,-2022574463),i=nr(i,s,e,r,n[o+11],16,1839030562),r=nr(r,i,s,e,n[o+14],23,-35309556),e=nr(e,r,i,s,n[o+1],4,-1530992060),s=nr(s,e,r,i,n[o+4],11,1272893353),i=nr(i,s,e,r,n[o+7],16,-155497632),r=nr(r,i,s,e,n[o+10],23,-1094730640),e=nr(e,r,i,s,n[o+13],4,681279174),s=nr(s,e,r,i,n[o],11,-358537222),i=nr(i,s,e,r,n[o+3],16,-722521979),r=nr(r,i,s,e,n[o+6],23,76029189),e=nr(e,r,i,s,n[o+9],4,-640364487),s=nr(s,e,r,i,n[o+12],11,-421815835),i=nr(i,s,e,r,n[o+15],16,530742520),r=nr(r,i,s,e,n[o+2],23,-995338651),e=rr(e,r,i,s,n[o],6,-198630844),s=rr(s,e,r,i,n[o+7],10,1126891415),i=rr(i,s,e,r,n[o+14],15,-1416354905),r=rr(r,i,s,e,n[o+5],21,-57434055),e=rr(e,r,i,s,n[o+12],6,1700485571),s=rr(s,e,r,i,n[o+3],10,-1894986606),i=rr(i,s,e,r,n[o+10],15,-1051523),r=rr(r,i,s,e,n[o+1],21,-2054922799),e=rr(e,r,i,s,n[o+8],6,1873313359),s=rr(s,e,r,i,n[o+15],10,-30611744),i=rr(i,s,e,r,n[o+6],15,-1560198380),r=rr(r,i,s,e,n[o+13],21,1309151649),e=rr(e,r,i,s,n[o+4],6,-145523070),s=rr(s,e,r,i,n[o+11],10,-1120210379),i=rr(i,s,e,r,n[o+2],15,718787259),r=rr(r,i,s,e,n[o+9],21,-343485551),e=ho(e,c),r=ho(r,u),i=ho(i,f),s=ho(s,h)}return[e,r,i,s]}function IP(n){if(n.length===0)return[];for(var t=n.length*8,e=new Uint32Array(RA(t)),r=0;r<t;r+=8)e[r>>5]|=(n[r/8]&255)<<r%32;return e}function ho(n,t){var e=(n&65535)+(t&65535),r=(n>>16)+(t>>16)+(e>>16);return r<<16|e&65535}function kP(n,t){return n<<t|n>>>32-t}function qd(n,t,e,r,i,s){return ho(kP(ho(ho(t,n),ho(r,s)),i),e)}function tr(n,t,e,r,i,s,o){return qd(t&e|~t&r,n,t,i,s,o)}function er(n,t,e,r,i,s,o){return qd(t&r|e&~r,n,t,i,s,o)}function nr(n,t,e,r,i,s,o){return qd(t^e^r,n,t,i,s,o)}function rr(n,t,e,r,i,s,o){return qd(e^(t|~r),n,t,i,s,o)}var TP=xA("v3",48,xP);function OP(n,t,e){n=n||{};var r=n.random||(n.rng||AA)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,t){e=e||0;for(var i=0;i<16;++i)t[e+i]=r[i];return t}return Zd(r)}function NP(n,t,e,r){switch(n){case 0:return t&e^~t&r;case 1:return t^e^r;case 2:return t&e^t&r^e&r;case 3:return t^e^r}}function iy(n,t){return n<<t|n>>>32-t}function CP(n){var t=[1518500249,1859775393,2400959708,3395469782],e=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof n=="string"){var r=unescape(encodeURIComponent(n));n=[];for(var i=0;i<r.length;++i)n.push(r.charCodeAt(i))}else Array.isArray(n)||(n=Array.prototype.slice.call(n));n.push(128);for(var s=n.length/4+2,o=Math.ceil(s/16),c=new Array(o),u=0;u<o;++u){for(var f=new Uint32Array(16),h=0;h<16;++h)f[h]=n[u*64+h*4]<<24|n[u*64+h*4+1]<<16|n[u*64+h*4+2]<<8|n[u*64+h*4+3];c[u]=f}c[o-1][14]=(n.length-1)*8/Math.pow(2,32),c[o-1][14]=Math.floor(c[o-1][14]),c[o-1][15]=(n.length-1)*8&4294967295;for(var y=0;y<o;++y){for(var A=new Uint32Array(80),b=0;b<16;++b)A[b]=c[y][b];for(var R=16;R<80;++R)A[R]=iy(A[R-3]^A[R-8]^A[R-14]^A[R-16],1);for(var k=e[0],S=e[1],B=e[2],H=e[3],U=e[4],G=0;G<80;++G){var W=Math.floor(G/20),J=iy(k,5)+NP(W,S,B,H)+U+t[W]+A[G]>>>0;U=H,H=B,B=iy(S,30)>>>0,S=k,k=J}e[0]=e[0]+k>>>0,e[1]=e[1]+S>>>0,e[2]=e[2]+B>>>0,e[3]=e[3]+H>>>0,e[4]=e[4]+U>>>0}return[e[0]>>24&255,e[0]>>16&255,e[0]>>8&255,e[0]&255,e[1]>>24&255,e[1]>>16&255,e[1]>>8&255,e[1]&255,e[2]>>24&255,e[2]>>16&255,e[2]>>8&255,e[2]&255,e[3]>>24&255,e[3]>>16&255,e[3]>>8&255,e[3]&255,e[4]>>24&255,e[4]>>16&255,e[4]>>8&255,e[4]&255]}var BP=xA("v5",80,CP);const PP="00000000-0000-0000-0000-000000000000";function MP(n){if(!Wd(n))throw TypeError("Invalid UUID");return parseInt(n.substr(14,1),16)}const SA=kc(Object.freeze(Object.defineProperty({__proto__:null,NIL:PP,parse:vA,stringify:Zd,v1:_P,v3:TP,v4:OP,v5:BP,validate:Wd,version:MP},Symbol.toStringTag,{value:"Module"}))),LP=SA.v4;var UP=function(n,t,e,r){if(typeof n!="string")throw new TypeError(n+" must be a string");r=r||{};const i=typeof r.version=="number"?r.version:2;if(i!==1&&i!==2)throw new TypeError(i+" must be 1 or 2");const s={method:n};if(i===2&&(s.jsonrpc="2.0"),t){if(typeof t!="object"&&!Array.isArray(t))throw new TypeError(t+" must be an object, array or omitted");s.params=t}if(typeof e>"u"){const o=typeof r.generator=="function"?r.generator:function(){return LP()};s.id=o(s,r)}else i===2&&e===null?r.notificationIdNull&&(s.id=null):s.id=e;return s};const DP=SA.v4,FP=UP,pf=function(n,t){if(!(this instanceof pf))return new pf(n,t);t||(t={}),this.options={reviver:typeof t.reviver<"u"?t.reviver:null,replacer:typeof t.replacer<"u"?t.replacer:null,generator:typeof t.generator<"u"?t.generator:function(){return DP()},version:typeof t.version<"u"?t.version:2,notificationIdNull:typeof t.notificationIdNull=="boolean"?t.notificationIdNull:!1},this.callServer=n};var $P=pf;pf.prototype.request=function(n,t,e,r){const i=this;let s=null;const o=Array.isArray(n)&&typeof t=="function";if(this.options.version===1&&o)throw new TypeError("JSON-RPC 1.0 does not support batching");if(o||!o&&n&&typeof n=="object"&&typeof t=="function")r=t,s=n;else{typeof e=="function"&&(r=e,e=void 0);const f=typeof r=="function";try{s=FP(n,t,e,{generator:this.options.generator,version:this.options.version,notificationIdNull:this.options.notificationIdNull})}catch(h){if(f)return r(h);throw h}if(!f)return s}let u;try{u=JSON.stringify(s,this.options.replacer)}catch(f){return r(f)}return this.callServer(u,function(f,h){i._parseResponse(f,h,r)}),s},pf.prototype._parseResponse=function(n,t,e){if(n){e(n);return}if(!t)return e();let r;try{r=JSON.parse(t,this.options.reviver)}catch(i){return e(i)}if(e.length===3)if(Array.isArray(r)){const i=function(o){return typeof o.error<"u"},s=function(o){return!i(o)};return e(null,r.filter(i),r.filter(s))}else return e(null,r.error,r.result);e(null,r)};const HP=Br($P);var IA={exports:{}};(function(n){var t=Object.prototype.hasOwnProperty,e="~";function r(){}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(e=!1));function i(u,f,h){this.fn=u,this.context=f,this.once=h||!1}function s(u,f,h,y,A){if(typeof h!="function")throw new TypeError("The listener must be a function");var b=new i(h,y||u,A),R=e?e+f:f;return u._events[R]?u._events[R].fn?u._events[R]=[u._events[R],b]:u._events[R].push(b):(u._events[R]=b,u._eventsCount++),u}function o(u,f){--u._eventsCount===0?u._events=new r:delete u._events[f]}function c(){this._events=new r,this._eventsCount=0}c.prototype.eventNames=function(){var f=[],h,y;if(this._eventsCount===0)return f;for(y in h=this._events)t.call(h,y)&&f.push(e?y.slice(1):y);return Object.getOwnPropertySymbols?f.concat(Object.getOwnPropertySymbols(h)):f},c.prototype.listeners=function(f){var h=e?e+f:f,y=this._events[h];if(!y)return[];if(y.fn)return[y.fn];for(var A=0,b=y.length,R=new Array(b);A<b;A++)R[A]=y[A].fn;return R},c.prototype.listenerCount=function(f){var h=e?e+f:f,y=this._events[h];return y?y.fn?1:y.length:0},c.prototype.emit=function(f,h,y,A,b,R){var k=e?e+f:f;if(!this._events[k])return!1;var S=this._events[k],B=arguments.length,H,U;if(S.fn){switch(S.once&&this.removeListener(f,S.fn,void 0,!0),B){case 1:return S.fn.call(S.context),!0;case 2:return S.fn.call(S.context,h),!0;case 3:return S.fn.call(S.context,h,y),!0;case 4:return S.fn.call(S.context,h,y,A),!0;case 5:return S.fn.call(S.context,h,y,A,b),!0;case 6:return S.fn.call(S.context,h,y,A,b,R),!0}for(U=1,H=new Array(B-1);U<B;U++)H[U-1]=arguments[U];S.fn.apply(S.context,H)}else{var G=S.length,W;for(U=0;U<G;U++)switch(S[U].once&&this.removeListener(f,S[U].fn,void 0,!0),B){case 1:S[U].fn.call(S[U].context);break;case 2:S[U].fn.call(S[U].context,h);break;case 3:S[U].fn.call(S[U].context,h,y);break;case 4:S[U].fn.call(S[U].context,h,y,A);break;default:if(!H)for(W=1,H=new Array(B-1);W<B;W++)H[W-1]=arguments[W];S[U].fn.apply(S[U].context,H)}}return!0},c.prototype.on=function(f,h,y){return s(this,f,h,y,!1)},c.prototype.once=function(f,h,y){return s(this,f,h,y,!0)},c.prototype.removeListener=function(f,h,y,A){var b=e?e+f:f;if(!this._events[b])return this;if(!h)return o(this,b),this;var R=this._events[b];if(R.fn)R.fn===h&&(!A||R.once)&&(!y||R.context===y)&&o(this,b);else{for(var k=0,S=[],B=R.length;k<B;k++)(R[k].fn!==h||A&&!R[k].once||y&&R[k].context!==y)&&S.push(R[k]);S.length?this._events[b]=S.length===1?S[0]:S:o(this,b)}return this},c.prototype.removeAllListeners=function(f){var h;return f?(h=e?e+f:f,this._events[h]&&o(this,h)):(this._events=new r,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=e,c.EventEmitter=c,n.exports=c})(IA);var zP=IA.exports;const kA=Br(zP);var GP=class extends kA{constructor(t,e,r){super();Z(this,"socket");this.socket=new window.WebSocket(t,r),this.socket.onopen=()=>this.emit("open"),this.socket.onmessage=i=>this.emit("message",i.data),this.socket.onerror=i=>this.emit("error",i),this.socket.onclose=i=>{this.emit("close",i.code,i.reason)}}send(t,e,r){const i=r||e;try{this.socket.send(t),i()}catch(s){i(s)}}close(t,e){this.socket.close(t,e)}addEventListener(t,e,r){this.socket.addEventListener(t,e,r)}};function VP(n,t){return new GP(n,t)}var KP=class{encode(n){return JSON.stringify(n)}decode(n){return JSON.parse(n)}},jP=class extends kA{constructor(t,e="ws://localhost:8080",{autoconnect:r=!0,reconnect:i=!0,reconnect_interval:s=1e3,max_reconnects:o=5,...c}={},u,f){super();Z(this,"address");Z(this,"rpc_id");Z(this,"queue");Z(this,"options");Z(this,"autoconnect");Z(this,"ready");Z(this,"reconnect");Z(this,"reconnect_timer_id");Z(this,"reconnect_interval");Z(this,"max_reconnects");Z(this,"rest_options");Z(this,"current_reconnects");Z(this,"generate_request_id");Z(this,"socket");Z(this,"webSocketFactory");Z(this,"dataPack");this.webSocketFactory=t,this.queue={},this.rpc_id=0,this.address=e,this.autoconnect=r,this.ready=!1,this.reconnect=i,this.reconnect_timer_id=void 0,this.reconnect_interval=s,this.max_reconnects=o,this.rest_options=c,this.current_reconnects=0,this.generate_request_id=u||(()=>typeof this.rpc_id=="number"?++this.rpc_id:Number(this.rpc_id)+1),f?this.dataPack=f:this.dataPack=new KP,this.autoconnect&&this._connect(this.address,{autoconnect:this.autoconnect,reconnect:this.reconnect,reconnect_interval:this.reconnect_interval,max_reconnects:this.max_reconnects,...this.rest_options})}connect(){this.socket||this._connect(this.address,{autoconnect:this.autoconnect,reconnect:this.reconnect,reconnect_interval:this.reconnect_interval,max_reconnects:this.max_reconnects,...this.rest_options})}call(t,e,r,i){return!i&&typeof r=="object"&&(i=r,r=null),new Promise((s,o)=>{if(!this.ready)return o(new Error("socket not ready"));const c=this.generate_request_id(t,e),u={jsonrpc:"2.0",method:t,params:e||void 0,id:c};this.socket.send(this.dataPack.encode(u),i,f=>{if(f)return o(f);this.queue[c]={promise:[s,o]},r&&(this.queue[c].timeout=setTimeout(()=>{delete this.queue[c],o(new Error("reply timeout"))},r))})})}async login(t){const e=await this.call("rpc.login",t);if(!e)throw new Error("authentication failed");return e}async listMethods(){return await this.call("__listMethods")}notify(t,e){return new Promise((r,i)=>{if(!this.ready)return i(new Error("socket not ready"));const s={jsonrpc:"2.0",method:t,params:e};this.socket.send(this.dataPack.encode(s),o=>{if(o)return i(o);r()})})}async subscribe(t){typeof t=="string"&&(t=[t]);const e=await this.call("rpc.on",t);if(typeof t=="string"&&e[t]!=="ok")throw new Error("Failed subscribing to an event '"+t+"' with: "+e[t]);return e}async unsubscribe(t){typeof t=="string"&&(t=[t]);const e=await this.call("rpc.off",t);if(typeof t=="string"&&e[t]!=="ok")throw new Error("Failed unsubscribing from an event with: "+e);return e}close(t,e){this.socket.close(t||1e3,e)}setAutoReconnect(t){this.reconnect=t}setReconnectInterval(t){this.reconnect_interval=t}setMaxReconnects(t){this.max_reconnects=t}_connect(t,e){clearTimeout(this.reconnect_timer_id),this.socket=this.webSocketFactory(t,e),this.socket.addEventListener("open",()=>{this.ready=!0,this.emit("open"),this.current_reconnects=0}),this.socket.addEventListener("message",({data:r})=>{r instanceof ArrayBuffer&&(r=kt.from(r).toString());try{r=this.dataPack.decode(r)}catch{return}if(r.notification&&this.listeners(r.notification).length){if(!Object.keys(r.params).length)return this.emit(r.notification);const i=[r.notification];if(r.params.constructor===Object)i.push(r.params);else for(let s=0;s<r.params.length;s++)i.push(r.params[s]);return Promise.resolve().then(()=>{this.emit.apply(this,i)})}if(!this.queue[r.id])return r.method?Promise.resolve().then(()=>{this.emit(r.method,r==null?void 0:r.params)}):void 0;"error"in r=="result"in r&&this.queue[r.id].promise[1](new Error('Server response malformed. Response must include either "result" or "error", but not both.')),this.queue[r.id].timeout&&clearTimeout(this.queue[r.id].timeout),r.error?this.queue[r.id].promise[1](r.error):this.queue[r.id].promise[0](r.result),delete this.queue[r.id]}),this.socket.addEventListener("error",r=>this.emit("error",r)),this.socket.addEventListener("close",({code:r,reason:i})=>{this.ready&&setTimeout(()=>this.emit("close",r,i),0),this.ready=!1,this.socket=void 0,r!==1e3&&(this.current_reconnects++,this.reconnect&&(this.max_reconnects>this.current_reconnects||this.max_reconnects===0)&&(this.reconnect_timer_id=setTimeout(()=>this._connect(t,e),this.reconnect_interval)))})}};const TA=[],OA=[],NA=[],WP=BigInt(0),gf=BigInt(1),ZP=BigInt(2),qP=BigInt(7),QP=BigInt(256),YP=BigInt(113);for(let n=0,t=gf,e=1,r=0;n<24;n++){[e,r]=[r,(2*e+3*r)%5],TA.push(2*(5*r+e)),OA.push((n+1)*(n+2)/2%64);let i=WP;for(let s=0;s<7;s++)t=(t<<gf^(t>>qP)*YP)%QP,t&ZP&&(i^=gf<<(gf<<BigInt(s))-gf);NA.push(i)}const[JP,XP]=v_(NA,!0),CA=(n,t,e)=>e>32?S_(n,t,e):x_(n,t,e),BA=(n,t,e)=>e>32?I_(n,t,e):R_(n,t,e);function tM(n,t=24){const e=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let o=0;o<10;o++)e[o]=n[o]^n[o+10]^n[o+20]^n[o+30]^n[o+40];for(let o=0;o<10;o+=2){const c=(o+8)%10,u=(o+2)%10,f=e[u],h=e[u+1],y=CA(f,h,1)^e[c],A=BA(f,h,1)^e[c+1];for(let b=0;b<50;b+=10)n[o+b]^=y,n[o+b+1]^=A}let i=n[2],s=n[3];for(let o=0;o<24;o++){const c=OA[o],u=CA(i,s,c),f=BA(i,s,c),h=TA[o];i=n[h],s=n[h+1],n[h]=u,n[h+1]=f}for(let o=0;o<50;o+=10){for(let c=0;c<10;c++)e[c]=n[o+c];for(let c=0;c<10;c++)n[o+c]^=~e[(c+2)%10]&e[(c+4)%10]}n[0]^=JP[r],n[1]^=XP[r]}e.fill(0)}let eM=class kT extends Eg{constructor(t,e,r,i=!1,s=24){if(super(),this.blockLen=t,this.suffix=e,this.outputLen=r,this.enableXOF=i,this.rounds=s,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,Id(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=M5(this.state)}keccak(){w_||b_(this.state32),tM(this.state32,this.rounds),w_||b_(this.state32),this.posOut=0,this.pos=0}update(t){Gc(this);const{blockLen:e,state:r}=this;t=kd(t);const i=t.length;for(let s=0;s<i;){const o=Math.min(e-this.pos,i-s);for(let c=0;c<o;c++)r[this.pos++]^=t[s++];this.pos===e&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:t,suffix:e,pos:r,blockLen:i}=this;t[r]^=e,e&128&&r===i-1&&this.keccak(),t[i-1]^=128,this.keccak()}writeInto(t){Gc(this,!1),of(t),this.finish();const e=this.state,{blockLen:r}=this;for(let i=0,s=t.length;i<s;){this.posOut>=r&&this.keccak();const o=Math.min(r-this.posOut,s-i);t.set(e.subarray(this.posOut,this.posOut+o),i),this.posOut+=o,i+=o}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return Id(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(m_(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){const{blockLen:e,suffix:r,outputLen:i,rounds:s,enableXOF:o}=this;return t||(t=new kT(e,r,i,o,s)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=s,t.suffix=r,t.outputLen=i,t.enableXOF=o,t.destroyed=this.destroyed,t}};const PA=((n,t,e)=>vg(()=>new eM(t,n,e)))(1,136,256/8);let MA=class extends Eg{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,P5(t);const r=kd(e);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const i=this.blockLen,s=new Uint8Array(i);s.set(r.length>i?t.create().update(r).digest():r);for(let o=0;o<s.length;o++)s[o]^=54;this.iHash.update(s),this.oHash=t.create();for(let o=0;o<s.length;o++)s[o]^=106;this.oHash.update(s),s.fill(0)}update(t){return Gc(this),this.iHash.update(t),this}digestInto(t){Gc(this),of(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){const t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));const{oHash:e,iHash:r,finished:i,destroyed:s,blockLen:o,outputLen:c}=this;return t=t,t.finished=i,t.destroyed=s,t.blockLen=o,t.outputLen=c,t.oHash=e._cloneInto(t.oHash),t.iHash=r._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}};const LA=(n,t,e)=>new MA(n,t).update(e).digest();LA.create=(n,t)=>new MA(n,t);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function UA(n){n.lowS!==void 0&&ms("lowS",n.lowS),n.prehash!==void 0&&ms("prehash",n.prehash)}function nM(n){const t=Mg(n);qc(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:e,Fp:r,a:i}=t;if(e){if(!r.eql(i,r.ZERO))throw new Error("invalid endomorphism, can only be defined for Koblitz curves that have a=0");if(typeof e!="object"||typeof e.beta!="bigint"||typeof e.splitScalar!="function")throw new Error("invalid endomorphism, expected beta: bigint and splitScalar: function")}return Object.freeze({...t})}const{bytesToNumberBE:rM,hexToBytes:iM}=f4;class sM extends Error{constructor(t=""){super(t)}}const _s={Err:sM,_tlv:{encode:(n,t)=>{const{Err:e}=_s;if(n<0||n>256)throw new e("tlv.encode: wrong tag");if(t.length&1)throw new e("tlv.encode: unpadded data");const r=t.length/2,i=Kc(r);if(i.length/2&128)throw new e("tlv.encode: long form length too big");const s=r>127?Kc(i.length/2|128):"";return Kc(n)+s+i+t},decode(n,t){const{Err:e}=_s;let r=0;if(n<0||n>256)throw new e("tlv.encode: wrong tag");if(t.length<2||t[r++]!==n)throw new e("tlv.decode: wrong tlv");const i=t[r++],s=!!(i&128);let o=0;if(!s)o=i;else{const u=i&127;if(!u)throw new e("tlv.decode(long): indefinite length not supported");if(u>4)throw new e("tlv.decode(long): byte length is too big");const f=t.subarray(r,r+u);if(f.length!==u)throw new e("tlv.decode: length bytes not complete");if(f[0]===0)throw new e("tlv.decode(long): zero leftmost byte");for(const h of f)o=o<<8|h;if(r+=u,o<128)throw new e("tlv.decode(long): not minimal encoding")}const c=t.subarray(r,r+o);if(c.length!==o)throw new e("tlv.decode: wrong value length");return{v:c,l:t.subarray(r+o)}}},_int:{encode(n){const{Err:t}=_s;if(n<As)throw new t("integer: negative integers are not allowed");let e=Kc(n);if(Number.parseInt(e[0],16)&8&&(e="00"+e),e.length&1)throw new t("unexpected DER parsing assertion: unpadded hex");return e},decode(n){const{Err:t}=_s;if(n[0]&128)throw new t("invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new t("invalid signature integer: unnecessary leading zero");return rM(n)}},toSig(n){const{Err:t,_int:e,_tlv:r}=_s,i=typeof n=="string"?iM(n):n;af(i);const{v:s,l:o}=r.decode(48,i);if(o.length)throw new t("invalid signature: left bytes after parsing");const{v:c,l:u}=r.decode(2,s),{v:f,l:h}=r.decode(2,u);if(h.length)throw new t("invalid signature: left bytes after parsing");return{r:e.decode(c),s:e.decode(f)}},hexFromSig(n){const{_tlv:t,_int:e}=_s,r=t.encode(2,e.encode(n.r)),i=t.encode(2,e.encode(n.s)),s=r+i;return t.encode(48,s)}},As=BigInt(0),Pn=BigInt(1);BigInt(2);const DA=BigInt(3);BigInt(4);function oM(n){const t=nM(n),{Fp:e}=t,r=Bd(t.n,t.nBitLength),i=t.toBytes||((k,S,B)=>{const H=S.toAffine();return da(Uint8Array.from([4]),e.toBytes(H.x),e.toBytes(H.y))}),s=t.fromBytes||(k=>{const S=k.subarray(1),B=e.fromBytes(S.subarray(0,e.BYTES)),H=e.fromBytes(S.subarray(e.BYTES,2*e.BYTES));return{x:B,y:H}});function o(k){const{a:S,b:B}=t,H=e.sqr(k),U=e.mul(H,k);return e.add(e.add(U,e.mul(k,S)),B)}if(!e.eql(e.sqr(t.Gy),o(t.Gx)))throw new Error("bad generator point: equation left != right");function c(k){return Cd(k,Pn,t.n)}function u(k){const{allowedPrivateKeyLengths:S,nByteLength:B,wrapPrivateKey:H,n:U}=t;if(S&&typeof k!="bigint"){if(la(k)&&(k=fa(k)),typeof k!="string"||!S.includes(k.length))throw new Error("invalid private key");k=k.padStart(B*2,"0")}let G;try{G=typeof k=="bigint"?k:ha(kn("private key",k,B))}catch{throw new Error("invalid private key, expected hex or "+B+" bytes, got "+typeof k)}return H&&(G=Ze(G,U)),Qr("private key",G,Pn,U),G}function f(k){if(!(k instanceof A))throw new Error("ProjectivePoint expected")}const h=uf((k,S)=>{const{px:B,py:H,pz:U}=k;if(e.eql(U,e.ONE))return{x:B,y:H};const G=k.is0();S==null&&(S=G?e.ONE:e.inv(U));const W=e.mul(B,S),J=e.mul(H,S),j=e.mul(U,S);if(G)return{x:e.ZERO,y:e.ZERO};if(!e.eql(j,e.ONE))throw new Error("invZ was invalid");return{x:W,y:J}}),y=uf(k=>{if(k.is0()){if(t.allowInfinityPoint&&!e.is0(k.py))return;throw new Error("bad point: ZERO")}const{x:S,y:B}=k.toAffine();if(!e.isValid(S)||!e.isValid(B))throw new Error("bad point: x or y not FE");const H=e.sqr(B),U=o(S);if(!e.eql(H,U))throw new Error("bad point: equation left != right");if(!k.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class A{constructor(S,B,H){if(this.px=S,this.py=B,this.pz=H,S==null||!e.isValid(S))throw new Error("x required");if(B==null||!e.isValid(B))throw new Error("y required");if(H==null||!e.isValid(H))throw new Error("z required");Object.freeze(this)}static fromAffine(S){const{x:B,y:H}=S||{};if(!S||!e.isValid(B)||!e.isValid(H))throw new Error("invalid affine point");if(S instanceof A)throw new Error("projective point not allowed");const U=G=>e.eql(G,e.ZERO);return U(B)&&U(H)?A.ZERO:new A(B,H,e.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(S){const B=e.invertBatch(S.map(H=>H.pz));return S.map((H,U)=>H.toAffine(B[U])).map(A.fromAffine)}static fromHex(S){const B=A.fromAffine(s(kn("pointHex",S)));return B.assertValidity(),B}static fromPrivateKey(S){return A.BASE.multiply(u(S))}static msm(S,B){return H_(A,r,S,B)}_setWindowSize(S){R.setWindowSize(this,S)}assertValidity(){y(this)}hasEvenY(){const{y:S}=this.toAffine();if(e.isOdd)return!e.isOdd(S);throw new Error("Field doesn't support isOdd")}equals(S){f(S);const{px:B,py:H,pz:U}=this,{px:G,py:W,pz:J}=S,j=e.eql(e.mul(B,J),e.mul(G,U)),Y=e.eql(e.mul(H,J),e.mul(W,U));return j&&Y}negate(){return new A(this.px,e.neg(this.py),this.pz)}double(){const{a:S,b:B}=t,H=e.mul(B,DA),{px:U,py:G,pz:W}=this;let J=e.ZERO,j=e.ZERO,Y=e.ZERO,it=e.mul(U,U),ut=e.mul(G,G),rt=e.mul(W,W),ot=e.mul(U,G);return ot=e.add(ot,ot),Y=e.mul(U,W),Y=e.add(Y,Y),J=e.mul(S,Y),j=e.mul(H,rt),j=e.add(J,j),J=e.sub(ut,j),j=e.add(ut,j),j=e.mul(J,j),J=e.mul(ot,J),Y=e.mul(H,Y),rt=e.mul(S,rt),ot=e.sub(it,rt),ot=e.mul(S,ot),ot=e.add(ot,Y),Y=e.add(it,it),it=e.add(Y,it),it=e.add(it,rt),it=e.mul(it,ot),j=e.add(j,it),rt=e.mul(G,W),rt=e.add(rt,rt),it=e.mul(rt,ot),J=e.sub(J,it),Y=e.mul(rt,ut),Y=e.add(Y,Y),Y=e.add(Y,Y),new A(J,j,Y)}add(S){f(S);const{px:B,py:H,pz:U}=this,{px:G,py:W,pz:J}=S;let j=e.ZERO,Y=e.ZERO,it=e.ZERO;const ut=t.a,rt=e.mul(t.b,DA);let ot=e.mul(B,G),C=e.mul(H,W),p=e.mul(U,J),m=e.add(B,H),v=e.add(G,W);m=e.mul(m,v),v=e.add(ot,C),m=e.sub(m,v),v=e.add(B,U);let I=e.add(G,J);return v=e.mul(v,I),I=e.add(ot,p),v=e.sub(v,I),I=e.add(H,U),j=e.add(W,J),I=e.mul(I,j),j=e.add(C,p),I=e.sub(I,j),it=e.mul(ut,v),j=e.mul(rt,p),it=e.add(j,it),j=e.sub(C,it),it=e.add(C,it),Y=e.mul(j,it),C=e.add(ot,ot),C=e.add(C,ot),p=e.mul(ut,p),v=e.mul(rt,v),C=e.add(C,p),p=e.sub(ot,p),p=e.mul(ut,p),v=e.add(v,p),ot=e.mul(C,v),Y=e.add(Y,ot),ot=e.mul(I,v),j=e.mul(m,j),j=e.sub(j,ot),ot=e.mul(m,C),it=e.mul(I,it),it=e.add(it,ot),new A(j,Y,it)}subtract(S){return this.add(S.negate())}is0(){return this.equals(A.ZERO)}wNAF(S){return R.wNAFCached(this,S,A.normalizeZ)}multiplyUnsafe(S){const{endo:B,n:H}=t;Qr("scalar",S,As,H);const U=A.ZERO;if(S===As)return U;if(this.is0()||S===Pn)return this;if(!B||R.hasPrecomputes(this))return R.wNAFCachedUnsafe(this,S,A.normalizeZ);let{k1neg:G,k1:W,k2neg:J,k2:j}=B.splitScalar(S),Y=U,it=U,ut=this;for(;W>As||j>As;)W&Pn&&(Y=Y.add(ut)),j&Pn&&(it=it.add(ut)),ut=ut.double(),W>>=Pn,j>>=Pn;return G&&(Y=Y.negate()),J&&(it=it.negate()),it=new A(e.mul(it.px,B.beta),it.py,it.pz),Y.add(it)}multiply(S){const{endo:B,n:H}=t;Qr("scalar",S,Pn,H);let U,G;if(B){const{k1neg:W,k1:J,k2neg:j,k2:Y}=B.splitScalar(S);let{p:it,f:ut}=this.wNAF(J),{p:rt,f:ot}=this.wNAF(Y);it=R.constTimeNegate(W,it),rt=R.constTimeNegate(j,rt),rt=new A(e.mul(rt.px,B.beta),rt.py,rt.pz),U=it.add(rt),G=ut.add(ot)}else{const{p:W,f:J}=this.wNAF(S);U=W,G=J}return A.normalizeZ([U,G])[0]}multiplyAndAddUnsafe(S,B,H){const U=A.BASE,G=(J,j)=>j===As||j===Pn||!J.equals(U)?J.multiplyUnsafe(j):J.multiply(j),W=G(this,B).add(G(S,H));return W.is0()?void 0:W}toAffine(S){return h(this,S)}isTorsionFree(){const{h:S,isTorsionFree:B}=t;if(S===Pn)return!0;if(B)return B(A,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:S,clearCofactor:B}=t;return S===Pn?this:B?B(A,this):this.multiplyUnsafe(t.h)}toRawBytes(S=!0){return ms("isCompressed",S),this.assertValidity(),i(A,this,S)}toHex(S=!0){return ms("isCompressed",S),fa(this.toRawBytes(S))}}A.BASE=new A(t.Gx,t.Gy,e.ONE),A.ZERO=new A(e.ZERO,e.ONE,e.ZERO);const b=t.nBitLength,R=$_(A,t.endo?Math.ceil(b/2):b);return{CURVE:t,ProjectivePoint:A,normPrivateKeyToScalar:u,weierstrassEquation:o,isWithinCurveOrder:c}}function aM(n){const t=Mg(n);return qc(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function cM(n){const t=aM(n),{Fp:e,n:r}=t,i=e.BYTES+1,s=2*e.BYTES+1;function o(p){return Ze(p,r)}function c(p){return Og(p,r)}const{ProjectivePoint:u,normPrivateKeyToScalar:f,weierstrassEquation:h,isWithinCurveOrder:y}=oM({...t,toBytes(p,m,v){const I=m.toAffine(),N=e.toBytes(I.x),M=da;return ms("isCompressed",v),v?M(Uint8Array.from([m.hasEvenY()?2:3]),N):M(Uint8Array.from([4]),N,e.toBytes(I.y))},fromBytes(p){const m=p.length,v=p[0],I=p.subarray(1);if(m===i&&(v===2||v===3)){const N=ha(I);if(!Cd(N,Pn,e.ORDER))throw new Error("Point is not on curve");const M=h(N);let z;try{z=e.sqrt(M)}catch(F){const ct=F instanceof Error?": "+F.message:"";throw new Error("Point is not on curve"+ct)}const P=(z&Pn)===Pn;return(v&1)===1!==P&&(z=e.neg(z)),{x:N,y:z}}else if(m===s&&v===4){const N=e.fromBytes(I.subarray(0,e.BYTES)),M=e.fromBytes(I.subarray(e.BYTES,2*e.BYTES));return{x:N,y:M}}else{const N=i,M=s;throw new Error("invalid Point, expected length of "+N+", or uncompressed "+M+", got "+m)}}}),A=p=>fa(Zc(p,t.nByteLength));function b(p){const m=r>>Pn;return p>m}function R(p){return b(p)?o(-p):p}const k=(p,m,v)=>ha(p.slice(m,v));class S{constructor(m,v,I){this.r=m,this.s=v,this.recovery=I,this.assertValidity()}static fromCompact(m){const v=t.nByteLength;return m=kn("compactSignature",m,v*2),new S(k(m,0,v),k(m,v,2*v))}static fromDER(m){const{r:v,s:I}=_s.toSig(kn("DER",m));return new S(v,I)}assertValidity(){Qr("r",this.r,Pn,r),Qr("s",this.s,Pn,r)}addRecoveryBit(m){return new S(this.r,this.s,m)}recoverPublicKey(m){const{r:v,s:I,recovery:N}=this,M=J(kn("msgHash",m));if(N==null||![0,1,2,3].includes(N))throw new Error("recovery id invalid");const z=N===2||N===3?v+t.n:v;if(z>=e.ORDER)throw new Error("recovery id 2 or 3 invalid");const P=N&1?"03":"02",_=u.fromHex(P+A(z)),F=c(z),ct=o(-M*F),dt=o(I*F),mt=u.BASE.multiplyAndAddUnsafe(_,ct,dt);if(!mt)throw new Error("point at infinify");return mt.assertValidity(),mt}hasHighS(){return b(this.s)}normalizeS(){return this.hasHighS()?new S(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return jc(this.toDERHex())}toDERHex(){return _s.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return jc(this.toCompactHex())}toCompactHex(){return A(this.r)+A(this.s)}}const B={isValidPrivateKey(p){try{return f(p),!0}catch{return!1}},normPrivateKeyToScalar:f,randomPrivateKey:()=>{const p=L_(t.n);return A4(t.randomBytes(p),t.n)},precompute(p=8,m=u.BASE){return m._setWindowSize(p),m.multiply(BigInt(3)),m}};function H(p,m=!0){return u.fromPrivateKey(p).toRawBytes(m)}function U(p){const m=la(p),v=typeof p=="string",I=(m||v)&&p.length;return m?I===i||I===s:v?I===2*i||I===2*s:p instanceof u}function G(p,m,v=!0){if(U(p))throw new Error("first arg must be private key");if(!U(m))throw new Error("second arg must be public key");return u.fromHex(m).multiply(f(p)).toRawBytes(v)}const W=t.bits2int||function(p){if(p.length>8192)throw new Error("input is too large");const m=ha(p),v=p.length*8-t.nBitLength;return v>0?m>>BigInt(v):m},J=t.bits2int_modN||function(p){return o(W(p))},j=Ig(t.nBitLength);function Y(p){return Qr("num < 2^"+t.nBitLength,p,As,j),Zc(p,t.nByteLength)}function it(p,m,v=ut){if(["recovered","canonical"].some(Ut=>Ut in v))throw new Error("sign() legacy options not supported");const{hash:I,randomBytes:N}=t;let{lowS:M,prehash:z,extraEntropy:P}=v;M==null&&(M=!0),p=kn("msgHash",p),UA(v),z&&(p=kn("prehashed msgHash",I(p)));const _=J(p),F=f(m),ct=[Y(F),Y(_)];if(P!=null&&P!==!1){const Ut=P===!0?N(e.BYTES):P;ct.push(kn("extraEntropy",Ut))}const dt=da(...ct),mt=_;function Gt(Ut){const Lt=W(Ut);if(!y(Lt))return;const xe=c(Lt),Kt=u.BASE.multiply(Lt).toAffine(),Ft=o(Kt.x);if(Ft===As)return;const ke=o(xe*o(mt+Ft*F));if(ke===As)return;let re=(Kt.x===Ft?0:2)|Number(Kt.y&Pn),oe=ke;return M&&b(ke)&&(oe=R(ke),re^=1),new S(Ft,oe,re)}return{seed:dt,k2sig:Gt}}const ut={lowS:t.lowS,prehash:!1},rt={lowS:t.lowS,prehash:!1};function ot(p,m,v=ut){const{seed:I,k2sig:N}=it(p,m,v),M=t;return N_(M.hash.outputLen,M.nByteLength,M.hmac)(I,N)}u.BASE._setWindowSize(8);function C(p,m,v,I=rt){var re;const N=p;m=kn("msgHash",m),v=kn("publicKey",v);const{lowS:M,prehash:z,format:P}=I;if(UA(I),"strict"in I)throw new Error("options.strict was renamed to lowS");if(P!==void 0&&P!=="compact"&&P!=="der")throw new Error("format must be compact or der");const _=typeof N=="string"||la(N),F=!_&&!P&&typeof N=="object"&&N!==null&&typeof N.r=="bigint"&&typeof N.s=="bigint";if(!_&&!F)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let ct,dt;try{if(F&&(ct=new S(N.r,N.s)),_){try{P!=="compact"&&(ct=S.fromDER(N))}catch(oe){if(!(oe instanceof _s.Err))throw oe}!ct&&P!=="der"&&(ct=S.fromCompact(N))}dt=u.fromHex(v)}catch{return!1}if(!ct||M&&ct.hasHighS())return!1;z&&(m=t.hash(m));const{r:mt,s:Gt}=ct,Ut=J(m),Lt=c(Gt),xe=o(Ut*Lt),Kt=o(mt*Lt),Ft=(re=u.BASE.multiplyAndAddUnsafe(dt,xe,Kt))==null?void 0:re.toAffine();return Ft?o(Ft.x)===mt:!1}return{CURVE:t,getPublicKey:H,getSharedSecret:G,sign:ot,verify:C,ProjectivePoint:u,Signature:S,utils:B}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function uM(n){return{hash:n,hmac:(t,...e)=>LA(n,t,D5(...e)),randomBytes:__}}function lM(n,t){const e=r=>cM({...n,...uM(r)});return{...e(t),create:e}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const FA=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),$A=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),fM=BigInt(1),sy=BigInt(2),HA=(n,t)=>(n+t/sy)/t;function hM(n){const t=FA,e=BigInt(3),r=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),c=BigInt(44),u=BigInt(88),f=n*n*n%t,h=f*f*n%t,y=cn(h,e,t)*h%t,A=cn(y,e,t)*h%t,b=cn(A,sy,t)*f%t,R=cn(b,i,t)*b%t,k=cn(R,s,t)*R%t,S=cn(k,c,t)*k%t,B=cn(S,u,t)*S%t,H=cn(B,c,t)*k%t,U=cn(H,e,t)*h%t,G=cn(U,o,t)*R%t,W=cn(G,r,t)*f%t,J=cn(W,sy,t);if(!oy.eql(oy.sqr(J),n))throw new Error("Cannot find square root");return J}const oy=Bd(FA,void 0,void 0,{sqrt:hM}),Qd=lM({a:BigInt(0),b:BigInt(7),Fp:oy,n:$A,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:n=>{const t=$A,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-fM*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=e,o=BigInt("0x100000000000000000000000000000000"),c=HA(s*n,t),u=HA(-r*n,t);let f=Ze(n-c*e-u*i,t),h=Ze(-c*r-u*s,t);const y=f>o,A=h>o;if(y&&(f=t-f),A&&(h=t-h),f>o||h>o)throw new Error("splitScalar: Endomorphism failed, k="+n);return{k1neg:y,k1:f,k2neg:A,k2:h}}}},Dg);BigInt(0),Qd.ProjectivePoint;const dM=Qc.utils.randomPrivateKey,zA=()=>{const n=Qc.utils.randomPrivateKey(),t=Yd(n),e=new Uint8Array(64);return e.set(n),e.set(t,32),{publicKey:t,secretKey:e}},Yd=Qc.getPublicKey;function GA(n){try{return Qc.ExtendedPoint.fromHex(n),!0}catch{return!1}}const ay=(n,t)=>Qc.sign(n,t.slice(0,32)),pM=Qc.verify,te=n=>kt.isBuffer(n)?n:n instanceof Uint8Array?kt.from(n.buffer,n.byteOffset,n.byteLength):kt.from(n);let cy=class{constructor(t){Object.assign(this,t)}encode(){return kt.from(Y_(yf,this))}static decode(t){return J_(yf,this,t)}static decodeUnchecked(t){return j_(yf,this,t)}};class gM extends cy{constructor(t){if(super(t),this.enum="",Object.keys(t).length!==1)throw new Error("Enum can only take single value");Object.keys(t).map(e=>{this.enum=e})}}const yf=new Map;var VA;const KA=32,$i=32;function yM(n){return n._bn!==void 0}let jA=1;class pt extends cy{constructor(t){if(super({}),this._bn=void 0,yM(t))this._bn=t._bn;else{if(typeof t=="string"){const e=Tn.decode(t);if(e.length!=$i)throw new Error("Invalid public key input");this._bn=new ys(e)}else this._bn=new ys(t);if(this._bn.byteLength()>$i)throw new Error("Invalid public key input")}}static unique(){const t=new pt(jA);return jA+=1,new pt(t.toBuffer())}equals(t){return this._bn.eq(t._bn)}toBase58(){return Tn.encode(this.toBytes())}toJSON(){return this.toBase58()}toBytes(){const t=this.toBuffer();return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}toBuffer(){const t=this._bn.toArrayLike(kt);if(t.length===$i)return t;const e=kt.alloc(32);return t.copy(e,32-t.length),e}get[Symbol.toStringTag](){return`PublicKey(${this.toString()})`}toString(){return this.toBase58()}static async createWithSeed(t,e,r){const i=kt.concat([t.toBuffer(),kt.from(e),r.toBuffer()]),s=Dg(i);return new pt(s)}static createProgramAddressSync(t,e){let r=kt.alloc(0);t.forEach(function(s){if(s.length>KA)throw new TypeError("Max seed length exceeded");r=kt.concat([r,te(s)])}),r=kt.concat([r,e.toBuffer(),kt.from("ProgramDerivedAddress")]);const i=Dg(r);if(GA(i))throw new Error("Invalid seeds, address must fall off the curve");return new pt(i)}static async createProgramAddress(t,e){return this.createProgramAddressSync(t,e)}static findProgramAddressSync(t,e){let r=255,i;for(;r!=0;){try{const s=t.concat(kt.from([r]));i=this.createProgramAddressSync(s,e)}catch(s){if(s instanceof TypeError)throw s;r--;continue}return[i,r]}throw new Error("Unable to find a viable program address nonce")}static async findProgramAddress(t,e){return this.findProgramAddressSync(t,e)}static isOnCurve(t){const e=new pt(t);return GA(e.toBytes())}}VA=pt,pt.default=new VA("11111111111111111111111111111111"),yf.set(pt,{kind:"struct",fields:[["_bn","u256"]]});class mM{constructor(t){if(this._publicKey=void 0,this._secretKey=void 0,t){const e=te(t);if(t.length!==64)throw new Error("bad secret key size");this._publicKey=e.slice(32,64),this._secretKey=e.slice(0,32)}else this._secretKey=te(dM()),this._publicKey=te(Yd(this._secretKey))}get publicKey(){return new pt(this._publicKey)}get secretKey(){return kt.concat([this._secretKey,this._publicKey],64)}}const wM=new pt("BPFLoader1111111111111111111111111111111111"),po=1232,Jd=127,mf=64;class uy extends Error{constructor(t){super(`Signature ${t} has expired: block height exceeded.`),this.signature=void 0,this.signature=t}}Object.defineProperty(uy.prototype,"name",{value:"TransactionExpiredBlockheightExceededError"});class ly extends Error{constructor(t,e){super(`Transaction was not confirmed in ${e.toFixed(2)} seconds. It is unknown if it succeeded or failed. Check signature ${t} using the Solana Explorer or CLI tools.`),this.signature=void 0,this.signature=t}}Object.defineProperty(ly.prototype,"name",{value:"TransactionExpiredTimeoutError"});class nu extends Error{constructor(t){super(`Signature ${t} has expired: the nonce is no longer valid.`),this.signature=void 0,this.signature=t}}Object.defineProperty(nu.prototype,"name",{value:"TransactionExpiredNonceInvalidError"});class wf{constructor(t,e){this.staticAccountKeys=void 0,this.accountKeysFromLookups=void 0,this.staticAccountKeys=t,this.accountKeysFromLookups=e}keySegments(){const t=[this.staticAccountKeys];return this.accountKeysFromLookups&&(t.push(this.accountKeysFromLookups.writable),t.push(this.accountKeysFromLookups.readonly)),t}get(t){for(const e of this.keySegments()){if(t<e.length)return e[t];t-=e.length}}get length(){return this.keySegments().flat().length}compileInstructions(t){if(this.length>256)throw new Error("Account index overflow encountered during compilation");const r=new Map;this.keySegments().flat().forEach((s,o)=>{r.set(s.toBase58(),o)});const i=s=>{const o=r.get(s.toBase58());if(o===void 0)throw new Error("Encountered an unknown instruction account key during compilation");return o};return t.map(s=>({programIdIndex:i(s.programId),accountKeyIndexes:s.keys.map(o=>i(o.pubkey)),data:s.data}))}}const ce=(n="publicKey")=>je(32,n),bM=(n="signature")=>je(64,n),ba=(n="string")=>{const t=Nt([Ot("length"),Ot("lengthPadding"),je(fo(Ot(),-8),"chars")],n),e=t.decode.bind(t),r=t.encode.bind(t),i=t;return i.decode=(s,o)=>e(s,o).chars.toString(),i.encode=(s,o,c)=>{const u={chars:kt.from(s,"utf8")};return r(u,o,c)},i.alloc=s=>Ot().span+Ot().span+kt.from(s,"utf8").length,i},_M=(n="authorized")=>Nt([ce("staker"),ce("withdrawer")],n),AM=(n="lockup")=>Nt([Ur("unixTimestamp"),Ur("epoch"),ce("custodian")],n),EM=(n="voteInit")=>Nt([ce("nodePubkey"),ce("authorizedVoter"),ce("authorizedWithdrawer"),me("commission")],n),vM=(n="voteAuthorizeWithSeedArgs")=>Nt([Ot("voteAuthorizationType"),ce("currentAuthorityDerivedKeyOwnerPubkey"),ba("currentAuthorityDerivedKeySeed"),ce("newAuthorized")],n);function WA(n,t){const e=i=>{if(i.span>=0)return i.span;if(typeof i.alloc=="function")return i.alloc(t[i.property]);if("count"in i&&"elementLayout"in i){const s=t[i.property];if(Array.isArray(s))return s.length*e(i.elementLayout)}else if("fields"in i)return WA({layout:i},t[i.property]);return 0};let r=0;return n.layout.fields.forEach(i=>{r+=e(i)}),r}function vr(n){let t=0,e=0;for(;;){let r=n.shift();if(t|=(r&127)<<e*7,e+=1,!(r&128))break}return t}function Dr(n,t){let e=t;for(;;){let r=e&127;if(e>>=7,e==0){n.push(r);break}else r|=128,n.push(r)}}function _e(n,t){if(!n)throw new Error(t||"Assertion failed")}class Xd{constructor(t,e){this.payer=void 0,this.keyMetaMap=void 0,this.payer=t,this.keyMetaMap=e}static compile(t,e){const r=new Map,i=o=>{const c=o.toBase58();let u=r.get(c);return u===void 0&&(u={isSigner:!1,isWritable:!1,isInvoked:!1},r.set(c,u)),u},s=i(e);s.isSigner=!0,s.isWritable=!0;for(const o of t){i(o.programId).isInvoked=!0;for(const c of o.keys){const u=i(c.pubkey);u.isSigner||(u.isSigner=c.isSigner),u.isWritable||(u.isWritable=c.isWritable)}}return new Xd(e,r)}getMessageComponents(){const t=[...this.keyMetaMap.entries()];_e(t.length<=256,"Max static account keys length exceeded");const e=t.filter(([,u])=>u.isSigner&&u.isWritable),r=t.filter(([,u])=>u.isSigner&&!u.isWritable),i=t.filter(([,u])=>!u.isSigner&&u.isWritable),s=t.filter(([,u])=>!u.isSigner&&!u.isWritable),o={numRequiredSignatures:e.length+r.length,numReadonlySignedAccounts:r.length,numReadonlyUnsignedAccounts:s.length};{_e(e.length>0,"Expected at least one writable signer key");const[u]=e[0];_e(u===this.payer.toBase58(),"Expected first writable signer key to be the fee payer")}const c=[...e.map(([u])=>new pt(u)),...r.map(([u])=>new pt(u)),...i.map(([u])=>new pt(u)),...s.map(([u])=>new pt(u))];return[o,c]}extractTableLookup(t){const[e,r]=this.drainKeysFoundInLookupTable(t.state.addresses,o=>!o.isSigner&&!o.isInvoked&&o.isWritable),[i,s]=this.drainKeysFoundInLookupTable(t.state.addresses,o=>!o.isSigner&&!o.isInvoked&&!o.isWritable);if(!(e.length===0&&i.length===0))return[{accountKey:t.key,writableIndexes:e,readonlyIndexes:i},{writable:r,readonly:s}]}drainKeysFoundInLookupTable(t,e){const r=new Array,i=new Array;for(const[s,o]of this.keyMetaMap.entries())if(e(o)){const c=new pt(s),u=t.findIndex(f=>f.equals(c));u>=0&&(_e(u<256,"Max lookup table index exceeded"),r.push(u),i.push(c),this.keyMetaMap.delete(s))}return[r,i]}}const ZA="Reached end of buffer unexpectedly";function Hi(n){if(n.length===0)throw new Error(ZA);return n.shift()}function xr(n,...t){const[e]=t;if(t.length===2?e+(t[1]??0)>n.length:e>=n.length)throw new Error(ZA);return n.splice(...t)}class yi{constructor(t){this.header=void 0,this.accountKeys=void 0,this.recentBlockhash=void 0,this.instructions=void 0,this.indexToProgramIds=new Map,this.header=t.header,this.accountKeys=t.accountKeys.map(e=>new pt(e)),this.recentBlockhash=t.recentBlockhash,this.instructions=t.instructions,this.instructions.forEach(e=>this.indexToProgramIds.set(e.programIdIndex,this.accountKeys[e.programIdIndex]))}get version(){return"legacy"}get staticAccountKeys(){return this.accountKeys}get compiledInstructions(){return this.instructions.map(t=>({programIdIndex:t.programIdIndex,accountKeyIndexes:t.accounts,data:Tn.decode(t.data)}))}get addressTableLookups(){return[]}getAccountKeys(){return new wf(this.staticAccountKeys)}static compile(t){const e=Xd.compile(t.instructions,t.payerKey),[r,i]=e.getMessageComponents(),o=new wf(i).compileInstructions(t.instructions).map(c=>({programIdIndex:c.programIdIndex,accounts:c.accountKeyIndexes,data:Tn.encode(c.data)}));return new yi({header:r,accountKeys:i,recentBlockhash:t.recentBlockhash,instructions:o})}isAccountSigner(t){return t<this.header.numRequiredSignatures}isAccountWritable(t){const e=this.header.numRequiredSignatures;if(t>=this.header.numRequiredSignatures){const r=t-e,s=this.accountKeys.length-e-this.header.numReadonlyUnsignedAccounts;return r<s}else{const r=e-this.header.numReadonlySignedAccounts;return t<r}}isProgramId(t){return this.indexToProgramIds.has(t)}programIds(){return[...this.indexToProgramIds.values()]}nonProgramIds(){return this.accountKeys.filter((t,e)=>!this.isProgramId(e))}serialize(){const t=this.accountKeys.length;let e=[];Dr(e,t);const r=this.instructions.map(y=>{const{accounts:A,programIdIndex:b}=y,R=Array.from(Tn.decode(y.data));let k=[];Dr(k,A.length);let S=[];return Dr(S,R.length),{programIdIndex:b,keyIndicesCount:kt.from(k),keyIndices:A,dataLength:kt.from(S),data:R}});let i=[];Dr(i,r.length);let s=kt.alloc(po);kt.from(i).copy(s);let o=i.length;r.forEach(y=>{const b=Nt([me("programIdIndex"),je(y.keyIndicesCount.length,"keyIndicesCount"),Kn(me("keyIndex"),y.keyIndices.length,"keyIndices"),je(y.dataLength.length,"dataLength"),Kn(me("userdatum"),y.data.length,"data")]).encode(y,s,o);o+=b}),s=s.slice(0,o);const c=Nt([je(1,"numRequiredSignatures"),je(1,"numReadonlySignedAccounts"),je(1,"numReadonlyUnsignedAccounts"),je(e.length,"keyCount"),Kn(ce("key"),t,"keys"),ce("recentBlockhash")]),u={numRequiredSignatures:kt.from([this.header.numRequiredSignatures]),numReadonlySignedAccounts:kt.from([this.header.numReadonlySignedAccounts]),numReadonlyUnsignedAccounts:kt.from([this.header.numReadonlyUnsignedAccounts]),keyCount:kt.from(e),keys:this.accountKeys.map(y=>te(y.toBytes())),recentBlockhash:Tn.decode(this.recentBlockhash)};let f=kt.alloc(2048);const h=c.encode(u,f);return s.copy(f,h),f.slice(0,h+s.length)}static from(t){let e=[...t];const r=Hi(e);if(r!==(r&Jd))throw new Error("Versioned messages must be deserialized with VersionedMessage.deserialize()");const i=Hi(e),s=Hi(e),o=vr(e);let c=[];for(let A=0;A<o;A++){const b=xr(e,0,$i);c.push(new pt(kt.from(b)))}const u=xr(e,0,$i),f=vr(e);let h=[];for(let A=0;A<f;A++){const b=Hi(e),R=vr(e),k=xr(e,0,R),S=vr(e),B=xr(e,0,S),H=Tn.encode(kt.from(B));h.push({programIdIndex:b,accounts:k,data:H})}const y={header:{numRequiredSignatures:r,numReadonlySignedAccounts:i,numReadonlyUnsignedAccounts:s},recentBlockhash:Tn.encode(kt.from(u)),accountKeys:c,instructions:h};return new yi(y)}}class _a{constructor(t){this.header=void 0,this.staticAccountKeys=void 0,this.recentBlockhash=void 0,this.compiledInstructions=void 0,this.addressTableLookups=void 0,this.header=t.header,this.staticAccountKeys=t.staticAccountKeys,this.recentBlockhash=t.recentBlockhash,this.compiledInstructions=t.compiledInstructions,this.addressTableLookups=t.addressTableLookups}get version(){return 0}get numAccountKeysFromLookups(){let t=0;for(const e of this.addressTableLookups)t+=e.readonlyIndexes.length+e.writableIndexes.length;return t}getAccountKeys(t){let e;if(t&&"accountKeysFromLookups"in t&&t.accountKeysFromLookups){if(this.numAccountKeysFromLookups!=t.accountKeysFromLookups.writable.length+t.accountKeysFromLookups.readonly.length)throw new Error("Failed to get account keys because of a mismatch in the number of account keys from lookups");e=t.accountKeysFromLookups}else if(t&&"addressLookupTableAccounts"in t&&t.addressLookupTableAccounts)e=this.resolveAddressTableLookups(t.addressLookupTableAccounts);else if(this.addressTableLookups.length>0)throw new Error("Failed to get account keys because address table lookups were not resolved");return new wf(this.staticAccountKeys,e)}isAccountSigner(t){return t<this.header.numRequiredSignatures}isAccountWritable(t){const e=this.header.numRequiredSignatures,r=this.staticAccountKeys.length;if(t>=r){const i=t-r,s=this.addressTableLookups.reduce((o,c)=>o+c.writableIndexes.length,0);return i<s}else if(t>=this.header.numRequiredSignatures){const i=t-e,o=r-e-this.header.numReadonlyUnsignedAccounts;return i<o}else{const i=e-this.header.numReadonlySignedAccounts;return t<i}}resolveAddressTableLookups(t){const e={writable:[],readonly:[]};for(const r of this.addressTableLookups){const i=t.find(s=>s.key.equals(r.accountKey));if(!i)throw new Error(`Failed to find address lookup table account for table key ${r.accountKey.toBase58()}`);for(const s of r.writableIndexes)if(s<i.state.addresses.length)e.writable.push(i.state.addresses[s]);else throw new Error(`Failed to find address for index ${s} in address lookup table ${r.accountKey.toBase58()}`);for(const s of r.readonlyIndexes)if(s<i.state.addresses.length)e.readonly.push(i.state.addresses[s]);else throw new Error(`Failed to find address for index ${s} in address lookup table ${r.accountKey.toBase58()}`)}return e}static compile(t){const e=Xd.compile(t.instructions,t.payerKey),r=new Array,i={writable:new Array,readonly:new Array},s=t.addressLookupTableAccounts||[];for(const h of s){const y=e.extractTableLookup(h);if(y!==void 0){const[A,{writable:b,readonly:R}]=y;r.push(A),i.writable.push(...b),i.readonly.push(...R)}}const[o,c]=e.getMessageComponents(),f=new wf(c,i).compileInstructions(t.instructions);return new _a({header:o,staticAccountKeys:c,recentBlockhash:t.recentBlockhash,compiledInstructions:f,addressTableLookups:r})}serialize(){const t=Array();Dr(t,this.staticAccountKeys.length);const e=this.serializeInstructions(),r=Array();Dr(r,this.compiledInstructions.length);const i=this.serializeAddressTableLookups(),s=Array();Dr(s,this.addressTableLookups.length);const o=Nt([me("prefix"),Nt([me("numRequiredSignatures"),me("numReadonlySignedAccounts"),me("numReadonlyUnsignedAccounts")],"header"),je(t.length,"staticAccountKeysLength"),Kn(ce(),this.staticAccountKeys.length,"staticAccountKeys"),ce("recentBlockhash"),je(r.length,"instructionsLength"),je(e.length,"serializedInstructions"),je(s.length,"addressTableLookupsLength"),je(i.length,"serializedAddressTableLookups")]),c=new Uint8Array(po),f=o.encode({prefix:128,header:this.header,staticAccountKeysLength:new Uint8Array(t),staticAccountKeys:this.staticAccountKeys.map(h=>h.toBytes()),recentBlockhash:Tn.decode(this.recentBlockhash),instructionsLength:new Uint8Array(r),serializedInstructions:e,addressTableLookupsLength:new Uint8Array(s),serializedAddressTableLookups:i},c);return c.slice(0,f)}serializeInstructions(){let t=0;const e=new Uint8Array(po);for(const r of this.compiledInstructions){const i=Array();Dr(i,r.accountKeyIndexes.length);const s=Array();Dr(s,r.data.length);const o=Nt([me("programIdIndex"),je(i.length,"encodedAccountKeyIndexesLength"),Kn(me(),r.accountKeyIndexes.length,"accountKeyIndexes"),je(s.length,"encodedDataLength"),je(r.data.length,"data")]);t+=o.encode({programIdIndex:r.programIdIndex,encodedAccountKeyIndexesLength:new Uint8Array(i),accountKeyIndexes:r.accountKeyIndexes,encodedDataLength:new Uint8Array(s),data:r.data},e,t)}return e.slice(0,t)}serializeAddressTableLookups(){let t=0;const e=new Uint8Array(po);for(const r of this.addressTableLookups){const i=Array();Dr(i,r.writableIndexes.length);const s=Array();Dr(s,r.readonlyIndexes.length);const o=Nt([ce("accountKey"),je(i.length,"encodedWritableIndexesLength"),Kn(me(),r.writableIndexes.length,"writableIndexes"),je(s.length,"encodedReadonlyIndexesLength"),Kn(me(),r.readonlyIndexes.length,"readonlyIndexes")]);t+=o.encode({accountKey:r.accountKey.toBytes(),encodedWritableIndexesLength:new Uint8Array(i),writableIndexes:r.writableIndexes,encodedReadonlyIndexesLength:new Uint8Array(s),readonlyIndexes:r.readonlyIndexes},e,t)}return e.slice(0,t)}static deserialize(t){let e=[...t];const r=Hi(e),i=r&Jd;_e(r!==i,"Expected versioned message but received legacy message");const s=i;_e(s===0,`Expected versioned message with version 0 but found version ${s}`);const o={numRequiredSignatures:Hi(e),numReadonlySignedAccounts:Hi(e),numReadonlyUnsignedAccounts:Hi(e)},c=[],u=vr(e);for(let R=0;R<u;R++)c.push(new pt(xr(e,0,$i)));const f=Tn.encode(xr(e,0,$i)),h=vr(e),y=[];for(let R=0;R<h;R++){const k=Hi(e),S=vr(e),B=xr(e,0,S),H=vr(e),U=new Uint8Array(xr(e,0,H));y.push({programIdIndex:k,accountKeyIndexes:B,data:U})}const A=vr(e),b=[];for(let R=0;R<A;R++){const k=new pt(xr(e,0,$i)),S=vr(e),B=xr(e,0,S),H=vr(e),U=xr(e,0,H);b.push({accountKey:k,writableIndexes:B,readonlyIndexes:U})}return new _a({header:o,staticAccountKeys:c,recentBlockhash:f,compiledInstructions:y,addressTableLookups:b})}}const fy={deserializeMessageVersion(n){const t=n[0],e=t&Jd;return e===t?"legacy":e},deserialize:n=>{const t=fy.deserializeMessageVersion(n);if(t==="legacy")return yi.from(n);if(t===0)return _a.deserialize(n);throw new Error(`Transaction message version ${t} deserialization is not supported`)}};let Es=function(n){return n[n.BLOCKHEIGHT_EXCEEDED=0]="BLOCKHEIGHT_EXCEEDED",n[n.PROCESSED=1]="PROCESSED",n[n.TIMED_OUT=2]="TIMED_OUT",n[n.NONCE_INVALID=3]="NONCE_INVALID",n}({});const xM=kt.alloc(mf).fill(0);class Pe{constructor(t){this.keys=void 0,this.programId=void 0,this.data=kt.alloc(0),this.programId=t.programId,this.keys=t.keys,t.data&&(this.data=t.data)}toJSON(){return{keys:this.keys.map(({pubkey:t,isSigner:e,isWritable:r})=>({pubkey:t.toJSON(),isSigner:e,isWritable:r})),programId:this.programId.toJSON(),data:[...this.data]}}}let Oe=class sb{get signature(){return this.signatures.length>0?this.signatures[0].signature:null}constructor(t){if(this.signatures=[],this.feePayer=void 0,this.instructions=[],this.recentBlockhash=void 0,this.lastValidBlockHeight=void 0,this.nonceInfo=void 0,this.minNonceContextSlot=void 0,this._message=void 0,this._json=void 0,!!t)if(t.feePayer&&(this.feePayer=t.feePayer),t.signatures&&(this.signatures=t.signatures),Object.prototype.hasOwnProperty.call(t,"nonceInfo")){const{minContextSlot:e,nonceInfo:r}=t;this.minNonceContextSlot=e,this.nonceInfo=r}else if(Object.prototype.hasOwnProperty.call(t,"lastValidBlockHeight")){const{blockhash:e,lastValidBlockHeight:r}=t;this.recentBlockhash=e,this.lastValidBlockHeight=r}else{const{recentBlockhash:e,nonceInfo:r}=t;r&&(this.nonceInfo=r),this.recentBlockhash=e}}toJSON(){return{recentBlockhash:this.recentBlockhash||null,feePayer:this.feePayer?this.feePayer.toJSON():null,nonceInfo:this.nonceInfo?{nonce:this.nonceInfo.nonce,nonceInstruction:this.nonceInfo.nonceInstruction.toJSON()}:null,instructions:this.instructions.map(t=>t.toJSON()),signers:this.signatures.map(({publicKey:t})=>t.toJSON())}}add(...t){if(t.length===0)throw new Error("No instructions");return t.forEach(e=>{"instructions"in e?this.instructions=this.instructions.concat(e.instructions):"data"in e&&"programId"in e&&"keys"in e?this.instructions.push(e):this.instructions.push(new Pe(e))}),this}compileMessage(){if(this._message&&JSON.stringify(this.toJSON())===JSON.stringify(this._json))return this._message;let t,e;if(this.nonceInfo?(t=this.nonceInfo.nonce,this.instructions[0]!=this.nonceInfo.nonceInstruction?e=[this.nonceInfo.nonceInstruction,...this.instructions]:e=this.instructions):(t=this.recentBlockhash,e=this.instructions),!t)throw new Error("Transaction recentBlockhash required");e.length<1&&console.warn("No instructions provided");let r;if(this.feePayer)r=this.feePayer;else if(this.signatures.length>0&&this.signatures[0].publicKey)r=this.signatures[0].publicKey;else throw new Error("Transaction fee payer required");for(let k=0;k<e.length;k++)if(e[k].programId===void 0)throw new Error(`Transaction instruction index ${k} has undefined program id`);const i=[],s=[];e.forEach(k=>{k.keys.forEach(B=>{s.push({...B})});const S=k.programId.toString();i.includes(S)||i.push(S)}),i.forEach(k=>{s.push({pubkey:new pt(k),isSigner:!1,isWritable:!1})});const o=[];s.forEach(k=>{const S=k.pubkey.toString(),B=o.findIndex(H=>H.pubkey.toString()===S);B>-1?(o[B].isWritable=o[B].isWritable||k.isWritable,o[B].isSigner=o[B].isSigner||k.isSigner):o.push(k)}),o.sort(function(k,S){if(k.isSigner!==S.isSigner)return k.isSigner?-1:1;if(k.isWritable!==S.isWritable)return k.isWritable?-1:1;const B={localeMatcher:"best fit",usage:"sort",sensitivity:"variant",ignorePunctuation:!1,numeric:!1,caseFirst:"lower"};return k.pubkey.toBase58().localeCompare(S.pubkey.toBase58(),"en",B)});const c=o.findIndex(k=>k.pubkey.equals(r));if(c>-1){const[k]=o.splice(c,1);k.isSigner=!0,k.isWritable=!0,o.unshift(k)}else o.unshift({pubkey:r,isSigner:!0,isWritable:!0});for(const k of this.signatures){const S=o.findIndex(B=>B.pubkey.equals(k.publicKey));if(S>-1)o[S].isSigner||(o[S].isSigner=!0,console.warn("Transaction references a signature that is unnecessary, only the fee payer and instruction signer accounts should sign a transaction. This behavior is deprecated and will throw an error in the next major version release."));else throw new Error(`unknown signer: ${k.publicKey.toString()}`)}let u=0,f=0,h=0;const y=[],A=[];o.forEach(({pubkey:k,isSigner:S,isWritable:B})=>{S?(y.push(k.toString()),u+=1,B||(f+=1)):(A.push(k.toString()),B||(h+=1))});const b=y.concat(A),R=e.map(k=>{const{data:S,programId:B}=k;return{programIdIndex:b.indexOf(B.toString()),accounts:k.keys.map(H=>b.indexOf(H.pubkey.toString())),data:Tn.encode(S)}});return R.forEach(k=>{_e(k.programIdIndex>=0),k.accounts.forEach(S=>_e(S>=0))}),new yi({header:{numRequiredSignatures:u,numReadonlySignedAccounts:f,numReadonlyUnsignedAccounts:h},accountKeys:b,recentBlockhash:t,instructions:R})}_compile(){const t=this.compileMessage(),e=t.accountKeys.slice(0,t.header.numRequiredSignatures);return this.signatures.length===e.length&&this.signatures.every((i,s)=>e[s].equals(i.publicKey))||(this.signatures=e.map(r=>({signature:null,publicKey:r}))),t}serializeMessage(){return this._compile().serialize()}async getEstimatedFee(t){return(await t.getFeeForMessage(this.compileMessage())).value}setSigners(...t){if(t.length===0)throw new Error("No signers");const e=new Set;this.signatures=t.filter(r=>{const i=r.toString();return e.has(i)?!1:(e.add(i),!0)}).map(r=>({signature:null,publicKey:r}))}sign(...t){if(t.length===0)throw new Error("No signers");const e=new Set,r=[];for(const s of t){const o=s.publicKey.toString();e.has(o)||(e.add(o),r.push(s))}this.signatures=r.map(s=>({signature:null,publicKey:s.publicKey}));const i=this._compile();this._partialSign(i,...r)}partialSign(...t){if(t.length===0)throw new Error("No signers");const e=new Set,r=[];for(const s of t){const o=s.publicKey.toString();e.has(o)||(e.add(o),r.push(s))}const i=this._compile();this._partialSign(i,...r)}_partialSign(t,...e){const r=t.serialize();e.forEach(i=>{const s=ay(r,i.secretKey);this._addSignature(i.publicKey,te(s))})}addSignature(t,e){this._compile(),this._addSignature(t,e)}_addSignature(t,e){_e(e.length===64);const r=this.signatures.findIndex(i=>t.equals(i.publicKey));if(r<0)throw new Error(`unknown signer: ${t.toString()}`);this.signatures[r].signature=kt.from(e)}verifySignatures(t=!0){return!this._getMessageSignednessErrors(this.serializeMessage(),t)}_getMessageSignednessErrors(t,e){const r={};for(const{signature:i,publicKey:s}of this.signatures)i===null?e&&(r.missing||(r.missing=[])).push(s):pM(i,t,s.toBytes())||(r.invalid||(r.invalid=[])).push(s);return r.invalid||r.missing?r:void 0}serialize(t){const{requireAllSignatures:e,verifySignatures:r}=Object.assign({requireAllSignatures:!0,verifySignatures:!0},t),i=this.serializeMessage();if(r){const s=this._getMessageSignednessErrors(i,e);if(s){let o="Signature verification failed.";throw s.invalid&&(o+=`
|
|
17
|
+
Invalid signature for public key${s.invalid.length===1?"":"(s)"} [\`${s.invalid.map(c=>c.toBase58()).join("`, `")}\`].`),s.missing&&(o+=`
|
|
18
|
+
Missing signature for public key${s.missing.length===1?"":"(s)"} [\`${s.missing.map(c=>c.toBase58()).join("`, `")}\`].`),new Error(o)}}return this._serialize(i)}_serialize(t){const{signatures:e}=this,r=[];Dr(r,e.length);const i=r.length+e.length*64+t.length,s=kt.alloc(i);return _e(e.length<256),kt.from(r).copy(s,0),e.forEach(({signature:o},c)=>{o!==null&&(_e(o.length===64,"signature has invalid length"),kt.from(o).copy(s,r.length+c*64))}),t.copy(s,r.length+e.length*64),_e(s.length<=po,`Transaction too large: ${s.length} > ${po}`),s}get keys(){return _e(this.instructions.length===1),this.instructions[0].keys.map(t=>t.pubkey)}get programId(){return _e(this.instructions.length===1),this.instructions[0].programId}get data(){return _e(this.instructions.length===1),this.instructions[0].data}static from(t){let e=[...t];const r=vr(e);let i=[];for(let s=0;s<r;s++){const o=xr(e,0,mf);i.push(Tn.encode(kt.from(o)))}return sb.populate(yi.from(e),i)}static populate(t,e=[]){const r=new sb;return r.recentBlockhash=t.recentBlockhash,t.header.numRequiredSignatures>0&&(r.feePayer=t.accountKeys[0]),e.forEach((i,s)=>{const o={signature:i==Tn.encode(xM)?null:Tn.decode(i),publicKey:t.accountKeys[s]};r.signatures.push(o)}),t.instructions.forEach(i=>{const s=i.accounts.map(o=>{const c=t.accountKeys[o];return{pubkey:c,isSigner:r.signatures.some(u=>u.publicKey.toString()===c.toString())||t.isAccountSigner(o),isWritable:t.isAccountWritable(o)}});r.instructions.push(new Pe({keys:s,programId:t.accountKeys[i.programIdIndex],data:Tn.decode(i.data)}))}),r._message=t,r._json=r.toJSON(),r}};class hy{constructor(t){this.payerKey=void 0,this.instructions=void 0,this.recentBlockhash=void 0,this.payerKey=t.payerKey,this.instructions=t.instructions,this.recentBlockhash=t.recentBlockhash}static decompile(t,e){const{header:r,compiledInstructions:i,recentBlockhash:s}=t,{numRequiredSignatures:o,numReadonlySignedAccounts:c,numReadonlyUnsignedAccounts:u}=r,f=o-c;_e(f>0,"Message header is invalid");const h=t.staticAccountKeys.length-o-u;_e(h>=0,"Message header is invalid");const y=t.getAccountKeys(e),A=y.get(0);if(A===void 0)throw new Error("Failed to decompile message because no account keys were found");const b=[];for(const R of i){const k=[];for(const B of R.accountKeyIndexes){const H=y.get(B);if(H===void 0)throw new Error(`Failed to find key for account key index ${B}`);const U=B<o;let G;U?G=B<f:B<y.staticAccountKeys.length?G=B-o<h:G=B-y.staticAccountKeys.length<y.accountKeysFromLookups.writable.length,k.push({pubkey:H,isSigner:B<r.numRequiredSignatures,isWritable:G})}const S=y.get(R.programIdIndex);if(S===void 0)throw new Error(`Failed to find program id for program id index ${R.programIdIndex}`);b.push(new Pe({programId:S,data:te(R.data),keys:k}))}return new hy({payerKey:A,instructions:b,recentBlockhash:s})}compileToLegacyMessage(){return yi.compile({payerKey:this.payerKey,recentBlockhash:this.recentBlockhash,instructions:this.instructions})}compileToV0Message(t){return _a.compile({payerKey:this.payerKey,recentBlockhash:this.recentBlockhash,instructions:this.instructions,addressLookupTableAccounts:t})}}class dy{get version(){return this.message.version}constructor(t,e){if(this.signatures=void 0,this.message=void 0,e!==void 0)_e(e.length===t.header.numRequiredSignatures,"Expected signatures length to be equal to the number of required signatures"),this.signatures=e;else{const r=[];for(let i=0;i<t.header.numRequiredSignatures;i++)r.push(new Uint8Array(mf));this.signatures=r}this.message=t}serialize(){const t=this.message.serialize(),e=Array();Dr(e,this.signatures.length);const r=Nt([je(e.length,"encodedSignaturesLength"),Kn(bM(),this.signatures.length,"signatures"),je(t.length,"serializedMessage")]),i=new Uint8Array(2048),s=r.encode({encodedSignaturesLength:new Uint8Array(e),signatures:this.signatures,serializedMessage:t},i);return i.slice(0,s)}static deserialize(t){let e=[...t];const r=[],i=vr(e);for(let o=0;o<i;o++)r.push(new Uint8Array(xr(e,0,mf)));const s=fy.deserialize(new Uint8Array(e));return new dy(s,r)}sign(t){const e=this.message.serialize(),r=this.message.staticAccountKeys.slice(0,this.message.header.numRequiredSignatures);for(const i of t){const s=r.findIndex(o=>o.equals(i.publicKey));_e(s>=0,`Cannot sign with non signer key ${i.publicKey.toBase58()}`),this.signatures[s]=ay(e,i.secretKey)}}addSignature(t,e){_e(e.byteLength===64,"Signature must be 64 bytes long");const i=this.message.staticAccountKeys.slice(0,this.message.header.numRequiredSignatures).findIndex(s=>s.equals(t));_e(i>=0,`Can not add signature; \`${t.toBase58()}\` is not required to sign this transaction`),this.signatures[i]=e}}const qA=1e3/(160/64),zi=new pt("SysvarC1ock11111111111111111111111111111111"),RM=new pt("SysvarEpochSchedu1e111111111111111111111111"),SM=new pt("Sysvar1nstructions1111111111111111111111111"),t0=new pt("SysvarRecentB1ockHashes11111111111111111111"),ru=new pt("SysvarRent111111111111111111111111111111111"),IM=new pt("SysvarRewards111111111111111111111111111111"),kM=new pt("SysvarS1otHashes111111111111111111111111111"),TM=new pt("SysvarS1otHistory11111111111111111111111111"),e0=new pt("SysvarStakeHistory1111111111111111111111111");class go extends Error{constructor({action:t,signature:e,transactionMessage:r,logs:i}){const s=i?`Logs:
|
|
19
|
+
${JSON.stringify(i.slice(-10),null,2)}. `:"",o="\nCatch the `SendTransactionError` and call `getLogs()` on it for full details.";let c;switch(t){case"send":c=`Transaction ${e} resulted in an error.
|
|
20
|
+
${r}. `+s+o;break;case"simulate":c=`Simulation failed.
|
|
21
|
+
Message: ${r}.
|
|
22
|
+
`+s+o;break;default:c=`Unknown action '${(u=>u)(t)}'`}super(c),this.signature=void 0,this.transactionMessage=void 0,this.transactionLogs=void 0,this.signature=e,this.transactionMessage=r,this.transactionLogs=i||void 0}get transactionError(){return{message:this.transactionMessage,logs:Array.isArray(this.transactionLogs)?this.transactionLogs:void 0}}get logs(){const t=this.transactionLogs;if(!(t!=null&&typeof t=="object"&&"then"in t))return t}async getLogs(t){return Array.isArray(this.transactionLogs)||(this.transactionLogs=new Promise((e,r)=>{t.getTransaction(this.signature).then(i=>{if(i&&i.meta&&i.meta.logMessages){const s=i.meta.logMessages;this.transactionLogs=s,e(s)}else r(new Error("Log messages not found"))}).catch(r)})),await this.transactionLogs}}const OM={JSON_RPC_SERVER_ERROR_BLOCK_CLEANED_UP:-32001,JSON_RPC_SERVER_ERROR_SEND_TRANSACTION_PREFLIGHT_FAILURE:-32002,JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_VERIFICATION_FAILURE:-32003,JSON_RPC_SERVER_ERROR_BLOCK_NOT_AVAILABLE:-32004,JSON_RPC_SERVER_ERROR_NODE_UNHEALTHY:-32005,JSON_RPC_SERVER_ERROR_TRANSACTION_PRECOMPILE_VERIFICATION_FAILURE:-32006,JSON_RPC_SERVER_ERROR_SLOT_SKIPPED:-32007,JSON_RPC_SERVER_ERROR_NO_SNAPSHOT:-32008,JSON_RPC_SERVER_ERROR_LONG_TERM_STORAGE_SLOT_SKIPPED:-32009,JSON_RPC_SERVER_ERROR_KEY_EXCLUDED_FROM_SECONDARY_INDEX:-32010,JSON_RPC_SERVER_ERROR_TRANSACTION_HISTORY_NOT_AVAILABLE:-32011,JSON_RPC_SCAN_ERROR:-32012,JSON_RPC_SERVER_ERROR_TRANSACTION_SIGNATURE_LEN_MISMATCH:-32013,JSON_RPC_SERVER_ERROR_BLOCK_STATUS_NOT_AVAILABLE_YET:-32014,JSON_RPC_SERVER_ERROR_UNSUPPORTED_TRANSACTION_VERSION:-32015,JSON_RPC_SERVER_ERROR_MIN_CONTEXT_SLOT_NOT_REACHED:-32016};class Mt extends Error{constructor({code:t,message:e,data:r},i){super(i!=null?`${i}: ${e}`:e),this.code=void 0,this.data=void 0,this.code=t,this.data=r,this.name="SolanaJSONRPCError"}}async function py(n,t,e,r){const i=r&&{skipPreflight:r.skipPreflight,preflightCommitment:r.preflightCommitment||r.commitment,maxRetries:r.maxRetries,minContextSlot:r.minContextSlot},s=await n.sendTransaction(t,e,i);let o;if(t.recentBlockhash!=null&&t.lastValidBlockHeight!=null)o=(await n.confirmTransaction({abortSignal:r==null?void 0:r.abortSignal,signature:s,blockhash:t.recentBlockhash,lastValidBlockHeight:t.lastValidBlockHeight},r&&r.commitment)).value;else if(t.minNonceContextSlot!=null&&t.nonceInfo!=null){const{nonceInstruction:c}=t.nonceInfo,u=c.keys[0].pubkey;o=(await n.confirmTransaction({abortSignal:r==null?void 0:r.abortSignal,minContextSlot:t.minNonceContextSlot,nonceAccountPubkey:u,nonceValue:t.nonceInfo.nonce,signature:s},r&&r.commitment)).value}else(r==null?void 0:r.abortSignal)!=null&&console.warn("sendAndConfirmTransaction(): A transaction with a deprecated confirmation strategy was supplied along with an `abortSignal`. Only transactions having `lastValidBlockHeight` or a combination of `nonceInfo` and `minNonceContextSlot` are abortable."),o=(await n.confirmTransaction(s,r&&r.commitment)).value;if(o.err)throw s!=null?new go({action:"send",signature:s,transactionMessage:`Status: (${JSON.stringify(o)})`}):new Error(`Transaction ${s} failed (${JSON.stringify(o)})`);return s}function Aa(n){return new Promise(t=>setTimeout(t,n))}function pe(n,t){const e=n.layout.span>=0?n.layout.span:WA(n,t),r=kt.alloc(e),i=Object.assign({instruction:n.index},t);return n.layout.encode(i,r),r}function Ie(n,t){let e;try{e=n.layout.decode(t)}catch(r){throw new Error("invalid instruction; "+r)}if(e.instruction!==n.index)throw new Error(`invalid instruction; instruction index mismatch ${e.instruction} != ${n.index}`);return e}const QA=Vn("lamportsPerSignature"),YA=Nt([Ot("version"),Ot("state"),ce("authorizedPubkey"),ce("nonce"),Nt([QA],"feeCalculator")]),gy=YA.span;class n0{constructor(t){this.authorizedPubkey=void 0,this.nonce=void 0,this.feeCalculator=void 0,this.authorizedPubkey=t.authorizedPubkey,this.nonce=t.nonce,this.feeCalculator=t.feeCalculator}static fromAccountData(t){const e=YA.decode(te(t),0);return new n0({authorizedPubkey:new pt(e.authorizedPubkey),nonce:new pt(e.nonce).toString(),feeCalculator:e.feeCalculator})}}const NM=n=>{const t=n.decode.bind(n),e=n.encode.bind(n);return{decode:t,encode:e}},iu=(n=>t=>{const e=je(n,t),{encode:r,decode:i}=NM(e),s=e;return s.decode=(o,c)=>{const u=i(o,c);return aP(kt.from(u))},s.encode=(o,c,u)=>{const f=yA(o,n);return r(f,c,u)},s})(8);class CM{constructor(){}static decodeInstructionType(t){this.checkProgramId(t.programId);const r=Ot("instruction").decode(t.data);let i;for(const[s,o]of Object.entries($e))if(o.index==r){i=s;break}if(!i)throw new Error("Instruction type incorrect; not a SystemInstruction");return i}static decodeCreateAccount(t){this.checkProgramId(t.programId),this.checkKeyLength(t.keys,2);const{lamports:e,space:r,programId:i}=Ie($e.Create,t.data);return{fromPubkey:t.keys[0].pubkey,newAccountPubkey:t.keys[1].pubkey,lamports:e,space:r,programId:new pt(i)}}static decodeTransfer(t){this.checkProgramId(t.programId),this.checkKeyLength(t.keys,2);const{lamports:e}=Ie($e.Transfer,t.data);return{fromPubkey:t.keys[0].pubkey,toPubkey:t.keys[1].pubkey,lamports:e}}static decodeTransferWithSeed(t){this.checkProgramId(t.programId),this.checkKeyLength(t.keys,3);const{lamports:e,seed:r,programId:i}=Ie($e.TransferWithSeed,t.data);return{fromPubkey:t.keys[0].pubkey,basePubkey:t.keys[1].pubkey,toPubkey:t.keys[2].pubkey,lamports:e,seed:r,programId:new pt(i)}}static decodeAllocate(t){this.checkProgramId(t.programId),this.checkKeyLength(t.keys,1);const{space:e}=Ie($e.Allocate,t.data);return{accountPubkey:t.keys[0].pubkey,space:e}}static decodeAllocateWithSeed(t){this.checkProgramId(t.programId),this.checkKeyLength(t.keys,1);const{base:e,seed:r,space:i,programId:s}=Ie($e.AllocateWithSeed,t.data);return{accountPubkey:t.keys[0].pubkey,basePubkey:new pt(e),seed:r,space:i,programId:new pt(s)}}static decodeAssign(t){this.checkProgramId(t.programId),this.checkKeyLength(t.keys,1);const{programId:e}=Ie($e.Assign,t.data);return{accountPubkey:t.keys[0].pubkey,programId:new pt(e)}}static decodeAssignWithSeed(t){this.checkProgramId(t.programId),this.checkKeyLength(t.keys,1);const{base:e,seed:r,programId:i}=Ie($e.AssignWithSeed,t.data);return{accountPubkey:t.keys[0].pubkey,basePubkey:new pt(e),seed:r,programId:new pt(i)}}static decodeCreateWithSeed(t){this.checkProgramId(t.programId),this.checkKeyLength(t.keys,2);const{base:e,seed:r,lamports:i,space:s,programId:o}=Ie($e.CreateWithSeed,t.data);return{fromPubkey:t.keys[0].pubkey,newAccountPubkey:t.keys[1].pubkey,basePubkey:new pt(e),seed:r,lamports:i,space:s,programId:new pt(o)}}static decodeNonceInitialize(t){this.checkProgramId(t.programId),this.checkKeyLength(t.keys,3);const{authorized:e}=Ie($e.InitializeNonceAccount,t.data);return{noncePubkey:t.keys[0].pubkey,authorizedPubkey:new pt(e)}}static decodeNonceAdvance(t){return this.checkProgramId(t.programId),this.checkKeyLength(t.keys,3),Ie($e.AdvanceNonceAccount,t.data),{noncePubkey:t.keys[0].pubkey,authorizedPubkey:t.keys[2].pubkey}}static decodeNonceWithdraw(t){this.checkProgramId(t.programId),this.checkKeyLength(t.keys,5);const{lamports:e}=Ie($e.WithdrawNonceAccount,t.data);return{noncePubkey:t.keys[0].pubkey,toPubkey:t.keys[1].pubkey,authorizedPubkey:t.keys[4].pubkey,lamports:e}}static decodeNonceAuthorize(t){this.checkProgramId(t.programId),this.checkKeyLength(t.keys,2);const{authorized:e}=Ie($e.AuthorizeNonceAccount,t.data);return{noncePubkey:t.keys[0].pubkey,authorizedPubkey:t.keys[1].pubkey,newAuthorizedPubkey:new pt(e)}}static checkProgramId(t){if(!t.equals(Nn.programId))throw new Error("invalid instruction; programId is not SystemProgram")}static checkKeyLength(t,e){if(t.length<e)throw new Error(`invalid instruction; found ${t.length} keys, expected at least ${e}`)}}const $e=Object.freeze({Create:{index:0,layout:Nt([Ot("instruction"),Ur("lamports"),Ur("space"),ce("programId")])},Assign:{index:1,layout:Nt([Ot("instruction"),ce("programId")])},Transfer:{index:2,layout:Nt([Ot("instruction"),iu("lamports")])},CreateWithSeed:{index:3,layout:Nt([Ot("instruction"),ce("base"),ba("seed"),Ur("lamports"),Ur("space"),ce("programId")])},AdvanceNonceAccount:{index:4,layout:Nt([Ot("instruction")])},WithdrawNonceAccount:{index:5,layout:Nt([Ot("instruction"),Ur("lamports")])},InitializeNonceAccount:{index:6,layout:Nt([Ot("instruction"),ce("authorized")])},AuthorizeNonceAccount:{index:7,layout:Nt([Ot("instruction"),ce("authorized")])},Allocate:{index:8,layout:Nt([Ot("instruction"),Ur("space")])},AllocateWithSeed:{index:9,layout:Nt([Ot("instruction"),ce("base"),ba("seed"),Ur("space"),ce("programId")])},AssignWithSeed:{index:10,layout:Nt([Ot("instruction"),ce("base"),ba("seed"),ce("programId")])},TransferWithSeed:{index:11,layout:Nt([Ot("instruction"),iu("lamports"),ba("seed"),ce("programId")])},UpgradeNonceAccount:{index:12,layout:Nt([Ot("instruction")])}});class Nn{constructor(){}static createAccount(t){const e=$e.Create,r=pe(e,{lamports:t.lamports,space:t.space,programId:te(t.programId.toBuffer())});return new Pe({keys:[{pubkey:t.fromPubkey,isSigner:!0,isWritable:!0},{pubkey:t.newAccountPubkey,isSigner:!0,isWritable:!0}],programId:this.programId,data:r})}static transfer(t){let e,r;if("basePubkey"in t){const i=$e.TransferWithSeed;e=pe(i,{lamports:BigInt(t.lamports),seed:t.seed,programId:te(t.programId.toBuffer())}),r=[{pubkey:t.fromPubkey,isSigner:!1,isWritable:!0},{pubkey:t.basePubkey,isSigner:!0,isWritable:!1},{pubkey:t.toPubkey,isSigner:!1,isWritable:!0}]}else{const i=$e.Transfer;e=pe(i,{lamports:BigInt(t.lamports)}),r=[{pubkey:t.fromPubkey,isSigner:!0,isWritable:!0},{pubkey:t.toPubkey,isSigner:!1,isWritable:!0}]}return new Pe({keys:r,programId:this.programId,data:e})}static assign(t){let e,r;if("basePubkey"in t){const i=$e.AssignWithSeed;e=pe(i,{base:te(t.basePubkey.toBuffer()),seed:t.seed,programId:te(t.programId.toBuffer())}),r=[{pubkey:t.accountPubkey,isSigner:!1,isWritable:!0},{pubkey:t.basePubkey,isSigner:!0,isWritable:!1}]}else{const i=$e.Assign;e=pe(i,{programId:te(t.programId.toBuffer())}),r=[{pubkey:t.accountPubkey,isSigner:!0,isWritable:!0}]}return new Pe({keys:r,programId:this.programId,data:e})}static createAccountWithSeed(t){const e=$e.CreateWithSeed,r=pe(e,{base:te(t.basePubkey.toBuffer()),seed:t.seed,lamports:t.lamports,space:t.space,programId:te(t.programId.toBuffer())});let i=[{pubkey:t.fromPubkey,isSigner:!0,isWritable:!0},{pubkey:t.newAccountPubkey,isSigner:!1,isWritable:!0}];return t.basePubkey.equals(t.fromPubkey)||i.push({pubkey:t.basePubkey,isSigner:!0,isWritable:!1}),new Pe({keys:i,programId:this.programId,data:r})}static createNonceAccount(t){const e=new Oe;"basePubkey"in t&&"seed"in t?e.add(Nn.createAccountWithSeed({fromPubkey:t.fromPubkey,newAccountPubkey:t.noncePubkey,basePubkey:t.basePubkey,seed:t.seed,lamports:t.lamports,space:gy,programId:this.programId})):e.add(Nn.createAccount({fromPubkey:t.fromPubkey,newAccountPubkey:t.noncePubkey,lamports:t.lamports,space:gy,programId:this.programId}));const r={noncePubkey:t.noncePubkey,authorizedPubkey:t.authorizedPubkey};return e.add(this.nonceInitialize(r)),e}static nonceInitialize(t){const e=$e.InitializeNonceAccount,r=pe(e,{authorized:te(t.authorizedPubkey.toBuffer())}),i={keys:[{pubkey:t.noncePubkey,isSigner:!1,isWritable:!0},{pubkey:t0,isSigner:!1,isWritable:!1},{pubkey:ru,isSigner:!1,isWritable:!1}],programId:this.programId,data:r};return new Pe(i)}static nonceAdvance(t){const e=$e.AdvanceNonceAccount,r=pe(e),i={keys:[{pubkey:t.noncePubkey,isSigner:!1,isWritable:!0},{pubkey:t0,isSigner:!1,isWritable:!1},{pubkey:t.authorizedPubkey,isSigner:!0,isWritable:!1}],programId:this.programId,data:r};return new Pe(i)}static nonceWithdraw(t){const e=$e.WithdrawNonceAccount,r=pe(e,{lamports:t.lamports});return new Pe({keys:[{pubkey:t.noncePubkey,isSigner:!1,isWritable:!0},{pubkey:t.toPubkey,isSigner:!1,isWritable:!0},{pubkey:t0,isSigner:!1,isWritable:!1},{pubkey:ru,isSigner:!1,isWritable:!1},{pubkey:t.authorizedPubkey,isSigner:!0,isWritable:!1}],programId:this.programId,data:r})}static nonceAuthorize(t){const e=$e.AuthorizeNonceAccount,r=pe(e,{authorized:te(t.newAuthorizedPubkey.toBuffer())});return new Pe({keys:[{pubkey:t.noncePubkey,isSigner:!1,isWritable:!0},{pubkey:t.authorizedPubkey,isSigner:!0,isWritable:!1}],programId:this.programId,data:r})}static allocate(t){let e,r;if("basePubkey"in t){const i=$e.AllocateWithSeed;e=pe(i,{base:te(t.basePubkey.toBuffer()),seed:t.seed,space:t.space,programId:te(t.programId.toBuffer())}),r=[{pubkey:t.accountPubkey,isSigner:!1,isWritable:!0},{pubkey:t.basePubkey,isSigner:!0,isWritable:!1}]}else{const i=$e.Allocate;e=pe(i,{space:t.space}),r=[{pubkey:t.accountPubkey,isSigner:!0,isWritable:!0}]}return new Pe({keys:r,programId:this.programId,data:e})}}Nn.programId=new pt("11111111111111111111111111111111");const BM=po-300;class Ea{constructor(){}static getMinNumSignatures(t){return 2*(Math.ceil(t/Ea.chunkSize)+1+1)}static async load(t,e,r,i,s){{const y=await t.getMinimumBalanceForRentExemption(s.length),A=await t.getAccountInfo(r.publicKey,"confirmed");let b=null;if(A!==null){if(A.executable)return console.error("Program load failed, account is already executable"),!1;A.data.length!==s.length&&(b=b||new Oe,b.add(Nn.allocate({accountPubkey:r.publicKey,space:s.length}))),A.owner.equals(i)||(b=b||new Oe,b.add(Nn.assign({accountPubkey:r.publicKey,programId:i}))),A.lamports<y&&(b=b||new Oe,b.add(Nn.transfer({fromPubkey:e.publicKey,toPubkey:r.publicKey,lamports:y-A.lamports})))}else b=new Oe().add(Nn.createAccount({fromPubkey:e.publicKey,newAccountPubkey:r.publicKey,lamports:y>0?y:1,space:s.length,programId:i}));b!==null&&await py(t,b,[e,r],{commitment:"confirmed"})}const o=Nt([Ot("instruction"),Ot("offset"),Ot("bytesLength"),Ot("bytesLengthPadding"),Kn(me("byte"),fo(Ot(),-8),"bytes")]),c=Ea.chunkSize;let u=0,f=s,h=[];for(;f.length>0;){const y=f.slice(0,c),A=kt.alloc(c+16);o.encode({instruction:0,offset:u,bytes:y,bytesLength:0,bytesLengthPadding:0},A);const b=new Oe().add({keys:[{pubkey:r.publicKey,isSigner:!0,isWritable:!0}],programId:i,data:A});h.push(py(t,b,[e,r],{commitment:"confirmed"})),t._rpcEndpoint.includes("solana.com")&&await Aa(1e3/4),u+=c,f=f.slice(c)}await Promise.all(h);{const y=Nt([Ot("instruction")]),A=kt.alloc(y.span);y.encode({instruction:1},A);const b=new Oe().add({keys:[{pubkey:r.publicKey,isSigner:!0,isWritable:!0},{pubkey:ru,isSigner:!1,isWritable:!1}],programId:i,data:A}),R="processed",k=await t.sendTransaction(b,[e,r],{preflightCommitment:R}),{context:S,value:B}=await t.confirmTransaction({signature:k,lastValidBlockHeight:b.lastValidBlockHeight,blockhash:b.recentBlockhash},R);if(B.err)throw new Error(`Transaction ${k} failed (${JSON.stringify(B)})`);for(;;){try{if(await t.getSlot({commitment:R})>S.slot)break}catch{}await new Promise(H=>setTimeout(H,Math.round(qA/2)))}}return!0}}Ea.chunkSize=BM;const PM=new pt("BPFLoader2111111111111111111111111111111111");class MM{static getMinNumSignatures(t){return Ea.getMinNumSignatures(t)}static load(t,e,r,i,s){return Ea.load(t,e,r,s,i)}}function LM(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var yy,JA;function UM(){if(JA)return yy;JA=1;var n=Object.prototype.toString,t=Object.keys||function(r){var i=[];for(var s in r)i.push(s);return i};function e(r,i){var s,o,c,u,f,h,y;if(r===!0)return"true";if(r===!1)return"false";switch(typeof r){case"object":if(r===null)return null;if(r.toJSON&&typeof r.toJSON=="function")return e(r.toJSON(),i);if(y=n.call(r),y==="[object Array]"){for(c="[",o=r.length-1,s=0;s<o;s++)c+=e(r[s],!0)+",";return o>-1&&(c+=e(r[s],!0)),c+"]"}else if(y==="[object Object]"){for(u=t(r).sort(),o=u.length,c="",s=0;s<o;)f=u[s],h=e(r[f],!1),h!==void 0&&(c&&(c+=","),c+=JSON.stringify(f)+":"+h),s++;return"{"+c+"}"}else return JSON.stringify(r);case"function":case"undefined":return i?null:void 0;case"string":return JSON.stringify(r);default:return isFinite(r)?r:null}}return yy=function(r){var i=e(r,!1);if(i!==void 0)return""+i},yy}var DM=UM(),XA=LM(DM);const bf=32;function my(n){let t=0;for(;n>1;)n/=2,t++;return t}function FM(n){return n===0?1:(n--,n|=n>>1,n|=n>>2,n|=n>>4,n|=n>>8,n|=n>>16,n|=n>>32,n+1)}class tE{constructor(t,e,r,i,s){this.slotsPerEpoch=void 0,this.leaderScheduleSlotOffset=void 0,this.warmup=void 0,this.firstNormalEpoch=void 0,this.firstNormalSlot=void 0,this.slotsPerEpoch=t,this.leaderScheduleSlotOffset=e,this.warmup=r,this.firstNormalEpoch=i,this.firstNormalSlot=s}getEpoch(t){return this.getEpochAndSlotIndex(t)[0]}getEpochAndSlotIndex(t){if(t<this.firstNormalSlot){const e=my(FM(t+bf+1))-my(bf)-1,r=this.getSlotsInEpoch(e),i=t-(r-bf);return[e,i]}else{const e=t-this.firstNormalSlot,r=Math.floor(e/this.slotsPerEpoch),i=this.firstNormalEpoch+r,s=e%this.slotsPerEpoch;return[i,s]}}getFirstSlotInEpoch(t){return t<=this.firstNormalEpoch?(Math.pow(2,t)-1)*bf:(t-this.firstNormalEpoch)*this.slotsPerEpoch+this.firstNormalSlot}getLastSlotInEpoch(t){return this.getFirstSlotInEpoch(t)+this.getSlotsInEpoch(t)-1}getSlotsInEpoch(t){return t<this.firstNormalEpoch?Math.pow(2,t+my(bf)):this.slotsPerEpoch}}var $M=globalThis.fetch;class HM extends jP{constructor(t,e,r){const i=s=>{const o=VP(s,{autoconnect:!0,max_reconnects:5,reconnect:!0,reconnect_interval:1e3,...e});return"socket"in o?this.underlyingSocket=o.socket:this.underlyingSocket=o,o};super(i,t,e,r),this.underlyingSocket=void 0}call(...t){var r;const e=(r=this.underlyingSocket)==null?void 0:r.readyState;return e===1?super.call(...t):Promise.reject(new Error("Tried to call a JSON-RPC method `"+t[0]+"` but the socket was not `CONNECTING` or `OPEN` (`readyState` was "+e+")"))}notify(...t){var r;const e=(r=this.underlyingSocket)==null?void 0:r.readyState;return e===1?super.notify(...t):Promise.reject(new Error("Tried to send a JSON-RPC notification `"+t[0]+"` but the socket was not `CONNECTING` or `OPEN` (`readyState` was "+e+")"))}}function zM(n,t){let e;try{e=n.layout.decode(t)}catch(r){throw new Error("invalid instruction; "+r)}if(e.typeIndex!==n.index)throw new Error(`invalid account data; account type mismatch ${e.typeIndex} != ${n.index}`);return e}const eE=56;class wy{constructor(t){this.key=void 0,this.state=void 0,this.key=t.key,this.state=t.state}isActive(){const t=BigInt("0xffffffffffffffff");return this.state.deactivationSlot===t}static deserialize(t){const e=zM(GM,t),r=t.length-eE;_e(r>=0,"lookup table is invalid"),_e(r%32===0,"lookup table is invalid");const i=r/32,{addresses:s}=Nt([Kn(ce(),i,"addresses")]).decode(t.slice(eE));return{deactivationSlot:e.deactivationSlot,lastExtendedSlot:e.lastExtendedSlot,lastExtendedSlotStartIndex:e.lastExtendedStartIndex,authority:e.authority.length!==0?new pt(e.authority[0]):void 0,addresses:s.map(o=>new pt(o))}}}const GM={index:1,layout:Nt([Ot("typeIndex"),iu("deactivationSlot"),Vn("lastExtendedSlot"),me("lastExtendedStartIndex"),me(),Kn(ce(),fo(me(),-1),"authority")])},VM=/^[^:]+:\/\/([^:[]+|\[[^\]]+\])(:\d+)?(.*)/i;function KM(n){const t=n.match(VM);if(t==null)throw TypeError(`Failed to validate endpoint URL \`${n}\``);const[e,r,i,s]=t,o=n.startsWith("https:")?"wss:":"ws:",c=i==null?null:parseInt(i.slice(1),10),u=c==null?"":`:${c+1}`;return`${o}//${r}${u}${s}`}const en=df(Jg(pt),yt(),n=>new pt(n)),nE=Xg([yt(),tn("base64")]),by=df(Jg(kt),nE,n=>kt.from(n[0],"base64")),rE=30*1e3;function jM(n){if(/^https?:/.test(n)===!1)throw new TypeError("Endpoint URL must start with `http:` or `https:`.");return n}function He(n){let t,e;if(typeof n=="string")t=n;else if(n){const{commitment:r,...i}=n;t=r,e=i}return{commitment:t,config:e}}function iE(n){return n.map(t=>"memcmp"in t?{...t,memcmp:{...t.memcmp,encoding:t.memcmp.encoding??"base58"}}:t)}function sE(n){return hr([ft({jsonrpc:tn("2.0"),id:yt(),result:n}),ft({jsonrpc:tn("2.0"),id:yt(),error:ft({code:eu(),message:yt(),data:Dt(yP())})})])}const WM=sE(eu());function ee(n){return df(sE(n),WM,t=>"error"in t?t:{...t,result:wt(t.result,n)})}function En(n){return ee(ft({context:ft({slot:X()}),value:n}))}function r0(n){return ft({context:ft({slot:X()}),value:n})}function _y(n,t){return n===0?new _a({header:t.header,staticAccountKeys:t.accountKeys.map(e=>new pt(e)),recentBlockhash:t.recentBlockhash,compiledInstructions:t.instructions.map(e=>({programIdIndex:e.programIdIndex,accountKeyIndexes:e.accounts,data:Tn.decode(e.data)})),addressTableLookups:t.addressTableLookups}):new yi(t)}const ZM=ft({foundation:X(),foundationTerm:X(),initial:X(),taper:X(),terminal:X()}),qM=ee(Et(vt(ft({epoch:X(),effectiveSlot:X(),amount:X(),postBalance:X(),commission:Dt(vt(X()))})))),QM=Et(ft({slot:X(),prioritizationFee:X()})),YM=ft({total:X(),validator:X(),foundation:X(),epoch:X()}),JM=ft({epoch:X(),slotIndex:X(),slotsInEpoch:X(),absoluteSlot:X(),blockHeight:Dt(X()),transactionCount:Dt(X())}),XM=ft({slotsPerEpoch:X(),leaderScheduleSlotOffset:X(),warmup:Fi(),firstNormalEpoch:X(),firstNormalSlot:X()}),tL=_A(yt(),Et(X())),va=vt(hr([ft({}),yt()])),eL=ft({err:va}),nL=tn("receivedSignature"),rL=ft({"solana-core":yt(),"feature-set":Dt(X())}),iL=ft({program:yt(),programId:en,parsed:eu()}),sL=ft({programId:en,accounts:Et(en),data:yt()}),oE=En(ft({err:vt(hr([ft({}),yt()])),logs:vt(Et(yt())),accounts:Dt(vt(Et(vt(ft({executable:Fi(),owner:yt(),lamports:X(),data:Et(yt()),rentEpoch:Dt(X())}))))),unitsConsumed:Dt(X()),returnData:Dt(vt(ft({programId:yt(),data:Xg([yt(),tn("base64")])}))),innerInstructions:Dt(vt(Et(ft({index:X(),instructions:Et(hr([iL,sL]))}))))})),oL=En(ft({byIdentity:_A(yt(),Et(X())),range:ft({firstSlot:X(),lastSlot:X()})}));function aL(n,t,e,r,i,s){const o=e||$M;let c;s!=null&&console.warn("You have supplied an `httpAgent` when creating a `Connection` in a browser environment.It has been ignored; `httpAgent` is only used in Node environments.");let u;return r&&(u=async(h,y)=>{const A=await new Promise((b,R)=>{try{r(h,y,(k,S)=>b([k,S]))}catch(k){R(k)}});return await o(...A)}),new HP(async(h,y)=>{const A={method:"POST",body:h,agent:c,headers:Object.assign({"Content-Type":"application/json"},t||{},aU)};try{let b=5,R,k=500;for(;u?R=await u(n,A):R=await o(n,A),!(R.status!==429||i===!0||(b-=1,b===0));)console.error(`Server responded with ${R.status} ${R.statusText}. Retrying after ${k}ms delay...`),await Aa(k),k*=2;const S=await R.text();R.ok?y(null,S):y(new Error(`${R.status} ${R.statusText}: ${S}`))}catch(b){b instanceof Error&&y(b)}},{})}function cL(n){return(t,e)=>new Promise((r,i)=>{n.request(t,e,(s,o)=>{if(s){i(s);return}r(o)})})}function uL(n){return t=>new Promise((e,r)=>{t.length===0&&e([]);const i=t.map(s=>n.request(s.methodName,s.args));n.request(i,(s,o)=>{if(s){r(s);return}e(o)})})}const lL=ee(ZM),fL=ee(YM),hL=ee(QM),dL=ee(JM),pL=ee(XM),gL=ee(tL),yL=ee(X()),mL=En(ft({total:X(),circulating:X(),nonCirculating:X(),nonCirculatingAccounts:Et(en)})),Ay=ft({amount:yt(),uiAmount:vt(X()),decimals:X(),uiAmountString:Dt(yt())}),wL=En(Et(ft({address:en,amount:yt(),uiAmount:vt(X()),decimals:X(),uiAmountString:Dt(yt())}))),bL=En(Et(ft({pubkey:en,account:ft({executable:Fi(),owner:en,lamports:X(),data:by,rentEpoch:X()})}))),Ey=ft({program:yt(),parsed:eu(),space:X()}),_L=En(Et(ft({pubkey:en,account:ft({executable:Fi(),owner:en,lamports:X(),data:Ey,rentEpoch:X()})}))),AL=En(Et(ft({lamports:X(),address:en}))),_f=ft({executable:Fi(),owner:en,lamports:X(),data:by,rentEpoch:X()}),EL=ft({pubkey:en,account:_f}),vL=df(hr([Jg(kt),Ey]),hr([nE,Ey]),n=>Array.isArray(n)?wt(n,by):n),vy=ft({executable:Fi(),owner:en,lamports:X(),data:vL,rentEpoch:X()}),xL=ft({pubkey:en,account:vy}),RL=ft({state:hr([tn("active"),tn("inactive"),tn("activating"),tn("deactivating")]),active:X(),inactive:X()}),SL=ee(Et(ft({signature:yt(),slot:X(),err:va,memo:vt(yt()),blockTime:Dt(vt(X()))}))),IL=ee(Et(ft({signature:yt(),slot:X(),err:va,memo:vt(yt()),blockTime:Dt(vt(X()))}))),kL=ft({subscription:X(),result:r0(_f)}),TL=ft({pubkey:en,account:_f}),OL=ft({subscription:X(),result:r0(TL)}),NL=ft({parent:X(),slot:X(),root:X()}),CL=ft({subscription:X(),result:NL}),BL=hr([ft({type:hr([tn("firstShredReceived"),tn("completed"),tn("optimisticConfirmation"),tn("root")]),slot:X(),timestamp:X()}),ft({type:tn("createdBank"),parent:X(),slot:X(),timestamp:X()}),ft({type:tn("frozen"),slot:X(),timestamp:X(),stats:ft({numTransactionEntries:X(),numSuccessfulTransactions:X(),numFailedTransactions:X(),maxTransactionsPerEntry:X()})}),ft({type:tn("dead"),slot:X(),timestamp:X(),err:yt()})]),PL=ft({subscription:X(),result:BL}),ML=ft({subscription:X(),result:r0(hr([eL,nL]))}),LL=ft({subscription:X(),result:X()}),UL=ft({pubkey:yt(),gossip:vt(yt()),tpu:vt(yt()),rpc:vt(yt()),version:vt(yt())}),aE=ft({votePubkey:yt(),nodePubkey:yt(),activatedStake:X(),epochVoteAccount:Fi(),epochCredits:Et(Xg([X(),X(),X()])),commission:X(),lastVote:X(),rootSlot:vt(X())}),DL=ee(ft({current:Et(aE),delinquent:Et(aE)})),FL=hr([tn("processed"),tn("confirmed"),tn("finalized")]),$L=ft({slot:X(),confirmations:vt(X()),err:va,confirmationStatus:Dt(FL)}),HL=En(Et(vt($L))),zL=ee(X()),cE=ft({accountKey:en,writableIndexes:Et(X()),readonlyIndexes:Et(X())}),xy=ft({signatures:Et(yt()),message:ft({accountKeys:Et(yt()),header:ft({numRequiredSignatures:X(),numReadonlySignedAccounts:X(),numReadonlyUnsignedAccounts:X()}),instructions:Et(ft({accounts:Et(X()),data:yt(),programIdIndex:X()})),recentBlockhash:yt(),addressTableLookups:Dt(Et(cE))})}),uE=ft({pubkey:en,signer:Fi(),writable:Fi(),source:Dt(hr([tn("transaction"),tn("lookupTable")]))}),lE=ft({accountKeys:Et(uE),signatures:Et(yt())}),fE=ft({parsed:eu(),program:yt(),programId:en}),hE=ft({accounts:Et(en),data:yt(),programId:en}),GL=hr([hE,fE]),VL=hr([ft({parsed:eu(),program:yt(),programId:yt()}),ft({accounts:Et(yt()),data:yt(),programId:yt()})]),dE=df(GL,VL,n=>"accounts"in n?wt(n,hE):wt(n,fE)),pE=ft({signatures:Et(yt()),message:ft({accountKeys:Et(uE),instructions:Et(dE),recentBlockhash:yt(),addressTableLookups:Dt(vt(Et(cE)))})}),i0=ft({accountIndex:X(),mint:yt(),owner:Dt(yt()),programId:Dt(yt()),uiTokenAmount:Ay}),gE=ft({writable:Et(en),readonly:Et(en)}),s0=ft({err:va,fee:X(),innerInstructions:Dt(vt(Et(ft({index:X(),instructions:Et(ft({accounts:Et(X()),data:yt(),programIdIndex:X()}))})))),preBalances:Et(X()),postBalances:Et(X()),logMessages:Dt(vt(Et(yt()))),preTokenBalances:Dt(vt(Et(i0))),postTokenBalances:Dt(vt(Et(i0))),loadedAddresses:Dt(gE),computeUnitsConsumed:Dt(X())}),Ry=ft({err:va,fee:X(),innerInstructions:Dt(vt(Et(ft({index:X(),instructions:Et(dE)})))),preBalances:Et(X()),postBalances:Et(X()),logMessages:Dt(vt(Et(yt()))),preTokenBalances:Dt(vt(Et(i0))),postTokenBalances:Dt(vt(Et(i0))),loadedAddresses:Dt(gE),computeUnitsConsumed:Dt(X())}),su=hr([tn(0),tn("legacy")]),xa=ft({pubkey:yt(),lamports:X(),postBalance:vt(X()),rewardType:vt(yt()),commission:Dt(vt(X()))}),KL=ee(vt(ft({blockhash:yt(),previousBlockhash:yt(),parentSlot:X(),transactions:Et(ft({transaction:xy,meta:vt(s0),version:Dt(su)})),rewards:Dt(Et(xa)),blockTime:vt(X()),blockHeight:vt(X())}))),jL=ee(vt(ft({blockhash:yt(),previousBlockhash:yt(),parentSlot:X(),rewards:Dt(Et(xa)),blockTime:vt(X()),blockHeight:vt(X())}))),WL=ee(vt(ft({blockhash:yt(),previousBlockhash:yt(),parentSlot:X(),transactions:Et(ft({transaction:lE,meta:vt(s0),version:Dt(su)})),rewards:Dt(Et(xa)),blockTime:vt(X()),blockHeight:vt(X())}))),ZL=ee(vt(ft({blockhash:yt(),previousBlockhash:yt(),parentSlot:X(),transactions:Et(ft({transaction:pE,meta:vt(Ry),version:Dt(su)})),rewards:Dt(Et(xa)),blockTime:vt(X()),blockHeight:vt(X())}))),qL=ee(vt(ft({blockhash:yt(),previousBlockhash:yt(),parentSlot:X(),transactions:Et(ft({transaction:lE,meta:vt(Ry),version:Dt(su)})),rewards:Dt(Et(xa)),blockTime:vt(X()),blockHeight:vt(X())}))),QL=ee(vt(ft({blockhash:yt(),previousBlockhash:yt(),parentSlot:X(),rewards:Dt(Et(xa)),blockTime:vt(X()),blockHeight:vt(X())}))),YL=ee(vt(ft({blockhash:yt(),previousBlockhash:yt(),parentSlot:X(),transactions:Et(ft({transaction:xy,meta:vt(s0)})),rewards:Dt(Et(xa)),blockTime:vt(X())}))),yE=ee(vt(ft({blockhash:yt(),previousBlockhash:yt(),parentSlot:X(),signatures:Et(yt()),blockTime:vt(X())}))),Sy=ee(vt(ft({slot:X(),meta:vt(s0),blockTime:Dt(vt(X())),transaction:xy,version:Dt(su)}))),o0=ee(vt(ft({slot:X(),transaction:pE,meta:vt(Ry),blockTime:Dt(vt(X())),version:Dt(su)}))),JL=En(ft({blockhash:yt(),lastValidBlockHeight:X()})),XL=En(Fi()),tU=ft({slot:X(),numTransactions:X(),numSlots:X(),samplePeriodSecs:X()}),eU=ee(Et(tU)),nU=En(vt(ft({feeCalculator:ft({lamportsPerSignature:X()})}))),rU=ee(yt()),iU=ee(yt()),sU=ft({err:va,logs:Et(yt()),signature:yt()}),oU=ft({result:r0(sU),subscription:X()}),aU={"solana-client":"js/1.0.0-maintenance"};class mE{constructor(t,e){this._commitment=void 0,this._confirmTransactionInitialTimeout=void 0,this._rpcEndpoint=void 0,this._rpcWsEndpoint=void 0,this._rpcClient=void 0,this._rpcRequest=void 0,this._rpcBatchRequest=void 0,this._rpcWebSocket=void 0,this._rpcWebSocketConnected=!1,this._rpcWebSocketHeartbeat=null,this._rpcWebSocketIdleTimeout=null,this._rpcWebSocketGeneration=0,this._disableBlockhashCaching=!1,this._pollingBlockhash=!1,this._blockhashInfo={latestBlockhash:null,lastFetch:0,transactionSignatures:[],simulatedSignatures:[]},this._nextClientSubscriptionId=0,this._subscriptionDisposeFunctionsByClientSubscriptionId={},this._subscriptionHashByClientSubscriptionId={},this._subscriptionStateChangeCallbacksByHash={},this._subscriptionCallbacksByServerSubscriptionId={},this._subscriptionsByHash={},this._subscriptionsAutoDisposedByRpc=new Set,this.getBlockHeight=(()=>{const f={};return async h=>{const{commitment:y,config:A}=He(h),b=this._buildArgs([],y,void 0,A),R=XA(b);return f[R]=f[R]??(async()=>{try{const k=await this._rpcRequest("getBlockHeight",b),S=wt(k,ee(X()));if("error"in S)throw new Mt(S.error,"failed to get block height information");return S.result}finally{delete f[R]}})(),await f[R]}})();let r,i,s,o,c,u;e&&typeof e=="string"?this._commitment=e:e&&(this._commitment=e.commitment,this._confirmTransactionInitialTimeout=e.confirmTransactionInitialTimeout,r=e.wsEndpoint,i=e.httpHeaders,s=e.fetch,o=e.fetchMiddleware,c=e.disableRetryOnRateLimit,u=e.httpAgent),this._rpcEndpoint=jM(t),this._rpcWsEndpoint=r||KM(t),this._rpcClient=aL(t,i,s,o,c,u),this._rpcRequest=cL(this._rpcClient),this._rpcBatchRequest=uL(this._rpcClient),this._rpcWebSocket=new HM(this._rpcWsEndpoint,{autoconnect:!1,max_reconnects:1/0}),this._rpcWebSocket.on("open",this._wsOnOpen.bind(this)),this._rpcWebSocket.on("error",this._wsOnError.bind(this)),this._rpcWebSocket.on("close",this._wsOnClose.bind(this)),this._rpcWebSocket.on("accountNotification",this._wsOnAccountNotification.bind(this)),this._rpcWebSocket.on("programNotification",this._wsOnProgramAccountNotification.bind(this)),this._rpcWebSocket.on("slotNotification",this._wsOnSlotNotification.bind(this)),this._rpcWebSocket.on("slotsUpdatesNotification",this._wsOnSlotUpdatesNotification.bind(this)),this._rpcWebSocket.on("signatureNotification",this._wsOnSignatureNotification.bind(this)),this._rpcWebSocket.on("rootNotification",this._wsOnRootNotification.bind(this)),this._rpcWebSocket.on("logsNotification",this._wsOnLogsNotification.bind(this))}get commitment(){return this._commitment}get rpcEndpoint(){return this._rpcEndpoint}async getBalanceAndContext(t,e){const{commitment:r,config:i}=He(e),s=this._buildArgs([t.toBase58()],r,void 0,i),o=await this._rpcRequest("getBalance",s),c=wt(o,En(X()));if("error"in c)throw new Mt(c.error,`failed to get balance for ${t.toBase58()}`);return c.result}async getBalance(t,e){return await this.getBalanceAndContext(t,e).then(r=>r.value).catch(r=>{throw new Error("failed to get balance of account "+t.toBase58()+": "+r)})}async getBlockTime(t){const e=await this._rpcRequest("getBlockTime",[t]),r=wt(e,ee(vt(X())));if("error"in r)throw new Mt(r.error,`failed to get block time for slot ${t}`);return r.result}async getMinimumLedgerSlot(){const t=await this._rpcRequest("minimumLedgerSlot",[]),e=wt(t,ee(X()));if("error"in e)throw new Mt(e.error,"failed to get minimum ledger slot");return e.result}async getFirstAvailableBlock(){const t=await this._rpcRequest("getFirstAvailableBlock",[]),e=wt(t,yL);if("error"in e)throw new Mt(e.error,"failed to get first available block");return e.result}async getSupply(t){let e={};typeof t=="string"?e={commitment:t}:t?e={...t,commitment:t&&t.commitment||this.commitment}:e={commitment:this.commitment};const r=await this._rpcRequest("getSupply",[e]),i=wt(r,mL);if("error"in i)throw new Mt(i.error,"failed to get supply");return i.result}async getTokenSupply(t,e){const r=this._buildArgs([t.toBase58()],e),i=await this._rpcRequest("getTokenSupply",r),s=wt(i,En(Ay));if("error"in s)throw new Mt(s.error,"failed to get token supply");return s.result}async getTokenAccountBalance(t,e){const r=this._buildArgs([t.toBase58()],e),i=await this._rpcRequest("getTokenAccountBalance",r),s=wt(i,En(Ay));if("error"in s)throw new Mt(s.error,"failed to get token account balance");return s.result}async getTokenAccountsByOwner(t,e,r){const{commitment:i,config:s}=He(r);let o=[t.toBase58()];"mint"in e?o.push({mint:e.mint.toBase58()}):o.push({programId:e.programId.toBase58()});const c=this._buildArgs(o,i,"base64",s),u=await this._rpcRequest("getTokenAccountsByOwner",c),f=wt(u,bL);if("error"in f)throw new Mt(f.error,`failed to get token accounts owned by account ${t.toBase58()}`);return f.result}async getParsedTokenAccountsByOwner(t,e,r){let i=[t.toBase58()];"mint"in e?i.push({mint:e.mint.toBase58()}):i.push({programId:e.programId.toBase58()});const s=this._buildArgs(i,r,"jsonParsed"),o=await this._rpcRequest("getTokenAccountsByOwner",s),c=wt(o,_L);if("error"in c)throw new Mt(c.error,`failed to get token accounts owned by account ${t.toBase58()}`);return c.result}async getLargestAccounts(t){const e={...t,commitment:t&&t.commitment||this.commitment},r=e.filter||e.commitment?[e]:[],i=await this._rpcRequest("getLargestAccounts",r),s=wt(i,AL);if("error"in s)throw new Mt(s.error,"failed to get largest accounts");return s.result}async getTokenLargestAccounts(t,e){const r=this._buildArgs([t.toBase58()],e),i=await this._rpcRequest("getTokenLargestAccounts",r),s=wt(i,wL);if("error"in s)throw new Mt(s.error,"failed to get token largest accounts");return s.result}async getAccountInfoAndContext(t,e){const{commitment:r,config:i}=He(e),s=this._buildArgs([t.toBase58()],r,"base64",i),o=await this._rpcRequest("getAccountInfo",s),c=wt(o,En(vt(_f)));if("error"in c)throw new Mt(c.error,`failed to get info about account ${t.toBase58()}`);return c.result}async getParsedAccountInfo(t,e){const{commitment:r,config:i}=He(e),s=this._buildArgs([t.toBase58()],r,"jsonParsed",i),o=await this._rpcRequest("getAccountInfo",s),c=wt(o,En(vt(vy)));if("error"in c)throw new Mt(c.error,`failed to get info about account ${t.toBase58()}`);return c.result}async getAccountInfo(t,e){try{return(await this.getAccountInfoAndContext(t,e)).value}catch(r){throw new Error("failed to get info about account "+t.toBase58()+": "+r)}}async getMultipleParsedAccounts(t,e){const{commitment:r,config:i}=He(e),s=t.map(f=>f.toBase58()),o=this._buildArgs([s],r,"jsonParsed",i),c=await this._rpcRequest("getMultipleAccounts",o),u=wt(c,En(Et(vt(vy))));if("error"in u)throw new Mt(u.error,`failed to get info for accounts ${s}`);return u.result}async getMultipleAccountsInfoAndContext(t,e){const{commitment:r,config:i}=He(e),s=t.map(f=>f.toBase58()),o=this._buildArgs([s],r,"base64",i),c=await this._rpcRequest("getMultipleAccounts",o),u=wt(c,En(Et(vt(_f))));if("error"in u)throw new Mt(u.error,`failed to get info for accounts ${s}`);return u.result}async getMultipleAccountsInfo(t,e){return(await this.getMultipleAccountsInfoAndContext(t,e)).value}async getStakeActivation(t,e,r){const{commitment:i,config:s}=He(e),o=this._buildArgs([t.toBase58()],i,void 0,{...s,epoch:r??(s==null?void 0:s.epoch)}),c=await this._rpcRequest("getStakeActivation",o),u=wt(c,ee(RL));if("error"in u)throw new Mt(u.error,`failed to get Stake Activation ${t.toBase58()}`);return u.result}async getProgramAccounts(t,e){const{commitment:r,config:i}=He(e),{encoding:s,...o}=i||{},c=this._buildArgs([t.toBase58()],r,s||"base64",{...o,...o.filters?{filters:iE(o.filters)}:null}),u=await this._rpcRequest("getProgramAccounts",c),f=Et(EL),h=o.withContext===!0?wt(u,En(f)):wt(u,ee(f));if("error"in h)throw new Mt(h.error,`failed to get accounts owned by program ${t.toBase58()}`);return h.result}async getParsedProgramAccounts(t,e){const{commitment:r,config:i}=He(e),s=this._buildArgs([t.toBase58()],r,"jsonParsed",i),o=await this._rpcRequest("getProgramAccounts",s),c=wt(o,ee(Et(xL)));if("error"in c)throw new Mt(c.error,`failed to get accounts owned by program ${t.toBase58()}`);return c.result}async confirmTransaction(t,e){var s;let r;if(typeof t=="string")r=t;else{const o=t;if((s=o.abortSignal)!=null&&s.aborted)return Promise.reject(o.abortSignal.reason);r=o.signature}let i;try{i=Tn.decode(r)}catch{throw new Error("signature must be base58 encoded: "+r)}return _e(i.length===64,"signature has invalid length"),typeof t=="string"?await this.confirmTransactionUsingLegacyTimeoutStrategy({commitment:e||this.commitment,signature:r}):"lastValidBlockHeight"in t?await this.confirmTransactionUsingBlockHeightExceedanceStrategy({commitment:e||this.commitment,strategy:t}):await this.confirmTransactionUsingDurableNonceStrategy({commitment:e||this.commitment,strategy:t})}getCancellationPromise(t){return new Promise((e,r)=>{t!=null&&(t.aborted?r(t.reason):t.addEventListener("abort",()=>{r(t.reason)}))})}getTransactionConfirmationPromise({commitment:t,signature:e}){let r,i,s=!1;const o=new Promise((u,f)=>{try{r=this.onSignature(e,(y,A)=>{r=void 0;const b={context:A,value:y};u({__type:Es.PROCESSED,response:b})},t);const h=new Promise(y=>{r==null?y():i=this._onSubscriptionStateChange(r,A=>{A==="subscribed"&&y()})});(async()=>{if(await h,s)return;const y=await this.getSignatureStatus(e);if(s||y==null)return;const{context:A,value:b}=y;if(b!=null)if(b!=null&&b.err)f(b.err);else{switch(t){case"confirmed":case"single":case"singleGossip":{if(b.confirmationStatus==="processed")return;break}case"finalized":case"max":case"root":{if(b.confirmationStatus==="processed"||b.confirmationStatus==="confirmed")return;break}case"processed":case"recent":}s=!0,u({__type:Es.PROCESSED,response:{context:A,value:b}})}})()}catch(h){f(h)}});return{abortConfirmation:()=>{i&&(i(),i=void 0),r!=null&&(this.removeSignatureListener(r),r=void 0)},confirmationPromise:o}}async confirmTransactionUsingBlockHeightExceedanceStrategy({commitment:t,strategy:{abortSignal:e,lastValidBlockHeight:r,signature:i}}){let s=!1;const o=new Promise(y=>{const A=async()=>{try{return await this.getBlockHeight(t)}catch{return-1}};(async()=>{let b=await A();if(!s){for(;b<=r;)if(await Aa(1e3),s||(b=await A(),s))return;y({__type:Es.BLOCKHEIGHT_EXCEEDED})}})()}),{abortConfirmation:c,confirmationPromise:u}=this.getTransactionConfirmationPromise({commitment:t,signature:i}),f=this.getCancellationPromise(e);let h;try{const y=await Promise.race([f,u,o]);if(y.__type===Es.PROCESSED)h=y.response;else throw new uy(i)}finally{s=!0,c()}return h}async confirmTransactionUsingDurableNonceStrategy({commitment:t,strategy:{abortSignal:e,minContextSlot:r,nonceAccountPubkey:i,nonceValue:s,signature:o}}){let c=!1;const u=new Promise(b=>{let R=s,k=null;const S=async()=>{try{const{context:B,value:H}=await this.getNonceAndContext(i,{commitment:t,minContextSlot:r});return k=B.slot,H==null?void 0:H.nonce}catch{return R}};(async()=>{if(R=await S(),!c)for(;;){if(s!==R){b({__type:Es.NONCE_INVALID,slotInWhichNonceDidAdvance:k});return}if(await Aa(2e3),c||(R=await S(),c))return}})()}),{abortConfirmation:f,confirmationPromise:h}=this.getTransactionConfirmationPromise({commitment:t,signature:o}),y=this.getCancellationPromise(e);let A;try{const b=await Promise.race([y,h,u]);if(b.__type===Es.PROCESSED)A=b.response;else{let R;for(;;){const k=await this.getSignatureStatus(o);if(k==null)break;if(k.context.slot<(b.slotInWhichNonceDidAdvance??r)){await Aa(400);continue}R=k;break}if(R!=null&&R.value){const k=t||"finalized",{confirmationStatus:S}=R.value;switch(k){case"processed":case"recent":if(S!=="processed"&&S!=="confirmed"&&S!=="finalized")throw new nu(o);break;case"confirmed":case"single":case"singleGossip":if(S!=="confirmed"&&S!=="finalized")throw new nu(o);break;case"finalized":case"max":case"root":if(S!=="finalized")throw new nu(o);break;default:}A={context:R.context,value:{err:R.value.err}}}else throw new nu(o)}}finally{c=!0,f()}return A}async confirmTransactionUsingLegacyTimeoutStrategy({commitment:t,signature:e}){let r;const i=new Promise(u=>{let f=this._confirmTransactionInitialTimeout||6e4;switch(t){case"processed":case"recent":case"single":case"confirmed":case"singleGossip":{f=this._confirmTransactionInitialTimeout||3e4;break}}r=setTimeout(()=>u({__type:Es.TIMED_OUT,timeoutMs:f}),f)}),{abortConfirmation:s,confirmationPromise:o}=this.getTransactionConfirmationPromise({commitment:t,signature:e});let c;try{const u=await Promise.race([o,i]);if(u.__type===Es.PROCESSED)c=u.response;else throw new ly(e,u.timeoutMs/1e3)}finally{clearTimeout(r),s()}return c}async getClusterNodes(){const t=await this._rpcRequest("getClusterNodes",[]),e=wt(t,ee(Et(UL)));if("error"in e)throw new Mt(e.error,"failed to get cluster nodes");return e.result}async getVoteAccounts(t){const e=this._buildArgs([],t),r=await this._rpcRequest("getVoteAccounts",e),i=wt(r,DL);if("error"in i)throw new Mt(i.error,"failed to get vote accounts");return i.result}async getSlot(t){const{commitment:e,config:r}=He(t),i=this._buildArgs([],e,void 0,r),s=await this._rpcRequest("getSlot",i),o=wt(s,ee(X()));if("error"in o)throw new Mt(o.error,"failed to get slot");return o.result}async getSlotLeader(t){const{commitment:e,config:r}=He(t),i=this._buildArgs([],e,void 0,r),s=await this._rpcRequest("getSlotLeader",i),o=wt(s,ee(yt()));if("error"in o)throw new Mt(o.error,"failed to get slot leader");return o.result}async getSlotLeaders(t,e){const r=[t,e],i=await this._rpcRequest("getSlotLeaders",r),s=wt(i,ee(Et(en)));if("error"in s)throw new Mt(s.error,"failed to get slot leaders");return s.result}async getSignatureStatus(t,e){const{context:r,value:i}=await this.getSignatureStatuses([t],e);_e(i.length===1);const s=i[0];return{context:r,value:s}}async getSignatureStatuses(t,e){const r=[t];e&&r.push(e);const i=await this._rpcRequest("getSignatureStatuses",r),s=wt(i,HL);if("error"in s)throw new Mt(s.error,"failed to get signature status");return s.result}async getTransactionCount(t){const{commitment:e,config:r}=He(t),i=this._buildArgs([],e,void 0,r),s=await this._rpcRequest("getTransactionCount",i),o=wt(s,ee(X()));if("error"in o)throw new Mt(o.error,"failed to get transaction count");return o.result}async getTotalSupply(t){return(await this.getSupply({commitment:t,excludeNonCirculatingAccountsList:!0})).value.total}async getInflationGovernor(t){const e=this._buildArgs([],t),r=await this._rpcRequest("getInflationGovernor",e),i=wt(r,lL);if("error"in i)throw new Mt(i.error,"failed to get inflation");return i.result}async getInflationReward(t,e,r){const{commitment:i,config:s}=He(r),o=this._buildArgs([t.map(f=>f.toBase58())],i,void 0,{...s,epoch:e??(s==null?void 0:s.epoch)}),c=await this._rpcRequest("getInflationReward",o),u=wt(c,qM);if("error"in u)throw new Mt(u.error,"failed to get inflation reward");return u.result}async getInflationRate(){const t=await this._rpcRequest("getInflationRate",[]),e=wt(t,fL);if("error"in e)throw new Mt(e.error,"failed to get inflation rate");return e.result}async getEpochInfo(t){const{commitment:e,config:r}=He(t),i=this._buildArgs([],e,void 0,r),s=await this._rpcRequest("getEpochInfo",i),o=wt(s,dL);if("error"in o)throw new Mt(o.error,"failed to get epoch info");return o.result}async getEpochSchedule(){const t=await this._rpcRequest("getEpochSchedule",[]),e=wt(t,pL);if("error"in e)throw new Mt(e.error,"failed to get epoch schedule");const r=e.result;return new tE(r.slotsPerEpoch,r.leaderScheduleSlotOffset,r.warmup,r.firstNormalEpoch,r.firstNormalSlot)}async getLeaderSchedule(){const t=await this._rpcRequest("getLeaderSchedule",[]),e=wt(t,gL);if("error"in e)throw new Mt(e.error,"failed to get leader schedule");return e.result}async getMinimumBalanceForRentExemption(t,e){const r=this._buildArgs([t],e),i=await this._rpcRequest("getMinimumBalanceForRentExemption",r),s=wt(i,zL);return"error"in s?(console.warn("Unable to fetch minimum balance for rent exemption"),0):s.result}async getRecentBlockhashAndContext(t){const{context:e,value:{blockhash:r}}=await this.getLatestBlockhashAndContext(t);return{context:e,value:{blockhash:r,feeCalculator:{get lamportsPerSignature(){throw new Error("The capability to fetch `lamportsPerSignature` using the `getRecentBlockhash` API is no longer offered by the network. Use the `getFeeForMessage` API to obtain the fee for a given message.")},toJSON(){return{}}}}}}async getRecentPerformanceSamples(t){const e=await this._rpcRequest("getRecentPerformanceSamples",t?[t]:[]),r=wt(e,eU);if("error"in r)throw new Mt(r.error,"failed to get recent performance samples");return r.result}async getFeeCalculatorForBlockhash(t,e){const r=this._buildArgs([t],e),i=await this._rpcRequest("getFeeCalculatorForBlockhash",r),s=wt(i,nU);if("error"in s)throw new Mt(s.error,"failed to get fee calculator");const{context:o,value:c}=s.result;return{context:o,value:c!==null?c.feeCalculator:null}}async getFeeForMessage(t,e){const r=te(t.serialize()).toString("base64"),i=this._buildArgs([r],e),s=await this._rpcRequest("getFeeForMessage",i),o=wt(s,En(vt(X())));if("error"in o)throw new Mt(o.error,"failed to get fee for message");if(o.result===null)throw new Error("invalid blockhash");return o.result}async getRecentPrioritizationFees(t){var o;const e=(o=t==null?void 0:t.lockedWritableAccounts)==null?void 0:o.map(c=>c.toBase58()),r=e!=null&&e.length?[e]:[],i=await this._rpcRequest("getRecentPrioritizationFees",r),s=wt(i,hL);if("error"in s)throw new Mt(s.error,"failed to get recent prioritization fees");return s.result}async getRecentBlockhash(t){try{return(await this.getRecentBlockhashAndContext(t)).value}catch(e){throw new Error("failed to get recent blockhash: "+e)}}async getLatestBlockhash(t){try{return(await this.getLatestBlockhashAndContext(t)).value}catch(e){throw new Error("failed to get recent blockhash: "+e)}}async getLatestBlockhashAndContext(t){const{commitment:e,config:r}=He(t),i=this._buildArgs([],e,void 0,r),s=await this._rpcRequest("getLatestBlockhash",i),o=wt(s,JL);if("error"in o)throw new Mt(o.error,"failed to get latest blockhash");return o.result}async isBlockhashValid(t,e){const{commitment:r,config:i}=He(e),s=this._buildArgs([t],r,void 0,i),o=await this._rpcRequest("isBlockhashValid",s),c=wt(o,XL);if("error"in c)throw new Mt(c.error,"failed to determine if the blockhash `"+t+"`is valid");return c.result}async getVersion(){const t=await this._rpcRequest("getVersion",[]),e=wt(t,ee(rL));if("error"in e)throw new Mt(e.error,"failed to get version");return e.result}async getGenesisHash(){const t=await this._rpcRequest("getGenesisHash",[]),e=wt(t,ee(yt()));if("error"in e)throw new Mt(e.error,"failed to get genesis hash");return e.result}async getBlock(t,e){const{commitment:r,config:i}=He(e),s=this._buildArgsAtLeastConfirmed([t],r,void 0,i),o=await this._rpcRequest("getBlock",s);try{switch(i==null?void 0:i.transactionDetails){case"accounts":{const c=wt(o,WL);if("error"in c)throw c.error;return c.result}case"none":{const c=wt(o,jL);if("error"in c)throw c.error;return c.result}default:{const c=wt(o,KL);if("error"in c)throw c.error;const{result:u}=c;return u?{...u,transactions:u.transactions.map(({transaction:f,meta:h,version:y})=>({meta:h,transaction:{...f,message:_y(y,f.message)},version:y}))}:null}}}catch(c){throw new Mt(c,"failed to get confirmed block")}}async getParsedBlock(t,e){const{commitment:r,config:i}=He(e),s=this._buildArgsAtLeastConfirmed([t],r,"jsonParsed",i),o=await this._rpcRequest("getBlock",s);try{switch(i==null?void 0:i.transactionDetails){case"accounts":{const c=wt(o,qL);if("error"in c)throw c.error;return c.result}case"none":{const c=wt(o,QL);if("error"in c)throw c.error;return c.result}default:{const c=wt(o,ZL);if("error"in c)throw c.error;return c.result}}}catch(c){throw new Mt(c,"failed to get block")}}async getBlockProduction(t){let e,r;if(typeof t=="string")r=t;else if(t){const{commitment:c,...u}=t;r=c,e=u}const i=this._buildArgs([],r,"base64",e),s=await this._rpcRequest("getBlockProduction",i),o=wt(s,oL);if("error"in o)throw new Mt(o.error,"failed to get block production information");return o.result}async getTransaction(t,e){const{commitment:r,config:i}=He(e),s=this._buildArgsAtLeastConfirmed([t],r,void 0,i),o=await this._rpcRequest("getTransaction",s),c=wt(o,Sy);if("error"in c)throw new Mt(c.error,"failed to get transaction");const u=c.result;return u&&{...u,transaction:{...u.transaction,message:_y(u.version,u.transaction.message)}}}async getParsedTransaction(t,e){const{commitment:r,config:i}=He(e),s=this._buildArgsAtLeastConfirmed([t],r,"jsonParsed",i),o=await this._rpcRequest("getTransaction",s),c=wt(o,o0);if("error"in c)throw new Mt(c.error,"failed to get transaction");return c.result}async getParsedTransactions(t,e){const{commitment:r,config:i}=He(e),s=t.map(u=>({methodName:"getTransaction",args:this._buildArgsAtLeastConfirmed([u],r,"jsonParsed",i)}));return(await this._rpcBatchRequest(s)).map(u=>{const f=wt(u,o0);if("error"in f)throw new Mt(f.error,"failed to get transactions");return f.result})}async getTransactions(t,e){const{commitment:r,config:i}=He(e),s=t.map(u=>({methodName:"getTransaction",args:this._buildArgsAtLeastConfirmed([u],r,void 0,i)}));return(await this._rpcBatchRequest(s)).map(u=>{const f=wt(u,Sy);if("error"in f)throw new Mt(f.error,"failed to get transactions");const h=f.result;return h&&{...h,transaction:{...h.transaction,message:_y(h.version,h.transaction.message)}}})}async getConfirmedBlock(t,e){const r=this._buildArgsAtLeastConfirmed([t],e),i=await this._rpcRequest("getBlock",r),s=wt(i,YL);if("error"in s)throw new Mt(s.error,"failed to get confirmed block");const o=s.result;if(!o)throw new Error("Confirmed block "+t+" not found");const c={...o,transactions:o.transactions.map(({transaction:u,meta:f})=>{const h=new yi(u.message);return{meta:f,transaction:{...u,message:h}}})};return{...c,transactions:c.transactions.map(({transaction:u,meta:f})=>({meta:f,transaction:Oe.populate(u.message,u.signatures)}))}}async getBlocks(t,e,r){const i=this._buildArgsAtLeastConfirmed(e!==void 0?[t,e]:[t],r),s=await this._rpcRequest("getBlocks",i),o=wt(s,ee(Et(X())));if("error"in o)throw new Mt(o.error,"failed to get blocks");return o.result}async getBlockSignatures(t,e){const r=this._buildArgsAtLeastConfirmed([t],e,void 0,{transactionDetails:"signatures",rewards:!1}),i=await this._rpcRequest("getBlock",r),s=wt(i,yE);if("error"in s)throw new Mt(s.error,"failed to get block");const o=s.result;if(!o)throw new Error("Block "+t+" not found");return o}async getConfirmedBlockSignatures(t,e){const r=this._buildArgsAtLeastConfirmed([t],e,void 0,{transactionDetails:"signatures",rewards:!1}),i=await this._rpcRequest("getBlock",r),s=wt(i,yE);if("error"in s)throw new Mt(s.error,"failed to get confirmed block");const o=s.result;if(!o)throw new Error("Confirmed block "+t+" not found");return o}async getConfirmedTransaction(t,e){const r=this._buildArgsAtLeastConfirmed([t],e),i=await this._rpcRequest("getTransaction",r),s=wt(i,Sy);if("error"in s)throw new Mt(s.error,"failed to get transaction");const o=s.result;if(!o)return o;const c=new yi(o.transaction.message),u=o.transaction.signatures;return{...o,transaction:Oe.populate(c,u)}}async getParsedConfirmedTransaction(t,e){const r=this._buildArgsAtLeastConfirmed([t],e,"jsonParsed"),i=await this._rpcRequest("getTransaction",r),s=wt(i,o0);if("error"in s)throw new Mt(s.error,"failed to get confirmed transaction");return s.result}async getParsedConfirmedTransactions(t,e){const r=t.map(o=>({methodName:"getTransaction",args:this._buildArgsAtLeastConfirmed([o],e,"jsonParsed")}));return(await this._rpcBatchRequest(r)).map(o=>{const c=wt(o,o0);if("error"in c)throw new Mt(c.error,"failed to get confirmed transactions");return c.result})}async getConfirmedSignaturesForAddress(t,e,r){let i={},s=await this.getFirstAvailableBlock();for(;!("until"in i)&&(e--,!(e<=0||e<s));)try{const u=await this.getConfirmedBlockSignatures(e,"finalized");u.signatures.length>0&&(i.until=u.signatures[u.signatures.length-1].toString())}catch(u){if(u instanceof Error&&u.message.includes("skipped"))continue;throw u}let o=await this.getSlot("finalized");for(;!("before"in i)&&(r++,!(r>o));)try{const u=await this.getConfirmedBlockSignatures(r);u.signatures.length>0&&(i.before=u.signatures[u.signatures.length-1].toString())}catch(u){if(u instanceof Error&&u.message.includes("skipped"))continue;throw u}return(await this.getConfirmedSignaturesForAddress2(t,i)).map(u=>u.signature)}async getConfirmedSignaturesForAddress2(t,e,r){const i=this._buildArgsAtLeastConfirmed([t.toBase58()],r,void 0,e),s=await this._rpcRequest("getConfirmedSignaturesForAddress2",i),o=wt(s,SL);if("error"in o)throw new Mt(o.error,"failed to get confirmed signatures for address");return o.result}async getSignaturesForAddress(t,e,r){const i=this._buildArgsAtLeastConfirmed([t.toBase58()],r,void 0,e),s=await this._rpcRequest("getSignaturesForAddress",i),o=wt(s,IL);if("error"in o)throw new Mt(o.error,"failed to get signatures for address");return o.result}async getAddressLookupTable(t,e){const{context:r,value:i}=await this.getAccountInfoAndContext(t,e);let s=null;return i!==null&&(s=new wy({key:t,state:wy.deserialize(i.data)})),{context:r,value:s}}async getNonceAndContext(t,e){const{context:r,value:i}=await this.getAccountInfoAndContext(t,e);let s=null;return i!==null&&(s=n0.fromAccountData(i.data)),{context:r,value:s}}async getNonce(t,e){return await this.getNonceAndContext(t,e).then(r=>r.value).catch(r=>{throw new Error("failed to get nonce for account "+t.toBase58()+": "+r)})}async requestAirdrop(t,e){const r=await this._rpcRequest("requestAirdrop",[t.toBase58(),e]),i=wt(r,rU);if("error"in i)throw new Mt(i.error,`airdrop to ${t.toBase58()} failed`);return i.result}async _blockhashWithExpiryBlockHeight(t){if(!t){for(;this._pollingBlockhash;)await Aa(100);const r=Date.now()-this._blockhashInfo.lastFetch>=rE;if(this._blockhashInfo.latestBlockhash!==null&&!r)return this._blockhashInfo.latestBlockhash}return await this._pollNewBlockhash()}async _pollNewBlockhash(){this._pollingBlockhash=!0;try{const t=Date.now(),e=this._blockhashInfo.latestBlockhash,r=e?e.blockhash:null;for(let i=0;i<50;i++){const s=await this.getLatestBlockhash("finalized");if(r!==s.blockhash)return this._blockhashInfo={latestBlockhash:s,lastFetch:Date.now(),transactionSignatures:[],simulatedSignatures:[]},s;await Aa(qA/2)}throw new Error(`Unable to obtain a new blockhash after ${Date.now()-t}ms`)}finally{this._pollingBlockhash=!1}}async getStakeMinimumDelegation(t){const{commitment:e,config:r}=He(t),i=this._buildArgs([],e,"base64",r),s=await this._rpcRequest("getStakeMinimumDelegation",i),o=wt(s,En(X()));if("error"in o)throw new Mt(o.error,"failed to get stake minimum delegation");return o.result}async simulateTransaction(t,e,r){if("message"in t){const k=t.serialize(),S=kt.from(k).toString("base64");if(Array.isArray(e)||r!==void 0)throw new Error("Invalid arguments");const B=e||{};B.encoding="base64","commitment"in B||(B.commitment=this.commitment),e&&typeof e=="object"&&"innerInstructions"in e&&(B.innerInstructions=e.innerInstructions);const H=[S,B],U=await this._rpcRequest("simulateTransaction",H),G=wt(U,oE);if("error"in G)throw new Error("failed to simulate transaction: "+G.error.message);return G.result}let i;if(t instanceof Oe){let R=t;i=new Oe,i.feePayer=R.feePayer,i.instructions=t.instructions,i.nonceInfo=R.nonceInfo,i.signatures=R.signatures}else i=Oe.populate(t),i._message=i._json=void 0;if(e!==void 0&&!Array.isArray(e))throw new Error("Invalid arguments");const s=e;if(i.nonceInfo&&s)i.sign(...s);else{let R=this._disableBlockhashCaching;for(;;){const k=await this._blockhashWithExpiryBlockHeight(R);if(i.lastValidBlockHeight=k.lastValidBlockHeight,i.recentBlockhash=k.blockhash,!s)break;if(i.sign(...s),!i.signature)throw new Error("!signature");const S=i.signature.toString("base64");if(!this._blockhashInfo.simulatedSignatures.includes(S)&&!this._blockhashInfo.transactionSignatures.includes(S)){this._blockhashInfo.simulatedSignatures.push(S);break}else R=!0}}const o=i._compile(),c=o.serialize(),f=i._serialize(c).toString("base64"),h={encoding:"base64",commitment:this.commitment};if(r){const R=(Array.isArray(r)?r:o.nonProgramIds()).map(k=>k.toBase58());h.accounts={encoding:"base64",addresses:R}}s&&(h.sigVerify=!0),e&&typeof e=="object"&&"innerInstructions"in e&&(h.innerInstructions=e.innerInstructions);const y=[f,h],A=await this._rpcRequest("simulateTransaction",y),b=wt(A,oE);if("error"in b){let R;if("data"in b.error&&(R=b.error.data.logs,R&&Array.isArray(R))){const k=`
|
|
23
|
+
`,S=k+R.join(k);console.error(b.error.message,S)}throw new go({action:"simulate",signature:"",transactionMessage:b.error.message,logs:R})}return b.result}async sendTransaction(t,e,r){if("version"in t){if(e&&Array.isArray(e))throw new Error("Invalid arguments");const o=t.serialize();return await this.sendRawTransaction(o,e)}if(e===void 0||!Array.isArray(e))throw new Error("Invalid arguments");const i=e;if(t.nonceInfo)t.sign(...i);else{let o=this._disableBlockhashCaching;for(;;){const c=await this._blockhashWithExpiryBlockHeight(o);if(t.lastValidBlockHeight=c.lastValidBlockHeight,t.recentBlockhash=c.blockhash,t.sign(...i),!t.signature)throw new Error("!signature");const u=t.signature.toString("base64");if(this._blockhashInfo.transactionSignatures.includes(u))o=!0;else{this._blockhashInfo.transactionSignatures.push(u);break}}}const s=t.serialize();return await this.sendRawTransaction(s,r)}async sendRawTransaction(t,e){const r=te(t).toString("base64");return await this.sendEncodedTransaction(r,e)}async sendEncodedTransaction(t,e){const r={encoding:"base64"},i=e&&e.skipPreflight,s=i===!0?"processed":e&&e.preflightCommitment||this.commitment;e&&e.maxRetries!=null&&(r.maxRetries=e.maxRetries),e&&e.minContextSlot!=null&&(r.minContextSlot=e.minContextSlot),i&&(r.skipPreflight=i),s&&(r.preflightCommitment=s);const o=[t,r],c=await this._rpcRequest("sendTransaction",o),u=wt(c,iU);if("error"in u){let f;throw"data"in u.error&&(f=u.error.data.logs),new go({action:i?"send":"simulate",signature:"",transactionMessage:u.error.message,logs:f})}return u.result}_wsOnOpen(){this._rpcWebSocketConnected=!0,this._rpcWebSocketHeartbeat=setInterval(()=>{(async()=>{try{await this._rpcWebSocket.notify("ping")}catch{}})()},5e3),this._updateSubscriptions()}_wsOnError(t){this._rpcWebSocketConnected=!1,console.error("ws error:",t.message)}_wsOnClose(t){if(this._rpcWebSocketConnected=!1,this._rpcWebSocketGeneration=(this._rpcWebSocketGeneration+1)%Number.MAX_SAFE_INTEGER,this._rpcWebSocketIdleTimeout&&(clearTimeout(this._rpcWebSocketIdleTimeout),this._rpcWebSocketIdleTimeout=null),this._rpcWebSocketHeartbeat&&(clearInterval(this._rpcWebSocketHeartbeat),this._rpcWebSocketHeartbeat=null),t===1e3){this._updateSubscriptions();return}this._subscriptionCallbacksByServerSubscriptionId={},Object.entries(this._subscriptionsByHash).forEach(([e,r])=>{this._setSubscription(e,{...r,state:"pending"})})}_setSubscription(t,e){var i;const r=(i=this._subscriptionsByHash[t])==null?void 0:i.state;if(this._subscriptionsByHash[t]=e,r!==e.state){const s=this._subscriptionStateChangeCallbacksByHash[t];s&&s.forEach(o=>{try{o(e.state)}catch{}})}}_onSubscriptionStateChange(t,e){var s;const r=this._subscriptionHashByClientSubscriptionId[t];if(r==null)return()=>{};const i=(s=this._subscriptionStateChangeCallbacksByHash)[r]||(s[r]=new Set);return i.add(e),()=>{i.delete(e),i.size===0&&delete this._subscriptionStateChangeCallbacksByHash[r]}}async _updateSubscriptions(){if(Object.keys(this._subscriptionsByHash).length===0){this._rpcWebSocketConnected&&(this._rpcWebSocketConnected=!1,this._rpcWebSocketIdleTimeout=setTimeout(()=>{this._rpcWebSocketIdleTimeout=null;try{this._rpcWebSocket.close()}catch(r){r instanceof Error&&console.log(`Error when closing socket connection: ${r.message}`)}},500));return}if(this._rpcWebSocketIdleTimeout!==null&&(clearTimeout(this._rpcWebSocketIdleTimeout),this._rpcWebSocketIdleTimeout=null,this._rpcWebSocketConnected=!0),!this._rpcWebSocketConnected){this._rpcWebSocket.connect();return}const t=this._rpcWebSocketGeneration,e=()=>t===this._rpcWebSocketGeneration;await Promise.all(Object.keys(this._subscriptionsByHash).map(async r=>{const i=this._subscriptionsByHash[r];if(i!==void 0)switch(i.state){case"pending":case"unsubscribed":if(i.callbacks.size===0){delete this._subscriptionsByHash[r],i.state==="unsubscribed"&&delete this._subscriptionCallbacksByServerSubscriptionId[i.serverSubscriptionId],await this._updateSubscriptions();return}await(async()=>{const{args:s,method:o}=i;try{this._setSubscription(r,{...i,state:"subscribing"});const c=await this._rpcWebSocket.call(o,s);this._setSubscription(r,{...i,serverSubscriptionId:c,state:"subscribed"}),this._subscriptionCallbacksByServerSubscriptionId[c]=i.callbacks,await this._updateSubscriptions()}catch(c){if(console.error(`Received ${c instanceof Error?"":"JSON-RPC "}error calling \`${o}\``,{args:s,error:c}),!e())return;this._setSubscription(r,{...i,state:"pending"}),await this._updateSubscriptions()}})();break;case"subscribed":i.callbacks.size===0&&await(async()=>{const{serverSubscriptionId:s,unsubscribeMethod:o}=i;if(this._subscriptionsAutoDisposedByRpc.has(s))this._subscriptionsAutoDisposedByRpc.delete(s);else{this._setSubscription(r,{...i,state:"unsubscribing"}),this._setSubscription(r,{...i,state:"unsubscribing"});try{await this._rpcWebSocket.call(o,[s])}catch(c){if(c instanceof Error&&console.error(`${o} error:`,c.message),!e())return;this._setSubscription(r,{...i,state:"subscribed"}),await this._updateSubscriptions();return}}this._setSubscription(r,{...i,state:"unsubscribed"}),await this._updateSubscriptions()})();break}}))}_handleServerNotification(t,e){const r=this._subscriptionCallbacksByServerSubscriptionId[t];r!==void 0&&r.forEach(i=>{try{i(...e)}catch(s){console.error(s)}})}_wsOnAccountNotification(t){const{result:e,subscription:r}=wt(t,kL);this._handleServerNotification(r,[e.value,e.context])}_makeSubscription(t,e){const r=this._nextClientSubscriptionId++,i=XA([t.method,e]),s=this._subscriptionsByHash[i];return s===void 0?this._subscriptionsByHash[i]={...t,args:e,callbacks:new Set([t.callback]),state:"pending"}:s.callbacks.add(t.callback),this._subscriptionHashByClientSubscriptionId[r]=i,this._subscriptionDisposeFunctionsByClientSubscriptionId[r]=async()=>{delete this._subscriptionDisposeFunctionsByClientSubscriptionId[r],delete this._subscriptionHashByClientSubscriptionId[r];const o=this._subscriptionsByHash[i];_e(o!==void 0,`Could not find a \`Subscription\` when tearing down client subscription #${r}`),o.callbacks.delete(t.callback),await this._updateSubscriptions()},this._updateSubscriptions(),r}onAccountChange(t,e,r){const{commitment:i,config:s}=He(r),o=this._buildArgs([t.toBase58()],i||this._commitment||"finalized","base64",s);return this._makeSubscription({callback:e,method:"accountSubscribe",unsubscribeMethod:"accountUnsubscribe"},o)}async removeAccountChangeListener(t){await this._unsubscribeClientSubscription(t,"account change")}_wsOnProgramAccountNotification(t){const{result:e,subscription:r}=wt(t,OL);this._handleServerNotification(r,[{accountId:e.value.pubkey,accountInfo:e.value.account},e.context])}onProgramAccountChange(t,e,r,i){const{commitment:s,config:o}=He(r),c=this._buildArgs([t.toBase58()],s||this._commitment||"finalized","base64",o||(i?{filters:iE(i)}:void 0));return this._makeSubscription({callback:e,method:"programSubscribe",unsubscribeMethod:"programUnsubscribe"},c)}async removeProgramAccountChangeListener(t){await this._unsubscribeClientSubscription(t,"program account change")}onLogs(t,e,r){const i=this._buildArgs([typeof t=="object"?{mentions:[t.toString()]}:t],r||this._commitment||"finalized");return this._makeSubscription({callback:e,method:"logsSubscribe",unsubscribeMethod:"logsUnsubscribe"},i)}async removeOnLogsListener(t){await this._unsubscribeClientSubscription(t,"logs")}_wsOnLogsNotification(t){const{result:e,subscription:r}=wt(t,oU);this._handleServerNotification(r,[e.value,e.context])}_wsOnSlotNotification(t){const{result:e,subscription:r}=wt(t,CL);this._handleServerNotification(r,[e])}onSlotChange(t){return this._makeSubscription({callback:t,method:"slotSubscribe",unsubscribeMethod:"slotUnsubscribe"},[])}async removeSlotChangeListener(t){await this._unsubscribeClientSubscription(t,"slot change")}_wsOnSlotUpdatesNotification(t){const{result:e,subscription:r}=wt(t,PL);this._handleServerNotification(r,[e])}onSlotUpdate(t){return this._makeSubscription({callback:t,method:"slotsUpdatesSubscribe",unsubscribeMethod:"slotsUpdatesUnsubscribe"},[])}async removeSlotUpdateListener(t){await this._unsubscribeClientSubscription(t,"slot update")}async _unsubscribeClientSubscription(t,e){const r=this._subscriptionDisposeFunctionsByClientSubscriptionId[t];r?await r():console.warn(`Ignored unsubscribe request because an active subscription with id \`${t}\` for '${e}' events could not be found.`)}_buildArgs(t,e,r,i){const s=e||this._commitment;if(s||r||i){let o={};r&&(o.encoding=r),s&&(o.commitment=s),i&&(o=Object.assign(o,i)),t.push(o)}return t}_buildArgsAtLeastConfirmed(t,e,r,i){const s=e||this._commitment;if(s&&!["confirmed","finalized"].includes(s))throw new Error("Using Connection with default commitment: `"+this._commitment+"`, but method requires at least `confirmed`");return this._buildArgs(t,e,r,i)}_wsOnSignatureNotification(t){const{result:e,subscription:r}=wt(t,ML);e.value!=="receivedSignature"&&this._subscriptionsAutoDisposedByRpc.add(r),this._handleServerNotification(r,e.value==="receivedSignature"?[{type:"received"},e.context]:[{type:"status",result:e.value},e.context])}onSignature(t,e,r){const i=this._buildArgs([t],r||this._commitment||"finalized"),s=this._makeSubscription({callback:(o,c)=>{if(o.type==="status"){e(o.result,c);try{this.removeSignatureListener(s)}catch{}}},method:"signatureSubscribe",unsubscribeMethod:"signatureUnsubscribe"},i);return s}onSignatureWithOptions(t,e,r){const{commitment:i,...s}={...r,commitment:r&&r.commitment||this._commitment||"finalized"},o=this._buildArgs([t],i,void 0,s),c=this._makeSubscription({callback:(u,f)=>{e(u,f);try{this.removeSignatureListener(c)}catch{}},method:"signatureSubscribe",unsubscribeMethod:"signatureUnsubscribe"},o);return c}async removeSignatureListener(t){await this._unsubscribeClientSubscription(t,"signature result")}_wsOnRootNotification(t){const{result:e,subscription:r}=wt(t,LL);this._handleServerNotification(r,[e])}onRootChange(t){return this._makeSubscription({callback:t,method:"rootSubscribe",unsubscribeMethod:"rootUnsubscribe"},[])}async removeRootChangeListener(t){await this._unsubscribeClientSubscription(t,"root change")}}class Ra{constructor(t){this._keypair=void 0,this._keypair=t??zA()}static generate(){return new Ra(zA())}static fromSecretKey(t,e){if(t.byteLength!==64)throw new Error("bad secret key size");const r=t.slice(32,64);if(!e||!e.skipValidation){const i=t.slice(0,32),s=Yd(i);for(let o=0;o<32;o++)if(r[o]!==s[o])throw new Error("provided secretKey is invalid")}return new Ra({publicKey:r,secretKey:t})}static fromSeed(t){const e=Yd(t),r=new Uint8Array(64);return r.set(t),r.set(e,32),new Ra({publicKey:e,secretKey:r})}get publicKey(){return new pt(this._keypair.publicKey)}get secretKey(){return new Uint8Array(this._keypair.secretKey)}}const vs=Object.freeze({CreateLookupTable:{index:0,layout:Nt([Ot("instruction"),iu("recentSlot"),me("bumpSeed")])},FreezeLookupTable:{index:1,layout:Nt([Ot("instruction")])},ExtendLookupTable:{index:2,layout:Nt([Ot("instruction"),iu(),Kn(ce(),fo(Ot(),-8),"addresses")])},DeactivateLookupTable:{index:3,layout:Nt([Ot("instruction")])},CloseLookupTable:{index:4,layout:Nt([Ot("instruction")])}});class cU{constructor(){}static decodeInstructionType(t){this.checkProgramId(t.programId);const r=Ot("instruction").decode(t.data);let i;for(const[s,o]of Object.entries(vs))if(o.index==r){i=s;break}if(!i)throw new Error("Invalid Instruction. Should be a LookupTable Instruction");return i}static decodeCreateLookupTable(t){this.checkProgramId(t.programId),this.checkKeysLength(t.keys,4);const{recentSlot:e}=Ie(vs.CreateLookupTable,t.data);return{authority:t.keys[1].pubkey,payer:t.keys[2].pubkey,recentSlot:Number(e)}}static decodeExtendLookupTable(t){if(this.checkProgramId(t.programId),t.keys.length<2)throw new Error(`invalid instruction; found ${t.keys.length} keys, expected at least 2`);const{addresses:e}=Ie(vs.ExtendLookupTable,t.data);return{lookupTable:t.keys[0].pubkey,authority:t.keys[1].pubkey,payer:t.keys.length>2?t.keys[2].pubkey:void 0,addresses:e.map(r=>new pt(r))}}static decodeCloseLookupTable(t){return this.checkProgramId(t.programId),this.checkKeysLength(t.keys,3),{lookupTable:t.keys[0].pubkey,authority:t.keys[1].pubkey,recipient:t.keys[2].pubkey}}static decodeFreezeLookupTable(t){return this.checkProgramId(t.programId),this.checkKeysLength(t.keys,2),{lookupTable:t.keys[0].pubkey,authority:t.keys[1].pubkey}}static decodeDeactivateLookupTable(t){return this.checkProgramId(t.programId),this.checkKeysLength(t.keys,2),{lookupTable:t.keys[0].pubkey,authority:t.keys[1].pubkey}}static checkProgramId(t){if(!t.equals(Iy.programId))throw new Error("invalid instruction; programId is not AddressLookupTable Program")}static checkKeysLength(t,e){if(t.length<e)throw new Error(`invalid instruction; found ${t.length} keys, expected at least ${e}`)}}class Iy{constructor(){}static createLookupTable(t){const[e,r]=pt.findProgramAddressSync([t.authority.toBuffer(),yA(BigInt(t.recentSlot),8)],this.programId),i=vs.CreateLookupTable,s=pe(i,{recentSlot:BigInt(t.recentSlot),bumpSeed:r}),o=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:t.authority,isSigner:!0,isWritable:!1},{pubkey:t.payer,isSigner:!0,isWritable:!0},{pubkey:Nn.programId,isSigner:!1,isWritable:!1}];return[new Pe({programId:this.programId,keys:o,data:s}),e]}static freezeLookupTable(t){const e=vs.FreezeLookupTable,r=pe(e),i=[{pubkey:t.lookupTable,isSigner:!1,isWritable:!0},{pubkey:t.authority,isSigner:!0,isWritable:!1}];return new Pe({programId:this.programId,keys:i,data:r})}static extendLookupTable(t){const e=vs.ExtendLookupTable,r=pe(e,{addresses:t.addresses.map(s=>s.toBytes())}),i=[{pubkey:t.lookupTable,isSigner:!1,isWritable:!0},{pubkey:t.authority,isSigner:!0,isWritable:!1}];return t.payer&&i.push({pubkey:t.payer,isSigner:!0,isWritable:!0},{pubkey:Nn.programId,isSigner:!1,isWritable:!1}),new Pe({programId:this.programId,keys:i,data:r})}static deactivateLookupTable(t){const e=vs.DeactivateLookupTable,r=pe(e),i=[{pubkey:t.lookupTable,isSigner:!1,isWritable:!0},{pubkey:t.authority,isSigner:!0,isWritable:!1}];return new Pe({programId:this.programId,keys:i,data:r})}static closeLookupTable(t){const e=vs.CloseLookupTable,r=pe(e),i=[{pubkey:t.lookupTable,isSigner:!1,isWritable:!0},{pubkey:t.authority,isSigner:!0,isWritable:!1},{pubkey:t.recipient,isSigner:!1,isWritable:!0}];return new Pe({programId:this.programId,keys:i,data:r})}}Iy.programId=new pt("AddressLookupTab1e1111111111111111111111111");class uU{constructor(){}static decodeInstructionType(t){this.checkProgramId(t.programId);const r=me("instruction").decode(t.data);let i;for(const[s,o]of Object.entries(Gi))if(o.index==r){i=s;break}if(!i)throw new Error("Instruction type incorrect; not a ComputeBudgetInstruction");return i}static decodeRequestUnits(t){this.checkProgramId(t.programId);const{units:e,additionalFee:r}=Ie(Gi.RequestUnits,t.data);return{units:e,additionalFee:r}}static decodeRequestHeapFrame(t){this.checkProgramId(t.programId);const{bytes:e}=Ie(Gi.RequestHeapFrame,t.data);return{bytes:e}}static decodeSetComputeUnitLimit(t){this.checkProgramId(t.programId);const{units:e}=Ie(Gi.SetComputeUnitLimit,t.data);return{units:e}}static decodeSetComputeUnitPrice(t){this.checkProgramId(t.programId);const{microLamports:e}=Ie(Gi.SetComputeUnitPrice,t.data);return{microLamports:e}}static checkProgramId(t){if(!t.equals(ky.programId))throw new Error("invalid instruction; programId is not ComputeBudgetProgram")}}const Gi=Object.freeze({RequestUnits:{index:0,layout:Nt([me("instruction"),Ot("units"),Ot("additionalFee")])},RequestHeapFrame:{index:1,layout:Nt([me("instruction"),Ot("bytes")])},SetComputeUnitLimit:{index:2,layout:Nt([me("instruction"),Ot("units")])},SetComputeUnitPrice:{index:3,layout:Nt([me("instruction"),iu("microLamports")])}});class ky{constructor(){}static requestUnits(t){const e=Gi.RequestUnits,r=pe(e,t);return new Pe({keys:[],programId:this.programId,data:r})}static requestHeapFrame(t){const e=Gi.RequestHeapFrame,r=pe(e,t);return new Pe({keys:[],programId:this.programId,data:r})}static setComputeUnitLimit(t){const e=Gi.SetComputeUnitLimit,r=pe(e,t);return new Pe({keys:[],programId:this.programId,data:r})}static setComputeUnitPrice(t){const e=Gi.SetComputeUnitPrice,r=pe(e,{microLamports:BigInt(t.microLamports)});return new Pe({keys:[],programId:this.programId,data:r})}}ky.programId=new pt("ComputeBudget111111111111111111111111111111");const wE=64,bE=32,_E=64,AE=Nt([me("numSignatures"),me("padding"),Jr("signatureOffset"),Jr("signatureInstructionIndex"),Jr("publicKeyOffset"),Jr("publicKeyInstructionIndex"),Jr("messageDataOffset"),Jr("messageDataSize"),Jr("messageInstructionIndex")]);class a0{constructor(){}static createInstructionWithPublicKey(t){const{publicKey:e,message:r,signature:i,instructionIndex:s}=t;_e(e.length===bE,`Public Key must be ${bE} bytes but received ${e.length} bytes`),_e(i.length===_E,`Signature must be ${_E} bytes but received ${i.length} bytes`);const o=AE.span,c=o+e.length,u=c+i.length,f=1,h=kt.alloc(u+r.length),y=s??65535;return AE.encode({numSignatures:f,padding:0,signatureOffset:c,signatureInstructionIndex:y,publicKeyOffset:o,publicKeyInstructionIndex:y,messageDataOffset:u,messageDataSize:r.length,messageInstructionIndex:y},h),h.fill(e,o),h.fill(i,c),h.fill(r,u),new Pe({keys:[],programId:a0.programId,data:h})}static createInstructionWithPrivateKey(t){const{privateKey:e,message:r,instructionIndex:i}=t;_e(e.length===wE,`Private key must be ${wE} bytes but received ${e.length} bytes`);try{const s=Ra.fromSecretKey(e),o=s.publicKey.toBytes(),c=ay(r,s.secretKey);return this.createInstructionWithPublicKey({publicKey:o,message:r,signature:c,instructionIndex:i})}catch(s){throw new Error(`Error creating instruction; ${s}`)}}}a0.programId=new pt("Ed25519SigVerify111111111111111111111111111");const lU=(n,t)=>{const e=Qd.sign(n,t);return[e.toCompactRawBytes(),e.recovery]};Qd.utils.isValidPrivateKey;const fU=Qd.getPublicKey,EE=32,Ty=20,vE=64,hU=11,Oy=Nt([me("numSignatures"),Jr("signatureOffset"),me("signatureInstructionIndex"),Jr("ethAddressOffset"),me("ethAddressInstructionIndex"),Jr("messageDataOffset"),Jr("messageDataSize"),me("messageInstructionIndex"),je(20,"ethAddress"),je(64,"signature"),me("recoveryId")]);class ou{constructor(){}static publicKeyToEthAddress(t){_e(t.length===vE,`Public key must be ${vE} bytes but received ${t.length} bytes`);try{return kt.from(PA(te(t))).slice(-Ty)}catch(e){throw new Error(`Error constructing Ethereum address: ${e}`)}}static createInstructionWithPublicKey(t){const{publicKey:e,message:r,signature:i,recoveryId:s,instructionIndex:o}=t;return ou.createInstructionWithEthAddress({ethAddress:ou.publicKeyToEthAddress(e),message:r,signature:i,recoveryId:s,instructionIndex:o})}static createInstructionWithEthAddress(t){const{ethAddress:e,message:r,signature:i,recoveryId:s,instructionIndex:o=0}=t;let c;typeof e=="string"?e.startsWith("0x")?c=kt.from(e.substr(2),"hex"):c=kt.from(e,"hex"):c=e,_e(c.length===Ty,`Address must be ${Ty} bytes but received ${c.length} bytes`);const u=1+hU,f=u,h=u+c.length,y=h+i.length+1,A=1,b=kt.alloc(Oy.span+r.length);return Oy.encode({numSignatures:A,signatureOffset:h,signatureInstructionIndex:o,ethAddressOffset:f,ethAddressInstructionIndex:o,messageDataOffset:y,messageDataSize:r.length,messageInstructionIndex:o,signature:te(i),ethAddress:te(c),recoveryId:s},b),b.fill(te(r),Oy.span),new Pe({keys:[],programId:ou.programId,data:b})}static createInstructionWithPrivateKey(t){const{privateKey:e,message:r,instructionIndex:i}=t;_e(e.length===EE,`Private key must be ${EE} bytes but received ${e.length} bytes`);try{const s=te(e),o=fU(s,!1).slice(1),c=kt.from(PA(te(r))),[u,f]=lU(c,s);return this.createInstructionWithPublicKey({publicKey:o,message:r,signature:u,recoveryId:f,instructionIndex:i})}catch(s){throw new Error(`Error creating instruction; ${s}`)}}}ou.programId=new pt("KeccakSecp256k11111111111111111111111111111");var xE;const RE=new pt("StakeConfig11111111111111111111111111111111");class SE{constructor(t,e){this.staker=void 0,this.withdrawer=void 0,this.staker=t,this.withdrawer=e}}class Af{constructor(t,e,r){this.unixTimestamp=void 0,this.epoch=void 0,this.custodian=void 0,this.unixTimestamp=t,this.epoch=e,this.custodian=r}}xE=Af,Af.default=new xE(0,0,pt.default);class dU{constructor(){}static decodeInstructionType(t){this.checkProgramId(t.programId);const r=Ot("instruction").decode(t.data);let i;for(const[s,o]of Object.entries(Mn))if(o.index==r){i=s;break}if(!i)throw new Error("Instruction type incorrect; not a StakeInstruction");return i}static decodeInitialize(t){this.checkProgramId(t.programId),this.checkKeyLength(t.keys,2);const{authorized:e,lockup:r}=Ie(Mn.Initialize,t.data);return{stakePubkey:t.keys[0].pubkey,authorized:new SE(new pt(e.staker),new pt(e.withdrawer)),lockup:new Af(r.unixTimestamp,r.epoch,new pt(r.custodian))}}static decodeDelegate(t){return this.checkProgramId(t.programId),this.checkKeyLength(t.keys,6),Ie(Mn.Delegate,t.data),{stakePubkey:t.keys[0].pubkey,votePubkey:t.keys[1].pubkey,authorizedPubkey:t.keys[5].pubkey}}static decodeAuthorize(t){this.checkProgramId(t.programId),this.checkKeyLength(t.keys,3);const{newAuthorized:e,stakeAuthorizationType:r}=Ie(Mn.Authorize,t.data),i={stakePubkey:t.keys[0].pubkey,authorizedPubkey:t.keys[2].pubkey,newAuthorizedPubkey:new pt(e),stakeAuthorizationType:{index:r}};return t.keys.length>3&&(i.custodianPubkey=t.keys[3].pubkey),i}static decodeAuthorizeWithSeed(t){this.checkProgramId(t.programId),this.checkKeyLength(t.keys,2);const{newAuthorized:e,stakeAuthorizationType:r,authoritySeed:i,authorityOwner:s}=Ie(Mn.AuthorizeWithSeed,t.data),o={stakePubkey:t.keys[0].pubkey,authorityBase:t.keys[1].pubkey,authoritySeed:i,authorityOwner:new pt(s),newAuthorizedPubkey:new pt(e),stakeAuthorizationType:{index:r}};return t.keys.length>3&&(o.custodianPubkey=t.keys[3].pubkey),o}static decodeSplit(t){this.checkProgramId(t.programId),this.checkKeyLength(t.keys,3);const{lamports:e}=Ie(Mn.Split,t.data);return{stakePubkey:t.keys[0].pubkey,splitStakePubkey:t.keys[1].pubkey,authorizedPubkey:t.keys[2].pubkey,lamports:e}}static decodeMerge(t){return this.checkProgramId(t.programId),this.checkKeyLength(t.keys,3),Ie(Mn.Merge,t.data),{stakePubkey:t.keys[0].pubkey,sourceStakePubKey:t.keys[1].pubkey,authorizedPubkey:t.keys[4].pubkey}}static decodeWithdraw(t){this.checkProgramId(t.programId),this.checkKeyLength(t.keys,5);const{lamports:e}=Ie(Mn.Withdraw,t.data),r={stakePubkey:t.keys[0].pubkey,toPubkey:t.keys[1].pubkey,authorizedPubkey:t.keys[4].pubkey,lamports:e};return t.keys.length>5&&(r.custodianPubkey=t.keys[5].pubkey),r}static decodeDeactivate(t){return this.checkProgramId(t.programId),this.checkKeyLength(t.keys,3),Ie(Mn.Deactivate,t.data),{stakePubkey:t.keys[0].pubkey,authorizedPubkey:t.keys[2].pubkey}}static checkProgramId(t){if(!t.equals(c0.programId))throw new Error("invalid instruction; programId is not StakeProgram")}static checkKeyLength(t,e){if(t.length<e)throw new Error(`invalid instruction; found ${t.length} keys, expected at least ${e}`)}}const Mn=Object.freeze({Initialize:{index:0,layout:Nt([Ot("instruction"),_M(),AM()])},Authorize:{index:1,layout:Nt([Ot("instruction"),ce("newAuthorized"),Ot("stakeAuthorizationType")])},Delegate:{index:2,layout:Nt([Ot("instruction")])},Split:{index:3,layout:Nt([Ot("instruction"),Ur("lamports")])},Withdraw:{index:4,layout:Nt([Ot("instruction"),Ur("lamports")])},Deactivate:{index:5,layout:Nt([Ot("instruction")])},Merge:{index:7,layout:Nt([Ot("instruction")])},AuthorizeWithSeed:{index:8,layout:Nt([Ot("instruction"),ce("newAuthorized"),Ot("stakeAuthorizationType"),ba("authoritySeed"),ce("authorityOwner")])}}),pU=Object.freeze({Staker:{index:0},Withdrawer:{index:1}});class c0{constructor(){}static initialize(t){const{stakePubkey:e,authorized:r,lockup:i}=t,s=i||Af.default,o=Mn.Initialize,c=pe(o,{authorized:{staker:te(r.staker.toBuffer()),withdrawer:te(r.withdrawer.toBuffer())},lockup:{unixTimestamp:s.unixTimestamp,epoch:s.epoch,custodian:te(s.custodian.toBuffer())}}),u={keys:[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:ru,isSigner:!1,isWritable:!1}],programId:this.programId,data:c};return new Pe(u)}static createAccountWithSeed(t){const e=new Oe;e.add(Nn.createAccountWithSeed({fromPubkey:t.fromPubkey,newAccountPubkey:t.stakePubkey,basePubkey:t.basePubkey,seed:t.seed,lamports:t.lamports,space:this.space,programId:this.programId}));const{stakePubkey:r,authorized:i,lockup:s}=t;return e.add(this.initialize({stakePubkey:r,authorized:i,lockup:s}))}static createAccount(t){const e=new Oe;e.add(Nn.createAccount({fromPubkey:t.fromPubkey,newAccountPubkey:t.stakePubkey,lamports:t.lamports,space:this.space,programId:this.programId}));const{stakePubkey:r,authorized:i,lockup:s}=t;return e.add(this.initialize({stakePubkey:r,authorized:i,lockup:s}))}static delegate(t){const{stakePubkey:e,authorizedPubkey:r,votePubkey:i}=t,s=Mn.Delegate,o=pe(s);return new Oe().add({keys:[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!1},{pubkey:zi,isSigner:!1,isWritable:!1},{pubkey:e0,isSigner:!1,isWritable:!1},{pubkey:RE,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}],programId:this.programId,data:o})}static authorize(t){const{stakePubkey:e,authorizedPubkey:r,newAuthorizedPubkey:i,stakeAuthorizationType:s,custodianPubkey:o}=t,c=Mn.Authorize,u=pe(c,{newAuthorized:te(i.toBuffer()),stakeAuthorizationType:s.index}),f=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:zi,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1}];return o&&f.push({pubkey:o,isSigner:!0,isWritable:!1}),new Oe().add({keys:f,programId:this.programId,data:u})}static authorizeWithSeed(t){const{stakePubkey:e,authorityBase:r,authoritySeed:i,authorityOwner:s,newAuthorizedPubkey:o,stakeAuthorizationType:c,custodianPubkey:u}=t,f=Mn.AuthorizeWithSeed,h=pe(f,{newAuthorized:te(o.toBuffer()),stakeAuthorizationType:c.index,authoritySeed:i,authorityOwner:te(s.toBuffer())}),y=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1},{pubkey:zi,isSigner:!1,isWritable:!1}];return u&&y.push({pubkey:u,isSigner:!0,isWritable:!1}),new Oe().add({keys:y,programId:this.programId,data:h})}static splitInstruction(t){const{stakePubkey:e,authorizedPubkey:r,splitStakePubkey:i,lamports:s}=t,o=Mn.Split,c=pe(o,{lamports:s});return new Pe({keys:[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1}],programId:this.programId,data:c})}static split(t,e){const r=new Oe;return r.add(Nn.createAccount({fromPubkey:t.authorizedPubkey,newAccountPubkey:t.splitStakePubkey,lamports:e,space:this.space,programId:this.programId})),r.add(this.splitInstruction(t))}static splitWithSeed(t,e){const{stakePubkey:r,authorizedPubkey:i,splitStakePubkey:s,basePubkey:o,seed:c,lamports:u}=t,f=new Oe;return f.add(Nn.allocate({accountPubkey:s,basePubkey:o,seed:c,space:this.space,programId:this.programId})),e&&e>0&&f.add(Nn.transfer({fromPubkey:t.authorizedPubkey,toPubkey:s,lamports:e})),f.add(this.splitInstruction({stakePubkey:r,authorizedPubkey:i,splitStakePubkey:s,lamports:u}))}static merge(t){const{stakePubkey:e,sourceStakePubKey:r,authorizedPubkey:i}=t,s=Mn.Merge,o=pe(s);return new Oe().add({keys:[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!1,isWritable:!0},{pubkey:zi,isSigner:!1,isWritable:!1},{pubkey:e0,isSigner:!1,isWritable:!1},{pubkey:i,isSigner:!0,isWritable:!1}],programId:this.programId,data:o})}static withdraw(t){const{stakePubkey:e,authorizedPubkey:r,toPubkey:i,lamports:s,custodianPubkey:o}=t,c=Mn.Withdraw,u=pe(c,{lamports:s}),f=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!1,isWritable:!0},{pubkey:zi,isSigner:!1,isWritable:!1},{pubkey:e0,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}];return o&&f.push({pubkey:o,isSigner:!0,isWritable:!1}),new Oe().add({keys:f,programId:this.programId,data:u})}static deactivate(t){const{stakePubkey:e,authorizedPubkey:r}=t,i=Mn.Deactivate,s=pe(i);return new Oe().add({keys:[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:zi,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}],programId:this.programId,data:s})}}c0.programId=new pt("Stake11111111111111111111111111111111111111"),c0.space=200;class IE{constructor(t,e,r,i){this.nodePubkey=void 0,this.authorizedVoter=void 0,this.authorizedWithdrawer=void 0,this.commission=void 0,this.nodePubkey=t,this.authorizedVoter=e,this.authorizedWithdrawer=r,this.commission=i}}class gU{constructor(){}static decodeInstructionType(t){this.checkProgramId(t.programId);const r=Ot("instruction").decode(t.data);let i;for(const[s,o]of Object.entries(Vi))if(o.index==r){i=s;break}if(!i)throw new Error("Instruction type incorrect; not a VoteInstruction");return i}static decodeInitializeAccount(t){this.checkProgramId(t.programId),this.checkKeyLength(t.keys,4);const{voteInit:e}=Ie(Vi.InitializeAccount,t.data);return{votePubkey:t.keys[0].pubkey,nodePubkey:t.keys[3].pubkey,voteInit:new IE(new pt(e.nodePubkey),new pt(e.authorizedVoter),new pt(e.authorizedWithdrawer),e.commission)}}static decodeAuthorize(t){this.checkProgramId(t.programId),this.checkKeyLength(t.keys,3);const{newAuthorized:e,voteAuthorizationType:r}=Ie(Vi.Authorize,t.data);return{votePubkey:t.keys[0].pubkey,authorizedPubkey:t.keys[2].pubkey,newAuthorizedPubkey:new pt(e),voteAuthorizationType:{index:r}}}static decodeAuthorizeWithSeed(t){this.checkProgramId(t.programId),this.checkKeyLength(t.keys,3);const{voteAuthorizeWithSeedArgs:{currentAuthorityDerivedKeyOwnerPubkey:e,currentAuthorityDerivedKeySeed:r,newAuthorized:i,voteAuthorizationType:s}}=Ie(Vi.AuthorizeWithSeed,t.data);return{currentAuthorityDerivedKeyBasePubkey:t.keys[2].pubkey,currentAuthorityDerivedKeyOwnerPubkey:new pt(e),currentAuthorityDerivedKeySeed:r,newAuthorizedPubkey:new pt(i),voteAuthorizationType:{index:s},votePubkey:t.keys[0].pubkey}}static decodeWithdraw(t){this.checkProgramId(t.programId),this.checkKeyLength(t.keys,3);const{lamports:e}=Ie(Vi.Withdraw,t.data);return{votePubkey:t.keys[0].pubkey,authorizedWithdrawerPubkey:t.keys[2].pubkey,lamports:e,toPubkey:t.keys[1].pubkey}}static checkProgramId(t){if(!t.equals(au.programId))throw new Error("invalid instruction; programId is not VoteProgram")}static checkKeyLength(t,e){if(t.length<e)throw new Error(`invalid instruction; found ${t.length} keys, expected at least ${e}`)}}const Vi=Object.freeze({InitializeAccount:{index:0,layout:Nt([Ot("instruction"),EM()])},Authorize:{index:1,layout:Nt([Ot("instruction"),ce("newAuthorized"),Ot("voteAuthorizationType")])},Withdraw:{index:3,layout:Nt([Ot("instruction"),Ur("lamports")])},UpdateValidatorIdentity:{index:4,layout:Nt([Ot("instruction")])},AuthorizeWithSeed:{index:10,layout:Nt([Ot("instruction"),vM()])}}),yU=Object.freeze({Voter:{index:0},Withdrawer:{index:1}});class au{constructor(){}static initializeAccount(t){const{votePubkey:e,nodePubkey:r,voteInit:i}=t,s=Vi.InitializeAccount,o=pe(s,{voteInit:{nodePubkey:te(i.nodePubkey.toBuffer()),authorizedVoter:te(i.authorizedVoter.toBuffer()),authorizedWithdrawer:te(i.authorizedWithdrawer.toBuffer()),commission:i.commission}}),c={keys:[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:ru,isSigner:!1,isWritable:!1},{pubkey:zi,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}],programId:this.programId,data:o};return new Pe(c)}static createAccount(t){const e=new Oe;return e.add(Nn.createAccount({fromPubkey:t.fromPubkey,newAccountPubkey:t.votePubkey,lamports:t.lamports,space:this.space,programId:this.programId})),e.add(this.initializeAccount({votePubkey:t.votePubkey,nodePubkey:t.voteInit.nodePubkey,voteInit:t.voteInit}))}static authorize(t){const{votePubkey:e,authorizedPubkey:r,newAuthorizedPubkey:i,voteAuthorizationType:s}=t,o=Vi.Authorize,c=pe(o,{newAuthorized:te(i.toBuffer()),voteAuthorizationType:s.index}),u=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:zi,isSigner:!1,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}];return new Oe().add({keys:u,programId:this.programId,data:c})}static authorizeWithSeed(t){const{currentAuthorityDerivedKeyBasePubkey:e,currentAuthorityDerivedKeyOwnerPubkey:r,currentAuthorityDerivedKeySeed:i,newAuthorizedPubkey:s,voteAuthorizationType:o,votePubkey:c}=t,u=Vi.AuthorizeWithSeed,f=pe(u,{voteAuthorizeWithSeedArgs:{currentAuthorityDerivedKeyOwnerPubkey:te(r.toBuffer()),currentAuthorityDerivedKeySeed:i,newAuthorized:te(s.toBuffer()),voteAuthorizationType:o.index}}),h=[{pubkey:c,isSigner:!1,isWritable:!0},{pubkey:zi,isSigner:!1,isWritable:!1},{pubkey:e,isSigner:!0,isWritable:!1}];return new Oe().add({keys:h,programId:this.programId,data:f})}static withdraw(t){const{votePubkey:e,authorizedWithdrawerPubkey:r,lamports:i,toPubkey:s}=t,o=Vi.Withdraw,c=pe(o,{lamports:i}),u=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:s,isSigner:!1,isWritable:!0},{pubkey:r,isSigner:!0,isWritable:!1}];return new Oe().add({keys:u,programId:this.programId,data:c})}static safeWithdraw(t,e,r){if(t.lamports>e-r)throw new Error("Withdraw will leave vote account with insufficient funds.");return au.withdraw(t)}static updateValidatorIdentity(t){const{votePubkey:e,authorizedWithdrawerPubkey:r,nodePubkey:i}=t,s=Vi.UpdateValidatorIdentity,o=pe(s),c=[{pubkey:e,isSigner:!1,isWritable:!0},{pubkey:i,isSigner:!0,isWritable:!1},{pubkey:r,isSigner:!0,isWritable:!1}];return new Oe().add({keys:c,programId:this.programId,data:o})}}au.programId=new pt("Vote111111111111111111111111111111111111111"),au.space=3762;const kE=new pt("Va1idator1nfo111111111111111111111111111111"),mU=ft({name:yt(),website:Dt(yt()),details:Dt(yt()),iconUrl:Dt(yt()),keybaseUsername:Dt(yt())});class Ny{constructor(t,e){this.key=void 0,this.info=void 0,this.key=t,this.info=e}static fromConfigData(t){let e=[...t];if(vr(e)!==2)return null;const i=[];for(let s=0;s<2;s++){const o=new pt(xr(e,0,$i)),c=Hi(e)===1;i.push({publicKey:o,isSigner:c})}if(i[0].publicKey.equals(kE)&&i[1].isSigner){const s=ba().decode(kt.from(e)),o=JSON.parse(s);return wA(o,mU),new Ny(i[1].publicKey,o)}return null}}const wU=new pt("Vote111111111111111111111111111111111111111"),bU=Nt([ce("nodePubkey"),ce("authorizedWithdrawer"),me("commission"),Vn(),Kn(Nt([Vn("slot"),Ot("confirmationCount")]),fo(Ot(),-8),"votes"),me("rootSlotValid"),Vn("rootSlot"),Vn(),Kn(Nt([Vn("epoch"),ce("authorizedVoter")]),fo(Ot(),-8),"authorizedVoters"),Nt([Kn(Nt([ce("authorizedPubkey"),Vn("epochOfLastAuthorizedSwitch"),Vn("targetEpoch")]),32,"buf"),Vn("idx"),me("isEmpty")],"priorVoters"),Vn(),Kn(Nt([Vn("epoch"),Vn("credits"),Vn("prevCredits")]),fo(Ot(),-8),"epochCredits"),Nt([Vn("slot"),Vn("timestamp")],"lastTimestamp")]);class Cy{constructor(t){this.nodePubkey=void 0,this.authorizedWithdrawer=void 0,this.commission=void 0,this.rootSlot=void 0,this.votes=void 0,this.authorizedVoters=void 0,this.priorVoters=void 0,this.epochCredits=void 0,this.lastTimestamp=void 0,this.nodePubkey=t.nodePubkey,this.authorizedWithdrawer=t.authorizedWithdrawer,this.commission=t.commission,this.rootSlot=t.rootSlot,this.votes=t.votes,this.authorizedVoters=t.authorizedVoters,this.priorVoters=t.priorVoters,this.epochCredits=t.epochCredits,this.lastTimestamp=t.lastTimestamp}static fromAccountData(t){const r=bU.decode(te(t),4);let i=r.rootSlot;return r.rootSlotValid||(i=null),new Cy({nodePubkey:new pt(r.nodePubkey),authorizedWithdrawer:new pt(r.authorizedWithdrawer),commission:r.commission,votes:r.votes,rootSlot:i,authorizedVoters:r.authorizedVoters.map(_U),priorVoters:AU(r.priorVoters),epochCredits:r.epochCredits,lastTimestamp:r.lastTimestamp})}}function _U({authorizedVoter:n,epoch:t}){return{epoch:t,authorizedVoter:new pt(n)}}function TE({authorizedPubkey:n,epochOfLastAuthorizedSwitch:t,targetEpoch:e}){return{authorizedPubkey:new pt(n),epochOfLastAuthorizedSwitch:t,targetEpoch:e}}function AU({buf:n,idx:t,isEmpty:e}){return e?[]:[...n.slice(t+1).map(TE),...n.slice(0,t).map(TE)]}const OE={http:{devnet:"http://api.devnet.solana.com",testnet:"http://api.testnet.solana.com","mainnet-beta":"http://api.mainnet-beta.solana.com/"},https:{devnet:"https://api.devnet.solana.com",testnet:"https://api.testnet.solana.com","mainnet-beta":"https://api.mainnet-beta.solana.com/"}};function EU(n,t){const e=t===!1?"http":"https";if(!n)return OE[e].devnet;const r=OE[e][n];if(!r)throw new Error(`Unknown ${e} cluster: ${n}`);return r}async function vU(n,t,e,r){let i,s;e&&Object.prototype.hasOwnProperty.call(e,"lastValidBlockHeight")||e&&Object.prototype.hasOwnProperty.call(e,"nonceValue")?(i=e,s=r):s=e;const o=s&&{skipPreflight:s.skipPreflight,preflightCommitment:s.preflightCommitment||s.commitment,minContextSlot:s.minContextSlot},c=await n.sendRawTransaction(t,o),u=s&&s.commitment,h=(await(i?n.confirmTransaction(i,u):n.confirmTransaction(c,u))).value;if(h.err)throw c!=null?new go({action:o!=null&&o.skipPreflight?"send":"simulate",signature:c,transactionMessage:`Status: (${JSON.stringify(h)})`}):new Error(`Raw transaction ${c} failed (${JSON.stringify(h)})`);return c}const xU=Object.freeze(Object.defineProperty({__proto__:null,Account:mM,AddressLookupTableAccount:wy,AddressLookupTableInstruction:cU,AddressLookupTableProgram:Iy,Authorized:SE,BLOCKHASH_CACHE_TIMEOUT_MS:rE,BPF_LOADER_DEPRECATED_PROGRAM_ID:wM,BPF_LOADER_PROGRAM_ID:PM,BpfLoader:MM,COMPUTE_BUDGET_INSTRUCTION_LAYOUTS:Gi,ComputeBudgetInstruction:uU,ComputeBudgetProgram:ky,Connection:mE,Ed25519Program:a0,Enum:gM,EpochSchedule:tE,FeeCalculatorLayout:QA,Keypair:Ra,LAMPORTS_PER_SOL:1e9,LOOKUP_TABLE_INSTRUCTION_LAYOUTS:vs,Loader:Ea,Lockup:Af,MAX_SEED_LENGTH:KA,Message:yi,MessageAccountKeys:wf,MessageV0:_a,NONCE_ACCOUNT_LENGTH:gy,NonceAccount:n0,PACKET_DATA_SIZE:po,PUBLIC_KEY_LENGTH:$i,PublicKey:pt,SIGNATURE_LENGTH_IN_BYTES:mf,SOLANA_SCHEMA:yf,STAKE_CONFIG_ID:RE,STAKE_INSTRUCTION_LAYOUTS:Mn,SYSTEM_INSTRUCTION_LAYOUTS:$e,SYSVAR_CLOCK_PUBKEY:zi,SYSVAR_EPOCH_SCHEDULE_PUBKEY:RM,SYSVAR_INSTRUCTIONS_PUBKEY:SM,SYSVAR_RECENT_BLOCKHASHES_PUBKEY:t0,SYSVAR_RENT_PUBKEY:ru,SYSVAR_REWARDS_PUBKEY:IM,SYSVAR_SLOT_HASHES_PUBKEY:kM,SYSVAR_SLOT_HISTORY_PUBKEY:TM,SYSVAR_STAKE_HISTORY_PUBKEY:e0,Secp256k1Program:ou,SendTransactionError:go,SolanaJSONRPCError:Mt,SolanaJSONRPCErrorCode:OM,StakeAuthorizationLayout:pU,StakeInstruction:dU,StakeProgram:c0,Struct:cy,SystemInstruction:CM,SystemProgram:Nn,Transaction:Oe,TransactionExpiredBlockheightExceededError:uy,TransactionExpiredNonceInvalidError:nu,TransactionExpiredTimeoutError:ly,TransactionInstruction:Pe,TransactionMessage:hy,TransactionStatus:Es,VALIDATOR_INFO_KEY:kE,VERSION_PREFIX_MASK:Jd,VOTE_PROGRAM_ID:wU,ValidatorInfo:Ny,VersionedMessage:fy,VersionedTransaction:dy,VoteAccount:Cy,VoteAuthorizationLayout:yU,VoteInit:IE,VoteInstruction:gU,VoteProgram:au,clusterApiUrl:EU,sendAndConfirmRawTransaction:vU,sendAndConfirmTransaction:py},Symbol.toStringTag,{value:"Module"}));var By={exports:{}};const RU=/[\p{Lu}]/u,SU=/[\p{Ll}]/u,NE=/^[\p{Lu}](?![\p{Lu}])/gu,CE=/([\p{Alpha}\p{N}_]|$)/u,BE=/[_.\- ]+/,IU=new RegExp("^"+BE.source),PE=new RegExp(BE.source+CE.source,"gu"),ME=new RegExp("\\d+"+CE.source,"gu"),kU=(n,t,e)=>{let r=!1,i=!1,s=!1;for(let o=0;o<n.length;o++){const c=n[o];r&&RU.test(c)?(n=n.slice(0,o)+"-"+n.slice(o),r=!1,s=i,i=!0,o++):i&&s&&SU.test(c)?(n=n.slice(0,o-1)+"-"+n.slice(o-1),s=i,i=!1,r=!0):(r=t(c)===c&&e(c)!==c,s=i,i=e(c)===c&&t(c)!==c)}return n},TU=(n,t)=>(NE.lastIndex=0,n.replace(NE,e=>t(e))),OU=(n,t)=>(PE.lastIndex=0,ME.lastIndex=0,n.replace(PE,(e,r)=>t(r)).replace(ME,e=>t(e))),LE=(n,t)=>{if(!(typeof n=="string"||Array.isArray(n)))throw new TypeError("Expected the input to be `string | string[]`");if(t={pascalCase:!1,preserveConsecutiveUppercase:!1,...t},Array.isArray(n)?n=n.map(s=>s.trim()).filter(s=>s.length).join("-"):n=n.trim(),n.length===0)return"";const e=t.locale===!1?s=>s.toLowerCase():s=>s.toLocaleLowerCase(t.locale),r=t.locale===!1?s=>s.toUpperCase():s=>s.toLocaleUpperCase(t.locale);return n.length===1?t.pascalCase?r(n):e(n):(n!==e(n)&&(n=kU(n,e,r)),n=n.replace(IU,""),t.preserveConsecutiveUppercase?n=TU(n,e):n=e(n),t.pascalCase&&(n=r(n.charAt(0))+n.slice(1)),OU(n,r))};By.exports=LE,By.exports.default=LE;var NU=By.exports;const CU=Br(NU);var Yt={},Rt={};let Ne=class{constructor(t,e){if(!Number.isInteger(t))throw new TypeError("span must be an integer");this.span=t,this.property=e}makeDestinationObject(){return{}}decode(t,e){throw new Error("Layout is abstract")}encode(t,e,r){throw new Error("Layout is abstract")}getSpan(t,e){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(t){const e=Object.create(this.constructor.prototype);return Object.assign(e,this),e.property=t,e}fromArray(t){}};Rt.Layout=Ne;function Py(n,t){return t.property?n+"["+t.property+"]":n}Rt.nameWithProperty=Py;function BU(n,t){if(typeof n!="function")throw new TypeError("Class must be constructor");if(n.hasOwnProperty("layout_"))throw new Error("Class is already bound to a layout");if(!(t&&t instanceof Ne))throw new TypeError("layout must be a Layout");if(t.hasOwnProperty("boundConstructor_"))throw new Error("layout is already bound to a constructor");n.layout_=t,t.boundConstructor_=n,t.makeDestinationObject=()=>new n,Object.defineProperty(n.prototype,"encode",{value:function(e,r){return t.encode(this,e,r)},writable:!0}),Object.defineProperty(n,"decode",{value:function(e,r){return t.decode(e,r)},writable:!0})}Rt.bindConstructorLayout=BU;let Rr=class extends Ne{isCount(){throw new Error("ExternalLayout is abstract")}};class UE extends Rr{constructor(t,e){if(t===void 0&&(t=1),!Number.isInteger(t)||0>=t)throw new TypeError("elementSpan must be a (positive) integer");super(-1,e),this.elementSpan=t}isCount(){return!0}decode(t,e){e===void 0&&(e=0);const r=t.length-e;return Math.floor(r/this.elementSpan)}encode(t,e,r){return 0}}let My=class extends Rr{constructor(t,e,r){if(!(t instanceof Ne))throw new TypeError("layout must be a Layout");if(e===void 0)e=0;else if(!Number.isInteger(e))throw new TypeError("offset must be integer or undefined");super(t.span,r||t.property),this.layout=t,this.offset=e}isCount(){return this.layout instanceof Ki||this.layout instanceof xs}decode(t,e){return e===void 0&&(e=0),this.layout.decode(t,e+this.offset)}encode(t,e,r){return r===void 0&&(r=0),this.layout.encode(t,e,r+this.offset)}},Ki=class extends Ne{constructor(t,e){if(super(t,e),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(t,e){return e===void 0&&(e=0),t.readUIntLE(e,this.span)}encode(t,e,r){return r===void 0&&(r=0),e.writeUIntLE(t,r,this.span),this.span}},xs=class extends Ne{constructor(t,e){if(super(t,e),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(t,e){return e===void 0&&(e=0),t.readUIntBE(e,this.span)}encode(t,e,r){return r===void 0&&(r=0),e.writeUIntBE(t,r,this.span),this.span}};class Sa extends Ne{constructor(t,e){if(super(t,e),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(t,e){return e===void 0&&(e=0),t.readIntLE(e,this.span)}encode(t,e,r){return r===void 0&&(r=0),e.writeIntLE(t,r,this.span),this.span}}class cu extends Ne{constructor(t,e){if(super(t,e),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(t,e){return e===void 0&&(e=0),t.readIntBE(e,this.span)}encode(t,e,r){return r===void 0&&(r=0),e.writeIntBE(t,r,this.span),this.span}}const Ly=Math.pow(2,32);function u0(n){const t=Math.floor(n/Ly),e=n-t*Ly;return{hi32:t,lo32:e}}function l0(n,t){return n*Ly+t}let PU=class extends Ne{constructor(t){super(8,t)}decode(t,e){e===void 0&&(e=0);const r=t.readUInt32LE(e),i=t.readUInt32LE(e+4);return l0(i,r)}encode(t,e,r){r===void 0&&(r=0);const i=u0(t);return e.writeUInt32LE(i.lo32,r),e.writeUInt32LE(i.hi32,r+4),8}};class MU extends Ne{constructor(t){super(8,t)}decode(t,e){e===void 0&&(e=0);const r=t.readUInt32BE(e),i=t.readUInt32BE(e+4);return l0(r,i)}encode(t,e,r){r===void 0&&(r=0);const i=u0(t);return e.writeUInt32BE(i.hi32,r),e.writeUInt32BE(i.lo32,r+4),8}}let LU=class extends Ne{constructor(t){super(8,t)}decode(t,e){e===void 0&&(e=0);const r=t.readUInt32LE(e),i=t.readInt32LE(e+4);return l0(i,r)}encode(t,e,r){r===void 0&&(r=0);const i=u0(t);return e.writeUInt32LE(i.lo32,r),e.writeInt32LE(i.hi32,r+4),8}};class UU extends Ne{constructor(t){super(8,t)}decode(t,e){e===void 0&&(e=0);const r=t.readInt32BE(e),i=t.readUInt32BE(e+4);return l0(r,i)}encode(t,e,r){r===void 0&&(r=0);const i=u0(t);return e.writeInt32BE(i.hi32,r),e.writeUInt32BE(i.lo32,r+4),8}}class DE extends Ne{constructor(t){super(4,t)}decode(t,e){return e===void 0&&(e=0),t.readFloatLE(e)}encode(t,e,r){return r===void 0&&(r=0),e.writeFloatLE(t,r),4}}class FE extends Ne{constructor(t){super(4,t)}decode(t,e){return e===void 0&&(e=0),t.readFloatBE(e)}encode(t,e,r){return r===void 0&&(r=0),e.writeFloatBE(t,r),4}}class $E extends Ne{constructor(t){super(8,t)}decode(t,e){return e===void 0&&(e=0),t.readDoubleLE(e)}encode(t,e,r){return r===void 0&&(r=0),e.writeDoubleLE(t,r),8}}class HE extends Ne{constructor(t){super(8,t)}decode(t,e){return e===void 0&&(e=0),t.readDoubleBE(e)}encode(t,e,r){return r===void 0&&(r=0),e.writeDoubleBE(t,r),8}}class zE extends Ne{constructor(t,e,r){if(!(t instanceof Ne))throw new TypeError("elementLayout must be a Layout");if(!(e instanceof Rr&&e.isCount()||Number.isInteger(e)&&0<=e))throw new TypeError("count must be non-negative integer or an unsigned integer ExternalLayout");let i=-1;!(e instanceof Rr)&&0<t.span&&(i=e*t.span),super(i,r),this.elementLayout=t,this.count=e}getSpan(t,e){if(0<=this.span)return this.span;e===void 0&&(e=0);let r=0,i=this.count;if(i instanceof Rr&&(i=i.decode(t,e)),0<this.elementLayout.span)r=i*this.elementLayout.span;else{let s=0;for(;s<i;)r+=this.elementLayout.getSpan(t,e+r),++s}return r}decode(t,e){e===void 0&&(e=0);const r=[];let i=0,s=this.count;for(s instanceof Rr&&(s=s.decode(t,e));i<s;)r.push(this.elementLayout.decode(t,e)),e+=this.elementLayout.getSpan(t,e),i+=1;return r}encode(t,e,r){r===void 0&&(r=0);const i=this.elementLayout,s=t.reduce((o,c)=>o+i.encode(c,e,r+o),0);return this.count instanceof Rr&&this.count.encode(t.length,e,r),s}}let GE=class extends Ne{constructor(t,e,r){if(!(Array.isArray(t)&&t.reduce((s,o)=>s&&o instanceof Ne,!0)))throw new TypeError("fields must be array of Layout instances");typeof e=="boolean"&&r===void 0&&(r=e,e=void 0);for(const s of t)if(0>s.span&&s.property===void 0)throw new Error("fields cannot contain unnamed variable-length layout");let i=-1;try{i=t.reduce((s,o)=>s+o.getSpan(),0)}catch{}super(i,e),this.fields=t,this.decodePrefixes=!!r}getSpan(t,e){if(0<=this.span)return this.span;e===void 0&&(e=0);let r=0;try{r=this.fields.reduce((i,s)=>{const o=s.getSpan(t,e);return e+=o,i+o},0)}catch{throw new RangeError("indeterminate span")}return r}decode(t,e){e===void 0&&(e=0);const r=this.makeDestinationObject();for(const i of this.fields)if(i.property!==void 0&&(r[i.property]=i.decode(t,e)),e+=i.getSpan(t,e),this.decodePrefixes&&t.length===e)break;return r}encode(t,e,r){r===void 0&&(r=0);const i=r;let s=0,o=0;for(const c of this.fields){let u=c.span;if(o=0<u?u:0,c.property!==void 0){const f=t[c.property];f!==void 0&&(o=c.encode(f,e,r),0>u&&(u=c.getSpan(e,r)))}s=r,r+=u}return s+o-i}fromArray(t){const e=this.makeDestinationObject();for(const r of this.fields)r.property!==void 0&&0<t.length&&(e[r.property]=t.shift());return e}layoutFor(t){if(typeof t!="string")throw new TypeError("property must be string");for(const e of this.fields)if(e.property===t)return e}offsetOf(t){if(typeof t!="string")throw new TypeError("property must be string");let e=0;for(const r of this.fields){if(r.property===t)return e;0>r.span?e=-1:0<=e&&(e+=r.span)}}},Uy=class{constructor(t){this.property=t}decode(){throw new Error("UnionDiscriminator is abstract")}encode(){throw new Error("UnionDiscriminator is abstract")}},f0=class extends Uy{constructor(t,e){if(!(t instanceof Rr&&t.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(e||t.property||"variant"),this.layout=t}decode(t,e){return this.layout.decode(t,e)}encode(t,e,r){return this.layout.encode(t,e,r)}},Dy=class extends Ne{constructor(t,e,r){const i=t instanceof Ki||t instanceof xs;if(i)t=new f0(new My(t));else if(t instanceof Rr&&t.isCount())t=new f0(t);else if(!(t instanceof Uy))throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(e===void 0&&(e=null),!(e===null||e instanceof Ne))throw new TypeError("defaultLayout must be null or a Layout");if(e!==null){if(0>e.span)throw new Error("defaultLayout must have constant span");e.property===void 0&&(e=e.replicate("content"))}let s=-1;e&&(s=e.span,0<=s&&i&&(s+=t.layout.span)),super(s,r),this.discriminator=t,this.usesPrefixDiscriminator=i,this.defaultLayout=e,this.registry={};let o=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(c){return o(c)},this.configGetSourceVariant=function(c){o=c.bind(this)}}getSpan(t,e){if(0<=this.span)return this.span;e===void 0&&(e=0);const r=this.getVariant(t,e);if(!r)throw new Error("unable to determine span for unrecognized variant");return r.getSpan(t,e)}defaultGetSourceVariant(t){if(t.hasOwnProperty(this.discriminator.property)){if(this.defaultLayout&&t.hasOwnProperty(this.defaultLayout.property))return;const e=this.registry[t[this.discriminator.property]];if(e&&(!e.layout||t.hasOwnProperty(e.property)))return e}else for(const e in this.registry){const r=this.registry[e];if(t.hasOwnProperty(r.property))return r}throw new Error("unable to infer src variant")}decode(t,e){e===void 0&&(e=0);let r;const i=this.discriminator,s=i.decode(t,e);let o=this.registry[s];if(o===void 0){let c=0;o=this.defaultLayout,this.usesPrefixDiscriminator&&(c=i.layout.span),r=this.makeDestinationObject(),r[i.property]=s,r[o.property]=this.defaultLayout.decode(t,e+c)}else r=o.decode(t,e);return r}encode(t,e,r){r===void 0&&(r=0);const i=this.getSourceVariant(t);if(i===void 0){const s=this.discriminator,o=this.defaultLayout;let c=0;return this.usesPrefixDiscriminator&&(c=s.layout.span),s.encode(t[s.property],e,r),c+o.encode(t[o.property],e,r+c)}return i.encode(t,e,r)}addVariant(t,e,r){const i=new VE(this,t,e,r);return this.registry[t]=i,i}getVariant(t,e){let r=t;return Zt.isBuffer(t)&&(e===void 0&&(e=0),r=this.discriminator.decode(t,e)),this.registry[r]}},VE=class extends Ne{constructor(t,e,r,i){if(!(t instanceof Dy))throw new TypeError("union must be a Union");if(!Number.isInteger(e)||0>e)throw new TypeError("variant must be a (non-negative) integer");if(typeof r=="string"&&i===void 0&&(i=r,r=null),r){if(!(r instanceof Ne))throw new TypeError("layout must be a Layout");if(t.defaultLayout!==null&&0<=r.span&&r.span>t.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if(typeof i!="string")throw new TypeError("variant must have a String property")}let s=t.span;0>t.span&&(s=r?r.span:0,0<=s&&t.usesPrefixDiscriminator&&(s+=t.discriminator.layout.span)),super(s,i),this.union=t,this.variant=e,this.layout=r||null}getSpan(t,e){if(0<=this.span)return this.span;e===void 0&&(e=0);let r=0;return this.union.usesPrefixDiscriminator&&(r=this.union.discriminator.layout.span),r+this.layout.getSpan(t,e+r)}decode(t,e){const r=this.makeDestinationObject();if(e===void 0&&(e=0),this!==this.union.getVariant(t,e))throw new Error("variant mismatch");let i=0;return this.union.usesPrefixDiscriminator&&(i=this.union.discriminator.layout.span),this.layout?r[this.property]=this.layout.decode(t,e+i):this.property?r[this.property]=!0:this.union.usesPrefixDiscriminator&&(r[this.union.discriminator.property]=this.variant),r}encode(t,e,r){r===void 0&&(r=0);let i=0;if(this.union.usesPrefixDiscriminator&&(i=this.union.discriminator.layout.span),this.layout&&!t.hasOwnProperty(this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,e,r);let s=i;if(this.layout&&(this.layout.encode(t[this.property],e,r+i),s+=this.layout.getSpan(e,r+i),0<=this.union.span&&s>this.union.span))throw new Error("encoded variant overruns containing union");return s}fromArray(t){if(this.layout)return this.layout.fromArray(t)}};function uu(n){return 0>n&&(n+=4294967296),n}class Fy extends Ne{constructor(t,e,r){if(!(t instanceof Ki||t instanceof xs))throw new TypeError("word must be a UInt or UIntBE layout");if(typeof e=="string"&&r===void 0&&(r=e,e=void 0),4<t.span)throw new RangeError("word cannot exceed 32 bits");super(t.span,r),this.word=t,this.msb=!!e,this.fields=[];let i=0;this._packedSetValue=function(s){return i=uu(s),this},this._packedGetValue=function(){return i}}decode(t,e){const r=this.makeDestinationObject();e===void 0&&(e=0);const i=this.word.decode(t,e);this._packedSetValue(i);for(const s of this.fields)s.property!==void 0&&(r[s.property]=s.decode(i));return r}encode(t,e,r){r===void 0&&(r=0);const i=this.word.decode(e,r);this._packedSetValue(i);for(const s of this.fields)if(s.property!==void 0){const o=t[s.property];o!==void 0&&s.encode(o)}return this.word.encode(this._packedGetValue(),e,r)}addField(t,e){const r=new Ef(this,t,e);return this.fields.push(r),r}addBoolean(t){const e=new KE(this,t);return this.fields.push(e),e}fieldFor(t){if(typeof t!="string")throw new TypeError("property must be string");for(const e of this.fields)if(e.property===t)return e}}class Ef{constructor(t,e,r){if(!(t instanceof Fy))throw new TypeError("container must be a BitStructure");if(!Number.isInteger(e)||0>=e)throw new TypeError("bits must be positive integer");const i=8*t.span,s=t.fields.reduce((o,c)=>o+c.bits,0);if(e+s>i)throw new Error("bits too long for span remainder ("+(i-s)+" of "+i+" remain)");this.container=t,this.bits=e,this.valueMask=(1<<e)-1,e===32&&(this.valueMask=4294967295),this.start=s,this.container.msb&&(this.start=i-s-e),this.wordMask=uu(this.valueMask<<this.start),this.property=r}decode(){const t=this.container._packedGetValue();return uu(t&this.wordMask)>>>this.start}encode(t){if(!Number.isInteger(t)||t!==uu(t&this.valueMask))throw new TypeError(Py("BitField.encode",this)+" value must be integer not exceeding "+this.valueMask);const e=this.container._packedGetValue(),r=uu(t<<this.start);this.container._packedSetValue(uu(e&~this.wordMask)|r)}}let KE=class extends Ef{constructor(t,e){super(t,1,e)}decode(t,e){return!!Ef.prototype.decode.call(this,t,e)}encode(t){return typeof t=="boolean"&&(t=+t),Ef.prototype.encode.call(this,t)}},jE=class extends Ne{constructor(t,e){if(!(t instanceof Rr&&t.isCount()||Number.isInteger(t)&&0<=t))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let r=-1;t instanceof Rr||(r=t),super(r,e),this.length=t}getSpan(t,e){let r=this.span;return 0>r&&(r=this.length.decode(t,e)),r}decode(t,e){e===void 0&&(e=0);let r=this.span;return 0>r&&(r=this.length.decode(t,e)),t.slice(e,e+r)}encode(t,e,r){let i=this.length;if(this.length instanceof Rr&&(i=t.length),!(Zt.isBuffer(t)&&i===t.length))throw new TypeError(Py("Blob.encode",this)+" requires (length "+i+") Buffer as src");if(r+i>e.length)throw new RangeError("encoding overruns Buffer");return e.write(t.toString("hex"),r,i,"hex"),this.length instanceof Rr&&this.length.encode(i,e,r),i}};class WE extends Ne{constructor(t){super(-1,t)}getSpan(t,e){if(!Zt.isBuffer(t))throw new TypeError("b must be a Buffer");e===void 0&&(e=0);let r=e;for(;r<t.length&&t[r]!==0;)r+=1;return 1+r-e}decode(t,e,r){e===void 0&&(e=0);let i=this.getSpan(t,e);return t.slice(e,e+i-1).toString("utf-8")}encode(t,e,r){r===void 0&&(r=0),typeof t!="string"&&(t=t.toString());const i=new Zt(t,"utf8"),s=i.length;if(r+s>e.length)throw new RangeError("encoding overruns Buffer");return i.copy(e,r),e[r+s]=0,s+1}}class ZE extends Ne{constructor(t,e){if(typeof t=="string"&&e===void 0&&(e=t,t=void 0),t===void 0)t=-1;else if(!Number.isInteger(t))throw new TypeError("maxSpan must be an integer");super(-1,e),this.maxSpan=t}getSpan(t,e){if(!Zt.isBuffer(t))throw new TypeError("b must be a Buffer");return e===void 0&&(e=0),t.length-e}decode(t,e,r){e===void 0&&(e=0);let i=this.getSpan(t,e);if(0<=this.maxSpan&&this.maxSpan<i)throw new RangeError("text length exceeds maxSpan");return t.slice(e,e+i).toString("utf-8")}encode(t,e,r){r===void 0&&(r=0),typeof t!="string"&&(t=t.toString());const i=new Zt(t,"utf8"),s=i.length;if(0<=this.maxSpan&&this.maxSpan<s)throw new RangeError("text length exceeds maxSpan");if(r+s>e.length)throw new RangeError("encoding overruns Buffer");return i.copy(e,r),s}}class qE extends Ne{constructor(t,e){super(0,e),this.value=t}decode(t,e,r){return this.value}encode(t,e,r){return 0}}Rt.ExternalLayout=Rr,Rt.GreedyCount=UE,Rt.OffsetLayout=My,Rt.UInt=Ki,Rt.UIntBE=xs,Rt.Int=Sa,Rt.IntBE=cu,Rt.Float=DE,Rt.FloatBE=FE,Rt.Double=$E,Rt.DoubleBE=HE,Rt.Sequence=zE,Rt.Structure=GE,Rt.UnionDiscriminator=Uy,Rt.UnionLayoutDiscriminator=f0,Rt.Union=Dy,Rt.VariantLayout=VE,Rt.BitStructure=Fy,Rt.BitField=Ef,Rt.Boolean=KE,Rt.Blob=jE,Rt.CString=WE,Rt.UTF8=ZE,Rt.Constant=qE,Rt.greedy=(n,t)=>new UE(n,t),Rt.offset=(n,t,e)=>new My(n,t,e),Rt.u8=n=>new Ki(1,n),Rt.u16=n=>new Ki(2,n),Rt.u24=n=>new Ki(3,n),Rt.u32=n=>new Ki(4,n),Rt.u40=n=>new Ki(5,n),Rt.u48=n=>new Ki(6,n),Rt.nu64=n=>new PU(n),Rt.u16be=n=>new xs(2,n),Rt.u24be=n=>new xs(3,n),Rt.u32be=n=>new xs(4,n),Rt.u40be=n=>new xs(5,n),Rt.u48be=n=>new xs(6,n),Rt.nu64be=n=>new MU(n),Rt.s8=n=>new Sa(1,n),Rt.s16=n=>new Sa(2,n),Rt.s24=n=>new Sa(3,n),Rt.s32=n=>new Sa(4,n),Rt.s40=n=>new Sa(5,n),Rt.s48=n=>new Sa(6,n),Rt.ns64=n=>new LU(n),Rt.s16be=n=>new cu(2,n),Rt.s24be=n=>new cu(3,n),Rt.s32be=n=>new cu(4,n),Rt.s40be=n=>new cu(5,n),Rt.s48be=n=>new cu(6,n),Rt.ns64be=n=>new UU(n),Rt.f32=n=>new DE(n),Rt.f32be=n=>new FE(n),Rt.f64=n=>new $E(n),Rt.f64be=n=>new HE(n),Rt.struct=(n,t,e)=>new GE(n,t,e),Rt.bits=(n,t,e)=>new Fy(n,t,e),Rt.seq=(n,t,e)=>new zE(n,t,e),Rt.union=(n,t,e)=>new Dy(n,t,e),Rt.unionLayoutDiscriminator=(n,t)=>new f0(n,t),Rt.blob=(n,t)=>new jE(n,t),Rt.cstr=n=>new WE(n),Rt.utf8=(n,t)=>new ZE(n,t),Rt.const=(n,t)=>new qE(n,t);const DU=kc(xU);(function(n){var t=ae&&ae.__importDefault||function(ot){return ot&&ot.__esModule?ot:{default:ot}};Object.defineProperty(n,"__esModule",{value:!0}),n.struct=n.f64=n.f32=n.i32=n.u32=n.i16=n.u16=n.i8=n.u8=void 0,n.u64=c,n.i64=u,n.u128=f,n.i128=h,n.u256=y,n.i256=A,n.publicKey=R,n.option=S,n.bool=B,n.vec=G,n.tagged=W,n.vecU8=J,n.str=j,n.rustEnum=Y,n.array=it,n.map=rt;const e=Rt,r=DU,i=t(_g);var s=Rt;Object.defineProperty(n,"u8",{enumerable:!0,get:function(){return s.u8}}),Object.defineProperty(n,"i8",{enumerable:!0,get:function(){return s.s8}}),Object.defineProperty(n,"u16",{enumerable:!0,get:function(){return s.u16}}),Object.defineProperty(n,"i16",{enumerable:!0,get:function(){return s.s16}}),Object.defineProperty(n,"u32",{enumerable:!0,get:function(){return s.u32}}),Object.defineProperty(n,"i32",{enumerable:!0,get:function(){return s.s32}}),Object.defineProperty(n,"f32",{enumerable:!0,get:function(){return s.f32}}),Object.defineProperty(n,"f64",{enumerable:!0,get:function(){return s.f64}}),Object.defineProperty(n,"struct",{enumerable:!0,get:function(){return s.struct}});class o extends e.Layout{constructor(C,p,m){super(C,m),this.blob=(0,e.blob)(C),this.signed=p}decode(C,p=0){const m=new i.default(this.blob.decode(C,p),10,"le");return this.signed?m.fromTwos(this.span*8).clone():m}encode(C,p,m=0){return this.signed&&(C=C.toTwos(this.span*8)),this.blob.encode(C.toArrayLike(Zt,"le",this.span),p,m)}}function c(ot){return new o(8,!1,ot)}function u(ot){return new o(8,!0,ot)}function f(ot){return new o(16,!1,ot)}function h(ot){return new o(16,!0,ot)}function y(ot){return new o(32,!1,ot)}function A(ot){return new o(32,!0,ot)}class b extends e.Layout{constructor(C,p,m,v){super(C.span,v),this.layout=C,this.decoder=p,this.encoder=m}decode(C,p){return this.decoder(this.layout.decode(C,p))}encode(C,p,m){return this.layout.encode(this.encoder(C),p,m)}getSpan(C,p){return this.layout.getSpan(C,p)}}function R(ot){return new b((0,e.blob)(32),C=>new r.PublicKey(C),C=>C.toBuffer(),ot)}class k extends e.Layout{constructor(C,p){super(-1,p),this.layout=C,this.discriminator=(0,e.u8)()}encode(C,p,m=0){return C==null?this.discriminator.encode(0,p,m):(this.discriminator.encode(1,p,m),this.layout.encode(C,p,m+1)+1)}decode(C,p=0){const m=this.discriminator.decode(C,p);if(m===0)return null;if(m===1)return this.layout.decode(C,p+1);throw new Error("Invalid option "+this.property)}getSpan(C,p=0){const m=this.discriminator.decode(C,p);if(m===0)return 1;if(m===1)return this.layout.getSpan(C,p+1)+1;throw new Error("Invalid option "+this.property)}}function S(ot,C){return new k(ot,C)}function B(ot){return new b((0,e.u8)(),H,U,ot)}function H(ot){if(ot===0)return!1;if(ot===1)return!0;throw new Error("Invalid bool: "+ot)}function U(ot){return ot?1:0}function G(ot,C){const p=(0,e.u32)("length"),m=(0,e.struct)([p,(0,e.seq)(ot,(0,e.offset)(p,-p.span),"values")]);return new b(m,({values:v})=>v,v=>({values:v}),C)}function W(ot,C,p){const m=(0,e.struct)([c("tag"),C.replicate("data")]);function v({tag:I,data:N}){if(!I.eq(ot))throw new Error("Invalid tag, expected: "+ot.toString("hex")+", got: "+I.toString("hex"));return N}return new b(m,v,I=>({tag:ot,data:I}),p)}function J(ot){const C=(0,e.u32)("length"),p=(0,e.struct)([C,(0,e.blob)((0,e.offset)(C,-C.span),"data")]);return new b(p,({data:m})=>m,m=>({data:m}),ot)}function j(ot){return new b(J(),C=>C.toString("utf-8"),C=>Zt.from(C,"utf-8"),ot)}function Y(ot,C,p){const m=(0,e.union)(p??(0,e.u8)(),C);return ot.forEach((v,I)=>m.addVariant(I,v,v.property)),m}function it(ot,C,p){const m=(0,e.struct)([(0,e.seq)(ot,C,"values")]);return new b(m,({values:v})=>v,v=>({values:v}),p)}class ut extends e.Layout{constructor(C,p,m){super(C.span+p.span,m),this.keyLayout=C,this.valueLayout=p}decode(C,p){p=p||0;const m=this.keyLayout.decode(C,p),v=this.valueLayout.decode(C,p+this.keyLayout.getSpan(C,p));return[m,v]}encode(C,p,m){m=m||0;const v=this.keyLayout.encode(C[0],p,m),I=this.valueLayout.encode(C[1],p,m+v);return v+I}getSpan(C,p){return this.keyLayout.getSpan(C,p)+this.valueLayout.getSpan(C,p)}}function rt(ot,C,p){const m=(0,e.u32)("length"),v=(0,e.struct)([m,(0,e.seq)(new ut(ot,C),(0,e.offset)(m,-m.span),"values")]);return new b(v,({values:I})=>new Map(I),I=>({values:Array.from(I.entries())}),p)}})(Yt);/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const FU=4,QE=0,YE=1,$U=2;function lu(n){let t=n.length;for(;--t>=0;)n[t]=0}const HU=0,JE=1,zU=2,GU=3,VU=258,$y=29,vf=256,xf=vf+1+$y,fu=30,Hy=19,XE=2*xf+1,Ia=15,zy=16,KU=7,Gy=256,tv=16,ev=17,nv=18,Vy=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),h0=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),jU=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),rv=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),WU=512,Rs=new Array((xf+2)*2);lu(Rs);const Rf=new Array(fu*2);lu(Rf);const Sf=new Array(WU);lu(Sf);const If=new Array(VU-GU+1);lu(If);const Ky=new Array($y);lu(Ky);const d0=new Array(fu);lu(d0);function jy(n,t,e,r,i){this.static_tree=n,this.extra_bits=t,this.extra_base=e,this.elems=r,this.max_length=i,this.has_stree=n&&n.length}let iv,sv,ov;function Wy(n,t){this.dyn_tree=n,this.max_code=0,this.stat_desc=t}const av=n=>n<256?Sf[n]:Sf[256+(n>>>7)],kf=(n,t)=>{n.pending_buf[n.pending++]=t&255,n.pending_buf[n.pending++]=t>>>8&255},Sr=(n,t,e)=>{n.bi_valid>zy-e?(n.bi_buf|=t<<n.bi_valid&65535,kf(n,n.bi_buf),n.bi_buf=t>>zy-n.bi_valid,n.bi_valid+=e-zy):(n.bi_buf|=t<<n.bi_valid&65535,n.bi_valid+=e)},ji=(n,t,e)=>{Sr(n,e[t*2],e[t*2+1])},cv=(n,t)=>{let e=0;do e|=n&1,n>>>=1,e<<=1;while(--t>0);return e>>>1},ZU=n=>{n.bi_valid===16?(kf(n,n.bi_buf),n.bi_buf=0,n.bi_valid=0):n.bi_valid>=8&&(n.pending_buf[n.pending++]=n.bi_buf&255,n.bi_buf>>=8,n.bi_valid-=8)},qU=(n,t)=>{const e=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,s=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,c=t.stat_desc.extra_base,u=t.stat_desc.max_length;let f,h,y,A,b,R,k=0;for(A=0;A<=Ia;A++)n.bl_count[A]=0;for(e[n.heap[n.heap_max]*2+1]=0,f=n.heap_max+1;f<XE;f++)h=n.heap[f],A=e[e[h*2+1]*2+1]+1,A>u&&(A=u,k++),e[h*2+1]=A,!(h>r)&&(n.bl_count[A]++,b=0,h>=c&&(b=o[h-c]),R=e[h*2],n.opt_len+=R*(A+b),s&&(n.static_len+=R*(i[h*2+1]+b)));if(k!==0){do{for(A=u-1;n.bl_count[A]===0;)A--;n.bl_count[A]--,n.bl_count[A+1]+=2,n.bl_count[u]--,k-=2}while(k>0);for(A=u;A!==0;A--)for(h=n.bl_count[A];h!==0;)y=n.heap[--f],!(y>r)&&(e[y*2+1]!==A&&(n.opt_len+=(A-e[y*2+1])*e[y*2],e[y*2+1]=A),h--)}},uv=(n,t,e)=>{const r=new Array(Ia+1);let i=0,s,o;for(s=1;s<=Ia;s++)i=i+e[s-1]<<1,r[s]=i;for(o=0;o<=t;o++){let c=n[o*2+1];c!==0&&(n[o*2]=cv(r[c]++,c))}},QU=()=>{let n,t,e,r,i;const s=new Array(Ia+1);for(e=0,r=0;r<$y-1;r++)for(Ky[r]=e,n=0;n<1<<Vy[r];n++)If[e++]=r;for(If[e-1]=r,i=0,r=0;r<16;r++)for(d0[r]=i,n=0;n<1<<h0[r];n++)Sf[i++]=r;for(i>>=7;r<fu;r++)for(d0[r]=i<<7,n=0;n<1<<h0[r]-7;n++)Sf[256+i++]=r;for(t=0;t<=Ia;t++)s[t]=0;for(n=0;n<=143;)Rs[n*2+1]=8,n++,s[8]++;for(;n<=255;)Rs[n*2+1]=9,n++,s[9]++;for(;n<=279;)Rs[n*2+1]=7,n++,s[7]++;for(;n<=287;)Rs[n*2+1]=8,n++,s[8]++;for(uv(Rs,xf+1,s),n=0;n<fu;n++)Rf[n*2+1]=5,Rf[n*2]=cv(n,5);iv=new jy(Rs,Vy,vf+1,xf,Ia),sv=new jy(Rf,h0,0,fu,Ia),ov=new jy(new Array(0),jU,0,Hy,KU)},lv=n=>{let t;for(t=0;t<xf;t++)n.dyn_ltree[t*2]=0;for(t=0;t<fu;t++)n.dyn_dtree[t*2]=0;for(t=0;t<Hy;t++)n.bl_tree[t*2]=0;n.dyn_ltree[Gy*2]=1,n.opt_len=n.static_len=0,n.sym_next=n.matches=0},fv=n=>{n.bi_valid>8?kf(n,n.bi_buf):n.bi_valid>0&&(n.pending_buf[n.pending++]=n.bi_buf),n.bi_buf=0,n.bi_valid=0},hv=(n,t,e,r)=>{const i=t*2,s=e*2;return n[i]<n[s]||n[i]===n[s]&&r[t]<=r[e]},Zy=(n,t,e)=>{const r=n.heap[e];let i=e<<1;for(;i<=n.heap_len&&(i<n.heap_len&&hv(t,n.heap[i+1],n.heap[i],n.depth)&&i++,!hv(t,r,n.heap[i],n.depth));)n.heap[e]=n.heap[i],e=i,i<<=1;n.heap[e]=r},dv=(n,t,e)=>{let r,i,s=0,o,c;if(n.sym_next!==0)do r=n.pending_buf[n.sym_buf+s++]&255,r+=(n.pending_buf[n.sym_buf+s++]&255)<<8,i=n.pending_buf[n.sym_buf+s++],r===0?ji(n,i,t):(o=If[i],ji(n,o+vf+1,t),c=Vy[o],c!==0&&(i-=Ky[o],Sr(n,i,c)),r--,o=av(r),ji(n,o,e),c=h0[o],c!==0&&(r-=d0[o],Sr(n,r,c)));while(s<n.sym_next);ji(n,Gy,t)},qy=(n,t)=>{const e=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,s=t.stat_desc.elems;let o,c,u=-1,f;for(n.heap_len=0,n.heap_max=XE,o=0;o<s;o++)e[o*2]!==0?(n.heap[++n.heap_len]=u=o,n.depth[o]=0):e[o*2+1]=0;for(;n.heap_len<2;)f=n.heap[++n.heap_len]=u<2?++u:0,e[f*2]=1,n.depth[f]=0,n.opt_len--,i&&(n.static_len-=r[f*2+1]);for(t.max_code=u,o=n.heap_len>>1;o>=1;o--)Zy(n,e,o);f=s;do o=n.heap[1],n.heap[1]=n.heap[n.heap_len--],Zy(n,e,1),c=n.heap[1],n.heap[--n.heap_max]=o,n.heap[--n.heap_max]=c,e[f*2]=e[o*2]+e[c*2],n.depth[f]=(n.depth[o]>=n.depth[c]?n.depth[o]:n.depth[c])+1,e[o*2+1]=e[c*2+1]=f,n.heap[1]=f++,Zy(n,e,1);while(n.heap_len>=2);n.heap[--n.heap_max]=n.heap[1],qU(n,t),uv(e,u,n.bl_count)},pv=(n,t,e)=>{let r,i=-1,s,o=t[0*2+1],c=0,u=7,f=4;for(o===0&&(u=138,f=3),t[(e+1)*2+1]=65535,r=0;r<=e;r++)s=o,o=t[(r+1)*2+1],!(++c<u&&s===o)&&(c<f?n.bl_tree[s*2]+=c:s!==0?(s!==i&&n.bl_tree[s*2]++,n.bl_tree[tv*2]++):c<=10?n.bl_tree[ev*2]++:n.bl_tree[nv*2]++,c=0,i=s,o===0?(u=138,f=3):s===o?(u=6,f=3):(u=7,f=4))},gv=(n,t,e)=>{let r,i=-1,s,o=t[0*2+1],c=0,u=7,f=4;for(o===0&&(u=138,f=3),r=0;r<=e;r++)if(s=o,o=t[(r+1)*2+1],!(++c<u&&s===o)){if(c<f)do ji(n,s,n.bl_tree);while(--c!==0);else s!==0?(s!==i&&(ji(n,s,n.bl_tree),c--),ji(n,tv,n.bl_tree),Sr(n,c-3,2)):c<=10?(ji(n,ev,n.bl_tree),Sr(n,c-3,3)):(ji(n,nv,n.bl_tree),Sr(n,c-11,7));c=0,i=s,o===0?(u=138,f=3):s===o?(u=6,f=3):(u=7,f=4)}},YU=n=>{let t;for(pv(n,n.dyn_ltree,n.l_desc.max_code),pv(n,n.dyn_dtree,n.d_desc.max_code),qy(n,n.bl_desc),t=Hy-1;t>=3&&n.bl_tree[rv[t]*2+1]===0;t--);return n.opt_len+=3*(t+1)+5+5+4,t},JU=(n,t,e,r)=>{let i;for(Sr(n,t-257,5),Sr(n,e-1,5),Sr(n,r-4,4),i=0;i<r;i++)Sr(n,n.bl_tree[rv[i]*2+1],3);gv(n,n.dyn_ltree,t-1),gv(n,n.dyn_dtree,e-1)},XU=n=>{let t=4093624447,e;for(e=0;e<=31;e++,t>>>=1)if(t&1&&n.dyn_ltree[e*2]!==0)return QE;if(n.dyn_ltree[9*2]!==0||n.dyn_ltree[10*2]!==0||n.dyn_ltree[13*2]!==0)return YE;for(e=32;e<vf;e++)if(n.dyn_ltree[e*2]!==0)return YE;return QE};let yv=!1;const tD=n=>{yv||(QU(),yv=!0),n.l_desc=new Wy(n.dyn_ltree,iv),n.d_desc=new Wy(n.dyn_dtree,sv),n.bl_desc=new Wy(n.bl_tree,ov),n.bi_buf=0,n.bi_valid=0,lv(n)},mv=(n,t,e,r)=>{Sr(n,(HU<<1)+(r?1:0),3),fv(n),kf(n,e),kf(n,~e),e&&n.pending_buf.set(n.window.subarray(t,t+e),n.pending),n.pending+=e},eD=n=>{Sr(n,JE<<1,3),ji(n,Gy,Rs),ZU(n)},nD=(n,t,e,r)=>{let i,s,o=0;n.level>0?(n.strm.data_type===$U&&(n.strm.data_type=XU(n)),qy(n,n.l_desc),qy(n,n.d_desc),o=YU(n),i=n.opt_len+3+7>>>3,s=n.static_len+3+7>>>3,s<=i&&(i=s)):i=s=e+5,e+4<=i&&t!==-1?mv(n,t,e,r):n.strategy===FU||s===i?(Sr(n,(JE<<1)+(r?1:0),3),dv(n,Rs,Rf)):(Sr(n,(zU<<1)+(r?1:0),3),JU(n,n.l_desc.max_code+1,n.d_desc.max_code+1,o+1),dv(n,n.dyn_ltree,n.dyn_dtree)),lv(n),r&&fv(n)},rD=(n,t,e)=>(n.pending_buf[n.sym_buf+n.sym_next++]=t,n.pending_buf[n.sym_buf+n.sym_next++]=t>>8,n.pending_buf[n.sym_buf+n.sym_next++]=e,t===0?n.dyn_ltree[e*2]++:(n.matches++,t--,n.dyn_ltree[(If[e]+vf+1)*2]++,n.dyn_dtree[av(t)*2]++),n.sym_next===n.sym_end);var iD=tD,sD=mv,oD=nD,aD=rD,cD=eD,uD={_tr_init:iD,_tr_stored_block:sD,_tr_flush_block:oD,_tr_tally:aD,_tr_align:cD},Tf=(n,t,e,r)=>{let i=n&65535|0,s=n>>>16&65535|0,o=0;for(;e!==0;){o=e>2e3?2e3:e,e-=o;do i=i+t[r++]|0,s=s+i|0;while(--o);i%=65521,s%=65521}return i|s<<16|0};const lD=()=>{let n,t=[];for(var e=0;e<256;e++){n=e;for(var r=0;r<8;r++)n=n&1?3988292384^n>>>1:n>>>1;t[e]=n}return t},fD=new Uint32Array(lD());var Ln=(n,t,e,r)=>{const i=fD,s=r+e;n^=-1;for(let o=r;o<s;o++)n=n>>>8^i[(n^t[o])&255];return n^-1},hu={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Of={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:hD,_tr_stored_block:Qy,_tr_flush_block:dD,_tr_tally:yo,_tr_align:pD}=uD,{Z_NO_FLUSH:mo,Z_PARTIAL_FLUSH:gD,Z_FULL_FLUSH:yD,Z_FINISH:Xr,Z_BLOCK:wv,Z_OK:Wn,Z_STREAM_END:bv,Z_STREAM_ERROR:Wi,Z_DATA_ERROR:mD,Z_BUF_ERROR:Yy,Z_DEFAULT_COMPRESSION:wD,Z_FILTERED:bD,Z_HUFFMAN_ONLY:p0,Z_RLE:_D,Z_FIXED:AD,Z_DEFAULT_STRATEGY:ED,Z_UNKNOWN:vD,Z_DEFLATED:g0}=Of,xD=9,RD=15,SD=8,Jy=256+1+29,ID=30,kD=19,TD=2*Jy+1,OD=15,le=3,wo=258,Zi=wo+le+1,ND=32,du=42,Xy=57,tm=69,em=73,nm=91,rm=103,ka=113,Nf=666,dr=1,pu=2,Ta=3,gu=4,CD=3,Oa=(n,t)=>(n.msg=hu[t],t),_v=n=>n*2-(n>4?9:0),bo=n=>{let t=n.length;for(;--t>=0;)n[t]=0},BD=n=>{let t,e,r,i=n.w_size;t=n.hash_size,r=t;do e=n.head[--r],n.head[r]=e>=i?e-i:0;while(--t);t=i,r=t;do e=n.prev[--r],n.prev[r]=e>=i?e-i:0;while(--t)};let _o=(n,t,e)=>(t<<n.hash_shift^e)&n.hash_mask;const Fr=n=>{const t=n.state;let e=t.pending;e>n.avail_out&&(e=n.avail_out),e!==0&&(n.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+e),n.next_out),n.next_out+=e,t.pending_out+=e,n.total_out+=e,n.avail_out-=e,t.pending-=e,t.pending===0&&(t.pending_out=0))},$r=(n,t)=>{dD(n,n.block_start>=0?n.block_start:-1,n.strstart-n.block_start,t),n.block_start=n.strstart,Fr(n.strm)},ve=(n,t)=>{n.pending_buf[n.pending++]=t},Cf=(n,t)=>{n.pending_buf[n.pending++]=t>>>8&255,n.pending_buf[n.pending++]=t&255},im=(n,t,e,r)=>{let i=n.avail_in;return i>r&&(i=r),i===0?0:(n.avail_in-=i,t.set(n.input.subarray(n.next_in,n.next_in+i),e),n.state.wrap===1?n.adler=Tf(n.adler,t,i,e):n.state.wrap===2&&(n.adler=Ln(n.adler,t,i,e)),n.next_in+=i,n.total_in+=i,i)},Av=(n,t)=>{let e=n.max_chain_length,r=n.strstart,i,s,o=n.prev_length,c=n.nice_match;const u=n.strstart>n.w_size-Zi?n.strstart-(n.w_size-Zi):0,f=n.window,h=n.w_mask,y=n.prev,A=n.strstart+wo;let b=f[r+o-1],R=f[r+o];n.prev_length>=n.good_match&&(e>>=2),c>n.lookahead&&(c=n.lookahead);do if(i=t,!(f[i+o]!==R||f[i+o-1]!==b||f[i]!==f[r]||f[++i]!==f[r+1])){r+=2,i++;do;while(f[++r]===f[++i]&&f[++r]===f[++i]&&f[++r]===f[++i]&&f[++r]===f[++i]&&f[++r]===f[++i]&&f[++r]===f[++i]&&f[++r]===f[++i]&&f[++r]===f[++i]&&r<A);if(s=wo-(A-r),r=A-wo,s>o){if(n.match_start=t,o=s,s>=c)break;b=f[r+o-1],R=f[r+o]}}while((t=y[t&h])>u&&--e!==0);return o<=n.lookahead?o:n.lookahead},yu=n=>{const t=n.w_size;let e,r,i;do{if(r=n.window_size-n.lookahead-n.strstart,n.strstart>=t+(t-Zi)&&(n.window.set(n.window.subarray(t,t+t-r),0),n.match_start-=t,n.strstart-=t,n.block_start-=t,n.insert>n.strstart&&(n.insert=n.strstart),BD(n),r+=t),n.strm.avail_in===0)break;if(e=im(n.strm,n.window,n.strstart+n.lookahead,r),n.lookahead+=e,n.lookahead+n.insert>=le)for(i=n.strstart-n.insert,n.ins_h=n.window[i],n.ins_h=_o(n,n.ins_h,n.window[i+1]);n.insert&&(n.ins_h=_o(n,n.ins_h,n.window[i+le-1]),n.prev[i&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=i,i++,n.insert--,!(n.lookahead+n.insert<le)););}while(n.lookahead<Zi&&n.strm.avail_in!==0)},Ev=(n,t)=>{let e=n.pending_buf_size-5>n.w_size?n.w_size:n.pending_buf_size-5,r,i,s,o=0,c=n.strm.avail_in;do{if(r=65535,s=n.bi_valid+42>>3,n.strm.avail_out<s||(s=n.strm.avail_out-s,i=n.strstart-n.block_start,r>i+n.strm.avail_in&&(r=i+n.strm.avail_in),r>s&&(r=s),r<e&&(r===0&&t!==Xr||t===mo||r!==i+n.strm.avail_in)))break;o=t===Xr&&r===i+n.strm.avail_in?1:0,Qy(n,0,0,o),n.pending_buf[n.pending-4]=r,n.pending_buf[n.pending-3]=r>>8,n.pending_buf[n.pending-2]=~r,n.pending_buf[n.pending-1]=~r>>8,Fr(n.strm),i&&(i>r&&(i=r),n.strm.output.set(n.window.subarray(n.block_start,n.block_start+i),n.strm.next_out),n.strm.next_out+=i,n.strm.avail_out-=i,n.strm.total_out+=i,n.block_start+=i,r-=i),r&&(im(n.strm,n.strm.output,n.strm.next_out,r),n.strm.next_out+=r,n.strm.avail_out-=r,n.strm.total_out+=r)}while(o===0);return c-=n.strm.avail_in,c&&(c>=n.w_size?(n.matches=2,n.window.set(n.strm.input.subarray(n.strm.next_in-n.w_size,n.strm.next_in),0),n.strstart=n.w_size,n.insert=n.strstart):(n.window_size-n.strstart<=c&&(n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,n.insert>n.strstart&&(n.insert=n.strstart)),n.window.set(n.strm.input.subarray(n.strm.next_in-c,n.strm.next_in),n.strstart),n.strstart+=c,n.insert+=c>n.w_size-n.insert?n.w_size-n.insert:c),n.block_start=n.strstart),n.high_water<n.strstart&&(n.high_water=n.strstart),o?gu:t!==mo&&t!==Xr&&n.strm.avail_in===0&&n.strstart===n.block_start?pu:(s=n.window_size-n.strstart,n.strm.avail_in>s&&n.block_start>=n.w_size&&(n.block_start-=n.w_size,n.strstart-=n.w_size,n.window.set(n.window.subarray(n.w_size,n.w_size+n.strstart),0),n.matches<2&&n.matches++,s+=n.w_size,n.insert>n.strstart&&(n.insert=n.strstart)),s>n.strm.avail_in&&(s=n.strm.avail_in),s&&(im(n.strm,n.window,n.strstart,s),n.strstart+=s,n.insert+=s>n.w_size-n.insert?n.w_size-n.insert:s),n.high_water<n.strstart&&(n.high_water=n.strstart),s=n.bi_valid+42>>3,s=n.pending_buf_size-s>65535?65535:n.pending_buf_size-s,e=s>n.w_size?n.w_size:s,i=n.strstart-n.block_start,(i>=e||(i||t===Xr)&&t!==mo&&n.strm.avail_in===0&&i<=s)&&(r=i>s?s:i,o=t===Xr&&n.strm.avail_in===0&&r===i?1:0,Qy(n,n.block_start,r,o),n.block_start+=r,Fr(n.strm)),o?Ta:dr)},sm=(n,t)=>{let e,r;for(;;){if(n.lookahead<Zi){if(yu(n),n.lookahead<Zi&&t===mo)return dr;if(n.lookahead===0)break}if(e=0,n.lookahead>=le&&(n.ins_h=_o(n,n.ins_h,n.window[n.strstart+le-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),e!==0&&n.strstart-e<=n.w_size-Zi&&(n.match_length=Av(n,e)),n.match_length>=le)if(r=yo(n,n.strstart-n.match_start,n.match_length-le),n.lookahead-=n.match_length,n.match_length<=n.max_lazy_match&&n.lookahead>=le){n.match_length--;do n.strstart++,n.ins_h=_o(n,n.ins_h,n.window[n.strstart+le-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart;while(--n.match_length!==0);n.strstart++}else n.strstart+=n.match_length,n.match_length=0,n.ins_h=n.window[n.strstart],n.ins_h=_o(n,n.ins_h,n.window[n.strstart+1]);else r=yo(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++;if(r&&($r(n,!1),n.strm.avail_out===0))return dr}return n.insert=n.strstart<le-1?n.strstart:le-1,t===Xr?($r(n,!0),n.strm.avail_out===0?Ta:gu):n.sym_next&&($r(n,!1),n.strm.avail_out===0)?dr:pu},mu=(n,t)=>{let e,r,i;for(;;){if(n.lookahead<Zi){if(yu(n),n.lookahead<Zi&&t===mo)return dr;if(n.lookahead===0)break}if(e=0,n.lookahead>=le&&(n.ins_h=_o(n,n.ins_h,n.window[n.strstart+le-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart),n.prev_length=n.match_length,n.prev_match=n.match_start,n.match_length=le-1,e!==0&&n.prev_length<n.max_lazy_match&&n.strstart-e<=n.w_size-Zi&&(n.match_length=Av(n,e),n.match_length<=5&&(n.strategy===bD||n.match_length===le&&n.strstart-n.match_start>4096)&&(n.match_length=le-1)),n.prev_length>=le&&n.match_length<=n.prev_length){i=n.strstart+n.lookahead-le,r=yo(n,n.strstart-1-n.prev_match,n.prev_length-le),n.lookahead-=n.prev_length-1,n.prev_length-=2;do++n.strstart<=i&&(n.ins_h=_o(n,n.ins_h,n.window[n.strstart+le-1]),e=n.prev[n.strstart&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=n.strstart);while(--n.prev_length!==0);if(n.match_available=0,n.match_length=le-1,n.strstart++,r&&($r(n,!1),n.strm.avail_out===0))return dr}else if(n.match_available){if(r=yo(n,0,n.window[n.strstart-1]),r&&$r(n,!1),n.strstart++,n.lookahead--,n.strm.avail_out===0)return dr}else n.match_available=1,n.strstart++,n.lookahead--}return n.match_available&&(r=yo(n,0,n.window[n.strstart-1]),n.match_available=0),n.insert=n.strstart<le-1?n.strstart:le-1,t===Xr?($r(n,!0),n.strm.avail_out===0?Ta:gu):n.sym_next&&($r(n,!1),n.strm.avail_out===0)?dr:pu},PD=(n,t)=>{let e,r,i,s;const o=n.window;for(;;){if(n.lookahead<=wo){if(yu(n),n.lookahead<=wo&&t===mo)return dr;if(n.lookahead===0)break}if(n.match_length=0,n.lookahead>=le&&n.strstart>0&&(i=n.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){s=n.strstart+wo;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<s);n.match_length=wo-(s-i),n.match_length>n.lookahead&&(n.match_length=n.lookahead)}if(n.match_length>=le?(e=yo(n,1,n.match_length-le),n.lookahead-=n.match_length,n.strstart+=n.match_length,n.match_length=0):(e=yo(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++),e&&($r(n,!1),n.strm.avail_out===0))return dr}return n.insert=0,t===Xr?($r(n,!0),n.strm.avail_out===0?Ta:gu):n.sym_next&&($r(n,!1),n.strm.avail_out===0)?dr:pu},MD=(n,t)=>{let e;for(;;){if(n.lookahead===0&&(yu(n),n.lookahead===0)){if(t===mo)return dr;break}if(n.match_length=0,e=yo(n,0,n.window[n.strstart]),n.lookahead--,n.strstart++,e&&($r(n,!1),n.strm.avail_out===0))return dr}return n.insert=0,t===Xr?($r(n,!0),n.strm.avail_out===0?Ta:gu):n.sym_next&&($r(n,!1),n.strm.avail_out===0)?dr:pu};function qi(n,t,e,r,i){this.good_length=n,this.max_lazy=t,this.nice_length=e,this.max_chain=r,this.func=i}const Bf=[new qi(0,0,0,0,Ev),new qi(4,4,8,4,sm),new qi(4,5,16,8,sm),new qi(4,6,32,32,sm),new qi(4,4,16,16,mu),new qi(8,16,32,32,mu),new qi(8,16,128,128,mu),new qi(8,32,128,256,mu),new qi(32,128,258,1024,mu),new qi(32,258,258,4096,mu)],LD=n=>{n.window_size=2*n.w_size,bo(n.head),n.max_lazy_match=Bf[n.level].max_lazy,n.good_match=Bf[n.level].good_length,n.nice_match=Bf[n.level].nice_length,n.max_chain_length=Bf[n.level].max_chain,n.strstart=0,n.block_start=0,n.lookahead=0,n.insert=0,n.match_length=n.prev_length=le-1,n.match_available=0,n.ins_h=0};function UD(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=g0,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(TD*2),this.dyn_dtree=new Uint16Array((2*ID+1)*2),this.bl_tree=new Uint16Array((2*kD+1)*2),bo(this.dyn_ltree),bo(this.dyn_dtree),bo(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(OD+1),this.heap=new Uint16Array(2*Jy+1),bo(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Jy+1),bo(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Pf=n=>{if(!n)return 1;const t=n.state;return!t||t.strm!==n||t.status!==du&&t.status!==Xy&&t.status!==tm&&t.status!==em&&t.status!==nm&&t.status!==rm&&t.status!==ka&&t.status!==Nf?1:0},vv=n=>{if(Pf(n))return Oa(n,Wi);n.total_in=n.total_out=0,n.data_type=vD;const t=n.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?Xy:t.wrap?du:ka,n.adler=t.wrap===2?0:1,t.last_flush=-2,hD(t),Wn},xv=n=>{const t=vv(n);return t===Wn&&LD(n.state),t},DD=(n,t)=>Pf(n)||n.state.wrap!==2?Wi:(n.state.gzhead=t,Wn),Rv=(n,t,e,r,i,s)=>{if(!n)return Wi;let o=1;if(t===wD&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>xD||e!==g0||r<8||r>15||t<0||t>9||s<0||s>AD||r===8&&o!==1)return Oa(n,Wi);r===8&&(r=9);const c=new UD;return n.state=c,c.strm=n,c.status=du,c.wrap=o,c.gzhead=null,c.w_bits=r,c.w_size=1<<c.w_bits,c.w_mask=c.w_size-1,c.hash_bits=i+7,c.hash_size=1<<c.hash_bits,c.hash_mask=c.hash_size-1,c.hash_shift=~~((c.hash_bits+le-1)/le),c.window=new Uint8Array(c.w_size*2),c.head=new Uint16Array(c.hash_size),c.prev=new Uint16Array(c.w_size),c.lit_bufsize=1<<i+6,c.pending_buf_size=c.lit_bufsize*4,c.pending_buf=new Uint8Array(c.pending_buf_size),c.sym_buf=c.lit_bufsize,c.sym_end=(c.lit_bufsize-1)*3,c.level=t,c.strategy=s,c.method=e,xv(n)},FD=(n,t)=>Rv(n,t,g0,RD,SD,ED),$D=(n,t)=>{if(Pf(n)||t>wv||t<0)return n?Oa(n,Wi):Wi;const e=n.state;if(!n.output||n.avail_in!==0&&!n.input||e.status===Nf&&t!==Xr)return Oa(n,n.avail_out===0?Yy:Wi);const r=e.last_flush;if(e.last_flush=t,e.pending!==0){if(Fr(n),n.avail_out===0)return e.last_flush=-1,Wn}else if(n.avail_in===0&&_v(t)<=_v(r)&&t!==Xr)return Oa(n,Yy);if(e.status===Nf&&n.avail_in!==0)return Oa(n,Yy);if(e.status===du&&e.wrap===0&&(e.status=ka),e.status===du){let i=g0+(e.w_bits-8<<4)<<8,s=-1;if(e.strategy>=p0||e.level<2?s=0:e.level<6?s=1:e.level===6?s=2:s=3,i|=s<<6,e.strstart!==0&&(i|=ND),i+=31-i%31,Cf(e,i),e.strstart!==0&&(Cf(e,n.adler>>>16),Cf(e,n.adler&65535)),n.adler=1,e.status=ka,Fr(n),e.pending!==0)return e.last_flush=-1,Wn}if(e.status===Xy){if(n.adler=0,ve(e,31),ve(e,139),ve(e,8),e.gzhead)ve(e,(e.gzhead.text?1:0)+(e.gzhead.hcrc?2:0)+(e.gzhead.extra?4:0)+(e.gzhead.name?8:0)+(e.gzhead.comment?16:0)),ve(e,e.gzhead.time&255),ve(e,e.gzhead.time>>8&255),ve(e,e.gzhead.time>>16&255),ve(e,e.gzhead.time>>24&255),ve(e,e.level===9?2:e.strategy>=p0||e.level<2?4:0),ve(e,e.gzhead.os&255),e.gzhead.extra&&e.gzhead.extra.length&&(ve(e,e.gzhead.extra.length&255),ve(e,e.gzhead.extra.length>>8&255)),e.gzhead.hcrc&&(n.adler=Ln(n.adler,e.pending_buf,e.pending,0)),e.gzindex=0,e.status=tm;else if(ve(e,0),ve(e,0),ve(e,0),ve(e,0),ve(e,0),ve(e,e.level===9?2:e.strategy>=p0||e.level<2?4:0),ve(e,CD),e.status=ka,Fr(n),e.pending!==0)return e.last_flush=-1,Wn}if(e.status===tm){if(e.gzhead.extra){let i=e.pending,s=(e.gzhead.extra.length&65535)-e.gzindex;for(;e.pending+s>e.pending_buf_size;){let c=e.pending_buf_size-e.pending;if(e.pending_buf.set(e.gzhead.extra.subarray(e.gzindex,e.gzindex+c),e.pending),e.pending=e.pending_buf_size,e.gzhead.hcrc&&e.pending>i&&(n.adler=Ln(n.adler,e.pending_buf,e.pending-i,i)),e.gzindex+=c,Fr(n),e.pending!==0)return e.last_flush=-1,Wn;i=0,s-=c}let o=new Uint8Array(e.gzhead.extra);e.pending_buf.set(o.subarray(e.gzindex,e.gzindex+s),e.pending),e.pending+=s,e.gzhead.hcrc&&e.pending>i&&(n.adler=Ln(n.adler,e.pending_buf,e.pending-i,i)),e.gzindex=0}e.status=em}if(e.status===em){if(e.gzhead.name){let i=e.pending,s;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>i&&(n.adler=Ln(n.adler,e.pending_buf,e.pending-i,i)),Fr(n),e.pending!==0)return e.last_flush=-1,Wn;i=0}e.gzindex<e.gzhead.name.length?s=e.gzhead.name.charCodeAt(e.gzindex++)&255:s=0,ve(e,s)}while(s!==0);e.gzhead.hcrc&&e.pending>i&&(n.adler=Ln(n.adler,e.pending_buf,e.pending-i,i)),e.gzindex=0}e.status=nm}if(e.status===nm){if(e.gzhead.comment){let i=e.pending,s;do{if(e.pending===e.pending_buf_size){if(e.gzhead.hcrc&&e.pending>i&&(n.adler=Ln(n.adler,e.pending_buf,e.pending-i,i)),Fr(n),e.pending!==0)return e.last_flush=-1,Wn;i=0}e.gzindex<e.gzhead.comment.length?s=e.gzhead.comment.charCodeAt(e.gzindex++)&255:s=0,ve(e,s)}while(s!==0);e.gzhead.hcrc&&e.pending>i&&(n.adler=Ln(n.adler,e.pending_buf,e.pending-i,i))}e.status=rm}if(e.status===rm){if(e.gzhead.hcrc){if(e.pending+2>e.pending_buf_size&&(Fr(n),e.pending!==0))return e.last_flush=-1,Wn;ve(e,n.adler&255),ve(e,n.adler>>8&255),n.adler=0}if(e.status=ka,Fr(n),e.pending!==0)return e.last_flush=-1,Wn}if(n.avail_in!==0||e.lookahead!==0||t!==mo&&e.status!==Nf){let i=e.level===0?Ev(e,t):e.strategy===p0?MD(e,t):e.strategy===_D?PD(e,t):Bf[e.level].func(e,t);if((i===Ta||i===gu)&&(e.status=Nf),i===dr||i===Ta)return n.avail_out===0&&(e.last_flush=-1),Wn;if(i===pu&&(t===gD?pD(e):t!==wv&&(Qy(e,0,0,!1),t===yD&&(bo(e.head),e.lookahead===0&&(e.strstart=0,e.block_start=0,e.insert=0))),Fr(n),n.avail_out===0))return e.last_flush=-1,Wn}return t!==Xr?Wn:e.wrap<=0?bv:(e.wrap===2?(ve(e,n.adler&255),ve(e,n.adler>>8&255),ve(e,n.adler>>16&255),ve(e,n.adler>>24&255),ve(e,n.total_in&255),ve(e,n.total_in>>8&255),ve(e,n.total_in>>16&255),ve(e,n.total_in>>24&255)):(Cf(e,n.adler>>>16),Cf(e,n.adler&65535)),Fr(n),e.wrap>0&&(e.wrap=-e.wrap),e.pending!==0?Wn:bv)},HD=n=>{if(Pf(n))return Wi;const t=n.state.status;return n.state=null,t===ka?Oa(n,mD):Wn},zD=(n,t)=>{let e=t.length;if(Pf(n))return Wi;const r=n.state,i=r.wrap;if(i===2||i===1&&r.status!==du||r.lookahead)return Wi;if(i===1&&(n.adler=Tf(n.adler,t,e,0)),r.wrap=0,e>=r.w_size){i===0&&(bo(r.head),r.strstart=0,r.block_start=0,r.insert=0);let u=new Uint8Array(r.w_size);u.set(t.subarray(e-r.w_size,e),0),t=u,e=r.w_size}const s=n.avail_in,o=n.next_in,c=n.input;for(n.avail_in=e,n.next_in=0,n.input=t,yu(r);r.lookahead>=le;){let u=r.strstart,f=r.lookahead-(le-1);do r.ins_h=_o(r,r.ins_h,r.window[u+le-1]),r.prev[u&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=u,u++;while(--f);r.strstart=u,r.lookahead=le-1,yu(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=le-1,r.match_available=0,n.next_in=o,n.input=c,n.avail_in=s,r.wrap=i,Wn};var GD=FD,VD=Rv,KD=xv,jD=vv,WD=DD,ZD=$D,qD=HD,QD=zD,YD="pako deflate (from Nodeca project)",Mf={deflateInit:GD,deflateInit2:VD,deflateReset:KD,deflateResetKeep:jD,deflateSetHeader:WD,deflate:ZD,deflateEnd:qD,deflateSetDictionary:QD,deflateInfo:YD};const JD=(n,t)=>Object.prototype.hasOwnProperty.call(n,t);var XD=function(n){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const e=t.shift();if(e){if(typeof e!="object")throw new TypeError(e+"must be non-object");for(const r in e)JD(e,r)&&(n[r]=e[r])}}return n},t9=n=>{let t=0;for(let r=0,i=n.length;r<i;r++)t+=n[r].length;const e=new Uint8Array(t);for(let r=0,i=0,s=n.length;r<s;r++){let o=n[r];e.set(o,i),i+=o.length}return e},y0={assign:XD,flattenChunks:t9};let Sv=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Sv=!1}const Lf=new Uint8Array(256);for(let n=0;n<256;n++)Lf[n]=n>=252?6:n>=248?5:n>=240?4:n>=224?3:n>=192?2:1;Lf[254]=Lf[254]=1;var e9=n=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(n);let t,e,r,i,s,o=n.length,c=0;for(i=0;i<o;i++)e=n.charCodeAt(i),(e&64512)===55296&&i+1<o&&(r=n.charCodeAt(i+1),(r&64512)===56320&&(e=65536+(e-55296<<10)+(r-56320),i++)),c+=e<128?1:e<2048?2:e<65536?3:4;for(t=new Uint8Array(c),s=0,i=0;s<c;i++)e=n.charCodeAt(i),(e&64512)===55296&&i+1<o&&(r=n.charCodeAt(i+1),(r&64512)===56320&&(e=65536+(e-55296<<10)+(r-56320),i++)),e<128?t[s++]=e:e<2048?(t[s++]=192|e>>>6,t[s++]=128|e&63):e<65536?(t[s++]=224|e>>>12,t[s++]=128|e>>>6&63,t[s++]=128|e&63):(t[s++]=240|e>>>18,t[s++]=128|e>>>12&63,t[s++]=128|e>>>6&63,t[s++]=128|e&63);return t};const n9=(n,t)=>{if(t<65534&&n.subarray&&Sv)return String.fromCharCode.apply(null,n.length===t?n:n.subarray(0,t));let e="";for(let r=0;r<t;r++)e+=String.fromCharCode(n[r]);return e};var r9=(n,t)=>{const e=t||n.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(n.subarray(0,t));let r,i;const s=new Array(e*2);for(i=0,r=0;r<e;){let o=n[r++];if(o<128){s[i++]=o;continue}let c=Lf[o];if(c>4){s[i++]=65533,r+=c-1;continue}for(o&=c===2?31:c===3?15:7;c>1&&r<e;)o=o<<6|n[r++]&63,c--;if(c>1){s[i++]=65533;continue}o<65536?s[i++]=o:(o-=65536,s[i++]=55296|o>>10&1023,s[i++]=56320|o&1023)}return n9(s,i)},i9=(n,t)=>{t=t||n.length,t>n.length&&(t=n.length);let e=t-1;for(;e>=0&&(n[e]&192)===128;)e--;return e<0||e===0?t:e+Lf[n[e]]>t?e:t},Uf={string2buf:e9,buf2string:r9,utf8border:i9};function s9(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var Iv=s9;const kv=Object.prototype.toString,{Z_NO_FLUSH:o9,Z_SYNC_FLUSH:a9,Z_FULL_FLUSH:c9,Z_FINISH:u9,Z_OK:m0,Z_STREAM_END:l9,Z_DEFAULT_COMPRESSION:f9,Z_DEFAULT_STRATEGY:h9,Z_DEFLATED:d9}=Of;function om(n){this.options=y0.assign({level:f9,method:d9,chunkSize:16384,windowBits:15,memLevel:8,strategy:h9},n||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Iv,this.strm.avail_out=0;let e=Mf.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(e!==m0)throw new Error(hu[e]);if(t.header&&Mf.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=Uf.string2buf(t.dictionary):kv.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,e=Mf.deflateSetDictionary(this.strm,r),e!==m0)throw new Error(hu[e]);this._dict_set=!0}}om.prototype.push=function(n,t){const e=this.strm,r=this.options.chunkSize;let i,s;if(this.ended)return!1;for(t===~~t?s=t:s=t===!0?u9:o9,typeof n=="string"?e.input=Uf.string2buf(n):kv.call(n)==="[object ArrayBuffer]"?e.input=new Uint8Array(n):e.input=n,e.next_in=0,e.avail_in=e.input.length;;){if(e.avail_out===0&&(e.output=new Uint8Array(r),e.next_out=0,e.avail_out=r),(s===a9||s===c9)&&e.avail_out<=6){this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;continue}if(i=Mf.deflate(e,s),i===l9)return e.next_out>0&&this.onData(e.output.subarray(0,e.next_out)),i=Mf.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===m0;if(e.avail_out===0){this.onData(e.output);continue}if(s>0&&e.next_out>0){this.onData(e.output.subarray(0,e.next_out)),e.avail_out=0;continue}if(e.avail_in===0)break}return!0},om.prototype.onData=function(n){this.chunks.push(n)},om.prototype.onEnd=function(n){n===m0&&(this.result=y0.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};const w0=16209,p9=16191;var g9=function(t,e){let r,i,s,o,c,u,f,h,y,A,b,R,k,S,B,H,U,G,W,J,j,Y,it,ut;const rt=t.state;r=t.next_in,it=t.input,i=r+(t.avail_in-5),s=t.next_out,ut=t.output,o=s-(e-t.avail_out),c=s+(t.avail_out-257),u=rt.dmax,f=rt.wsize,h=rt.whave,y=rt.wnext,A=rt.window,b=rt.hold,R=rt.bits,k=rt.lencode,S=rt.distcode,B=(1<<rt.lenbits)-1,H=(1<<rt.distbits)-1;t:do{R<15&&(b+=it[r++]<<R,R+=8,b+=it[r++]<<R,R+=8),U=k[b&B];e:for(;;){if(G=U>>>24,b>>>=G,R-=G,G=U>>>16&255,G===0)ut[s++]=U&65535;else if(G&16){W=U&65535,G&=15,G&&(R<G&&(b+=it[r++]<<R,R+=8),W+=b&(1<<G)-1,b>>>=G,R-=G),R<15&&(b+=it[r++]<<R,R+=8,b+=it[r++]<<R,R+=8),U=S[b&H];n:for(;;){if(G=U>>>24,b>>>=G,R-=G,G=U>>>16&255,G&16){if(J=U&65535,G&=15,R<G&&(b+=it[r++]<<R,R+=8,R<G&&(b+=it[r++]<<R,R+=8)),J+=b&(1<<G)-1,J>u){t.msg="invalid distance too far back",rt.mode=w0;break t}if(b>>>=G,R-=G,G=s-o,J>G){if(G=J-G,G>h&&rt.sane){t.msg="invalid distance too far back",rt.mode=w0;break t}if(j=0,Y=A,y===0){if(j+=f-G,G<W){W-=G;do ut[s++]=A[j++];while(--G);j=s-J,Y=ut}}else if(y<G){if(j+=f+y-G,G-=y,G<W){W-=G;do ut[s++]=A[j++];while(--G);if(j=0,y<W){G=y,W-=G;do ut[s++]=A[j++];while(--G);j=s-J,Y=ut}}}else if(j+=y-G,G<W){W-=G;do ut[s++]=A[j++];while(--G);j=s-J,Y=ut}for(;W>2;)ut[s++]=Y[j++],ut[s++]=Y[j++],ut[s++]=Y[j++],W-=3;W&&(ut[s++]=Y[j++],W>1&&(ut[s++]=Y[j++]))}else{j=s-J;do ut[s++]=ut[j++],ut[s++]=ut[j++],ut[s++]=ut[j++],W-=3;while(W>2);W&&(ut[s++]=ut[j++],W>1&&(ut[s++]=ut[j++]))}}else if(G&64){t.msg="invalid distance code",rt.mode=w0;break t}else{U=S[(U&65535)+(b&(1<<G)-1)];continue n}break}}else if(G&64)if(G&32){rt.mode=p9;break t}else{t.msg="invalid literal/length code",rt.mode=w0;break t}else{U=k[(U&65535)+(b&(1<<G)-1)];continue e}break}}while(r<i&&s<c);W=R>>3,r-=W,R-=W<<3,b&=(1<<R)-1,t.next_in=r,t.next_out=s,t.avail_in=r<i?5+(i-r):5-(r-i),t.avail_out=s<c?257+(c-s):257-(s-c),rt.hold=b,rt.bits=R};const wu=15,Tv=852,Ov=592,Nv=0,am=1,Cv=2,y9=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),m9=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),w9=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),b9=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var Df=(n,t,e,r,i,s,o,c)=>{const u=c.bits;let f=0,h=0,y=0,A=0,b=0,R=0,k=0,S=0,B=0,H=0,U,G,W,J,j,Y=null,it;const ut=new Uint16Array(wu+1),rt=new Uint16Array(wu+1);let ot=null,C,p,m;for(f=0;f<=wu;f++)ut[f]=0;for(h=0;h<r;h++)ut[t[e+h]]++;for(b=u,A=wu;A>=1&&ut[A]===0;A--);if(b>A&&(b=A),A===0)return i[s++]=1<<24|64<<16|0,i[s++]=1<<24|64<<16|0,c.bits=1,0;for(y=1;y<A&&ut[y]===0;y++);for(b<y&&(b=y),S=1,f=1;f<=wu;f++)if(S<<=1,S-=ut[f],S<0)return-1;if(S>0&&(n===Nv||A!==1))return-1;for(rt[1]=0,f=1;f<wu;f++)rt[f+1]=rt[f]+ut[f];for(h=0;h<r;h++)t[e+h]!==0&&(o[rt[t[e+h]]++]=h);if(n===Nv?(Y=ot=o,it=20):n===am?(Y=y9,ot=m9,it=257):(Y=w9,ot=b9,it=0),H=0,h=0,f=y,j=s,R=b,k=0,W=-1,B=1<<b,J=B-1,n===am&&B>Tv||n===Cv&&B>Ov)return 1;for(;;){C=f-k,o[h]+1<it?(p=0,m=o[h]):o[h]>=it?(p=ot[o[h]-it],m=Y[o[h]-it]):(p=96,m=0),U=1<<f-k,G=1<<R,y=G;do G-=U,i[j+(H>>k)+G]=C<<24|p<<16|m|0;while(G!==0);for(U=1<<f-1;H&U;)U>>=1;if(U!==0?(H&=U-1,H+=U):H=0,h++,--ut[f]===0){if(f===A)break;f=t[e+o[h]]}if(f>b&&(H&J)!==W){for(k===0&&(k=b),j+=y,R=f-k,S=1<<R;R+k<A&&(S-=ut[R+k],!(S<=0));)R++,S<<=1;if(B+=1<<R,n===am&&B>Tv||n===Cv&&B>Ov)return 1;W=H&J,i[W]=b<<24|R<<16|j-s|0}}return H!==0&&(i[j+H]=f-k<<24|64<<16|0),c.bits=b,0};const _9=0,Bv=1,Pv=2,{Z_FINISH:Mv,Z_BLOCK:A9,Z_TREES:b0,Z_OK:Na,Z_STREAM_END:E9,Z_NEED_DICT:v9,Z_STREAM_ERROR:ti,Z_DATA_ERROR:Lv,Z_MEM_ERROR:Uv,Z_BUF_ERROR:x9,Z_DEFLATED:Dv}=Of,_0=16180,Fv=16181,$v=16182,Hv=16183,zv=16184,Gv=16185,Vv=16186,Kv=16187,jv=16188,Wv=16189,A0=16190,Ss=16191,cm=16192,Zv=16193,um=16194,qv=16195,Qv=16196,Yv=16197,Jv=16198,E0=16199,v0=16200,Xv=16201,tx=16202,ex=16203,nx=16204,rx=16205,lm=16206,ix=16207,sx=16208,qe=16209,ox=16210,ax=16211,R9=852,S9=592,I9=15,cx=n=>(n>>>24&255)+(n>>>8&65280)+((n&65280)<<8)+((n&255)<<24);function k9(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Ca=n=>{if(!n)return 1;const t=n.state;return!t||t.strm!==n||t.mode<_0||t.mode>ax?1:0},ux=n=>{if(Ca(n))return ti;const t=n.state;return n.total_in=n.total_out=t.total=0,n.msg="",t.wrap&&(n.adler=t.wrap&1),t.mode=_0,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(R9),t.distcode=t.distdyn=new Int32Array(S9),t.sane=1,t.back=-1,Na},lx=n=>{if(Ca(n))return ti;const t=n.state;return t.wsize=0,t.whave=0,t.wnext=0,ux(n)},fx=(n,t)=>{let e;if(Ca(n))return ti;const r=n.state;return t<0?(e=0,t=-t):(e=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?ti:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=e,r.wbits=t,lx(n))},hx=(n,t)=>{if(!n)return ti;const e=new k9;n.state=e,e.strm=n,e.window=null,e.mode=_0;const r=fx(n,t);return r!==Na&&(n.state=null),r},T9=n=>hx(n,I9);let dx=!0,fm,hm;const O9=n=>{if(dx){fm=new Int32Array(512),hm=new Int32Array(32);let t=0;for(;t<144;)n.lens[t++]=8;for(;t<256;)n.lens[t++]=9;for(;t<280;)n.lens[t++]=7;for(;t<288;)n.lens[t++]=8;for(Df(Bv,n.lens,0,288,fm,0,n.work,{bits:9}),t=0;t<32;)n.lens[t++]=5;Df(Pv,n.lens,0,32,hm,0,n.work,{bits:5}),dx=!1}n.lencode=fm,n.lenbits=9,n.distcode=hm,n.distbits=5},px=(n,t,e,r)=>{let i;const s=n.state;return s.window===null&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new Uint8Array(s.wsize)),r>=s.wsize?(s.window.set(t.subarray(e-s.wsize,e),0),s.wnext=0,s.whave=s.wsize):(i=s.wsize-s.wnext,i>r&&(i=r),s.window.set(t.subarray(e-r,e-r+i),s.wnext),r-=i,r?(s.window.set(t.subarray(e-r,e),0),s.wnext=r,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0},N9=(n,t)=>{let e,r,i,s,o,c,u,f,h,y,A,b,R,k,S=0,B,H,U,G,W,J,j,Y;const it=new Uint8Array(4);let ut,rt;const ot=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Ca(n)||!n.output||!n.input&&n.avail_in!==0)return ti;e=n.state,e.mode===Ss&&(e.mode=cm),o=n.next_out,i=n.output,u=n.avail_out,s=n.next_in,r=n.input,c=n.avail_in,f=e.hold,h=e.bits,y=c,A=u,Y=Na;t:for(;;)switch(e.mode){case _0:if(e.wrap===0){e.mode=cm;break}for(;h<16;){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}if(e.wrap&2&&f===35615){e.wbits===0&&(e.wbits=15),e.check=0,it[0]=f&255,it[1]=f>>>8&255,e.check=Ln(e.check,it,2,0),f=0,h=0,e.mode=Fv;break}if(e.head&&(e.head.done=!1),!(e.wrap&1)||(((f&255)<<8)+(f>>8))%31){n.msg="incorrect header check",e.mode=qe;break}if((f&15)!==Dv){n.msg="unknown compression method",e.mode=qe;break}if(f>>>=4,h-=4,j=(f&15)+8,e.wbits===0&&(e.wbits=j),j>15||j>e.wbits){n.msg="invalid window size",e.mode=qe;break}e.dmax=1<<e.wbits,e.flags=0,n.adler=e.check=1,e.mode=f&512?Wv:Ss,f=0,h=0;break;case Fv:for(;h<16;){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}if(e.flags=f,(e.flags&255)!==Dv){n.msg="unknown compression method",e.mode=qe;break}if(e.flags&57344){n.msg="unknown header flags set",e.mode=qe;break}e.head&&(e.head.text=f>>8&1),e.flags&512&&e.wrap&4&&(it[0]=f&255,it[1]=f>>>8&255,e.check=Ln(e.check,it,2,0)),f=0,h=0,e.mode=$v;case $v:for(;h<32;){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}e.head&&(e.head.time=f),e.flags&512&&e.wrap&4&&(it[0]=f&255,it[1]=f>>>8&255,it[2]=f>>>16&255,it[3]=f>>>24&255,e.check=Ln(e.check,it,4,0)),f=0,h=0,e.mode=Hv;case Hv:for(;h<16;){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}e.head&&(e.head.xflags=f&255,e.head.os=f>>8),e.flags&512&&e.wrap&4&&(it[0]=f&255,it[1]=f>>>8&255,e.check=Ln(e.check,it,2,0)),f=0,h=0,e.mode=zv;case zv:if(e.flags&1024){for(;h<16;){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}e.length=f,e.head&&(e.head.extra_len=f),e.flags&512&&e.wrap&4&&(it[0]=f&255,it[1]=f>>>8&255,e.check=Ln(e.check,it,2,0)),f=0,h=0}else e.head&&(e.head.extra=null);e.mode=Gv;case Gv:if(e.flags&1024&&(b=e.length,b>c&&(b=c),b&&(e.head&&(j=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Uint8Array(e.head.extra_len)),e.head.extra.set(r.subarray(s,s+b),j)),e.flags&512&&e.wrap&4&&(e.check=Ln(e.check,r,b,s)),c-=b,s+=b,e.length-=b),e.length))break t;e.length=0,e.mode=Vv;case Vv:if(e.flags&2048){if(c===0)break t;b=0;do j=r[s+b++],e.head&&j&&e.length<65536&&(e.head.name+=String.fromCharCode(j));while(j&&b<c);if(e.flags&512&&e.wrap&4&&(e.check=Ln(e.check,r,b,s)),c-=b,s+=b,j)break t}else e.head&&(e.head.name=null);e.length=0,e.mode=Kv;case Kv:if(e.flags&4096){if(c===0)break t;b=0;do j=r[s+b++],e.head&&j&&e.length<65536&&(e.head.comment+=String.fromCharCode(j));while(j&&b<c);if(e.flags&512&&e.wrap&4&&(e.check=Ln(e.check,r,b,s)),c-=b,s+=b,j)break t}else e.head&&(e.head.comment=null);e.mode=jv;case jv:if(e.flags&512){for(;h<16;){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}if(e.wrap&4&&f!==(e.check&65535)){n.msg="header crc mismatch",e.mode=qe;break}f=0,h=0}e.head&&(e.head.hcrc=e.flags>>9&1,e.head.done=!0),n.adler=e.check=0,e.mode=Ss;break;case Wv:for(;h<32;){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}n.adler=e.check=cx(f),f=0,h=0,e.mode=A0;case A0:if(e.havedict===0)return n.next_out=o,n.avail_out=u,n.next_in=s,n.avail_in=c,e.hold=f,e.bits=h,v9;n.adler=e.check=1,e.mode=Ss;case Ss:if(t===A9||t===b0)break t;case cm:if(e.last){f>>>=h&7,h-=h&7,e.mode=lm;break}for(;h<3;){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}switch(e.last=f&1,f>>>=1,h-=1,f&3){case 0:e.mode=Zv;break;case 1:if(O9(e),e.mode=E0,t===b0){f>>>=2,h-=2;break t}break;case 2:e.mode=Qv;break;case 3:n.msg="invalid block type",e.mode=qe}f>>>=2,h-=2;break;case Zv:for(f>>>=h&7,h-=h&7;h<32;){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}if((f&65535)!==(f>>>16^65535)){n.msg="invalid stored block lengths",e.mode=qe;break}if(e.length=f&65535,f=0,h=0,e.mode=um,t===b0)break t;case um:e.mode=qv;case qv:if(b=e.length,b){if(b>c&&(b=c),b>u&&(b=u),b===0)break t;i.set(r.subarray(s,s+b),o),c-=b,s+=b,u-=b,o+=b,e.length-=b;break}e.mode=Ss;break;case Qv:for(;h<14;){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}if(e.nlen=(f&31)+257,f>>>=5,h-=5,e.ndist=(f&31)+1,f>>>=5,h-=5,e.ncode=(f&15)+4,f>>>=4,h-=4,e.nlen>286||e.ndist>30){n.msg="too many length or distance symbols",e.mode=qe;break}e.have=0,e.mode=Yv;case Yv:for(;e.have<e.ncode;){for(;h<3;){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}e.lens[ot[e.have++]]=f&7,f>>>=3,h-=3}for(;e.have<19;)e.lens[ot[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,ut={bits:e.lenbits},Y=Df(_9,e.lens,0,19,e.lencode,0,e.work,ut),e.lenbits=ut.bits,Y){n.msg="invalid code lengths set",e.mode=qe;break}e.have=0,e.mode=Jv;case Jv:for(;e.have<e.nlen+e.ndist;){for(;S=e.lencode[f&(1<<e.lenbits)-1],B=S>>>24,H=S>>>16&255,U=S&65535,!(B<=h);){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}if(U<16)f>>>=B,h-=B,e.lens[e.have++]=U;else{if(U===16){for(rt=B+2;h<rt;){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}if(f>>>=B,h-=B,e.have===0){n.msg="invalid bit length repeat",e.mode=qe;break}j=e.lens[e.have-1],b=3+(f&3),f>>>=2,h-=2}else if(U===17){for(rt=B+3;h<rt;){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}f>>>=B,h-=B,j=0,b=3+(f&7),f>>>=3,h-=3}else{for(rt=B+7;h<rt;){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}f>>>=B,h-=B,j=0,b=11+(f&127),f>>>=7,h-=7}if(e.have+b>e.nlen+e.ndist){n.msg="invalid bit length repeat",e.mode=qe;break}for(;b--;)e.lens[e.have++]=j}}if(e.mode===qe)break;if(e.lens[256]===0){n.msg="invalid code -- missing end-of-block",e.mode=qe;break}if(e.lenbits=9,ut={bits:e.lenbits},Y=Df(Bv,e.lens,0,e.nlen,e.lencode,0,e.work,ut),e.lenbits=ut.bits,Y){n.msg="invalid literal/lengths set",e.mode=qe;break}if(e.distbits=6,e.distcode=e.distdyn,ut={bits:e.distbits},Y=Df(Pv,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,ut),e.distbits=ut.bits,Y){n.msg="invalid distances set",e.mode=qe;break}if(e.mode=E0,t===b0)break t;case E0:e.mode=v0;case v0:if(c>=6&&u>=258){n.next_out=o,n.avail_out=u,n.next_in=s,n.avail_in=c,e.hold=f,e.bits=h,g9(n,A),o=n.next_out,i=n.output,u=n.avail_out,s=n.next_in,r=n.input,c=n.avail_in,f=e.hold,h=e.bits,e.mode===Ss&&(e.back=-1);break}for(e.back=0;S=e.lencode[f&(1<<e.lenbits)-1],B=S>>>24,H=S>>>16&255,U=S&65535,!(B<=h);){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}if(H&&!(H&240)){for(G=B,W=H,J=U;S=e.lencode[J+((f&(1<<G+W)-1)>>G)],B=S>>>24,H=S>>>16&255,U=S&65535,!(G+B<=h);){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}f>>>=G,h-=G,e.back+=G}if(f>>>=B,h-=B,e.back+=B,e.length=U,H===0){e.mode=rx;break}if(H&32){e.back=-1,e.mode=Ss;break}if(H&64){n.msg="invalid literal/length code",e.mode=qe;break}e.extra=H&15,e.mode=Xv;case Xv:if(e.extra){for(rt=e.extra;h<rt;){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}e.length+=f&(1<<e.extra)-1,f>>>=e.extra,h-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=tx;case tx:for(;S=e.distcode[f&(1<<e.distbits)-1],B=S>>>24,H=S>>>16&255,U=S&65535,!(B<=h);){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}if(!(H&240)){for(G=B,W=H,J=U;S=e.distcode[J+((f&(1<<G+W)-1)>>G)],B=S>>>24,H=S>>>16&255,U=S&65535,!(G+B<=h);){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}f>>>=G,h-=G,e.back+=G}if(f>>>=B,h-=B,e.back+=B,H&64){n.msg="invalid distance code",e.mode=qe;break}e.offset=U,e.extra=H&15,e.mode=ex;case ex:if(e.extra){for(rt=e.extra;h<rt;){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}e.offset+=f&(1<<e.extra)-1,f>>>=e.extra,h-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){n.msg="invalid distance too far back",e.mode=qe;break}e.mode=nx;case nx:if(u===0)break t;if(b=A-u,e.offset>b){if(b=e.offset-b,b>e.whave&&e.sane){n.msg="invalid distance too far back",e.mode=qe;break}b>e.wnext?(b-=e.wnext,R=e.wsize-b):R=e.wnext-b,b>e.length&&(b=e.length),k=e.window}else k=i,R=o-e.offset,b=e.length;b>u&&(b=u),u-=b,e.length-=b;do i[o++]=k[R++];while(--b);e.length===0&&(e.mode=v0);break;case rx:if(u===0)break t;i[o++]=e.length,u--,e.mode=v0;break;case lm:if(e.wrap){for(;h<32;){if(c===0)break t;c--,f|=r[s++]<<h,h+=8}if(A-=u,n.total_out+=A,e.total+=A,e.wrap&4&&A&&(n.adler=e.check=e.flags?Ln(e.check,i,A,o-A):Tf(e.check,i,A,o-A)),A=u,e.wrap&4&&(e.flags?f:cx(f))!==e.check){n.msg="incorrect data check",e.mode=qe;break}f=0,h=0}e.mode=ix;case ix:if(e.wrap&&e.flags){for(;h<32;){if(c===0)break t;c--,f+=r[s++]<<h,h+=8}if(e.wrap&4&&f!==(e.total&4294967295)){n.msg="incorrect length check",e.mode=qe;break}f=0,h=0}e.mode=sx;case sx:Y=E9;break t;case qe:Y=Lv;break t;case ox:return Uv;case ax:default:return ti}return n.next_out=o,n.avail_out=u,n.next_in=s,n.avail_in=c,e.hold=f,e.bits=h,(e.wsize||A!==n.avail_out&&e.mode<qe&&(e.mode<lm||t!==Mv))&&px(n,n.output,n.next_out,A-n.avail_out),y-=n.avail_in,A-=n.avail_out,n.total_in+=y,n.total_out+=A,e.total+=A,e.wrap&4&&A&&(n.adler=e.check=e.flags?Ln(e.check,i,A,n.next_out-A):Tf(e.check,i,A,n.next_out-A)),n.data_type=e.bits+(e.last?64:0)+(e.mode===Ss?128:0)+(e.mode===E0||e.mode===um?256:0),(y===0&&A===0||t===Mv)&&Y===Na&&(Y=x9),Y},C9=n=>{if(Ca(n))return ti;let t=n.state;return t.window&&(t.window=null),n.state=null,Na},B9=(n,t)=>{if(Ca(n))return ti;const e=n.state;return e.wrap&2?(e.head=t,t.done=!1,Na):ti},P9=(n,t)=>{const e=t.length;let r,i,s;return Ca(n)||(r=n.state,r.wrap!==0&&r.mode!==A0)?ti:r.mode===A0&&(i=1,i=Tf(i,t,e,0),i!==r.check)?Lv:(s=px(n,t,e,e),s?(r.mode=ox,Uv):(r.havedict=1,Na))};var M9=lx,L9=fx,U9=ux,D9=T9,F9=hx,$9=N9,H9=C9,z9=B9,G9=P9,V9="pako inflate (from Nodeca project)",Is={inflateReset:M9,inflateReset2:L9,inflateResetKeep:U9,inflateInit:D9,inflateInit2:F9,inflate:$9,inflateEnd:H9,inflateGetHeader:z9,inflateSetDictionary:G9,inflateInfo:V9};function K9(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var j9=K9;const gx=Object.prototype.toString,{Z_NO_FLUSH:W9,Z_FINISH:Z9,Z_OK:Ff,Z_STREAM_END:dm,Z_NEED_DICT:pm,Z_STREAM_ERROR:q9,Z_DATA_ERROR:yx,Z_MEM_ERROR:Q9}=Of;function $f(n){this.options=y0.assign({chunkSize:1024*64,windowBits:15,to:""},n||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(n&&n.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Iv,this.strm.avail_out=0;let e=Is.inflateInit2(this.strm,t.windowBits);if(e!==Ff)throw new Error(hu[e]);if(this.header=new j9,Is.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=Uf.string2buf(t.dictionary):gx.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(e=Is.inflateSetDictionary(this.strm,t.dictionary),e!==Ff)))throw new Error(hu[e])}$f.prototype.push=function(n,t){const e=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let s,o,c;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?Z9:W9,gx.call(n)==="[object ArrayBuffer]"?e.input=new Uint8Array(n):e.input=n,e.next_in=0,e.avail_in=e.input.length;;){for(e.avail_out===0&&(e.output=new Uint8Array(r),e.next_out=0,e.avail_out=r),s=Is.inflate(e,o),s===pm&&i&&(s=Is.inflateSetDictionary(e,i),s===Ff?s=Is.inflate(e,o):s===yx&&(s=pm));e.avail_in>0&&s===dm&&e.state.wrap>0&&n[e.next_in]!==0;)Is.inflateReset(e),s=Is.inflate(e,o);switch(s){case q9:case yx:case pm:case Q9:return this.onEnd(s),this.ended=!0,!1}if(c=e.avail_out,e.next_out&&(e.avail_out===0||s===dm))if(this.options.to==="string"){let u=Uf.utf8border(e.output,e.next_out),f=e.next_out-u,h=Uf.buf2string(e.output,u);e.next_out=f,e.avail_out=r-f,f&&e.output.set(e.output.subarray(u,u+f),0),this.onData(h)}else this.onData(e.output.length===e.next_out?e.output:e.output.subarray(0,e.next_out));if(!(s===Ff&&c===0)){if(s===dm)return s=Is.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(e.avail_in===0)break}}return!0},$f.prototype.onData=function(n){this.chunks.push(n)},$f.prototype.onEnd=function(n){n===Ff&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=y0.flattenChunks(this.chunks)),this.chunks=[],this.err=n,this.msg=this.strm.msg};function gm(n,t){const e=new $f(t);if(e.push(n),e.err)throw e.msg||hu[e.err];return e.result}function Y9(n,t){return t=t||{},t.raw=!0,gm(n,t)}var J9=$f,X9=gm,tF=Y9,eF=gm,nF=Of,rF={Inflate:J9,inflate:X9,inflateRaw:tF,ungzip:eF,constants:nF};const{Inflate:BZ,inflate:iF,inflateRaw:PZ,ungzip:MZ}=rF;var sF=iF,mx={exports:{}};(function(n){var t=Object.prototype.hasOwnProperty,e="~";function r(){}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(e=!1));function i(u,f,h){this.fn=u,this.context=f,this.once=h||!1}function s(u,f,h,y,A){if(typeof h!="function")throw new TypeError("The listener must be a function");var b=new i(h,y||u,A),R=e?e+f:f;return u._events[R]?u._events[R].fn?u._events[R]=[u._events[R],b]:u._events[R].push(b):(u._events[R]=b,u._eventsCount++),u}function o(u,f){--u._eventsCount===0?u._events=new r:delete u._events[f]}function c(){this._events=new r,this._eventsCount=0}c.prototype.eventNames=function(){var f=[],h,y;if(this._eventsCount===0)return f;for(y in h=this._events)t.call(h,y)&&f.push(e?y.slice(1):y);return Object.getOwnPropertySymbols?f.concat(Object.getOwnPropertySymbols(h)):f},c.prototype.listeners=function(f){var h=e?e+f:f,y=this._events[h];if(!y)return[];if(y.fn)return[y.fn];for(var A=0,b=y.length,R=new Array(b);A<b;A++)R[A]=y[A].fn;return R},c.prototype.listenerCount=function(f){var h=e?e+f:f,y=this._events[h];return y?y.fn?1:y.length:0},c.prototype.emit=function(f,h,y,A,b,R){var k=e?e+f:f;if(!this._events[k])return!1;var S=this._events[k],B=arguments.length,H,U;if(S.fn){switch(S.once&&this.removeListener(f,S.fn,void 0,!0),B){case 1:return S.fn.call(S.context),!0;case 2:return S.fn.call(S.context,h),!0;case 3:return S.fn.call(S.context,h,y),!0;case 4:return S.fn.call(S.context,h,y,A),!0;case 5:return S.fn.call(S.context,h,y,A,b),!0;case 6:return S.fn.call(S.context,h,y,A,b,R),!0}for(U=1,H=new Array(B-1);U<B;U++)H[U-1]=arguments[U];S.fn.apply(S.context,H)}else{var G=S.length,W;for(U=0;U<G;U++)switch(S[U].once&&this.removeListener(f,S[U].fn,void 0,!0),B){case 1:S[U].fn.call(S[U].context);break;case 2:S[U].fn.call(S[U].context,h);break;case 3:S[U].fn.call(S[U].context,h,y);break;case 4:S[U].fn.call(S[U].context,h,y,A);break;default:if(!H)for(W=1,H=new Array(B-1);W<B;W++)H[W-1]=arguments[W];S[U].fn.apply(S[U].context,H)}}return!0},c.prototype.on=function(f,h,y){return s(this,f,h,y,!1)},c.prototype.once=function(f,h,y){return s(this,f,h,y,!0)},c.prototype.removeListener=function(f,h,y,A){var b=e?e+f:f;if(!this._events[b])return this;if(!h)return o(this,b),this;var R=this._events[b];if(R.fn)R.fn===h&&(!A||R.once)&&(!y||R.context===y)&&o(this,b);else{for(var k=0,S=[],B=R.length;k<B;k++)(R[k].fn!==h||A&&!R[k].once||y&&R[k].context!==y)&&S.push(R[k]);S.length?this._events[b]=S.length===1?S[0]:S:o(this,b)}return this},c.prototype.removeAllListeners=function(f){var h;return f?(h=e?e+f:f,this._events[h]&&o(this,h)):(this._events=new r,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=e,c.EventEmitter=c,n.exports=c})(mx);var oF=mx.exports;const aF=Br(oF);function cF(n,t){return Array.apply(0,new Array(Math.ceil(n.length/t))).map((e,r)=>n.slice(r*t,(r+1)*t))}const Ba=n=>"version"in n;function uF(n){return new TextDecoder("utf-8").decode(n)}function wx(n){return Tn.encode(n)}function bx(n){return kt.from(n,"base64")}function Ao(n){return"accounts"in n}async function lF(n){const t=(await pt.findProgramAddress([],n))[0];return await pt.createWithSeed(t,fF(),n)}function fF(){return"anchor:idl"}const hF=Yt.struct([Yt.publicKey("authority"),Yt.vecU8("data")]);function dF(n){return hF.decode(n)}function pF(n){const t=["name","path","account","relations","generic"],e=s=>s.split(".").map(CU).join("."),r=s=>{for(const o in s){const c=s[o];t.includes(o)?s[o]=Array.isArray(c)?c.map(e):e(c):typeof c=="object"&&r(c)}},i=structuredClone(n);return r(i),i}function bu(n,t,e,r){return n!=null&&n.length?n[0].name?e(n):r(n):t()}function gF(n){const t=new Map;return n.errors&&n.errors.forEach(e=>{var r;let i=(r=e.msg)!==null&&r!==void 0?r:e.name;t.set(e.code,i)}),t}function yF(n,...t){if(n.args.length!=t.length)throw new Error("Invalid argument length");const e={};let r=0;return n.args.forEach(i=>{e[i.name]=t[r],r+=1}),e}function _x(n,t={}){n.forEach(e=>{if(Ao(e))_x(e.accounts,t[e.name]);else if(!t[e.name])throw new Error(`Account \`${e.name}\` not provided.`)})}function mi(n){return n instanceof pt?n:new pt(n)}class mF extends TypeError{constructor(t,e){let r;const{message:i,...s}=t,{path:o}=t,c=o.length===0?i:"At path: "+o.join(".")+" -- "+i;super(c),this.value=void 0,this.key=void 0,this.type=void 0,this.refinement=void 0,this.path=void 0,this.branch=void 0,this.failures=void 0,Object.assign(this,s),this.name=this.constructor.name,this.failures=()=>{var u;return(u=r)!=null?u:r=[t,...e()]}}}function wF(n){return _u(n)&&typeof n[Symbol.iterator]=="function"}function _u(n){return typeof n=="object"&&n!=null}function Eo(n){return typeof n=="string"?JSON.stringify(n):""+n}function bF(n){const{done:t,value:e}=n.next();return t?void 0:e}function _F(n,t,e,r){if(n===!0)return;n===!1?n={}:typeof n=="string"&&(n={message:n});const{path:i,branch:s}=t,{type:o}=e,{refinement:c,message:u="Expected a value of type `"+o+"`"+(c?" with refinement `"+c+"`":"")+", but received: `"+Eo(r)+"`"}=n;return{value:r,type:o,refinement:c,key:i[i.length-1],path:i,branch:s,...n,message:u}}function*Ax(n,t,e,r){wF(n)||(n=[n]);for(const i of n){const s=_F(i,t,e,r);s&&(yield s)}}function*ym(n,t,e){e===void 0&&(e={});const{path:r=[],branch:i=[n],coerce:s=!1,mask:o=!1}=e,c={path:r,branch:i};if(s&&(n=t.coercer(n,c),o&&t.type!=="type"&&_u(t.schema)&&_u(n)&&!Array.isArray(n)))for(const f in n)t.schema[f]===void 0&&delete n[f];let u=!0;for(const f of t.validator(n,c))u=!1,yield[f,void 0];for(let[f,h,y]of t.entries(n,c)){const A=ym(h,y,{path:f===void 0?r:[...r,f],branch:f===void 0?i:[...i,h],coerce:s,mask:o});for(const b of A)b[0]?(u=!1,yield[b[0],void 0]):s&&(h=b[1],f===void 0?n=h:n instanceof Map?n.set(f,h):n instanceof Set?n.add(h):_u(n)&&(n[f]=h))}if(u)for(const f of t.refiner(n,c))u=!1,yield[f,void 0];u&&(yield[void 0,n])}class vo{constructor(t){this.TYPE=void 0,this.type=void 0,this.schema=void 0,this.coercer=void 0,this.validator=void 0,this.refiner=void 0,this.entries=void 0;const{type:e,schema:r,validator:i,refiner:s,coercer:o=u=>u,entries:c=function*(){}}=t;this.type=e,this.schema=r,this.entries=c,this.coercer=o,i?this.validator=(u,f)=>{const h=i(u,f);return Ax(h,f,this,u)}:this.validator=()=>[],s?this.refiner=(u,f)=>{const h=s(u,f);return Ax(h,f,this,u)}:this.refiner=()=>[]}assert(t){return AF(t,this)}create(t){return mm(t,this)}is(t){return Ex(t,this)}mask(t){return EF(t,this)}validate(t,e){return e===void 0&&(e={}),Hf(t,this,e)}}function AF(n,t){const e=Hf(n,t);if(e[0])throw e[0]}function mm(n,t){const e=Hf(n,t,{coerce:!0});if(e[0])throw e[0];return e[1]}function EF(n,t){const e=Hf(n,t,{coerce:!0,mask:!0});if(e[0])throw e[0];return e[1]}function Ex(n,t){return!Hf(n,t)[0]}function Hf(n,t,e){e===void 0&&(e={});const r=ym(n,t,e),i=bF(r);return i[0]?[new mF(i[0],function*(){for(const o of r)o[0]&&(yield o[0])}),void 0]:[void 0,i[1]]}function zf(n,t){return new vo({type:n,schema:null,validator:t})}function vF(){return zf("any",()=>!0)}function wm(n){return new vo({type:"array",schema:n,*entries(t){if(n&&Array.isArray(t))for(const[e,r]of t.entries())yield[e,r,n]},coercer(t){return Array.isArray(t)?t.slice():t},validator(t){return Array.isArray(t)||"Expected an array value, but received: "+Eo(t)}})}function xF(){return zf("boolean",n=>typeof n=="boolean")}function vx(n){const t=Eo(n);return new vo({type:"literal",schema:n,validator(e){return e===n||"Expected the literal `"+t+"`, but received: "+Eo(e)}})}function x0(n){return new vo({...n,validator:(t,e)=>t===null||n.validator(t,e),refiner:(t,e)=>t===null||n.refiner(t,e)})}function R0(){return zf("number",n=>typeof n=="number"&&!isNaN(n)||"Expected a number, but received: "+Eo(n))}function S0(n){return new vo({...n,validator:(t,e)=>t===void 0||n.validator(t,e),refiner:(t,e)=>t===void 0||n.refiner(t,e)})}function Pa(){return zf("string",n=>typeof n=="string"||"Expected a string, but received: "+Eo(n))}function xo(n){const t=Object.keys(n);return new vo({type:"type",schema:n,*entries(e){if(_u(e))for(const r of t)yield[r,e[r],n[r]]},validator(e){return _u(e)||"Expected an object, but received: "+Eo(e)}})}function xx(n){const t=n.map(e=>e.type).join(" | ");return new vo({type:"union",schema:null,coercer(e,r){return(n.find(s=>{const[o]=s.validate(e,{coerce:!0});return!o})||bm()).coercer(e,r)},validator(e,r){const i=[];for(const s of n){const[...o]=ym(e,s,r),[c]=o;if(c[0])for(const[u]of o)u&&i.push(u);else return[]}return["Expected the value to satisfy a union of `"+t+"`, but received: "+Eo(e),...i]}})}function bm(){return zf("unknown",()=>!0)}function RF(n,t,e){return new vo({...n,coercer:(r,i)=>Ex(r,t)?n.coercer(e(r,i),i):n.coercer(r,i)})}const Rx=99;async function SF(n,t,e){if(t.length<=Rx)return await Sx(n,t,e);{const r=cF(t,Rx);return(await Promise.all(r.map(s=>Sx(n,s,e)))).flat()}}async function Sx(n,t,e){const r=e??n.commitment,{value:i,context:s}=await n.getMultipleAccountsInfoAndContext(t,r);return i.map((c,u)=>c===null?null:{publicKey:t[u],account:c,context:s})}async function IF(n,t,e,r,i){var s;e&&e.length>0&&t.sign(...e);const o=t._compile(),c=o.serialize(),f=t._serialize(c).toString("base64"),h={encoding:"base64",commitment:r??n.commitment};if(i){const R=(Array.isArray(i)?i:o.nonProgramIds()).map(k=>k.toBase58());h.accounts={encoding:"base64",addresses:R}}e&&e.length>0&&(h.sigVerify=!0);const y=[f,h],A=await n._rpcRequest("simulateTransaction",y),b=mm(A,NF);if("error"in b){let R;if("data"in b.error&&(R=(s=b.error.data)===null||s===void 0?void 0:s.logs,R&&Array.isArray(R))){const k=`
|
|
24
|
+
`,S=k+R.join(k);console.error(b.error.message,S)}throw new go("failed to simulate transaction: "+b.error.message,R)}return b.result}function kF(n){return RF(Ix(n),TF,t=>"error"in t?t:{...t,result:mm(t.result,n)})}const TF=Ix(bm());function Ix(n){return xx([xo({jsonrpc:vx("2.0"),id:Pa(),result:n}),xo({jsonrpc:vx("2.0"),id:Pa(),error:xo({code:bm(),message:Pa(),data:S0(vF())})})])}function OF(n){return kF(xo({context:xo({slot:R0()}),value:n}))}const NF=OF(xo({err:x0(xx([xo({}),Pa()])),logs:x0(wm(Pa())),accounts:S0(x0(wm(x0(xo({executable:xF(),owner:Pa(),lamports:R0(),data:wm(Pa()),rentEpoch:S0(R0())}))))),unitsConsumed:S0(R0())}));class Gf{constructor(t,e,r=Gf.defaultOptions()){this.connection=t,this.wallet=e,this.opts=r,this.publicKey=e==null?void 0:e.publicKey}static defaultOptions(){return{preflightCommitment:"processed",commitment:"processed"}}static local(t,e=Gf.defaultOptions()){throw new Error("Provider local is not available on browser.")}static env(){throw new Error("Provider env is not available on browser.")}async sendAndConfirm(t,e,r){var i,s,o,c;if(r===void 0&&(r=this.opts),Ba(t))e&&t.sign(e);else if(t.feePayer=(i=t.feePayer)!==null&&i!==void 0?i:this.wallet.publicKey,t.recentBlockhash=(await this.connection.getLatestBlockhash(r.preflightCommitment)).blockhash,e)for(const f of e)t.partialSign(f);t=await this.wallet.signTransaction(t);const u=t.serialize();try{return await kx(this.connection,u,r)}catch(f){if(f instanceof _m){const h=wx(Ba(t)?((s=t.signatures)===null||s===void 0?void 0:s[0])||new Uint8Array:(o=t.signature)!==null&&o!==void 0?o:new Uint8Array),y=Ba(t)?0:void 0,A=await this.connection.getTransaction(h,{commitment:"confirmed",maxSupportedTransactionVersion:y});if(A){const b=(c=A.meta)===null||c===void 0?void 0:c.logMessages;throw b?new go(f.message,b):f}else throw f}else throw f}}async sendAll(t,e){var r,i,s;e===void 0&&(e=this.opts);const o=(await this.connection.getLatestBlockhash(e.preflightCommitment)).blockhash;let c=t.map(h=>{var y,A;if(Ba(h.tx)){let b=h.tx;return h.signers&&b.sign(h.signers),b}else{let b=h.tx,R=(y=h.signers)!==null&&y!==void 0?y:[];return b.feePayer=(A=b.feePayer)!==null&&A!==void 0?A:this.wallet.publicKey,b.recentBlockhash=o,R.forEach(k=>{b.partialSign(k)}),b}});const u=await this.wallet.signAllTransactions(c),f=[];for(let h=0;h<c.length;h+=1){const y=u[h],A=y.serialize();try{f.push(await kx(this.connection,A,e))}catch(b){if(b instanceof _m){const R=wx(Ba(y)?((r=y.signatures)===null||r===void 0?void 0:r[0])||new Uint8Array:(i=y.signature)!==null&&i!==void 0?i:new Uint8Array),k=Ba(y)?0:void 0,S=await this.connection.getTransaction(R,{commitment:"confirmed",maxSupportedTransactionVersion:k});if(S){const B=(s=S.meta)===null||s===void 0?void 0:s.logMessages;throw B?new go(b.message,B):b}else throw b}else throw b}}return f}async simulate(t,e,r,i){let s=(await this.connection.getLatestBlockhash(r??this.connection.commitment)).blockhash,o;if(Ba(t)?(e&&e.length>0&&(t.sign(e),t=await this.wallet.signTransaction(t)),o=await this.connection.simulateTransaction(t,{commitment:r})):(t.feePayer=t.feePayer||this.wallet.publicKey,t.recentBlockhash=s,e&&e.length>0&&(t=await this.wallet.signTransaction(t)),o=await IF(this.connection,t,e,r,i)),o.value.err)throw new CF(o.value);return o.value}}class CF extends Error{constructor(t,e){super(e),this.simulationResponse=t}}async function kx(n,t,e){const r=e?{skipPreflight:e.skipPreflight,preflightCommitment:e.preflightCommitment||e.commitment,maxRetries:e.maxRetries,minContextSlot:e.minContextSlot}:{};let i;const s=Date.now();for(;Date.now()-s<6e4;)try{const o=await n.sendRawTransaction(t,r);if(e!=null&&e.blockhash)if(r.maxRetries===0){const c=AbortSignal.timeout(15e3);i=(await n.confirmTransaction({abortSignal:c,signature:o,...e.blockhash},e&&e.commitment)).value}else i=(await n.confirmTransaction({signature:o,...e.blockhash},e&&e.commitment)).value;else i=(await n.confirmTransaction(o,e&&e.commitment)).value;if(i.err)throw new _m(`Raw transaction ${o} failed (${JSON.stringify(i)})`);return o}catch(o){if(o.name==="TimeoutError")continue;throw o}throw Error("Transaction failed to confirm in 60s")}class _m extends Error{constructor(t){super(t)}}function Am(){return Gf.local()}var BF=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof Hc<"u"?Hc:typeof self<"u"?self:{},tt={};Object.defineProperty(tt,"__esModule",{value:!0});var Tx=tt.ANCHOR_ERROR__REQUIRE_EQ_VIOLATED=R2=tt.ANCHOR_ERROR__REQUIRE_VIOLATED=x2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION_PROGRAM_ID=v2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION_AUTHORITY=E2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION=A2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_PERMANENT_DELEGATE_EXTENSION_DELEGATE=_2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_PERMANENT_DELEGATE_EXTENSION=b2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_CLOSE_AUTHORITY_EXTENSION_AUTHORITY=w2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_CLOSE_AUTHORITY_EXTENSION=m2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION_METADATA_ADDRESS=y2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION_AUTHORITY=g2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION=p2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION_MEMBER_ADDRESS=d2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION_AUTHORITY=h2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION=f2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION_GROUP_ADDRESS=l2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION_AUTHORITY=u2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION=c2=tt.ANCHOR_ERROR__CONSTRAINT_ASSOCIATED_TOKEN_TOKEN_PROGRAM=a2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_TOKEN_PROGRAM=o2=tt.ANCHOR_ERROR__CONSTRAINT_TOKEN_TOKEN_PROGRAM=s2=tt.ANCHOR_ERROR__CONSTRAINT_ACCOUNT_IS_NONE=i2=tt.ANCHOR_ERROR__CONSTRAINT_SPACE=r2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_DECIMALS=n2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_FREEZE_AUTHORITY=e2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_MINT_AUTHORITY=t2=tt.ANCHOR_ERROR__CONSTRAINT_TOKEN_OWNER=Xx=tt.ANCHOR_ERROR__CONSTRAINT_TOKEN_MINT=Jx=tt.ANCHOR_ERROR__CONSTRAINT_ZERO=Yx=tt.ANCHOR_ERROR__CONSTRAINT_ADDRESS=Qx=tt.ANCHOR_ERROR__CONSTRAINT_CLOSE=qx=tt.ANCHOR_ERROR__CONSTRAINT_ASSOCIATED_INIT=Zx=tt.ANCHOR_ERROR__CONSTRAINT_ASSOCIATED=Wx=tt.ANCHOR_ERROR__CONSTRAINT_STATE=jx=tt.ANCHOR_ERROR__CONSTRAINT_EXECUTABLE=Kx=tt.ANCHOR_ERROR__CONSTRAINT_SEEDS=Vx=tt.ANCHOR_ERROR__CONSTRAINT_RENT_EXEMPT=Gx=tt.ANCHOR_ERROR__CONSTRAINT_OWNER=zx=tt.ANCHOR_ERROR__CONSTRAINT_RAW=Hx=tt.ANCHOR_ERROR__CONSTRAINT_SIGNER=$x=tt.ANCHOR_ERROR__CONSTRAINT_HAS_ONE=Fx=tt.ANCHOR_ERROR__CONSTRAINT_MUT=Dx=tt.ANCHOR_ERROR__EVENT_INSTRUCTION_STUB=Ux=tt.ANCHOR_ERROR__IDL_ACCOUNT_NOT_EMPTY=Lx=tt.ANCHOR_ERROR__IDL_INSTRUCTION_INVALID_PROGRAM=Mx=tt.ANCHOR_ERROR__IDL_INSTRUCTION_STUB=Px=tt.ANCHOR_ERROR__INSTRUCTION_DID_NOT_SERIALIZE=Bx=tt.ANCHOR_ERROR__INSTRUCTION_DID_NOT_DESERIALIZE=Cx=tt.ANCHOR_ERROR__INSTRUCTION_FALLBACK_NOT_FOUND=Nx=tt.ANCHOR_ERROR__INSTRUCTION_MISSING=void 0,Ox=tt.ANCHOR_ERROR__DEPRECATED=Y2=tt.ANCHOR_ERROR__INVALID_NUMERIC_CONVERSION=Q2=tt.ANCHOR_ERROR__TRYING_TO_INIT_PAYER_AS_PROGRAM_ACCOUNT=q2=tt.ANCHOR_ERROR__DECLARED_PROGRAM_ID_MISMATCH=Z2=tt.ANCHOR_ERROR__ACCOUNT_DUPLICATE_REALLOCS=W2=tt.ANCHOR_ERROR__ACCOUNT_REALLOC_EXCEEDS_LIMIT=j2=tt.ANCHOR_ERROR__ACCOUNT_SYSVAR_MISMATCH=K2=tt.ANCHOR_ERROR__ACCOUNT_NOT_ASSOCIATED_TOKEN_ACCOUNT=V2=tt.ANCHOR_ERROR__ACCOUNT_NOT_PROGRAM_DATA=G2=tt.ANCHOR_ERROR__ACCOUNT_NOT_INITIALIZED=z2=tt.ANCHOR_ERROR__ACCOUNT_NOT_SYSTEM_OWNED=H2=tt.ANCHOR_ERROR__ACCOUNT_NOT_SIGNER=$2=tt.ANCHOR_ERROR__INVALID_PROGRAM_EXECUTABLE=F2=tt.ANCHOR_ERROR__INVALID_PROGRAM_ID=D2=tt.ANCHOR_ERROR__ACCOUNT_OWNED_BY_WRONG_PROGRAM=U2=tt.ANCHOR_ERROR__ACCOUNT_NOT_MUTABLE=L2=tt.ANCHOR_ERROR__ACCOUNT_NOT_ENOUGH_KEYS=M2=tt.ANCHOR_ERROR__ACCOUNT_DID_NOT_SERIALIZE=P2=tt.ANCHOR_ERROR__ACCOUNT_DID_NOT_DESERIALIZE=B2=tt.ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_MISMATCH=C2=tt.ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_NOT_FOUND=N2=tt.ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_ALREADY_SET=O2=tt.ANCHOR_ERROR__REQUIRE_GTE_VIOLATED=T2=tt.ANCHOR_ERROR__REQUIRE_GT_VIOLATED=k2=tt.ANCHOR_ERROR__REQUIRE_KEYS_NEQ_VIOLATED=I2=tt.ANCHOR_ERROR__REQUIRE_NEQ_VIOLATED=S2=tt.ANCHOR_ERROR__REQUIRE_KEYS_EQ_VIOLATED=void 0,Nx=tt.ANCHOR_ERROR__INSTRUCTION_MISSING=100,Cx=tt.ANCHOR_ERROR__INSTRUCTION_FALLBACK_NOT_FOUND=101,Bx=tt.ANCHOR_ERROR__INSTRUCTION_DID_NOT_DESERIALIZE=102,Px=tt.ANCHOR_ERROR__INSTRUCTION_DID_NOT_SERIALIZE=103,Mx=tt.ANCHOR_ERROR__IDL_INSTRUCTION_STUB=1e3,Lx=tt.ANCHOR_ERROR__IDL_INSTRUCTION_INVALID_PROGRAM=1001,Ux=tt.ANCHOR_ERROR__IDL_ACCOUNT_NOT_EMPTY=1002,Dx=tt.ANCHOR_ERROR__EVENT_INSTRUCTION_STUB=1500,Fx=tt.ANCHOR_ERROR__CONSTRAINT_MUT=2e3,$x=tt.ANCHOR_ERROR__CONSTRAINT_HAS_ONE=2001,Hx=tt.ANCHOR_ERROR__CONSTRAINT_SIGNER=2002,zx=tt.ANCHOR_ERROR__CONSTRAINT_RAW=2003,Gx=tt.ANCHOR_ERROR__CONSTRAINT_OWNER=2004,Vx=tt.ANCHOR_ERROR__CONSTRAINT_RENT_EXEMPT=2005,Kx=tt.ANCHOR_ERROR__CONSTRAINT_SEEDS=2006,jx=tt.ANCHOR_ERROR__CONSTRAINT_EXECUTABLE=2007,Wx=tt.ANCHOR_ERROR__CONSTRAINT_STATE=2008,Zx=tt.ANCHOR_ERROR__CONSTRAINT_ASSOCIATED=2009,qx=tt.ANCHOR_ERROR__CONSTRAINT_ASSOCIATED_INIT=2010,Qx=tt.ANCHOR_ERROR__CONSTRAINT_CLOSE=2011,Yx=tt.ANCHOR_ERROR__CONSTRAINT_ADDRESS=2012,Jx=tt.ANCHOR_ERROR__CONSTRAINT_ZERO=2013,Xx=tt.ANCHOR_ERROR__CONSTRAINT_TOKEN_MINT=2014,t2=tt.ANCHOR_ERROR__CONSTRAINT_TOKEN_OWNER=2015,e2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_MINT_AUTHORITY=2016,n2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_FREEZE_AUTHORITY=2017,r2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_DECIMALS=2018,i2=tt.ANCHOR_ERROR__CONSTRAINT_SPACE=2019,s2=tt.ANCHOR_ERROR__CONSTRAINT_ACCOUNT_IS_NONE=2020,o2=tt.ANCHOR_ERROR__CONSTRAINT_TOKEN_TOKEN_PROGRAM=2021,a2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_TOKEN_PROGRAM=2022,c2=tt.ANCHOR_ERROR__CONSTRAINT_ASSOCIATED_TOKEN_TOKEN_PROGRAM=2023,u2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION=2024,l2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION_AUTHORITY=2025,f2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_POINTER_EXTENSION_GROUP_ADDRESS=2026,h2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION=2027,d2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION_AUTHORITY=2028,p2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_GROUP_MEMBER_POINTER_EXTENSION_MEMBER_ADDRESS=2029,g2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION=2030,y2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION_AUTHORITY=2031,m2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_METADATA_POINTER_EXTENSION_METADATA_ADDRESS=2032,w2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_CLOSE_AUTHORITY_EXTENSION=2033,b2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_CLOSE_AUTHORITY_EXTENSION_AUTHORITY=2034,_2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_PERMANENT_DELEGATE_EXTENSION=2035,A2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_PERMANENT_DELEGATE_EXTENSION_DELEGATE=2036,E2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION=2037,v2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION_AUTHORITY=2038,x2=tt.ANCHOR_ERROR__CONSTRAINT_MINT_TRANSFER_HOOK_EXTENSION_PROGRAM_ID=2039,R2=tt.ANCHOR_ERROR__REQUIRE_VIOLATED=2500;Tx=tt.ANCHOR_ERROR__REQUIRE_EQ_VIOLATED=2501;var S2=tt.ANCHOR_ERROR__REQUIRE_KEYS_EQ_VIOLATED=2502,I2=tt.ANCHOR_ERROR__REQUIRE_NEQ_VIOLATED=2503,k2=tt.ANCHOR_ERROR__REQUIRE_KEYS_NEQ_VIOLATED=2504,T2=tt.ANCHOR_ERROR__REQUIRE_GT_VIOLATED=2505,O2=tt.ANCHOR_ERROR__REQUIRE_GTE_VIOLATED=2506,N2=tt.ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_ALREADY_SET=3e3,C2=tt.ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_NOT_FOUND=3001,B2=tt.ANCHOR_ERROR__ACCOUNT_DISCRIMINATOR_MISMATCH=3002,P2=tt.ANCHOR_ERROR__ACCOUNT_DID_NOT_DESERIALIZE=3003,M2=tt.ANCHOR_ERROR__ACCOUNT_DID_NOT_SERIALIZE=3004,L2=tt.ANCHOR_ERROR__ACCOUNT_NOT_ENOUGH_KEYS=3005,U2=tt.ANCHOR_ERROR__ACCOUNT_NOT_MUTABLE=3006,D2=tt.ANCHOR_ERROR__ACCOUNT_OWNED_BY_WRONG_PROGRAM=3007,F2=tt.ANCHOR_ERROR__INVALID_PROGRAM_ID=3008,$2=tt.ANCHOR_ERROR__INVALID_PROGRAM_EXECUTABLE=3009,H2=tt.ANCHOR_ERROR__ACCOUNT_NOT_SIGNER=3010,z2=tt.ANCHOR_ERROR__ACCOUNT_NOT_SYSTEM_OWNED=3011,G2=tt.ANCHOR_ERROR__ACCOUNT_NOT_INITIALIZED=3012,V2=tt.ANCHOR_ERROR__ACCOUNT_NOT_PROGRAM_DATA=3013,K2=tt.ANCHOR_ERROR__ACCOUNT_NOT_ASSOCIATED_TOKEN_ACCOUNT=3014,j2=tt.ANCHOR_ERROR__ACCOUNT_SYSVAR_MISMATCH=3015,W2=tt.ANCHOR_ERROR__ACCOUNT_REALLOC_EXCEEDS_LIMIT=3016,Z2=tt.ANCHOR_ERROR__ACCOUNT_DUPLICATE_REALLOCS=3017,q2=tt.ANCHOR_ERROR__DECLARED_PROGRAM_ID_MISMATCH=4100,Q2=tt.ANCHOR_ERROR__TRYING_TO_INIT_PAYER_AS_PROGRAM_ACCOUNT=4101,Y2=tt.ANCHOR_ERROR__INVALID_NUMERIC_CONVERSION=4102;Ox=tt.ANCHOR_ERROR__DEPRECATED=5e3;const PF=new Map;function J2(n){return PF.get(n)!==void 0}class Ro extends Error{constructor(t){super(t),this.name="IdlError"}}class Vf{constructor(t){this.stack=t}static parse(t){var e;const r=/^Program (\w*) invoke/,i=/^Program \w* success/,s=[];for(let o=0;o<t.length;o++){if(i.exec(t[o])){s.pop();continue}const c=(e=r.exec(t[o]))===null||e===void 0?void 0:e[1];c&&s.push(new pt(c))}return new Vf(s)}}class Kf extends Error{constructor(t,e,r,i,s,o){super(r.join(`
|
|
25
|
+
`).replace("Program log: ","")),this.errorLogs=r,this.logs=i,this.error={errorCode:t,errorMessage:e,comparedValues:o,origin:s},this._programErrorStack=Vf.parse(i)}static parse(t){if(!t)return null;const e=t.findIndex(A=>A.startsWith("Program log: AnchorError"));if(e===-1)return null;const r=t[e],i=[r];let s;if(e+1<t.length){if(t[e+1]==="Program log: Left:"){const A=/^Program log: (.*)$/,b=A.exec(t[e+2])[1],R=A.exec(t[e+4])[1];s=[new pt(b),new pt(R)],i.push(...t.slice(e+1,e+5))}else if(t[e+1].startsWith("Program log: Left:")){const A=/^Program log: (Left|Right): (.*)$/,b=A.exec(t[e+1])[2],R=A.exec(t[e+2])[2];i.push(...t.slice(e+1,e+3)),s=[b,R]}}const c=/^Program log: AnchorError occurred\. Error Code: (.*)\. Error Number: (\d*)\. Error Message: (.*)\./.exec(r),f=/^Program log: AnchorError thrown in (.*):(\d*)\. Error Code: (.*)\. Error Number: (\d*)\. Error Message: (.*)\./.exec(r),y=/^Program log: AnchorError caused by account: (.*)\. Error Code: (.*)\. Error Number: (\d*)\. Error Message: (.*)\./.exec(r);if(c){const[A,b,R]=c.slice(1,4),k={code:A,number:parseInt(b)};return new Kf(k,R,i,t,void 0,s)}else if(f){const[A,b,R,k,S]=f.slice(1,6),B={code:R,number:parseInt(k)},H={file:A,line:parseInt(b)};return new Kf(B,S,i,t,H,s)}else if(y){const[A,b,R,k]=y.slice(1,5),S=A,B={code:b,number:parseInt(R)};return new Kf(B,k,i,t,S,s)}else return null}get program(){return this._programErrorStack.stack[this._programErrorStack.stack.length-1]}get programErrorStack(){return this._programErrorStack.stack}toString(){return this.message}}class I0 extends Error{constructor(t,e,r){super(),this.code=t,this.msg=e,this.logs=r,r&&(this._programErrorStack=Vf.parse(r))}static parse(t,e){const r=t.toString();let i;if(r.includes("custom program error:")){let c=r.split("custom program error: ");if(c.length!==2)return null;i=c[1]}else{const c=r.match(/"Custom":([0-9]+)}/g);if(!c||c.length>1)return null;i=c[0].match(/([0-9]+)/g)[0]}let s;try{s=parseInt(i)}catch{return null}let o=e.get(s);return o!==void 0?new I0(s,o,t.logs):(o=MF.get(s),o!==void 0?new I0(s,o,t.logs):null)}get program(){var t;return(t=this._programErrorStack)===null||t===void 0?void 0:t.stack[this._programErrorStack.stack.length-1]}get programErrorStack(){var t;return(t=this._programErrorStack)===null||t===void 0?void 0:t.stack}toString(){return this.msg}}function X2(n,t){J2("debug-logs")&&console.log("Translating error:",n);const e=Kf.parse(n.logs);if(e)return e;const r=I0.parse(n,t);if(r)return r;if(n.logs){const i={get:function(s,o){return o==="programErrorStack"?s.programErrorStack.stack:o==="program"?s.programErrorStack.stack[n.programErrorStack.stack.length-1]:Reflect.get(...arguments)}};return n.programErrorStack=Vf.parse(n.logs),new Proxy(n,i)}return n}const bt={InstructionMissing:Nx,InstructionFallbackNotFound:Cx,InstructionDidNotDeserialize:Bx,InstructionDidNotSerialize:Px,IdlInstructionStub:Mx,IdlInstructionInvalidProgram:Lx,IdlAccountNotEmpty:Ux,EventInstructionStub:Dx,ConstraintMut:Fx,ConstraintHasOne:$x,ConstraintSigner:Hx,ConstraintRaw:zx,ConstraintOwner:Gx,ConstraintRentExempt:Vx,ConstraintSeeds:Kx,ConstraintExecutable:jx,ConstraintState:Wx,ConstraintAssociated:Zx,ConstraintAssociatedInit:qx,ConstraintClose:Qx,ConstraintAddress:Yx,ConstraintZero:Jx,ConstraintTokenMint:Xx,ConstraintTokenOwner:t2,ConstraintMintMintAuthority:e2,ConstraintMintFreezeAuthority:n2,ConstraintMintDecimals:r2,ConstraintSpace:i2,ConstraintAccountIsNone:s2,ConstraintTokenTokenProgram:o2,ConstraintMintTokenProgram:a2,ConstraintAssociatedTokenTokenProgram:c2,ConstraintMintGroupPointerExtension:u2,ConstraintMintGroupPointerExtensionAuthority:l2,ConstraintMintGroupPointerExtensionGroupAddress:f2,ConstraintMintGroupMemberPointerExtension:h2,ConstraintMintGroupMemberPointerExtensionAuthority:d2,ConstraintMintGroupMemberPointerExtensionMemberAddress:p2,ConstraintMintMetadataPointerExtension:g2,ConstraintMintMetadataPointerExtensionAuthority:y2,ConstraintMintMetadataPointerExtensionMetadataAddress:m2,ConstraintMintCloseAuthorityExtension:w2,ConstraintMintCloseAuthorityExtensionAuthority:b2,ConstraintMintPermanentDelegateExtension:_2,ConstraintMintPermanentDelegateExtensionDelegate:A2,ConstraintMintTransferHookExtension:E2,ConstraintMintTransferHookExtensionAuthority:v2,ConstraintMintTransferHookExtensionProgramId:x2,RequireViolated:R2,RequireEqViolated:Tx,RequireKeysEqViolated:S2,RequireNeqViolated:I2,RequireKeysNeqViolated:k2,RequireGtViolated:T2,RequireGteViolated:O2,AccountDiscriminatorAlreadySet:N2,AccountDiscriminatorNotFound:C2,AccountDiscriminatorMismatch:B2,AccountDidNotDeserialize:P2,AccountDidNotSerialize:M2,AccountNotEnoughKeys:L2,AccountNotMutable:U2,AccountOwnedByWrongProgram:D2,InvalidProgramId:F2,InvalidProgramExecutable:$2,AccountNotSigner:H2,AccountNotSystemOwned:z2,AccountNotInitialized:G2,AccountNotProgramData:V2,AccountNotAssociatedTokenAccount:K2,AccountSysvarMismatch:j2,AccountReallocExceedsLimit:W2,AccountDuplicateReallocs:Z2,DeclaredProgramIdMismatch:q2,TryingToInitPayerAsProgramAccount:Q2,InvalidNumericConversion:Y2,Deprecated:Ox},MF=new Map([[bt.InstructionMissing,"Instruction discriminator not provided"],[bt.InstructionFallbackNotFound,"Fallback functions are not supported"],[bt.InstructionDidNotDeserialize,"The program could not deserialize the given instruction"],[bt.InstructionDidNotSerialize,"The program could not serialize the given instruction"],[bt.IdlInstructionStub,"The program was compiled without idl instructions"],[bt.IdlInstructionInvalidProgram,"The transaction was given an invalid program for the IDL instruction"],[bt.IdlAccountNotEmpty,"IDL account must be empty in order to resize, try closing first"],[bt.EventInstructionStub,"The program was compiled without `event-cpi` feature"],[bt.ConstraintMut,"A mut constraint was violated"],[bt.ConstraintHasOne,"A has one constraint was violated"],[bt.ConstraintSigner,"A signer constraint was violated"],[bt.ConstraintRaw,"A raw constraint was violated"],[bt.ConstraintOwner,"An owner constraint was violated"],[bt.ConstraintRentExempt,"A rent exemption constraint was violated"],[bt.ConstraintSeeds,"A seeds constraint was violated"],[bt.ConstraintExecutable,"An executable constraint was violated"],[bt.ConstraintState,"Deprecated Error, feel free to replace with something else"],[bt.ConstraintAssociated,"An associated constraint was violated"],[bt.ConstraintAssociatedInit,"An associated init constraint was violated"],[bt.ConstraintClose,"A close constraint was violated"],[bt.ConstraintAddress,"An address constraint was violated"],[bt.ConstraintZero,"Expected zero account discriminant"],[bt.ConstraintTokenMint,"A token mint constraint was violated"],[bt.ConstraintTokenOwner,"A token owner constraint was violated"],[bt.ConstraintMintMintAuthority,"A mint mint authority constraint was violated"],[bt.ConstraintMintFreezeAuthority,"A mint freeze authority constraint was violated"],[bt.ConstraintMintDecimals,"A mint decimals constraint was violated"],[bt.ConstraintSpace,"A space constraint was violated"],[bt.ConstraintAccountIsNone,"A required account for the constraint is None"],[bt.ConstraintTokenTokenProgram,"A token account token program constraint was violated"],[bt.ConstraintMintTokenProgram,"A mint token program constraint was violated"],[bt.ConstraintAssociatedTokenTokenProgram,"An associated token account token program constraint was violated"],[bt.ConstraintMintGroupPointerExtension,"A group pointer extension constraint was violated"],[bt.ConstraintMintGroupPointerExtensionAuthority,"A group pointer extension authority constraint was violated"],[bt.ConstraintMintGroupPointerExtensionGroupAddress,"A group pointer extension group address constraint was violated"],[bt.ConstraintMintGroupMemberPointerExtension,"A group member pointer extension constraint was violated"],[bt.ConstraintMintGroupMemberPointerExtensionAuthority,"A group member pointer extension authority constraint was violated"],[bt.ConstraintMintGroupMemberPointerExtensionMemberAddress,"A group member pointer extension group address constraint was violated"],[bt.ConstraintMintMetadataPointerExtension,"A metadata pointer extension constraint was violated"],[bt.ConstraintMintMetadataPointerExtensionAuthority,"A metadata pointer extension authority constraint was violated"],[bt.ConstraintMintMetadataPointerExtensionMetadataAddress,"A metadata pointer extension metadata address constraint was violated"],[bt.ConstraintMintCloseAuthorityExtension,"A close authority constraint was violated"],[bt.ConstraintMintCloseAuthorityExtensionAuthority,"A close authority extension authority constraint was violated"],[bt.ConstraintMintPermanentDelegateExtension,"A permanent delegate extension constraint was violated"],[bt.ConstraintMintPermanentDelegateExtensionDelegate,"A permanent delegate extension delegate constraint was violated"],[bt.ConstraintMintTransferHookExtension,"A transfer hook extension constraint was violated"],[bt.ConstraintMintTransferHookExtensionAuthority,"A transfer hook extension authority constraint was violated"],[bt.ConstraintMintTransferHookExtensionProgramId,"A transfer hook extension transfer hook program id constraint was violated"],[bt.RequireViolated,"A require expression was violated"],[bt.RequireEqViolated,"A require_eq expression was violated"],[bt.RequireKeysEqViolated,"A require_keys_eq expression was violated"],[bt.RequireNeqViolated,"A require_neq expression was violated"],[bt.RequireKeysNeqViolated,"A require_keys_neq expression was violated"],[bt.RequireGtViolated,"A require_gt expression was violated"],[bt.RequireGteViolated,"A require_gte expression was violated"],[bt.AccountDiscriminatorAlreadySet,"The account discriminator was already set on this account"],[bt.AccountDiscriminatorNotFound,"No discriminator was found on the account"],[bt.AccountDiscriminatorMismatch,"Account discriminator did not match what was expected"],[bt.AccountDidNotDeserialize,"Failed to deserialize the account"],[bt.AccountDidNotSerialize,"Failed to serialize the account"],[bt.AccountNotEnoughKeys,"Not enough account keys given to the instruction"],[bt.AccountNotMutable,"The given account is not mutable"],[bt.AccountOwnedByWrongProgram,"The given account is owned by a different program than expected"],[bt.InvalidProgramId,"Program ID was not as expected"],[bt.InvalidProgramExecutable,"Program account is not executable"],[bt.AccountNotSigner,"The given account did not sign"],[bt.AccountNotSystemOwned,"The given account is not owned by the system program"],[bt.AccountNotInitialized,"The program expected this account to be already initialized"],[bt.AccountNotProgramData,"The given account is not a program data account"],[bt.AccountNotAssociatedTokenAccount,"The given account is not the associated token account"],[bt.AccountSysvarMismatch,"The given public key does not match the required sysvar"],[bt.AccountReallocExceedsLimit,"The account reallocation exceeds the MAX_PERMITTED_DATA_INCREASE limit"],[bt.AccountDuplicateReallocs,"The account was duplicated for more than one reallocation"],[bt.DeclaredProgramIdMismatch,"The declared program id does not match the actual program id"],[bt.TryingToInitPayerAsProgramAccount,"You cannot/should not initialize the payer account as a program account"],[bt.InvalidNumericConversion,"The program could not perform the numeric conversion, out of range integral type conversion attempted"],[bt.Deprecated,"The API being used is deprecated and should no longer be used"]]);class ge{static fieldLayout(t,e=[],r){const i=t.name;switch(t.type){case"bool":return Yt.bool(i);case"u8":return Yt.u8(i);case"i8":return Yt.i8(i);case"u16":return Yt.u16(i);case"i16":return Yt.i16(i);case"u32":return Yt.u32(i);case"i32":return Yt.i32(i);case"f32":return Yt.f32(i);case"u64":return Yt.u64(i);case"i64":return Yt.i64(i);case"f64":return Yt.f64(i);case"u128":return Yt.u128(i);case"i128":return Yt.i128(i);case"u256":return Yt.u256(i);case"i256":return Yt.i256(i);case"bytes":return Yt.vecU8(i);case"string":return Yt.str(i);case"pubkey":return Yt.publicKey(i);default:{if("option"in t.type)return Yt.option(ge.fieldLayout({type:t.type.option},e,r),i);if("vec"in t.type)return Yt.vec(ge.fieldLayout({type:t.type.vec},e,r),i);if("array"in t.type){let[s,o]=t.type.array;return o=ge.resolveArrayLen(o,r),Yt.array(ge.fieldLayout({type:s},e,r),o,i)}if("defined"in t.type){if(!e)throw new Ro("User defined types not provided");const s=t.type.defined.name,o=e.find(c=>c.name===s);if(!o)throw new Ro(`Type not found: ${t.name}`);return ge.typeDefLayout({typeDef:o,types:e,genericArgs:r??t.type.defined.generics,name:i})}if("generic"in t.type){const s=r==null?void 0:r.at(0);if((s==null?void 0:s.kind)!=="type")throw new Ro(`Invalid generic field: ${t.name}`);return ge.fieldLayout({...t,type:s.type},e)}throw new Ro(`Not yet implemented: ${JSON.stringify(t.type)}`)}}}static typeDefLayout({typeDef:t,types:e,name:r,genericArgs:i}){switch(t.type.kind){case"struct":{const s=bu(t.type.fields,()=>[],o=>o.map(c=>{const u=i&&ge.resolveGenericArgs({type:c.type,typeDef:t,genericArgs:i});return ge.fieldLayout(c,e,u)}),o=>o.map((c,u)=>{const f=i&&ge.resolveGenericArgs({type:c,typeDef:t,genericArgs:i});return ge.fieldLayout({name:u.toString(),type:c},e,f)}));return Yt.struct(s,r)}case"enum":{const s=t.type.variants.map(o=>{const c=bu(o.fields,()=>[],u=>u.map(f=>{const h=i&&ge.resolveGenericArgs({type:f.type,typeDef:t,genericArgs:i});return ge.fieldLayout(f,e,h)}),u=>u.map((f,h)=>{const y=i&&ge.resolveGenericArgs({type:f,typeDef:t,genericArgs:i});return ge.fieldLayout({name:h.toString(),type:f},e,y)}));return Yt.struct(c,o.name)});return r!==void 0?Yt.rustEnum(s).replicate(r):Yt.rustEnum(s,r)}case"type":return ge.fieldLayout({type:t.type.alias,name:r},e)}}static typeSize(t,e,r){var i;switch(t){case"bool":return 1;case"u8":return 1;case"i8":return 1;case"i16":return 2;case"u16":return 2;case"u32":return 4;case"i32":return 4;case"f32":return 4;case"u64":return 8;case"i64":return 8;case"f64":return 8;case"u128":return 16;case"i128":return 16;case"u256":return 32;case"i256":return 32;case"bytes":return 1;case"string":return 1;case"pubkey":return 32;default:if("option"in t)return 1+ge.typeSize(t.option,e,r);if("coption"in t)return 4+ge.typeSize(t.coption,e,r);if("vec"in t)return 1;if("array"in t){let[s,o]=t.array;return o=ge.resolveArrayLen(o,r),ge.typeSize(s,e,r)*o}if("defined"in t){const s=(i=e.types)===null||i===void 0?void 0:i.find(c=>c.name===t.defined.name);if(!s)throw new Ro(`Type not found: ${JSON.stringify(t)}`);const o=c=>{const u=r??t.defined.generics,f=u&&ge.resolveGenericArgs({type:c,typeDef:s,genericArgs:u});return ge.typeSize(c,e,f)};switch(s.type.kind){case"struct":return bu(s.type.fields,()=>[0],c=>c.map(u=>o(u.type)),c=>c.map(u=>o(u))).reduce((c,u)=>c+u,0);case"enum":{const c=s.type.variants.map(u=>bu(u.fields,()=>[0],f=>f.map(h=>o(h.type)),f=>f.map(h=>o(h))).reduce((f,h)=>f+h,0));return Math.max(...c)+1}case"type":return ge.typeSize(s.type.alias,e,r)}}if("generic"in t){const s=r==null?void 0:r.at(0);if((s==null?void 0:s.kind)!=="type")throw new Ro(`Invalid generic: ${t.generic}`);return ge.typeSize(s.type,e,r)}throw new Error(`Invalid type ${JSON.stringify(t)}`)}}static resolveArrayLen(t,e){if(typeof t=="number")return t;if(e){const r=e.find(i=>i.kind==="const");(r==null?void 0:r.kind)==="const"&&(t=+r.value)}if(typeof t!="number")throw new Ro("Generic array length did not resolve");return t}static resolveGenericArgs({type:t,typeDef:e,genericArgs:r,isDefined:i}){if(typeof t!="object")return null;for(const s in e.generics){const o=e.generics[s];if("generic"in t&&o.name===t.generic)return[r[s]];if("option"in t){const c=ge.resolveGenericArgs({type:t.option,typeDef:e,genericArgs:r,isDefined:i});if(!c||!i)return c;if(c[0].kind==="type")return[{kind:"type",type:{option:c[0].type}}]}if("vec"in t){const c=ge.resolveGenericArgs({type:t.vec,typeDef:e,genericArgs:r,isDefined:i});if(!c||!i)return c;if(c[0].kind==="type")return[{kind:"type",type:{vec:c[0].type}}]}if("array"in t){const[c,u]=t.array,f=typeof u=="object",h=ge.resolveGenericArgs({type:c,typeDef:e,genericArgs:r,isDefined:i});if(h){for(const y in e.generics.slice(+s)){const A=+s+ +y;f&&e.generics[A].name===u.generic&&h.push(r[A])}if(!i)return h;if(h[0].kind==="type"&&h[1].kind==="const")return[{kind:"type",type:{array:[h[0].type,+h[1].value]}}]}if(f&&o.name===u.generic){const y=r[s];return i?[{kind:"type",type:{array:[c,+y.value]}}]:[y]}return null}if("defined"in t)return t.defined.generics?t.defined.generics.flatMap(c=>{switch(c.kind){case"type":return ge.resolveGenericArgs({type:c.type,typeDef:e,genericArgs:r,isDefined:!0});case"const":return[c]}}).filter(c=>c!==null):null}return null}}class LF{constructor(t){this.idl=t;const e=t.instructions.map(r=>{const i=r.name,s=r.args.map(c=>ge.fieldLayout(c,t.types)),o=Yt.struct(s,i);return[i,{discriminator:r.discriminator,layout:o}]});this.ixLayouts=new Map(e)}encode(t,e){const r=kt.alloc(1e3),i=this.ixLayouts.get(t);if(!i)throw new Error(`Unknown method: ${t}`);const s=i.layout.encode(e,r),o=r.slice(0,s);return kt.concat([kt.from(i.discriminator),o])}decode(t,e="hex"){typeof t=="string"&&(t=e==="hex"?kt.from(t,"hex"):Tn.decode(t));for(const[r,i]of this.ixLayouts){const s=t.subarray(0,i.discriminator.length);if(s.equals(kt.from(i.discriminator)))return{name:r,data:i.layout.decode(t.subarray(s.length))}}return null}format(t,e){return Hr.format(t,e,this.idl)}}class Hr{static format(t,e,r){const i=r.instructions.find(u=>t.name===u.name);if(!i)return console.error("Invalid instruction given"),null;const s=i.args.map(u=>({name:u.name,type:Hr.formatIdlType(u.type),data:Hr.formatIdlData(u,t.data[u.name],r.types)})),o=Hr.flattenIdlAccounts(i.accounts),c=e.map((u,f)=>f<o.length?{name:o[f].name,...u}:{name:void 0,...u});return{args:s,accounts:c}}static formatIdlType(t){if(typeof t=="string")return t;if("option"in t)return`Option<${this.formatIdlType(t.option)}>`;if("coption"in t)return`COption<${this.formatIdlType(t.coption)}>`;if("vec"in t)return`Vec<${this.formatIdlType(t.vec)}>`;if("array"in t)return`Array<${t.array[0]}; ${t.array[1]}>`;if("defined"in t){const e=t.defined.name;if(t.defined.generics){const r=t.defined.generics.map(i=>{switch(i.kind){case"type":return Hr.formatIdlType(i.type);case"const":return i.value}}).join(", ");return`${e}<${r}>`}return e}throw new Error(`Unknown IDL type: ${t}`)}static formatIdlData(t,e,r){if(typeof t.type=="string")return e.toString();if("vec"in t.type)return"["+e.map(i=>this.formatIdlData({name:"",type:t.type.vec},i,r)).join(", ")+"]";if("option"in t.type)return e===null?"null":this.formatIdlData({name:"",type:t.type.option},e,r);if("defined"in t.type){if(!r)throw new Error("User defined types not provided");const i=t.type.defined.name,s=r.find(o=>o.name===i);if(!s)throw new Error(`Type not found: ${i}`);return Hr.formatIdlDataDefined(s,e,r)}return"unknown"}static formatIdlDataDefined(t,e,r){switch(t.type.kind){case"struct":return"{ "+bu(t.type.fields,()=>"",i=>Object.entries(e).map(([s,o])=>{const c=i.find(u=>u.name===s);if(!c)throw new Error(`Field not found: ${s}`);return s+": "+Hr.formatIdlData(c,o,r)}).join(", "),i=>Object.entries(e).map(([s,o])=>s+": "+Hr.formatIdlData({name:"",type:i[s]},o,r)).join(", "))+" }";case"enum":{const i=Object.keys(e)[0],s=t.type.variants.find(c=>c.name===i);if(!s)throw new Error(`Unable to find variant: ${i}`);const o=e[i];return bu(s.fields,()=>i,c=>{const u=Object.keys(o).map(f=>{const h=o[f],y=c.find(A=>A.name===f);if(!y)throw new Error(`Field not found: ${f}`);return f+": "+Hr.formatIdlData(y,h,r)}).join(", ");return`${i} { ${u} }`},c=>{const u=Object.entries(o).map(([f,h])=>f+": "+Hr.formatIdlData({name:"",type:c[f]},h,r)).join(", ");return`${i} { ${u} }`})}case"type":return Hr.formatIdlType(t.type.alias)}}static flattenIdlAccounts(t,e){return t.map(r=>{const i=UF(r.name);if(r.hasOwnProperty("accounts")){const s=e?`${e} > ${i}`:i;return Hr.flattenIdlAccounts(r.accounts,s)}else return{...r,name:e?`${e} > ${i}`:i}}).flat()}}function UF(n){const t=n.replace(/([A-Z])/g," $1");return t.charAt(0).toUpperCase()+t.slice(1)}class DF{constructor(t){if(this.idl=t,!t.accounts){this.accountLayouts=new Map;return}const e=t.types;if(!e)throw new Error("Accounts require `idl.types`");const r=t.accounts.map(i=>{const s=e.find(o=>o.name===i.name);if(!s)throw new Error(`Account not found: ${i.name}`);return[i.name,{discriminator:i.discriminator,layout:ge.typeDefLayout({typeDef:s,types:e})}]});this.accountLayouts=new Map(r)}async encode(t,e){const r=kt.alloc(1e3),i=this.accountLayouts.get(t);if(!i)throw new Error(`Unknown account: ${t}`);const s=i.layout.encode(e,r),o=r.slice(0,s),c=this.accountDiscriminator(t);return kt.concat([c,o])}decode(t,e){const r=this.accountDiscriminator(t);if(r.compare(e.slice(0,r.length)))throw new Error("Invalid account discriminator");return this.decodeUnchecked(t,e)}decodeAny(t){for(const[e,r]of this.accountLayouts)if(t.subarray(0,r.discriminator.length).equals(kt.from(r.discriminator)))return this.decodeUnchecked(e,t);throw new Error("Account not found")}decodeUnchecked(t,e){const r=this.accountDiscriminator(t),i=e.subarray(r.length),s=this.accountLayouts.get(t);if(!s)throw new Error(`Unknown account: ${t}`);return s.layout.decode(i)}memcmp(t,e){const r=this.accountDiscriminator(t);return{offset:0,bytes:Tn.encode(e?kt.concat([r,e]):r)}}size(t){return this.accountDiscriminator(t).length+ge.typeSize({defined:{name:t}},this.idl)}accountDiscriminator(t){var e;const r=(e=this.idl.accounts)===null||e===void 0?void 0:e.find(i=>i.name===t);if(!r)throw new Error(`Account not found: ${t}`);return kt.from(r.discriminator)}}class FF{constructor(t){if(!t.events){this.layouts=new Map;return}const e=t.types;if(!e)throw new Error("Events require `idl.types`");const r=t.events.map(i=>{const s=e.find(o=>o.name===i.name);if(!s)throw new Error(`Event not found: ${i.name}`);return[i.name,{discriminator:i.discriminator,layout:ge.typeDefLayout({typeDef:s,types:e})}]});this.layouts=new Map(r)}decode(t){let e;try{e=bx(t)}catch{return null}for(const[r,i]of this.layouts){const s=e.subarray(0,i.discriminator.length);if(s.equals(kt.from(i.discriminator)))return{name:r,data:i.layout.decode(e.subarray(s.length))}}return null}}class $F{constructor(t){const e=t.types;if(!e){this.typeLayouts=new Map;return}const r=e.filter(i=>!i.generics).map(i=>[i.name,ge.typeDefLayout({typeDef:i,types:e})]);this.typeLayouts=new Map(r)}encode(t,e){const r=kt.alloc(1e3),i=this.typeLayouts.get(t);if(!i)throw new Error(`Unknown type: ${t}`);const s=i.encode(e,r);return r.slice(0,s)}decode(t,e){const r=this.typeLayouts.get(t);if(!r)throw new Error(`Unknown type: ${t}`);return r.decode(e)}}class tR{constructor(t){this.instruction=new LF(t),this.accounts=new DF(t),this.events=new FF(t),this.types=new $F(t)}}class Ir{constructor(t,e){if(!Number.isInteger(t))throw new TypeError("span must be an integer");this.span=t,this.property=e}makeDestinationObject(){return{}}decode(t,e){throw new Error("Layout is abstract")}encode(t,e,r){throw new Error("Layout is abstract")}getSpan(t,e){if(0>this.span)throw new RangeError("indeterminate span");return this.span}replicate(t){const e=Object.create(this.constructor.prototype);return Object.assign(e,this),e.property=t,e}fromArray(t){}}var k0=Ir;function HF(n,t){return t.property?n+"["+t.property+"]":n}class Ma extends Ir{isCount(){throw new Error("ExternalLayout is abstract")}}class eR extends Ma{constructor(t,e,r){if(!(t instanceof Ir))throw new TypeError("layout must be a Layout");if(e===void 0)e=0;else if(!Number.isInteger(e))throw new TypeError("offset must be integer or undefined");super(t.span,r||t.property),this.layout=t,this.offset=e}isCount(){return this.layout instanceof T0||this.layout instanceof nR}decode(t,e){return e===void 0&&(e=0),this.layout.decode(t,e+this.offset)}encode(t,e,r){return r===void 0&&(r=0),this.layout.encode(t,e,r+this.offset)}}class T0 extends Ir{constructor(t,e){if(super(t,e),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(t,e){return e===void 0&&(e=0),t.readUIntLE(e,this.span)}encode(t,e,r){return r===void 0&&(r=0),e.writeUIntLE(t,r,this.span),this.span}}class nR extends Ir{constructor(t,e){if(super(t,e),6<this.span)throw new RangeError("span must not exceed 6 bytes")}decode(t,e){return e===void 0&&(e=0),t.readUIntBE(e,this.span)}encode(t,e,r){return r===void 0&&(r=0),e.writeUIntBE(t,r,this.span),this.span}}const Em=Math.pow(2,32);function rR(n){const t=Math.floor(n/Em),e=n-t*Em;return{hi32:t,lo32:e}}function iR(n,t){return n*Em+t}class zF extends Ir{constructor(t){super(8,t)}decode(t,e){e===void 0&&(e=0);const r=t.readUInt32LE(e),i=t.readUInt32LE(e+4);return iR(i,r)}encode(t,e,r){r===void 0&&(r=0);const i=rR(t);return e.writeUInt32LE(i.lo32,r),e.writeUInt32LE(i.hi32,r+4),8}}class GF extends Ir{constructor(t){super(8,t)}decode(t,e){e===void 0&&(e=0);const r=t.readUInt32LE(e),i=t.readInt32LE(e+4);return iR(i,r)}encode(t,e,r){r===void 0&&(r=0);const i=rR(t);return e.writeUInt32LE(i.lo32,r),e.writeInt32LE(i.hi32,r+4),8}}class VF extends Ir{constructor(t,e,r){if(!(Array.isArray(t)&&t.reduce((s,o)=>s&&o instanceof Ir,!0)))throw new TypeError("fields must be array of Layout instances");typeof e=="boolean"&&r===void 0&&(r=e,e=void 0);for(const s of t)if(0>s.span&&s.property===void 0)throw new Error("fields cannot contain unnamed variable-length layout");let i=-1;try{i=t.reduce((s,o)=>s+o.getSpan(),0)}catch{}super(i,e),this.fields=t,this.decodePrefixes=!!r}getSpan(t,e){if(0<=this.span)return this.span;e===void 0&&(e=0);let r=0;try{r=this.fields.reduce((i,s)=>{const o=s.getSpan(t,e);return e+=o,i+o},0)}catch{throw new RangeError("indeterminate span")}return r}decode(t,e){e===void 0&&(e=0);const r=this.makeDestinationObject();for(const i of this.fields)if(i.property!==void 0&&(r[i.property]=i.decode(t,e)),e+=i.getSpan(t,e),this.decodePrefixes&&t.length===e)break;return r}encode(t,e,r){r===void 0&&(r=0);const i=r;let s=0,o=0;for(const c of this.fields){let u=c.span;if(o=0<u?u:0,c.property!==void 0){const f=t[c.property];f!==void 0&&(o=c.encode(f,e,r),0>u&&(u=c.getSpan(e,r)))}s=r,r+=u}return s+o-i}fromArray(t){const e=this.makeDestinationObject();for(const r of this.fields)r.property!==void 0&&0<t.length&&(e[r.property]=t.shift());return e}layoutFor(t){if(typeof t!="string")throw new TypeError("property must be string");for(const e of this.fields)if(e.property===t)return e}offsetOf(t){if(typeof t!="string")throw new TypeError("property must be string");let e=0;for(const r of this.fields){if(r.property===t)return e;0>r.span?e=-1:0<=e&&(e+=r.span)}}}class sR{constructor(t){this.property=t}decode(){throw new Error("UnionDiscriminator is abstract")}encode(){throw new Error("UnionDiscriminator is abstract")}}class oR extends sR{constructor(t,e){if(!(t instanceof Ma&&t.isCount()))throw new TypeError("layout must be an unsigned integer ExternalLayout");super(e||t.property||"variant"),this.layout=t}decode(t,e){return this.layout.decode(t,e)}encode(t,e,r){return this.layout.encode(t,e,r)}}class aR extends Ir{constructor(t,e,r){const i=t instanceof T0||t instanceof nR;if(i)t=new oR(new eR(t));else if(t instanceof Ma&&t.isCount())t=new oR(t);else if(!(t instanceof sR))throw new TypeError("discr must be a UnionDiscriminator or an unsigned integer layout");if(e===void 0&&(e=null),!(e===null||e instanceof Ir))throw new TypeError("defaultLayout must be null or a Layout");if(e!==null){if(0>e.span)throw new Error("defaultLayout must have constant span");e.property===void 0&&(e=e.replicate("content"))}let s=-1;e&&(s=e.span,0<=s&&i&&(s+=t.layout.span)),super(s,r),this.discriminator=t,this.usesPrefixDiscriminator=i,this.defaultLayout=e,this.registry={};let o=this.defaultGetSourceVariant.bind(this);this.getSourceVariant=function(c){return o(c)},this.configGetSourceVariant=function(c){o=c.bind(this)}}getSpan(t,e){if(0<=this.span)return this.span;e===void 0&&(e=0);const r=this.getVariant(t,e);if(!r)throw new Error("unable to determine span for unrecognized variant");return r.getSpan(t,e)}defaultGetSourceVariant(t){if(t.hasOwnProperty(this.discriminator.property)){if(this.defaultLayout&&t.hasOwnProperty(this.defaultLayout.property))return;const e=this.registry[t[this.discriminator.property]];if(e&&(!e.layout||t.hasOwnProperty(e.property)))return e}else for(const e in this.registry){const r=this.registry[e];if(t.hasOwnProperty(r.property))return r}throw new Error("unable to infer src variant")}decode(t,e){e===void 0&&(e=0);let r;const i=this.discriminator,s=i.decode(t,e);let o=this.registry[s];if(o===void 0){let c=0;o=this.defaultLayout,this.usesPrefixDiscriminator&&(c=i.layout.span),r=this.makeDestinationObject(),r[i.property]=s,r[o.property]=this.defaultLayout.decode(t,e+c)}else r=o.decode(t,e);return r}encode(t,e,r){r===void 0&&(r=0);const i=this.getSourceVariant(t);if(i===void 0){const s=this.discriminator,o=this.defaultLayout;let c=0;return this.usesPrefixDiscriminator&&(c=s.layout.span),s.encode(t[s.property],e,r),c+o.encode(t[o.property],e,r+c)}return i.encode(t,e,r)}addVariant(t,e,r){const i=new KF(this,t,e,r);return this.registry[t]=i,i}getVariant(t,e){let r=t;return Zt.isBuffer(t)&&(e===void 0&&(e=0),r=this.discriminator.decode(t,e)),this.registry[r]}}class KF extends Ir{constructor(t,e,r,i){if(!(t instanceof aR))throw new TypeError("union must be a Union");if(!Number.isInteger(e)||0>e)throw new TypeError("variant must be a (non-negative) integer");if(typeof r=="string"&&i===void 0&&(i=r,r=null),r){if(!(r instanceof Ir))throw new TypeError("layout must be a Layout");if(t.defaultLayout!==null&&0<=r.span&&r.span>t.defaultLayout.span)throw new Error("variant span exceeds span of containing union");if(typeof i!="string")throw new TypeError("variant must have a String property")}let s=t.span;0>t.span&&(s=r?r.span:0,0<=s&&t.usesPrefixDiscriminator&&(s+=t.discriminator.layout.span)),super(s,i),this.union=t,this.variant=e,this.layout=r||null}getSpan(t,e){if(0<=this.span)return this.span;e===void 0&&(e=0);let r=0;return this.union.usesPrefixDiscriminator&&(r=this.union.discriminator.layout.span),r+this.layout.getSpan(t,e+r)}decode(t,e){const r=this.makeDestinationObject();if(e===void 0&&(e=0),this!==this.union.getVariant(t,e))throw new Error("variant mismatch");let i=0;return this.union.usesPrefixDiscriminator&&(i=this.union.discriminator.layout.span),this.layout?r[this.property]=this.layout.decode(t,e+i):this.property?r[this.property]=!0:this.union.usesPrefixDiscriminator&&(r[this.union.discriminator.property]=this.variant),r}encode(t,e,r){r===void 0&&(r=0);let i=0;if(this.union.usesPrefixDiscriminator&&(i=this.union.discriminator.layout.span),this.layout&&!t.hasOwnProperty(this.property))throw new TypeError("variant lacks property "+this.property);this.union.discriminator.encode(this.variant,e,r);let s=i;if(this.layout&&(this.layout.encode(t[this.property],e,r+i),s+=this.layout.getSpan(e,r+i),0<=this.union.span&&s>this.union.span))throw new Error("encoded variant overruns containing union");return s}fromArray(t){if(this.layout)return this.layout.fromArray(t)}}class jF extends Ir{constructor(t,e){if(!(t instanceof Ma&&t.isCount()||Number.isInteger(t)&&0<=t))throw new TypeError("length must be positive integer or an unsigned integer ExternalLayout");let r=-1;t instanceof Ma||(r=t),super(r,e),this.length=t}getSpan(t,e){let r=this.span;return 0>r&&(r=this.length.decode(t,e)),r}decode(t,e){e===void 0&&(e=0);let r=this.span;return 0>r&&(r=this.length.decode(t,e)),t.slice(e,e+r)}encode(t,e,r){let i=this.length;if(this.length instanceof Ma&&(i=t.length),!(Zt.isBuffer(t)&&i===t.length))throw new TypeError(HF("Blob.encode",this)+" requires (length "+i+") Buffer as src");if(r+i>e.length)throw new RangeError("encoding overruns Buffer");return e.write(t.toString("hex"),r,i,"hex"),this.length instanceof Ma&&this.length.encode(i,e,r),i}}var WF=(n,t,e)=>new eR(n,t,e),ZF=n=>new T0(1,n),ks=n=>new T0(4,n),qF=n=>new zF(n),Ts=n=>new GF(n),Cn=(n,t,e)=>new VF(n,t,e),cR=(n,t,e)=>new aR(n,t,e),jf=(n,t)=>new jF(n,t);class QF extends k0{constructor(t){super(-1,t),this.property=t,this.layout=Cn([ks("length"),ks("lengthPadding"),jf(WF(ks(),-8),"chars")],this.property)}encode(t,e,r=0){if(t==null)return this.layout.span;const i={chars:Zt.from(t,"utf8")};return this.layout.encode(i,e,r)}decode(t,e=0){return this.layout.decode(t,e).chars.toString()}getSpan(t,e=0){return ks().span+ks().span+new ys(new Uint8Array(t).slice(e,e+4),10,"le").toNumber()}}function O0(n){return new QF(n)}function ei(n){return jf(32,n)}const zr=cR(ks("instruction"));zr.addVariant(0,Cn([Ts("lamports"),Ts("space"),ei("owner")]),"createAccount"),zr.addVariant(1,Cn([ei("owner")]),"assign"),zr.addVariant(2,Cn([Ts("lamports")]),"transfer"),zr.addVariant(3,Cn([ei("base"),O0("seed"),Ts("lamports"),Ts("space"),ei("owner")]),"createAccountWithSeed"),zr.addVariant(4,Cn([ei("authorized")]),"advanceNonceAccount"),zr.addVariant(5,Cn([Ts("lamports")]),"withdrawNonceAccount"),zr.addVariant(6,Cn([ei("authorized")]),"initializeNonceAccount"),zr.addVariant(7,Cn([ei("authorized")]),"authorizeNonceAccount"),zr.addVariant(8,Cn([Ts("space")]),"allocate"),zr.addVariant(9,Cn([ei("base"),O0("seed"),Ts("space"),ei("owner")]),"allocateWithSeed"),zr.addVariant(10,Cn([ei("base"),O0("seed"),ei("owner")]),"assignWithSeed"),zr.addVariant(11,Cn([Ts("lamports"),O0("seed"),ei("owner")]),"transferWithSeed"),Math.max(...Object.values(zr.registry).map(n=>n.span));class YF extends k0{constructor(t,e,r,i){super(t.span,i),this.layout=t,this.decoder=e,this.encoder=r}decode(t,e){return this.decoder(this.layout.decode(t,e))}encode(t,e,r){return this.layout.encode(this.encoder(t),e,r)}getSpan(t,e){return this.layout.getSpan(t,e)}}function uR(n){return new YF(jf(32),t=>new pt(t),t=>t.toBuffer(),n)}Cn([ks("version"),ks("state"),uR("authorizedPubkey"),uR("nonce"),Cn([qF("lamportsPerSignature")],"feeCalculator")]),new pt("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"),new pt("ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL");var lR={exports:{}};(function(n,t){var e=typeof self<"u"?self:BF,r=function(){function s(){this.fetch=!1,this.DOMException=e.DOMException}return s.prototype=e,new s}();(function(s){(function(o){var c={searchParams:"URLSearchParams"in s,iterable:"Symbol"in s&&"iterator"in Symbol,blob:"FileReader"in s&&"Blob"in s&&function(){try{return new Blob,!0}catch{return!1}}(),formData:"FormData"in s,arrayBuffer:"ArrayBuffer"in s};function u(p){return p&&DataView.prototype.isPrototypeOf(p)}if(c.arrayBuffer)var f=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],h=ArrayBuffer.isView||function(p){return p&&f.indexOf(Object.prototype.toString.call(p))>-1};function y(p){if(typeof p!="string"&&(p=String(p)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(p))throw new TypeError("Invalid character in header field name");return p.toLowerCase()}function A(p){return typeof p!="string"&&(p=String(p)),p}function b(p){var m={next:function(){var v=p.shift();return{done:v===void 0,value:v}}};return c.iterable&&(m[Symbol.iterator]=function(){return m}),m}function R(p){this.map={},p instanceof R?p.forEach(function(m,v){this.append(v,m)},this):Array.isArray(p)?p.forEach(function(m){this.append(m[0],m[1])},this):p&&Object.getOwnPropertyNames(p).forEach(function(m){this.append(m,p[m])},this)}R.prototype.append=function(p,m){p=y(p),m=A(m);var v=this.map[p];this.map[p]=v?v+", "+m:m},R.prototype.delete=function(p){delete this.map[y(p)]},R.prototype.get=function(p){return p=y(p),this.has(p)?this.map[p]:null},R.prototype.has=function(p){return this.map.hasOwnProperty(y(p))},R.prototype.set=function(p,m){this.map[y(p)]=A(m)},R.prototype.forEach=function(p,m){for(var v in this.map)this.map.hasOwnProperty(v)&&p.call(m,this.map[v],v,this)},R.prototype.keys=function(){var p=[];return this.forEach(function(m,v){p.push(v)}),b(p)},R.prototype.values=function(){var p=[];return this.forEach(function(m){p.push(m)}),b(p)},R.prototype.entries=function(){var p=[];return this.forEach(function(m,v){p.push([v,m])}),b(p)},c.iterable&&(R.prototype[Symbol.iterator]=R.prototype.entries);function k(p){if(p.bodyUsed)return Promise.reject(new TypeError("Already read"));p.bodyUsed=!0}function S(p){return new Promise(function(m,v){p.onload=function(){m(p.result)},p.onerror=function(){v(p.error)}})}function B(p){var m=new FileReader,v=S(m);return m.readAsArrayBuffer(p),v}function H(p){var m=new FileReader,v=S(m);return m.readAsText(p),v}function U(p){for(var m=new Uint8Array(p),v=new Array(m.length),I=0;I<m.length;I++)v[I]=String.fromCharCode(m[I]);return v.join("")}function G(p){if(p.slice)return p.slice(0);var m=new Uint8Array(p.byteLength);return m.set(new Uint8Array(p)),m.buffer}function W(){return this.bodyUsed=!1,this._initBody=function(p){this._bodyInit=p,p?typeof p=="string"?this._bodyText=p:c.blob&&Blob.prototype.isPrototypeOf(p)?this._bodyBlob=p:c.formData&&FormData.prototype.isPrototypeOf(p)?this._bodyFormData=p:c.searchParams&&URLSearchParams.prototype.isPrototypeOf(p)?this._bodyText=p.toString():c.arrayBuffer&&c.blob&&u(p)?(this._bodyArrayBuffer=G(p.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):c.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(p)||h(p))?this._bodyArrayBuffer=G(p):this._bodyText=p=Object.prototype.toString.call(p):this._bodyText="",this.headers.get("content-type")||(typeof p=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):c.searchParams&&URLSearchParams.prototype.isPrototypeOf(p)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},c.blob&&(this.blob=function(){var p=k(this);if(p)return p;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?k(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(B)}),this.text=function(){var p=k(this);if(p)return p;if(this._bodyBlob)return H(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(U(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},c.formData&&(this.formData=function(){return this.text().then(it)}),this.json=function(){return this.text().then(JSON.parse)},this}var J=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];function j(p){var m=p.toUpperCase();return J.indexOf(m)>-1?m:p}function Y(p,m){m=m||{};var v=m.body;if(p instanceof Y){if(p.bodyUsed)throw new TypeError("Already read");this.url=p.url,this.credentials=p.credentials,m.headers||(this.headers=new R(p.headers)),this.method=p.method,this.mode=p.mode,this.signal=p.signal,!v&&p._bodyInit!=null&&(v=p._bodyInit,p.bodyUsed=!0)}else this.url=String(p);if(this.credentials=m.credentials||this.credentials||"same-origin",(m.headers||!this.headers)&&(this.headers=new R(m.headers)),this.method=j(m.method||this.method||"GET"),this.mode=m.mode||this.mode||null,this.signal=m.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&v)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(v)}Y.prototype.clone=function(){return new Y(this,{body:this._bodyInit})};function it(p){var m=new FormData;return p.trim().split("&").forEach(function(v){if(v){var I=v.split("="),N=I.shift().replace(/\+/g," "),M=I.join("=").replace(/\+/g," ");m.append(decodeURIComponent(N),decodeURIComponent(M))}}),m}function ut(p){var m=new R,v=p.replace(/\r?\n[\t ]+/g," ");return v.split(/\r?\n/).forEach(function(I){var N=I.split(":"),M=N.shift().trim();if(M){var z=N.join(":").trim();m.append(M,z)}}),m}W.call(Y.prototype);function rt(p,m){m||(m={}),this.type="default",this.status=m.status===void 0?200:m.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in m?m.statusText:"OK",this.headers=new R(m.headers),this.url=m.url||"",this._initBody(p)}W.call(rt.prototype),rt.prototype.clone=function(){return new rt(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new R(this.headers),url:this.url})},rt.error=function(){var p=new rt(null,{status:0,statusText:""});return p.type="error",p};var ot=[301,302,303,307,308];rt.redirect=function(p,m){if(ot.indexOf(m)===-1)throw new RangeError("Invalid status code");return new rt(null,{status:m,headers:{location:p}})},o.DOMException=s.DOMException;try{new o.DOMException}catch{o.DOMException=function(m,v){this.message=m,this.name=v;var I=Error(m);this.stack=I.stack},o.DOMException.prototype=Object.create(Error.prototype),o.DOMException.prototype.constructor=o.DOMException}function C(p,m){return new Promise(function(v,I){var N=new Y(p,m);if(N.signal&&N.signal.aborted)return I(new o.DOMException("Aborted","AbortError"));var M=new XMLHttpRequest;function z(){M.abort()}M.onload=function(){var P={status:M.status,statusText:M.statusText,headers:ut(M.getAllResponseHeaders()||"")};P.url="responseURL"in M?M.responseURL:P.headers.get("X-Request-URL");var _="response"in M?M.response:M.responseText;v(new rt(_,P))},M.onerror=function(){I(new TypeError("Network request failed"))},M.ontimeout=function(){I(new TypeError("Network request failed"))},M.onabort=function(){I(new o.DOMException("Aborted","AbortError"))},M.open(N.method,N.url,!0),N.credentials==="include"?M.withCredentials=!0:N.credentials==="omit"&&(M.withCredentials=!1),"responseType"in M&&c.blob&&(M.responseType="blob"),N.headers.forEach(function(P,_){M.setRequestHeader(_,P)}),N.signal&&(N.signal.addEventListener("abort",z),M.onreadystatechange=function(){M.readyState===4&&N.signal.removeEventListener("abort",z)}),M.send(typeof N._bodyInit>"u"?null:N._bodyInit)})}return C.polyfill=!0,s.fetch||(s.fetch=C,s.Headers=R,s.Request=Y,s.Response=rt),o.Headers=R,o.Request=Y,o.Response=rt,o.fetch=C,Object.defineProperty(o,"__esModule",{value:!0}),o})({})})(r),r.fetch.ponyfill=!0,delete r.fetch.polyfill;var i=r;t=i.fetch,t.default=i.fetch,t.fetch=i.fetch,t.Headers=i.Headers,t.Request=i.Request,t.Response=i.Response,n.exports=t})(lR,lR.exports),Yt.rustEnum([Yt.struct([],"uninitialized"),Yt.struct([Yt.option(Yt.publicKey(),"authorityAddress")],"buffer"),Yt.struct([Yt.publicKey("programdataAddress")],"program"),Yt.struct([Yt.u64("slot"),Yt.option(Yt.publicKey(),"upgradeAuthorityAddress")],"programData")],void 0,Yt.u32());const vm="Program log: ",fR="Program data: ",JF=vm.length,XF=fR.length;class t7{constructor(t,e,r){this._programId=t,this._provider=e,this._eventParser=new hR(t,r),this._eventCallbacks=new Map,this._eventListeners=new Map,this._listenerIdCount=0}addEventListener(t,e,r){var i;let s=this._listenerIdCount;return this._listenerIdCount+=1,this._eventListeners.has(t)||this._eventListeners.set(t,[]),this._eventListeners.set(t,((i=this._eventListeners.get(t))!==null&&i!==void 0?i:[]).concat(s)),this._eventCallbacks.set(s,[t,e]),this._onLogsSubscriptionId!==void 0||(this._onLogsSubscriptionId=this._provider.connection.onLogs(this._programId,(o,c)=>{if(!o.err)for(const u of this._eventParser.parseLogs(o.logs)){const f=this._eventListeners.get(u.name);f&&f.forEach(h=>{const y=this._eventCallbacks.get(h);if(y){const[,A]=y;A(u.data,c.slot,o.signature)}})}},r)),s}async removeEventListener(t){const e=this._eventCallbacks.get(t);if(!e)throw new Error(`Event listener ${t} doesn't exist!`);const[r]=e;let i=this._eventListeners.get(r);if(!i)throw new Error(`Event listeners don't exist for ${r}!`);if(this._eventCallbacks.delete(t),i=i.filter(s=>s!==t),this._eventListeners.set(r,i),i.length===0&&this._eventListeners.delete(r),this._eventCallbacks.size===0){if(this._eventListeners.size!==0)throw new Error(`Expected event listeners size to be 0 but got ${this._eventListeners.size}`);this._onLogsSubscriptionId!==void 0&&(await this._provider.connection.removeOnLogsListener(this._onLogsSubscriptionId),this._onLogsSubscriptionId=void 0)}}}class hR{constructor(t,e){this.coder=e,this.programId=t}*parseLogs(t,e=!1){const r=new n7(t),i=new e7;let s=r.next();for(;s!==null;){let[o,c,u]=this.handleLog(i,s,e);o&&(yield o),c&&i.push(c),u&&i.pop(),s=r.next()}}handleLog(t,e,r){return t.stack.length>0&&t.program()===this.programId.toString()?this.handleProgramLog(e,r):[null,...this.handleSystemLog(e)]}handleProgramLog(t,e){if(t.startsWith(vm)||t.startsWith(fR)){const r=t.startsWith(vm)?t.slice(JF):t.slice(XF),i=this.coder.events.decode(r);if(e&&i===null)throw new Error(`Unable to decode event ${r}`);return[i,null,!1]}else return[null,...this.handleSystemLog(t)]}handleSystemLog(t){const e=t.split(":")[0];return e.match(/^Program (.*) success/g)!==null?[null,!0]:e.startsWith(`Program ${this.programId.toString()} invoke`)?[this.programId.toString(),!1]:e.includes("invoke")?["cpi",!1]:[null,!1]}}class e7{constructor(){this.stack=[]}program(){if(!this.stack.length)throw new Error("Expected the stack to have elements");return this.stack[this.stack.length-1]}push(t){this.stack.push(t)}pop(){if(!this.stack.length)throw new Error("Expected the stack to have elements");this.stack.pop()}}class n7{constructor(t){this.logs=t}next(){if(this.logs.length===0)return null;let t=this.logs[0];return this.logs=this.logs.slice(1),t}}function N0(n,t){var e,r;let i={};const s=n.args?n.args.length:0;if(t.length>s){if(t.length!==s+1)throw new Error(`provided too many arguments ${t} to instruction ${n==null?void 0:n.name} expecting: ${(r=(e=n.args)===null||e===void 0?void 0:e.map(o=>o.name))!==null&&r!==void 0?r:[]}`);i=t.pop()}return[t,i]}class C0{static build(t,e,r){if(t.name==="_inner")throw new Ro("the _inner name is reserved");const i=(...s)=>{const[o,c]=N0(t,[...s]);_x(t.accounts,c.accounts),r7(t,...s);const u=i.accounts(c.accounts);return c.remainingAccounts!==void 0&&u.push(...c.remainingAccounts),J2("debug-logs")&&console.log("Outgoing account metas:",u),new Pe({keys:u,programId:r,data:e(t.name,yF(t,...o))})};return i.accounts=s=>C0.accountsArray(s,t.accounts,r,t.name),i}static accountsArray(t,e,r,i){return t?e.map(s=>{if(Ao(s)){const h=t[s.name];return C0.accountsArray(h,s.accounts,r,i).flat()}let o;try{o=mi(t[s.name])}catch{throw new Error(`Wrong input type for account "${s.name}" in the instruction accounts object${i!==void 0?' for instruction "'+i+'"':""}. Expected PublicKey or string.`)}const c=s.optional&&o.equals(r),u=!!(s.writable&&!c),f=!!(s.signer&&!c);return{pubkey:o,isWritable:u,isSigner:f}}).flat():[]}}function r7(n,...t){}class i7{static build(t,e){return(...i)=>{var s,o,c;const[,u]=N0(t,[...i]),f=new Oe;if(u.preInstructions&&u.instructions)throw new Error("instructions is deprecated, use preInstructions");return(s=u.preInstructions)===null||s===void 0||s.forEach(h=>f.add(h)),(o=u.instructions)===null||o===void 0||o.forEach(h=>f.add(h)),f.add(e(...i)),(c=u.postInstructions)===null||c===void 0||c.forEach(h=>f.add(h)),f}}}class s7{static build(t,e,r,i){return async(...o)=>{var c;const u=e(...o),[,f]=N0(t,[...o]);if(i.sendAndConfirm===void 0)throw new Error("This function requires 'Provider.sendAndConfirm' to be implemented.");try{return await i.sendAndConfirm(u,(c=f.signers)!==null&&c!==void 0?c:[],f.options)}catch(h){throw X2(h,r)}}}}class o7{static build(t,e,r,i){var s;return((s=t.accounts)!==null&&s!==void 0?s:[]).reduce((o,c)=>(o[c.name]=new a7(t,c,r,i,e),o),{})}}class a7{get size(){return this._size}get programId(){return this._programId}get provider(){return this._provider}get coder(){return this._coder}constructor(t,e,r,i,s){this._idlAccount=e,this._programId=r,this._provider=i??Am(),this._coder=s??new tR(t),this._size=this._coder.accounts.size(e.name)}async fetchNullable(t,e){const{data:r}=await this.fetchNullableAndContext(t,e);return r}async fetchNullableAndContext(t,e){const r=await this.getAccountInfoAndContext(t,e),{value:i,context:s}=r;return{data:i&&i.data.length!==0?this._coder.accounts.decode(this._idlAccount.name,i.data):null,context:s}}async fetch(t,e){const{data:r}=await this.fetchNullableAndContext(t,e);if(r===null)throw new Error(`Account does not exist or has no data ${t.toString()}`);return r}async fetchAndContext(t,e){const{data:r,context:i}=await this.fetchNullableAndContext(t,e);if(r===null)throw new Error(`Account does not exist ${t.toString()}`);return{data:r,context:i}}async fetchMultiple(t,e){return(await this.fetchMultipleAndContext(t,e)).map(i=>i?i.data:null)}async fetchMultipleAndContext(t,e){return(await SF(this._provider.connection,t.map(i=>mi(i)),e)).map(i=>{if(i==null)return null;const{account:s,context:o}=i;return{data:this._coder.accounts.decode(this._idlAccount.name,s.data),context:o}})}async all(t){const e=this.coder.accounts.memcmp(this._idlAccount.name,t instanceof Zt?t:void 0),r=[];return(e==null?void 0:e.offset)!=null&&(e==null?void 0:e.bytes)!=null&&r.push({memcmp:{offset:e.offset,bytes:e.bytes}}),(e==null?void 0:e.dataSize)!=null&&r.push({dataSize:e.dataSize}),(await this._provider.connection.getProgramAccounts(this._programId,{commitment:this._provider.connection.commitment,filters:[...r,...Array.isArray(t)?t:[]]})).map(({pubkey:s,account:o})=>({publicKey:s,account:this._coder.accounts.decode(this._idlAccount.name,o.data)}))}subscribe(t,e){const r=Wf.get(t.toString());if(r)return r.ee;const i=new aF;t=mi(t);const s=this._provider.connection.onAccountChange(t,o=>{const c=this._coder.accounts.decode(this._idlAccount.name,o.data);i.emit("change",c)},e);return Wf.set(t.toString(),{ee:i,listener:s}),i}async unsubscribe(t){let e=Wf.get(t.toString());if(!e){console.warn("Address is not subscribed");return}Wf&&await this._provider.connection.removeAccountChangeListener(e.listener).then(()=>{Wf.delete(t.toString())}).catch(console.error)}async createInstruction(t,e){const r=this.size;if(this._provider.publicKey===void 0)throw new Error("This function requires the Provider interface implementor to have a 'publicKey' field.");return Nn.createAccount({fromPubkey:this._provider.publicKey,newAccountPubkey:t.publicKey,space:e??r,lamports:await this._provider.connection.getMinimumBalanceForRentExemption(e??r),programId:this._programId})}async getAccountInfo(t,e){return await this._provider.connection.getAccountInfo(mi(t),e)}async getAccountInfoAndContext(t,e){return await this._provider.connection.getAccountInfoAndContext(mi(t),e)}}const Wf=new Map;class c7{static build(t,e,r,i,s,o,c){return async(...f)=>{var h;const y=e(...f),[,A]=N0(t,[...f]);let b;if(i.simulate===void 0)throw new Error("This function requires 'Provider.simulate' to be implemented.");try{b=await i.simulate(y,A.signers,(h=A.options)===null||h===void 0?void 0:h.commitment)}catch(S){throw X2(S,r)}if(b===void 0)throw new Error("Unable to simulate transaction");const R=b.logs;if(!R)throw new Error("Simulated logs not found");const k=[];if(c.events){let S=new hR(o,s);for(const B of S.parseLogs(R))k.push(B)}return{events:k,raw:R}}}}function xm(n){return new dR(jf(8),t=>l7.fromBuffer(t),t=>t.toBuffer(),n)}function B0(n){return new dR(jf(32),t=>new pt(t),t=>t.toBuffer(),n)}function Rm(n,t){return new u7(n,t)}class dR extends k0{constructor(t,e,r,i){super(t.span,i),this.layout=t,this.decoder=e,this.encoder=r}decode(t,e){return this.decoder(this.layout.decode(t,e))}encode(t,e,r){return this.layout.encode(this.encoder(t),e,r)}getSpan(t,e){return this.layout.getSpan(t,e)}}class u7 extends k0{constructor(t,e){super(-1,e),this.layout=t,this.discriminator=ks()}encode(t,e,r=0){return t==null?this.layout.span+this.discriminator.encode(0,e,r):(this.discriminator.encode(1,e,r),this.layout.encode(t,e,r+4)+4)}decode(t,e=0){const r=this.discriminator.decode(t,e);if(r===0)return null;if(r===1)return this.layout.decode(t,e+4);throw new Error("Invalid coption "+this.layout.property)}getSpan(t,e=0){return this.layout.getSpan(t,e+4)+4}}let l7=class TT extends ys{toBuffer(){const t=super.toArray().reverse(),e=Zt.from(t);if(e.length===8)return e;if(e.length>=8)throw new Error("u64 too large");const r=Zt.alloc(8);return e.copy(r),r}static fromBuffer(t){if(t.length!==8)throw new Error(`Invalid buffer length: ${t.length}`);return new TT([...t].reverse().map(e=>`00${e.toString(16)}`.slice(-2)).join(""),16)}};const f7=Cn([B0("mint"),B0("owner"),xm("amount"),Rm(B0(),"delegate"),(n=>{const t=cR(ZF("discriminator"),null,n);return t.addVariant(0,Cn([]),"uninitialized"),t.addVariant(1,Cn([]),"initialized"),t.addVariant(2,Cn([]),"frozen"),t})("state"),Rm(xm(),"isNative"),xm("delegatedAmount"),Rm(B0(),"closeAuthority")]);function h7(n){return f7.decode(n)}class d7{constructor(t,e,r,i,s,o,c,u){this._args=t,this._accounts=e,this._provider=r,this._programId=i,this._idlIx=s,this._idlTypes=c,this._customResolver=u,this._accountStore=new p7(r,o,i)}args(t){this._args=t}async resolve(){this.resolveEventCpi(this._idlIx.accounts),this.resolveConst(this._idlIx.accounts);let t=0;for(;await this.resolvePdasAndRelations(this._idlIx.accounts)+await this.resolveCustom()>0;)if(t++,t===16){const e=o=>Ao(o)?o.accounts.some(e):!!(o.address||o.pda||o.relations),r=(o,c=[],u=[])=>{for(const f of o)Ao(f)?u.push(...r(f.accounts,[...c,f.name])):u.push([...c,f.name]);return u},i=this._idlIx.accounts.filter(e),s=r(i).filter(o=>!this.get(o)).map(o=>o.reduce((c,u)=>c+"."+u)).map(o=>`\`${o}\``).join(", ");throw new Error(["Reached maximum depth for account resolution.",`Unresolved accounts: ${s}`].join(" "))}}resolveOptionals(t){Object.assign(this._accounts,this.resolveOptionalsHelper(t,this._idlIx.accounts))}get(t){const e=t.reduce((r,i)=>r&&r[i],this._accounts);if(e&&e.toBase58)return e}set(t,e){let r=this._accounts;t.forEach((i,s)=>{var o;s===t.length-1&&(r[i]=e),r[i]=(o=r[i])!==null&&o!==void 0?o:{},r=r[i]})}resolveOptionalsHelper(t,e){const r={};for(const i of e){const s=i.name,o=t[s];o!==void 0&&(pR(o)?Ao(i)?r[s]=this.resolveOptionalsHelper(o,i.accounts):r[s]=gR(o):o!==null?r[s]=mi(o):i.optional&&(r[s]=this._programId))}return r}async resolveCustom(){if(this._customResolver){const{accounts:t,resolved:e}=await this._customResolver({args:this._args,accounts:this._accounts,provider:this._provider,programId:this._programId,idlIx:this._idlIx});return this._accounts=t,e}return 0}resolveEventCpi(t,e=[]){for(const r in t){const i=t[r];Ao(i)&&this.resolveEventCpi(i.accounts,[...e,i.name]);const s=+r+1;if(s===t.length)return;const o=t[r].name,c=t[s].name;if(o==="eventAuthority"&&c==="program"){const u=[...e,o],f=[...e,c];this.get(u)||this.set(u,pt.findProgramAddressSync([Zt.from("__event_authority")],this._programId)[0]),this.get(f)||this.set(f,this._programId);return}}}resolveConst(t,e=[]){for(const r of t){const i=r.name;if(Ao(r))this.resolveConst(r.accounts,[...e,i]);else{const s=r;if((s.signer||s.address)&&!this.get([...e,i])){if(s.signer){if(!this._provider.wallet)throw new Error("This function requires the `Provider` interface implementor to have a `wallet` field.");this.set([...e,i],this._provider.wallet.publicKey)}s.address&&this.set([...e,i],mi(s.address))}}}}async resolvePdasAndRelations(t,e=[]){let r=0;for(const i of t){const s=i.name;if(Ao(i))r+=await this.resolvePdasAndRelations(i.accounts,[...e,s]);else{const o=i;if((o.pda||o.relations)&&!this.get([...e,s])){r++;try{if(o.pda){const c=await Promise.all(o.pda.seeds.map(h=>this.toBuffer(h,e)));if(c.some(h=>!h))continue;const u=await this.parseProgramId(o,e),[f]=pt.findProgramAddressSync(c,u);this.set([...e,s],f)}}catch{}try{if(o.relations){const c=this.get([...e,o.relations[0]]);if(c){const u=await this._accountStore.fetchAccount({publicKey:c});this.set([...e,s],u[s])}}}catch{}}}}return r}async parseProgramId(t,e=[]){var r;if(!(!((r=t.pda)===null||r===void 0)&&r.program))return this._programId;const i=await this.toBuffer(t.pda.program,e);if(!i)throw new Error(`Program seed not resolved: ${t.name}`);return new pt(i)}async toBuffer(t,e=[]){switch(t.kind){case"const":return this.toBufferConst(t);case"arg":return await this.toBufferArg(t);case"account":return await this.toBufferAccount(t,e);default:throw new Error(`Unexpected seed: ${t}`)}}toBufferConst(t){return this.toBufferValue("bytes",t.value)}async toBufferArg(t){const[e,...r]=t.path.split("."),i=this._idlIx.args.findIndex(c=>c.name===e);if(i===-1)throw new Error(`Unable to find argument for seed: ${e}`);const s=r.reduce((c,u)=>(c??{})[u],this._args[i]);if(s===void 0)return;const o=this.getType(this._idlIx.args[i].type,r);return this.toBufferValue(o,s)}async toBufferAccount(t,e=[]){const[r,...i]=t.path.split("."),s=this.get([...e,r]);if(!s)return;if(!i.length)return this.toBufferValue("pubkey",s);if(!t.account)throw new Error(`Seed account is required in order to resolve type: ${t.path}`);let c=await this._accountStore.fetchAccount({publicKey:s,name:t.account}),u=i;for(;u.length>0;)c=c[u[0]],u=u.slice(1);if(c===void 0)return;const f=this.getType({defined:{name:t.account}},i);return this.toBufferValue(f,c)}toBufferValue(t,e){switch(t){case"u8":case"i8":return Zt.from([e]);case"u16":case"i16":return new ys(e).toArrayLike(Zt,"le",2);case"u32":case"i32":return new ys(e).toArrayLike(Zt,"le",4);case"u64":case"i64":return new ys(e).toArrayLike(Zt,"le",8);case"u128":case"i128":return new ys(e).toArrayLike(Zt,"le",16);case"u256":case"i256":return new ys(e).toArrayLike(Zt,"le",32);case"string":return Zt.from(e);case"pubkey":return e.toBuffer();case"bytes":return Zt.from(e);default:if(t!=null&&t.array)return Zt.from(e);throw new Error(`Unexpected seed type: ${t}`)}}getType(t,e=[]){var r;const i=(r=t==null?void 0:t.defined)===null||r===void 0?void 0:r.name;if(i){if(i==="tokenAccount")switch(e.at(0)){case"mint":case"owner":return"pubkey";case"amount":case"delagatedAmount":return"u64";default:throw new Error(`Unknown token account path: ${e}`)}const s=this._idlTypes.find(h=>h.name===i);if(!s)throw new Error(`Type not found: ${i}`);const[o,...c]=e,f=s.type.fields.find(h=>h.name===o);if(!f)throw new Error(`Field not found: ${o}`);return this.getType(f.type,c)}return t}}class p7{constructor(t,e,r){this._provider=t,this._cache=new Map,this._idls={},this._idls[r.toBase58()]=e}async fetchAccount({publicKey:t,name:e}){const r=t.toBase58();if(!this._cache.has(r)){const i=await this._provider.connection.getAccountInfo(t);if(i===null)throw new Error(`Account not found: ${r}`);if(e==="tokenAccount"){const s=h7(i.data);this._cache.set(r,s)}else{const s=await this.getAccountsNs(i.owner);if(s){const o=Object.values(s)[0];if(o){const c=o.coder.accounts.decodeAny(i.data);this._cache.set(r,c)}}}}return this._cache.get(r)}async getAccountsNs(t){const e=t.toBase58();if(!this._idls[e]){const r=await Au.fetchIdl(t,this._provider);if(r){const i=new Au(r,this._provider);this._idls[e]=i.account}}return this._idls[e]}}class g7{static build(t,e,r,i,s,o,c,u,f,h,y){return(...A)=>new y7(A,i,s,o,c,u,t,e,r,f,h,y)}}function pR(n){return typeof n=="object"&&n!==null&&!("_bn"in n)}function gR(n,t){const e={};for(const r in n){const i=n[r];if(i===null)throw new Error("Failed to resolve optionals due to IDL type mismatch with input accounts!");e[r]=pR(i)?gR(i):mi(i)}return e}class y7{constructor(t,e,r,i,s,o,c,u,f,h,y,A){this._args=t,this._ixFn=e,this._txFn=r,this._rpcFn=i,this._simulateFn=s,this._viewFn=o,this._accounts={},this._remainingAccounts=[],this._signers=[],this._preInstructions=[],this._postInstructions=[],this._resolveAccounts=!0,this._accountsResolver=new d7(t,this._accounts,c,u,f,h,y,A)}args(t){this._args=t,this._accountsResolver.args(t)}accounts(t){return this.accountsPartial(t)}accountsPartial(t){return this._resolveAccounts=!0,this._accountsResolver.resolveOptionals(t),this}accountsStrict(t){return this._resolveAccounts=!1,this._accountsResolver.resolveOptionals(t),this}signers(t){return this._signers=this._signers.concat(t),this}remainingAccounts(t){return this._remainingAccounts=this._remainingAccounts.concat(t),this}preInstructions(t,e=!1){return e?this._preInstructions=t.concat(this._preInstructions):this._preInstructions=this._preInstructions.concat(t),this}postInstructions(t){return this._postInstructions=this._postInstructions.concat(t),this}async pubkeys(){return this._resolveAccounts&&await this._accountsResolver.resolve(),this._accounts}async instruction(){return this._resolveAccounts&&await this._accountsResolver.resolve(),this._ixFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions})}async transaction(){return this._resolveAccounts&&await this._accountsResolver.resolve(),this._txFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions})}async simulate(t){return this._resolveAccounts&&await this._accountsResolver.resolve(),this._simulateFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions,options:t})}async view(t){if(this._resolveAccounts&&await this._accountsResolver.resolve(),!this._viewFn)throw new Error(["Method does not support views.","The instruction should return a value, and its accounts must be read-only"].join(" "));return this._viewFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions,options:t})}async rpc(t){return this._resolveAccounts&&await this._accountsResolver.resolve(),this._rpcFn(...this._args,{accounts:this._accounts,signers:this._signers,remainingAccounts:this._remainingAccounts,preInstructions:this._preInstructions,postInstructions:this._postInstructions,options:t})}async rpcAndKeys(t){return{signature:await this.rpc(t),pubkeys:await this.pubkeys()}}async prepare(){return{instruction:await this.instruction(),signers:this._signers,pubkeys:await this.pubkeys()}}}class m7{static build(t,e,r,i){const s=e.accounts.find(u=>u.writable),o=!!e.returns;return s||!o?void 0:async(...u)=>{let f=await r(...u);const h=`Program return: ${t} `;let y=f.raw.find(k=>k.startsWith(h));if(!y)throw new Error("View expected return log");let A=bx(y.slice(h.length)),b=e.returns;if(!b)throw new Error("View expected return type");return ge.fieldLayout({type:b},i.types).decode(A)}}}class w7{static build(t,e,r,i,s){const o={},c={},u={},f={},h={},y={},A=gF(t),b=t.accounts?o7.build(t,e,r,i):{};return t.instructions.forEach(R=>{const k=C0.build(R,(J,j)=>e.instruction.encode(J,j),r),S=i7.build(R,k),B=s7.build(R,S,A,i),H=c7.build(R,S,A,i,e,r,t),U=m7.build(r,R,H,t),G=g7.build(i,r,R,k,S,B,H,U,b,t.types||[],s==null?void 0:s(R)),W=R.name;c[W]=k,u[W]=S,o[W]=B,f[W]=H,h[W]=G,U&&(y[W]=U)}),[o,c,u,b,f,h,y]}}class Au{get programId(){return this._programId}get idl(){return this._idl}get rawIdl(){return this._rawIdl}get coder(){return this._coder}get provider(){return this._provider}constructor(t,e=Am(),r,i){this._idl=pF(t),this._rawIdl=t,this._provider=e,this._programId=mi(t.address),this._coder=r??new tR(this._idl),this._events=new t7(this._programId,e,this._coder);const[s,o,c,u,f,h,y]=w7.build(this._idl,this._coder,this._programId,e,i);this.rpc=s,this.instruction=o,this.transaction=c,this.account=u,this.simulate=f,this.methods=h,this.views=y}static async at(t,e){const r=mi(t),i=await Au.fetchIdl(r,e);if(!i)throw new Error(`IDL not found for program: ${t.toString()}`);return new Au(i,e)}static async fetchIdl(t,e){e=e??Am();const r=mi(t),i=await lF(r),s=await e.connection.getAccountInfo(i);if(!s)return null;let o=dF(s.data.slice(8));const c=sF(o.data);return JSON.parse(uF(c))}addEventListener(t,e,r){return this._events.addEventListener(t,e,r)}async removeEventListener(t){return await this._events.removeEventListener(t)}}new pt("11111111111111111111111111111111");const b7="6.13.5";function _7(n,t,e){const r=t.split("|").map(s=>s.trim());for(let s=0;s<r.length;s++)switch(t){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof n===t)return}const i=new Error(`invalid value for type ${t}`);throw i.code="INVALID_ARGUMENT",i.argument=`value.${e}`,i.value=n,i}async function pr(n){const t=Object.keys(n);return(await Promise.all(t.map(r=>Promise.resolve(n[r])))).reduce((r,i,s)=>(r[t[s]]=i,r),{})}function $t(n,t,e){for(let r in t){let i=t[r];const s=e?e[r]:null;s&&_7(i,s,r),Object.defineProperty(n,r,{enumerable:!0,value:i,writable:!1})}}function Eu(n){if(n==null)return"null";if(Array.isArray(n))return"[ "+n.map(Eu).join(", ")+" ]";if(n instanceof Uint8Array){const t="0123456789abcdef";let e="0x";for(let r=0;r<n.length;r++)e+=t[n[r]>>4],e+=t[n[r]&15];return e}if(typeof n=="object"&&typeof n.toJSON=="function")return Eu(n.toJSON());switch(typeof n){case"boolean":case"symbol":return n.toString();case"bigint":return BigInt(n).toString();case"number":return n.toString();case"string":return JSON.stringify(n);case"object":{const t=Object.keys(n);return t.sort(),"{ "+t.map(e=>`${Eu(e)}: ${Eu(n[e])}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function Zn(n,t){return n&&n.code===t}function Sm(n){return Zn(n,"CALL_EXCEPTION")}function Qe(n,t,e){let r=n;{const s=[];if(e){if("message"in e||"code"in e||"name"in e)throw new Error(`value will overwrite populated values: ${Eu(e)}`);for(const o in e){if(o==="shortMessage")continue;const c=e[o];s.push(o+"="+Eu(c))}}s.push(`code=${t}`),s.push(`version=${b7}`),s.length&&(n+=" ("+s.join(", ")+")")}let i;switch(t){case"INVALID_ARGUMENT":i=new TypeError(n);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":i=new RangeError(n);break;default:i=new Error(n)}return $t(i,{code:t}),e&&Object.assign(i,e),i.shortMessage==null&&$t(i,{shortMessage:r}),i}function ht(n,t,e,r){if(!n)throw Qe(t,e,r)}function K(n,t,e,r){ht(n,t,"INVALID_ARGUMENT",{argument:e,value:r})}function yR(n,t,e){e==null&&(e=""),e&&(e=": "+e),ht(n>=t,"missing argument"+e,"MISSING_ARGUMENT",{count:n,expectedCount:t}),ht(n<=t,"too many arguments"+e,"UNEXPECTED_ARGUMENT",{count:n,expectedCount:t})}["NFD","NFC","NFKD","NFKC"].reduce((n,t)=>{try{if("test".normalize(t)!=="test")throw new Error("bad");if(t==="NFD"&&"é".normalize("NFD")!=="é")throw new Error("broken");n.push(t)}catch{}return n},[]);function P0(n,t,e){if(e==null&&(e=""),n!==t){let r=e,i="new";e&&(r+=".",i+=" "+e),ht(!1,`private constructor; use ${r}from* methods`,"UNSUPPORTED_OPERATION",{operation:i})}}function mR(n,t,e){if(n instanceof Uint8Array)return e?new Uint8Array(n):n;if(typeof n=="string"&&n.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){const r=new Uint8Array((n.length-2)/2);let i=2;for(let s=0;s<r.length;s++)r[s]=parseInt(n.substring(i,i+2),16),i+=2;return r}K(!1,"invalid BytesLike value",t||"value",n)}function we(n,t){return mR(n,t,!1)}function gr(n,t){return mR(n,t,!0)}function ze(n,t){return!(typeof n!="string"||!n.match(/^0x[0-9A-Fa-f]*$/)||typeof t=="number"&&n.length!==2+2*t||t===!0&&n.length%2!==0)}function Im(n){return ze(n,!0)||n instanceof Uint8Array}const wR="0123456789abcdef";function Tt(n){const t=we(n);let e="0x";for(let r=0;r<t.length;r++){const i=t[r];e+=wR[(i&240)>>4]+wR[i&15]}return e}function vn(n){return"0x"+n.map(t=>Tt(t).substring(2)).join("")}function vu(n){return ze(n,!0)?(n.length-2)/2:we(n).length}function un(n,t,e){const r=we(n);return e!=null&&e>r.length&&ht(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:r,length:r.length,offset:e}),Tt(r.slice(t??0,e??r.length))}function bR(n,t,e){const r=we(n);ht(t>=r.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(r),length:t,offset:t+1});const i=new Uint8Array(t);return i.fill(0),e?i.set(r,t-r.length):i.set(r,0),Tt(i)}function La(n,t){return bR(n,t,!0)}function A7(n,t){return bR(n,t,!1)}const M0=BigInt(0),wi=BigInt(1),xu=9007199254740991;function E7(n,t){const e=L0(n,"value"),r=BigInt(ie(t,"width"));if(ht(e>>r===M0,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:n}),e>>r-wi){const i=(wi<<r)-wi;return-((~e&i)+wi)}return e}function _R(n,t){let e=Ct(n,"value");const r=BigInt(ie(t,"width")),i=wi<<r-wi;if(e<M0){e=-e,ht(e<=i,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:n});const s=(wi<<r)-wi;return(~e&s)+wi}else ht(e<i,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:n});return e}function Zf(n,t){const e=L0(n,"value"),r=BigInt(ie(t,"bits"));return e&(wi<<r)-wi}function Ct(n,t){switch(typeof n){case"bigint":return n;case"number":return K(Number.isInteger(n),"underflow",t||"value",n),K(n>=-xu&&n<=xu,"overflow",t||"value",n),BigInt(n);case"string":try{if(n==="")throw new Error("empty string");return n[0]==="-"&&n[1]!=="-"?-BigInt(n.substring(1)):BigInt(n)}catch(e){K(!1,`invalid BigNumberish string: ${e.message}`,t||"value",n)}}K(!1,"invalid BigNumberish value",t||"value",n)}function L0(n,t){const e=Ct(n,t);return ht(e>=M0,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:n}),e}const AR="0123456789abcdef";function km(n){if(n instanceof Uint8Array){let t="0x0";for(const e of n)t+=AR[e>>4],t+=AR[e&15];return BigInt(t)}return Ct(n)}function ie(n,t){switch(typeof n){case"bigint":return K(n>=-xu&&n<=xu,"overflow",t||"value",n),Number(n);case"number":return K(Number.isInteger(n),"underflow",t||"value",n),K(n>=-xu&&n<=xu,"overflow",t||"value",n),n;case"string":try{if(n==="")throw new Error("empty string");return ie(BigInt(n),t)}catch(e){K(!1,`invalid numeric string: ${e.message}`,t||"value",n)}}K(!1,"invalid numeric value",t||"value",n)}function v7(n){return ie(km(n))}function So(n,t){let r=L0(n,"value").toString(16);if(t==null)r.length%2&&(r="0"+r);else{const i=ie(t,"width");for(ht(i*2>=r.length,`value exceeds width (${i} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:n});r.length<i*2;)r="0"+r}return"0x"+r}function yr(n){const t=L0(n,"value");if(t===M0)return new Uint8Array([]);let e=t.toString(16);e.length%2&&(e="0"+e);const r=new Uint8Array(e.length/2);for(let i=0;i<r.length;i++){const s=i*2;r[i]=parseInt(e.substring(s,s+2),16)}return r}function Ru(n){let t=Tt(Im(n)?n:yr(n)).substring(2);for(;t.startsWith("0");)t=t.substring(1);return t===""&&(t="0"),"0x"+t}const ER="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";BigInt(0);const vR=BigInt(58);function x7(n){const t=we(n);let e=km(t),r="";for(;e;)r=ER[Number(e%vR)]+r,e/=vR;for(let i=0;i<t.length&&!t[i];i++)r=ER[0]+r;return r}function R7(n){n=atob(n);const t=new Uint8Array(n.length);for(let e=0;e<n.length;e++)t[e]=n.charCodeAt(e);return we(t)}function S7(n){const t=we(n);let e="";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return btoa(e)}class xR{constructor(t,e,r){Z(this,"filter");Z(this,"emitter");nt(this,zu);$(this,zu,e),$t(this,{emitter:t,filter:r})}async removeListener(){T(this,zu)!=null&&await this.emitter.off(this.filter,T(this,zu))}}zu=new WeakMap;function I7(n,t,e,r,i){K(!1,`invalid codepoint at offset ${t}; ${n}`,"bytes",e)}function RR(n,t,e,r,i){if(n==="BAD_PREFIX"||n==="UNEXPECTED_CONTINUE"){let s=0;for(let o=t+1;o<e.length&&e[o]>>6===2;o++)s++;return s}return n==="OVERRUN"?e.length-t-1:0}function k7(n,t,e,r,i){return n==="OVERLONG"?(K(typeof i=="number","invalid bad code point for replacement","badCodepoint",i),r.push(i),0):(r.push(65533),RR(n,t,e))}const T7=Object.freeze({error:I7,ignore:RR,replace:k7});function O7(n,t){t==null&&(t=T7.error);const e=we(n,"bytes"),r=[];let i=0;for(;i<e.length;){const s=e[i++];if(!(s>>7)){r.push(s);continue}let o=null,c=null;if((s&224)===192)o=1,c=127;else if((s&240)===224)o=2,c=2047;else if((s&248)===240)o=3,c=65535;else{(s&192)===128?i+=t("UNEXPECTED_CONTINUE",i-1,e,r):i+=t("BAD_PREFIX",i-1,e,r);continue}if(i-1+o>=e.length){i+=t("OVERRUN",i-1,e,r);continue}let u=s&(1<<8-o-1)-1;for(let f=0;f<o;f++){let h=e[i];if((h&192)!=128){i+=t("MISSING_CONTINUE",i,e,r),u=null;break}u=u<<6|h&63,i++}if(u!==null){if(u>1114111){i+=t("OUT_OF_RANGE",i-1-o,e,r,u);continue}if(u>=55296&&u<=57343){i+=t("UTF16_SURROGATE",i-1-o,e,r,u);continue}if(u<=c){i+=t("OVERLONG",i-1-o,e,r,u);continue}r.push(u)}}return r}function Os(n,t){K(typeof n=="string","invalid string value","str",n);let e=[];for(let r=0;r<n.length;r++){const i=n.charCodeAt(r);if(i<128)e.push(i);else if(i<2048)e.push(i>>6|192),e.push(i&63|128);else if((i&64512)==55296){r++;const s=n.charCodeAt(r);K(r<n.length&&(s&64512)===56320,"invalid surrogate pair","str",n);const o=65536+((i&1023)<<10)+(s&1023);e.push(o>>18|240),e.push(o>>12&63|128),e.push(o>>6&63|128),e.push(o&63|128)}else e.push(i>>12|224),e.push(i>>6&63|128),e.push(i&63|128)}return new Uint8Array(e)}function N7(n){return n.map(t=>t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10&1023)+55296,(t&1023)+56320))).join("")}function U0(n,t){return N7(O7(n,t))}function SR(n){async function t(e,r){ht(r==null||!r.cancelled,"request cancelled before sending","CANCELLED");const i=e.url.split(":")[0].toLowerCase();ht(i==="http"||i==="https",`unsupported protocol ${i}`,"UNSUPPORTED_OPERATION",{info:{protocol:i},operation:"request"}),ht(i==="https"||!e.credentials||e.allowInsecureAuthentication,"insecure authorized connections unsupported","UNSUPPORTED_OPERATION",{operation:"request"});let s=null;const o=new AbortController,c=setTimeout(()=>{s=Qe("request timeout","TIMEOUT"),o.abort()},e.timeout);r&&r.addListener(()=>{s=Qe("request cancelled","CANCELLED"),o.abort()});const u={method:e.method,headers:new Headers(Array.from(e)),body:e.body||void 0,signal:o.signal};let f;try{f=await fetch(e.url,u)}catch(b){throw clearTimeout(c),s||b}clearTimeout(c);const h={};f.headers.forEach((b,R)=>{h[R.toLowerCase()]=b});const y=await f.arrayBuffer(),A=y==null?null:new Uint8Array(y);return{statusCode:f.status,statusMessage:f.statusText,headers:h,body:A}}return t}const C7=12,B7=250;let IR=SR();const P7=new RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),M7=new RegExp("^ipfs://(ipfs/)?(.*)$","i");let Tm=!1;async function kR(n,t){try{const e=n.match(P7);if(!e)throw new Error("invalid data");return new Io(200,"OK",{"content-type":e[1]||"text/plain"},e[2]?R7(e[3]):U7(e[3]))}catch{return new Io(599,"BAD REQUEST (invalid data: URI)",{},null,new Ns(n))}}function TR(n){async function t(e,r){try{const i=e.match(M7);if(!i)throw new Error("invalid link");return new Ns(`${n}${i[2]}`)}catch{return new Io(599,"BAD REQUEST (invalid IPFS URI)",{},null,new Ns(e))}}return t}const D0={data:kR,ipfs:TR("https://gateway.ipfs.io/ipfs/")},OR=new WeakMap;class L7{constructor(t){nt(this,Ya);nt(this,Po);$(this,Ya,[]),$(this,Po,!1),OR.set(t,()=>{if(!T(this,Po)){$(this,Po,!0);for(const e of T(this,Ya))setTimeout(()=>{e()},0);$(this,Ya,[])}})}addListener(t){ht(!T(this,Po),"singal already cancelled","UNSUPPORTED_OPERATION",{operation:"fetchCancelSignal.addCancelListener"}),T(this,Ya).push(t)}get cancelled(){return T(this,Po)}checkSignal(){ht(!this.cancelled,"cancelled","CANCELLED",{})}}Ya=new WeakMap,Po=new WeakMap;function F0(n){if(n==null)throw new Error("missing signal; should not happen");return n.checkSignal(),n}const _p=class _p{constructor(t){nt(this,ec);nt(this,Gu);nt(this,Vu);nt(this,vi);nt(this,Fs);nt(this,Ku);nt(this,ju);nt(this,Fn);nt(this,Vr);nt(this,$s);nt(this,Ja);nt(this,Xa);nt(this,tc);nt(this,ts);nt(this,xi);nt(this,Mo);$(this,ju,String(t)),$(this,Gu,!1),$(this,Vu,!0),$(this,vi,{}),$(this,Fs,""),$(this,Ku,3e5),$(this,xi,{slotInterval:B7,maxAttempts:C7}),$(this,Mo,null)}get url(){return T(this,ju)}set url(t){$(this,ju,String(t))}get body(){return T(this,Fn)==null?null:new Uint8Array(T(this,Fn))}set body(t){if(t==null)$(this,Fn,void 0),$(this,Vr,void 0);else if(typeof t=="string")$(this,Fn,Os(t)),$(this,Vr,"text/plain");else if(t instanceof Uint8Array)$(this,Fn,t),$(this,Vr,"application/octet-stream");else if(typeof t=="object")$(this,Fn,Os(JSON.stringify(t))),$(this,Vr,"application/json");else throw new Error("invalid body")}hasBody(){return T(this,Fn)!=null}get method(){return T(this,Fs)?T(this,Fs):this.hasBody()?"POST":"GET"}set method(t){t==null&&(t=""),$(this,Fs,String(t).toUpperCase())}get headers(){const t=Object.assign({},T(this,vi));return T(this,$s)&&(t.authorization=`Basic ${S7(Os(T(this,$s)))}`),this.allowGzip&&(t["accept-encoding"]="gzip"),t["content-type"]==null&&T(this,Vr)&&(t["content-type"]=T(this,Vr)),this.body&&(t["content-length"]=String(this.body.length)),t}getHeader(t){return this.headers[t.toLowerCase()]}setHeader(t,e){T(this,vi)[String(t).toLowerCase()]=String(e)}clearHeaders(){$(this,vi,{})}[Symbol.iterator](){const t=this.headers,e=Object.keys(t);let r=0;return{next:()=>{if(r<e.length){const i=e[r++];return{value:[i,t[i]],done:!1}}return{value:void 0,done:!0}}}}get credentials(){return T(this,$s)||null}setCredentials(t,e){K(!t.match(/:/),"invalid basic authentication username","username","[REDACTED]"),$(this,$s,`${t}:${e}`)}get allowGzip(){return T(this,Vu)}set allowGzip(t){$(this,Vu,!!t)}get allowInsecureAuthentication(){return!!T(this,Gu)}set allowInsecureAuthentication(t){$(this,Gu,!!t)}get timeout(){return T(this,Ku)}set timeout(t){K(t>=0,"timeout must be non-zero","timeout",t),$(this,Ku,t)}get preflightFunc(){return T(this,Ja)||null}set preflightFunc(t){$(this,Ja,t)}get processFunc(){return T(this,Xa)||null}set processFunc(t){$(this,Xa,t)}get retryFunc(){return T(this,tc)||null}set retryFunc(t){$(this,tc,t)}get getUrlFunc(){return T(this,Mo)||IR}set getUrlFunc(t){$(this,Mo,t)}toString(){return`<FetchRequest method=${JSON.stringify(this.method)} url=${JSON.stringify(this.url)} headers=${JSON.stringify(this.headers)} body=${T(this,Fn)?Tt(T(this,Fn)):"null"}>`}setThrottleParams(t){t.slotInterval!=null&&(T(this,xi).slotInterval=t.slotInterval),t.maxAttempts!=null&&(T(this,xi).maxAttempts=t.maxAttempts)}send(){return ht(T(this,ts)==null,"request already sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.send"}),$(this,ts,new L7(this)),_t(this,ec,id).call(this,0,NR()+this.timeout,0,this,new Io(0,"",{},null,this))}cancel(){ht(T(this,ts)!=null,"request has not been sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.cancel"});const t=OR.get(this);if(!t)throw new Error("missing signal; should not happen");t()}redirect(t){const e=this.url.split(":")[0].toLowerCase(),r=t.split(":")[0].toLowerCase();ht(this.method==="GET"&&(e!=="https"||r!=="http")&&t.match(/^https?:/),"unsupported redirect","UNSUPPORTED_OPERATION",{operation:`redirect(${this.method} ${JSON.stringify(this.url)} => ${JSON.stringify(t)})`});const i=new _p(t);return i.method="GET",i.allowGzip=this.allowGzip,i.timeout=this.timeout,$(i,vi,Object.assign({},T(this,vi))),T(this,Fn)&&$(i,Fn,new Uint8Array(T(this,Fn))),$(i,Vr,T(this,Vr)),i}clone(){const t=new _p(this.url);return $(t,Fs,T(this,Fs)),T(this,Fn)&&$(t,Fn,T(this,Fn)),$(t,Vr,T(this,Vr)),$(t,vi,Object.assign({},T(this,vi))),$(t,$s,T(this,$s)),this.allowGzip&&(t.allowGzip=!0),t.timeout=this.timeout,this.allowInsecureAuthentication&&(t.allowInsecureAuthentication=!0),$(t,Ja,T(this,Ja)),$(t,Xa,T(this,Xa)),$(t,tc,T(this,tc)),$(t,xi,Object.assign({},T(this,xi))),$(t,Mo,T(this,Mo)),t}static lockConfig(){Tm=!0}static getGateway(t){return D0[t.toLowerCase()]||null}static registerGateway(t,e){if(t=t.toLowerCase(),t==="http"||t==="https")throw new Error(`cannot intercept ${t}; use registerGetUrl`);if(Tm)throw new Error("gateways locked");D0[t]=e}static registerGetUrl(t){if(Tm)throw new Error("gateways locked");IR=t}static createGetUrlFunc(t){return SR()}static createDataGateway(){return kR}static createIpfsGatewayFunc(t){return TR(t)}};Gu=new WeakMap,Vu=new WeakMap,vi=new WeakMap,Fs=new WeakMap,Ku=new WeakMap,ju=new WeakMap,Fn=new WeakMap,Vr=new WeakMap,$s=new WeakMap,Ja=new WeakMap,Xa=new WeakMap,tc=new WeakMap,ts=new WeakMap,xi=new WeakMap,Mo=new WeakMap,ec=new WeakSet,id=async function(t,e,r,i,s){var h,y,A;if(t>=T(this,xi).maxAttempts)return s.makeServerError("exceeded maximum retry limit");ht(NR()<=e,"timeout","TIMEOUT",{operation:"request.send",reason:"timeout",request:i}),r>0&&await D7(r);let o=this.clone();const c=(o.url.split(":")[0]||"").toLowerCase();if(c in D0){const b=await D0[c](o.url,F0(T(i,ts)));if(b instanceof Io){let R=b;if(this.processFunc){F0(T(i,ts));try{R=await this.processFunc(o,R)}catch(k){(k.throttle==null||typeof k.stall!="number")&&R.makeServerError("error in post-processing function",k).assertOk()}}return R}o=b}this.preflightFunc&&(o=await this.preflightFunc(o));const u=await this.getUrlFunc(o,F0(T(i,ts)));let f=new Io(u.statusCode,u.statusMessage,u.headers,u.body,i);if(f.statusCode===301||f.statusCode===302){try{const b=f.headers.location||"";return _t(h=o.redirect(b),ec,id).call(h,t+1,e,0,i,f)}catch{}return f}else if(f.statusCode===429&&(this.retryFunc==null||await this.retryFunc(o,f,t))){const b=f.headers["retry-after"];let R=T(this,xi).slotInterval*Math.trunc(Math.random()*Math.pow(2,t));return typeof b=="string"&&b.match(/^[1-9][0-9]*$/)&&(R=parseInt(b)),_t(y=o.clone(),ec,id).call(y,t+1,e,R,i,f)}if(this.processFunc){F0(T(i,ts));try{f=await this.processFunc(o,f)}catch(b){(b.throttle==null||typeof b.stall!="number")&&f.makeServerError("error in post-processing function",b).assertOk();let R=T(this,xi).slotInterval*Math.trunc(Math.random()*Math.pow(2,t));return b.stall>=0&&(R=b.stall),_t(A=o.clone(),ec,id).call(A,t+1,e,R,i,f)}}return f};let Ns=_p;const Dw=class Dw{constructor(t,e,r,i,s){nt(this,gh);nt(this,yh);nt(this,mh);nt(this,Kr);nt(this,Wu);nt(this,nc);$(this,gh,t),$(this,yh,e),$(this,mh,Object.keys(r).reduce((o,c)=>(o[c.toLowerCase()]=String(r[c]),o),{})),$(this,Kr,i==null?null:new Uint8Array(i)),$(this,Wu,s||null),$(this,nc,{message:""})}toString(){return`<FetchResponse status=${this.statusCode} body=${T(this,Kr)?Tt(T(this,Kr)):"null"}>`}get statusCode(){return T(this,gh)}get statusMessage(){return T(this,yh)}get headers(){return Object.assign({},T(this,mh))}get body(){return T(this,Kr)==null?null:new Uint8Array(T(this,Kr))}get bodyText(){try{return T(this,Kr)==null?"":U0(T(this,Kr))}catch{ht(!1,"response body is not valid UTF-8 data","UNSUPPORTED_OPERATION",{operation:"bodyText",info:{response:this}})}}get bodyJson(){try{return JSON.parse(this.bodyText)}catch{ht(!1,"response body is not valid JSON","UNSUPPORTED_OPERATION",{operation:"bodyJson",info:{response:this}})}}[Symbol.iterator](){const t=this.headers,e=Object.keys(t);let r=0;return{next:()=>{if(r<e.length){const i=e[r++];return{value:[i,t[i]],done:!1}}return{value:void 0,done:!0}}}}makeServerError(t,e){let r;t?r=`CLIENT ESCALATED SERVER ERROR (${this.statusCode} ${this.statusMessage}; ${t})`:(t=`${this.statusCode} ${this.statusMessage}`,r=`CLIENT ESCALATED SERVER ERROR (${t})`);const i=new Dw(599,r,this.headers,this.body,T(this,Wu)||void 0);return $(i,nc,{message:t,error:e}),i}throwThrottleError(t,e){e==null?e=-1:K(Number.isInteger(e)&&e>=0,"invalid stall timeout","stall",e);const r=new Error(t||"throttling requests");throw $t(r,{stall:e,throttle:!0}),r}getHeader(t){return this.headers[t.toLowerCase()]}hasBody(){return T(this,Kr)!=null}get request(){return T(this,Wu)}ok(){return T(this,nc).message===""&&this.statusCode>=200&&this.statusCode<300}assertOk(){if(this.ok())return;let{message:t,error:e}=T(this,nc);t===""&&(t=`server response ${this.statusCode} ${this.statusMessage}`);let r=null;this.request&&(r=this.request.url);let i=null;try{T(this,Kr)&&(i=U0(T(this,Kr)))}catch{}ht(!1,t,"SERVER_ERROR",{request:this.request||"unknown request",response:this,error:e,info:{requestUrl:r,responseBody:i,responseStatus:`${this.statusCode} ${this.statusMessage}`}})}};gh=new WeakMap,yh=new WeakMap,mh=new WeakMap,Kr=new WeakMap,Wu=new WeakMap,nc=new WeakMap;let Io=Dw;function NR(){return new Date().getTime()}function U7(n){return Os(n.replace(/%([0-9a-f][0-9a-f])/gi,(t,e)=>String.fromCharCode(parseInt(e,16))))}function D7(n){return new Promise(t=>setTimeout(t,n))}function F7(n){let t=n.toString(16);for(;t.length<2;)t="0"+t;return"0x"+t}function CR(n,t,e){let r=0;for(let i=0;i<e;i++)r=r*256+n[t+i];return r}function BR(n,t,e,r){const i=[];for(;e<t+1+r;){const s=PR(n,e);i.push(s.result),e+=s.consumed,ht(e<=t+1+r,"child data too short","BUFFER_OVERRUN",{buffer:n,length:r,offset:t})}return{consumed:1+r,result:i}}function PR(n,t){ht(n.length!==0,"data too short","BUFFER_OVERRUN",{buffer:n,length:0,offset:1});const e=r=>{ht(r<=n.length,"data short segment too short","BUFFER_OVERRUN",{buffer:n,length:n.length,offset:r})};if(n[t]>=248){const r=n[t]-247;e(t+1+r);const i=CR(n,t+1,r);return e(t+1+r+i),BR(n,t,t+1+r,r+i)}else if(n[t]>=192){const r=n[t]-192;return e(t+1+r),BR(n,t,t+1,r)}else if(n[t]>=184){const r=n[t]-183;e(t+1+r);const i=CR(n,t+1,r);e(t+1+r+i);const s=Tt(n.slice(t+1+r,t+1+r+i));return{consumed:1+r+i,result:s}}else if(n[t]>=128){const r=n[t]-128;e(t+1+r);const i=Tt(n.slice(t+1,t+1+r));return{consumed:1+r,result:i}}return{consumed:1,result:F7(n[t])}}function $0(n){const t=we(n,"data"),e=PR(t,0);return K(e.consumed===t.length,"unexpected junk after rlp payload","data",n),e.result}function MR(n){const t=[];for(;n;)t.unshift(n&255),n>>=8;return t}function LR(n){if(Array.isArray(n)){let r=[];if(n.forEach(function(s){r=r.concat(LR(s))}),r.length<=55)return r.unshift(192+r.length),r;const i=MR(r.length);return i.unshift(247+i.length),i.concat(r)}const t=Array.prototype.slice.call(we(n,"object"));if(t.length===1&&t[0]<=127)return t;if(t.length<=55)return t.unshift(128+t.length),t;const e=MR(t.length);return e.unshift(183+e.length),e.concat(t)}const UR="0123456789abcdef";function Ua(n){let t="0x";for(const e of LR(n))t+=UR[e>>4],t+=UR[e&15];return t}const mr=32,Om=new Uint8Array(mr),$7=["then"],H0={},DR=new WeakMap;function Da(n){return DR.get(n)}function FR(n,t){DR.set(n,t)}function qf(n,t){const e=new Error(`deferred error during ABI decoding triggered accessing ${n}`);throw e.error=t,e}function Nm(n,t,e){return n.indexOf(null)>=0?t.map((r,i)=>r instanceof Su?Nm(Da(r),r,e):r):n.reduce((r,i,s)=>{let o=t.getValue(i);return i in r||(e&&o instanceof Su&&(o=Nm(Da(o),o,e)),r[i]=o),r},{})}const qu=class qu extends Array{constructor(...e){const r=e[0];let i=e[1],s=(e[2]||[]).slice(),o=!0;r!==H0&&(i=e,s=[],o=!1);super(i.length);nt(this,Zu);i.forEach((f,h)=>{this[h]=f});const c=s.reduce((f,h)=>(typeof h=="string"&&f.set(h,(f.get(h)||0)+1),f),new Map);if(FR(this,Object.freeze(i.map((f,h)=>{const y=s[h];return y!=null&&c.get(y)===1?y:null}))),$(this,Zu,[]),T(this,Zu)==null&&T(this,Zu),!o)return;Object.freeze(this);const u=new Proxy(this,{get:(f,h,y)=>{if(typeof h=="string"){if(h.match(/^[0-9]+$/)){const b=ie(h,"%index");if(b<0||b>=this.length)throw new RangeError("out of result range");const R=f[b];return R instanceof Error&&qf(`index ${b}`,R),R}if($7.indexOf(h)>=0)return Reflect.get(f,h,y);const A=f[h];if(A instanceof Function)return function(...b){return A.apply(this===y?f:this,b)};if(!(h in f))return f.getValue.apply(this===y?f:this,[h])}return Reflect.get(f,h,y)}});return FR(u,Da(this)),u}toArray(e){const r=[];return this.forEach((i,s)=>{i instanceof Error&&qf(`index ${s}`,i),e&&i instanceof qu&&(i=i.toArray(e)),r.push(i)}),r}toObject(e){const r=Da(this);return r.reduce((i,s,o)=>(ht(s!=null,`value at index ${o} unnamed`,"UNSUPPORTED_OPERATION",{operation:"toObject()"}),Nm(r,this,e)),{})}slice(e,r){e==null&&(e=0),e<0&&(e+=this.length,e<0&&(e=0)),r==null&&(r=this.length),r<0&&(r+=this.length,r<0&&(r=0)),r>this.length&&(r=this.length);const i=Da(this),s=[],o=[];for(let c=e;c<r;c++)s.push(this[c]),o.push(i[c]);return new qu(H0,s,o)}filter(e,r){const i=Da(this),s=[],o=[];for(let c=0;c<this.length;c++){const u=this[c];u instanceof Error&&qf(`index ${c}`,u),e.call(r,u,c,this)&&(s.push(u),o.push(i[c]))}return new qu(H0,s,o)}map(e,r){const i=[];for(let s=0;s<this.length;s++){const o=this[s];o instanceof Error&&qf(`index ${s}`,o),i.push(e.call(r,o,s,this))}return i}getValue(e){const r=Da(this).indexOf(e);if(r===-1)return;const i=this[r];return i instanceof Error&&qf(`property ${JSON.stringify(e)}`,i.error),i}static fromItems(e,r){return new qu(H0,e,r)}};Zu=new WeakMap;let Su=qu;function $R(n){let t=yr(n);return ht(t.length<=mr,"value out-of-bounds","BUFFER_OVERRUN",{buffer:t,length:mr,offset:t.length}),t.length!==mr&&(t=gr(vn([Om.slice(t.length%mr),t]))),t}class Cs{constructor(t,e,r,i){Z(this,"name");Z(this,"type");Z(this,"localName");Z(this,"dynamic");$t(this,{name:t,type:e,localName:r,dynamic:i},{name:"string",type:"string",localName:"string",dynamic:"boolean"})}_throwError(t,e){K(!1,t,this.localName,e)}}class Cm{constructor(){nt(this,Qu);nt(this,Hs);nt(this,rc);$(this,Hs,[]),$(this,rc,0)}get data(){return vn(T(this,Hs))}get length(){return T(this,rc)}appendWriter(t){return _t(this,Qu,zp).call(this,gr(t.data))}writeBytes(t){let e=gr(t);const r=e.length%mr;return r&&(e=gr(vn([e,Om.slice(r)]))),_t(this,Qu,zp).call(this,e)}writeValue(t){return _t(this,Qu,zp).call(this,$R(t))}writeUpdatableValue(){const t=T(this,Hs).length;return T(this,Hs).push(Om),$(this,rc,T(this,rc)+mr),e=>{T(this,Hs)[t]=$R(e)}}}Hs=new WeakMap,rc=new WeakMap,Qu=new WeakSet,zp=function(t){return T(this,Hs).push(t),$(this,rc,T(this,rc)+t.length),t.length};const Fw=class Fw{constructor(t,e,r){nt(this,oc);Z(this,"allowLoose");nt(this,Nr);nt(this,jr);nt(this,ic);nt(this,sc);nt(this,Lo);$t(this,{allowLoose:!!e}),$(this,Nr,gr(t)),$(this,ic,0),$(this,sc,null),$(this,Lo,r??1024),$(this,jr,0)}get data(){return Tt(T(this,Nr))}get dataLength(){return T(this,Nr).length}get consumed(){return T(this,jr)}get bytes(){return new Uint8Array(T(this,Nr))}subReader(t){const e=new Fw(T(this,Nr).slice(T(this,jr)+t),this.allowLoose,T(this,Lo));return $(e,sc,this),e}readBytes(t,e){let r=_t(this,oc,OT).call(this,0,t,!!e);return _t(this,oc,ob).call(this,t),$(this,jr,T(this,jr)+r.length),r.slice(0,t)}readValue(){return km(this.readBytes(mr))}readIndex(){return v7(this.readBytes(mr))}};Nr=new WeakMap,jr=new WeakMap,ic=new WeakMap,sc=new WeakMap,Lo=new WeakMap,oc=new WeakSet,ob=function(t){var e;if(T(this,sc))return _t(e=T(this,sc),oc,ob).call(e,t);$(this,ic,T(this,ic)+t),ht(T(this,Lo)<1||T(this,ic)<=T(this,Lo)*this.dataLength,`compressed ABI data exceeds inflation ratio of ${T(this,Lo)} ( see: https://github.com/ethers-io/ethers.js/issues/4537 )`,"BUFFER_OVERRUN",{buffer:gr(T(this,Nr)),offset:T(this,jr),length:t,info:{bytesRead:T(this,ic),dataLength:this.dataLength}})},OT=function(t,e,r){let i=Math.ceil(e/mr)*mr;return T(this,jr)+i>T(this,Nr).length&&(this.allowLoose&&r&&T(this,jr)+e<=T(this,Nr).length?i=e:ht(!1,"data out-of-bounds","BUFFER_OVERRUN",{buffer:gr(T(this,Nr)),length:T(this,Nr).length,offset:T(this,jr)+i})),T(this,Nr).slice(T(this,jr),T(this,jr)+i)};let Bm=Fw;function z0(n){if(!Number.isSafeInteger(n)||n<0)throw new Error(`Wrong positive integer: ${n}`)}function Pm(n,...t){if(!(n instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(n.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${n.length}`)}function H7(n){if(typeof n!="function"||typeof n.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");z0(n.outputLen),z0(n.blockLen)}function Iu(n,t=!0){if(n.destroyed)throw new Error("Hash instance has been destroyed");if(t&&n.finished)throw new Error("Hash#digest() has already been called")}function HR(n,t){Pm(n);const e=t.outputLen;if(n.length<e)throw new Error(`digestInto() expects output buffer of length at least ${e}`)}const Mm=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const zR=n=>n instanceof Uint8Array,z7=n=>new Uint32Array(n.buffer,n.byteOffset,Math.floor(n.byteLength/4)),Lm=n=>new DataView(n.buffer,n.byteOffset,n.byteLength),Qi=(n,t)=>n<<32-t|n>>>t;if(!(new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68))throw new Error("Non little-endian hardware is not supported");function G7(n){if(typeof n!="string")throw new Error(`utf8ToBytes expected string, got ${typeof n}`);return new Uint8Array(new TextEncoder().encode(n))}function G0(n){if(typeof n=="string"&&(n=G7(n)),!zR(n))throw new Error(`expected Uint8Array, got ${typeof n}`);return n}function V7(...n){const t=new Uint8Array(n.reduce((r,i)=>r+i.length,0));let e=0;return n.forEach(r=>{if(!zR(r))throw new Error("Uint8Array expected");t.set(r,e),e+=r.length}),t}class Um{clone(){return this._cloneInto()}}function Dm(n){const t=r=>n().update(G0(r)).digest(),e=n();return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=()=>n(),t}function K7(n=32){if(Mm&&typeof Mm.getRandomValues=="function")return Mm.getRandomValues(new Uint8Array(n));throw new Error("crypto.getRandomValues must be defined")}class GR extends Um{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,H7(t);const r=G0(e);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const i=this.blockLen,s=new Uint8Array(i);s.set(r.length>i?t.create().update(r).digest():r);for(let o=0;o<s.length;o++)s[o]^=54;this.iHash.update(s),this.oHash=t.create();for(let o=0;o<s.length;o++)s[o]^=106;this.oHash.update(s),s.fill(0)}update(t){return Iu(this),this.iHash.update(t),this}digestInto(t){Iu(this),Pm(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){const t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));const{oHash:e,iHash:r,finished:i,destroyed:s,blockLen:o,outputLen:c}=this;return t=t,t.finished=i,t.destroyed=s,t.blockLen=o,t.outputLen=c,t.oHash=e._cloneInto(t.oHash),t.iHash=r._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const VR=(n,t,e)=>new GR(n,t).update(e).digest();VR.create=(n,t)=>new GR(n,t);function j7(n,t,e,r){if(typeof n.setBigUint64=="function")return n.setBigUint64(t,e,r);const i=BigInt(32),s=BigInt(4294967295),o=Number(e>>i&s),c=Number(e&s),u=r?4:0,f=r?0:4;n.setUint32(t+u,o,r),n.setUint32(t+f,c,r)}class KR extends Um{constructor(t,e,r,i){super(),this.blockLen=t,this.outputLen=e,this.padOffset=r,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=Lm(this.buffer)}update(t){Iu(this);const{view:e,buffer:r,blockLen:i}=this;t=G0(t);const s=t.length;for(let o=0;o<s;){const c=Math.min(i-this.pos,s-o);if(c===i){const u=Lm(t);for(;i<=s-o;o+=i)this.process(u,o);continue}r.set(t.subarray(o,o+c),this.pos),this.pos+=c,o+=c,this.pos===i&&(this.process(e,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Iu(this),HR(t,this),this.finished=!0;const{buffer:e,view:r,blockLen:i,isLE:s}=this;let{pos:o}=this;e[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>i-o&&(this.process(r,0),o=0);for(let y=o;y<i;y++)e[y]=0;j7(r,i-8,BigInt(this.length*8),s),this.process(r,0);const c=Lm(t),u=this.outputLen;if(u%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const f=u/4,h=this.get();if(f>h.length)throw new Error("_sha2: outputLen bigger than state");for(let y=0;y<f;y++)c.setUint32(4*y,h[y],s)}digest(){const{buffer:t,outputLen:e}=this;this.digestInto(t);const r=t.slice(0,e);return this.destroy(),r}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());const{blockLen:e,buffer:r,length:i,finished:s,destroyed:o,pos:c}=this;return t.length=i,t.pos=c,t.finished=s,t.destroyed=o,i%e&&t.buffer.set(r),t}}const W7=(n,t,e)=>n&t^~n&e,Z7=(n,t,e)=>n&t^n&e^t&e,q7=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),ko=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),To=new Uint32Array(64);class Q7 extends KR{constructor(){super(64,32,8,!1),this.A=ko[0]|0,this.B=ko[1]|0,this.C=ko[2]|0,this.D=ko[3]|0,this.E=ko[4]|0,this.F=ko[5]|0,this.G=ko[6]|0,this.H=ko[7]|0}get(){const{A:t,B:e,C:r,D:i,E:s,F:o,G:c,H:u}=this;return[t,e,r,i,s,o,c,u]}set(t,e,r,i,s,o,c,u){this.A=t|0,this.B=e|0,this.C=r|0,this.D=i|0,this.E=s|0,this.F=o|0,this.G=c|0,this.H=u|0}process(t,e){for(let y=0;y<16;y++,e+=4)To[y]=t.getUint32(e,!1);for(let y=16;y<64;y++){const A=To[y-15],b=To[y-2],R=Qi(A,7)^Qi(A,18)^A>>>3,k=Qi(b,17)^Qi(b,19)^b>>>10;To[y]=k+To[y-7]+R+To[y-16]|0}let{A:r,B:i,C:s,D:o,E:c,F:u,G:f,H:h}=this;for(let y=0;y<64;y++){const A=Qi(c,6)^Qi(c,11)^Qi(c,25),b=h+A+W7(c,u,f)+q7[y]+To[y]|0,k=(Qi(r,2)^Qi(r,13)^Qi(r,22))+Z7(r,i,s)|0;h=f,f=u,u=c,c=o+b|0,o=s,s=i,i=r,r=b+k|0}r=r+this.A|0,i=i+this.B|0,s=s+this.C|0,o=o+this.D|0,c=c+this.E|0,u=u+this.F|0,f=f+this.G|0,h=h+this.H|0,this.set(r,i,s,o,c,u,f,h)}roundClean(){To.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}const jR=Dm(()=>new Q7),V0=BigInt(2**32-1),Fm=BigInt(32);function WR(n,t=!1){return t?{h:Number(n&V0),l:Number(n>>Fm&V0)}:{h:Number(n>>Fm&V0)|0,l:Number(n&V0)|0}}function ZR(n,t=!1){let e=new Uint32Array(n.length),r=new Uint32Array(n.length);for(let i=0;i<n.length;i++){const{h:s,l:o}=WR(n[i],t);[e[i],r[i]]=[s,o]}return[e,r]}const Y7=(n,t)=>BigInt(n>>>0)<<Fm|BigInt(t>>>0),J7=(n,t,e)=>n>>>e,X7=(n,t,e)=>n<<32-e|t>>>e,t$=(n,t,e)=>n>>>e|t<<32-e,e$=(n,t,e)=>n<<32-e|t>>>e,n$=(n,t,e)=>n<<64-e|t>>>e-32,r$=(n,t,e)=>n>>>e-32|t<<64-e,i$=(n,t)=>t,s$=(n,t)=>n,qR=(n,t,e)=>n<<e|t>>>32-e,QR=(n,t,e)=>t<<e|n>>>32-e,YR=(n,t,e)=>t<<e-32|n>>>64-e,JR=(n,t,e)=>n<<e-32|t>>>64-e;function o$(n,t,e,r){const i=(t>>>0)+(r>>>0);return{h:n+e+(i/2**32|0)|0,l:i|0}}const ne={fromBig:WR,split:ZR,toBig:Y7,shrSH:J7,shrSL:X7,rotrSH:t$,rotrSL:e$,rotrBH:n$,rotrBL:r$,rotr32H:i$,rotr32L:s$,rotlSH:qR,rotlSL:QR,rotlBH:YR,rotlBL:JR,add:o$,add3L:(n,t,e)=>(n>>>0)+(t>>>0)+(e>>>0),add3H:(n,t,e,r)=>t+e+r+(n/2**32|0)|0,add4L:(n,t,e,r)=>(n>>>0)+(t>>>0)+(e>>>0)+(r>>>0),add4H:(n,t,e,r,i)=>t+e+r+i+(n/2**32|0)|0,add5H:(n,t,e,r,i,s)=>t+e+r+i+s+(n/2**32|0)|0,add5L:(n,t,e,r,i)=>(n>>>0)+(t>>>0)+(e>>>0)+(r>>>0)+(i>>>0)},[a$,c$]=ne.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(n=>BigInt(n))),Oo=new Uint32Array(80),No=new Uint32Array(80);class u$ extends KR{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){const{Ah:t,Al:e,Bh:r,Bl:i,Ch:s,Cl:o,Dh:c,Dl:u,Eh:f,El:h,Fh:y,Fl:A,Gh:b,Gl:R,Hh:k,Hl:S}=this;return[t,e,r,i,s,o,c,u,f,h,y,A,b,R,k,S]}set(t,e,r,i,s,o,c,u,f,h,y,A,b,R,k,S){this.Ah=t|0,this.Al=e|0,this.Bh=r|0,this.Bl=i|0,this.Ch=s|0,this.Cl=o|0,this.Dh=c|0,this.Dl=u|0,this.Eh=f|0,this.El=h|0,this.Fh=y|0,this.Fl=A|0,this.Gh=b|0,this.Gl=R|0,this.Hh=k|0,this.Hl=S|0}process(t,e){for(let U=0;U<16;U++,e+=4)Oo[U]=t.getUint32(e),No[U]=t.getUint32(e+=4);for(let U=16;U<80;U++){const G=Oo[U-15]|0,W=No[U-15]|0,J=ne.rotrSH(G,W,1)^ne.rotrSH(G,W,8)^ne.shrSH(G,W,7),j=ne.rotrSL(G,W,1)^ne.rotrSL(G,W,8)^ne.shrSL(G,W,7),Y=Oo[U-2]|0,it=No[U-2]|0,ut=ne.rotrSH(Y,it,19)^ne.rotrBH(Y,it,61)^ne.shrSH(Y,it,6),rt=ne.rotrSL(Y,it,19)^ne.rotrBL(Y,it,61)^ne.shrSL(Y,it,6),ot=ne.add4L(j,rt,No[U-7],No[U-16]),C=ne.add4H(ot,J,ut,Oo[U-7],Oo[U-16]);Oo[U]=C|0,No[U]=ot|0}let{Ah:r,Al:i,Bh:s,Bl:o,Ch:c,Cl:u,Dh:f,Dl:h,Eh:y,El:A,Fh:b,Fl:R,Gh:k,Gl:S,Hh:B,Hl:H}=this;for(let U=0;U<80;U++){const G=ne.rotrSH(y,A,14)^ne.rotrSH(y,A,18)^ne.rotrBH(y,A,41),W=ne.rotrSL(y,A,14)^ne.rotrSL(y,A,18)^ne.rotrBL(y,A,41),J=y&b^~y&k,j=A&R^~A&S,Y=ne.add5L(H,W,j,c$[U],No[U]),it=ne.add5H(Y,B,G,J,a$[U],Oo[U]),ut=Y|0,rt=ne.rotrSH(r,i,28)^ne.rotrBH(r,i,34)^ne.rotrBH(r,i,39),ot=ne.rotrSL(r,i,28)^ne.rotrBL(r,i,34)^ne.rotrBL(r,i,39),C=r&s^r&c^s&c,p=i&o^i&u^o&u;B=k|0,H=S|0,k=b|0,S=R|0,b=y|0,R=A|0,{h:y,l:A}=ne.add(f|0,h|0,it|0,ut|0),f=c|0,h=u|0,c=s|0,u=o|0,s=r|0,o=i|0;const m=ne.add3L(ut,ot,p);r=ne.add3H(m,it,rt,C),i=m|0}({h:r,l:i}=ne.add(this.Ah|0,this.Al|0,r|0,i|0)),{h:s,l:o}=ne.add(this.Bh|0,this.Bl|0,s|0,o|0),{h:c,l:u}=ne.add(this.Ch|0,this.Cl|0,c|0,u|0),{h:f,l:h}=ne.add(this.Dh|0,this.Dl|0,f|0,h|0),{h:y,l:A}=ne.add(this.Eh|0,this.El|0,y|0,A|0),{h:b,l:R}=ne.add(this.Fh|0,this.Fl|0,b|0,R|0),{h:k,l:S}=ne.add(this.Gh|0,this.Gl|0,k|0,S|0),{h:B,l:H}=ne.add(this.Hh|0,this.Hl|0,B|0,H|0),this.set(r,i,s,o,c,u,f,h,y,A,b,R,k,S,B,H)}roundClean(){Oo.fill(0),No.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const l$=Dm(()=>new u$);function f$(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof Hc<"u")return Hc;throw new Error("unable to locate global object")}const XR=f$();XR.crypto||XR.msCrypto;function h$(n){switch(n){case"sha256":return jR.create();case"sha512":return l$.create()}K(!1,"invalid hashing algorithm name","algorithm",n)}const[tS,eS,nS]=[[],[],[]],d$=BigInt(0),Qf=BigInt(1),p$=BigInt(2),g$=BigInt(7),y$=BigInt(256),m$=BigInt(113);for(let n=0,t=Qf,e=1,r=0;n<24;n++){[e,r]=[r,(2*e+3*r)%5],tS.push(2*(5*r+e)),eS.push((n+1)*(n+2)/2%64);let i=d$;for(let s=0;s<7;s++)t=(t<<Qf^(t>>g$)*m$)%y$,t&p$&&(i^=Qf<<(Qf<<BigInt(s))-Qf);nS.push(i)}const[w$,b$]=ZR(nS,!0),rS=(n,t,e)=>e>32?YR(n,t,e):qR(n,t,e),iS=(n,t,e)=>e>32?JR(n,t,e):QR(n,t,e);function _$(n,t=24){const e=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let o=0;o<10;o++)e[o]=n[o]^n[o+10]^n[o+20]^n[o+30]^n[o+40];for(let o=0;o<10;o+=2){const c=(o+8)%10,u=(o+2)%10,f=e[u],h=e[u+1],y=rS(f,h,1)^e[c],A=iS(f,h,1)^e[c+1];for(let b=0;b<50;b+=10)n[o+b]^=y,n[o+b+1]^=A}let i=n[2],s=n[3];for(let o=0;o<24;o++){const c=eS[o],u=rS(i,s,c),f=iS(i,s,c),h=tS[o];i=n[h],s=n[h+1],n[h]=u,n[h+1]=f}for(let o=0;o<50;o+=10){for(let c=0;c<10;c++)e[c]=n[o+c];for(let c=0;c<10;c++)n[o+c]^=~e[(c+2)%10]&e[(c+4)%10]}n[0]^=w$[r],n[1]^=b$[r]}e.fill(0)}class $m extends Um{constructor(t,e,r,i=!1,s=24){if(super(),this.blockLen=t,this.suffix=e,this.outputLen=r,this.enableXOF=i,this.rounds=s,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,z0(r),0>=this.blockLen||this.blockLen>=200)throw new Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=z7(this.state)}keccak(){_$(this.state32,this.rounds),this.posOut=0,this.pos=0}update(t){Iu(this);const{blockLen:e,state:r}=this;t=G0(t);const i=t.length;for(let s=0;s<i;){const o=Math.min(e-this.pos,i-s);for(let c=0;c<o;c++)r[this.pos++]^=t[s++];this.pos===e&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:t,suffix:e,pos:r,blockLen:i}=this;t[r]^=e,e&128&&r===i-1&&this.keccak(),t[i-1]^=128,this.keccak()}writeInto(t){Iu(this,!1),Pm(t),this.finish();const e=this.state,{blockLen:r}=this;for(let i=0,s=t.length;i<s;){this.posOut>=r&&this.keccak();const o=Math.min(r-this.posOut,s-i);t.set(e.subarray(this.posOut,this.posOut+o),i),this.posOut+=o,i+=o}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return z0(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(HR(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(t){const{blockLen:e,suffix:r,outputLen:i,rounds:s,enableXOF:o}=this;return t||(t=new $m(e,r,i,o,s)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=s,t.suffix=r,t.outputLen=i,t.enableXOF=o,t.destroyed=this.destroyed,t}}const A$=((n,t,e)=>Dm(()=>new $m(t,n,e)))(1,136,256/8);let sS=!1;const oS=function(n){return A$(n)};let aS=oS;function On(n){const t=we(n,"data");return Tt(aS(t))}On._=oS,On.lock=function(){sS=!0},On.register=function(n){if(sS)throw new TypeError("keccak256 is locked");aS=n},Object.freeze(On);const cS=function(n){return h$("sha256").update(n).digest()};let uS=cS,lS=!1;function ku(n){const t=we(n,"data");return Tt(uS(t))}ku._=cS,ku.lock=function(){lS=!0},ku.register=function(n){if(lS)throw new Error("sha256 is locked");uS=n},Object.freeze(ku),Object.freeze(ku);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const fS=BigInt(0),K0=BigInt(1),E$=BigInt(2),j0=n=>n instanceof Uint8Array,v$=Array.from({length:256},(n,t)=>t.toString(16).padStart(2,"0"));function Tu(n){if(!j0(n))throw new Error("Uint8Array expected");let t="";for(let e=0;e<n.length;e++)t+=v$[n[e]];return t}function hS(n){const t=n.toString(16);return t.length&1?`0${t}`:t}function Hm(n){if(typeof n!="string")throw new Error("hex string expected, got "+typeof n);return BigInt(n===""?"0":`0x${n}`)}function Ou(n){if(typeof n!="string")throw new Error("hex string expected, got "+typeof n);const t=n.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);const e=new Uint8Array(t/2);for(let r=0;r<e.length;r++){const i=r*2,s=n.slice(i,i+2),o=Number.parseInt(s,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");e[r]=o}return e}function Fa(n){return Hm(Tu(n))}function zm(n){if(!j0(n))throw new Error("Uint8Array expected");return Hm(Tu(Uint8Array.from(n).reverse()))}function Nu(n,t){return Ou(n.toString(16).padStart(t*2,"0"))}function Gm(n,t){return Nu(n,t).reverse()}function x$(n){return Ou(hS(n))}function bi(n,t,e){let r;if(typeof t=="string")try{r=Ou(t)}catch(s){throw new Error(`${n} must be valid hex string, got "${t}". Cause: ${s}`)}else if(j0(t))r=Uint8Array.from(t);else throw new Error(`${n} must be hex string or Uint8Array`);const i=r.length;if(typeof e=="number"&&i!==e)throw new Error(`${n} expected ${e} bytes, got ${i}`);return r}function Yf(...n){const t=new Uint8Array(n.reduce((r,i)=>r+i.length,0));let e=0;return n.forEach(r=>{if(!j0(r))throw new Error("Uint8Array expected");t.set(r,e),e+=r.length}),t}function R$(n,t){if(n.length!==t.length)return!1;for(let e=0;e<n.length;e++)if(n[e]!==t[e])return!1;return!0}function S$(n){if(typeof n!="string")throw new Error(`utf8ToBytes expected string, got ${typeof n}`);return new Uint8Array(new TextEncoder().encode(n))}function I$(n){let t;for(t=0;n>fS;n>>=K0,t+=1);return t}function k$(n,t){return n>>BigInt(t)&K0}const T$=(n,t,e)=>n|(e?K0:fS)<<BigInt(t),Vm=n=>(E$<<BigInt(n-1))-K0,Km=n=>new Uint8Array(n),dS=n=>Uint8Array.from(n);function pS(n,t,e){if(typeof n!="number"||n<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof e!="function")throw new Error("hmacFn must be a function");let r=Km(n),i=Km(n),s=0;const o=()=>{r.fill(1),i.fill(0),s=0},c=(...y)=>e(i,r,...y),u=(y=Km())=>{i=c(dS([0]),y),r=c(),y.length!==0&&(i=c(dS([1]),y),r=c())},f=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let y=0;const A=[];for(;y<t;){r=c();const b=r.slice();A.push(b),y+=r.length}return Yf(...A)};return(y,A)=>{o(),u(y);let b;for(;!(b=A(f()));)u();return o(),b}}const O$={bigint:n=>typeof n=="bigint",function:n=>typeof n=="function",boolean:n=>typeof n=="boolean",string:n=>typeof n=="string",stringOrUint8Array:n=>typeof n=="string"||n instanceof Uint8Array,isSafeInteger:n=>Number.isSafeInteger(n),array:n=>Array.isArray(n),field:(n,t)=>t.Fp.isValid(n),hash:n=>typeof n=="function"&&Number.isSafeInteger(n.outputLen)};function Jf(n,t,e={}){const r=(i,s,o)=>{const c=O$[s];if(typeof c!="function")throw new Error(`Invalid validator "${s}", expected function`);const u=n[i];if(!(o&&u===void 0)&&!c(u,n))throw new Error(`Invalid param ${String(i)}=${u} (${typeof u}), expected ${s}`)};for(const[i,s]of Object.entries(t))r(i,s,!1);for(const[i,s]of Object.entries(e))r(i,s,!0);return n}const N$=Object.freeze(Object.defineProperty({__proto__:null,bitGet:k$,bitLen:I$,bitMask:Vm,bitSet:T$,bytesToHex:Tu,bytesToNumberBE:Fa,bytesToNumberLE:zm,concatBytes:Yf,createHmacDrbg:pS,ensureBytes:bi,equalBytes:R$,hexToBytes:Ou,hexToNumber:Hm,numberToBytesBE:Nu,numberToBytesLE:Gm,numberToHexUnpadded:hS,numberToVarBytesBE:x$,utf8ToBytes:S$,validateObject:Jf},Symbol.toStringTag,{value:"Module"}));/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Un=BigInt(0),xn=BigInt(1),$a=BigInt(2),C$=BigInt(3),jm=BigInt(4),gS=BigInt(5),yS=BigInt(8);BigInt(9),BigInt(16);function kr(n,t){const e=n%t;return e>=Un?e:t+e}function B$(n,t,e){if(e<=Un||t<Un)throw new Error("Expected power/modulo > 0");if(e===xn)return Un;let r=xn;for(;t>Un;)t&xn&&(r=r*n%e),n=n*n%e,t>>=xn;return r}function ni(n,t,e){let r=n;for(;t-- >Un;)r*=r,r%=e;return r}function Wm(n,t){if(n===Un||t<=Un)throw new Error(`invert: expected positive integers, got n=${n} mod=${t}`);let e=kr(n,t),r=t,i=Un,s=xn;for(;e!==Un;){const c=r/e,u=r%e,f=i-s*c;r=e,e=u,i=s,s=f}if(r!==xn)throw new Error("invert: does not exist");return kr(i,t)}function P$(n){const t=(n-xn)/$a;let e,r,i;for(e=n-xn,r=0;e%$a===Un;e/=$a,r++);for(i=$a;i<n&&B$(i,t,n)!==n-xn;i++);if(r===1){const o=(n+xn)/jm;return function(u,f){const h=u.pow(f,o);if(!u.eql(u.sqr(h),f))throw new Error("Cannot find square root");return h}}const s=(e+xn)/$a;return function(c,u){if(c.pow(u,t)===c.neg(c.ONE))throw new Error("Cannot find square root");let f=r,h=c.pow(c.mul(c.ONE,i),e),y=c.pow(u,s),A=c.pow(u,e);for(;!c.eql(A,c.ONE);){if(c.eql(A,c.ZERO))return c.ZERO;let b=1;for(let k=c.sqr(A);b<f&&!c.eql(k,c.ONE);b++)k=c.sqr(k);const R=c.pow(h,xn<<BigInt(f-b-1));h=c.sqr(R),y=c.mul(y,R),A=c.mul(A,h),f=b}return y}}function M$(n){if(n%jm===C$){const t=(n+xn)/jm;return function(r,i){const s=r.pow(i,t);if(!r.eql(r.sqr(s),i))throw new Error("Cannot find square root");return s}}if(n%yS===gS){const t=(n-gS)/yS;return function(r,i){const s=r.mul(i,$a),o=r.pow(s,t),c=r.mul(i,o),u=r.mul(r.mul(c,$a),o),f=r.mul(c,r.sub(u,r.ONE));if(!r.eql(r.sqr(f),i))throw new Error("Cannot find square root");return f}}return P$(n)}const L$=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function U$(n){const t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},e=L$.reduce((r,i)=>(r[i]="function",r),t);return Jf(n,e)}function D$(n,t,e){if(e<Un)throw new Error("Expected power > 0");if(e===Un)return n.ONE;if(e===xn)return t;let r=n.ONE,i=t;for(;e>Un;)e&xn&&(r=n.mul(r,i)),i=n.sqr(i),e>>=xn;return r}function F$(n,t){const e=new Array(t.length),r=t.reduce((s,o,c)=>n.is0(o)?s:(e[c]=s,n.mul(s,o)),n.ONE),i=n.inv(r);return t.reduceRight((s,o,c)=>n.is0(o)?s:(e[c]=n.mul(s,e[c]),n.mul(s,o)),i),e}function mS(n,t){const e=t!==void 0?t:n.toString(2).length,r=Math.ceil(e/8);return{nBitLength:e,nByteLength:r}}function $$(n,t,e=!1,r={}){if(n<=Un)throw new Error(`Expected Field ORDER > 0, got ${n}`);const{nBitLength:i,nByteLength:s}=mS(n,t);if(s>2048)throw new Error("Field lengths over 2048 bytes are not supported");const o=M$(n),c=Object.freeze({ORDER:n,BITS:i,BYTES:s,MASK:Vm(i),ZERO:Un,ONE:xn,create:u=>kr(u,n),isValid:u=>{if(typeof u!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof u}`);return Un<=u&&u<n},is0:u=>u===Un,isOdd:u=>(u&xn)===xn,neg:u=>kr(-u,n),eql:(u,f)=>u===f,sqr:u=>kr(u*u,n),add:(u,f)=>kr(u+f,n),sub:(u,f)=>kr(u-f,n),mul:(u,f)=>kr(u*f,n),pow:(u,f)=>D$(c,u,f),div:(u,f)=>kr(u*Wm(f,n),n),sqrN:u=>u*u,addN:(u,f)=>u+f,subN:(u,f)=>u-f,mulN:(u,f)=>u*f,inv:u=>Wm(u,n),sqrt:r.sqrt||(u=>o(c,u)),invertBatch:u=>F$(c,u),cmov:(u,f,h)=>h?f:u,toBytes:u=>e?Gm(u,s):Nu(u,s),fromBytes:u=>{if(u.length!==s)throw new Error(`Fp.fromBytes: expected ${s}, got ${u.length}`);return e?zm(u):Fa(u)}});return Object.freeze(c)}function wS(n){if(typeof n!="bigint")throw new Error("field order must be bigint");const t=n.toString(2).length;return Math.ceil(t/8)}function bS(n){const t=wS(n);return t+Math.ceil(t/2)}function H$(n,t,e=!1){const r=n.length,i=wS(t),s=bS(t);if(r<16||r<s||r>1024)throw new Error(`expected ${s}-1024 bytes of input, got ${r}`);const o=e?Fa(n):zm(n),c=kr(o,t-xn)+xn;return e?Gm(c,i):Nu(c,i)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const z$=BigInt(0),Zm=BigInt(1);function G$(n,t){const e=(i,s)=>{const o=s.negate();return i?o:s},r=i=>{const s=Math.ceil(t/i)+1,o=2**(i-1);return{windows:s,windowSize:o}};return{constTimeNegate:e,unsafeLadder(i,s){let o=n.ZERO,c=i;for(;s>z$;)s&Zm&&(o=o.add(c)),c=c.double(),s>>=Zm;return o},precomputeWindow(i,s){const{windows:o,windowSize:c}=r(s),u=[];let f=i,h=f;for(let y=0;y<o;y++){h=f,u.push(h);for(let A=1;A<c;A++)h=h.add(f),u.push(h);f=h.double()}return u},wNAF(i,s,o){const{windows:c,windowSize:u}=r(i);let f=n.ZERO,h=n.BASE;const y=BigInt(2**i-1),A=2**i,b=BigInt(i);for(let R=0;R<c;R++){const k=R*u;let S=Number(o&y);o>>=b,S>u&&(S-=A,o+=Zm);const B=k,H=k+Math.abs(S)-1,U=R%2!==0,G=S<0;S===0?h=h.add(e(U,s[B])):f=f.add(e(G,s[H]))}return{p:f,f:h}},wNAFCached(i,s,o,c){const u=i._WINDOW_SIZE||1;let f=s.get(i);return f||(f=this.precomputeWindow(i,u),u!==1&&s.set(i,c(f))),this.wNAF(u,f,o)}}}function _S(n){return U$(n.Fp),Jf(n,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...mS(n.n,n.nBitLength),...n,p:n.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function V$(n){const t=_S(n);Jf(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});const{endo:e,Fp:r,a:i}=t;if(e){if(!r.eql(i,r.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof e!="object"||typeof e.beta!="bigint"||typeof e.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}const{bytesToNumberBE:K$,hexToBytes:j$}=N$,Ha={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(n){const{Err:t}=Ha;if(n.length<2||n[0]!==2)throw new t("Invalid signature integer tag");const e=n[1],r=n.subarray(2,e+2);if(!e||r.length!==e)throw new t("Invalid signature integer: wrong length");if(r[0]&128)throw new t("Invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:K$(r),l:n.subarray(e+2)}},toSig(n){const{Err:t}=Ha,e=typeof n=="string"?j$(n):n;if(!(e instanceof Uint8Array))throw new Error("ui8a expected");let r=e.length;if(r<2||e[0]!=48)throw new t("Invalid signature tag");if(e[1]!==r-2)throw new t("Invalid signature: incorrect length");const{d:i,l:s}=Ha._parseInt(e.subarray(2)),{d:o,l:c}=Ha._parseInt(s);if(c.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,s:o}},hexFromSig(n){const t=f=>Number.parseInt(f[0],16)&8?"00"+f:f,e=f=>{const h=f.toString(16);return h.length&1?`0${h}`:h},r=t(e(n.s)),i=t(e(n.r)),s=r.length/2,o=i.length/2,c=e(s),u=e(o);return`30${e(o+s+4)}02${u}${i}02${c}${r}`}},Bs=BigInt(0),ri=BigInt(1);BigInt(2);const AS=BigInt(3);BigInt(4);function W$(n){const t=V$(n),{Fp:e}=t,r=t.toBytes||((R,k,S)=>{const B=k.toAffine();return Yf(Uint8Array.from([4]),e.toBytes(B.x),e.toBytes(B.y))}),i=t.fromBytes||(R=>{const k=R.subarray(1),S=e.fromBytes(k.subarray(0,e.BYTES)),B=e.fromBytes(k.subarray(e.BYTES,2*e.BYTES));return{x:S,y:B}});function s(R){const{a:k,b:S}=t,B=e.sqr(R),H=e.mul(B,R);return e.add(e.add(H,e.mul(R,k)),S)}if(!e.eql(e.sqr(t.Gy),s(t.Gx)))throw new Error("bad generator point: equation left != right");function o(R){return typeof R=="bigint"&&Bs<R&&R<t.n}function c(R){if(!o(R))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function u(R){const{allowedPrivateKeyLengths:k,nByteLength:S,wrapPrivateKey:B,n:H}=t;if(k&&typeof R!="bigint"){if(R instanceof Uint8Array&&(R=Tu(R)),typeof R!="string"||!k.includes(R.length))throw new Error("Invalid key");R=R.padStart(S*2,"0")}let U;try{U=typeof R=="bigint"?R:Fa(bi("private key",R,S))}catch{throw new Error(`private key must be ${S} bytes, hex or bigint, not ${typeof R}`)}return B&&(U=kr(U,H)),c(U),U}const f=new Map;function h(R){if(!(R instanceof y))throw new Error("ProjectivePoint expected")}class y{constructor(k,S,B){if(this.px=k,this.py=S,this.pz=B,k==null||!e.isValid(k))throw new Error("x required");if(S==null||!e.isValid(S))throw new Error("y required");if(B==null||!e.isValid(B))throw new Error("z required")}static fromAffine(k){const{x:S,y:B}=k||{};if(!k||!e.isValid(S)||!e.isValid(B))throw new Error("invalid affine point");if(k instanceof y)throw new Error("projective point not allowed");const H=U=>e.eql(U,e.ZERO);return H(S)&&H(B)?y.ZERO:new y(S,B,e.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(k){const S=e.invertBatch(k.map(B=>B.pz));return k.map((B,H)=>B.toAffine(S[H])).map(y.fromAffine)}static fromHex(k){const S=y.fromAffine(i(bi("pointHex",k)));return S.assertValidity(),S}static fromPrivateKey(k){return y.BASE.multiply(u(k))}_setWindowSize(k){this._WINDOW_SIZE=k,f.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!e.is0(this.py))return;throw new Error("bad point: ZERO")}const{x:k,y:S}=this.toAffine();if(!e.isValid(k)||!e.isValid(S))throw new Error("bad point: x or y not FE");const B=e.sqr(S),H=s(k);if(!e.eql(B,H))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){const{y:k}=this.toAffine();if(e.isOdd)return!e.isOdd(k);throw new Error("Field doesn't support isOdd")}equals(k){h(k);const{px:S,py:B,pz:H}=this,{px:U,py:G,pz:W}=k,J=e.eql(e.mul(S,W),e.mul(U,H)),j=e.eql(e.mul(B,W),e.mul(G,H));return J&&j}negate(){return new y(this.px,e.neg(this.py),this.pz)}double(){const{a:k,b:S}=t,B=e.mul(S,AS),{px:H,py:U,pz:G}=this;let W=e.ZERO,J=e.ZERO,j=e.ZERO,Y=e.mul(H,H),it=e.mul(U,U),ut=e.mul(G,G),rt=e.mul(H,U);return rt=e.add(rt,rt),j=e.mul(H,G),j=e.add(j,j),W=e.mul(k,j),J=e.mul(B,ut),J=e.add(W,J),W=e.sub(it,J),J=e.add(it,J),J=e.mul(W,J),W=e.mul(rt,W),j=e.mul(B,j),ut=e.mul(k,ut),rt=e.sub(Y,ut),rt=e.mul(k,rt),rt=e.add(rt,j),j=e.add(Y,Y),Y=e.add(j,Y),Y=e.add(Y,ut),Y=e.mul(Y,rt),J=e.add(J,Y),ut=e.mul(U,G),ut=e.add(ut,ut),Y=e.mul(ut,rt),W=e.sub(W,Y),j=e.mul(ut,it),j=e.add(j,j),j=e.add(j,j),new y(W,J,j)}add(k){h(k);const{px:S,py:B,pz:H}=this,{px:U,py:G,pz:W}=k;let J=e.ZERO,j=e.ZERO,Y=e.ZERO;const it=t.a,ut=e.mul(t.b,AS);let rt=e.mul(S,U),ot=e.mul(B,G),C=e.mul(H,W),p=e.add(S,B),m=e.add(U,G);p=e.mul(p,m),m=e.add(rt,ot),p=e.sub(p,m),m=e.add(S,H);let v=e.add(U,W);return m=e.mul(m,v),v=e.add(rt,C),m=e.sub(m,v),v=e.add(B,H),J=e.add(G,W),v=e.mul(v,J),J=e.add(ot,C),v=e.sub(v,J),Y=e.mul(it,m),J=e.mul(ut,C),Y=e.add(J,Y),J=e.sub(ot,Y),Y=e.add(ot,Y),j=e.mul(J,Y),ot=e.add(rt,rt),ot=e.add(ot,rt),C=e.mul(it,C),m=e.mul(ut,m),ot=e.add(ot,C),C=e.sub(rt,C),C=e.mul(it,C),m=e.add(m,C),rt=e.mul(ot,m),j=e.add(j,rt),rt=e.mul(v,m),J=e.mul(p,J),J=e.sub(J,rt),rt=e.mul(p,ot),Y=e.mul(v,Y),Y=e.add(Y,rt),new y(J,j,Y)}subtract(k){return this.add(k.negate())}is0(){return this.equals(y.ZERO)}wNAF(k){return b.wNAFCached(this,f,k,S=>{const B=e.invertBatch(S.map(H=>H.pz));return S.map((H,U)=>H.toAffine(B[U])).map(y.fromAffine)})}multiplyUnsafe(k){const S=y.ZERO;if(k===Bs)return S;if(c(k),k===ri)return this;const{endo:B}=t;if(!B)return b.unsafeLadder(this,k);let{k1neg:H,k1:U,k2neg:G,k2:W}=B.splitScalar(k),J=S,j=S,Y=this;for(;U>Bs||W>Bs;)U&ri&&(J=J.add(Y)),W&ri&&(j=j.add(Y)),Y=Y.double(),U>>=ri,W>>=ri;return H&&(J=J.negate()),G&&(j=j.negate()),j=new y(e.mul(j.px,B.beta),j.py,j.pz),J.add(j)}multiply(k){c(k);let S=k,B,H;const{endo:U}=t;if(U){const{k1neg:G,k1:W,k2neg:J,k2:j}=U.splitScalar(S);let{p:Y,f:it}=this.wNAF(W),{p:ut,f:rt}=this.wNAF(j);Y=b.constTimeNegate(G,Y),ut=b.constTimeNegate(J,ut),ut=new y(e.mul(ut.px,U.beta),ut.py,ut.pz),B=Y.add(ut),H=it.add(rt)}else{const{p:G,f:W}=this.wNAF(S);B=G,H=W}return y.normalizeZ([B,H])[0]}multiplyAndAddUnsafe(k,S,B){const H=y.BASE,U=(W,J)=>J===Bs||J===ri||!W.equals(H)?W.multiplyUnsafe(J):W.multiply(J),G=U(this,S).add(U(k,B));return G.is0()?void 0:G}toAffine(k){const{px:S,py:B,pz:H}=this,U=this.is0();k==null&&(k=U?e.ONE:e.inv(H));const G=e.mul(S,k),W=e.mul(B,k),J=e.mul(H,k);if(U)return{x:e.ZERO,y:e.ZERO};if(!e.eql(J,e.ONE))throw new Error("invZ was invalid");return{x:G,y:W}}isTorsionFree(){const{h:k,isTorsionFree:S}=t;if(k===ri)return!0;if(S)return S(y,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:k,clearCofactor:S}=t;return k===ri?this:S?S(y,this):this.multiplyUnsafe(t.h)}toRawBytes(k=!0){return this.assertValidity(),r(y,this,k)}toHex(k=!0){return Tu(this.toRawBytes(k))}}y.BASE=new y(t.Gx,t.Gy,e.ONE),y.ZERO=new y(e.ZERO,e.ONE,e.ZERO);const A=t.nBitLength,b=G$(y,t.endo?Math.ceil(A/2):A);return{CURVE:t,ProjectivePoint:y,normPrivateKeyToScalar:u,weierstrassEquation:s,isWithinCurveOrder:o}}function Z$(n){const t=_S(n);return Jf(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function q$(n){const t=Z$(n),{Fp:e,n:r}=t,i=e.BYTES+1,s=2*e.BYTES+1;function o(m){return Bs<m&&m<e.ORDER}function c(m){return kr(m,r)}function u(m){return Wm(m,r)}const{ProjectivePoint:f,normPrivateKeyToScalar:h,weierstrassEquation:y,isWithinCurveOrder:A}=W$({...t,toBytes(m,v,I){const N=v.toAffine(),M=e.toBytes(N.x),z=Yf;return I?z(Uint8Array.from([v.hasEvenY()?2:3]),M):z(Uint8Array.from([4]),M,e.toBytes(N.y))},fromBytes(m){const v=m.length,I=m[0],N=m.subarray(1);if(v===i&&(I===2||I===3)){const M=Fa(N);if(!o(M))throw new Error("Point is not on curve");const z=y(M);let P=e.sqrt(z);const _=(P&ri)===ri;return(I&1)===1!==_&&(P=e.neg(P)),{x:M,y:P}}else if(v===s&&I===4){const M=e.fromBytes(N.subarray(0,e.BYTES)),z=e.fromBytes(N.subarray(e.BYTES,2*e.BYTES));return{x:M,y:z}}else throw new Error(`Point of length ${v} was invalid. Expected ${i} compressed bytes or ${s} uncompressed bytes`)}}),b=m=>Tu(Nu(m,t.nByteLength));function R(m){const v=r>>ri;return m>v}function k(m){return R(m)?c(-m):m}const S=(m,v,I)=>Fa(m.slice(v,I));class B{constructor(v,I,N){this.r=v,this.s=I,this.recovery=N,this.assertValidity()}static fromCompact(v){const I=t.nByteLength;return v=bi("compactSignature",v,I*2),new B(S(v,0,I),S(v,I,2*I))}static fromDER(v){const{r:I,s:N}=Ha.toSig(bi("DER",v));return new B(I,N)}assertValidity(){if(!A(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!A(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(v){return new B(this.r,this.s,v)}recoverPublicKey(v){const{r:I,s:N,recovery:M}=this,z=j(bi("msgHash",v));if(M==null||![0,1,2,3].includes(M))throw new Error("recovery id invalid");const P=M===2||M===3?I+t.n:I;if(P>=e.ORDER)throw new Error("recovery id 2 or 3 invalid");const _=M&1?"03":"02",F=f.fromHex(_+b(P)),ct=u(P),dt=c(-z*ct),mt=c(N*ct),Gt=f.BASE.multiplyAndAddUnsafe(F,dt,mt);if(!Gt)throw new Error("point at infinify");return Gt.assertValidity(),Gt}hasHighS(){return R(this.s)}normalizeS(){return this.hasHighS()?new B(this.r,c(-this.s),this.recovery):this}toDERRawBytes(){return Ou(this.toDERHex())}toDERHex(){return Ha.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Ou(this.toCompactHex())}toCompactHex(){return b(this.r)+b(this.s)}}const H={isValidPrivateKey(m){try{return h(m),!0}catch{return!1}},normPrivateKeyToScalar:h,randomPrivateKey:()=>{const m=bS(t.n);return H$(t.randomBytes(m),t.n)},precompute(m=8,v=f.BASE){return v._setWindowSize(m),v.multiply(BigInt(3)),v}};function U(m,v=!0){return f.fromPrivateKey(m).toRawBytes(v)}function G(m){const v=m instanceof Uint8Array,I=typeof m=="string",N=(v||I)&&m.length;return v?N===i||N===s:I?N===2*i||N===2*s:m instanceof f}function W(m,v,I=!0){if(G(m))throw new Error("first arg must be private key");if(!G(v))throw new Error("second arg must be public key");return f.fromHex(v).multiply(h(m)).toRawBytes(I)}const J=t.bits2int||function(m){const v=Fa(m),I=m.length*8-t.nBitLength;return I>0?v>>BigInt(I):v},j=t.bits2int_modN||function(m){return c(J(m))},Y=Vm(t.nBitLength);function it(m){if(typeof m!="bigint")throw new Error("bigint expected");if(!(Bs<=m&&m<Y))throw new Error(`bigint expected < 2^${t.nBitLength}`);return Nu(m,t.nByteLength)}function ut(m,v,I=rt){if(["recovered","canonical"].some(Lt=>Lt in I))throw new Error("sign() legacy options not supported");const{hash:N,randomBytes:M}=t;let{lowS:z,prehash:P,extraEntropy:_}=I;z==null&&(z=!0),m=bi("msgHash",m),P&&(m=bi("prehashed msgHash",N(m)));const F=j(m),ct=h(v),dt=[it(ct),it(F)];if(_!=null){const Lt=_===!0?M(e.BYTES):_;dt.push(bi("extraEntropy",Lt))}const mt=Yf(...dt),Gt=F;function Ut(Lt){const xe=J(Lt);if(!A(xe))return;const Kt=u(xe),Ft=f.BASE.multiply(xe).toAffine(),ke=c(Ft.x);if(ke===Bs)return;const re=c(Kt*c(Gt+ke*ct));if(re===Bs)return;let oe=(Ft.x===ke?0:2)|Number(Ft.y&ri),rn=re;return z&&R(re)&&(rn=k(re),oe^=1),new B(ke,rn,oe)}return{seed:mt,k2sig:Ut}}const rt={lowS:t.lowS,prehash:!1},ot={lowS:t.lowS,prehash:!1};function C(m,v,I=rt){const{seed:N,k2sig:M}=ut(m,v,I),z=t;return pS(z.hash.outputLen,z.nByteLength,z.hmac)(N,M)}f.BASE._setWindowSize(8);function p(m,v,I,N=ot){var Ft;const M=m;if(v=bi("msgHash",v),I=bi("publicKey",I),"strict"in N)throw new Error("options.strict was renamed to lowS");const{lowS:z,prehash:P}=N;let _,F;try{if(typeof M=="string"||M instanceof Uint8Array)try{_=B.fromDER(M)}catch(ke){if(!(ke instanceof Ha.Err))throw ke;_=B.fromCompact(M)}else if(typeof M=="object"&&typeof M.r=="bigint"&&typeof M.s=="bigint"){const{r:ke,s:re}=M;_=new B(ke,re)}else throw new Error("PARSE");F=f.fromHex(I)}catch(ke){if(ke.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(z&&_.hasHighS())return!1;P&&(v=t.hash(v));const{r:ct,s:dt}=_,mt=j(v),Gt=u(dt),Ut=c(mt*Gt),Lt=c(ct*Gt),xe=(Ft=f.BASE.multiplyAndAddUnsafe(F,Ut,Lt))==null?void 0:Ft.toAffine();return xe?c(xe.x)===ct:!1}return{CURVE:t,getPublicKey:U,getSharedSecret:W,sign:C,verify:p,ProjectivePoint:f,Signature:B,utils:H}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Q$(n){return{hash:n,hmac:(t,...e)=>VR(n,t,V7(...e)),randomBytes:K7}}function Y$(n,t){const e=r=>q$({...n,...Q$(r)});return Object.freeze({...e(t),create:e})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const ES=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),vS=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),J$=BigInt(1),qm=BigInt(2),xS=(n,t)=>(n+t/qm)/t;function X$(n){const t=ES,e=BigInt(3),r=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),c=BigInt(44),u=BigInt(88),f=n*n*n%t,h=f*f*n%t,y=ni(h,e,t)*h%t,A=ni(y,e,t)*h%t,b=ni(A,qm,t)*f%t,R=ni(b,i,t)*b%t,k=ni(R,s,t)*R%t,S=ni(k,c,t)*k%t,B=ni(S,u,t)*S%t,H=ni(B,c,t)*k%t,U=ni(H,e,t)*h%t,G=ni(U,o,t)*R%t,W=ni(G,r,t)*f%t,J=ni(W,qm,t);if(!Qm.eql(Qm.sqr(J),n))throw new Error("Cannot find square root");return J}const Qm=$$(ES,void 0,void 0,{sqrt:X$}),Co=Y$({a:BigInt(0),b:BigInt(7),Fp:Qm,n:vS,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:n=>{const t=vS,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-J$*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=e,o=BigInt("0x100000000000000000000000000000000"),c=xS(s*n,t),u=xS(-r*n,t);let f=kr(n-c*e-u*i,t),h=kr(-c*r-u*s,t);const y=f>o,A=h>o;if(y&&(f=t-f),A&&(h=t-h),f>o||h>o)throw new Error("splitScalar: Endomorphism failed, k="+n);return{k1neg:y,k1:f,k2neg:A,k2:h}}}},jR);BigInt(0),Co.ProjectivePoint;const Xf="0x0000000000000000000000000000000000000000",RS="0x0000000000000000000000000000000000000000000000000000000000000000",SS=BigInt(0),IS=BigInt(1),kS=BigInt(2),TS=BigInt(27),OS=BigInt(28),W0=BigInt(35),Cu={};function NS(n){return La(yr(n),32)}const Ri=class Ri{constructor(t,e,r,i){nt(this,Yu);nt(this,Ju);nt(this,Xu);nt(this,ac);P0(t,Cu,"Signature"),$(this,Yu,e),$(this,Ju,r),$(this,Xu,i),$(this,ac,null)}get r(){return T(this,Yu)}set r(t){K(vu(t)===32,"invalid r","value",t),$(this,Yu,Tt(t))}get s(){return T(this,Ju)}set s(t){K(vu(t)===32,"invalid s","value",t);const e=Tt(t);K(parseInt(e.substring(0,3))<8,"non-canonical s","value",e),$(this,Ju,e)}get v(){return T(this,Xu)}set v(t){const e=ie(t,"value");K(e===27||e===28,"invalid v","v",t),$(this,Xu,e)}get networkV(){return T(this,ac)}get legacyChainId(){const t=this.networkV;return t==null?null:Ri.getChainId(t)}get yParity(){return this.v===27?0:1}get yParityAndS(){const t=we(this.s);return this.yParity&&(t[0]|=128),Tt(t)}get compactSerialized(){return vn([this.r,this.yParityAndS])}get serialized(){return vn([this.r,this.s,this.yParity?"0x1c":"0x1b"])}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this.s}", yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){const t=new Ri(Cu,this.r,this.s,this.v);return this.networkV&&$(t,ac,this.networkV),t}toJSON(){const t=this.networkV;return{_type:"signature",networkV:t!=null?t.toString():null,r:this.r,s:this.s,v:this.v}}static getChainId(t){const e=Ct(t,"v");return e==TS||e==OS?SS:(K(e>=W0,"invalid EIP-155 v","v",t),(e-W0)/kS)}static getChainIdV(t,e){return Ct(t)*kS+BigInt(35+e-27)}static getNormalizedV(t){const e=Ct(t);return e===SS||e===TS?27:e===IS||e===OS?28:(K(e>=W0,"invalid v","v",t),e&IS?27:28)}static from(t){function e(f,h){K(f,h,"signature",t)}if(t==null)return new Ri(Cu,RS,RS,27);if(typeof t=="string"){const f=we(t,"signature");if(f.length===64){const h=Tt(f.slice(0,32)),y=f.slice(32,64),A=y[0]&128?28:27;return y[0]&=127,new Ri(Cu,h,Tt(y),A)}if(f.length===65){const h=Tt(f.slice(0,32)),y=f.slice(32,64);e((y[0]&128)===0,"non-canonical s");const A=Ri.getNormalizedV(f[64]);return new Ri(Cu,h,Tt(y),A)}e(!1,"invalid raw signature length")}if(t instanceof Ri)return t.clone();const r=t.r;e(r!=null,"missing r");const i=NS(r),s=function(f,h){if(f!=null)return NS(f);if(h!=null){e(ze(h,32),"invalid yParityAndS");const y=we(h);return y[0]&=127,Tt(y)}e(!1,"missing s")}(t.s,t.yParityAndS);e((we(s)[0]&128)==0,"non-canonical s");const{networkV:o,v:c}=function(f,h,y){if(f!=null){const A=Ct(f);return{networkV:A>=W0?A:void 0,v:Ri.getNormalizedV(A)}}if(h!=null)return e(ze(h,32),"invalid yParityAndS"),{v:we(h)[0]&128?28:27};if(y!=null){switch(ie(y,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}e(!1,"invalid yParity")}e(!1,"missing v")}(t.v,t.yParityAndS,t.yParity),u=new Ri(Cu,i,s,c);return o&&$(u,ac,o),e(t.yParity==null||ie(t.yParity,"sig.yParity")===u.yParity,"yParity mismatch"),e(t.yParityAndS==null||t.yParityAndS===u.yParityAndS,"yParityAndS mismatch"),u}};Yu=new WeakMap,Ju=new WeakMap,Xu=new WeakMap,ac=new WeakMap;let _i=Ri;const cc=class cc{constructor(t){nt(this,zs);K(vu(t)===32,"invalid private key","privateKey","[REDACTED]"),$(this,zs,Tt(t))}get privateKey(){return T(this,zs)}get publicKey(){return cc.computePublicKey(T(this,zs))}get compressedPublicKey(){return cc.computePublicKey(T(this,zs),!0)}sign(t){K(vu(t)===32,"invalid digest length","digest",t);const e=Co.sign(gr(t),gr(T(this,zs)),{lowS:!0});return _i.from({r:So(e.r,32),s:So(e.s,32),v:e.recovery?28:27})}computeSharedSecret(t){const e=cc.computePublicKey(t);return Tt(Co.getSharedSecret(gr(T(this,zs)),we(e),!1))}static computePublicKey(t,e){let r=we(t,"key");if(r.length===32){const s=Co.getPublicKey(r,!!e);return Tt(s)}if(r.length===64){const s=new Uint8Array(65);s[0]=4,s.set(r,1),r=s}const i=Co.ProjectivePoint.fromHex(r);return Tt(i.toRawBytes(e))}static recoverPublicKey(t,e){K(vu(t)===32,"invalid digest length","digest",t);const r=_i.from(e);let i=Co.Signature.fromCompact(gr(vn([r.r,r.s])));i=i.addRecoveryBit(r.yParity);const s=i.recoverPublicKey(gr(t));return K(s!=null,"invalid signautre for digest","signature",e),"0x"+s.toHex(!1)}static addPoints(t,e,r){const i=Co.ProjectivePoint.fromHex(cc.computePublicKey(t).substring(2)),s=Co.ProjectivePoint.fromHex(cc.computePublicKey(e).substring(2));return"0x"+i.add(s).toHex(!!r)}};zs=new WeakMap;let th=cc;const tH=BigInt(0),eH=BigInt(36);function CS(n){n=n.toLowerCase();const t=n.substring(2).split(""),e=new Uint8Array(40);for(let i=0;i<40;i++)e[i]=t[i].charCodeAt(0);const r=we(On(e));for(let i=0;i<40;i+=2)r[i>>1]>>4>=8&&(t[i]=t[i].toUpperCase()),(r[i>>1]&15)>=8&&(t[i+1]=t[i+1].toUpperCase());return"0x"+t.join("")}const Ym={};for(let n=0;n<10;n++)Ym[String(n)]=String(n);for(let n=0;n<26;n++)Ym[String.fromCharCode(65+n)]=String(10+n);const BS=15;function nH(n){n=n.toUpperCase(),n=n.substring(4)+n.substring(0,2)+"00";let t=n.split("").map(r=>Ym[r]).join("");for(;t.length>=BS;){let r=t.substring(0,BS);t=parseInt(r,10)%97+t.substring(r.length)}let e=String(98-parseInt(t,10)%97);for(;e.length<2;)e="0"+e;return e}const rH=function(){const n={};for(let t=0;t<36;t++){const e="0123456789abcdefghijklmnopqrstuvwxyz"[t];n[e]=BigInt(t)}return n}();function iH(n){n=n.toLowerCase();let t=tH;for(let e=0;e<n.length;e++)t=t*eH+rH[n[e]];return t}function Me(n){if(K(typeof n=="string","invalid address","address",n),n.match(/^(0x)?[0-9a-fA-F]{40}$/)){n.startsWith("0x")||(n="0x"+n);const t=CS(n);return K(!n.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||t===n,"bad address checksum","address",n),t}if(n.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){K(n.substring(2,4)===nH(n),"bad icap checksum","address",n);let t=iH(n.substring(4)).toString(16);for(;t.length<40;)t="0"+t;return CS("0x"+t)}K(!1,"invalid address","address",n)}function sH(n){const t=Me(n.from);let r=Ct(n.nonce,"tx.nonce").toString(16);return r==="0"?r="0x":r.length%2?r="0x0"+r:r="0x"+r,Me(un(On(Ua([t,r])),12))}function PS(n){return n&&typeof n.getAddress=="function"}async function Jm(n,t){const e=await t;return(e==null||e==="0x0000000000000000000000000000000000000000")&&(ht(typeof n!="string","unconfigured name","UNCONFIGURED_NAME",{value:n}),K(!1,"invalid AddressLike value; did not resolve to a value address","target",n)),Me(e)}function wr(n,t){if(typeof n=="string")return n.match(/^0x[0-9a-f]{40}$/i)?Me(n):(ht(t!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),Jm(n,t.resolveName(n)));if(PS(n))return Jm(n,n.getAddress());if(n&&typeof n.then=="function")return Jm(n,n);K(!1,"unsupported addressable value","target",n)}const Ps={};function It(n,t){let e=!1;return t<0&&(e=!0,t*=-1),new ir(Ps,`${e?"":"u"}int${t}`,n,{signed:e,width:t})}function Ae(n,t){return new ir(Ps,`bytes${t||""}`,n,{size:t})}const MS=Symbol.for("_ethers_typed"),Gs=class Gs{constructor(t,e,r,i){Z(this,"type");Z(this,"value");nt(this,uc);Z(this,"_typedSymbol");i==null&&(i=null),P0(Ps,t,"Typed"),$t(this,{_typedSymbol:MS,type:e,value:r}),$(this,uc,i),this.format()}format(){if(this.type==="array")throw new Error("");if(this.type==="dynamicArray")throw new Error("");return this.type==="tuple"?`tuple(${this.value.map(t=>t.format()).join(",")})`:this.type}defaultValue(){return 0}minValue(){return 0}maxValue(){return 0}isBigInt(){return!!this.type.match(/^u?int[0-9]+$/)}isData(){return this.type.startsWith("bytes")}isString(){return this.type==="string"}get tupleName(){if(this.type!=="tuple")throw TypeError("not a tuple");return T(this,uc)}get arrayLength(){if(this.type!=="array")throw TypeError("not an array");return T(this,uc)===!0?-1:T(this,uc)===!1?this.value.length:null}static from(t,e){return new Gs(Ps,t,e)}static uint8(t){return It(t,8)}static uint16(t){return It(t,16)}static uint24(t){return It(t,24)}static uint32(t){return It(t,32)}static uint40(t){return It(t,40)}static uint48(t){return It(t,48)}static uint56(t){return It(t,56)}static uint64(t){return It(t,64)}static uint72(t){return It(t,72)}static uint80(t){return It(t,80)}static uint88(t){return It(t,88)}static uint96(t){return It(t,96)}static uint104(t){return It(t,104)}static uint112(t){return It(t,112)}static uint120(t){return It(t,120)}static uint128(t){return It(t,128)}static uint136(t){return It(t,136)}static uint144(t){return It(t,144)}static uint152(t){return It(t,152)}static uint160(t){return It(t,160)}static uint168(t){return It(t,168)}static uint176(t){return It(t,176)}static uint184(t){return It(t,184)}static uint192(t){return It(t,192)}static uint200(t){return It(t,200)}static uint208(t){return It(t,208)}static uint216(t){return It(t,216)}static uint224(t){return It(t,224)}static uint232(t){return It(t,232)}static uint240(t){return It(t,240)}static uint248(t){return It(t,248)}static uint256(t){return It(t,256)}static uint(t){return It(t,256)}static int8(t){return It(t,-8)}static int16(t){return It(t,-16)}static int24(t){return It(t,-24)}static int32(t){return It(t,-32)}static int40(t){return It(t,-40)}static int48(t){return It(t,-48)}static int56(t){return It(t,-56)}static int64(t){return It(t,-64)}static int72(t){return It(t,-72)}static int80(t){return It(t,-80)}static int88(t){return It(t,-88)}static int96(t){return It(t,-96)}static int104(t){return It(t,-104)}static int112(t){return It(t,-112)}static int120(t){return It(t,-120)}static int128(t){return It(t,-128)}static int136(t){return It(t,-136)}static int144(t){return It(t,-144)}static int152(t){return It(t,-152)}static int160(t){return It(t,-160)}static int168(t){return It(t,-168)}static int176(t){return It(t,-176)}static int184(t){return It(t,-184)}static int192(t){return It(t,-192)}static int200(t){return It(t,-200)}static int208(t){return It(t,-208)}static int216(t){return It(t,-216)}static int224(t){return It(t,-224)}static int232(t){return It(t,-232)}static int240(t){return It(t,-240)}static int248(t){return It(t,-248)}static int256(t){return It(t,-256)}static int(t){return It(t,-256)}static bytes1(t){return Ae(t,1)}static bytes2(t){return Ae(t,2)}static bytes3(t){return Ae(t,3)}static bytes4(t){return Ae(t,4)}static bytes5(t){return Ae(t,5)}static bytes6(t){return Ae(t,6)}static bytes7(t){return Ae(t,7)}static bytes8(t){return Ae(t,8)}static bytes9(t){return Ae(t,9)}static bytes10(t){return Ae(t,10)}static bytes11(t){return Ae(t,11)}static bytes12(t){return Ae(t,12)}static bytes13(t){return Ae(t,13)}static bytes14(t){return Ae(t,14)}static bytes15(t){return Ae(t,15)}static bytes16(t){return Ae(t,16)}static bytes17(t){return Ae(t,17)}static bytes18(t){return Ae(t,18)}static bytes19(t){return Ae(t,19)}static bytes20(t){return Ae(t,20)}static bytes21(t){return Ae(t,21)}static bytes22(t){return Ae(t,22)}static bytes23(t){return Ae(t,23)}static bytes24(t){return Ae(t,24)}static bytes25(t){return Ae(t,25)}static bytes26(t){return Ae(t,26)}static bytes27(t){return Ae(t,27)}static bytes28(t){return Ae(t,28)}static bytes29(t){return Ae(t,29)}static bytes30(t){return Ae(t,30)}static bytes31(t){return Ae(t,31)}static bytes32(t){return Ae(t,32)}static address(t){return new Gs(Ps,"address",t)}static bool(t){return new Gs(Ps,"bool",!!t)}static bytes(t){return new Gs(Ps,"bytes",t)}static string(t){return new Gs(Ps,"string",t)}static array(t,e){throw new Error("not implemented yet")}static tuple(t,e){throw new Error("not implemented yet")}static overrides(t){return new Gs(Ps,"overrides",Object.assign({},t))}static isTyped(t){return t&&typeof t=="object"&&"_typedSymbol"in t&&t._typedSymbol===MS}static dereference(t,e){if(Gs.isTyped(t)){if(t.type!==e)throw new Error(`invalid type: expecetd ${e}, got ${t.type}`);return t.value}return t}};uc=new WeakMap;let ir=Gs;class oH extends Cs{constructor(t){super("address","address",t,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(t,e){let r=ir.dereference(e,"string");try{r=Me(r)}catch(i){return this._throwError(i.message,e)}return t.writeValue(r)}decode(t){return Me(So(t.readValue(),20))}}class aH extends Cs{constructor(e){super(e.name,e.type,"_",e.dynamic);Z(this,"coder");this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,r){return this.coder.encode(e,r)}decode(e){return this.coder.decode(e)}}function LS(n,t,e){let r=[];if(Array.isArray(e))r=e;else if(e&&typeof e=="object"){let u={};r=t.map(f=>{const h=f.localName;return ht(h,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:f},value:e}),ht(!u[h],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:f},value:e}),u[h]=!0,e[h]})}else K(!1,"invalid tuple value","tuple",e);K(t.length===r.length,"types/value length mismatch","tuple",e);let i=new Cm,s=new Cm,o=[];t.forEach((u,f)=>{let h=r[f];if(u.dynamic){let y=s.length;u.encode(s,h);let A=i.writeUpdatableValue();o.push(b=>{A(b+y)})}else u.encode(i,h)}),o.forEach(u=>{u(i.length)});let c=n.appendWriter(i);return c+=n.appendWriter(s),c}function US(n,t){let e=[],r=[],i=n.subReader(0);return t.forEach(s=>{let o=null;if(s.dynamic){let c=n.readIndex(),u=i.subReader(c);try{o=s.decode(u)}catch(f){if(Zn(f,"BUFFER_OVERRUN"))throw f;o=f,o.baseType=s.name,o.name=s.localName,o.type=s.type}}else try{o=s.decode(n)}catch(c){if(Zn(c,"BUFFER_OVERRUN"))throw c;o=c,o.baseType=s.name,o.name=s.localName,o.type=s.type}if(o==null)throw new Error("investigate");e.push(o),r.push(s.localName||null)}),Su.fromItems(e,r)}class cH extends Cs{constructor(e,r,i){const s=e.type+"["+(r>=0?r:"")+"]",o=r===-1||e.dynamic;super("array",s,i,o);Z(this,"coder");Z(this,"length");$t(this,{coder:e,length:r})}defaultValue(){const e=this.coder.defaultValue(),r=[];for(let i=0;i<this.length;i++)r.push(e);return r}encode(e,r){const i=ir.dereference(r,"array");Array.isArray(i)||this._throwError("expected array value",i);let s=this.length;s===-1&&(s=i.length,e.writeValue(i.length)),yR(i.length,s,"coder array"+(this.localName?" "+this.localName:""));let o=[];for(let c=0;c<i.length;c++)o.push(this.coder);return LS(e,o,i)}decode(e){let r=this.length;r===-1&&(r=e.readIndex(),ht(r*mr<=e.dataLength,"insufficient data length","BUFFER_OVERRUN",{buffer:e.bytes,offset:r*mr,length:e.dataLength}));let i=[];for(let s=0;s<r;s++)i.push(new aH(this.coder));return US(e,i)}}class uH extends Cs{constructor(t){super("bool","bool",t,!1)}defaultValue(){return!1}encode(t,e){const r=ir.dereference(e,"bool");return t.writeValue(r?1:0)}decode(t){return!!t.readValue()}}class DS extends Cs{constructor(t,e){super(t,t,e,!0)}defaultValue(){return"0x"}encode(t,e){e=gr(e);let r=t.writeValue(e.length);return r+=t.writeBytes(e),r}decode(t){return t.readBytes(t.readIndex(),!0)}}class lH extends DS{constructor(t){super("bytes",t)}decode(t){return Tt(super.decode(t))}}class fH extends Cs{constructor(e,r){let i="bytes"+String(e);super(i,i,r,!1);Z(this,"size");$t(this,{size:e},{size:"number"})}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+this.size*2)}encode(e,r){let i=gr(ir.dereference(r,this.type));return i.length!==this.size&&this._throwError("incorrect data length",r),e.writeBytes(i)}decode(e){return Tt(e.readBytes(this.size))}}const hH=new Uint8Array([]);class dH extends Cs{constructor(t){super("null","",t,!1)}defaultValue(){return null}encode(t,e){return e!=null&&this._throwError("not null",e),t.writeBytes(hH)}decode(t){return t.readBytes(0),null}}const pH=BigInt(0),gH=BigInt(1),yH=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class mH extends Cs{constructor(e,r,i){const s=(r?"int":"uint")+e*8;super(s,s,i,!1);Z(this,"size");Z(this,"signed");$t(this,{size:e,signed:r},{size:"number",signed:"boolean"})}defaultValue(){return 0}encode(e,r){let i=Ct(ir.dereference(r,this.type)),s=Zf(yH,mr*8);if(this.signed){let o=Zf(s,this.size*8-1);(i>o||i<-(o+gH))&&this._throwError("value out-of-bounds",r),i=_R(i,8*mr)}else(i<pH||i>Zf(s,this.size*8))&&this._throwError("value out-of-bounds",r);return e.writeValue(i)}decode(e){let r=Zf(e.readValue(),this.size*8);return this.signed&&(r=E7(r,this.size*8)),r}}class wH extends DS{constructor(t){super("string",t)}defaultValue(){return""}encode(t,e){return super.encode(t,Os(ir.dereference(e,"string")))}decode(t){return U0(super.decode(t))}}class Z0 extends Cs{constructor(e,r){let i=!1;const s=[];e.forEach(c=>{c.dynamic&&(i=!0),s.push(c.type)});const o="tuple("+s.join(",")+")";super("tuple",o,r,i);Z(this,"coders");$t(this,{coders:Object.freeze(e.slice())})}defaultValue(){const e=[];this.coders.forEach(i=>{e.push(i.defaultValue())});const r=this.coders.reduce((i,s)=>{const o=s.localName;return o&&(i[o]||(i[o]=0),i[o]++),i},{});return this.coders.forEach((i,s)=>{let o=i.localName;!o||r[o]!==1||(o==="length"&&(o="_length"),e[o]==null&&(e[o]=e[s]))}),Object.freeze(e)}encode(e,r){const i=ir.dereference(r,"tuple");return LS(e,this.coders,i)}decode(e){return US(e,this.coders)}}function za(n){return On(Os(n))}var bH="AEEUdwmgDS8BxQKKAP4BOgDjATAAngDUAIMAoABoAOAAagCOAEQAhABMAHIAOwA9ACsANgAmAGIAHgAuACgAJwAXAC0AGgAjAB8ALwAUACkAEgAeAAkAGwARABkAFgA5ACgALQArADcAFQApABAAHgAiABAAGgAeABMAGAUhBe8BFxREN8sF2wC5AK5HAW8ArQkDzQCuhzc3NzcBP68NEfMABQdHBuw5BV8FYAA9MzkI9r4ZBg7QyQAWA9CeOwLNCjcCjqkChuA/lm+RAsXTAoP6ASfnEQDytQFJAjWVCkeXAOsA6godAB/cwdAUE0WlBCN/AQUCQRjFD/MRBjHxDQSJbw0jBzUAswBxme+tnIcAYwabAysG8QAjAEMMmxcDqgPKQyDXCMMxA7kUQwD3NXOrAKmFIAAfBC0D3x4BJQDBGdUFAhEgVD8JnwmQJiNWYUzrg0oAGwAUAB0AFnNcACkAFgBP9h3gPfsDOWDKneY2ChglX1UDYD30ABsAFAAdABZzIGRAnwDD8wAjAEEMzRbDqgMB2sAFYwXqAtCnAsS4AwpUJKRtFHsadUz9AMMVbwLpABM1NJEX0ZkCgYMBEyMAxRVvAukAEzUBUFAtmUwSAy4DBTER33EftQHfSwB5MxJ/AjkWKQLzL8E/cwBB6QH9LQDPDtO9ASNriQC5DQANAwCK21EFI91zHwCoL9kBqQcHBwcHKzUDowBvAQohPvU3fAQgHwCyAc8CKQMA5zMSezr7ULgFmDp/LzVQBgEGAi8FYQVgt8AFcTtlQhpCWEmfe5tmZ6IAExsDzQ8t+X8rBKtTAltbAn0jsy8Bl6utPWMDTR8Ei2kRANkDBrNHNysDBzECQWUAcwFpJ3kAiyUhAJ0BUb8AL3EfAbfNAz81KUsFWwF3YQZtAm0A+VEfAzEJDQBRSQCzAQBlAHsAM70GD/v3IZWHBwARKQAxALsjTwHZAeMPEzmXgIHwABIAGQA8AEUAQDt3gdvIEGcQZAkGTRFMdEIVEwK0D64L7REdDNkq09PgADSxB/MDWwfzA1sDWwfzB/MDWwfzA1sDWwNbA1scEvAi28gQZw9QBHUFlgWTBN4IiyZREYkHMAjaVBV0JhxPA00BBCMtSSQ7mzMTJUpMFE0LCAQ2SmyvfUADTzGzVP2QqgPTMlc5dAkGHnkSqAAyD3skNb1OhnpPcagKU0+2tYdJak5vAsY6sEAACikJm2/Dd1YGRRAfJ6kQ+ww3AbkBPw3xS9wE9QY/BM0fgRkdD9GVoAipLeEM8SbnLqWAXiP5KocF8Uv4POELUVFsD10LaQnnOmeBUgMlAREijwrhDT0IcRD3Cs1vDekRSQc9A9lJngCpBwULFR05FbkmFGKwCw05ewb/GvoLkyazEy17AAXXGiUGUQEtGwMA0y7rhbRaNVwgT2MGBwspI8sUrFAkDSlAu3hMGh8HGSWtApVDdEqLUToelyH6PEENai4XUYAH+TwJGVMLhTyiRq9FEhHWPpE9TCJNTDAEOYMsMyePCdMPiQy9fHYBXQklCbUMdRM1ERs3yQg9Bx0xlygnGQglRplgngT7owP3E9UDDwVDCUUHFwO5HDETMhUtBRGBKNsC9zbZLrcCk1aEARsFzw8pH+MQVEfkDu0InwJpA4cl7wAxFSUAGyKfCEdnAGOP3FMJLs8Iy2pwI3gDaxTrZRF3B5UOWwerHDcVwxzlcMxeD4YMKKezCV8BeQmdAWME5wgNNV+MpCBFZ1eLXBifIGVBQ14AAjUMaRWjRMGHfAKPD28SHwE5AXcHPQ0FAnsR8RFvEJkI74YINbkz/DopBFMhhyAVCisDU2zSCysm/Qz8bQGnEmYDEDRBd/Jnr2C6KBgBBx0yyUFkIfULlk/RDKAaxRhGVDIZ6AfDA/ca9yfuQVsGAwOnBxc6UTPyBMELbQiPCUMATQ6nGwfbGG4KdYzUATWPAbudA1uVhwJzkwY7Bw8Aaw+LBX3pACECqwinAAkA0wNbAD0CsQehAB0AiUUBQQMrMwEl6QKTA5cINc8BmTMB9y0EH8cMGQD7O25OAsO1AoBuZqYF4VwCkgJNOQFRKQQJUktVA7N15QDfAE8GF+NLARmvTs8e50cB43MvAMsA/wAJOQcJRQHRAfdxALsBYws1Caa3uQFR7S0AhwAZbwHbAo0A4QA5AIP1AVcAUQVd/QXXAlNNARU1HC9bZQG/AyMBNwERAH0Gz5GpzQsjBHEH1wIQHxXlAu8yB7kFAyLjE9FCyQK94lkAMhoKPAqrCqpgX2Q3CjV2PVQAEh+sPss/UgVVO1c7XDtXO1w7VztcO1c7XDtXO1wDm8Pmw+YKcF9JYe8Mqg3YRMw6TRPfYFVgNhPMLbsUxRXSJVoZQRrAJwkl6FUNDwgt12Y0CDA0eRfAAEMpbINFY4oeNApPHOtTlVT8LR8AtUumM7MNsBsZREQFS3XxYi4WEgomAmSFAmJGX1GzAV83JAKh+wJonAJmDQKfiDgfDwJmPwJmKgRyBIMDfxcDfpY5Cjl7GzmGOicnAmwhAjI6OA4CbcsCbbLzjgM3a0kvAWsA4gDlAE4JB5wMkQECD8YAEbkCdzMCdqZDAnlPRwJ4viFg30WyRvcCfEMCeswCfQ0CfPRIBEiBZygALxlJXEpfGRtK0ALRBQLQ0EsrA4hTA4fqRMmRNgLypV0HAwOyS9JMMSkH001QTbMCi0MCitzFHwshR2sJuwKOOwKOYESbhQKO3QKOYHxRuFM5AQ5S2FSJApP/ApMQAO0AIFUiVbNV1AosHymZijLleGpFPz0Cl6MC77ZYJawAXSkClpMCloCgAK1ZsFoNhVEAPwKWuQKWUlxIXNUCmc8CmWhczl0LHQKcnznGOqECnBoCn58CnryOACETNS4TAp31Ap6WALlBYThh8wKe1wKgcgGtAp6jIwKeUqljzGQrKS8CJ7MCJoICoP8CoFDbAqYzAqXSAqgDAIECp/ZogGi1AAdNaiBq1QKs5wKssgKtawKtBgJXIQJV4AKx5dsDH1JsmwKywRECsuwbbORtZ21MYwMl0QK2YD9DbpQDKUkCuGICuUsZArkue3A6cOUCvR0DLbYDMhUCvoxyBgMzdQK+HnMmc1MCw88CwwhzhnRPOUl05AM8qwEDPJ4DPcMCxYACxksCxhSNAshtVQLISALJUwLJMgJkoQLd1nh9ZXiyeSlL1AMYp2cGAmH4GfeVKHsPXpZevxUCz28Cz3AzT1fW9xejAMqxAs93AS3uA04Wfk8JAtwrAtuOAtJTA1JgA1NjAQUDVZCAjUMEzxrxZEl5A4LSg5EC2ssC2eKEFIRNp0ADhqkAMwNkEoZ1Xf0AWQLfaQLevHd7AuIz7RgB8zQrAfSfAfLWiwLr9wLpdH0DAur9AuroAP1LAb0C7o0C66CWrpcHAu5DA4XkmH1w5HGlAvMHAG0DjhqZlwL3FwORcgOSiwL3nAL53QL4apogmq+/O5siA52HAv7+AR8APZ8gAZ+3AwWRA6ZuA6bdANXJAwZuoYyiCQ0DDE0BEwEjB3EGZb1rCQC/BG/DFY8etxEAG3k9ACcDNxJRA42DAWcrJQCM8wAlAOanC6OVCLsGI6fJBgCvBRnDBvElRUYFFoAFcD9GSDNCKUK8X3kZX8QAls0FOgCQVCGbwTsuYDoZutcONxjOGJHJ/gVfBWAFXwVgBWsFYAVfBWAFXwVgBV8FYAVfBWBOHQjfjW8KCgoKbF7xMwTRA7kGN8PDAMMEr8MA70gxFroFTj5xPnhCR0K+X30/X/AAWBkzswCNBsxzzASm70aCRS4rDDMeLz49fnXfcsH5GcoscQFz13Y4HwVnBXLJycnACNdRYwgICAqEXoWTxgA7P4kACxbZBu21Kw0AjMsTAwkVAOVtJUUsJ1JCuULESUArXy9gPi9AKwnJRQYKTD9LPoA+iT54PnkCkULEUUpDX9NWV3JVEjQAc1w3A3IBE3YnX+g7QiMJb6MKaiszRCUuQrNCxDPMCcwEX9EWJzYREBEEBwIHKn6l33JCNVIfybPJtAltydPUCmhBZw/tEKsZAJOVJU1CLRuxbUHOQAo7P0s+eEJHHA8SJVRPdGM0NVrpvBoKhfUlM0JHHGUQUhEWO1xLSj8MO0ucNAqJIzVCRxv9EFsqKyA4OQgNj2nwZgp5ZNFgE2A1K3YHS2AhQQojJmC7DgpzGG1WYFUZCQYHZO9gHWCdYIVgu2BTYJlwFh8GvRbcXbG8YgtDHrMBwzPVyQonHQgkCyYBgQJ0Ajc4nVqIAwGSCsBPIgDsK3SWEtIVBa5N8gGjAo+kVwVIZwD/AEUSCDweX4ITrRQsJ8K3TwBXFDwEAB0TvzVcAtoTS20RIwDgVgZ9BBImYgA5AL4Coi8LFnezOkCnIQFjAY4KBAPh9RcGsgZSBsEAJctdsWIRu2kTkQstRw7DAcMBKgpPBGIGMDAwKCYnKTQaLg4AKRSVAFwCdl+YUZ0JdicFD3lPAdt1F9ZZKCGxuE3yBxkFVGcA/wBFEgiCBwAOLHQSjxOtQDg1z7deFRMAZ8QTAGtKb1ApIiPHADkAvgKiLy1DFtYCmBiDAlDDWNB0eo7fpaMO/aEVRRv0ATEQZBIODyMEAc8JQhCbDRgzFD4TAEMAu9YBCgCsAOkAm5I3ABwAYxvONnR+MhXJAxgKQyxL2+kkJhMbhQKDBMkSsvF0AD9BNQ6uQC7WqSQHwxEAEEIu1hkhAH2z4iQPwyJPHNWpdyYBRSpnJALzoBAEVPPsH20MxA0CCEQKRgAFyAtFAlMNwwjEDUQJRArELtapMg7DDZgJIw+TGukEIwvDFkMAqAtDEMMMBhioe+QAO3MMRAACrgnEBSPY9Q0FDnbSBoMAB8MSYxkSxAEJAPIJAAB8FWMOFtMc/HcXwxhDAC7DAvOowwAewwJdKDKHAAHDAALrFUQVwwAbwyvzpWMWv8wA/ABpAy++bcYDUKPD0KhDCwKmJ1MAAmMA5+UZwxAagwipBRL/eADfw6fDGOMCGsOjk3l6BwOpo4sAEsMOGxMAA5sAbcMOAAvDp0MJGkMDwgipnNIPAwfIqUMGAOGDAAPzABXDAAcDAAnDAGmTABrDAA7DChjDjnEWAwABYwAOcwAuUyYABsMAF8MIKQANUgC6wy4AA8MADqMq8wCyYgAcIwAB8wqpAAXOCx0V4wAHowBCwwEKAGnDAAuDAB3DAAjDCakABdIAbqcZ3QCZCCkABdIAAAFDAAfjAB2jCCkABqIACYMAGzMAbSMA5sOIAAhjAAhDABTDBAkpAAbSAOOTAAlDC6kOzPtnAAdDAG6kQFAATwAKwwwAA0MACbUDPwAHIwAZgwACE6cDAAojAApDAAoDp/MGwwAJIwADEwAQQwgAFEMAEXMAD5MADfMADcMAGRMOFiMAFUMAbqMWuwHDAMIAE0MLAGkzEgDhUwACQwAEWgAXgwUjAAbYABjDBSYBgzBaAEFNALcQBxUMegAwMngBrA0IZgJ0KxQHBREPd1N0ZzKRJwaIHAZqNT4DqQq8BwngAB4DAwt2AX56T1ocKQNXAh1GATQGC3tOxYNagkgAMQA5CQADAQEAWxLjAIOYNAEzAH7tFRk6TglSAF8NAAlYAQ+S1ACAQwQorQBiAN4dAJ1wPyeTANVzuQDX3AIeEMp9eyMgXiUAEdkBkJizKltbVVAaRMqRAAEAhyQ/SDEz6BmfVwB6ATEsOClKIRcDOF0E/832AFNt5AByAnkCRxGCOs94NjXdAwINGBonDBwPALW2AwICAgAAAAAAAAYDBQMDARrUAwAtAAAAAgEGBgYGBgYFBQUFBQUEBQYHCAkEBQUFBQQAAAICAAAAIgCNAJAAlT0A6gC7ANwApEQAwgCyAK0AqADuAKYA2gCjAOcBCAEDAMcAgQBiANIA1AEDAN4A8gCQAKkBMQDqAN8A3AsBCQ8yO9ra2tq8xuLT1tRJOB0BUgFcNU0BWgFpAWgBWwFMUUlLbhMBUxsNEAs6PhMOACcUKy0vMj5AQENDQ0RFFEYGJFdXV1dZWVhZL1pbXVxcI2NnZ2ZoZypsbnZ1eHh4eHh4enp6enp6enp6enp8fH18e2IARPIASQCaAHgAMgBm+ACOAFcAVwA3AnbvAIsABfj4AGQAk/IAnwBPAGIAZP//sACFAIUAaQBWALEAJAC2AIMCQAJDAPwA5wD+AP4A6AD/AOkA6QDoAOYALwJ7AVEBQAE+AVQBPgE+AT4BOQE4ATgBOAEcAVgXADEQCAEAUx8SHgsdHhYAjgCWAKYAUQBqIAIxAHYAbwCXAxUDJzIDIUlGTzEAkQJPAMcCVwKkAMAClgKWApYClgKWApYCiwKWApYClgKWApYClgKVApUCmAKgApcClgKWApQClAKUApQCkgKVAnUB1AKXAp8ClgKWApUeAIETBQD+DQOfAmECOh8BVBg9AuIZEjMbAU4/G1WZAXusRAFpYQEFA0FPAQYAmTEeIJdyADFoAHEANgCRA5zMk/C2jGINwjMWygIZCaXdfDILBCs5dAE7YnQBugDlhoiHhoiGiYqKhouOjIaNkI6Ij4qQipGGkoaThpSSlYaWhpeKmIaZhpqGm4aci52QnoqfhuIC4XTpAt90AIp0LHSoAIsAdHQEQwRABEIERQRDBEkERgRBBEcESQRIBEQERgRJAJ5udACrA490ALxuAQ10ANFZdHQA13QCFHQA/mJ0AP4BIQD+APwA/AD9APwDhGZ03ASMK23HAP4A/AD8AP0A/CR0dACRYnQA/gCRASEA/gCRAvQA/gCRA4RmdNwEjCttxyR0AP9idAEhAP4A/gD8APwA/QD8AP8A/AD8AP0A/AOEZnTcBIwrbcckdHQAkWJ0ASEA/gCRAP4AkQL0AP4AkQOEZnTcBIwrbcckdAJLAT50AlIBQXQCU8l0dAJfdHQDpgL0A6YDpgOnA6cDpwOnA4RmdNwEjCttxyR0dACRYnQBIQOmAJEDpgCRAvQDpgCRA4RmdNwEjCttxyR0BDh0AJEEOQCRDpU5dSgCADR03gV2CwArdAEFAM5iCnR0AF1iAAYcOgp0dACRCnQAXAEIwWZ0CnRmdHQAkWZ0CnRmdEXgAFF03gp0dEY0tlT2u3SOAQTwscwhjZZKrhYcBSfFp9XNbKiVDOD2b+cpe4/Z17mQnbtzzhaeQtE2GGj0IDNTjRUSyTxxw/RPHW/+vS7d1NfRt9z9QPZg4X7QFfhCnkvgNPIItOsC2eV6hPannZNHlZ9xrwZXIMOlu3jSoQSq78WEjwLjw1ELSlF1aBvfzwk5ZX7AUvQzjPQKbDuQ+sm4wNOp4A6AdVuRS0t1y/DZpg4R6m7FNjM9HgvW7Bi88zaMjOo6lM8wtBBdj8LP4ylv3zCXPhebMKJc066o9sF71oFW/8JXu86HJbwDID5lzw5GWLR/LhT0Qqnp2JQxNZNfcbLIzPy+YypqRm/lBmGmex+82+PisxUumSeJkALIT6rJezxMH+CTJmQtt5uwTVbL3ptmjDUQzlSIvWi8Tl7ng1NpuRn1Ng4n14Qc+3Iil7OwkvNWogLSPkn3pihIFytyIGmMhOe3n1tWsuMy9BdKyqF4Z3v2SgggTL9KVvMXPnCbRe+oOuFFP3HejBG/w9gvmfNYvg6JuWia2lcSSN1uIjBktzoIazOHPJZ7kKHPz8mRWVdW3lA8WGF9dQF6Bm673boov3BUWDU2JNcahR23GtfHKLOz/viZ+rYnZFaIznXO67CYEJ1fXuTRpZhYZkKe54xeoagkNGLs+NTZHE0rX45/XvQ2RGADX6vcAvdxIUBV27wxGm2zjZo4X3ILgAlrOFheuZ6wtsvaIj4yLY7qqawlliaIcrz2G+c3vscAnCkCuMzMmZvMfu9lLwTvfX+3cVSyPdN9ZwgDZhfjRgNJcLiJ67b9xx8JHswprbiE3v9UphotAPIgnXVIN5KmMc0piXhc6cChPnN+MRhG9adtdttQTTwSIpl8I4/j//d3sz1326qTBTpPRM/Hgh3kzqEXs8ZAk4ErQhNO8hzrQ0DLkWMA/N+91tn2MdOJnWC2FCZehkQrwzwbKOjhvZsbM95QoeL9skYyMf4srVPVJSgg7pOLUtr/n9eT99oe9nLtFRpjA9okV2Kj8h9k5HaC0oivRD8VyXkJ81tcd4fHNXPCfloIQasxsuO18/46dR2jgul/UIet2G0kRvnyONMKhHs6J26FEoqSqd+rfYjeEGwHWVDpX1fh1jBBcKGMqRepju9Y00mDVHC+Xdij/j44rKfvfjGinNs1jO/0F3jB83XCDINN/HB84axlP+3E/klktRo+vl3U/aiyMJbIodE1XSsDn6UAzIoMtUObY2+k/4gY/l+AkZJ5Sj2vQrkyLm3FoxjhDX+31UXBFf9XrAH31fFqoBmDEZvhvvpnZ87N+oZEu7U9O/nnk+QWj3x8uyoRbEnf+O5UMr9i0nHP38IF5AvzrBW8YWBUR0mIAzIvndQq9N3v/Jto3aPjPXUPl8ASdPPyAp7jENf8bk7VMM9ol9XGmlBmeDMuGqt+WzuL6CXAxXjIhCPM5vACchgMJ/8XBGLO/D1isVvGhwwHHr1DLaI5mn2Jr/b1pUD90uciDaS8cXNDzCWvNmT/PhQe5e8nTnnnkt8Ds/SIjibcum/fqDhKopxAY8AkSrPn+IGDEKOO+U3XOP6djFs2H5N9+orhOahiQk5KnEUWa+CzkVzhp8bMHRbg81qhjjXuIKbHjSLSIBKWqockGtKinY+z4/RdBUF6pcc3JmnlxVcNgrI4SEzKUZSwcD2QCyxzKve+gAmg6ZuSRkpPFa6mfThu7LJNu3H5K42uCpNvPAsoedolKV/LHe/eJ+BbaG5MG0NaSGVPRUmNFMFFSSpXEcXwbVh7UETOZZtoVNRGOIbbkig3McEtR68cG0RZAoJevWYo7Dg/lZ1CQzblWeUvVHmr8fY4Nqd9JJiH/zEX24mJviH60fAyFr0A3c4bC1j3yZU60VgJxXn8JgJXLUIsiBnmKmMYz+7yBQFBvqb2eYnuW59joZBf56/wXvWIR4R8wTmV80i1mZy+S4+BUES+hzjk0uXpC///z/IlqHZ1monzlXp8aCfhGKMti73FI1KbL1q6IKO4fuBuZ59gagjn5xU79muMpHXg6S+e+gDM/U9BKLHbl9l6o8czQKl4RUkJJiqftQG2i3BMg/TQlUYFkJDYBOOvAugYuzYSDnZbDDd/aSd9x0Oe6F+bJcHfl9+gp6L5/TgA+BdFFovbfCrQ40s5vMPw8866pNX8zyFGeFWdxIpPVp9Rg1UPOVFbFZrvaFq/YAzHQgqMWpahMYfqHpmwXfHL1/kpYmGuHFwT55mQu0dylfNuq2Oq0hTMCPwqfxnuBIPLXfci4Y1ANy+1CUipQxld/izVh16WyG2Q0CQQ9NqtAnx1HCHwDj7sYxOSB0wopZSnOzxQOcExmxrVTF2BkOthVpGfuhaGECfCJpJKpjnihY+xOT2QJxN61+9K6QSqtv2Shr82I3jgJrqBg0wELFZPjvHpvzTtaJnLK6Vb97Yn933koO/saN7fsjwNKzp4l2lJVx2orjCGzC/4ZL4zCver6aQYtC5sdoychuFE6ufOiog+VWi5UDkbmvmtah/3aArEBIi39s5ILUnlFLgilcGuz9CQshEY7fw2ouoILAYPVT/gyAIq3TFAIwVsl+ktkRz/qGfnCDGrm5gsl/l9QdvCWGsjPz3dU7XuqKfdUrr/6XIgjp4rey6AJBmCmUJMjITHVdFb5m1p+dLMCL8t55zD42cmftmLEJC0Da04YiRCVUBLLa8D071/N5UBNBXDh0LFsmhV/5B5ExOB4j3WVG/S3lfK5o+V6ELHvy6RR9n4ac+VsK4VE4yphPvV+kG9FegTBH4ZRXL2HytUHCduJazB/KykjfetYxOXTLws267aGOd+I+JhKP//+VnXmS90OD/jvLcVu0asyqcuYN1mSb6XTlCkqv1vigZPIYwNF/zpWcT1GR/6aEIRjkh0yhg4LXJfaGobYJTY4JI58KiAKgmmgAKWdl5nYCeLqavRJGQNuYuZtZFGx+IkI4w4NS2xwbetNMunOjBu/hmKCI/w7tfiiyUd//4rbTeWt4izBY8YvGIN6vyKYmP/8X8wHKCeN+WRcKM70+tXKNGyevU9H2Dg5BsljnTf8YbsJ1TmMs74Ce2XlHisleguhyeg44rQOHZuw/6HTkhnnurK2d62q6yS7210SsAIaR+jXMQA+svkrLpsUY+F30Uw89uOdGAR6vo4FIME0EfVVeHTu6eKicfhSqOeXJhbftcd08sWEnNUL1C9fnprTgd83IMut8onVUF0hvqzZfHduPjbjwEXIcoYmy+P6tcJZHmeOv6VrvEdkHDJecjHuHeWANe79VG662qTjA/HCvumVv3qL+LrOcpqGps2ZGwQdFJ7PU4iuyRlBrwfO+xnPyr47s2cXVbWzAyznDiBGjCM3ksxjjqM62GE9C8f5U38kB3VjtabKp/nRdvMESPGDG90bWRLAt1Qk5DyLuazRR1YzdC1c+hZXvAWV8xA72S4A8B67vjVhbba3MMop293FeEXpe7zItMWrJG/LOH9ByOXmYnNJfjmfuX9KbrpgLOba4nZ+fl8Gbdv/ihv+6wFGKHCYrVwmhFC0J3V2bn2tIB1wCc1CST3d3X2OyxhguXcs4sm679UngzofuSeBewMFJboIQHbUh/m2JhW2hG9DIvG2t7yZIzKBTz9wBtnNC+2pCRYhSIuQ1j8xsz5VvqnyUIthvuoyyu7fNIrg/KQUVmGQaqkqZk/Vx5b33/gsEs8yX7SC1J+NV4icz6bvIE7C5G6McBaI8rVg56q5QBJWxn/87Q1sPK4+sQa8fLU5gXo4paaq4cOcQ4wR0VBHPGjKh+UlPCbA1nLXyEUX45qZ8J7/Ln4FPJE2TdzD0Z8MLSNQiykMMmSyOCiFfy84Rq60emYB2vD09KjYwsoIpeDcBDTElBbXxND72yhd9pC/1CMid/5HUMvAL27OtcIJDzNKpRPNqPOpyt2aPGz9QWIs9hQ9LiX5s8m9hjTUu/f7MyIatjjd+tSfQ3ufZxPpmJhTaBtZtKLUcfOCUqADuO+QoH8B9v6U+P0HV1GLQmtoNFTb3s74ivZgjES0qfK+8RdGgBbcCMSy8eBvh98+et1KIFqSe1KQPyXULBMTsIYnysIwiZBJYdI20vseV+wuJkcqGemehKjaAb9L57xZm3g2zX0bZ2xk/fU+bCo7TlnbW7JuF1YdURo/2Gw7VclDG1W7LOtas2LX4upifZ/23rzpsnY/ALfRgrcWP5hYmV9VxVOQA1fZvp9F2UNU+7d7xRyVm5wiLp3/0dlV7vdw1PMiZrbDAYzIVqEjRY2YU03sJhPnlwIPcZUG5ltL6S8XCxU1eYS5cjr34veBmXAvy7yN4ZjArIG0dfD/5UpBNlX1ZPoxJOwyqRi3wQWtOzd4oNKh0LkoTm8cwqgIfKhqqGOhwo71I+zXnMemTv2B2AUzABWyFztGgGULjDDzWYwJUVBTjKCn5K2QGMK1CQT7SzziOjo+BhAmqBjzuc3xYym2eedGeOIRJVyTwDw37iCMe4g5Vbnsb5ZBdxOAnMT7HU4DHpxWGuQ7GeiY30Cpbvzss55+5Km1YsbD5ea3NI9QNYIXol5apgSu9dZ8f8xS5dtHpido5BclDuLWY4lhik0tbJa07yJhH0BOyEut/GRbYTS6RfiTYWGMCkNpfSHi7HvdiTglEVHKZXaVhezH4kkXiIvKopYAlPusftpE4a5IZwvw1x/eLvoDIh/zpo9FiQInsTb2SAkKHV42XYBjpJDg4374XiVb3ws4qM0s9eSQ5HzsMU4OZJKuopFjBM+dAZEl8RUMx5uU2N486Kr141tVsGQfGjORYMCJAMsxELeNT4RmWjRcpdTGBwcx6XN9drWqPmJzcrGrH4+DRc7+n1w3kPZwu0BkNr6hQrqgo7JTB9A5kdJ/H7P4cWBMwsmuixAzJB3yrQpnGIq90lxAXLzDCdn1LPibsRt7rHNjgQBklRgPZ8vTbjXdgXrTWQsK5MdrXXQVPp0Rinq3frzZKJ0qD6Qhc40VzAraUXlob1gvkhK3vpmHgI6FRlQZNx6eRqkp0zy4AQlX813fAPtL3jMRaitGFFjo0zmErloC+h+YYdVQ6k4F/epxAoF0BmqEoKNTt6j4vQZNQ2BoqF9Vj53TOIoNmDiu9Xp15RkIgQIGcoLpfoIbenzpGUAtqFJp5W+LLnx38jHeECTJ/navKY1NWfN0sY1T8/pB8kIH3DU3DX+u6W3YwpypBMYOhbSxGjq84RZ84fWJow8pyHqn4S/9J15EcCMsXqrfwyd9mhiu3+rEo9pPpoJkdZqHjra4NvzFwuThNKy6hao/SlLw3ZADUcUp3w3SRVfW2rhl80zOgTYnKE0Hs2qp1J6H3xqPqIkvUDRMFDYyRbsFI3M9MEyovPk8rlw7/0a81cDVLmBsR2ze2pBuKb23fbeZC0uXoIvDppfTwIDxk1Oq2dGesGc+oJXWJLGkOha3CX+DUnzgAp9HGH9RsPZN63Hn4RMA5eSVhPHO+9RcRb/IOgtW31V1Q5IPGtoxPjC+MEJbVlIMYADd9aHYWUIQKopuPOHmoqSkubnAKnzgKHqgIOfW5RdAgotN6BN+O2ZYHkuemLnvQ8U9THVrS1RtLmKbcC7PeeDsYznvqzeg6VCNwmr0Yyx1wnLjyT84BZz3EJyCptD3yeueAyDWIs0L2qs/VQ3HUyqfrja0V1LdDzqAikeWuV4sc7RLIB69jEIBjCkyZedoUHqCrOvShVzyd73OdrJW0hPOuQv2qOoHDc9xVb6Yu6uq3Xqp2ZaH46A7lzevbxQEmfrzvAYSJuZ4WDk1Hz3QX1LVdiUK0EvlAGAYlG3Md30r7dcPN63yqBCIj25prpvZP0nI4+EgWoFG95V596CurXpKRBGRjQlHCvy5Ib/iW8nZJWwrET3mgd6mEhfP4KCuaLjopWs7h+MdXFdIv8dHQJgg1xi1eYqB0uDYjxwVmri0Sv5XKut/onqapC+FQiC2C1lvYJ9MVco6yDYsS3AANUfMtvtbYI2hfwZatiSsnoUeMZd34GVjkMMKA+XnjJpXgRW2SHTZplVowPmJsvXy6w3cfO1AK2dvtZEKTkC/TY9LFiKHCG0DnrMQdGm2lzlBHM9iEYynH2UcVMhUEjsc0oDBTgo2ZSQ1gzkAHeWeBXYFjYLuuf8yzTCy7/RFR81WDjXMbq2BOH5dURnxo6oivmxL3cKzKInlZkD31nvpHB9Kk7GfcfE1t+1V64b9LtgeJGlpRFxQCAqWJ5DoY77ski8gsOEOr2uywZaoO/NGa0X0y1pNQHBi3b2SUGNpcZxDT7rLbBf1FSnQ8guxGW3W+36BW0gBje4DOz6Ba6SVk0xiKgt+q2JOFyr4SYfnu+Ic1QZYIuwHBrgzr6UvOcSCzPTOo7D6IC4ISeS7zkl4h+2VoeHpnG/uWR3+ysNgPcOIXQbv0n4mr3BwQcdKJxgPSeyuP/z1Jjg4e9nUvoXegqQVIE30EHx5GHv+FAVUNTowYDJgyFhf5IvlYmEqRif6+WN1MkEJmDcQITx9FX23a4mxy1AQRsOHO/+eImX9l8EMJI3oPWzVXxSOeHU1dUWYr2uAA7AMb+vAEZSbU3qob9ibCyXeypEMpZ6863o6QPqlqGHZkuWABSTVNd4cOh9hv3qEpSx2Zy/DJMP6cItEmiBJ5PFqQnDEIt3NrA3COlOSgz43D7gpNFNJ5MBh4oFzhDPiglC2ypsNU4ISywY2erkyb1NC3Qh/IfWj0eDgZI4/ln8WPfBsT3meTjq1Uqt1E7Zl/qftqkx6aM9KueMCekSnMrcHj1CqTWWzEzPsZGcDe3Ue4Ws+XFYVxNbOFF8ezkvQGR6ZOtOLU2lQEnMBStx47vE6Pb7AYMBRj2OOfZXfisjJnpTfSNjo6sZ6qSvNxZNmDeS7Gk3yYyCk1HtKN2UnhMIjOXUzAqDv90lx9O/q/AT1ZMnit5XQe9wmQxnE/WSH0CqZ9/2Hy+Sfmpeg8RwsHI5Z8kC8H293m/LHVVM/BA7HaTJYg5Enk7M/xWpq0192ACfBai2LA/qrCjCr6Dh1BIMzMXINBmX96MJ5Hn2nxln/RXPFhwHxUmSV0EV2V0jm86/dxxuYSU1W7sVkEbN9EzkG0QFwPhyHKyb3t+Fj5WoUUTErcazE/N6EW6Lvp0d//SDPj7EV9UdJN+Amnf3Wwk3A0SlJ9Z00yvXZ7n3z70G47Hfsow8Wq1JXcfwnA+Yxa5mFsgV464KKP4T31wqIgzFPd3eCe3j5ory5fBF2hgCFyVFrLzI9eetNXvM7oQqyFgDo4CTp/hDV9NMX9JDHQ/nyHTLvZLNLF6ftn2OxjGm8+PqOwhxnPHWipkE/8wbtyri80Sr7pMNkQGMfo4ZYK9OcCC4ESVFFbLMIvlxSoRqWie0wxqnLfcLSXMSpMMQEJYDVObYsXIQNv4TGNwjq1kvT1UOkicTrG3IaBZ3XdScS3u8sgeZPVpOLkbiF940FjbCeNRINNvDbd01EPBrTCPpm12m43ze1bBB59Ia6Ovhnur/Nvx3IxwSWol+3H2qfCJR8df6aQf4v6WiONxkK+IqT4pKQrZK/LplgDI/PJZbOep8dtbV7oCr6CgfpWa8NczOkPx81iSHbsNhVSJBOtrLIMrL31LK9TqHqAbAHe0RLmmV806kRLDLNEhUEJfm9u0sxpkL93Zgd6rw+tqBfTMi59xqXHLXSHwSbSBl0EK0+loECOPtrl+/nsaFe197di4yUgoe4jKoAJDXc6DGDjrQOoFDWZJ9HXwt8xDrQP+7aRwWKWI1GF8s8O4KzxWBBcwnl3vnl1Oez3oh6Ea1vjR7/z7DDTrFtqU2W/KAEzAuXDNZ7MY73MF216dzdSbWmUp4lcm7keJfWaMHgut9x5C9mj66Z0lJ+yhsjVvyiWrfk1lzPOTdhG15Y7gQlXtacvI7qv/XNSscDwqkgwHT/gUsD5yB7LdRRvJxQGYINn9hTpodKFVSTPrtGvyQw+HlRFXIkodErAGu9Iy1YpfSPc3jkFh5CX3lPxv7aqjE/JAfTIpEjGb/H7MO0e2vsViSW1qa/Lmi4/n4DEI3g7lYrcanspDfEpKkdV1OjSLOy0BCUqVoECaB55vs06rXl4jqmLsPsFM/7vYJ0vrBhDCm/00A/H81l1uekJ/6Lml3Hb9+NKiLqATJmDpyzfYZFHumEjC662L0Bwkxi7E9U4cQA0XMVDuMYAIeLMPgQaMVOd8fmt5SflFIfuBoszeAw7ow5gXPE2Y/yBc/7jExARUf/BxIHQBF5Sn3i61w4z5xJdCyO1F1X3+3ax+JSvMeZ7S6QSKp1Fp/sjYz6Z+VgCZzibGeEoujryfMulH7Rai5kAft9ebcW50DyJr2uo2z97mTWIu45YsSnNSMrrNUuG1XsYBtD9TDYzQffKB87vWbkM4EbPAFgoBV4GQS+vtFDUqOFAoi1nTtmIOvg38N4hT2Sn8r8clmBCXspBlMBYTnrqFJGBT3wZOzAyJDre9dHH7+x7qaaKDOB4UQALD5ecS0DE4obubQEiuJZ0EpBVpLuYcce8Aa4PYd/V4DLDAJBYKQPCWTcrEaZ5HYbJi11Gd6hjGom1ii18VHYnG28NKpkz2UKVPxlhYSp8uZr367iOmoy7zsxehW9wzcy2zG0a80PBMCRQMb32hnaHeOR8fnNDzZhaNYhkOdDsBUZ3loDMa1YP0uS0cjUP3b/6DBlqmZOeNABDsLl5BI5QJups8uxAuWJdkUB/pO6Zax6tsg7fN5mjjDgMGngO+DPcKqiHIDbFIGudxtPTIyDi9SFMKBDcfdGQRv41q1AqmxgkVfJMnP8w/Bc7N9/TR6C7mGObFqFkIEom8sKi2xYqJLTCHK7cxzaZvqODo22c3wisBCP4HeAgcRbNPAsBkNRhSmD48dHupdBRw4mIvtS5oeF6zeT1KMCyhMnmhpkFAGWnGscoNkwvQ8ZM5lE/vgTHFYL99OuNxdFBxTEDd5v2qLR8y9WkXsWgG6kZNndFG+pO/UAkOCipqIhL3hq7cRSdrCq7YhUsTocEcnaFa6nVkhnSeRYUA1YO0z5itF9Sly3VlxYDw239TJJH6f3EUfYO5lb7bcFcz8Bp7Oo8QmnsUHOz/fagVUBtKEw1iT88j+aKkv8cscKNkMxjYr8344D1kFoZ7/td1W6LCNYN594301tUGRmFjAzeRg5vyoM1F6+bJZ/Q54jN/k8SFd3DxPTYaAUsivsBfgTn7Mx8H2SpPt4GOdYRnEJOH6jHM2p6SgB0gzIRq6fHxGMmSmqaPCmlfwxiuloaVIitLGN8wie2CDWhkzLoCJcODh7KIOAqbHEvXdUxaS4TTTs07Clzj/6GmVs9kiZDerMxEnhUB6QQPlcfqkG9882RqHoLiHGBoHfQuXIsAG8GTAtao2KVwRnvvam8jo1e312GQAKWEa4sUVEAMG4G6ckcONDwRcg1e2D3+ohXgY4UAWF8wHKQMrSnzCgfFpsxh+aHXMGtPQroQasRY4U6UdG0rz1Vjbka0MekOGRZQEvqQFlxseFor8zWFgHek3v29+WqN6gaK5gZOTOMZzpQIC1201LkMCXild3vWXSc5UX9xcFYfbRPzGFa1FDcPfPB/jUEq/FeGt419CI3YmBlVoHsa4KdcwQP5ZSwHHhFJ7/Ph/Rap/4vmG91eDwPP0lDfCDRCLszTqfzM71xpmiKi2HwS4WlqvGNwtvwF5Dqpn6KTq8ax00UMPkxDcZrEEEsIvHiUXXEphdb4GB4FymlPwBz4Gperqq5pW7TQ6/yNRhW8VT5NhuP0udlxo4gILq5ZxAZk8ZGh3g4CqxJlPKY7AQxupfUcVpWT5VItp1+30UqoyP4wWsRo3olRRgkWZZ2ZN6VC3OZFeXB8NbnUrSdikNptD1QiGuKkr8EmSR/AK9Rw+FF3s5uwuPbvHGiPeFOViltMK7AUaOsq9+x9cndk3iJEE5LKZRlWJbKOZweROzmPNVPkjE3K/TyA57Rs68TkZ3MR8akKpm7cFjnjPd/DdkWjgYoKHSr5Wu5ssoBYU4acRs5g2DHxUmdq8VXOXRbunD8QN0LhgkssgahcdoYsNvuXGUK/KXD/7oFb+VGdhqIn02veuM5bLudJOc2Ky0GMaG4W/xWBxIJcL7yliJOXOpx0AkBqUgzlDczmLT4iILXDxxtRR1oZa2JWFgiAb43obrJnG/TZC2KSK2wqOzRZTXavZZFMb1f3bXvVaNaK828w9TO610gk8JNf3gMfETzXXsbcvRGCG9JWQZ6+cDPqc4466Yo2RcKH+PILeKOqtnlbInR3MmBeGG3FH10yzkybuqEC2HSQwpA0An7d9+73BkDUTm30bZmoP/RGbgFN+GrCOfADgqr0WbI1a1okpFms8iHYw9hm0zUvlEMivBRxModrbJJ+9/p3jUdQQ9BCtQdxnOGrT5dzRUmw0593/mbRSdBg0nRvRZM5/E16m7ZHmDEtWhwvfdZCZ8J8M12W0yRMszXamWfQTwIZ4ayYktrnscQuWr8idp3PjT2eF/jmtdhIfcpMnb+IfZY2FebW6UY/AK3jP4u3Tu4zE4qlnQgLFbM19EBIsNf7KhjdbqQ/D6yiDb+NlEi2SKD+ivXVUK8ib0oBo366gXkR8ZxGjpJIDcEgZPa9TcYe0TIbiPl/rPUQDu3XBJ9X/GNq3FAUsKsll57DzaGMrjcT+gctp+9MLYXCq+sqP81eVQ0r9lt+gcQfZbACRbEjvlMskztZG8gbC8Qn9tt26Q7y7nDrbZq/LEz7kR6Jc6pg3N9rVX8Y5MJrGlML9p9lU4jbTkKqCveeZUJjHB03m2KRKR2TytoFkTXOLg7keU1s1lrPMQJpoOKLuAAC+y1HlJucU6ysB5hsXhvSPPLq5J7JtnqHKZ4vYjC4Vy8153QY+6780xDuGARsGbOs1WqzH0QS765rnSKEbbKlkO8oI/VDwUd0is13tKpqILu1mDJFNy/iJAWcvDgjxvusIT+PGz3ST/J9r9Mtfd0jpaGeiLYIqXc7DiHSS8TcjFVksi66PEkxW1z6ujbLLUGNNYnzOWpH8BZGK4bCK7iR+MbIv8ncDAz1u4StN3vTTzewr9IQjk9wxFxn+6N1ddKs0vffJiS08N3a4G1SVrlZ97Q/M+8G9fe5AP6d9/Qq4WRnORVhofPIKEdCr3llspUfE0oKIIYoByBRPh+bX1HLS3JWGJRhIvE1aW4NTd8ePi4Z+kXb+Z8snYfSNcqijhAgVsx4RCM54cXUiYkjeBmmC4ajOHrChoELscJJC7+9jjMjw5BagZKlgRMiSNYz7h7vvZIoQqbtQmspc0cUk1G/73iXtSpROl5wtLgQi0mW2Ex8i3WULhcggx6E1LMVHUsdc9GHI1PH3U2Ko0PyGdn9KdVOLm7FPBui0i9a0HpA60MsewVE4z8CAt5d401Gv6zXlIT5Ybit1VIA0FCs7wtvYreru1fUyW3oLAZ/+aTnZrOcYRNVA8spoRtlRoWflsRClFcgzkqiHOrf0/SVw+EpVaFlJ0g4Kxq1MMOmiQdpMNpte8lMMQqm6cIFXlnGbfJllysKDi+0JJMotkqgIxOSQgU9dn/lWkeVf8nUm3iwX2Nl3WDw9i6AUK3vBAbZZrcJpDQ/N64AVwjT07Jef30GSSmtNu2WlW7YoyW2FlWfZFQUwk867EdLYKk9VG6JgEnBiBxkY7LMo4YLQJJlAo9l/oTvJkSARDF/XtyAzM8O2t3eT/iXa6wDN3WewNmQHdPfsxChU/KtLG2Mn8i4ZqKdSlIaBZadxJmRzVS/o4yA65RTSViq60oa395Lqw0pzY4SipwE0SXXsKV+GZraGSkr/RW08wPRvqvSUkYBMA9lPx4m24az+IHmCbXA+0faxTRE9wuGeO06DIXa6QlKJ3puIyiuAVfPr736vzo2pBirS+Vxel3TMm3JKhz9o2ZoRvaFVpIkykb0Hcm4oHFBMcNSNj7/4GJt43ogonY2Vg4nsDQIWxAcorpXACzgBqQPjYsE/VUpXpwNManEru4NwMCFPkXvMoqvoeLN3qyu/N1eWEHttMD65v19l/0kH2mR35iv/FI+yjoHJ9gPMz67af3Mq/BoWXqu3rphiWMXVkmnPSEkpGpUI2h1MThideGFEOK6YZHPwYzMBvpNC7+ZHxPb7epfefGyIB4JzO9DTNEYnDLVVHdQyvOEVefrk6Uv5kTQYVYWWdqrdcIl7yljwwIWdfQ/y+2QB3eR/qxYObuYyB4gTbo2in4PzarU1sO9nETkmj9/AoxDA+JM3GMqQtJR4jtduHtnoCLxd1gQUscHRB/MoRYIEsP2pDZ9KvHgtlk1iTbWWbHhohwFEYX7y51fUV2nuUmnoUcqnWIQAAgl9LTVX+Bc0QGNEhChxHR4YjfE51PUdGfsSFE6ck7BL3/hTf9jLq4G1IafINxOLKeAtO7quulYvH5YOBc+zX7CrMgWnW47/jfRsWnJjYYoE7xMfWV2HN2iyIqLI";const FS=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]),$S=4;function _H(n){let t=0;function e(){return n[t++]<<8|n[t++]}let r=e(),i=1,s=[0,1];for(let W=1;W<r;W++)s.push(i+=e());let o=e(),c=t;t+=o;let u=0,f=0;function h(){return u==0&&(f=f<<8|n[t++],u=8),f>>--u&1}const y=31,A=2**y,b=A>>>1,R=b>>1,k=A-1;let S=0;for(let W=0;W<y;W++)S=S<<1|h();let B=[],H=0,U=A;for(;;){let W=Math.floor(((S-H+1)*i-1)/U),J=0,j=r;for(;j-J>1;){let ut=J+j>>>1;W<s[ut]?j=ut:J=ut}if(J==0)break;B.push(J);let Y=H+Math.floor(U*s[J]/i),it=H+Math.floor(U*s[J+1]/i)-1;for(;!((Y^it)&b);)S=S<<1&k|h(),Y=Y<<1&k,it=it<<1&k|1;for(;Y&~it&R;)S=S&b|S<<1&k>>>1|h(),Y=Y<<1^b,it=(it^b)<<1|b|1;H=Y,U=1+it-Y}let G=r-4;return B.map(W=>{switch(W-G){case 3:return G+65792+(n[c++]<<16|n[c++]<<8|n[c++]);case 2:return G+256+(n[c++]<<8|n[c++]);case 1:return G+n[c++];default:return W-1}})}function AH(n){let t=0;return()=>n[t++]}function HS(n){return AH(_H(EH(n)))}function EH(n){let t=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"].forEach((i,s)=>t[i.charCodeAt(0)]=s);let e=n.length,r=new Uint8Array(6*e>>3);for(let i=0,s=0,o=0,c=0;i<e;i++)c=c<<6|t[n.charCodeAt(i)],o+=6,o>=8&&(r[s++]=c>>(o-=8));return r}function vH(n){return n&1?~n>>1:n>>1}function xH(n,t){let e=Array(n);for(let r=0,i=0;r<n;r++)e[r]=i+=vH(t());return e}function eh(n,t=0){let e=[];for(;;){let r=n(),i=n();if(!i)break;t+=r;for(let s=0;s<i;s++)e.push(t+s);t+=i+1}return e}function zS(n){return nh(()=>{let t=eh(n);if(t.length)return t})}function GS(n){let t=[];for(;;){let e=n();if(e==0)break;t.push(RH(e,n))}for(;;){let e=n()-1;if(e<0)break;t.push(SH(e,n))}return t.flat()}function nh(n){let t=[];for(;;){let e=n(t.length);if(!e)break;t.push(e)}return t}function VS(n,t,e){let r=Array(n).fill().map(()=>[]);for(let i=0;i<t;i++)xH(n,e).forEach((s,o)=>r[o].push(s));return r}function RH(n,t){let e=1+t(),r=t(),i=nh(t);return VS(i.length,1+n,t).flatMap((o,c)=>{let[u,...f]=o;return Array(i[c]).fill().map((h,y)=>{let A=y*r;return[u+y*e,f.map(b=>b+A)]})})}function SH(n,t){let e=1+t();return VS(e,1+n,t).map(i=>[i[0],i.slice(1)])}function IH(n){let t=[],e=eh(n);return i(r([]),[]),t;function r(s){let o=n(),c=nh(()=>{let u=eh(n).map(f=>e[f]);if(u.length)return r(u)});return{S:o,B:c,Q:s}}function i({S:s,B:o},c,u){if(!(s&4&&u===c[c.length-1])){s&2&&(u=c[c.length-1]),s&1&&t.push(c);for(let f of o)for(let h of f.Q)i(f,[...c,h],u)}}}function kH(n){return n.toString(16).toUpperCase().padStart(2,"0")}function KS(n){return`{${kH(n)}}`}function TH(n){let t=[];for(let e=0,r=n.length;e<r;){let i=n.codePointAt(e);e+=i<65536?1:2,t.push(i)}return t}function Bu(n){let e=n.length;if(e<4096)return String.fromCodePoint(...n);let r=[];for(let i=0;i<e;)r.push(String.fromCodePoint(...n.slice(i,i+=4096)));return r.join("")}function OH(n,t){let e=n.length,r=e-t.length;for(let i=0;r==0&&i<e;i++)r=n[i]-t[i];return r}var NH="AEUDTAHBCFQATQDRADAAcgAgADQAFAAsABQAHwAOACQADQARAAoAFwAHABIACAAPAAUACwAFAAwABAAQAAMABwAEAAoABQAIAAIACgABAAQAFAALAAIACwABAAIAAQAHAAMAAwAEAAsADAAMAAwACgANAA0AAwAKAAkABAAdAAYAZwDSAdsDJgC0CkMB8xhZAqfoC190UGcThgBurwf7PT09Pb09AjgJum8OjDllxHYUKXAPxzq6tABAxgK8ysUvWAgMPT09PT09PSs6LT2HcgWXWwFLoSMEEEl5RFVMKvO0XQ8ExDdJMnIgsj26PTQyy8FfEQ8AY8IPAGcEbwRwBHEEcgRzBHQEdQR2BHcEeAR6BHsEfAR+BIAEgfndBQoBYgULAWIFDAFiBNcE2ATZBRAFEQUvBdALFAsVDPcNBw13DYcOMA4xDjMB4BllHI0B2grbAMDpHLkQ7QHVAPRNQQFnGRUEg0yEB2uaJF8AJpIBpob5AERSMAKNoAXqaQLUBMCzEiACnwRZEkkVsS7tANAsBG0RuAQLEPABv9HICTUBXigPZwRBApMDOwAamhtaABqEAY8KvKx3LQ4ArAB8UhwEBAVSagD8AEFZADkBIadVj2UMUgx5Il4ANQC9AxIB1BlbEPMAs30CGxlXAhwZKQIECBc6EbsCoxngzv7UzRQA8M0BawL6ZwkN7wABAD33OQRcsgLJCjMCjqUChtw/km+NAsXPAoP2BT84PwURAK0RAvptb6cApQS/OMMey5HJS84UdxpxTPkCogVFITaTOwERAK5pAvkNBOVyA7q3BKlOJSALAgUIBRcEdASpBXqzABXFSWZOawLCOqw//AolCZdvv3dSBkEQGyelEPcMMwG1ATsN7UvYBPEGOwTJH30ZGQ/NlZwIpS3dDO0m4y6hgFoj9SqDBe1L9DzdC01RaA9ZC2UJ4zpjgU4DIQENIosK3Q05CG0Q8wrJaw3lEUUHOQPVSZoApQcBCxEdNRW1JhBirAsJOXcG+xr2C48mrxMpevwF0xohBk0BKRr/AM8u54WwWjFcHE9fBgMLJSPHFKhQIA0lQLd4SBobBxUlqQKRQ3BKh1E2HpMh9jw9DWYuE1F8B/U8BRlPC4E8nkarRQ4R0j6NPUgiSUwsBDV/LC8niwnPD4UMuXxyAVkJIQmxDHETMREXN8UIOQcZLZckJxUIIUaVYJoE958D8xPRAwsFPwlBBxMDtRwtEy4VKQUNgSTXAvM21S6zAo9WgAEXBcsPJR/fEFBH4A7pCJsCZQODJesALRUhABcimwhDYwBfj9hTBS7LCMdqbCN0A2cU52ERcweRDlcHpxwzFb8c4XDIXguGCCijrwlbAXUJmQFfBOMICTVbjKAgQWdTi1gYmyBhQT9d/AIxDGUVn0S9h3gCiw9rEhsBNQFzBzkNAQJ3Ee0RaxCVCOuGBDW1M/g6JQRPIYMgEQonA09szgsnJvkM+GkBoxJiAww0PXfuZ6tgtiQX/QcZMsVBYCHxC5JPzQycGsEYQlQuGeQHvwPzGvMn6kFXBf8DowMTOk0z7gS9C2kIiwk/AEkOoxcH1xhqCnGM0AExiwG3mQNXkYMCb48GNwcLAGcLhwV55QAdAqcIowAFAM8DVwA5Aq0HnQAZAIVBAT0DJy8BIeUCjwOTCDHLAZUvAfMpBBvDDBUA9zduSgLDsQKAamaiBd1YAo4CSTUBTSUEBU5HUQOvceEA2wBLBhPfRwEVq0rLGuNDAd9vKwDHAPsABTUHBUEBzQHzbQC3AV8LMQmis7UBTekpAIMAFWsB1wKJAN0ANQB/8QFTAE0FWfkF0wJPSQERMRgrV2EBuwMfATMBDQB5BsuNpckHHwRtB9MCEBsV4QLvLge1AQMi3xPNQsUCvd5VoWACZIECYkJbTa9bNyACofcCaJgCZgkCn4Q4GwsCZjsCZiYEbgR/A38TA36SOQY5dxc5gjojIwJsHQIyNjgKAm3HAm2u74ozZ0UrAWcA3gDhAEoFB5gMjQD+C8IADbUCdy8CdqI/AnlLQwJ4uh1c20WuRtcCfD8CesgCfQkCfPAFWQUgSABIfWMkAoFtAoAAAoAFAn+uSVhKWxUXSswC0QEC0MxLJwOITwOH5kTFkTIC8qFdAwMDrkvOTC0lA89NTE2vAos/AorYwRsHHUNnBbcCjjcCjlxAl4ECjtkCjlx4UbRTNQpS1FSFApP7ApMMAOkAHFUeVa9V0AYsGymVhjLheGZFOzkCl58C77JYIagAWSUClo8ClnycAKlZrFoJgU0AOwKWtQKWTlxEXNECmcsCmWRcyl0HGQKcmznCOp0CnBYCn5sCnriKAB0PMSoPAp3xAp6SALU9YTRh7wKe0wKgbgGpAp6fHwKeTqVjyGQnJSsCJ68CJn4CoPsCoEwCot0CocQCpi8Cpc4Cp/8AfQKn8mh8aLEAA0lqHGrRAqzjAqyuAq1nAq0CAlcdAlXcArHh1wMfTmyXArK9DQKy6Bds4G1jbUhfAyXNArZcOz9ukAMpRQK4XgK5RxUCuSp3cDZw4QK9GQK72nCWAzIRAr6IcgIDM3ECvhpzInNPAsPLAsMEc4J0SzVFdOADPKcDPJoDPb8CxXwCxkcCxhCJAshpUQLIRALJTwLJLgJknQLd0nh5YXiueSVL0AMYo2cCAmH0GfOVJHsLXpJeuxECz2sCz2wvS1PS8xOfAMatAs9zASnqA04SfksFAtwnAtuKAtJPA1JcA1NfAQEDVYyAiT8AyxbtYEWCHILTgs6DjQLaxwLZ3oQQhEmnPAOGpQAvA2QOhnFZ+QBVAt9lAt64c3cC4i/tFAHzMCcB9JsB8tKHAuvzAulweQLq+QLq5AD5RwG5Au6JAuuclqqXAwLuPwOF4Jh5cOBxoQLzAwBpA44WmZMC9xMDkW4DkocC95gC+dkC+GaaHJqruzebHgOdgwL++gEbADmfHJ+zAwWNA6ZqA6bZANHFAwZqoYiiBQkDDEkCwAA/AwDhQRdTARHzA2sHl2cFAJMtK7evvdsBiZkUfxEEOQH7KQUhDp0JnwCS/SlXxQL3AZ0AtwW5AG8LbUEuFCaNLgFDAYD8AbUmAHUDDgRtACwCFgyhAAAKAj0CagPdA34EkQEgRQUhfAoABQBEABMANhICdwEABdUDa+8KxQIA9wqfJ7+xt+UBkSFBQgHpFH8RNMCJAAQAGwBaAkUChIsABjpTOpSNbQC4Oo860ACNOME63AClAOgAywE6gTo7Ofw5+Tt2iTpbO56JOm85GAFWATMBbAUvNV01njWtNWY1dTW2NcU1gjWRNdI14TWeNa017jX9NbI1wTYCNhE1xjXVNhY2JzXeNe02LjY9Ni41LSE2OjY9Njw2yTcIBJA8VzY4Nt03IDcPNsogN4k3MAoEsDxnNiQ3GTdsOo03IULUQwdC4EMLHA8PCZsobShRVQYA6X8A6bABFCnXAukBowC9BbcAbwNzBL8MDAMMAQgDAAkKCwsLCQoGBAVVBI/DvwDz9b29kaUCb0QtsRTNLt4eGBcSHAMZFhYZEhYEARAEBUEcQRxBHEEcQRxBHEEaQRxBHEFCSTxBPElISUhBNkM2QTYbNklISVmBVIgBFLWZAu0BhQCjBcEAbykBvwGJAaQcEZ0ePCklMAAhMvAIMAL54gC7Bm8EescjzQMpARQpKgDUABavAj626xQAJP0A3etzuf4NNRA7efy2Z9NQrCnC0OSyANz5BBIbJ5IFDR6miIavYS6tprjjmuKebxm5C74Q225X1pkaYYPb6f1DK4k3xMEBb9S2WMjEibTNWhsRJIA+vwNVEiXTE5iXs/wezV66oFLfp9NZGYW+Gk19J2+bCT6Ye2w6LDYdgzKMUabk595eLBCXANz9HUpWbATq9vqXVx9XDg+Pc9Xp4+bsS005SVM/BJBM4687WUuf+Uj9dEi8aDNaPxtpbDxcG1THTImUMZq4UCaaNYpsVqraNyKLJXDYsFZ/5jl7bLRtO88t7P3xZaAxhb5OdPMXqsSkp1WCieG8jXm1U99+blvLlXzPCS+M93VnJCiK+09LfaSaBAVBomyDgJua8dfUzR7ga34IvR2Nvj+A9heJ6lsl1KG4NkI1032Cnff1m1wof2B9oHJK4bi6JkEdSqeNeiuo6QoZZincoc73/TH9SXF8sCE7XyuYyW8WSgbGFCjPV0ihLKhdPs08Tx82fYAkLLc4I2wdl4apY7GU5lHRFzRWJep7Ww3wbeA3qmd59/86P4xuNaqDpygXt6M85glSBHOCGgJDnt+pN9bK7HApMguX6+06RZNjzVmcZJ+wcUrJ9//bpRNxNuKpNl9uFds+S9tdx7LaM5ZkIrPj6nIU9mnbFtVbs9s/uLgl8MVczAwet+iOEzzBlYW7RCMgE6gyNLeq6+1tIx4dpgZnd0DksJS5f+JNDpwwcPNXaaVspq1fbQajOrJgK0ofKtJ1Ne90L6VO4MOl5S886p7u6xo7OLjG8TGL+HU1JXGJgppg4nNbNJ5nlzSpuPYy21JUEcUA94PoFiZfjZue+QnyQ80ekOuZVkxx4g+cvhJfHgNl4hy1/a6+RKcKlar/J29y//EztlbVPHVUeQ1zX86eQVAjR/M3dA9w4W8LfaXp4EgM85wOWasli837PzVMOnsLzR+k3o75/lRPAJSE1xAKQzEi5v10ke+VBvRt1cwQRMd+U5mLCTGVd6XiZtgBG5cDi0w22GKcVNvHiu5LQbZEDVtz0onn7k5+heuKXVsZtSzilkLRAUmjMXEMB3J9YC50XBxPiz53SC+EhnPl9WsKCv92SM/OFFIMJZYfl0WW8tIO3UxYcwdMAj7FSmgrsZ2aAZO03BOhP1bNNZItyXYQFTpC3SG1VuPDqH9GkiCDmE+JwxyIVSO5siDErAOpEXFgjy6PQtOVDj+s6e1r8heWVvmZnTciuf4EiNZzCAd7SOMhXERIOlsHIMG399i9aLTy3m2hRLZjJVDNLS53iGIK11dPqQt0zBDyg6qc7YqkDm2M5Ve6dCWCaCbTXX2rToaIgz6+zh4lYUi/+6nqcFMAkQJKHYLK0wYk5N9szV6xihDbDDFr45lN1K4aCXBq/FitPSud9gLt5ZVn+ZqGX7cwm2z5EGMgfFpIFyhGGuDPmso6TItTMwny+7uPnLCf4W6goFQFV0oQSsc9VfMmVLcLr6ZetDZbaSFTLqnSO/bIPjA3/zAUoqgGFAEQS4IhuMzEp2I3jJzbzkk/IEmyax+rhZTwd6f+CGtwPixu8IvzACquPWPREu9ZvGkUzpRwvRRuaNN6cr0W1wWits9ICdYJ7ltbgMiSL3sTPeufgNcVqMVWFkCPDH4jG2jA0XcVgQj62Cb29v9f/z/+2KbYvIv/zzjpQAPkliaVDzNrW57TZ/ZOyZD0nlfMmAIBIAGAI0D3k/mdN4xr9v85ZbZbbqfH2jGd5hUqNZWwl5SPfoGmfElmazUIeNL1j/mkF7VNAzTq4jNt8JoQ11NQOcmhprXoxSxfRGJ9LDEOAQ+dmxAQH90iti9e2u/MoeuaGcDTHoC+xsmEeWmxEKefQuIzHbpw5Tc5cEocboAD09oipWQhtTO1wivf/O+DRe2rpl/E9wlrzBorjJsOeG1B/XPW4EaJEFdNlECEZga5ZoGRHXgYouGRuVkm8tDESiEyFNo+3s5M5puSdTyUL2llnINVHEt91XUNW4ewdMgJ4boJfEyt/iY5WXqbA+A2Fkt5Z0lutiWhe9nZIyIUjyXDC3UsaG1t+eNx6z4W/OYoTB7A6x+dNSTOi9AInctbESqm5gvOLww7OWXPrmHwVZasrl4eD113pm+JtT7JVOvnCXqdzzdTRHgJ0PiGTFYW5Gvt9R9LD6Lzfs0v/TZZHSmyVNq7viIHE6DBK7Qp07Iz55EM8SYtQvZf/obBniTWi5C2/ovHfw4VndkE5XYdjOhCMRjDeOEfXeN/CwfGduiUIfsoFeUxXeQXba7c7972XNv8w+dTjjUM0QeNAReW+J014dKAD/McQYXT7c0GQPIkn3Ll6R7gGjuiQoZD0TEeEqQpKoZ15g/0OPQI17QiSv9AUROa/V/TQN3dvLArec3RrsYlvBm1b8LWzltdugsC50lNKYLEp2a+ZZYqPejULRlOJh5zj/LVMyTDvwKhMxxwuDkxJ1QpoNI0OTWLom4Z71SNzI9TV1iXJrIu9Wcnd+MCaAw8o1jSXd94YU/1gnkrC9BUEOtQvEIQ7g0i6h+KL2JKk8Ydl7HruvgWMSAmNe+LshGhV4qnWHhO9/RIPQzY1tHRj2VqOyNsDpK0cww+56AdDC4gsWwY0XxoucIWIqs/GcwnWqlaT0KPr8mbK5U94/301i1WLt4YINTVvCFBrFZbIbY8eycOdeJ2teD5IfPLCRg7jjcFTwlMFNl9zdh/o3E/hHPwj7BWg0MU09pPrBLbrCgm54A6H+I6v27+jL5gkjWg/iYdks9jbfVP5y/n0dlgWEMlKasl7JvFZd56LfybW1eeaVO0gxTfXZwD8G4SI116yx7UKVRgui6Ya1YpixqXeNLc8IxtAwCU5IhwQgn+NqHnRaDv61CxKhOq4pOX7M6pkA+Pmpd4j1vn6ACUALoLLc4vpXci8VidLxzm7qFBe7s+quuJs6ETYmnpgS3LwSZxPIltgBDXz8M1k/W2ySNv2f9/NPhxLGK2D21dkHeSGmenRT3Yqcdl0m/h3OYr8V+lXNYGf8aCCpd4bWjE4QIPj7vUKN4Nrfs7ML6Y2OyS830JCnofg/k7lpFpt4SqZc5HGg1HCOrHvOdC8bP6FGDbE/VV0mX4IakzbdS/op+Kt3G24/8QbBV7y86sGSQ/vZzU8FXs7u6jIvwchsEP2BpIhW3G8uWNwa3HmjfH/ZjhhCWvluAcF+nMf14ClKg5hGgtPLJ98ueNAkc5Hs2WZlk2QHvfreCK1CCGO6nMZVSb99VM/ajr8WHTte9JSmkXq/i/U943HEbdzW6Re/S88dKgg8pGOLlAeNiqrcLkUR3/aClFpMXcOUP3rmETcWSfMXZE3TUOi8i+fqRnTYLflVx/Vb/6GJ7eIRZUA6k3RYR3iFSK9c4iDdNwJuZL2FKz/IK5VimcNWEqdXjSoxSgmF0UPlDoUlNrPcM7ftmA8Y9gKiqKEHuWN+AZRIwtVSxye2Kf8rM3lhJ5XcBXU9n4v0Oy1RU2M+4qM8AQPVwse8ErNSob5oFPWxuqZnVzo1qB/IBxkM3EVUKFUUlO3e51259GgNcJbCmlvrdjtoTW7rChm1wyCKzpCTwozUUEOIcWLneRLgMXh+SjGSFkAllzbGS5HK7LlfCMRNRDSvbQPjcXaenNYxCvu2Qyznz6StuxVj66SgI0T8B6/sfHAJYZaZ78thjOSIFumNWLQbeZixDCCC+v0YBtkxiBB3jefHqZ/dFHU+crbj6OvS1x/JDD7vlm7zOVPwpUC01nhxZuY/63E7g";const rh=44032,q0=4352,Q0=4449,Y0=4519,jS=19,WS=21,Pu=28,J0=WS*Pu,CH=jS*J0,BH=rh+CH,PH=q0+jS,MH=Q0+WS,LH=Y0+Pu;function ih(n){return n>>24&255}function ZS(n){return n&16777215}let Xm,qS,tw,X0;function UH(){let n=HS(NH);Xm=new Map(zS(n).flatMap((t,e)=>t.map(r=>[r,e+1<<24]))),qS=new Set(eh(n)),tw=new Map,X0=new Map;for(let[t,e]of GS(n)){if(!qS.has(t)&&e.length==2){let[r,i]=e,s=X0.get(r);s||(s=new Map,X0.set(r,s)),s.set(i,t)}tw.set(t,e.reverse())}}function QS(n){return n>=rh&&n<BH}function DH(n,t){if(n>=q0&&n<PH&&t>=Q0&&t<MH)return rh+(n-q0)*J0+(t-Q0)*Pu;if(QS(n)&&t>Y0&&t<LH&&(n-rh)%Pu==0)return n+(t-Y0);{let e=X0.get(n);return e&&(e=e.get(t),e)?e:-1}}function YS(n){Xm||UH();let t=[],e=[],r=!1;function i(s){let o=Xm.get(s);o&&(r=!0,s|=o),t.push(s)}for(let s of n)for(;;){if(s<128)t.push(s);else if(QS(s)){let o=s-rh,c=o/J0|0,u=o%J0/Pu|0,f=o%Pu;i(q0+c),i(Q0+u),f>0&&i(Y0+f)}else{let o=tw.get(s);o?e.push(...o):i(s)}if(!e.length)break;s=e.pop()}if(r&&t.length>1){let s=ih(t[0]);for(let o=1;o<t.length;o++){let c=ih(t[o]);if(c==0||s<=c){s=c;continue}let u=o-1;for(;;){let f=t[u+1];if(t[u+1]=t[u],t[u]=f,!u||(s=ih(t[--u]),s<=c))break}s=ih(t[o])}}return t}function FH(n){let t=[],e=[],r=-1,i=0;for(let s of n){let o=ih(s),c=ZS(s);if(r==-1)o==0?r=c:t.push(c);else if(i>0&&i>=o)o==0?(t.push(r,...e),e.length=0,r=c):e.push(c),i=o;else{let u=DH(r,c);u>=0?r=u:i==0&&o==0?(t.push(r),r=c):(e.push(c),i=o)}}return r>=0&&t.push(r,...e),t}function JS(n){return YS(n).map(ZS)}function $H(n){return FH(YS(n))}const XS=45,tI=".",eI=65039,nI=1,tp=n=>Array.from(n);function sh(n,t){return n.P.has(t)||n.Q.has(t)}class HH extends Array{get is_emoji(){return!0}}let ew,rI,Ga,nw,iI,Mu,rw,Lu,Va,sI,iw;function sw(){if(ew)return;let n=HS(bH);const t=()=>eh(n),e=()=>new Set(t()),r=(h,y)=>y.forEach(A=>h.add(A));ew=new Map(GS(n)),rI=e(),Ga=t(),nw=new Set(t().map(h=>Ga[h])),Ga=new Set(Ga),iI=e(),e();let i=zS(n),s=n();const o=()=>{let h=new Set;return t().forEach(y=>r(h,i[y])),r(h,t()),h};Mu=nh(h=>{let y=nh(n).map(A=>A+96);if(y.length){let A=h>=s;y[0]-=32,y=Bu(y),A&&(y=`Restricted[${y}]`);let b=o(),R=o(),k=!n();return{N:y,P:b,Q:R,M:k,R:A}}}),rw=e(),Lu=new Map;let c=t().concat(tp(rw)).sort((h,y)=>h-y);c.forEach((h,y)=>{let A=n(),b=c[y]=A?c[y-A]:{V:[],M:new Map};b.V.push(h),rw.has(h)||Lu.set(h,b)});for(let{V:h,M:y}of new Set(Lu.values())){let A=[];for(let R of h){let k=Mu.filter(B=>sh(B,R)),S=A.find(({G:B})=>k.some(H=>B.has(H)));S||(S={G:new Set,V:[]},A.push(S)),S.V.push(R),r(S.G,k)}let b=A.flatMap(R=>tp(R.G));for(let{G:R,V:k}of A){let S=new Set(b.filter(B=>!R.has(B)));for(let B of k)y.set(B,S)}}Va=new Set;let u=new Set;const f=h=>Va.has(h)?u.add(h):Va.add(h);for(let h of Mu){for(let y of h.P)f(y);for(let y of h.Q)f(y)}for(let h of Va)!Lu.has(h)&&!u.has(h)&&Lu.set(h,nI);r(Va,JS(Va)),sI=IH(n).map(h=>HH.from(h)).sort(OH),iw=new Map;for(let h of sI){let y=[iw];for(let A of h){let b=y.map(R=>{let k=R.get(A);return k||(k=new Map,R.set(A,k)),k});A===eI?y.push(...b):y=b}for(let A of y)A.V=h}}function ow(n){return(oI(n)?"":`${aw(ep([n]))} `)+KS(n)}function aw(n){return`"${n}"`}function zH(n){if(n.length>=4&&n[2]==XS&&n[3]==XS)throw new Error(`invalid label extension: "${Bu(n.slice(0,4))}"`)}function GH(n){for(let e=n.lastIndexOf(95);e>0;)if(n[--e]!==95)throw new Error("underscore allowed only at start")}function VH(n){let t=n[0],e=FS.get(t);if(e)throw oh(`leading ${e}`);let r=n.length,i=-1;for(let s=1;s<r;s++){t=n[s];let o=FS.get(t);if(o){if(i==s)throw oh(`${e} + ${o}`);i=s+1,e=o}}if(i==r)throw oh(`trailing ${e}`)}function ep(n,t=1/0,e=KS){let r=[];KH(n[0])&&r.push("◌"),n.length>t&&(t>>=1,n=[...n.slice(0,t),8230,...n.slice(-t)]);let i=0,s=n.length;for(let o=0;o<s;o++){let c=n[o];oI(c)&&(r.push(Bu(n.slice(i,o))),r.push(e(c)),i=o+1)}return r.push(Bu(n.slice(i,s))),r.join("")}function KH(n){return sw(),Ga.has(n)}function oI(n){return sw(),iI.has(n)}function jH(n){return QH(WH(n,$H,XH))}function WH(n,t,e){if(!n)return[];sw();let r=0;return n.split(tI).map(i=>{let s=TH(i),o={input:s,offset:r};r+=s.length+1;try{let c=o.tokens=JH(s,t,e),u=c.length,f;if(!u)throw new Error("empty label");let h=o.output=c.flat();if(GH(h),!(o.emoji=u>1||c[0].is_emoji)&&h.every(A=>A<128))zH(h),f="ASCII";else{let A=c.flatMap(b=>b.is_emoji?[]:b);if(!A.length)f="Emoji";else{if(Ga.has(h[0]))throw oh("leading combining mark");for(let k=1;k<u;k++){let S=c[k];if(!S.is_emoji&&Ga.has(S[0]))throw oh(`emoji + combining mark: "${Bu(c[k-1])} + ${ep([S[0]])}"`)}VH(h);let b=tp(new Set(A)),[R]=qH(b);YH(R,A),ZH(R,b),f=R.N}}o.type=f}catch(c){o.error=c}return o})}function ZH(n,t){let e,r=[];for(let i of t){let s=Lu.get(i);if(s===nI)return;if(s){let o=s.M.get(i);if(e=e?e.filter(c=>o.has(c)):tp(o),!e.length)return}else r.push(i)}if(e){for(let i of e)if(r.every(s=>sh(i,s)))throw new Error(`whole-script confusable: ${n.N}/${i.N}`)}}function qH(n){let t=Mu;for(let e of n){let r=t.filter(i=>sh(i,e));if(!r.length)throw Mu.some(i=>sh(i,e))?cI(t[0],e):aI(e);if(t=r,r.length==1)break}return t}function QH(n){return n.map(({input:t,error:e,output:r})=>{if(e){let i=e.message;throw new Error(n.length==1?i:`Invalid label ${aw(ep(t,63))}: ${i}`)}return Bu(r)}).join(tI)}function aI(n){return new Error(`disallowed character: ${ow(n)}`)}function cI(n,t){let e=ow(t),r=Mu.find(i=>i.P.has(t));return r&&(e=`${r.N} ${e}`),new Error(`illegal mixture: ${n.N} + ${e}`)}function oh(n){return new Error(`illegal placement: ${n}`)}function YH(n,t){for(let e of t)if(!sh(n,e))throw cI(n,e);if(n.M){let e=JS(t);for(let r=1,i=e.length;r<i;r++)if(nw.has(e[r])){let s=r+1;for(let o;s<i&&nw.has(o=e[s]);s++)for(let c=r;c<s;c++)if(e[c]==o)throw new Error(`duplicate non-spacing marks: ${ow(o)}`);if(s-r>$S)throw new Error(`excessive non-spacing marks: ${aw(ep(e.slice(r-1,s)))} (${s-r}/${$S})`);r=s}}}function JH(n,t,e){let r=[],i=[];for(n=n.slice().reverse();n.length;){let s=tz(n);if(s)i.length&&(r.push(t(i)),i=[]),r.push(e(s));else{let o=n.pop();if(Va.has(o))i.push(o);else{let c=ew.get(o);if(c)i.push(...c);else if(!rI.has(o))throw aI(o)}}}return i.length&&r.push(t(i)),r}function XH(n){return n.filter(t=>t!=eI)}function tz(n,t){let e=iw,r,i=n.length;for(;i&&(e=e.get(n[--i]),!!e);){let{V:s}=e;s&&(r=s,n.length=i)}return r}const uI=new Uint8Array(32);uI.fill(0);function lI(n){return K(n.length!==0,"invalid ENS name; empty component","comp",n),n}function fI(n){const t=Os(ez(n)),e=[];if(n.length===0)return e;let r=0;for(let i=0;i<t.length;i++)t[i]===46&&(e.push(lI(t.slice(r,i))),r=i+1);return K(r<t.length,"invalid ENS name; empty component","name",n),e.push(lI(t.slice(r))),e}function ez(n){try{if(n.length===0)throw new Error("empty label");return jH(n)}catch(t){K(!1,`invalid ENS name (${t.message})`,"name",n)}}function cw(n){K(typeof n=="string","invalid ENS name; not a string","name",n),K(n.length,"invalid ENS name (empty label)","name",n);let t=uI;const e=fI(n);for(;e.length;)t=On(vn([t,On(e.pop())]));return Tt(t)}function nz(n,t){const e=t;return K(e<=255,"DNS encoded label cannot exceed 255","length",e),Tt(vn(fI(n).map(r=>{K(r.length<=e,`label ${JSON.stringify(n)} exceeds ${e} bytes`,"name",n);const i=new Uint8Array(r.length+1);return i.set(r,1),i[0]=i.length-1,i})))+"00"}function uw(n,t){return{address:Me(n),storageKeys:t.map((e,r)=>(K(ze(e,32),"invalid slot",`storageKeys[${r}]`,e),e.toLowerCase()))}}function Ka(n){if(Array.isArray(n))return n.map((e,r)=>Array.isArray(e)?(K(e.length===2,"invalid slot set",`value[${r}]`,e),uw(e[0],e[1])):(K(e!=null&&typeof e=="object","invalid address-slot set","value",n),uw(e.address,e.storageKeys)));K(n!=null&&typeof n=="object","invalid access list","value",n);const t=Object.keys(n).map(e=>{const r=n[e].reduce((i,s)=>(i[s]=!0,i),{});return uw(e,Object.keys(r).sort())});return t.sort((e,r)=>e.address.localeCompare(r.address)),t}function rz(n){let t;return typeof n=="string"?t=th.computePublicKey(n,!1):t=n.publicKey,Me(On("0x"+t.substring(4)).substring(26))}function iz(n,t){return rz(th.recoverPublicKey(n,t))}const Dn=BigInt(0),sz=BigInt(2),oz=BigInt(27),az=BigInt(28),cz=BigInt(35),uz=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),lw=4096*32;function hI(n,t){let e=n.toString(16);for(;e.length<2;)e="0"+e;return e+=ku(t).substring(4),"0x"+e}function np(n){return n==="0x"?null:Me(n)}function fw(n,t){try{return Ka(n)}catch(e){K(!1,e.message,t,n)}}function ah(n,t){return n==="0x"?0:ie(n,t)}function Rn(n,t){if(n==="0x")return Dn;const e=Ct(n,t);return K(e<=uz,"value exceeds uint size",t,e),e}function We(n,t){const e=Ct(n,"value"),r=yr(e);return K(r.length<=32,"value too large",`tx.${t}`,e),r}function hw(n){return Ka(n).map(t=>[t.address,t.storageKeys])}function lz(n,t){K(Array.isArray(n),`invalid ${t}`,"value",n);for(let e=0;e<n.length;e++)K(ze(n[e],32),"invalid ${ param } hash",`value[${e}]`,n[e]);return n}function fz(n){const t=$0(n);K(Array.isArray(t)&&(t.length===9||t.length===6),"invalid field count for legacy transaction","data",n);const e={type:0,nonce:ah(t[0],"nonce"),gasPrice:Rn(t[1],"gasPrice"),gasLimit:Rn(t[2],"gasLimit"),to:np(t[3]),value:Rn(t[4],"value"),data:Tt(t[5]),chainId:Dn};if(t.length===6)return e;const r=Rn(t[6],"v"),i=Rn(t[7],"r"),s=Rn(t[8],"s");if(i===Dn&&s===Dn)e.chainId=r;else{let o=(r-cz)/sz;o<Dn&&(o=Dn),e.chainId=o,K(o!==Dn||r===oz||r===az,"non-canonical legacy v","v",t[6]),e.signature=_i.from({r:La(t[7],32),s:La(t[8],32),v:r})}return e}function hz(n,t){const e=[We(n.nonce,"nonce"),We(n.gasPrice||0,"gasPrice"),We(n.gasLimit,"gasLimit"),n.to||"0x",We(n.value,"value"),n.data];let r=Dn;if(n.chainId!=Dn)r=Ct(n.chainId,"tx.chainId"),K(!t||t.networkV==null||t.legacyChainId===r,"tx.chainId/sig.v mismatch","sig",t);else if(n.signature){const s=n.signature.legacyChainId;s!=null&&(r=s)}if(!t)return r!==Dn&&(e.push(yr(r)),e.push("0x"),e.push("0x")),Ua(e);let i=BigInt(27+t.yParity);return r!==Dn?i=_i.getChainIdV(r,t.v):BigInt(t.v)!==i&&K(!1,"tx.chainId/sig.v mismatch","sig",t),e.push(yr(i)),e.push(yr(t.r)),e.push(yr(t.s)),Ua(e)}function dw(n,t){let e;try{if(e=ah(t[0],"yParity"),e!==0&&e!==1)throw new Error("bad yParity")}catch{K(!1,"invalid yParity","yParity",t[0])}const r=La(t[1],32),i=La(t[2],32),s=_i.from({r,s:i,yParity:e});n.signature=s}function dz(n){const t=$0(we(n).slice(1));K(Array.isArray(t)&&(t.length===9||t.length===12),"invalid field count for transaction type: 2","data",Tt(n));const e={type:2,chainId:Rn(t[0],"chainId"),nonce:ah(t[1],"nonce"),maxPriorityFeePerGas:Rn(t[2],"maxPriorityFeePerGas"),maxFeePerGas:Rn(t[3],"maxFeePerGas"),gasPrice:null,gasLimit:Rn(t[4],"gasLimit"),to:np(t[5]),value:Rn(t[6],"value"),data:Tt(t[7]),accessList:fw(t[8],"accessList")};return t.length===9||dw(e,t.slice(9)),e}function pz(n,t){const e=[We(n.chainId,"chainId"),We(n.nonce,"nonce"),We(n.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),We(n.maxFeePerGas||0,"maxFeePerGas"),We(n.gasLimit,"gasLimit"),n.to||"0x",We(n.value,"value"),n.data,hw(n.accessList||[])];return t&&(e.push(We(t.yParity,"yParity")),e.push(yr(t.r)),e.push(yr(t.s))),vn(["0x02",Ua(e)])}function gz(n){const t=$0(we(n).slice(1));K(Array.isArray(t)&&(t.length===8||t.length===11),"invalid field count for transaction type: 1","data",Tt(n));const e={type:1,chainId:Rn(t[0],"chainId"),nonce:ah(t[1],"nonce"),gasPrice:Rn(t[2],"gasPrice"),gasLimit:Rn(t[3],"gasLimit"),to:np(t[4]),value:Rn(t[5],"value"),data:Tt(t[6]),accessList:fw(t[7],"accessList")};return t.length===8||dw(e,t.slice(8)),e}function yz(n,t){const e=[We(n.chainId,"chainId"),We(n.nonce,"nonce"),We(n.gasPrice||0,"gasPrice"),We(n.gasLimit,"gasLimit"),n.to||"0x",We(n.value,"value"),n.data,hw(n.accessList||[])];return t&&(e.push(We(t.yParity,"recoveryParam")),e.push(yr(t.r)),e.push(yr(t.s))),vn(["0x01",Ua(e)])}function mz(n){let t=$0(we(n).slice(1)),e="3",r=null;if(t.length===4&&Array.isArray(t[0])){e="3 (network format)";const s=t[1],o=t[2],c=t[3];K(Array.isArray(s),"invalid network format: blobs not an array","fields[1]",s),K(Array.isArray(o),"invalid network format: commitments not an array","fields[2]",o),K(Array.isArray(c),"invalid network format: proofs not an array","fields[3]",c),K(s.length===o.length,"invalid network format: blobs/commitments length mismatch","fields",t),K(s.length===c.length,"invalid network format: blobs/proofs length mismatch","fields",t),r=[];for(let u=0;u<t[1].length;u++)r.push({data:s[u],commitment:o[u],proof:c[u]});t=t[0]}K(Array.isArray(t)&&(t.length===11||t.length===14),`invalid field count for transaction type: ${e}`,"data",Tt(n));const i={type:3,chainId:Rn(t[0],"chainId"),nonce:ah(t[1],"nonce"),maxPriorityFeePerGas:Rn(t[2],"maxPriorityFeePerGas"),maxFeePerGas:Rn(t[3],"maxFeePerGas"),gasPrice:null,gasLimit:Rn(t[4],"gasLimit"),to:np(t[5]),value:Rn(t[6],"value"),data:Tt(t[7]),accessList:fw(t[8],"accessList"),maxFeePerBlobGas:Rn(t[9],"maxFeePerBlobGas"),blobVersionedHashes:t[10]};r&&(i.blobs=r),K(i.to!=null,`invalid address for transaction type: ${e}`,"data",n),K(Array.isArray(i.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",n);for(let s=0;s<i.blobVersionedHashes.length;s++)K(ze(i.blobVersionedHashes[s],32),`invalid blobVersionedHash at index ${s}: must be length 32`,"data",n);return t.length===11||dw(i,t.slice(11)),i}function wz(n,t,e){const r=[We(n.chainId,"chainId"),We(n.nonce,"nonce"),We(n.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),We(n.maxFeePerGas||0,"maxFeePerGas"),We(n.gasLimit,"gasLimit"),n.to||Xf,We(n.value,"value"),n.data,hw(n.accessList||[]),We(n.maxFeePerBlobGas||0,"maxFeePerBlobGas"),lz(n.blobVersionedHashes||[],"blobVersionedHashes")];return t&&(r.push(We(t.yParity,"yParity")),r.push(yr(t.r)),r.push(yr(t.s)),e)?vn(["0x03",Ua([r,e.map(i=>i.data),e.map(i=>i.commitment),e.map(i=>i.proof)])]):vn(["0x03",Ua(r)])}const Ks=class Ks{constructor(){nt(this,fl);nt(this,es);nt(this,tl);nt(this,el);nt(this,nl);nt(this,rl);nt(this,il);nt(this,sl);nt(this,ol);nt(this,al);nt(this,cl);nt(this,ul);nt(this,ll);nt(this,lc);nt(this,Uo);nt(this,Vs);nt(this,Do);$(this,es,null),$(this,tl,null),$(this,nl,0),$(this,rl,Dn),$(this,il,null),$(this,sl,null),$(this,ol,null),$(this,el,"0x"),$(this,al,Dn),$(this,cl,Dn),$(this,ul,null),$(this,ll,null),$(this,lc,null),$(this,Uo,null),$(this,Do,null),$(this,Vs,null)}get type(){return T(this,es)}set type(t){switch(t){case null:$(this,es,null);break;case 0:case"legacy":$(this,es,0);break;case 1:case"berlin":case"eip-2930":$(this,es,1);break;case 2:case"london":case"eip-1559":$(this,es,2);break;case 3:case"cancun":case"eip-4844":$(this,es,3);break;default:K(!1,"unsupported transaction type","type",t)}}get typeName(){switch(this.type){case 0:return"legacy";case 1:return"eip-2930";case 2:return"eip-1559";case 3:return"eip-4844"}return null}get to(){const t=T(this,tl);return t==null&&this.type===3?Xf:t}set to(t){$(this,tl,t==null?null:Me(t))}get nonce(){return T(this,nl)}set nonce(t){$(this,nl,ie(t,"value"))}get gasLimit(){return T(this,rl)}set gasLimit(t){$(this,rl,Ct(t))}get gasPrice(){const t=T(this,il);return t==null&&(this.type===0||this.type===1)?Dn:t}set gasPrice(t){$(this,il,t==null?null:Ct(t,"gasPrice"))}get maxPriorityFeePerGas(){const t=T(this,sl);return t??(this.type===2||this.type===3?Dn:null)}set maxPriorityFeePerGas(t){$(this,sl,t==null?null:Ct(t,"maxPriorityFeePerGas"))}get maxFeePerGas(){const t=T(this,ol);return t??(this.type===2||this.type===3?Dn:null)}set maxFeePerGas(t){$(this,ol,t==null?null:Ct(t,"maxFeePerGas"))}get data(){return T(this,el)}set data(t){$(this,el,Tt(t))}get value(){return T(this,al)}set value(t){$(this,al,Ct(t,"value"))}get chainId(){return T(this,cl)}set chainId(t){$(this,cl,Ct(t))}get signature(){return T(this,ul)||null}set signature(t){$(this,ul,t==null?null:_i.from(t))}get accessList(){const t=T(this,ll)||null;return t??(this.type===1||this.type===2||this.type===3?[]:null)}set accessList(t){$(this,ll,t==null?null:Ka(t))}get maxFeePerBlobGas(){const t=T(this,lc);return t==null&&this.type===3?Dn:t}set maxFeePerBlobGas(t){$(this,lc,t==null?null:Ct(t,"maxFeePerBlobGas"))}get blobVersionedHashes(){let t=T(this,Uo);return t==null&&this.type===3?[]:t}set blobVersionedHashes(t){if(t!=null){K(Array.isArray(t),"blobVersionedHashes must be an Array","value",t),t=t.slice();for(let e=0;e<t.length;e++)K(ze(t[e],32),"invalid blobVersionedHash",`value[${e}]`,t[e])}$(this,Uo,t)}get blobs(){return T(this,Do)==null?null:T(this,Do).map(t=>Object.assign({},t))}set blobs(t){if(t==null){$(this,Do,null);return}const e=[],r=[];for(let i=0;i<t.length;i++){const s=t[i];if(Im(s)){ht(T(this,Vs),"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let o=we(s);if(K(o.length<=lw,"blob is too large",`blobs[${i}]`,s),o.length!==lw){const f=new Uint8Array(lw);f.set(o),o=f}const c=T(this,Vs).blobToKzgCommitment(o),u=Tt(T(this,Vs).computeBlobKzgProof(o,c));e.push({data:Tt(o),commitment:Tt(c),proof:u}),r.push(hI(1,c))}else{const o=Tt(s.commitment);e.push({data:Tt(s.data),commitment:o,proof:Tt(s.proof)}),r.push(hI(1,o))}}$(this,Do,e),$(this,Uo,r)}get kzg(){return T(this,Vs)}set kzg(t){$(this,Vs,t)}get hash(){return this.signature==null?null:On(_t(this,fl,Gp).call(this,!0,!1))}get unsignedHash(){return On(this.unsignedSerialized)}get from(){return this.signature==null?null:iz(this.unsignedHash,this.signature)}get fromPublicKey(){return this.signature==null?null:th.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return this.signature!=null}get serialized(){return _t(this,fl,Gp).call(this,!0,!0)}get unsignedSerialized(){return _t(this,fl,Gp).call(this,!1,!1)}inferType(){const t=this.inferTypes();return t.indexOf(2)>=0?2:t.pop()}inferTypes(){const t=this.gasPrice!=null,e=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,r=this.accessList!=null,i=T(this,lc)!=null||T(this,Uo);this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null&&ht(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this}),ht(!e||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),ht(this.type!==0||!r,"legacy transaction cannot have accessList","BAD_DATA",{value:this});const s=[];return this.type!=null?s.push(this.type):e?s.push(2):t?(s.push(1),r||s.push(0)):r?(s.push(1),s.push(2)):(i&&this.to||(s.push(0),s.push(1),s.push(2)),s.push(3)),s.sort(),s}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return Ks.from(this)}toJSON(){const t=e=>e==null?null:e.toString();return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:t(this.gasLimit),gasPrice:t(this.gasPrice),maxPriorityFeePerGas:t(this.maxPriorityFeePerGas),maxFeePerGas:t(this.maxFeePerGas),value:t(this.value),chainId:t(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(t){if(t==null)return new Ks;if(typeof t=="string"){const r=we(t);if(r[0]>=127)return Ks.from(fz(r));switch(r[0]){case 1:return Ks.from(gz(r));case 2:return Ks.from(dz(r));case 3:return Ks.from(mz(r))}ht(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}const e=new Ks;return t.type!=null&&(e.type=t.type),t.to!=null&&(e.to=t.to),t.nonce!=null&&(e.nonce=t.nonce),t.gasLimit!=null&&(e.gasLimit=t.gasLimit),t.gasPrice!=null&&(e.gasPrice=t.gasPrice),t.maxPriorityFeePerGas!=null&&(e.maxPriorityFeePerGas=t.maxPriorityFeePerGas),t.maxFeePerGas!=null&&(e.maxFeePerGas=t.maxFeePerGas),t.maxFeePerBlobGas!=null&&(e.maxFeePerBlobGas=t.maxFeePerBlobGas),t.data!=null&&(e.data=t.data),t.value!=null&&(e.value=t.value),t.chainId!=null&&(e.chainId=t.chainId),t.signature!=null&&(e.signature=_i.from(t.signature)),t.accessList!=null&&(e.accessList=t.accessList),t.blobVersionedHashes!=null&&(e.blobVersionedHashes=t.blobVersionedHashes),t.kzg!=null&&(e.kzg=t.kzg),t.blobs!=null&&(e.blobs=t.blobs),t.hash!=null&&(K(e.isSigned(),"unsigned transaction cannot define '.hash'","tx",t),K(e.hash===t.hash,"hash mismatch","tx",t)),t.from!=null&&(K(e.isSigned(),"unsigned transaction cannot define '.from'","tx",t),K(e.from.toLowerCase()===(t.from||"").toLowerCase(),"from mismatch","tx",t)),e}};es=new WeakMap,tl=new WeakMap,el=new WeakMap,nl=new WeakMap,rl=new WeakMap,il=new WeakMap,sl=new WeakMap,ol=new WeakMap,al=new WeakMap,cl=new WeakMap,ul=new WeakMap,ll=new WeakMap,lc=new WeakMap,Uo=new WeakMap,Vs=new WeakMap,Do=new WeakMap,fl=new WeakSet,Gp=function(t,e){ht(!t||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});const r=t?this.signature:null;switch(this.inferType()){case 0:return hz(this,r);case 1:return yz(this,r);case 2:return pz(this,r);case 3:return wz(this,r,e?this.blobs:null)}ht(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})};let rp=Ks;const dI=new Uint8Array(32);dI.fill(0);const bz=BigInt(-1),pI=BigInt(0),gI=BigInt(1),_z=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function Az(n){const t=we(n),e=t.length%32;return e?vn([t,dI.slice(e)]):Tt(t)}const Ez=So(gI,32),vz=So(pI,32),yI={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},pw=["name","version","chainId","verifyingContract","salt"];function mI(n){return function(t){return K(typeof t=="string",`invalid domain value for ${JSON.stringify(n)}`,`domain.${n}`,t),t}}const xz={name:mI("name"),version:mI("version"),chainId:function(n){const t=Ct(n,"domain.chainId");return K(t>=0,"invalid chain ID","domain.chainId",n),Number.isSafeInteger(t)?Number(t):Ru(t)},verifyingContract:function(n){try{return Me(n).toLowerCase()}catch{}K(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",n)},salt:function(n){const t=we(n,"domain.salt");return K(t.length===32,'invalid domain value "salt"',"domain.salt",n),Tt(t)}};function gw(n){{const t=n.match(/^(u?)int(\d+)$/);if(t){const e=t[1]==="",r=parseInt(t[2]);K(r%8===0&&r!==0&&r<=256&&t[2]===String(r),"invalid numeric width","type",n);const i=Zf(_z,e?r-1:r),s=e?(i+gI)*bz:pI;return function(o){const c=Ct(o,"value");return K(c>=s&&c<=i,`value out-of-bounds for ${n}`,"value",c),So(e?_R(c,256):c,32)}}}{const t=n.match(/^bytes(\d+)$/);if(t){const e=parseInt(t[1]);return K(e!==0&&e<=32&&t[1]===String(e),"invalid bytes width","type",n),function(r){const i=we(r);return K(i.length===e,`invalid length for ${n}`,"value",r),Az(r)}}}switch(n){case"address":return function(t){return La(Me(t),32)};case"bool":return function(t){return t?Ez:vz};case"bytes":return function(t){return On(t)};case"string":return function(t){return za(t)}}return null}function wI(n,t){return`${n}(${t.map(({name:e,type:r})=>r+" "+e).join(",")})`}function ip(n){const t=n.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);return t?{base:t[1],index:t[2]+t[4],array:{base:t[1],prefix:t[1]+t[2],count:t[5]?parseInt(t[5]):-1}}:{base:n}}const ii=class ii{constructor(t){nt(this,Ap);Z(this,"primaryType");nt(this,wh);nt(this,js);nt(this,hl);$(this,js,new Map),$(this,hl,new Map);const e=new Map,r=new Map,i=new Map,s={};Object.keys(t).forEach(u=>{s[u]=t[u].map(({name:f,type:h})=>{let{base:y,index:A}=ip(h);return y==="int"&&!t.int&&(y="int256"),y==="uint"&&!t.uint&&(y="uint256"),{name:f,type:y+(A||"")}}),e.set(u,new Set),r.set(u,[]),i.set(u,new Set)}),$(this,wh,JSON.stringify(s));for(const u in s){const f=new Set;for(const h of s[u]){K(!f.has(h.name),`duplicate variable name ${JSON.stringify(h.name)} in ${JSON.stringify(u)}`,"types",t),f.add(h.name);const y=ip(h.type).base;K(y!==u,`circular type reference to ${JSON.stringify(y)}`,"types",t),!gw(y)&&(K(r.has(y),`unknown type ${JSON.stringify(y)}`,"types",t),r.get(y).push(u),e.get(u).add(y))}}const o=Array.from(r.keys()).filter(u=>r.get(u).length===0);K(o.length!==0,"missing primary type","types",t),K(o.length===1,`ambiguous primary types or unused types: ${o.map(u=>JSON.stringify(u)).join(", ")}`,"types",t),$t(this,{primaryType:o[0]});function c(u,f){K(!f.has(u),`circular type reference to ${JSON.stringify(u)}`,"types",t),f.add(u);for(const h of e.get(u))if(r.has(h)){c(h,f);for(const y of f)i.get(y).add(h)}f.delete(u)}c(this.primaryType,new Set);for(const[u,f]of i){const h=Array.from(f);h.sort(),T(this,js).set(u,wI(u,s[u])+h.map(y=>wI(y,s[y])).join(""))}}get types(){return JSON.parse(T(this,wh))}getEncoder(t){let e=T(this,hl).get(t);return e||(e=_t(this,Ap,NT).call(this,t),T(this,hl).set(t,e)),e}encodeType(t){const e=T(this,js).get(t);return K(e,`unknown type: ${JSON.stringify(t)}`,"name",t),e}encodeData(t,e){return this.getEncoder(t)(e)}hashStruct(t,e){return On(this.encodeData(t,e))}encode(t){return this.encodeData(this.primaryType,t)}hash(t){return this.hashStruct(this.primaryType,t)}_visit(t,e,r){if(gw(t))return r(t,e);const i=ip(t).array;if(i)return K(i.count===-1||i.count===e.length,`array length mismatch; expected length ${i.count}`,"value",e),e.map(o=>this._visit(i.prefix,o,r));const s=this.types[t];if(s)return s.reduce((o,{name:c,type:u})=>(o[c]=this._visit(u,e[c],r),o),{});K(!1,`unknown type: ${t}`,"type",t)}visit(t,e){return this._visit(this.primaryType,t,e)}static from(t){return new ii(t)}static getPrimaryType(t){return ii.from(t).primaryType}static hashStruct(t,e,r){return ii.from(e).hashStruct(t,r)}static hashDomain(t){const e=[];for(const r in t){if(t[r]==null)continue;const i=yI[r];K(i,`invalid typed-data domain key: ${JSON.stringify(r)}`,"domain",t),e.push({name:r,type:i})}return e.sort((r,i)=>pw.indexOf(r.name)-pw.indexOf(i.name)),ii.hashStruct("EIP712Domain",{EIP712Domain:e},t)}static encode(t,e,r){return vn(["0x1901",ii.hashDomain(t),ii.from(e).hash(r)])}static hash(t,e,r){return On(ii.encode(t,e,r))}static async resolveNames(t,e,r,i){t=Object.assign({},t);for(const c in t)t[c]==null&&delete t[c];const s={};t.verifyingContract&&!ze(t.verifyingContract,20)&&(s[t.verifyingContract]="0x");const o=ii.from(e);o.visit(r,(c,u)=>(c==="address"&&!ze(u,20)&&(s[u]="0x"),u));for(const c in s)s[c]=await i(c);return t.verifyingContract&&s[t.verifyingContract]&&(t.verifyingContract=s[t.verifyingContract]),r=o.visit(r,(c,u)=>c==="address"&&s[u]?s[u]:u),{domain:t,value:r}}static getPayload(t,e,r){ii.hashDomain(t);const i={},s=[];pw.forEach(u=>{const f=t[u];f!=null&&(i[u]=xz[u](f),s.push({name:u,type:yI[u]}))});const o=ii.from(e);e=o.types;const c=Object.assign({},e);return K(c.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",e),c.EIP712Domain=s,o.encode(r),{types:c,domain:i,primaryType:o.primaryType,message:o.visit(r,(u,f)=>{if(u.match(/^bytes(\d*)/))return Tt(we(f));if(u.match(/^u?int/))return Ct(f).toString();switch(u){case"address":return f.toLowerCase();case"bool":return!!f;case"string":return K(typeof f=="string","invalid string","value",f),f}K(!1,"unsupported type","type",u)})}}};wh=new WeakMap,js=new WeakMap,hl=new WeakMap,Ap=new WeakSet,NT=function(t){{const i=gw(t);if(i)return i}const e=ip(t).array;if(e){const i=e.prefix,s=this.getEncoder(i);return o=>{K(e.count===-1||e.count===o.length,`array length mismatch; expected length ${e.count}`,"value",o);let c=o.map(s);return T(this,js).has(i)&&(c=c.map(On)),On(vn(c))}}const r=this.types[t];if(r){const i=za(T(this,js).get(t));return s=>{const o=r.map(({name:c,type:u})=>{const f=this.getEncoder(u)(s[c]);return T(this,js).has(u)?On(f):f});return o.unshift(i),vn(o)}}K(!1,`unknown type: ${t}`,"type",t)};let sp=ii;function br(n){const t=new Set;return n.forEach(e=>t.add(e)),Object.freeze(t)}const Rz=br("external public payable override".split(" ")),bI="constant external internal payable private public pure view override",Sz=br(bI.split(" ")),_I="constructor error event fallback function receive struct",AI=br(_I.split(" ")),EI="calldata memory storage payable indexed",Iz=br(EI.split(" ")),kz=[_I,EI,"tuple returns",bI].join(" "),Tz=br(kz.split(" ")),Oz={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},Nz=new RegExp("^(\\s*)"),Cz=new RegExp("^([0-9]+)"),Bz=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),vI=new RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),xI=new RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$"),Ep=class Ep{constructor(t){nt(this,bh);nt(this,Yn);nt(this,Si);$(this,Yn,0),$(this,Si,t.slice())}get offset(){return T(this,Yn)}get length(){return T(this,Si).length-T(this,Yn)}clone(){return new Ep(T(this,Si))}reset(){$(this,Yn,0)}popKeyword(t){const e=this.peek();if(e.type!=="KEYWORD"||!t.has(e.text))throw new Error(`expected keyword ${e.text}`);return this.pop().text}popType(t){if(this.peek().type!==t){const e=this.peek();throw new Error(`expected ${t}; got ${e.type} ${JSON.stringify(e.text)}`)}return this.pop().text}popParen(){const t=this.peek();if(t.type!=="OPEN_PAREN")throw new Error("bad start");const e=_t(this,bh,ab).call(this,T(this,Yn)+1,t.match+1);return $(this,Yn,t.match+1),e}popParams(){const t=this.peek();if(t.type!=="OPEN_PAREN")throw new Error("bad start");const e=[];for(;T(this,Yn)<t.match-1;){const r=this.peek().linkNext;e.push(_t(this,bh,ab).call(this,T(this,Yn)+1,r)),$(this,Yn,r)}return $(this,Yn,t.match+1),e}peek(){if(T(this,Yn)>=T(this,Si).length)throw new Error("out-of-bounds");return T(this,Si)[T(this,Yn)]}peekKeyword(t){const e=this.peekType("KEYWORD");return e!=null&&t.has(e)?e:null}peekType(t){if(this.length===0)return null;const e=this.peek();return e.type===t?e.text:null}pop(){const t=this.peek();return rd(this,Yn)._++,t}toString(){const t=[];for(let e=T(this,Yn);e<T(this,Si).length;e++){const r=T(this,Si)[e];t.push(`${r.type}:${r.text}`)}return`<TokenString ${t.join(" ")}>`}};Yn=new WeakMap,Si=new WeakMap,bh=new WeakSet,ab=function(t=0,e=0){return new Ep(T(this,Si).slice(t,e).map(r=>Object.freeze(Object.assign({},r,{match:r.match-t,linkBack:r.linkBack-t,linkNext:r.linkNext-t}))))};let Ai=Ep;function Bo(n){const t=[],e=o=>{const c=s<n.length?JSON.stringify(n[s]):"$EOI";throw new Error(`invalid token ${c} at ${s}: ${o}`)};let r=[],i=[],s=0;for(;s<n.length;){let o=n.substring(s),c=o.match(Nz);c&&(s+=c[1].length,o=n.substring(s));const u={depth:r.length,linkBack:-1,linkNext:-1,match:-1,type:"",text:"",offset:s,value:-1};t.push(u);let f=Oz[o[0]]||"";if(f){if(u.type=f,u.text=o[0],s++,f==="OPEN_PAREN")r.push(t.length-1),i.push(t.length-1);else if(f=="CLOSE_PAREN")r.length===0&&e("no matching open bracket"),u.match=r.pop(),t[u.match].match=t.length-1,u.depth--,u.linkBack=i.pop(),t[u.linkBack].linkNext=t.length-1;else if(f==="COMMA")u.linkBack=i.pop(),t[u.linkBack].linkNext=t.length-1,i.push(t.length-1);else if(f==="OPEN_BRACKET")u.type="BRACKET";else if(f==="CLOSE_BRACKET"){let h=t.pop().text;if(t.length>0&&t[t.length-1].type==="NUMBER"){const y=t.pop().text;h=y+h,t[t.length-1].value=ie(y)}if(t.length===0||t[t.length-1].type!=="BRACKET")throw new Error("missing opening bracket");t[t.length-1].text+=h}continue}if(c=o.match(Bz),c){if(u.text=c[1],s+=u.text.length,Tz.has(u.text)){u.type="KEYWORD";continue}if(u.text.match(xI)){u.type="TYPE";continue}u.type="ID";continue}if(c=o.match(Cz),c){u.text=c[1],u.type="NUMBER",s+=u.text.length;continue}throw new Error(`unexpected token ${JSON.stringify(o[0])} at position ${s}`)}return new Ai(t.map(o=>Object.freeze(o)))}function RI(n,t){let e=[];for(const r in t.keys())n.has(r)&&e.push(r);if(e.length>1)throw new Error(`conflicting types: ${e.join(", ")}`)}function op(n,t){if(t.peekKeyword(AI)){const e=t.pop().text;if(e!==n)throw new Error(`expected ${n}, got ${e}`)}return t.popType("ID")}function Ms(n,t){const e=new Set;for(;;){const r=n.peekType("KEYWORD");if(r==null||t&&!t.has(r))break;if(n.pop(),e.has(r))throw new Error(`duplicate keywords: ${JSON.stringify(r)}`);e.add(r)}return Object.freeze(e)}function SI(n){let t=Ms(n,Sz);return RI(t,br("constant payable nonpayable".split(" "))),RI(t,br("pure view payable nonpayable".split(" "))),t.has("view")?"view":t.has("pure")?"pure":t.has("payable")?"payable":t.has("nonpayable")?"nonpayable":t.has("constant")?"view":"nonpayable"}function Ls(n,t){return n.popParams().map(e=>qn.from(e,t))}function II(n){if(n.peekType("AT")){if(n.pop(),n.peekType("NUMBER"))return Ct(n.pop().text);throw new Error("invalid gas")}return null}function ja(n){if(n.length)throw new Error(`unexpected tokens at offset ${n.offset}: ${n.toString()}`)}const Pz=new RegExp(/^(.*)\[([0-9]*)\]$/);function kI(n){const t=n.match(xI);if(K(t,"invalid type","type",n),n==="uint")return"uint256";if(n==="int")return"int256";if(t[2]){const e=parseInt(t[2]);K(e!==0&&e<=32,"invalid bytes length","type",n)}else if(t[3]){const e=parseInt(t[3]);K(e!==0&&e<=256&&e%8===0,"invalid numeric width","type",n)}return n}const nn={},Tr=Symbol.for("_ethers_internal"),TI="_ParamTypeInternal",OI="_ErrorInternal",NI="_EventInternal",CI="_ConstructorInternal",BI="_FallbackInternal",PI="_FunctionInternal",MI="_StructInternal",si=class si{constructor(t,e,r,i,s,o,c,u){nt(this,dl);Z(this,"name");Z(this,"type");Z(this,"baseType");Z(this,"indexed");Z(this,"components");Z(this,"arrayLength");Z(this,"arrayChildren");if(P0(t,nn,"ParamType"),Object.defineProperty(this,Tr,{value:TI}),o&&(o=Object.freeze(o.slice())),i==="array"){if(c==null||u==null)throw new Error("")}else if(c!=null||u!=null)throw new Error("");if(i==="tuple"){if(o==null)throw new Error("")}else if(o!=null)throw new Error("");$t(this,{name:e,type:r,baseType:i,indexed:s,components:o,arrayLength:c,arrayChildren:u})}format(t){if(t==null&&(t="sighash"),t==="json"){const r=this.name||"";if(this.isArray()){const s=JSON.parse(this.arrayChildren.format("json"));return s.name=r,s.type+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`,JSON.stringify(s)}const i={type:this.baseType==="tuple"?"tuple":this.type,name:r};return typeof this.indexed=="boolean"&&(i.indexed=this.indexed),this.isTuple()&&(i.components=this.components.map(s=>JSON.parse(s.format(t)))),JSON.stringify(i)}let e="";return this.isArray()?(e+=this.arrayChildren.format(t),e+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`):this.isTuple()?e+="("+this.components.map(r=>r.format(t)).join(t==="full"?", ":",")+")":e+=this.type,t!=="sighash"&&(this.indexed===!0&&(e+=" indexed"),t==="full"&&this.name&&(e+=" "+this.name)),e}isArray(){return this.baseType==="array"}isTuple(){return this.baseType==="tuple"}isIndexable(){return this.indexed!=null}walk(t,e){if(this.isArray()){if(!Array.isArray(t))throw new Error("invalid array value");if(this.arrayLength!==-1&&t.length!==this.arrayLength)throw new Error("array is wrong length");const r=this;return t.map(i=>r.arrayChildren.walk(i,e))}if(this.isTuple()){if(!Array.isArray(t))throw new Error("invalid tuple value");if(t.length!==this.components.length)throw new Error("array is wrong length");const r=this;return t.map((i,s)=>r.components[s].walk(i,e))}return e(this.type,t)}async walkAsync(t,e){const r=[],i=[t];return _t(this,dl,Vp).call(this,r,t,e,s=>{i[0]=s}),r.length&&await Promise.all(r),i[0]}static from(t,e){if(si.isParamType(t))return t;if(typeof t=="string")try{return si.from(Bo(t),e)}catch{K(!1,"invalid param type","obj",t)}else if(t instanceof Ai){let c="",u="",f=null;Ms(t,br(["tuple"])).has("tuple")||t.peekType("OPEN_PAREN")?(u="tuple",f=t.popParams().map(k=>si.from(k)),c=`tuple(${f.map(k=>k.format()).join(",")})`):(c=kI(t.popType("TYPE")),u=c);let h=null,y=null;for(;t.length&&t.peekType("BRACKET");){const k=t.pop();h=new si(nn,"",c,u,null,f,y,h),y=k.value,c+=k.text,u="array",f=null}let A=null;if(Ms(t,Iz).has("indexed")){if(!e)throw new Error("");A=!0}const R=t.peekType("ID")?t.pop().text:"";if(t.length)throw new Error("leftover tokens");return new si(nn,R,c,u,A,f,y,h)}const r=t.name;K(!r||typeof r=="string"&&r.match(vI),"invalid name","obj.name",r);let i=t.indexed;i!=null&&(K(e,"parameter cannot be indexed","obj.indexed",t.indexed),i=!!i);let s=t.type,o=s.match(Pz);if(o){const c=parseInt(o[2]||"-1"),u=si.from({type:o[1],components:t.components});return new si(nn,r||"",s,"array",i,null,c,u)}if(s==="tuple"||s.startsWith("tuple(")||s.startsWith("(")){const c=t.components!=null?t.components.map(f=>si.from(f)):null;return new si(nn,r||"",s,"tuple",i,c,null,null)}return s=kI(t.type),new si(nn,r||"",s,s,i,null,null,null)}static isParamType(t){return t&&t[Tr]===TI}};dl=new WeakSet,Vp=function(t,e,r,i){if(this.isArray()){if(!Array.isArray(e))throw new Error("invalid array value");if(this.arrayLength!==-1&&e.length!==this.arrayLength)throw new Error("array is wrong length");const o=this.arrayChildren,c=e.slice();c.forEach((u,f)=>{var h;_t(h=o,dl,Vp).call(h,t,u,r,y=>{c[f]=y})}),i(c);return}if(this.isTuple()){const o=this.components;let c;if(Array.isArray(e))c=e.slice();else{if(e==null||typeof e!="object")throw new Error("invalid tuple value");c=o.map(u=>{if(!u.name)throw new Error("cannot use object value with unnamed components");if(!(u.name in e))throw new Error(`missing value for component ${u.name}`);return e[u.name]})}if(c.length!==this.components.length)throw new Error("array is wrong length");c.forEach((u,f)=>{var h;_t(h=o[f],dl,Vp).call(h,t,u,r,y=>{c[f]=y})}),i(c);return}const s=r(this.type,e);s.then?t.push(async function(){i(await s)}()):i(s)};let qn=si;class Wa{constructor(t,e,r){Z(this,"type");Z(this,"inputs");P0(t,nn,"Fragment"),r=Object.freeze(r.slice()),$t(this,{type:e,inputs:r})}static from(t){if(typeof t=="string"){try{Wa.from(JSON.parse(t))}catch{}return Wa.from(Bo(t))}if(t instanceof Ai)switch(t.peekKeyword(AI)){case"constructor":return Us.from(t);case"error":return Or.from(t);case"event":return Yi.from(t);case"fallback":case"receive":return Ds.from(t);case"function":return Ji.from(t);case"struct":return Za.from(t)}else if(typeof t=="object"){switch(t.type){case"constructor":return Us.from(t);case"error":return Or.from(t);case"event":return Yi.from(t);case"fallback":case"receive":return Ds.from(t);case"function":return Ji.from(t);case"struct":return Za.from(t)}ht(!1,`unsupported type: ${t.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}K(!1,"unsupported frgament object","obj",t)}static isConstructor(t){return Us.isFragment(t)}static isError(t){return Or.isFragment(t)}static isEvent(t){return Yi.isFragment(t)}static isFunction(t){return Ji.isFragment(t)}static isStruct(t){return Za.isFragment(t)}}class ap extends Wa{constructor(e,r,i,s){super(e,r,s);Z(this,"name");K(typeof i=="string"&&i.match(vI),"invalid identifier","name",i),s=Object.freeze(s.slice()),$t(this,{name:i})}}function ch(n,t){return"("+t.map(e=>e.format(n)).join(n==="full"?", ":",")+")"}class Or extends ap{constructor(t,e,r){super(t,"error",e,r),Object.defineProperty(this,Tr,{value:OI})}get selector(){return za(this.format("sighash")).substring(0,10)}format(t){if(t==null&&(t="sighash"),t==="json")return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(r=>JSON.parse(r.format(t)))});const e=[];return t!=="sighash"&&e.push("error"),e.push(this.name+ch(t,this.inputs)),e.join(" ")}static from(t){if(Or.isFragment(t))return t;if(typeof t=="string")return Or.from(Bo(t));if(t instanceof Ai){const e=op("error",t),r=Ls(t);return ja(t),new Or(nn,e,r)}return new Or(nn,t.name,t.inputs?t.inputs.map(qn.from):[])}static isFragment(t){return t&&t[Tr]===OI}}class Yi extends ap{constructor(e,r,i,s){super(e,"event",r,i);Z(this,"anonymous");Object.defineProperty(this,Tr,{value:NI}),$t(this,{anonymous:s})}get topicHash(){return za(this.format("sighash"))}format(e){if(e==null&&(e="sighash"),e==="json")return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(i=>JSON.parse(i.format(e)))});const r=[];return e!=="sighash"&&r.push("event"),r.push(this.name+ch(e,this.inputs)),e!=="sighash"&&this.anonymous&&r.push("anonymous"),r.join(" ")}static getTopicHash(e,r){return r=(r||[]).map(s=>qn.from(s)),new Yi(nn,e,r,!1).topicHash}static from(e){if(Yi.isFragment(e))return e;if(typeof e=="string")try{return Yi.from(Bo(e))}catch{K(!1,"invalid event fragment","obj",e)}else if(e instanceof Ai){const r=op("event",e),i=Ls(e,!0),s=!!Ms(e,br(["anonymous"])).has("anonymous");return ja(e),new Yi(nn,r,i,s)}return new Yi(nn,e.name,e.inputs?e.inputs.map(r=>qn.from(r,!0)):[],!!e.anonymous)}static isFragment(e){return e&&e[Tr]===NI}}class Us extends Wa{constructor(e,r,i,s,o){super(e,r,i);Z(this,"payable");Z(this,"gas");Object.defineProperty(this,Tr,{value:CI}),$t(this,{payable:s,gas:o})}format(e){if(ht(e!=null&&e!=="sighash","cannot format a constructor for sighash","UNSUPPORTED_OPERATION",{operation:"format(sighash)"}),e==="json")return JSON.stringify({type:"constructor",stateMutability:this.payable?"payable":"undefined",payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map(i=>JSON.parse(i.format(e)))});const r=[`constructor${ch(e,this.inputs)}`];return this.payable&&r.push("payable"),this.gas!=null&&r.push(`@${this.gas.toString()}`),r.join(" ")}static from(e){if(Us.isFragment(e))return e;if(typeof e=="string")try{return Us.from(Bo(e))}catch{K(!1,"invalid constuctor fragment","obj",e)}else if(e instanceof Ai){Ms(e,br(["constructor"]));const r=Ls(e),i=!!Ms(e,Rz).has("payable"),s=II(e);return ja(e),new Us(nn,"constructor",r,i,s)}return new Us(nn,"constructor",e.inputs?e.inputs.map(qn.from):[],!!e.payable,e.gas!=null?e.gas:null)}static isFragment(e){return e&&e[Tr]===CI}}class Ds extends Wa{constructor(e,r,i){super(e,"fallback",r);Z(this,"payable");Object.defineProperty(this,Tr,{value:BI}),$t(this,{payable:i})}format(e){const r=this.inputs.length===0?"receive":"fallback";if(e==="json"){const i=this.payable?"payable":"nonpayable";return JSON.stringify({type:r,stateMutability:i})}return`${r}()${this.payable?" payable":""}`}static from(e){if(Ds.isFragment(e))return e;if(typeof e=="string")try{return Ds.from(Bo(e))}catch{K(!1,"invalid fallback fragment","obj",e)}else if(e instanceof Ai){const r=e.toString(),i=e.peekKeyword(br(["fallback","receive"]));if(K(i,"type must be fallback or receive","obj",r),e.popKeyword(br(["fallback","receive"]))==="receive"){const u=Ls(e);return K(u.length===0,"receive cannot have arguments","obj.inputs",u),Ms(e,br(["payable"])),ja(e),new Ds(nn,[],!0)}let o=Ls(e);o.length?K(o.length===1&&o[0].type==="bytes","invalid fallback inputs","obj.inputs",o.map(u=>u.format("minimal")).join(", ")):o=[qn.from("bytes")];const c=SI(e);if(K(c==="nonpayable"||c==="payable","fallback cannot be constants","obj.stateMutability",c),Ms(e,br(["returns"])).has("returns")){const u=Ls(e);K(u.length===1&&u[0].type==="bytes","invalid fallback outputs","obj.outputs",u.map(f=>f.format("minimal")).join(", "))}return ja(e),new Ds(nn,o,c==="payable")}if(e.type==="receive")return new Ds(nn,[],!0);if(e.type==="fallback"){const r=[qn.from("bytes")],i=e.stateMutability==="payable";return new Ds(nn,r,i)}K(!1,"invalid fallback description","obj",e)}static isFragment(e){return e&&e[Tr]===BI}}class Ji extends ap{constructor(e,r,i,s,o,c){super(e,"function",r,s);Z(this,"constant");Z(this,"outputs");Z(this,"stateMutability");Z(this,"payable");Z(this,"gas");Object.defineProperty(this,Tr,{value:PI}),o=Object.freeze(o.slice()),$t(this,{constant:i==="view"||i==="pure",gas:c,outputs:o,payable:i==="payable",stateMutability:i})}get selector(){return za(this.format("sighash")).substring(0,10)}format(e){if(e==null&&(e="sighash"),e==="json")return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:this.stateMutability!=="nonpayable"?this.stateMutability:void 0,payable:this.payable,gas:this.gas!=null?this.gas:void 0,inputs:this.inputs.map(i=>JSON.parse(i.format(e))),outputs:this.outputs.map(i=>JSON.parse(i.format(e)))});const r=[];return e!=="sighash"&&r.push("function"),r.push(this.name+ch(e,this.inputs)),e!=="sighash"&&(this.stateMutability!=="nonpayable"&&r.push(this.stateMutability),this.outputs&&this.outputs.length&&(r.push("returns"),r.push(ch(e,this.outputs))),this.gas!=null&&r.push(`@${this.gas.toString()}`)),r.join(" ")}static getSelector(e,r){return r=(r||[]).map(s=>qn.from(s)),new Ji(nn,e,"view",r,[],null).selector}static from(e){if(Ji.isFragment(e))return e;if(typeof e=="string")try{return Ji.from(Bo(e))}catch{K(!1,"invalid function fragment","obj",e)}else if(e instanceof Ai){const i=op("function",e),s=Ls(e),o=SI(e);let c=[];Ms(e,br(["returns"])).has("returns")&&(c=Ls(e));const u=II(e);return ja(e),new Ji(nn,i,o,s,c,u)}let r=e.stateMutability;return r==null&&(r="payable",typeof e.constant=="boolean"?(r="view",e.constant||(r="payable",typeof e.payable=="boolean"&&!e.payable&&(r="nonpayable"))):typeof e.payable=="boolean"&&!e.payable&&(r="nonpayable")),new Ji(nn,e.name,r,e.inputs?e.inputs.map(qn.from):[],e.outputs?e.outputs.map(qn.from):[],e.gas!=null?e.gas:null)}static isFragment(e){return e&&e[Tr]===PI}}class Za extends ap{constructor(t,e,r){super(t,"struct",e,r),Object.defineProperty(this,Tr,{value:MI})}format(){throw new Error("@TODO")}static from(t){if(typeof t=="string")try{return Za.from(Bo(t))}catch{K(!1,"invalid struct fragment","obj",t)}else if(t instanceof Ai){const e=op("struct",t),r=Ls(t);return ja(t),new Za(nn,e,r)}return new Za(nn,t.name,t.inputs?t.inputs.map(qn.from):[])}static isFragment(t){return t&&t[Tr]===MI}}const Ei=new Map;Ei.set(0,"GENERIC_PANIC"),Ei.set(1,"ASSERT_FALSE"),Ei.set(17,"OVERFLOW"),Ei.set(18,"DIVIDE_BY_ZERO"),Ei.set(33,"ENUM_RANGE_ERROR"),Ei.set(34,"BAD_STORAGE_DATA"),Ei.set(49,"STACK_UNDERFLOW"),Ei.set(50,"ARRAY_RANGE_ERROR"),Ei.set(65,"OUT_OF_MEMORY"),Ei.set(81,"UNINITIALIZED_FUNCTION_CALL");const Mz=new RegExp(/^bytes([0-9]*)$/),Lz=new RegExp(/^(u?int)([0-9]*)$/);let yw=null,LI=1024;function Uz(n,t,e,r){let i="missing revert data",s=null;const o=null;let c=null;if(e){i="execution reverted";const f=we(e);if(e=Tt(e),f.length===0)i+=" (no data present; likely require(false) occurred",s="require(false)";else if(f.length%32!==4)i+=" (could not decode reason; invalid data length)";else if(Tt(f.slice(0,4))==="0x08c379a0")try{s=r.decode(["string"],f.slice(4))[0],c={signature:"Error(string)",name:"Error",args:[s]},i+=`: ${JSON.stringify(s)}`}catch{i+=" (could not decode reason; invalid string data)"}else if(Tt(f.slice(0,4))==="0x4e487b71")try{const h=Number(r.decode(["uint256"],f.slice(4))[0]);c={signature:"Panic(uint256)",name:"Panic",args:[h]},s=`Panic due to ${Ei.get(h)||"UNKNOWN"}(${h})`,i+=`: ${s}`}catch{i+=" (could not decode panic code)"}else i+=" (unknown custom error)"}const u={to:t.to?Me(t.to):null,data:t.data||"0x"};return t.from&&(u.from=Me(t.from)),Qe(i,"CALL_EXCEPTION",{action:n,data:e,reason:s,transaction:u,invocation:o,revert:c})}const vp=class vp{constructor(){nt(this,Fo)}getDefaultValue(t){const e=t.map(i=>_t(this,Fo,Fl).call(this,qn.from(i)));return new Z0(e,"_").defaultValue()}encode(t,e){yR(e.length,t.length,"types/values length mismatch");const r=t.map(o=>_t(this,Fo,Fl).call(this,qn.from(o))),i=new Z0(r,"_"),s=new Cm;return i.encode(s,e),s.data}decode(t,e,r){const i=t.map(o=>_t(this,Fo,Fl).call(this,qn.from(o)));return new Z0(i,"_").decode(new Bm(e,r,LI))}static _setDefaultMaxInflation(t){K(typeof t=="number"&&Number.isInteger(t),"invalid defaultMaxInflation factor","value",t),LI=t}static defaultAbiCoder(){return yw==null&&(yw=new vp),yw}static getBuiltinCallException(t,e,r){return Uz(t,e,r,vp.defaultAbiCoder())}};Fo=new WeakSet,Fl=function(t){if(t.isArray())return new cH(_t(this,Fo,Fl).call(this,t.arrayChildren),t.arrayLength,t.name);if(t.isTuple())return new Z0(t.components.map(r=>_t(this,Fo,Fl).call(this,r)),t.name);switch(t.baseType){case"address":return new oH(t.name);case"bool":return new uH(t.name);case"string":return new wH(t.name);case"bytes":return new lH(t.name);case"":return new dH(t.name)}let e=t.type.match(Lz);if(e){let r=parseInt(e[2]||"256");return K(r!==0&&r<=256&&r%8===0,"invalid "+e[1]+" bit length","param",t),new mH(r/8,e[1]==="int",t.name)}if(e=t.type.match(Mz),e){let r=parseInt(e[1]);return K(r!==0&&r<=32,"invalid bytes length","param",t),new fH(r,t.name)}K(!1,"invalid type","type",t.type)};let uh=vp;class Dz{constructor(t,e,r){Z(this,"fragment");Z(this,"name");Z(this,"signature");Z(this,"topic");Z(this,"args");const i=t.name,s=t.format();$t(this,{fragment:t,name:i,signature:s,topic:e,args:r})}}class Fz{constructor(t,e,r,i){Z(this,"fragment");Z(this,"name");Z(this,"args");Z(this,"signature");Z(this,"selector");Z(this,"value");const s=t.name,o=t.format();$t(this,{fragment:t,name:s,args:r,signature:o,selector:e,value:i})}}class $z{constructor(t,e,r){Z(this,"fragment");Z(this,"name");Z(this,"args");Z(this,"signature");Z(this,"selector");const i=t.name,s=t.format();$t(this,{fragment:t,name:i,args:r,signature:s,selector:e})}}class UI{constructor(t){Z(this,"hash");Z(this,"_isIndexed");$t(this,{hash:t,_isIndexed:!0})}static isIndexed(t){return!!(t&&t._isIndexed)}}const DI={0:"generic panic",1:"assert(false)",17:"arithmetic overflow",18:"division or modulo by zero",33:"enum overflow",34:"invalid encoded storage byte array accessed",49:"out-of-bounds array access; popping on an empty array",50:"out-of-bounds access of an array or bytesN",65:"out of memory",81:"uninitialized function"},FI={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:n=>`reverted with reason string ${JSON.stringify(n)}`},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"],reason:n=>{let t="unknown panic code";return n>=0&&n<=255&&DI[n.toString()]&&(t=DI[n.toString()]),`reverted with panic code 0x${n.toString(16)} (${t})`}}},fc=class fc{constructor(t){nt(this,ss);Z(this,"fragments");Z(this,"deploy");Z(this,"fallback");Z(this,"receive");nt(this,ns);nt(this,rs);nt(this,is);nt(this,sr);let e=[];typeof t=="string"?e=JSON.parse(t):e=t,$(this,is,new Map),$(this,ns,new Map),$(this,rs,new Map);const r=[];for(const o of e)try{r.push(Wa.from(o))}catch(c){console.log(`[Warning] Invalid Fragment ${JSON.stringify(o)}:`,c.message)}$t(this,{fragments:Object.freeze(r)});let i=null,s=!1;$(this,sr,this.getAbiCoder()),this.fragments.forEach((o,c)=>{let u;switch(o.type){case"constructor":if(this.deploy){console.log("duplicate definition - constructor");return}$t(this,{deploy:o});return;case"fallback":o.inputs.length===0?s=!0:(K(!i||o.payable!==i.payable,"conflicting fallback fragments",`fragments[${c}]`,o),i=o,s=i.payable);return;case"function":u=T(this,is);break;case"event":u=T(this,rs);break;case"error":u=T(this,ns);break;default:return}const f=o.format();u.has(f)||u.set(f,o)}),this.deploy||$t(this,{deploy:Us.from("constructor()")}),$t(this,{fallback:i,receive:s})}format(t){const e=t?"minimal":"full";return this.fragments.map(i=>i.format(e))}formatJson(){const t=this.fragments.map(e=>e.format("json"));return JSON.stringify(t.map(e=>JSON.parse(e)))}getAbiCoder(){return uh.defaultAbiCoder()}getFunctionName(t){const e=_t(this,ss,Kp).call(this,t,null,!1);return K(e,"no matching function","key",t),e.name}hasFunction(t){return!!_t(this,ss,Kp).call(this,t,null,!1)}getFunction(t,e){return _t(this,ss,Kp).call(this,t,e||null,!0)}forEachFunction(t){const e=Array.from(T(this,is).keys());e.sort((r,i)=>r.localeCompare(i));for(let r=0;r<e.length;r++){const i=e[r];t(T(this,is).get(i),r)}}getEventName(t){const e=_t(this,ss,jp).call(this,t,null,!1);return K(e,"no matching event","key",t),e.name}hasEvent(t){return!!_t(this,ss,jp).call(this,t,null,!1)}getEvent(t,e){return _t(this,ss,jp).call(this,t,e||null,!0)}forEachEvent(t){const e=Array.from(T(this,rs).keys());e.sort((r,i)=>r.localeCompare(i));for(let r=0;r<e.length;r++){const i=e[r];t(T(this,rs).get(i),r)}}getError(t,e){if(ze(t)){const i=t.toLowerCase();if(FI[i])return Or.from(FI[i].signature);for(const s of T(this,ns).values())if(i===s.selector)return s;return null}if(t.indexOf("(")===-1){const i=[];for(const[s,o]of T(this,ns))s.split("(")[0]===t&&i.push(o);if(i.length===0)return t==="Error"?Or.from("error Error(string)"):t==="Panic"?Or.from("error Panic(uint256)"):null;if(i.length>1){const s=i.map(o=>JSON.stringify(o.format())).join(", ");K(!1,`ambiguous error description (i.e. ${s})`,"name",t)}return i[0]}if(t=Or.from(t).format(),t==="Error(string)")return Or.from("error Error(string)");if(t==="Panic(uint256)")return Or.from("error Panic(uint256)");const r=T(this,ns).get(t);return r||null}forEachError(t){const e=Array.from(T(this,ns).keys());e.sort((r,i)=>r.localeCompare(i));for(let r=0;r<e.length;r++){const i=e[r];t(T(this,ns).get(i),r)}}_decodeParams(t,e){return T(this,sr).decode(t,e)}_encodeParams(t,e){return T(this,sr).encode(t,e)}encodeDeploy(t){return this._encodeParams(this.deploy.inputs,t||[])}decodeErrorResult(t,e){if(typeof t=="string"){const r=this.getError(t);K(r,"unknown error","fragment",t),t=r}return K(un(e,0,4)===t.selector,`data signature does not match error ${t.name}.`,"data",e),this._decodeParams(t.inputs,un(e,4))}encodeErrorResult(t,e){if(typeof t=="string"){const r=this.getError(t);K(r,"unknown error","fragment",t),t=r}return vn([t.selector,this._encodeParams(t.inputs,e||[])])}decodeFunctionData(t,e){if(typeof t=="string"){const r=this.getFunction(t);K(r,"unknown function","fragment",t),t=r}return K(un(e,0,4)===t.selector,`data signature does not match function ${t.name}.`,"data",e),this._decodeParams(t.inputs,un(e,4))}encodeFunctionData(t,e){if(typeof t=="string"){const r=this.getFunction(t);K(r,"unknown function","fragment",t),t=r}return vn([t.selector,this._encodeParams(t.inputs,e||[])])}decodeFunctionResult(t,e){if(typeof t=="string"){const s=this.getFunction(t);K(s,"unknown function","fragment",t),t=s}let r="invalid length for result data";const i=gr(e);if(i.length%32===0)try{return T(this,sr).decode(t.outputs,i)}catch{r="could not decode result data"}ht(!1,r,"BAD_DATA",{value:Tt(i),info:{method:t.name,signature:t.format()}})}makeError(t,e){const r=we(t,"data"),i=uh.getBuiltinCallException("call",e,r);if(i.message.startsWith("execution reverted (unknown custom error)")){const c=Tt(r.slice(0,4)),u=this.getError(c);if(u)try{const f=T(this,sr).decode(u.inputs,r.slice(4));i.revert={name:u.name,signature:u.format(),args:f},i.reason=i.revert.signature,i.message=`execution reverted: ${i.reason}`}catch{i.message="execution reverted (coult not decode custom error)"}}const o=this.parseTransaction(e);return o&&(i.invocation={method:o.name,signature:o.signature,args:o.args}),i}encodeFunctionResult(t,e){if(typeof t=="string"){const r=this.getFunction(t);K(r,"unknown function","fragment",t),t=r}return Tt(T(this,sr).encode(t.outputs,e||[]))}encodeFilterTopics(t,e){if(typeof t=="string"){const s=this.getEvent(t);K(s,"unknown event","eventFragment",t),t=s}ht(e.length<=t.inputs.length,`too many arguments for ${t.format()}`,"UNEXPECTED_ARGUMENT",{count:e.length,expectedCount:t.inputs.length});const r=[];t.anonymous||r.push(t.topicHash);const i=(s,o)=>s.type==="string"?za(o):s.type==="bytes"?On(Tt(o)):(s.type==="bool"&&typeof o=="boolean"?o=o?"0x01":"0x00":s.type.match(/^u?int/)?o=So(o):s.type.match(/^bytes/)?o=A7(o,32):s.type==="address"&&T(this,sr).encode(["address"],[o]),La(Tt(o),32));for(e.forEach((s,o)=>{const c=t.inputs[o];if(!c.indexed){K(s==null,"cannot filter non-indexed parameters; must be null","contract."+c.name,s);return}s==null?r.push(null):c.baseType==="array"||c.baseType==="tuple"?K(!1,"filtering with tuples or arrays not supported","contract."+c.name,s):Array.isArray(s)?r.push(s.map(u=>i(c,u))):r.push(i(c,s))});r.length&&r[r.length-1]===null;)r.pop();return r}encodeEventLog(t,e){if(typeof t=="string"){const o=this.getEvent(t);K(o,"unknown event","eventFragment",t),t=o}const r=[],i=[],s=[];return t.anonymous||r.push(t.topicHash),K(e.length===t.inputs.length,"event arguments/values mismatch","values",e),t.inputs.forEach((o,c)=>{const u=e[c];if(o.indexed)if(o.type==="string")r.push(za(u));else if(o.type==="bytes")r.push(On(u));else{if(o.baseType==="tuple"||o.baseType==="array")throw new Error("not implemented");r.push(T(this,sr).encode([o.type],[u]))}else i.push(o),s.push(u)}),{data:T(this,sr).encode(i,s),topics:r}}decodeEventLog(t,e,r){if(typeof t=="string"){const b=this.getEvent(t);K(b,"unknown event","eventFragment",t),t=b}if(r!=null&&!t.anonymous){const b=t.topicHash;K(ze(r[0],32)&&r[0].toLowerCase()===b,"fragment/topic mismatch","topics[0]",r[0]),r=r.slice(1)}const i=[],s=[],o=[];t.inputs.forEach((b,R)=>{b.indexed?b.type==="string"||b.type==="bytes"||b.baseType==="tuple"||b.baseType==="array"?(i.push(qn.from({type:"bytes32",name:b.name})),o.push(!0)):(i.push(b),o.push(!1)):(s.push(b),o.push(!1))});const c=r!=null?T(this,sr).decode(i,vn(r)):null,u=T(this,sr).decode(s,e,!0),f=[],h=[];let y=0,A=0;return t.inputs.forEach((b,R)=>{let k=null;if(b.indexed)if(c==null)k=new UI(null);else if(o[R])k=new UI(c[A++]);else try{k=c[A++]}catch(S){k=S}else try{k=u[y++]}catch(S){k=S}f.push(k),h.push(b.name||null)}),Su.fromItems(f,h)}parseTransaction(t){const e=we(t.data,"tx.data"),r=Ct(t.value!=null?t.value:0,"tx.value"),i=this.getFunction(Tt(e.slice(0,4)));if(!i)return null;const s=T(this,sr).decode(i.inputs,e.slice(4));return new Fz(i,i.selector,s,r)}parseCallResult(t){throw new Error("@TODO")}parseLog(t){const e=this.getEvent(t.topics[0]);return!e||e.anonymous?null:new Dz(e,e.topicHash,this.decodeEventLog(e,t.data,t.topics))}parseError(t){const e=Tt(t),r=this.getError(un(e,0,4));if(!r)return null;const i=T(this,sr).decode(r.inputs,un(e,4));return new $z(r,r.selector,i)}static from(t){return t instanceof fc?t:typeof t=="string"?new fc(JSON.parse(t)):typeof t.formatJson=="function"?new fc(t.formatJson()):typeof t.format=="function"?new fc(t.format("json")):new fc(t)}};ns=new WeakMap,rs=new WeakMap,is=new WeakMap,sr=new WeakMap,ss=new WeakSet,Kp=function(t,e,r){if(ze(t)){const s=t.toLowerCase();for(const o of T(this,is).values())if(s===o.selector)return o;return null}if(t.indexOf("(")===-1){const s=[];for(const[o,c]of T(this,is))o.split("(")[0]===t&&s.push(c);if(e){const o=e.length>0?e[e.length-1]:null;let c=e.length,u=!0;ir.isTyped(o)&&o.type==="overrides"&&(u=!1,c--);for(let f=s.length-1;f>=0;f--){const h=s[f].inputs.length;h!==c&&(!u||h!==c-1)&&s.splice(f,1)}for(let f=s.length-1;f>=0;f--){const h=s[f].inputs;for(let y=0;y<e.length;y++)if(ir.isTyped(e[y])){if(y>=h.length){if(e[y].type==="overrides")continue;s.splice(f,1);break}if(e[y].type!==h[y].baseType){s.splice(f,1);break}}}}if(s.length===1&&e&&e.length!==s[0].inputs.length){const o=e[e.length-1];(o==null||Array.isArray(o)||typeof o!="object")&&s.splice(0,1)}if(s.length===0)return null;if(s.length>1&&r){const o=s.map(c=>JSON.stringify(c.format())).join(", ");K(!1,`ambiguous function description (i.e. matches ${o})`,"key",t)}return s[0]}const i=T(this,is).get(Ji.from(t).format());return i||null},jp=function(t,e,r){if(ze(t)){const s=t.toLowerCase();for(const o of T(this,rs).values())if(s===o.topicHash)return o;return null}if(t.indexOf("(")===-1){const s=[];for(const[o,c]of T(this,rs))o.split("(")[0]===t&&s.push(c);if(e){for(let o=s.length-1;o>=0;o--)s[o].inputs.length<e.length&&s.splice(o,1);for(let o=s.length-1;o>=0;o--){const c=s[o].inputs;for(let u=0;u<e.length;u++)if(ir.isTyped(e[u])&&e[u].type!==c[u].baseType){s.splice(o,1);break}}}if(s.length===0)return null;if(s.length>1&&r){const o=s.map(c=>JSON.stringify(c.format())).join(", ");K(!1,`ambiguous event description (i.e. matches ${o})`,"key",t)}return s[0]}const i=T(this,rs).get(Yi.from(t).format());return i||null};let mw=fc;const $I=BigInt(0);function Uu(n){return n??null}function Sn(n){return n==null?null:n.toString()}class HI{constructor(t,e,r){Z(this,"gasPrice");Z(this,"maxFeePerGas");Z(this,"maxPriorityFeePerGas");$t(this,{gasPrice:Uu(t),maxFeePerGas:Uu(e),maxPriorityFeePerGas:Uu(r)})}toJSON(){const{gasPrice:t,maxFeePerGas:e,maxPriorityFeePerGas:r}=this;return{_type:"FeeData",gasPrice:Sn(t),maxFeePerGas:Sn(e),maxPriorityFeePerGas:Sn(r)}}}function cp(n){const t={};n.to&&(t.to=n.to),n.from&&(t.from=n.from),n.data&&(t.data=Tt(n.data));const e="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(const i of e)!(i in n)||n[i]==null||(t[i]=Ct(n[i],`request.${i}`));const r="type,nonce".split(/,/);for(const i of r)!(i in n)||n[i]==null||(t[i]=ie(n[i],`request.${i}`));return n.accessList&&(t.accessList=Ka(n.accessList)),"blockTag"in n&&(t.blockTag=n.blockTag),"enableCcipRead"in n&&(t.enableCcipRead=!!n.enableCcipRead),"customData"in n&&(t.customData=n.customData),"blobVersionedHashes"in n&&n.blobVersionedHashes&&(t.blobVersionedHashes=n.blobVersionedHashes.slice()),"kzg"in n&&(t.kzg=n.kzg),"blobs"in n&&n.blobs&&(t.blobs=n.blobs.map(i=>Im(i)?Tt(i):Object.assign({},i))),t}class Hz{constructor(t,e){Z(this,"provider");Z(this,"number");Z(this,"hash");Z(this,"timestamp");Z(this,"parentHash");Z(this,"parentBeaconBlockRoot");Z(this,"nonce");Z(this,"difficulty");Z(this,"gasLimit");Z(this,"gasUsed");Z(this,"stateRoot");Z(this,"receiptsRoot");Z(this,"blobGasUsed");Z(this,"excessBlobGas");Z(this,"miner");Z(this,"prevRandao");Z(this,"extraData");Z(this,"baseFeePerGas");nt(this,Ws);$(this,Ws,t.transactions.map(r=>typeof r!="string"?new fh(r,e):r)),$t(this,{provider:e,hash:Uu(t.hash),number:t.number,timestamp:t.timestamp,parentHash:t.parentHash,parentBeaconBlockRoot:t.parentBeaconBlockRoot,nonce:t.nonce,difficulty:t.difficulty,gasLimit:t.gasLimit,gasUsed:t.gasUsed,blobGasUsed:t.blobGasUsed,excessBlobGas:t.excessBlobGas,miner:t.miner,prevRandao:Uu(t.prevRandao),extraData:t.extraData,baseFeePerGas:Uu(t.baseFeePerGas),stateRoot:t.stateRoot,receiptsRoot:t.receiptsRoot})}get transactions(){return T(this,Ws).map(t=>typeof t=="string"?t:t.hash)}get prefetchedTransactions(){const t=T(this,Ws).slice();return t.length===0?[]:(ht(typeof t[0]=="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),t)}toJSON(){const{baseFeePerGas:t,difficulty:e,extraData:r,gasLimit:i,gasUsed:s,hash:o,miner:c,prevRandao:u,nonce:f,number:h,parentHash:y,parentBeaconBlockRoot:A,stateRoot:b,receiptsRoot:R,timestamp:k,transactions:S}=this;return{_type:"Block",baseFeePerGas:Sn(t),difficulty:Sn(e),extraData:r,gasLimit:Sn(i),gasUsed:Sn(s),blobGasUsed:Sn(this.blobGasUsed),excessBlobGas:Sn(this.excessBlobGas),hash:o,miner:c,prevRandao:u,nonce:f,number:h,parentHash:y,timestamp:k,parentBeaconBlockRoot:A,stateRoot:b,receiptsRoot:R,transactions:S}}[Symbol.iterator](){let t=0;const e=this.transactions;return{next:()=>t<this.length?{value:e[t++],done:!1}:{value:void 0,done:!0}}}get length(){return T(this,Ws).length}get date(){return this.timestamp==null?null:new Date(this.timestamp*1e3)}async getTransaction(t){let e;if(typeof t=="number")e=T(this,Ws)[t];else{const r=t.toLowerCase();for(const i of T(this,Ws))if(typeof i=="string"){if(i!==r)continue;e=i;break}else{if(i.hash!==r)continue;e=i;break}}if(e==null)throw new Error("no such tx");return typeof e=="string"?await this.provider.getTransaction(e):e}getPrefetchedTransaction(t){const e=this.prefetchedTransactions;if(typeof t=="number")return e[t];t=t.toLowerCase();for(const r of e)if(r.hash===t)return r;K(!1,"no matching transaction","indexOrHash",t)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw new Error("");return zz(this)}}Ws=new WeakMap;class lh{constructor(t,e){Z(this,"provider");Z(this,"transactionHash");Z(this,"blockHash");Z(this,"blockNumber");Z(this,"removed");Z(this,"address");Z(this,"data");Z(this,"topics");Z(this,"index");Z(this,"transactionIndex");this.provider=e;const r=Object.freeze(t.topics.slice());$t(this,{transactionHash:t.transactionHash,blockHash:t.blockHash,blockNumber:t.blockNumber,removed:t.removed,address:t.address,data:t.data,topics:r,index:t.index,transactionIndex:t.transactionIndex})}toJSON(){const{address:t,blockHash:e,blockNumber:r,data:i,index:s,removed:o,topics:c,transactionHash:u,transactionIndex:f}=this;return{_type:"log",address:t,blockHash:e,blockNumber:r,data:i,index:s,removed:o,topics:c,transactionHash:u,transactionIndex:f}}async getBlock(){const t=await this.provider.getBlock(this.blockHash);return ht(!!t,"failed to find transaction","UNKNOWN_ERROR",{}),t}async getTransaction(){const t=await this.provider.getTransaction(this.transactionHash);return ht(!!t,"failed to find transaction","UNKNOWN_ERROR",{}),t}async getTransactionReceipt(){const t=await this.provider.getTransactionReceipt(this.transactionHash);return ht(!!t,"failed to find transaction receipt","UNKNOWN_ERROR",{}),t}removedEvent(){return Gz(this)}}class zI{constructor(t,e){Z(this,"provider");Z(this,"to");Z(this,"from");Z(this,"contractAddress");Z(this,"hash");Z(this,"index");Z(this,"blockHash");Z(this,"blockNumber");Z(this,"logsBloom");Z(this,"gasUsed");Z(this,"blobGasUsed");Z(this,"cumulativeGasUsed");Z(this,"gasPrice");Z(this,"blobGasPrice");Z(this,"type");Z(this,"status");Z(this,"root");nt(this,_h);$(this,_h,Object.freeze(t.logs.map(i=>new lh(i,e))));let r=$I;t.effectiveGasPrice!=null?r=t.effectiveGasPrice:t.gasPrice!=null&&(r=t.gasPrice),$t(this,{provider:e,to:t.to,from:t.from,contractAddress:t.contractAddress,hash:t.hash,index:t.index,blockHash:t.blockHash,blockNumber:t.blockNumber,logsBloom:t.logsBloom,gasUsed:t.gasUsed,cumulativeGasUsed:t.cumulativeGasUsed,blobGasUsed:t.blobGasUsed,gasPrice:r,blobGasPrice:t.blobGasPrice,type:t.type,status:t.status,root:t.root})}get logs(){return T(this,_h)}toJSON(){const{to:t,from:e,contractAddress:r,hash:i,index:s,blockHash:o,blockNumber:c,logsBloom:u,logs:f,status:h,root:y}=this;return{_type:"TransactionReceipt",blockHash:o,blockNumber:c,contractAddress:r,cumulativeGasUsed:Sn(this.cumulativeGasUsed),from:e,gasPrice:Sn(this.gasPrice),blobGasUsed:Sn(this.blobGasUsed),blobGasPrice:Sn(this.blobGasPrice),gasUsed:Sn(this.gasUsed),hash:i,index:s,logs:f,logsBloom:u,root:y,status:h,to:t}}get length(){return this.logs.length}[Symbol.iterator](){let t=0;return{next:()=>t<this.length?{value:this.logs[t++],done:!1}:{value:void 0,done:!0}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){const t=await this.provider.getBlock(this.blockHash);if(t==null)throw new Error("TODO");return t}async getTransaction(){const t=await this.provider.getTransaction(this.hash);if(t==null)throw new Error("TODO");return t}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return VI(this)}reorderedEvent(t){return ht(!t||t.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),GI(this,t)}}_h=new WeakMap;const $w=class $w{constructor(t,e){Z(this,"provider");Z(this,"blockNumber");Z(this,"blockHash");Z(this,"index");Z(this,"hash");Z(this,"type");Z(this,"to");Z(this,"from");Z(this,"nonce");Z(this,"gasLimit");Z(this,"gasPrice");Z(this,"maxPriorityFeePerGas");Z(this,"maxFeePerGas");Z(this,"maxFeePerBlobGas");Z(this,"data");Z(this,"value");Z(this,"chainId");Z(this,"signature");Z(this,"accessList");Z(this,"blobVersionedHashes");nt(this,$o);this.provider=e,this.blockNumber=t.blockNumber!=null?t.blockNumber:null,this.blockHash=t.blockHash!=null?t.blockHash:null,this.hash=t.hash,this.index=t.index,this.type=t.type,this.from=t.from,this.to=t.to||null,this.gasLimit=t.gasLimit,this.nonce=t.nonce,this.data=t.data,this.value=t.value,this.gasPrice=t.gasPrice,this.maxPriorityFeePerGas=t.maxPriorityFeePerGas!=null?t.maxPriorityFeePerGas:null,this.maxFeePerGas=t.maxFeePerGas!=null?t.maxFeePerGas:null,this.maxFeePerBlobGas=t.maxFeePerBlobGas!=null?t.maxFeePerBlobGas:null,this.chainId=t.chainId,this.signature=t.signature,this.accessList=t.accessList!=null?t.accessList:null,this.blobVersionedHashes=t.blobVersionedHashes!=null?t.blobVersionedHashes:null,$(this,$o,-1)}toJSON(){const{blockNumber:t,blockHash:e,index:r,hash:i,type:s,to:o,from:c,nonce:u,data:f,signature:h,accessList:y,blobVersionedHashes:A}=this;return{_type:"TransactionResponse",accessList:y,blockNumber:t,blockHash:e,blobVersionedHashes:A,chainId:Sn(this.chainId),data:f,from:c,gasLimit:Sn(this.gasLimit),gasPrice:Sn(this.gasPrice),hash:i,maxFeePerGas:Sn(this.maxFeePerGas),maxPriorityFeePerGas:Sn(this.maxPriorityFeePerGas),maxFeePerBlobGas:Sn(this.maxFeePerBlobGas),nonce:u,signature:h,to:o,index:r,type:s,value:Sn(this.value)}}async getBlock(){let t=this.blockNumber;if(t==null){const r=await this.getTransaction();r&&(t=r.blockNumber)}if(t==null)return null;const e=this.provider.getBlock(t);if(e==null)throw new Error("TODO");return e}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){const{tx:e,blockNumber:r}=await pr({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});return e==null||e.blockNumber==null?0:r-e.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(t,e){const r=t??1,i=e??0;let s=T(this,$o),o=-1,c=s===-1;const u=async()=>{if(c)return null;const{blockNumber:A,nonce:b}=await pr({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(b<this.nonce){s=A;return}if(c)return null;const R=await this.getTransaction();if(!(R&&R.blockNumber!=null))for(o===-1&&(o=s-3,o<T(this,$o)&&(o=T(this,$o)));o<=A;){if(c)return null;const k=await this.provider.getBlock(o,!0);if(k==null)return;for(const S of k)if(S===this.hash)return;for(let S=0;S<k.length;S++){const B=await k.getTransaction(S);if(B.from===this.from&&B.nonce===this.nonce){if(c)return null;const H=await this.provider.getTransactionReceipt(B.hash);if(H==null||A-H.blockNumber+1<r)return;let U="replaced";B.data===this.data&&B.to===this.to&&B.value===this.value?U="repriced":B.data==="0x"&&B.from===B.to&&B.value===$I&&(U="cancelled"),ht(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:U==="replaced"||U==="cancelled",reason:U,replacement:B.replaceableTransaction(s),hash:B.hash,receipt:H})}}o++}},f=A=>{if(A==null||A.status!==0)return A;ht(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:A.to,from:A.from,data:""},receipt:A})},h=await this.provider.getTransactionReceipt(this.hash);if(r===0)return f(h);if(h){if(await h.confirmations()>=r)return f(h)}else if(await u(),r===0)return null;return await new Promise((A,b)=>{const R=[],k=()=>{R.forEach(B=>B())};if(R.push(()=>{c=!0}),i>0){const B=setTimeout(()=>{k(),b(Qe("wait for transaction timeout","TIMEOUT"))},i);R.push(()=>{clearTimeout(B)})}const S=async B=>{if(await B.confirmations()>=r){k();try{A(f(B))}catch(H){b(H)}}};if(R.push(()=>{this.provider.off(this.hash,S)}),this.provider.on(this.hash,S),s>=0){const B=async()=>{try{await u()}catch(H){if(Zn(H,"TRANSACTION_REPLACED")){k(),b(H);return}}c||this.provider.once("block",B)};R.push(()=>{this.provider.off("block",B)}),this.provider.once("block",B)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}removedEvent(){return ht(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),VI(this)}reorderedEvent(t){return ht(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),ht(!t||t.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),GI(this,t)}replaceableTransaction(t){K(Number.isInteger(t)&&t>=0,"invalid startBlock","startBlock",t);const e=new $w(this,this.provider);return $(e,$o,t),e}};$o=new WeakMap;let fh=$w;function zz(n){return{orphan:"drop-block",hash:n.hash,number:n.number}}function GI(n,t){return{orphan:"reorder-transaction",tx:n,other:t}}function VI(n){return{orphan:"drop-transaction",tx:n}}function Gz(n){return{orphan:"drop-log",log:{transactionHash:n.transactionHash,blockHash:n.blockHash,blockNumber:n.blockNumber,address:n.address,data:n.data,topics:Object.freeze(n.topics.slice()),index:n.index}}}class ww extends lh{constructor(e,r,i){super(e,e.provider);Z(this,"interface");Z(this,"fragment");Z(this,"args");const s=r.decodeEventLog(i,e.data,e.topics);$t(this,{args:s,fragment:i,interface:r})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}class KI extends lh{constructor(e,r){super(e,e.provider);Z(this,"error");$t(this,{error:r})}}class Vz extends zI{constructor(e,r,i){super(i,r);nt(this,pl);$(this,pl,e)}get logs(){return super.logs.map(e=>{const r=e.topics.length?T(this,pl).getEvent(e.topics[0]):null;if(r)try{return new ww(e,T(this,pl),r)}catch(i){return new KI(e,i)}return e})}}pl=new WeakMap;class bw extends fh{constructor(e,r,i){super(i,r);nt(this,Ah);$(this,Ah,e)}async wait(e,r){const i=await super.wait(e,r);return i==null?null:new Vz(T(this,Ah),this.provider,i)}}Ah=new WeakMap;class jI extends xR{constructor(e,r,i,s){super(e,r,i);Z(this,"log");$t(this,{log:s})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}}class Kz extends jI{constructor(t,e,r,i,s){super(t,e,r,new ww(s,t.interface,i));const o=t.interface.decodeEventLog(i,this.log.data,this.log.topics);$t(this,{args:o,fragment:i})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}const WI=BigInt(0);function ZI(n){return n&&typeof n.call=="function"}function qI(n){return n&&typeof n.estimateGas=="function"}function up(n){return n&&typeof n.resolveName=="function"}function QI(n){return n&&typeof n.sendTransaction=="function"}function YI(n){if(n!=null){if(up(n))return n;if(n.provider)return n.provider}}class jz{constructor(t,e,r){nt(this,Eh);Z(this,"fragment");if($t(this,{fragment:e}),e.inputs.length<r.length)throw new Error("too many arguments");const i=qa(t.runner,"resolveName"),s=up(i)?i:null;$(this,Eh,async function(){const o=await Promise.all(e.inputs.map((c,u)=>r[u]==null?null:c.walkAsync(r[u],(h,y)=>h==="address"?Array.isArray(y)?Promise.all(y.map(A=>wr(A,s))):wr(y,s):y)));return t.interface.encodeFilterTopics(e,o)}())}getTopicFilter(){return T(this,Eh)}}Eh=new WeakMap;function qa(n,t){return n==null?null:typeof n[t]=="function"?n:n.provider&&typeof n.provider[t]=="function"?n.provider:null}function Qa(n){return n==null?null:n.provider||null}async function JI(n,t){const e=ir.dereference(n,"overrides");K(typeof e=="object","invalid overrides parameter","overrides",n);const r=cp(e);return K(r.to==null||(t||[]).indexOf("to")>=0,"cannot override to","overrides.to",r.to),K(r.data==null||(t||[]).indexOf("data")>=0,"cannot override data","overrides.data",r.data),r.from&&(r.from=r.from),r}async function Wz(n,t,e){const r=qa(n,"resolveName"),i=up(r)?r:null;return await Promise.all(t.map((s,o)=>s.walkAsync(e[o],(c,u)=>(u=ir.dereference(u,c),c==="address"?wr(u,i):u))))}function Zz(n){const t=async function(o){const c=await JI(o,["data"]);c.to=await n.getAddress(),c.from&&(c.from=await wr(c.from,YI(n.runner)));const u=n.interface,f=Ct(c.value||WI,"overrides.value")===WI,h=(c.data||"0x")==="0x";u.fallback&&!u.fallback.payable&&u.receive&&!h&&!f&&K(!1,"cannot send data to receive or send value to non-payable fallback","overrides",o),K(u.fallback||h,"cannot send data to receive-only contract","overrides.data",c.data);const y=u.receive||u.fallback&&u.fallback.payable;return K(y||f,"cannot send value to non-payable fallback","overrides.value",c.value),K(u.fallback||h,"cannot send data to receive-only contract","overrides.data",c.data),c},e=async function(o){const c=qa(n.runner,"call");ht(ZI(c),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const u=await t(o);try{return await c.call(u)}catch(f){throw Sm(f)&&f.data?n.interface.makeError(f.data,u):f}},r=async function(o){const c=n.runner;ht(QI(c),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const u=await c.sendTransaction(await t(o)),f=Qa(n.runner);return new bw(n.interface,f,u)},i=async function(o){const c=qa(n.runner,"estimateGas");return ht(qI(c),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await c.estimateGas(await t(o))},s=async o=>await r(o);return $t(s,{_contract:n,estimateGas:i,populateTransaction:t,send:r,staticCall:e}),s}function qz(n,t){const e=function(...f){const h=n.interface.getFunction(t,f);return ht(h,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:t,args:f}}),h},r=async function(...f){const h=e(...f);let y={};if(h.inputs.length+1===f.length&&(y=await JI(f.pop()),y.from&&(y.from=await wr(y.from,YI(n.runner)))),h.inputs.length!==f.length)throw new Error("internal error: fragment inputs doesn't match arguments; should not happen");const A=await Wz(n.runner,h.inputs,f);return Object.assign({},y,await pr({to:n.getAddress(),data:n.interface.encodeFunctionData(h,A)}))},i=async function(...f){const h=await c(...f);return h.length===1?h[0]:h},s=async function(...f){const h=n.runner;ht(QI(h),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});const y=await h.sendTransaction(await r(...f)),A=Qa(n.runner);return new bw(n.interface,A,y)},o=async function(...f){const h=qa(n.runner,"estimateGas");return ht(qI(h),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await h.estimateGas(await r(...f))},c=async function(...f){const h=qa(n.runner,"call");ht(ZI(h),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});const y=await r(...f);let A="0x";try{A=await h.call(y)}catch(R){throw Sm(R)&&R.data?n.interface.makeError(R.data,y):R}const b=e(...f);return n.interface.decodeFunctionResult(b,A)},u=async(...f)=>e(...f).constant?await i(...f):await s(...f);return $t(u,{name:n.interface.getFunctionName(t),_contract:n,_key:t,getFragment:e,estimateGas:o,populateTransaction:r,send:s,staticCall:i,staticCallResult:c}),Object.defineProperty(u,"fragment",{configurable:!1,enumerable:!0,get:()=>{const f=n.interface.getFunction(t);return ht(f,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:t}}),f}}),u}function Qz(n,t){const e=function(...i){const s=n.interface.getEvent(t,i);return ht(s,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:t,args:i}}),s},r=function(...i){return new jz(n,e(...i),i)};return $t(r,{name:n.interface.getEventName(t),_contract:n,_key:t,getFragment:e}),Object.defineProperty(r,"fragment",{configurable:!1,enumerable:!0,get:()=>{const i=n.interface.getEvent(t);return ht(i,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:t}}),i}}),r}const lp=Symbol.for("_ethersInternal_contract"),XI=new WeakMap;function Yz(n,t){XI.set(n[lp],t)}function Gr(n){return XI.get(n[lp])}function Jz(n){return n&&typeof n=="object"&&"getTopicFilter"in n&&typeof n.getTopicFilter=="function"&&n.fragment}async function _w(n,t){let e,r=null;if(Array.isArray(t)){const s=function(o){if(ze(o,32))return o;const c=n.interface.getEvent(o);return K(c,"unknown fragment","name",o),c.topicHash};e=t.map(o=>o==null?null:Array.isArray(o)?o.map(s):s(o))}else t==="*"?e=[null]:typeof t=="string"?ze(t,32)?e=[t]:(r=n.interface.getEvent(t),K(r,"unknown fragment","event",t),e=[r.topicHash]):Jz(t)?e=await t.getTopicFilter():"fragment"in t?(r=t.fragment,e=[r.topicHash]):K(!1,"unknown event name","event",t);e=e.map(s=>{if(s==null)return null;if(Array.isArray(s)){const o=Array.from(new Set(s.map(c=>c.toLowerCase())).values());return o.length===1?o[0]:(o.sort(),o)}return s.toLowerCase()});const i=e.map(s=>s==null?"null":Array.isArray(s)?s.join("|"):s).join("&");return{fragment:r,tag:i,topics:e}}async function hh(n,t){const{subs:e}=Gr(n);return e.get((await _w(n,t)).tag)||null}async function tk(n,t,e){const r=Qa(n.runner);ht(r,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:t});const{fragment:i,tag:s,topics:o}=await _w(n,e),{addr:c,subs:u}=Gr(n);let f=u.get(s);if(!f){const y={address:c||n,topics:o},A=S=>{let B=i;if(B==null)try{B=n.interface.getEvent(S.topics[0])}catch{}if(B){const H=B,U=i?n.interface.decodeEventLog(i,S.data,S.topics):[];Ew(n,e,U,G=>new Kz(n,G,e,H,S))}else Ew(n,e,[],H=>new jI(n,H,e,S))};let b=[];f={tag:s,listeners:[],start:()=>{b.length||b.push(r.on(y,A))},stop:async()=>{if(b.length==0)return;let S=b;b=[],await Promise.all(S),r.off(y,A)}},u.set(s,f)}return f}let Aw=Promise.resolve();async function Xz(n,t,e,r){await Aw;const i=await hh(n,t);if(!i)return!1;const s=i.listeners.length;return i.listeners=i.listeners.filter(({listener:o,once:c})=>{const u=Array.from(e);r&&u.push(r(c?null:o));try{o.call(n,...u)}catch{}return!c}),i.listeners.length===0&&(i.stop(),Gr(n).subs.delete(i.tag)),s>0}async function Ew(n,t,e,r){try{await Aw}catch{}const i=Xz(n,t,e,r);return Aw=i,await i}const fp=["then"];bk=lp;const vh=class vh{constructor(t,e,r,i){Z(this,"target");Z(this,"interface");Z(this,"runner");Z(this,"filters");Z(this,bk);Z(this,"fallback");K(typeof t=="string"||PS(t),"invalid value for Contract target","target",t),r==null&&(r=null);const s=mw.from(e);$t(this,{target:t,runner:r,interface:s}),Object.defineProperty(this,lp,{value:{}});let o,c=null,u=null;if(i){const y=Qa(r);u=new bw(this.interface,y,i)}let f=new Map;if(typeof t=="string")if(ze(t))c=t,o=Promise.resolve(t);else{const y=qa(r,"resolveName");if(!up(y))throw Qe("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});o=y.resolveName(t).then(A=>{if(A==null)throw Qe("an ENS name used for a contract target must be correctly configured","UNCONFIGURED_NAME",{value:t});return Gr(this).addr=A,A})}else o=t.getAddress().then(y=>{if(y==null)throw new Error("TODO");return Gr(this).addr=y,y});Yz(this,{addrPromise:o,addr:c,deployTx:u,subs:f});const h=new Proxy({},{get:(y,A,b)=>{if(typeof A=="symbol"||fp.indexOf(A)>=0)return Reflect.get(y,A,b);try{return this.getEvent(A)}catch(R){if(!Zn(R,"INVALID_ARGUMENT")||R.argument!=="key")throw R}},has:(y,A)=>fp.indexOf(A)>=0?Reflect.has(y,A):Reflect.has(y,A)||this.interface.hasEvent(String(A))});return $t(this,{filters:h}),$t(this,{fallback:s.receive||s.fallback?Zz(this):null}),new Proxy(this,{get:(y,A,b)=>{if(typeof A=="symbol"||A in y||fp.indexOf(A)>=0)return Reflect.get(y,A,b);try{return y.getFunction(A)}catch(R){if(!Zn(R,"INVALID_ARGUMENT")||R.argument!=="key")throw R}},has:(y,A)=>typeof A=="symbol"||A in y||fp.indexOf(A)>=0?Reflect.has(y,A):y.interface.hasFunction(A)})}connect(t){return new vh(this.target,this.interface,t)}attach(t){return new vh(t,this.interface,this.runner)}async getAddress(){return await Gr(this).addrPromise}async getDeployedCode(){const t=Qa(this.runner);ht(t,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});const e=await t.getCode(await this.getAddress());return e==="0x"?null:e}async waitForDeployment(){const t=this.deploymentTransaction();if(t)return await t.wait(),this;if(await this.getDeployedCode()!=null)return this;const r=Qa(this.runner);return ht(r!=null,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"}),new Promise((i,s)=>{const o=async()=>{try{if(await this.getDeployedCode()!=null)return i(this);r.once("block",o)}catch(c){s(c)}};o()})}deploymentTransaction(){return Gr(this).deployTx}getFunction(t){return typeof t!="string"&&(t=t.format()),qz(this,t)}getEvent(t){return typeof t!="string"&&(t=t.format()),Qz(this,t)}async queryTransaction(t){throw new Error("@TODO")}async queryFilter(t,e,r){e==null&&(e=0),r==null&&(r="latest");const{addr:i,addrPromise:s}=Gr(this),o=i||await s,{fragment:c,topics:u}=await _w(this,t),f={address:o,topics:u,fromBlock:e,toBlock:r},h=Qa(this.runner);return ht(h,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"}),(await h.getLogs(f)).map(y=>{let A=c;if(A==null)try{A=this.interface.getEvent(y.topics[0])}catch{}if(A)try{return new ww(y,this.interface,A)}catch(b){return new KI(y,b)}return new lh(y,h)})}async on(t,e){const r=await tk(this,"on",t);return r.listeners.push({listener:e,once:!1}),r.start(),this}async once(t,e){const r=await tk(this,"once",t);return r.listeners.push({listener:e,once:!0}),r.start(),this}async emit(t,...e){return await Ew(this,t,e,null)}async listenerCount(t){if(t){const i=await hh(this,t);return i?i.listeners.length:0}const{subs:e}=Gr(this);let r=0;for(const{listeners:i}of e.values())r+=i.length;return r}async listeners(t){if(t){const i=await hh(this,t);return i?i.listeners.map(({listener:s})=>s):[]}const{subs:e}=Gr(this);let r=[];for(const{listeners:i}of e.values())r=r.concat(i.map(({listener:s})=>s));return r}async off(t,e){const r=await hh(this,t);if(!r)return this;if(e){const i=r.listeners.map(({listener:s})=>s).indexOf(e);i>=0&&r.listeners.splice(i,1)}return(e==null||r.listeners.length===0)&&(r.stop(),Gr(this).subs.delete(r.tag)),this}async removeAllListeners(t){if(t){const e=await hh(this,t);if(!e)return this;e.stop(),Gr(this).subs.delete(e.tag)}else{const{subs:e}=Gr(this);for(const{tag:r,stop:i}of e.values())i(),e.delete(r)}return this}async addListener(t,e){return await this.on(t,e)}async removeListener(t,e){return await this.off(t,e)}static buildClass(t){class e extends vh{constructor(i,s=null){super(i,t,s)}}return e}static from(t,e,r){return r==null&&(r=null),new this(t,e,r)}};let vw=vh;function tG(){return vw}class Du extends tG(){}function xw(n){return n.match(/^ipfs:\/\/ipfs\//i)?n=n.substring(12):n.match(/^ipfs:\/\//i)?n=n.substring(7):K(!1,"unsupported IPFS format","link",n),`https://gateway.ipfs.io/ipfs/${n}`}class eG{constructor(t){Z(this,"name");$t(this,{name:t})}connect(t){return this}supportsCoinType(t){return!1}async encodeAddress(t,e){throw new Error("unsupported coin")}async decodeAddress(t,e){throw new Error("unsupported coin")}}const ek=new RegExp("^(ipfs)://(.*)$","i"),nk=[new RegExp("^(https)://(.*)$","i"),new RegExp("^(data):(.*)$","i"),ek,new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")],gl=class gl{constructor(t,e,r){nt(this,zo);Z(this,"provider");Z(this,"address");Z(this,"name");nt(this,Ho);nt(this,hc);$t(this,{provider:t,address:e,name:r}),$(this,Ho,null),$(this,hc,new Du(e,["function supportsInterface(bytes4) view returns (bool)","function resolve(bytes, bytes) view returns (bytes)","function addr(bytes32) view returns (address)","function addr(bytes32, uint) view returns (bytes)","function text(bytes32, string) view returns (string)","function contenthash(bytes32) view returns (bytes)"],t))}async supportsWildcard(){return T(this,Ho)==null&&$(this,Ho,(async()=>{try{return await T(this,hc).supportsInterface("0x9061b923")}catch(t){if(Zn(t,"CALL_EXCEPTION"))return!1;throw $(this,Ho,null),t}})()),await T(this,Ho)}async getAddress(t){if(t==null&&(t=60),t===60)try{const s=await _t(this,zo,$l).call(this,"addr(bytes32)");return s==null||s===Xf?null:s}catch(s){if(Zn(s,"CALL_EXCEPTION"))return null;throw s}if(t>=0&&t<2147483648){let s=t+2147483648;const o=await _t(this,zo,$l).call(this,"addr(bytes32,uint)",[s]);if(ze(o,20))return Me(o)}let e=null;for(const s of this.provider.plugins)if(s instanceof eG&&s.supportsCoinType(t)){e=s;break}if(e==null)return null;const r=await _t(this,zo,$l).call(this,"addr(bytes32,uint)",[t]);if(r==null||r==="0x")return null;const i=await e.decodeAddress(t,r);if(i!=null)return i;ht(!1,"invalid coin data","UNSUPPORTED_OPERATION",{operation:`getAddress(${t})`,info:{coinType:t,data:r}})}async getText(t){const e=await _t(this,zo,$l).call(this,"text(bytes32,string)",[t]);return e==null||e==="0x"?null:e}async getContentHash(){const t=await _t(this,zo,$l).call(this,"contenthash(bytes32)");if(t==null||t==="0x")return null;const e=t.match(/^0x(e3010170|e5010172)(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(e){const i=e[1]==="e3010170"?"ipfs":"ipns",s=parseInt(e[4],16);if(e[5].length===s*2)return`${i}://${x7("0x"+e[2])}`}const r=t.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(r&&r[1].length===64)return`bzz://${r[1]}`;ht(!1,"invalid or unsupported content hash data","UNSUPPORTED_OPERATION",{operation:"getContentHash()",info:{data:t}})}async getAvatar(){return(await this._getAvatar()).url}async _getAvatar(){const t=[{type:"name",value:this.name}];try{const e=await this.getText("avatar");if(e==null)return t.push({type:"!avatar",value:""}),{url:null,linkage:t};t.push({type:"avatar",value:e});for(let r=0;r<nk.length;r++){const i=e.match(nk[r]);if(i==null)continue;const s=i[1].toLowerCase();switch(s){case"https":case"data":return t.push({type:"url",value:e}),{linkage:t,url:e};case"ipfs":{const o=xw(e);return t.push({type:"ipfs",value:e}),t.push({type:"url",value:o}),{linkage:t,url:o}}case"erc721":case"erc1155":{const o=s==="erc721"?"tokenURI(uint256)":"uri(uint256)";t.push({type:s,value:e});const c=await this.getAddress();if(c==null)return t.push({type:"!owner",value:""}),{url:null,linkage:t};const u=(i[2]||"").split("/");if(u.length!==2)return t.push({type:`!${s}caip`,value:i[2]||""}),{url:null,linkage:t};const f=u[1],h=new Du(u[0],["function tokenURI(uint) view returns (string)","function ownerOf(uint) view returns (address)","function uri(uint) view returns (string)","function balanceOf(address, uint256) view returns (uint)"],this.provider);if(s==="erc721"){const k=await h.ownerOf(f);if(c!==k)return t.push({type:"!owner",value:k}),{url:null,linkage:t};t.push({type:"owner",value:k})}else if(s==="erc1155"){const k=await h.balanceOf(c,f);if(!k)return t.push({type:"!balance",value:"0"}),{url:null,linkage:t};t.push({type:"balance",value:k.toString()})}let y=await h[o](f);if(y==null||y==="0x")return t.push({type:"!metadata-url",value:""}),{url:null,linkage:t};t.push({type:"metadata-url-base",value:y}),s==="erc1155"&&(y=y.replace("{id}",So(f,32).substring(2)),t.push({type:"metadata-url-expanded",value:y})),y.match(/^ipfs:/i)&&(y=xw(y)),t.push({type:"metadata-url",value:y});let A={};const b=await new Ns(y).send();b.assertOk();try{A=b.bodyJson}catch{try{t.push({type:"!metadata",value:b.bodyText})}catch{const B=b.body;return B&&t.push({type:"!metadata",value:Tt(B)}),{url:null,linkage:t}}return{url:null,linkage:t}}if(!A)return t.push({type:"!metadata",value:""}),{url:null,linkage:t};t.push({type:"metadata",value:JSON.stringify(A)});let R=A.image;if(typeof R!="string")return t.push({type:"!imageUrl",value:""}),{url:null,linkage:t};if(!R.match(/^(https:\/\/|data:)/i)){if(R.match(ek)==null)return t.push({type:"!imageUrl-ipfs",value:R}),{url:null,linkage:t};t.push({type:"imageUrl-ipfs",value:R}),R=xw(R)}return t.push({type:"url",value:R}),{linkage:t,url:R}}}}}catch{}return{linkage:t,url:null}}static async getEnsAddress(t){const e=await t.getNetwork(),r=e.getPlugin("org.ethers.plugins.network.Ens");return ht(r,"network does not support ENS","UNSUPPORTED_OPERATION",{operation:"getEnsAddress",info:{network:e}}),r.address}static async fromName(t,e){var i;let r=e;for(;;){if(r===""||r==="."||e!=="eth"&&r==="eth")return null;const s=await _t(i=gl,xp,CT).call(i,t,r);if(s!=null){const o=new gl(t,s,e);return r!==e&&!await o.supportsWildcard()?null:o}r=r.split(".").slice(1).join(".")}}};Ho=new WeakMap,hc=new WeakMap,zo=new WeakSet,$l=async function(t,e){e=(e||[]).slice();const r=T(this,hc).interface;e.unshift(cw(this.name));let i=null;await this.supportsWildcard()&&(i=r.getFunction(t),ht(i,"missing fragment","UNKNOWN_ERROR",{info:{funcName:t}}),e=[nz(this.name,255),r.encodeFunctionData(i,e)],t="resolve(bytes,bytes)"),e.push({enableCcipRead:!0});try{const s=await T(this,hc)[t](...e);return i?r.decodeFunctionResult(i,s)[0]:s}catch(s){if(!Zn(s,"CALL_EXCEPTION"))throw s}return null},xp=new WeakSet,CT=async function(t,e){const r=await gl.getEnsAddress(t);try{const s=await new Du(r,["function resolver(bytes32) view returns (address)"],t).resolver(cw(e),{enableCcipRead:!0});return s===Xf?null:s}catch(i){throw i}return null},nt(gl,xp);let hp=gl;const rk=BigInt(0);function ye(n,t){return function(e){return e==null?t:n(e)}}function dp(n,t){return e=>{if(t&&e==null)return null;if(!Array.isArray(e))throw new Error("not an array");return e.map(r=>n(r))}}function dh(n,t){return e=>{const r={};for(const i in n){let s=i;if(t&&i in t&&!(s in e)){for(const o of t[i])if(o in e){s=o;break}}try{const o=n[i](e[s]);o!==void 0&&(r[i]=o)}catch(o){const c=o instanceof Error?o.message:"not-an-error";ht(!1,`invalid value for value.${i} (${c})`,"BAD_DATA",{value:e})}}return r}}function nG(n){switch(n){case!0:case"true":return!0;case!1:case"false":return!1}K(!1,`invalid boolean; ${JSON.stringify(n)}`,"value",n)}function Fu(n){return K(ze(n,!0),"invalid data","value",n),n}function Qn(n){return K(ze(n,32),"invalid hash","value",n),n}const rG=dh({address:Me,blockHash:Qn,blockNumber:ie,data:Fu,index:ie,removed:ye(nG,!1),topics:dp(Qn),transactionHash:Qn,transactionIndex:ie},{index:["logIndex"]});function iG(n){return rG(n)}const sG=dh({hash:ye(Qn),parentHash:Qn,parentBeaconBlockRoot:ye(Qn,null),number:ie,timestamp:ie,nonce:ye(Fu),difficulty:Ct,gasLimit:Ct,gasUsed:Ct,stateRoot:ye(Qn,null),receiptsRoot:ye(Qn,null),blobGasUsed:ye(Ct,null),excessBlobGas:ye(Ct,null),miner:ye(Me),prevRandao:ye(Qn,null),extraData:Fu,baseFeePerGas:ye(Ct)},{prevRandao:["mixHash"]});function oG(n){const t=sG(n);return t.transactions=n.transactions.map(e=>typeof e=="string"?e:ik(e)),t}const aG=dh({transactionIndex:ie,blockNumber:ie,transactionHash:Qn,address:Me,topics:dp(Qn),data:Fu,index:ie,blockHash:Qn},{index:["logIndex"]});function cG(n){return aG(n)}const uG=dh({to:ye(Me,null),from:ye(Me,null),contractAddress:ye(Me,null),index:ie,root:ye(Tt),gasUsed:Ct,blobGasUsed:ye(Ct,null),logsBloom:ye(Fu),blockHash:Qn,hash:Qn,logs:dp(cG),blockNumber:ie,cumulativeGasUsed:Ct,effectiveGasPrice:ye(Ct),blobGasPrice:ye(Ct,null),status:ye(ie),type:ye(ie,0)},{effectiveGasPrice:["gasPrice"],hash:["transactionHash"],index:["transactionIndex"]});function lG(n){return uG(n)}function ik(n){n.to&&Ct(n.to)===rk&&(n.to="0x0000000000000000000000000000000000000000");const t=dh({hash:Qn,index:ye(ie,void 0),type:e=>e==="0x"||e==null?0:ie(e),accessList:ye(Ka,null),blobVersionedHashes:ye(dp(Qn,!0),null),blockHash:ye(Qn,null),blockNumber:ye(ie,null),transactionIndex:ye(ie,null),from:Me,gasPrice:ye(Ct),maxPriorityFeePerGas:ye(Ct),maxFeePerGas:ye(Ct),maxFeePerBlobGas:ye(Ct,null),gasLimit:Ct,to:ye(Me,null),value:Ct,nonce:ie,data:Fu,creates:ye(Me,null),chainId:ye(Ct,null)},{data:["input"],gasLimit:["gas"],index:["transactionIndex"]})(n);if(t.to==null&&t.creates==null&&(t.creates=sH(t)),(n.type===1||n.type===2)&&n.accessList==null&&(t.accessList=[]),n.signature?t.signature=_i.from(n.signature):t.signature=_i.from(n),t.chainId==null){const e=t.signature.legacyChainId;e!=null&&(t.chainId=e)}return t.blockHash&&Ct(t.blockHash)===rk&&(t.blockHash=null),t}const fG="0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e";class ph{constructor(t){Z(this,"name");$t(this,{name:t})}clone(){return new ph(this.name)}}class pp extends ph{constructor(e,r){e==null&&(e=0);super(`org.ethers.network.plugins.GasCost#${e||0}`);Z(this,"effectiveBlock");Z(this,"txBase");Z(this,"txCreate");Z(this,"txDataZero");Z(this,"txDataNonzero");Z(this,"txAccessListStorageKey");Z(this,"txAccessListAddress");const i={effectiveBlock:e};function s(o,c){let u=(r||{})[o];u==null&&(u=c),K(typeof u=="number",`invalud value for ${o}`,"costs",r),i[o]=u}s("txBase",21e3),s("txCreate",32e3),s("txDataZero",4),s("txDataNonzero",16),s("txAccessListStorageKey",1900),s("txAccessListAddress",2400),$t(this,i)}clone(){return new pp(this.effectiveBlock,this)}}class gp extends ph{constructor(e,r){super("org.ethers.plugins.network.Ens");Z(this,"address");Z(this,"targetNetwork");$t(this,{address:e||fG,targetNetwork:r??1})}clone(){return new gp(this.address,this.targetNetwork)}}class hG extends ph{constructor(e,r){super("org.ethers.plugins.network.FetchUrlFeeDataPlugin");nt(this,xh);nt(this,Rh);$(this,xh,e),$(this,Rh,r)}get url(){return T(this,xh)}get processFunc(){return T(this,Rh)}clone(){return this}}xh=new WeakMap,Rh=new WeakMap;const Rw=new Map,wl=class wl{constructor(t,e){nt(this,yl);nt(this,ml);nt(this,Go);$(this,yl,t),$(this,ml,Ct(e)),$(this,Go,new Map)}toJSON(){return{name:this.name,chainId:String(this.chainId)}}get name(){return T(this,yl)}set name(t){$(this,yl,t)}get chainId(){return T(this,ml)}set chainId(t){$(this,ml,Ct(t,"chainId"))}matches(t){if(t==null)return!1;if(typeof t=="string"){try{return this.chainId===Ct(t)}catch{}return this.name===t}if(typeof t=="number"||typeof t=="bigint"){try{return this.chainId===Ct(t)}catch{}return!1}if(typeof t=="object"){if(t.chainId!=null){try{return this.chainId===Ct(t.chainId)}catch{}return!1}return t.name!=null?this.name===t.name:!1}return!1}get plugins(){return Array.from(T(this,Go).values())}attachPlugin(t){if(T(this,Go).get(t.name))throw new Error(`cannot replace existing plugin: ${t.name} `);return T(this,Go).set(t.name,t.clone()),this}getPlugin(t){return T(this,Go).get(t)||null}getPlugins(t){return this.plugins.filter(e=>e.name.split("#")[0]===t)}clone(){const t=new wl(this.name,this.chainId);return this.plugins.forEach(e=>{t.attachPlugin(e.clone())}),t}computeIntrinsicGas(t){const e=this.getPlugin("org.ethers.plugins.network.GasCost")||new pp;let r=e.txBase;if(t.to==null&&(r+=e.txCreate),t.data)for(let i=2;i<t.data.length;i+=2)t.data.substring(i,i+2)==="00"?r+=e.txDataZero:r+=e.txDataNonzero;if(t.accessList){const i=Ka(t.accessList);for(const s in i)r+=e.txAccessListAddress+e.txAccessListStorageKey*i[s].storageKeys.length}return r}static from(t){if(dG(),t==null)return wl.from("mainnet");if(typeof t=="number"&&(t=BigInt(t)),typeof t=="string"||typeof t=="bigint"){const e=Rw.get(t);if(e)return e();if(typeof t=="bigint")return new wl("unknown",t);K(!1,"unknown network","network",t)}if(typeof t.clone=="function")return t.clone();if(typeof t=="object"){K(typeof t.name=="string"&&typeof t.chainId=="number","invalid network object name or chainId","network",t);const e=new wl(t.name,t.chainId);return(t.ensAddress||t.ensNetwork!=null)&&e.attachPlugin(new gp(t.ensAddress,t.ensNetwork)),e}K(!1,"invalid network","network",t)}static register(t,e){typeof t=="number"&&(t=BigInt(t));const r=Rw.get(t);r&&K(!1,`conflicting network for ${JSON.stringify(r.name)}`,"nameOrChainId",t),Rw.set(t,e)}};yl=new WeakMap,ml=new WeakMap,Go=new WeakMap;let Xi=wl;function sk(n,t){const e=String(n);if(!e.match(/^[0-9.]+$/))throw new Error(`invalid gwei value: ${n}`);const r=e.split(".");if(r.length===1&&r.push(""),r.length!==2)throw new Error(`invalid gwei value: ${n}`);for(;r[1].length<t;)r[1]+="0";if(r[1].length>9){let i=BigInt(r[1].substring(0,9));r[1].substring(9).match(/^0+$/)||i++,r[1]=i.toString()}return BigInt(r[0]+r[1])}function ok(n){return new hG(n,async(t,e,r)=>{r.setHeader("User-Agent","ethers");let i;try{const[s,o]=await Promise.all([r.send(),t()]);i=s;const c=i.bodyJson.standard;return{gasPrice:o.gasPrice,maxFeePerGas:sk(c.maxFee,9),maxPriorityFeePerGas:sk(c.maxPriorityFee,9)}}catch(s){ht(!1,`error encountered with polygon gas station (${JSON.stringify(r.url)})`,"SERVER_ERROR",{request:r,response:i,error:s})}})}let ak=!1;function dG(){if(ak)return;ak=!0;function n(t,e,r){const i=function(){const s=new Xi(t,e);return r.ensNetwork!=null&&s.attachPlugin(new gp(null,r.ensNetwork)),s.attachPlugin(new pp),(r.plugins||[]).forEach(o=>{s.attachPlugin(o)}),s};Xi.register(t,i),Xi.register(e,i),r.altNames&&r.altNames.forEach(s=>{Xi.register(s,i)})}n("mainnet",1,{ensNetwork:1,altNames:["homestead"]}),n("ropsten",3,{ensNetwork:3}),n("rinkeby",4,{ensNetwork:4}),n("goerli",5,{ensNetwork:5}),n("kovan",42,{ensNetwork:42}),n("sepolia",11155111,{ensNetwork:11155111}),n("holesky",17e3,{ensNetwork:17e3}),n("classic",61,{}),n("classicKotti",6,{}),n("arbitrum",42161,{ensNetwork:1}),n("arbitrum-goerli",421613,{}),n("arbitrum-sepolia",421614,{}),n("base",8453,{ensNetwork:1}),n("base-goerli",84531,{}),n("base-sepolia",84532,{}),n("bnb",56,{ensNetwork:1}),n("bnbt",97,{}),n("linea",59144,{ensNetwork:1}),n("linea-goerli",59140,{}),n("linea-sepolia",59141,{}),n("matic",137,{ensNetwork:1,plugins:[ok("https://gasstation.polygon.technology/v2")]}),n("matic-amoy",80002,{}),n("matic-mumbai",80001,{altNames:["maticMumbai","maticmum"],plugins:[ok("https://gasstation-testnet.polygon.technology/v2")]}),n("optimism",10,{ensNetwork:1,plugins:[]}),n("optimism-goerli",420,{}),n("optimism-sepolia",11155420,{}),n("xdai",100,{ensNetwork:1})}function Sw(n){return JSON.parse(JSON.stringify(n))}class pG{constructor(t){nt(this,bl);nt(this,Zs);nt(this,oi);nt(this,Vo);nt(this,os);$(this,Zs,t),$(this,oi,null),$(this,Vo,4e3),$(this,os,-2)}get pollingInterval(){return T(this,Vo)}set pollingInterval(t){$(this,Vo,t)}start(){T(this,oi)||($(this,oi,T(this,Zs)._setTimeout(_t(this,bl,Wp).bind(this),T(this,Vo))),_t(this,bl,Wp).call(this))}stop(){T(this,oi)&&(T(this,Zs)._clearTimeout(T(this,oi)),$(this,oi,null))}pause(t){this.stop(),t&&$(this,os,-2)}resume(){this.start()}}Zs=new WeakMap,oi=new WeakMap,Vo=new WeakMap,os=new WeakMap,bl=new WeakSet,Wp=async function(){try{const t=await T(this,Zs).getBlockNumber();if(T(this,os)===-2){$(this,os,t);return}if(t!==T(this,os)){for(let e=T(this,os)+1;e<=t;e++){if(T(this,oi)==null)return;await T(this,Zs).emit("block",e)}$(this,os,t)}}catch{}T(this,oi)!=null&&$(this,oi,T(this,Zs)._setTimeout(_t(this,bl,Wp).bind(this),T(this,Vo)))};class Iw{constructor(t){nt(this,dc);nt(this,pc);nt(this,Ko);$(this,dc,t),$(this,Ko,!1),$(this,pc,e=>{this._poll(e,T(this,dc))})}async _poll(t,e){throw new Error("sub-classes must override this")}start(){T(this,Ko)||($(this,Ko,!0),T(this,pc).call(this,-2),T(this,dc).on("block",T(this,pc)))}stop(){T(this,Ko)&&($(this,Ko,!1),T(this,dc).off("block",T(this,pc)))}pause(t){this.stop()}resume(){this.start()}}dc=new WeakMap,pc=new WeakMap,Ko=new WeakMap;class gG extends Iw{constructor(e,r){super(e);nt(this,_l);nt(this,qs);$(this,_l,r),$(this,qs,-2)}pause(e){e&&$(this,qs,-2),super.pause(e)}async _poll(e,r){const i=await r.getBlock(T(this,_l));i!=null&&(T(this,qs)===-2?$(this,qs,i.number):i.number>T(this,qs)&&(r.emit(T(this,_l),i.number),$(this,qs,i.number)))}}_l=new WeakMap,qs=new WeakMap;class yG extends Iw{constructor(e,r){super(e);nt(this,Rp);$(this,Rp,Sw(r))}async _poll(e,r){throw new Error("@TODO")}}Rp=new WeakMap;class mG extends Iw{constructor(e,r){super(e);nt(this,Al);$(this,Al,r)}async _poll(e,r){const i=await r.getTransactionReceipt(T(this,Al));i&&r.emit(T(this,Al),i)}}Al=new WeakMap;class kw{constructor(t,e){nt(this,Sp);nt(this,Qs);nt(this,El);nt(this,vl);nt(this,jo);nt(this,ai);$(this,Qs,t),$(this,El,Sw(e)),$(this,vl,_t(this,Sp,BT).bind(this)),$(this,jo,!1),$(this,ai,-2)}start(){T(this,jo)||($(this,jo,!0),T(this,ai)===-2&&T(this,Qs).getBlockNumber().then(t=>{$(this,ai,t)}),T(this,Qs).on("block",T(this,vl)))}stop(){T(this,jo)&&($(this,jo,!1),T(this,Qs).off("block",T(this,vl)))}pause(t){this.stop(),t&&$(this,ai,-2)}resume(){this.start()}}Qs=new WeakMap,El=new WeakMap,vl=new WeakMap,jo=new WeakMap,ai=new WeakMap,Sp=new WeakSet,BT=async function(t){if(T(this,ai)===-2)return;const e=Sw(T(this,El));e.fromBlock=T(this,ai)+1,e.toBlock=t;const r=await T(this,Qs).getLogs(e);if(r.length===0){T(this,ai)<t-60&&$(this,ai,t-60);return}for(const i of r)T(this,Qs).emit(T(this,El),i),$(this,ai,i.blockNumber)};const wG=BigInt(2),bG=10;function yp(n){return n&&typeof n.then=="function"}function mp(n,t){return n+":"+JSON.stringify(t,(e,r)=>{if(r==null)return"null";if(typeof r=="bigint")return`bigint:${r.toString()}`;if(typeof r=="string")return r.toLowerCase();if(typeof r=="object"&&!Array.isArray(r)){const i=Object.keys(r);return i.sort(),i.reduce((s,o)=>(s[o]=r[o],s),{})}return r})}class wp{constructor(t){Z(this,"name");$t(this,{name:t})}start(){}stop(){}pause(t){}resume(){}}function _G(n){return JSON.parse(JSON.stringify(n))}function Tw(n){return n=Array.from(new Set(n).values()),n.sort(),n}async function Ow(n,t){if(n==null)throw new Error("invalid event");if(Array.isArray(n)&&(n={topics:n}),typeof n=="string")switch(n){case"block":case"debug":case"error":case"finalized":case"network":case"pending":case"safe":return{type:n,tag:n}}if(ze(n,32)){const e=n.toLowerCase();return{type:"transaction",tag:mp("tx",{hash:e}),hash:e}}if(n.orphan){const e=n;return{type:"orphan",tag:mp("orphan",e),filter:_G(e)}}if(n.address||n.topics){const e=n,r={topics:(e.topics||[]).map(i=>i==null?null:Array.isArray(i)?Tw(i.map(s=>s.toLowerCase())):i.toLowerCase())};if(e.address){const i=[],s=[],o=c=>{ze(c)?i.push(c):s.push((async()=>{i.push(await wr(c,t))})())};Array.isArray(e.address)?e.address.forEach(o):o(e.address),s.length&&await Promise.all(s),r.address=Tw(i.map(c=>c.toLowerCase()))}return{filter:r,tag:mp("event",r),type:"event"}}K(!1,"unknown ProviderEvent","event",n)}function Nw(){return new Date().getTime()}const AG={cacheTimeout:250,pollingInterval:4e3};class EG{constructor(t,e){nt(this,se);nt(this,or);nt(this,Wo);nt(this,ar);nt(this,xl);nt(this,Wr);nt(this,gc);nt(this,Zo);nt(this,Ys);nt(this,Sh);nt(this,ci);nt(this,Rl);nt(this,Sl);if($(this,Sl,Object.assign({},AG,e||{})),t==="any")$(this,gc,!0),$(this,Wr,null);else if(t){const r=Xi.from(t);$(this,gc,!1),$(this,Wr,Promise.resolve(r)),setTimeout(()=>{this.emit("network",r,null)},0)}else $(this,gc,!1),$(this,Wr,null);$(this,Ys,-1),$(this,Zo,new Map),$(this,or,new Map),$(this,Wo,new Map),$(this,ar,null),$(this,xl,!1),$(this,Sh,1),$(this,ci,new Map),$(this,Rl,!1)}get pollingInterval(){return T(this,Sl).pollingInterval}get provider(){return this}get plugins(){return Array.from(T(this,Wo).values())}attachPlugin(t){if(T(this,Wo).get(t.name))throw new Error(`cannot replace existing plugin: ${t.name} `);return T(this,Wo).set(t.name,t.connect(this)),this}getPlugin(t){return T(this,Wo).get(t)||null}get disableCcipRead(){return T(this,Rl)}set disableCcipRead(t){$(this,Rl,!!t)}async ccipReadFetch(t,e,r){if(this.disableCcipRead||r.length===0||t.to==null)return null;const i=t.to.toLowerCase(),s=e.toLowerCase(),o=[];for(let c=0;c<r.length;c++){const u=r[c],f=u.replace("{sender}",i).replace("{data}",s),h=new Ns(f);u.indexOf("{data}")===-1&&(h.body={data:s,sender:i}),this.emit("debug",{action:"sendCcipReadFetchRequest",request:h,index:c,urls:r});let y="unknown error",A;try{A=await h.send()}catch(b){o.push(b.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:h,result:{error:b}});continue}try{const b=A.bodyJson;if(b.data)return this.emit("debug",{action:"receiveCcipReadFetchResult",request:h,result:b}),b.data;b.message&&(y=b.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:h,result:b})}catch{}ht(A.statusCode<400||A.statusCode>=500,`response not found during CCIP fetch: ${y}`,"OFFCHAIN_FAULT",{reason:"404_MISSING_RESOURCE",transaction:t,info:{url:u,errorMessage:y}}),o.push(y)}ht(!1,`error encountered during CCIP fetch: ${o.map(c=>JSON.stringify(c)).join(", ")}`,"OFFCHAIN_FAULT",{reason:"500_SERVER_ERROR",transaction:t,info:{urls:r,errorMessages:o}})}_wrapBlock(t,e){return new Hz(oG(t),this)}_wrapLog(t,e){return new lh(iG(t),this)}_wrapTransactionReceipt(t,e){return new zI(lG(t),this)}_wrapTransactionResponse(t,e){return new fh(ik(t),this)}_detectNetwork(){ht(!1,"sub-classes must implement this","UNSUPPORTED_OPERATION",{operation:"_detectNetwork"})}async _perform(t){ht(!1,`unsupported method: ${t.method}`,"UNSUPPORTED_OPERATION",{operation:t.method,info:t})}async getBlockNumber(){const t=ie(await _t(this,se,Zr).call(this,{method:"getBlockNumber"}),"%response");return T(this,Ys)>=0&&$(this,Ys,t),t}_getAddress(t){return wr(t,this)}_getBlockTag(t){if(t==null)return"latest";switch(t){case"earliest":return"0x0";case"finalized":case"latest":case"pending":case"safe":return t}if(ze(t))return ze(t,32)?t:Ru(t);if(typeof t=="bigint"&&(t=ie(t,"blockTag")),typeof t=="number")return t>=0?Ru(t):T(this,Ys)>=0?Ru(T(this,Ys)+t):this.getBlockNumber().then(e=>Ru(e+t));K(!1,"invalid blockTag","blockTag",t)}_getFilter(t){const e=(t.topics||[]).map(u=>u==null?null:Array.isArray(u)?Tw(u.map(f=>f.toLowerCase())):u.toLowerCase()),r="blockHash"in t?t.blockHash:void 0,i=(u,f,h)=>{let y;switch(u.length){case 0:break;case 1:y=u[0];break;default:u.sort(),y=u}if(r&&(f!=null||h!=null))throw new Error("invalid filter");const A={};return y&&(A.address=y),e.length&&(A.topics=e),f&&(A.fromBlock=f),h&&(A.toBlock=h),r&&(A.blockHash=r),A};let s=[];if(t.address)if(Array.isArray(t.address))for(const u of t.address)s.push(this._getAddress(u));else s.push(this._getAddress(t.address));let o;"fromBlock"in t&&(o=this._getBlockTag(t.fromBlock));let c;return"toBlock"in t&&(c=this._getBlockTag(t.toBlock)),s.filter(u=>typeof u!="string").length||o!=null&&typeof o!="string"||c!=null&&typeof c!="string"?Promise.all([Promise.all(s),o,c]).then(u=>i(u[0],u[1],u[2])):i(s,o,c)}_getTransactionRequest(t){const e=cp(t),r=[];if(["to","from"].forEach(i=>{if(e[i]==null)return;const s=wr(e[i],this);yp(s)?r.push(async function(){e[i]=await s}()):e[i]=s}),e.blockTag!=null){const i=this._getBlockTag(e.blockTag);yp(i)?r.push(async function(){e.blockTag=await i}()):e.blockTag=i}return r.length?async function(){return await Promise.all(r),e}():e}async getNetwork(){if(T(this,Wr)==null){const i=(async()=>{try{const s=await this._detectNetwork();return this.emit("network",s,null),s}catch(s){throw T(this,Wr)===i&&$(this,Wr,null),s}})();return $(this,Wr,i),(await i).clone()}const t=T(this,Wr),[e,r]=await Promise.all([t,this._detectNetwork()]);return e.chainId!==r.chainId&&(T(this,gc)?(this.emit("network",r,e),T(this,Wr)===t&&$(this,Wr,Promise.resolve(r))):ht(!1,`network changed: ${e.chainId} => ${r.chainId} `,"NETWORK_ERROR",{event:"changed"})),e.clone()}async getFeeData(){const t=await this.getNetwork(),e=async()=>{const{_block:i,gasPrice:s,priorityFee:o}=await pr({_block:_t(this,se,lb).call(this,"latest",!1),gasPrice:(async()=>{try{const h=await _t(this,se,Zr).call(this,{method:"getGasPrice"});return Ct(h,"%response")}catch{}return null})(),priorityFee:(async()=>{try{const h=await _t(this,se,Zr).call(this,{method:"getPriorityFee"});return Ct(h,"%response")}catch{}return null})()});let c=null,u=null;const f=this._wrapBlock(i,t);return f&&f.baseFeePerGas&&(u=o??BigInt("1000000000"),c=f.baseFeePerGas*wG+u),new HI(s,c,u)},r=t.getPlugin("org.ethers.plugins.network.FetchUrlFeeDataPlugin");if(r){const i=new Ns(r.url),s=await r.processFunc(e,this,i);return new HI(s.gasPrice,s.maxFeePerGas,s.maxPriorityFeePerGas)}return await e()}async estimateGas(t){let e=this._getTransactionRequest(t);return yp(e)&&(e=await e),Ct(await _t(this,se,Zr).call(this,{method:"estimateGas",transaction:e}),"%response")}async call(t){const{tx:e,blockTag:r}=await pr({tx:this._getTransactionRequest(t),blockTag:this._getBlockTag(t.blockTag)});return await _t(this,se,ub).call(this,_t(this,se,cb).call(this,e,r,t.enableCcipRead?0:-1))}async getBalance(t,e){return Ct(await _t(this,se,sd).call(this,{method:"getBalance"},t,e),"%response")}async getTransactionCount(t,e){return ie(await _t(this,se,sd).call(this,{method:"getTransactionCount"},t,e),"%response")}async getCode(t,e){return Tt(await _t(this,se,sd).call(this,{method:"getCode"},t,e))}async getStorage(t,e,r){const i=Ct(e,"position");return Tt(await _t(this,se,sd).call(this,{method:"getStorage",position:i},t,r))}async broadcastTransaction(t){const{blockNumber:e,hash:r,network:i}=await pr({blockNumber:this.getBlockNumber(),hash:this._perform({method:"broadcastTransaction",signedTransaction:t}),network:this.getNetwork()}),s=rp.from(t);if(s.hash!==r)throw new Error("@TODO: the returned hash did not match");return this._wrapTransactionResponse(s,i).replaceableTransaction(e)}async getBlock(t,e){const{network:r,params:i}=await pr({network:this.getNetwork(),params:_t(this,se,lb).call(this,t,!!e)});return i==null?null:this._wrapBlock(i,r)}async getTransaction(t){const{network:e,params:r}=await pr({network:this.getNetwork(),params:_t(this,se,Zr).call(this,{method:"getTransaction",hash:t})});return r==null?null:this._wrapTransactionResponse(r,e)}async getTransactionReceipt(t){const{network:e,params:r}=await pr({network:this.getNetwork(),params:_t(this,se,Zr).call(this,{method:"getTransactionReceipt",hash:t})});if(r==null)return null;if(r.gasPrice==null&&r.effectiveGasPrice==null){const i=await _t(this,se,Zr).call(this,{method:"getTransaction",hash:t});if(i==null)throw new Error("report this; could not find tx or effectiveGasPrice");r.effectiveGasPrice=i.gasPrice}return this._wrapTransactionReceipt(r,e)}async getTransactionResult(t){const{result:e}=await pr({network:this.getNetwork(),result:_t(this,se,Zr).call(this,{method:"getTransactionResult",hash:t})});return e==null?null:Tt(e)}async getLogs(t){let e=this._getFilter(t);yp(e)&&(e=await e);const{network:r,params:i}=await pr({network:this.getNetwork(),params:_t(this,se,Zr).call(this,{method:"getLogs",filter:e})});return i.map(s=>this._wrapLog(s,r))}_getProvider(t){ht(!1,"provider cannot connect to target network","UNSUPPORTED_OPERATION",{operation:"_getProvider()"})}async getResolver(t){return await hp.fromName(this,t)}async getAvatar(t){const e=await this.getResolver(t);return e?await e.getAvatar():null}async resolveName(t){const e=await this.getResolver(t);return e?await e.getAddress():null}async lookupAddress(t){t=Me(t);const e=cw(t.substring(2).toLowerCase()+".addr.reverse");try{const r=await hp.getEnsAddress(this),s=await new Du(r,["function resolver(bytes32) view returns (address)"],this).resolver(e);if(s==null||s===Xf)return null;const c=await new Du(s,["function name(bytes32) view returns (string)"],this).name(e);return await this.resolveName(c)!==t?null:c}catch(r){if(Zn(r,"BAD_DATA")&&r.value==="0x"||Zn(r,"CALL_EXCEPTION"))return null;throw r}return null}async waitForTransaction(t,e,r){const i=e??1;return i===0?this.getTransactionReceipt(t):new Promise(async(s,o)=>{let c=null;const u=async f=>{try{const h=await this.getTransactionReceipt(t);if(h!=null&&f-h.blockNumber+1>=i){s(h),c&&(clearTimeout(c),c=null);return}}catch(h){console.log("EEE",h)}this.once("block",u)};r!=null&&(c=setTimeout(()=>{c!=null&&(c=null,this.off("block",u),o(Qe("timeout","TIMEOUT",{reason:"timeout"})))},r)),u(await this.getBlockNumber())})}async waitForBlock(t){ht(!1,"not implemented yet","NOT_IMPLEMENTED",{operation:"waitForBlock"})}_clearTimeout(t){const e=T(this,ci).get(t);e&&(e.timer&&clearTimeout(e.timer),T(this,ci).delete(t))}_setTimeout(t,e){e==null&&(e=0);const r=rd(this,Sh)._++,i=()=>{T(this,ci).delete(r),t()};if(this.paused)T(this,ci).set(r,{timer:null,func:i,time:e});else{const s=setTimeout(i,e);T(this,ci).set(r,{timer:s,func:i,time:Nw()})}return r}_forEachSubscriber(t){for(const e of T(this,or).values())t(e.subscriber)}_getSubscriber(t){switch(t.type){case"debug":case"error":case"network":return new wp(t.type);case"block":{const e=new pG(this);return e.pollingInterval=this.pollingInterval,e}case"safe":case"finalized":return new gG(this,t.type);case"event":return new kw(this,t.filter);case"transaction":return new mG(this,t.hash);case"orphan":return new yG(this,t.filter)}throw new Error(`unsupported event: ${t.type}`)}_recoverSubscriber(t,e){for(const r of T(this,or).values())if(r.subscriber===t){r.started&&r.subscriber.stop(),r.subscriber=e,r.started&&e.start(),T(this,ar)!=null&&e.pause(T(this,ar));break}}async on(t,e){const r=await _t(this,se,Zp).call(this,t);return r.listeners.push({listener:e,once:!1}),r.started||(r.subscriber.start(),r.started=!0,T(this,ar)!=null&&r.subscriber.pause(T(this,ar))),this}async once(t,e){const r=await _t(this,se,Zp).call(this,t);return r.listeners.push({listener:e,once:!0}),r.started||(r.subscriber.start(),r.started=!0,T(this,ar)!=null&&r.subscriber.pause(T(this,ar))),this}async emit(t,...e){const r=await _t(this,se,od).call(this,t,e);if(!r||r.listeners.length===0)return!1;const i=r.listeners.length;return r.listeners=r.listeners.filter(({listener:s,once:o})=>{const c=new xR(this,o?null:s,t);try{s.call(this,...e,c)}catch{}return!o}),r.listeners.length===0&&(r.started&&r.subscriber.stop(),T(this,or).delete(r.tag)),i>0}async listenerCount(t){if(t){const r=await _t(this,se,od).call(this,t);return r?r.listeners.length:0}let e=0;for(const{listeners:r}of T(this,or).values())e+=r.length;return e}async listeners(t){if(t){const r=await _t(this,se,od).call(this,t);return r?r.listeners.map(({listener:i})=>i):[]}let e=[];for(const{listeners:r}of T(this,or).values())e=e.concat(r.map(({listener:i})=>i));return e}async off(t,e){const r=await _t(this,se,od).call(this,t);if(!r)return this;if(e){const i=r.listeners.map(({listener:s})=>s).indexOf(e);i>=0&&r.listeners.splice(i,1)}return(!e||r.listeners.length===0)&&(r.started&&r.subscriber.stop(),T(this,or).delete(r.tag)),this}async removeAllListeners(t){if(t){const{tag:e,started:r,subscriber:i}=await _t(this,se,Zp).call(this,t);r&&i.stop(),T(this,or).delete(e)}else for(const[e,{started:r,subscriber:i}]of T(this,or))r&&i.stop(),T(this,or).delete(e);return this}async addListener(t,e){return await this.on(t,e)}async removeListener(t,e){return this.off(t,e)}get destroyed(){return T(this,xl)}destroy(){this.removeAllListeners();for(const t of T(this,ci).keys())this._clearTimeout(t);$(this,xl,!0)}get paused(){return T(this,ar)!=null}set paused(t){!!t!==this.paused&&(this.paused?this.resume():this.pause(!1))}pause(t){if($(this,Ys,-1),T(this,ar)!=null){if(T(this,ar)==!!t)return;ht(!1,"cannot change pause type; resume first","UNSUPPORTED_OPERATION",{operation:"pause"})}this._forEachSubscriber(e=>e.pause(t)),$(this,ar,!!t);for(const e of T(this,ci).values())e.timer&&clearTimeout(e.timer),e.time=Nw()-e.time}resume(){if(T(this,ar)!=null){this._forEachSubscriber(t=>t.resume()),$(this,ar,null);for(const t of T(this,ci).values()){let e=t.time;e<0&&(e=0),t.time=Nw(),setTimeout(t.func,e)}}}}or=new WeakMap,Wo=new WeakMap,ar=new WeakMap,xl=new WeakMap,Wr=new WeakMap,gc=new WeakMap,Zo=new WeakMap,Ys=new WeakMap,Sh=new WeakMap,ci=new WeakMap,Rl=new WeakMap,Sl=new WeakMap,se=new WeakSet,Zr=async function(t){const e=T(this,Sl).cacheTimeout;if(e<0)return await this._perform(t);const r=mp(t.method,t);let i=T(this,Zo).get(r);return i||(i=this._perform(t),T(this,Zo).set(r,i),setTimeout(()=>{T(this,Zo).get(r)===i&&T(this,Zo).delete(r)},e)),await i},cb=async function(t,e,r){ht(r<bG,"CCIP read exceeded maximum redirections","OFFCHAIN_FAULT",{reason:"TOO_MANY_REDIRECTS",transaction:Object.assign({},t,{blockTag:e,enableCcipRead:!0})});const i=cp(t);try{return Tt(await this._perform({method:"call",transaction:i,blockTag:e}))}catch(s){if(!this.disableCcipRead&&Sm(s)&&s.data&&r>=0&&e==="latest"&&i.to!=null&&un(s.data,0,4)==="0x556f1830"){const o=s.data,c=await wr(i.to,this);let u;try{u=IG(un(s.data,4))}catch(y){ht(!1,y.message,"OFFCHAIN_FAULT",{reason:"BAD_DATA",transaction:i,info:{data:o}})}ht(u.sender.toLowerCase()===c.toLowerCase(),"CCIP Read sender mismatch","CALL_EXCEPTION",{action:"call",data:o,reason:"OffchainLookup",transaction:i,invocation:null,revert:{signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",name:"OffchainLookup",args:u.errorArgs}});const f=await this.ccipReadFetch(i,u.calldata,u.urls);ht(f!=null,"CCIP Read failed to fetch data","OFFCHAIN_FAULT",{reason:"FETCH_FAILED",transaction:i,info:{data:s.data,errorArgs:u.errorArgs}});const h={to:c,data:vn([u.selector,SG([f,u.extraData])])};this.emit("debug",{action:"sendCcipReadCall",transaction:h});try{const y=await _t(this,se,cb).call(this,h,e,r+1);return this.emit("debug",{action:"receiveCcipReadCallResult",transaction:Object.assign({},h),result:y}),y}catch(y){throw this.emit("debug",{action:"receiveCcipReadCallError",transaction:Object.assign({},h),error:y}),y}}throw s}},ub=async function(t){const{value:e}=await pr({network:this.getNetwork(),value:t});return e},sd=async function(t,e,r){let i=this._getAddress(e),s=this._getBlockTag(r);return(typeof i!="string"||typeof s!="string")&&([i,s]=await Promise.all([i,s])),await _t(this,se,ub).call(this,_t(this,se,Zr).call(this,Object.assign(t,{address:i,blockTag:s})))},lb=async function(t,e){if(ze(t,32))return await _t(this,se,Zr).call(this,{method:"getBlock",blockHash:t,includeTransactions:e});let r=this._getBlockTag(t);return typeof r!="string"&&(r=await r),await _t(this,se,Zr).call(this,{method:"getBlock",blockTag:r,includeTransactions:e})},od=async function(t,e){let r=await Ow(t,this);return r.type==="event"&&e&&e.length>0&&e[0].removed===!0&&(r=await Ow({orphan:"drop-log",log:e[0]},this)),T(this,or).get(r.tag)||null},Zp=async function(t){const e=await Ow(t,this),r=e.tag;let i=T(this,or).get(r);return i||(i={subscriber:this._getSubscriber(e),tag:r,addressableMap:new WeakMap,nameMap:new Map,started:!1,listeners:[]},T(this,or).set(r,i)),i};function vG(n,t){try{const e=Cw(n,t);if(e)return U0(e)}catch{}return null}function Cw(n,t){if(n==="0x")return null;try{const e=ie(un(n,t,t+32)),r=ie(un(n,e,e+32));return un(n,e+32,e+32+r)}catch{}return null}function ck(n){const t=yr(n);if(t.length>32)throw new Error("internal; should not happen");const e=new Uint8Array(32);return e.set(t,32-t.length),e}function xG(n){if(n.length%32===0)return n;const t=new Uint8Array(Math.ceil(n.length/32)*32);return t.set(n),t}const RG=new Uint8Array([]);function SG(n){const t=[];let e=0;for(let r=0;r<n.length;r++)t.push(RG),e+=32;for(let r=0;r<n.length;r++){const i=we(n[r]);t[r]=ck(e),t.push(ck(i.length)),t.push(xG(i)),e+=32+Math.ceil(i.length/32)*32}return vn(t)}const uk="0x0000000000000000000000000000000000000000000000000000000000000000";function IG(n){const t={sender:"",urls:[],calldata:"",selector:"",extraData:"",errorArgs:[]};ht(vu(n)>=5*32,"insufficient OffchainLookup data","OFFCHAIN_FAULT",{reason:"insufficient OffchainLookup data"});const e=un(n,0,32);ht(un(e,0,12)===un(uk,0,12),"corrupt OffchainLookup sender","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup sender"}),t.sender=un(e,12);try{const r=[],i=ie(un(n,32,64)),s=ie(un(n,i,i+32)),o=un(n,i+32);for(let c=0;c<s;c++){const u=vG(o,c*32);if(u==null)throw new Error("abort");r.push(u)}t.urls=r}catch{ht(!1,"corrupt OffchainLookup urls","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup urls"})}try{const r=Cw(n,64);if(r==null)throw new Error("abort");t.calldata=r}catch{ht(!1,"corrupt OffchainLookup calldata","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup calldata"})}ht(un(n,100,128)===un(uk,0,28),"corrupt OffchainLookup callbaackSelector","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup callbaackSelector"}),t.selector=un(n,96,100);try{const r=Cw(n,128);if(r==null)throw new Error("abort");t.extraData=r}catch{ht(!1,"corrupt OffchainLookup extraData","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup extraData"})}return t.errorArgs="sender,urls,calldata,selector,extraData".split(/,/).map(r=>t[r]),t}function $u(n,t){if(n.provider)return n.provider;ht(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:t})}async function lk(n,t){let e=cp(t);if(e.to!=null&&(e.to=wr(e.to,n)),e.from!=null){const r=e.from;e.from=Promise.all([n.getAddress(),wr(r,n)]).then(([i,s])=>(K(i.toLowerCase()===s.toLowerCase(),"transaction from mismatch","tx.from",s),i))}else e.from=n.getAddress();return await pr(e)}class kG{constructor(t){Z(this,"provider");$t(this,{provider:t||null})}async getNonce(t){return $u(this,"getTransactionCount").getTransactionCount(await this.getAddress(),t)}async populateCall(t){return await lk(this,t)}async populateTransaction(t){const e=$u(this,"populateTransaction"),r=await lk(this,t);r.nonce==null&&(r.nonce=await this.getNonce("pending")),r.gasLimit==null&&(r.gasLimit=await this.estimateGas(r));const i=await this.provider.getNetwork();if(r.chainId!=null){const o=Ct(r.chainId);K(o===i.chainId,"transaction chainId mismatch","tx.chainId",t.chainId)}else r.chainId=i.chainId;const s=r.maxFeePerGas!=null||r.maxPriorityFeePerGas!=null;if(r.gasPrice!=null&&(r.type===2||s)?K(!1,"eip-1559 transaction do not support gasPrice","tx",t):(r.type===0||r.type===1)&&s&&K(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",t),(r.type===2||r.type==null)&&r.maxFeePerGas!=null&&r.maxPriorityFeePerGas!=null)r.type=2;else if(r.type===0||r.type===1){const o=await e.getFeeData();ht(o.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),r.gasPrice==null&&(r.gasPrice=o.gasPrice)}else{const o=await e.getFeeData();if(r.type==null)if(o.maxFeePerGas!=null&&o.maxPriorityFeePerGas!=null)if(r.type=2,r.gasPrice!=null){const c=r.gasPrice;delete r.gasPrice,r.maxFeePerGas=c,r.maxPriorityFeePerGas=c}else r.maxFeePerGas==null&&(r.maxFeePerGas=o.maxFeePerGas),r.maxPriorityFeePerGas==null&&(r.maxPriorityFeePerGas=o.maxPriorityFeePerGas);else o.gasPrice!=null?(ht(!s,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),r.gasPrice==null&&(r.gasPrice=o.gasPrice),r.type=0):ht(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else(r.type===2||r.type===3)&&(r.maxFeePerGas==null&&(r.maxFeePerGas=o.maxFeePerGas),r.maxPriorityFeePerGas==null&&(r.maxPriorityFeePerGas=o.maxPriorityFeePerGas))}return await pr(r)}async estimateGas(t){return $u(this,"estimateGas").estimateGas(await this.populateCall(t))}async call(t){return $u(this,"call").call(await this.populateCall(t))}async resolveName(t){return await $u(this,"resolveName").resolveName(t)}async sendTransaction(t){const e=$u(this,"sendTransaction"),r=await this.populateTransaction(t);delete r.from;const i=rp.from(r);return await e.broadcastTransaction(await this.signTransaction(i))}}function TG(n){return JSON.parse(JSON.stringify(n))}class fk{constructor(t){nt(this,Qo);nt(this,_r);nt(this,as);nt(this,yc);nt(this,qo);nt(this,mc);nt(this,Il);$(this,_r,t),$(this,as,null),$(this,yc,_t(this,Qo,fb).bind(this)),$(this,qo,!1),$(this,mc,null),$(this,Il,!1)}_subscribe(t){throw new Error("subclasses must override this")}_emitResults(t,e){throw new Error("subclasses must override this")}_recover(t){throw new Error("subclasses must override this")}start(){T(this,qo)||($(this,qo,!0),_t(this,Qo,fb).call(this,-2))}stop(){T(this,qo)&&($(this,qo,!1),$(this,Il,!0),_t(this,Qo,hb).call(this),T(this,_r).off("block",T(this,yc)))}pause(t){t&&_t(this,Qo,hb).call(this),T(this,_r).off("block",T(this,yc))}resume(){this.start()}}_r=new WeakMap,as=new WeakMap,yc=new WeakMap,qo=new WeakMap,mc=new WeakMap,Il=new WeakMap,Qo=new WeakSet,fb=async function(t){try{T(this,as)==null&&$(this,as,this._subscribe(T(this,_r)));let e=null;try{e=await T(this,as)}catch(s){if(!Zn(s,"UNSUPPORTED_OPERATION")||s.operation!=="eth_newFilter")throw s}if(e==null){$(this,as,null),T(this,_r)._recoverSubscriber(this,this._recover(T(this,_r)));return}const r=await T(this,_r).getNetwork();if(T(this,mc)||$(this,mc,r),T(this,mc).chainId!==r.chainId)throw new Error("chaid changed");if(T(this,Il))return;const i=await T(this,_r).send("eth_getFilterChanges",[e]);await this._emitResults(T(this,_r),i)}catch(e){console.log("@TODO",e)}T(this,_r).once("block",T(this,yc))},hb=function(){const t=T(this,as);t&&($(this,as,null),t.then(e=>{T(this,_r).destroyed||T(this,_r).send("eth_uninstallFilter",[e])}))};class OG extends fk{constructor(e,r){super(e);nt(this,wc);$(this,wc,TG(r))}_recover(e){return new kw(e,T(this,wc))}async _subscribe(e){return await e.send("eth_newFilter",[T(this,wc)])}async _emitResults(e,r){for(const i of r)e.emit(T(this,wc),e._wrapLog(i,e._network))}}wc=new WeakMap;class NG extends fk{async _subscribe(t){return await t.send("eth_newPendingTransactionFilter",[])}async _emitResults(t,e){for(const r of e)t.emit("pending",r)}}const CG="bigint,boolean,function,number,string,symbol".split(/,/g);function bp(n){if(n==null||CG.indexOf(typeof n)>=0||typeof n.getAddress=="function")return n;if(Array.isArray(n))return n.map(bp);if(typeof n=="object")return Object.keys(n).reduce((t,e)=>(t[e]=n[e],t),{});throw new Error(`should not happen: ${n} (${typeof n})`)}function BG(n){return new Promise(t=>{setTimeout(t,n)})}function Hu(n){return n&&n.toLowerCase()}function hk(n){return n&&typeof n.pollingInterval=="number"}const dk={polling:!1,staticNetwork:null,batchStallTime:10,batchMaxSize:1<<20,batchMaxCount:100,cacheTimeout:250,pollingInterval:4e3};class Bw extends kG{constructor(e,r){super(e);Z(this,"address");r=Me(r),$t(this,{address:r})}connect(e){ht(!1,"cannot reconnect JsonRpcSigner","UNSUPPORTED_OPERATION",{operation:"signer.connect"})}async getAddress(){return this.address}async populateTransaction(e){return await this.populateCall(e)}async sendUncheckedTransaction(e){const r=bp(e),i=[];if(r.from){const o=r.from;i.push((async()=>{const c=await wr(o,this.provider);K(c!=null&&c.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",e),r.from=c})())}else r.from=this.address;if(r.gasLimit==null&&i.push((async()=>{r.gasLimit=await this.provider.estimateGas({...r,from:this.address})})()),r.to!=null){const o=r.to;i.push((async()=>{r.to=await wr(o,this.provider)})())}i.length&&await Promise.all(i);const s=this.provider.getRpcTransaction(r);return this.provider.send("eth_sendTransaction",[s])}async sendTransaction(e){const r=await this.provider.getBlockNumber(),i=await this.sendUncheckedTransaction(e);return await new Promise((s,o)=>{const c=[1e3,100];let u=0;const f=async()=>{try{const h=await this.provider.getTransaction(i);if(h!=null){s(h.replaceableTransaction(r));return}}catch(h){if(Zn(h,"CANCELLED")||Zn(h,"BAD_DATA")||Zn(h,"NETWORK_ERROR")||Zn(h,"UNSUPPORTED_OPERATION")){h.info==null&&(h.info={}),h.info.sendTransactionHash=i,o(h);return}if(Zn(h,"INVALID_ARGUMENT")&&(u++,h.info==null&&(h.info={}),h.info.sendTransactionHash=i,u>10)){o(h);return}this.provider.emit("error",Qe("failed to fetch transation after sending (will try again)","UNKNOWN_ERROR",{error:h}))}this.provider._setTimeout(()=>{f()},c.pop()||4e3)};f()})}async signTransaction(e){const r=bp(e);if(r.from){const s=await wr(r.from,this.provider);K(s!=null&&s.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",e),r.from=s}else r.from=this.address;const i=this.provider.getRpcTransaction(r);return await this.provider.send("eth_signTransaction",[i])}async signMessage(e){const r=typeof e=="string"?Os(e):e;return await this.provider.send("personal_sign",[Tt(r),this.address.toLowerCase()])}async signTypedData(e,r,i){const s=bp(i),o=await sp.resolveNames(e,r,s,async c=>{const u=await wr(c);return K(u!=null,"TypedData does not support null address","value",c),u});return await this.provider.send("eth_signTypedData_v4",[this.address.toLowerCase(),JSON.stringify(sp.getPayload(o.domain,r,o.value))])}async unlock(e){return this.provider.send("personal_unlockAccount",[this.address.toLowerCase(),e,null])}async _legacySignMessage(e){const r=typeof e=="string"?Os(e):e;return await this.provider.send("eth_sign",[this.address.toLowerCase(),Tt(r)])}}class pk extends EG{constructor(e,r){super(e,r);nt(this,Ih);nt(this,bc);nt(this,kl);nt(this,Js);nt(this,cs);nt(this,Ii);nt(this,ui);nt(this,Cr);$(this,kl,1),$(this,bc,Object.assign({},dk,r||{})),$(this,Js,[]),$(this,cs,null),$(this,ui,null),$(this,Cr,null);{let s=null;const o=new Promise(c=>{s=c});$(this,Ii,{promise:o,resolve:s})}const i=this._getOption("staticNetwork");typeof i=="boolean"?(K(!i||e!=="any","staticNetwork cannot be used on special network 'any'","options",r),i&&e!=null&&$(this,ui,Xi.from(e))):i&&(K(e==null||i.matches(e),"staticNetwork MUST match network object","options",r),$(this,ui,i))}_getOption(e){return T(this,bc)[e]}get _network(){return ht(T(this,ui),"network is not available yet","NETWORK_ERROR"),T(this,ui)}async _perform(e){if(e.method==="call"||e.method==="estimateGas"){let i=e.transaction;if(i&&i.type!=null&&Ct(i.type)&&i.maxFeePerGas==null&&i.maxPriorityFeePerGas==null){const s=await this.getFeeData();s.maxFeePerGas==null&&s.maxPriorityFeePerGas==null&&(e=Object.assign({},e,{transaction:Object.assign({},i,{type:void 0})}))}}const r=this.getRpcRequest(e);return r!=null?await this.send(r.method,r.args):super._perform(e)}async _detectNetwork(){const e=this._getOption("staticNetwork");if(e)if(e===!0){if(T(this,ui))return T(this,ui)}else return e;return T(this,Cr)?await T(this,Cr):this.ready?($(this,Cr,(async()=>{try{const r=Xi.from(Ct(await this.send("eth_chainId",[])));return $(this,Cr,null),r}catch(r){throw $(this,Cr,null),r}})()),await T(this,Cr)):($(this,Cr,(async()=>{const r={id:rd(this,kl)._++,method:"eth_chainId",params:[],jsonrpc:"2.0"};this.emit("debug",{action:"sendRpcPayload",payload:r});let i;try{i=(await this._send(r))[0],$(this,Cr,null)}catch(s){throw $(this,Cr,null),this.emit("debug",{action:"receiveRpcError",error:s}),s}if(this.emit("debug",{action:"receiveRpcResult",result:i}),"result"in i)return Xi.from(Ct(i.result));throw this.getRpcError(r,i)})()),await T(this,Cr))}_start(){T(this,Ii)==null||T(this,Ii).resolve==null||(T(this,Ii).resolve(),$(this,Ii,null),(async()=>{for(;T(this,ui)==null&&!this.destroyed;)try{$(this,ui,await this._detectNetwork())}catch(e){if(this.destroyed)break;console.log("JsonRpcProvider failed to detect network and cannot start up; retry in 1s (perhaps the URL is wrong or the node is not started)"),this.emit("error",Qe("failed to bootstrap network detection","NETWORK_ERROR",{event:"initial-network-discovery",info:{error:e}})),await BG(1e3)}_t(this,Ih,db).call(this)})())}async _waitUntilReady(){if(T(this,Ii)!=null)return await T(this,Ii).promise}_getSubscriber(e){return e.type==="pending"?new NG(this):e.type==="event"?this._getOption("polling")?new kw(this,e.filter):new OG(this,e.filter):e.type==="orphan"&&e.filter.orphan==="drop-log"?new wp("orphan"):super._getSubscriber(e)}get ready(){return T(this,Ii)==null}getRpcTransaction(e){const r={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(i=>{if(e[i]==null)return;let s=i;i==="gasLimit"&&(s="gas"),r[s]=Ru(Ct(e[i],`tx.${i}`))}),["from","to","data"].forEach(i=>{e[i]!=null&&(r[i]=Tt(e[i]))}),e.accessList&&(r.accessList=Ka(e.accessList)),e.blobVersionedHashes&&(r.blobVersionedHashes=e.blobVersionedHashes.map(i=>i.toLowerCase())),r}getRpcRequest(e){switch(e.method){case"chainId":return{method:"eth_chainId",args:[]};case"getBlockNumber":return{method:"eth_blockNumber",args:[]};case"getGasPrice":return{method:"eth_gasPrice",args:[]};case"getPriorityFee":return{method:"eth_maxPriorityFeePerGas",args:[]};case"getBalance":return{method:"eth_getBalance",args:[Hu(e.address),e.blockTag]};case"getTransactionCount":return{method:"eth_getTransactionCount",args:[Hu(e.address),e.blockTag]};case"getCode":return{method:"eth_getCode",args:[Hu(e.address),e.blockTag]};case"getStorage":return{method:"eth_getStorageAt",args:[Hu(e.address),"0x"+e.position.toString(16),e.blockTag]};case"broadcastTransaction":return{method:"eth_sendRawTransaction",args:[e.signedTransaction]};case"getBlock":if("blockTag"in e)return{method:"eth_getBlockByNumber",args:[e.blockTag,!!e.includeTransactions]};if("blockHash"in e)return{method:"eth_getBlockByHash",args:[e.blockHash,!!e.includeTransactions]};break;case"getTransaction":return{method:"eth_getTransactionByHash",args:[e.hash]};case"getTransactionReceipt":return{method:"eth_getTransactionReceipt",args:[e.hash]};case"call":return{method:"eth_call",args:[this.getRpcTransaction(e.transaction),e.blockTag]};case"estimateGas":return{method:"eth_estimateGas",args:[this.getRpcTransaction(e.transaction)]};case"getLogs":return e.filter&&e.filter.address!=null&&(Array.isArray(e.filter.address)?e.filter.address=e.filter.address.map(Hu):e.filter.address=Hu(e.filter.address)),{method:"eth_getLogs",args:[e.filter]}}return null}getRpcError(e,r){const{method:i}=e,{error:s}=r;if(i==="eth_estimateGas"&&s.message){const u=s.message;if(!u.match(/revert/i)&&u.match(/insufficient funds/i))return Qe("insufficient funds","INSUFFICIENT_FUNDS",{transaction:e.params[0],info:{payload:e,error:s}})}if(i==="eth_call"||i==="eth_estimateGas"){const u=Pw(s),f=uh.getBuiltinCallException(i==="eth_call"?"call":"estimateGas",e.params[0],u?u.data:null);return f.info={error:s,payload:e},f}const o=JSON.stringify(LG(s));if(typeof s.message=="string"&&s.message.match(/user denied|ethers-user-denied/i))return Qe("user rejected action","ACTION_REJECTED",{action:{eth_sign:"signMessage",personal_sign:"signMessage",eth_signTypedData_v4:"signTypedData",eth_signTransaction:"signTransaction",eth_sendTransaction:"sendTransaction",eth_requestAccounts:"requestAccess",wallet_requestAccounts:"requestAccess"}[i]||"unknown",reason:"rejected",info:{payload:e,error:s}});if(i==="eth_sendRawTransaction"||i==="eth_sendTransaction"){const u=e.params[0];if(o.match(/insufficient funds|base fee exceeds gas limit/i))return Qe("insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:u,info:{error:s}});if(o.match(/nonce/i)&&o.match(/too low/i))return Qe("nonce has already been used","NONCE_EXPIRED",{transaction:u,info:{error:s}});if(o.match(/replacement transaction/i)&&o.match(/underpriced/i))return Qe("replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:u,info:{error:s}});if(o.match(/only replay-protected/i))return Qe("legacy pre-eip-155 transactions not supported","UNSUPPORTED_OPERATION",{operation:i,info:{transaction:u,info:{error:s}}})}let c=!!o.match(/the method .* does not exist/i);return c||s&&s.details&&s.details.startsWith("Unauthorized method:")&&(c=!0),c?Qe("unsupported operation","UNSUPPORTED_OPERATION",{operation:e.method,info:{error:s,payload:e}}):Qe("could not coalesce error","UNKNOWN_ERROR",{error:s,payload:e})}send(e,r){if(this.destroyed)return Promise.reject(Qe("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:e}));const i=rd(this,kl)._++,s=new Promise((o,c)=>{T(this,Js).push({resolve:o,reject:c,payload:{method:e,params:r,id:i,jsonrpc:"2.0"}})});return _t(this,Ih,db).call(this),s}async getSigner(e){e==null&&(e=0);const r=this.send("eth_accounts",[]);if(typeof e=="number"){const s=await r;if(e>=s.length)throw new Error("no such account");return new Bw(this,s[e])}const{accounts:i}=await pr({network:this.getNetwork(),accounts:r});e=Me(e);for(const s of i)if(Me(s)===e)return new Bw(this,e);throw new Error("invalid account")}async listAccounts(){return(await this.send("eth_accounts",[])).map(r=>new Bw(this,r))}destroy(){T(this,cs)&&(clearTimeout(T(this,cs)),$(this,cs,null));for(const{payload:e,reject:r}of T(this,Js))r(Qe("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:e.method}));$(this,Js,[]),super.destroy()}}bc=new WeakMap,kl=new WeakMap,Js=new WeakMap,cs=new WeakMap,Ii=new WeakMap,ui=new WeakMap,Cr=new WeakMap,Ih=new WeakSet,db=function(){if(T(this,cs))return;const e=this._getOption("batchMaxCount")===1?0:this._getOption("batchStallTime");$(this,cs,setTimeout(()=>{$(this,cs,null);const r=T(this,Js);for($(this,Js,[]);r.length;){const i=[r.shift()];for(;r.length&&i.length!==T(this,bc).batchMaxCount;)if(i.push(r.shift()),JSON.stringify(i.map(o=>o.payload)).length>T(this,bc).batchMaxSize){r.unshift(i.pop());break}(async()=>{const s=i.length===1?i[0].payload:i.map(o=>o.payload);this.emit("debug",{action:"sendRpcPayload",payload:s});try{const o=await this._send(s);this.emit("debug",{action:"receiveRpcResult",result:o});for(const{resolve:c,reject:u,payload:f}of i){if(this.destroyed){u(Qe("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:f.method}));continue}const h=o.filter(y=>y.id===f.id)[0];if(h==null){const y=Qe("missing response for request","BAD_DATA",{value:o,info:{payload:f}});this.emit("error",y),u(y);continue}if("error"in h){u(this.getRpcError(f,h));continue}c(h.result)}}catch(o){this.emit("debug",{action:"receiveRpcError",error:o});for(const{reject:c}of i)c(o)}})()}},e))};class PG extends pk{constructor(e,r){super(e,r);nt(this,Yo);let i=this._getOption("pollingInterval");i==null&&(i=dk.pollingInterval),$(this,Yo,i)}_getSubscriber(e){const r=super._getSubscriber(e);return hk(r)&&(r.pollingInterval=T(this,Yo)),r}get pollingInterval(){return T(this,Yo)}set pollingInterval(e){if(!Number.isInteger(e)||e<0)throw new Error("invalid interval");$(this,Yo,e),this._forEachSubscriber(r=>{hk(r)&&(r.pollingInterval=T(this,Yo))})}}Yo=new WeakMap;class MG extends PG{constructor(e,r,i){e==null&&(e="http://localhost:8545");super(r,i);nt(this,Tl);typeof e=="string"?$(this,Tl,new Ns(e)):$(this,Tl,e.clone())}_getConnection(){return T(this,Tl).clone()}async send(e,r){return await this._start(),await super.send(e,r)}async _send(e){const r=this._getConnection();r.body=JSON.stringify(e),r.setHeader("content-type","application/json");const i=await r.send();i.assertOk();let s=i.bodyJson;return Array.isArray(s)||(s=[s]),s}}Tl=new WeakMap;function Pw(n){if(n==null)return null;if(typeof n.message=="string"&&n.message.match(/revert/i)&&ze(n.data))return{message:n.message,data:n.data};if(typeof n=="object"){for(const t in n){const e=Pw(n[t]);if(e)return e}return null}if(typeof n=="string")try{return Pw(JSON.parse(n))}catch{}return null}function Mw(n,t){if(n!=null){if(typeof n.message=="string"&&t.push(n.message),typeof n=="object")for(const e in n)Mw(n[e],t);if(typeof n=="string")try{return Mw(JSON.parse(n),t)}catch{}}}function LG(n){const t=[];return Mw(n,t),t}function UG(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof Hc<"u")return Hc;throw new Error("unable to locate global object")}const DG=UG().WebSocket;class Lw{constructor(t,e){nt(this,us);nt(this,kh);nt(this,Jo);nt(this,_c);nt(this,Xo);$(this,us,t),$(this,kh,JSON.stringify(e)),$(this,Jo,null),$(this,_c,null),$(this,Xo,null)}get filter(){return JSON.parse(T(this,kh))}start(){$(this,Jo,T(this,us).send("eth_subscribe",this.filter).then(t=>(T(this,us)._register(t,this),t)))}stop(){T(this,Jo).then(t=>{T(this,us).destroyed||T(this,us).send("eth_unsubscribe",[t])}),$(this,Jo,null)}pause(t){ht(t,"preserve logs while paused not supported by SocketSubscriber yet","UNSUPPORTED_OPERATION",{operation:"pause(false)"}),$(this,_c,!!t)}resume(){$(this,_c,null)}_handleMessage(t){if(T(this,Jo)!=null&&T(this,_c)===null){let e=T(this,Xo);e==null?e=this._emit(T(this,us),t):e=e.then(async()=>{await this._emit(T(this,us),t)}),$(this,Xo,e.then(()=>{T(this,Xo)===e&&$(this,Xo,null)}))}}async _emit(t,e){throw new Error("sub-classes must implemente this; _emit")}}us=new WeakMap,kh=new WeakMap,Jo=new WeakMap,_c=new WeakMap,Xo=new WeakMap;class FG extends Lw{constructor(t){super(t,["newHeads"])}async _emit(t,e){t.emit("block",parseInt(e.number))}}class $G extends Lw{constructor(t){super(t,["newPendingTransactions"])}async _emit(t,e){t.emit("pending",e)}}class HG extends Lw{constructor(e,r){super(e,["logs",r]);nt(this,Th);$(this,Th,JSON.stringify(r))}get logFilter(){return JSON.parse(T(this,Th))}async _emit(e,r){e.emit(this.logFilter,e._wrapLog(r,e._network))}}Th=new WeakMap;class zG extends pk{constructor(e,r){const i=Object.assign({},r??{});K(i.batchMaxCount==null||i.batchMaxCount===1,"sockets-based providers do not support batches","options.batchMaxCount",r),i.batchMaxCount=1,i.staticNetwork==null&&(i.staticNetwork=!0);super(e,i);nt(this,Ac);nt(this,Ol);nt(this,ta);$(this,Ac,new Map),$(this,Ol,new Map),$(this,ta,new Map)}_getSubscriber(e){switch(e.type){case"close":return new wp("close");case"block":return new FG(this);case"pending":return new $G(this);case"event":return new HG(this,e.filter);case"orphan":if(e.filter.orphan==="drop-log")return new wp("drop-log")}return super._getSubscriber(e)}_register(e,r){T(this,Ol).set(e,r);const i=T(this,ta).get(e);if(i){for(const s of i)r._handleMessage(s);T(this,ta).delete(e)}}async _send(e){K(!Array.isArray(e),"WebSocket does not support batch send","payload",e);const r=new Promise((i,s)=>{T(this,Ac).set(e.id,{payload:e,resolve:i,reject:s})});return await this._waitUntilReady(),await this._write(JSON.stringify(e)),[await r]}async _processMessage(e){const r=JSON.parse(e);if(r&&typeof r=="object"&&"id"in r){const i=T(this,Ac).get(r.id);if(i==null){this.emit("error",Qe("received result for unknown id","UNKNOWN_ERROR",{reasonCode:"UNKNOWN_ID",result:r}));return}T(this,Ac).delete(r.id),i.resolve(r)}else if(r&&r.method==="eth_subscription"){const i=r.params.subscription,s=T(this,Ol).get(i);if(s)s._handleMessage(r.params.result);else{let o=T(this,ta).get(i);o==null&&(o=[],T(this,ta).set(i,o)),o.push(r.params.result)}}else{this.emit("error",Qe("received unexpected message","UNKNOWN_ERROR",{reasonCode:"UNEXPECTED_MESSAGE",result:r}));return}}async _write(e){throw new Error("sub-classes must override this")}}Ac=new WeakMap,Ol=new WeakMap,ta=new WeakMap;class GG extends zG{constructor(e,r,i){super(r,i);nt(this,Ec);nt(this,ki);typeof e=="string"?($(this,Ec,()=>new DG(e)),$(this,ki,T(this,Ec).call(this))):typeof e=="function"?($(this,Ec,e),$(this,ki,e())):($(this,Ec,null),$(this,ki,e)),this.websocket.onopen=async()=>{try{await this._start(),this.resume()}catch(s){console.log("failed to start WebsocketProvider",s)}},this.websocket.onmessage=s=>{this._processMessage(s.data)}}get websocket(){if(T(this,ki)==null)throw new Error("websocket closed");return T(this,ki)}async _write(e){this.websocket.send(e)}async destroy(){T(this,ki)!=null&&(T(this,ki).close(),$(this,ki,null)),super.destroy()}}Ec=new WeakMap,ki=new WeakMap;const VG={_format:"hh-sol-artifact-1",contractName:"SwarmEventEmitter",sourceName:"contracts/SwarmEventEmitter.sol",abi:[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"string",name:"message",type:"string"}],name:"MessageLogged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"RemovedFromWhitelist",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"account",type:"address"}],name:"Whitelisted",type:"event"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"addToWhitelist",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"admin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"string",name:"message",type:"string"}],name:"emitMessage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"removeFromWhitelist",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"whitelisted",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"}],bytecode:"0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a5460405160405180910390a26107b08061013b6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80632ac0df261461005c5780638ab1d68114610078578063d936547e14610094578063e43252d7146100c4578063f851a440146100e0575b600080fd5b610076600480360381019061007191906104e8565b6100fe565b005b610092600480360381019061008d9190610593565b6101de565b005b6100ae60048036038101906100a99190610593565b61030a565b6040516100bb91906105db565b60405180910390f35b6100de60048036038101906100d99190610593565b61032a565b005b6100e8610455565b6040516100f59190610605565b60405180910390f35b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661018a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101819061067d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167fda502b164eb5cfccfa9f947e0fdc1a0bd060adfef2947810b256321c1a74ca4183836040516101d29291906106ea565b60405180910390a25050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461026c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102639061075a565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fcdd2e9b91a56913d370075169cefa1602ba36be5301664f752192bb1709df75760405160405180910390a250565b60016020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af9061075a565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a5460405160405180910390a250565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126104a8576104a7610483565b5b8235905067ffffffffffffffff8111156104c5576104c4610488565b5b6020830191508360018202830111156104e1576104e061048d565b5b9250929050565b600080602083850312156104ff576104fe610479565b5b600083013567ffffffffffffffff81111561051d5761051c61047e565b5b61052985828601610492565b92509250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056082610535565b9050919050565b61057081610555565b811461057b57600080fd5b50565b60008135905061058d81610567565b92915050565b6000602082840312156105a9576105a8610479565b5b60006105b78482850161057e565b91505092915050565b60008115159050919050565b6105d5816105c0565b82525050565b60006020820190506105f060008301846105cc565b92915050565b6105ff81610555565b82525050565b600060208201905061061a60008301846105f6565b92915050565b600082825260208201905092915050565b7f4e6f742077686974656c69737465640000000000000000000000000000000000600082015250565b6000610667600f83610620565b915061067282610631565b602082019050919050565b600060208201905081810360008301526106968161065a565b9050919050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006106c98385610620565b93506106d683858461069d565b6106df836106ac565b840190509392505050565b600060208201905081810360008301526107058184866106bd565b90509392505050565b7f4e6f742061646d696e0000000000000000000000000000000000000000000000600082015250565b6000610744600983610620565b915061074f8261070e565b602082019050919050565b6000602082019050818103600083015261077381610737565b905091905056fea26469706673582212202ad433ea9240cc561f6b9168c7880800e372f26e322166cedd6ce135222e699764736f6c634300081c0033",deployedBytecode:"0x608060405234801561001057600080fd5b50600436106100575760003560e01c80632ac0df261461005c5780638ab1d68114610078578063d936547e14610094578063e43252d7146100c4578063f851a440146100e0575b600080fd5b610076600480360381019061007191906104e8565b6100fe565b005b610092600480360381019061008d9190610593565b6101de565b005b6100ae60048036038101906100a99190610593565b61030a565b6040516100bb91906105db565b60405180910390f35b6100de60048036038101906100d99190610593565b61032a565b005b6100e8610455565b6040516100f59190610605565b60405180910390f35b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661018a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101819061067d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff167fda502b164eb5cfccfa9f947e0fdc1a0bd060adfef2947810b256321c1a74ca4183836040516101d29291906106ea565b60405180910390a25050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461026c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016102639061075a565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fcdd2e9b91a56913d370075169cefa1602ba36be5301664f752192bb1709df75760405160405180910390a250565b60016020528060005260406000206000915054906101000a900460ff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103af9061075a565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167faab7954e9d246b167ef88aeddad35209ca2489d95a8aeb59e288d9b19fae5a5460405160405180910390a250565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126104a8576104a7610483565b5b8235905067ffffffffffffffff8111156104c5576104c4610488565b5b6020830191508360018202830111156104e1576104e061048d565b5b9250929050565b600080602083850312156104ff576104fe610479565b5b600083013567ffffffffffffffff81111561051d5761051c61047e565b5b61052985828601610492565b92509250509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061056082610535565b9050919050565b61057081610555565b811461057b57600080fd5b50565b60008135905061058d81610567565b92915050565b6000602082840312156105a9576105a8610479565b5b60006105b78482850161057e565b91505092915050565b60008115159050919050565b6105d5816105c0565b82525050565b60006020820190506105f060008301846105cc565b92915050565b6105ff81610555565b82525050565b600060208201905061061a60008301846105f6565b92915050565b600082825260208201905092915050565b7f4e6f742077686974656c69737465640000000000000000000000000000000000600082015250565b6000610667600f83610620565b915061067282610631565b602082019050919050565b600060208201905081810360008301526106968161065a565b9050919050565b82818337600083830152505050565b6000601f19601f8301169050919050565b60006106c98385610620565b93506106d683858461069d565b6106df836106ac565b840190509392505050565b600060208201905081810360008301526107058184866106bd565b90509392505050565b7f4e6f742061646d696e0000000000000000000000000000000000000000000000600082015250565b6000610744600983610620565b915061074f8261070e565b602082019050919050565b6000602082019050818103600083015261077381610737565b905091905056fea26469706673582212202ad433ea9240cc561f6b9168c7880800e372f26e322166cedd6ce135222e699764736f6c634300081c0033",linkReferences:{},deployedLinkReferences:{}},KG={address:"Eai8D93JKad51sYmft1r74fzLkBSwRGPQVAmwZoLoWDf",metadata:{name:"swarm_event_emitter",version:"0.1.0",spec:"0.1.0",description:"Created with Anchor"},instructions:[{name:"add_to_whitelist",discriminator:[157,211,52,54,144,81,5,55],accounts:[{name:"state",writable:!0},{name:"admin",signer:!0}],args:[{name:"user",type:"pubkey"}]},{name:"emit_message",discriminator:[118,99,20,87,25,132,207,62],accounts:[{name:"state",writable:!0},{name:"user",signer:!0}],args:[{name:"message",type:"string"}]},{name:"initialize",discriminator:[175,175,109,31,13,152,155,237],accounts:[{name:"state",writable:!0,pda:{seeds:[{kind:"const",value:[115,116,97,116,101]}]}},{name:"admin",writable:!0,signer:!0},{name:"system_program",address:"11111111111111111111111111111111"}],args:[]},{name:"remove_from_whitelist",discriminator:[7,144,216,239,243,236,193,235],accounts:[{name:"state",writable:!0},{name:"admin",signer:!0}],args:[{name:"user",type:"pubkey"}]}],accounts:[{name:"State",discriminator:[216,146,107,94,104,75,182,177]}],events:[{name:"MessageLogged",discriminator:[24,236,247,207,227,70,101,210]},{name:"RemovedFromWhitelist",discriminator:[107,247,94,185,182,200,82,172]},{name:"Whitelisted",discriminator:[235,202,86,232,226,75,139,182]}],errors:[{code:6e3,name:"NotAdmin",msg:"Only the admin can perform this action."},{code:6001,name:"NotWhitelisted",msg:"You are not whitelisted."}],types:[{name:"MessageLogged",type:{kind:"struct",fields:[{name:"sender",type:"pubkey"},{name:"message",type:"string"}]}},{name:"RemovedFromWhitelist",type:{kind:"struct",fields:[{name:"account",type:"pubkey"}]}},{name:"State",type:{kind:"struct",fields:[{name:"admin",type:"pubkey"},{name:"whitelisted",type:{vec:"pubkey"}}]}},{name:"Whitelisted",type:{kind:"struct",fields:[{name:"account",type:"pubkey"}]}}]};class jG{constructor(t){this.settings=t,this.evm=null,this.svm=null,this.init()}init(){this.settings.chainType==="EVM"?this.initEvm():this.settings.chainType==="SVM"&&this.initSvm()}initEvm(){const{rpcUrl:t,contractAddress:e}=this.settings;if(!e)throw new Error("Contract address is required for EVM chain type");const r=t.startsWith("ws")?new GG(t):new MG(t),i=new Du(e,VG.abi,r);this.evm={provider:r,contract:i}}initSvm(){const t=new mE(this.settings.rpcUrl,"confirmed"),e=Ra.generate(),r={signTransaction:async o=>o,signAllTransactions:async o=>o,publicKey:e.publicKey},i=new Gf(t,r,{}),s=new Au(KG,i);this.svm={provider:t,program:s}}async onMessageFrom(t,e){this.settings.chainType==="EVM"?this.listenToEvm(t,e):this.settings.chainType==="SVM"&&await this.listenToSvm(t,e)}listenToEvm(t,e){var r;(r=this.evm)==null||r.contract.on("MessageLogged",(i,s)=>{const[o,c]=s.split("_");zl(i.toLowerCase())===zl(this.settings.swarmEmitterAddress.toLowerCase())&&o===t&&e(i,s)})}async listenToSvm(t,e){var i;const r=(i=this.svm)==null?void 0:i.program.addEventListener("messageLogged",s=>{const{sender:o,message:c}=s,[u,f]=c.split("_");o.toBase58()===this.settings.swarmEmitterAddress&&u===t&&e(o.toBase58(),c)});this.svm&&r!==void 0&&(this.svm.listenerId=r)}async removeAllListeners(){var t,e;this.settings.chainType==="EVM"&&((t=this.evm)==null||t.contract.removeAllListeners("MessageLogged")),this.settings.chainType==="SVM"&&((e=this.svm)==null?void 0:e.listenerId)!==void 0&&(await this.svm.program.removeEventListener(this.svm.listenerId),this.svm.listenerId=void 0)}}const WG=new TextEncoder,gk=1,yk=4096,Uw=4096,ZG=32;function qG(n,t){return t=typeof t=="number"?xt.FeedIndex.fromBigInt(BigInt(t)):t,new xt.Identifier(Jn.keccak256(Jn.concatBytes(n.toUint8Array(),t.toUint8Array())))}function QG(n){const t=n.slice(0,xt.Span.LENGTH),e=n.slice(xt.Span.LENGTH),r=YG(e),i=Jn.keccak256(Jn.concatBytes(t,r));return new xt.Reference(i)}function YG(n){if(n.length>Uw)throw new xt.BeeArgumentError(`payload size ${n.length} exceeds maximum chunk payload size ${Uw}`,n);const t=new Uint8Array(Uw);return t.set(n),Jn.log2Reduce(Jn.partition(t,ZG),(e,r)=>Jn.keccak256(Jn.concatBytes(e,r)))}function mk(n){if(n instanceof Uint8Array||(n=WG.encode(n)),n.length<gk||n.length>yk)throw new RangeError(`payload size ${n.length} exceeds limits [${gk}, ${yk}]`);const t=xt.Span.fromBigInt(BigInt(n.length)),e=Jn.concatBytes(t.toUint8Array(),n);return{data:e,span:t,payload:xt.Bytes.fromSlice(e,xt.Span.LENGTH),address:QG(e)}}function JG(n,t){return new xt.Reference(Jn.keccak256(Jn.concatBytes(n.toUint8Array(),t.toUint8Array())))}function wk(n,t,e){t=new xt.Identifier(t),e=new xt.PrivateKey(e);const r=JG(t,e.publicKey().address()),i=e.sign(Jn.concatBytes(t.toUint8Array(),n.address.toUint8Array())),s=Jn.concatBytes(t.toUint8Array(),i.toUint8Array(),n.data),o=xt.Span.fromSlice(n.data,0),c=xt.Bytes.fromSlice(n.data,xt.Span.LENGTH);return{data:s,identifier:t,signature:i,span:o,payload:c,address:r,owner:e.publicKey().address()}}class XG{constructor(t,e){this.userDetails=t,this.swarmSettings=e,this.depth=24,this.logger=Oi.getInstance(),this.errorHandler=new md,this.UPLOAD_GSOC_TIMEOUT=2e3}async writeOwnFeedDataByIndex(t,e){const{enveloped:r,stamp:i}=this.swarmSettings;if(!r)await this.writeOwnFeedDataByIndexOwned(t,e);else if(i)await this.writeOwnFeedDataByIndexEnvelope(t,e);else throw new Error("Enveloped mode is enabled, but stamp is not provided")}async writeOwnFeedDataByIndexOwned(t,e){const{bee:r,stamp:i,chatTopic:s}=this.swarmSettings,{privateKey:o,ownAddress:c}=this.userDetails,u=this.generateUserOwnedFeedId(s,c),f=xt.Topic.fromString(u);console.log("DEBUG: feedID write",f.toString(),c,t,u),await r.makeFeedWriter(f,new xt.PrivateKey(o)).uploadPayload(i,JSON.stringify(e),{index:t})}async writeOwnFeedDataByIndexEnvelope(t,e){const{bee:r,stamp:i,chatTopic:s}=this.swarmSettings,{privateKey:o,ownAddress:c}=this.userDetails,u=new xt.PrivateKey(o),f=xt.Stamper.fromBlank(o,i,this.depth),h=this.generateUserOwnedFeedId(s,c),y=xt.Topic.fromString(h),A=qG(y,t),b=mk(e),R=wk(b,A,u),k={hash:()=>R.address.toUint8Array()},S=f.stamp(k),{upload:B}=r.makeSOCWriter(u),H=xt.Bytes.fromUtf8(e);return(await B(S,A,H.toUint8Array())).reference.toHex()}async fetchUserFeedDataByIndex(t,e,r){const{bee:i,chatTopic:s}=this.swarmSettings,o=(r==null?void 0:r.timeout)??1500,c=this.generateUserOwnedFeedId(s,t),u=xt.Topic.fromString(c);return console.log("DEBUG: feedID read",u.toString(),t,e,c),(await i.makeFeedReader(u,t,{timeout:o}).downloadPayload({index:e})).payload.toJSON()}orderMessages(t){return t.sort((e,r)=>e.timestamp-r.timestamp)}async retryAwaitableAsync(t,e=3,r=250){return new Promise((i,s)=>{t().then(i).catch(o=>{e>0?(this.logger.info(`Retrying... Attempts left: ${e}. Error: ${o.message}`),setTimeout(()=>{this.retryAwaitableAsync(t,e-1,r).then(i).catch(s)},r)):(this.errorHandler.handleError(o,"Utils.retryAwaitableAsync"),s(o))})})}async uploadObjectToBee(t){const{enveloped:e,stamp:r}=this.swarmSettings;if(e){if(r)return this.uploadObjectToBeeEnvelope(t);throw new Error("Enveloped mode is enabled, but stamp is not provided")}else return this.uploadObjectToBeeOwn(t)}async uploadObjectToBeeOwn(t){try{const{bee:e,stamp:r}=this.swarmSettings,i=await e.uploadData(r,JSON.stringify(t),{redundancyLevel:4});return console.log("DEBUG: result",i.reference.toString()),i.reference.toString()}catch(e){return this.errorHandler.handleError(e,"Utils.uploadObjectToBee"),null}}async uploadObjectToBeeEnvelope(t){try{const{bee:e,stamp:r}=this.swarmSettings,{privateKey:i}=this.userDetails,s=xt.Stamper.fromBlank(i,r,this.depth),o=xt.Bytes.fromUtf8(JSON.stringify(t)),c=new d8(async f=>{await e.uploadChunk(s.stamp(f),f.build())});await c.append(o.toUint8Array());const u=await c.finalize();return Jn.uint8ArrayToHex(u.hash())}catch(e){return this.errorHandler.handleError(e,"Utils.uploadObjectToBee"),null}}async downloadObjectFromBee(t){try{const{bee:e}=this.swarmSettings;return(await e.downloadData(t)).toJSON()}catch(e){return this.errorHandler.handleError(e,"Utils.beeDownloadObject"),null}}async getOwnLatestFeedIndex(){try{const{bee:t,chatTopic:e}=this.swarmSettings,{ownAddress:r}=this.userDetails,i=this.generateUserOwnedFeedId(e,r),s=xt.Topic.fromString(i),c=await t.makeFeedReader(s,r).downloadPayload(),u=Number(c.feedIndex.toBigInt()),f=u+1;return console.log("DEBUG: getLatestFeedIndex",u,f),{latestIndex:u,nextIndex:f}}catch(t){if(this.isNotFoundError(t))return{latestIndex:-1,nextIndex:0};throw t}}async fetchLatestChatMessage(){const{bee:t,chatTopic:e,chatAddress:r}=this.swarmSettings,s=await t.makeFeedReader(xt.Topic.fromString(e),zl(r)).downloadPayload();return{message:s.payload.toJSON(),index:s.feedIndex}}async fetchChatMessage(t){const{bee:e,chatTopic:r,chatAddress:i}=this.swarmSettings;return(await e.makeFeedReader(xt.Topic.fromString(r),zl(i)).downloadPayload({index:t})).payload.toJSON()}async sendMessageToGsoc(t){const{enveloped:e,stamp:r}=this.swarmSettings;if(!e)await this.sendMessageToGsocOwn(t);else if(r)await this.sendMessageToGsocEnvelope(t);else throw new Error("Enveloped mode is enabled, but stamp is not provided")}async sendMessageToGsocOwn(t){this.logger.debug("sendMessageToGsoc entry CALLED");const{bee:e,stamp:r,gsocTopic:i,gsocResourceId:s}=this.swarmSettings,o=new xt.PrivateKey(s),c=xt.Identifier.fromString(i),u=xt.Bytes.fromUtf8(t),{upload:f}=e.makeSOCWriter(o,{timeout:this.UPLOAD_GSOC_TIMEOUT});await f(r,c,u.toUint8Array()),this.logger.debug("sendMessageToGsoc end CALLED")}async sendMessageToGsocEnvelope(t){this.logger.debug("sendMessageToGsoc entry CALLED");const{bee:e,stamp:r,gsocTopic:i,gsocResourceId:s}=this.swarmSettings,{privateKey:o}=this.userDetails,c=xt.Stamper.fromBlank(o,r,this.depth),u=new xt.PrivateKey(s),f=xt.Identifier.fromString(i),h=xt.Bytes.fromUtf8(t),y=mk(h.toUint8Array()),A=wk(y,f,u),b={hash:()=>A.address.toUint8Array()},R=c.stamp(b),{upload:k}=e.makeSOCWriter(u,{timeout:this.UPLOAD_GSOC_TIMEOUT});await k(R,f,h.toUint8Array()),this.logger.debug("sendMessageToGsoc end CALLED")}generateUserOwnedFeedId(t,e){return`${t}_EthercastChat_${e}`}isNotFoundError(t){return t.stack.includes("404")||t.message.includes("Not Found")||t.message.includes("404")}}class tV{constructor(t){var r,i,s;this.logger=Oi.getInstance(),this.errorHandler=new md,this.messagesQueue=new e_({clearWaitTime:200}),this.gsocListenerQueue=new e_({clearWaitTime:200}),this.activeUsers={},this.latestMessage=null,this.userIndexCache={};const e=new xt.PrivateKey(zl(t.user.privateKey));this.userDetails={privateKey:t.user.privateKey,ownAddress:e.publicKey().address().toString(),nickname:t.user.nickname,ownIndex:-1},this.swarmSettings={bee:new xt.Bee(t.infra.swarm.beeUrl),stamp:t.infra.swarm.stamp||"0x0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",enveloped:t.infra.swarm.enveloped,customGsocCallback:t.infra.swarm.customGsocCallback,gsocTopic:t.infra.swarm.gsocTopic,gsocResourceId:t.infra.swarm.gsocResourceId,chatTopic:t.infra.swarm.chatTopic,chatAddress:t.infra.swarm.chatAddress},this.options={fetchMessageTimer:null,idleUserCleanupInterval:null,FETCH_MESSAGE_INTERVAL_TIME:((r=t.options)==null?void 0:r.fetchMessageIntervalTime)||1e3,IDLE_USER_CLEANUP_INTERVAL_TIME:((i=t.options)==null?void 0:i.idleUserCleanupIntervalTime)||5e3,READ_MESSAGE_TIMEOUT:((s=t.options)==null?void 0:s.readMessageTimeout)||1500},this.emitter=new h8,this.utils=new XG(this.userDetails,this.swarmSettings),this.history=new v5(this.utils,this.emitter),this.swarmEventEmitterReader=new jG(t.infra.chain)}start(){this.init(),this.swarmSettings.customGsocCallback||this.subscribeToGSOCEvent(),this.startMessagesFetchProcess(),this.startIdleUserCleanup()}stop(){this.stopMessagesFetchProcess(),this.stopIdleUserCleanup(),this.unsubFromGSOCEvent(),this.emitter.cleanAll()}getEmitter(){return this.emitter}orderMessages(t){return this.utils.orderMessages(t)}async sendMessage(t,e){const r=this.userDetails.ownIndex===-1?0:this.userDetails.ownIndex+1,i={id:e||f8(),username:this.userDetails.nickname,address:this.userDetails.ownAddress,timestamp:Date.now(),index:r,message:t};try{this.emitter.emit(Mr.MESSAGE_REQUEST_INITIATED,i),await this.utils.writeOwnFeedDataByIndex(r,JSON.stringify(i)),this.userDetails.ownIndex=r,this.emitter.emit(Mr.MESSAGE_REQUEST_UPLOADED,i),await this.broadcastUserMessage()}catch(s){this.emitter.emit(Mr.MESSAGE_REQUEST_ERROR,i),this.errorHandler.handleError(s,"Chat.sendMessage")}}async fetchPreviousMessages(){try{return this.emitter.emit(Mr.LOADING_PREVIOUS_MESSAGES,!0),await this.history.fetchPreviousMessages()}finally{this.emitter.emit(Mr.LOADING_PREVIOUS_MESSAGES,!1)}}async retrySendMessage(t){this.sendMessage(t.message,t.id)}async retryBroadcastUserMessage(t){this.broadcastUserMessage()}async init(){try{this.emitter.emit(Mr.LOADING_INIT,!0);const[t,e]=await Promise.allSettled([this.initOwnIndex(),this.history.init()]);if(t.status==="rejected")throw t.reason;e.status==="rejected"&&this.logger.warn(`historyInitResult failed: ${e.reason}`),this.emitter.emit(Mr.LOADING_INIT,!1)}catch(t){this.errorHandler.handleError(t,"Chat.initSelfState"),this.emitter.emit(Mr.CRITICAL_ERROR,t)}}async initOwnIndex(){const{latestIndex:r}=await this.utils.retryAwaitableAsync(()=>this.utils.getOwnLatestFeedIndex(),10,1e3);this.userDetails.ownIndex=r}subscribeToGSOCEvent(){try{this.swarmEventEmitterReader.onMessageFrom(this.swarmSettings.chatTopic,(t,e)=>this.gsocListenerQueue.enqueue(()=>this.processGsocEvent(e)))}catch(t){this.errorHandler.handleError(t,"Chat.subscribeToGSOCEvent"),this.emitter.emit(Mr.CRITICAL_ERROR,t)}}callbackProcessGsocEvent(t){try{this.gsocListenerQueue.enqueue(()=>this.processGsocEvent(t))}catch(e){this.errorHandler.handleError(e,"Chat.callbackProcessGsocEvent"),this.emitter.emit(Mr.CRITICAL_ERROR,e)}}async processGsocEvent(t){try{console.log("processGsocMessage CALLED",t);const[e,r]=t.split("_"),i=xt.FeedIndex.fromBigInt(BigInt(`0x${r}`)),s=await this.utils.fetchChatMessage(i);if(console.log("DEBUG processGsocMessage",s),!w5(s)){this.logger.warn("Invalid GSOC message during processing");return}if(this.logger.debug("New GSOC message:",s),a8(this.latestMessage,s))return;this.updateActiveUsers(s.messageSender),this.latestMessage=s}catch(e){this.errorHandler.handleError(e,"Chat.processGsocMessage")}}async waitForMessageBroadcast(t){return A5({condition:()=>Object.values(this.activeUsers).some(e=>e.index===t),broadcast:()=>this.broadcastUserMessage()})}async broadcastUserMessage(){try{this.logger.debug("broadcastUserMessage entry CALLED");const t=await this.makeMessageSender();console.log("DEBUG broadcastUserMessage",t),await this.utils.retryAwaitableAsync(()=>this.utils.sendMessageToGsoc(JSON.stringify({topic:this.swarmSettings.chatTopic,messageSender:t})))}catch(t){this.errorHandler.handleError(t,"Chat.broadcastUserMessage")}}async makeMessageSender(){const{ownAddress:t,privateKey:e,nickname:r}=this.userDetails,i=new xt.EthAddress(t).toString(),s=new xt.PrivateKey(e);if(s.publicKey().address().toString()!==i)throw new Error("The provided address does not match the address derived from the private key");const c=Date.now(),u=s.sign(JSON.stringify({username:r,address:i,timestamp:c}));return{address:i,timestamp:c,signature:u.toHex(),index:this.getOwnIndex(),username:r}}async readAllActiveUserMessage(){if(!await this.messagesQueue.waitForProcessing())for(const e of Object.values(this.activeUsers))this.messagesQueue.enqueue(()=>this.readMessage(e))}async readMessage(t){try{let e;const r=this.isUserIndexRead(t.address,t.index);if(r.isIndexRead)return;e=r.cachedIndex?r.cachedIndex+1:t.index;const i=await this.utils.fetchUserFeedDataByIndex(t.address,e);this.setUserIndexCache(t.address,e),this.emitter.emit(Mr.MESSAGE_RECEIVED,JSON.parse(i))}catch(e){this.errorHandler.handleError(e,"readMessage")}}unsubFromGSOCEvent(){this.swarmEventEmitterReader.removeAllListeners()}startMessagesFetchProcess(){const{fetchMessageTimer:t,FETCH_MESSAGE_INTERVAL_TIME:e}=this.options;if(t){this.logger.warn("Messages fetch process is already running.");return}this.options.fetchMessageTimer=setInterval(this.readAllActiveUserMessage.bind(this),e)}stopMessagesFetchProcess(){const{fetchMessageTimer:t}=this.options;t&&(clearInterval(t),this.options.fetchMessageTimer=null)}startIdleUserCleanup(){const{idleUserCleanupInterval:t,IDLE_USER_CLEANUP_INTERVAL_TIME:e}=this.options;if(t){this.logger.warn("Idle user cleanup is already running.");return}this.options.idleUserCleanupInterval=setInterval(this.removeIdleUsers.bind(this),e)}stopIdleUserCleanup(){const{idleUserCleanupInterval:t}=this.options;t&&(clearInterval(t),this.options.idleUserCleanupInterval=null)}isUserIndexRead(t,e){const r=this.userIndexCache[t];return{cachedIndex:r,isIndexRead:r===e}}setUserIndexCache(t,e){this.userIndexCache[t]=e}getOwnIndex(){return this.userDetails.ownIndex}removeIdleUsers(){const t=Date.now();for(const e of Object.values(this.activeUsers))t-e.timestamp>300*E5&&delete this.activeUsers[e.address]}updateActiveUsers(t){this.activeUsers[t.address]=t}}ue.EVENTS=Mr,ue.SwarmChat=tV,Object.defineProperty(ue,Symbol.toStringTag,{value:"Module"})});
|