1import{n as e,t}from"./sync-wire-O_oTp2Oy.js";import{a as n,c as r,i,n as a,o,r as s,s as c,t as l}from"./x25519-DSi3mQjw.js";var u=20;function d(e,t,n){let r=1634760805,i=857760878,a=2036477234,o=1797285236,s=n[3]<<24|n[2]<<16|n[1]<<8|n[0],l=n[7]<<24|n[6]<<16|n[5]<<8|n[4],d=n[11]<<24|n[10]<<16|n[9]<<8|n[8],f=n[15]<<24|n[14]<<16|n[13]<<8|n[12],p=n[19]<<24|n[18]<<16|n[17]<<8|n[16],m=n[23]<<24|n[22]<<16|n[21]<<8|n[20],h=n[27]<<24|n[26]<<16|n[25]<<8|n[24],g=n[31]<<24|n[30]<<16|n[29]<<8|n[28],_=t[3]<<24|t[2]<<16|t[1]<<8|t[0],v=t[7]<<24|t[6]<<16|t[5]<<8|t[4],y=t[11]<<24|t[10]<<16|t[9]<<8|t[8],b=t[15]<<24|t[14]<<16|t[13]<<8|t[12],x=r,S=i,C=a,w=o,T=s,E=l,D=d,O=f,k=p,A=m,j=h,M=g,N=_,P=v,F=y,I=b;for(let e=0;e<u;e+=2)x=x+T|0,N^=x,N=N>>>16|N<<16,k=k+N|0,T^=k,T=T>>>20|T<<12,S=S+E|0,P^=S,P=P>>>16|P<<16,A=A+P|0,E^=A,E=E>>>20|E<<12,C=C+D|0,F^=C,F=F>>>16|F<<16,j=j+F|0,D^=j,D=D>>>20|D<<12,w=w+O|0,I^=w,I=I>>>16|I<<16,M=M+I|0,O^=M,O=O>>>20|O<<12,C=C+D|0,F^=C,F=F>>>24|F<<8,j=j+F|0,D^=j,D=D>>>25|D<<7,w=w+O|0,I^=w,I=I>>>24|I<<8,M=M+I|0,O^=M,O=O>>>25|O<<7,S=S+E|0,P^=S,P=P>>>24|P<<8,A=A+P|0,E^=A,E=E>>>25|E<<7,x=x+T|0,N^=x,N=N>>>24|N<<8,k=k+N|0,T^=k,T=T>>>25|T<<7,x=x+E|0,I^=x,I=I>>>16|I<<16,j=j+I|0,E^=j,E=E>>>20|E<<12,S=S+D|0,N^=S,N=N>>>16|N<<16,M=M+N|0,D^=M,D=D>>>20|D<<12,C=C+O|0,P^=C,P=P>>>16|P<<16,k=k+P|0,O^=k,O=O>>>20|O<<12,w=w+T|0,F^=w,F=F>>>16|F<<16,A=A+F|0,T^=A,T=T>>>20|T<<12,C=C+O|0,P^=C,P=P>>>24|P<<8,k=k+P|0,O^=k,O=O>>>25|O<<7,w=w+T|0,F^=w,F=F>>>24|F<<8,A=A+F|0,T^=A,T=T>>>25|T<<7,S=S+D|0,N^=S,N=N>>>24|N<<8,M=M+N|0,D^=M,D=D>>>25|D<<7,x=x+E|0,I^=x,I=I>>>24|I<<8,j=j+I|0,E^=j,E=E>>>25|E<<7;c(x+r|0,e,0),c(S+i|0,e,4),c(C+a|0,e,8),c(w+o|0,e,12),c(T+s|0,e,16),c(E+l|0,e,20),c(D+d|0,e,24),c(O+f|0,e,28),c(k+p|0,e,32),c(A+m|0,e,36),c(j+h|0,e,40),c(M+g|0,e,44),c(N+_|0,e,48),c(P+v|0,e,52),c(F+y|0,e,56),c(I+b|0,e,60)}function f(e,t,n,r,i=0){if(e.length!==32)throw Error(`ChaCha: key size must be 32 bytes`);if(r.length<n.length)throw Error(`ChaCha: destination is shorter than source`);let a,o;if(i===0){if(t.length!==8&&t.length!==12)throw Error(`ChaCha nonce must be 8 or 12 bytes`);a=new Uint8Array(16),o=a.length-t.length,a.set(t,o)}else{if(t.length!==16)throw Error(`ChaCha nonce with counter must be 16 bytes`);a=t,o=i}let c=new Uint8Array(64);for(let t=0;t<n.length;t+=64){d(c,a,e);for(let e=t;e<t+64&&e<n.length;e++)r[e]=n[e]^c[e-t];m(a,0,o)}return s(c),i===0&&s(a),r}function p(e,t,n,r=0){return s(n),f(e,t,n,n,r)}function m(e,t,n){let r=1;for(;n--;)r=r+(e[t]&255)|0,e[t]=r&255,r>>>=8,t++;if(r>0)throw Error(`ChaCha: counter overflow`)}function h(e,t){if(e.length!==t.length)return 0;let n=0;for(let r=0;r<e.length;r++)n|=e[r]^t[r];return 1&n-1>>>8}function g(e,t){return e.length===0||t.length===0?!1:h(e,t)!==0}var _=class{digestLength=16;_buffer=new Uint8Array(16);_r=new Uint16Array(10);_h=new Uint16Array(10);_pad=new Uint16Array(8);_leftover=0;_fin=0;_finished=!1;constructor(e){let t=e[0]|e[1]<<8;this._r[0]=t&8191;let n=e[2]|e[3]<<8;this._r[1]=(t>>>13|n<<3)&8191;let r=e[4]|e[5]<<8;this._r[2]=(n>>>10|r<<6)&7939;let i=e[6]|e[7]<<8;this._r[3]=(r>>>7|i<<9)&8191;let a=e[8]|e[9]<<8;this._r[4]=(i>>>4|a<<12)&255,this._r[5]=a>>>1&8190;let o=e[10]|e[11]<<8;this._r[6]=(a>>>14|o<<2)&8191;let s=e[12]|e[13]<<8;this._r[7]=(o>>>11|s<<5)&8065;let c=e[14]|e[15]<<8;this._r[8]=(s>>>8|c<<8)&8191,this._r[9]=c>>>5&127,this._pad[0]=e[16]|e[17]<<8,this._pad[1]=e[18]|e[19]<<8,this._pad[2]=e[20]|e[21]<<8,this._pad[3]=e[22]|e[23]<<8,this._pad[4]=e[24]|e[25]<<8,this._pad[5]=e[26]|e[27]<<8,this._pad[6]=e[28]|e[29]<<8,this._pad[7]=e[30]|e[31]<<8}_blocks(e,t,n){let r=this._fin?0:2048,i=this._h[0],a=this._h[1],o=this._h[2],s=this._h[3],c=this._h[4],l=this._h[5],u=this._h[6],d=this._h[7],f=this._h[8],p=this._h[9],m=this._r[0],h=this._r[1],g=this._r[2],_=this._r[3],v=this._r[4],y=this._r[5],b=this._r[6],x=this._r[7],S=this._r[8],C=this._r[9];for(;n>=16;){let w=e[t+0]|e[t+1]<<8;i+=w&8191;let T=e[t+2]|e[t+3]<<8;a+=(w>>>13|T<<3)&8191;let E=e[t+4]|e[t+5]<<8;o+=(T>>>10|E<<6)&8191;let D=e[t+6]|e[t+7]<<8;s+=(E>>>7|D<<9)&8191;let O=e[t+8]|e[t+9]<<8;c+=(D>>>4|O<<12)&8191,l+=O>>>1&8191;let k=e[t+10]|e[t+11]<<8;u+=(O>>>14|k<<2)&8191;let A=e[t+12]|e[t+13]<<8;d+=(k>>>11|A<<5)&8191;let j=e[t+14]|e[t+15]<<8;f+=(A>>>8|j<<8)&8191,p+=j>>>5|r;let M=0,N=M;N+=i*m,N+=5*C*a,N+=5*S*o,N+=5*x*s,N+=5*b*c,M=N>>>13,N&=8191,N+=5*y*l,N+=5*v*u,N+=5*_*d,N+=5*g*f,N+=5*h*p,M+=N>>>13,N&=8191;let P=M;P+=i*h,P+=a*m,P+=5*C*o,P+=5*S*s,P+=5*x*c,M=P>>>13,P&=8191,P+=5*b*l,P+=5*y*u,P+=5*v*d,P+=5*_*f,P+=5*g*p,M+=P>>>13,P&=8191;let F=M;F+=i*g,F+=a*h,F+=o*m,F+=5*C*s,F+=5*S*c,M=F>>>13,F&=8191,F+=5*x*l,F+=5*b*u,F+=5*y*d,F+=5*v*f,F+=5*_*p,M+=F>>>13,F&=8191;let I=M;I+=i*_,I+=a*g,I+=o*h,I+=s*m,I+=5*C*c,M=I>>>13,I&=8191,I+=5*S*l,I+=5*x*u,I+=5*b*d,I+=5*y*f,I+=5*v*p,M+=I>>>13,I&=8191;let L=M;L+=i*v,L+=a*_,L+=o*g,L+=s*h,L+=c*m,M=L>>>13,L&=8191,L+=5*C*l,L+=5*S*u,L+=5*x*d,L+=5*b*f,L+=5*y*p,M+=L>>>13,L&=8191;let R=M;R+=i*y,R+=a*v,R+=o*_,R+=s*g,R+=c*h,M=R>>>13,R&=8191,R+=l*m,R+=5*C*u,R+=5*S*d,R+=5*x*f,R+=5*b*p,M+=R>>>13,R&=8191;let z=M;z+=i*b,z+=a*y,z+=o*v,z+=s*_,z+=c*g,M=z>>>13,z&=8191,z+=l*h,z+=u*m,z+=5*C*d,z+=5*S*f,z+=5*x*p,M+=z>>>13,z&=8191;let B=M;B+=i*x,B+=a*b,B+=o*y,B+=s*v,B+=c*_,M=B>>>13,B&=8191,B+=l*g,B+=u*h,B+=d*m,B+=5*C*f,B+=5*S*p,M+=B>>>13,B&=8191;let V=M;V+=i*S,V+=a*x,V+=o*b,V+=s*y,V+=c*v,M=V>>>13,V&=8191,V+=l*_,V+=u*g,V+=d*h,V+=f*m,V+=5*C*p,M+=V>>>13,V&=8191;let H=M;H+=i*C,H+=a*S,H+=o*x,H+=s*b,H+=c*y,M=H>>>13,H&=8191,H+=l*v,H+=u*_,H+=d*g,H+=f*h,H+=p*m,M+=H>>>13,H&=8191,M=(M<<2)+M|0,M=M+N|0,N=M&8191,M>>>=13,P+=M,i=N,a=P,o=F,s=I,c=L,l=R,u=z,d=B,f=V,p=H,t+=16,n-=16}this._h[0]=i,this._h[1]=a,this._h[2]=o,this._h[3]=s,this._h[4]=c,this._h[5]=l,this._h[6]=u,this._h[7]=d,this._h[8]=f,this._h[9]=p}finish(e,t=0){let n=new Uint16Array(10),r,i,a,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(r=this._h[1]>>>13,this._h[1]&=8191,o=2;o<10;o++)this._h[o]+=r,r=this._h[o]>>>13,this._h[o]&=8191;for(this._h[0]+=r*5,r=this._h[0]>>>13,this._h[0]&=8191,this._h[1]+=r,r=this._h[1]>>>13,this._h[1]&=8191,this._h[2]+=r,n[0]=this._h[0]+5,r=n[0]>>>13,n[0]&=8191,o=1;o<10;o++)n[o]=this._h[o]+r,r=n[o]>>>13,n[o]&=8191;for(n[9]-=8192,i=(r^1)-1,o=0;o<10;o++)n[o]&=i;for(i=~i,o=0;o<10;o++)this._h[o]=this._h[o]&i|n[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,a=this._h[0]+this._pad[0],this._h[0]=a&65535,o=1;o<8;o++)a=(this._h[o]+this._pad[o]|0)+(a>>>16)|0,this._h[o]=a&65535;return e[t+0]=this._h[0]>>>0,e[t+1]=this._h[0]>>>8,e[t+2]=this._h[1]>>>0,e[t+3]=this._h[1]>>>8,e[t+4]=this._h[2]>>>0,e[t+5]=this._h[2]>>>8,e[t+6]=this._h[3]>>>0,e[t+7]=this._h[3]>>>8,e[t+8]=this._h[4]>>>0,e[t+9]=this._h[4]>>>8,e[t+10]=this._h[5]>>>0,e[t+11]=this._h[5]>>>8,e[t+12]=this._h[6]>>>0,e[t+13]=this._h[6]>>>8,e[t+14]=this._h[7]>>>0,e[t+15]=this._h[7]>>>8,this._finished=!0,this}update(e){let t=0,n=e.length,r;if(this._leftover){r=16-this._leftover,r>n&&(r=n);for(let n=0;n<r;n++)this._buffer[this._leftover+n]=e[t+n];if(n-=r,t+=r,this._leftover+=r,this._leftover<16)return this;this._blocks(this._buffer,0,16),this._leftover=0}if(n>=16&&(r=n-n%16,this._blocks(e,t,r),t+=r,n-=r),n){for(let r=0;r<n;r++)this._buffer[this._leftover+r]=e[t+r];this._leftover+=n}return this}digest(){if(this._finished)throw Error(`Poly1305 was finished`);let e=new Uint8Array(16);return this.finish(e),e}clean(){return s(this._buffer),s(this._r),s(this._h),s(this._pad),this._leftover=0,this._fin=0,this._finished=!0,this}},v=new Uint8Array(16),y=class{nonceLength=12;tagLength=16;_key;constructor(e){if(e.length!==32)throw Error(`ChaCha20Poly1305 needs 32-byte key`);this._key=new Uint8Array(e)}seal(e,t,n,r){if(e.length>16)throw Error(`ChaCha20Poly1305: incorrect nonce length`);let i=new Uint8Array(16);i.set(e,i.length-e.length);let a=new Uint8Array(32);p(this._key,i,a,4);let o=t.length+this.tagLength,c;if(r){if(r.length!==o)throw Error(`ChaCha20Poly1305: incorrect destination length`);c=r}else c=new Uint8Array(o);return f(this._key,i,t,c,4),this._authenticate(c.subarray(c.length-this.tagLength,c.length),a,c.subarray(0,c.length-this.tagLength),n),s(i),c}open(e,t,n,r){if(e.length>16)throw Error(`ChaCha20Poly1305: incorrect nonce length`);if(t.length<this.tagLength)return null;let i=new Uint8Array(16);i.set(e,i.length-e.length);let a=new Uint8Array(32);p(this._key,i,a,4);let o=new Uint8Array(this.tagLength);if(this._authenticate(o,a,t.subarray(0,t.length-this.tagLength),n),!g(o,t.subarray(t.length-this.tagLength,t.length)))return null;let c=t.length-this.tagLength,l;if(r){if(r.length!==c)throw Error(`ChaCha20Poly1305: incorrect destination length`);l=r}else l=new Uint8Array(c);return f(this._key,i,t.subarray(0,t.length-this.tagLength),l,4),s(i),l}clean(){return s(this._key),this}_authenticate(e,t,n,i){let a=new _(t);i&&(a.update(i),i.length%16>0&&a.update(v.subarray(i.length%16))),a.update(n),n.length%16>0&&a.update(v.subarray(n.length%16));let o=new Uint8Array(8);i&&r(i.length,o),a.update(o),r(n.length,o),a.update(o);let c=a.digest();for(let t=0;t<c.length;t++)e[t]=c[t];a.clean(),s(c),s(o)}},b=2**32-1,x=2**48-1,S=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),C=class{digestLength;blockSize=64;_state=new Uint32Array(S);_buffer=new Uint8Array(64);_bufferLength=0;_ctr0=0;_ctr1=0;_flag0=0;_flag1=0;_lastNode=!1;_finished=!1;_paddedKey;_initialState;constructor(e=32,t){if(this.digestLength=e,e<1||e>32)throw Error(`blake2s: wrong digest length`);t&&this.validateConfig(t);let r=0;t&&t.key&&(r=t.key.length);let i=1,a=1;if(t&&t.tree&&(i=t.tree.fanout,a=t.tree.maxDepth),this._state[0]^=e|r<<8|i<<16|a<<24,t&&t.tree){this._state[1]^=t.tree.leafSize;let e=t.tree.nodeOffset/4294967296>>>0,n=t.tree.nodeOffset>>>0;this._state[2]^=n,this._state[3]^=e|t.tree.nodeDepth<<16|t.tree.innerDigestLength<<24,this._lastNode=t.tree.lastNode}t&&t.salt&&(this._state[4]^=n(t.salt,0),this._state[5]^=n(t.salt,4)),t&&t.personalization&&(this._state[6]^=n(t.personalization,0),this._state[7]^=n(t.personalization,4)),this._initialState=new Uint32Array(this._state),t&&t.key&&r>0&&(this._paddedKey=new Uint8Array(64),this._paddedKey.set(t.key),this._buffer.set(this._paddedKey),this._bufferLength=64)}reset(){return this._state.set(this._initialState),this._paddedKey?(this._buffer.set(this._paddedKey),this._bufferLength=64):this._bufferLength=0,this._ctr0=0,this._ctr1=0,this._flag0=0,this._flag1=0,this._finished=!1,this}validateConfig(e){if(e.key&&e.key.length>32)throw Error(`blake2s: wrong key length`);if(e.salt&&e.salt.length!==8)throw Error(`blake2s: wrong salt length`);if(e.personalization&&e.personalization.length!==8)throw Error(`blake2s: wrong personalization length`);if(e.tree){if(e.tree.fanout<0||e.tree.fanout>255)throw Error(`blake2s: wrong tree fanout`);if(e.tree.maxDepth<0||e.tree.maxDepth>255)throw Error(`blake2s: wrong tree depth`);if(e.tree.leafSize<0||e.tree.leafSize>b)throw Error(`blake2s: wrong leaf size`);if(e.tree.innerDigestLength<0||e.tree.innerDigestLength>32)throw Error(`blake2s: wrong tree inner digest length`);if(e.tree.nodeOffset<0||e.tree.nodeOffset>x)throw Error(`blake2s: tree node offset is too large`)}}update(e,t=e.length){if(this._finished)throw Error(`blake2s: can't update because hash was finished.`);let n=64-this._bufferLength,r=0;if(t===0)return this;if(t>n){for(let t=0;t<n;t++)this._buffer[this._bufferLength+t]=e[r+t];this._processBlock(64),r+=n,t-=n,this._bufferLength=0}for(;t>64;){for(let t=0;t<64;t++)this._buffer[t]=e[r+t];this._processBlock(64),r+=64,t-=64,this._bufferLength=0}for(let n=0;n<t;n++)this._buffer[this._bufferLength+n]=e[r+n];return this._bufferLength+=t,this}finish(e){if(!this._finished){for(let e=this._bufferLength;e<64;e++)this._buffer[e]=0;this._flag0=4294967295,this._lastNode&&(this._flag1=4294967295),this._processBlock(this._bufferLength),this._finished=!0}let t=this._buffer.subarray(0,32);for(let e=0;e<8;e++)c(this._state[e],t,e*4);return e.set(t.subarray(0,e.length)),this}digest(){let e=new Uint8Array(this.digestLength);return this.finish(e),e}clean(){s(this._state),s(this._buffer),s(this._initialState),this._paddedKey&&s(this._paddedKey),this._bufferLength=0,this._ctr0=0,this._ctr1=0,this._flag0=0,this._flag1=0,this._lastNode=!1,this._finished=!1}saveState(){if(this._finished)throw Error(`blake2s: cannot save finished state`);return{state:new Uint32Array(this._state),buffer:new Uint8Array(this._buffer),bufferLength:this._bufferLength,ctr0:this._ctr0,ctr1:this._ctr1,flag0:this._flag0,flag1:this._flag1,lastNode:this._lastNode,paddedKey:this._paddedKey?new Uint8Array(this._paddedKey):void 0,initialState:new Uint32Array(this._initialState)}}restoreState(e){return this._state.set(e.state),this._buffer.set(e.buffer),this._bufferLength=e.bufferLength,this._ctr0=e.ctr0,this._ctr1=e.ctr1,this._flag0=e.flag0,this._flag1=e.flag1,this._lastNode=e.lastNode,this._paddedKey&&s(this._paddedKey),this._paddedKey=e.paddedKey?new Uint8Array(e.paddedKey):void 0,this._initialState.set(e.initialState),this}cleanSavedState(e){s(e.state),s(e.buffer),s(e.initialState),e.paddedKey&&s(e.paddedKey),e.bufferLength=0,e.ctr0=0,e.ctr1=0,e.flag0=0,e.flag1=0,e.lastNode=!1}_processBlock(e){let t=this._ctr0+e;this._ctr0=t>>>0,t!==this._ctr0&&this._ctr1++;let n=this._state[0],r=this._state[1],i=this._state[2],a=this._state[3],o=this._state[4],s=this._state[5],c=this._state[6],l=this._state[7],u=S[0],d=S[1],f=S[2],p=S[3],m=S[4]^this._ctr0,h=S[5]^this._ctr1,g=S[6]^this._flag0,_=S[7]^this._flag1,v=this._buffer,y=v[3]<<24|v[2]<<16|v[1]<<8|v[0],b=v[7]<<24|v[6]<<16|v[5]<<8|v[4],x=v[11]<<24|v[10]<<16|v[9]<<8|v[8],C=v[15]<<24|v[14]<<16|v[13]<<8|v[12],w=v[19]<<24|v[18]<<16|v[17]<<8|v[16],T=v[23]<<24|v[22]<<16|v[21]<<8|v[20],E=v[27]<<24|v[26]<<16|v[25]<<8|v[24],D=v[31]<<24|v[30]<<16|v[29]<<8|v[28],O=v[35]<<24|v[34]<<16|v[33]<<8|v[32],k=v[39]<<24|v[38]<<16|v[37]<<8|v[36],A=v[43]<<24|v[42]<<16|v[41]<<8|v[40],j=v[47]<<24|v[46]<<16|v[45]<<8|v[44],M=v[51]<<24|v[50]<<16|v[49]<<8|v[48],N=v[55]<<24|v[54]<<16|v[53]<<8|v[52],P=v[59]<<24|v[58]<<16|v[57]<<8|v[56],F=v[63]<<24|v[62]<<16|v[61]<<8|v[60];n=n+y|0,n=n+o|0,m^=n,m=m<<16|m>>>16,u=u+m|0,o^=u,o=o<<20|o>>>12,r=r+x|0,r=r+s|0,h^=r,h=h<<16|h>>>16,d=d+h|0,s^=d,s=s<<20|s>>>12,i=i+w|0,i=i+c|0,g^=i,g=g<<16|g>>>16,f=f+g|0,c^=f,c=c<<20|c>>>12,a=a+E|0,a=a+l|0,_^=a,_=_<<16|_>>>16,p=p+_|0,l^=p,l=l<<20|l>>>12,i=i+T|0,i=i+c|0,g^=i,g=g<<24|g>>>8,f=f+g|0,c^=f,c=c<<25|c>>>7,a=a+D|0,a=a+l|0,_^=a,_=_<<24|_>>>8,p=p+_|0,l^=p,l=l<<25|l>>>7,r=r+C|0,r=r+s|0,h^=r,h=h<<24|h>>>8,d=d+h|0,s^=d,s=s<<25|s>>>7,n=n+b|0,n=n+o|0,m^=n,m=m<<24|m>>>8,u=u+m|0,o^=u,o=o<<25|o>>>7,n=n+O|0,n=n+s|0,_^=n,_=_<<16|_>>>16,f=f+_|0,s^=f,s=s<<20|s>>>12,r=r+A|0,r=r+c|0,m^=r,m=m<<16|m>>>16,p=p+m|0,c^=p,c=c<<20|c>>>12,i=i+M|0,i=i+l|0,h^=i,h=h<<16|h>>>16,u=u+h|0,l^=u,l=l<<20|l>>>12,a=a+P|0,a=a+o|0,g^=a,g=g<<16|g>>>16,d=d+g|0,o^=d,o=o<<20|o>>>12,i=i+N|0,i=i+l|0,h^=i,h=h<<24|h>>>8,u=u+h|0,l^=u,l=l<<25|l>>>7,a=a+F|0,a=a+o|0,g^=a,g=g<<24|g>>>8,d=d+g|0,o^=d,o=o<<25|o>>>7,r=r+j|0,r=r+c|0,m^=r,m=m<<24|m>>>8,p=p+m|0,c^=p,c=c<<25|c>>>7,n=n+k|0,n=n+s|0,_^=n,_=_<<24|_>>>8,f=f+_|0,s^=f,s=s<<25|s>>>7,n=n+P|0,n=n+o|0,m^=n,m=m<<16|m>>>16,u=u+m|0,o^=u,o=o<<20|o>>>12,r=r+w|0,r=r+s|0,h^=r,h=h<<16|h>>>16,d=d+h|0,s^=d,s=s<<20|s>>>12,i=i+k|0,i=i+c|0,g^=i,g=g<<16|g>>>16,f=f+g|0,c^=f,c=c<<20|c>>>12,a=a+N|0,a=a+l|0,_^=a,_=_<<16|_>>>16,p=p+_|0,l^=p,l=l<<20|l>>>12,i=i+F|0,i=i+c|0,g^=i,g=g<<24|g>>>8,f=f+g|0,c^=f,c=c<<25|c>>>7,a=a+E|0,a=a+l|0,_^=a,_=_<<24|_>>>8,p=p+_|0,l^=p,l=l<<25|l>>>7,r=r+O|0,r=r+s|0,h^=r,h=h<<24|h>>>8,d=d+h|0,s^=d,s=s<<25|s>>>7,n=n+A|0,n=n+o|0,m^=n,m=m<<24|m>>>8,u=u+m|0,o^=u,o=o<<25|o>>>7,n=n+b|0,n=n+s|0,_^=n,_=_<<16|_>>>16,f=f+_|0,s^=f,s=s<<20|s>>>12,r=r+y|0,r=r+c|0,m^=r,m=m<<16|m>>>16,p=p+m|0,c^=p,c=c<<20|c>>>12,i=i+j|0,i=i+l|0,h^=i,h=h<<16|h>>>16,u=u+h|0,l^=u,l=l<<20|l>>>12,a=a+T|0,a=a+o|0,g^=a,g=g<<16|g>>>16,d=d+g|0,o^=d,o=o<<20|o>>>12,i=i+D|0,i=i+l|0,h^=i,h=h<<24|h>>>8,u=u+h|0,l^=u,l=l<<25|l>>>7,a=a+C|0,a=a+o|0,g^=a,g=g<<24|g>>>8,d=d+g|0,o^=d,o=o<<25|o>>>7,r=r+x|0,r=r+c|0,m^=r,m=m<<24|m>>>8,p=p+m|0,c^=p,c=c<<25|c>>>7,n=n+M|0,n=n+s|0,_^=n,_=_<<24|_>>>8,f=f+_|0,s^=f,s=s<<25|s>>>7,n=n+j|0,n=n+o|0,m^=n,m=m<<16|m>>>16,u=u+m|0,o^=u,o=o<<20|o>>>12,r=r+M|0,r=r+s|0,h^=r,h=h<<16|h>>>16,d=d+h|0,s^=d,s=s<<20|s>>>12,i=i+T|0,i=i+c|0,g^=i,g=g<<16|g>>>16,f=f+g|0,c^=f,c=c<<20|c>>>12,a=a+F|0,a=a+l|0,_^=a,_=_<<16|_>>>16,p=p+_|0,l^=p,l=l<<20|l>>>12,i=i+x|0,i=i+c|0,g^=i,g=g<<24|g>>>8,f=f+g|0,c^=f,c=c<<25|c>>>7,a=a+N|0,a=a+l|0,_^=a,_=_<<24|_>>>8,p=p+_|0,l^=p,l=l<<25|l>>>7,r=r+y|0,r=r+s|0,h^=r,h=h<<24|h>>>8,d=d+h|0,s^=d,s=s<<25|s>>>7,n=n+O|0,n=n+o|0,m^=n,m=m<<24|m>>>8,u=u+m|0,o^=u,o=o<<25|o>>>7,n=n+A|0,n=n+s|0,_^=n,_=_<<16|_>>>16,f=f+_|0,s^=f,s=s<<20|s>>>12,r=r+C|0,r=r+c|0,m^=r,m=m<<16|m>>>16,p=p+m|0,c^=p,c=c<<20|c>>>12,i=i+D|0,i=i+l|0,h^=i,h=h<<16|h>>>16,u=u+h|0,l^=u,l=l<<20|l>>>12,a=a+k|0,a=a+o|0,g^=a,g=g<<16|g>>>16,d=d+g|0,o^=d,o=o<<20|o>>>12,i=i+b|0,i=i+l|0,h^=i,h=h<<24|h>>>8,u=u+h|0,l^=u,l=l<<25|l>>>7,a=a+w|0,a=a+o|0,g^=a,g=g<<24|g>>>8,d=d+g|0,o^=d,o=o<<25|o>>>7,r=r+E|0,r=r+c|0,m^=r,m=m<<24|m>>>8,p=p+m|0,c^=p,c=c<<25|c>>>7,n=n+P|0,n=n+s|0,_^=n,_=_<<24|_>>>8,f=f+_|0,s^=f,s=s<<25|s>>>7,n=n+D|0,n=n+o|0,m^=n,m=m<<16|m>>>16,u=u+m|0,o^=u,o=o<<20|o>>>12,r=r+C|0,r=r+s|0,h^=r,h=h<<16|h>>>16,d=d+h|0,s^=d,s=s<<20|s>>>12,i=i+N|0,i=i+c|0,g^=i,g=g<<16|g>>>16,f=f+g|0,c^=f,c=c<<20|c>>>12,a=a+j|0,a=a+l|0,_^=a,_=_<<16|_>>>16,p=p+_|0,l^=p,l=l<<20|l>>>12,i=i+M|0,i=i+c|0,g^=i,g=g<<24|g>>>8,f=f+g|0,c^=f,c=c<<25|c>>>7,a=a+P|0,a=a+l|0,_^=a,_=_<<24|_>>>8,p=p+_|0,l^=p,l=l<<25|l>>>7,r=r+b|0,r=r+s|0,h^=r,h=h<<24|h>>>8,d=d+h|0,s^=d,s=s<<25|s>>>7,n=n+k|0,n=n+o|0,m^=n,m=m<<24|m>>>8,u=u+m|0,o^=u,o=o<<25|o>>>7,n=n+x|0,n=n+s|0,_^=n,_=_<<16|_>>>16,f=f+_|0,s^=f,s=s<<20|s>>>12,r=r+T|0,r=r+c|0,m^=r,m=m<<16|m>>>16,p=p+m|0,c^=p,c=c<<20|c>>>12,i=i+w|0,i=i+l|0,h^=i,h=h<<16|h>>>16,u=u+h|0,l^=u,l=l<<20|l>>>12,a=a+F|0,a=a+o|0,g^=a,g=g<<16|g>>>16,d=d+g|0,o^=d,o=o<<20|o>>>12,i=i+y|0,i=i+l|0,h^=i,h=h<<24|h>>>8,u=u+h|0,l^=u,l=l<<25|l>>>7,a=a+O|0,a=a+o|0,g^=a,g=g<<24|g>>>8,d=d+g|0,o^=d,o=o<<25|o>>>7,r=r+A|0,r=r+c|0,m^=r,m=m<<24|m>>>8,p=p+m|0,c^=p,c=c<<25|c>>>7,n=n+E|0,n=n+s|0,_^=n,_=_<<24|_>>>8,f=f+_|0,s^=f,s=s<<25|s>>>7,n=n+k|0,n=n+o|0,m^=n,m=m<<16|m>>>16,u=u+m|0,o^=u,o=o<<20|o>>>12,r=r+T|0,r=r+s|0,h^=r,h=h<<16|h>>>16,d=d+h|0,s^=d,s=s<<20|s>>>12,i=i+x|0,i=i+c|0,g^=i,g=g<<16|g>>>16,f=f+g|0,c^=f,c=c<<20|c>>>12,a=a+A|0,a=a+l|0,_^=a,_=_<<16|_>>>16,p=p+_|0,l^=p,l=l<<20|l>>>12,i=i+w|0,i=i+c|0,g^=i,g=g<<24|g>>>8,f=f+g|0,c^=f,c=c<<25|c>>>7,a=a+F|0,a=a+l|0,_^=a,_=_<<24|_>>>8,p=p+_|0,l^=p,l=l<<25|l>>>7,r=r+D|0,r=r+s|0,h^=r,h=h<<24|h>>>8,d=d+h|0,s^=d,s=s<<25|s>>>7,n=n+y|0,n=n+o|0,m^=n,m=m<<24|m>>>8,u=u+m|0,o^=u,o=o<<25|o>>>7,n=n+P|0,n=n+s|0,_^=n,_=_<<16|_>>>16,f=f+_|0,s^=f,s=s<<20|s>>>12,r=r+j|0,r=r+c|0,m^=r,m=m<<16|m>>>16,p=p+m|0,c^=p,c=c<<20|c>>>12,i=i+E|0,i=i+l|0,h^=i,h=h<<16|h>>>16,u=u+h|0,l^=u,l=l<<20|l>>>12,a=a+C|0,a=a+o|0,g^=a,g=g<<16|g>>>16,d=d+g|0,o^=d,o=o<<20|o>>>12,i=i+O|0,i=i+l|0,h^=i,h=h<<24|h>>>8,u=u+h|0,l^=u,l=l<<25|l>>>7,a=a+N|0,a=a+o|0,g^=a,g=g<<24|g>>>8,d=d+g|0,o^=d,o=o<<25|o>>>7,r=r+M|0,r=r+c|0,m^=r,m=m<<24|m>>>8,p=p+m|0,c^=p,c=c<<25|c>>>7,n=n+b|0,n=n+s|0,_^=n,_=_<<24|_>>>8,f=f+_|0,s^=f,s=s<<25|s>>>7,n=n+x|0,n=n+o|0,m^=n,m=m<<16|m>>>16,u=u+m|0,o^=u,o=o<<20|o>>>12,r=r+E|0,r=r+s|0,h^=r,h=h<<16|h>>>16,d=d+h|0,s^=d,s=s<<20|s>>>12,i=i+y|0,i=i+c|0,g^=i,g=g<<16|g>>>16,f=f+g|0,c^=f,c=c<<20|c>>>12,a=a+O|0,a=a+l|0,_^=a,_=_<<16|_>>>16,p=p+_|0,l^=p,l=l<<20|l>>>12,i=i+j|0,i=i+c|0,g^=i,g=g<<24|g>>>8,f=f+g|0,c^=f,c=c<<25|c>>>7,a=a+C|0,a=a+l|0,_^=a,_=_<<24|_>>>8,p=p+_|0,l^=p,l=l<<25|l>>>7,r=r+A|0,r=r+s|0,h^=r,h=h<<24|h>>>8,d=d+h|0,s^=d,s=s<<25|s>>>7,n=n+M|0,n=n+o|0,m^=n,m=m<<24|m>>>8,u=u+m|0,o^=u,o=o<<25|o>>>7,n=n+w|0,n=n+s|0,_^=n,_=_<<16|_>>>16,f=f+_|0,s^=f,s=s<<20|s>>>12,r=r+D|0,r=r+c|0,m^=r,m=m<<16|m>>>16,p=p+m|0,c^=p,c=c<<20|c>>>12,i=i+F|0,i=i+l|0,h^=i,h=h<<16|h>>>16,u=u+h|0,l^=u,l=l<<20|l>>>12,a=a+b|0,a=a+o|0,g^=a,g=g<<16|g>>>16,d=d+g|0,o^=d,o=o<<20|o>>>12,i=i+P|0,i=i+l|0,h^=i,h=h<<24|h>>>8,u=u+h|0,l^=u,l=l<<25|l>>>7,a=a+k|0,a=a+o|0,g^=a,g=g<<24|g>>>8,d=d+g|0,o^=d,o=o<<25|o>>>7,r=r+T|0,r=r+c|0,m^=r,m=m<<24|m>>>8,p=p+m|0,c^=p,c=c<<25|c>>>7,n=n+N|0,n=n+s|0,_^=n,_=_<<24|_>>>8,f=f+_|0,s^=f,s=s<<25|s>>>7,n=n+M|0,n=n+o|0,m^=n,m=m<<16|m>>>16,u=u+m|0,o^=u,o=o<<20|o>>>12,r=r+b|0,r=r+s|0,h^=r,h=h<<16|h>>>16,d=d+h|0,s^=d,s=s<<20|s>>>12,i=i+P|0,i=i+c|0,g^=i,g=g<<16|g>>>16,f=f+g|0,c^=f,c=c<<20|c>>>12,a=a+w|0,a=a+l|0,_^=a,_=_<<16|_>>>16,p=p+_|0,l^=p,l=l<<20|l>>>12,i=i+N|0,i=i+c|0,g^=i,g=g<<24|g>>>8,f=f+g|0,c^=f,c=c<<25|c>>>7,a=a+A|0,a=a+l|0,_^=a,_=_<<24|_>>>8,p=p+_|0,l^=p,l=l<<25|l>>>7,r=r+F|0,r=r+s|0,h^=r,h=h<<24|h>>>8,d=d+h|0,s^=d,s=s<<25|s>>>7,n=n+T|0,n=n+o|0,m^=n,m=m<<24|m>>>8,u=u+m|0,o^=u,o=o<<25|o>>>7,n=n+y|0,n=n+s|0,_^=n,_=_<<16|_>>>16,f=f+_|0,s^=f,s=s<<20|s>>>12,r=r+E|0,r=r+c|0,m^=r,m=m<<16|m>>>16,p=p+m|0,c^=p,c=c<<20|c>>>12,i=i+k|0,i=i+l|0,h^=i,h=h<<16|h>>>16,u=u+h|0,l^=u,l=l<<20|l>>>12,a=a+O|0,a=a+o|0,g^=a,g=g<<16|g>>>16,d=d+g|0,o^=d,o=o<<20|o>>>12,i=i+x|0,i=i+l|0,h^=i,h=h<<24|h>>>8,u=u+h|0,l^=u,l=l<<25|l>>>7,a=a+j|0,a=a+o|0,g^=a,g=g<<24|g>>>8,d=d+g|0,o^=d,o=o<<25|o>>>7,r=r+C|0,r=r+c|0,m^=r,m=m<<24|m>>>8,p=p+m|0,c^=p,c=c<<25|c>>>7,n=n+D|0,n=n+s|0,_^=n,_=_<<24|_>>>8,f=f+_|0,s^=f,s=s<<25|s>>>7,n=n+N|0,n=n+o|0,m^=n,m=m<<16|m>>>16,u=u+m|0,o^=u,o=o<<20|o>>>12,r=r+D|0,r=r+s|0,h^=r,h=h<<16|h>>>16,d=d+h|0,s^=d,s=s<<20|s>>>12,i=i+M|0,i=i+c|0,g^=i,g=g<<16|g>>>16,f=f+g|0,c^=f,c=c<<20|c>>>12,a=a+C|0,a=a+l|0,_^=a,_=_<<16|_>>>16,p=p+_|0,l^=p,l=l<<20|l>>>12,i=i+b|0,i=i+c|0,g^=i,g=g<<24|g>>>8,f=f+g|0,c^=f,c=c<<25|c>>>7,a=a+k|0,a=a+l|0,_^=a,_=_<<24|_>>>8,p=p+_|0,l^=p,l=l<<25|l>>>7,r=r+P|0,r=r+s|0,h^=r,h=h<<24|h>>>8,d=d+h|0,s^=d,s=s<<25|s>>>7,n=n+j|0,n=n+o|0,m^=n,m=m<<24|m>>>8,u=u+m|0,o^=u,o=o<<25|o>>>7,n=n+T|0,n=n+s|0,_^=n,_=_<<16|_>>>16,f=f+_|0,s^=f,s=s<<20|s>>>12,r=r+F|0,r=r+c|0,m^=r,m=m<<16|m>>>16,p=p+m|0,c^=p,c=c<<20|c>>>12,i=i+O|0,i=i+l|0,h^=i,h=h<<16|h>>>16,u=u+h|0,l^=u,l=l<<20|l>>>12,a=a+x|0,a=a+o|0,g^=a,g=g<<16|g>>>16,d=d+g|0,o^=d,o=o<<20|o>>>12,i=i+E|0,i=i+l|0,h^=i,h=h<<24|h>>>8,u=u+h|0,l^=u,l=l<<25|l>>>7,a=a+A|0,a=a+o|0,g^=a,g=g<<24|g>>>8,d=d+g|0,o^=d,o=o<<25|o>>>7,r=r+w|0,r=r+c|0,m^=r,m=m<<24|m>>>8,p=p+m|0,c^=p,c=c<<25|c>>>7,n=n+y|0,n=n+s|0,_^=n,_=_<<24|_>>>8,f=f+_|0,s^=f,s=s<<25|s>>>7,n=n+E|0,n=n+o|0,m^=n,m=m<<16|m>>>16,u=u+m|0,o^=u,o=o<<20|o>>>12,r=r+P|0,r=r+s|0,h^=r,h=h<<16|h>>>16,d=d+h|0,s^=d,s=s<<20|s>>>12,i=i+j|0,i=i+c|0,g^=i,g=g<<16|g>>>16,f=f+g|0,c^=f,c=c<<20|c>>>12,a=a+y|0,a=a+l|0,_^=a,_=_<<16|_>>>16,p=p+_|0,l^=p,l=l<<20|l>>>12,i=i+C|0,i=i+c|0,g^=i,g=g<<24|g>>>8,f=f+g|0,c^=f,c=c<<25|c>>>7,a=a+O|0,a=a+l|0,_^=a,_=_<<24|_>>>8,p=p+_|0,l^=p,l=l<<25|l>>>7,r=r+k|0,r=r+s|0,h^=r,h=h<<24|h>>>8,d=d+h|0,s^=d,s=s<<25|s>>>7,n=n+F|0,n=n+o|0,m^=n,m=m<<24|m>>>8,u=u+m|0,o^=u,o=o<<25|o>>>7,n=n+M|0,n=n+s|0,_^=n,_=_<<16|_>>>16,f=f+_|0,s^=f,s=s<<20|s>>>12,r=r+N|0,r=r+c|0,m^=r,m=m<<16|m>>>16,p=p+m|0,c^=p,c=c<<20|c>>>12,i=i+b|0,i=i+l|0,h^=i,h=h<<16|h>>>16,u=u+h|0,l^=u,l=l<<20|l>>>12,a=a+A|0,a=a+o|0,g^=a,g=g<<16|g>>>16,d=d+g|0,o^=d,o=o<<20|o>>>12,i=i+w|0,i=i+l|0,h^=i,h=h<<24|h>>>8,u=u+h|0,l^=u,l=l<<25|l>>>7,a=a+T|0,a=a+o|0,g^=a,g=g<<24|g>>>8,d=d+g|0,o^=d,o=o<<25|o>>>7,r=r+D|0,r=r+c|0,m^=r,m=m<<24|m>>>8,p=p+m|0,c^=p,c=c<<25|c>>>7,n=n+x|0,n=n+s|0,_^=n,_=_<<24|_>>>8,f=f+_|0,s^=f,s=s<<25|s>>>7,n=n+A|0,n=n+o|0,m^=n,m=m<<16|m>>>16,u=u+m|0,o^=u,o=o<<20|o>>>12,r=r+O|0,r=r+s|0,h^=r,h=h<<16|h>>>16,d=d+h|0,s^=d,s=s<<20|s>>>12,i=i+D|0,i=i+c|0,g^=i,g=g<<16|g>>>16,f=f+g|0,c^=f,c=c<<20|c>>>12,a=a+b|0,a=a+l|0,_^=a,_=_<<16|_>>>16,p=p+_|0,l^=p,l=l<<20|l>>>12,i=i+E|0,i=i+c|0,g^=i,g=g<<24|g>>>8,f=f+g|0,c^=f,c=c<<25|c>>>7,a=a+T|0,a=a+l|0,_^=a,_=_<<24|_>>>8,p=p+_|0,l^=p,l=l<<25|l>>>7,r=r+w|0,r=r+s|0,h^=r,h=h<<24|h>>>8,d=d+h|0,s^=d,s=s<<25|s>>>7,n=n+x|0,n=n+o|0,m^=n,m=m<<24|m>>>8,u=u+m|0,o^=u,o=o<<25|o>>>7,n=n+F|0,n=n+s|0,_^=n,_=_<<16|_>>>16,f=f+_|0,s^=f,s=s<<20|s>>>12,r=r+k|0,r=r+c|0,m^=r,m=m<<16|m>>>16,p=p+m|0,c^=p,c=c<<20|c>>>12,i=i+C|0,i=i+l|0,h^=i,h=h<<16|h>>>16,u=u+h|0,l^=u,l=l<<20|l>>>12,a=a+N|0,a=a+o|0,g^=a,g=g<<16|g>>>16,d=d+g|0,o^=d,o=o<<20|o>>>12,i=i+M|0,i=i+l|0,h^=i,h=h<<24|h>>>8,u=u+h|0,l^=u,l=l<<25|l>>>7,a=a+y|0,a=a+o|0,g^=a,g=g<<24|g>>>8,d=d+g|0,o^=d,o=o<<25|o>>>7,r=r+P|0,r=r+c|0,m^=r,m=m<<24|m>>>8,p=p+m|0,c^=p,c=c<<25|c>>>7,n=n+j|0,n=n+s|0,_^=n,_=_<<24|_>>>8,f=f+_|0,s^=f,s=s<<25|s>>>7,this._state[0]^=n^u,this._state[1]^=r^d,this._state[2]^=i^f,this._state[3]^=a^p,this._state[4]^=o^m,this._state[5]^=s^h,this._state[6]^=c^g,this._state[7]^=l^_}};function w(e){return e.saveState!==void 0&&e.restoreState!==void 0&&e.cleanSavedState!==void 0}var T=class{blockSize;digestLength;_inner;_outer;_finished=!1;_innerKeyedState;_outerKeyedState;constructor(e,t){this._inner=new e,this._outer=new e,this.blockSize=this._outer.blockSize,this.digestLength=this._outer.digestLength;let n=new Uint8Array(this.blockSize);t.length>this.blockSize?this._inner.update(t).finish(n).clean():n.set(t);for(let e=0;e<n.length;e++)n[e]^=54;this._inner.update(n);for(let e=0;e<n.length;e++)n[e]^=106;this._outer.update(n),w(this._inner)&&w(this._outer)&&(this._innerKeyedState=this._inner.saveState(),this._outerKeyedState=this._outer.saveState()),s(n)}reset(){if(!w(this._inner)||!w(this._outer))throw Error(`hmac: can't reset() because hash doesn't implement restoreState()`);return this._inner.restoreState(this._innerKeyedState),this._outer.restoreState(this._outerKeyedState),this._finished=!1,this}clean(){w(this._inner)&&this._inner.cleanSavedState(this._innerKeyedState),w(this._outer)&&this._outer.cleanSavedState(this._outerKeyedState),this._inner.clean(),this._outer.clean()}update(e){return this._inner.update(e),this}finish(e){return this._finished?(this._outer.finish(e),this):(this._inner.finish(e),this._outer.update(e.subarray(0,this.digestLength)).finish(e),this._finished=!0,this)}digest(){let e=new Uint8Array(this.digestLength);return this.finish(e),e}saveState(){if(!w(this._inner))throw Error(`hmac: can't saveState() because hash doesn't implement it`);return this._inner.saveState()}restoreState(e){if(!w(this._inner)||!w(this._outer))throw Error(`hmac: can't restoreState() because hash doesn't implement it`);return this._inner.restoreState(e),this._outer.restoreState(this._outerKeyedState),this._finished=!1,this}cleanSavedState(e){if(!w(this._inner))throw Error(`hmac: can't cleanSavedState() because hash doesn't implement it`);this._inner.cleanSavedState(e)}};function E(e,t,n){let r=new T(e,t);r.update(n);let i=r.digest();return r.clean(),i}var D=class{_hmac;_buffer;_bufpos;_counter=new Uint8Array(1);_hash;_info;constructor(e,t,n=new Uint8Array,r){this._hash=e,this._info=r;let i=E(this._hash,n,t);this._hmac=new T(e,i),this._buffer=new Uint8Array(this._hmac.digestLength),this._bufpos=this._buffer.length}_fillBuffer(){this._counter[0]++;let e=this._counter[0];if(e===0)throw Error(`hkdf: cannot expand more`);this._hmac.reset(),e>1&&this._hmac.update(this._buffer),this._info&&this._hmac.update(this._info),this._hmac.update(this._counter),this._hmac.finish(this._buffer),this._bufpos=0}expand(e){let t=new Uint8Array(e);for(let e=0;e<t.length;e++)this._bufpos===this._buffer.length&&this._fillBuffer(),t[e]=this._buffer[this._bufpos++];return t}clean(){this._hmac.clean(),s(this._buffer),s(this._counter),this._bufpos=0}},O=class{digestLength=32;blockSize=64;_state=new Int32Array(8);_temp=new Int32Array(64);_buffer=new Uint8Array(128);_bufferLength=0;_bytesHashed=0;_finished=!1;constructor(){this.reset()}_initState(){this._state[0]=1779033703,this._state[1]=3144134277,this._state[2]=1013904242,this._state[3]=2773480762,this._state[4]=1359893119,this._state[5]=2600822924,this._state[6]=528734635,this._state[7]=1541459225}reset(){return this._initState(),this._bufferLength=0,this._bytesHashed=0,this._finished=!1,this}clean(){s(this._buffer),s(this._temp),this.reset()}update(e,t=e.length){if(this._finished)throw Error(`SHA256: can't update because hash was finished.`);let n=0;if(this._bytesHashed+=t,this._bufferLength>0){for(;this._bufferLength<this.blockSize&&t>0;)this._buffer[this._bufferLength++]=e[n++],t--;this._bufferLength===this.blockSize&&(A(this._temp,this._state,this._buffer,0,this.blockSize),this._bufferLength=0)}for(t>=this.blockSize&&(n=A(this._temp,this._state,e,n,t),t%=this.blockSize);t>0;)this._buffer[this._bufferLength++]=e[n++],t--;return this}finish(e){if(!this._finished){let e=this._bytesHashed,t=this._bufferLength,n=e/536870912|0,r=e<<3,i=e%64<56?64:128;this._buffer[t]=128;for(let e=t+1;e<i-8;e++)this._buffer[e]=0;o(n,this._buffer,i-8),o(r,this._buffer,i-4),A(this._temp,this._state,this._buffer,0,i),this._finished=!0}for(let t=0;t<this.digestLength/4;t++)o(this._state[t],e,t*4);return this}digest(){let e=new Uint8Array(this.digestLength);return this.finish(e),e}saveState(){if(this._finished)throw Error(`SHA256: cannot save finished state`);return{state:new Int32Array(this._state),buffer:this._bufferLength>0?new Uint8Array(this._buffer):void 0,bufferLength:this._bufferLength,bytesHashed:this._bytesHashed}}restoreState(e){return this._state.set(e.state),this._bufferLength=e.bufferLength,e.buffer&&this._buffer.set(e.buffer),this._bytesHashed=e.bytesHashed,this._finished=!1,this}cleanSavedState(e){s(e.state),e.buffer&&s(e.buffer),e.bufferLength=0,e.bytesHashed=0}},k=new Int32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]);function A(e,t,n,r,a){for(;a>=64;){let o=t[0],s=t[1],c=t[2],l=t[3],u=t[4],d=t[5],f=t[6],p=t[7];for(let t=0;t<16;t++)e[t]=i(n,r+t*4);for(let t=16;t<64;t++){let n=e[t-2],r=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10;n=e[t-15];let i=(n>>>7|n<<25)^(n>>>18|n<<14)^n>>>3;e[t]=(r+e[t-7]|0)+(i+e[t-16]|0)}for(let t=0;t<64;t++){let n=(((u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7))+(u&d^~u&f)|0)+(p+(k[t]+e[t]|0)|0)|0,r=((o>>>2|o<<30)^(o>>>13|o<<19)^(o>>>22|o<<10))+(o&s^o&c^s&c)|0;p=f,f=d,d=u,u=l+n|0,l=c,c=s,s=o,o=n+r|0}t[0]+=o,t[1]+=s,t[2]+=c,t[3]+=l,t[4]+=u,t[5]+=d,t[6]+=f,t[7]+=p,r+=64,a-=64}return r}var j=`Noise_NK_25519_ChaChaPoly_BLAKE2s`;function M(){let e=new TextEncoder().encode(j);if(e.length<=32){let t=new Uint8Array(32);return t.set(e),t}let t=new O;return t.update(e),t.digest()}function N(e,t){let n=new C(32);return n.update(e),n.update(t),n.digest()}function P(e,t){let n=new D(O,t,e).expand(64);return[n.slice(0,32),n.slice(32,64)]}async function F(e,t,n){let r=M(),i=r.slice();r=N(r,e);let o=l();r=N(r,o.publicKey);let s=a(o.secretKey,e),[c,u]=P(i,s);i=c;let d=new y(u),f=new Uint8Array(12),p=d.seal(f,new Uint8Array,r);r=N(r,p);let m=new Uint8Array(32+p.length);m.set(o.publicKey,0),m.set(p,32),await t(m);let h=await n();if(h.length<48)throw Error(`Noise NK: msg2 too short`);let g=h.slice(0,32),_=h.slice(32);r=N(r,g);let v=a(o.secretKey,g),[b,x]=P(i,v);i=b;let S=new y(x),C=new Uint8Array(12);if(!S.open(C,_,r))throw Error(`Noise NK: msg2 auth failed — wrong responder key or MITM`);r=N(r,_);let[w,T]=P(i,new Uint8Array),E=r.slice(),D=0n,O=0n;function k(e){let t=new Uint8Array(12);return new DataView(t.buffer).setBigUint64(4,e,!0),t}let A=new y(w),j=new y(T);return{encrypt(e){return A.seal(k(D++),e,new Uint8Array)},decrypt(e){let t=j.open(k(O++),e,new Uint8Array);if(!t)throw Error(`Noise NK: decryption failed`);return t},handshakeHash:E}}var I=new TextEncoder().encode(`peach-sync-v1-initiator-auth`);function L(e,t,n,r){if(r.length!==32)throw Error(`auth nonce must be 32 bytes`);let i=new T(O,a(e,n));return i.update(I),i.update(t),i.update(n),i.update(r),i.digest()}function R(e){return Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``)}function z(e){if(e.length%2!=0)throw Error(`invalid hex`);let t=new Uint8Array(e.length/2);for(let n=0;n<e.length;n+=2)t[n/2]=parseInt(e.slice(n,n+2),16);return t}async function B(e,t,n,r,i,a){let o=await a(),s=JSON.parse(new TextDecoder().decode(o));if(s.type!==`CHALLENGE`)throw Error(`expected CHALLENGE frame`);let c=z(s.nonce_hex),l=z(s.responder_public_key_hex);if(l.length!==r.length||!l.every((e,t)=>e===r[t]))throw Error(`responder key in challenge does not match Noise handshake`);let u=L(t,n,r,c),d={type:`PROOF`,initiator_public_key_hex:R(n),proof_hex:R(u)};await i(new TextEncoder().encode(JSON.stringify(d)))}var V=1e4;function H(e){if(e.length%2!=0)throw Error(`invalid hex`);let t=new Uint8Array(e.length/2);for(let n=0;n<e.length;n+=2)t[n/2]=parseInt(e.slice(n,n+2),16);return t}function U(e){let t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/g,``)}function W(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`).padEnd(Math.ceil(e.length/4)*4,`=`),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;e+=1)r[e]=n.charCodeAt(e);return r}async function G(e,t,n){if(e.wsPort===void 0)throw Error(`peer did not advertise a WebSocket port`);let r=`ws://${e.host}:${e.wsPort}/`,i=await new Promise((e,t)=>{let n=new WebSocket(r);n.binaryType=`arraybuffer`;let i=setTimeout(()=>{try{n.close()}catch{}t(Error(`WebSocket open timeout`))},V);n.addEventListener(`open`,()=>{clearTimeout(i),e(n)}),n.addEventListener(`error`,()=>{clearTimeout(i),t(Error(`Cannot connect to ${r}`))})}),a=[],o=null,s=null,c=!1,l=null;i.addEventListener(`message`,e=>{let t=new Uint8Array(e.data);if(o){let e=o;o=null,s=null,e(t)}else a.push(t)}),i.addEventListener(`close`,()=>{if(c=!0,s){let e=s;o=null,s=null,e(Error(`WebSocket closed during handshake`))}}),i.addEventListener(`error`,()=>{if(l=`websocket_error`,s){let e=s;o=null,s=null,e(Error(`WebSocket error`))}});function u(e){if(c)return Promise.reject(Error(`WebSocket closed`));let t=new Uint8Array(e);return i.send(t.buffer),Promise.resolve()}function d(){return a.length>0?Promise.resolve(a.shift()):c?Promise.reject(Error(`WebSocket closed`)):new Promise((e,t)=>{o=e,s=t})}let f=H(e.x25519PublicKey),p=await F(f,u,d);await B(p,t,n,f,async e=>{await u(p.encrypt(e))},async()=>p.decrypt(await d()));let m=[],h=[],g=[];return i.addEventListener(`message`,e=>{try{let t=new Uint8Array(e.data),n=U(p.decrypt(t));for(let e of m)e(n)}catch(e){let t=e instanceof Error?e.message:String(e);for(let e of h)e(t)}}),i.addEventListener(`close`,()=>{for(let e of g)e()}),i.addEventListener(`error`,()=>{let e=l||`websocket_error`;for(let t of h)t(e)}),{send:async e=>{let t=W(e);await u(p.encrypt(t))},onFrame:e=>(m.push(e),()=>{let t=m.indexOf(e);t>=0&&m.splice(t,1)}),onError:e=>(h.push(e),()=>{let t=h.indexOf(e);t>=0&&h.splice(t,1)}),onClose:e=>(g.push(e),()=>{let t=g.indexOf(e);t>=0&&g.splice(t,1)}),close:()=>{try{i.close()}catch{}}}}var K=3e4;async function q(n,r,i,a,o){let s=await G(n,r,i);try{let n=new Promise((e,n)=>{let r=setTimeout(()=>{c(),n(Error(`pairing response timeout`))},K),i=s.onFrame(r=>{try{let n=t(r);c(),e(n)}catch(e){c(),n(e instanceof Error?e:Error(String(e)))}}),a=s.onError(e=>{c(),n(Error(e))}),o=s.onClose(()=>{c(),n(Error(`connection closed before pairing response`))});function c(){clearTimeout(r),i(),a(),o()}});await s.send(e({type:`PAIR_REQUEST`,public_key_hex:a,device_name:o}));let r=await n;if(r.type===`PAIR_ACCEPT`)return{publicKeyHex:r.public_key_hex,deviceName:r.device_name};throw r.type===`PAIR_REJECT`?Error(`pair_rejected:${r.reason}`):Error(`unexpected_response:${r.type}`)}finally{try{s.close()}catch{}}}export{q as runCapacitorPairingHandshake};