Astroport.ONE/www/crypto.mjs

4 lines
65 KiB
JavaScript

var Qt=function(){for(var t=0,r=0,e=arguments.length;r<e;r++)t+=arguments[r].length;for(var f=Array(t),n=0,r=0;r<e;r++)for(var x=arguments[r],o=0,s=x.length;o<s;o++,n++)f[n]=x[o];return f};function Jt(t,r,e){var f=e===void 0?{}:e,n=f.N,x=n===void 0?16384:n,o=f.logN,s=f.r,a=s===void 0?8:s,b=f.p,d=b===void 0?1:b,S=f.dkLen,p=S===void 0?32:S,g=f.interruptStep,B=g===void 0?0:g,I=f.encoding;return new Promise(function(O,P){if(!o&&!x)return P(new Error("scrypt: missing N or logN parameter"));if(o||o===0){if(o<1||o>31)return P(new Error("scrypt: logN must be between 1 and 31"));x=1<<o>>>0}else{if(x<2||x>cf)return P(new Error("scrypt: N is out of range"));if((x&x-1)!==0)return P(Error("scrypt: N is not a power of 2"))}if(d<1)return P(new Error("scrypt: invalid p"));if(a<1)return P(new Error("scrypt: invalid r"));kt({password:t,salt:r,N:x,r:a,p:d,dkLen:p,interruptStep:B,encoding:I},O)})}function kt(t,r){var e=t.password,f=t.salt,n=t.N,x=t.r,o=t.p,s=t.dkLen,a=t.interruptStep,b=t.encoding;function d(c){var i=[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],y=1779033703,l=3144134277,N=1013904242,z=2773480762,X=1359893119,m=2600822924,W=528734635,V=1541459225,Q=new Array(64);function f0(L0){for(var J0=0,A=L0.length;A>=64;){var d0=y,w0=l,v0=N,R0=z,a0=X,E0=m,A0=W,I0=V,s0=void 0,e0=void 0,p0=void 0,g0=void 0,F0=void 0;for(e0=0;e0<16;e0++)p0=J0+e0*4,Q[e0]=(L0[p0]&255)<<24|(L0[p0+1]&255)<<16|(L0[p0+2]&255)<<8|L0[p0+3]&255;for(e0=16;e0<64;e0++)s0=Q[e0-2],g0=(s0>>>17|s0<<32-17)^(s0>>>19|s0<<32-19)^s0>>>10,s0=Q[e0-15],F0=(s0>>>7|s0<<32-7)^(s0>>>18|s0<<32-18)^s0>>>3,Q[e0]=(g0+Q[e0-7]|0)+(F0+Q[e0-16]|0)|0;for(e0=0;e0<64;e0++)g0=(((a0>>>6|a0<<32-6)^(a0>>>11|a0<<32-11)^(a0>>>25|a0<<32-25))+(a0&E0^~a0&A0)|0)+(I0+(i[e0]+Q[e0]|0)|0)|0,F0=((d0>>>2|d0<<32-2)^(d0>>>13|d0<<32-13)^(d0>>>22|d0<<32-22))+(d0&w0^d0&v0^w0&v0)|0,I0=A0,A0=E0,E0=a0,a0=R0+g0|0,R0=v0,v0=w0,w0=d0,d0=g0+F0|0;y=y+d0|0,l=l+w0|0,N=N+v0|0,z=z+R0|0,X=X+a0|0,m=m+E0|0,W=W+A0|0,V=V+I0|0,J0+=64,A-=64}}f0(c);var k,r0=c.length%64,n0=c.length/536870912|0,x0=c.length<<3,i0=r0<56?56:120,y0=c.slice(c.length-r0,c.length);for(y0.push(128),k=r0+1;k<i0;k++)y0.push(0);return y0.push(n0>>>24&255),y0.push(n0>>>16&255),y0.push(n0>>>8&255),y0.push(n0>>>0&255),y0.push(x0>>>24&255),y0.push(x0>>>16&255),y0.push(x0>>>8&255),y0.push(x0>>>0&255),f0(y0),[y>>>24&255,y>>>16&255,y>>>8&255,y>>>0&255,l>>>24&255,l>>>16&255,l>>>8&255,l>>>0&255,N>>>24&255,N>>>16&255,N>>>8&255,N>>>0&255,z>>>24&255,z>>>16&255,z>>>8&255,z>>>0&255,X>>>24&255,X>>>16&255,X>>>8&255,X>>>0&255,m>>>24&255,m>>>16&255,m>>>8&255,m>>>0&255,W>>>24&255,W>>>16&255,W>>>8&255,W>>>0&255,V>>>24&255,V>>>16&255,V>>>8&255,V>>>0&255]}function S(c,i,y){c.length>64&&(c=d(c.push?c:Qt(c)));var l,N=64+i.length+4,z=new Array(N),X=new Array(64),m=[];for(l=0;l<64;l++)z[l]=54;for(l=0;l<c.length;l++)z[l]^=c[l];for(l=0;l<i.length;l++)z[64+l]=i[l];for(l=N-4;l<N;l++)z[l]=0;for(l=0;l<64;l++)X[l]=92;for(l=0;l<c.length;l++)X[l]^=c[l];function W(){for(var V=N-1;V>=N-4;V--){if(z[V]++,z[V]<=255)return;z[V]=0}}for(;y>=32;)W(),m=m.concat(d(X.concat(d(z)))),y-=32;return y>0&&(W(),m=m.concat(d(X.concat(d(z))).slice(0,y))),m}function p(c,i,y,l){var N=c[0]^i[y++],z=c[1]^i[y++],X=c[2]^i[y++],m=c[3]^i[y++],W=c[4]^i[y++],V=c[5]^i[y++],Q=c[6]^i[y++],f0=c[7]^i[y++],k=c[8]^i[y++],r0=c[9]^i[y++],n0=c[10]^i[y++],x0=c[11]^i[y++],i0=c[12]^i[y++],y0=c[13]^i[y++],L0=c[14]^i[y++],J0=c[15]^i[y++],A,d0,w0=N,v0=z,R0=X,a0=m,E0=W,A0=V,I0=Q,s0=f0,e0=k,p0=r0,g0=n0,F0=x0,C0=i0,j0=y0,Z0=L0,D0=J0;for(d0=0;d0<8;d0+=2)A=w0+C0,E0^=A<<7|A>>>32-7,A=E0+w0,e0^=A<<9|A>>>32-9,A=e0+E0,C0^=A<<13|A>>>32-13,A=C0+e0,w0^=A<<18|A>>>32-18,A=A0+v0,p0^=A<<7|A>>>32-7,A=p0+A0,j0^=A<<9|A>>>32-9,A=j0+p0,v0^=A<<13|A>>>32-13,A=v0+j0,A0^=A<<18|A>>>32-18,A=g0+I0,Z0^=A<<7|A>>>32-7,A=Z0+g0,R0^=A<<9|A>>>32-9,A=R0+Z0,I0^=A<<13|A>>>32-13,A=I0+R0,g0^=A<<18|A>>>32-18,A=D0+F0,a0^=A<<7|A>>>32-7,A=a0+D0,s0^=A<<9|A>>>32-9,A=s0+a0,F0^=A<<13|A>>>32-13,A=F0+s0,D0^=A<<18|A>>>32-18,A=w0+a0,v0^=A<<7|A>>>32-7,A=v0+w0,R0^=A<<9|A>>>32-9,A=R0+v0,a0^=A<<13|A>>>32-13,A=a0+R0,w0^=A<<18|A>>>32-18,A=A0+E0,I0^=A<<7|A>>>32-7,A=I0+A0,s0^=A<<9|A>>>32-9,A=s0+I0,E0^=A<<13|A>>>32-13,A=E0+s0,A0^=A<<18|A>>>32-18,A=g0+p0,F0^=A<<7|A>>>32-7,A=F0+g0,e0^=A<<9|A>>>32-9,A=e0+F0,p0^=A<<13|A>>>32-13,A=p0+e0,g0^=A<<18|A>>>32-18,A=D0+Z0,C0^=A<<7|A>>>32-7,A=C0+D0,j0^=A<<9|A>>>32-9,A=j0+C0,Z0^=A<<13|A>>>32-13,A=Z0+j0,D0^=A<<18|A>>>32-18;i[l++]=c[0]=w0+N|0,i[l++]=c[1]=v0+z|0,i[l++]=c[2]=R0+X|0,i[l++]=c[3]=a0+m|0,i[l++]=c[4]=E0+W|0,i[l++]=c[5]=A0+V|0,i[l++]=c[6]=I0+Q|0,i[l++]=c[7]=s0+f0|0,i[l++]=c[8]=e0+k|0,i[l++]=c[9]=p0+r0|0,i[l++]=c[10]=g0+n0|0,i[l++]=c[11]=F0+x0|0,i[l++]=c[12]=C0+i0|0,i[l++]=c[13]=j0+y0|0,i[l++]=c[14]=Z0+L0|0,i[l++]=c[15]=D0+J0|0}function g(c,i,y,l,N){for(;N--;)c[i++]=y[l++]}function B(c,i,y,l,N){for(;N--;)c[i++]^=y[l++]}function I(c,i,y,l,N){g(c,0,i,y+(2*N-1)*16,16);for(var z=0;z<2*N;z+=2)p(c,i,y+z*16,l+z*8),p(c,i,y+z*16+16,l+z*8+N*16)}function O(c,i,y){return c[i+(2*y-1)*16]}function P(c){for(var i=[],y=0;y<c.length;y++){var l=c.charCodeAt(y);if(l<128)i.push(l);else if(l<2048)i.push(192|l>>6),i.push(128|l&63);else if(l<55296)i.push(224|l>>12),i.push(128|l>>6&63),i.push(128|l&63);else{if(y>=c.length-1)throw new Error("invalid string");y++,l=(l&1023)<<10,l|=c.charCodeAt(y)&1023,l+=65536,i.push(240|l>>18),i.push(128|l>>12&63),i.push(128|l>>6&63),i.push(128|l&63)}}return i}function j(c){for(var i="0123456789abcdef".split(""),y=c.length,l=[],N=0;N<y;N++)l.push(i[c[N]>>>4&15]),l.push(i[c[N]>>>0&15]);return l.join("")}function D(c){for(var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),y=c.length,l=[],N=0,z,X,m,W;N<y;)z=N<y?c[N++]:0,X=N<y?c[N++]:0,m=N<y?c[N++]:0,W=(z<<16)+(X<<8)+m,l.push(i[W>>>3*6&63]),l.push(i[W>>>2*6&63]),l.push(i[W>>>1*6&63]),l.push(i[W>>>0*6&63]);return y%3>0&&(l[l.length-1]="=",y%3===1&&(l[l.length-2]="=")),l.join("")}var U,L,T,Y;if(x*o>=1<<30||x>cf/128/o||x>cf/256||n>cf/128/x)throw new Error("scrypt: parameters are too large");typeof e=="string"&&(e=P(e)),typeof f=="string"&&(f=P(f)),typeof Int32Array<"u"?(U=new Int32Array(64*x),L=new Int32Array(32*n*x),Y=new Int32Array(16)):(U=[],L=[],Y=new Array(16)),T=S(e,f,o*128*x);var M=0,R=32*x;function h(c){for(var i=0;i<32*x;i++){var y=c+i*4;U[M+i]=(T[y+3]&255)<<24|(T[y+2]&255)<<16|(T[y+1]&255)<<8|(T[y+0]&255)<<0}}function u(c,i){for(var y=c;y<i;y+=2)g(L,y*(32*x),U,M,32*x),I(Y,U,M,R,x),g(L,(y+1)*(32*x),U,R,32*x),I(Y,U,R,M,x)}function _(c,i){for(var y=c;y<i;y+=2){var l=O(U,M,x)&n-1;B(U,M,L,l*(32*x),32*x),I(Y,U,M,R,x),l=O(U,R,x)&n-1,B(U,R,L,l*(32*x),32*x),I(Y,U,R,M,x)}}function w(c){for(var i=0;i<32*x;i++){var y=U[M+i];T[c+i*4+0]=y>>>0&255,T[c+i*4+1]=y>>>8&255,T[c+i*4+2]=y>>>16&255,T[c+i*4+3]=y>>>24&255}}var v=typeof setImmediate<"u"?setImmediate:setTimeout;function F(c,i,y,l,N){(function z(){v(function(){l(c,c+y<i?c+y:i),c+=y,c<i?z():N()})})()}function H(c){var i=S(e,T,s);return c==="base64"?D(i):c==="hex"?j(i):c==="binary"?new Uint8Array(i):i}function q(){for(var c=0;c<o;c++)h(c*128*x),u(0,n),_(0,n),w(c*128*x);r(H(b))}function G(c){h(c*128*x),F(0,n,a*2,u,function(){F(0,n,a*2,_,function(){w(c*128*x),c+1<o?v(function(){G(c+1)}):r(H(b))})})}a<=0?q():G(0)}var cf=-1>>>0;var uf="input is invalid type";typeof process=="object"&&process.versions&&process.versions.node;var K="0123456789abcdef".split(""),fr=[-2147483648,8388608,32768,128],N0=[24,16,8,0],sf=[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],lf=["hex","array","digest","arrayBuffer"],c0=[],ht=function(t,r){return function(e){return new h0(r,!0).update(e)[t]()}};function Zf(t){var r=ht("hex",t);r.create=function(){return new h0(t)},r.update=function(n){return r.create().update(n)};for(var e=0;e<lf.length;++e){var f=lf[e];r[f]=ht(f,t)}return r}var ut=function(t,r){return function(e,f){return new wf(e,r,!0).update(f)[t]()}},Ut=function(t){var r=ut("hex",t);r.create=function(n){return new wf(n,t)},r.update=function(n,x){return r.create(n).update(x)};for(var e=0;e<lf.length;++e){var f=lf[e];r[f]=ut(f,t)}return r};function h0(t,r){r?(c0[0]=c0[16]=c0[1]=c0[2]=c0[3]=c0[4]=c0[5]=c0[6]=c0[7]=c0[8]=c0[9]=c0[10]=c0[11]=c0[12]=c0[13]=c0[14]=c0[15]=0,this.blocks=c0):this.blocks=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],t?(this.h0=3238371032,this.h1=914150663,this.h2=812702999,this.h3=4144912697,this.h4=4290775857,this.h5=1750603025,this.h6=1694076839,this.h7=3204075428):(this.h0=1779033703,this.h1=3144134277,this.h2=1013904242,this.h3=2773480762,this.h4=1359893119,this.h5=2600822924,this.h6=528734635,this.h7=1541459225),this.block=this.start=this.bytes=this.hBytes=0,this.finalized=this.hashed=!1,this.first=!0,this.is224=t}h0.prototype.update=function(t){if(!this.finalized){var r,e=typeof t;if(e!=="string"){if(e==="object"){if(t===null)throw new Error(uf);t=new Uint8Array(t)}else throw new Error(uf);r=!0}for(var f,n=0,x,o=t.length,s=this.blocks;n<o;){if(this.hashed&&(this.hashed=!1,s[0]=this.block,s[16]=s[1]=s[2]=s[3]=s[4]=s[5]=s[6]=s[7]=s[8]=s[9]=s[10]=s[11]=s[12]=s[13]=s[14]=s[15]=0),r)for(x=this.start;n<o&&x<64;++n)s[x>>2]|=t[n]<<N0[x++&3];else for(x=this.start;n<o&&x<64;++n)f=t.charCodeAt(n),f<128?s[x>>2]|=f<<N0[x++&3]:f<2048?(s[x>>2]|=(192|f>>6)<<N0[x++&3],s[x>>2]|=(128|f&63)<<N0[x++&3]):f<55296||f>=57344?(s[x>>2]|=(224|f>>12)<<N0[x++&3],s[x>>2]|=(128|f>>6&63)<<N0[x++&3],s[x>>2]|=(128|f&63)<<N0[x++&3]):(f=65536+((f&1023)<<10|t.charCodeAt(++n)&1023),s[x>>2]|=(240|f>>18)<<N0[x++&3],s[x>>2]|=(128|f>>12&63)<<N0[x++&3],s[x>>2]|=(128|f>>6&63)<<N0[x++&3],s[x>>2]|=(128|f&63)<<N0[x++&3]);this.lastByteIndex=x,this.bytes+=x-this.start,x>=64?(this.block=s[16],this.start=x-64,this.hash(),this.hashed=!0):this.start=x}return this.bytes>4294967295&&(this.hBytes+=this.bytes/4294967296<<0,this.bytes=this.bytes%4294967296),this}};h0.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,r=this.lastByteIndex;t[16]=this.block,t[r>>2]|=fr[r&3],this.block=t[16],r>=56&&(this.hashed||this.hash(),t[0]=this.block,t[16]=t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=t[7]=t[8]=t[9]=t[10]=t[11]=t[12]=t[13]=t[14]=t[15]=0),t[14]=this.hBytes<<3|this.bytes>>>29,t[15]=this.bytes<<3,this.hash()}};h0.prototype.hash=function(){var t=this.h0,r=this.h1,e=this.h2,f=this.h3,n=this.h4,x=this.h5,o=this.h6,s=this.h7,a=this.blocks,b,d,S,p,g,B,I,O,P,j,D;for(b=16;b<64;++b)g=a[b-15],d=(g>>>7|g<<25)^(g>>>18|g<<14)^g>>>3,g=a[b-2],S=(g>>>17|g<<15)^(g>>>19|g<<13)^g>>>10,a[b]=a[b-16]+d+a[b-7]+S<<0;for(D=r&e,b=0;b<64;b+=4)this.first?(this.is224?(O=300032,g=a[0]-1413257819,s=g-150054599<<0,f=g+24177077<<0):(O=704751109,g=a[0]-210244248,s=g-1521486534<<0,f=g+143694565<<0),this.first=!1):(d=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),S=(n>>>6|n<<26)^(n>>>11|n<<21)^(n>>>25|n<<7),O=t&r,p=O^t&e^D,I=n&x^~n&o,g=s+S+I+sf[b]+a[b],B=d+p,s=f+g<<0,f=g+B<<0),d=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),S=(s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7),P=f&t,p=P^f&r^O,I=s&n^~s&x,g=o+S+I+sf[b+1]+a[b+1],B=d+p,o=e+g<<0,e=g+B<<0,d=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),S=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7),j=e&f,p=j^e&t^P,I=o&s^~o&n,g=x+S+I+sf[b+2]+a[b+2],B=d+p,x=r+g<<0,r=g+B<<0,d=(r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10),S=(x>>>6|x<<26)^(x>>>11|x<<21)^(x>>>25|x<<7),D=r&e,p=D^r&f^j,I=x&o^~x&s,g=n+S+I+sf[b+3]+a[b+3],B=d+p,n=t+g<<0,t=g+B<<0;this.h0=this.h0+t<<0,this.h1=this.h1+r<<0,this.h2=this.h2+e<<0,this.h3=this.h3+f<<0,this.h4=this.h4+n<<0,this.h5=this.h5+x<<0,this.h6=this.h6+o<<0,this.h7=this.h7+s<<0};h0.prototype.hex=function(){this.finalize();var t=this.h0,r=this.h1,e=this.h2,f=this.h3,n=this.h4,x=this.h5,o=this.h6,s=this.h7,a=K[t>>28&15]+K[t>>24&15]+K[t>>20&15]+K[t>>16&15]+K[t>>12&15]+K[t>>8&15]+K[t>>4&15]+K[t&15]+K[r>>28&15]+K[r>>24&15]+K[r>>20&15]+K[r>>16&15]+K[r>>12&15]+K[r>>8&15]+K[r>>4&15]+K[r&15]+K[e>>28&15]+K[e>>24&15]+K[e>>20&15]+K[e>>16&15]+K[e>>12&15]+K[e>>8&15]+K[e>>4&15]+K[e&15]+K[f>>28&15]+K[f>>24&15]+K[f>>20&15]+K[f>>16&15]+K[f>>12&15]+K[f>>8&15]+K[f>>4&15]+K[f&15]+K[n>>28&15]+K[n>>24&15]+K[n>>20&15]+K[n>>16&15]+K[n>>12&15]+K[n>>8&15]+K[n>>4&15]+K[n&15]+K[x>>28&15]+K[x>>24&15]+K[x>>20&15]+K[x>>16&15]+K[x>>12&15]+K[x>>8&15]+K[x>>4&15]+K[x&15]+K[o>>28&15]+K[o>>24&15]+K[o>>20&15]+K[o>>16&15]+K[o>>12&15]+K[o>>8&15]+K[o>>4&15]+K[o&15];return this.is224||(a+=K[s>>28&15]+K[s>>24&15]+K[s>>20&15]+K[s>>16&15]+K[s>>12&15]+K[s>>8&15]+K[s>>4&15]+K[s&15]),a};h0.prototype.toString=h0.prototype.hex;h0.prototype.digest=function(){this.finalize();var t=this.h0,r=this.h1,e=this.h2,f=this.h3,n=this.h4,x=this.h5,o=this.h6,s=this.h7,a=[t>>24&255,t>>16&255,t>>8&255,t&255,r>>24&255,r>>16&255,r>>8&255,r&255,e>>24&255,e>>16&255,e>>8&255,e&255,f>>24&255,f>>16&255,f>>8&255,f&255,n>>24&255,n>>16&255,n>>8&255,n&255,x>>24&255,x>>16&255,x>>8&255,x&255,o>>24&255,o>>16&255,o>>8&255,o&255];return this.is224||a.push(s>>24&255,s>>16&255,s>>8&255,s&255),a};h0.prototype.array=h0.prototype.digest;h0.prototype.arrayBuffer=function(){this.finalize();var t=new ArrayBuffer(this.is224?28:32),r=new DataView(t);return r.setUint32(0,this.h0),r.setUint32(4,this.h1),r.setUint32(8,this.h2),r.setUint32(12,this.h3),r.setUint32(16,this.h4),r.setUint32(20,this.h5),r.setUint32(24,this.h6),this.is224||r.setUint32(28,this.h7),t};function wf(t,r,e){var f,n=typeof t;if(n==="string"){var x=[],o=t.length,s=0,a;for(f=0;f<o;++f)a=t.charCodeAt(f),a<128?x[s++]=a:a<2048?(x[s++]=192|a>>6,x[s++]=128|a&63):a<55296||a>=57344?(x[s++]=224|a>>12,x[s++]=128|a>>6&63,x[s++]=128|a&63):(a=65536+((a&1023)<<10|t.charCodeAt(++f)&1023),x[s++]=240|a>>18,x[s++]=128|a>>12&63,x[s++]=128|a>>6&63,x[s++]=128|a&63);t=x}else if(n==="object"){if(t===null)throw new Error(uf);t=new Uint8Array(t)}else throw new Error(uf);t.length>64&&(t=new h0(r,!0).update(t).array());var b=[],d=[];for(f=0;f<64;++f){var S=t[f]||0;b[f]=92^S,d[f]=54^S}h0.call(this,r,e),this.update(d),this.oKeyPad=b,this.inner=!0,this.sharedMemory=e}wf.prototype=new h0;wf.prototype.finalize=function(){if(h0.prototype.finalize.call(this),this.inner){this.inner=!1;var t=this.array();h0.call(this,this.is224,this.sharedMemory),this.update(this.oKeyPad),this.update(t),h0.prototype.finalize.call(this)}};const ff=Zf();ff.sha256=ff;ff.sha224=Zf(!0);ff.sha256.hmac=Ut();ff.sha224.hmac=Ut(!0);var Z={},C=function(t){var r,e=new Float64Array(16);if(t)for(r=0;r<t.length;r++)e[r]=t[r];return e},vf=function(){throw new Error("no PRNG")},tr=new Uint8Array(16),Tt=new Uint8Array(32);Tt[0]=9;var Yf=C(),W0=C([1]),rr=C([56129,1]),Rt=C([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),er=C([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),lt=C([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),dt=C([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),nr=C([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function bt(t,r,e,f){t[r]=e>>24&255,t[r+1]=e>>16&255,t[r+2]=e>>8&255,t[r+3]=e&255,t[r+4]=f>>24&255,t[r+5]=f>>16&255,t[r+6]=f>>8&255,t[r+7]=f&255}function Df(t,r,e,f,n){var x,o=0;for(x=0;x<n;x++)o|=t[r+x]^e[f+x];return(1&o-1>>>8)-1}function It(t,r,e,f){return Df(t,r,e,f,16)}function Hf(t,r,e,f){return Df(t,r,e,f,32)}function xr(t,r,e,f){for(var n=f[0]&255|(f[1]&255)<<8|(f[2]&255)<<16|(f[3]&255)<<24,x=e[0]&255|(e[1]&255)<<8|(e[2]&255)<<16|(e[3]&255)<<24,o=e[4]&255|(e[5]&255)<<8|(e[6]&255)<<16|(e[7]&255)<<24,s=e[8]&255|(e[9]&255)<<8|(e[10]&255)<<16|(e[11]&255)<<24,a=e[12]&255|(e[13]&255)<<8|(e[14]&255)<<16|(e[15]&255)<<24,b=f[4]&255|(f[5]&255)<<8|(f[6]&255)<<16|(f[7]&255)<<24,d=r[0]&255|(r[1]&255)<<8|(r[2]&255)<<16|(r[3]&255)<<24,S=r[4]&255|(r[5]&255)<<8|(r[6]&255)<<16|(r[7]&255)<<24,p=r[8]&255|(r[9]&255)<<8|(r[10]&255)<<16|(r[11]&255)<<24,g=r[12]&255|(r[13]&255)<<8|(r[14]&255)<<16|(r[15]&255)<<24,B=f[8]&255|(f[9]&255)<<8|(f[10]&255)<<16|(f[11]&255)<<24,I=e[16]&255|(e[17]&255)<<8|(e[18]&255)<<16|(e[19]&255)<<24,O=e[20]&255|(e[21]&255)<<8|(e[22]&255)<<16|(e[23]&255)<<24,P=e[24]&255|(e[25]&255)<<8|(e[26]&255)<<16|(e[27]&255)<<24,j=e[28]&255|(e[29]&255)<<8|(e[30]&255)<<16|(e[31]&255)<<24,D=f[12]&255|(f[13]&255)<<8|(f[14]&255)<<16|(f[15]&255)<<24,U=n,L=x,T=o,Y=s,M=a,R=b,h=d,u=S,_=p,w=g,v=B,F=I,H=O,q=P,G=j,c=D,i,y=0;y<20;y+=2)i=U+H|0,M^=i<<7|i>>>32-7,i=M+U|0,_^=i<<9|i>>>32-9,i=_+M|0,H^=i<<13|i>>>32-13,i=H+_|0,U^=i<<18|i>>>32-18,i=R+L|0,w^=i<<7|i>>>32-7,i=w+R|0,q^=i<<9|i>>>32-9,i=q+w|0,L^=i<<13|i>>>32-13,i=L+q|0,R^=i<<18|i>>>32-18,i=v+h|0,G^=i<<7|i>>>32-7,i=G+v|0,T^=i<<9|i>>>32-9,i=T+G|0,h^=i<<13|i>>>32-13,i=h+T|0,v^=i<<18|i>>>32-18,i=c+F|0,Y^=i<<7|i>>>32-7,i=Y+c|0,u^=i<<9|i>>>32-9,i=u+Y|0,F^=i<<13|i>>>32-13,i=F+u|0,c^=i<<18|i>>>32-18,i=U+Y|0,L^=i<<7|i>>>32-7,i=L+U|0,T^=i<<9|i>>>32-9,i=T+L|0,Y^=i<<13|i>>>32-13,i=Y+T|0,U^=i<<18|i>>>32-18,i=R+M|0,h^=i<<7|i>>>32-7,i=h+R|0,u^=i<<9|i>>>32-9,i=u+h|0,M^=i<<13|i>>>32-13,i=M+u|0,R^=i<<18|i>>>32-18,i=v+w|0,F^=i<<7|i>>>32-7,i=F+v|0,_^=i<<9|i>>>32-9,i=_+F|0,w^=i<<13|i>>>32-13,i=w+_|0,v^=i<<18|i>>>32-18,i=c+G|0,H^=i<<7|i>>>32-7,i=H+c|0,q^=i<<9|i>>>32-9,i=q+H|0,G^=i<<13|i>>>32-13,i=G+q|0,c^=i<<18|i>>>32-18;U=U+n|0,L=L+x|0,T=T+o|0,Y=Y+s|0,M=M+a|0,R=R+b|0,h=h+d|0,u=u+S|0,_=_+p|0,w=w+g|0,v=v+B|0,F=F+I|0,H=H+O|0,q=q+P|0,G=G+j|0,c=c+D|0,t[0]=U>>>0&255,t[1]=U>>>8&255,t[2]=U>>>16&255,t[3]=U>>>24&255,t[4]=L>>>0&255,t[5]=L>>>8&255,t[6]=L>>>16&255,t[7]=L>>>24&255,t[8]=T>>>0&255,t[9]=T>>>8&255,t[10]=T>>>16&255,t[11]=T>>>24&255,t[12]=Y>>>0&255,t[13]=Y>>>8&255,t[14]=Y>>>16&255,t[15]=Y>>>24&255,t[16]=M>>>0&255,t[17]=M>>>8&255,t[18]=M>>>16&255,t[19]=M>>>24&255,t[20]=R>>>0&255,t[21]=R>>>8&255,t[22]=R>>>16&255,t[23]=R>>>24&255,t[24]=h>>>0&255,t[25]=h>>>8&255,t[26]=h>>>16&255,t[27]=h>>>24&255,t[28]=u>>>0&255,t[29]=u>>>8&255,t[30]=u>>>16&255,t[31]=u>>>24&255,t[32]=_>>>0&255,t[33]=_>>>8&255,t[34]=_>>>16&255,t[35]=_>>>24&255,t[36]=w>>>0&255,t[37]=w>>>8&255,t[38]=w>>>16&255,t[39]=w>>>24&255,t[40]=v>>>0&255,t[41]=v>>>8&255,t[42]=v>>>16&255,t[43]=v>>>24&255,t[44]=F>>>0&255,t[45]=F>>>8&255,t[46]=F>>>16&255,t[47]=F>>>24&255,t[48]=H>>>0&255,t[49]=H>>>8&255,t[50]=H>>>16&255,t[51]=H>>>24&255,t[52]=q>>>0&255,t[53]=q>>>8&255,t[54]=q>>>16&255,t[55]=q>>>24&255,t[56]=G>>>0&255,t[57]=G>>>8&255,t[58]=G>>>16&255,t[59]=G>>>24&255,t[60]=c>>>0&255,t[61]=c>>>8&255,t[62]=c>>>16&255,t[63]=c>>>24&255}function ir(t,r,e,f){for(var n=f[0]&255|(f[1]&255)<<8|(f[2]&255)<<16|(f[3]&255)<<24,x=e[0]&255|(e[1]&255)<<8|(e[2]&255)<<16|(e[3]&255)<<24,o=e[4]&255|(e[5]&255)<<8|(e[6]&255)<<16|(e[7]&255)<<24,s=e[8]&255|(e[9]&255)<<8|(e[10]&255)<<16|(e[11]&255)<<24,a=e[12]&255|(e[13]&255)<<8|(e[14]&255)<<16|(e[15]&255)<<24,b=f[4]&255|(f[5]&255)<<8|(f[6]&255)<<16|(f[7]&255)<<24,d=r[0]&255|(r[1]&255)<<8|(r[2]&255)<<16|(r[3]&255)<<24,S=r[4]&255|(r[5]&255)<<8|(r[6]&255)<<16|(r[7]&255)<<24,p=r[8]&255|(r[9]&255)<<8|(r[10]&255)<<16|(r[11]&255)<<24,g=r[12]&255|(r[13]&255)<<8|(r[14]&255)<<16|(r[15]&255)<<24,B=f[8]&255|(f[9]&255)<<8|(f[10]&255)<<16|(f[11]&255)<<24,I=e[16]&255|(e[17]&255)<<8|(e[18]&255)<<16|(e[19]&255)<<24,O=e[20]&255|(e[21]&255)<<8|(e[22]&255)<<16|(e[23]&255)<<24,P=e[24]&255|(e[25]&255)<<8|(e[26]&255)<<16|(e[27]&255)<<24,j=e[28]&255|(e[29]&255)<<8|(e[30]&255)<<16|(e[31]&255)<<24,D=f[12]&255|(f[13]&255)<<8|(f[14]&255)<<16|(f[15]&255)<<24,U=n,L=x,T=o,Y=s,M=a,R=b,h=d,u=S,_=p,w=g,v=B,F=I,H=O,q=P,G=j,c=D,i,y=0;y<20;y+=2)i=U+H|0,M^=i<<7|i>>>32-7,i=M+U|0,_^=i<<9|i>>>32-9,i=_+M|0,H^=i<<13|i>>>32-13,i=H+_|0,U^=i<<18|i>>>32-18,i=R+L|0,w^=i<<7|i>>>32-7,i=w+R|0,q^=i<<9|i>>>32-9,i=q+w|0,L^=i<<13|i>>>32-13,i=L+q|0,R^=i<<18|i>>>32-18,i=v+h|0,G^=i<<7|i>>>32-7,i=G+v|0,T^=i<<9|i>>>32-9,i=T+G|0,h^=i<<13|i>>>32-13,i=h+T|0,v^=i<<18|i>>>32-18,i=c+F|0,Y^=i<<7|i>>>32-7,i=Y+c|0,u^=i<<9|i>>>32-9,i=u+Y|0,F^=i<<13|i>>>32-13,i=F+u|0,c^=i<<18|i>>>32-18,i=U+Y|0,L^=i<<7|i>>>32-7,i=L+U|0,T^=i<<9|i>>>32-9,i=T+L|0,Y^=i<<13|i>>>32-13,i=Y+T|0,U^=i<<18|i>>>32-18,i=R+M|0,h^=i<<7|i>>>32-7,i=h+R|0,u^=i<<9|i>>>32-9,i=u+h|0,M^=i<<13|i>>>32-13,i=M+u|0,R^=i<<18|i>>>32-18,i=v+w|0,F^=i<<7|i>>>32-7,i=F+v|0,_^=i<<9|i>>>32-9,i=_+F|0,w^=i<<13|i>>>32-13,i=w+_|0,v^=i<<18|i>>>32-18,i=c+G|0,H^=i<<7|i>>>32-7,i=H+c|0,q^=i<<9|i>>>32-9,i=q+H|0,G^=i<<13|i>>>32-13,i=G+q|0,c^=i<<18|i>>>32-18;t[0]=U>>>0&255,t[1]=U>>>8&255,t[2]=U>>>16&255,t[3]=U>>>24&255,t[4]=R>>>0&255,t[5]=R>>>8&255,t[6]=R>>>16&255,t[7]=R>>>24&255,t[8]=v>>>0&255,t[9]=v>>>8&255,t[10]=v>>>16&255,t[11]=v>>>24&255,t[12]=c>>>0&255,t[13]=c>>>8&255,t[14]=c>>>16&255,t[15]=c>>>24&255,t[16]=h>>>0&255,t[17]=h>>>8&255,t[18]=h>>>16&255,t[19]=h>>>24&255,t[20]=u>>>0&255,t[21]=u>>>8&255,t[22]=u>>>16&255,t[23]=u>>>24&255,t[24]=_>>>0&255,t[25]=_>>>8&255,t[26]=_>>>16&255,t[27]=_>>>24&255,t[28]=w>>>0&255,t[29]=w>>>8&255,t[30]=w>>>16&255,t[31]=w>>>24&255}function df(t,r,e,f){xr(t,r,e,f)}function pf(t,r,e,f){ir(t,r,e,f)}var m0=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function Nt(t,r,e,f,n,x,o){var s=new Uint8Array(16),a=new Uint8Array(64),b,d;for(d=0;d<16;d++)s[d]=0;for(d=0;d<8;d++)s[d]=x[d];for(;n>=64;){for(df(a,s,o,m0),d=0;d<64;d++)t[r+d]=e[f+d]^a[d];for(b=1,d=8;d<16;d++)b=b+(s[d]&255)|0,s[d]=b&255,b>>>=8;n-=64,r+=64,f+=64}if(n>0)for(df(a,s,o,m0),d=0;d<n;d++)t[r+d]=e[f+d]^a[d];return 0}function zt(t,r,e,f,n){var x=new Uint8Array(16),o=new Uint8Array(64),s,a;for(a=0;a<16;a++)x[a]=0;for(a=0;a<8;a++)x[a]=f[a];for(;e>=64;){for(df(o,x,n,m0),a=0;a<64;a++)t[r+a]=o[a];for(s=1,a=8;a<16;a++)s=s+(x[a]&255)|0,x[a]=s&255,s>>>=8;e-=64,r+=64}if(e>0)for(df(o,x,n,m0),a=0;a<e;a++)t[r+a]=o[a];return 0}function Mt(t,r,e,f,n){var x=new Uint8Array(32);pf(x,f,n,m0);for(var o=new Uint8Array(8),s=0;s<8;s++)o[s]=f[s+16];return zt(t,r,e,o,x)}function mf(t,r,e,f,n,x,o){var s=new Uint8Array(32);pf(s,x,o,m0);for(var a=new Uint8Array(8),b=0;b<8;b++)a[b]=x[b+16];return Nt(t,r,e,f,n,a,s)}var gf=function(t){this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.leftover=0,this.fin=0;var r,e,f,n,x,o,s,a;r=t[0]&255|(t[1]&255)<<8,this.r[0]=r&8191,e=t[2]&255|(t[3]&255)<<8,this.r[1]=(r>>>13|e<<3)&8191,f=t[4]&255|(t[5]&255)<<8,this.r[2]=(e>>>10|f<<6)&7939,n=t[6]&255|(t[7]&255)<<8,this.r[3]=(f>>>7|n<<9)&8191,x=t[8]&255|(t[9]&255)<<8,this.r[4]=(n>>>4|x<<12)&255,this.r[5]=x>>>1&8190,o=t[10]&255|(t[11]&255)<<8,this.r[6]=(x>>>14|o<<2)&8191,s=t[12]&255|(t[13]&255)<<8,this.r[7]=(o>>>11|s<<5)&8065,a=t[14]&255|(t[15]&255)<<8,this.r[8]=(s>>>8|a<<8)&8191,this.r[9]=a>>>5&127,this.pad[0]=t[16]&255|(t[17]&255)<<8,this.pad[1]=t[18]&255|(t[19]&255)<<8,this.pad[2]=t[20]&255|(t[21]&255)<<8,this.pad[3]=t[22]&255|(t[23]&255)<<8,this.pad[4]=t[24]&255|(t[25]&255)<<8,this.pad[5]=t[26]&255|(t[27]&255)<<8,this.pad[6]=t[28]&255|(t[29]&255)<<8,this.pad[7]=t[30]&255|(t[31]&255)<<8};gf.prototype.blocks=function(t,r,e){for(var f=this.fin?0:2048,n,x,o,s,a,b,d,S,p,g,B,I,O,P,j,D,U,L,T,Y=this.h[0],M=this.h[1],R=this.h[2],h=this.h[3],u=this.h[4],_=this.h[5],w=this.h[6],v=this.h[7],F=this.h[8],H=this.h[9],q=this.r[0],G=this.r[1],c=this.r[2],i=this.r[3],y=this.r[4],l=this.r[5],N=this.r[6],z=this.r[7],X=this.r[8],m=this.r[9];e>=16;)n=t[r+0]&255|(t[r+1]&255)<<8,Y+=n&8191,x=t[r+2]&255|(t[r+3]&255)<<8,M+=(n>>>13|x<<3)&8191,o=t[r+4]&255|(t[r+5]&255)<<8,R+=(x>>>10|o<<6)&8191,s=t[r+6]&255|(t[r+7]&255)<<8,h+=(o>>>7|s<<9)&8191,a=t[r+8]&255|(t[r+9]&255)<<8,u+=(s>>>4|a<<12)&8191,_+=a>>>1&8191,b=t[r+10]&255|(t[r+11]&255)<<8,w+=(a>>>14|b<<2)&8191,d=t[r+12]&255|(t[r+13]&255)<<8,v+=(b>>>11|d<<5)&8191,S=t[r+14]&255|(t[r+15]&255)<<8,F+=(d>>>8|S<<8)&8191,H+=S>>>5|f,p=0,g=p,g+=Y*q,g+=M*(5*m),g+=R*(5*X),g+=h*(5*z),g+=u*(5*N),p=g>>>13,g&=8191,g+=_*(5*l),g+=w*(5*y),g+=v*(5*i),g+=F*(5*c),g+=H*(5*G),p+=g>>>13,g&=8191,B=p,B+=Y*G,B+=M*q,B+=R*(5*m),B+=h*(5*X),B+=u*(5*z),p=B>>>13,B&=8191,B+=_*(5*N),B+=w*(5*l),B+=v*(5*y),B+=F*(5*i),B+=H*(5*c),p+=B>>>13,B&=8191,I=p,I+=Y*c,I+=M*G,I+=R*q,I+=h*(5*m),I+=u*(5*X),p=I>>>13,I&=8191,I+=_*(5*z),I+=w*(5*N),I+=v*(5*l),I+=F*(5*y),I+=H*(5*i),p+=I>>>13,I&=8191,O=p,O+=Y*i,O+=M*c,O+=R*G,O+=h*q,O+=u*(5*m),p=O>>>13,O&=8191,O+=_*(5*X),O+=w*(5*z),O+=v*(5*N),O+=F*(5*l),O+=H*(5*y),p+=O>>>13,O&=8191,P=p,P+=Y*y,P+=M*i,P+=R*c,P+=h*G,P+=u*q,p=P>>>13,P&=8191,P+=_*(5*m),P+=w*(5*X),P+=v*(5*z),P+=F*(5*N),P+=H*(5*l),p+=P>>>13,P&=8191,j=p,j+=Y*l,j+=M*y,j+=R*i,j+=h*c,j+=u*G,p=j>>>13,j&=8191,j+=_*q,j+=w*(5*m),j+=v*(5*X),j+=F*(5*z),j+=H*(5*N),p+=j>>>13,j&=8191,D=p,D+=Y*N,D+=M*l,D+=R*y,D+=h*i,D+=u*c,p=D>>>13,D&=8191,D+=_*G,D+=w*q,D+=v*(5*m),D+=F*(5*X),D+=H*(5*z),p+=D>>>13,D&=8191,U=p,U+=Y*z,U+=M*N,U+=R*l,U+=h*y,U+=u*i,p=U>>>13,U&=8191,U+=_*c,U+=w*G,U+=v*q,U+=F*(5*m),U+=H*(5*X),p+=U>>>13,U&=8191,L=p,L+=Y*X,L+=M*z,L+=R*N,L+=h*l,L+=u*y,p=L>>>13,L&=8191,L+=_*i,L+=w*c,L+=v*G,L+=F*q,L+=H*(5*m),p+=L>>>13,L&=8191,T=p,T+=Y*m,T+=M*X,T+=R*z,T+=h*N,T+=u*l,p=T>>>13,T&=8191,T+=_*y,T+=w*i,T+=v*c,T+=F*G,T+=H*q,p+=T>>>13,T&=8191,p=(p<<2)+p|0,p=p+g|0,g=p&8191,p=p>>>13,B+=p,Y=g,M=B,R=I,h=O,u=P,_=j,w=D,v=U,F=L,H=T,r+=16,e-=16;this.h[0]=Y,this.h[1]=M,this.h[2]=R,this.h[3]=h,this.h[4]=u,this.h[5]=_,this.h[6]=w,this.h[7]=v,this.h[8]=F,this.h[9]=H};gf.prototype.finish=function(t,r){var e=new Uint16Array(10),f,n,x,o;if(this.leftover){for(o=this.leftover,this.buffer[o++]=1;o<16;o++)this.buffer[o]=0;this.fin=1,this.blocks(this.buffer,0,16)}for(f=this.h[1]>>>13,this.h[1]&=8191,o=2;o<10;o++)this.h[o]+=f,f=this.h[o]>>>13,this.h[o]&=8191;for(this.h[0]+=f*5,f=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=f,f=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=f,e[0]=this.h[0]+5,f=e[0]>>>13,e[0]&=8191,o=1;o<10;o++)e[o]=this.h[o]+f,f=e[o]>>>13,e[o]&=8191;for(e[9]-=1<<13,n=(f^1)-1,o=0;o<10;o++)e[o]&=n;for(n=~n,o=0;o<10;o++)this.h[o]=this.h[o]&n|e[o];for(this.h[0]=(this.h[0]|this.h[1]<<13)&65535,this.h[1]=(this.h[1]>>>3|this.h[2]<<10)&65535,this.h[2]=(this.h[2]>>>6|this.h[3]<<7)&65535,this.h[3]=(this.h[3]>>>9|this.h[4]<<4)&65535,this.h[4]=(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14)&65535,this.h[5]=(this.h[6]>>>2|this.h[7]<<11)&65535,this.h[6]=(this.h[7]>>>5|this.h[8]<<8)&65535,this.h[7]=(this.h[8]>>>8|this.h[9]<<5)&65535,x=this.h[0]+this.pad[0],this.h[0]=x&65535,o=1;o<8;o++)x=(this.h[o]+this.pad[o]|0)+(x>>>16)|0,this.h[o]=x&65535;t[r+0]=this.h[0]>>>0&255,t[r+1]=this.h[0]>>>8&255,t[r+2]=this.h[1]>>>0&255,t[r+3]=this.h[1]>>>8&255,t[r+4]=this.h[2]>>>0&255,t[r+5]=this.h[2]>>>8&255,t[r+6]=this.h[3]>>>0&255,t[r+7]=this.h[3]>>>8&255,t[r+8]=this.h[4]>>>0&255,t[r+9]=this.h[4]>>>8&255,t[r+10]=this.h[5]>>>0&255,t[r+11]=this.h[5]>>>8&255,t[r+12]=this.h[6]>>>0&255,t[r+13]=this.h[6]>>>8&255,t[r+14]=this.h[7]>>>0&255,t[r+15]=this.h[7]>>>8&255};gf.prototype.update=function(t,r,e){var f,n;if(this.leftover){for(n=16-this.leftover,n>e&&(n=e),f=0;f<n;f++)this.buffer[this.leftover+f]=t[r+f];if(e-=n,r+=n,this.leftover+=n,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(e>=16&&(n=e-e%16,this.blocks(t,r,n),r+=n,e-=n),e){for(f=0;f<e;f++)this.buffer[this.leftover+f]=t[r+f];this.leftover+=e}};function Xf(t,r,e,f,n,x){var o=new gf(x);return o.update(e,f,n),o.finish(t,r),0}function Pt(t,r,e,f,n,x){var o=new Uint8Array(16);return Xf(o,0,e,f,n,x),It(t,r,o,0)}function Vf(t,r,e,f,n){var x;if(e<32)return-1;for(mf(t,0,r,0,e,f,n),Xf(t,16,t,32,e-32,t),x=0;x<16;x++)t[x]=0;return 0}function qf(t,r,e,f,n){var x,o=new Uint8Array(32);if(e<32||(Mt(o,0,32,f,n),Pt(r,16,r,32,e-32,o)!==0))return-1;for(mf(t,0,r,0,e,f,n),x=0;x<32;x++)t[x]=0;return 0}function Y0(t,r){var e;for(e=0;e<16;e++)t[e]=r[e]|0}function If(t){var r,e,f=1;for(r=0;r<16;r++)e=t[r]+f+65535,f=Math.floor(e/65536),t[r]=e-f*65536;t[0]+=f-1+37*(f-1)}function q0(t,r,e){for(var f,n=~(e-1),x=0;x<16;x++)f=n&(t[x]^r[x]),t[x]^=f,r[x]^=f}function X0(t,r){var e,f,n,x=C(),o=C();for(e=0;e<16;e++)o[e]=r[e];for(If(o),If(o),If(o),f=0;f<2;f++){for(x[0]=o[0]-65517,e=1;e<15;e++)x[e]=o[e]-65535-(x[e-1]>>16&1),x[e-1]&=65535;x[15]=o[15]-32767-(x[14]>>16&1),n=x[15]>>16&1,x[14]&=65535,q0(o,x,1-n)}for(e=0;e<16;e++)t[2*e]=o[e]&255,t[2*e+1]=o[e]>>8}function yt(t,r){var e=new Uint8Array(32),f=new Uint8Array(32);return X0(e,t),X0(f,r),Hf(e,0,f,0)}function Yt(t){var r=new Uint8Array(32);return X0(r,t),r[0]&1}function Gf(t,r){var e;for(e=0;e<16;e++)t[e]=r[2*e]+(r[2*e+1]<<8);t[15]&=32767}function B0(t,r,e){for(var f=0;f<16;f++)t[f]=r[f]+e[f]}function T0(t,r,e){for(var f=0;f<16;f++)t[f]=r[f]-e[f]}function $(t,r,e){var f,n,x=0,o=0,s=0,a=0,b=0,d=0,S=0,p=0,g=0,B=0,I=0,O=0,P=0,j=0,D=0,U=0,L=0,T=0,Y=0,M=0,R=0,h=0,u=0,_=0,w=0,v=0,F=0,H=0,q=0,G=0,c=0,i=e[0],y=e[1],l=e[2],N=e[3],z=e[4],X=e[5],m=e[6],W=e[7],V=e[8],Q=e[9],f0=e[10],k=e[11],r0=e[12],n0=e[13],x0=e[14],i0=e[15];f=r[0],x+=f*i,o+=f*y,s+=f*l,a+=f*N,b+=f*z,d+=f*X,S+=f*m,p+=f*W,g+=f*V,B+=f*Q,I+=f*f0,O+=f*k,P+=f*r0,j+=f*n0,D+=f*x0,U+=f*i0,f=r[1],o+=f*i,s+=f*y,a+=f*l,b+=f*N,d+=f*z,S+=f*X,p+=f*m,g+=f*W,B+=f*V,I+=f*Q,O+=f*f0,P+=f*k,j+=f*r0,D+=f*n0,U+=f*x0,L+=f*i0,f=r[2],s+=f*i,a+=f*y,b+=f*l,d+=f*N,S+=f*z,p+=f*X,g+=f*m,B+=f*W,I+=f*V,O+=f*Q,P+=f*f0,j+=f*k,D+=f*r0,U+=f*n0,L+=f*x0,T+=f*i0,f=r[3],a+=f*i,b+=f*y,d+=f*l,S+=f*N,p+=f*z,g+=f*X,B+=f*m,I+=f*W,O+=f*V,P+=f*Q,j+=f*f0,D+=f*k,U+=f*r0,L+=f*n0,T+=f*x0,Y+=f*i0,f=r[4],b+=f*i,d+=f*y,S+=f*l,p+=f*N,g+=f*z,B+=f*X,I+=f*m,O+=f*W,P+=f*V,j+=f*Q,D+=f*f0,U+=f*k,L+=f*r0,T+=f*n0,Y+=f*x0,M+=f*i0,f=r[5],d+=f*i,S+=f*y,p+=f*l,g+=f*N,B+=f*z,I+=f*X,O+=f*m,P+=f*W,j+=f*V,D+=f*Q,U+=f*f0,L+=f*k,T+=f*r0,Y+=f*n0,M+=f*x0,R+=f*i0,f=r[6],S+=f*i,p+=f*y,g+=f*l,B+=f*N,I+=f*z,O+=f*X,P+=f*m,j+=f*W,D+=f*V,U+=f*Q,L+=f*f0,T+=f*k,Y+=f*r0,M+=f*n0,R+=f*x0,h+=f*i0,f=r[7],p+=f*i,g+=f*y,B+=f*l,I+=f*N,O+=f*z,P+=f*X,j+=f*m,D+=f*W,U+=f*V,L+=f*Q,T+=f*f0,Y+=f*k,M+=f*r0,R+=f*n0,h+=f*x0,u+=f*i0,f=r[8],g+=f*i,B+=f*y,I+=f*l,O+=f*N,P+=f*z,j+=f*X,D+=f*m,U+=f*W,L+=f*V,T+=f*Q,Y+=f*f0,M+=f*k,R+=f*r0,h+=f*n0,u+=f*x0,_+=f*i0,f=r[9],B+=f*i,I+=f*y,O+=f*l,P+=f*N,j+=f*z,D+=f*X,U+=f*m,L+=f*W,T+=f*V,Y+=f*Q,M+=f*f0,R+=f*k,h+=f*r0,u+=f*n0,_+=f*x0,w+=f*i0,f=r[10],I+=f*i,O+=f*y,P+=f*l,j+=f*N,D+=f*z,U+=f*X,L+=f*m,T+=f*W,Y+=f*V,M+=f*Q,R+=f*f0,h+=f*k,u+=f*r0,_+=f*n0,w+=f*x0,v+=f*i0,f=r[11],O+=f*i,P+=f*y,j+=f*l,D+=f*N,U+=f*z,L+=f*X,T+=f*m,Y+=f*W,M+=f*V,R+=f*Q,h+=f*f0,u+=f*k,_+=f*r0,w+=f*n0,v+=f*x0,F+=f*i0,f=r[12],P+=f*i,j+=f*y,D+=f*l,U+=f*N,L+=f*z,T+=f*X,Y+=f*m,M+=f*W,R+=f*V,h+=f*Q,u+=f*f0,_+=f*k,w+=f*r0,v+=f*n0,F+=f*x0,H+=f*i0,f=r[13],j+=f*i,D+=f*y,U+=f*l,L+=f*N,T+=f*z,Y+=f*X,M+=f*m,R+=f*W,h+=f*V,u+=f*Q,_+=f*f0,w+=f*k,v+=f*r0,F+=f*n0,H+=f*x0,q+=f*i0,f=r[14],D+=f*i,U+=f*y,L+=f*l,T+=f*N,Y+=f*z,M+=f*X,R+=f*m,h+=f*W,u+=f*V,_+=f*Q,w+=f*f0,v+=f*k,F+=f*r0,H+=f*n0,q+=f*x0,G+=f*i0,f=r[15],U+=f*i,L+=f*y,T+=f*l,Y+=f*N,M+=f*z,R+=f*X,h+=f*m,u+=f*W,_+=f*V,w+=f*Q,v+=f*f0,F+=f*k,H+=f*r0,q+=f*n0,G+=f*x0,c+=f*i0,x+=38*L,o+=38*T,s+=38*Y,a+=38*M,b+=38*R,d+=38*h,S+=38*u,p+=38*_,g+=38*w,B+=38*v,I+=38*F,O+=38*H,P+=38*q,j+=38*G,D+=38*c,n=1,f=x+n+65535,n=Math.floor(f/65536),x=f-n*65536,f=o+n+65535,n=Math.floor(f/65536),o=f-n*65536,f=s+n+65535,n=Math.floor(f/65536),s=f-n*65536,f=a+n+65535,n=Math.floor(f/65536),a=f-n*65536,f=b+n+65535,n=Math.floor(f/65536),b=f-n*65536,f=d+n+65535,n=Math.floor(f/65536),d=f-n*65536,f=S+n+65535,n=Math.floor(f/65536),S=f-n*65536,f=p+n+65535,n=Math.floor(f/65536),p=f-n*65536,f=g+n+65535,n=Math.floor(f/65536),g=f-n*65536,f=B+n+65535,n=Math.floor(f/65536),B=f-n*65536,f=I+n+65535,n=Math.floor(f/65536),I=f-n*65536,f=O+n+65535,n=Math.floor(f/65536),O=f-n*65536,f=P+n+65535,n=Math.floor(f/65536),P=f-n*65536,f=j+n+65535,n=Math.floor(f/65536),j=f-n*65536,f=D+n+65535,n=Math.floor(f/65536),D=f-n*65536,f=U+n+65535,n=Math.floor(f/65536),U=f-n*65536,x+=n-1+37*(n-1),n=1,f=x+n+65535,n=Math.floor(f/65536),x=f-n*65536,f=o+n+65535,n=Math.floor(f/65536),o=f-n*65536,f=s+n+65535,n=Math.floor(f/65536),s=f-n*65536,f=a+n+65535,n=Math.floor(f/65536),a=f-n*65536,f=b+n+65535,n=Math.floor(f/65536),b=f-n*65536,f=d+n+65535,n=Math.floor(f/65536),d=f-n*65536,f=S+n+65535,n=Math.floor(f/65536),S=f-n*65536,f=p+n+65535,n=Math.floor(f/65536),p=f-n*65536,f=g+n+65535,n=Math.floor(f/65536),g=f-n*65536,f=B+n+65535,n=Math.floor(f/65536),B=f-n*65536,f=I+n+65535,n=Math.floor(f/65536),I=f-n*65536,f=O+n+65535,n=Math.floor(f/65536),O=f-n*65536,f=P+n+65535,n=Math.floor(f/65536),P=f-n*65536,f=j+n+65535,n=Math.floor(f/65536),j=f-n*65536,f=D+n+65535,n=Math.floor(f/65536),D=f-n*65536,f=U+n+65535,n=Math.floor(f/65536),U=f-n*65536,x+=n-1+37*(n-1),t[0]=x,t[1]=o,t[2]=s,t[3]=a,t[4]=b,t[5]=d,t[6]=S,t[7]=p,t[8]=g,t[9]=B,t[10]=I,t[11]=O,t[12]=P,t[13]=j,t[14]=D,t[15]=U}function U0(t,r){$(t,r,r)}function Wf(t,r){var e=C(),f;for(f=0;f<16;f++)e[f]=r[f];for(f=253;f>=0;f--)U0(e,e),f!==2&&f!==4&&$(e,e,r);for(f=0;f<16;f++)t[f]=e[f]}function Ot(t,r){var e=C(),f;for(f=0;f<16;f++)e[f]=r[f];for(f=250;f>=0;f--)U0(e,e),f!==1&&$(e,e,r);for(f=0;f<16;f++)t[f]=e[f]}function _f(t,r,e){var f=new Uint8Array(32),n=new Float64Array(80),x,o,s=C(),a=C(),b=C(),d=C(),S=C(),p=C();for(o=0;o<31;o++)f[o]=r[o];for(f[31]=r[31]&127|64,f[0]&=248,Gf(n,e),o=0;o<16;o++)a[o]=n[o],d[o]=s[o]=b[o]=0;for(s[0]=d[0]=1,o=254;o>=0;--o)x=f[o>>>3]>>>(o&7)&1,q0(s,a,x),q0(b,d,x),B0(S,s,b),T0(s,s,b),B0(b,a,d),T0(a,a,d),U0(d,S),U0(p,s),$(s,b,s),$(b,a,S),B0(S,s,b),T0(s,s,b),U0(a,s),T0(b,d,p),$(s,b,rr),B0(s,s,d),$(b,b,s),$(s,d,p),$(d,a,n),U0(a,S),q0(s,a,x),q0(b,d,x);for(o=0;o<16;o++)n[o+16]=s[o],n[o+32]=b[o],n[o+48]=a[o],n[o+64]=d[o];var g=n.subarray(32),B=n.subarray(16);return Wf(g,g),$(B,B,g),X0(t,B),0}function Ef(t,r){return _f(t,r,Tt)}function Lt(t,r){return vf(r,32),Ef(t,r)}function Af(t,r,e){var f=new Uint8Array(32);return _f(f,e,r),pf(t,tr,f,m0)}var Kt=Vf,or=qf;function sr(t,r,e,f,n,x){var o=new Uint8Array(32);return Af(o,n,x),Kt(t,r,e,f,o)}function ar(t,r,e,f,n,x){var o=new Uint8Array(32);return Af(o,n,x),or(t,r,e,f,o)}var wt=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function vt(t,r,e,f){for(var n=new Int32Array(16),x=new Int32Array(16),o,s,a,b,d,S,p,g,B,I,O,P,j,D,U,L,T,Y,M,R,h,u,_,w,v,F,H=t[0],q=t[1],G=t[2],c=t[3],i=t[4],y=t[5],l=t[6],N=t[7],z=r[0],X=r[1],m=r[2],W=r[3],V=r[4],Q=r[5],f0=r[6],k=r[7],r0=0;f>=128;){for(M=0;M<16;M++)R=8*M+r0,n[M]=e[R+0]<<24|e[R+1]<<16|e[R+2]<<8|e[R+3],x[M]=e[R+4]<<24|e[R+5]<<16|e[R+6]<<8|e[R+7];for(M=0;M<80;M++)if(o=H,s=q,a=G,b=c,d=i,S=y,p=l,g=N,B=z,I=X,O=m,P=W,j=V,D=Q,U=f0,L=k,h=N,u=k,_=u&65535,w=u>>>16,v=h&65535,F=h>>>16,h=(i>>>14|V<<32-14)^(i>>>18|V<<32-18)^(V>>>41-32|i<<32-(41-32)),u=(V>>>14|i<<32-14)^(V>>>18|i<<32-18)^(i>>>41-32|V<<32-(41-32)),_+=u&65535,w+=u>>>16,v+=h&65535,F+=h>>>16,h=i&y^~i&l,u=V&Q^~V&f0,_+=u&65535,w+=u>>>16,v+=h&65535,F+=h>>>16,h=wt[M*2],u=wt[M*2+1],_+=u&65535,w+=u>>>16,v+=h&65535,F+=h>>>16,h=n[M%16],u=x[M%16],_+=u&65535,w+=u>>>16,v+=h&65535,F+=h>>>16,w+=_>>>16,v+=w>>>16,F+=v>>>16,T=v&65535|F<<16,Y=_&65535|w<<16,h=T,u=Y,_=u&65535,w=u>>>16,v=h&65535,F=h>>>16,h=(H>>>28|z<<32-28)^(z>>>34-32|H<<32-(34-32))^(z>>>39-32|H<<32-(39-32)),u=(z>>>28|H<<32-28)^(H>>>34-32|z<<32-(34-32))^(H>>>39-32|z<<32-(39-32)),_+=u&65535,w+=u>>>16,v+=h&65535,F+=h>>>16,h=H&q^H&G^q&G,u=z&X^z&m^X&m,_+=u&65535,w+=u>>>16,v+=h&65535,F+=h>>>16,w+=_>>>16,v+=w>>>16,F+=v>>>16,g=v&65535|F<<16,L=_&65535|w<<16,h=b,u=P,_=u&65535,w=u>>>16,v=h&65535,F=h>>>16,h=T,u=Y,_+=u&65535,w+=u>>>16,v+=h&65535,F+=h>>>16,w+=_>>>16,v+=w>>>16,F+=v>>>16,b=v&65535|F<<16,P=_&65535|w<<16,q=o,G=s,c=a,i=b,y=d,l=S,N=p,H=g,X=B,m=I,W=O,V=P,Q=j,f0=D,k=U,z=L,M%16===15)for(R=0;R<16;R++)h=n[R],u=x[R],_=u&65535,w=u>>>16,v=h&65535,F=h>>>16,h=n[(R+9)%16],u=x[(R+9)%16],_+=u&65535,w+=u>>>16,v+=h&65535,F+=h>>>16,T=n[(R+1)%16],Y=x[(R+1)%16],h=(T>>>1|Y<<32-1)^(T>>>8|Y<<32-8)^T>>>7,u=(Y>>>1|T<<32-1)^(Y>>>8|T<<32-8)^(Y>>>7|T<<32-7),_+=u&65535,w+=u>>>16,v+=h&65535,F+=h>>>16,T=n[(R+14)%16],Y=x[(R+14)%16],h=(T>>>19|Y<<32-19)^(Y>>>61-32|T<<32-(61-32))^T>>>6,u=(Y>>>19|T<<32-19)^(T>>>61-32|Y<<32-(61-32))^(Y>>>6|T<<32-6),_+=u&65535,w+=u>>>16,v+=h&65535,F+=h>>>16,w+=_>>>16,v+=w>>>16,F+=v>>>16,n[R]=v&65535|F<<16,x[R]=_&65535|w<<16;h=H,u=z,_=u&65535,w=u>>>16,v=h&65535,F=h>>>16,h=t[0],u=r[0],_+=u&65535,w+=u>>>16,v+=h&65535,F+=h>>>16,w+=_>>>16,v+=w>>>16,F+=v>>>16,t[0]=H=v&65535|F<<16,r[0]=z=_&65535|w<<16,h=q,u=X,_=u&65535,w=u>>>16,v=h&65535,F=h>>>16,h=t[1],u=r[1],_+=u&65535,w+=u>>>16,v+=h&65535,F+=h>>>16,w+=_>>>16,v+=w>>>16,F+=v>>>16,t[1]=q=v&65535|F<<16,r[1]=X=_&65535|w<<16,h=G,u=m,_=u&65535,w=u>>>16,v=h&65535,F=h>>>16,h=t[2],u=r[2],_+=u&65535,w+=u>>>16,v+=h&65535,F+=h>>>16,w+=_>>>16,v+=w>>>16,F+=v>>>16,t[2]=G=v&65535|F<<16,r[2]=m=_&65535|w<<16,h=c,u=W,_=u&65535,w=u>>>16,v=h&65535,F=h>>>16,h=t[3],u=r[3],_+=u&65535,w+=u>>>16,v+=h&65535,F+=h>>>16,w+=_>>>16,v+=w>>>16,F+=v>>>16,t[3]=c=v&65535|F<<16,r[3]=W=_&65535|w<<16,h=i,u=V,_=u&65535,w=u>>>16,v=h&65535,F=h>>>16,h=t[4],u=r[4],_+=u&65535,w+=u>>>16,v+=h&65535,F+=h>>>16,w+=_>>>16,v+=w>>>16,F+=v>>>16,t[4]=i=v&65535|F<<16,r[4]=V=_&65535|w<<16,h=y,u=Q,_=u&65535,w=u>>>16,v=h&65535,F=h>>>16,h=t[5],u=r[5],_+=u&65535,w+=u>>>16,v+=h&65535,F+=h>>>16,w+=_>>>16,v+=w>>>16,F+=v>>>16,t[5]=y=v&65535|F<<16,r[5]=Q=_&65535|w<<16,h=l,u=f0,_=u&65535,w=u>>>16,v=h&65535,F=h>>>16,h=t[6],u=r[6],_+=u&65535,w+=u>>>16,v+=h&65535,F+=h>>>16,w+=_>>>16,v+=w>>>16,F+=v>>>16,t[6]=l=v&65535|F<<16,r[6]=f0=_&65535|w<<16,h=N,u=k,_=u&65535,w=u>>>16,v=h&65535,F=h>>>16,h=t[7],u=r[7],_+=u&65535,w+=u>>>16,v+=h&65535,F+=h>>>16,w+=_>>>16,v+=w>>>16,F+=v>>>16,t[7]=N=v&65535|F<<16,r[7]=k=_&65535|w<<16,r0+=128,f-=128}return f}function H0(t,r,e){var f=new Int32Array(8),n=new Int32Array(8),x=new Uint8Array(256),o,s=e;for(f[0]=1779033703,f[1]=3144134277,f[2]=1013904242,f[3]=2773480762,f[4]=1359893119,f[5]=2600822924,f[6]=528734635,f[7]=1541459225,n[0]=4089235720,n[1]=2227873595,n[2]=4271175723,n[3]=1595750129,n[4]=2917565137,n[5]=725511199,n[6]=4215389547,n[7]=327033209,vt(f,n,r,e),e%=128,o=0;o<e;o++)x[o]=r[s-e+o];for(x[e]=128,e=256-128*(e<112?1:0),x[e-9]=0,bt(x,e-8,s/536870912|0,s<<3),vt(f,n,x,e),o=0;o<8;o++)bt(t,8*o,f[o],n[o]);return 0}function bf(t,r){var e=C(),f=C(),n=C(),x=C(),o=C(),s=C(),a=C(),b=C(),d=C();T0(e,t[1],t[0]),T0(d,r[1],r[0]),$(e,e,d),B0(f,t[0],t[1]),B0(d,r[0],r[1]),$(f,f,d),$(n,t[3],r[3]),$(n,n,er),$(x,t[2],r[2]),B0(x,x,x),T0(o,f,e),T0(s,x,n),B0(a,x,n),B0(b,f,e),$(t[0],o,s),$(t[1],b,a),$(t[2],a,s),$(t[3],o,b)}function pt(t,r,e){var f;for(f=0;f<4;f++)q0(t[f],r[f],e)}function $f(t,r){var e=C(),f=C(),n=C();Wf(n,r[2]),$(e,r[0],n),$(f,r[1],n),X0(t,f),t[31]^=Yt(e)<<7}function Qf(t,r,e){var f,n;for(Y0(t[0],Yf),Y0(t[1],W0),Y0(t[2],W0),Y0(t[3],Yf),n=255;n>=0;--n)f=e[n/8|0]>>(n&7)&1,pt(t,r,f),bf(r,t),bf(t,t),pt(t,r,f)}function Ff(t,r){var e=[C(),C(),C(),C()];Y0(e[0],lt),Y0(e[1],dt),Y0(e[2],W0),$(e[3],lt,dt),Qf(t,e,r)}function Jf(t,r,e){var f=new Uint8Array(64),n=[C(),C(),C(),C()],x;for(e||vf(r,32),H0(f,r,32),f[0]&=248,f[31]&=127,f[31]|=64,Ff(n,f),$f(t,n),x=0;x<32;x++)r[x+32]=t[x];return 0}var hf=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function kf(t,r){var e,f,n,x;for(f=63;f>=32;--f){for(e=0,n=f-32,x=f-12;n<x;++n)r[n]+=e-16*r[f]*hf[n-(f-32)],e=Math.floor((r[n]+128)/256),r[n]-=e*256;r[n]+=e,r[f]=0}for(e=0,n=0;n<32;n++)r[n]+=e-(r[31]>>4)*hf[n],e=r[n]>>8,r[n]&=255;for(n=0;n<32;n++)r[n]-=e*hf[n];for(f=0;f<32;f++)r[f+1]+=r[f]>>8,t[f]=r[f]&255}function Of(t){var r=new Float64Array(64),e;for(e=0;e<64;e++)r[e]=t[e];for(e=0;e<64;e++)t[e]=0;kf(t,r)}function Ct(t,r,e,f){var n=new Uint8Array(64),x=new Uint8Array(64),o=new Uint8Array(64),s,a,b=new Float64Array(64),d=[C(),C(),C(),C()];H0(n,f,32),n[0]&=248,n[31]&=127,n[31]|=64;var S=e+64;for(s=0;s<e;s++)t[64+s]=r[s];for(s=0;s<32;s++)t[32+s]=n[32+s];for(H0(o,t.subarray(32),e+32),Of(o),Ff(d,o),$f(t,d),s=32;s<64;s++)t[s]=f[s];for(H0(x,t,e+64),Of(x),s=0;s<64;s++)b[s]=0;for(s=0;s<32;s++)b[s]=o[s];for(s=0;s<32;s++)for(a=0;a<32;a++)b[s+a]+=x[s]*n[a];return kf(t.subarray(32),b),S}function jt(t,r){var e=C(),f=C(),n=C(),x=C(),o=C(),s=C(),a=C();return Y0(t[2],W0),Gf(t[1],r),U0(n,t[1]),$(x,n,Rt),T0(n,n,t[2]),B0(x,t[2],x),U0(o,x),U0(s,o),$(a,s,o),$(e,a,n),$(e,e,x),Ot(e,e),$(e,e,n),$(e,e,x),$(e,e,x),$(t[0],e,x),U0(f,t[0]),$(f,f,x),yt(f,n)&&$(t[0],t[0],nr),U0(f,t[0]),$(f,f,x),yt(f,n)?-1:(Yt(t[0])===r[31]>>7&&T0(t[0],Yf,t[0]),$(t[3],t[0],t[1]),0)}function ft(t,r,e,f){var n,x=new Uint8Array(32),o=new Uint8Array(64),s=[C(),C(),C(),C()],a=[C(),C(),C(),C()];if(e<64||jt(a,f))return-1;for(n=0;n<e;n++)t[n]=r[n];for(n=0;n<32;n++)t[n+32]=f[n];if(H0(o,t,e),Of(o),Qf(s,a,o),Ff(a,r.subarray(32)),bf(s,a),$f(x,s),e-=64,Hf(r,0,x,0)){for(n=0;n<e;n++)t[n]=0;return-1}for(n=0;n<e;n++)t[n]=r[n+64];return e}var tt=32,Sf=24,tf=32,$0=16,rf=32,Bf=32,nf=32,xf=32,rt=32,Zt=Sf,cr=tf,hr=$0,P0=64,V0=32,Q0=64,et=32,nt=64;Z.lowlevel={crypto_core_hsalsa20:pf,crypto_stream_xor:mf,crypto_stream:Mt,crypto_stream_salsa20_xor:Nt,crypto_stream_salsa20:zt,crypto_onetimeauth:Xf,crypto_onetimeauth_verify:Pt,crypto_verify_16:It,crypto_verify_32:Hf,crypto_secretbox:Vf,crypto_secretbox_open:qf,crypto_scalarmult:_f,crypto_scalarmult_base:Ef,crypto_box_beforenm:Af,crypto_box_afternm:Kt,crypto_box:sr,crypto_box_open:ar,crypto_box_keypair:Lt,crypto_hash:H0,crypto_sign:Ct,crypto_sign_keypair:Jf,crypto_sign_open:ft,crypto_secretbox_KEYBYTES:tt,crypto_secretbox_NONCEBYTES:Sf,crypto_secretbox_ZEROBYTES:tf,crypto_secretbox_BOXZEROBYTES:$0,crypto_scalarmult_BYTES:rf,crypto_scalarmult_SCALARBYTES:Bf,crypto_box_PUBLICKEYBYTES:nf,crypto_box_SECRETKEYBYTES:xf,crypto_box_BEFORENMBYTES:rt,crypto_box_NONCEBYTES:Zt,crypto_box_ZEROBYTES:cr,crypto_box_BOXZEROBYTES:hr,crypto_sign_BYTES:P0,crypto_sign_PUBLICKEYBYTES:V0,crypto_sign_SECRETKEYBYTES:Q0,crypto_sign_SEEDBYTES:et,crypto_hash_BYTES:nt,gf:C,D:Rt,L:hf,pack25519:X0,unpack25519:Gf,M:$,A:B0,S:U0,Z:T0,pow2523:Ot,add:bf,set25519:Y0,modL:kf,scalarmult:Qf,scalarbase:Ff};function Dt(t,r){if(t.length!==tt)throw new Error("bad key size");if(r.length!==Sf)throw new Error("bad nonce size")}function ur(t,r){if(t.length!==nf)throw new Error("bad public key size");if(r.length!==xf)throw new Error("bad secret key size")}function _0(){for(var t=0;t<arguments.length;t++)if(!(arguments[t]instanceof Uint8Array))throw new TypeError("unexpected type, use Uint8Array")}function gt(t){for(var r=0;r<t.length;r++)t[r]=0}Z.randomBytes=function(t){var r=new Uint8Array(t);return vf(r,t),r};Z.secretbox=function(t,r,e){_0(t,r,e),Dt(e,r);for(var f=new Uint8Array(tf+t.length),n=new Uint8Array(f.length),x=0;x<t.length;x++)f[x+tf]=t[x];return Vf(n,f,f.length,r,e),n.subarray($0)};Z.secretbox.open=function(t,r,e){_0(t,r,e),Dt(e,r);for(var f=new Uint8Array($0+t.length),n=new Uint8Array(f.length),x=0;x<t.length;x++)f[x+$0]=t[x];return f.length<32||qf(n,f,f.length,r,e)!==0?null:n.subarray(tf)};Z.secretbox.keyLength=tt;Z.secretbox.nonceLength=Sf;Z.secretbox.overheadLength=$0;Z.scalarMult=function(t,r){if(_0(t,r),t.length!==Bf)throw new Error("bad n size");if(r.length!==rf)throw new Error("bad p size");var e=new Uint8Array(rf);return _f(e,t,r),e};Z.scalarMult.base=function(t){if(_0(t),t.length!==Bf)throw new Error("bad n size");var r=new Uint8Array(rf);return Ef(r,t),r};Z.scalarMult.scalarLength=Bf;Z.scalarMult.groupElementLength=rf;Z.box=function(t,r,e,f){var n=Z.box.before(e,f);return Z.secretbox(t,r,n)};Z.box.before=function(t,r){_0(t,r),ur(t,r);var e=new Uint8Array(rt);return Af(e,t,r),e};Z.box.after=Z.secretbox;Z.box.open=function(t,r,e,f){var n=Z.box.before(e,f);return Z.secretbox.open(t,r,n)};Z.box.open.after=Z.secretbox.open;Z.box.keyPair=function(){var t=new Uint8Array(nf),r=new Uint8Array(xf);return Lt(t,r),{publicKey:t,secretKey:r}};Z.box.keyPair.fromSecretKey=function(t){if(_0(t),t.length!==xf)throw new Error("bad secret key size");var r=new Uint8Array(nf);return Ef(r,t),{publicKey:r,secretKey:new Uint8Array(t)}};Z.box.publicKeyLength=nf;Z.box.secretKeyLength=xf;Z.box.sharedKeyLength=rt;Z.box.nonceLength=Zt;Z.box.overheadLength=Z.secretbox.overheadLength;Z.sign=function(t,r){if(_0(t,r),r.length!==Q0)throw new Error("bad secret key size");var e=new Uint8Array(P0+t.length);return Ct(e,t,t.length,r),e};Z.sign.open=function(t,r){if(_0(t,r),r.length!==V0)throw new Error("bad public key size");var e=new Uint8Array(t.length),f=ft(e,t,t.length,r);if(f<0)return null;for(var n=new Uint8Array(f),x=0;x<n.length;x++)n[x]=e[x];return n};Z.sign.detached=function(t,r){for(var e=Z.sign(t,r),f=new Uint8Array(P0),n=0;n<f.length;n++)f[n]=e[n];return f};Z.sign.detached.verify=function(t,r,e){if(_0(t,r,e),r.length!==P0)throw new Error("bad signature size");if(e.length!==V0)throw new Error("bad public key size");var f=new Uint8Array(P0+t.length),n=new Uint8Array(P0+t.length),x;for(x=0;x<P0;x++)f[x]=r[x];for(x=0;x<t.length;x++)f[x+P0]=t[x];return ft(n,f,f.length,e)>=0};Z.sign.keyPair=function(){var t=new Uint8Array(V0),r=new Uint8Array(Q0);return Jf(t,r),{publicKey:t,secretKey:r}};Z.sign.keyPair.fromSecretKey=function(t){if(_0(t),t.length!==Q0)throw new Error("bad secret key size");for(var r=new Uint8Array(V0),e=0;e<r.length;e++)r[e]=t[32+e];return{publicKey:r,secretKey:new Uint8Array(t)}};Z.sign.keyPair.fromSeed=function(t){if(_0(t),t.length!==et)throw new Error("bad seed size");for(var r=new Uint8Array(V0),e=new Uint8Array(Q0),f=0;f<32;f++)e[f]=t[f];return Jf(r,e,!0),{publicKey:r,secretKey:e}};Z.sign.publicKeyLength=V0;Z.sign.secretKeyLength=Q0;Z.sign.seedLength=et;Z.sign.signatureLength=P0;Z.hash=function(t){_0(t);var r=new Uint8Array(nt);return H0(r,t,t.length),r};Z.hash.hashLength=nt;Z.verify=function(t,r){return _0(t,r),t.length===0||r.length===0||t.length!==r.length?!1:Df(t,0,r,0,t.length)===0};Z.setPRNG=function(t){vf=t};(function(){var t=typeof self<"u"?self.crypto||self.msCrypto:null;if(t&&t.getRandomValues){var r=65536;Z.setPRNG(function(e,f){var n,x=new Uint8Array(f);for(n=0;n<f;n+=r)t.getRandomValues(x.subarray(n,n+Math.min(f-n,r)));for(n=0;n<f;n++)e[n]=x[n];gt(x)})}else typeof require<"u"&&(t=require("crypto"),t&&t.randomBytes&&Z.setPRNG(function(e,f){var n,x=t.randomBytes(f);for(n=0;n<f;n++)e[n]=x[n];gt(x)}))})();function Ht(t){var r=new Uint8Array(32),e=[C(),C(),C(),C()],f=C(),n=C();if(jt(e,t))return null;var x=e[1];return B0(f,W0,x),T0(n,W0,x),Wf(n,n),$(f,f,n),X0(r,f),r}function mt(t){var r=new Uint8Array(64),e=new Uint8Array(32),f;for(Z.lowlevel.crypto_hash(r,t,32),r[0]&=248,r[31]&=127,r[31]|=64,f=0;f<32;f++)e[f]=r[f];for(f=0;f<64;f++)r[f]=0;return e}const lr="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Xt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",b0=it(lr),dr=it("0123456789abcdef"),_t=it(Xt),xt={encode:t=>{const r=typeof t=="string"?new TextEncoder().encode(t):new Uint8Array(t),e=Math.ceil(r.length/3)*3,f=new Uint8Array(e);f.set(r);const n=_t.encode(f).split(""),x=e*4/3;for(;n.length<x;)n.unshift(Xt[0]);for(let o=0;o<e-r.length;o++)n[n.length-1-o]="=";return n.join("")},decode:t=>{const r=_t.decode(t.replace(/=/g,"A")),e=Math.ceil(3*t.length/4),f=(t.match(/=/g)||[]).length,n=r.length-e;return r.slice(n,r.length-f)}};function it(t){const r={ALPHABET_MAP:{},BASE:t.length,LEADER:t.charAt(0),ALPHABET:t};for(let e=0;e<r.ALPHABET.length;e++){const f=r.ALPHABET.charAt(e);if(r.ALPHABET_MAP[f]!==void 0)throw new TypeError(f+" is ambiguous");r.ALPHABET_MAP[f]=e}return{encode:e=>br(e,r),decode:e=>wr(e,r)}}function br(t,r){if(t.length===0)return"";const e=[0];for(let n of t){for(let x=0;x<e.length;++x)n+=e[x]<<8,e[x]=n%r.BASE,n=n/r.BASE|0;for(;n>0;)e.push(n%r.BASE),n=n/r.BASE|0}let f="";for(let n=0;t[n]===0&&n<t.length-1;++n)f+=r.LEADER;for(let n=e.length-1;n>=0;--n)f+=r.ALPHABET[e[n]];return f}function yr(t,r){if(typeof t!="string")throw new TypeError("Expected String");if(t.length===0)return new Uint8Array(0);const e=[0];for(const f of t){const n=r.ALPHABET_MAP[f];if(n===void 0)return;let x=n;for(let o=0;o<e.length;++o)x+=e[o]*r.BASE,e[o]=x&255,x>>=8;for(;x>0;)e.push(x&255),x>>=8}for(let f=0;t[f]===r.LEADER&&f<t.length-1;++f)e.push(0);return new Uint8Array(e.reverse())}function wr(t,r){const e=yr(t,r);if(e)return e;throw new Error("Non-base"+r.BASE+" character")}let vr;const u0=BigInt(0),J=BigInt(1),G0=BigInt(2),Et=BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),o0=Object.freeze({a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),P:BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),l:Et,n:Et,h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960")}),Vt=BigInt("0x10000000000000000000000000000000000000000000000000000000000000000"),k0=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");BigInt("6853475219497561581579357271197624642482790079785650197046958215289687604742");const pr=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),gr=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),_r=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),Er=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");class t0{constructor(r,e,f,n){this.x=r,this.y=e,this.z=f,this.t=n}static fromAffine(r){if(!(r instanceof l0))throw new TypeError("ExtendedPoint#fromAffine: expected Point");return r.equals(l0.ZERO)?t0.ZERO:new t0(r.x,r.y,J,E(r.x*r.y))}static toAffineBatch(r){const e=Sr(r.map(f=>f.z));return r.map((f,n)=>f.toAffine(e[n]))}static normalizeZ(r){return this.toAffineBatch(r).map(this.fromAffine)}equals(r){At(r);const{x:e,y:f,z:n}=this,{x,y:o,z:s}=r,a=E(e*s),b=E(x*n),d=E(f*s),S=E(o*n);return a===b&&d===S}negate(){return new t0(E(-this.x),this.y,this.z,E(-this.t))}double(){const{x:r,y:e,z:f}=this,{a:n}=o0,x=E(r*r),o=E(e*e),s=E(G0*E(f*f)),a=E(n*x),b=r+e,d=E(E(b*b)-x-o),S=a+o,p=S-s,g=a-o,B=E(d*p),I=E(S*g),O=E(d*g),P=E(p*S);return new t0(B,I,P,O)}add(r){At(r);const{x:e,y:f,z:n,t:x}=this,{x:o,y:s,z:a,t:b}=r,d=E((f-e)*(s+o)),S=E((f+e)*(s-o)),p=E(S-d);if(p===u0)return this.double();const g=E(n*G0*b),B=E(x*G0*a),I=B+g,O=S+d,P=B-g,j=E(I*p),D=E(O*P),U=E(I*P),L=E(p*O);return new t0(j,D,L,U)}subtract(r){return this.add(r.negate())}precomputeWindow(r){const e=1+256/r,f=[];let n=this,x=n;for(let o=0;o<e;o++){x=n,f.push(x);for(let s=1;s<2**(r-1);s++)x=x.add(n),f.push(x);n=x.double()}return f}wNAF(r,e){!e&&this.equals(t0.BASE)&&(e=l0.BASE);const f=e&&e._WINDOW_SIZE||1;if(256%f)throw new Error("Point#wNAF: Invalid precomputation window, must be power of 2");let n=e&&Lf.get(e);n||(n=this.precomputeWindow(f),e&&f!==1&&(n=t0.normalizeZ(n),Lf.set(e,n)));let x=t0.ZERO,o=t0.ZERO;const s=1+256/f,a=2**(f-1),b=BigInt(2**f-1),d=2**f,S=BigInt(f);for(let p=0;p<s;p++){const g=p*a;let B=Number(r&b);if(r>>=S,B>a&&(B-=d,r+=J),B===0){let I=n[g];p%2&&(I=I.negate()),o=o.add(I)}else{let I=n[g+Math.abs(B)-1];B<0&&(I=I.negate()),x=x.add(I)}}return t0.normalizeZ([x,o])[0]}multiply(r,e){return this.wNAF(Kf(r,o0.l),e)}multiplyUnsafe(r){let e=Kf(r,o0.l,!1);const f=t0.BASE,n=t0.ZERO;if(e===u0)return n;if(this.equals(n)||e===J)return this;if(this.equals(f))return this.wNAF(e);let x=n,o=this;for(;e>u0;)e&J&&(x=x.add(o)),o=o.double(),e>>=J;return x}isSmallOrder(){return this.multiplyUnsafe(o0.h).equals(t0.ZERO)}isTorsionFree(){return this.multiplyUnsafe(o0.l).equals(t0.ZERO)}toAffine(r=Rf(this.z)){const{x:e,y:f,z:n}=this,x=E(e*r),o=E(f*r);if(E(n*r)!==J)throw new Error("invZ was invalid");return new l0(x,o)}fromRistrettoBytes(){zf()}toRistrettoBytes(){zf()}fromRistrettoHash(){zf()}}t0.BASE=new t0(o0.Gx,o0.Gy,J,E(o0.Gx*o0.Gy));t0.ZERO=new t0(u0,J,J,u0);function At(t){if(!(t instanceof t0))throw new TypeError("ExtendedPoint expected")}function Nf(t){if(!(t instanceof S0))throw new TypeError("RistrettoPoint expected")}function zf(){throw new Error("Legacy method: switch to RistrettoPoint")}class S0{constructor(r){this.ep=r}static calcElligatorRistrettoMap(r){const{d:e}=o0,f=E(k0*r*r),n=E((f+J)*_r);let x=BigInt(-1);const o=E((x-e*f)*E(f+e));let{isValid:s,value:a}=st(n,o),b=E(a*r);K0(b)||(b=E(-b)),s||(a=b),s||(x=f);const d=E(x*(f-J)*Er-o),S=a*a,p=E((a+a)*o),g=E(d*pr),B=E(J-S),I=E(J+S);return new t0(E(p*I),E(B*g),E(g*I),E(p*B))}static hashToCurve(r){r=ef(r,64);const e=Mf(r.slice(0,32)),f=this.calcElligatorRistrettoMap(e),n=Mf(r.slice(32,64)),x=this.calcElligatorRistrettoMap(n);return new S0(f.add(x))}static fromHex(r){r=ef(r,32);const{a:e,d:f}=o0,n="RistrettoPoint.fromHex: the hex is not valid encoding of RistrettoPoint",x=Mf(r);if(!Tr(yf(x),r)||K0(x))throw new Error(n);const o=E(x*x),s=E(J+e*o),a=E(J-e*o),b=E(s*s),d=E(a*a),S=E(e*f*b-d),{isValid:p,value:g}=St(E(S*d)),B=E(g*a),I=E(g*B*S);let O=E((x+x)*B);K0(O)&&(O=E(-O));const P=E(s*I),j=E(O*P);if(!p||K0(j)||P===u0)throw new Error(n);return new S0(new t0(O,P,J,j))}toRawBytes(){let{x:r,y:e,z:f,t:n}=this.ep;const x=E(E(f+e)*E(f-e)),o=E(r*e),s=E(o*o),{value:a}=St(E(x*s)),b=E(a*x),d=E(a*o),S=E(b*d*n);let p;if(K0(n*S)){let B=E(e*k0),I=E(r*k0);r=B,e=I,p=E(b*gr)}else p=d;K0(r*S)&&(e=E(-e));let g=E((f-e)*p);return K0(g)&&(g=E(-g)),yf(g)}toHex(){return Uf(this.toRawBytes())}toString(){return this.toHex()}equals(r){Nf(r);const e=this.ep,f=r.ep,n=E(e.x*f.y)===E(e.y*f.x),x=E(e.y*f.y)===E(e.x*f.x);return n||x}add(r){return Nf(r),new S0(this.ep.add(r.ep))}subtract(r){return Nf(r),new S0(this.ep.subtract(r.ep))}multiply(r){return new S0(this.ep.multiply(r))}multiplyUnsafe(r){return new S0(this.ep.multiplyUnsafe(r))}}S0.BASE=new S0(t0.BASE);S0.ZERO=new S0(t0.ZERO);const Lf=new WeakMap;class l0{constructor(r,e){this.x=r,this.y=e}_setWindowSize(r){this._WINDOW_SIZE=r,Lf.delete(this)}static fromHex(r,e=!0){const{d:f,P:n}=o0;r=ef(r,32);const x=r.slice();x[31]=r[31]&-129;const o=Tf(x);if(e&&o>=n)throw new Error("Expected 0 < hex < P");if(!e&&o>=Vt)throw new Error("Expected 0 < hex < 2**256");const s=E(o*o),a=E(s-J),b=E(f*s+J);let{isValid:d,value:S}=st(a,b);if(!d)throw new Error("Point.fromHex: invalid y coordinate");const p=(S&J)===J;return(r[31]&128)!==0!==p&&(S=E(-S)),new l0(S,o)}static async fromPrivateKey(r){return(await Gt(r)).point}toRawBytes(){const r=yf(this.y);return r[31]|=this.x&J?128:0,r}toHex(){return Uf(this.toRawBytes())}toX25519(){const{y:r}=this,e=E((J+r)*Rf(J-r));return yf(e)}isTorsionFree(){return t0.fromAffine(this).isTorsionFree()}equals(r){return this.x===r.x&&this.y===r.y}negate(){return new l0(E(-this.x),this.y)}add(r){return t0.fromAffine(this).add(t0.fromAffine(r)).toAffine()}subtract(r){return this.add(r.negate())}multiply(r){return t0.fromAffine(this).multiply(r,this).toAffine()}}l0.BASE=new l0(o0.Gx,o0.Gy);l0.ZERO=new l0(u0,J);function Ft(...t){if(!t.every(f=>f instanceof Uint8Array))throw new Error("Expected Uint8Array list");if(t.length===1)return t[0];const r=t.reduce((f,n)=>f+n.length,0),e=new Uint8Array(r);for(let f=0,n=0;f<t.length;f++){const x=t[f];e.set(x,n),n+=x.length}return e}const Ar=Array.from({length:256},(t,r)=>r.toString(16).padStart(2,"0"));function Uf(t){if(!(t instanceof Uint8Array))throw new Error("Uint8Array expected");let r="";for(let e=0;e<t.length;e++)r+=Ar[t[e]];return r}function ot(t){if(typeof t!="string")throw new TypeError("hexToBytes: expected string, got "+typeof t);if(t.length%2)throw new Error("hexToBytes: received invalid unpadded hex");const r=new Uint8Array(t.length/2);for(let e=0;e<r.length;e++){const f=e*2,n=t.slice(f,f+2),x=Number.parseInt(n,16);if(Number.isNaN(x)||x<0)throw new Error("Invalid byte sequence");r[e]=x}return r}function qt(t){const e=t.toString(16).padStart(64,"0");return ot(e)}function yf(t){return qt(t).reverse()}function K0(t){return(E(t)&J)===J}function Tf(t){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");return BigInt("0x"+Uf(Uint8Array.from(t).reverse()))}const Fr=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function Mf(t){return E(Tf(t)&Fr)}function E(t,r=o0.P){const e=t%r;return e>=u0?e:r+e}function Rf(t,r=o0.P){if(t===u0||r<=u0)throw new Error(`invert: expected positive integers, got n=${t} mod=${r}`);let e=E(t,r),f=r,n=u0,x=J;for(;e!==u0;){const s=f/e,a=f%e,b=n-x*s;f=e,e=a,n=x,x=b}if(f!==J)throw new Error("invert: does not exist");return E(n,r)}function Sr(t,r=o0.P){const e=new Array(t.length),f=t.reduce((x,o,s)=>o===u0?x:(e[s]=x,E(x*o,r)),J),n=Rf(f,r);return t.reduceRight((x,o,s)=>o===u0?x:(e[s]=E(x*e[s],r),E(x*o,r)),n),e}function z0(t,r){const{P:e}=o0;let f=t;for(;r-- >u0;)f*=f,f%=e;return f}function Br(t){const{P:r}=o0,e=BigInt(5),f=BigInt(10),n=BigInt(20),x=BigInt(40),o=BigInt(80),a=t*t%r*t%r,b=z0(a,G0)*a%r,d=z0(b,J)*t%r,S=z0(d,e)*d%r,p=z0(S,f)*S%r,g=z0(p,n)*p%r,B=z0(g,x)*g%r,I=z0(B,o)*B%r,O=z0(I,o)*B%r,P=z0(O,f)*S%r;return{pow_p_5_8:z0(P,G0)*t%r,b2:a}}function st(t,r){const e=E(r*r*r),f=E(e*e*r),n=Br(t*f).pow_p_5_8;let x=E(t*e*n);const o=E(r*x*x),s=x,a=E(x*k0),b=o===t,d=o===E(-t),S=o===E(-t*k0);return b&&(x=s),(d||S)&&(x=a),K0(x)&&(x=E(-x)),{isValid:b||d,value:x}}function St(t){return st(J,t)}function Ur(t){return E(Tf(t),o0.l)}function Tr(t,r){if(t.length!==r.length)return!1;for(let e=0;e<t.length;e++)if(t[e]!==r[e])return!1;return!0}function ef(t,r){const e=t instanceof Uint8Array?Uint8Array.from(t):ot(t);if(typeof r=="number"&&e.length!==r)throw new Error(`Expected ${r} bytes`);return e}function Kf(t,r,e=!0){if(!r)throw new TypeError("Specify max value");if(typeof t=="number"&&Number.isSafeInteger(t)&&(t=BigInt(t)),typeof t=="bigint"&&t<r){if(e){if(u0<t)return t}else if(u0<=t)return t}throw new TypeError("Expected valid scalar: 0 < scalar < max")}function Rr(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}function Ir(t){if(t=typeof t=="bigint"||typeof t=="number"?qt(Kf(t,Vt)):ef(t),t.length!==32)throw new Error("Expected 32 bytes");return t}function Nr(t){const r=Rr(t.slice(0,32)),e=t.slice(32,64),f=Ur(r),n=l0.BASE.multiply(f),x=n.toRawBytes();return{head:r,prefix:e,scalar:f,point:n,pointBytes:x}}let Pf;async function Gt(t){return Nr(await at.sha512(Ir(t)))}l0.BASE._setWindowSize(8);const af={node:vr,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0},at={bytesToHex:Uf,hexToBytes:ot,concatBytes:Ft,getExtendedPublicKey:Gt,mod:E,invert:Rf,TORSION_SUBGROUP:["0100000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a","0000000000000000000000000000000000000000000000000000000000000080","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05","ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85","0000000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa"],hashToPrivateScalar:t=>{if(t=ef(t),t.length<40||t.length>1024)throw new Error("Expected 40-1024 bytes of private key as per FIPS 186");return E(Tf(t),o0.l-J)+J},randomBytes:(t=32)=>{if(af.web)return af.web.getRandomValues(new Uint8Array(t));throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>at.randomBytes(32),sha512:async(...t)=>{const r=Ft(...t);if(af.web){const e=await af.web.subtle.digest("SHA-512",r.buffer);return new Uint8Array(e)}else throw new Error("The environment doesn't have sha512 function")},precompute(t=8,r=l0.BASE){const e=r.equals(l0.BASE)?r:new l0(r.x,r.y);return e._setWindowSize(t),e.multiply(G0),e},sha512Sync:void 0};Object.defineProperties(at,{sha512Sync:{configurable:!1,get(){return Pf},set(t){Pf||(Pf=t)}}});async function zr(t,r){if(!t&&!r)return Math.random();!r&&typeof t=="number"&&(r=t,t=new Uint8Array(r));const e=65536,f=r,n=new Uint8Array(r);for(let x=0;x<f;x+=e)crypto.getRandomValues(n.subarray(x,x+Math.min(f-x,e)));for(let x=0;x<f;x++)t[x]=n[x];return t}Z.setPRNG(zr);const Wr=Z.setPRNG,Cf=Zf(),Mr=Z.sign.keyPair.fromSeed;async function Pr(t,r){const e=await Or(t,r),f=ct(e);return f.seed=e,f.pubKey=f.publicKey,f}function Yr(t){const r={};for(const e in t)r[e]=b0.encode(t[e]);return r}async function $r(t,r){const e=await Pr(t,r);return Object.assign(Yr(e),{idSec:t,password:r})}function ct(t){return Mr(t)}async function Or(t,r){const e={logN:12,r:16,p:1,encoding:"binary"};return Jt(r.normalize("NFKC"),t.normalize("NFKC"),e)}function Qr(t){const r=t.substr(0,4),e=t.substr(-4,4),f=M0(t);return`${r}\u2026${e}:${f}`}function M0(t,r=!1,e=!1,f=!0){const n=r?b0.decode(t):of(t);let x=Cf.digest(n);if(f&&(x=Cf.digest(x)),!e){const o=Lr(x);return b0.encode(o).substr(0,3)}return b0.encode(x).substr(0,3)}function Lr(t){let r=0;for(;t[r]===0;)r++;return t.slice(r)}function of(t){return typeof t=="string"?t.includes(":")?Bt(Cr(t)):Bt(t):t}function Bt(t){const r=new Uint8Array(32),e=b0.decode(t);return r.set(e,32-e.length),r}function Kr(t){const r=new Uint8Array(64),e=b0.decode(t);return r.set(e,64-e.length),r}function Cr(t){const r=t.split(":"),e=r[0],f=r[1];if(M0(e)===f||M0(e,!0)===f||M0(e,!1,!0)===f||M0(e,!0,!0)===f||M0(e,!1,!1,!1)===f||M0(e,!0,!1,!1)===f||M0(e,!1,!0,!1)===f||M0(e,!0,!0,!1)===f)return e;throw new O0("bad_checksum","Bad checksum")}function Jr(t){return/^[A-HJ-NP-Za-km-z1-9]{43,44}$/.test(t)&&b0.decode(t).length<=32}function jr(t){if(t.length<43)throw new O0("too_short","Too short, see rfc/0009_Duniter_Blockchain_Protocol_V11.md#public-key for details.");if(t.length>44)throw new O0("too_long","Base58 string too long, see rfc/0009_Duniter_Blockchain_Protocol_V11.md#public-key for details.");if(!/^[A-HJ-NP-Za-km-z1-9]+$/.test(t))throw new O0("not_b58","Character out of base 58, see rfc/0009_Duniter_Blockchain_Protocol_V11.md#public-key for details.");if(b0.decode(t).length>32)throw new O0("too_long","binary key too long, see rfc/0009_Duniter_Blockchain_Protocol_V11.md#public-key for details.");return!0}function Wt(t){const r=of(t);try{l0.fromHex(r)}catch(e){throw new O0("bad_ed25519_point",`Invalid public key : not a valid ed25519 point RFC8032 5.1.3 https://www.rfc-editor.org/rfc/rfc8032#page-11 Internal:${e}`)}return!0}function kr(t){try{return Wt(t)}catch{return!1}}function Zr(t,r=!0){if(!t)throw new O0("empty","Invalid public key : empty input.");let e;try{const f=of(t);e=typeof t=="string"?t:b0.encode(f)}catch(f){throw f.message.match(/base58/)?new O0("not_b58","Character out of base 58, see rfc/0009_Duniter_Blockchain_Protocol_V11.md#public-key for details."):f.name==="RangeError"?new O0("too_long","Binary key too long, see rfc/0009_Duniter_Blockchain_Protocol_V11.md#public-key for details."):f}return r&&(jr(e),Wt(e)),!0}function fe(t){try{return Zr(t)}catch{return!1}}async function te(t,r){const e=await $t(t.trim()+`
`,r);return`${t.trim()}
${e}`}function $t(t,r,e="b64"){const f=new TextEncoder,n=Dr(f.encode(t),Kr(r).slice(0,32));switch(e.toLocaleLowerCase()){case"raw":case"array":case"uint8array":return n;case"b64":return xt.encode(n);case"b58":return b0.encode(n);default:throw new Error(`OutputFormat ${e} not handled.`)}}function Dr(t,r){const e=ct(r);return Z.sign.detached(t,e.secretKey)}const Hr=24,mr=32;function Xr(t,r){return typeof t=="string"?r(t):t}function Vr(t){const r=new TextEncoder;return typeof t=="string"?r.encode(t):t}function qr(t){return Xr(t,b0.decode)}function Gr(t){return new TextDecoder().decode(t)}function jf(t){return qr(t).slice(0,mr)}function re(t,r,e,f=0,n=""){const x=n?b0.decode(n):Z.randomBytes(Hr),o=Ht(of(e)),s=mt(jf(r)),a=p=>xt.encode(Z.box(Vr(p),x,o,s)),b=b0.encode(ct(jf(r)).publicKey),d=f||Math.trunc(Date.now()/1e3),S={nonce:b0.encode(x),issuer:b,recipient:e,time:d,version:2};return t.title&&(S.title=a(t.title)),t.content&&(S.content=a(t.content)),S.hash=dr.encode(Cf.digest(JSON.stringify(S))).toUpperCase(),S.signature=$t(S.hash,r),S}function ee(t,r){const e=b0.decode(t.nonce),f=mt(jf(r)),n=Ht(of(t.issuer)),x=s=>Gr(Z.box.open(xt.decode(s),e,n,f)),o={};return t.content&&(o.content=x(t.content)),t.title&&(o.title=x(t.title)),o}class O0 extends Error{constructor(r,e){super(e),this.name=r}}export{b0 as b58,qr as b58orBin2bin,Bt as b58pubKey2bin,Kr as b58secretKey2bin,xt as b64,Gr as bin2str,jr as checkDuniterPubKey,Wt as checkEd25519PubKey,Zr as checkKey,$r as idSecPass2cleanKeys,Pr as idSecPass2rawAll,Jr as isDuniterPubKey,kr as isEd25519PubKey,fe as isPubKey,Wr as mockRandom,Cr as onlyPubKey,of as pubKey2bin,M0 as pubKey2checksum,Qr as pubKey2shortKey,Yr as raw2b58,Dr as rawSign,Or as saltPass2seed,ct as seed2keyPair,Zf as sha256,$t as sign,te as signDocument,Lr as sliceInitialsZero,Vr as strOrBin2bin,ee as textDecrypt,re as textEncrypt,Xr as typedStrOrBin2Bin};