@hive-p2p/browser 1.0.62 → 1.0.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/hive-p2p.min.js CHANGED
@@ -1,6 +1,6 @@
1
- var Zi=Object.create;var Rn=Object.defineProperty;var zi=Object.getOwnPropertyDescriptor;var ts=Object.getOwnPropertyNames;var es=Object.getPrototypeOf,ns=Object.prototype.hasOwnProperty;var xe=(a=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(a,{get:(t,e)=>(typeof require<"u"?require:t)[e]}):a)(function(a){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+a+'" is not supported')});var Ut=(a,t)=>()=>(a&&(t=a(a=0)),t);var rs=(a,t)=>()=>(t||a((t={exports:{}}).exports,t),t.exports),Te=(a,t)=>{for(var e in t)Rn(a,e,{get:t[e],enumerable:!0})},is=(a,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of ts(t))!ns.call(a,i)&&i!==e&&Rn(a,i,{get:()=>t[i],enumerable:!(r=zi(t,i))||r.enumerable});return a};var ss=(a,t,e)=>(e=a!=null?Zi(es(a)):{},is(t||!a||!a.__esModule?Rn(e,"default",{value:a,enumerable:!0}):e,a));var os={};var wr=Ut(()=>{(function(a){if(typeof exports=="object"&&typeof module<"u")module.exports=a();else if(typeof define=="function"&&define.amd)define([],a);else{var t;t=typeof window>"u"?typeof global>"u"?typeof self>"u"?this:self:global:window,t.SimplePeer=a()}})(function(){var a=Math.floor,t=Math.abs,e=Math.pow;return(function(){function r(i,o,c){function h(u,g){if(!o[u]){if(!i[u]){var l=typeof xe=="function"&&xe;if(!g&&l)return l(u,!0);if(E)return E(u,!0);var B=new Error("Cannot find module '"+u+"'");throw B.code="MODULE_NOT_FOUND",B}var y=o[u]={exports:{}};i[u][0].call(y.exports,function(w){var D=i[u][1][w];return h(D||w)},y,y.exports,r,i,o,c)}return o[u].exports}for(var E=typeof xe=="function"&&xe,A=0;A<c.length;A++)h(c[A]);return h}return r})()({1:[function(r,i,o){"use strict";function c(p){var C=p.length;if(0<C%4)throw new Error("Invalid string. Length must be a multiple of 4");var S=p.indexOf("=");S===-1&&(S=C);var b=S===C?0:4-S%4;return[S,b]}function h(p,C,S){return 3*(C+S)/4-S}function E(p){var C,S,b=c(p),R=b[0],v=b[1],m=new y(h(p,R,v)),_=0,U=0<v?R-4:R;for(S=0;S<U;S+=4)C=B[p.charCodeAt(S)]<<18|B[p.charCodeAt(S+1)]<<12|B[p.charCodeAt(S+2)]<<6|B[p.charCodeAt(S+3)],m[_++]=255&C>>16,m[_++]=255&C>>8,m[_++]=255&C;return v===2&&(C=B[p.charCodeAt(S)]<<2|B[p.charCodeAt(S+1)]>>4,m[_++]=255&C),v===1&&(C=B[p.charCodeAt(S)]<<10|B[p.charCodeAt(S+1)]<<4|B[p.charCodeAt(S+2)]>>2,m[_++]=255&C>>8,m[_++]=255&C),m}function A(p){return l[63&p>>18]+l[63&p>>12]+l[63&p>>6]+l[63&p]}function u(p,C,S){for(var b,R=[],v=C;v<S;v+=3)b=(16711680&p[v]<<16)+(65280&p[v+1]<<8)+(255&p[v+2]),R.push(A(b));return R.join("")}function g(p){for(var C,S=p.length,b=S%3,R=[],v=16383,m=0,_=S-b;m<_;m+=v)R.push(u(p,m,m+v>_?_:m+v));return b===1?(C=p[S-1],R.push(l[C>>2]+l[63&C<<4]+"==")):b===2&&(C=(p[S-2]<<8)+p[S-1],R.push(l[C>>10]+l[63&C>>4]+l[63&C<<2]+"=")),R.join("")}o.byteLength=function(p){var C=c(p),S=C[0],b=C[1];return 3*(S+b)/4-b},o.toByteArray=E,o.fromByteArray=g;for(var l=[],B=[],y=typeof Uint8Array>"u"?Array:Uint8Array,w="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",D=0,I=w.length;D<I;++D)l[D]=w[D],B[w.charCodeAt(D)]=D;B[45]=62,B[95]=63},{}],2:[function(){},{}],3:[function(r,i,o){(function(){(function(){"use strict";var c=String.fromCharCode,h=Math.min;function E(n){if(2147483647<n)throw new RangeError('The value "'+n+'" is invalid for option "size"');var s=new Uint8Array(n);return s.__proto__=A.prototype,s}function A(n,s,f){if(typeof n=="number"){if(typeof s=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return B(n)}return u(n,s,f)}function u(n,s,f){if(typeof n=="string")return y(n,s);if(ArrayBuffer.isView(n))return w(n);if(n==null)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof n);if(x(n,ArrayBuffer)||n&&x(n.buffer,ArrayBuffer))return D(n,s,f);if(typeof n=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var Q=n.valueOf&&n.valueOf();if(Q!=null&&Q!==n)return A.from(Q,s,f);var N=I(n);if(N)return N;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof n[Symbol.toPrimitive]=="function")return A.from(n[Symbol.toPrimitive]("string"),s,f);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof n)}function g(n){if(typeof n!="number")throw new TypeError('"size" argument must be of type number');if(0>n)throw new RangeError('The value "'+n+'" is invalid for option "size"')}function l(n,s,f){return g(n),0>=n||s===void 0?E(n):typeof f=="string"?E(n).fill(s,f):E(n).fill(s)}function B(n){return g(n),E(0>n?0:0|p(n))}function y(n,s){if((typeof s!="string"||s==="")&&(s="utf8"),!A.isEncoding(s))throw new TypeError("Unknown encoding: "+s);var f=0|C(n,s),Q=E(f),N=Q.write(n,s);return N!==f&&(Q=Q.slice(0,N)),Q}function w(n){for(var s=0>n.length?0:0|p(n.length),f=E(s),Q=0;Q<s;Q+=1)f[Q]=255&n[Q];return f}function D(n,s,f){if(0>s||n.byteLength<s)throw new RangeError('"offset" is outside of buffer bounds');if(n.byteLength<s+(f||0))throw new RangeError('"length" is outside of buffer bounds');var Q;return Q=s===void 0&&f===void 0?new Uint8Array(n):f===void 0?new Uint8Array(n,s):new Uint8Array(n,s,f),Q.__proto__=A.prototype,Q}function I(n){if(A.isBuffer(n)){var s=0|p(n.length),f=E(s);return f.length===0||n.copy(f,0,0,s),f}return n.length===void 0?n.type==="Buffer"&&Array.isArray(n.data)?w(n.data):void 0:typeof n.length!="number"||k(n.length)?E(0):w(n)}function p(n){if(n>=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x7fffffff bytes");return 0|n}function C(n,s){if(A.isBuffer(n))return n.length;if(ArrayBuffer.isView(n)||x(n,ArrayBuffer))return n.byteLength;if(typeof n!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof n);var f=n.length,Q=2<arguments.length&&arguments[2]===!0;if(!Q&&f===0)return 0;for(var N=!1;;)switch(s){case"ascii":case"latin1":case"binary":return f;case"utf8":case"utf-8":return Nt(n).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*f;case"hex":return f>>>1;case"base64":return Bt(n).length;default:if(N)return Q?-1:Nt(n).length;s=(""+s).toLowerCase(),N=!0}}function S(n,s,f){var Q=!1;if((s===void 0||0>s)&&(s=0),s>this.length||((f===void 0||f>this.length)&&(f=this.length),0>=f)||(f>>>=0,s>>>=0,f<=s))return"";for(n||(n="utf8");;)switch(n){case"hex":return at(this,s,f);case"utf8":case"utf-8":return V(this,s,f);case"ascii":return J(this,s,f);case"latin1":case"binary":return Tt(this,s,f);case"base64":return q(this,s,f);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ut(this,s,f);default:if(Q)throw new TypeError("Unknown encoding: "+n);n=(n+"").toLowerCase(),Q=!0}}function b(n,s,f){var Q=n[s];n[s]=n[f],n[f]=Q}function R(n,s,f,Q,N){if(n.length===0)return-1;if(typeof f=="string"?(Q=f,f=0):2147483647<f?f=2147483647:-2147483648>f&&(f=-2147483648),f=+f,k(f)&&(f=N?0:n.length-1),0>f&&(f=n.length+f),f>=n.length){if(N)return-1;f=n.length-1}else if(0>f)if(N)f=0;else return-1;if(typeof s=="string"&&(s=A.from(s,Q)),A.isBuffer(s))return s.length===0?-1:v(n,s,f,Q,N);if(typeof s=="number")return s&=255,typeof Uint8Array.prototype.indexOf=="function"?N?Uint8Array.prototype.indexOf.call(n,s,f):Uint8Array.prototype.lastIndexOf.call(n,s,f):v(n,[s],f,Q,N);throw new TypeError("val must be string, number or Buffer")}function v(n,s,f,Q,N){function T(Ne,Be){return L===1?Ne[Be]:Ne.readUInt16BE(Be*L)}var L=1,W=n.length,rt=s.length;if(Q!==void 0&&(Q=(Q+"").toLowerCase(),Q==="ucs2"||Q==="ucs-2"||Q==="utf16le"||Q==="utf-16le")){if(2>n.length||2>s.length)return-1;L=2,W/=2,rt/=2,f/=2}var Z;if(N){var z=-1;for(Z=f;Z<W;Z++)if(T(n,Z)!==T(s,z===-1?0:Z-z))z!==-1&&(Z-=Z-z),z=-1;else if(z===-1&&(z=Z),Z-z+1===rt)return z*L}else for(f+rt>W&&(f=W-rt),Z=f;0<=Z;Z--){for(var tt=!0,pe=0;pe<rt;pe++)if(T(n,Z+pe)!==T(s,pe)){tt=!1;break}if(tt)return Z}return-1}function m(n,s,f,Q){f=+f||0;var N=n.length-f;Q?(Q=+Q,Q>N&&(Q=N)):Q=N;var T=s.length;Q>T/2&&(Q=T/2);for(var L,W=0;W<Q;++W){if(L=parseInt(s.substr(2*W,2),16),k(L))return W;n[f+W]=L}return W}function _(n,s,f,Q){return Dt(Nt(s,n.length-f),n,f,Q)}function U(n,s,f,Q){return Dt(oe(s),n,f,Q)}function M(n,s,f,Q){return U(n,s,f,Q)}function H(n,s,f,Q){return Dt(Bt(s),n,f,Q)}function K(n,s,f,Q){return Dt(Gt(s,n.length-f),n,f,Q)}function q(n,s,f){return s===0&&f===n.length?O.fromByteArray(n):O.fromByteArray(n.slice(s,f))}function V(n,s,f){f=h(n.length,f);for(var Q=[],N=s;N<f;){var T=n[N],L=null,W=239<T?4:223<T?3:191<T?2:1;if(N+W<=f){var rt,Z,z,tt;W===1?128>T&&(L=T):W===2?(rt=n[N+1],(192&rt)==128&&(tt=(31&T)<<6|63&rt,127<tt&&(L=tt))):W===3?(rt=n[N+1],Z=n[N+2],(192&rt)==128&&(192&Z)==128&&(tt=(15&T)<<12|(63&rt)<<6|63&Z,2047<tt&&(55296>tt||57343<tt)&&(L=tt))):W===4&&(rt=n[N+1],Z=n[N+2],z=n[N+3],(192&rt)==128&&(192&Z)==128&&(192&z)==128&&(tt=(15&T)<<18|(63&rt)<<12|(63&Z)<<6|63&z,65535<tt&&1114112>tt&&(L=tt)))}L===null?(L=65533,W=1):65535<L&&(L-=65536,Q.push(55296|1023&L>>>10),L=56320|1023&L),Q.push(L),N+=W}return st(Q)}function st(n){var s=n.length;if(s<=4096)return c.apply(String,n);for(var f="",Q=0;Q<s;)f+=c.apply(String,n.slice(Q,Q+=4096));return f}function J(n,s,f){var Q="";f=h(n.length,f);for(var N=s;N<f;++N)Q+=c(127&n[N]);return Q}function Tt(n,s,f){var Q="";f=h(n.length,f);for(var N=s;N<f;++N)Q+=c(n[N]);return Q}function at(n,s,f){var Q=n.length;(!s||0>s)&&(s=0),(!f||0>f||f>Q)&&(f=Q);for(var N="",T=s;T<f;++T)N+=kt(n[T]);return N}function ut(n,s,f){for(var Q=n.slice(s,f),N="",T=0;T<Q.length;T+=2)N+=c(Q[T]+256*Q[T+1]);return N}function j(n,s,f){if(n%1!=0||0>n)throw new RangeError("offset is not uint");if(n+s>f)throw new RangeError("Trying to access beyond buffer length")}function X(n,s,f,Q,N,T){if(!A.isBuffer(n))throw new TypeError('"buffer" argument must be a Buffer instance');if(s>N||s<T)throw new RangeError('"value" argument is out of bounds');if(f+Q>n.length)throw new RangeError("Index out of range")}function pt(n,s,f,Q){if(f+Q>n.length)throw new RangeError("Index out of range");if(0>f)throw new RangeError("Index out of range")}function ot(n,s,f,Q,N){return s=+s,f>>>=0,N||pt(n,s,f,4,34028234663852886e22,-34028234663852886e22),F.write(n,s,f,Q,23,4),f+4}function Rt(n,s,f,Q,N){return s=+s,f>>>=0,N||pt(n,s,f,8,17976931348623157e292,-17976931348623157e292),F.write(n,s,f,Q,52,8),f+8}function nt(n){if(n=n.split("=")[0],n=n.trim().replace(G,""),2>n.length)return"";for(;n.length%4!=0;)n+="=";return n}function kt(n){return 16>n?"0"+n.toString(16):n.toString(16)}function Nt(n,s){s=s||1/0;for(var f,Q=n.length,N=null,T=[],L=0;L<Q;++L){if(f=n.charCodeAt(L),55295<f&&57344>f){if(!N){if(56319<f){-1<(s-=3)&&T.push(239,191,189);continue}else if(L+1===Q){-1<(s-=3)&&T.push(239,191,189);continue}N=f;continue}if(56320>f){-1<(s-=3)&&T.push(239,191,189),N=f;continue}f=(N-55296<<10|f-56320)+65536}else N&&-1<(s-=3)&&T.push(239,191,189);if(N=null,128>f){if(0>(s-=1))break;T.push(f)}else if(2048>f){if(0>(s-=2))break;T.push(192|f>>6,128|63&f)}else if(65536>f){if(0>(s-=3))break;T.push(224|f>>12,128|63&f>>6,128|63&f)}else if(1114112>f){if(0>(s-=4))break;T.push(240|f>>18,128|63&f>>12,128|63&f>>6,128|63&f)}else throw new Error("Invalid code point")}return T}function oe(n){for(var s=[],f=0;f<n.length;++f)s.push(255&n.charCodeAt(f));return s}function Gt(n,s){for(var f,Q,N,T=[],L=0;L<n.length&&!(0>(s-=2));++L)f=n.charCodeAt(L),Q=f>>8,N=f%256,T.push(N),T.push(Q);return T}function Bt(n){return O.toByteArray(nt(n))}function Dt(n,s,f,Q){for(var N=0;N<Q&&!(N+f>=s.length||N>=n.length);++N)s[N+f]=n[N];return N}function x(n,s){return n instanceof s||n!=null&&n.constructor!=null&&n.constructor.name!=null&&n.constructor.name===s.name}function k(n){return n!==n}var O=r("base64-js"),F=r("ieee754");o.Buffer=A,o.SlowBuffer=function(n){return+n!=n&&(n=0),A.alloc(+n)},o.INSPECT_MAX_BYTES=50,o.kMaxLength=2147483647,A.TYPED_ARRAY_SUPPORT=(function(){try{var n=new Uint8Array(1);return n.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},n.foo()===42}catch{return!1}})(),A.TYPED_ARRAY_SUPPORT||typeof console>"u"||typeof console.error!="function"||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(A.prototype,"parent",{enumerable:!0,get:function(){return A.isBuffer(this)?this.buffer:void 0}}),Object.defineProperty(A.prototype,"offset",{enumerable:!0,get:function(){return A.isBuffer(this)?this.byteOffset:void 0}}),typeof Symbol<"u"&&Symbol.species!=null&&A[Symbol.species]===A&&Object.defineProperty(A,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),A.poolSize=8192,A.from=function(n,s,f){return u(n,s,f)},A.prototype.__proto__=Uint8Array.prototype,A.__proto__=Uint8Array,A.alloc=function(n,s,f){return l(n,s,f)},A.allocUnsafe=function(n){return B(n)},A.allocUnsafeSlow=function(n){return B(n)},A.isBuffer=function(n){return n!=null&&n._isBuffer===!0&&n!==A.prototype},A.compare=function(n,s){if(x(n,Uint8Array)&&(n=A.from(n,n.offset,n.byteLength)),x(s,Uint8Array)&&(s=A.from(s,s.offset,s.byteLength)),!A.isBuffer(n)||!A.isBuffer(s))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(n===s)return 0;for(var f=n.length,Q=s.length,N=0,T=h(f,Q);N<T;++N)if(n[N]!==s[N]){f=n[N],Q=s[N];break}return f<Q?-1:Q<f?1:0},A.isEncoding=function(n){switch((n+"").toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},A.concat=function(n,s){if(!Array.isArray(n))throw new TypeError('"list" argument must be an Array of Buffers');if(n.length===0)return A.alloc(0);var f;if(s===void 0)for(s=0,f=0;f<n.length;++f)s+=n[f].length;var Q=A.allocUnsafe(s),N=0;for(f=0;f<n.length;++f){var T=n[f];if(x(T,Uint8Array)&&(T=A.from(T)),!A.isBuffer(T))throw new TypeError('"list" argument must be an Array of Buffers');T.copy(Q,N),N+=T.length}return Q},A.byteLength=C,A.prototype._isBuffer=!0,A.prototype.swap16=function(){var n=this.length;if(n%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var s=0;s<n;s+=2)b(this,s,s+1);return this},A.prototype.swap32=function(){var n=this.length;if(n%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var s=0;s<n;s+=4)b(this,s,s+3),b(this,s+1,s+2);return this},A.prototype.swap64=function(){var n=this.length;if(n%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var s=0;s<n;s+=8)b(this,s,s+7),b(this,s+1,s+6),b(this,s+2,s+5),b(this,s+3,s+4);return this},A.prototype.toString=function(){var n=this.length;return n===0?"":arguments.length===0?V(this,0,n):S.apply(this,arguments)},A.prototype.toLocaleString=A.prototype.toString,A.prototype.equals=function(n){if(!A.isBuffer(n))throw new TypeError("Argument must be a Buffer");return this===n||A.compare(this,n)===0},A.prototype.inspect=function(){var n="",s=o.INSPECT_MAX_BYTES;return n=this.toString("hex",0,s).replace(/(.{2})/g,"$1 ").trim(),this.length>s&&(n+=" ... "),"<Buffer "+n+">"},A.prototype.compare=function(n,s,f,Q,N){if(x(n,Uint8Array)&&(n=A.from(n,n.offset,n.byteLength)),!A.isBuffer(n))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof n);if(s===void 0&&(s=0),f===void 0&&(f=n?n.length:0),Q===void 0&&(Q=0),N===void 0&&(N=this.length),0>s||f>n.length||0>Q||N>this.length)throw new RangeError("out of range index");if(Q>=N&&s>=f)return 0;if(Q>=N)return-1;if(s>=f)return 1;if(s>>>=0,f>>>=0,Q>>>=0,N>>>=0,this===n)return 0;for(var T=N-Q,L=f-s,W=h(T,L),rt=this.slice(Q,N),Z=n.slice(s,f),z=0;z<W;++z)if(rt[z]!==Z[z]){T=rt[z],L=Z[z];break}return T<L?-1:L<T?1:0},A.prototype.includes=function(n,s,f){return this.indexOf(n,s,f)!==-1},A.prototype.indexOf=function(n,s,f){return R(this,n,s,f,!0)},A.prototype.lastIndexOf=function(n,s,f){return R(this,n,s,f,!1)},A.prototype.write=function(n,s,f,Q){if(s===void 0)Q="utf8",f=this.length,s=0;else if(f===void 0&&typeof s=="string")Q=s,f=this.length,s=0;else if(isFinite(s))s>>>=0,isFinite(f)?(f>>>=0,Q===void 0&&(Q="utf8")):(Q=f,f=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var N=this.length-s;if((f===void 0||f>N)&&(f=N),0<n.length&&(0>f||0>s)||s>this.length)throw new RangeError("Attempt to write outside buffer bounds");Q||(Q="utf8");for(var T=!1;;)switch(Q){case"hex":return m(this,n,s,f);case"utf8":case"utf-8":return _(this,n,s,f);case"ascii":return U(this,n,s,f);case"latin1":case"binary":return M(this,n,s,f);case"base64":return H(this,n,s,f);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return K(this,n,s,f);default:if(T)throw new TypeError("Unknown encoding: "+Q);Q=(""+Q).toLowerCase(),T=!0}},A.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},A.prototype.slice=function(n,s){var f=this.length;n=~~n,s=s===void 0?f:~~s,0>n?(n+=f,0>n&&(n=0)):n>f&&(n=f),0>s?(s+=f,0>s&&(s=0)):s>f&&(s=f),s<n&&(s=n);var Q=this.subarray(n,s);return Q.__proto__=A.prototype,Q},A.prototype.readUIntLE=function(n,s,f){n>>>=0,s>>>=0,f||j(n,s,this.length);for(var Q=this[n],N=1,T=0;++T<s&&(N*=256);)Q+=this[n+T]*N;return Q},A.prototype.readUIntBE=function(n,s,f){n>>>=0,s>>>=0,f||j(n,s,this.length);for(var Q=this[n+--s],N=1;0<s&&(N*=256);)Q+=this[n+--s]*N;return Q},A.prototype.readUInt8=function(n,s){return n>>>=0,s||j(n,1,this.length),this[n]},A.prototype.readUInt16LE=function(n,s){return n>>>=0,s||j(n,2,this.length),this[n]|this[n+1]<<8},A.prototype.readUInt16BE=function(n,s){return n>>>=0,s||j(n,2,this.length),this[n]<<8|this[n+1]},A.prototype.readUInt32LE=function(n,s){return n>>>=0,s||j(n,4,this.length),(this[n]|this[n+1]<<8|this[n+2]<<16)+16777216*this[n+3]},A.prototype.readUInt32BE=function(n,s){return n>>>=0,s||j(n,4,this.length),16777216*this[n]+(this[n+1]<<16|this[n+2]<<8|this[n+3])},A.prototype.readIntLE=function(n,s,f){n>>>=0,s>>>=0,f||j(n,s,this.length);for(var Q=this[n],N=1,T=0;++T<s&&(N*=256);)Q+=this[n+T]*N;return N*=128,Q>=N&&(Q-=e(2,8*s)),Q},A.prototype.readIntBE=function(n,s,f){n>>>=0,s>>>=0,f||j(n,s,this.length);for(var Q=s,N=1,T=this[n+--Q];0<Q&&(N*=256);)T+=this[n+--Q]*N;return N*=128,T>=N&&(T-=e(2,8*s)),T},A.prototype.readInt8=function(n,s){return n>>>=0,s||j(n,1,this.length),128&this[n]?-1*(255-this[n]+1):this[n]},A.prototype.readInt16LE=function(n,s){n>>>=0,s||j(n,2,this.length);var f=this[n]|this[n+1]<<8;return 32768&f?4294901760|f:f},A.prototype.readInt16BE=function(n,s){n>>>=0,s||j(n,2,this.length);var f=this[n+1]|this[n]<<8;return 32768&f?4294901760|f:f},A.prototype.readInt32LE=function(n,s){return n>>>=0,s||j(n,4,this.length),this[n]|this[n+1]<<8|this[n+2]<<16|this[n+3]<<24},A.prototype.readInt32BE=function(n,s){return n>>>=0,s||j(n,4,this.length),this[n]<<24|this[n+1]<<16|this[n+2]<<8|this[n+3]},A.prototype.readFloatLE=function(n,s){return n>>>=0,s||j(n,4,this.length),F.read(this,n,!0,23,4)},A.prototype.readFloatBE=function(n,s){return n>>>=0,s||j(n,4,this.length),F.read(this,n,!1,23,4)},A.prototype.readDoubleLE=function(n,s){return n>>>=0,s||j(n,8,this.length),F.read(this,n,!0,52,8)},A.prototype.readDoubleBE=function(n,s){return n>>>=0,s||j(n,8,this.length),F.read(this,n,!1,52,8)},A.prototype.writeUIntLE=function(n,s,f,Q){if(n=+n,s>>>=0,f>>>=0,!Q){var N=e(2,8*f)-1;X(this,n,s,f,N,0)}var T=1,L=0;for(this[s]=255&n;++L<f&&(T*=256);)this[s+L]=255&n/T;return s+f},A.prototype.writeUIntBE=function(n,s,f,Q){if(n=+n,s>>>=0,f>>>=0,!Q){var N=e(2,8*f)-1;X(this,n,s,f,N,0)}var T=f-1,L=1;for(this[s+T]=255&n;0<=--T&&(L*=256);)this[s+T]=255&n/L;return s+f},A.prototype.writeUInt8=function(n,s,f){return n=+n,s>>>=0,f||X(this,n,s,1,255,0),this[s]=255&n,s+1},A.prototype.writeUInt16LE=function(n,s,f){return n=+n,s>>>=0,f||X(this,n,s,2,65535,0),this[s]=255&n,this[s+1]=n>>>8,s+2},A.prototype.writeUInt16BE=function(n,s,f){return n=+n,s>>>=0,f||X(this,n,s,2,65535,0),this[s]=n>>>8,this[s+1]=255&n,s+2},A.prototype.writeUInt32LE=function(n,s,f){return n=+n,s>>>=0,f||X(this,n,s,4,4294967295,0),this[s+3]=n>>>24,this[s+2]=n>>>16,this[s+1]=n>>>8,this[s]=255&n,s+4},A.prototype.writeUInt32BE=function(n,s,f){return n=+n,s>>>=0,f||X(this,n,s,4,4294967295,0),this[s]=n>>>24,this[s+1]=n>>>16,this[s+2]=n>>>8,this[s+3]=255&n,s+4},A.prototype.writeIntLE=function(n,s,f,Q){if(n=+n,s>>>=0,!Q){var N=e(2,8*f-1);X(this,n,s,f,N-1,-N)}var T=0,L=1,W=0;for(this[s]=255&n;++T<f&&(L*=256);)0>n&&W===0&&this[s+T-1]!==0&&(W=1),this[s+T]=255&(n/L>>0)-W;return s+f},A.prototype.writeIntBE=function(n,s,f,Q){if(n=+n,s>>>=0,!Q){var N=e(2,8*f-1);X(this,n,s,f,N-1,-N)}var T=f-1,L=1,W=0;for(this[s+T]=255&n;0<=--T&&(L*=256);)0>n&&W===0&&this[s+T+1]!==0&&(W=1),this[s+T]=255&(n/L>>0)-W;return s+f},A.prototype.writeInt8=function(n,s,f){return n=+n,s>>>=0,f||X(this,n,s,1,127,-128),0>n&&(n=255+n+1),this[s]=255&n,s+1},A.prototype.writeInt16LE=function(n,s,f){return n=+n,s>>>=0,f||X(this,n,s,2,32767,-32768),this[s]=255&n,this[s+1]=n>>>8,s+2},A.prototype.writeInt16BE=function(n,s,f){return n=+n,s>>>=0,f||X(this,n,s,2,32767,-32768),this[s]=n>>>8,this[s+1]=255&n,s+2},A.prototype.writeInt32LE=function(n,s,f){return n=+n,s>>>=0,f||X(this,n,s,4,2147483647,-2147483648),this[s]=255&n,this[s+1]=n>>>8,this[s+2]=n>>>16,this[s+3]=n>>>24,s+4},A.prototype.writeInt32BE=function(n,s,f){return n=+n,s>>>=0,f||X(this,n,s,4,2147483647,-2147483648),0>n&&(n=4294967295+n+1),this[s]=n>>>24,this[s+1]=n>>>16,this[s+2]=n>>>8,this[s+3]=255&n,s+4},A.prototype.writeFloatLE=function(n,s,f){return ot(this,n,s,!0,f)},A.prototype.writeFloatBE=function(n,s,f){return ot(this,n,s,!1,f)},A.prototype.writeDoubleLE=function(n,s,f){return Rt(this,n,s,!0,f)},A.prototype.writeDoubleBE=function(n,s,f){return Rt(this,n,s,!1,f)},A.prototype.copy=function(n,s,f,Q){if(!A.isBuffer(n))throw new TypeError("argument should be a Buffer");if(f||(f=0),Q||Q===0||(Q=this.length),s>=n.length&&(s=n.length),s||(s=0),0<Q&&Q<f&&(Q=f),Q===f||n.length===0||this.length===0)return 0;if(0>s)throw new RangeError("targetStart out of bounds");if(0>f||f>=this.length)throw new RangeError("Index out of range");if(0>Q)throw new RangeError("sourceEnd out of bounds");Q>this.length&&(Q=this.length),n.length-s<Q-f&&(Q=n.length-s+f);var N=Q-f;if(this===n&&typeof Uint8Array.prototype.copyWithin=="function")this.copyWithin(s,f,Q);else if(this===n&&f<s&&s<Q)for(var T=N-1;0<=T;--T)n[T+s]=this[T+f];else Uint8Array.prototype.set.call(n,this.subarray(f,Q),s);return N},A.prototype.fill=function(n,s,f,Q){if(typeof n=="string"){if(typeof s=="string"?(Q=s,s=0,f=this.length):typeof f=="string"&&(Q=f,f=this.length),Q!==void 0&&typeof Q!="string")throw new TypeError("encoding must be a string");if(typeof Q=="string"&&!A.isEncoding(Q))throw new TypeError("Unknown encoding: "+Q);if(n.length===1){var N=n.charCodeAt(0);(Q==="utf8"&&128>N||Q==="latin1")&&(n=N)}}else typeof n=="number"&&(n&=255);if(0>s||this.length<s||this.length<f)throw new RangeError("Out of range index");if(f<=s)return this;s>>>=0,f=f===void 0?this.length:f>>>0,n||(n=0);var T;if(typeof n=="number")for(T=s;T<f;++T)this[T]=n;else{var L=A.isBuffer(n)?n:A.from(n,Q),W=L.length;if(W===0)throw new TypeError('The value "'+n+'" is invalid for argument "value"');for(T=0;T<f-s;++T)this[T+s]=L[T%W]}return this};var G=/[^+/0-9A-Za-z-_]/g}).call(this)}).call(this,r("buffer").Buffer)},{"base64-js":1,buffer:3,ieee754:9}],4:[function(r,i,o){(function(c){(function(){function h(){let A;try{A=o.storage.getItem("debug")}catch{}return!A&&typeof c<"u"&&"env"in c&&(A=c.env.DEBUG),A}o.formatArgs=function(A){if(A[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+A[0]+(this.useColors?"%c ":" ")+"+"+i.exports.humanize(this.diff),!this.useColors)return;let u="color: "+this.color;A.splice(1,0,u,"color: inherit");let g=0,l=0;A[0].replace(/%[a-zA-Z%]/g,B=>{B==="%%"||(g++,B==="%c"&&(l=g))}),A.splice(l,0,u)},o.save=function(A){try{A?o.storage.setItem("debug",A):o.storage.removeItem("debug")}catch{}},o.load=h,o.useColors=function(){return!!(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))||!(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&(typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&31<=parseInt(RegExp.$1,10)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},o.storage=(function(){try{return localStorage}catch{}})(),o.destroy=(()=>{let A=!1;return()=>{A||(A=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),o.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],o.log=console.debug||console.log||(()=>{}),i.exports=r("./common")(o);let{formatters:E}=i.exports;E.j=function(A){try{return JSON.stringify(A)}catch(u){return"[UnexpectedJSONParseError]: "+u.message}}}).call(this)}).call(this,r("_process"))},{"./common":5,_process:12}],5:[function(r,i){i.exports=function(o){function c(A){function u(...B){if(!u.enabled)return;let y=u,w=+new Date,D=w-(g||w);y.diff=D,y.prev=g,y.curr=w,g=w,B[0]=c.coerce(B[0]),typeof B[0]!="string"&&B.unshift("%O");let I=0;B[0]=B[0].replace(/%([a-zA-Z%])/g,(C,S)=>{if(C==="%%")return"%";I++;let b=c.formatters[S];if(typeof b=="function"){let R=B[I];C=b.call(y,R),B.splice(I,1),I--}return C}),c.formatArgs.call(y,B),(y.log||c.log).apply(y,B)}let g,l=null;return u.namespace=A,u.useColors=c.useColors(),u.color=c.selectColor(A),u.extend=h,u.destroy=c.destroy,Object.defineProperty(u,"enabled",{enumerable:!0,configurable:!1,get:()=>l===null?c.enabled(A):l,set:B=>{l=B}}),typeof c.init=="function"&&c.init(u),u}function h(A,u){let g=c(this.namespace+(typeof u>"u"?":":u)+A);return g.log=this.log,g}function E(A){return A.toString().substring(2,A.toString().length-2).replace(/\.\*\?$/,"*")}return c.debug=c,c.default=c,c.coerce=function(A){return A instanceof Error?A.stack||A.message:A},c.disable=function(){let A=[...c.names.map(E),...c.skips.map(E).map(u=>"-"+u)].join(",");return c.enable(""),A},c.enable=function(A){c.save(A),c.names=[],c.skips=[];let u,g=(typeof A=="string"?A:"").split(/[\s,]+/),l=g.length;for(u=0;u<l;u++)g[u]&&(A=g[u].replace(/\*/g,".*?"),A[0]==="-"?c.skips.push(new RegExp("^"+A.substr(1)+"$")):c.names.push(new RegExp("^"+A+"$")))},c.enabled=function(A){if(A[A.length-1]==="*")return!0;let u,g;for(u=0,g=c.skips.length;u<g;u++)if(c.skips[u].test(A))return!1;for(u=0,g=c.names.length;u<g;u++)if(c.names[u].test(A))return!0;return!1},c.humanize=r("ms"),c.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(o).forEach(A=>{c[A]=o[A]}),c.names=[],c.skips=[],c.formatters={},c.selectColor=function(A){let u=0;for(let g=0;g<A.length;g++)u=(u<<5)-u+A.charCodeAt(g),u|=0;return c.colors[t(u)%c.colors.length]},c.enable(c.load()),c}},{ms:11}],6:[function(r,i){"use strict";function o(c,h){for(let E in h)Object.defineProperty(c,E,{value:h[E],enumerable:!0,configurable:!0});return c}i.exports=function(c,h,E){if(!c||typeof c=="string")throw new TypeError("Please pass an Error to err-code");E||(E={}),typeof h=="object"&&(E=h,h=""),h&&(E.code=h);try{return o(c,E)}catch{E.message=c.message,E.stack=c.stack;let u=function(){};return u.prototype=Object.create(Object.getPrototypeOf(c)),o(new u,E)}}},{}],7:[function(r,i){"use strict";function o(m){console&&console.warn&&console.warn(m)}function c(){c.init.call(this)}function h(m){if(typeof m!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof m)}function E(m){return m._maxListeners===void 0?c.defaultMaxListeners:m._maxListeners}function A(m,_,U,M){var H,K,q;if(h(U),K=m._events,K===void 0?(K=m._events=Object.create(null),m._eventsCount=0):(K.newListener!==void 0&&(m.emit("newListener",_,U.listener?U.listener:U),K=m._events),q=K[_]),q===void 0)q=K[_]=U,++m._eventsCount;else if(typeof q=="function"?q=K[_]=M?[U,q]:[q,U]:M?q.unshift(U):q.push(U),H=E(m),0<H&&q.length>H&&!q.warned){q.warned=!0;var V=new Error("Possible EventEmitter memory leak detected. "+q.length+" "+(_+" listeners added. Use emitter.setMaxListeners() to increase limit"));V.name="MaxListenersExceededWarning",V.emitter=m,V.type=_,V.count=q.length,o(V)}return m}function u(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function g(m,_,U){var M={fired:!1,wrapFn:void 0,target:m,type:_,listener:U},H=u.bind(M);return H.listener=U,M.wrapFn=H,H}function l(m,_,U){var M=m._events;if(M===void 0)return[];var H=M[_];return H===void 0?[]:typeof H=="function"?U?[H.listener||H]:[H]:U?D(H):y(H,H.length)}function B(m){var _=this._events;if(_!==void 0){var U=_[m];if(typeof U=="function")return 1;if(U!==void 0)return U.length}return 0}function y(m,_){for(var U=Array(_),M=0;M<_;++M)U[M]=m[M];return U}function w(m,_){for(;_+1<m.length;_++)m[_]=m[_+1];m.pop()}function D(m){for(var _=Array(m.length),U=0;U<_.length;++U)_[U]=m[U].listener||m[U];return _}function I(m,_,U){typeof m.on=="function"&&p(m,"error",_,U)}function p(m,_,U,M){if(typeof m.on=="function")M.once?m.once(_,U):m.on(_,U);else if(typeof m.addEventListener=="function")m.addEventListener(_,function H(K){M.once&&m.removeEventListener(_,H),U(K)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof m)}var C,S=typeof Reflect=="object"?Reflect:null,b=S&&typeof S.apply=="function"?S.apply:function(m,_,U){return Function.prototype.apply.call(m,_,U)};C=S&&typeof S.ownKeys=="function"?S.ownKeys:Object.getOwnPropertySymbols?function(m){return Object.getOwnPropertyNames(m).concat(Object.getOwnPropertySymbols(m))}:function(m){return Object.getOwnPropertyNames(m)};var R=Number.isNaN||function(m){return m!==m};i.exports=c,i.exports.once=function(m,_){return new Promise(function(U,M){function H(q){m.removeListener(_,K),M(q)}function K(){typeof m.removeListener=="function"&&m.removeListener("error",H),U([].slice.call(arguments))}p(m,_,K,{once:!0}),_!=="error"&&I(m,H,{once:!0})})},c.EventEmitter=c,c.prototype._events=void 0,c.prototype._eventsCount=0,c.prototype._maxListeners=void 0;var v=10;Object.defineProperty(c,"defaultMaxListeners",{enumerable:!0,get:function(){return v},set:function(m){if(typeof m!="number"||0>m||R(m))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+m+".");v=m}}),c.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},c.prototype.setMaxListeners=function(m){if(typeof m!="number"||0>m||R(m))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+m+".");return this._maxListeners=m,this},c.prototype.getMaxListeners=function(){return E(this)},c.prototype.emit=function(m){for(var _=[],U=1;U<arguments.length;U++)_.push(arguments[U]);var M=m==="error",H=this._events;if(H!==void 0)M=M&&H.error===void 0;else if(!M)return!1;if(M){var K;if(0<_.length&&(K=_[0]),K instanceof Error)throw K;var q=new Error("Unhandled error."+(K?" ("+K.message+")":""));throw q.context=K,q}var V=H[m];if(V===void 0)return!1;if(typeof V=="function")b(V,this,_);else for(var st=V.length,J=y(V,st),U=0;U<st;++U)b(J[U],this,_);return!0},c.prototype.addListener=function(m,_){return A(this,m,_,!1)},c.prototype.on=c.prototype.addListener,c.prototype.prependListener=function(m,_){return A(this,m,_,!0)},c.prototype.once=function(m,_){return h(_),this.on(m,g(this,m,_)),this},c.prototype.prependOnceListener=function(m,_){return h(_),this.prependListener(m,g(this,m,_)),this},c.prototype.removeListener=function(m,_){var U,M,H,K,q;if(h(_),M=this._events,M===void 0)return this;if(U=M[m],U===void 0)return this;if(U===_||U.listener===_)--this._eventsCount==0?this._events=Object.create(null):(delete M[m],M.removeListener&&this.emit("removeListener",m,U.listener||_));else if(typeof U!="function"){for(H=-1,K=U.length-1;0<=K;K--)if(U[K]===_||U[K].listener===_){q=U[K].listener,H=K;break}if(0>H)return this;H===0?U.shift():w(U,H),U.length===1&&(M[m]=U[0]),M.removeListener!==void 0&&this.emit("removeListener",m,q||_)}return this},c.prototype.off=c.prototype.removeListener,c.prototype.removeAllListeners=function(m){var _,U,M;if(U=this._events,U===void 0)return this;if(U.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):U[m]!==void 0&&(--this._eventsCount==0?this._events=Object.create(null):delete U[m]),this;if(arguments.length===0){var H,K=Object.keys(U);for(M=0;M<K.length;++M)H=K[M],H!=="removeListener"&&this.removeAllListeners(H);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(_=U[m],typeof _=="function")this.removeListener(m,_);else if(_!==void 0)for(M=_.length-1;0<=M;M--)this.removeListener(m,_[M]);return this},c.prototype.listeners=function(m){return l(this,m,!0)},c.prototype.rawListeners=function(m){return l(this,m,!1)},c.listenerCount=function(m,_){return typeof m.listenerCount=="function"?m.listenerCount(_):B.call(m,_)},c.prototype.listenerCount=B,c.prototype.eventNames=function(){return 0<this._eventsCount?C(this._events):[]}},{}],8:[function(r,i){i.exports=function(){if(typeof globalThis>"u")return null;var o={RTCPeerConnection:globalThis.RTCPeerConnection||globalThis.mozRTCPeerConnection||globalThis.webkitRTCPeerConnection,RTCSessionDescription:globalThis.RTCSessionDescription||globalThis.mozRTCSessionDescription||globalThis.webkitRTCSessionDescription,RTCIceCandidate:globalThis.RTCIceCandidate||globalThis.mozRTCIceCandidate||globalThis.webkitRTCIceCandidate};return o.RTCPeerConnection?o:null}},{}],9:[function(r,i,o){o.read=function(c,h,E,A,u){var g,l,B=8*u-A-1,y=(1<<B)-1,w=y>>1,D=-7,I=E?u-1:0,p=E?-1:1,C=c[h+I];for(I+=p,g=C&(1<<-D)-1,C>>=-D,D+=B;0<D;g=256*g+c[h+I],I+=p,D-=8);for(l=g&(1<<-D)-1,g>>=-D,D+=A;0<D;l=256*l+c[h+I],I+=p,D-=8);if(g===0)g=1-w;else{if(g===y)return l?NaN:(C?-1:1)*(1/0);l+=e(2,A),g-=w}return(C?-1:1)*l*e(2,g-A)},o.write=function(c,h,E,A,u,g){var l,B,y,w=Math.LN2,D=Math.log,I=8*g-u-1,p=(1<<I)-1,C=p>>1,S=u===23?e(2,-24)-e(2,-77):0,b=A?0:g-1,R=A?1:-1,v=0>h||h===0&&0>1/h?1:0;for(h=t(h),isNaN(h)||h===1/0?(B=isNaN(h)?1:0,l=p):(l=a(D(h)/w),1>h*(y=e(2,-l))&&(l--,y*=2),h+=1<=l+C?S/y:S*e(2,1-C),2<=h*y&&(l++,y/=2),l+C>=p?(B=0,l=p):1<=l+C?(B=(h*y-1)*e(2,u),l+=C):(B=h*e(2,C-1)*e(2,u),l=0));8<=u;c[E+b]=255&B,b+=R,B/=256,u-=8);for(l=l<<u|B,I+=u;0<I;c[E+b]=255&l,b+=R,l/=256,I-=8);c[E+b-R]|=128*v}},{}],10:[function(r,i){i.exports=typeof Object.create=="function"?function(o,c){c&&(o.super_=c,o.prototype=Object.create(c.prototype,{constructor:{value:o,enumerable:!1,writable:!0,configurable:!0}}))}:function(o,c){if(c){o.super_=c;var h=function(){};h.prototype=c.prototype,o.prototype=new h,o.prototype.constructor=o}}},{}],11:[function(r,i){var o=Math.round;function c(g){if(g+="",!(100<g.length)){var l=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(g);if(l){var B=parseFloat(l[1]),y=(l[2]||"ms").toLowerCase();return y==="years"||y==="year"||y==="yrs"||y==="yr"||y==="y"?315576e5*B:y==="weeks"||y==="week"||y==="w"?6048e5*B:y==="days"||y==="day"||y==="d"?864e5*B:y==="hours"||y==="hour"||y==="hrs"||y==="hr"||y==="h"?36e5*B:y==="minutes"||y==="minute"||y==="mins"||y==="min"||y==="m"?6e4*B:y==="seconds"||y==="second"||y==="secs"||y==="sec"||y==="s"?1e3*B:y==="milliseconds"||y==="millisecond"||y==="msecs"||y==="msec"||y==="ms"?B:void 0}}}function h(g){var l=t(g);return 864e5<=l?o(g/864e5)+"d":36e5<=l?o(g/36e5)+"h":6e4<=l?o(g/6e4)+"m":1e3<=l?o(g/1e3)+"s":g+"ms"}function E(g){var l=t(g);return 864e5<=l?A(g,l,864e5,"day"):36e5<=l?A(g,l,36e5,"hour"):6e4<=l?A(g,l,6e4,"minute"):1e3<=l?A(g,l,1e3,"second"):g+" ms"}function A(g,l,B,y){return o(g/B)+" "+y+(l>=1.5*B?"s":"")}var u=24*(60*6e4);i.exports=function(g,l){l=l||{};var B=typeof g;if(B=="string"&&0<g.length)return c(g);if(B==="number"&&isFinite(g))return l.long?E(g):h(g);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(g))}},{}],12:[function(r,i){function o(){throw new Error("setTimeout has not been defined")}function c(){throw new Error("clearTimeout has not been defined")}function h(S){if(B===setTimeout)return setTimeout(S,0);if((B===o||!B)&&setTimeout)return B=setTimeout,setTimeout(S,0);try{return B(S,0)}catch{try{return B.call(null,S,0)}catch{return B.call(this,S,0)}}}function E(S){if(y===clearTimeout)return clearTimeout(S);if((y===c||!y)&&clearTimeout)return y=clearTimeout,clearTimeout(S);try{return y(S)}catch{try{return y.call(null,S)}catch{return y.call(this,S)}}}function A(){p&&D&&(p=!1,D.length?I=D.concat(I):C=-1,I.length&&u())}function u(){if(!p){var S=h(A);p=!0;for(var b=I.length;b;){for(D=I,I=[];++C<b;)D&&D[C].run();C=-1,b=I.length}D=null,p=!1,E(S)}}function g(S,b){this.fun=S,this.array=b}function l(){}var B,y,w=i.exports={};(function(){try{B=typeof setTimeout=="function"?setTimeout:o}catch{B=o}try{y=typeof clearTimeout=="function"?clearTimeout:c}catch{y=c}})();var D,I=[],p=!1,C=-1;w.nextTick=function(S){var b=Array(arguments.length-1);if(1<arguments.length)for(var R=1;R<arguments.length;R++)b[R-1]=arguments[R];I.push(new g(S,b)),I.length!==1||p||h(u)},g.prototype.run=function(){this.fun.apply(null,this.array)},w.title="browser",w.browser=!0,w.env={},w.argv=[],w.version="",w.versions={},w.on=l,w.addListener=l,w.once=l,w.off=l,w.removeListener=l,w.removeAllListeners=l,w.emit=l,w.prependListener=l,w.prependOnceListener=l,w.listeners=function(){return[]},w.binding=function(){throw new Error("process.binding is not supported")},w.cwd=function(){return"/"},w.chdir=function(){throw new Error("process.chdir is not supported")},w.umask=function(){return 0}},{}],13:[function(r,i){(function(o){(function(){let c;i.exports=typeof queueMicrotask=="function"?queueMicrotask.bind(typeof window>"u"?o:window):h=>(c||(c=Promise.resolve())).then(h).catch(E=>setTimeout(()=>{throw E},0))}).call(this)}).call(this,typeof global>"u"?typeof self>"u"?typeof window>"u"?{}:window:self:global)},{}],14:[function(r,i){(function(o,c){(function(){"use strict";var h=r("safe-buffer").Buffer,E=c.crypto||c.msCrypto;i.exports=E&&E.getRandomValues?function(A,u){if(A>4294967295)throw new RangeError("requested too many random bytes");var g=h.allocUnsafe(A);if(0<A)if(65536<A)for(var l=0;l<A;l+=65536)E.getRandomValues(g.slice(l,l+65536));else E.getRandomValues(g);return typeof u=="function"?o.nextTick(function(){u(null,g)}):g}:function(){throw new Error(`Secure random number generation is not supported by this browser.
2
- Use Chrome, Firefox or Internet Explorer 11`)}}).call(this)}).call(this,r("_process"),typeof global>"u"?typeof self>"u"?typeof window>"u"?{}:window:self:global)},{_process:12,"safe-buffer":30}],15:[function(r,i){"use strict";function o(l,B){l.prototype=Object.create(B.prototype),l.prototype.constructor=l,l.__proto__=B}function c(l,B,y){function w(I,p,C){return typeof B=="string"?B:B(I,p,C)}y||(y=Error);var D=(function(I){function p(C,S,b){return I.call(this,w(C,S,b))||this}return o(p,I),p})(y);D.prototype.name=y.name,D.prototype.code=l,g[l]=D}function h(l,B){if(Array.isArray(l)){var y=l.length;return l=l.map(function(w){return w+""}),2<y?"one of ".concat(B," ").concat(l.slice(0,y-1).join(", "),", or ")+l[y-1]:y===2?"one of ".concat(B," ").concat(l[0]," or ").concat(l[1]):"of ".concat(B," ").concat(l[0])}return"of ".concat(B," ").concat(l+"")}function E(l,B,y){return l.substr(!y||0>y?0:+y,B.length)===B}function A(l,B,y){return(y===void 0||y>l.length)&&(y=l.length),l.substring(y-B.length,y)===B}function u(l,B,y){return typeof y!="number"&&(y=0),!(y+B.length>l.length)&&l.indexOf(B,y)!==-1}var g={};c("ERR_INVALID_OPT_VALUE",function(l,B){return'The value "'+B+'" is invalid for option "'+l+'"'},TypeError),c("ERR_INVALID_ARG_TYPE",function(l,B,y){var w;typeof B=="string"&&E(B,"not ")?(w="must not be",B=B.replace(/^not /,"")):w="must be";var D;if(A(l," argument"))D="The ".concat(l," ").concat(w," ").concat(h(B,"type"));else{var I=u(l,".")?"property":"argument";D='The "'.concat(l,'" ').concat(I," ").concat(w," ").concat(h(B,"type"))}return D+=". Received type ".concat(typeof y),D},TypeError),c("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),c("ERR_METHOD_NOT_IMPLEMENTED",function(l){return"The "+l+" method is not implemented"}),c("ERR_STREAM_PREMATURE_CLOSE","Premature close"),c("ERR_STREAM_DESTROYED",function(l){return"Cannot call "+l+" after a stream was destroyed"}),c("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),c("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),c("ERR_STREAM_WRITE_AFTER_END","write after end"),c("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),c("ERR_UNKNOWN_ENCODING",function(l){return"Unknown encoding: "+l},TypeError),c("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),i.exports.codes=g},{}],16:[function(r,i){(function(o){(function(){"use strict";function c(w){return this instanceof c?(u.call(this,w),g.call(this,w),this.allowHalfOpen=!0,void(w&&(w.readable===!1&&(this.readable=!1),w.writable===!1&&(this.writable=!1),w.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",h))))):new c(w)}function h(){this._writableState.ended||o.nextTick(E,this)}function E(w){w.end()}var A=Object.keys||function(w){var D=[];for(var I in w)D.push(I);return D};i.exports=c;var u=r("./_stream_readable"),g=r("./_stream_writable");r("inherits")(c,u);for(var l,B=A(g.prototype),y=0;y<B.length;y++)l=B[y],c.prototype[l]||(c.prototype[l]=g.prototype[l]);Object.defineProperty(c.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(c.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(c.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(c.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState!==void 0&&this._writableState!==void 0&&this._readableState.destroyed&&this._writableState.destroyed},set:function(w){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=w,this._writableState.destroyed=w)}})}).call(this)}).call(this,r("_process"))},{"./_stream_readable":18,"./_stream_writable":20,_process:12,inherits:10}],17:[function(r,i){"use strict";function o(h){return this instanceof o?void c.call(this,h):new o(h)}i.exports=o;var c=r("./_stream_transform");r("inherits")(o,c),o.prototype._transform=function(h,E,A){A(null,h)}},{"./_stream_transform":19,inherits:10}],18:[function(r,i){(function(o,c){(function(){"use strict";function h(n){return j.from(n)}function E(n){return j.isBuffer(n)||n instanceof X}function A(n,s,f){return typeof n.prependListener=="function"?n.prependListener(s,f):void(n._events&&n._events[s]?Array.isArray(n._events[s])?n._events[s].unshift(f):n._events[s]=[f,n._events[s]]:n.on(s,f))}function u(n,s,f){st=st||r("./_stream_duplex"),n=n||{},typeof f!="boolean"&&(f=s instanceof st),this.objectMode=!!n.objectMode,f&&(this.objectMode=this.objectMode||!!n.readableObjectMode),this.highWaterMark=Gt(this,n,"readableHighWaterMark",f),this.buffer=new kt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=n.emitClose!==!1,this.autoDestroy=!!n.autoDestroy,this.destroyed=!1,this.defaultEncoding=n.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,n.encoding&&(!ot&&(ot=r("string_decoder/").StringDecoder),this.decoder=new ot(n.encoding),this.encoding=n.encoding)}function g(n){if(st=st||r("./_stream_duplex"),!(this instanceof g))return new g(n);var s=this instanceof st;this._readableState=new u(n,this,s),this.readable=!0,n&&(typeof n.read=="function"&&(this._read=n.read),typeof n.destroy=="function"&&(this._destroy=n.destroy)),ut.call(this)}function l(n,s,f,Q,N){J("readableAddChunk",s);var T=n._readableState;if(s===null)T.reading=!1,I(n,T);else{var L;if(N||(L=y(T,s)),L)F(n,L);else if(!(T.objectMode||s&&0<s.length))Q||(T.reading=!1,S(n,T));else if(typeof s=="string"||T.objectMode||Object.getPrototypeOf(s)===j.prototype||(s=h(s)),Q)T.endEmitted?F(n,new O):B(n,T,s,!0);else if(T.ended)F(n,new x);else{if(T.destroyed)return!1;T.reading=!1,T.decoder&&!f?(s=T.decoder.write(s),T.objectMode||s.length!==0?B(n,T,s,!1):S(n,T)):B(n,T,s,!1)}}return!T.ended&&(T.length<T.highWaterMark||T.length===0)}function B(n,s,f,Q){s.flowing&&s.length===0&&!s.sync?(s.awaitDrain=0,n.emit("data",f)):(s.length+=s.objectMode?1:f.length,Q?s.buffer.unshift(f):s.buffer.push(f),s.needReadable&&p(n)),S(n,s)}function y(n,s){var f;return E(s)||typeof s=="string"||s===void 0||n.objectMode||(f=new Dt("chunk",["string","Buffer","Uint8Array"],s)),f}function w(n){return 1073741824<=n?n=1073741824:(n--,n|=n>>>1,n|=n>>>2,n|=n>>>4,n|=n>>>8,n|=n>>>16,n++),n}function D(n,s){return 0>=n||s.length===0&&s.ended?0:s.objectMode?1:n===n?(n>s.highWaterMark&&(s.highWaterMark=w(n)),n<=s.length?n:s.ended?s.length:(s.needReadable=!0,0)):s.flowing&&s.length?s.buffer.head.data.length:s.length}function I(n,s){if(J("onEofChunk"),!s.ended){if(s.decoder){var f=s.decoder.end();f&&f.length&&(s.buffer.push(f),s.length+=s.objectMode?1:f.length)}s.ended=!0,s.sync?p(n):(s.needReadable=!1,!s.emittedReadable&&(s.emittedReadable=!0,C(n)))}}function p(n){var s=n._readableState;J("emitReadable",s.needReadable,s.emittedReadable),s.needReadable=!1,s.emittedReadable||(J("emitReadable",s.flowing),s.emittedReadable=!0,o.nextTick(C,n))}function C(n){var s=n._readableState;J("emitReadable_",s.destroyed,s.length,s.ended),!s.destroyed&&(s.length||s.ended)&&(n.emit("readable"),s.emittedReadable=!1),s.needReadable=!s.flowing&&!s.ended&&s.length<=s.highWaterMark,M(n)}function S(n,s){s.readingMore||(s.readingMore=!0,o.nextTick(b,n,s))}function b(n,s){for(;!s.reading&&!s.ended&&(s.length<s.highWaterMark||s.flowing&&s.length===0);){var f=s.length;if(J("maybeReadMore read 0"),n.read(0),f===s.length)break}s.readingMore=!1}function R(n){return function(){var s=n._readableState;J("pipeOnDrain",s.awaitDrain),s.awaitDrain&&s.awaitDrain--,s.awaitDrain===0&&at(n,"data")&&(s.flowing=!0,M(n))}}function v(n){var s=n._readableState;s.readableListening=0<n.listenerCount("readable"),s.resumeScheduled&&!s.paused?s.flowing=!0:0<n.listenerCount("data")&&n.resume()}function m(n){J("readable nexttick read 0"),n.read(0)}function _(n,s){s.resumeScheduled||(s.resumeScheduled=!0,o.nextTick(U,n,s))}function U(n,s){J("resume",s.reading),s.reading||n.read(0),s.resumeScheduled=!1,n.emit("resume"),M(n),s.flowing&&!s.reading&&n.read(0)}function M(n){var s=n._readableState;for(J("flow",s.flowing);s.flowing&&n.read()!==null;);}function H(n,s){if(s.length===0)return null;var f;return s.objectMode?f=s.buffer.shift():!n||n>=s.length?(f=s.decoder?s.buffer.join(""):s.buffer.length===1?s.buffer.first():s.buffer.concat(s.length),s.buffer.clear()):f=s.buffer.consume(n,s.decoder),f}function K(n){var s=n._readableState;J("endReadable",s.endEmitted),s.endEmitted||(s.ended=!0,o.nextTick(q,s,n))}function q(n,s){if(J("endReadableNT",n.endEmitted,n.length),!n.endEmitted&&n.length===0&&(n.endEmitted=!0,s.readable=!1,s.emit("end"),n.autoDestroy)){var f=s._writableState;(!f||f.autoDestroy&&f.finished)&&s.destroy()}}function V(n,s){for(var f=0,Q=n.length;f<Q;f++)if(n[f]===s)return f;return-1}i.exports=g;var st;g.ReadableState=u;var J,Tt=r("events").EventEmitter,at=function(n,s){return n.listeners(s).length},ut=r("./internal/streams/stream"),j=r("buffer").Buffer,X=c.Uint8Array||function(){},pt=r("util");J=pt&&pt.debuglog?pt.debuglog("stream"):function(){};var ot,Rt,nt,kt=r("./internal/streams/buffer_list"),Nt=r("./internal/streams/destroy"),oe=r("./internal/streams/state"),Gt=oe.getHighWaterMark,Bt=r("../errors").codes,Dt=Bt.ERR_INVALID_ARG_TYPE,x=Bt.ERR_STREAM_PUSH_AFTER_EOF,k=Bt.ERR_METHOD_NOT_IMPLEMENTED,O=Bt.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;r("inherits")(g,ut);var F=Nt.errorOrDestroy,G=["error","close","destroy","pause","resume"];Object.defineProperty(g.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState!==void 0&&this._readableState.destroyed},set:function(n){this._readableState&&(this._readableState.destroyed=n)}}),g.prototype.destroy=Nt.destroy,g.prototype._undestroy=Nt.undestroy,g.prototype._destroy=function(n,s){s(n)},g.prototype.push=function(n,s){var f,Q=this._readableState;return Q.objectMode?f=!0:typeof n=="string"&&(s=s||Q.defaultEncoding,s!==Q.encoding&&(n=j.from(n,s),s=""),f=!0),l(this,n,s,!1,f)},g.prototype.unshift=function(n){return l(this,n,null,!0,!1)},g.prototype.isPaused=function(){return this._readableState.flowing===!1},g.prototype.setEncoding=function(n){ot||(ot=r("string_decoder/").StringDecoder);var s=new ot(n);this._readableState.decoder=s,this._readableState.encoding=this._readableState.decoder.encoding;for(var f=this._readableState.buffer.head,Q="";f!==null;)Q+=s.write(f.data),f=f.next;return this._readableState.buffer.clear(),Q!==""&&this._readableState.buffer.push(Q),this._readableState.length=Q.length,this},g.prototype.read=function(n){J("read",n),n=parseInt(n,10);var s=this._readableState,f=n;if(n!==0&&(s.emittedReadable=!1),n===0&&s.needReadable&&((s.highWaterMark===0?0<s.length:s.length>=s.highWaterMark)||s.ended))return J("read: emitReadable",s.length,s.ended),s.length===0&&s.ended?K(this):p(this),null;if(n=D(n,s),n===0&&s.ended)return s.length===0&&K(this),null;var Q=s.needReadable;J("need readable",Q),(s.length===0||s.length-n<s.highWaterMark)&&(Q=!0,J("length less than watermark",Q)),s.ended||s.reading?(Q=!1,J("reading or ended",Q)):Q&&(J("do read"),s.reading=!0,s.sync=!0,s.length===0&&(s.needReadable=!0),this._read(s.highWaterMark),s.sync=!1,!s.reading&&(n=D(f,s)));var N;return N=0<n?H(n,s):null,N===null?(s.needReadable=s.length<=s.highWaterMark,n=0):(s.length-=n,s.awaitDrain=0),s.length===0&&(!s.ended&&(s.needReadable=!0),f!==n&&s.ended&&K(this)),N!==null&&this.emit("data",N),N},g.prototype._read=function(){F(this,new k("_read()"))},g.prototype.pipe=function(n,s){function f(ye,Qe){J("onunpipe"),ye===z&&Qe&&Qe.hasUnpiped===!1&&(Qe.hasUnpiped=!0,N())}function Q(){J("onend"),n.end()}function N(){J("cleanup"),n.removeListener("close",W),n.removeListener("finish",rt),n.removeListener("drain",Be),n.removeListener("error",L),n.removeListener("unpipe",f),z.removeListener("end",Q),z.removeListener("end",Z),z.removeListener("data",T),br=!0,tt.awaitDrain&&(!n._writableState||n._writableState.needDrain)&&Be()}function T(ye){J("ondata");var Qe=n.write(ye);J("dest.write",Qe),Qe===!1&&((tt.pipesCount===1&&tt.pipes===n||1<tt.pipesCount&&V(tt.pipes,n)!==-1)&&!br&&(J("false write response, pause",tt.awaitDrain),tt.awaitDrain++),z.pause())}function L(ye){J("onerror",ye),Z(),n.removeListener("error",L),at(n,"error")===0&&F(n,ye)}function W(){n.removeListener("finish",rt),Z()}function rt(){J("onfinish"),n.removeListener("close",W),Z()}function Z(){J("unpipe"),z.unpipe(n)}var z=this,tt=this._readableState;switch(tt.pipesCount){case 0:tt.pipes=n;break;case 1:tt.pipes=[tt.pipes,n];break;default:tt.pipes.push(n)}tt.pipesCount+=1,J("pipe count=%d opts=%j",tt.pipesCount,s);var pe=(!s||s.end!==!1)&&n!==o.stdout&&n!==o.stderr,Ne=pe?Q:Z;tt.endEmitted?o.nextTick(Ne):z.once("end",Ne),n.on("unpipe",f);var Be=R(z);n.on("drain",Be);var br=!1;return z.on("data",T),A(n,"error",L),n.once("close",W),n.once("finish",rt),n.emit("pipe",z),tt.flowing||(J("pipe resume"),z.resume()),n},g.prototype.unpipe=function(n){var s=this._readableState,f={hasUnpiped:!1};if(s.pipesCount===0)return this;if(s.pipesCount===1)return n&&n!==s.pipes?this:(n||(n=s.pipes),s.pipes=null,s.pipesCount=0,s.flowing=!1,n&&n.emit("unpipe",this,f),this);if(!n){var Q=s.pipes,N=s.pipesCount;s.pipes=null,s.pipesCount=0,s.flowing=!1;for(var T=0;T<N;T++)Q[T].emit("unpipe",this,{hasUnpiped:!1});return this}var L=V(s.pipes,n);return L===-1?this:(s.pipes.splice(L,1),s.pipesCount-=1,s.pipesCount===1&&(s.pipes=s.pipes[0]),n.emit("unpipe",this,f),this)},g.prototype.on=function(n,s){var f=ut.prototype.on.call(this,n,s),Q=this._readableState;return n==="data"?(Q.readableListening=0<this.listenerCount("readable"),Q.flowing!==!1&&this.resume()):n=="readable"&&!Q.endEmitted&&!Q.readableListening&&(Q.readableListening=Q.needReadable=!0,Q.flowing=!1,Q.emittedReadable=!1,J("on readable",Q.length,Q.reading),Q.length?p(this):!Q.reading&&o.nextTick(m,this)),f},g.prototype.addListener=g.prototype.on,g.prototype.removeListener=function(n,s){var f=ut.prototype.removeListener.call(this,n,s);return n==="readable"&&o.nextTick(v,this),f},g.prototype.removeAllListeners=function(n){var s=ut.prototype.removeAllListeners.apply(this,arguments);return(n==="readable"||n===void 0)&&o.nextTick(v,this),s},g.prototype.resume=function(){var n=this._readableState;return n.flowing||(J("resume"),n.flowing=!n.readableListening,_(this,n)),n.paused=!1,this},g.prototype.pause=function(){return J("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(J("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},g.prototype.wrap=function(n){var s=this,f=this._readableState,Q=!1;for(var N in n.on("end",function(){if(J("wrapped end"),f.decoder&&!f.ended){var L=f.decoder.end();L&&L.length&&s.push(L)}s.push(null)}),n.on("data",function(L){if(J("wrapped data"),f.decoder&&(L=f.decoder.write(L)),!(f.objectMode&&L==null)&&(f.objectMode||L&&L.length)){var W=s.push(L);W||(Q=!0,n.pause())}}),n)this[N]===void 0&&typeof n[N]=="function"&&(this[N]=(function(L){return function(){return n[L].apply(n,arguments)}})(N));for(var T=0;T<G.length;T++)n.on(G[T],this.emit.bind(this,G[T]));return this._read=function(L){J("wrapped _read",L),Q&&(Q=!1,n.resume())},this},typeof Symbol=="function"&&(g.prototype[Symbol.asyncIterator]=function(){return Rt===void 0&&(Rt=r("./internal/streams/async_iterator")),Rt(this)}),Object.defineProperty(g.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(g.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(g.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(n){this._readableState&&(this._readableState.flowing=n)}}),g._fromList=H,Object.defineProperty(g.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}}),typeof Symbol=="function"&&(g.from=function(n,s){return nt===void 0&&(nt=r("./internal/streams/from")),nt(g,n,s)})}).call(this)}).call(this,r("_process"),typeof global>"u"?typeof self>"u"?typeof window>"u"?{}:window:self:global)},{"../errors":15,"./_stream_duplex":16,"./internal/streams/async_iterator":21,"./internal/streams/buffer_list":22,"./internal/streams/destroy":23,"./internal/streams/from":25,"./internal/streams/state":27,"./internal/streams/stream":28,_process:12,buffer:3,events:7,inherits:10,"string_decoder/":31,util:2}],19:[function(r,i){"use strict";function o(w,D){var I=this._transformState;I.transforming=!1;var p=I.writecb;if(p===null)return this.emit("error",new g);I.writechunk=null,I.writecb=null,D!=null&&this.push(D),p(w);var C=this._readableState;C.reading=!1,(C.needReadable||C.length<C.highWaterMark)&&this._read(C.highWaterMark)}function c(w){return this instanceof c?(y.call(this,w),this._transformState={afterTransform:o.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,w&&(typeof w.transform=="function"&&(this._transform=w.transform),typeof w.flush=="function"&&(this._flush=w.flush)),void this.on("prefinish",h)):new c(w)}function h(){var w=this;typeof this._flush!="function"||this._readableState.destroyed?E(this,null,null):this._flush(function(D,I){E(w,D,I)})}function E(w,D,I){if(D)return w.emit("error",D);if(I!=null&&w.push(I),w._writableState.length)throw new B;if(w._transformState.transforming)throw new l;return w.push(null)}i.exports=c;var A=r("../errors").codes,u=A.ERR_METHOD_NOT_IMPLEMENTED,g=A.ERR_MULTIPLE_CALLBACK,l=A.ERR_TRANSFORM_ALREADY_TRANSFORMING,B=A.ERR_TRANSFORM_WITH_LENGTH_0,y=r("./_stream_duplex");r("inherits")(c,y),c.prototype.push=function(w,D){return this._transformState.needTransform=!1,y.prototype.push.call(this,w,D)},c.prototype._transform=function(w,D,I){I(new u("_transform()"))},c.prototype._write=function(w,D,I){var p=this._transformState;if(p.writecb=I,p.writechunk=w,p.writeencoding=D,!p.transforming){var C=this._readableState;(p.needTransform||C.needReadable||C.length<C.highWaterMark)&&this._read(C.highWaterMark)}},c.prototype._read=function(){var w=this._transformState;w.writechunk===null||w.transforming?w.needTransform=!0:(w.transforming=!0,this._transform(w.writechunk,w.writeencoding,w.afterTransform))},c.prototype._destroy=function(w,D){y.prototype._destroy.call(this,w,function(I){D(I)})}},{"../errors":15,"./_stream_duplex":16,inherits:10}],20:[function(r,i){(function(o,c){(function(){"use strict";function h(x){var k=this;this.next=null,this.entry=null,this.finish=function(){K(k,x)}}function E(x){return J.from(x)}function A(x){return J.isBuffer(x)||x instanceof Tt}function u(){}function g(x,k,O){q=q||r("./_stream_duplex"),x=x||{},typeof O!="boolean"&&(O=k instanceof q),this.objectMode=!!x.objectMode,O&&(this.objectMode=this.objectMode||!!x.writableObjectMode),this.highWaterMark=j(this,x,"writableHighWaterMark",O),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var F=x.decodeStrings===!1;this.decodeStrings=!F,this.defaultEncoding=x.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(G){S(k,G)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=x.emitClose!==!1,this.autoDestroy=!!x.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new h(this)}function l(x){q=q||r("./_stream_duplex");var k=this instanceof q;return k||Dt.call(l,this)?(this._writableState=new g(x,this,k),this.writable=!0,x&&(typeof x.write=="function"&&(this._write=x.write),typeof x.writev=="function"&&(this._writev=x.writev),typeof x.destroy=="function"&&(this._destroy=x.destroy),typeof x.final=="function"&&(this._final=x.final)),void st.call(this)):new l(x)}function B(x,k){var O=new oe;Bt(x,O),o.nextTick(k,O)}function y(x,k,O,F){var G;return O===null?G=new Nt:typeof O!="string"&&!k.objectMode&&(G=new pt("chunk",["string","Buffer"],O)),!G||(Bt(x,G),o.nextTick(F,G),!1)}function w(x,k,O){return x.objectMode||x.decodeStrings===!1||typeof k!="string"||(k=J.from(k,O)),k}function D(x,k,O,F,G,n){if(!O){var s=w(k,F,G);F!==s&&(O=!0,G="buffer",F=s)}var f=k.objectMode?1:F.length;k.length+=f;var Q=k.length<k.highWaterMark;if(Q||(k.needDrain=!0),k.writing||k.corked){var N=k.lastBufferedRequest;k.lastBufferedRequest={chunk:F,encoding:G,isBuf:O,callback:n,next:null},N?N.next=k.lastBufferedRequest:k.bufferedRequest=k.lastBufferedRequest,k.bufferedRequestCount+=1}else I(x,k,!1,f,F,G,n);return Q}function I(x,k,O,F,G,n,s){k.writelen=F,k.writecb=s,k.writing=!0,k.sync=!0,k.destroyed?k.onwrite(new kt("write")):O?x._writev(G,k.onwrite):x._write(G,n,k.onwrite),k.sync=!1}function p(x,k,O,F,G){--k.pendingcb,O?(o.nextTick(G,F),o.nextTick(M,x,k),x._writableState.errorEmitted=!0,Bt(x,F)):(G(F),x._writableState.errorEmitted=!0,Bt(x,F),M(x,k))}function C(x){x.writing=!1,x.writecb=null,x.length-=x.writelen,x.writelen=0}function S(x,k){var O=x._writableState,F=O.sync,G=O.writecb;if(typeof G!="function")throw new Rt;if(C(O),k)p(x,O,F,k,G);else{var n=m(O)||x.destroyed;n||O.corked||O.bufferProcessing||!O.bufferedRequest||v(x,O),F?o.nextTick(b,x,O,n,G):b(x,O,n,G)}}function b(x,k,O,F){O||R(x,k),k.pendingcb--,F(),M(x,k)}function R(x,k){k.length===0&&k.needDrain&&(k.needDrain=!1,x.emit("drain"))}function v(x,k){k.bufferProcessing=!0;var O=k.bufferedRequest;if(x._writev&&O&&O.next){var F=k.bufferedRequestCount,G=Array(F),n=k.corkedRequestsFree;n.entry=O;for(var s=0,f=!0;O;)G[s]=O,O.isBuf||(f=!1),O=O.next,s+=1;G.allBuffers=f,I(x,k,!0,k.length,G,"",n.finish),k.pendingcb++,k.lastBufferedRequest=null,n.next?(k.corkedRequestsFree=n.next,n.next=null):k.corkedRequestsFree=new h(k),k.bufferedRequestCount=0}else{for(;O;){var Q=O.chunk,N=O.encoding,T=O.callback,L=k.objectMode?1:Q.length;if(I(x,k,!1,L,Q,N,T),O=O.next,k.bufferedRequestCount--,k.writing)break}O===null&&(k.lastBufferedRequest=null)}k.bufferedRequest=O,k.bufferProcessing=!1}function m(x){return x.ending&&x.length===0&&x.bufferedRequest===null&&!x.finished&&!x.writing}function _(x,k){x._final(function(O){k.pendingcb--,O&&Bt(x,O),k.prefinished=!0,x.emit("prefinish"),M(x,k)})}function U(x,k){k.prefinished||k.finalCalled||(typeof x._final!="function"||k.destroyed?(k.prefinished=!0,x.emit("prefinish")):(k.pendingcb++,k.finalCalled=!0,o.nextTick(_,x,k)))}function M(x,k){var O=m(k);if(O&&(U(x,k),k.pendingcb===0&&(k.finished=!0,x.emit("finish"),k.autoDestroy))){var F=x._readableState;(!F||F.autoDestroy&&F.endEmitted)&&x.destroy()}return O}function H(x,k,O){k.ending=!0,M(x,k),O&&(k.finished?o.nextTick(O):x.once("finish",O)),k.ended=!0,x.writable=!1}function K(x,k,O){var F=x.entry;for(x.entry=null;F;){var G=F.callback;k.pendingcb--,G(O),F=F.next}k.corkedRequestsFree.next=x}i.exports=l;var q;l.WritableState=g;var V={deprecate:r("util-deprecate")},st=r("./internal/streams/stream"),J=r("buffer").Buffer,Tt=c.Uint8Array||function(){},at=r("./internal/streams/destroy"),ut=r("./internal/streams/state"),j=ut.getHighWaterMark,X=r("../errors").codes,pt=X.ERR_INVALID_ARG_TYPE,ot=X.ERR_METHOD_NOT_IMPLEMENTED,Rt=X.ERR_MULTIPLE_CALLBACK,nt=X.ERR_STREAM_CANNOT_PIPE,kt=X.ERR_STREAM_DESTROYED,Nt=X.ERR_STREAM_NULL_VALUES,oe=X.ERR_STREAM_WRITE_AFTER_END,Gt=X.ERR_UNKNOWN_ENCODING,Bt=at.errorOrDestroy;r("inherits")(l,st),g.prototype.getBuffer=function(){for(var x=this.bufferedRequest,k=[];x;)k.push(x),x=x.next;return k},(function(){try{Object.defineProperty(g.prototype,"buffer",{get:V.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var Dt;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(Dt=Function.prototype[Symbol.hasInstance],Object.defineProperty(l,Symbol.hasInstance,{value:function(x){return!!Dt.call(this,x)||this===l&&x&&x._writableState instanceof g}})):Dt=function(x){return x instanceof this},l.prototype.pipe=function(){Bt(this,new nt)},l.prototype.write=function(x,k,O){var F=this._writableState,G=!1,n=!F.objectMode&&A(x);return n&&!J.isBuffer(x)&&(x=E(x)),typeof k=="function"&&(O=k,k=null),n?k="buffer":!k&&(k=F.defaultEncoding),typeof O!="function"&&(O=u),F.ending?B(this,O):(n||y(this,F,x,O))&&(F.pendingcb++,G=D(this,F,n,x,k,O)),G},l.prototype.cork=function(){this._writableState.corked++},l.prototype.uncork=function(){var x=this._writableState;x.corked&&(x.corked--,!x.writing&&!x.corked&&!x.bufferProcessing&&x.bufferedRequest&&v(this,x))},l.prototype.setDefaultEncoding=function(x){if(typeof x=="string"&&(x=x.toLowerCase()),!(-1<["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((x+"").toLowerCase())))throw new Gt(x);return this._writableState.defaultEncoding=x,this},Object.defineProperty(l.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(l.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),l.prototype._write=function(x,k,O){O(new ot("_write()"))},l.prototype._writev=null,l.prototype.end=function(x,k,O){var F=this._writableState;return typeof x=="function"?(O=x,x=null,k=null):typeof k=="function"&&(O=k,k=null),x!=null&&this.write(x,k),F.corked&&(F.corked=1,this.uncork()),F.ending||H(this,F,O),this},Object.defineProperty(l.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(l.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(x){this._writableState&&(this._writableState.destroyed=x)}}),l.prototype.destroy=at.destroy,l.prototype._undestroy=at.undestroy,l.prototype._destroy=function(x,k){k(x)}}).call(this)}).call(this,r("_process"),typeof global>"u"?typeof self>"u"?typeof window>"u"?{}:window:self:global)},{"../errors":15,"./_stream_duplex":16,"./internal/streams/destroy":23,"./internal/streams/state":27,"./internal/streams/stream":28,_process:12,buffer:3,inherits:10,"util-deprecate":32}],21:[function(r,i){(function(o){(function(){"use strict";function c(R,v,m){return v in R?Object.defineProperty(R,v,{value:m,enumerable:!0,configurable:!0,writable:!0}):R[v]=m,R}function h(R,v){return{value:R,done:v}}function E(R){var v=R[B];if(v!==null){var m=R[C].read();m!==null&&(R[I]=null,R[B]=null,R[y]=null,v(h(m,!1)))}}function A(R){o.nextTick(E,R)}function u(R,v){return function(m,_){R.then(function(){return v[D]?void m(h(void 0,!0)):void v[p](m,_)},_)}}var g,l=r("./end-of-stream"),B=Symbol("lastResolve"),y=Symbol("lastReject"),w=Symbol("error"),D=Symbol("ended"),I=Symbol("lastPromise"),p=Symbol("handlePromise"),C=Symbol("stream"),S=Object.getPrototypeOf(function(){}),b=Object.setPrototypeOf((g={get stream(){return this[C]},next:function(){var R=this,v=this[w];if(v!==null)return Promise.reject(v);if(this[D])return Promise.resolve(h(void 0,!0));if(this[C].destroyed)return new Promise(function(M,H){o.nextTick(function(){R[w]?H(R[w]):M(h(void 0,!0))})});var m,_=this[I];if(_)m=new Promise(u(_,this));else{var U=this[C].read();if(U!==null)return Promise.resolve(h(U,!1));m=new Promise(this[p])}return this[I]=m,m}},c(g,Symbol.asyncIterator,function(){return this}),c(g,"return",function(){var R=this;return new Promise(function(v,m){R[C].destroy(null,function(_){return _?void m(_):void v(h(void 0,!0))})})}),g),S);i.exports=function(R){var v,m=Object.create(b,(v={},c(v,C,{value:R,writable:!0}),c(v,B,{value:null,writable:!0}),c(v,y,{value:null,writable:!0}),c(v,w,{value:null,writable:!0}),c(v,D,{value:R._readableState.endEmitted,writable:!0}),c(v,p,{value:function(_,U){var M=m[C].read();M?(m[I]=null,m[B]=null,m[y]=null,_(h(M,!1))):(m[B]=_,m[y]=U)},writable:!0}),v));return m[I]=null,l(R,function(_){if(_&&_.code!=="ERR_STREAM_PREMATURE_CLOSE"){var U=m[y];return U!==null&&(m[I]=null,m[B]=null,m[y]=null,U(_)),void(m[w]=_)}var M=m[B];M!==null&&(m[I]=null,m[B]=null,m[y]=null,M(h(void 0,!0))),m[D]=!0}),R.on("readable",A.bind(null,m)),m}}).call(this)}).call(this,r("_process"))},{"./end-of-stream":24,_process:12}],22:[function(r,i){"use strict";function o(I,p){var C=Object.keys(I);if(Object.getOwnPropertySymbols){var S=Object.getOwnPropertySymbols(I);p&&(S=S.filter(function(b){return Object.getOwnPropertyDescriptor(I,b).enumerable})),C.push.apply(C,S)}return C}function c(I){for(var p,C=1;C<arguments.length;C++)p=arguments[C]==null?{}:arguments[C],C%2?o(Object(p),!0).forEach(function(S){h(I,S,p[S])}):Object.getOwnPropertyDescriptors?Object.defineProperties(I,Object.getOwnPropertyDescriptors(p)):o(Object(p)).forEach(function(S){Object.defineProperty(I,S,Object.getOwnPropertyDescriptor(p,S))});return I}function h(I,p,C){return p in I?Object.defineProperty(I,p,{value:C,enumerable:!0,configurable:!0,writable:!0}):I[p]=C,I}function E(I,p){if(!(I instanceof p))throw new TypeError("Cannot call a class as a function")}function A(I,p){for(var C,S=0;S<p.length;S++)C=p[S],C.enumerable=C.enumerable||!1,C.configurable=!0,"value"in C&&(C.writable=!0),Object.defineProperty(I,C.key,C)}function u(I,p,C){return p&&A(I.prototype,p),C&&A(I,C),I}function g(I,p,C){B.prototype.copy.call(I,p,C)}var l=r("buffer"),B=l.Buffer,y=r("util"),w=y.inspect,D=w&&w.custom||"inspect";i.exports=(function(){function I(){E(this,I),this.head=null,this.tail=null,this.length=0}return u(I,[{key:"push",value:function(p){var C={data:p,next:null};0<this.length?this.tail.next=C:this.head=C,this.tail=C,++this.length}},{key:"unshift",value:function(p){var C={data:p,next:this.head};this.length===0&&(this.tail=C),this.head=C,++this.length}},{key:"shift",value:function(){if(this.length!==0){var p=this.head.data;return this.head=this.length===1?this.tail=null:this.head.next,--this.length,p}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(p){if(this.length===0)return"";for(var C=this.head,S=""+C.data;C=C.next;)S+=p+C.data;return S}},{key:"concat",value:function(p){if(this.length===0)return B.alloc(0);for(var C=B.allocUnsafe(p>>>0),S=this.head,b=0;S;)g(S.data,C,b),b+=S.data.length,S=S.next;return C}},{key:"consume",value:function(p,C){var S;return p<this.head.data.length?(S=this.head.data.slice(0,p),this.head.data=this.head.data.slice(p)):p===this.head.data.length?S=this.shift():S=C?this._getString(p):this._getBuffer(p),S}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(p){var C=this.head,S=1,b=C.data;for(p-=b.length;C=C.next;){var R=C.data,v=p>R.length?R.length:p;if(b+=v===R.length?R:R.slice(0,p),p-=v,p===0){v===R.length?(++S,this.head=C.next?C.next:this.tail=null):(this.head=C,C.data=R.slice(v));break}++S}return this.length-=S,b}},{key:"_getBuffer",value:function(p){var C=B.allocUnsafe(p),S=this.head,b=1;for(S.data.copy(C),p-=S.data.length;S=S.next;){var R=S.data,v=p>R.length?R.length:p;if(R.copy(C,C.length-p,0,v),p-=v,p===0){v===R.length?(++b,this.head=S.next?S.next:this.tail=null):(this.head=S,S.data=R.slice(v));break}++b}return this.length-=b,C}},{key:D,value:function(p,C){return w(this,c({},C,{depth:0,customInspect:!1}))}}]),I})()},{buffer:3,util:2}],23:[function(r,i){(function(o){(function(){"use strict";function c(A,u){E(A,u),h(A)}function h(A){A._writableState&&!A._writableState.emitClose||A._readableState&&!A._readableState.emitClose||A.emit("close")}function E(A,u){A.emit("error",u)}i.exports={destroy:function(A,u){var g=this,l=this._readableState&&this._readableState.destroyed,B=this._writableState&&this._writableState.destroyed;return l||B?(u?u(A):A&&(this._writableState?!this._writableState.errorEmitted&&(this._writableState.errorEmitted=!0,o.nextTick(E,this,A)):o.nextTick(E,this,A)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(A||null,function(y){!u&&y?g._writableState?g._writableState.errorEmitted?o.nextTick(h,g):(g._writableState.errorEmitted=!0,o.nextTick(c,g,y)):o.nextTick(c,g,y):u?(o.nextTick(h,g),u(y)):o.nextTick(h,g)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(A,u){var g=A._readableState,l=A._writableState;g&&g.autoDestroy||l&&l.autoDestroy?A.destroy(u):A.emit("error",u)}}}).call(this)}).call(this,r("_process"))},{_process:12}],24:[function(r,i){"use strict";function o(u){var g=!1;return function(){if(!g){g=!0;for(var l=arguments.length,B=Array(l),y=0;y<l;y++)B[y]=arguments[y];u.apply(this,B)}}}function c(){}function h(u){return u.setHeader&&typeof u.abort=="function"}function E(u,g,l){if(typeof g=="function")return E(u,null,g);g||(g={}),l=o(l||c);var B=g.readable||g.readable!==!1&&u.readable,y=g.writable||g.writable!==!1&&u.writable,w=function(){u.writable||I()},D=u._writableState&&u._writableState.finished,I=function(){y=!1,D=!0,B||l.call(u)},p=u._readableState&&u._readableState.endEmitted,C=function(){B=!1,p=!0,y||l.call(u)},S=function(v){l.call(u,v)},b=function(){var v;return B&&!p?(u._readableState&&u._readableState.ended||(v=new A),l.call(u,v)):y&&!D?(u._writableState&&u._writableState.ended||(v=new A),l.call(u,v)):void 0},R=function(){u.req.on("finish",I)};return h(u)?(u.on("complete",I),u.on("abort",b),u.req?R():u.on("request",R)):y&&!u._writableState&&(u.on("end",w),u.on("close",w)),u.on("end",C),u.on("finish",I),g.error!==!1&&u.on("error",S),u.on("close",b),function(){u.removeListener("complete",I),u.removeListener("abort",b),u.removeListener("request",R),u.req&&u.req.removeListener("finish",I),u.removeListener("end",w),u.removeListener("close",w),u.removeListener("finish",I),u.removeListener("end",C),u.removeListener("error",S),u.removeListener("close",b)}}var A=r("../../../errors").codes.ERR_STREAM_PREMATURE_CLOSE;i.exports=E},{"../../../errors":15}],25:[function(r,i){i.exports=function(){throw new Error("Readable.from is not available in the browser")}},{}],26:[function(r,i){"use strict";function o(D){var I=!1;return function(){I||(I=!0,D.apply(void 0,arguments))}}function c(D){if(D)throw D}function h(D){return D.setHeader&&typeof D.abort=="function"}function E(D,I,p,C){C=o(C);var S=!1;D.on("close",function(){S=!0}),l===void 0&&(l=r("./end-of-stream")),l(D,{readable:I,writable:p},function(R){return R?C(R):(S=!0,void C())});var b=!1;return function(R){if(!S)return b?void 0:(b=!0,h(D)?D.abort():typeof D.destroy=="function"?D.destroy():void C(R||new w("pipe")))}}function A(D){D()}function u(D,I){return D.pipe(I)}function g(D){return D.length&&typeof D[D.length-1]=="function"?D.pop():c}var l,B=r("../../../errors").codes,y=B.ERR_MISSING_ARGS,w=B.ERR_STREAM_DESTROYED;i.exports=function(){for(var D=arguments.length,I=Array(D),p=0;p<D;p++)I[p]=arguments[p];var C=g(I);if(Array.isArray(I[0])&&(I=I[0]),2>I.length)throw new y("streams");var S,b=I.map(function(R,v){var m=v<I.length-1;return E(R,m,0<v,function(_){S||(S=_),_&&b.forEach(A),m||(b.forEach(A),C(S))})});return I.reduce(u)}},{"../../../errors":15,"./end-of-stream":24}],27:[function(r,i){"use strict";function o(h,E,A){return h.highWaterMark==null?E?h[A]:null:h.highWaterMark}var c=r("../../../errors").codes.ERR_INVALID_OPT_VALUE;i.exports={getHighWaterMark:function(h,E,A,u){var g=o(E,u,A);if(g!=null){if(!(isFinite(g)&&a(g)===g)||0>g){var l=u?A:"highWaterMark";throw new c(l,g)}return a(g)}return h.objectMode?16:16384}}},{"../../../errors":15}],28:[function(r,i){i.exports=r("events").EventEmitter},{events:7}],29:[function(r,i,o){o=i.exports=r("./lib/_stream_readable.js"),o.Stream=o,o.Readable=o,o.Writable=r("./lib/_stream_writable.js"),o.Duplex=r("./lib/_stream_duplex.js"),o.Transform=r("./lib/_stream_transform.js"),o.PassThrough=r("./lib/_stream_passthrough.js"),o.finished=r("./lib/internal/streams/end-of-stream.js"),o.pipeline=r("./lib/internal/streams/pipeline.js")},{"./lib/_stream_duplex.js":16,"./lib/_stream_passthrough.js":17,"./lib/_stream_readable.js":18,"./lib/_stream_transform.js":19,"./lib/_stream_writable.js":20,"./lib/internal/streams/end-of-stream.js":24,"./lib/internal/streams/pipeline.js":26}],30:[function(r,i,o){function c(u,g){for(var l in u)g[l]=u[l]}function h(u,g,l){return A(u,g,l)}var E=r("buffer"),A=E.Buffer;A.from&&A.alloc&&A.allocUnsafe&&A.allocUnsafeSlow?i.exports=E:(c(E,o),o.Buffer=h),h.prototype=Object.create(A.prototype),c(A,h),h.from=function(u,g,l){if(typeof u=="number")throw new TypeError("Argument must not be a number");return A(u,g,l)},h.alloc=function(u,g,l){if(typeof u!="number")throw new TypeError("Argument must be a number");var B=A(u);return g===void 0?B.fill(0):typeof l=="string"?B.fill(g,l):B.fill(g),B},h.allocUnsafe=function(u){if(typeof u!="number")throw new TypeError("Argument must be a number");return A(u)},h.allocUnsafeSlow=function(u){if(typeof u!="number")throw new TypeError("Argument must be a number");return E.SlowBuffer(u)}},{buffer:3}],31:[function(r,i,o){"use strict";function c(b){if(!b)return"utf8";for(var R;;)switch(b){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return b;default:if(R)return;b=(""+b).toLowerCase(),R=!0}}function h(b){var R=c(b);if(typeof R!="string"&&(C.isEncoding===S||!S(b)))throw new Error("Unknown encoding: "+b);return R||b}function E(b){this.encoding=h(b);var R;switch(this.encoding){case"utf16le":this.text=B,this.end=y,R=4;break;case"utf8":this.fillLast=l,R=4;break;case"base64":this.text=w,this.end=D,R=3;break;default:return this.write=I,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=C.allocUnsafe(R)}function A(b){return 127>=b?0:b>>5==6?2:b>>4==14?3:b>>3==30?4:b>>6==2?-1:-2}function u(b,R,v){var m=R.length-1;if(m<v)return 0;var _=A(R[m]);return 0<=_?(0<_&&(b.lastNeed=_-1),_):--m<v||_===-2?0:(_=A(R[m]),0<=_?(0<_&&(b.lastNeed=_-2),_):--m<v||_===-2?0:(_=A(R[m]),0<=_?(0<_&&(_===2?_=0:b.lastNeed=_-3),_):0))}function g(b,R){if((192&R[0])!=128)return b.lastNeed=0,"\uFFFD";if(1<b.lastNeed&&1<R.length){if((192&R[1])!=128)return b.lastNeed=1,"\uFFFD";if(2<b.lastNeed&&2<R.length&&(192&R[2])!=128)return b.lastNeed=2,"\uFFFD"}}function l(b){var R=this.lastTotal-this.lastNeed,v=g(this,b,R);return v===void 0?this.lastNeed<=b.length?(b.copy(this.lastChar,R,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(b.copy(this.lastChar,R,0,b.length),void(this.lastNeed-=b.length)):v}function B(b,R){if((b.length-R)%2==0){var v=b.toString("utf16le",R);if(v){var m=v.charCodeAt(v.length-1);if(55296<=m&&56319>=m)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=b[b.length-2],this.lastChar[1]=b[b.length-1],v.slice(0,-1)}return v}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=b[b.length-1],b.toString("utf16le",R,b.length-1)}function y(b){var R=b&&b.length?this.write(b):"";if(this.lastNeed){var v=this.lastTotal-this.lastNeed;return R+this.lastChar.toString("utf16le",0,v)}return R}function w(b,R){var v=(b.length-R)%3;return v==0?b.toString("base64",R):(this.lastNeed=3-v,this.lastTotal=3,v==1?this.lastChar[0]=b[b.length-1]:(this.lastChar[0]=b[b.length-2],this.lastChar[1]=b[b.length-1]),b.toString("base64",R,b.length-v))}function D(b){var R=b&&b.length?this.write(b):"";return this.lastNeed?R+this.lastChar.toString("base64",0,3-this.lastNeed):R}function I(b){return b.toString(this.encoding)}function p(b){return b&&b.length?this.write(b):""}var C=r("safe-buffer").Buffer,S=C.isEncoding||function(b){switch(b=""+b,b&&b.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};o.StringDecoder=E,E.prototype.write=function(b){if(b.length===0)return"";var R,v;if(this.lastNeed){if(R=this.fillLast(b),R===void 0)return"";v=this.lastNeed,this.lastNeed=0}else v=0;return v<b.length?R?R+this.text(b,v):this.text(b,v):R||""},E.prototype.end=function(b){var R=b&&b.length?this.write(b):"";return this.lastNeed?R+"\uFFFD":R},E.prototype.text=function(b,R){var v=u(this,b,R);if(!this.lastNeed)return b.toString("utf8",R);this.lastTotal=v;var m=b.length-(v-this.lastNeed);return b.copy(this.lastChar,0,m),b.toString("utf8",R,m)},E.prototype.fillLast=function(b){return this.lastNeed<=b.length?(b.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(b.copy(this.lastChar,this.lastTotal-this.lastNeed,0,b.length),void(this.lastNeed-=b.length))}},{"safe-buffer":30}],32:[function(r,i){(function(o){(function(){function c(h){try{if(!o.localStorage)return!1}catch{return!1}var E=o.localStorage[h];return E!=null&&(E+"").toLowerCase()==="true"}i.exports=function(h,E){function A(){if(!u){if(c("throwDeprecation"))throw new Error(E);c("traceDeprecation")?console.trace(E):console.warn(E),u=!0}return h.apply(this,arguments)}if(c("noDeprecation"))return h;var u=!1;return A}}).call(this)}).call(this,typeof global>"u"?typeof self>"u"?typeof window>"u"?{}:window:self:global)},{}],"/":[function(r,i){function o(D){return D.replace(/a=ice-options:trickle\s\n/g,"")}function c(D){console.warn(D)}let h=r("debug")("simple-peer"),E=r("get-browser-rtc"),A=r("randombytes"),u=r("readable-stream"),g=r("queue-microtask"),l=r("err-code"),{Buffer:B}=r("buffer"),y=65536;class w extends u.Duplex{constructor(I){if(I=Object.assign({allowHalfOpen:!1},I),super(I),this._id=A(4).toString("hex").slice(0,7),this._debug("new peer %o",I),this.channelName=I.initiator?I.channelName||A(20).toString("hex"):null,this.initiator=I.initiator||!1,this.channelConfig=I.channelConfig||w.channelConfig,this.channelNegotiated=this.channelConfig.negotiated,this.config=Object.assign({},w.config,I.config),this.offerOptions=I.offerOptions||{},this.answerOptions=I.answerOptions||{},this.sdpTransform=I.sdpTransform||(p=>p),this.streams=I.streams||(I.stream?[I.stream]:[]),this.trickle=I.trickle===void 0||I.trickle,this.allowHalfTrickle=I.allowHalfTrickle!==void 0&&I.allowHalfTrickle,this.iceCompleteTimeout=I.iceCompleteTimeout||5e3,this.destroyed=!1,this.destroying=!1,this._connected=!1,this.remoteAddress=void 0,this.remoteFamily=void 0,this.remotePort=void 0,this.localAddress=void 0,this.localFamily=void 0,this.localPort=void 0,this._wrtc=I.wrtc&&typeof I.wrtc=="object"?I.wrtc:E(),!this._wrtc)throw l(typeof window>"u"?new Error("No WebRTC support: Specify `opts.wrtc` option in this environment"):new Error("No WebRTC support: Not a supported browser"),"ERR_WEBRTC_SUPPORT");this._pcReady=!1,this._channelReady=!1,this._iceComplete=!1,this._iceCompleteTimer=null,this._channel=null,this._pendingCandidates=[],this._isNegotiating=!1,this._firstNegotiation=!0,this._batchedNegotiation=!1,this._queuedNegotiation=!1,this._sendersAwaitingStable=[],this._senderMap=new Map,this._closingInterval=null,this._remoteTracks=[],this._remoteStreams=[],this._chunk=null,this._cb=null,this._interval=null;try{this._pc=new this._wrtc.RTCPeerConnection(this.config)}catch(p){return void this.destroy(l(p,"ERR_PC_CONSTRUCTOR"))}this._isReactNativeWebrtc=typeof this._pc._peerConnectionId=="number",this._pc.oniceconnectionstatechange=()=>{this._onIceStateChange()},this._pc.onicegatheringstatechange=()=>{this._onIceStateChange()},this._pc.onconnectionstatechange=()=>{this._onConnectionStateChange()},this._pc.onsignalingstatechange=()=>{this._onSignalingStateChange()},this._pc.onicecandidate=p=>{this._onIceCandidate(p)},typeof this._pc.peerIdentity=="object"&&this._pc.peerIdentity.catch(p=>{this.destroy(l(p,"ERR_PC_PEER_IDENTITY"))}),this.initiator||this.channelNegotiated?this._setupData({channel:this._pc.createDataChannel(this.channelName,this.channelConfig)}):this._pc.ondatachannel=p=>{this._setupData(p)},this.streams&&this.streams.forEach(p=>{this.addStream(p)}),this._pc.ontrack=p=>{this._onTrack(p)},this._debug("initial negotiation"),this._needsNegotiation(),this._onFinishBound=()=>{this._onFinish()},this.once("finish",this._onFinishBound)}get bufferSize(){return this._channel&&this._channel.bufferedAmount||0}get connected(){return this._connected&&this._channel.readyState==="open"}address(){return{port:this.localPort,family:this.localFamily,address:this.localAddress}}signal(I){if(!this.destroying){if(this.destroyed)throw l(new Error("cannot signal after peer is destroyed"),"ERR_DESTROYED");if(typeof I=="string")try{I=JSON.parse(I)}catch{I={}}this._debug("signal()"),I.renegotiate&&this.initiator&&(this._debug("got request to renegotiate"),this._needsNegotiation()),I.transceiverRequest&&this.initiator&&(this._debug("got request for transceiver"),this.addTransceiver(I.transceiverRequest.kind,I.transceiverRequest.init)),I.candidate&&(this._pc.remoteDescription&&this._pc.remoteDescription.type?this._addIceCandidate(I.candidate):this._pendingCandidates.push(I.candidate)),I.sdp&&this._pc.setRemoteDescription(new this._wrtc.RTCSessionDescription(I)).then(()=>{this.destroyed||(this._pendingCandidates.forEach(p=>{this._addIceCandidate(p)}),this._pendingCandidates=[],this._pc.remoteDescription.type==="offer"&&this._createAnswer())}).catch(p=>{this.destroy(l(p,"ERR_SET_REMOTE_DESCRIPTION"))}),I.sdp||I.candidate||I.renegotiate||I.transceiverRequest||this.destroy(l(new Error("signal() called with invalid signal data"),"ERR_SIGNALING"))}}_addIceCandidate(I){let p=new this._wrtc.RTCIceCandidate(I);this._pc.addIceCandidate(p).catch(C=>{!p.address||p.address.endsWith(".local")?c("Ignoring unsupported ICE candidate."):this.destroy(l(C,"ERR_ADD_ICE_CANDIDATE"))})}send(I){if(!this.destroying){if(this.destroyed)throw l(new Error("cannot send after peer is destroyed"),"ERR_DESTROYED");this._channel.send(I)}}addTransceiver(I,p){if(!this.destroying){if(this.destroyed)throw l(new Error("cannot addTransceiver after peer is destroyed"),"ERR_DESTROYED");if(this._debug("addTransceiver()"),this.initiator)try{this._pc.addTransceiver(I,p),this._needsNegotiation()}catch(C){this.destroy(l(C,"ERR_ADD_TRANSCEIVER"))}else this.emit("signal",{type:"transceiverRequest",transceiverRequest:{kind:I,init:p}})}}addStream(I){if(!this.destroying){if(this.destroyed)throw l(new Error("cannot addStream after peer is destroyed"),"ERR_DESTROYED");this._debug("addStream()"),I.getTracks().forEach(p=>{this.addTrack(p,I)})}}addTrack(I,p){if(this.destroying)return;if(this.destroyed)throw l(new Error("cannot addTrack after peer is destroyed"),"ERR_DESTROYED");this._debug("addTrack()");let C=this._senderMap.get(I)||new Map,S=C.get(p);if(!S)S=this._pc.addTrack(I,p),C.set(p,S),this._senderMap.set(I,C),this._needsNegotiation();else throw S.removed?l(new Error("Track has been removed. You should enable/disable tracks that you want to re-add."),"ERR_SENDER_REMOVED"):l(new Error("Track has already been added to that stream."),"ERR_SENDER_ALREADY_ADDED")}replaceTrack(I,p,C){if(this.destroying)return;if(this.destroyed)throw l(new Error("cannot replaceTrack after peer is destroyed"),"ERR_DESTROYED");this._debug("replaceTrack()");let S=this._senderMap.get(I),b=S?S.get(C):null;if(!b)throw l(new Error("Cannot replace track that was never added."),"ERR_TRACK_NOT_ADDED");p&&this._senderMap.set(p,S),b.replaceTrack==null?this.destroy(l(new Error("replaceTrack is not supported in this browser"),"ERR_UNSUPPORTED_REPLACETRACK")):b.replaceTrack(p)}removeTrack(I,p){if(this.destroying)return;if(this.destroyed)throw l(new Error("cannot removeTrack after peer is destroyed"),"ERR_DESTROYED");this._debug("removeSender()");let C=this._senderMap.get(I),S=C?C.get(p):null;if(!S)throw l(new Error("Cannot remove track that was never added."),"ERR_TRACK_NOT_ADDED");try{S.removed=!0,this._pc.removeTrack(S)}catch(b){b.name==="NS_ERROR_UNEXPECTED"?this._sendersAwaitingStable.push(S):this.destroy(l(b,"ERR_REMOVE_TRACK"))}this._needsNegotiation()}removeStream(I){if(!this.destroying){if(this.destroyed)throw l(new Error("cannot removeStream after peer is destroyed"),"ERR_DESTROYED");this._debug("removeSenders()"),I.getTracks().forEach(p=>{this.removeTrack(p,I)})}}_needsNegotiation(){this._debug("_needsNegotiation"),this._batchedNegotiation||(this._batchedNegotiation=!0,g(()=>{this._batchedNegotiation=!1,this.initiator||!this._firstNegotiation?(this._debug("starting batched negotiation"),this.negotiate()):this._debug("non-initiator initial negotiation request discarded"),this._firstNegotiation=!1}))}negotiate(){if(!this.destroying){if(this.destroyed)throw l(new Error("cannot negotiate after peer is destroyed"),"ERR_DESTROYED");this.initiator?this._isNegotiating?(this._queuedNegotiation=!0,this._debug("already negotiating, queueing")):(this._debug("start negotiation"),setTimeout(()=>{this._createOffer()},0)):this._isNegotiating?(this._queuedNegotiation=!0,this._debug("already negotiating, queueing")):(this._debug("requesting negotiation from initiator"),this.emit("signal",{type:"renegotiate",renegotiate:!0})),this._isNegotiating=!0}}destroy(I){this._destroy(I,()=>{})}_destroy(I,p){this.destroyed||this.destroying||(this.destroying=!0,this._debug("destroying (error: %s)",I&&(I.message||I)),g(()=>{if(this.destroyed=!0,this.destroying=!1,this._debug("destroy (error: %s)",I&&(I.message||I)),this.readable=this.writable=!1,this._readableState.ended||this.push(null),this._writableState.finished||this.end(),this._connected=!1,this._pcReady=!1,this._channelReady=!1,this._remoteTracks=null,this._remoteStreams=null,this._senderMap=null,clearInterval(this._closingInterval),this._closingInterval=null,clearInterval(this._interval),this._interval=null,this._chunk=null,this._cb=null,this._onFinishBound&&this.removeListener("finish",this._onFinishBound),this._onFinishBound=null,this._channel){try{this._channel.close()}catch{}this._channel.onmessage=null,this._channel.onopen=null,this._channel.onclose=null,this._channel.onerror=null}if(this._pc){try{this._pc.close()}catch{}this._pc.oniceconnectionstatechange=null,this._pc.onicegatheringstatechange=null,this._pc.onsignalingstatechange=null,this._pc.onicecandidate=null,this._pc.ontrack=null,this._pc.ondatachannel=null}this._pc=null,this._channel=null,I&&this.emit("error",I),this.emit("close"),p()}))}_setupData(I){if(!I.channel)return this.destroy(l(new Error("Data channel event is missing `channel` property"),"ERR_DATA_CHANNEL"));this._channel=I.channel,this._channel.binaryType="arraybuffer",typeof this._channel.bufferedAmountLowThreshold=="number"&&(this._channel.bufferedAmountLowThreshold=y),this.channelName=this._channel.label,this._channel.onmessage=C=>{this._onChannelMessage(C)},this._channel.onbufferedamountlow=()=>{this._onChannelBufferedAmountLow()},this._channel.onopen=()=>{this._onChannelOpen()},this._channel.onclose=()=>{this._onChannelClose()},this._channel.onerror=C=>{let S=C.error instanceof Error?C.error:new Error(`Datachannel error: ${C.message} ${C.filename}:${C.lineno}:${C.colno}`);this.destroy(l(S,"ERR_DATA_CHANNEL"))};let p=!1;this._closingInterval=setInterval(()=>{this._channel&&this._channel.readyState==="closing"?(p&&this._onChannelClose(),p=!0):p=!1},5e3)}_read(){}_write(I,p,C){if(this.destroyed)return C(l(new Error("cannot write after peer is destroyed"),"ERR_DATA_CHANNEL"));if(this._connected){try{this.send(I)}catch(S){return this.destroy(l(S,"ERR_DATA_CHANNEL"))}this._channel.bufferedAmount>y?(this._debug("start backpressure: bufferedAmount %d",this._channel.bufferedAmount),this._cb=C):C(null)}else this._debug("write before connect"),this._chunk=I,this._cb=C}_onFinish(){if(!this.destroyed){let I=()=>{setTimeout(()=>this.destroy(),1e3)};this._connected?I():this.once("connect",I)}}_startIceCompleteTimeout(){this.destroyed||this._iceCompleteTimer||(this._debug("started iceComplete timeout"),this._iceCompleteTimer=setTimeout(()=>{this._iceComplete||(this._iceComplete=!0,this._debug("iceComplete timeout completed"),this.emit("iceTimeout"),this.emit("_iceComplete"))},this.iceCompleteTimeout))}_createOffer(){this.destroyed||this._pc.createOffer(this.offerOptions).then(I=>{if(this.destroyed)return;this.trickle||this.allowHalfTrickle||(I.sdp=o(I.sdp)),I.sdp=this.sdpTransform(I.sdp);let p=()=>{if(!this.destroyed){let C=this._pc.localDescription||I;this._debug("signal"),this.emit("signal",{type:C.type,sdp:C.sdp})}};this._pc.setLocalDescription(I).then(()=>{this._debug("createOffer success"),this.destroyed||(this.trickle||this._iceComplete?p():this.once("_iceComplete",p))}).catch(C=>{this.destroy(l(C,"ERR_SET_LOCAL_DESCRIPTION"))})}).catch(I=>{this.destroy(l(I,"ERR_CREATE_OFFER"))})}_requestMissingTransceivers(){this._pc.getTransceivers&&this._pc.getTransceivers().forEach(I=>{I.mid||!I.sender.track||I.requested||(I.requested=!0,this.addTransceiver(I.sender.track.kind))})}_createAnswer(){this.destroyed||this._pc.createAnswer(this.answerOptions).then(I=>{if(this.destroyed)return;this.trickle||this.allowHalfTrickle||(I.sdp=o(I.sdp)),I.sdp=this.sdpTransform(I.sdp);let p=()=>{if(!this.destroyed){let C=this._pc.localDescription||I;this._debug("signal"),this.emit("signal",{type:C.type,sdp:C.sdp}),this.initiator||this._requestMissingTransceivers()}};this._pc.setLocalDescription(I).then(()=>{this.destroyed||(this.trickle||this._iceComplete?p():this.once("_iceComplete",p))}).catch(C=>{this.destroy(l(C,"ERR_SET_LOCAL_DESCRIPTION"))})}).catch(I=>{this.destroy(l(I,"ERR_CREATE_ANSWER"))})}_onConnectionStateChange(){this.destroyed||this._pc.connectionState==="failed"&&this.destroy(l(new Error("Connection failed."),"ERR_CONNECTION_FAILURE"))}_onIceStateChange(){if(this.destroyed)return;let I=this._pc.iceConnectionState,p=this._pc.iceGatheringState;this._debug("iceStateChange (connection: %s) (gathering: %s)",I,p),this.emit("iceStateChange",I,p),(I==="connected"||I==="completed")&&(this._pcReady=!0,this._maybeReady()),I==="failed"&&this.destroy(l(new Error("Ice connection failed."),"ERR_ICE_CONNECTION_FAILURE")),I==="closed"&&this.destroy(l(new Error("Ice connection closed."),"ERR_ICE_CONNECTION_CLOSED"))}getStats(I){let p=C=>(Object.prototype.toString.call(C.values)==="[object Array]"&&C.values.forEach(S=>{Object.assign(C,S)}),C);this._pc.getStats.length===0||this._isReactNativeWebrtc?this._pc.getStats().then(C=>{let S=[];C.forEach(b=>{S.push(p(b))}),I(null,S)},C=>I(C)):0<this._pc.getStats.length?this._pc.getStats(C=>{if(this.destroyed)return;let S=[];C.result().forEach(b=>{let R={};b.names().forEach(v=>{R[v]=b.stat(v)}),R.id=b.id,R.type=b.type,R.timestamp=b.timestamp,S.push(p(R))}),I(null,S)},C=>I(C)):I(null,[])}_maybeReady(){if(this._debug("maybeReady pc %s channel %s",this._pcReady,this._channelReady),this._connected||this._connecting||!this._pcReady||!this._channelReady)return;this._connecting=!0;let I=()=>{this.destroyed||this.getStats((p,C)=>{if(this.destroyed)return;p&&(C=[]);let S={},b={},R={},v=!1;C.forEach(_=>{(_.type==="remotecandidate"||_.type==="remote-candidate")&&(S[_.id]=_),(_.type==="localcandidate"||_.type==="local-candidate")&&(b[_.id]=_),(_.type==="candidatepair"||_.type==="candidate-pair")&&(R[_.id]=_)});let m=_=>{v=!0;let U=b[_.localCandidateId];U&&(U.ip||U.address)?(this.localAddress=U.ip||U.address,this.localPort=+U.port):U&&U.ipAddress?(this.localAddress=U.ipAddress,this.localPort=+U.portNumber):typeof _.googLocalAddress=="string"&&(U=_.googLocalAddress.split(":"),this.localAddress=U[0],this.localPort=+U[1]),this.localAddress&&(this.localFamily=this.localAddress.includes(":")?"IPv6":"IPv4");let M=S[_.remoteCandidateId];M&&(M.ip||M.address)?(this.remoteAddress=M.ip||M.address,this.remotePort=+M.port):M&&M.ipAddress?(this.remoteAddress=M.ipAddress,this.remotePort=+M.portNumber):typeof _.googRemoteAddress=="string"&&(M=_.googRemoteAddress.split(":"),this.remoteAddress=M[0],this.remotePort=+M[1]),this.remoteAddress&&(this.remoteFamily=this.remoteAddress.includes(":")?"IPv6":"IPv4"),this._debug("connect local: %s:%s remote: %s:%s",this.localAddress,this.localPort,this.remoteAddress,this.remotePort)};if(C.forEach(_=>{_.type==="transport"&&_.selectedCandidatePairId&&m(R[_.selectedCandidatePairId]),(_.type==="googCandidatePair"&&_.googActiveConnection==="true"||(_.type==="candidatepair"||_.type==="candidate-pair")&&_.selected)&&m(_)}),!v&&(!Object.keys(R).length||Object.keys(b).length))return void setTimeout(I,100);if(this._connecting=!1,this._connected=!0,this._chunk){try{this.send(this._chunk)}catch(U){return this.destroy(l(U,"ERR_DATA_CHANNEL"))}this._chunk=null,this._debug('sent chunk from "write before connect"');let _=this._cb;this._cb=null,_(null)}typeof this._channel.bufferedAmountLowThreshold!="number"&&(this._interval=setInterval(()=>this._onInterval(),150),this._interval.unref&&this._interval.unref()),this._debug("connect"),this.emit("connect")})};I()}_onInterval(){this._cb&&this._channel&&!(this._channel.bufferedAmount>y)&&this._onChannelBufferedAmountLow()}_onSignalingStateChange(){this.destroyed||(this._pc.signalingState==="stable"&&(this._isNegotiating=!1,this._debug("flushing sender queue",this._sendersAwaitingStable),this._sendersAwaitingStable.forEach(I=>{this._pc.removeTrack(I),this._queuedNegotiation=!0}),this._sendersAwaitingStable=[],this._queuedNegotiation?(this._debug("flushing negotiation queue"),this._queuedNegotiation=!1,this._needsNegotiation()):(this._debug("negotiated"),this.emit("negotiated"))),this._debug("signalingStateChange %s",this._pc.signalingState),this.emit("signalingStateChange",this._pc.signalingState))}_onIceCandidate(I){this.destroyed||(I.candidate&&this.trickle?this.emit("signal",{type:"candidate",candidate:{candidate:I.candidate.candidate,sdpMLineIndex:I.candidate.sdpMLineIndex,sdpMid:I.candidate.sdpMid}}):!I.candidate&&!this._iceComplete&&(this._iceComplete=!0,this.emit("_iceComplete")),I.candidate&&this._startIceCompleteTimeout())}_onChannelMessage(I){if(this.destroyed)return;let p=I.data;p instanceof ArrayBuffer&&(p=B.from(p)),this.push(p)}_onChannelBufferedAmountLow(){if(!this.destroyed&&this._cb){this._debug("ending backpressure: bufferedAmount %d",this._channel.bufferedAmount);let I=this._cb;this._cb=null,I(null)}}_onChannelOpen(){this._connected||this.destroyed||(this._debug("on channel open"),this._channelReady=!0,this._maybeReady())}_onChannelClose(){this.destroyed||(this._debug("on channel close"),this.destroy())}_onTrack(I){this.destroyed||I.streams.forEach(p=>{this._debug("on track"),this.emit("track",I.track,p),this._remoteTracks.push({track:I.track,stream:p}),this._remoteStreams.some(C=>C.id===p.id)||(this._remoteStreams.push(p),g(()=>{this._debug("on stream"),this.emit("stream",p)}))})}_debug(){let I=[].slice.call(arguments);I[0]="["+this._id+"] "+I[0],h.apply(null,I)}}w.WEBRTC_SUPPORT=!!E(),w.config={iceServers:[{urls:["stun:stun.l.google.com:19302","stun:global.stun.twilio.com:3478"]}],sdpSemantics:"unified-plan"},w.channelConfig={},i.exports=w},{buffer:3,debug:4,"err-code":6,"get-browser-rtc":8,"queue-microtask":13,randombytes:14,"readable-stream":29}]},{},[])("/")})});var Sr=rs((Ho,mr)=>{"use strict";mr.exports=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")}});var He,yt,ct,Lt,$,lt,At,ht,dt,it,_r,xt=Ut(async()=>{He=typeof window>"u";He||(await Promise.resolve().then(()=>(wr(),os))).default;yt={AVOID_INTERVALS:!1,USE_TEST_TRANSPORTS:!1,ICE_DELAY:{min:250,max:3e3},ICE_OFFER_FAILURE_RATE:.2,ICE_ANSWER_FAILURE_RATE:.15,AVOID_FOLLOWERS_NODES:!1,AUTO_START:!0,PUBLIC_PEERS_COUNT:100,PEERS_COUNT:1860,BOOTSTRAPS_PER_PEER:10,DELAY_BETWEEN_INIT:10,RANDOM_UNICAST_PER_SEC:0,RANDOM_GOSSIP_PER_SEC:0,DIFFUSION_TEST_DELAY:1e4},ct={DEFAULT_VERBOSE:2,CONNECTION_UPGRADE_TIMEOUT:15e3,IS_BROWSER:!He,MANUAL_BAN_MODE:!1},Lt={PORT:8080,AUTO_KICK_DELAY:6e4,AUTO_KICK_DURATION:3e4,MAX_WS_IN_CONNS:20},$={DIFFICULTY:0,ARGON2_MEM:2**16,ARE_IDS_HEX:!0,PUBLIC_PREFIX:"0",STANDARD_PREFIX:"1",ID_LENGTH:16,PUBKEY_LENGTH:32,PRIVATEKEY_LENGTH:32,SIGNATURE_LENGTH:64},lt={CENTRALIZED_STUN_SERVERS:!1,MAX_SDP_OFFERS:2,ICE_COMPLETE_TIMEOUT:1e3,SIGNAL_CREATION_TIMEOUT:8e3,SDP_OFFER_EXPIRATION:4e4,WS_CLIENT:WebSocket,WS_SERVER:He?(await Promise.resolve().then(()=>ss(Sr(),1))).WebSocketServer:null,PEER:He?(await import("simple-peer")).default:window.SimplePeer},At={PEER_LINK_DELAY:1e4,PEER_LINK_EXPIRATION:6e4,LOOP_DELAY:2500,TARGET_NEIGHBORS_COUNT:5,ON_CONNECT_DISPATCH:{DELAY:0,BROADCAST_EVENT:!1,OVER_NEIGHBORED:!0,SHARE_HISTORY:!1},ON_DISCONNECT_DISPATCH:{DELAY:0,BROADCAST_EVENT:!1},ON_UNICAST:{DIGEST_TRAVELED_ROUTE:!0}},ht={MAX_HOPS:8,MAX_NODES:256,MAX_ROUTES:5,MARKERS_BYTES:{message:0,0:"message",handshake:1,1:"handshake",signal_answer:2,2:"signal_answer",signal_offer:3,3:"signal_offer"}},dt={EXPIRATION:1e4,CACHE_DURATION:2e4,HOPS:{default:20,signal_offer:6,diffusion_test:100,over_neighbored:6},TRANSMISSION_RATE:{MIN_NEIGHBOURS_TO_APPLY_PONDERATION:2,NEIGHBOURS_PONDERATION:5,Default:1,signal_offer:.618},MARKERS_BYTES:{gossip:128,128:"gossip",signal_offer:129,129:"signal_offer",peer_connected:130,130:"peer_connected",peer_disconnected:131,131:"peer_disconnected",diffusion_test:132,132:"diffusion_test",over_neighbored:133,133:"over_neighbored"}},it={SIMULATOR:"color: yellow; font-weight: bold;",ARBITER:"color: white;",CRYPTO_CODEX:"color: green;",GOSSIP:"color: fuchsia;",UNICAST:"color: cyan;",PEER_STORE:"color: orange;",SERVICE:"color: teal;",PUNISHER:{BAN:"color: red; font-weight: bold;",KICK:"color: darkorange; font-weight: bold;"}},_r={SIMULATION:yt,NODE:ct,TRANSPORTS:lt,DISCOVERY:At,IDENTITY:$,UNICAST:ht,GOSSIP:dt,LOG_CSS:it}});var Je,qe,Dr=Ut(async()=>{await xt();Je=class{sandbox;SIGNAL_OFFER_TIMEOUT=3e4;SIGNAL_ANSWER_TIMEOUT=1e4;PENDING_OFFERS={};PENDING_ANSWERS={};sdpToBuild=[];signalsToDigest=[];constructor(t){this.sandbox=t}tick(){let t=Date.now();this.#e(t);let e=this.sdpToBuild;this.sdpToBuild=[];for(let{transportId:i,type:o,time:c}of e){if(c>t){this.sdpToBuild.push({transportId:i,type:o,time:c});continue}let h=this.sandbox.transportInstances[i];if(!h||h.destroying||h.destroyed)continue;let{success:E,signalData:A,reason:u}=this.#t(i,o);!E||!A?h.dispatchError(u||`Failed to build SDP for peer: ${this.id}`):h.callbacks.signal?.forEach(g=>g(A))}let r=this.signalsToDigest;this.signalsToDigest=[];for(let{signalData:i,receiverId:o}of r){let c=this.sandbox.transportInstances[o];if(!c||c.destroying||c.destroyed)continue;let{success:h,reason:E}=this.#n(i,o);h||c.dispatchError(E||`Failed to digest signal for peer: ${this.id}`)}}#e(t=Date.now()){for(let e in this.PENDING_OFFERS)for(let r in this.PENDING_OFFERS[e])t>this.PENDING_OFFERS[e][r].expiration&&delete this.PENDING_OFFERS[e][r];for(let e in this.PENDING_ANSWERS){let r=this.PENDING_ANSWERS[e];t>r.expiration&&delete this.PENDING_ANSWERS[e]}}#t(t,e){if(e!=="offer"&&e!=="answer")return{success:!1,signalData:null,reason:`Invalid signal type: ${e}.`};if(e==="answer"&&this.PENDING_ANSWERS[t])return{success:!1,signalData:null,reason:`There is already a pending answer for transport ID: ${t}`};let r=e==="offer"?this.SIGNAL_OFFER_TIMEOUT:this.SIGNAL_ANSWER_TIMEOUT||1e4,i=Math.random().toString(36).substring(2),o={transportId:t,expiration:Date.now()+r,type:e,sdp:{id:i,v:"0",o:`- ${Math.random().toString(36).substring(2)} ${Math.floor(Math.random()*1e6)} 2 IN IP4 127.0.0.1\r
3
- `,s:"-",t:"0 0",a:["group:BUNDLE..."]}};return e==="offer"&&this.PENDING_OFFERS[t]?.[i]?{success:!1,signalData:null,reason:`There is already a pending offer with the same SDP ID for transport ID: ${t} (extreme case)`}:(e==="offer"&&!this.PENDING_OFFERS[t]&&(this.PENDING_OFFERS[t]={}),e==="offer"&&(this.PENDING_OFFERS[t][i]=o),e==="answer"&&(this.PENDING_ANSWERS[t]=o),{success:!0,signalData:o,reason:"na"})}#n(t,e){let{transportId:r,type:i,sdp:o}=t;if(r===void 0)return{success:!1,reason:"Missing transportId in signal data."};if(i!=="offer"&&i!=="answer")return{success:!1,reason:`Invalid signal type: ${i}.`};if(i==="offer"&&(!this.PENDING_OFFERS[r]||!this.PENDING_OFFERS[r][o.id]))return{success:!1,reason:`No pending offer found for transport ID: ${r} with SDP ID: ${o.id}`};if(i==="answer"&&(!this.PENDING_ANSWERS[r]||this.PENDING_ANSWERS[r].sdp.id!==o.id))return{success:!1,reason:`No pending answer found for transport ID: ${r} with SDP ID: ${o.id}`};if(i==="offer"&&Math.random()<yt.ICE_OFFER_FAILURE_RATE)return{success:!1,reason:`Simulated failure for 'offer' signal from ${r} to ${e}`};if(i==="answer"&&Math.random()<yt.ICE_ANSWER_FAILURE_RATE)return{success:!1,reason:`Simulated failure for 'answer' signal from ${r} to ${e}`};if(i==="offer")return this.buildSDP(e,"answer"),{success:!0,reason:"na"};delete this.PENDING_OFFERS[e],delete this.PENDING_ANSWERS[r];let c=this.sandbox.linkInstances(e,r);return{success:!c,reason:c||"na"}}buildSDP(t,e){let r={min:yt.ICE_DELAY.min,max:yt.ICE_DELAY.max},i=Math.floor(Math.random()*(r.max-r.min+1))+r.min;this.sdpToBuild.push({transportId:t,type:e,time:Date.now()+i})}digestSignal(t,e){this.signalsToDigest.push({signalData:t,receiverId:e})}},qe=class{verbose=ct.DEFAULT_VERBOSE;wsGlobalIndex=1;tGlobalIndex=1;transportInstances={};wsConnections={};publicWsServers={};inscribeWebSocketServer(t,e){this.publicWsServers[t]=e}removeWebSocketServer(t){delete this.publicWsServers[t]}inscribeWsConnection(t){let e=(this.wsGlobalIndex++).toString();t.id=e,this.wsConnections[e]=t,this.verbose>3&&console.log(`[SANDBOX] Inscribed wsConnection: ${t.id}`)}connectToWebSocketServer(t,e,r){let i=this.wsConnections[e],o=this.publicWsServers[t];if(!i||!o||o.closing||o.clients.size>=o.maxClients)return;let c=new r(o,e);o.clients.add(c),c.init(i.id),o.callbacks.connection.forEach(h=>h(c)),i.init(c.id)}inscribeInstance(t){let e=(this.tGlobalIndex++).toString();t.id=e,this.transportInstances[e]=t,this.verbose>3&&console.log(`[SANDBOX] Inscribed transport: ${e}`)}linkInstances(t,e){let[r,i]=[this.transportInstances[t],this.transportInstances[e]];if(!r||!i)return`Missing transport instances: ${t}=>${!!r}, ${e}=>${!!i}`;if(r.initiator&&i.initiator)return`Both transport instances cannot be initiators: ${t}, ${e}`;if(r.destroying||i.destroying)return`One of the transport instances is destroying: ${t}=>${r.destroying}, ${e}=>${i.destroying}`;if(r.destroyed||i.destroyed)return`One of the transport instances is destroyed: ${t}=>${r.destroyed}, ${e}=>${i.destroyed}`;if(r.remoteId)return`Transport instance tA: ${t} is already linked to remoteId: ${r.remoteId}`;if(i.remoteId)return`Transport instance tB: ${e} is already linked to remoteId: ${i.remoteId}`;r.remoteId=e,i.remoteId=t,this.verbose>2&&console.log(`[SANDBOX] Linked transports: ${t} <-> ${e}`),r.callbacks.connect.forEach(o=>o()),i.callbacks.connect.forEach(o=>o())}sendData(t,e,r){if(t===void 0)return{success:!1,reason:`Cannot send message from id: ${t}`};if(e===void 0)return{success:!1,reason:`Cannot send message to id: ${e}`};let i=this.transportInstances[t];if(!i)return{success:!1,reason:`No transport instance found for id: ${t}`};if(!i.remoteId)return{success:!1,reason:`Transport instance ${t} is not linked to any remoteId`};if(i.id!==t)return{success:!1,reason:`Wrong id for senderInstance ${t} !== ${i.id}`};if(i.remoteId!==e)return{success:!1,reason:`Transport instance ${t} is not linked to remoteId: ${e}`};let o=this.transportInstances[e];return o?o.remoteId?o.id!==e?{success:!1,reason:`Wrong id for remoteInstance ${t} !== ${e}`}:o.remoteId!==t?{success:!1,reason:`Transport instance ${t} is not linked to remoteId: ${e}`}:(this.enqueueTransportData(t,e,r),{success:!0,reason:"na"}):{success:!1,reason:`Transport instance ${e} is not linked to any remoteId`}:{success:!1,reason:`No transport instance found for id: ${e}`}}destroyTransportAndAssociatedTransport(t){let e=this.transportInstances[t];if(!e)return;let r=e.remoteId,i=r?this.transportInstances[r]:null;this.verbose>3&&console.log(`[SANDBOX] Destroying transports: ${t}`),e&&i&&(this.verbose>2&&console.log(`[SANDBOX] Destroying linked transports: ${t} & ${r}`),delete this.transportInstances[r],i.destroy(`Remote transport instance ${t} closed the connection.`)),delete this.transportInstances[t],e.close()}batchSize=2500;messageQueueSync=[];queueIndex=0;messageQueue=new Array(1e5);queueStart=0;queueEnd=0;queueCount=0;processMessageQueueSync(){let t=this.messageQueueSync.length;if(t===0)return;let e=this.batchSize;t>this.batchSize*3&&(e=this.batchSize*1.5),t>this.batchSize*5&&(e=this.batchSize*2),t>this.batchSize*10&&(e=this.batchSize*3),t>this.batchSize*20&&(e=this.batchSize*5),e=Math.round(e);let r=Math.min(this.queueIndex+e,t);for(let o=this.queueIndex;o<r;o++){let[c,h,E,A]=this.messageQueueSync[o];c==="transport_data"?this.#e(h,E,A):c==="ws_message"&&this.#t(h,E,A)}if(this.queueIndex=r,this.queueIndex<5e3)return;let i=this.messageQueueSync.length>5e4;i&&console.warn(`[SANDBOX] Message queue is very long: ${this.messageQueueSync.length} messages pending.`),i&&(this.queueIndex+=this.batchSize),this.messageQueueSync=this.messageQueueSync.slice(this.queueIndex),this.queueIndex=0}async processMessageQueue(){if(this.queueCount===0)return;let t=this.batchSize;this.queueCount>this.batchSize*3&&(t=this.batchSize*1.5),this.queueCount>this.batchSize*5&&(t=this.batchSize*2),this.queueCount>this.batchSize*10&&(t=this.batchSize*3),this.queueCount>this.batchSize*20&&(t=this.batchSize*5);let e=Math.min(t,this.queueCount);for(let r=0;r<e;r++){let i=this.messageQueue[this.queueStart];this.queueStart=(this.queueStart+1)%this.messageQueue.length;let[o,c,h,E]=i;o==="transport_data"?this.#e(c,h,E):o==="ws_message"&&this.#t(c,h,E)}await new Promise(r=>setTimeout(r,0)),this.queueCount-=e}#e(t,e,r){let[i,o]=[this.transportInstances[t],this.transportInstances[e]];if(!i||!o||i.destroying||o.destroying){i?.close(),o?.close();return}if(i.destroyed){o.close();return}if(o.destroyed){i.close();return}for(let c of o.callbacks.data)c(r)}#t(t,e,r){let[i,o]=[this.wsConnections[t],this.wsConnections[e]];if(!o||!i||o.readyState!==1||i.readyState!==1){o?.close(),i?.close();return}if(o.onmessage)o.onmessage({data:r});else for(let c of o.callbacks.message)c(r)}enqueueTransportDataSync(t,e,r){this.messageQueueSync.push(["transport_data",t,e,r])}enqueueWsMessageSync(t,e,r){this.messageQueueSync.push(["ws_message",t,e,r])}enqueueTransportData(t,e,r){this.messageQueue[this.queueEnd]=["transport_data",t,e,r],this.queueEnd=(this.queueEnd+1)%this.messageQueue.length,this.queueCount++,this.queueCount===this.messageQueue.length&&(console.error("[SANDBOX] Message queue overflow, dropping oldest messages."),this.queueStart=(this.queueStart+this.batchSize)%this.messageQueue.length,this.queueCount-=this.batchSize)}enqueueWsMessage(t,e,r){this.messageQueue[this.queueEnd]=["ws_message",t,e,r],this.queueEnd=(this.queueEnd+1)%this.messageQueue.length,this.queueCount++,this.queueCount===this.messageQueue.length&&(console.error("[SANDBOX] Message queue overflow, dropping oldest messages."),this.queueStart=(this.queueStart+this.batchSize)%this.messageQueue.length,this.queueCount-=this.batchSize)}}});var Ve={};Te(Ve,{ICE_CANDIDATE_EMITTER:()=>vn,SANDBOX:()=>Qt,TEST_WS_EVENT_MANAGER:()=>We,TestTransport:()=>Tn,TestWsConnection:()=>je,TestWsServer:()=>xn});var Nn,je,xn,Tn,Qt,vn,We,Xe=Ut(async()=>{await xt();await Dr();Nn=class{toInit=[];toClose=[];toError=[];initTick(){if(this.toInit.length<=0)return;let t=Date.now(),e=this.toInit;this.toInit=[];for(let{connId:r,time:i}of e)i>t?this.toInit.push({connId:r,time:i}):this.#e(r)}closeTick(){if(this.toClose.length<=0)return;let t=Date.now(),e=this.toClose;this.toClose=[];for(let{wsId:r,remoteWsId:i,time:o}of e)o>t?this.toClose.push({wsId:r,remoteWsId:i,time:o}):this.#t(r,i)}cleanerTick(){let t=Date.now();for(let e of Object.values(Qt.publicWsServers))for(let r of e.clients)r.readyState===3&&e.clients.delete(r)}errorTick(){if(this.toError.length<=0)return;let t=Date.now(),e=this.toError;this.toError=[];for(let{wsId:r,error:i,time:o}of e)o>t?this.toError.push({wsId:r,error:i,time:o}):Qt.wsConnections[r]?.dispatchError(i)}#e(t){let e=Qt.wsConnections[t];e&&Qt.connectToWebSocketServer(e.url,e.id,je)}#t(t,e){let r=Qt.wsConnections[t],i=Qt.wsConnections[e];r?.onclose?.(),i?.onclose?.();for(let o of r?.callbacks?.close||[])o();for(let o of i?.callbacks?.close||[])o()}scheduleInit(t,e=500){this.toInit.push({connId:t,time:Date.now()+e})}scheduleClose(t,e,r=100){this.toClose.push({wsId:t,remoteWsId:e,time:Date.now()+r})}scheduleError(t,e,r=100){this.toError.push({wsId:t,error:e,time:Date.now()+r})}},je=class{id;isTestTransport=!0;remoteWsId=null;remoteId=!1;delayBeforeConnectionTry=500;readyState=0;url;callbacks={message:[],close:[],error:[]};onmessage;onopen;onclose;onerror;constructor(t="ws://...",e){Qt.inscribeWsConnection(this),!e&&(this.url=t,We.scheduleInit(this.id,this.delayBeforeConnectionTry))}init(t){if(!this.readyState===3||this.remoteWsId){this.close(),console.error(`WebSocket instance already closed or connected: ${this.id}`),We.scheduleError(this.id,`Failed to connect to WebSocket server at ${this.url}`,1e3);return}this.remoteWsId=t,this.readyState=1,this.onopen&&this.onopen()}on(t,e){if(!this.callbacks[t])return console.error(`Unknown event: ${t}`);this.callbacks[t].push(e)}close(){if(this.readyState===3)return;this.readyState=3;let t=Qt.wsConnections[this.remoteWsId];t&&(t.readyState=3),this.remoteWsId&&We.scheduleClose(this.id,this.remoteWsId,100)}send(t){if(!this.remoteWsId){console.error(`No WebSocket server found for URL: ${this.url}`),this.close();return}Qt.enqueueWsMessage(this.id,this.remoteWsId,t)}dispatchError(t){this.callbacks.error.forEach(e=>e(t)),this.onerror&&this.onerror(t)}},xn=class{url;clients=new Set;maxClients=Lt.MAX_WS_IN_CONNS||20;callbacks={connection:[],close:[],error:[]};constructor(t={port,host:domain}){this.url=`ws://${t.host}:${t.port}`,Qt.inscribeWebSocketServer(this.url,this)}on(t,e){if(!this.callbacks[t])return console.error(`Unknown event: ${t}`);this.callbacks[t].push(e)}close(){if(!this.closing){this.closing=!0,Qt.removeWebSocketServer(this.url);for(let t of this.callbacks.close)t()}}},Tn=class{destroying;destroyed;id=null;isTestTransport=!0;remoteId=null;remoteWsId=!1;callbacks={connect:[],close:[],data:[],signal:[],error:[]};initiator;trickle;wrtc;constructor(t={initiator:!1,trickle:!0,wrtc:null,timeout:5e3}){Qt.inscribeInstance(this),this.initiator=t.initiator,this.trickle=t.trickle,this.wrtc=t.wrtc,this.initiator&&vn.buildSDP(this.id,"offer")}on(t,e){this.callbacks[t]&&this.callbacks[t].push(e)}dispatchError(t){this.callbacks.error.forEach(e=>e(new Error(t)))}signal(t){if(!this.destroying){if(this.destroyed)throw new Error(`Transport instance already destroyed: ${this.id}`);if(this.remoteId)return this.dispatchError(`Transport instance already connected to a remote ID: ${this.remoteId}`);if(!t.sdp||!t.sdp.id)return this.dispatchError("Invalid remote SDP:",t);if(t.type==="answer"&&!this.initiator)return this.dispatchError("Invalid remote SDP type: expecting an answer.");if(t.type==="offer"&&this.initiator)return this.dispatchError("Invalid remote SDP type: expecting an offer.");vn.digestSignal(t,this.id)}}send(t){let{success:e,reason:r}=Qt.sendData(this.id,this.remoteId,t);e||this.destroy(r)}close(){this.destroy()}destroy(t=null){this.destroying||(this.destroying=!0,t&&this.dispatchError(t),this.callbacks.close?.forEach(e=>e()),Qt.destroyTransportAndAssociatedTransport(this.id),this.destroyed=!0,this.destroying=!1)}},Qt=new qe,vn=new Je(Qt),We=new Nn});var er={};Te(er,{default:()=>to,ed25519:()=>Kn,sha512:()=>zs});function Us(a){return a instanceof Uint8Array||ArrayBuffer.isView(a)&&a.constructor.name==="Uint8Array"}function ri(a,t,e=""){let r=Us(a),i=a?.length,o=t!==void 0;if(!r||o&&i!==t){let c=e&&`"${e}" `,h=o?` of length ${t}`:"",E=r?`length=${i}`:`type=${typeof a}`;throw new Error(c+"expected Uint8Array"+h+", got "+E)}return a}function Ur(a,t=!0){if(a.destroyed)throw new Error("Hash instance has been destroyed");if(t&&a.finished)throw new Error("Hash#digest() has already been called")}function Ms(a,t){ri(a,void 0,"digestInto() output");let e=t.outputLen;if(a.length<e)throw new Error('"digestInto() output" expected to be of length >='+e)}function Yn(...a){for(let t=0;t<a.length;t++)a[t].fill(0)}function On(a){return new DataView(a.buffer,a.byteOffset,a.byteLength)}function Gs(a,t={}){let e=(i,o)=>a(o).update(i).digest(),r=a(void 0);return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=i=>a(i),Object.assign(e,t),Object.freeze(e)}function Hs(a,t=!1){return t?{h:Number(a&sn),l:Number(a>>Mr&sn)}:{h:Number(a>>Mr&sn)|0,l:Number(a&sn)|0}}function Ps(a,t=!1){let e=a.length,r=new Uint32Array(e),i=new Uint32Array(e);for(let o=0;o<e;o++){let{h:c,l:h}=Hs(a[o],t);[r[o],i[o]]=[c,h]}return[r,i]}function jt(a,t,e,r){let i=(t>>>0)+(r>>>0);return{h:a+e+(i/2**32|0)|0,l:i|0}}var ls,ds,Kn,Or,wt,an,Nr,xr,Mn,Gn,Is,Pt,Fe,Es,ft,Cs,ps,Bs,vt,gn,Hr,Pr,Jn,Wt,Tr,qn,Yr,ys,he,Kr,cn,ae,P,Jr,qr,Wr,Qs,Ln,Hn,te,ee,me,jr,Wn,Ht,bs,vr,ws,hn,jn,Vn,Vr,Xn,$n,Xr,$r,Zr,zr,ti,ms,Ss,Zn,ei,_s,Rs,Ds,zn,tr,Ns,xs,Ts,fn,vs,ni,Pn,Fs,Fr,kr,ks,Ls,Os,bt,sn,Mr,Gr,Lr,be,we,on,An,Ys,Ks,Js,qs,Ws,js,ii,Vs,Xs,Zt,zt,$s,Zs,zs,to,nr=Ut(()=>{ls=Object.defineProperty,ds=(a,t)=>{for(var e in t)ls(a,e,{get:t[e],enumerable:!0})},Kn={};ds(Kn,{Point:()=>te,etc:()=>Ds,getPublicKey:()=>$r,getPublicKeyAsync:()=>Xr,hash:()=>Qs,hashes:()=>zn,keygen:()=>Ns,keygenAsync:()=>xs,sign:()=>Ss,signAsync:()=>ms,utils:()=>Ts,verify:()=>Rs,verifyAsync:()=>_s});Or={p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n},{p:wt,n:an,Gx:Nr,Gy:xr,a:Mn,d:Gn,h:Is}=Or,Pt=32,Fe=64,Es=(...a)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...a)},ft=(a="")=>{let t=new Error(a);throw Es(t,ft),t},Cs=a=>typeof a=="bigint",ps=a=>typeof a=="string",Bs=a=>a instanceof Uint8Array||ArrayBuffer.isView(a)&&a.constructor.name==="Uint8Array",vt=(a,t,e="")=>{let r=Bs(a),i=a?.length,o=t!==void 0;if(!r||o&&i!==t){let c=e&&`"${e}" `,h=o?` of length ${t}`:"",E=r?`length=${i}`:`type=${typeof a}`;ft(c+"expected Uint8Array"+h+", got "+E)}return a},gn=a=>new Uint8Array(a),Hr=a=>Uint8Array.from(a),Pr=(a,t)=>a.toString(16).padStart(t,"0"),Jn=a=>Array.from(vt(a)).map(t=>Pr(t,2)).join(""),Wt={_0:48,_9:57,A:65,F:70,a:97,f:102},Tr=a=>{if(a>=Wt._0&&a<=Wt._9)return a-Wt._0;if(a>=Wt.A&&a<=Wt.F)return a-(Wt.A-10);if(a>=Wt.a&&a<=Wt.f)return a-(Wt.a-10)},qn=a=>{let t="hex invalid";if(!ps(a))return ft(t);let e=a.length,r=e/2;if(e%2)return ft(t);let i=gn(r);for(let o=0,c=0;o<r;o++,c+=2){let h=Tr(a.charCodeAt(c)),E=Tr(a.charCodeAt(c+1));if(h===void 0||E===void 0)return ft(t);i[o]=h*16+E}return i},Yr=()=>globalThis?.crypto,ys=()=>Yr()?.subtle??ft("crypto.subtle must be defined, consider polyfill"),he=(...a)=>{let t=gn(a.reduce((r,i)=>r+vt(i).length,0)),e=0;return a.forEach(r=>{t.set(r,e),e+=r.length}),t},Kr=(a=Pt)=>Yr().getRandomValues(gn(a)),cn=BigInt,ae=(a,t,e,r="bad number: out of range")=>Cs(a)&&t<=a&&a<e?a:ft(r),P=(a,t=wt)=>{let e=a%t;return e>=0n?e:t+e},Jr=a=>P(a,an),qr=(a,t)=>{(a===0n||t<=0n)&&ft("no inverse n="+a+" mod="+t);let e=P(a,t),r=t,i=0n,o=1n,c=1n,h=0n;for(;e!==0n;){let E=r/e,A=r%e,u=i-c*E,g=o-h*E;r=e,e=A,i=c,o=h,c=u,h=g}return r===1n?P(i,t):ft("no inverse")},Wr=a=>{let t=zn[a];return typeof t!="function"&&ft("hashes."+a+" not set"),t},Qs=a=>Wr("sha512")(a),Ln=a=>a instanceof te?a:ft("Point expected"),Hn=2n**256n,te=class ce{static BASE;static ZERO;X;Y;Z;T;constructor(t,e,r,i){let o=Hn;this.X=ae(t,0n,o),this.Y=ae(e,0n,o),this.Z=ae(r,1n,o),this.T=ae(i,0n,o),Object.freeze(this)}static CURVE(){return Or}static fromAffine(t){return new ce(t.x,t.y,1n,P(t.x*t.y))}static fromBytes(t,e=!1){let r=Gn,i=Hr(vt(t,Pt)),o=t[31];i[31]=o&-129;let c=Wn(i);ae(c,0n,e?Hn:wt);let h=P(c*c),E=P(h-1n),A=P(r*h+1n),{isValid:u,value:g}=ws(E,A);u||ft("bad point: y not sqrt");let l=(g&1n)===1n,B=(o&128)!==0;return!e&&g===0n&&B&&ft("bad point: x==0, isLastByteOdd"),B!==l&&(g=P(-g)),new ce(g,c,1n,P(g*c))}static fromHex(t,e){return ce.fromBytes(qn(t),e)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let t=Mn,e=Gn,r=this;if(r.is0())return ft("bad point: ZERO");let{X:i,Y:o,Z:c,T:h}=r,E=P(i*i),A=P(o*o),u=P(c*c),g=P(u*u),l=P(E*t),B=P(u*P(l+A)),y=P(g+P(e*P(E*A)));if(B!==y)return ft("bad point: equation left != right (1)");let w=P(i*o),D=P(c*h);return w!==D?ft("bad point: equation left != right (2)"):this}equals(t){let{X:e,Y:r,Z:i}=this,{X:o,Y:c,Z:h}=Ln(t),E=P(e*h),A=P(o*i),u=P(r*h),g=P(c*i);return E===A&&u===g}is0(){return this.equals(me)}negate(){return new ce(P(-this.X),this.Y,this.Z,P(-this.T))}double(){let{X:t,Y:e,Z:r}=this,i=Mn,o=P(t*t),c=P(e*e),h=P(2n*P(r*r)),E=P(i*o),A=t+e,u=P(P(A*A)-o-c),g=E+c,l=g-h,B=E-c,y=P(u*l),w=P(g*B),D=P(u*B),I=P(l*g);return new ce(y,w,I,D)}add(t){let{X:e,Y:r,Z:i,T:o}=this,{X:c,Y:h,Z:E,T:A}=Ln(t),u=Mn,g=Gn,l=P(e*c),B=P(r*h),y=P(o*g*A),w=P(i*E),D=P((e+r)*(c+h)-l-B),I=P(w-y),p=P(w+y),C=P(B-u*l),S=P(D*I),b=P(p*C),R=P(D*C),v=P(I*p);return new ce(S,b,v,R)}subtract(t){return this.add(Ln(t).negate())}multiply(t,e=!0){if(!e&&(t===0n||this.is0()))return me;if(ae(t,1n,an),t===1n)return this;if(this.equals(ee))return ks(t).p;let r=me,i=ee;for(let o=this;t>0n;o=o.double(),t>>=1n)t&1n?r=r.add(o):e&&(i=i.add(o));return r}multiplyUnsafe(t){return this.multiply(t,!1)}toAffine(){let{X:t,Y:e,Z:r}=this;if(this.equals(me))return{x:0n,y:1n};let i=qr(r,wt);P(r*i)!==1n&&ft("invalid inverse");let o=P(t*i),c=P(e*i);return{x:o,y:c}}toBytes(){let{x:t,y:e}=this.assertValidity().toAffine(),r=jr(e);return r[31]|=t&1n?128:0,r}toHex(){return Jn(this.toBytes())}clearCofactor(){return this.multiply(cn(Is),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(an/2n,!1).double();return an%2n&&(t=t.add(this)),t.is0()}},ee=new te(Nr,xr,1n,P(Nr*xr)),me=new te(0n,1n,1n,0n);te.BASE=ee;te.ZERO=me;jr=a=>qn(Pr(ae(a,0n,Hn),Fe)).reverse(),Wn=a=>cn("0x"+Jn(Hr(vt(a)).reverse())),Ht=(a,t)=>{let e=a;for(;t-- >0n;)e*=e,e%=wt;return e},bs=a=>{let t=a*a%wt*a%wt,e=Ht(t,2n)*t%wt,r=Ht(e,1n)*a%wt,i=Ht(r,5n)*r%wt,o=Ht(i,10n)*i%wt,c=Ht(o,20n)*o%wt,h=Ht(c,40n)*c%wt,E=Ht(h,80n)*h%wt,A=Ht(E,80n)*h%wt,u=Ht(A,10n)*i%wt;return{pow_p_5_8:Ht(u,2n)*a%wt,b2:t}},vr=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,ws=(a,t)=>{let e=P(t*t*t),r=P(e*e*t),i=bs(a*r).pow_p_5_8,o=P(a*e*i),c=P(t*o*o),h=o,E=P(o*vr),A=c===a,u=c===P(-a),g=c===P(-a*vr);return A&&(o=h),(u||g)&&(o=E),(P(o)&1n)===1n&&(o=P(-o)),{isValid:A||u,value:o}},hn=a=>Jr(Wn(a)),jn=(...a)=>zn.sha512Async(he(...a)),Vn=(...a)=>Wr("sha512")(he(...a)),Vr=a=>{let t=a.slice(0,Pt);t[0]&=248,t[31]&=127,t[31]|=64;let e=a.slice(Pt,Fe),r=hn(t),i=ee.multiply(r),o=i.toBytes();return{head:t,prefix:e,scalar:r,point:i,pointBytes:o}},Xn=a=>jn(vt(a,Pt)).then(Vr),$n=a=>Vr(Vn(vt(a,Pt))),Xr=a=>Xn(a).then(t=>t.pointBytes),$r=a=>$n(a).pointBytes,Zr=a=>jn(a.hashable).then(a.finish),zr=a=>a.finish(Vn(a.hashable)),ti=(a,t,e)=>{let{pointBytes:r,scalar:i}=a,o=hn(t),c=ee.multiply(o).toBytes();return{hashable:he(c,r,e),finish:h=>{let E=Jr(o+hn(h)*i);return vt(he(c,jr(E)),Fe)}}},ms=async(a,t)=>{let e=vt(a),r=await Xn(t),i=await jn(r.prefix,e);return Zr(ti(r,i,e))},Ss=(a,t)=>{let e=vt(a),r=$n(t),i=Vn(r.prefix,e);return zr(ti(r,i,e))},Zn={zip215:!0},ei=(a,t,e,r=Zn)=>{a=vt(a,Fe),t=vt(t),e=vt(e,Pt);let{zip215:i}=r,o,c,h,E,A=Uint8Array.of();try{o=te.fromBytes(e,i),c=te.fromBytes(a.slice(0,Pt),i),h=Wn(a.slice(Pt,Fe)),E=ee.multiply(h,!1),A=he(c.toBytes(),o.toBytes(),t)}catch{}return{hashable:A,finish:u=>{if(E==null||!i&&o.isSmallOrder())return!1;let g=hn(u);return c.add(o.multiply(g,!1)).add(E.negate()).clearCofactor().is0()}}},_s=async(a,t,e,r=Zn)=>Zr(ei(a,t,e,r)),Rs=(a,t,e,r=Zn)=>zr(ei(a,t,e,r)),Ds={bytesToHex:Jn,hexToBytes:qn,concatBytes:he,mod:P,invert:qr,randomBytes:Kr},zn={sha512Async:async a=>{let t=ys(),e=he(a);return gn(await t.digest("SHA-512",e.buffer))},sha512:void 0},tr=(a=Kr(Pt))=>a,Ns=a=>{let t=tr(a),e=$r(t);return{secretKey:t,publicKey:e}},xs=async a=>{let t=tr(a),e=await Xr(t);return{secretKey:t,publicKey:e}},Ts={getExtendedPublicKeyAsync:Xn,getExtendedPublicKey:$n,randomSecretKey:tr},fn=8,vs=256,ni=Math.ceil(vs/fn)+1,Pn=2**(fn-1),Fs=()=>{let a=[],t=ee,e=t;for(let r=0;r<ni;r++){e=t,a.push(e);for(let i=1;i<Pn;i++)e=e.add(t),a.push(e);t=e.double()}return a},kr=(a,t)=>{let e=t.negate();return a?e:t},ks=a=>{let t=Fr||(Fr=Fs()),e=me,r=ee,i=2**fn,o=i,c=cn(i-1),h=cn(fn);for(let E=0;E<ni;E++){let A=Number(a&c);a>>=h,A>Pn&&(A-=o,a+=1n);let u=E*Pn,g=u,l=u+Math.abs(A)-1,B=E%2!==0,y=A<0;A===0?r=r.add(kr(B,t[g])):e=e.add(kr(y,t[l]))}return a!==0n&&ft("invalid wnaf"),{p:e,f:r}};Ls=a=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,a])}),Os=class{blockLen;outputLen;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(a,t,e,r){this.blockLen=a,this.outputLen=t,this.padOffset=e,this.isLE=r,this.buffer=new Uint8Array(a),this.view=On(this.buffer)}update(a){Ur(this),ri(a);let{view:t,buffer:e,blockLen:r}=this,i=a.length;for(let o=0;o<i;){let c=Math.min(r-this.pos,i-o);if(c===r){let h=On(a);for(;r<=i-o;o+=r)this.process(h,o);continue}e.set(a.subarray(o,o+c),this.pos),this.pos+=c,o+=c,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=a.length,this.roundClean(),this}digestInto(a){Ur(this),Ms(a,this),this.finished=!0;let{buffer:t,view:e,blockLen:r,isLE:i}=this,{pos:o}=this;t[o++]=128,Yn(this.buffer.subarray(o)),this.padOffset>r-o&&(this.process(e,0),o=0);for(let u=o;u<r;u++)t[u]=0;e.setBigUint64(r-8,BigInt(this.length*8),i),this.process(e,0);let c=On(a),h=this.outputLen;if(h%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let E=h/4,A=this.get();if(E>A.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;u<E;u++)c.setUint32(4*u,A[u],i)}digest(){let{buffer:a,outputLen:t}=this;this.digestInto(a);let e=a.slice(0,t);return this.destroy(),e}_cloneInto(a){a||=new this.constructor,a.set(...this.get());let{blockLen:t,buffer:e,length:r,finished:i,destroyed:o,pos:c}=this;return a.destroyed=o,a.finished=i,a.length=r,a.pos=c,r%t&&a.buffer.set(e),a}clone(){return this._cloneInto()}},bt=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),sn=BigInt(4294967295),Mr=BigInt(32);Gr=(a,t,e)=>a>>>e,Lr=(a,t,e)=>a<<32-e|t>>>e,be=(a,t,e)=>a>>>e|t<<32-e,we=(a,t,e)=>a<<32-e|t>>>e,on=(a,t,e)=>a<<64-e|t>>>e-32,An=(a,t,e)=>a>>>e-32|t<<64-e;Ys=(a,t,e)=>(a>>>0)+(t>>>0)+(e>>>0),Ks=(a,t,e,r)=>t+e+r+(a/2**32|0)|0,Js=(a,t,e,r)=>(a>>>0)+(t>>>0)+(e>>>0)+(r>>>0),qs=(a,t,e,r,i)=>t+e+r+i+(a/2**32|0)|0,Ws=(a,t,e,r,i)=>(a>>>0)+(t>>>0)+(e>>>0)+(r>>>0)+(i>>>0),js=(a,t,e,r,i,o)=>t+e+r+i+o+(a/2**32|0)|0,ii=Ps(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(a=>BigInt(a))),Vs=ii[0],Xs=ii[1],Zt=new Uint32Array(80),zt=new Uint32Array(80),$s=class extends Os{constructor(a){super(128,a,16,!1)}get(){let{Ah:a,Al:t,Bh:e,Bl:r,Ch:i,Cl:o,Dh:c,Dl:h,Eh:E,El:A,Fh:u,Fl:g,Gh:l,Gl:B,Hh:y,Hl:w}=this;return[a,t,e,r,i,o,c,h,E,A,u,g,l,B,y,w]}set(a,t,e,r,i,o,c,h,E,A,u,g,l,B,y,w){this.Ah=a|0,this.Al=t|0,this.Bh=e|0,this.Bl=r|0,this.Ch=i|0,this.Cl=o|0,this.Dh=c|0,this.Dl=h|0,this.Eh=E|0,this.El=A|0,this.Fh=u|0,this.Fl=g|0,this.Gh=l|0,this.Gl=B|0,this.Hh=y|0,this.Hl=w|0}process(a,t){for(let p=0;p<16;p++,t+=4)Zt[p]=a.getUint32(t),zt[p]=a.getUint32(t+=4);for(let p=16;p<80;p++){let C=Zt[p-15]|0,S=zt[p-15]|0,b=be(C,S,1)^be(C,S,8)^Gr(C,S,7),R=we(C,S,1)^we(C,S,8)^Lr(C,S,7),v=Zt[p-2]|0,m=zt[p-2]|0,_=be(v,m,19)^on(v,m,61)^Gr(v,m,6),U=we(v,m,19)^An(v,m,61)^Lr(v,m,6),M=Js(R,U,zt[p-7],zt[p-16]),H=qs(M,b,_,Zt[p-7],Zt[p-16]);Zt[p]=H|0,zt[p]=M|0}let{Ah:e,Al:r,Bh:i,Bl:o,Ch:c,Cl:h,Dh:E,Dl:A,Eh:u,El:g,Fh:l,Fl:B,Gh:y,Gl:w,Hh:D,Hl:I}=this;for(let p=0;p<80;p++){let C=be(u,g,14)^be(u,g,18)^on(u,g,41),S=we(u,g,14)^we(u,g,18)^An(u,g,41),b=u&l^~u&y,R=g&B^~g&w,v=Ws(I,S,R,Xs[p],zt[p]),m=js(v,D,C,b,Vs[p],Zt[p]),_=v|0,U=be(e,r,28)^on(e,r,34)^on(e,r,39),M=we(e,r,28)^An(e,r,34)^An(e,r,39),H=e&i^e&c^i&c,K=r&o^r&h^o&h;D=y|0,I=w|0,y=l|0,w=B|0,l=u|0,B=g|0,{h:u,l:g}=jt(E|0,A|0,m|0,_|0),E=c|0,A=h|0,c=i|0,h=o|0,i=e|0,o=r|0;let q=Ys(_,M,K);e=Ks(q,m,U,H),r=q|0}({h:e,l:r}=jt(this.Ah|0,this.Al|0,e|0,r|0)),{h:i,l:o}=jt(this.Bh|0,this.Bl|0,i|0,o|0),{h:c,l:h}=jt(this.Ch|0,this.Cl|0,c|0,h|0),{h:E,l:A}=jt(this.Dh|0,this.Dl|0,E|0,A|0),{h:u,l:g}=jt(this.Eh|0,this.El|0,u|0,g|0),{h:l,l:B}=jt(this.Fh|0,this.Fl|0,l|0,B|0),{h:y,l:w}=jt(this.Gh|0,this.Gl|0,y|0,w|0),{h:D,l:I}=jt(this.Hh|0,this.Hl|0,D|0,I|0),this.set(e,r,i,o,c,h,E,A,u,g,l,B,y,w,D,I)}roundClean(){Yn(Zt,zt)}destroy(){Yn(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},Zs=class extends $s{Ah=bt[0]|0;Al=bt[1]|0;Bh=bt[2]|0;Bl=bt[3]|0;Ch=bt[4]|0;Cl=bt[5]|0;Dh=bt[6]|0;Dl=bt[7]|0;Eh=bt[8]|0;El=bt[9]|0;Fh=bt[10]|0;Fl=bt[11]|0;Gh=bt[12]|0;Gl=bt[13]|0;Hh=bt[14]|0;Hl=bt[15]|0;constructor(){super(64)}},zs=Gs(()=>new Zs,Ls(3)),to=Kn;});var Ri={};Te(Ri,{Point:()=>Jt,etc:()=>lo,getPublicKey:()=>Qi,getPublicKeyAsync:()=>yi,hash:()=>Ao,hashes:()=>Ir,keygen:()=>Io,keygenAsync:()=>Eo,sign:()=>fo,signAsync:()=>ho,utils:()=>Co,verify:()=>uo,verifyAsync:()=>go});var fi,mt,un,si,oi,rr,ir,eo,Kt,ke,no,gt,ro,io,so,Ft,En,gi,ui,ar,Vt,Ai,cr,li,oo,ge,di,ln,fe,Y,Ii,Ei,Ci,Ao,sr,or,Jt,ne,Se,pi,hr,Yt,ao,ai,co,dn,fr,gr,Bi,ur,lr,yi,Qi,bi,wi,mi,ho,fo,dr,Si,go,uo,lo,Ir,Er,Io,Eo,Co,In,po,_i,Ar,Bo,ci,hi,yo,Di=Ut(()=>{fi={p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n},{p:mt,n:un,Gx:si,Gy:oi,a:rr,d:ir,h:eo}=fi,Kt=32,ke=64,no=(...a)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...a)},gt=(a="")=>{let t=new Error(a);throw no(t,gt),t},ro=a=>typeof a=="bigint",io=a=>typeof a=="string",so=a=>a instanceof Uint8Array||ArrayBuffer.isView(a)&&a.constructor.name==="Uint8Array",Ft=(a,t,e="")=>{let r=so(a),i=a?.length,o=t!==void 0;if(!r||o&&i!==t){let c=e&&`"${e}" `,h=o?` of length ${t}`:"",E=r?`length=${i}`:`type=${typeof a}`;gt(c+"expected Uint8Array"+h+", got "+E)}return a},En=a=>new Uint8Array(a),gi=a=>Uint8Array.from(a),ui=(a,t)=>a.toString(16).padStart(t,"0"),ar=a=>Array.from(Ft(a)).map(t=>ui(t,2)).join(""),Vt={_0:48,_9:57,A:65,F:70,a:97,f:102},Ai=a=>{if(a>=Vt._0&&a<=Vt._9)return a-Vt._0;if(a>=Vt.A&&a<=Vt.F)return a-(Vt.A-10);if(a>=Vt.a&&a<=Vt.f)return a-(Vt.a-10)},cr=a=>{let t="hex invalid";if(!io(a))return gt(t);let e=a.length,r=e/2;if(e%2)return gt(t);let i=En(r);for(let o=0,c=0;o<r;o++,c+=2){let h=Ai(a.charCodeAt(c)),E=Ai(a.charCodeAt(c+1));if(h===void 0||E===void 0)return gt(t);i[o]=h*16+E}return i},li=()=>globalThis?.crypto,oo=()=>li()?.subtle??gt("crypto.subtle must be defined, consider polyfill"),ge=(...a)=>{let t=En(a.reduce((r,i)=>r+Ft(i).length,0)),e=0;return a.forEach(r=>{t.set(r,e),e+=r.length}),t},di=(a=Kt)=>li().getRandomValues(En(a)),ln=BigInt,fe=(a,t,e,r="bad number: out of range")=>ro(a)&&t<=a&&a<e?a:gt(r),Y=(a,t=mt)=>{let e=a%t;return e>=0n?e:t+e},Ii=a=>Y(a,un),Ei=(a,t)=>{(a===0n||t<=0n)&&gt("no inverse n="+a+" mod="+t);let e=Y(a,t),r=t,i=0n,o=1n,c=1n,h=0n;for(;e!==0n;){let E=r/e,A=r%e,u=i-c*E,g=o-h*E;r=e,e=A,i=c,o=h,c=u,h=g}return r===1n?Y(i,t):gt("no inverse")},Ci=a=>{let t=Ir[a];return typeof t!="function"&&gt("hashes."+a+" not set"),t},Ao=a=>Ci("sha512")(a),sr=a=>a instanceof Jt?a:gt("Point expected"),or=2n**256n,Jt=class a{static BASE;static ZERO;X;Y;Z;T;constructor(t,e,r,i){let o=or;this.X=fe(t,0n,o),this.Y=fe(e,0n,o),this.Z=fe(r,1n,o),this.T=fe(i,0n,o),Object.freeze(this)}static CURVE(){return fi}static fromAffine(t){return new a(t.x,t.y,1n,Y(t.x*t.y))}static fromBytes(t,e=!1){let r=ir,i=gi(Ft(t,Kt)),o=t[31];i[31]=o&-129;let c=hr(i);fe(c,0n,e?or:mt);let E=Y(c*c),A=Y(E-1n),u=Y(r*E+1n),{isValid:g,value:l}=co(A,u);g||gt("bad point: y not sqrt");let B=(l&1n)===1n,y=(o&128)!==0;return!e&&l===0n&&y&&gt("bad point: x==0, isLastByteOdd"),y!==B&&(l=Y(-l)),new a(l,c,1n,Y(l*c))}static fromHex(t,e){return a.fromBytes(cr(t),e)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let t=rr,e=ir,r=this;if(r.is0())return gt("bad point: ZERO");let{X:i,Y:o,Z:c,T:h}=r,E=Y(i*i),A=Y(o*o),u=Y(c*c),g=Y(u*u),l=Y(E*t),B=Y(u*Y(l+A)),y=Y(g+Y(e*Y(E*A)));if(B!==y)return gt("bad point: equation left != right (1)");let w=Y(i*o),D=Y(c*h);return w!==D?gt("bad point: equation left != right (2)"):this}equals(t){let{X:e,Y:r,Z:i}=this,{X:o,Y:c,Z:h}=sr(t),E=Y(e*h),A=Y(o*i),u=Y(r*h),g=Y(c*i);return E===A&&u===g}is0(){return this.equals(Se)}negate(){return new a(Y(-this.X),this.Y,this.Z,Y(-this.T))}double(){let{X:t,Y:e,Z:r}=this,i=rr,o=Y(t*t),c=Y(e*e),h=Y(2n*Y(r*r)),E=Y(i*o),A=t+e,u=Y(Y(A*A)-o-c),g=E+c,l=g-h,B=E-c,y=Y(u*l),w=Y(g*B),D=Y(u*B),I=Y(l*g);return new a(y,w,I,D)}add(t){let{X:e,Y:r,Z:i,T:o}=this,{X:c,Y:h,Z:E,T:A}=sr(t),u=rr,g=ir,l=Y(e*c),B=Y(r*h),y=Y(o*g*A),w=Y(i*E),D=Y((e+r)*(c+h)-l-B),I=Y(w-y),p=Y(w+y),C=Y(B-u*l),S=Y(D*I),b=Y(p*C),R=Y(D*C),v=Y(I*p);return new a(S,b,v,R)}subtract(t){return this.add(sr(t).negate())}multiply(t,e=!0){if(!e&&(t===0n||this.is0()))return Se;if(fe(t,1n,un),t===1n)return this;if(this.equals(ne))return yo(t).p;let r=Se,i=ne;for(let o=this;t>0n;o=o.double(),t>>=1n)t&1n?r=r.add(o):e&&(i=i.add(o));return r}multiplyUnsafe(t){return this.multiply(t,!1)}toAffine(){let{X:t,Y:e,Z:r}=this;if(this.equals(Se))return{x:0n,y:1n};let i=Ei(r,mt);Y(r*i)!==1n&&gt("invalid inverse");let o=Y(t*i),c=Y(e*i);return{x:o,y:c}}toBytes(){let{x:t,y:e}=this.assertValidity().toAffine(),r=pi(e);return r[31]|=t&1n?128:0,r}toHex(){return ar(this.toBytes())}clearCofactor(){return this.multiply(ln(eo),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(un/2n,!1).double();return un%2n&&(t=t.add(this)),t.is0()}},ne=new Jt(si,oi,1n,Y(si*oi)),Se=new Jt(0n,1n,1n,0n);Jt.BASE=ne;Jt.ZERO=Se;pi=a=>cr(ui(fe(a,0n,or),ke)).reverse(),hr=a=>ln("0x"+ar(gi(Ft(a)).reverse())),Yt=(a,t)=>{let e=a;for(;t-- >0n;)e*=e,e%=mt;return e},ao=a=>{let e=a*a%mt*a%mt,r=Yt(e,2n)*e%mt,i=Yt(r,1n)*a%mt,o=Yt(i,5n)*i%mt,c=Yt(o,10n)*o%mt,h=Yt(c,20n)*c%mt,E=Yt(h,40n)*h%mt,A=Yt(E,80n)*E%mt,u=Yt(A,80n)*E%mt,g=Yt(u,10n)*o%mt;return{pow_p_5_8:Yt(g,2n)*a%mt,b2:e}},ai=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,co=(a,t)=>{let e=Y(t*t*t),r=Y(e*e*t),i=ao(a*r).pow_p_5_8,o=Y(a*e*i),c=Y(t*o*o),h=o,E=Y(o*ai),A=c===a,u=c===Y(-a),g=c===Y(-a*ai);return A&&(o=h),(u||g)&&(o=E),(Y(o)&1n)===1n&&(o=Y(-o)),{isValid:A||u,value:o}},dn=a=>Ii(hr(a)),fr=(...a)=>Ir.sha512Async(ge(...a)),gr=(...a)=>Ci("sha512")(ge(...a)),Bi=a=>{let t=a.slice(0,Kt);t[0]&=248,t[31]&=127,t[31]|=64;let e=a.slice(Kt,ke),r=dn(t),i=ne.multiply(r),o=i.toBytes();return{head:t,prefix:e,scalar:r,point:i,pointBytes:o}},ur=a=>fr(Ft(a,Kt)).then(Bi),lr=a=>Bi(gr(Ft(a,Kt))),yi=a=>ur(a).then(t=>t.pointBytes),Qi=a=>lr(a).pointBytes,bi=a=>fr(a.hashable).then(a.finish),wi=a=>a.finish(gr(a.hashable)),mi=(a,t,e)=>{let{pointBytes:r,scalar:i}=a,o=dn(t),c=ne.multiply(o).toBytes();return{hashable:ge(c,r,e),finish:A=>{let u=Ii(o+dn(A)*i);return Ft(ge(c,pi(u)),ke)}}},ho=async(a,t)=>{let e=Ft(a),r=await ur(t),i=await fr(r.prefix,e);return bi(mi(r,i,e))},fo=(a,t)=>{let e=Ft(a),r=lr(t),i=gr(r.prefix,e);return wi(mi(r,i,e))},dr={zip215:!0},Si=(a,t,e,r=dr)=>{a=Ft(a,ke),t=Ft(t),e=Ft(e,Kt);let{zip215:i}=r,o,c,h,E,A=Uint8Array.of();try{o=Jt.fromBytes(e,i),c=Jt.fromBytes(a.slice(0,Kt),i),h=hr(a.slice(Kt,ke)),E=ne.multiply(h,!1),A=ge(c.toBytes(),o.toBytes(),t)}catch{}return{hashable:A,finish:g=>{if(E==null||!i&&o.isSmallOrder())return!1;let l=dn(g);return c.add(o.multiply(l,!1)).add(E.negate()).clearCofactor().is0()}}},go=async(a,t,e,r=dr)=>bi(Si(a,t,e,r)),uo=(a,t,e,r=dr)=>wi(Si(a,t,e,r)),lo={bytesToHex:ar,hexToBytes:cr,concatBytes:ge,mod:Y,invert:Ei,randomBytes:di},Ir={sha512Async:async a=>{let t=oo(),e=ge(a);return En(await t.digest("SHA-512",e.buffer))},sha512:void 0},Er=(a=di(Kt))=>a,Io=a=>{let t=Er(a),e=Qi(t);return{secretKey:t,publicKey:e}},Eo=async a=>{let t=Er(a),e=await yi(t);return{secretKey:t,publicKey:e}},Co={getExtendedPublicKeyAsync:ur,getExtendedPublicKey:lr,randomSecretKey:Er},In=8,po=256,_i=Math.ceil(po/In)+1,Ar=2**(In-1),Bo=()=>{let a=[],t=ne,e=t;for(let r=0;r<_i;r++){e=t,a.push(e);for(let i=1;i<Ar;i++)e=e.add(t),a.push(e);t=e.double()}return a},hi=(a,t)=>{let e=t.negate();return a?e:t},yo=a=>{let t=ci||(ci=Bo()),e=Se,r=ne,i=2**In,o=i,c=ln(i-1),h=ln(In);for(let E=0;E<_i;E++){let A=Number(a&c);a>>=h,A>Ar&&(A-=o,a+=1n);let u=E*Ar,g=u,l=u+Math.abs(A)-1,B=E%2!==0,y=A<0;A===0?r=r.add(hi(B,t[g])):e=e.add(hi(y,t[l]))}return a!==0n&&gt("invalid wnaf"),{p:e,f:r}}});function Qo(a){return a instanceof Uint8Array||ArrayBuffer.isView(a)&&a.constructor.name==="Uint8Array"}function Cr(a,t,e=""){let r=Qo(a),i=a?.length,o=t!==void 0;if(!r||o&&i!==t){let c=e&&`"${e}" `,h=o?` of length ${t}`:"",E=r?`length=${i}`:`type=${typeof a}`;throw new Error(c+"expected Uint8Array"+h+", got "+E)}return a}function pr(a,t=!0){if(a.destroyed)throw new Error("Hash instance has been destroyed");if(t&&a.finished)throw new Error("Hash#digest() has already been called")}function Ni(a,t){Cr(a,void 0,"digestInto() output");let e=t.outputLen;if(a.length<e)throw new Error('"digestInto() output" expected to be of length >='+e)}function ue(...a){for(let t=0;t<a.length;t++)a[t].fill(0)}function Cn(a){return new DataView(a.buffer,a.byteOffset,a.byteLength)}function Mt(a,t){return a<<32-t|a>>>t}function le(a,t={}){let e=(i,o)=>a(o).update(i).digest(),r=a(void 0);return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=i=>a(i),Object.assign(e,t),Object.freeze(e)}var de,Br=Ut(()=>{de=a=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,a])})});function xi(a,t,e){return a&t^~a&e}function Ti(a,t,e){return a&t^a&e^t&e}var Ue,Xt,$t,Et,Ct,vi=Ut(()=>{Br();Ue=class{blockLen;outputLen;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(t,e,r,i){this.blockLen=t,this.outputLen=e,this.padOffset=r,this.isLE=i,this.buffer=new Uint8Array(t),this.view=Cn(this.buffer)}update(t){pr(this),Cr(t);let{view:e,buffer:r,blockLen:i}=this,o=t.length;for(let c=0;c<o;){let h=Math.min(i-this.pos,o-c);if(h===i){let E=Cn(t);for(;i<=o-c;c+=i)this.process(E,c);continue}r.set(t.subarray(c,c+h),this.pos),this.pos+=h,c+=h,this.pos===i&&(this.process(e,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){pr(this),Ni(t,this),this.finished=!0;let{buffer:e,view:r,blockLen:i,isLE:o}=this,{pos:c}=this;e[c++]=128,ue(this.buffer.subarray(c)),this.padOffset>i-c&&(this.process(r,0),c=0);for(let g=c;g<i;g++)e[g]=0;r.setBigUint64(i-8,BigInt(this.length*8),o),this.process(r,0);let h=Cn(t),E=this.outputLen;if(E%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let A=E/4,u=this.get();if(A>u.length)throw new Error("_sha2: outputLen bigger than state");for(let g=0;g<A;g++)h.setUint32(4*g,u[g],o)}digest(){let{buffer:t,outputLen:e}=this;this.digestInto(t);let r=t.slice(0,e);return this.destroy(),r}_cloneInto(t){t||=new this.constructor,t.set(...this.get());let{blockLen:e,buffer:r,length:i,finished:o,destroyed:c,pos:h}=this;return t.destroyed=c,t.finished=o,t.length=i,t.pos=h,i%e&&t.buffer.set(r),t}clone(){return this._cloneInto()}},Xt=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),$t=Uint32Array.from([3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]),Et=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Ct=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209])});function bo(a,t=!1){return t?{h:Number(a&pn),l:Number(a>>Fi&pn)}:{h:Number(a>>Fi&pn)|0,l:Number(a&pn)|0}}function ki(a,t=!1){let e=a.length,r=new Uint32Array(e),i=new Uint32Array(e);for(let o=0;o<e;o++){let{h:c,l:h}=bo(a[o],t);[r[o],i[o]]=[c,h]}return[r,i]}function qt(a,t,e,r){let i=(t>>>0)+(r>>>0);return{h:a+e+(i/2**32|0)|0,l:i|0}}var pn,Fi,yr,Qr,Ie,Ee,Me,Ge,Ui,Mi,Gi,Li,Oi,Hi,Pi=Ut(()=>{pn=BigInt(4294967295),Fi=BigInt(32);yr=(a,t,e)=>a>>>e,Qr=(a,t,e)=>a<<32-e|t>>>e,Ie=(a,t,e)=>a>>>e|t<<32-e,Ee=(a,t,e)=>a<<32-e|t>>>e,Me=(a,t,e)=>a<<64-e|t>>>e-32,Ge=(a,t,e)=>a>>>e-32|t<<64-e;Ui=(a,t,e)=>(a>>>0)+(t>>>0)+(e>>>0),Mi=(a,t,e,r)=>t+e+r+(a/2**32|0)|0,Gi=(a,t,e,r)=>(a>>>0)+(t>>>0)+(e>>>0)+(r>>>0),Li=(a,t,e,r,i)=>t+e+r+i+(a/2**32|0)|0,Oi=(a,t,e,r,i)=>(a>>>0)+(t>>>0)+(e>>>0)+(r>>>0)+(i>>>0),Hi=(a,t,e,r,i,o)=>t+e+r+i+o+(a/2**32|0)|0});var Ki={};Te(Ki,{_SHA224:()=>Qn,_SHA256:()=>yn,_SHA384:()=>wn,_SHA512:()=>bn,_SHA512_224:()=>mn,_SHA512_256:()=>Sn,sha224:()=>Do,sha256:()=>Ro,sha384:()=>xo,sha512:()=>No,sha512_224:()=>vo,sha512_256:()=>To});var mo,re,Bn,yn,Qn,Yi,So,_o,ie,se,_e,bn,wn,St,_t,mn,Sn,Ro,Do,No,xo,To,vo,Ji=Ut(()=>{vi();Pi();Br();mo=Uint32Array.from([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]),re=new Uint32Array(64),Bn=class extends Ue{constructor(t){super(64,t,8,!1)}get(){let{A:t,B:e,C:r,D:i,E:o,F:c,G:h,H:E}=this;return[t,e,r,i,o,c,h,E]}set(t,e,r,i,o,c,h,E){this.A=t|0,this.B=e|0,this.C=r|0,this.D=i|0,this.E=o|0,this.F=c|0,this.G=h|0,this.H=E|0}process(t,e){for(let g=0;g<16;g++,e+=4)re[g]=t.getUint32(e,!1);for(let g=16;g<64;g++){let l=re[g-15],B=re[g-2],y=Mt(l,7)^Mt(l,18)^l>>>3,w=Mt(B,17)^Mt(B,19)^B>>>10;re[g]=w+re[g-7]+y+re[g-16]|0}let{A:r,B:i,C:o,D:c,E:h,F:E,G:A,H:u}=this;for(let g=0;g<64;g++){let l=Mt(h,6)^Mt(h,11)^Mt(h,25),B=u+l+xi(h,E,A)+mo[g]+re[g]|0,w=(Mt(r,2)^Mt(r,13)^Mt(r,22))+Ti(r,i,o)|0;u=A,A=E,E=h,h=c+B|0,c=o,o=i,i=r,r=B+w|0}r=r+this.A|0,i=i+this.B|0,o=o+this.C|0,c=c+this.D|0,h=h+this.E|0,E=E+this.F|0,A=A+this.G|0,u=u+this.H|0,this.set(r,i,o,c,h,E,A,u)}roundClean(){ue(re)}destroy(){this.set(0,0,0,0,0,0,0,0),ue(this.buffer)}},yn=class extends Bn{A=Xt[0]|0;B=Xt[1]|0;C=Xt[2]|0;D=Xt[3]|0;E=Xt[4]|0;F=Xt[5]|0;G=Xt[6]|0;H=Xt[7]|0;constructor(){super(32)}},Qn=class extends Bn{A=$t[0]|0;B=$t[1]|0;C=$t[2]|0;D=$t[3]|0;E=$t[4]|0;F=$t[5]|0;G=$t[6]|0;H=$t[7]|0;constructor(){super(28)}},Yi=ki(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(a=>BigInt(a))),So=Yi[0],_o=Yi[1],ie=new Uint32Array(80),se=new Uint32Array(80),_e=class extends Ue{constructor(t){super(128,t,16,!1)}get(){let{Ah:t,Al:e,Bh:r,Bl:i,Ch:o,Cl:c,Dh:h,Dl:E,Eh:A,El:u,Fh:g,Fl:l,Gh:B,Gl:y,Hh:w,Hl:D}=this;return[t,e,r,i,o,c,h,E,A,u,g,l,B,y,w,D]}set(t,e,r,i,o,c,h,E,A,u,g,l,B,y,w,D){this.Ah=t|0,this.Al=e|0,this.Bh=r|0,this.Bl=i|0,this.Ch=o|0,this.Cl=c|0,this.Dh=h|0,this.Dl=E|0,this.Eh=A|0,this.El=u|0,this.Fh=g|0,this.Fl=l|0,this.Gh=B|0,this.Gl=y|0,this.Hh=w|0,this.Hl=D|0}process(t,e){for(let C=0;C<16;C++,e+=4)ie[C]=t.getUint32(e),se[C]=t.getUint32(e+=4);for(let C=16;C<80;C++){let S=ie[C-15]|0,b=se[C-15]|0,R=Ie(S,b,1)^Ie(S,b,8)^yr(S,b,7),v=Ee(S,b,1)^Ee(S,b,8)^Qr(S,b,7),m=ie[C-2]|0,_=se[C-2]|0,U=Ie(m,_,19)^Me(m,_,61)^yr(m,_,6),M=Ee(m,_,19)^Ge(m,_,61)^Qr(m,_,6),H=Gi(v,M,se[C-7],se[C-16]),K=Li(H,R,U,ie[C-7],ie[C-16]);ie[C]=K|0,se[C]=H|0}let{Ah:r,Al:i,Bh:o,Bl:c,Ch:h,Cl:E,Dh:A,Dl:u,Eh:g,El:l,Fh:B,Fl:y,Gh:w,Gl:D,Hh:I,Hl:p}=this;for(let C=0;C<80;C++){let S=Ie(g,l,14)^Ie(g,l,18)^Me(g,l,41),b=Ee(g,l,14)^Ee(g,l,18)^Ge(g,l,41),R=g&B^~g&w,v=l&y^~l&D,m=Oi(p,b,v,_o[C],se[C]),_=Hi(m,I,S,R,So[C],ie[C]),U=m|0,M=Ie(r,i,28)^Me(r,i,34)^Me(r,i,39),H=Ee(r,i,28)^Ge(r,i,34)^Ge(r,i,39),K=r&o^r&h^o&h,q=i&c^i&E^c&E;I=w|0,p=D|0,w=B|0,D=y|0,B=g|0,y=l|0,{h:g,l}=qt(A|0,u|0,_|0,U|0),A=h|0,u=E|0,h=o|0,E=c|0,o=r|0,c=i|0;let V=Ui(U,H,q);r=Mi(V,_,M,K),i=V|0}({h:r,l:i}=qt(this.Ah|0,this.Al|0,r|0,i|0)),{h:o,l:c}=qt(this.Bh|0,this.Bl|0,o|0,c|0),{h,l:E}=qt(this.Ch|0,this.Cl|0,h|0,E|0),{h:A,l:u}=qt(this.Dh|0,this.Dl|0,A|0,u|0),{h:g,l}=qt(this.Eh|0,this.El|0,g|0,l|0),{h:B,l:y}=qt(this.Fh|0,this.Fl|0,B|0,y|0),{h:w,l:D}=qt(this.Gh|0,this.Gl|0,w|0,D|0),{h:I,l:p}=qt(this.Hh|0,this.Hl|0,I|0,p|0),this.set(r,i,o,c,h,E,A,u,g,l,B,y,w,D,I,p)}roundClean(){ue(ie,se)}destroy(){ue(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},bn=class extends _e{Ah=Ct[0]|0;Al=Ct[1]|0;Bh=Ct[2]|0;Bl=Ct[3]|0;Ch=Ct[4]|0;Cl=Ct[5]|0;Dh=Ct[6]|0;Dl=Ct[7]|0;Eh=Ct[8]|0;El=Ct[9]|0;Fh=Ct[10]|0;Fl=Ct[11]|0;Gh=Ct[12]|0;Gl=Ct[13]|0;Hh=Ct[14]|0;Hl=Ct[15]|0;constructor(){super(64)}},wn=class extends _e{Ah=Et[0]|0;Al=Et[1]|0;Bh=Et[2]|0;Bl=Et[3]|0;Ch=Et[4]|0;Cl=Et[5]|0;Dh=Et[6]|0;Dl=Et[7]|0;Eh=Et[8]|0;El=Et[9]|0;Fh=Et[10]|0;Fl=Et[11]|0;Gh=Et[12]|0;Gl=Et[13]|0;Hh=Et[14]|0;Hl=Et[15]|0;constructor(){super(48)}},St=Uint32Array.from([2352822216,424955298,1944164710,2312950998,502970286,855612546,1738396948,1479516111,258812777,2077511080,2011393907,79989058,1067287976,1780299464,286451373,2446758561]),_t=Uint32Array.from([573645204,4230739756,2673172387,3360449730,596883563,1867755857,2520282905,1497426621,2519219938,2827943907,3193839141,1401305490,721525244,746961066,246885852,2177182882]),mn=class extends _e{Ah=St[0]|0;Al=St[1]|0;Bh=St[2]|0;Bl=St[3]|0;Ch=St[4]|0;Cl=St[5]|0;Dh=St[6]|0;Dl=St[7]|0;Eh=St[8]|0;El=St[9]|0;Fh=St[10]|0;Fl=St[11]|0;Gh=St[12]|0;Gl=St[13]|0;Hh=St[14]|0;Hl=St[15]|0;constructor(){super(28)}},Sn=class extends _e{Ah=_t[0]|0;Al=_t[1]|0;Bh=_t[2]|0;Bl=_t[3]|0;Ch=_t[4]|0;Cl=_t[5]|0;Dh=_t[6]|0;Dl=_t[7]|0;Eh=_t[8]|0;El=_t[9]|0;Fh=_t[10]|0;Fl=_t[11]|0;Gh=_t[12]|0;Gl=_t[13]|0;Hh=_t[14]|0;Hl=_t[15]|0;constructor(){super(32)}},Ro=le(()=>new yn,de(1)),Do=le(()=>new Qn,de(4)),No=le(()=>new bn,de(3)),xo=le(()=>new wn,de(2)),To=le(()=>new Sn,de(6)),vo=le(()=>new mn,de(5))});var qi={};Te(qi,{default:()=>ko});var Fo,ko,Wi=Ut(()=>{Fo=(()=>{var a,t,e={773(o,c,h){var E,A=typeof self<"u"&&self.Module!==void 0?self.Module:{},u={};for(E in A)A.hasOwnProperty(E)&&(u[E]=A[E]);var g,l,B,y,w=[];g=typeof window=="object",l=typeof importScripts=="function",B=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",y=!g&&!B&&!l;var D,I,p,C,S,b="";B?(b=l?h(967).dirname(b)+"/":"//",D=function(F,G){return C||(C=h(145)),S||(S=h(967)),F=S.normalize(F),C.readFileSync(F,G?null:"utf8")},p=function(F){var G=D(F,!0);return G.buffer||(G=new Uint8Array(G)),U(G.buffer),G},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),w=process.argv.slice(2),o.exports=A,process.on("uncaughtException",function(F){if(!(F instanceof k))throw F}),process.on("unhandledRejection",X),A.inspect=function(){return"[Emscripten Module object]"}):y?(typeof read<"u"&&(D=function(F){return read(F)}),p=function(F){var G;return typeof readbuffer=="function"?new Uint8Array(readbuffer(F)):(U(typeof(G=read(F,"binary"))=="object"),G)},typeof scriptArgs<"u"?w=scriptArgs:arguments!==void 0&&(w=arguments),typeof print<"u"&&(typeof console>"u"&&(console={}),console.log=print,console.warn=console.error=typeof printErr<"u"?printErr:print)):(g||l)&&(l?b=self.location.href:typeof document<"u"&&document.currentScript&&(b=document.currentScript.src),b=b.indexOf("blob:")!==0?b.substr(0,b.lastIndexOf("/")+1):"",D=function(F){var G=new XMLHttpRequest;return G.open("GET",F,!1),G.send(null),G.responseText},l&&(p=function(F){var G=new XMLHttpRequest;return G.open("GET",F,!1),G.responseType="arraybuffer",G.send(null),new Uint8Array(G.response)}),I=function(F,G,n){var s=new XMLHttpRequest;s.open("GET",F,!0),s.responseType="arraybuffer",s.onload=function(){s.status==200||s.status==0&&s.response?G(s.response):n()},s.onerror=n,s.send(null)}),A.print||console.log.bind(console);var R,v,m=A.printErr||console.warn.bind(console);for(E in u)u.hasOwnProperty(E)&&(A[E]=u[E]);u=null,A.arguments&&(w=A.arguments),A.thisProgram&&A.thisProgram,A.quit&&A.quit,A.wasmBinary&&(R=A.wasmBinary),A.noExitRuntime,typeof WebAssembly!="object"&&X("no native wasm support detected");var _=!1;function U(F,G){F||X("Assertion failed: "+G)}var M,H,K=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function q(F){M=F,A.HEAP8=new Int8Array(F),A.HEAP16=new Int16Array(F),A.HEAP32=new Int32Array(F),A.HEAPU8=H=new Uint8Array(F),A.HEAPU16=new Uint16Array(F),A.HEAPU32=new Uint32Array(F),A.HEAPF32=new Float32Array(F),A.HEAPF64=new Float64Array(F)}A.INITIAL_MEMORY;var V,st=[],J=[],Tt=[],at=0,ut=null,j=null;function X(F){throw A.onAbort&&A.onAbort(F),m(F+=""),_=!0,F="abort("+F+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(F)}function pt(F){return F.startsWith("data:application/octet-stream;base64,")}function ot(F){return F.startsWith("file://")}A.preloadedImages={},A.preloadedAudios={};var Rt,nt="argon2.wasm";function kt(F){try{if(F==nt&&R)return new Uint8Array(R);if(p)return p(F);throw"both async and sync fetching of the wasm failed"}catch(G){X(G)}}function Nt(F){for(;F.length>0;){var G=F.shift();if(typeof G!="function"){var n=G.func;typeof n=="number"?G.arg===void 0?V.get(n)():V.get(n)(G.arg):n(G.arg===void 0?null:G.arg)}else G(A)}}function oe(F){try{return v.grow(F-M.byteLength+65535>>>16),q(v.buffer),1}catch{}}pt(nt)||(Rt=nt,nt=A.locateFile?A.locateFile(Rt,b):b+Rt);var Gt,Bt={a:function(F,G,n){H.copyWithin(F,G,G+n)},b:function(F){var G,n=H.length;if((F>>>=0)>2147418112)return!1;for(var s=1;s<=4;s*=2){var f=n*(1+.2/s);if(f=Math.min(f,F+100663296),oe(Math.min(2147418112,((G=Math.max(F,f))%65536>0&&(G+=65536-G%65536),G))))return!0}return!1}},Dt=((function(){var F={a:Bt};function G(f,Q){var N,T=f.exports;A.asm=T,q((v=A.asm.c).buffer),V=A.asm.k,N=A.asm.d,J.unshift(N),(function(L){if(at--,A.monitorRunDependencies&&A.monitorRunDependencies(at),at==0&&(ut!==null&&(clearInterval(ut),ut=null),j)){var W=j;j=null,W()}})()}function n(f){G(f.instance)}function s(f){return(function(){if(!R&&(g||l)){if(typeof fetch=="function"&&!ot(nt))return fetch(nt,{credentials:"same-origin"}).then(function(Q){if(!Q.ok)throw"failed to load wasm binary file at '"+nt+"'";return Q.arrayBuffer()}).catch(function(){return kt(nt)});if(I)return new Promise(function(Q,N){I(nt,function(T){Q(new Uint8Array(T))},N)})}return Promise.resolve().then(function(){return kt(nt)})})().then(function(Q){return WebAssembly.instantiate(Q,F)}).then(f,function(Q){m("failed to asynchronously prepare wasm: "+Q),X(Q)})}if(at++,A.monitorRunDependencies&&A.monitorRunDependencies(at),A.instantiateWasm)try{return A.instantiateWasm(F,G)}catch(f){return m("Module.instantiateWasm callback failed with error: "+f),!1}R||typeof WebAssembly.instantiateStreaming!="function"||pt(nt)||ot(nt)||typeof fetch!="function"?s(n):fetch(nt,{credentials:"same-origin"}).then(function(f){return WebAssembly.instantiateStreaming(f,F).then(n,function(Q){return m("wasm streaming compile failed: "+Q),m("falling back to ArrayBuffer instantiation"),s(n)})})})(),A.___wasm_call_ctors=function(){return(A.___wasm_call_ctors=A.asm.d).apply(null,arguments)},A._argon2_hash=function(){return(A._argon2_hash=A.asm.e).apply(null,arguments)},A._malloc=function(){return(Dt=A._malloc=A.asm.f).apply(null,arguments)}),x=(A._free=function(){return(A._free=A.asm.g).apply(null,arguments)},A._argon2_verify=function(){return(A._argon2_verify=A.asm.h).apply(null,arguments)},A._argon2_error_message=function(){return(A._argon2_error_message=A.asm.i).apply(null,arguments)},A._argon2_encodedlen=function(){return(A._argon2_encodedlen=A.asm.j).apply(null,arguments)},A._argon2_hash_ext=function(){return(A._argon2_hash_ext=A.asm.l).apply(null,arguments)},A._argon2_verify_ext=function(){return(A._argon2_verify_ext=A.asm.m).apply(null,arguments)},A.stackAlloc=function(){return(x=A.stackAlloc=A.asm.n).apply(null,arguments)});function k(F){this.name="ExitStatus",this.message="Program terminated with exit("+F+")",this.status=F}function O(F){function G(){Gt||(Gt=!0,A.calledRun=!0,_||(Nt(J),A.onRuntimeInitialized&&A.onRuntimeInitialized(),(function(){var n;if(A.postRun)for(typeof A.postRun=="function"&&(A.postRun=[A.postRun]);A.postRun.length;)n=A.postRun.shift(),Tt.unshift(n);Nt(Tt)})()))}F=F||w,at>0||((function(){var n;if(A.preRun)for(typeof A.preRun=="function"&&(A.preRun=[A.preRun]);A.preRun.length;)n=A.preRun.shift(),st.unshift(n);Nt(st)})(),at>0||(A.setStatus?(A.setStatus("Running..."),setTimeout(function(){setTimeout(function(){A.setStatus("")},1),G()},1)):G()))}if(A.allocate=function(F,G){var n;return n=G==1?x(F.length):Dt(F.length),F.subarray||F.slice?H.set(F,n):H.set(new Uint8Array(F),n),n},A.UTF8ToString=function(F,G){return F?(function(n,s,f){for(var Q=s+f,N=s;n[N]&&!(N>=Q);)++N;if(N-s>16&&n.subarray&&K)return K.decode(n.subarray(s,N));for(var T="";s<N;){var L=n[s++];if(128&L){var W=63&n[s++];if((224&L)!=192){var rt=63&n[s++];if((L=(240&L)==224?(15&L)<<12|W<<6|rt:(7&L)<<18|W<<12|rt<<6|63&n[s++])<65536)T+=String.fromCharCode(L);else{var Z=L-65536;T+=String.fromCharCode(55296|Z>>10,56320|1023&Z)}}else T+=String.fromCharCode((31&L)<<6|W)}else T+=String.fromCharCode(L)}return T})(H,F,G):""},A.ALLOC_NORMAL=0,j=function F(){Gt||O(),Gt||(j=F)},A.run=O,A.preInit)for(typeof A.preInit=="function"&&(A.preInit=[A.preInit]);A.preInit.length>0;)A.preInit.pop()();O(),o.exports=A,A.unloadRuntime=function(){typeof self<"u"&&delete self.Module,A=v=V=M=H=void 0,delete o.exports}},631:function(o,c,h){var E,A;typeof self<"u",(A=typeof(E=function(){let u=typeof self<"u"?self:this,g={Argon2d:0,Argon2i:1,Argon2id:2};function l(I){if(l._promise)return l._promise;if(l._module)return Promise.resolve(l._module);let p;return p=u.process&&u.process.versions&&u.process.versions.node?B().then(C=>new Promise(S=>{C.postRun=()=>S(C)})):(u.loadArgon2WasmBinary?u.loadArgon2WasmBinary():Promise.resolve(h(721)).then(C=>(function(S){let b=atob(S),R=new Uint8Array(new ArrayBuffer(b.length));for(let v=0;v<b.length;v++)R[v]=b.charCodeAt(v);return R})(C))).then(C=>{var S,b;return S=C,b=I?(function(R){let v=32767;return new WebAssembly.Memory({initial:Math.min(Math.max(Math.ceil(1024*R/65536),256)+256,v),maximum:v})})(I):void 0,new Promise(R=>(u.Module={wasmBinary:S,wasmMemory:b,postRun(){R(Module)}},B()))}),l._promise=p,p.then(C=>(l._module=C,delete l._promise,C))}function B(){return u.loadArgon2WasmModule?u.loadArgon2WasmModule():Promise.resolve(h(773))}function y(I,p){return I.allocate(p,"i8",I.ALLOC_NORMAL)}function w(I,p){return y(I,new Uint8Array([...p,0]))}function D(I){if(typeof I!="string")return I;if(typeof TextEncoder=="function")return new TextEncoder().encode(I);if(typeof Buffer=="function")return Buffer.from(I);throw Error("Don't know how to encode UTF8")}return{ArgonType:g,hash:function(I){let p=I.mem||1024;return l(p).then(C=>{let S=I.time||1,b=I.parallelism||1,R=D(I.pass),v=w(C,R),m=R.length,_=D(I.salt),U=w(C,_),M=_.length,H=I.type||g.Argon2d,K=C.allocate(Array(I.hashLen||24),"i8",C.ALLOC_NORMAL),q=I.secret?y(C,I.secret):0,V=I.secret?I.secret.byteLength:0,st=I.ad?y(C,I.ad):0,J=I.ad?I.ad.byteLength:0,Tt=I.hashLen||24,at=C._argon2_encodedlen(S,p,b,M,Tt,H),ut=C.allocate(Array(at+1),"i8",C.ALLOC_NORMAL),j,X,pt;try{X=C._argon2_hash_ext(S,p,b,v,m,U,M,K,Tt,ut,at,H,q,V,st,J,19)}catch(ot){j=ot}if(X!==0||j){try{j||(j=C.UTF8ToString(C._argon2_error_message(X)))}catch{}pt={message:j,code:X}}else{let ot="",Rt=new Uint8Array(Tt);for(let nt=0;nt<Tt;nt++){let kt=C.HEAP8[K+nt];Rt[nt]=kt,ot+=("0"+(255&kt).toString(16)).slice(-2)}pt={hash:Rt,hashHex:ot,encoded:C.UTF8ToString(ut)}}try{C._free(v),C._free(U),C._free(K),C._free(ut),st&&C._free(st),q&&C._free(q)}catch{}if(j)throw pt;return pt})},verify:function(I){return l().then(p=>{let C=D(I.pass),S=w(p,C),b=C.length,R=I.secret?y(p,I.secret):0,v=I.secret?I.secret.byteLength:0,m=I.ad?y(p,I.ad):0,_=I.ad?I.ad.byteLength:0,U=w(p,D(I.encoded)),M,H,K,q=I.type;if(q===void 0){let V=I.encoded.split("$")[1];V&&(q=g[V=V.replace("a","A")]||g.Argon2d)}try{H=p._argon2_verify_ext(U,S,b,R,v,m,_,q)}catch(V){M=V}if(H||M){try{M||(M=p.UTF8ToString(p._argon2_error_message(H)))}catch{}K={message:M,code:H}}try{p._free(S),p._free(U)}catch{}if(M)throw K;return K})},unloadRuntime:function(){l._module&&(l._module.unloadRuntime(),delete l._promise,delete l._module)}}})=="function"?E.apply(c,[]):E)===void 0||(o.exports=A)},721:function(o,c){o.exports="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DwtBixEPC0GeEyEBCyABC48DAQF/IwBBgANrIgQkACAEQQA2AowBIARBjAFqIAEQBwJAIAFBwABNBEAgBEGQAWogARAYQQBIDQEgBEGQAWogBEGMAWpBBBAGQQBIDQEgBEGQAWogAiADEAZBAEgNASAEQZABaiAAIAEQEhoMAQsgBEGQAWpBwAAQGEEASA0AIARBkAFqIARBjAFqQQQQBkEASA0AIARBkAFqIAIgAxAGQQBIDQAgBEGQAWogBEFAa0HAABASQQBIDQAgACAEKQNANwAAIAAgBCkDSDcACCAAIAQpA1g3ABggACAEKQNQNwAQIABBIGohACABQSBrIgJBwQBPBEADQCAEIARBQGtBwAAQBSIBQUBrQcAAIAEQMUEASA0CIAAgASkDQDcAACAAIAEpA0g3AAggACAEKQNYNwAYIAAgBCkDUDcAECAAQSBqIQAgAkEgayICQcAASw0ACwsgBCAEQUBrQcAAEAUiAUFAayACIAEQMUEASA0AIAAgAUFAayACEAUaCyAEQZABakHwARAEIARBgANqJAALAwABC5kCACAARQRAQQAPCwJ/AkAgAAR/IAFB/wBNDQECQEGgHigCACgCAEUEQCABQYB/cUGAvwNGDQMMAQsgAUH/D00EQCAAIAFBP3FBgAFyOgABIAAgAUEGdkHAAXI6AABBAgwECyABQYCwA09BACABQYBAcUGAwANHG0UEQCAAIAFBP3FBgAFyOgACIAAgAUEMdkHgAXI6AAAgACABQQZ2QT9xQYABcjoAAUEDDAQLIAFBgIAEa0H//z9NBEAgACABQT9xQYABcjoAAyAAIAFBEnZB8AFyOgAAIAAgAUEGdkE/cUGAAXI6AAIgACABQQx2QT9xQYABcjoAAUEEDAQLC0HcHkEZNgIAQX8FQQELDAELIAAgAToAAEEBCwtQAQN/AkAgACgCACwAABAPRQRADAELA0AgACgCACICLAAAIQMgACACQQFqNgIAIAEgA2pBMGshASACLAABEA9FDQEgAUEKbCEBDAALAAsgAQu7AgACQCABQRRLDQACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDgoAAQIDBAUGBwgJCgsgAiACKAIAIgFBBGo2AgAgACABKAIANgIADwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFB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AUHjFEEDEBANACABQQNqIANBDGoQFSIBRQ0AIAAgAygCDDYCKCABQecUQQMQEA0AIAFBA2ogA0EMahAVIgFFDQAgACADKAIMIgQ2AjAgACAENgI0IAEtAABBJEcNACADIAc2AgwgACgCECADQQxqIAFBAWoQLCIBRQ0AIAAgAygCDDYCFCABLQAAQSRHDQAgAyAGNgIMIAAoAgAgA0EMaiABQQFqECwiAUUNACAAIAMoAgw2AgQgAEEANgJEIABCADcCPCAAQgA3AhggAEIANwIgIAAQHCICDQBBYEEAIAEtAAAbIQILIANBEGokACACCykBAn8DQCAAIAJBA3QiA2ogASADaikAADcDACACQQFqIgJBgAFHDQALCwwAIABBAEGACBALGgtlAQJ/IAAgAhAeIgIEfyACBUFdQQACfyAAKAIAIQRBACECIAAoAgQiAAR/A0AgAyACIARqLQAAIAEgAmotAABzciEDIAJBAWoiAiAARw0ACyADQQFrQQh2QQFxQQFrBUEACwsbCwtdAQJ/IwBB8AFrIgMkAEF/IQQCQCACRSAARSABRXJyIAFBwABLcg0AIAMgARAYQQBIDQAgAyACQcAAEAZBAEgNACADIAAgARASIQQLIANB8AEQBCADQfABaiQAIAQLCQAgACABNwAACxAAIwAgAGtBcHEiACQAIAALMwEBfyAAKAIUIgMgASACIAAoAhAgA2siASABIAJLGyIBEAUaIAAgACgCFCABajYCFCACC9oBAQR/IwBB0ABrIggkAAJAIABFBEBBYCEADAELIAggABAKIgk2AgwgCCAJNgIcIAggCRAJIgo2AhggCCAJEAkiCzYCCEEAIQkCQAJAIApFIAtFcg0AIAggAjYCFCAIIAE2AhAgCEEIaiAAIAcQLSIADQEgCCgCCCEJIAggCCgCDBAJIgA2AgggAEUNACAIIAY2AiwgCCAFNgIoIAggBDYCJCAIIAM2AiAgCEEIaiAJIAcQMCEADAELQWohAAsgCCgCGBAIIAgoAggQCCAJEAgLIAhB0ABqJAAgAAuQAgEDfyMAQdAAayIRJABBfiETAkAgCEEESQ0AIAgQCSISRQRAQWohEwwBCyARQQA2AkwgEUIANwJEIBEgAjYCPCARIAI2AjggESABNgI0IBEgADYCMCARIA82AiwgESAONgIoIBEgDTYCJCAR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IGxvbmcgb3IgdG9vIHNob3J0AE1pc3NpbmcgYXJndW1lbnRzAFRvbyBtYW55IGxhbmVzAFRvbyBmZXcgbGFuZXMAVG9vIG1hbnkgdGhyZWFkcwBOb3QgZW5vdWdoIHRocmVhZHMATWVtb3J5IGFsbG9jYXRpb24gZXJyb3IATWVtb3J5IGNvc3QgaXMgdG9vIHNtYWxsAFRpbWUgY29zdCBpcyB0b28gc21hbGwAYXJnb24yaQBBcmdvbjJpAFRoZSBwYXNzd29yZCBkb2VzIG5vdCBtYXRjaCB0aGUgc3VwcGxpZWQgaGFzaABPdXRwdXQgcG9pbnRlciBtaXNtYXRjaABPdXRwdXQgaXMgdG9vIGxvbmcAU2FsdCBpcyB0b28gbG9uZwBTZWNyZXQgaXMgdG9vIGxvbmcAUGFzc3dvcmQgaXMgdG9vIGxvbmcAQXNzb2NpYXRlZCBkYXRhIGlzIHRvbyBsb25nAFRocmVhZGluZyBmYWlsdXJlAE1lbW9yeSBjb3N0IGlzIHRvbyBsYXJnZQBUaW1lIGNvc3QgaXMgdG9vIGxhcmdlAFVua25vd24gZXJyb3IgY29kZQBhcmdvbjJpZABBcmdvbjJpZABFbmNvZGluZyBmYWlsZWQARGVjb2RpbmcgZmFpbGVkAGFyZ29uMmQAQXJnb24yZABBcmdvbjJfQ29udGV4dCBjb250ZXh0IGlzIE5VTEwAT3V0cHV0IHBvaW50ZXIgaXMgTlVMTABUaGUgYWxsb2NhdGUgbWVtb3J5IGNhbGxiYWNrIGlzIE5VTEwAVGhlIGZyZWUgbWVtb3J5IGNhbGxiYWNrIGlzIE5VTEwAT0sAJHY9ACx0PQAscD0AJG09AFRoZXJlIGlzIG5vIHN1Y2ggdmVyc2lvbiBvZiBBcmdvbjIAU2FsdCBwb2ludGVyIGlzIE5VTEwsIGJ1dCBzYWx0IGxlbmd0aCBpcyBub3QgMABTZWNyZXQgcG9pbnRlciBpcyBOVUxMLCBidXQgc2VjcmV0IGxlbmd0aCBpcyBub3QgMABQYXNzd29yZCBwb2ludGVyIGlzIE5VTEwsIGJ1dCBwYXNzd29yZCBsZW5ndGggaXMgbm90IDAAQXNzb2NpYXRlZCBkYXRhIHBvaW50ZXIgaXMgTlVMTCwgYnV0IGFkIGxlbmd0aCBpcyBub3QgMAAobnVsbCkAAACbCAAAuwcAAEkJAADACQAAsAkAAPAHAAAfCAAAMAgAAMkIAABvCgAA4AkAABYKAAA7CgAAQwgAACsLAADBCgAAkgoAAPQKAAACCAAAEQgAAFsJAABbCAAAdAkAAHQIAAAFCQAAdAcAAC0JAACeBwAA9AgAAGIHAAAYCQAAiAcAAOEIAABOBwAA/wkAAFwKAAABAEGkGAsBAgBByxgLBf//////AEGQGQtBEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQeEZCyELAAAAAAAAAAARAAoKERERAAoAAAIACQsAAAAJAAsAAAsAQZsaCwEMAEGnGgsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEHVGgsBDgBB4RoLFQ0AAAAEDQAAAAAJDgAAAAAADgAADgBBjxsLARAAQZsbCx4PAAAAAA8AAAAACRAAAAAAABAAABAAABIAAAASEhIAQdIbCw4SAAAAEhISAAAAAAAACQBBgxwLAQsAQY8cCxUKAAAAAAoAAAAACQsAAAAAAAsAAAsAQb0cCwEMAEHJHAsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEHwHAsBAQBBoB4LAogPAEHYHgsDkBFQ"},145(){},967(){}},r={};function i(o){var c=r[o];if(c!==void 0)return c.exports;var h=r[o]={exports:{}};return e[o].call(h.exports,h,h.exports,i),h.exports}return i(631)})(),ko=Fo});var Dn=class a{verbose;mockMode;static#e=null;#t=null;#n=!1;#r=0;#i=["time.google.com","time.cloudflare.com","pool.ntp.org"];constructor(t=0,e=!1){if(this.verbose=t,this.mockMode=e,a.#e)return a.#e;a.#e=this}static get instance(){return a.#e||new a}static get time(){return a.instance.time}get time(){return this.mockMode?Date.now():this.#t===null?null:Date.now()+Math.round(this.#t)}async sync(t){if(t!==void 0&&(this.verbose=t),this.mockMode)return Date.now();if(this.#n){for(;this.#n;)await new Promise(e=>setTimeout(e,50));return this.time}this.#n=!0;try{let e=await this.#s();return e.length===0?(console.warn("[Clock] All NTP sources failed, using local time"),this.#t=0,this.time):(this.#t=this.#A(e),this.#r=Date.now(),e.length<this.#i.length&&setTimeout(()=>this.#a(),100),this.time)}catch(e){return console.error("[Clock] Sync failed:",e),this.#t=0,this.time}finally{this.#n=!1}}get status(){return this.mockMode?{synchronized:!0,syncing:!1,offset:0,lastSync:Date.now(),age:0}:{synchronized:this.#t!==null,syncing:this.#n,offset:this.#t,lastSync:this.#r,age:this.#r?Date.now()-this.#r:null}}async#s(){let t=this.#i.map(i=>this.#o(i)),e=await Promise.allSettled(t),r=[];for(let i of e)i.status==="fulfilled"&&r.push(i.value);return r}async#o(t){let e=new AbortController,r=setTimeout(()=>e.abort(),2e3);try{let i=Date.now(),o=await fetch(`https://${t}`,{method:"HEAD",signal:e.signal,cache:"no-cache"}),c=(Date.now()-i)/2;if(!o.ok)throw new Error(`HTTP ${o.status}`);let h=new Date(o.headers.get("date")).getTime();if(isNaN(h))throw new Error("Invalid date header");return{source:t,serverTime:h+c,localTime:Date.now(),latency:c*2}}finally{clearTimeout(r)}}#A(t){if(t.length===1)return t[0].serverTime-t[0].localTime;t.sort((i,o)=>i.latency-o.latency);let e=[];for(let i of t)e.push(i.serverTime-i.localTime);e.sort((i,o)=>i-o);let r=Math.floor(e.length/2);return e.length%2===0?(e[r-1]+e[r])/2:e[r]}async#a(){if(!this.#n)try{let t=await this.#s();if(t.length===0)return;let e=this.#A(t);Math.abs(e-this.#t)>100&&(this.#t=e)}catch(t){this.verbose&&console.warn("[Clock] Background refine failed:",t)}}},et=Dn.instance;await xt();await xt();var As=1e4,as=1e6,cs=1e5,hs=36e5,It={VALID_SIGNATURE:1e4,VALID_POW:3e5,UNICAST_RELAYED:5e3,WRONG_SIGNATURE:-6e5,WRONG_POW:-1e8,WRONG_SERIALIZATION:-6e4,GOSSIP_FLOOD:-6e4,UNICAST_FLOOD:-3e4,HOPS_EXCEEDED:-3e5,UNICAST_INVALID_ROUTE:-6e4,FAILED_HANDSHAKE:-6e5,WRONG_LENGTH:-6e5},Pe=class{id;cryptoCodex;verbose;trustBalances={};manualBanList=new Set;bytesCounters={gossip:{},unicast:{}};bytesCounterResetIn=0;constructor(t,e,r=0){this.id=t,this.cryptoCodex=e,this.verbose=r}tick(){for(let t in this.trustBalances){let e=this.trustBalances[t];e!==0&&(e=e<0?Math.min(0,e+1e3):Math.max(0,e-100))}this.bytesCounterResetIn-=1e3,!(this.bytesCounterResetIn>0)&&(this.bytesCounterResetIn=As,this.bytesCounters={gossip:{},unicast:{}})}countPeerAction(t,e){if(It[e])return this.adjustTrust(t,It[e])}adjustTrust(t,e,r="na"){t!==this.id&&(e&&(this.trustBalances[t]=Math.min(hs,(this.trustBalances[t]||0)+e)),e&&this.verbose>3&&console.log(`%c(Arbiter: ${this.id}) ${t} +${e}ms (${r}). Updated: ${this.trustBalances[t]}ms.`,it.ARBITER),this.isBanished(t)&&this.verbose>1&&console.log(`%c(Arbiter: ${this.id}) Peer ${t} is now banished.`,it.ARBITER))}setBanished(t){this.manualBanList.has(t)||this.manualBanList.add(t)}isBanished(t){return ct.MANUAL_BAN_MODE?this.manualBanList.has(t):(this.trustBalances[t]||0)<0}countMessageBytes(t,e,r){this.bytesCounters[r][t]||(this.bytesCounters[r][t]=0),this.bytesCounters[r][t]+=e;let[i,o]=r==="gossip"?[cs,It.GOSSIP_FLOOD]:[as,It.UNICAST_FLOOD];return this.bytesCounters[r][t]<i?!0:this.adjustTrust(t,o,`Message ${r} flood detected`)}async digestMessage(t,e,r,i=.01){let{senderId:o,pubkey:c,topic:h,expectedEnd:E}=e;if(!(!await this.#e(t,e,r)||!this.#t(t,h?"gossip":"unicast",r,E)||!(h?this.#n(t,e):this.#r(t,e)))&&!(this.isBanished(t)||this.isBanished(o)))return this.trustBalances[o]>It.VALID_POW||Math.random()<i&&await this.#i(o,c),!0}async#e(t,e,r){try{let{pubkey:i,signature:o,signatureStart:c}=e,h=r.subarray(0,c);if(!await this.cryptoCodex.verifySignature(i,o,h))throw new Error("Gossip signature invalid");return this.adjustTrust(t,It.VALID_SIGNATURE,"Gossip signature valid"),!0}catch(i){this.verbose>1&&console.error(`%c(Arbiter: ${this.id}) Error during signature verification from ${t}: ${i.stack}`,it.ARBITER),this.verbose>2&&console.log(`%c(Arbiter) signatureControl() error details: ${e}`,it.ARBITER)}this.adjustTrust(t,It.WRONG_SIGNATURE,"Gossip signature invalid")}#t(t,e,r,i){if(!i||r.length===i)return!0;this.adjustTrust(t,It.WRONG_LENGTH,`${e} message length mismatch`)}#n(t,e){if(e.HOPS<=(dt.HOPS[e.topic]||dt.HOPS.default))return!0;this.adjustTrust(t,It.HOPS_EXCEEDED,"Gossip HOPS exceeded")}#r(t,e){if(e.route.length<=ht.MAX_HOPS)return!0;this.adjustTrust(t,It.HOPS_EXCEEDED,"Unicast HOPS exceeded")}async#i(t,e){await this.cryptoCodex.pubkeyDifficultyCheck(e)?this.adjustTrust(t,It.VALID_POW,"Gossip PoW valid"):this.adjustTrust(t,It.WRONG_POW,"Gossip PoW invalid")}};await xt();var fs;function Ye(a,t=0){let e=typeof a=="string"?(fs??=new TextEncoder).encode(a):a,r=e,i=t+374761393&4294967295,o=0;if(r.length>=16){let h=[t+2654435761+2246822519&4294967295,t+2246822519&4294967295,t+0&4294967295,t-2654435761&4294967295],E=e,A=E.length-16,u=0;for(o=0;(o&4294967280)<=A;o+=4){let g=o,l=E[g+0]+(E[g+1]<<8),B=E[g+2]+(E[g+3]<<8),y=l*2246822519+(B*2246822519<<16),w=h[u]+y&4294967295;w=w<<13|w>>>19;let D=w&65535,I=w>>>16;h[u]=D*2654435761+(I*2654435761<<16)&4294967295,u=u+1&3}i=(h[0]<<1|h[0]>>>31)+(h[1]<<7|h[1]>>>25)+(h[2]<<12|h[2]>>>20)+(h[3]<<18|h[3]>>>14)&4294967295}i=i+e.length&4294967295;let c=e.length-4;for(;o<=c;o+=4){let h=o,E=r[h+0]+(r[h+1]<<8),A=r[h+2]+(r[h+3]<<8),u=E*3266489917+(A*3266489917<<16);i=i+u&4294967295,i=i<<17|i>>>15,i=(i&65535)*668265263+((i>>>16)*668265263<<16)&4294967295}for(;o<r.length;++o){let h=r[o];i=i+h*374761393,i=i<<11|i>>>21,i=(i&65535)*2654435761+((i>>>16)*2654435761<<16)&4294967295}return i=i^i>>>15,i=((i&65535)*2246822519&4294967295)+((i>>>16)*2246822519<<16),i=i^i>>>13,i=((i&65535)*3266489917&4294967295)+((i>>>16)*3266489917<<16),i=i^i>>>16,i<0?i+4294967296:i}async function gs(){if(!(typeof globalThis.RTCPeerConnection<"u"))return(await import("wrtc")).default}var Rr=await gs(),Ke=class{id;verbose;stunUrls;constructor(t,e,r=0){this.id=t,this.verbose=r,this.stunUrls=e}onSignalAnswer=null;onConnect=null;offerInstanceByExpiration={};creatingOffer=!1;offerCreationTimeout=null;offersToCreate=lt.MAX_SDP_OFFERS;offers={};tick(){let t=et.time;for(let o in this.offerInstanceByExpiration){let c=this.offerInstanceByExpiration[o];t<o||(c?.destroy(),delete this.offerInstanceByExpiration[o],this.creatingOffer=!1)}for(let o in this.offers){let c=this.offers[o];if(c.offererInstance.destroyed){delete this.offers[o];continue}if(c.isUsed){delete this.offers[o];continue}c.timestamp+lt.SDP_OFFER_EXPIRATION>t||(c.offererInstance?.destroy(),delete this.offers[o])}let e=0;for(let o in this.offers){e++;let c=this.offers[o];if(c.isDigestingOneAnswer){c.isDigestingOneAnswer=!1;continue}if(c.offererInstance.destroyed)continue;let h=c.answers.filter(u=>!u.used);if(!h.length)continue;let E=h.reduce((u,g)=>u.timestamp>g.timestamp?u:g);if(!E)continue;E.used=!0;let A=t-E.timestamp;A>ct.CONNECTION_UPGRADE_TIMEOUT/2||(c.offererInstance.signal(E.signal),c.isDigestingOneAnswer=!0,this.verbose>2&&console.log(`(${this.id}) Using answer from ${E.peerId} for offer ${o} (received since ${A} ms)`))}if(this.creatingOffer||e>=this.offersToCreate)return;this.creatingOffer=!0;let r=t+(lt.SIGNAL_CREATION_TIMEOUT||8e3),i=this.#e(r);this.offerInstanceByExpiration[r]=i}#e(t){let e=lt.ICE_COMPLETE_TIMEOUT||1e3,r=new lt.PEER({initiator:!0,trickle:!1,iceCompleteTimeout:e,wrtc:Rr,config:{iceServers:this.stunUrls}});return r.on("error",i=>this.#n(i)),r.on("signal",i=>{let{candidate:o,type:c}=i;if(!i||o)throw new Error("Unexpected signal data from offerer instance: "+JSON.stringify(i));if(c!=="offer")throw new Error("Unexpected signal type from offerer instance: "+c);delete this.offerInstanceByExpiration[t];let h=Ye(JSON.stringify(i));r.on("connect",()=>{this.offers[h]&&(this.offers[h].isUsed=!0),this.onConnect(void 0,r)}),this.offers[h]={timestamp:et.time,sentCounter:0,signal:i,offererInstance:r,answers:[],answerers:{},isUsed:!1},this.creatingOffer=!1}),r}#t(t,e="",r=2,i="includes"){return i[0]==="i"&&!t.message.includes(e)?!1:t.message.startsWith(e)?(this.verbose>=r&&console.info(`%cOfferManager => ${t.message}`,it.PEER_STORE),!0):!1}#n=t=>{this.verbose<1||this.#t(t,"Ice connection failed",2)||this.#t(t,"Connection failed",2)||this.#t(t,"Remote transport instance",3,"startsWith")||this.#t(t,"Simulated failure",4,"startsWith")||this.#t(t,"No peer found",4,"startsWith")||this.#t(t,"Missing transport instance",2,"startsWith")||this.#t(t,"Failed to create answer",2,"startsWith")||this.#t(t,"Transport instance",3,"startsWith")||this.#t(t,"cannot signal after peer is destroyed",3,"startsWith")||this.#t(t,"No pending",3)||this.#t(t,"is already linked",3)||this.#t(t,"There is already a pending",3)||this.#t(t,"closed the connection",3)||this.#t(t,"No transport instance found for id:",3)||this.verbose>0&&console.error("transportInstance ERROR => ",t.stack)};bestReadyOffer(t=0,e=!0){let r=null,i=null,o=null;for(let c in this.offers){let h=this.offers[c],{isUsed:E,sentCounter:A,signal:u,timestamp:g}=h;if(E||A>t)continue;let l=et.time-g;if(!(e&&l>lt.SDP_OFFER_EXPIRATION/2)&&!(o&&l>o)){r=h,i=c,o=l;break}}return{offerHash:i,readyOffer:r,since:o}}addSignalAnswer(t,e,r,i){!e||e.type!=="answer"||!r||!this.offers[r]||this.offers[r].answerers[t]||(this.offers[r].answerers[t]=!0,this.offers[r].answers.push({peerId:t,signal:e,timestamp:i}),this.verbose>3&&console.log(`(OfferManager) Added answer from ${t} for offer ${r}`))}getTransportInstanceForSignal(t,e,r){try{if(!e||!e.type||!e.sdp)throw new Error("Wrong remote SDP provided");let{type:i,sdp:o}=e;if(i!=="offer"&&i!=="answer")throw new Error("Invalid remote SDP type");if(i==="offer"&&!o)throw new Error("No SDP in the remote SDP offer");if(i==="answer"&&!o)throw new Error("No SDP in the remote SDP answer");if(i==="answer"){let E=r?this.offers[r]?.offererInstance:null;if(!E)throw new Error("No pending offer found for the given offer hash to accept the answer");return E}let c=lt.ICE_COMPLETE_TIMEOUT||1e3,h=new lt.PEER({initiator:!1,trickle:!1,iceCompleteTimeout:c,wrtc:Rr,config:{iceServers:this.stunUrls}});return h.on("error",E=>this.#n(E)),h.on("signal",E=>this.onSignalAnswer(t,E,r)),h.on("connect",()=>this.onConnect(t,h)),h}catch(i){if(i.message.startsWith("No pending offer found")&&this.verbose<2)return null;if(this.verbose>1&&i.message.startsWith("No pending offer found"))return console.info(`%c${i.message}`,it.PEER_STORE);this.verbose>0&&console.error(i.stack)}}destroy(){for(let t in this.offers)this.offers[t].offererInstance?.destroy()}};await xt();var{SANDBOX:iA,ICE_CANDIDATE_EMITTER:sA,TEST_WS_EVENT_MANAGER:oA}=yt.ENABLED?await Xe().then(()=>Ve):{},Fn=class{neighbors;connectionsCount;constructor(t={}){this.neighbors=t,this.connectionsCount=Object.keys(t).length}setNeighbor(t,e=et.time){this.neighbors[t]||this.connectionsCount++,this.neighbors[t]=e}unsetNeighbor(t){this.neighbors[t]&&this.connectionsCount--,delete this.neighbors[t]}},Ae=class{peerId;transportInstance;isWebSocket;direction;pendingUntil;connStartTime;constructor(t,e,r,i=!1){this.peerId=t,this.transportInstance=e,this.isWebSocket=i,this.direction=r,this.pendingUntil=et.time+ct.CONNECTION_UPGRADE_TIMEOUT}setConnected(){this.connStartTime=et.time,this.pendingUntil=0}getConnectionDuration(){return this.connStartTime?et.time-this.connStartTime:0}close(){this.isWebSocket?this.transportInstance?.close():this.transportInstance?.destroy()}},$e=class{id;cryptoCodex;offerManager;arbiter;verbose;isDestroy=!1;neighborsList=[];connecting={};connected={};known={};knownCount=0;kick={};callbacks={connect:[(t,e)=>this.#e(t,e)],disconnect:[(t,e)=>this.#t(t,e)],signal:[],data:[]};constructor(t,e,r,i,o=0){this.id=t,this.cryptoCodex=e,this.offerManager=r,this.arbiter=i,this.verbose=o,this.offerManager.onSignalAnswer=(c,h,E)=>{if(!(this.isDestroy||this.isKicked(c)||this.arbiter.isBanished(c)))for(let A of this.callbacks.signal)A(c,{signal:h,offerHash:E})},this.offerManager.onConnect=(c,h)=>{if(this.isDestroy)return h?.destroy();if(c===this.id)throw new Error(`Refusing to connect to self (${this.id}).`);let E=c;if(h.on("close",()=>{if(E)for(let A of this.callbacks.disconnect)A(E,h.initiator?"out":"in")}),h.on("data",A=>{if(E)for(let u of this.callbacks.data)u(E,A);else{let u=new Uint8Array(A);if(u[0]>127)return;let{route:g,type:l,neighborsList:B}=e.readUnicastMessage(u)||{};if(l!=="handshake"||g.length!==2||g[1]!==this.id)return;E=g[0],this.digestPeerNeighbors(E,B);for(let y of this.callbacks.connect)y(E,"out")}}),c)for(let A of this.callbacks.connect)A(c,"in")}}get publicNeighborsList(){return this.neighborsList.filter(t=>this.cryptoCodex.isPublicNode(t))}get standardNeighborsList(){return this.neighborsList.filter(t=>!this.cryptoCodex.isPublicNode(t))}#e(t,e){if(!this.connecting[t]?.[e])return this.verbose>=3?console.info(`%cPeer with ID ${t} is not connecting.`,it.PEER_STORE):null;let r=this.connecting[t][e];if(this.#n(t,"connecting",e),this.isKicked(t))return this.verbose>=3&&console.info(`%c(${this.id}) Connect => Peer with ID ${t} is kicked. => close()`,it.PEER_STORE),r.close();if(this.connected[t])return this.verbose>1&&console.warn(`%c(${this.id}) Connect => Peer with ID ${t} is already connected. => close()`,it.PEER_STORE),r.close();r.setConnected(),this.connected[t]=r,this.neighborsList.push(t),this.#r(this.id,t)}#t(t,e){this.#n(t,"connected",e)}#n(t,e="both",r="both"){if(!t&&t===this.id)return;let[i,o]=[this.connecting[t],this.connected[t]];if(!i&&!o||(e!=="connecting"&&(o?.direction===r||r==="both")&&(o?.close(),delete this.connected[t],this.neighborsList=Object.keys(this.connected),this.#i(this.id,t)),e==="connected"))return;let c=r==="both"?["out","in"]:[r];for(let h of c)delete i?.[h];this.connecting[t]?.in||this.connecting[t]?.out||delete this.connecting[t]}#r(t="toto",e="tutu"){for(let r of[t,e])this.known[r]||(this.known[r]=new Fn,this.knownCount++),this.known[r].setNeighbor(r===t?e:t)}#i(t="toto",e="tutu"){for(let r of[t,e])this.known[r]&&(this.known[r].unsetNeighbor(r===t?e:t),!(this.known[r].connectionsCount>0)&&(delete this.known[r],this.knownCount--))}cleanupExpired(t=!0){let e=et.time;for(let r of["in","out"])for(let i in this.connecting){if(!this.connecting[i][r])continue;let o=this.connected[i]?1e4:0;this.connecting[i][r].pendingUntil+o>e||(this.verbose>=4&&!this.connected[i]&&console.info(`%c(${this.id}) Pending ${r} connection to peer ${i} expired.`,it.PEER_STORE),this.verbose>0&&this.connected[i]?.direction===r&&console.info(`%c(${this.id}) Pending ${r} connection to peer ${i} expired (already connected WARNING!).`,"color: white;"),this.connecting[i]?.out?.isWebSocket&&this.connecting[i].out.close(),this.connecting[i]?.in?.close(),this.#n(i,"connecting",r))}t&&(this.neighborsList=Object.keys(this.connected),this.digestPeerNeighbors(this.id,this.neighborsList))}on(t,e){if(!this.callbacks[t])throw new Error(`Unknown callback type: ${t}`);this.callbacks[t].push(e)}getUpdatedPeerConnectionsCount(t,e=!0){let r=et.time,i=0,o=this.known[t]?.neighbors||{};for(let c in o){if(c!==this.id&&r-o[c]>At.PEER_LINK_EXPIRATION){this.#i(t,c);continue}e?i++:this.cryptoCodex.isPublicNode(c)||i++}return i}addConnectingPeer(t,e,r){if(t===this.id)throw new Error(`Refusing to connect to self (${this.id}).`);let i=e.type==="offer"?"in":"out";if(this.connecting[t]?.[i])return;let o=this.offerManager.getTransportInstanceForSignal(t,e,r);return o?(this.connecting[t]||(this.connecting[t]={}),this.connecting[t][i]=new Ae(t,o,i),!0):this.verbose>3?console.info(`%cFailed to get transport instance for signal from ${t}.`,it.PEER_STORE):null}assignSignal(t,e,r,i=et.time){let o=this.connecting[t]?.[e.type==="offer"?"in":"out"];try{if(o?.isWebSocket)throw new Error(`Cannot assign signal for ID ${t}. (WebSocket)`);e.type==="answer"?this.offerManager.addSignalAnswer(t,e,r,i):o.transportInstance.signal(e)}catch(c){console.error(`Error signaling ${e?.type} for ${t}:`,c.stack)}}kickPeer(t,e=6e4,r){e&&(this.kick[t]=et.time+e),this.#n(t,"both"),this.verbose>1&&console.log(`%c(${this.id}) Kicked peer ${t} for ${e/1e3}s. ${r?"| Reason: "+r:""}`,"color: green;")}isKicked(t){return this.kick[t]&&this.kick[t]>et.time}digestValidRoute(t=[]){for(let e=1;e<t.length;e++)this.#r(t[e-1],t[e])}digestPeerNeighbors(t,e=[]){if(!(!t||!Array.isArray(e))){for(let r in this.known[t]?.neighbors||{})e.includes(r)||this.#i(t,r);for(let r of e)this.#r(t,r)}}destroy(){this.isDestroy=!0;for(let[t,e]of Object.entries(this.connected))this.#n(t),e.close();for(let[t,e]of Object.entries(this.connecting))this.#n(t),e.in?.close(),e.out?.close();this.offerManager.destroy()}};await xt();var Ze=class{cache={};peerStore;constructor(t,e){this.id=t,this.peerStore=e}buildRoutes(t,e=5,r=3,i=1728,o=!0,c=3){if(this.id===t)throw new Error("Cannot build route to self");if(this.peerStore.connected[t])return{routes:[{path:[this.id,t]}],success:!0,nodesExplored:1};if(!this.peerStore.known[t])return this.#n(t);if(this.cache[t]&&this.#e(this.cache[t]))return{routes:this.cache[t],success:!0,nodesExplored:0};let h=this.#r(t,r,i,c);if(!h.success)return{routes:[],success:!1,nodesExplored:h.nodesExplored};let A=this.#t(h.paths,o).slice(0,e);return this.cache[t]=A,{routes:A,success:!0,nodesExplored:h.nodesExplored}}#e(t){for(let{path:e}of t)for(let r=1;r<e.length;r++){let i=e[r-1],o=e[r];if(i===this.id){if(!this.peerStore.connected[o])return!1}else if(!this.peerStore.known[i]?.neighbors?.[o])return!1}return!0}#t(t,e){let r=[];for(let i of t)r.push({path:i,hops:i.length-1});return e&&r.sort((i,o)=>i.hops-o.hops),r}#n(t){let e=[],r=this.peerStore.neighborsList,i=[...Array(r.length).keys()].sort(()=>Math.random()-.5);for(let o of i)e.push({path:[this.id,r[o],t],hops:0,score:0});return e.length===0?{routes:[],success:!1,nodesExplored:0}:{routes:e,success:"blind",nodesExplored:e.length}}#r(t,e,r,i){let o=[],c=0,h=[{node:this.id,path:[this.id],pathSet:new Set([this.id]),depth:0}],E=new Map;E.set(this.id,[this.id]);let A=[{node:t,path:[t],pathSet:new Set([t]),depth:0}],u=new Map;u.set(t,[t]);let g=Math.ceil(e/2);for(;(h.length>0||A.length>0)&&c<r;){if(h.length>0){let l=this.#i(h,E,u,g);for(let B of l){let y=this.#s(E.get(B),u.get(B));if(o.push(y),!(y.length-1>i))return{success:!0,paths:o,nodesExplored:c}}c++}if(A.length>0){let l=this.#i(A,u,E,g);for(let B of l){let y=this.#s(E.get(B),u.get(B));if(o.push(y),!(y.length-1>i))return{success:!0,paths:o,nodesExplored:c}}c++}}return{success:o.length>0,paths:o,nodesExplored:c}}#i(t,e,r,i){if(t.length===0)return[];let{node:o,path:c,pathSet:h,depth:E}=t.shift();if(E>=i)return[];let A=[];function u(g){if(h.has(g))return;let l=E+1;if(r.has(g)&&A.push(g),e.has(g))return;let B=[...c,g],y=new Set(h).add(g);e.set(g,B),t.push({node:g,path:B,pathSet:y,depth:l})}if(o===this.id)for(let g of this.peerStore.neighborsList)u(g);else for(let g in this.peerStore.known[o]?.neighbors||{})u(g);return A}#s(t,e){let r=t.length+e.length-1,i=new Array(r),o=0;for(let c of t)i[o++]=c;for(let c=e.length-2;c>=0;c--)i[o++]=e[c];return i}};var{SANDBOX:gA,ICE_CANDIDATE_EMITTER:uA,TEST_WS_EVENT_MANAGER:lA}=yt.ENABLED?await Xe().then(()=>Ve):{},us=Ze,ve=class{type="message";timestamp;neighborsList;route;pubkey;data;signature;signatureStart;expectedEnd;constructor(t,e,r,i,o,c,h,E,A){this.type=t,this.timestamp=e,this.neighborsList=r,this.route=i,this.pubkey=o,this.data=c,this.signature=h,this.signatureStart=E,this.expectedEnd=A}getSenderId(){return this.route[0]}getTargetId(){return this.route[this.route.length-1]}extractRouteInfo(t="toto"){let e=this.newRoute||this.route,r=[],i=-1;for(let A=0;A<e.length;A++)if(r.push(e[A]),e[A]===t){i=A;break}let o=e[0],c=e[e.length-1],h=i>0?e[i-1]:null,E=i!==-1?e[i+1]:null;return{traveledRoute:r,selfPosition:i,senderId:o,targetId:c,prevId:h,nextId:E,routeLength:e.length}}},ze=class extends ve{rerouterPubkey;newRoute;rerouterSignature;constructor(t,e,r,i,o,c,h,E,A){super(t,e,r,i,o,c),this.rerouterPubkey=h,this.newRoute=E,this.rerouterSignature=A}getRerouterId(){return this.newRoute[0]}},tn=class{callbacks={message_handle:[]};id;cryptoCodex;arbiter;peerStore;verbose;pathFinder;maxHops=ht.MAX_HOPS;maxRoutes=ht.MAX_ROUTES;maxNodes=ht.MAX_NODES;constructor(t,e,r,i,o=0){this.id=t,this.cryptoCodex=e,this.arbiter=r,this.peerStore=i,this.verbose=o,this.pathFinder=new us(this.id,this.peerStore)}on(t,e){this.callbacks[t]?this.callbacks[t].push(e):this.callbacks[t]=[e]}sendUnicast(t,e,r="message",i=1){if(t===this.id)return!1;let o=this.pathFinder.buildRoutes(t,this.maxRoutes,this.maxHops,this.maxNodes,!0);if(!o.success)return!1;let c=o.success==="blind"?1:i;for(let h=0;h<Math.min(c,o.routes.length);h++){let E=o.routes[h].path;if(E.length>ht.MAX_HOPS){this.verbose>1&&console.warn(`Cannot send unicast message to ${t} as route exceeds maxHops (${ht.MAX_HOPS}). BFS incurred.`);continue}let A=this.cryptoCodex.createUnicastMessage(r,e,E,this.peerStore.neighborsList);this.#e(E[1],A)}return!0}#e(t,e){if(this.id===t)return{success:!1,reason:"Cannot send message to self."};let r=this.peerStore.connected[t]?.transportInstance;if(!r)return{success:!1,reason:`Transport instance is not available for peer ${t}.`};try{return r.send(e),{success:!0}}catch(i){this.peerStore.kickPeer(t,0,"send-error"),this.verbose>0&&console.error(`Error sending message to ${t}:`,i.message)}return{success:!1,reason:`Error sending message to ${t}.`}}async handleDirectMessage(t,e){if(this.arbiter.isBanished(t))return this.verbose>=3?console.info(`%cReceived direct message from banned peer ${t}, ignoring.`,"color: red;"):null;if(!this.arbiter.countMessageBytes(t,e.byteLength,"unicast"))return;let r=this.cryptoCodex.readUnicastMessage(e);if(!r)return this.arbiter.countPeerAction(t,"WRONG_SERIALIZATION");if(!await this.arbiter.digestMessage(t,r,e)||this.arbiter.isBanished(t)||this.arbiter.isBanished(r.senderId))return;let{traveledRoute:o,selfPosition:c,senderId:h,targetId:E,prevId:A,nextId:u}=r.extractRouteInfo(this.id);if(t===h&&t===this.id)throw new Error("DirectMessage senderId and from are both self id !!");for(let B of this.callbacks.message_handle||[])B();if(c===-1)return this.arbiter.adjustTrust(t,It.UNICAST_INVALID_ROUTE,"Self not in route");if(A&&t!==A)return this.arbiter.adjustTrust(t,It.UNICAST_INVALID_ROUTE,"Previous hop id does not match actual from id");if(h===this.id)return this.arbiter.adjustTrust(t,It.UNICAST_INVALID_ROUTE,"SenderId is self id");if(this.verbose>3&&console.log(h===t?`(${this.id}) Direct ${r.type} from ${h}: ${r.data}`:`(${this.id}) Direct ${r.type} from ${h} (lastRelay: ${t}): ${r.data}`),this.peerStore.digestPeerNeighbors(h,r.neighborsList),t!==h&&this.arbiter.adjustTrust(t,It.UNICAST_RELAYED,"Relayed unicast message"),At.ON_UNICAST.DIGEST_TRAVELED_ROUTE&&this.peerStore.digestValidRoute(o),this.id===E){for(let B of this.callbacks[r.type]||[])B(h,r.data);return}let{success:g,reason:l}=this.#e(u,e);if(!g&&!r.rerouterSignature){let B=this.pathFinder.buildRoutes(E,this.maxRoutes,this.maxHops,this.maxNodes,!0);if(!B.success)return;let y=B.routes[0].path;if(y.length>ht.MAX_HOPS){this.verbose>1&&console.warn(`Cannot re-route unicast message to ${E} as new route exceeds maxHops (${ht.MAX_HOPS}).`);return}let w=this.cryptoCodex.createReroutedUnicastMessage(e,y),D=y[c+1];this.#e(D,w)}}};await xt();var en=class{topic="gossip";timestamp;neighborsList;HOPS;senderId;pubkey;data;signature;signatureStart;expectedEnd;constructor(t,e,r,i,o,c,h,E,A,u){this.topic=t,this.timestamp=e,this.neighborsList=r,this.HOPS=i,this.senderId=o,this.pubkey=c,this.data=h,this.signature=E,this.signatureStart=A,this.expectedEnd=u}},kn=class{cryptoCodex;xxHash32UsageCount=0;seenTimeouts={};cache=[];cleanupFrequency=100;cleanupIn=100;cleanupDurationWarning=10;constructor(t){this.cryptoCodex=t}getGossipHistoryByTime(t="asc"){let e=this.cache.map(r=>({senderId:r.senderId,topic:r.topic,data:r.serializedMessage}));return t==="asc"?e:e.reverse()}addMessage(t){let e=et.time,{marker:r,neighLength:i,timestamp:o,dataLength:c,pubkey:h,associatedId:E}=this.cryptoCodex.readBufferHeader(t);if(e-o>dt.EXPIRATION)return;let A=t.subarray(0,47+i+c),u=Ye(A);if(this.xxHash32UsageCount++,this.seenTimeouts[u])return;let g=dt.MARKERS_BYTES[r],l=E,B=e+dt.CACHE_DURATION;return this.cache.push({hash:u,senderId:l,topic:g,serializedMessage:t,timestamp:o,expiration:B}),this.seenTimeouts[u]=B,--this.cleanupIn<=0&&this.#e(e),{hash:u,isNew:!this.seenTimeouts[u]}}#e(t=et.time){let e=-1;for(let r=0;r<this.cache.length;r++)this.cache[r].expiration<=t?delete this.seenTimeouts[this.cache[r].hash]:e===-1&&(e=r);e>0?this.cache=this.cache.slice(e):e===-1&&(this.cache=[]),this.cleanupIn=this.cleanupFrequency}},nn=class{callbacks={message_handle:[]};id;cryptoCodex;arbiter;peerStore;verbose;bloomFilter;constructor(t,e,r,i,o=0){this.id=t,this.cryptoCodex=e,this.arbiter=r,this.peerStore=i,this.verbose=o,this.bloomFilter=new kn(e)}on(t,e){this.callbacks[t]?this.callbacks[t].push(e):this.callbacks[t]=[e]}broadcastToAll(t,e="gossip",r){let i=r||dt.HOPS[e]||dt.HOPS.default,o=this.cryptoCodex.createGossipMessage(e,t,i,this.peerStore.neighborsList);if(this.bloomFilter.addMessage(o)){this.verbose>3&&console.log(`(${this.id}) Gossip ${e}, to ${JSON.stringify(this.peerStore.neighborsList)}: ${t}`);for(let c of this.peerStore.neighborsList)this.#e(c,o)}}#e(t,e){if(t===this.id)throw new Error(`Refusing to send a gossip message to self (${this.id}).`);let r=this.peerStore.connected[t]?.transportInstance;if(!r)return{success:!1,reason:`Transport instance is not available for peer ${t}.`};try{r.send(e)}catch{this.peerStore.connected[t]?.close()}}sendGossipHistoryToPeer(t){let e=this.bloomFilter.getGossipHistoryByTime("asc");for(let r of e)this.#e(t,r.data)}async handleGossipMessage(t,e){if(this.arbiter.isBanished(t))return this.verbose>=3?console.info(`%cReceived gossip message from banned peer ${t}, ignoring.`,"color: red;"):null;if(!this.arbiter.countMessageBytes(t,e.byteLength,"gossip"))return;for(let I of this.callbacks.message_handle||[])I(e);if(!this.bloomFilter.addMessage(e))return;let r=this.cryptoCodex.readGossipMessage(e);if(!r)return this.arbiter.countPeerAction(t,"WRONG_SERIALIZATION");if(!await this.arbiter.digestMessage(t,r,e)||this.arbiter.isBanished(t)||this.arbiter.isBanished(r.senderId))return;let{topic:o,timestamp:c,neighborsList:h,HOPS:E,senderId:A,data:u}=r;if(A===this.id)throw new Error(`#${this.id}#${t}# Received our own message back from peer ${t}.`);this.verbose>3&&console.log(A===t?`(${this.id}) Gossip ${o} from ${A}: ${u}`:`(${this.id}) Gossip ${o} from ${A} (by: ${t}): ${u}`),this.peerStore.digestPeerNeighbors(A,h);for(let I of this.callbacks[o]||[])I(A,u,E,r);if(E<1)return;let g=this.peerStore.neighborsList.length,l=Math.max(1,g/dt.TRANSMISSION_RATE.NEIGHBOURS_PONDERATION),B=dt.TRANSMISSION_RATE[o]||dt.TRANSMISSION_RATE.default,y=Math.pow(B,l),w=g<dt.TRANSMISSION_RATE.MIN_NEIGHBOURS_TO_APPLY_PONDERATION,D=this.cryptoCodex.decrementGossipHops(e);for(let I of this.peerStore.neighborsList)if(I!==t){if(!w&&Math.random()>y)continue;this.#e(I,D)}}};await xt();var{SANDBOX:wA,ICE_CANDIDATE_EMITTER:mA,TEST_WS_EVENT_MANAGER:SA}=yt.ENABLED?await Xe().then(()=>Ve):{},Un=class{maxOffers=30;offers=[];orderingBy="neighborsCount";get size(){return this.offers.length}updateOrderingBy(t=!1){this.orderingBy=t?"overlap":"neighborsCount"}removeOlderThan(t=1e3){this.offers=this.offers.filter(e=>e.timestamp+t>=et.time)}get bestOfferInfo(){let{senderId:t,overlap:e,neighborsCount:r,data:i,timestamp:o}=this.offers.shift()||{};return{senderId:t,data:i,timestamp:o,value:this.orderingBy==="overlap"?e:r}}pushSortTrim(t,e={min:.2,max:.8}){let{min:r,max:i}=e;Math.random()<Math.min(r,this.offers.size/this.maxOffers*i)||(this.offers.push(t),this.offers.length!==1&&(this.offers.sort((o,c)=>this.orderingBy==="overlap"?o.overlap-c.overlap:c.neighborsCount-o.neighborsCount),this.size>this.maxOffers&&this.offers.pop()))}},rn=class{id;cryptoCodex;gossip;messager;peerStore;bootstraps;offersQueue=new Un;bootstrapsConnectionState=new Map;services;NEIGHBORS_TARGET;HALF_TARGET;TWICE_TARGET;setNeighborsTarget(t=At.TARGET_NEIGHBORS_COUNT){this.NEIGHBORS_TARGET=t,this.HALF_TARGET=Math.ceil(this.NEIGHBORS_TARGET/2),this.TWICE_TARGET=this.NEIGHBORS_TARGET*2}automation={incomingOffer:!0,incomingAnswer:!0,spreadOffers:!0,connectBootstraps:!0};phase=0;nextBootstrapIndex=0;maxBonus=ct.CONNECTION_UPGRADE_TIMEOUT*.2;get isPublicNode(){return!!this.services?.publicUrl}constructor(t,e,r,i,o,c){this.setNeighborsTarget(At.TARGET_NEIGHBORS_COUNT),this.id=t,this.cryptoCodex=e,this.gossip=r,this.messager=i,this.peerStore=o;for(let h of c)this.bootstrapsConnectionState.set(h,!1);this.bootstraps=[...c].sort(()=>Math.random()-.5),this.nextBootstrapIndex=Math.random()*this.bootstraps.length|0}tick(){let{neighborsCount:t,nonPublicNeighborsCount:e,isEnough:r,isTooMany:i,isHalfReached:o}=this.#e,c=e>=this.NEIGHBORS_TARGET/3?1:lt.MAX_SDP_OFFERS;if(this.peerStore.offerManager.offersToCreate=r?0:c,this.isPublicNode){this.services.freePublicNodeByKickingPeers();return}if(i)return Math.random()>.05?this.#A():null;r?Math.random()>.05&&this.#o():this.#o(),this.phase=this.phase?0:1,this.phase===0&&this.tryConnectNextBootstrap(t,e),this.phase===1&&this.#s(e,o)}handleIncomingSignal(t,e,r){if(this.isPublicNode||!t||this.peerStore.isKicked(t)||e.signal?.type!=="offer"&&e.signal?.type!=="answer")return;let{signal:i,offerHash:o}=e||{},{connected:c,nonPublicNeighborsCount:h,isTooMany:E,isHalfReached:A}=this.#e;if(E||c[t])return;if(i.type==="answer"){if(!this.automation.incomingAnswer||this.peerStore.addConnectingPeer(t,i,o)!==!0)return;let B=Math.abs(h-this.#t(t).nonPublicCount),y=this.maxBonus/this.NEIGHBORS_TARGET,w=Math.round(Math.min(this.maxBonus,B*y));return this.peerStore.assignSignal(t,i,o,et.time+w)}if(!this.automation.incomingOffer||h>this.TWICE_TARGET)return;let{overlap:u,nonPublicCount:g}=this.#t(t);if(g>this.TWICE_TARGET)return;let l={senderId:t,data:e,overlap:u,neighborsCount:g,timestamp:et.time};this.offersQueue.updateOrderingBy(A),this.offersQueue.pushSortTrim(l)}tryConnectNextBootstrap(t=0,e=0){if(!this.automation.connectBootstraps||this.bootstraps.length===0)return;let r=t-e,i=0;for(let c in this.peerStore.connecting)i++;if(this.NEIGHBORS_TARGET||t){if(r>=this.HALF_TARGET)return;if(t>=this.NEIGHBORS_TARGET)return;if(i+e>this.TWICE_TARGET)return}let o=this.bootstraps[this.nextBootstrapIndex++%this.bootstraps.length];this.bootstrapsConnectionState.get(o)||this.#i(o)}get#e(){return{connected:this.peerStore.connected,neighborsCount:this.peerStore.neighborsList.length,nonPublicNeighborsCount:this.peerStore.standardNeighborsList.length,isEnough:this.peerStore.standardNeighborsList.length>=this.NEIGHBORS_TARGET,isTooMany:this.peerStore.standardNeighborsList.length>this.NEIGHBORS_TARGET,isHalfReached:this.peerStore.standardNeighborsList.length>=this.HALF_TARGET}}#t(t="toto"){let e=this.peerStore.known[t]?.neighbors||{},r={overlap:0,nonPublicCount:0,p1nCount:this.peerStore.getUpdatedPeerConnectionsCount(t)};for(let i in e)this.cryptoCodex.isPublicNode(i)||r.nonPublicCount++;for(let i of this.peerStore.standardNeighborsList)e[i]&&r.overlap++;return r}#n(t=[]){return t.map(e=>({id:e,...this.#t(e)}))}#r(t){let e=typeof window<"u",i=e&&window.location.protocol==="https:"?"wss://":"ws://",o=t.endsWith("/ws"),c=e&&!o?window.location.host:t;return t.startsWith("ws")?t:`${i}${c}`}#i(t="localhost:8080"){let e=null,r=new lt.WS_CLIENT(this.#r(t));r.binaryType="arraybuffer",r.onerror=i=>console.error("WebSocket error:",i.stack),r.onopen=()=>{this.bootstrapsConnectionState.set(t,!0),r.onclose=()=>{this.bootstrapsConnectionState.set(t,!1);for(let i of this.peerStore.callbacks.disconnect)i(e,"out")},r.onmessage=async i=>{if(e)for(let o of this.peerStore.callbacks.data)o(e,i.data);else{let o=new Uint8Array(i.data);if(o[0]>127)return;let c=this.cryptoCodex.readUnicastMessage(o);if(!c)return;let{route:h,type:E,neighborsList:A}=c;if(E!=="handshake"||h.length!==2)return;let{signatureStart:u,pubkey:g,signature:l}=c,B=o.subarray(0,u);if(!await this.cryptoCodex.verifySignature(g,l,B))return;e=h[0],this.peerStore.digestPeerNeighbors(e,A),this.peerStore.connecting[e]?.in?.close(),this.peerStore.connecting[e]||(this.peerStore.connecting[e]={}),this.peerStore.connecting[e].out=new Ae(e,r,"out",!0);for(let y of this.peerStore.callbacks.connect)y(e,"out")}},r.send(this.cryptoCodex.createUnicastMessage("handshake",null,[this.id,this.id],this.peerStore.neighborsList))}}#s(t=0,e=!1){if(!this.automation.spreadOffers||!this.peerStore.neighborsList.length)return;let i=Object.keys(this.peerStore.connecting).length+t,{offerHash:o,readyOffer:c}=this.peerStore.offerManager.bestReadyOffer(0,!0);if(!o||!c)return;if(!e&&i<=this.TWICE_TARGET){this.gossip.broadcastToAll({signal:c.signal,offerHash:o},"signal_offer"),c.sentCounter++;return}let h=null;for(let y of this.#n(this.peerStore.standardNeighborsList)){let w=y[e?"overlap":"nonPublicCount"];h===null&&(h=w),e&&w<h&&(h=w),!e&&w<=h&&(h=w)}let E=100,A=1e3,u=this.peerStore.knownCount,g=Math.max(Math.min(A/u,u/A),.127),l=[];for(let y in this.peerStore.known){if(Math.random()>g)continue;if(--A<=0)break;if(y===this.id||this.cryptoCodex.isPublicNode(y)||this.peerStore.isKicked(y))continue;if(this.peerStore.connected[y]||this.peerStore.connecting[y])continue;let{overlap:w,nonPublicCount:D}=this.#t(y);if(!(D>this.NEIGHBORS_TARGET)&&(h===null&&(h=e?w:D),!(e&&w>h)&&!(!e&&D<h)&&(l.push(y),--E<=0)))break}if(!l.length)return;let B=new Map;for(let y=0;y<Math.min(l.length,100);y++){let w=l[Math.floor(Math.random()*l.length)];if(!B.has(w)&&(B.size===0&&c.sentCounter++,B.set(w,!0),this.messager.sendUnicast(w,{signal:c.signal,offerHash:o},"signal_offer",1),B.size>=12))break}}#o(){let t=null,e=Object.keys(this.peerStore.connecting).length;this.offersQueue.updateOrderingBy(this.#e.isHalfReached),this.offersQueue.removeOlderThan(lt.SDP_OFFER_EXPIRATION/2);for(let r=0;r<this.offersQueue.size;r++){let{senderId:i,data:o,timestamp:c,value:h}=this.offersQueue.bestOfferInfo;if(!i||!o||!c)break;if(!(this.peerStore.connected[i]||this.peerStore.isKicked(i))&&!this.peerStore.connecting[i]?.in){if(t=t===null?h:t,t!==h)break;this.peerStore.addConnectingPeer(i,o.signal,o.offerHash)===!0&&(this.peerStore.assignSignal(i,o.signal,o.offerHash,c),e++)}}}#A(){let e=this.#n(this.peerStore.standardNeighborsList).sort((r,i)=>i.overlap-r.overlap||i.nonPublicCount-r.nonPublicCount);this.peerStore.kickPeer(e[0].id,6e4,"improveTopology")}};await xt();var Ot=class a{IS_BROWSER=typeof window<"u";FROMBASE64_AVAILABLE=typeof Uint8Array.fromBase64=="function";textEncoder=new TextEncoder;textDecoder=new TextDecoder;buffer2=new ArrayBuffer(2);view2=new DataView(this.buffer2);buffer4=new ArrayBuffer(4);view4=new DataView(this.buffer4);buffer8=new ArrayBuffer(8);view8=new DataView(this.buffer8);hexMap={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};numberTo2Bytes(t){return this.view2.setUint16(0,t,!0),new Uint8Array(this.buffer2)}numberTo4Bytes(t){return this.view4.setUint32(0,t,!0),new Uint8Array(this.buffer4)}numberTo8Bytes(t){return this.view8.setBigUint64(0,BigInt(t),!0),new Uint8Array(this.buffer8)}stringToBytes(t="toto"){return this.textEncoder.encode(t)}hexToBytes(t){let e=t.length/2,r=new Uint8Array(e);for(let i=0,o=0;i<e;++i,o+=2)r[i]=(this.hexMap[t[o]]<<4)+this.hexMap[t[o+1]];return r}base64toBytes(t){if(!this.IS_BROWSER)return new Uint8Array(Buffer.from(t,"base64"));if(this.FROMBASE64_AVAILABLE)return Uint8Array.fromBase64(t);let e=atob(t),r=new Uint8Array(e.length);for(let i=0;i<e.length;i++)r[i]=e.charCodeAt(i);return r}bytes2ToNumber(t){for(let e=0;e<2;e++)this.view2.setUint8(e,t[e]);return this.view2.getUint16(0,!0)}bytes4ToNumber(t){for(let e=0;e<4;e++)this.view4.setUint8(e,t[e]);return this.view4.getUint32(0,!0)}bytes8ToNumber(t){for(let e=0;e<8;e++)this.view8.setUint8(e,t[e]);return Number(this.view8.getBigUint64(0,!0))}bytesToString(t){return this.textDecoder.decode(t)}static bytesToHex(t,e=0){let r="";for(let i of t)r+=i<16?`0${i.toString(16)}`:i.toString(16);return e>0&&(r=r.padStart(e,"0")),r}bytesToHex(t,e=0){return a.bytesToHex(t,e)}static hexToBits(t="ffffff",e="string"){let r=[];if(e==="arrayOfNumbers")for(let i=0;i<t.length;i++)r.push(...parseInt(t[i],16).toString(2).padStart(4,"0").split("").map(o=>parseInt(o,10)));else for(let i=0;i<t.length;i++)r.push(parseInt(t[i],16).toString(2).padStart(4,"0"));return e==="string"?r.join(""):r}static bytesToBits(t,e="string"){return this.hexToBits(this.bytesToHex(t),e)}static ipToInt(t="192.168.0.1"){return t.split(".").reduce((e,r)=>(e<<8)+parseInt(r,10),0)}};var Le=typeof window<"u",[ji,{sha512:Uo}]=await Promise.all([Le?Promise.resolve().then(()=>(nr(),er)):Promise.resolve().then(()=>(Di(),Ri)),Le?Promise.resolve().then(()=>(nr(),er)):Promise.resolve().then(()=>(Ji(),Ki))]),Ce=ji.default||ji;Ce.hashes.sha512=Uo;var Re=class{converter=new Ot;argon2;hash=async(t,e,r=2**16,i=1,o=1,c=2,h=32)=>{let E=this.#e(t,e,i,r,o,c,h),A=await this.getArgon2Lib(),u=Le?await A.hash(E):await A.hash(t,E);if(!u)return!1;let g=u.encoded||u,l=this.#t(g);return l||!1};async getArgon2Lib(){if(this.argon2)return this.argon2;if(!Le)try{let e=await import("argon2");this.argon2=e}catch{throw new Error("Please install argon2 package: npm install argon2")}if(this.argon2)return this.argon2;try{if(argon2)return console.log("Argon2 loaded as a global variable"),this.argon2=argon2,this.argon2}catch{}if(this.argon2)return this.argon2;console.log("trying import argon2 ES6 and inject in window");let t=await Promise.resolve().then(()=>(Wi(),qi));return window.argon2=t.default,this.argon2=t.default,this.argon2}#e(t="averylongpassword123456",e="saltsaltsaltsaltsalt",r=1,i=2**10,o=1,c=2,h=32){let E=e.padEnd(20,"0").substring(0,16);return{type:c,pass:t,parallelism:o,time:r,timeCost:r,mem:i,memoryCost:i,hashLen:h,hashLength:h,salt:Le?E:Buffer.from(E)}}#t(t="$argon2id$v=19$m=1048576,t=1,p=1$c2FsdHNhbHRzYWx0c2FsdHNhbHQ$UamPN/XTTX4quPewQNw4/s3y1JJeS22cRroh5l7OTMM"){let e=t.split("$").pop(),r=this.converter.base64toBytes(e),i=this.converter.bytesToHex(r),o=Ot.hexToBits(i,"string");return o?{encoded:t,hash:r,hex:i,bitsString:o}:!1}};var De=class a{argon2=new Re;converter=new Ot;AVOID_CRYPTO=!1;verbose=ct.DEFAULT_VERBOSE;id;publicKey;privateKey;constructor(t,e=ct.DEFAULT_VERBOSE){if(this.verbose=e,!t)return;this.AVOID_CRYPTO=!0,this.id=t.padEnd($.ID_LENGTH," ").slice(0,$.ID_LENGTH),this.privateKey=new Uint8Array(32).fill(0),this.publicKey=new Uint8Array(32).fill(0);let r=new TextEncoder().encode(this.id);for(let i=0;i<$.ID_LENGTH;i++)this.publicKey[i]=r[i]}static async createCryptoCodex(t,e){let r=new a(void 0,this.verbose);return await r.generate(t,e),r}static isPublicNode(t){return($.ARE_IDS_HEX?Ot.hexToBits(t[0]):t).startsWith($.PUBLIC_PREFIX)}get idLength(){return $.ARE_IDS_HEX?$.ID_LENGTH/2:$.ID_LENGTH}isPublicNode(t){return a.isPublicNode(t)}async generate(t,e){if(!this.nodeId&&(await this.#t(e,t),!this.id))throw new Error("Failed to generate identity")}async pubkeyDifficultyCheck(t){if(this.AVOID_CRYPTO||!$.DIFFICULTY)return!0;let{bitsString:e}=await this.argon2.hash(t,"HiveP2P",$.ARGON2_MEM)||{};if(e&&e.startsWith("0".repeat($.DIFFICULTY)))return!0}#e(t){return $.ARE_IDS_HEX?this.converter.bytesToHex(t.slice(0,this.idLength),$.ID_LENGTH):this.converter.bytesToString(t.slice(0,$.ID_LENGTH))}async#t(t,e){let r=2**$.DIFFICULTY*100;for(let i=0;i<r;i++){let{secretKey:o,publicKey:c}=Ce.keygen(t),h=this.#e(c);if(!(e&&!this.isPublicNode(h))&&!(!e&&this.isPublicNode(h))&&await this.pubkeyDifficultyCheck(c)){this.id=h,this.privateKey=o,this.publicKey=c,this.verbose>2&&console.log(`%cNode generated id: ${this.id} (isPublic: ${e}, difficulty: ${$.DIFFICULTY}) after ${((i+1)/2).toFixed(1)} iterations`,it.CRYPTO_CODEX);return}}this.verbose>0&&console.log(`%cFAILED to generate id after ${r} iterations. Try lowering the difficulty.`,it.CRYPTO_CODEX)}signBufferViewAndAppendSignature(t,e,r=t.length-$.SIGNATURE_LENGTH){if(this.AVOID_CRYPTO)return;let i=t.subarray(0,r);t.set(Ce.sign(i,e),r)}createGossipMessage(t,e,r=3,i=[],o=et.time){let c=dt.MARKERS_BYTES[t];if(c===void 0)throw new Error(`Failed to create gossip message: unknown topic '${t}'.`);let h=this.#n(i),{dataCode:E,dataBytes:A}=this.#r(e),u=47+h.length+A.length+$.SIGNATURE_LENGTH+1,g=new ArrayBuffer(u),l=new Uint8Array(g);return this.#i(l,c,E,i.length,o,A,this.publicKey),l.set(h,47),l.set(A,47+h.length),l.set([Math.min(255,r)],u-1),this.signBufferViewAndAppendSignature(l,this.privateKey,u-$.SIGNATURE_LENGTH-1),l}decrementGossipHops(t){let e=new Uint8Array(t),r=t[t.length-1];return e[t.length-1]=Math.max(0,r-1),e}createUnicastMessage(t,e,r,i=[],o=et.time){let c=ht.MARKERS_BYTES[t];if(c===void 0)throw new Error(`Failed to create unicast message: unknown type '${t}'.`);if(r.length<2)throw new Error("Failed to create unicast message: route must have at least 2 nodes (next hop and target).");if(r.length>ht.MAX_HOPS)throw new Error(`Failed to create unicast message: route exceeds max hops (${ht.MAX_HOPS}).`);let h=this.#n(i),{dataCode:E,dataBytes:A}=this.#r(e),u=this.#n(r),g=47+h.length+1+u.length+A.length+$.SIGNATURE_LENGTH,l=new ArrayBuffer(g),B=new Uint8Array(l);this.#i(B,c,E,i.length,o,A,this.publicKey);let y=h.length+A.length;return B.set(h,47),B.set(A,47+h.length),B.set([r.length],47+y),B.set(u,48+y),this.signBufferViewAndAppendSignature(B,this.privateKey,g-$.SIGNATURE_LENGTH),B}createReroutedUnicastMessage(t,e){if(e.length<2)throw new Error("Failed to create rerouted unicast message: route must have at least 2 nodes (next hop and target).");if(e.length>ht.MAX_HOPS)throw new Error(`Failed to create rerouted unicast message: route exceeds max hops (${ht.MAX_HOPS}).`);let r=e.map(h=>this.converter.stringToBytes(h)),i=t.length+32+$.ID_LENGTH*r.length+$.SIGNATURE_LENGTH,o=new ArrayBuffer(i),c=new Uint8Array(o);c.set(t,0),c.set(this.publicKey,t.length);for(let h=0;h<r.length;h++)c.set(r[h],t.length+32+h*$.ID_LENGTH);return this.signBufferViewAndAppendSignature(c,this.privateKey,i-$.SIGNATURE_LENGTH),c}#n(t){return $.ARE_IDS_HEX?this.converter.hexToBytes(t.join(""),$.ID_LENGTH*t.length):this.converter.stringToBytes(t.join(""))}#r(t){return typeof t=="string"?{dataCode:1,dataBytes:this.converter.stringToBytes(t)}:t instanceof Uint8Array?{dataCode:2,dataBytes:t}:{dataCode:3,dataBytes:this.converter.stringToBytes(JSON.stringify(t))}}#i(t,e,r,i,o,c,h){let E=this.converter.numberTo8Bytes(o),A=this.converter.numberTo4Bytes(c.length);t.set([e],0),t.set([r],1),t.set([i],2),t.set(E,3),t.set(A,11),t.set(h,15)}async verifySignature(t,e,r){return this.AVOID_CRYPTO?!0:Ce.verifyAsync(e,r,t)}readBufferHeader(t,e=!0){let r=t[0],i=t[1],o=t[2],c=t.slice(3,11),h=t.slice(11,15),E=t.slice(15,47),A=e?this.#e(E):null,u=o*this.idLength,g=this.converter.bytes8ToNumber(c),l=this.converter.bytes4ToNumber(h);return{marker:r,dataCode:i,neighLength:u,timestamp:g,dataLength:l,pubkey:E,associatedId:A}}readGossipMessage(t){this.verbose>3&&console.log(`%creadGossipMessage ${t.byteLength} bytes`,it.CRYPTO_CODEX),this.verbose>4&&console.log(`%c${t}`,it.CRYPTO_CODEX);try{let{marker:e,dataCode:r,neighLength:i,timestamp:o,dataLength:c,pubkey:h,associatedId:E}=this.readBufferHeader(t),A=dt.MARKERS_BYTES[e];if(A===void 0)throw new Error(`Failed to deserialize gossip message: unknown marker byte ${d[0]}.`);let u=i+c,g=this.#s(t.slice(47,47+i)),l=this.#o(r,t.slice(47+i,47+u)),B=47+u,y=t.slice(B,B+$.SIGNATURE_LENGTH),w=t[t.length-1],D=B+$.SIGNATURE_LENGTH+1,I=E;return new en(A,o,g,w,I,h,l,y,B,D)}catch(e){this.verbose>1&&console.warn(`Error deserializing ${topic||"unknown"} gossip message:`,e.stack)}return null}readUnicastMessage(t){this.verbose>3&&console.log(`%creadUnicastMessage ${t.byteLength} bytes`,it.CRYPTO_CODEX),this.verbose>4&&console.log(`%c${t}`,it.CRYPTO_CODEX);try{let{marker:e,dataCode:r,neighLength:i,timestamp:o,dataLength:c,pubkey:h}=this.readBufferHeader(t,!1),E=ht.MARKERS_BYTES[e];if(E===void 0)throw new Error(`Failed to deserialize unicast message: unknown marker byte ${d[0]}.`);let A=i+c,u=this.#s(t.slice(47,47+i)),g=this.#o(r,t.slice(47+i,47+A)),B=t[47+A]*this.idLength,y=47+A+1+B,w=t.slice(47+A+1,y),D=this.#s(w),I=y+$.SIGNATURE_LENGTH,p=t.slice(y,I);if(!(t.length>I))return new ve(E,o,u,D,h,g,p,y,I);let S=t.slice(I,I+32),b=this.#s(t.slice(I+32,t.length-$.SIGNATURE_LENGTH)),R=t.slice(t.length-$.SIGNATURE_LENGTH);return new ze(E,o,u,D,h,g,p,S,b,R,t.length)}catch(e){this.verbose>1&&console.warn(`Error deserializing ${type||"unknown"} unicast message:`,e.stack)}return null}#s(t){let e=[],r=this.idLength;if(t.length%r!==0)throw new Error("Failed to parse ids: invalid serialized length.");for(let i=0;i<t.length/r;i++){let o=t.slice(i*r,(i+1)*r);$.ARE_IDS_HEX?e.push(this.converter.bytesToHex(o,$.ID_LENGTH)):e.push(this.converter.bytesToString(o))}return e}#o(t,e){if(t===1)return this.converter.bytesToString(e);if(t===2)return e;if(t===3)return JSON.parse(this.converter.bytesToString(e));throw new Error(`Failed to parse data: unknown data code '${t}'.`)}};await xt();var Mo=ct.IS_BROWSER?null:await import("dgram"),_n=class{id;verbose;maxKick;peerStore;cryptoCodex;publicUrl;constructor(t,e,r=3,i=1){this.id=t.id,this.verbose=i,this.maxKick=r,this.peerStore=e,this.cryptoCodex=t}start(t="localhost",e=Lt.PORT){this.publicUrl=`ws://${t}:${e}`,this.#e(t,e),yt.USE_TEST_TRANSPORTS||this.#t(t,e+1)}freePublicNodeByKickingPeers(){let t=Math.min(this.maxKick,this.peerStore.neighborsList.length-At.TARGET_NEIGHBORS_COUNT);if(t<=0)return;let e=0,r=Lt.AUTO_KICK_DELAY;for(let i in this.peerStore.connected){let o=this.peerStore.connected[i],c=this.peerStore.getUpdatedPeerConnectionsCount(i,!1);if(c>At.TARGET_NEIGHBORS_COUNT){if(this.peerStore.kickPeer(i,Lt.AUTO_KICK_DURATION,"freePublicNode"),this.peerStore.neighborsList.length<=At.TARGET_NEIGHBORS_COUNT)break;continue}if(!(o.getConnectionDuration()<(c>2?r:r*2))&&(this.peerStore.kickPeer(i,Lt.AUTO_KICK_DURATION,"freePublicNode"),++e>=t))break}}#e(t="localhost",e=Lt.PORT){this.wsServer=new lt.WS_SERVER({port:e,host:t}),this.wsServer.on("error",r=>console.error(`WebSocket error on Node #${this.id}:`,r)),this.wsServer.on("connection",r=>{r.on("close",()=>{if(i)for(let o of this.peerStore.callbacks.disconnect)o(i,"in")}),r.on("error",o=>console.error(`WebSocket error on Node #${this.id} with peer ${i}:`,o.stack));let i;r.on("message",async o=>{if(i)for(let c of this.peerStore.callbacks.data)c(i,o);else{let c=new Uint8Array(o);if(c[0]>127)return;let h=this.cryptoCodex.readUnicastMessage(c);if(!h)return;let{route:E,type:A,neighborsList:u}=h;if(A!=="handshake"||E.length!==2)return;let{signatureStart:g,pubkey:l,signature:B}=h,y=c.subarray(0,g);if(!await this.cryptoCodex.verifySignature(l,B,y))return;i=E[0],this.peerStore.digestPeerNeighbors(i,u),this.peerStore.connecting[i]?.out?.close(),this.peerStore.connecting[i]||(this.peerStore.connecting[i]={}),this.peerStore.connecting[i].in=new Ae(i,r,"in",!0);for(let w of this.peerStore.callbacks.connect)w(i,"in")}}),r.send(this.cryptoCodex.createUnicastMessage("handshake",null,[this.id,this.id],this.peerStore.neighborsList))})}#t(t="localhost",e=Lt.PORT+1){this.stunServer=Mo.createSocket("udp4"),this.stunServer.on("message",(r,i)=>{this.verbose>2&&console.log(`%cSTUN message from ${i.address}:${i.port} - ${r.toString("hex")}`,it.SERVICE),this.#n(r)&&this.stunServer.send(this.#r(r,i),i.port,i.address)}),this.stunServer.bind(e,t),this.verbose>2&&console.log(`%cSTUN server listening on ${t}:${e}`,it.SERVICE)}#n(t){if(t.length<20)return!1;let e=t.readUInt16BE(0),r=t.readUInt32BE(4);return e===1&&r===554869826}#r(t,e){let r=t.subarray(8,20),i=Buffer.allocUnsafe(32);return i.writeUInt16BE(257,0),i.writeUInt16BE(12,2),i.writeUInt32BE(554869826,4),r.copy(i,8),i.writeUInt16BE(1,20),i.writeUInt16BE(8,22),i.writeUInt16BE(1,24),i.writeUInt16BE(e.port,26),i.writeUInt32BE(Ot.ipToInt(e.address),28),this.verbose>2&&console.log(`%cSTUN Response: client will discover IP ${e.address}:${e.port}`,"color: green;"),i}static deriveSTUNServers(t){let e=[];for(let r of t){if(!r.includes(":")||r.endsWith("/ws")||r.endsWith("/wss"))continue;let i=r.replace("ws://","stun:");i.replace("wss://","stun:"),i.includes("stun:")&&e.push({urls:i})}return lt.CENTRALIZED_STUN_SERVERS&&(e.push({urls:"stun:stun.l.google.com:5349"}),e.push({urls:"stun:stun.l.google.com:19302"}),e.push({urls:"stun:stun1.l.google.com:3478"}),e.push({urls:"stun:stun1.l.google.com:5349"})),e}};async function Vi(a={}){let t=a.verbose!==void 0?a.verbose:ct.DEFAULT_VERBOSE,e=a.cryptoCodex||new De(void 0,t),r=et.sync(t);e.publicKey||await e.generate(!1),await r;let i=new Oe(e,a.bootstraps||[],t);return a.autoStart!==!1&&await i.start(),i}var Oe=class{started=!1;id;cryptoCodex;verbose;offerManager;arbiter;peerStore;messager;gossip;topologist;services;constructor(t,e=[],r=ct.DEFAULT_VERBOSE){this.verbose=r,this.topologist?.services&&(this.topologist.services.verbose=r),this.cryptoCodex=t,this.id=this.cryptoCodex.id;let i=_n.deriveSTUNServers(e||[]);this.offerManager=new Ke(this.id,i,r),this.arbiter=new Pe(this.id,t,r),this.peerStore=new $e(this.id,this.cryptoCodex,this.offerManager,this.arbiter,r),this.messager=new tn(this.id,this.cryptoCodex,this.arbiter,this.peerStore,r),this.gossip=new nn(this.id,this.cryptoCodex,this.arbiter,this.peerStore,r),this.topologist=new rn(this.id,this.cryptoCodex,this.gossip,this.messager,this.peerStore,e||[]);let{arbiter:o,peerStore:c,messager:h,gossip:E,topologist:A}=this;c.on("signal",(u,g)=>this.sendMessage(u,g,"signal_answer")),c.on("connect",(u,g)=>this.#e(u,g)),c.on("disconnect",(u,g)=>this.#t(u,g)),c.on("data",(u,g)=>this.#n(u,g)),h.on("signal_answer",(u,g)=>A.handleIncomingSignal(u,g)),h.on("signal_offer",(u,g)=>A.handleIncomingSignal(u,g)),E.on("signal_offer",(u,g,l)=>A.handleIncomingSignal(u,g,l)),r>2&&console.log(`Node initialized: ${this.id}`)}#e=(t,e)=>{let r=this.cryptoCodex.isPublicNode(t);if(this.publicUrl)return;this.verbose>(this.publicUrl||r?3:2)&&console.log(`(${this.id}) ${e==="in"?"Incoming":"Outgoing"} connection established with peer ${t}`),(!r&&!this.cryptoCodex.isPublicNode(this.id)||e==="in")&&this.sendMessage(t,this.id,"handshake");let o=this.peerStore.neighborsList.length>=At.TARGET_NEIGHBORS_COUNT+this.halfTarget,c=()=>{At.ON_CONNECT_DISPATCH.OVER_NEIGHBORED&&o&&this.broadcast([],"over_neighbored"),At.ON_CONNECT_DISPATCH.SHARE_HISTORY&&this.peerStore.getUpdatedPeerConnectionsCount(t)<=1&&this.gossip.sendGossipHistoryToPeer(t)};At.ON_CONNECT_DISPATCH.DELAY?setTimeout(c,At.ON_CONNECT_DISPATCH.DELAY):c()};#t=(t,e)=>{if(!this.peerStore.neighborsList.length){for(let o in this.peerStore.connecting)this.peerStore.kickPeer(o,0,"no_neighbors_left");for(let o in this.offerManager.offers)this.offerManager.offers[o].timestamp=0}let r=this.cryptoCodex.isPublicNode(t);if(this.peerStore.connected[t])return;this.verbose>(this.publicUrl||r?3:2)&&console.log(`(${this.id}) ${e==="in"?"Incoming":"Outgoing"} connection closed with peer ${t}`)};#n=(t,e)=>{let r=new Uint8Array(e);r[0]>127?this.gossip.handleGossipMessage(t,r):this.messager.handleDirectMessage(t,r)};get publicUrl(){return this.services?.publicUrl}get time(){return et.time}async start(){return await et.sync(this.verbose),this.started=!0,yt.AVOID_INTERVALS||(this.arbiterInterval=setInterval(()=>this.arbiter.tick(),1e3),this.peerStoreInterval=setInterval(()=>{this.peerStore.cleanupExpired(),this.peerStore.offerManager.tick()},2500),this.publicUrl)||(this.enhancerInterval=setInterval(()=>this.topologist.tick(),At.LOOP_DELAY),this.topologist.tryConnectNextBootstrap()),!0}broadcast(t,e,r){this.gossip.broadcastToAll(t,e,r)}sendMessage(t,e,r,i=1){this.messager.sendUnicast(t,e,r,i)}async tryConnectToPeer(t="toto",e=10){if(!this.peerStore.connected[t])do{let{offerHash:r,readyOffer:i}=this.peerStore.offerManager.bestReadyOffer(100,!1);if(!r||!i)await new Promise(o=>setTimeout(o,1e3));else{this.messager.sendUnicast(t,{signal:i.signal,offerHash:r},"signal_offer",1);return}}while(e-- >0)}destroy(){this.enhancerInterval&&clearInterval(this.enhancerInterval),this.enhancerInterval=null,this.peerStoreInterval&&clearInterval(this.peerStoreInterval),this.peerStoreInterval=null,this.peerStore.destroy(),this.wsServer&&this.wsServer.close(),this.stunServer&&this.stunServer.close()}onPeerConnect(t){this.peerStore.on("connect",t)}onPeerDisconnect(t){this.peerStore.on("disconnect",t)}onMessageData(t){this.messager.on("message",t)}onGossipData(t){this.gossip.on("gossip",t)}onSignalOffer(t){this.messager.on("signal_offer",t),this.gossip.on("signal_offer",t)}onSignalAnswer(t){this.messager.on("signal_answer",t)}kickPeer(t,e="kicked_by_node"){this.peerStore.kickPeer(t,0,e)}banPeer(t,e=6e4,r="banished_by_node"){this.arbiter.trustBalances[t]=0,this.arbiter.adjustTrust(t,-e,r)}};await xt();function Xi(a,t){for(let e in t)t[e]&&typeof t[e]=="object"&&!Array.isArray(t[e])?(a[e]=a[e]||{},Xi(a[e],t[e])):a[e]=t[e]}var $i={CLOCK:et,CONFIG:_r,mergeConfig:Xi,Node:Oe,createNode:Vi,CryptoCodex:De,ed25519:Ce,Argon2Unified:Re};var ka=$i;typeof window<"u"&&(window.HiveP2P=$i);export{Re as Argon2Unified,et as CLOCK,_r as CONFIG,De as CryptoCodex,Oe as Node,Vi as createNode,ka as default,Ce as ed25519,Xi as mergeConfig};
1
+ var ni=Object.create;var Ze=Object.defineProperty;var ri=Object.getOwnPropertyDescriptor;var ii=Object.getOwnPropertyNames;var si=Object.getPrototypeOf,Ai=Object.prototype.hasOwnProperty;var le=(c=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(c,{get:(t,e)=>(typeof require<"u"?require:t)[e]}):c)(function(c){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+c+'" is not supported')});var Xt=(c,t)=>()=>(c&&(t=c(c=0)),t);var oi=(c,t)=>()=>(t||c((t={exports:{}}).exports,t),t.exports),Be=(c,t)=>{for(var e in t)Ze(c,e,{get:t[e],enumerable:!0})},ai=(c,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ii(t))!Ai.call(c,s)&&s!==e&&Ze(c,s,{get:()=>t[s],enumerable:!(r=ri(t,s))||r.enumerable});return c};var ci=(c,t,e)=>(e=c!=null?ni(si(c)):{},ai(t||!c||!c.__esModule?Ze(e,"default",{value:c,enumerable:!0}):e,c));var hi={};var Pn=Xt(()=>{(function(c){if(typeof exports=="object"&&typeof module<"u")module.exports=c();else if(typeof define=="function"&&define.amd)define([],c);else{var t;t=typeof window>"u"?typeof global>"u"?typeof self>"u"?this:self:global:window,t.SimplePeer=c()}})(function(){var c=Math.floor,t=Math.abs,e=Math.pow;return(function(){function r(s,A,a){function g(f,I){if(!A[f]){if(!s[f]){var u=typeof le=="function"&&le;if(!I&&u)return u(f,!0);if(E)return E(f,!0);var p=new Error("Cannot find module '"+f+"'");throw p.code="MODULE_NOT_FOUND",p}var y=A[f]={exports:{}};s[f][0].call(y.exports,function(m){var v=s[f][1][m];return g(v||m)},y,y.exports,r,s,A,a)}return A[f].exports}for(var E=typeof le=="function"&&le,o=0;o<a.length;o++)g(a[o]);return g}return r})()({1:[function(r,s,A){"use strict";function a(C){var B=C.length;if(0<B%4)throw new Error("Invalid string. Length must be a multiple of 4");var S=C.indexOf("=");S===-1&&(S=B);var b=S===B?0:4-S%4;return[S,b]}function g(C,B,S){return 3*(B+S)/4-S}function E(C){var B,S,b=a(C),_=b[0],F=b[1],w=new y(g(C,_,F)),R=0,M=0<F?_-4:_;for(S=0;S<M;S+=4)B=p[C.charCodeAt(S)]<<18|p[C.charCodeAt(S+1)]<<12|p[C.charCodeAt(S+2)]<<6|p[C.charCodeAt(S+3)],w[R++]=255&B>>16,w[R++]=255&B>>8,w[R++]=255&B;return F===2&&(B=p[C.charCodeAt(S)]<<2|p[C.charCodeAt(S+1)]>>4,w[R++]=255&B),F===1&&(B=p[C.charCodeAt(S)]<<10|p[C.charCodeAt(S+1)]<<4|p[C.charCodeAt(S+2)]>>2,w[R++]=255&B>>8,w[R++]=255&B),w}function o(C){return u[63&C>>18]+u[63&C>>12]+u[63&C>>6]+u[63&C]}function f(C,B,S){for(var b,_=[],F=B;F<S;F+=3)b=(16711680&C[F]<<16)+(65280&C[F+1]<<8)+(255&C[F+2]),_.push(o(b));return _.join("")}function I(C){for(var B,S=C.length,b=S%3,_=[],F=16383,w=0,R=S-b;w<R;w+=F)_.push(f(C,w,w+F>R?R:w+F));return b===1?(B=C[S-1],_.push(u[B>>2]+u[63&B<<4]+"==")):b===2&&(B=(C[S-2]<<8)+C[S-1],_.push(u[B>>10]+u[63&B>>4]+u[63&B<<2]+"=")),_.join("")}A.byteLength=function(C){var B=a(C),S=B[0],b=B[1];return 3*(S+b)/4-b},A.toByteArray=E,A.fromByteArray=I;for(var u=[],p=[],y=typeof Uint8Array>"u"?Array:Uint8Array,m="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",v=0,l=m.length;v<l;++v)u[v]=m[v],p[m.charCodeAt(v)]=v;p[45]=62,p[95]=63},{}],2:[function(){},{}],3:[function(r,s,A){(function(){(function(){"use strict";var a=String.fromCharCode,g=Math.min;function E(n){if(2147483647<n)throw new RangeError('The value "'+n+'" is invalid for option "size"');var i=new Uint8Array(n);return i.__proto__=o.prototype,i}function o(n,i,h){if(typeof n=="number"){if(typeof i=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return p(n)}return f(n,i,h)}function f(n,i,h){if(typeof n=="string")return y(n,i);if(ArrayBuffer.isView(n))return m(n);if(n==null)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof n);if(N(n,ArrayBuffer)||n&&N(n.buffer,ArrayBuffer))return v(n,i,h);if(typeof n=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var Q=n.valueOf&&n.valueOf();if(Q!=null&&Q!==n)return o.from(Q,i,h);var D=l(n);if(D)return D;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof n[Symbol.toPrimitive]=="function")return o.from(n[Symbol.toPrimitive]("string"),i,h);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof n)}function I(n){if(typeof n!="number")throw new TypeError('"size" argument must be of type number');if(0>n)throw new RangeError('The value "'+n+'" is invalid for option "size"')}function u(n,i,h){return I(n),0>=n||i===void 0?E(n):typeof h=="string"?E(n).fill(i,h):E(n).fill(i)}function p(n){return I(n),E(0>n?0:0|C(n))}function y(n,i){if((typeof i!="string"||i==="")&&(i="utf8"),!o.isEncoding(i))throw new TypeError("Unknown encoding: "+i);var h=0|B(n,i),Q=E(h),D=Q.write(n,i);return D!==h&&(Q=Q.slice(0,D)),Q}function m(n){for(var i=0>n.length?0:0|C(n.length),h=E(i),Q=0;Q<i;Q+=1)h[Q]=255&n[Q];return h}function v(n,i,h){if(0>i||n.byteLength<i)throw new RangeError('"offset" is outside of buffer bounds');if(n.byteLength<i+(h||0))throw new RangeError('"length" is outside of buffer bounds');var Q;return Q=i===void 0&&h===void 0?new Uint8Array(n):h===void 0?new Uint8Array(n,i):new Uint8Array(n,i,h),Q.__proto__=o.prototype,Q}function l(n){if(o.isBuffer(n)){var i=0|C(n.length),h=E(i);return h.length===0||n.copy(h,0,0,i),h}return n.length===void 0?n.type==="Buffer"&&Array.isArray(n.data)?m(n.data):void 0:typeof n.length!="number"||x(n.length)?E(0):m(n)}function C(n){if(n>=2147483647)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x7fffffff bytes");return 0|n}function B(n,i){if(o.isBuffer(n))return n.length;if(ArrayBuffer.isView(n)||N(n,ArrayBuffer))return n.byteLength;if(typeof n!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof n);var h=n.length,Q=2<arguments.length&&arguments[2]===!0;if(!Q&&h===0)return 0;for(var D=!1;;)switch(i){case"ascii":case"latin1":case"binary":return h;case"utf8":case"utf-8":return St(n).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*h;case"hex":return h>>>1;case"base64":return Ct(n).length;default:if(D)return Q?-1:St(n).length;i=(""+i).toLowerCase(),D=!0}}function S(n,i,h){var Q=!1;if((i===void 0||0>i)&&(i=0),i>this.length||((h===void 0||h>this.length)&&(h=this.length),0>=h)||(h>>>=0,i>>>=0,h<=i))return"";for(n||(n="utf8");;)switch(n){case"hex":return at(this,i,h);case"utf8":case"utf-8":return $(this,i,h);case"ascii":return J(this,i,h);case"latin1":case"binary":return Rt(this,i,h);case"base64":return q(this,i,h);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ut(this,i,h);default:if(Q)throw new TypeError("Unknown encoding: "+n);n=(n+"").toLowerCase(),Q=!0}}function b(n,i,h){var Q=n[i];n[i]=n[h],n[h]=Q}function _(n,i,h,Q,D){if(n.length===0)return-1;if(typeof h=="string"?(Q=h,h=0):2147483647<h?h=2147483647:-2147483648>h&&(h=-2147483648),h=+h,x(h)&&(h=D?0:n.length-1),0>h&&(h=n.length+h),h>=n.length){if(D)return-1;h=n.length-1}else if(0>h)if(D)h=0;else return-1;if(typeof i=="string"&&(i=o.from(i,Q)),o.isBuffer(i))return i.length===0?-1:F(n,i,h,Q,D);if(typeof i=="number")return i&=255,typeof Uint8Array.prototype.indexOf=="function"?D?Uint8Array.prototype.indexOf.call(n,i,h):Uint8Array.prototype.lastIndexOf.call(n,i,h):F(n,[i],h,Q,D);throw new TypeError("val must be string, number or Buffer")}function F(n,i,h,Q,D){function T(ue,re){return L===1?ue[re]:ue.readUInt16BE(re*L)}var L=1,W=n.length,rt=i.length;if(Q!==void 0&&(Q=(Q+"").toLowerCase(),Q==="ucs2"||Q==="ucs-2"||Q==="utf16le"||Q==="utf-16le")){if(2>n.length||2>i.length)return-1;L=2,W/=2,rt/=2,h/=2}var Z;if(D){var z=-1;for(Z=h;Z<W;Z++)if(T(n,Z)!==T(i,z===-1?0:Z-z))z!==-1&&(Z-=Z-z),z=-1;else if(z===-1&&(z=Z),Z-z+1===rt)return z*L}else for(h+rt>W&&(h=W-rt),Z=h;0<=Z;Z--){for(var tt=!0,ne=0;ne<rt;ne++)if(T(n,Z+ne)!==T(i,ne)){tt=!1;break}if(tt)return Z}return-1}function w(n,i,h,Q){h=+h||0;var D=n.length-h;Q?(Q=+Q,Q>D&&(Q=D)):Q=D;var T=i.length;Q>T/2&&(Q=T/2);for(var L,W=0;W<Q;++W){if(L=parseInt(i.substr(2*W,2),16),x(L))return W;n[h+W]=L}return W}function R(n,i,h,Q){return mt(St(i,n.length-h),n,h,Q)}function M(n,i,h,Q){return mt(jt(i),n,h,Q)}function U(n,i,h,Q){return M(n,i,h,Q)}function H(n,i,h,Q){return mt(Ct(i),n,h,Q)}function K(n,i,h,Q){return mt(Tt(i,n.length-h),n,h,Q)}function q(n,i,h){return i===0&&h===n.length?O.fromByteArray(n):O.fromByteArray(n.slice(i,h))}function $(n,i,h){h=g(n.length,h);for(var Q=[],D=i;D<h;){var T=n[D],L=null,W=239<T?4:223<T?3:191<T?2:1;if(D+W<=h){var rt,Z,z,tt;W===1?128>T&&(L=T):W===2?(rt=n[D+1],(192&rt)==128&&(tt=(31&T)<<6|63&rt,127<tt&&(L=tt))):W===3?(rt=n[D+1],Z=n[D+2],(192&rt)==128&&(192&Z)==128&&(tt=(15&T)<<12|(63&rt)<<6|63&Z,2047<tt&&(55296>tt||57343<tt)&&(L=tt))):W===4&&(rt=n[D+1],Z=n[D+2],z=n[D+3],(192&rt)==128&&(192&Z)==128&&(192&z)==128&&(tt=(15&T)<<18|(63&rt)<<12|(63&Z)<<6|63&z,65535<tt&&1114112>tt&&(L=tt)))}L===null?(L=65533,W=1):65535<L&&(L-=65536,Q.push(55296|1023&L>>>10),L=56320|1023&L),Q.push(L),D+=W}return st(Q)}function st(n){var i=n.length;if(i<=4096)return a.apply(String,n);for(var h="",Q=0;Q<i;)h+=a.apply(String,n.slice(Q,Q+=4096));return h}function J(n,i,h){var Q="";h=g(n.length,h);for(var D=i;D<h;++D)Q+=a(127&n[D]);return Q}function Rt(n,i,h){var Q="";h=g(n.length,h);for(var D=i;D<h;++D)Q+=a(n[D]);return Q}function at(n,i,h){var Q=n.length;(!i||0>i)&&(i=0),(!h||0>h||h>Q)&&(h=Q);for(var D="",T=i;T<h;++T)D+=vt(n[T]);return D}function ut(n,i,h){for(var Q=n.slice(i,h),D="",T=0;T<Q.length;T+=2)D+=a(Q[T]+256*Q[T+1]);return D}function j(n,i,h){if(n%1!=0||0>n)throw new RangeError("offset is not uint");if(n+i>h)throw new RangeError("Trying to access beyond buffer length")}function X(n,i,h,Q,D,T){if(!o.isBuffer(n))throw new TypeError('"buffer" argument must be a Buffer instance');if(i>D||i<T)throw new RangeError('"value" argument is out of bounds');if(h+Q>n.length)throw new RangeError("Index out of range")}function Et(n,i,h,Q){if(h+Q>n.length)throw new RangeError("Index out of range");if(0>h)throw new RangeError("Index out of range")}function At(n,i,h,Q,D){return i=+i,h>>>=0,D||Et(n,i,h,4,34028234663852886e22,-34028234663852886e22),k.write(n,i,h,Q,23,4),h+4}function wt(n,i,h,Q,D){return i=+i,h>>>=0,D||Et(n,i,h,8,17976931348623157e292,-17976931348623157e292),k.write(n,i,h,Q,52,8),h+8}function nt(n){if(n=n.split("=")[0],n=n.trim().replace(G,""),2>n.length)return"";for(;n.length%4!=0;)n+="=";return n}function vt(n){return 16>n?"0"+n.toString(16):n.toString(16)}function St(n,i){i=i||1/0;for(var h,Q=n.length,D=null,T=[],L=0;L<Q;++L){if(h=n.charCodeAt(L),55295<h&&57344>h){if(!D){if(56319<h){-1<(i-=3)&&T.push(239,191,189);continue}else if(L+1===Q){-1<(i-=3)&&T.push(239,191,189);continue}D=h;continue}if(56320>h){-1<(i-=3)&&T.push(239,191,189),D=h;continue}h=(D-55296<<10|h-56320)+65536}else D&&-1<(i-=3)&&T.push(239,191,189);if(D=null,128>h){if(0>(i-=1))break;T.push(h)}else if(2048>h){if(0>(i-=2))break;T.push(192|h>>6,128|63&h)}else if(65536>h){if(0>(i-=3))break;T.push(224|h>>12,128|63&h>>6,128|63&h)}else if(1114112>h){if(0>(i-=4))break;T.push(240|h>>18,128|63&h>>12,128|63&h>>6,128|63&h)}else throw new Error("Invalid code point")}return T}function jt(n){for(var i=[],h=0;h<n.length;++h)i.push(255&n.charCodeAt(h));return i}function Tt(n,i){for(var h,Q,D,T=[],L=0;L<n.length&&!(0>(i-=2));++L)h=n.charCodeAt(L),Q=h>>8,D=h%256,T.push(D),T.push(Q);return T}function Ct(n){return O.toByteArray(nt(n))}function mt(n,i,h,Q){for(var D=0;D<Q&&!(D+h>=i.length||D>=n.length);++D)i[D+h]=n[D];return D}function N(n,i){return n instanceof i||n!=null&&n.constructor!=null&&n.constructor.name!=null&&n.constructor.name===i.name}function x(n){return n!==n}var O=r("base64-js"),k=r("ieee754");A.Buffer=o,A.SlowBuffer=function(n){return+n!=n&&(n=0),o.alloc(+n)},A.INSPECT_MAX_BYTES=50,A.kMaxLength=2147483647,o.TYPED_ARRAY_SUPPORT=(function(){try{var n=new Uint8Array(1);return n.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},n.foo()===42}catch{return!1}})(),o.TYPED_ARRAY_SUPPORT||typeof console>"u"||typeof console.error!="function"||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(o.prototype,"parent",{enumerable:!0,get:function(){return o.isBuffer(this)?this.buffer:void 0}}),Object.defineProperty(o.prototype,"offset",{enumerable:!0,get:function(){return o.isBuffer(this)?this.byteOffset:void 0}}),typeof Symbol<"u"&&Symbol.species!=null&&o[Symbol.species]===o&&Object.defineProperty(o,Symbol.species,{value:null,configurable:!0,enumerable:!1,writable:!1}),o.poolSize=8192,o.from=function(n,i,h){return f(n,i,h)},o.prototype.__proto__=Uint8Array.prototype,o.__proto__=Uint8Array,o.alloc=function(n,i,h){return u(n,i,h)},o.allocUnsafe=function(n){return p(n)},o.allocUnsafeSlow=function(n){return p(n)},o.isBuffer=function(n){return n!=null&&n._isBuffer===!0&&n!==o.prototype},o.compare=function(n,i){if(N(n,Uint8Array)&&(n=o.from(n,n.offset,n.byteLength)),N(i,Uint8Array)&&(i=o.from(i,i.offset,i.byteLength)),!o.isBuffer(n)||!o.isBuffer(i))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(n===i)return 0;for(var h=n.length,Q=i.length,D=0,T=g(h,Q);D<T;++D)if(n[D]!==i[D]){h=n[D],Q=i[D];break}return h<Q?-1:Q<h?1:0},o.isEncoding=function(n){switch((n+"").toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},o.concat=function(n,i){if(!Array.isArray(n))throw new TypeError('"list" argument must be an Array of Buffers');if(n.length===0)return o.alloc(0);var h;if(i===void 0)for(i=0,h=0;h<n.length;++h)i+=n[h].length;var Q=o.allocUnsafe(i),D=0;for(h=0;h<n.length;++h){var T=n[h];if(N(T,Uint8Array)&&(T=o.from(T)),!o.isBuffer(T))throw new TypeError('"list" argument must be an Array of Buffers');T.copy(Q,D),D+=T.length}return Q},o.byteLength=B,o.prototype._isBuffer=!0,o.prototype.swap16=function(){var n=this.length;if(n%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var i=0;i<n;i+=2)b(this,i,i+1);return this},o.prototype.swap32=function(){var n=this.length;if(n%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var i=0;i<n;i+=4)b(this,i,i+3),b(this,i+1,i+2);return this},o.prototype.swap64=function(){var n=this.length;if(n%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var i=0;i<n;i+=8)b(this,i,i+7),b(this,i+1,i+6),b(this,i+2,i+5),b(this,i+3,i+4);return this},o.prototype.toString=function(){var n=this.length;return n===0?"":arguments.length===0?$(this,0,n):S.apply(this,arguments)},o.prototype.toLocaleString=o.prototype.toString,o.prototype.equals=function(n){if(!o.isBuffer(n))throw new TypeError("Argument must be a Buffer");return this===n||o.compare(this,n)===0},o.prototype.inspect=function(){var n="",i=A.INSPECT_MAX_BYTES;return n=this.toString("hex",0,i).replace(/(.{2})/g,"$1 ").trim(),this.length>i&&(n+=" ... "),"<Buffer "+n+">"},o.prototype.compare=function(n,i,h,Q,D){if(N(n,Uint8Array)&&(n=o.from(n,n.offset,n.byteLength)),!o.isBuffer(n))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof n);if(i===void 0&&(i=0),h===void 0&&(h=n?n.length:0),Q===void 0&&(Q=0),D===void 0&&(D=this.length),0>i||h>n.length||0>Q||D>this.length)throw new RangeError("out of range index");if(Q>=D&&i>=h)return 0;if(Q>=D)return-1;if(i>=h)return 1;if(i>>>=0,h>>>=0,Q>>>=0,D>>>=0,this===n)return 0;for(var T=D-Q,L=h-i,W=g(T,L),rt=this.slice(Q,D),Z=n.slice(i,h),z=0;z<W;++z)if(rt[z]!==Z[z]){T=rt[z],L=Z[z];break}return T<L?-1:L<T?1:0},o.prototype.includes=function(n,i,h){return this.indexOf(n,i,h)!==-1},o.prototype.indexOf=function(n,i,h){return _(this,n,i,h,!0)},o.prototype.lastIndexOf=function(n,i,h){return _(this,n,i,h,!1)},o.prototype.write=function(n,i,h,Q){if(i===void 0)Q="utf8",h=this.length,i=0;else if(h===void 0&&typeof i=="string")Q=i,h=this.length,i=0;else if(isFinite(i))i>>>=0,isFinite(h)?(h>>>=0,Q===void 0&&(Q="utf8")):(Q=h,h=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var D=this.length-i;if((h===void 0||h>D)&&(h=D),0<n.length&&(0>h||0>i)||i>this.length)throw new RangeError("Attempt to write outside buffer bounds");Q||(Q="utf8");for(var T=!1;;)switch(Q){case"hex":return w(this,n,i,h);case"utf8":case"utf-8":return R(this,n,i,h);case"ascii":return M(this,n,i,h);case"latin1":case"binary":return U(this,n,i,h);case"base64":return H(this,n,i,h);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return K(this,n,i,h);default:if(T)throw new TypeError("Unknown encoding: "+Q);Q=(""+Q).toLowerCase(),T=!0}},o.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},o.prototype.slice=function(n,i){var h=this.length;n=~~n,i=i===void 0?h:~~i,0>n?(n+=h,0>n&&(n=0)):n>h&&(n=h),0>i?(i+=h,0>i&&(i=0)):i>h&&(i=h),i<n&&(i=n);var Q=this.subarray(n,i);return Q.__proto__=o.prototype,Q},o.prototype.readUIntLE=function(n,i,h){n>>>=0,i>>>=0,h||j(n,i,this.length);for(var Q=this[n],D=1,T=0;++T<i&&(D*=256);)Q+=this[n+T]*D;return Q},o.prototype.readUIntBE=function(n,i,h){n>>>=0,i>>>=0,h||j(n,i,this.length);for(var Q=this[n+--i],D=1;0<i&&(D*=256);)Q+=this[n+--i]*D;return Q},o.prototype.readUInt8=function(n,i){return n>>>=0,i||j(n,1,this.length),this[n]},o.prototype.readUInt16LE=function(n,i){return n>>>=0,i||j(n,2,this.length),this[n]|this[n+1]<<8},o.prototype.readUInt16BE=function(n,i){return n>>>=0,i||j(n,2,this.length),this[n]<<8|this[n+1]},o.prototype.readUInt32LE=function(n,i){return n>>>=0,i||j(n,4,this.length),(this[n]|this[n+1]<<8|this[n+2]<<16)+16777216*this[n+3]},o.prototype.readUInt32BE=function(n,i){return n>>>=0,i||j(n,4,this.length),16777216*this[n]+(this[n+1]<<16|this[n+2]<<8|this[n+3])},o.prototype.readIntLE=function(n,i,h){n>>>=0,i>>>=0,h||j(n,i,this.length);for(var Q=this[n],D=1,T=0;++T<i&&(D*=256);)Q+=this[n+T]*D;return D*=128,Q>=D&&(Q-=e(2,8*i)),Q},o.prototype.readIntBE=function(n,i,h){n>>>=0,i>>>=0,h||j(n,i,this.length);for(var Q=i,D=1,T=this[n+--Q];0<Q&&(D*=256);)T+=this[n+--Q]*D;return D*=128,T>=D&&(T-=e(2,8*i)),T},o.prototype.readInt8=function(n,i){return n>>>=0,i||j(n,1,this.length),128&this[n]?-1*(255-this[n]+1):this[n]},o.prototype.readInt16LE=function(n,i){n>>>=0,i||j(n,2,this.length);var h=this[n]|this[n+1]<<8;return 32768&h?4294901760|h:h},o.prototype.readInt16BE=function(n,i){n>>>=0,i||j(n,2,this.length);var h=this[n+1]|this[n]<<8;return 32768&h?4294901760|h:h},o.prototype.readInt32LE=function(n,i){return n>>>=0,i||j(n,4,this.length),this[n]|this[n+1]<<8|this[n+2]<<16|this[n+3]<<24},o.prototype.readInt32BE=function(n,i){return n>>>=0,i||j(n,4,this.length),this[n]<<24|this[n+1]<<16|this[n+2]<<8|this[n+3]},o.prototype.readFloatLE=function(n,i){return n>>>=0,i||j(n,4,this.length),k.read(this,n,!0,23,4)},o.prototype.readFloatBE=function(n,i){return n>>>=0,i||j(n,4,this.length),k.read(this,n,!1,23,4)},o.prototype.readDoubleLE=function(n,i){return n>>>=0,i||j(n,8,this.length),k.read(this,n,!0,52,8)},o.prototype.readDoubleBE=function(n,i){return n>>>=0,i||j(n,8,this.length),k.read(this,n,!1,52,8)},o.prototype.writeUIntLE=function(n,i,h,Q){if(n=+n,i>>>=0,h>>>=0,!Q){var D=e(2,8*h)-1;X(this,n,i,h,D,0)}var T=1,L=0;for(this[i]=255&n;++L<h&&(T*=256);)this[i+L]=255&n/T;return i+h},o.prototype.writeUIntBE=function(n,i,h,Q){if(n=+n,i>>>=0,h>>>=0,!Q){var D=e(2,8*h)-1;X(this,n,i,h,D,0)}var T=h-1,L=1;for(this[i+T]=255&n;0<=--T&&(L*=256);)this[i+T]=255&n/L;return i+h},o.prototype.writeUInt8=function(n,i,h){return n=+n,i>>>=0,h||X(this,n,i,1,255,0),this[i]=255&n,i+1},o.prototype.writeUInt16LE=function(n,i,h){return n=+n,i>>>=0,h||X(this,n,i,2,65535,0),this[i]=255&n,this[i+1]=n>>>8,i+2},o.prototype.writeUInt16BE=function(n,i,h){return n=+n,i>>>=0,h||X(this,n,i,2,65535,0),this[i]=n>>>8,this[i+1]=255&n,i+2},o.prototype.writeUInt32LE=function(n,i,h){return n=+n,i>>>=0,h||X(this,n,i,4,4294967295,0),this[i+3]=n>>>24,this[i+2]=n>>>16,this[i+1]=n>>>8,this[i]=255&n,i+4},o.prototype.writeUInt32BE=function(n,i,h){return n=+n,i>>>=0,h||X(this,n,i,4,4294967295,0),this[i]=n>>>24,this[i+1]=n>>>16,this[i+2]=n>>>8,this[i+3]=255&n,i+4},o.prototype.writeIntLE=function(n,i,h,Q){if(n=+n,i>>>=0,!Q){var D=e(2,8*h-1);X(this,n,i,h,D-1,-D)}var T=0,L=1,W=0;for(this[i]=255&n;++T<h&&(L*=256);)0>n&&W===0&&this[i+T-1]!==0&&(W=1),this[i+T]=255&(n/L>>0)-W;return i+h},o.prototype.writeIntBE=function(n,i,h,Q){if(n=+n,i>>>=0,!Q){var D=e(2,8*h-1);X(this,n,i,h,D-1,-D)}var T=h-1,L=1,W=0;for(this[i+T]=255&n;0<=--T&&(L*=256);)0>n&&W===0&&this[i+T+1]!==0&&(W=1),this[i+T]=255&(n/L>>0)-W;return i+h},o.prototype.writeInt8=function(n,i,h){return n=+n,i>>>=0,h||X(this,n,i,1,127,-128),0>n&&(n=255+n+1),this[i]=255&n,i+1},o.prototype.writeInt16LE=function(n,i,h){return n=+n,i>>>=0,h||X(this,n,i,2,32767,-32768),this[i]=255&n,this[i+1]=n>>>8,i+2},o.prototype.writeInt16BE=function(n,i,h){return n=+n,i>>>=0,h||X(this,n,i,2,32767,-32768),this[i]=n>>>8,this[i+1]=255&n,i+2},o.prototype.writeInt32LE=function(n,i,h){return n=+n,i>>>=0,h||X(this,n,i,4,2147483647,-2147483648),this[i]=255&n,this[i+1]=n>>>8,this[i+2]=n>>>16,this[i+3]=n>>>24,i+4},o.prototype.writeInt32BE=function(n,i,h){return n=+n,i>>>=0,h||X(this,n,i,4,2147483647,-2147483648),0>n&&(n=4294967295+n+1),this[i]=n>>>24,this[i+1]=n>>>16,this[i+2]=n>>>8,this[i+3]=255&n,i+4},o.prototype.writeFloatLE=function(n,i,h){return At(this,n,i,!0,h)},o.prototype.writeFloatBE=function(n,i,h){return At(this,n,i,!1,h)},o.prototype.writeDoubleLE=function(n,i,h){return wt(this,n,i,!0,h)},o.prototype.writeDoubleBE=function(n,i,h){return wt(this,n,i,!1,h)},o.prototype.copy=function(n,i,h,Q){if(!o.isBuffer(n))throw new TypeError("argument should be a Buffer");if(h||(h=0),Q||Q===0||(Q=this.length),i>=n.length&&(i=n.length),i||(i=0),0<Q&&Q<h&&(Q=h),Q===h||n.length===0||this.length===0)return 0;if(0>i)throw new RangeError("targetStart out of bounds");if(0>h||h>=this.length)throw new RangeError("Index out of range");if(0>Q)throw new RangeError("sourceEnd out of bounds");Q>this.length&&(Q=this.length),n.length-i<Q-h&&(Q=n.length-i+h);var D=Q-h;if(this===n&&typeof Uint8Array.prototype.copyWithin=="function")this.copyWithin(i,h,Q);else if(this===n&&h<i&&i<Q)for(var T=D-1;0<=T;--T)n[T+i]=this[T+h];else Uint8Array.prototype.set.call(n,this.subarray(h,Q),i);return D},o.prototype.fill=function(n,i,h,Q){if(typeof n=="string"){if(typeof i=="string"?(Q=i,i=0,h=this.length):typeof h=="string"&&(Q=h,h=this.length),Q!==void 0&&typeof Q!="string")throw new TypeError("encoding must be a string");if(typeof Q=="string"&&!o.isEncoding(Q))throw new TypeError("Unknown encoding: "+Q);if(n.length===1){var D=n.charCodeAt(0);(Q==="utf8"&&128>D||Q==="latin1")&&(n=D)}}else typeof n=="number"&&(n&=255);if(0>i||this.length<i||this.length<h)throw new RangeError("Out of range index");if(h<=i)return this;i>>>=0,h=h===void 0?this.length:h>>>0,n||(n=0);var T;if(typeof n=="number")for(T=i;T<h;++T)this[T]=n;else{var L=o.isBuffer(n)?n:o.from(n,Q),W=L.length;if(W===0)throw new TypeError('The value "'+n+'" is invalid for argument "value"');for(T=0;T<h-i;++T)this[T+i]=L[T%W]}return this};var G=/[^+/0-9A-Za-z-_]/g}).call(this)}).call(this,r("buffer").Buffer)},{"base64-js":1,buffer:3,ieee754:9}],4:[function(r,s,A){(function(a){(function(){function g(){let o;try{o=A.storage.getItem("debug")}catch{}return!o&&typeof a<"u"&&"env"in a&&(o=a.env.DEBUG),o}A.formatArgs=function(o){if(o[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+o[0]+(this.useColors?"%c ":" ")+"+"+s.exports.humanize(this.diff),!this.useColors)return;let f="color: "+this.color;o.splice(1,0,f,"color: inherit");let I=0,u=0;o[0].replace(/%[a-zA-Z%]/g,p=>{p==="%%"||(I++,p==="%c"&&(u=I))}),o.splice(u,0,f)},A.save=function(o){try{o?A.storage.setItem("debug",o):A.storage.removeItem("debug")}catch{}},A.load=g,A.useColors=function(){return!!(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))||!(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&(typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&31<=parseInt(RegExp.$1,10)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},A.storage=(function(){try{return localStorage}catch{}})(),A.destroy=(()=>{let o=!1;return()=>{o||(o=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),A.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],A.log=console.debug||console.log||(()=>{}),s.exports=r("./common")(A);let{formatters:E}=s.exports;E.j=function(o){try{return JSON.stringify(o)}catch(f){return"[UnexpectedJSONParseError]: "+f.message}}}).call(this)}).call(this,r("_process"))},{"./common":5,_process:12}],5:[function(r,s){s.exports=function(A){function a(o){function f(...p){if(!f.enabled)return;let y=f,m=+new Date,v=m-(I||m);y.diff=v,y.prev=I,y.curr=m,I=m,p[0]=a.coerce(p[0]),typeof p[0]!="string"&&p.unshift("%O");let l=0;p[0]=p[0].replace(/%([a-zA-Z%])/g,(B,S)=>{if(B==="%%")return"%";l++;let b=a.formatters[S];if(typeof b=="function"){let _=p[l];B=b.call(y,_),p.splice(l,1),l--}return B}),a.formatArgs.call(y,p),(y.log||a.log).apply(y,p)}let I,u=null;return f.namespace=o,f.useColors=a.useColors(),f.color=a.selectColor(o),f.extend=g,f.destroy=a.destroy,Object.defineProperty(f,"enabled",{enumerable:!0,configurable:!1,get:()=>u===null?a.enabled(o):u,set:p=>{u=p}}),typeof a.init=="function"&&a.init(f),f}function g(o,f){let I=a(this.namespace+(typeof f>"u"?":":f)+o);return I.log=this.log,I}function E(o){return o.toString().substring(2,o.toString().length-2).replace(/\.\*\?$/,"*")}return a.debug=a,a.default=a,a.coerce=function(o){return o instanceof Error?o.stack||o.message:o},a.disable=function(){let o=[...a.names.map(E),...a.skips.map(E).map(f=>"-"+f)].join(",");return a.enable(""),o},a.enable=function(o){a.save(o),a.names=[],a.skips=[];let f,I=(typeof o=="string"?o:"").split(/[\s,]+/),u=I.length;for(f=0;f<u;f++)I[f]&&(o=I[f].replace(/\*/g,".*?"),o[0]==="-"?a.skips.push(new RegExp("^"+o.substr(1)+"$")):a.names.push(new RegExp("^"+o+"$")))},a.enabled=function(o){if(o[o.length-1]==="*")return!0;let f,I;for(f=0,I=a.skips.length;f<I;f++)if(a.skips[f].test(o))return!1;for(f=0,I=a.names.length;f<I;f++)if(a.names[f].test(o))return!0;return!1},a.humanize=r("ms"),a.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(A).forEach(o=>{a[o]=A[o]}),a.names=[],a.skips=[],a.formatters={},a.selectColor=function(o){let f=0;for(let I=0;I<o.length;I++)f=(f<<5)-f+o.charCodeAt(I),f|=0;return a.colors[t(f)%a.colors.length]},a.enable(a.load()),a}},{ms:11}],6:[function(r,s){"use strict";function A(a,g){for(let E in g)Object.defineProperty(a,E,{value:g[E],enumerable:!0,configurable:!0});return a}s.exports=function(a,g,E){if(!a||typeof a=="string")throw new TypeError("Please pass an Error to err-code");E||(E={}),typeof g=="object"&&(E=g,g=""),g&&(E.code=g);try{return A(a,E)}catch{E.message=a.message,E.stack=a.stack;let f=function(){};return f.prototype=Object.create(Object.getPrototypeOf(a)),A(new f,E)}}},{}],7:[function(r,s){"use strict";function A(w){console&&console.warn&&console.warn(w)}function a(){a.init.call(this)}function g(w){if(typeof w!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof w)}function E(w){return w._maxListeners===void 0?a.defaultMaxListeners:w._maxListeners}function o(w,R,M,U){var H,K,q;if(g(M),K=w._events,K===void 0?(K=w._events=Object.create(null),w._eventsCount=0):(K.newListener!==void 0&&(w.emit("newListener",R,M.listener?M.listener:M),K=w._events),q=K[R]),q===void 0)q=K[R]=M,++w._eventsCount;else if(typeof q=="function"?q=K[R]=U?[M,q]:[q,M]:U?q.unshift(M):q.push(M),H=E(w),0<H&&q.length>H&&!q.warned){q.warned=!0;var $=new Error("Possible EventEmitter memory leak detected. "+q.length+" "+(R+" listeners added. Use emitter.setMaxListeners() to increase limit"));$.name="MaxListenersExceededWarning",$.emitter=w,$.type=R,$.count=q.length,A($)}return w}function f(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function I(w,R,M){var U={fired:!1,wrapFn:void 0,target:w,type:R,listener:M},H=f.bind(U);return H.listener=M,U.wrapFn=H,H}function u(w,R,M){var U=w._events;if(U===void 0)return[];var H=U[R];return H===void 0?[]:typeof H=="function"?M?[H.listener||H]:[H]:M?v(H):y(H,H.length)}function p(w){var R=this._events;if(R!==void 0){var M=R[w];if(typeof M=="function")return 1;if(M!==void 0)return M.length}return 0}function y(w,R){for(var M=Array(R),U=0;U<R;++U)M[U]=w[U];return M}function m(w,R){for(;R+1<w.length;R++)w[R]=w[R+1];w.pop()}function v(w){for(var R=Array(w.length),M=0;M<R.length;++M)R[M]=w[M].listener||w[M];return R}function l(w,R,M){typeof w.on=="function"&&C(w,"error",R,M)}function C(w,R,M,U){if(typeof w.on=="function")U.once?w.once(R,M):w.on(R,M);else if(typeof w.addEventListener=="function")w.addEventListener(R,function H(K){U.once&&w.removeEventListener(R,H),M(K)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof w)}var B,S=typeof Reflect=="object"?Reflect:null,b=S&&typeof S.apply=="function"?S.apply:function(w,R,M){return Function.prototype.apply.call(w,R,M)};B=S&&typeof S.ownKeys=="function"?S.ownKeys:Object.getOwnPropertySymbols?function(w){return Object.getOwnPropertyNames(w).concat(Object.getOwnPropertySymbols(w))}:function(w){return Object.getOwnPropertyNames(w)};var _=Number.isNaN||function(w){return w!==w};s.exports=a,s.exports.once=function(w,R){return new Promise(function(M,U){function H(q){w.removeListener(R,K),U(q)}function K(){typeof w.removeListener=="function"&&w.removeListener("error",H),M([].slice.call(arguments))}C(w,R,K,{once:!0}),R!=="error"&&l(w,H,{once:!0})})},a.EventEmitter=a,a.prototype._events=void 0,a.prototype._eventsCount=0,a.prototype._maxListeners=void 0;var F=10;Object.defineProperty(a,"defaultMaxListeners",{enumerable:!0,get:function(){return F},set:function(w){if(typeof w!="number"||0>w||_(w))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+w+".");F=w}}),a.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},a.prototype.setMaxListeners=function(w){if(typeof w!="number"||0>w||_(w))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+w+".");return this._maxListeners=w,this},a.prototype.getMaxListeners=function(){return E(this)},a.prototype.emit=function(w){for(var R=[],M=1;M<arguments.length;M++)R.push(arguments[M]);var U=w==="error",H=this._events;if(H!==void 0)U=U&&H.error===void 0;else if(!U)return!1;if(U){var K;if(0<R.length&&(K=R[0]),K instanceof Error)throw K;var q=new Error("Unhandled error."+(K?" ("+K.message+")":""));throw q.context=K,q}var $=H[w];if($===void 0)return!1;if(typeof $=="function")b($,this,R);else for(var st=$.length,J=y($,st),M=0;M<st;++M)b(J[M],this,R);return!0},a.prototype.addListener=function(w,R){return o(this,w,R,!1)},a.prototype.on=a.prototype.addListener,a.prototype.prependListener=function(w,R){return o(this,w,R,!0)},a.prototype.once=function(w,R){return g(R),this.on(w,I(this,w,R)),this},a.prototype.prependOnceListener=function(w,R){return g(R),this.prependListener(w,I(this,w,R)),this},a.prototype.removeListener=function(w,R){var M,U,H,K,q;if(g(R),U=this._events,U===void 0)return this;if(M=U[w],M===void 0)return this;if(M===R||M.listener===R)--this._eventsCount==0?this._events=Object.create(null):(delete U[w],U.removeListener&&this.emit("removeListener",w,M.listener||R));else if(typeof M!="function"){for(H=-1,K=M.length-1;0<=K;K--)if(M[K]===R||M[K].listener===R){q=M[K].listener,H=K;break}if(0>H)return this;H===0?M.shift():m(M,H),M.length===1&&(U[w]=M[0]),U.removeListener!==void 0&&this.emit("removeListener",w,q||R)}return this},a.prototype.off=a.prototype.removeListener,a.prototype.removeAllListeners=function(w){var R,M,U;if(M=this._events,M===void 0)return this;if(M.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):M[w]!==void 0&&(--this._eventsCount==0?this._events=Object.create(null):delete M[w]),this;if(arguments.length===0){var H,K=Object.keys(M);for(U=0;U<K.length;++U)H=K[U],H!=="removeListener"&&this.removeAllListeners(H);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(R=M[w],typeof R=="function")this.removeListener(w,R);else if(R!==void 0)for(U=R.length-1;0<=U;U--)this.removeListener(w,R[U]);return this},a.prototype.listeners=function(w){return u(this,w,!0)},a.prototype.rawListeners=function(w){return u(this,w,!1)},a.listenerCount=function(w,R){return typeof w.listenerCount=="function"?w.listenerCount(R):p.call(w,R)},a.prototype.listenerCount=p,a.prototype.eventNames=function(){return 0<this._eventsCount?B(this._events):[]}},{}],8:[function(r,s){s.exports=function(){if(typeof globalThis>"u")return null;var A={RTCPeerConnection:globalThis.RTCPeerConnection||globalThis.mozRTCPeerConnection||globalThis.webkitRTCPeerConnection,RTCSessionDescription:globalThis.RTCSessionDescription||globalThis.mozRTCSessionDescription||globalThis.webkitRTCSessionDescription,RTCIceCandidate:globalThis.RTCIceCandidate||globalThis.mozRTCIceCandidate||globalThis.webkitRTCIceCandidate};return A.RTCPeerConnection?A:null}},{}],9:[function(r,s,A){A.read=function(a,g,E,o,f){var I,u,p=8*f-o-1,y=(1<<p)-1,m=y>>1,v=-7,l=E?f-1:0,C=E?-1:1,B=a[g+l];for(l+=C,I=B&(1<<-v)-1,B>>=-v,v+=p;0<v;I=256*I+a[g+l],l+=C,v-=8);for(u=I&(1<<-v)-1,I>>=-v,v+=o;0<v;u=256*u+a[g+l],l+=C,v-=8);if(I===0)I=1-m;else{if(I===y)return u?NaN:(B?-1:1)*(1/0);u+=e(2,o),I-=m}return(B?-1:1)*u*e(2,I-o)},A.write=function(a,g,E,o,f,I){var u,p,y,m=Math.LN2,v=Math.log,l=8*I-f-1,C=(1<<l)-1,B=C>>1,S=f===23?e(2,-24)-e(2,-77):0,b=o?0:I-1,_=o?1:-1,F=0>g||g===0&&0>1/g?1:0;for(g=t(g),isNaN(g)||g===1/0?(p=isNaN(g)?1:0,u=C):(u=c(v(g)/m),1>g*(y=e(2,-u))&&(u--,y*=2),g+=1<=u+B?S/y:S*e(2,1-B),2<=g*y&&(u++,y/=2),u+B>=C?(p=0,u=C):1<=u+B?(p=(g*y-1)*e(2,f),u+=B):(p=g*e(2,B-1)*e(2,f),u=0));8<=f;a[E+b]=255&p,b+=_,p/=256,f-=8);for(u=u<<f|p,l+=f;0<l;a[E+b]=255&u,b+=_,u/=256,l-=8);a[E+b-_]|=128*F}},{}],10:[function(r,s){s.exports=typeof Object.create=="function"?function(A,a){a&&(A.super_=a,A.prototype=Object.create(a.prototype,{constructor:{value:A,enumerable:!1,writable:!0,configurable:!0}}))}:function(A,a){if(a){A.super_=a;var g=function(){};g.prototype=a.prototype,A.prototype=new g,A.prototype.constructor=A}}},{}],11:[function(r,s){var A=Math.round;function a(I){if(I+="",!(100<I.length)){var u=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(I);if(u){var p=parseFloat(u[1]),y=(u[2]||"ms").toLowerCase();return y==="years"||y==="year"||y==="yrs"||y==="yr"||y==="y"?315576e5*p:y==="weeks"||y==="week"||y==="w"?6048e5*p:y==="days"||y==="day"||y==="d"?864e5*p:y==="hours"||y==="hour"||y==="hrs"||y==="hr"||y==="h"?36e5*p:y==="minutes"||y==="minute"||y==="mins"||y==="min"||y==="m"?6e4*p:y==="seconds"||y==="second"||y==="secs"||y==="sec"||y==="s"?1e3*p:y==="milliseconds"||y==="millisecond"||y==="msecs"||y==="msec"||y==="ms"?p:void 0}}}function g(I){var u=t(I);return 864e5<=u?A(I/864e5)+"d":36e5<=u?A(I/36e5)+"h":6e4<=u?A(I/6e4)+"m":1e3<=u?A(I/1e3)+"s":I+"ms"}function E(I){var u=t(I);return 864e5<=u?o(I,u,864e5,"day"):36e5<=u?o(I,u,36e5,"hour"):6e4<=u?o(I,u,6e4,"minute"):1e3<=u?o(I,u,1e3,"second"):I+" ms"}function o(I,u,p,y){return A(I/p)+" "+y+(u>=1.5*p?"s":"")}var f=24*(60*6e4);s.exports=function(I,u){u=u||{};var p=typeof I;if(p=="string"&&0<I.length)return a(I);if(p==="number"&&isFinite(I))return u.long?E(I):g(I);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(I))}},{}],12:[function(r,s){function A(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function g(S){if(p===setTimeout)return setTimeout(S,0);if((p===A||!p)&&setTimeout)return p=setTimeout,setTimeout(S,0);try{return p(S,0)}catch{try{return p.call(null,S,0)}catch{return p.call(this,S,0)}}}function E(S){if(y===clearTimeout)return clearTimeout(S);if((y===a||!y)&&clearTimeout)return y=clearTimeout,clearTimeout(S);try{return y(S)}catch{try{return y.call(null,S)}catch{return y.call(this,S)}}}function o(){C&&v&&(C=!1,v.length?l=v.concat(l):B=-1,l.length&&f())}function f(){if(!C){var S=g(o);C=!0;for(var b=l.length;b;){for(v=l,l=[];++B<b;)v&&v[B].run();B=-1,b=l.length}v=null,C=!1,E(S)}}function I(S,b){this.fun=S,this.array=b}function u(){}var p,y,m=s.exports={};(function(){try{p=typeof setTimeout=="function"?setTimeout:A}catch{p=A}try{y=typeof clearTimeout=="function"?clearTimeout:a}catch{y=a}})();var v,l=[],C=!1,B=-1;m.nextTick=function(S){var b=Array(arguments.length-1);if(1<arguments.length)for(var _=1;_<arguments.length;_++)b[_-1]=arguments[_];l.push(new I(S,b)),l.length!==1||C||g(f)},I.prototype.run=function(){this.fun.apply(null,this.array)},m.title="browser",m.browser=!0,m.env={},m.argv=[],m.version="",m.versions={},m.on=u,m.addListener=u,m.once=u,m.off=u,m.removeListener=u,m.removeAllListeners=u,m.emit=u,m.prependListener=u,m.prependOnceListener=u,m.listeners=function(){return[]},m.binding=function(){throw new Error("process.binding is not supported")},m.cwd=function(){return"/"},m.chdir=function(){throw new Error("process.chdir is not supported")},m.umask=function(){return 0}},{}],13:[function(r,s){(function(A){(function(){let a;s.exports=typeof queueMicrotask=="function"?queueMicrotask.bind(typeof window>"u"?A:window):g=>(a||(a=Promise.resolve())).then(g).catch(E=>setTimeout(()=>{throw E},0))}).call(this)}).call(this,typeof global>"u"?typeof self>"u"?typeof window>"u"?{}:window:self:global)},{}],14:[function(r,s){(function(A,a){(function(){"use strict";var g=r("safe-buffer").Buffer,E=a.crypto||a.msCrypto;s.exports=E&&E.getRandomValues?function(o,f){if(o>4294967295)throw new RangeError("requested too many random bytes");var I=g.allocUnsafe(o);if(0<o)if(65536<o)for(var u=0;u<o;u+=65536)E.getRandomValues(I.slice(u,u+65536));else E.getRandomValues(I);return typeof f=="function"?A.nextTick(function(){f(null,I)}):I}:function(){throw new Error(`Secure random number generation is not supported by this browser.
2
+ Use Chrome, Firefox or Internet Explorer 11`)}}).call(this)}).call(this,r("_process"),typeof global>"u"?typeof self>"u"?typeof window>"u"?{}:window:self:global)},{_process:12,"safe-buffer":30}],15:[function(r,s){"use strict";function A(u,p){u.prototype=Object.create(p.prototype),u.prototype.constructor=u,u.__proto__=p}function a(u,p,y){function m(l,C,B){return typeof p=="string"?p:p(l,C,B)}y||(y=Error);var v=(function(l){function C(B,S,b){return l.call(this,m(B,S,b))||this}return A(C,l),C})(y);v.prototype.name=y.name,v.prototype.code=u,I[u]=v}function g(u,p){if(Array.isArray(u)){var y=u.length;return u=u.map(function(m){return m+""}),2<y?"one of ".concat(p," ").concat(u.slice(0,y-1).join(", "),", or ")+u[y-1]:y===2?"one of ".concat(p," ").concat(u[0]," or ").concat(u[1]):"of ".concat(p," ").concat(u[0])}return"of ".concat(p," ").concat(u+"")}function E(u,p,y){return u.substr(!y||0>y?0:+y,p.length)===p}function o(u,p,y){return(y===void 0||y>u.length)&&(y=u.length),u.substring(y-p.length,y)===p}function f(u,p,y){return typeof y!="number"&&(y=0),!(y+p.length>u.length)&&u.indexOf(p,y)!==-1}var I={};a("ERR_INVALID_OPT_VALUE",function(u,p){return'The value "'+p+'" is invalid for option "'+u+'"'},TypeError),a("ERR_INVALID_ARG_TYPE",function(u,p,y){var m;typeof p=="string"&&E(p,"not ")?(m="must not be",p=p.replace(/^not /,"")):m="must be";var v;if(o(u," argument"))v="The ".concat(u," ").concat(m," ").concat(g(p,"type"));else{var l=f(u,".")?"property":"argument";v='The "'.concat(u,'" ').concat(l," ").concat(m," ").concat(g(p,"type"))}return v+=". Received type ".concat(typeof y),v},TypeError),a("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),a("ERR_METHOD_NOT_IMPLEMENTED",function(u){return"The "+u+" method is not implemented"}),a("ERR_STREAM_PREMATURE_CLOSE","Premature close"),a("ERR_STREAM_DESTROYED",function(u){return"Cannot call "+u+" after a stream was destroyed"}),a("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),a("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),a("ERR_STREAM_WRITE_AFTER_END","write after end"),a("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),a("ERR_UNKNOWN_ENCODING",function(u){return"Unknown encoding: "+u},TypeError),a("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),s.exports.codes=I},{}],16:[function(r,s){(function(A){(function(){"use strict";function a(m){return this instanceof a?(f.call(this,m),I.call(this,m),this.allowHalfOpen=!0,void(m&&(m.readable===!1&&(this.readable=!1),m.writable===!1&&(this.writable=!1),m.allowHalfOpen===!1&&(this.allowHalfOpen=!1,this.once("end",g))))):new a(m)}function g(){this._writableState.ended||A.nextTick(E,this)}function E(m){m.end()}var o=Object.keys||function(m){var v=[];for(var l in m)v.push(l);return v};s.exports=a;var f=r("./_stream_readable"),I=r("./_stream_writable");r("inherits")(a,f);for(var u,p=o(I.prototype),y=0;y<p.length;y++)u=p[y],a.prototype[u]||(a.prototype[u]=I.prototype[u]);Object.defineProperty(a.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),Object.defineProperty(a.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(a.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(a.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState!==void 0&&this._writableState!==void 0&&this._readableState.destroyed&&this._writableState.destroyed},set:function(m){this._readableState===void 0||this._writableState===void 0||(this._readableState.destroyed=m,this._writableState.destroyed=m)}})}).call(this)}).call(this,r("_process"))},{"./_stream_readable":18,"./_stream_writable":20,_process:12,inherits:10}],17:[function(r,s){"use strict";function A(g){return this instanceof A?void a.call(this,g):new A(g)}s.exports=A;var a=r("./_stream_transform");r("inherits")(A,a),A.prototype._transform=function(g,E,o){o(null,g)}},{"./_stream_transform":19,inherits:10}],18:[function(r,s){(function(A,a){(function(){"use strict";function g(n){return j.from(n)}function E(n){return j.isBuffer(n)||n instanceof X}function o(n,i,h){return typeof n.prependListener=="function"?n.prependListener(i,h):void(n._events&&n._events[i]?Array.isArray(n._events[i])?n._events[i].unshift(h):n._events[i]=[h,n._events[i]]:n.on(i,h))}function f(n,i,h){st=st||r("./_stream_duplex"),n=n||{},typeof h!="boolean"&&(h=i instanceof st),this.objectMode=!!n.objectMode,h&&(this.objectMode=this.objectMode||!!n.readableObjectMode),this.highWaterMark=Tt(this,n,"readableHighWaterMark",h),this.buffer=new vt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=n.emitClose!==!1,this.autoDestroy=!!n.autoDestroy,this.destroyed=!1,this.defaultEncoding=n.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,n.encoding&&(!At&&(At=r("string_decoder/").StringDecoder),this.decoder=new At(n.encoding),this.encoding=n.encoding)}function I(n){if(st=st||r("./_stream_duplex"),!(this instanceof I))return new I(n);var i=this instanceof st;this._readableState=new f(n,this,i),this.readable=!0,n&&(typeof n.read=="function"&&(this._read=n.read),typeof n.destroy=="function"&&(this._destroy=n.destroy)),ut.call(this)}function u(n,i,h,Q,D){J("readableAddChunk",i);var T=n._readableState;if(i===null)T.reading=!1,l(n,T);else{var L;if(D||(L=y(T,i)),L)k(n,L);else if(!(T.objectMode||i&&0<i.length))Q||(T.reading=!1,S(n,T));else if(typeof i=="string"||T.objectMode||Object.getPrototypeOf(i)===j.prototype||(i=g(i)),Q)T.endEmitted?k(n,new O):p(n,T,i,!0);else if(T.ended)k(n,new N);else{if(T.destroyed)return!1;T.reading=!1,T.decoder&&!h?(i=T.decoder.write(i),T.objectMode||i.length!==0?p(n,T,i,!1):S(n,T)):p(n,T,i,!1)}}return!T.ended&&(T.length<T.highWaterMark||T.length===0)}function p(n,i,h,Q){i.flowing&&i.length===0&&!i.sync?(i.awaitDrain=0,n.emit("data",h)):(i.length+=i.objectMode?1:h.length,Q?i.buffer.unshift(h):i.buffer.push(h),i.needReadable&&C(n)),S(n,i)}function y(n,i){var h;return E(i)||typeof i=="string"||i===void 0||n.objectMode||(h=new mt("chunk",["string","Buffer","Uint8Array"],i)),h}function m(n){return 1073741824<=n?n=1073741824:(n--,n|=n>>>1,n|=n>>>2,n|=n>>>4,n|=n>>>8,n|=n>>>16,n++),n}function v(n,i){return 0>=n||i.length===0&&i.ended?0:i.objectMode?1:n===n?(n>i.highWaterMark&&(i.highWaterMark=m(n)),n<=i.length?n:i.ended?i.length:(i.needReadable=!0,0)):i.flowing&&i.length?i.buffer.head.data.length:i.length}function l(n,i){if(J("onEofChunk"),!i.ended){if(i.decoder){var h=i.decoder.end();h&&h.length&&(i.buffer.push(h),i.length+=i.objectMode?1:h.length)}i.ended=!0,i.sync?C(n):(i.needReadable=!1,!i.emittedReadable&&(i.emittedReadable=!0,B(n)))}}function C(n){var i=n._readableState;J("emitReadable",i.needReadable,i.emittedReadable),i.needReadable=!1,i.emittedReadable||(J("emitReadable",i.flowing),i.emittedReadable=!0,A.nextTick(B,n))}function B(n){var i=n._readableState;J("emitReadable_",i.destroyed,i.length,i.ended),!i.destroyed&&(i.length||i.ended)&&(n.emit("readable"),i.emittedReadable=!1),i.needReadable=!i.flowing&&!i.ended&&i.length<=i.highWaterMark,U(n)}function S(n,i){i.readingMore||(i.readingMore=!0,A.nextTick(b,n,i))}function b(n,i){for(;!i.reading&&!i.ended&&(i.length<i.highWaterMark||i.flowing&&i.length===0);){var h=i.length;if(J("maybeReadMore read 0"),n.read(0),h===i.length)break}i.readingMore=!1}function _(n){return function(){var i=n._readableState;J("pipeOnDrain",i.awaitDrain),i.awaitDrain&&i.awaitDrain--,i.awaitDrain===0&&at(n,"data")&&(i.flowing=!0,U(n))}}function F(n){var i=n._readableState;i.readableListening=0<n.listenerCount("readable"),i.resumeScheduled&&!i.paused?i.flowing=!0:0<n.listenerCount("data")&&n.resume()}function w(n){J("readable nexttick read 0"),n.read(0)}function R(n,i){i.resumeScheduled||(i.resumeScheduled=!0,A.nextTick(M,n,i))}function M(n,i){J("resume",i.reading),i.reading||n.read(0),i.resumeScheduled=!1,n.emit("resume"),U(n),i.flowing&&!i.reading&&n.read(0)}function U(n){var i=n._readableState;for(J("flow",i.flowing);i.flowing&&n.read()!==null;);}function H(n,i){if(i.length===0)return null;var h;return i.objectMode?h=i.buffer.shift():!n||n>=i.length?(h=i.decoder?i.buffer.join(""):i.buffer.length===1?i.buffer.first():i.buffer.concat(i.length),i.buffer.clear()):h=i.buffer.consume(n,i.decoder),h}function K(n){var i=n._readableState;J("endReadable",i.endEmitted),i.endEmitted||(i.ended=!0,A.nextTick(q,i,n))}function q(n,i){if(J("endReadableNT",n.endEmitted,n.length),!n.endEmitted&&n.length===0&&(n.endEmitted=!0,i.readable=!1,i.emit("end"),n.autoDestroy)){var h=i._writableState;(!h||h.autoDestroy&&h.finished)&&i.destroy()}}function $(n,i){for(var h=0,Q=n.length;h<Q;h++)if(n[h]===i)return h;return-1}s.exports=I;var st;I.ReadableState=f;var J,Rt=r("events").EventEmitter,at=function(n,i){return n.listeners(i).length},ut=r("./internal/streams/stream"),j=r("buffer").Buffer,X=a.Uint8Array||function(){},Et=r("util");J=Et&&Et.debuglog?Et.debuglog("stream"):function(){};var At,wt,nt,vt=r("./internal/streams/buffer_list"),St=r("./internal/streams/destroy"),jt=r("./internal/streams/state"),Tt=jt.getHighWaterMark,Ct=r("../errors").codes,mt=Ct.ERR_INVALID_ARG_TYPE,N=Ct.ERR_STREAM_PUSH_AFTER_EOF,x=Ct.ERR_METHOD_NOT_IMPLEMENTED,O=Ct.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;r("inherits")(I,ut);var k=St.errorOrDestroy,G=["error","close","destroy","pause","resume"];Object.defineProperty(I.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState!==void 0&&this._readableState.destroyed},set:function(n){this._readableState&&(this._readableState.destroyed=n)}}),I.prototype.destroy=St.destroy,I.prototype._undestroy=St.undestroy,I.prototype._destroy=function(n,i){i(n)},I.prototype.push=function(n,i){var h,Q=this._readableState;return Q.objectMode?h=!0:typeof n=="string"&&(i=i||Q.defaultEncoding,i!==Q.encoding&&(n=j.from(n,i),i=""),h=!0),u(this,n,i,!1,h)},I.prototype.unshift=function(n){return u(this,n,null,!0,!1)},I.prototype.isPaused=function(){return this._readableState.flowing===!1},I.prototype.setEncoding=function(n){At||(At=r("string_decoder/").StringDecoder);var i=new At(n);this._readableState.decoder=i,this._readableState.encoding=this._readableState.decoder.encoding;for(var h=this._readableState.buffer.head,Q="";h!==null;)Q+=i.write(h.data),h=h.next;return this._readableState.buffer.clear(),Q!==""&&this._readableState.buffer.push(Q),this._readableState.length=Q.length,this},I.prototype.read=function(n){J("read",n),n=parseInt(n,10);var i=this._readableState,h=n;if(n!==0&&(i.emittedReadable=!1),n===0&&i.needReadable&&((i.highWaterMark===0?0<i.length:i.length>=i.highWaterMark)||i.ended))return J("read: emitReadable",i.length,i.ended),i.length===0&&i.ended?K(this):C(this),null;if(n=v(n,i),n===0&&i.ended)return i.length===0&&K(this),null;var Q=i.needReadable;J("need readable",Q),(i.length===0||i.length-n<i.highWaterMark)&&(Q=!0,J("length less than watermark",Q)),i.ended||i.reading?(Q=!1,J("reading or ended",Q)):Q&&(J("do read"),i.reading=!0,i.sync=!0,i.length===0&&(i.needReadable=!0),this._read(i.highWaterMark),i.sync=!1,!i.reading&&(n=v(h,i)));var D;return D=0<n?H(n,i):null,D===null?(i.needReadable=i.length<=i.highWaterMark,n=0):(i.length-=n,i.awaitDrain=0),i.length===0&&(!i.ended&&(i.needReadable=!0),h!==n&&i.ended&&K(this)),D!==null&&this.emit("data",D),D},I.prototype._read=function(){k(this,new x("_read()"))},I.prototype.pipe=function(n,i){function h(ie,se){J("onunpipe"),ie===z&&se&&se.hasUnpiped===!1&&(se.hasUnpiped=!0,D())}function Q(){J("onend"),n.end()}function D(){J("cleanup"),n.removeListener("close",W),n.removeListener("finish",rt),n.removeListener("drain",re),n.removeListener("error",L),n.removeListener("unpipe",h),z.removeListener("end",Q),z.removeListener("end",Z),z.removeListener("data",T),Hn=!0,tt.awaitDrain&&(!n._writableState||n._writableState.needDrain)&&re()}function T(ie){J("ondata");var se=n.write(ie);J("dest.write",se),se===!1&&((tt.pipesCount===1&&tt.pipes===n||1<tt.pipesCount&&$(tt.pipes,n)!==-1)&&!Hn&&(J("false write response, pause",tt.awaitDrain),tt.awaitDrain++),z.pause())}function L(ie){J("onerror",ie),Z(),n.removeListener("error",L),at(n,"error")===0&&k(n,ie)}function W(){n.removeListener("finish",rt),Z()}function rt(){J("onfinish"),n.removeListener("close",W),Z()}function Z(){J("unpipe"),z.unpipe(n)}var z=this,tt=this._readableState;switch(tt.pipesCount){case 0:tt.pipes=n;break;case 1:tt.pipes=[tt.pipes,n];break;default:tt.pipes.push(n)}tt.pipesCount+=1,J("pipe count=%d opts=%j",tt.pipesCount,i);var ne=(!i||i.end!==!1)&&n!==A.stdout&&n!==A.stderr,ue=ne?Q:Z;tt.endEmitted?A.nextTick(ue):z.once("end",ue),n.on("unpipe",h);var re=_(z);n.on("drain",re);var Hn=!1;return z.on("data",T),o(n,"error",L),n.once("close",W),n.once("finish",rt),n.emit("pipe",z),tt.flowing||(J("pipe resume"),z.resume()),n},I.prototype.unpipe=function(n){var i=this._readableState,h={hasUnpiped:!1};if(i.pipesCount===0)return this;if(i.pipesCount===1)return n&&n!==i.pipes?this:(n||(n=i.pipes),i.pipes=null,i.pipesCount=0,i.flowing=!1,n&&n.emit("unpipe",this,h),this);if(!n){var Q=i.pipes,D=i.pipesCount;i.pipes=null,i.pipesCount=0,i.flowing=!1;for(var T=0;T<D;T++)Q[T].emit("unpipe",this,{hasUnpiped:!1});return this}var L=$(i.pipes,n);return L===-1?this:(i.pipes.splice(L,1),i.pipesCount-=1,i.pipesCount===1&&(i.pipes=i.pipes[0]),n.emit("unpipe",this,h),this)},I.prototype.on=function(n,i){var h=ut.prototype.on.call(this,n,i),Q=this._readableState;return n==="data"?(Q.readableListening=0<this.listenerCount("readable"),Q.flowing!==!1&&this.resume()):n=="readable"&&!Q.endEmitted&&!Q.readableListening&&(Q.readableListening=Q.needReadable=!0,Q.flowing=!1,Q.emittedReadable=!1,J("on readable",Q.length,Q.reading),Q.length?C(this):!Q.reading&&A.nextTick(w,this)),h},I.prototype.addListener=I.prototype.on,I.prototype.removeListener=function(n,i){var h=ut.prototype.removeListener.call(this,n,i);return n==="readable"&&A.nextTick(F,this),h},I.prototype.removeAllListeners=function(n){var i=ut.prototype.removeAllListeners.apply(this,arguments);return(n==="readable"||n===void 0)&&A.nextTick(F,this),i},I.prototype.resume=function(){var n=this._readableState;return n.flowing||(J("resume"),n.flowing=!n.readableListening,R(this,n)),n.paused=!1,this},I.prototype.pause=function(){return J("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(J("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},I.prototype.wrap=function(n){var i=this,h=this._readableState,Q=!1;for(var D in n.on("end",function(){if(J("wrapped end"),h.decoder&&!h.ended){var L=h.decoder.end();L&&L.length&&i.push(L)}i.push(null)}),n.on("data",function(L){if(J("wrapped data"),h.decoder&&(L=h.decoder.write(L)),!(h.objectMode&&L==null)&&(h.objectMode||L&&L.length)){var W=i.push(L);W||(Q=!0,n.pause())}}),n)this[D]===void 0&&typeof n[D]=="function"&&(this[D]=(function(L){return function(){return n[L].apply(n,arguments)}})(D));for(var T=0;T<G.length;T++)n.on(G[T],this.emit.bind(this,G[T]));return this._read=function(L){J("wrapped _read",L),Q&&(Q=!1,n.resume())},this},typeof Symbol=="function"&&(I.prototype[Symbol.asyncIterator]=function(){return wt===void 0&&(wt=r("./internal/streams/async_iterator")),wt(this)}),Object.defineProperty(I.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(I.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(I.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(n){this._readableState&&(this._readableState.flowing=n)}}),I._fromList=H,Object.defineProperty(I.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}}),typeof Symbol=="function"&&(I.from=function(n,i){return nt===void 0&&(nt=r("./internal/streams/from")),nt(I,n,i)})}).call(this)}).call(this,r("_process"),typeof global>"u"?typeof self>"u"?typeof window>"u"?{}:window:self:global)},{"../errors":15,"./_stream_duplex":16,"./internal/streams/async_iterator":21,"./internal/streams/buffer_list":22,"./internal/streams/destroy":23,"./internal/streams/from":25,"./internal/streams/state":27,"./internal/streams/stream":28,_process:12,buffer:3,events:7,inherits:10,"string_decoder/":31,util:2}],19:[function(r,s){"use strict";function A(m,v){var l=this._transformState;l.transforming=!1;var C=l.writecb;if(C===null)return this.emit("error",new I);l.writechunk=null,l.writecb=null,v!=null&&this.push(v),C(m);var B=this._readableState;B.reading=!1,(B.needReadable||B.length<B.highWaterMark)&&this._read(B.highWaterMark)}function a(m){return this instanceof a?(y.call(this,m),this._transformState={afterTransform:A.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,m&&(typeof m.transform=="function"&&(this._transform=m.transform),typeof m.flush=="function"&&(this._flush=m.flush)),void this.on("prefinish",g)):new a(m)}function g(){var m=this;typeof this._flush!="function"||this._readableState.destroyed?E(this,null,null):this._flush(function(v,l){E(m,v,l)})}function E(m,v,l){if(v)return m.emit("error",v);if(l!=null&&m.push(l),m._writableState.length)throw new p;if(m._transformState.transforming)throw new u;return m.push(null)}s.exports=a;var o=r("../errors").codes,f=o.ERR_METHOD_NOT_IMPLEMENTED,I=o.ERR_MULTIPLE_CALLBACK,u=o.ERR_TRANSFORM_ALREADY_TRANSFORMING,p=o.ERR_TRANSFORM_WITH_LENGTH_0,y=r("./_stream_duplex");r("inherits")(a,y),a.prototype.push=function(m,v){return this._transformState.needTransform=!1,y.prototype.push.call(this,m,v)},a.prototype._transform=function(m,v,l){l(new f("_transform()"))},a.prototype._write=function(m,v,l){var C=this._transformState;if(C.writecb=l,C.writechunk=m,C.writeencoding=v,!C.transforming){var B=this._readableState;(C.needTransform||B.needReadable||B.length<B.highWaterMark)&&this._read(B.highWaterMark)}},a.prototype._read=function(){var m=this._transformState;m.writechunk===null||m.transforming?m.needTransform=!0:(m.transforming=!0,this._transform(m.writechunk,m.writeencoding,m.afterTransform))},a.prototype._destroy=function(m,v){y.prototype._destroy.call(this,m,function(l){v(l)})}},{"../errors":15,"./_stream_duplex":16,inherits:10}],20:[function(r,s){(function(A,a){(function(){"use strict";function g(N){var x=this;this.next=null,this.entry=null,this.finish=function(){K(x,N)}}function E(N){return J.from(N)}function o(N){return J.isBuffer(N)||N instanceof Rt}function f(){}function I(N,x,O){q=q||r("./_stream_duplex"),N=N||{},typeof O!="boolean"&&(O=x instanceof q),this.objectMode=!!N.objectMode,O&&(this.objectMode=this.objectMode||!!N.writableObjectMode),this.highWaterMark=j(this,N,"writableHighWaterMark",O),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var k=N.decodeStrings===!1;this.decodeStrings=!k,this.defaultEncoding=N.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(G){S(x,G)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=N.emitClose!==!1,this.autoDestroy=!!N.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new g(this)}function u(N){q=q||r("./_stream_duplex");var x=this instanceof q;return x||mt.call(u,this)?(this._writableState=new I(N,this,x),this.writable=!0,N&&(typeof N.write=="function"&&(this._write=N.write),typeof N.writev=="function"&&(this._writev=N.writev),typeof N.destroy=="function"&&(this._destroy=N.destroy),typeof N.final=="function"&&(this._final=N.final)),void st.call(this)):new u(N)}function p(N,x){var O=new jt;Ct(N,O),A.nextTick(x,O)}function y(N,x,O,k){var G;return O===null?G=new St:typeof O!="string"&&!x.objectMode&&(G=new Et("chunk",["string","Buffer"],O)),!G||(Ct(N,G),A.nextTick(k,G),!1)}function m(N,x,O){return N.objectMode||N.decodeStrings===!1||typeof x!="string"||(x=J.from(x,O)),x}function v(N,x,O,k,G,n){if(!O){var i=m(x,k,G);k!==i&&(O=!0,G="buffer",k=i)}var h=x.objectMode?1:k.length;x.length+=h;var Q=x.length<x.highWaterMark;if(Q||(x.needDrain=!0),x.writing||x.corked){var D=x.lastBufferedRequest;x.lastBufferedRequest={chunk:k,encoding:G,isBuf:O,callback:n,next:null},D?D.next=x.lastBufferedRequest:x.bufferedRequest=x.lastBufferedRequest,x.bufferedRequestCount+=1}else l(N,x,!1,h,k,G,n);return Q}function l(N,x,O,k,G,n,i){x.writelen=k,x.writecb=i,x.writing=!0,x.sync=!0,x.destroyed?x.onwrite(new vt("write")):O?N._writev(G,x.onwrite):N._write(G,n,x.onwrite),x.sync=!1}function C(N,x,O,k,G){--x.pendingcb,O?(A.nextTick(G,k),A.nextTick(U,N,x),N._writableState.errorEmitted=!0,Ct(N,k)):(G(k),N._writableState.errorEmitted=!0,Ct(N,k),U(N,x))}function B(N){N.writing=!1,N.writecb=null,N.length-=N.writelen,N.writelen=0}function S(N,x){var O=N._writableState,k=O.sync,G=O.writecb;if(typeof G!="function")throw new wt;if(B(O),x)C(N,O,k,x,G);else{var n=w(O)||N.destroyed;n||O.corked||O.bufferProcessing||!O.bufferedRequest||F(N,O),k?A.nextTick(b,N,O,n,G):b(N,O,n,G)}}function b(N,x,O,k){O||_(N,x),x.pendingcb--,k(),U(N,x)}function _(N,x){x.length===0&&x.needDrain&&(x.needDrain=!1,N.emit("drain"))}function F(N,x){x.bufferProcessing=!0;var O=x.bufferedRequest;if(N._writev&&O&&O.next){var k=x.bufferedRequestCount,G=Array(k),n=x.corkedRequestsFree;n.entry=O;for(var i=0,h=!0;O;)G[i]=O,O.isBuf||(h=!1),O=O.next,i+=1;G.allBuffers=h,l(N,x,!0,x.length,G,"",n.finish),x.pendingcb++,x.lastBufferedRequest=null,n.next?(x.corkedRequestsFree=n.next,n.next=null):x.corkedRequestsFree=new g(x),x.bufferedRequestCount=0}else{for(;O;){var Q=O.chunk,D=O.encoding,T=O.callback,L=x.objectMode?1:Q.length;if(l(N,x,!1,L,Q,D,T),O=O.next,x.bufferedRequestCount--,x.writing)break}O===null&&(x.lastBufferedRequest=null)}x.bufferedRequest=O,x.bufferProcessing=!1}function w(N){return N.ending&&N.length===0&&N.bufferedRequest===null&&!N.finished&&!N.writing}function R(N,x){N._final(function(O){x.pendingcb--,O&&Ct(N,O),x.prefinished=!0,N.emit("prefinish"),U(N,x)})}function M(N,x){x.prefinished||x.finalCalled||(typeof N._final!="function"||x.destroyed?(x.prefinished=!0,N.emit("prefinish")):(x.pendingcb++,x.finalCalled=!0,A.nextTick(R,N,x)))}function U(N,x){var O=w(x);if(O&&(M(N,x),x.pendingcb===0&&(x.finished=!0,N.emit("finish"),x.autoDestroy))){var k=N._readableState;(!k||k.autoDestroy&&k.endEmitted)&&N.destroy()}return O}function H(N,x,O){x.ending=!0,U(N,x),O&&(x.finished?A.nextTick(O):N.once("finish",O)),x.ended=!0,N.writable=!1}function K(N,x,O){var k=N.entry;for(N.entry=null;k;){var G=k.callback;x.pendingcb--,G(O),k=k.next}x.corkedRequestsFree.next=N}s.exports=u;var q;u.WritableState=I;var $={deprecate:r("util-deprecate")},st=r("./internal/streams/stream"),J=r("buffer").Buffer,Rt=a.Uint8Array||function(){},at=r("./internal/streams/destroy"),ut=r("./internal/streams/state"),j=ut.getHighWaterMark,X=r("../errors").codes,Et=X.ERR_INVALID_ARG_TYPE,At=X.ERR_METHOD_NOT_IMPLEMENTED,wt=X.ERR_MULTIPLE_CALLBACK,nt=X.ERR_STREAM_CANNOT_PIPE,vt=X.ERR_STREAM_DESTROYED,St=X.ERR_STREAM_NULL_VALUES,jt=X.ERR_STREAM_WRITE_AFTER_END,Tt=X.ERR_UNKNOWN_ENCODING,Ct=at.errorOrDestroy;r("inherits")(u,st),I.prototype.getBuffer=function(){for(var N=this.bufferedRequest,x=[];N;)x.push(N),N=N.next;return x},(function(){try{Object.defineProperty(I.prototype,"buffer",{get:$.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var mt;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(mt=Function.prototype[Symbol.hasInstance],Object.defineProperty(u,Symbol.hasInstance,{value:function(N){return!!mt.call(this,N)||this===u&&N&&N._writableState instanceof I}})):mt=function(N){return N instanceof this},u.prototype.pipe=function(){Ct(this,new nt)},u.prototype.write=function(N,x,O){var k=this._writableState,G=!1,n=!k.objectMode&&o(N);return n&&!J.isBuffer(N)&&(N=E(N)),typeof x=="function"&&(O=x,x=null),n?x="buffer":!x&&(x=k.defaultEncoding),typeof O!="function"&&(O=f),k.ending?p(this,O):(n||y(this,k,N,O))&&(k.pendingcb++,G=v(this,k,n,N,x,O)),G},u.prototype.cork=function(){this._writableState.corked++},u.prototype.uncork=function(){var N=this._writableState;N.corked&&(N.corked--,!N.writing&&!N.corked&&!N.bufferProcessing&&N.bufferedRequest&&F(this,N))},u.prototype.setDefaultEncoding=function(N){if(typeof N=="string"&&(N=N.toLowerCase()),!(-1<["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((N+"").toLowerCase())))throw new Tt(N);return this._writableState.defaultEncoding=N,this},Object.defineProperty(u.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(u.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),u.prototype._write=function(N,x,O){O(new At("_write()"))},u.prototype._writev=null,u.prototype.end=function(N,x,O){var k=this._writableState;return typeof N=="function"?(O=N,N=null,x=null):typeof x=="function"&&(O=x,x=null),N!=null&&this.write(N,x),k.corked&&(k.corked=1,this.uncork()),k.ending||H(this,k,O),this},Object.defineProperty(u.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(u.prototype,"destroyed",{enumerable:!1,get:function(){return this._writableState!==void 0&&this._writableState.destroyed},set:function(N){this._writableState&&(this._writableState.destroyed=N)}}),u.prototype.destroy=at.destroy,u.prototype._undestroy=at.undestroy,u.prototype._destroy=function(N,x){x(N)}}).call(this)}).call(this,r("_process"),typeof global>"u"?typeof self>"u"?typeof window>"u"?{}:window:self:global)},{"../errors":15,"./_stream_duplex":16,"./internal/streams/destroy":23,"./internal/streams/state":27,"./internal/streams/stream":28,_process:12,buffer:3,inherits:10,"util-deprecate":32}],21:[function(r,s){(function(A){(function(){"use strict";function a(_,F,w){return F in _?Object.defineProperty(_,F,{value:w,enumerable:!0,configurable:!0,writable:!0}):_[F]=w,_}function g(_,F){return{value:_,done:F}}function E(_){var F=_[p];if(F!==null){var w=_[B].read();w!==null&&(_[l]=null,_[p]=null,_[y]=null,F(g(w,!1)))}}function o(_){A.nextTick(E,_)}function f(_,F){return function(w,R){_.then(function(){return F[v]?void w(g(void 0,!0)):void F[C](w,R)},R)}}var I,u=r("./end-of-stream"),p=Symbol("lastResolve"),y=Symbol("lastReject"),m=Symbol("error"),v=Symbol("ended"),l=Symbol("lastPromise"),C=Symbol("handlePromise"),B=Symbol("stream"),S=Object.getPrototypeOf(function(){}),b=Object.setPrototypeOf((I={get stream(){return this[B]},next:function(){var _=this,F=this[m];if(F!==null)return Promise.reject(F);if(this[v])return Promise.resolve(g(void 0,!0));if(this[B].destroyed)return new Promise(function(U,H){A.nextTick(function(){_[m]?H(_[m]):U(g(void 0,!0))})});var w,R=this[l];if(R)w=new Promise(f(R,this));else{var M=this[B].read();if(M!==null)return Promise.resolve(g(M,!1));w=new Promise(this[C])}return this[l]=w,w}},a(I,Symbol.asyncIterator,function(){return this}),a(I,"return",function(){var _=this;return new Promise(function(F,w){_[B].destroy(null,function(R){return R?void w(R):void F(g(void 0,!0))})})}),I),S);s.exports=function(_){var F,w=Object.create(b,(F={},a(F,B,{value:_,writable:!0}),a(F,p,{value:null,writable:!0}),a(F,y,{value:null,writable:!0}),a(F,m,{value:null,writable:!0}),a(F,v,{value:_._readableState.endEmitted,writable:!0}),a(F,C,{value:function(R,M){var U=w[B].read();U?(w[l]=null,w[p]=null,w[y]=null,R(g(U,!1))):(w[p]=R,w[y]=M)},writable:!0}),F));return w[l]=null,u(_,function(R){if(R&&R.code!=="ERR_STREAM_PREMATURE_CLOSE"){var M=w[y];return M!==null&&(w[l]=null,w[p]=null,w[y]=null,M(R)),void(w[m]=R)}var U=w[p];U!==null&&(w[l]=null,w[p]=null,w[y]=null,U(g(void 0,!0))),w[v]=!0}),_.on("readable",o.bind(null,w)),w}}).call(this)}).call(this,r("_process"))},{"./end-of-stream":24,_process:12}],22:[function(r,s){"use strict";function A(l,C){var B=Object.keys(l);if(Object.getOwnPropertySymbols){var S=Object.getOwnPropertySymbols(l);C&&(S=S.filter(function(b){return Object.getOwnPropertyDescriptor(l,b).enumerable})),B.push.apply(B,S)}return B}function a(l){for(var C,B=1;B<arguments.length;B++)C=arguments[B]==null?{}:arguments[B],B%2?A(Object(C),!0).forEach(function(S){g(l,S,C[S])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(C)):A(Object(C)).forEach(function(S){Object.defineProperty(l,S,Object.getOwnPropertyDescriptor(C,S))});return l}function g(l,C,B){return C in l?Object.defineProperty(l,C,{value:B,enumerable:!0,configurable:!0,writable:!0}):l[C]=B,l}function E(l,C){if(!(l instanceof C))throw new TypeError("Cannot call a class as a function")}function o(l,C){for(var B,S=0;S<C.length;S++)B=C[S],B.enumerable=B.enumerable||!1,B.configurable=!0,"value"in B&&(B.writable=!0),Object.defineProperty(l,B.key,B)}function f(l,C,B){return C&&o(l.prototype,C),B&&o(l,B),l}function I(l,C,B){p.prototype.copy.call(l,C,B)}var u=r("buffer"),p=u.Buffer,y=r("util"),m=y.inspect,v=m&&m.custom||"inspect";s.exports=(function(){function l(){E(this,l),this.head=null,this.tail=null,this.length=0}return f(l,[{key:"push",value:function(C){var B={data:C,next:null};0<this.length?this.tail.next=B:this.head=B,this.tail=B,++this.length}},{key:"unshift",value:function(C){var B={data:C,next:this.head};this.length===0&&(this.tail=B),this.head=B,++this.length}},{key:"shift",value:function(){if(this.length!==0){var C=this.head.data;return this.head=this.length===1?this.tail=null:this.head.next,--this.length,C}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(C){if(this.length===0)return"";for(var B=this.head,S=""+B.data;B=B.next;)S+=C+B.data;return S}},{key:"concat",value:function(C){if(this.length===0)return p.alloc(0);for(var B=p.allocUnsafe(C>>>0),S=this.head,b=0;S;)I(S.data,B,b),b+=S.data.length,S=S.next;return B}},{key:"consume",value:function(C,B){var S;return C<this.head.data.length?(S=this.head.data.slice(0,C),this.head.data=this.head.data.slice(C)):C===this.head.data.length?S=this.shift():S=B?this._getString(C):this._getBuffer(C),S}},{key:"first",value:function(){return this.head.data}},{key:"_getString",value:function(C){var B=this.head,S=1,b=B.data;for(C-=b.length;B=B.next;){var _=B.data,F=C>_.length?_.length:C;if(b+=F===_.length?_:_.slice(0,C),C-=F,C===0){F===_.length?(++S,this.head=B.next?B.next:this.tail=null):(this.head=B,B.data=_.slice(F));break}++S}return this.length-=S,b}},{key:"_getBuffer",value:function(C){var B=p.allocUnsafe(C),S=this.head,b=1;for(S.data.copy(B),C-=S.data.length;S=S.next;){var _=S.data,F=C>_.length?_.length:C;if(_.copy(B,B.length-C,0,F),C-=F,C===0){F===_.length?(++b,this.head=S.next?S.next:this.tail=null):(this.head=S,S.data=_.slice(F));break}++b}return this.length-=b,B}},{key:v,value:function(C,B){return m(this,a({},B,{depth:0,customInspect:!1}))}}]),l})()},{buffer:3,util:2}],23:[function(r,s){(function(A){(function(){"use strict";function a(o,f){E(o,f),g(o)}function g(o){o._writableState&&!o._writableState.emitClose||o._readableState&&!o._readableState.emitClose||o.emit("close")}function E(o,f){o.emit("error",f)}s.exports={destroy:function(o,f){var I=this,u=this._readableState&&this._readableState.destroyed,p=this._writableState&&this._writableState.destroyed;return u||p?(f?f(o):o&&(this._writableState?!this._writableState.errorEmitted&&(this._writableState.errorEmitted=!0,A.nextTick(E,this,o)):A.nextTick(E,this,o)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(o||null,function(y){!f&&y?I._writableState?I._writableState.errorEmitted?A.nextTick(g,I):(I._writableState.errorEmitted=!0,A.nextTick(a,I,y)):A.nextTick(a,I,y):f?(A.nextTick(g,I),f(y)):A.nextTick(g,I)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(o,f){var I=o._readableState,u=o._writableState;I&&I.autoDestroy||u&&u.autoDestroy?o.destroy(f):o.emit("error",f)}}}).call(this)}).call(this,r("_process"))},{_process:12}],24:[function(r,s){"use strict";function A(f){var I=!1;return function(){if(!I){I=!0;for(var u=arguments.length,p=Array(u),y=0;y<u;y++)p[y]=arguments[y];f.apply(this,p)}}}function a(){}function g(f){return f.setHeader&&typeof f.abort=="function"}function E(f,I,u){if(typeof I=="function")return E(f,null,I);I||(I={}),u=A(u||a);var p=I.readable||I.readable!==!1&&f.readable,y=I.writable||I.writable!==!1&&f.writable,m=function(){f.writable||l()},v=f._writableState&&f._writableState.finished,l=function(){y=!1,v=!0,p||u.call(f)},C=f._readableState&&f._readableState.endEmitted,B=function(){p=!1,C=!0,y||u.call(f)},S=function(F){u.call(f,F)},b=function(){var F;return p&&!C?(f._readableState&&f._readableState.ended||(F=new o),u.call(f,F)):y&&!v?(f._writableState&&f._writableState.ended||(F=new o),u.call(f,F)):void 0},_=function(){f.req.on("finish",l)};return g(f)?(f.on("complete",l),f.on("abort",b),f.req?_():f.on("request",_)):y&&!f._writableState&&(f.on("end",m),f.on("close",m)),f.on("end",B),f.on("finish",l),I.error!==!1&&f.on("error",S),f.on("close",b),function(){f.removeListener("complete",l),f.removeListener("abort",b),f.removeListener("request",_),f.req&&f.req.removeListener("finish",l),f.removeListener("end",m),f.removeListener("close",m),f.removeListener("finish",l),f.removeListener("end",B),f.removeListener("error",S),f.removeListener("close",b)}}var o=r("../../../errors").codes.ERR_STREAM_PREMATURE_CLOSE;s.exports=E},{"../../../errors":15}],25:[function(r,s){s.exports=function(){throw new Error("Readable.from is not available in the browser")}},{}],26:[function(r,s){"use strict";function A(v){var l=!1;return function(){l||(l=!0,v.apply(void 0,arguments))}}function a(v){if(v)throw v}function g(v){return v.setHeader&&typeof v.abort=="function"}function E(v,l,C,B){B=A(B);var S=!1;v.on("close",function(){S=!0}),u===void 0&&(u=r("./end-of-stream")),u(v,{readable:l,writable:C},function(_){return _?B(_):(S=!0,void B())});var b=!1;return function(_){if(!S)return b?void 0:(b=!0,g(v)?v.abort():typeof v.destroy=="function"?v.destroy():void B(_||new m("pipe")))}}function o(v){v()}function f(v,l){return v.pipe(l)}function I(v){return v.length&&typeof v[v.length-1]=="function"?v.pop():a}var u,p=r("../../../errors").codes,y=p.ERR_MISSING_ARGS,m=p.ERR_STREAM_DESTROYED;s.exports=function(){for(var v=arguments.length,l=Array(v),C=0;C<v;C++)l[C]=arguments[C];var B=I(l);if(Array.isArray(l[0])&&(l=l[0]),2>l.length)throw new y("streams");var S,b=l.map(function(_,F){var w=F<l.length-1;return E(_,w,0<F,function(R){S||(S=R),R&&b.forEach(o),w||(b.forEach(o),B(S))})});return l.reduce(f)}},{"../../../errors":15,"./end-of-stream":24}],27:[function(r,s){"use strict";function A(g,E,o){return g.highWaterMark==null?E?g[o]:null:g.highWaterMark}var a=r("../../../errors").codes.ERR_INVALID_OPT_VALUE;s.exports={getHighWaterMark:function(g,E,o,f){var I=A(E,f,o);if(I!=null){if(!(isFinite(I)&&c(I)===I)||0>I){var u=f?o:"highWaterMark";throw new a(u,I)}return c(I)}return g.objectMode?16:16384}}},{"../../../errors":15}],28:[function(r,s){s.exports=r("events").EventEmitter},{events:7}],29:[function(r,s,A){A=s.exports=r("./lib/_stream_readable.js"),A.Stream=A,A.Readable=A,A.Writable=r("./lib/_stream_writable.js"),A.Duplex=r("./lib/_stream_duplex.js"),A.Transform=r("./lib/_stream_transform.js"),A.PassThrough=r("./lib/_stream_passthrough.js"),A.finished=r("./lib/internal/streams/end-of-stream.js"),A.pipeline=r("./lib/internal/streams/pipeline.js")},{"./lib/_stream_duplex.js":16,"./lib/_stream_passthrough.js":17,"./lib/_stream_readable.js":18,"./lib/_stream_transform.js":19,"./lib/_stream_writable.js":20,"./lib/internal/streams/end-of-stream.js":24,"./lib/internal/streams/pipeline.js":26}],30:[function(r,s,A){function a(f,I){for(var u in f)I[u]=f[u]}function g(f,I,u){return o(f,I,u)}var E=r("buffer"),o=E.Buffer;o.from&&o.alloc&&o.allocUnsafe&&o.allocUnsafeSlow?s.exports=E:(a(E,A),A.Buffer=g),g.prototype=Object.create(o.prototype),a(o,g),g.from=function(f,I,u){if(typeof f=="number")throw new TypeError("Argument must not be a number");return o(f,I,u)},g.alloc=function(f,I,u){if(typeof f!="number")throw new TypeError("Argument must be a number");var p=o(f);return I===void 0?p.fill(0):typeof u=="string"?p.fill(I,u):p.fill(I),p},g.allocUnsafe=function(f){if(typeof f!="number")throw new TypeError("Argument must be a number");return o(f)},g.allocUnsafeSlow=function(f){if(typeof f!="number")throw new TypeError("Argument must be a number");return E.SlowBuffer(f)}},{buffer:3}],31:[function(r,s,A){"use strict";function a(b){if(!b)return"utf8";for(var _;;)switch(b){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return b;default:if(_)return;b=(""+b).toLowerCase(),_=!0}}function g(b){var _=a(b);if(typeof _!="string"&&(B.isEncoding===S||!S(b)))throw new Error("Unknown encoding: "+b);return _||b}function E(b){this.encoding=g(b);var _;switch(this.encoding){case"utf16le":this.text=p,this.end=y,_=4;break;case"utf8":this.fillLast=u,_=4;break;case"base64":this.text=m,this.end=v,_=3;break;default:return this.write=l,void(this.end=C)}this.lastNeed=0,this.lastTotal=0,this.lastChar=B.allocUnsafe(_)}function o(b){return 127>=b?0:b>>5==6?2:b>>4==14?3:b>>3==30?4:b>>6==2?-1:-2}function f(b,_,F){var w=_.length-1;if(w<F)return 0;var R=o(_[w]);return 0<=R?(0<R&&(b.lastNeed=R-1),R):--w<F||R===-2?0:(R=o(_[w]),0<=R?(0<R&&(b.lastNeed=R-2),R):--w<F||R===-2?0:(R=o(_[w]),0<=R?(0<R&&(R===2?R=0:b.lastNeed=R-3),R):0))}function I(b,_){if((192&_[0])!=128)return b.lastNeed=0,"\uFFFD";if(1<b.lastNeed&&1<_.length){if((192&_[1])!=128)return b.lastNeed=1,"\uFFFD";if(2<b.lastNeed&&2<_.length&&(192&_[2])!=128)return b.lastNeed=2,"\uFFFD"}}function u(b){var _=this.lastTotal-this.lastNeed,F=I(this,b,_);return F===void 0?this.lastNeed<=b.length?(b.copy(this.lastChar,_,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(b.copy(this.lastChar,_,0,b.length),void(this.lastNeed-=b.length)):F}function p(b,_){if((b.length-_)%2==0){var F=b.toString("utf16le",_);if(F){var w=F.charCodeAt(F.length-1);if(55296<=w&&56319>=w)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=b[b.length-2],this.lastChar[1]=b[b.length-1],F.slice(0,-1)}return F}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=b[b.length-1],b.toString("utf16le",_,b.length-1)}function y(b){var _=b&&b.length?this.write(b):"";if(this.lastNeed){var F=this.lastTotal-this.lastNeed;return _+this.lastChar.toString("utf16le",0,F)}return _}function m(b,_){var F=(b.length-_)%3;return F==0?b.toString("base64",_):(this.lastNeed=3-F,this.lastTotal=3,F==1?this.lastChar[0]=b[b.length-1]:(this.lastChar[0]=b[b.length-2],this.lastChar[1]=b[b.length-1]),b.toString("base64",_,b.length-F))}function v(b){var _=b&&b.length?this.write(b):"";return this.lastNeed?_+this.lastChar.toString("base64",0,3-this.lastNeed):_}function l(b){return b.toString(this.encoding)}function C(b){return b&&b.length?this.write(b):""}var B=r("safe-buffer").Buffer,S=B.isEncoding||function(b){switch(b=""+b,b&&b.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};A.StringDecoder=E,E.prototype.write=function(b){if(b.length===0)return"";var _,F;if(this.lastNeed){if(_=this.fillLast(b),_===void 0)return"";F=this.lastNeed,this.lastNeed=0}else F=0;return F<b.length?_?_+this.text(b,F):this.text(b,F):_||""},E.prototype.end=function(b){var _=b&&b.length?this.write(b):"";return this.lastNeed?_+"\uFFFD":_},E.prototype.text=function(b,_){var F=f(this,b,_);if(!this.lastNeed)return b.toString("utf8",_);this.lastTotal=F;var w=b.length-(F-this.lastNeed);return b.copy(this.lastChar,0,w),b.toString("utf8",_,w)},E.prototype.fillLast=function(b){return this.lastNeed<=b.length?(b.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(b.copy(this.lastChar,this.lastTotal-this.lastNeed,0,b.length),void(this.lastNeed-=b.length))}},{"safe-buffer":30}],32:[function(r,s){(function(A){(function(){function a(g){try{if(!A.localStorage)return!1}catch{return!1}var E=A.localStorage[g];return E!=null&&(E+"").toLowerCase()==="true"}s.exports=function(g,E){function o(){if(!f){if(a("throwDeprecation"))throw new Error(E);a("traceDeprecation")?console.trace(E):console.warn(E),f=!0}return g.apply(this,arguments)}if(a("noDeprecation"))return g;var f=!1;return o}}).call(this)}).call(this,typeof global>"u"?typeof self>"u"?typeof window>"u"?{}:window:self:global)},{}],"/":[function(r,s){function A(v){return v.replace(/a=ice-options:trickle\s\n/g,"")}function a(v){console.warn(v)}let g=r("debug")("simple-peer"),E=r("get-browser-rtc"),o=r("randombytes"),f=r("readable-stream"),I=r("queue-microtask"),u=r("err-code"),{Buffer:p}=r("buffer"),y=65536;class m extends f.Duplex{constructor(l){if(l=Object.assign({allowHalfOpen:!1},l),super(l),this._id=o(4).toString("hex").slice(0,7),this._debug("new peer %o",l),this.channelName=l.initiator?l.channelName||o(20).toString("hex"):null,this.initiator=l.initiator||!1,this.channelConfig=l.channelConfig||m.channelConfig,this.channelNegotiated=this.channelConfig.negotiated,this.config=Object.assign({},m.config,l.config),this.offerOptions=l.offerOptions||{},this.answerOptions=l.answerOptions||{},this.sdpTransform=l.sdpTransform||(C=>C),this.streams=l.streams||(l.stream?[l.stream]:[]),this.trickle=l.trickle===void 0||l.trickle,this.allowHalfTrickle=l.allowHalfTrickle!==void 0&&l.allowHalfTrickle,this.iceCompleteTimeout=l.iceCompleteTimeout||5e3,this.destroyed=!1,this.destroying=!1,this._connected=!1,this.remoteAddress=void 0,this.remoteFamily=void 0,this.remotePort=void 0,this.localAddress=void 0,this.localFamily=void 0,this.localPort=void 0,this._wrtc=l.wrtc&&typeof l.wrtc=="object"?l.wrtc:E(),!this._wrtc)throw u(typeof window>"u"?new Error("No WebRTC support: Specify `opts.wrtc` option in this environment"):new Error("No WebRTC support: Not a supported browser"),"ERR_WEBRTC_SUPPORT");this._pcReady=!1,this._channelReady=!1,this._iceComplete=!1,this._iceCompleteTimer=null,this._channel=null,this._pendingCandidates=[],this._isNegotiating=!1,this._firstNegotiation=!0,this._batchedNegotiation=!1,this._queuedNegotiation=!1,this._sendersAwaitingStable=[],this._senderMap=new Map,this._closingInterval=null,this._remoteTracks=[],this._remoteStreams=[],this._chunk=null,this._cb=null,this._interval=null;try{this._pc=new this._wrtc.RTCPeerConnection(this.config)}catch(C){return void this.destroy(u(C,"ERR_PC_CONSTRUCTOR"))}this._isReactNativeWebrtc=typeof this._pc._peerConnectionId=="number",this._pc.oniceconnectionstatechange=()=>{this._onIceStateChange()},this._pc.onicegatheringstatechange=()=>{this._onIceStateChange()},this._pc.onconnectionstatechange=()=>{this._onConnectionStateChange()},this._pc.onsignalingstatechange=()=>{this._onSignalingStateChange()},this._pc.onicecandidate=C=>{this._onIceCandidate(C)},typeof this._pc.peerIdentity=="object"&&this._pc.peerIdentity.catch(C=>{this.destroy(u(C,"ERR_PC_PEER_IDENTITY"))}),this.initiator||this.channelNegotiated?this._setupData({channel:this._pc.createDataChannel(this.channelName,this.channelConfig)}):this._pc.ondatachannel=C=>{this._setupData(C)},this.streams&&this.streams.forEach(C=>{this.addStream(C)}),this._pc.ontrack=C=>{this._onTrack(C)},this._debug("initial negotiation"),this._needsNegotiation(),this._onFinishBound=()=>{this._onFinish()},this.once("finish",this._onFinishBound)}get bufferSize(){return this._channel&&this._channel.bufferedAmount||0}get connected(){return this._connected&&this._channel.readyState==="open"}address(){return{port:this.localPort,family:this.localFamily,address:this.localAddress}}signal(l){if(!this.destroying){if(this.destroyed)throw u(new Error("cannot signal after peer is destroyed"),"ERR_DESTROYED");if(typeof l=="string")try{l=JSON.parse(l)}catch{l={}}this._debug("signal()"),l.renegotiate&&this.initiator&&(this._debug("got request to renegotiate"),this._needsNegotiation()),l.transceiverRequest&&this.initiator&&(this._debug("got request for transceiver"),this.addTransceiver(l.transceiverRequest.kind,l.transceiverRequest.init)),l.candidate&&(this._pc.remoteDescription&&this._pc.remoteDescription.type?this._addIceCandidate(l.candidate):this._pendingCandidates.push(l.candidate)),l.sdp&&this._pc.setRemoteDescription(new this._wrtc.RTCSessionDescription(l)).then(()=>{this.destroyed||(this._pendingCandidates.forEach(C=>{this._addIceCandidate(C)}),this._pendingCandidates=[],this._pc.remoteDescription.type==="offer"&&this._createAnswer())}).catch(C=>{this.destroy(u(C,"ERR_SET_REMOTE_DESCRIPTION"))}),l.sdp||l.candidate||l.renegotiate||l.transceiverRequest||this.destroy(u(new Error("signal() called with invalid signal data"),"ERR_SIGNALING"))}}_addIceCandidate(l){let C=new this._wrtc.RTCIceCandidate(l);this._pc.addIceCandidate(C).catch(B=>{!C.address||C.address.endsWith(".local")?a("Ignoring unsupported ICE candidate."):this.destroy(u(B,"ERR_ADD_ICE_CANDIDATE"))})}send(l){if(!this.destroying){if(this.destroyed)throw u(new Error("cannot send after peer is destroyed"),"ERR_DESTROYED");this._channel.send(l)}}addTransceiver(l,C){if(!this.destroying){if(this.destroyed)throw u(new Error("cannot addTransceiver after peer is destroyed"),"ERR_DESTROYED");if(this._debug("addTransceiver()"),this.initiator)try{this._pc.addTransceiver(l,C),this._needsNegotiation()}catch(B){this.destroy(u(B,"ERR_ADD_TRANSCEIVER"))}else this.emit("signal",{type:"transceiverRequest",transceiverRequest:{kind:l,init:C}})}}addStream(l){if(!this.destroying){if(this.destroyed)throw u(new Error("cannot addStream after peer is destroyed"),"ERR_DESTROYED");this._debug("addStream()"),l.getTracks().forEach(C=>{this.addTrack(C,l)})}}addTrack(l,C){if(this.destroying)return;if(this.destroyed)throw u(new Error("cannot addTrack after peer is destroyed"),"ERR_DESTROYED");this._debug("addTrack()");let B=this._senderMap.get(l)||new Map,S=B.get(C);if(!S)S=this._pc.addTrack(l,C),B.set(C,S),this._senderMap.set(l,B),this._needsNegotiation();else throw S.removed?u(new Error("Track has been removed. You should enable/disable tracks that you want to re-add."),"ERR_SENDER_REMOVED"):u(new Error("Track has already been added to that stream."),"ERR_SENDER_ALREADY_ADDED")}replaceTrack(l,C,B){if(this.destroying)return;if(this.destroyed)throw u(new Error("cannot replaceTrack after peer is destroyed"),"ERR_DESTROYED");this._debug("replaceTrack()");let S=this._senderMap.get(l),b=S?S.get(B):null;if(!b)throw u(new Error("Cannot replace track that was never added."),"ERR_TRACK_NOT_ADDED");C&&this._senderMap.set(C,S),b.replaceTrack==null?this.destroy(u(new Error("replaceTrack is not supported in this browser"),"ERR_UNSUPPORTED_REPLACETRACK")):b.replaceTrack(C)}removeTrack(l,C){if(this.destroying)return;if(this.destroyed)throw u(new Error("cannot removeTrack after peer is destroyed"),"ERR_DESTROYED");this._debug("removeSender()");let B=this._senderMap.get(l),S=B?B.get(C):null;if(!S)throw u(new Error("Cannot remove track that was never added."),"ERR_TRACK_NOT_ADDED");try{S.removed=!0,this._pc.removeTrack(S)}catch(b){b.name==="NS_ERROR_UNEXPECTED"?this._sendersAwaitingStable.push(S):this.destroy(u(b,"ERR_REMOVE_TRACK"))}this._needsNegotiation()}removeStream(l){if(!this.destroying){if(this.destroyed)throw u(new Error("cannot removeStream after peer is destroyed"),"ERR_DESTROYED");this._debug("removeSenders()"),l.getTracks().forEach(C=>{this.removeTrack(C,l)})}}_needsNegotiation(){this._debug("_needsNegotiation"),this._batchedNegotiation||(this._batchedNegotiation=!0,I(()=>{this._batchedNegotiation=!1,this.initiator||!this._firstNegotiation?(this._debug("starting batched negotiation"),this.negotiate()):this._debug("non-initiator initial negotiation request discarded"),this._firstNegotiation=!1}))}negotiate(){if(!this.destroying){if(this.destroyed)throw u(new Error("cannot negotiate after peer is destroyed"),"ERR_DESTROYED");this.initiator?this._isNegotiating?(this._queuedNegotiation=!0,this._debug("already negotiating, queueing")):(this._debug("start negotiation"),setTimeout(()=>{this._createOffer()},0)):this._isNegotiating?(this._queuedNegotiation=!0,this._debug("already negotiating, queueing")):(this._debug("requesting negotiation from initiator"),this.emit("signal",{type:"renegotiate",renegotiate:!0})),this._isNegotiating=!0}}destroy(l){this._destroy(l,()=>{})}_destroy(l,C){this.destroyed||this.destroying||(this.destroying=!0,this._debug("destroying (error: %s)",l&&(l.message||l)),I(()=>{if(this.destroyed=!0,this.destroying=!1,this._debug("destroy (error: %s)",l&&(l.message||l)),this.readable=this.writable=!1,this._readableState.ended||this.push(null),this._writableState.finished||this.end(),this._connected=!1,this._pcReady=!1,this._channelReady=!1,this._remoteTracks=null,this._remoteStreams=null,this._senderMap=null,clearInterval(this._closingInterval),this._closingInterval=null,clearInterval(this._interval),this._interval=null,this._chunk=null,this._cb=null,this._onFinishBound&&this.removeListener("finish",this._onFinishBound),this._onFinishBound=null,this._channel){try{this._channel.close()}catch{}this._channel.onmessage=null,this._channel.onopen=null,this._channel.onclose=null,this._channel.onerror=null}if(this._pc){try{this._pc.close()}catch{}this._pc.oniceconnectionstatechange=null,this._pc.onicegatheringstatechange=null,this._pc.onsignalingstatechange=null,this._pc.onicecandidate=null,this._pc.ontrack=null,this._pc.ondatachannel=null}this._pc=null,this._channel=null,l&&this.emit("error",l),this.emit("close"),C()}))}_setupData(l){if(!l.channel)return this.destroy(u(new Error("Data channel event is missing `channel` property"),"ERR_DATA_CHANNEL"));this._channel=l.channel,this._channel.binaryType="arraybuffer",typeof this._channel.bufferedAmountLowThreshold=="number"&&(this._channel.bufferedAmountLowThreshold=y),this.channelName=this._channel.label,this._channel.onmessage=B=>{this._onChannelMessage(B)},this._channel.onbufferedamountlow=()=>{this._onChannelBufferedAmountLow()},this._channel.onopen=()=>{this._onChannelOpen()},this._channel.onclose=()=>{this._onChannelClose()},this._channel.onerror=B=>{let S=B.error instanceof Error?B.error:new Error(`Datachannel error: ${B.message} ${B.filename}:${B.lineno}:${B.colno}`);this.destroy(u(S,"ERR_DATA_CHANNEL"))};let C=!1;this._closingInterval=setInterval(()=>{this._channel&&this._channel.readyState==="closing"?(C&&this._onChannelClose(),C=!0):C=!1},5e3)}_read(){}_write(l,C,B){if(this.destroyed)return B(u(new Error("cannot write after peer is destroyed"),"ERR_DATA_CHANNEL"));if(this._connected){try{this.send(l)}catch(S){return this.destroy(u(S,"ERR_DATA_CHANNEL"))}this._channel.bufferedAmount>y?(this._debug("start backpressure: bufferedAmount %d",this._channel.bufferedAmount),this._cb=B):B(null)}else this._debug("write before connect"),this._chunk=l,this._cb=B}_onFinish(){if(!this.destroyed){let l=()=>{setTimeout(()=>this.destroy(),1e3)};this._connected?l():this.once("connect",l)}}_startIceCompleteTimeout(){this.destroyed||this._iceCompleteTimer||(this._debug("started iceComplete timeout"),this._iceCompleteTimer=setTimeout(()=>{this._iceComplete||(this._iceComplete=!0,this._debug("iceComplete timeout completed"),this.emit("iceTimeout"),this.emit("_iceComplete"))},this.iceCompleteTimeout))}_createOffer(){this.destroyed||this._pc.createOffer(this.offerOptions).then(l=>{if(this.destroyed)return;this.trickle||this.allowHalfTrickle||(l.sdp=A(l.sdp)),l.sdp=this.sdpTransform(l.sdp);let C=()=>{if(!this.destroyed){let B=this._pc.localDescription||l;this._debug("signal"),this.emit("signal",{type:B.type,sdp:B.sdp})}};this._pc.setLocalDescription(l).then(()=>{this._debug("createOffer success"),this.destroyed||(this.trickle||this._iceComplete?C():this.once("_iceComplete",C))}).catch(B=>{this.destroy(u(B,"ERR_SET_LOCAL_DESCRIPTION"))})}).catch(l=>{this.destroy(u(l,"ERR_CREATE_OFFER"))})}_requestMissingTransceivers(){this._pc.getTransceivers&&this._pc.getTransceivers().forEach(l=>{l.mid||!l.sender.track||l.requested||(l.requested=!0,this.addTransceiver(l.sender.track.kind))})}_createAnswer(){this.destroyed||this._pc.createAnswer(this.answerOptions).then(l=>{if(this.destroyed)return;this.trickle||this.allowHalfTrickle||(l.sdp=A(l.sdp)),l.sdp=this.sdpTransform(l.sdp);let C=()=>{if(!this.destroyed){let B=this._pc.localDescription||l;this._debug("signal"),this.emit("signal",{type:B.type,sdp:B.sdp}),this.initiator||this._requestMissingTransceivers()}};this._pc.setLocalDescription(l).then(()=>{this.destroyed||(this.trickle||this._iceComplete?C():this.once("_iceComplete",C))}).catch(B=>{this.destroy(u(B,"ERR_SET_LOCAL_DESCRIPTION"))})}).catch(l=>{this.destroy(u(l,"ERR_CREATE_ANSWER"))})}_onConnectionStateChange(){this.destroyed||this._pc.connectionState==="failed"&&this.destroy(u(new Error("Connection failed."),"ERR_CONNECTION_FAILURE"))}_onIceStateChange(){if(this.destroyed)return;let l=this._pc.iceConnectionState,C=this._pc.iceGatheringState;this._debug("iceStateChange (connection: %s) (gathering: %s)",l,C),this.emit("iceStateChange",l,C),(l==="connected"||l==="completed")&&(this._pcReady=!0,this._maybeReady()),l==="failed"&&this.destroy(u(new Error("Ice connection failed."),"ERR_ICE_CONNECTION_FAILURE")),l==="closed"&&this.destroy(u(new Error("Ice connection closed."),"ERR_ICE_CONNECTION_CLOSED"))}getStats(l){let C=B=>(Object.prototype.toString.call(B.values)==="[object Array]"&&B.values.forEach(S=>{Object.assign(B,S)}),B);this._pc.getStats.length===0||this._isReactNativeWebrtc?this._pc.getStats().then(B=>{let S=[];B.forEach(b=>{S.push(C(b))}),l(null,S)},B=>l(B)):0<this._pc.getStats.length?this._pc.getStats(B=>{if(this.destroyed)return;let S=[];B.result().forEach(b=>{let _={};b.names().forEach(F=>{_[F]=b.stat(F)}),_.id=b.id,_.type=b.type,_.timestamp=b.timestamp,S.push(C(_))}),l(null,S)},B=>l(B)):l(null,[])}_maybeReady(){if(this._debug("maybeReady pc %s channel %s",this._pcReady,this._channelReady),this._connected||this._connecting||!this._pcReady||!this._channelReady)return;this._connecting=!0;let l=()=>{this.destroyed||this.getStats((C,B)=>{if(this.destroyed)return;C&&(B=[]);let S={},b={},_={},F=!1;B.forEach(R=>{(R.type==="remotecandidate"||R.type==="remote-candidate")&&(S[R.id]=R),(R.type==="localcandidate"||R.type==="local-candidate")&&(b[R.id]=R),(R.type==="candidatepair"||R.type==="candidate-pair")&&(_[R.id]=R)});let w=R=>{F=!0;let M=b[R.localCandidateId];M&&(M.ip||M.address)?(this.localAddress=M.ip||M.address,this.localPort=+M.port):M&&M.ipAddress?(this.localAddress=M.ipAddress,this.localPort=+M.portNumber):typeof R.googLocalAddress=="string"&&(M=R.googLocalAddress.split(":"),this.localAddress=M[0],this.localPort=+M[1]),this.localAddress&&(this.localFamily=this.localAddress.includes(":")?"IPv6":"IPv4");let U=S[R.remoteCandidateId];U&&(U.ip||U.address)?(this.remoteAddress=U.ip||U.address,this.remotePort=+U.port):U&&U.ipAddress?(this.remoteAddress=U.ipAddress,this.remotePort=+U.portNumber):typeof R.googRemoteAddress=="string"&&(U=R.googRemoteAddress.split(":"),this.remoteAddress=U[0],this.remotePort=+U[1]),this.remoteAddress&&(this.remoteFamily=this.remoteAddress.includes(":")?"IPv6":"IPv4"),this._debug("connect local: %s:%s remote: %s:%s",this.localAddress,this.localPort,this.remoteAddress,this.remotePort)};if(B.forEach(R=>{R.type==="transport"&&R.selectedCandidatePairId&&w(_[R.selectedCandidatePairId]),(R.type==="googCandidatePair"&&R.googActiveConnection==="true"||(R.type==="candidatepair"||R.type==="candidate-pair")&&R.selected)&&w(R)}),!F&&(!Object.keys(_).length||Object.keys(b).length))return void setTimeout(l,100);if(this._connecting=!1,this._connected=!0,this._chunk){try{this.send(this._chunk)}catch(M){return this.destroy(u(M,"ERR_DATA_CHANNEL"))}this._chunk=null,this._debug('sent chunk from "write before connect"');let R=this._cb;this._cb=null,R(null)}typeof this._channel.bufferedAmountLowThreshold!="number"&&(this._interval=setInterval(()=>this._onInterval(),150),this._interval.unref&&this._interval.unref()),this._debug("connect"),this.emit("connect")})};l()}_onInterval(){this._cb&&this._channel&&!(this._channel.bufferedAmount>y)&&this._onChannelBufferedAmountLow()}_onSignalingStateChange(){this.destroyed||(this._pc.signalingState==="stable"&&(this._isNegotiating=!1,this._debug("flushing sender queue",this._sendersAwaitingStable),this._sendersAwaitingStable.forEach(l=>{this._pc.removeTrack(l),this._queuedNegotiation=!0}),this._sendersAwaitingStable=[],this._queuedNegotiation?(this._debug("flushing negotiation queue"),this._queuedNegotiation=!1,this._needsNegotiation()):(this._debug("negotiated"),this.emit("negotiated"))),this._debug("signalingStateChange %s",this._pc.signalingState),this.emit("signalingStateChange",this._pc.signalingState))}_onIceCandidate(l){this.destroyed||(l.candidate&&this.trickle?this.emit("signal",{type:"candidate",candidate:{candidate:l.candidate.candidate,sdpMLineIndex:l.candidate.sdpMLineIndex,sdpMid:l.candidate.sdpMid}}):!l.candidate&&!this._iceComplete&&(this._iceComplete=!0,this.emit("_iceComplete")),l.candidate&&this._startIceCompleteTimeout())}_onChannelMessage(l){if(this.destroyed)return;let C=l.data;C instanceof ArrayBuffer&&(C=p.from(C)),this.push(C)}_onChannelBufferedAmountLow(){if(!this.destroyed&&this._cb){this._debug("ending backpressure: bufferedAmount %d",this._channel.bufferedAmount);let l=this._cb;this._cb=null,l(null)}}_onChannelOpen(){this._connected||this.destroyed||(this._debug("on channel open"),this._channelReady=!0,this._maybeReady())}_onChannelClose(){this.destroyed||(this._debug("on channel close"),this.destroy())}_onTrack(l){this.destroyed||l.streams.forEach(C=>{this._debug("on track"),this.emit("track",l.track,C),this._remoteTracks.push({track:l.track,stream:C}),this._remoteStreams.some(B=>B.id===C.id)||(this._remoteStreams.push(C),I(()=>{this._debug("on stream"),this.emit("stream",C)}))})}_debug(){let l=[].slice.call(arguments);l[0]="["+this._id+"] "+l[0],g.apply(null,l)}}m.WEBRTC_SUPPORT=!!E(),m.config={iceServers:[{urls:["stun:stun.l.google.com:19302","stun:global.stun.twilio.com:3478"]}],sdpSemantics:"unified-plan"},m.channelConfig={},s.exports=m},{buffer:3,debug:4,"err-code":6,"get-browser-rtc":8,"queue-microtask":13,randombytes:14,"readable-stream":29}]},{},[])("/")})});var Kn=oi((vs,Yn)=>{"use strict";Yn.exports=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")}});var pe,Bt,ct,Ft,V,lt,ot,ht,dt,it,Jn,_t=Xt(async()=>{pe=typeof window>"u";pe||(await Promise.resolve().then(()=>(Pn(),hi))).default;Bt={AVOID_INTERVALS:!1,USE_TEST_TRANSPORTS:!1,ICE_DELAY:{min:250,max:3e3},ICE_OFFER_FAILURE_RATE:.2,ICE_ANSWER_FAILURE_RATE:.15,AVOID_FOLLOWERS_NODES:!1,AUTO_START:!0,PUBLIC_PEERS_COUNT:100,PEERS_COUNT:1860,BOOTSTRAPS_PER_PEER:10,DELAY_BETWEEN_INIT:10,RANDOM_UNICAST_PER_SEC:0,RANDOM_GOSSIP_PER_SEC:0,DIFFUSION_TEST_DELAY:1e4},ct={DEFAULT_VERBOSE:2,CONNECTION_UPGRADE_TIMEOUT:15e3,IS_BROWSER:!pe,MANUAL_BAN_MODE:!1},Ft={PORT:8080,AUTO_KICK_DELAY:6e4,AUTO_KICK_DURATION:3e4,MAX_WS_IN_CONNS:20},V={DIFFICULTY:0,ARGON2_MEM:2**16,ARE_IDS_HEX:!0,PUBLIC_PREFIX:"0",STANDARD_PREFIX:"1",ID_LENGTH:16,PUBKEY_LENGTH:32,PRIVATEKEY_LENGTH:32,SIGNATURE_LENGTH:64},lt={CENTRALIZED_STUN_SERVERS:!1,MAX_SDP_OFFERS:2,ICE_COMPLETE_TIMEOUT:1e3,SIGNAL_CREATION_TIMEOUT:8e3,SDP_OFFER_EXPIRATION:4e4,WS_CLIENT:WebSocket,WS_SERVER:pe?(await Promise.resolve().then(()=>ci(Kn(),1))).WebSocketServer:null,PEER:pe?(await import("simple-peer")).default:window.SimplePeer},ot={PEER_LINK_DELAY:1e4,PEER_LINK_EXPIRATION:6e4,LOOP_DELAY:2500,TARGET_NEIGHBORS_COUNT:5,ON_CONNECT_DISPATCH:{DELAY:0,BROADCAST_EVENT:!1,OVER_NEIGHBORED:!0,SHARE_HISTORY:!1},ON_DISCONNECT_DISPATCH:{DELAY:0,BROADCAST_EVENT:!1},ON_UNICAST:{DIGEST_TRAVELED_ROUTE:!0}},ht={MAX_HOPS:8,MAX_NODES:256,MAX_ROUTES:5,MARKERS_BYTES:{message:0,0:"message",handshake:1,1:"handshake",signal_answer:2,2:"signal_answer",signal_offer:3,3:"signal_offer"}},dt={EXPIRATION:1e4,CACHE_DURATION:2e4,HOPS:{default:20,signal_offer:6,diffusion_test:100,over_neighbored:6},TRANSMISSION_RATE:{MIN_NEIGHBOURS_TO_APPLY_PONDERATION:2,NEIGHBOURS_PONDERATION:5,Default:1,signal_offer:.618},MARKERS_BYTES:{gossip:128,128:"gossip",signal_offer:129,129:"signal_offer",peer_connected:130,130:"peer_connected",peer_disconnected:131,131:"peer_disconnected",diffusion_test:132,132:"diffusion_test",over_neighbored:133,133:"over_neighbored"}},it={SIMULATOR:"color: yellow; font-weight: bold;",ARBITER:"color: white;",CRYPTO_CODEX:"color: green;",GOSSIP:"color: fuchsia;",UNICAST:"color: cyan;",PEER_STORE:"color: orange;",SERVICE:"color: teal;",PUNISHER:{BAN:"color: red; font-weight: bold;",KICK:"color: darkorange; font-weight: bold;"}},Jn={SIMULATION:Bt,NODE:ct,TRANSPORTS:lt,DISCOVERY:ot,IDENTITY:V,UNICAST:ht,GOSSIP:dt,LOG_CSS:it}});var we,me,Wn=Xt(async()=>{await _t();we=class{sandbox;SIGNAL_OFFER_TIMEOUT=3e4;SIGNAL_ANSWER_TIMEOUT=1e4;PENDING_OFFERS={};PENDING_ANSWERS={};sdpToBuild=[];signalsToDigest=[];constructor(t){this.sandbox=t}tick(){let t=Date.now();this.#e(t);let e=this.sdpToBuild;this.sdpToBuild=[];for(let{transportId:s,type:A,time:a}of e){if(a>t){this.sdpToBuild.push({transportId:s,type:A,time:a});continue}let g=this.sandbox.transportInstances[s];if(!g||g.destroying||g.destroyed)continue;let{success:E,signalData:o,reason:f}=this.#t(s,A);!E||!o?g.dispatchError(f||`Failed to build SDP for peer: ${this.id}`):g.callbacks.signal?.forEach(I=>I(o))}let r=this.signalsToDigest;this.signalsToDigest=[];for(let{signalData:s,receiverId:A}of r){let a=this.sandbox.transportInstances[A];if(!a||a.destroying||a.destroyed)continue;let{success:g,reason:E}=this.#n(s,A);g||a.dispatchError(E||`Failed to digest signal for peer: ${this.id}`)}}#e(t=Date.now()){for(let e in this.PENDING_OFFERS)for(let r in this.PENDING_OFFERS[e])t>this.PENDING_OFFERS[e][r].expiration&&delete this.PENDING_OFFERS[e][r];for(let e in this.PENDING_ANSWERS){let r=this.PENDING_ANSWERS[e];t>r.expiration&&delete this.PENDING_ANSWERS[e]}}#t(t,e){if(e!=="offer"&&e!=="answer")return{success:!1,signalData:null,reason:`Invalid signal type: ${e}.`};if(e==="answer"&&this.PENDING_ANSWERS[t])return{success:!1,signalData:null,reason:`There is already a pending answer for transport ID: ${t}`};let r=e==="offer"?this.SIGNAL_OFFER_TIMEOUT:this.SIGNAL_ANSWER_TIMEOUT||1e4,s=Math.random().toString(36).substring(2),A={transportId:t,expiration:Date.now()+r,type:e,sdp:{id:s,v:"0",o:`- ${Math.random().toString(36).substring(2)} ${Math.floor(Math.random()*1e6)} 2 IN IP4 127.0.0.1\r
3
+ `,s:"-",t:"0 0",a:["group:BUNDLE..."]}};return e==="offer"&&this.PENDING_OFFERS[t]?.[s]?{success:!1,signalData:null,reason:`There is already a pending offer with the same SDP ID for transport ID: ${t} (extreme case)`}:(e==="offer"&&!this.PENDING_OFFERS[t]&&(this.PENDING_OFFERS[t]={}),e==="offer"&&(this.PENDING_OFFERS[t][s]=A),e==="answer"&&(this.PENDING_ANSWERS[t]=A),{success:!0,signalData:A,reason:"na"})}#n(t,e){let{transportId:r,type:s,sdp:A}=t;if(r===void 0)return{success:!1,reason:"Missing transportId in signal data."};if(s!=="offer"&&s!=="answer")return{success:!1,reason:`Invalid signal type: ${s}.`};if(s==="offer"&&(!this.PENDING_OFFERS[r]||!this.PENDING_OFFERS[r][A.id]))return{success:!1,reason:`No pending offer found for transport ID: ${r} with SDP ID: ${A.id}`};if(s==="answer"&&(!this.PENDING_ANSWERS[r]||this.PENDING_ANSWERS[r].sdp.id!==A.id))return{success:!1,reason:`No pending answer found for transport ID: ${r} with SDP ID: ${A.id}`};if(s==="offer"&&Math.random()<Bt.ICE_OFFER_FAILURE_RATE)return{success:!1,reason:`Simulated failure for 'offer' signal from ${r} to ${e}`};if(s==="answer"&&Math.random()<Bt.ICE_ANSWER_FAILURE_RATE)return{success:!1,reason:`Simulated failure for 'answer' signal from ${r} to ${e}`};if(s==="offer")return this.buildSDP(e,"answer"),{success:!0,reason:"na"};delete this.PENDING_OFFERS[e],delete this.PENDING_ANSWERS[r];let a=this.sandbox.linkInstances(e,r);return{success:!a,reason:a||"na"}}buildSDP(t,e){let r={min:Bt.ICE_DELAY.min,max:Bt.ICE_DELAY.max},s=Math.floor(Math.random()*(r.max-r.min+1))+r.min;this.sdpToBuild.push({transportId:t,type:e,time:Date.now()+s})}digestSignal(t,e){this.signalsToDigest.push({signalData:t,receiverId:e})}},me=class{verbose=ct.DEFAULT_VERBOSE;wsGlobalIndex=1;tGlobalIndex=1;transportInstances={};wsConnections={};publicWsServers={};inscribeWebSocketServer(t,e){this.publicWsServers[t]=e}removeWebSocketServer(t){delete this.publicWsServers[t]}inscribeWsConnection(t){let e=(this.wsGlobalIndex++).toString();t.id=e,this.wsConnections[e]=t,this.verbose>3&&console.log(`[SANDBOX] Inscribed wsConnection: ${t.id}`)}connectToWebSocketServer(t,e,r){let s=this.wsConnections[e],A=this.publicWsServers[t];if(!s||!A||A.closing||A.clients.size>=A.maxClients)return;let a=new r(A,e);A.clients.add(a),a.init(s.id),A.callbacks.connection.forEach(g=>g(a)),s.init(a.id)}inscribeInstance(t){let e=(this.tGlobalIndex++).toString();t.id=e,this.transportInstances[e]=t,this.verbose>3&&console.log(`[SANDBOX] Inscribed transport: ${e}`)}linkInstances(t,e){let[r,s]=[this.transportInstances[t],this.transportInstances[e]];if(!r||!s)return`Missing transport instances: ${t}=>${!!r}, ${e}=>${!!s}`;if(r.initiator&&s.initiator)return`Both transport instances cannot be initiators: ${t}, ${e}`;if(r.destroying||s.destroying)return`One of the transport instances is destroying: ${t}=>${r.destroying}, ${e}=>${s.destroying}`;if(r.destroyed||s.destroyed)return`One of the transport instances is destroyed: ${t}=>${r.destroyed}, ${e}=>${s.destroyed}`;if(r.remoteId)return`Transport instance tA: ${t} is already linked to remoteId: ${r.remoteId}`;if(s.remoteId)return`Transport instance tB: ${e} is already linked to remoteId: ${s.remoteId}`;r.remoteId=e,s.remoteId=t,this.verbose>2&&console.log(`[SANDBOX] Linked transports: ${t} <-> ${e}`),r.callbacks.connect.forEach(A=>A()),s.callbacks.connect.forEach(A=>A())}sendData(t,e,r){if(t===void 0)return{success:!1,reason:`Cannot send message from id: ${t}`};if(e===void 0)return{success:!1,reason:`Cannot send message to id: ${e}`};let s=this.transportInstances[t];if(!s)return{success:!1,reason:`No transport instance found for id: ${t}`};if(!s.remoteId)return{success:!1,reason:`Transport instance ${t} is not linked to any remoteId`};if(s.id!==t)return{success:!1,reason:`Wrong id for senderInstance ${t} !== ${s.id}`};if(s.remoteId!==e)return{success:!1,reason:`Transport instance ${t} is not linked to remoteId: ${e}`};let A=this.transportInstances[e];return A?A.remoteId?A.id!==e?{success:!1,reason:`Wrong id for remoteInstance ${t} !== ${e}`}:A.remoteId!==t?{success:!1,reason:`Transport instance ${t} is not linked to remoteId: ${e}`}:(this.enqueueTransportData(t,e,r),{success:!0,reason:"na"}):{success:!1,reason:`Transport instance ${e} is not linked to any remoteId`}:{success:!1,reason:`No transport instance found for id: ${e}`}}destroyTransportAndAssociatedTransport(t){let e=this.transportInstances[t];if(!e)return;let r=e.remoteId,s=r?this.transportInstances[r]:null;this.verbose>3&&console.log(`[SANDBOX] Destroying transports: ${t}`),e&&s&&(this.verbose>2&&console.log(`[SANDBOX] Destroying linked transports: ${t} & ${r}`),delete this.transportInstances[r],s.destroy(`Remote transport instance ${t} closed the connection.`)),delete this.transportInstances[t],e.close()}batchSize=2500;messageQueueSync=[];queueIndex=0;messageQueue=new Array(1e5);queueStart=0;queueEnd=0;queueCount=0;processMessageQueueSync(){let t=this.messageQueueSync.length;if(t===0)return;let e=this.batchSize;t>this.batchSize*3&&(e=this.batchSize*1.5),t>this.batchSize*5&&(e=this.batchSize*2),t>this.batchSize*10&&(e=this.batchSize*3),t>this.batchSize*20&&(e=this.batchSize*5),e=Math.round(e);let r=Math.min(this.queueIndex+e,t);for(let A=this.queueIndex;A<r;A++){let[a,g,E,o]=this.messageQueueSync[A];a==="transport_data"?this.#e(g,E,o):a==="ws_message"&&this.#t(g,E,o)}if(this.queueIndex=r,this.queueIndex<5e3)return;let s=this.messageQueueSync.length>5e4;s&&console.warn(`[SANDBOX] Message queue is very long: ${this.messageQueueSync.length} messages pending.`),s&&(this.queueIndex+=this.batchSize),this.messageQueueSync=this.messageQueueSync.slice(this.queueIndex),this.queueIndex=0}async processMessageQueue(){if(this.queueCount===0)return;let t=this.batchSize;this.queueCount>this.batchSize*3&&(t=this.batchSize*1.5),this.queueCount>this.batchSize*5&&(t=this.batchSize*2),this.queueCount>this.batchSize*10&&(t=this.batchSize*3),this.queueCount>this.batchSize*20&&(t=this.batchSize*5);let e=Math.min(t,this.queueCount);for(let r=0;r<e;r++){let s=this.messageQueue[this.queueStart];this.queueStart=(this.queueStart+1)%this.messageQueue.length;let[A,a,g,E]=s;A==="transport_data"?this.#e(a,g,E):A==="ws_message"&&this.#t(a,g,E)}await new Promise(r=>setTimeout(r,0)),this.queueCount-=e}#e(t,e,r){let[s,A]=[this.transportInstances[t],this.transportInstances[e]];if(!s||!A||s.destroying||A.destroying){s?.close(),A?.close();return}if(s.destroyed){A.close();return}if(A.destroyed){s.close();return}for(let a of A.callbacks.data)a(r)}#t(t,e,r){let[s,A]=[this.wsConnections[t],this.wsConnections[e]];if(!A||!s||A.readyState!==1||s.readyState!==1){A?.close(),s?.close();return}if(A.onmessage)A.onmessage({data:r});else for(let a of A.callbacks.message)a(r)}enqueueTransportDataSync(t,e,r){this.messageQueueSync.push(["transport_data",t,e,r])}enqueueWsMessageSync(t,e,r){this.messageQueueSync.push(["ws_message",t,e,r])}enqueueTransportData(t,e,r){this.messageQueue[this.queueEnd]=["transport_data",t,e,r],this.queueEnd=(this.queueEnd+1)%this.messageQueue.length,this.queueCount++,this.queueCount===this.messageQueue.length&&(console.error("[SANDBOX] Message queue overflow, dropping oldest messages."),this.queueStart=(this.queueStart+this.batchSize)%this.messageQueue.length,this.queueCount-=this.batchSize)}enqueueWsMessage(t,e,r){this.messageQueue[this.queueEnd]=["ws_message",t,e,r],this.queueEnd=(this.queueEnd+1)%this.messageQueue.length,this.queueCount++,this.queueCount===this.messageQueue.length&&(console.error("[SANDBOX] Message queue overflow, dropping oldest messages."),this.queueStart=(this.queueStart+this.batchSize)%this.messageQueue.length,this.queueCount-=this.batchSize)}}});var Re={};Be(Re,{ICE_CANDIDATE_EMITTER:()=>rn,SANDBOX:()=>pt,TEST_WS_EVENT_MANAGER:()=>Se,TestTransport:()=>nn,TestWsConnection:()=>_e,TestWsServer:()=>en});var tn,_e,en,nn,pt,rn,Se,De=Xt(async()=>{await _t();await Wn();tn=class{toInit=[];toClose=[];toError=[];initTick(){if(this.toInit.length<=0)return;let t=Date.now(),e=this.toInit;this.toInit=[];for(let{connId:r,time:s}of e)s>t?this.toInit.push({connId:r,time:s}):this.#e(r)}closeTick(){if(this.toClose.length<=0)return;let t=Date.now(),e=this.toClose;this.toClose=[];for(let{wsId:r,remoteWsId:s,time:A}of e)A>t?this.toClose.push({wsId:r,remoteWsId:s,time:A}):this.#t(r,s)}cleanerTick(){let t=Date.now();for(let e of Object.values(pt.publicWsServers))for(let r of e.clients)r.readyState===3&&e.clients.delete(r)}errorTick(){if(this.toError.length<=0)return;let t=Date.now(),e=this.toError;this.toError=[];for(let{wsId:r,error:s,time:A}of e)A>t?this.toError.push({wsId:r,error:s,time:A}):pt.wsConnections[r]?.dispatchError(s)}#e(t){let e=pt.wsConnections[t];e&&pt.connectToWebSocketServer(e.url,e.id,_e)}#t(t,e){let r=pt.wsConnections[t],s=pt.wsConnections[e];r?.onclose?.(),s?.onclose?.();for(let A of r?.callbacks?.close||[])A();for(let A of s?.callbacks?.close||[])A()}scheduleInit(t,e=500){this.toInit.push({connId:t,time:Date.now()+e})}scheduleClose(t,e,r=100){this.toClose.push({wsId:t,remoteWsId:e,time:Date.now()+r})}scheduleError(t,e,r=100){this.toError.push({wsId:t,error:e,time:Date.now()+r})}},_e=class{id;isTestTransport=!0;remoteWsId=null;remoteId=!1;delayBeforeConnectionTry=500;readyState=0;url;callbacks={message:[],close:[],error:[]};onmessage;onopen;onclose;onerror;constructor(t="ws://...",e){pt.inscribeWsConnection(this),!e&&(this.url=t,Se.scheduleInit(this.id,this.delayBeforeConnectionTry))}init(t){if(!this.readyState===3||this.remoteWsId){this.close(),console.error(`WebSocket instance already closed or connected: ${this.id}`),Se.scheduleError(this.id,`Failed to connect to WebSocket server at ${this.url}`,1e3);return}this.remoteWsId=t,this.readyState=1,this.onopen&&this.onopen()}on(t,e){if(!this.callbacks[t])return console.error(`Unknown event: ${t}`);this.callbacks[t].push(e)}close(){if(this.readyState===3)return;this.readyState=3;let t=pt.wsConnections[this.remoteWsId];t&&(t.readyState=3),this.remoteWsId&&Se.scheduleClose(this.id,this.remoteWsId,100)}send(t){if(!this.remoteWsId){console.error(`No WebSocket server found for URL: ${this.url}`),this.close();return}pt.enqueueWsMessage(this.id,this.remoteWsId,t)}dispatchError(t){this.callbacks.error.forEach(e=>e(t)),this.onerror&&this.onerror(t)}},en=class{url;clients=new Set;maxClients=Ft.MAX_WS_IN_CONNS||20;callbacks={connection:[],close:[],error:[]};constructor(t={port,host:domain}){this.url=`ws://${t.host}:${t.port}`,pt.inscribeWebSocketServer(this.url,this)}on(t,e){if(!this.callbacks[t])return console.error(`Unknown event: ${t}`);this.callbacks[t].push(e)}close(){if(!this.closing){this.closing=!0,pt.removeWebSocketServer(this.url);for(let t of this.callbacks.close)t()}}},nn=class{destroying;destroyed;id=null;isTestTransport=!0;remoteId=null;remoteWsId=!1;callbacks={connect:[],close:[],data:[],signal:[],error:[]};initiator;trickle;wrtc;constructor(t={initiator:!1,trickle:!0,wrtc:null,timeout:5e3}){pt.inscribeInstance(this),this.initiator=t.initiator,this.trickle=t.trickle,this.wrtc=t.wrtc,this.initiator&&rn.buildSDP(this.id,"offer")}on(t,e){this.callbacks[t]&&this.callbacks[t].push(e)}dispatchError(t){this.callbacks.error.forEach(e=>e(new Error(t)))}signal(t){if(!this.destroying){if(this.destroyed)throw new Error(`Transport instance already destroyed: ${this.id}`);if(this.remoteId)return this.dispatchError(`Transport instance already connected to a remote ID: ${this.remoteId}`);if(!t.sdp||!t.sdp.id)return this.dispatchError("Invalid remote SDP:",t);if(t.type==="answer"&&!this.initiator)return this.dispatchError("Invalid remote SDP type: expecting an answer.");if(t.type==="offer"&&this.initiator)return this.dispatchError("Invalid remote SDP type: expecting an offer.");rn.digestSignal(t,this.id)}}send(t){let{success:e,reason:r}=pt.sendData(this.id,this.remoteId,t);e||this.destroy(r)}close(){this.destroy()}destroy(t=null){this.destroying||(this.destroying=!0,t&&this.dispatchError(t),this.callbacks.close?.forEach(e=>e()),pt.destroyTransportAndAssociatedTransport(this.id),this.destroyed=!0,this.destroying=!1)}},pt=new me,rn=new we(pt),Se=new tn});var br={};Be(br,{default:()=>is,ed25519:()=>dn,sha512:()=>rs});function Oi(c){return c instanceof Uint8Array||ArrayBuffer.isView(c)&&c.constructor.name==="Uint8Array"}function Qr(c,t,e=""){let r=Oi(c),s=c?.length,A=t!==void 0;if(!r||A&&s!==t){let a=e&&`"${e}" `,g=A?` of length ${t}`:"",E=r?`length=${s}`:`type=${typeof c}`;throw new Error(a+"expected Uint8Array"+g+", got "+E)}return c}function tr(c,t=!0){if(c.destroyed)throw new Error("Hash instance has been destroyed");if(t&&c.finished)throw new Error("Hash#digest() has already been called")}function Hi(c,t){Qr(c,void 0,"digestInto() output");let e=t.outputLen;if(c.length<e)throw new Error('"digestInto() output" expected to be of length >='+e)}function ln(...c){for(let t=0;t<c.length;t++)c[t].fill(0)}function gn(c){return new DataView(c.buffer,c.byteOffset,c.byteLength)}function Pi(c,t={}){let e=(s,A)=>c(A).update(s).digest(),r=c(void 0);return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=s=>c(s),Object.assign(e,t),Object.freeze(e)}function Ji(c,t=!1){return t?{h:Number(c&Ue),l:Number(c>>er&Ue)}:{h:Number(c>>er&Ue)|0,l:Number(c&Ue)|0}}function qi(c,t=!1){let e=c.length,r=new Uint32Array(e),s=new Uint32Array(e);for(let A=0;A<e;A++){let{h:a,l:g}=Ji(c[A],t);[r[A],s[A]]=[a,g]}return[r,s]}function Ht(c,t,e,r){let s=(t>>>0)+(r>>>0);return{h:c+e+(s/2**32|0)|0,l:s|0}}var Ci,Bi,dn,ir,yt,Oe,jn,Xn,an,cn,pi,Mt,Ie,Qi,gt,yi,bi,wi,Dt,Ke,sr,Ar,In,Ot,Vn,En,or,mi,zt,ar,He,$t,P,cr,hr,gr,Si,hn,fn,Jt,qt,ae,fr,Cn,xt,_i,$n,Ri,Pe,Bn,pn,ur,Qn,yn,lr,dr,Ir,Er,Cr,Di,Ni,bn,Br,vi,Ti,Fi,wn,mn,ki,xi,Mi,Ye,Ui,pr,un,Gi,Zn,zn,Li,Yi,Ki,Qt,Ue,er,nr,rr,Ae,oe,Ge,Le,Wi,ji,Xi,Vi,$i,Zi,yr,zi,ts,Yt,Kt,es,ns,rs,is,wr=Xt(()=>{Ci=Object.defineProperty,Bi=(c,t)=>{for(var e in t)Ci(c,e,{get:t[e],enumerable:!0})},dn={};Bi(dn,{Point:()=>Jt,etc:()=>Fi,getPublicKey:()=>dr,getPublicKeyAsync:()=>lr,hash:()=>Si,hashes:()=>wn,keygen:()=>ki,keygenAsync:()=>xi,sign:()=>Ni,signAsync:()=>Di,utils:()=>Mi,verify:()=>Ti,verifyAsync:()=>vi});ir={p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n},{p:yt,n:Oe,Gx:jn,Gy:Xn,a:an,d:cn,h:pi}=ir,Mt=32,Ie=64,Qi=(...c)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...c)},gt=(c="")=>{let t=new Error(c);throw Qi(t,gt),t},yi=c=>typeof c=="bigint",bi=c=>typeof c=="string",wi=c=>c instanceof Uint8Array||ArrayBuffer.isView(c)&&c.constructor.name==="Uint8Array",Dt=(c,t,e="")=>{let r=wi(c),s=c?.length,A=t!==void 0;if(!r||A&&s!==t){let a=e&&`"${e}" `,g=A?` of length ${t}`:"",E=r?`length=${s}`:`type=${typeof c}`;gt(a+"expected Uint8Array"+g+", got "+E)}return c},Ke=c=>new Uint8Array(c),sr=c=>Uint8Array.from(c),Ar=(c,t)=>c.toString(16).padStart(t,"0"),In=c=>Array.from(Dt(c)).map(t=>Ar(t,2)).join(""),Ot={_0:48,_9:57,A:65,F:70,a:97,f:102},Vn=c=>{if(c>=Ot._0&&c<=Ot._9)return c-Ot._0;if(c>=Ot.A&&c<=Ot.F)return c-(Ot.A-10);if(c>=Ot.a&&c<=Ot.f)return c-(Ot.a-10)},En=c=>{let t="hex invalid";if(!bi(c))return gt(t);let e=c.length,r=e/2;if(e%2)return gt(t);let s=Ke(r);for(let A=0,a=0;A<r;A++,a+=2){let g=Vn(c.charCodeAt(a)),E=Vn(c.charCodeAt(a+1));if(g===void 0||E===void 0)return gt(t);s[A]=g*16+E}return s},or=()=>globalThis?.crypto,mi=()=>or()?.subtle??gt("crypto.subtle must be defined, consider polyfill"),zt=(...c)=>{let t=Ke(c.reduce((r,s)=>r+Dt(s).length,0)),e=0;return c.forEach(r=>{t.set(r,e),e+=r.length}),t},ar=(c=Mt)=>or().getRandomValues(Ke(c)),He=BigInt,$t=(c,t,e,r="bad number: out of range")=>yi(c)&&t<=c&&c<e?c:gt(r),P=(c,t=yt)=>{let e=c%t;return e>=0n?e:t+e},cr=c=>P(c,Oe),hr=(c,t)=>{(c===0n||t<=0n)&&gt("no inverse n="+c+" mod="+t);let e=P(c,t),r=t,s=0n,A=1n,a=1n,g=0n;for(;e!==0n;){let E=r/e,o=r%e,f=s-a*E,I=A-g*E;r=e,e=o,s=a,A=g,a=f,g=I}return r===1n?P(s,t):gt("no inverse")},gr=c=>{let t=wn[c];return typeof t!="function"&&gt("hashes."+c+" not set"),t},Si=c=>gr("sha512")(c),hn=c=>c instanceof Jt?c:gt("Point expected"),fn=2n**256n,Jt=class Zt{static BASE;static ZERO;X;Y;Z;T;constructor(t,e,r,s){let A=fn;this.X=$t(t,0n,A),this.Y=$t(e,0n,A),this.Z=$t(r,1n,A),this.T=$t(s,0n,A),Object.freeze(this)}static CURVE(){return ir}static fromAffine(t){return new Zt(t.x,t.y,1n,P(t.x*t.y))}static fromBytes(t,e=!1){let r=cn,s=sr(Dt(t,Mt)),A=t[31];s[31]=A&-129;let a=Cn(s);$t(a,0n,e?fn:yt);let g=P(a*a),E=P(g-1n),o=P(r*g+1n),{isValid:f,value:I}=Ri(E,o);f||gt("bad point: y not sqrt");let u=(I&1n)===1n,p=(A&128)!==0;return!e&&I===0n&&p&&gt("bad point: x==0, isLastByteOdd"),p!==u&&(I=P(-I)),new Zt(I,a,1n,P(I*a))}static fromHex(t,e){return Zt.fromBytes(En(t),e)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let t=an,e=cn,r=this;if(r.is0())return gt("bad point: ZERO");let{X:s,Y:A,Z:a,T:g}=r,E=P(s*s),o=P(A*A),f=P(a*a),I=P(f*f),u=P(E*t),p=P(f*P(u+o)),y=P(I+P(e*P(E*o)));if(p!==y)return gt("bad point: equation left != right (1)");let m=P(s*A),v=P(a*g);return m!==v?gt("bad point: equation left != right (2)"):this}equals(t){let{X:e,Y:r,Z:s}=this,{X:A,Y:a,Z:g}=hn(t),E=P(e*g),o=P(A*s),f=P(r*g),I=P(a*s);return E===o&&f===I}is0(){return this.equals(ae)}negate(){return new Zt(P(-this.X),this.Y,this.Z,P(-this.T))}double(){let{X:t,Y:e,Z:r}=this,s=an,A=P(t*t),a=P(e*e),g=P(2n*P(r*r)),E=P(s*A),o=t+e,f=P(P(o*o)-A-a),I=E+a,u=I-g,p=E-a,y=P(f*u),m=P(I*p),v=P(f*p),l=P(u*I);return new Zt(y,m,l,v)}add(t){let{X:e,Y:r,Z:s,T:A}=this,{X:a,Y:g,Z:E,T:o}=hn(t),f=an,I=cn,u=P(e*a),p=P(r*g),y=P(A*I*o),m=P(s*E),v=P((e+r)*(a+g)-u-p),l=P(m-y),C=P(m+y),B=P(p-f*u),S=P(v*l),b=P(C*B),_=P(v*B),F=P(l*C);return new Zt(S,b,F,_)}subtract(t){return this.add(hn(t).negate())}multiply(t,e=!0){if(!e&&(t===0n||this.is0()))return ae;if($t(t,1n,Oe),t===1n)return this;if(this.equals(qt))return Li(t).p;let r=ae,s=qt;for(let A=this;t>0n;A=A.double(),t>>=1n)t&1n?r=r.add(A):e&&(s=s.add(A));return r}multiplyUnsafe(t){return this.multiply(t,!1)}toAffine(){let{X:t,Y:e,Z:r}=this;if(this.equals(ae))return{x:0n,y:1n};let s=hr(r,yt);P(r*s)!==1n&&gt("invalid inverse");let A=P(t*s),a=P(e*s);return{x:A,y:a}}toBytes(){let{x:t,y:e}=this.assertValidity().toAffine(),r=fr(e);return r[31]|=t&1n?128:0,r}toHex(){return In(this.toBytes())}clearCofactor(){return this.multiply(He(pi),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(Oe/2n,!1).double();return Oe%2n&&(t=t.add(this)),t.is0()}},qt=new Jt(jn,Xn,1n,P(jn*Xn)),ae=new Jt(0n,1n,1n,0n);Jt.BASE=qt;Jt.ZERO=ae;fr=c=>En(Ar($t(c,0n,fn),Ie)).reverse(),Cn=c=>He("0x"+In(sr(Dt(c)).reverse())),xt=(c,t)=>{let e=c;for(;t-- >0n;)e*=e,e%=yt;return e},_i=c=>{let t=c*c%yt*c%yt,e=xt(t,2n)*t%yt,r=xt(e,1n)*c%yt,s=xt(r,5n)*r%yt,A=xt(s,10n)*s%yt,a=xt(A,20n)*A%yt,g=xt(a,40n)*a%yt,E=xt(g,80n)*g%yt,o=xt(E,80n)*g%yt,f=xt(o,10n)*s%yt;return{pow_p_5_8:xt(f,2n)*c%yt,b2:t}},$n=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,Ri=(c,t)=>{let e=P(t*t*t),r=P(e*e*t),s=_i(c*r).pow_p_5_8,A=P(c*e*s),a=P(t*A*A),g=A,E=P(A*$n),o=a===c,f=a===P(-c),I=a===P(-c*$n);return o&&(A=g),(f||I)&&(A=E),(P(A)&1n)===1n&&(A=P(-A)),{isValid:o||f,value:A}},Pe=c=>cr(Cn(c)),Bn=(...c)=>wn.sha512Async(zt(...c)),pn=(...c)=>gr("sha512")(zt(...c)),ur=c=>{let t=c.slice(0,Mt);t[0]&=248,t[31]&=127,t[31]|=64;let e=c.slice(Mt,Ie),r=Pe(t),s=qt.multiply(r),A=s.toBytes();return{head:t,prefix:e,scalar:r,point:s,pointBytes:A}},Qn=c=>Bn(Dt(c,Mt)).then(ur),yn=c=>ur(pn(Dt(c,Mt))),lr=c=>Qn(c).then(t=>t.pointBytes),dr=c=>yn(c).pointBytes,Ir=c=>Bn(c.hashable).then(c.finish),Er=c=>c.finish(pn(c.hashable)),Cr=(c,t,e)=>{let{pointBytes:r,scalar:s}=c,A=Pe(t),a=qt.multiply(A).toBytes();return{hashable:zt(a,r,e),finish:g=>{let E=cr(A+Pe(g)*s);return Dt(zt(a,fr(E)),Ie)}}},Di=async(c,t)=>{let e=Dt(c),r=await Qn(t),s=await Bn(r.prefix,e);return Ir(Cr(r,s,e))},Ni=(c,t)=>{let e=Dt(c),r=yn(t),s=pn(r.prefix,e);return Er(Cr(r,s,e))},bn={zip215:!0},Br=(c,t,e,r=bn)=>{c=Dt(c,Ie),t=Dt(t),e=Dt(e,Mt);let{zip215:s}=r,A,a,g,E,o=Uint8Array.of();try{A=Jt.fromBytes(e,s),a=Jt.fromBytes(c.slice(0,Mt),s),g=Cn(c.slice(Mt,Ie)),E=qt.multiply(g,!1),o=zt(a.toBytes(),A.toBytes(),t)}catch{}return{hashable:o,finish:f=>{if(E==null||!s&&A.isSmallOrder())return!1;let I=Pe(f);return a.add(A.multiply(I,!1)).add(E.negate()).clearCofactor().is0()}}},vi=async(c,t,e,r=bn)=>Ir(Br(c,t,e,r)),Ti=(c,t,e,r=bn)=>Er(Br(c,t,e,r)),Fi={bytesToHex:In,hexToBytes:En,concatBytes:zt,mod:P,invert:hr,randomBytes:ar},wn={sha512Async:async c=>{let t=mi(),e=zt(c);return Ke(await t.digest("SHA-512",e.buffer))},sha512:void 0},mn=(c=ar(Mt))=>c,ki=c=>{let t=mn(c),e=dr(t);return{secretKey:t,publicKey:e}},xi=async c=>{let t=mn(c),e=await lr(t);return{secretKey:t,publicKey:e}},Mi={getExtendedPublicKeyAsync:Qn,getExtendedPublicKey:yn,randomSecretKey:mn},Ye=8,Ui=256,pr=Math.ceil(Ui/Ye)+1,un=2**(Ye-1),Gi=()=>{let c=[],t=qt,e=t;for(let r=0;r<pr;r++){e=t,c.push(e);for(let s=1;s<un;s++)e=e.add(t),c.push(e);t=e.double()}return c},zn=(c,t)=>{let e=t.negate();return c?e:t},Li=c=>{let t=Zn||(Zn=Gi()),e=ae,r=qt,s=2**Ye,A=s,a=He(s-1),g=He(Ye);for(let E=0;E<pr;E++){let o=Number(c&a);c>>=g,o>un&&(o-=A,c+=1n);let f=E*un,I=f,u=f+Math.abs(o)-1,p=E%2!==0,y=o<0;o===0?r=r.add(zn(p,t[I])):e=e.add(zn(y,t[u]))}return c!==0n&&gt("invalid wnaf"),{p:e,f:r}};Yi=c=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,c])}),Ki=class{blockLen;outputLen;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(c,t,e,r){this.blockLen=c,this.outputLen=t,this.padOffset=e,this.isLE=r,this.buffer=new Uint8Array(c),this.view=gn(this.buffer)}update(c){tr(this),Qr(c);let{view:t,buffer:e,blockLen:r}=this,s=c.length;for(let A=0;A<s;){let a=Math.min(r-this.pos,s-A);if(a===r){let g=gn(c);for(;r<=s-A;A+=r)this.process(g,A);continue}e.set(c.subarray(A,A+a),this.pos),this.pos+=a,A+=a,this.pos===r&&(this.process(t,0),this.pos=0)}return this.length+=c.length,this.roundClean(),this}digestInto(c){tr(this),Hi(c,this),this.finished=!0;let{buffer:t,view:e,blockLen:r,isLE:s}=this,{pos:A}=this;t[A++]=128,ln(this.buffer.subarray(A)),this.padOffset>r-A&&(this.process(e,0),A=0);for(let f=A;f<r;f++)t[f]=0;e.setBigUint64(r-8,BigInt(this.length*8),s),this.process(e,0);let a=gn(c),g=this.outputLen;if(g%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let E=g/4,o=this.get();if(E>o.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f<E;f++)a.setUint32(4*f,o[f],s)}digest(){let{buffer:c,outputLen:t}=this;this.digestInto(c);let e=c.slice(0,t);return this.destroy(),e}_cloneInto(c){c||=new this.constructor,c.set(...this.get());let{blockLen:t,buffer:e,length:r,finished:s,destroyed:A,pos:a}=this;return c.destroyed=A,c.finished=s,c.length=r,c.pos=a,r%t&&c.buffer.set(e),c}clone(){return this._cloneInto()}},Qt=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),Ue=BigInt(4294967295),er=BigInt(32);nr=(c,t,e)=>c>>>e,rr=(c,t,e)=>c<<32-e|t>>>e,Ae=(c,t,e)=>c>>>e|t<<32-e,oe=(c,t,e)=>c<<32-e|t>>>e,Ge=(c,t,e)=>c<<64-e|t>>>e-32,Le=(c,t,e)=>c>>>e-32|t<<64-e;Wi=(c,t,e)=>(c>>>0)+(t>>>0)+(e>>>0),ji=(c,t,e,r)=>t+e+r+(c/2**32|0)|0,Xi=(c,t,e,r)=>(c>>>0)+(t>>>0)+(e>>>0)+(r>>>0),Vi=(c,t,e,r,s)=>t+e+r+s+(c/2**32|0)|0,$i=(c,t,e,r,s)=>(c>>>0)+(t>>>0)+(e>>>0)+(r>>>0)+(s>>>0),Zi=(c,t,e,r,s,A)=>t+e+r+s+A+(c/2**32|0)|0,yr=qi(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(c=>BigInt(c))),zi=yr[0],ts=yr[1],Yt=new Uint32Array(80),Kt=new Uint32Array(80),es=class extends Ki{constructor(c){super(128,c,16,!1)}get(){let{Ah:c,Al:t,Bh:e,Bl:r,Ch:s,Cl:A,Dh:a,Dl:g,Eh:E,El:o,Fh:f,Fl:I,Gh:u,Gl:p,Hh:y,Hl:m}=this;return[c,t,e,r,s,A,a,g,E,o,f,I,u,p,y,m]}set(c,t,e,r,s,A,a,g,E,o,f,I,u,p,y,m){this.Ah=c|0,this.Al=t|0,this.Bh=e|0,this.Bl=r|0,this.Ch=s|0,this.Cl=A|0,this.Dh=a|0,this.Dl=g|0,this.Eh=E|0,this.El=o|0,this.Fh=f|0,this.Fl=I|0,this.Gh=u|0,this.Gl=p|0,this.Hh=y|0,this.Hl=m|0}process(c,t){for(let C=0;C<16;C++,t+=4)Yt[C]=c.getUint32(t),Kt[C]=c.getUint32(t+=4);for(let C=16;C<80;C++){let B=Yt[C-15]|0,S=Kt[C-15]|0,b=Ae(B,S,1)^Ae(B,S,8)^nr(B,S,7),_=oe(B,S,1)^oe(B,S,8)^rr(B,S,7),F=Yt[C-2]|0,w=Kt[C-2]|0,R=Ae(F,w,19)^Ge(F,w,61)^nr(F,w,6),M=oe(F,w,19)^Le(F,w,61)^rr(F,w,6),U=Xi(_,M,Kt[C-7],Kt[C-16]),H=Vi(U,b,R,Yt[C-7],Yt[C-16]);Yt[C]=H|0,Kt[C]=U|0}let{Ah:e,Al:r,Bh:s,Bl:A,Ch:a,Cl:g,Dh:E,Dl:o,Eh:f,El:I,Fh:u,Fl:p,Gh:y,Gl:m,Hh:v,Hl:l}=this;for(let C=0;C<80;C++){let B=Ae(f,I,14)^Ae(f,I,18)^Ge(f,I,41),S=oe(f,I,14)^oe(f,I,18)^Le(f,I,41),b=f&u^~f&y,_=I&p^~I&m,F=$i(l,S,_,ts[C],Kt[C]),w=Zi(F,v,B,b,zi[C],Yt[C]),R=F|0,M=Ae(e,r,28)^Ge(e,r,34)^Ge(e,r,39),U=oe(e,r,28)^Le(e,r,34)^Le(e,r,39),H=e&s^e&a^s&a,K=r&A^r&g^A&g;v=y|0,l=m|0,y=u|0,m=p|0,u=f|0,p=I|0,{h:f,l:I}=Ht(E|0,o|0,w|0,R|0),E=a|0,o=g|0,a=s|0,g=A|0,s=e|0,A=r|0;let q=Wi(R,U,K);e=ji(q,w,M,H),r=q|0}({h:e,l:r}=Ht(this.Ah|0,this.Al|0,e|0,r|0)),{h:s,l:A}=Ht(this.Bh|0,this.Bl|0,s|0,A|0),{h:a,l:g}=Ht(this.Ch|0,this.Cl|0,a|0,g|0),{h:E,l:o}=Ht(this.Dh|0,this.Dl|0,E|0,o|0),{h:f,l:I}=Ht(this.Eh|0,this.El|0,f|0,I|0),{h:u,l:p}=Ht(this.Fh|0,this.Fl|0,u|0,p|0),{h:y,l:m}=Ht(this.Gh|0,this.Gl|0,y|0,m|0),{h:v,l}=Ht(this.Hh|0,this.Hl|0,v|0,l|0),this.set(e,r,s,A,a,g,E,o,f,I,u,p,y,m,v,l)}roundClean(){ln(Yt,Kt)}destroy(){ln(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}},ns=class extends es{Ah=Qt[0]|0;Al=Qt[1]|0;Bh=Qt[2]|0;Bl=Qt[3]|0;Ch=Qt[4]|0;Cl=Qt[5]|0;Dh=Qt[6]|0;Dl=Qt[7]|0;Eh=Qt[8]|0;El=Qt[9]|0;Fh=Qt[10]|0;Fl=Qt[11]|0;Gh=Qt[12]|0;Gl=Qt[13]|0;Hh=Qt[14]|0;Hl=Qt[15]|0;constructor(){super(64)}},rs=Pi(()=>new ns,Yi(3)),is=dn;});var jr={};Be(jr,{Point:()=>Lt,etc:()=>Cs,getPublicKey:()=>Pr,getPublicKeyAsync:()=>Hr,hash:()=>gs,hashes:()=>Ln,keygen:()=>Bs,keygenAsync:()=>ps,sign:()=>ds,signAsync:()=>ls,utils:()=>Qs,verify:()=>Es,verifyAsync:()=>Is});var vr,bt,Je,mr,Sr,Sn,_n,ss,Gt,Ee,As,ft,os,as,cs,Nt,Xe,Tr,Fr,vn,Pt,_r,Tn,kr,hs,ee,xr,qe,te,Y,Mr,Ur,Gr,gs,Rn,Dn,Lt,Wt,ce,Lr,Fn,Ut,fs,Rr,us,We,kn,xn,Or,Mn,Un,Hr,Pr,Yr,Kr,Jr,ls,ds,Gn,qr,Is,Es,Cs,Ln,On,Bs,ps,Qs,je,ys,Wr,Nn,bs,Dr,Nr,ws,Xr=Xt(()=>{vr={p:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffedn,n:0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3edn,h:8n,a:0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffecn,d:0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3n,Gx:0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51an,Gy:0x6666666666666666666666666666666666666666666666666666666666666658n},{p:bt,n:Je,Gx:mr,Gy:Sr,a:Sn,d:_n,h:ss}=vr,Gt=32,Ee=64,As=(...c)=>{"captureStackTrace"in Error&&typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(...c)},ft=(c="")=>{let t=new Error(c);throw As(t,ft),t},os=c=>typeof c=="bigint",as=c=>typeof c=="string",cs=c=>c instanceof Uint8Array||ArrayBuffer.isView(c)&&c.constructor.name==="Uint8Array",Nt=(c,t,e="")=>{let r=cs(c),s=c?.length,A=t!==void 0;if(!r||A&&s!==t){let a=e&&`"${e}" `,g=A?` of length ${t}`:"",E=r?`length=${s}`:`type=${typeof c}`;ft(a+"expected Uint8Array"+g+", got "+E)}return c},Xe=c=>new Uint8Array(c),Tr=c=>Uint8Array.from(c),Fr=(c,t)=>c.toString(16).padStart(t,"0"),vn=c=>Array.from(Nt(c)).map(t=>Fr(t,2)).join(""),Pt={_0:48,_9:57,A:65,F:70,a:97,f:102},_r=c=>{if(c>=Pt._0&&c<=Pt._9)return c-Pt._0;if(c>=Pt.A&&c<=Pt.F)return c-(Pt.A-10);if(c>=Pt.a&&c<=Pt.f)return c-(Pt.a-10)},Tn=c=>{let t="hex invalid";if(!as(c))return ft(t);let e=c.length,r=e/2;if(e%2)return ft(t);let s=Xe(r);for(let A=0,a=0;A<r;A++,a+=2){let g=_r(c.charCodeAt(a)),E=_r(c.charCodeAt(a+1));if(g===void 0||E===void 0)return ft(t);s[A]=g*16+E}return s},kr=()=>globalThis?.crypto,hs=()=>kr()?.subtle??ft("crypto.subtle must be defined, consider polyfill"),ee=(...c)=>{let t=Xe(c.reduce((r,s)=>r+Nt(s).length,0)),e=0;return c.forEach(r=>{t.set(r,e),e+=r.length}),t},xr=(c=Gt)=>kr().getRandomValues(Xe(c)),qe=BigInt,te=(c,t,e,r="bad number: out of range")=>os(c)&&t<=c&&c<e?c:ft(r),Y=(c,t=bt)=>{let e=c%t;return e>=0n?e:t+e},Mr=c=>Y(c,Je),Ur=(c,t)=>{(c===0n||t<=0n)&&ft("no inverse n="+c+" mod="+t);let e=Y(c,t),r=t,s=0n,A=1n,a=1n,g=0n;for(;e!==0n;){let E=r/e,o=r%e,f=s-a*E,I=A-g*E;r=e,e=o,s=a,A=g,a=f,g=I}return r===1n?Y(s,t):ft("no inverse")},Gr=c=>{let t=Ln[c];return typeof t!="function"&&ft("hashes."+c+" not set"),t},gs=c=>Gr("sha512")(c),Rn=c=>c instanceof Lt?c:ft("Point expected"),Dn=2n**256n,Lt=class c{static BASE;static ZERO;X;Y;Z;T;constructor(t,e,r,s){let A=Dn;this.X=te(t,0n,A),this.Y=te(e,0n,A),this.Z=te(r,1n,A),this.T=te(s,0n,A),Object.freeze(this)}static CURVE(){return vr}static fromAffine(t){return new c(t.x,t.y,1n,Y(t.x*t.y))}static fromBytes(t,e=!1){let r=_n,s=Tr(Nt(t,Gt)),A=t[31];s[31]=A&-129;let a=Fn(s);te(a,0n,e?Dn:bt);let E=Y(a*a),o=Y(E-1n),f=Y(r*E+1n),{isValid:I,value:u}=us(o,f);I||ft("bad point: y not sqrt");let p=(u&1n)===1n,y=(A&128)!==0;return!e&&u===0n&&y&&ft("bad point: x==0, isLastByteOdd"),y!==p&&(u=Y(-u)),new c(u,a,1n,Y(u*a))}static fromHex(t,e){return c.fromBytes(Tn(t),e)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}assertValidity(){let t=Sn,e=_n,r=this;if(r.is0())return ft("bad point: ZERO");let{X:s,Y:A,Z:a,T:g}=r,E=Y(s*s),o=Y(A*A),f=Y(a*a),I=Y(f*f),u=Y(E*t),p=Y(f*Y(u+o)),y=Y(I+Y(e*Y(E*o)));if(p!==y)return ft("bad point: equation left != right (1)");let m=Y(s*A),v=Y(a*g);return m!==v?ft("bad point: equation left != right (2)"):this}equals(t){let{X:e,Y:r,Z:s}=this,{X:A,Y:a,Z:g}=Rn(t),E=Y(e*g),o=Y(A*s),f=Y(r*g),I=Y(a*s);return E===o&&f===I}is0(){return this.equals(ce)}negate(){return new c(Y(-this.X),this.Y,this.Z,Y(-this.T))}double(){let{X:t,Y:e,Z:r}=this,s=Sn,A=Y(t*t),a=Y(e*e),g=Y(2n*Y(r*r)),E=Y(s*A),o=t+e,f=Y(Y(o*o)-A-a),I=E+a,u=I-g,p=E-a,y=Y(f*u),m=Y(I*p),v=Y(f*p),l=Y(u*I);return new c(y,m,l,v)}add(t){let{X:e,Y:r,Z:s,T:A}=this,{X:a,Y:g,Z:E,T:o}=Rn(t),f=Sn,I=_n,u=Y(e*a),p=Y(r*g),y=Y(A*I*o),m=Y(s*E),v=Y((e+r)*(a+g)-u-p),l=Y(m-y),C=Y(m+y),B=Y(p-f*u),S=Y(v*l),b=Y(C*B),_=Y(v*B),F=Y(l*C);return new c(S,b,F,_)}subtract(t){return this.add(Rn(t).negate())}multiply(t,e=!0){if(!e&&(t===0n||this.is0()))return ce;if(te(t,1n,Je),t===1n)return this;if(this.equals(Wt))return ws(t).p;let r=ce,s=Wt;for(let A=this;t>0n;A=A.double(),t>>=1n)t&1n?r=r.add(A):e&&(s=s.add(A));return r}multiplyUnsafe(t){return this.multiply(t,!1)}toAffine(){let{X:t,Y:e,Z:r}=this;if(this.equals(ce))return{x:0n,y:1n};let s=Ur(r,bt);Y(r*s)!==1n&&ft("invalid inverse");let A=Y(t*s),a=Y(e*s);return{x:A,y:a}}toBytes(){let{x:t,y:e}=this.assertValidity().toAffine(),r=Lr(e);return r[31]|=t&1n?128:0,r}toHex(){return vn(this.toBytes())}clearCofactor(){return this.multiply(qe(ss),!1)}isSmallOrder(){return this.clearCofactor().is0()}isTorsionFree(){let t=this.multiply(Je/2n,!1).double();return Je%2n&&(t=t.add(this)),t.is0()}},Wt=new Lt(mr,Sr,1n,Y(mr*Sr)),ce=new Lt(0n,1n,1n,0n);Lt.BASE=Wt;Lt.ZERO=ce;Lr=c=>Tn(Fr(te(c,0n,Dn),Ee)).reverse(),Fn=c=>qe("0x"+vn(Tr(Nt(c)).reverse())),Ut=(c,t)=>{let e=c;for(;t-- >0n;)e*=e,e%=bt;return e},fs=c=>{let e=c*c%bt*c%bt,r=Ut(e,2n)*e%bt,s=Ut(r,1n)*c%bt,A=Ut(s,5n)*s%bt,a=Ut(A,10n)*A%bt,g=Ut(a,20n)*a%bt,E=Ut(g,40n)*g%bt,o=Ut(E,80n)*E%bt,f=Ut(o,80n)*E%bt,I=Ut(f,10n)*A%bt;return{pow_p_5_8:Ut(I,2n)*c%bt,b2:e}},Rr=0x2b8324804fc1df0b2b4d00993dfbd7a72f431806ad2fe478c4ee1b274a0ea0b0n,us=(c,t)=>{let e=Y(t*t*t),r=Y(e*e*t),s=fs(c*r).pow_p_5_8,A=Y(c*e*s),a=Y(t*A*A),g=A,E=Y(A*Rr),o=a===c,f=a===Y(-c),I=a===Y(-c*Rr);return o&&(A=g),(f||I)&&(A=E),(Y(A)&1n)===1n&&(A=Y(-A)),{isValid:o||f,value:A}},We=c=>Mr(Fn(c)),kn=(...c)=>Ln.sha512Async(ee(...c)),xn=(...c)=>Gr("sha512")(ee(...c)),Or=c=>{let t=c.slice(0,Gt);t[0]&=248,t[31]&=127,t[31]|=64;let e=c.slice(Gt,Ee),r=We(t),s=Wt.multiply(r),A=s.toBytes();return{head:t,prefix:e,scalar:r,point:s,pointBytes:A}},Mn=c=>kn(Nt(c,Gt)).then(Or),Un=c=>Or(xn(Nt(c,Gt))),Hr=c=>Mn(c).then(t=>t.pointBytes),Pr=c=>Un(c).pointBytes,Yr=c=>kn(c.hashable).then(c.finish),Kr=c=>c.finish(xn(c.hashable)),Jr=(c,t,e)=>{let{pointBytes:r,scalar:s}=c,A=We(t),a=Wt.multiply(A).toBytes();return{hashable:ee(a,r,e),finish:o=>{let f=Mr(A+We(o)*s);return Nt(ee(a,Lr(f)),Ee)}}},ls=async(c,t)=>{let e=Nt(c),r=await Mn(t),s=await kn(r.prefix,e);return Yr(Jr(r,s,e))},ds=(c,t)=>{let e=Nt(c),r=Un(t),s=xn(r.prefix,e);return Kr(Jr(r,s,e))},Gn={zip215:!0},qr=(c,t,e,r=Gn)=>{c=Nt(c,Ee),t=Nt(t),e=Nt(e,Gt);let{zip215:s}=r,A,a,g,E,o=Uint8Array.of();try{A=Lt.fromBytes(e,s),a=Lt.fromBytes(c.slice(0,Gt),s),g=Fn(c.slice(Gt,Ee)),E=Wt.multiply(g,!1),o=ee(a.toBytes(),A.toBytes(),t)}catch{}return{hashable:o,finish:I=>{if(E==null||!s&&A.isSmallOrder())return!1;let u=We(I);return a.add(A.multiply(u,!1)).add(E.negate()).clearCofactor().is0()}}},Is=async(c,t,e,r=Gn)=>Yr(qr(c,t,e,r)),Es=(c,t,e,r=Gn)=>Kr(qr(c,t,e,r)),Cs={bytesToHex:vn,hexToBytes:Tn,concatBytes:ee,mod:Y,invert:Ur,randomBytes:xr},Ln={sha512Async:async c=>{let t=hs(),e=ee(c);return Xe(await t.digest("SHA-512",e.buffer))},sha512:void 0},On=(c=xr(Gt))=>c,Bs=c=>{let t=On(c),e=Pr(t);return{secretKey:t,publicKey:e}},ps=async c=>{let t=On(c),e=await Hr(t);return{secretKey:t,publicKey:e}},Qs={getExtendedPublicKeyAsync:Mn,getExtendedPublicKey:Un,randomSecretKey:On},je=8,ys=256,Wr=Math.ceil(ys/je)+1,Nn=2**(je-1),bs=()=>{let c=[],t=Wt,e=t;for(let r=0;r<Wr;r++){e=t,c.push(e);for(let s=1;s<Nn;s++)e=e.add(t),c.push(e);t=e.double()}return c},Nr=(c,t)=>{let e=t.negate();return c?e:t},ws=c=>{let t=Dr||(Dr=bs()),e=ce,r=Wt,s=2**je,A=s,a=qe(s-1),g=qe(je);for(let E=0;E<Wr;E++){let o=Number(c&a);c>>=g,o>Nn&&(o-=A,c+=1n);let f=E*Nn,I=f,u=f+Math.abs(o)-1,p=E%2!==0,y=o<0;o===0?r=r.add(Nr(p,t[I])):e=e.add(Nr(y,t[u]))}return c!==0n&&ft("invalid wnaf"),{p:e,f:r}}});var Vr={};Be(Vr,{default:()=>Ss});var ms,Ss,$r=Xt(()=>{ms=(()=>{var c,t,e={773(A,a,g){var E,o=typeof self<"u"&&self.Module!==void 0?self.Module:{},f={};for(E in o)o.hasOwnProperty(E)&&(f[E]=o[E]);var I,u,p,y,m=[];I=typeof window=="object",u=typeof importScripts=="function",p=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",y=!I&&!p&&!u;var v,l,C,B,S,b="";p?(b=u?g(967).dirname(b)+"/":"//",v=function(k,G){return B||(B=g(145)),S||(S=g(967)),k=S.normalize(k),B.readFileSync(k,G?null:"utf8")},C=function(k){var G=v(k,!0);return G.buffer||(G=new Uint8Array(G)),M(G.buffer),G},process.argv.length>1&&process.argv[1].replace(/\\/g,"/"),m=process.argv.slice(2),A.exports=o,process.on("uncaughtException",function(k){if(!(k instanceof x))throw k}),process.on("unhandledRejection",X),o.inspect=function(){return"[Emscripten Module object]"}):y?(typeof read<"u"&&(v=function(k){return read(k)}),C=function(k){var G;return typeof readbuffer=="function"?new Uint8Array(readbuffer(k)):(M(typeof(G=read(k,"binary"))=="object"),G)},typeof scriptArgs<"u"?m=scriptArgs:arguments!==void 0&&(m=arguments),typeof print<"u"&&(typeof console>"u"&&(console={}),console.log=print,console.warn=console.error=typeof printErr<"u"?printErr:print)):(I||u)&&(u?b=self.location.href:typeof document<"u"&&document.currentScript&&(b=document.currentScript.src),b=b.indexOf("blob:")!==0?b.substr(0,b.lastIndexOf("/")+1):"",v=function(k){var G=new XMLHttpRequest;return G.open("GET",k,!1),G.send(null),G.responseText},u&&(C=function(k){var G=new XMLHttpRequest;return G.open("GET",k,!1),G.responseType="arraybuffer",G.send(null),new Uint8Array(G.response)}),l=function(k,G,n){var i=new XMLHttpRequest;i.open("GET",k,!0),i.responseType="arraybuffer",i.onload=function(){i.status==200||i.status==0&&i.response?G(i.response):n()},i.onerror=n,i.send(null)}),o.print||console.log.bind(console);var _,F,w=o.printErr||console.warn.bind(console);for(E in f)f.hasOwnProperty(E)&&(o[E]=f[E]);f=null,o.arguments&&(m=o.arguments),o.thisProgram&&o.thisProgram,o.quit&&o.quit,o.wasmBinary&&(_=o.wasmBinary),o.noExitRuntime,typeof WebAssembly!="object"&&X("no native wasm support detected");var R=!1;function M(k,G){k||X("Assertion failed: "+G)}var U,H,K=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function q(k){U=k,o.HEAP8=new Int8Array(k),o.HEAP16=new Int16Array(k),o.HEAP32=new Int32Array(k),o.HEAPU8=H=new Uint8Array(k),o.HEAPU16=new Uint16Array(k),o.HEAPU32=new Uint32Array(k),o.HEAPF32=new Float32Array(k),o.HEAPF64=new Float64Array(k)}o.INITIAL_MEMORY;var $,st=[],J=[],Rt=[],at=0,ut=null,j=null;function X(k){throw o.onAbort&&o.onAbort(k),w(k+=""),R=!0,k="abort("+k+"). Build with -s ASSERTIONS=1 for more info.",new WebAssembly.RuntimeError(k)}function Et(k){return k.startsWith("data:application/octet-stream;base64,")}function At(k){return k.startsWith("file://")}o.preloadedImages={},o.preloadedAudios={};var wt,nt="argon2.wasm";function vt(k){try{if(k==nt&&_)return new Uint8Array(_);if(C)return C(k);throw"both async and sync fetching of the wasm failed"}catch(G){X(G)}}function St(k){for(;k.length>0;){var G=k.shift();if(typeof G!="function"){var n=G.func;typeof n=="number"?G.arg===void 0?$.get(n)():$.get(n)(G.arg):n(G.arg===void 0?null:G.arg)}else G(o)}}function jt(k){try{return F.grow(k-U.byteLength+65535>>>16),q(F.buffer),1}catch{}}Et(nt)||(wt=nt,nt=o.locateFile?o.locateFile(wt,b):b+wt);var Tt,Ct={a:function(k,G,n){H.copyWithin(k,G,G+n)},b:function(k){var G,n=H.length;if((k>>>=0)>2147418112)return!1;for(var i=1;i<=4;i*=2){var h=n*(1+.2/i);if(h=Math.min(h,k+100663296),jt(Math.min(2147418112,((G=Math.max(k,h))%65536>0&&(G+=65536-G%65536),G))))return!0}return!1}},mt=((function(){var k={a:Ct};function G(h,Q){var D,T=h.exports;o.asm=T,q((F=o.asm.c).buffer),$=o.asm.k,D=o.asm.d,J.unshift(D),(function(L){if(at--,o.monitorRunDependencies&&o.monitorRunDependencies(at),at==0&&(ut!==null&&(clearInterval(ut),ut=null),j)){var W=j;j=null,W()}})()}function n(h){G(h.instance)}function i(h){return(function(){if(!_&&(I||u)){if(typeof fetch=="function"&&!At(nt))return fetch(nt,{credentials:"same-origin"}).then(function(Q){if(!Q.ok)throw"failed to load wasm binary file at '"+nt+"'";return Q.arrayBuffer()}).catch(function(){return vt(nt)});if(l)return new Promise(function(Q,D){l(nt,function(T){Q(new Uint8Array(T))},D)})}return Promise.resolve().then(function(){return vt(nt)})})().then(function(Q){return WebAssembly.instantiate(Q,k)}).then(h,function(Q){w("failed to asynchronously prepare wasm: "+Q),X(Q)})}if(at++,o.monitorRunDependencies&&o.monitorRunDependencies(at),o.instantiateWasm)try{return o.instantiateWasm(k,G)}catch(h){return w("Module.instantiateWasm callback failed with error: "+h),!1}_||typeof WebAssembly.instantiateStreaming!="function"||Et(nt)||At(nt)||typeof fetch!="function"?i(n):fetch(nt,{credentials:"same-origin"}).then(function(h){return WebAssembly.instantiateStreaming(h,k).then(n,function(Q){return w("wasm streaming compile failed: "+Q),w("falling back to ArrayBuffer instantiation"),i(n)})})})(),o.___wasm_call_ctors=function(){return(o.___wasm_call_ctors=o.asm.d).apply(null,arguments)},o._argon2_hash=function(){return(o._argon2_hash=o.asm.e).apply(null,arguments)},o._malloc=function(){return(mt=o._malloc=o.asm.f).apply(null,arguments)}),N=(o._free=function(){return(o._free=o.asm.g).apply(null,arguments)},o._argon2_verify=function(){return(o._argon2_verify=o.asm.h).apply(null,arguments)},o._argon2_error_message=function(){return(o._argon2_error_message=o.asm.i).apply(null,arguments)},o._argon2_encodedlen=function(){return(o._argon2_encodedlen=o.asm.j).apply(null,arguments)},o._argon2_hash_ext=function(){return(o._argon2_hash_ext=o.asm.l).apply(null,arguments)},o._argon2_verify_ext=function(){return(o._argon2_verify_ext=o.asm.m).apply(null,arguments)},o.stackAlloc=function(){return(N=o.stackAlloc=o.asm.n).apply(null,arguments)});function x(k){this.name="ExitStatus",this.message="Program terminated with exit("+k+")",this.status=k}function O(k){function G(){Tt||(Tt=!0,o.calledRun=!0,R||(St(J),o.onRuntimeInitialized&&o.onRuntimeInitialized(),(function(){var n;if(o.postRun)for(typeof o.postRun=="function"&&(o.postRun=[o.postRun]);o.postRun.length;)n=o.postRun.shift(),Rt.unshift(n);St(Rt)})()))}k=k||m,at>0||((function(){var n;if(o.preRun)for(typeof o.preRun=="function"&&(o.preRun=[o.preRun]);o.preRun.length;)n=o.preRun.shift(),st.unshift(n);St(st)})(),at>0||(o.setStatus?(o.setStatus("Running..."),setTimeout(function(){setTimeout(function(){o.setStatus("")},1),G()},1)):G()))}if(o.allocate=function(k,G){var n;return n=G==1?N(k.length):mt(k.length),k.subarray||k.slice?H.set(k,n):H.set(new Uint8Array(k),n),n},o.UTF8ToString=function(k,G){return k?(function(n,i,h){for(var Q=i+h,D=i;n[D]&&!(D>=Q);)++D;if(D-i>16&&n.subarray&&K)return K.decode(n.subarray(i,D));for(var T="";i<D;){var L=n[i++];if(128&L){var W=63&n[i++];if((224&L)!=192){var rt=63&n[i++];if((L=(240&L)==224?(15&L)<<12|W<<6|rt:(7&L)<<18|W<<12|rt<<6|63&n[i++])<65536)T+=String.fromCharCode(L);else{var Z=L-65536;T+=String.fromCharCode(55296|Z>>10,56320|1023&Z)}}else T+=String.fromCharCode((31&L)<<6|W)}else T+=String.fromCharCode(L)}return T})(H,k,G):""},o.ALLOC_NORMAL=0,j=function k(){Tt||O(),Tt||(j=k)},o.run=O,o.preInit)for(typeof o.preInit=="function"&&(o.preInit=[o.preInit]);o.preInit.length>0;)o.preInit.pop()();O(),A.exports=o,o.unloadRuntime=function(){typeof self<"u"&&delete self.Module,o=F=$=U=H=void 0,delete A.exports}},631:function(A,a,g){var E,o;typeof self<"u",(o=typeof(E=function(){let f=typeof self<"u"?self:this,I={Argon2d:0,Argon2i:1,Argon2id:2};function u(l){if(u._promise)return u._promise;if(u._module)return Promise.resolve(u._module);let C;return C=f.process&&f.process.versions&&f.process.versions.node?p().then(B=>new Promise(S=>{B.postRun=()=>S(B)})):(f.loadArgon2WasmBinary?f.loadArgon2WasmBinary():Promise.resolve(g(721)).then(B=>(function(S){let b=atob(S),_=new Uint8Array(new ArrayBuffer(b.length));for(let F=0;F<b.length;F++)_[F]=b.charCodeAt(F);return _})(B))).then(B=>{var S,b;return S=B,b=l?(function(_){let F=32767;return new WebAssembly.Memory({initial:Math.min(Math.max(Math.ceil(1024*_/65536),256)+256,F),maximum:F})})(l):void 0,new Promise(_=>(f.Module={wasmBinary:S,wasmMemory:b,postRun(){_(Module)}},p()))}),u._promise=C,C.then(B=>(u._module=B,delete u._promise,B))}function p(){return f.loadArgon2WasmModule?f.loadArgon2WasmModule():Promise.resolve(g(773))}function y(l,C){return l.allocate(C,"i8",l.ALLOC_NORMAL)}function m(l,C){return y(l,new Uint8Array([...C,0]))}function v(l){if(typeof l!="string")return l;if(typeof TextEncoder=="function")return new TextEncoder().encode(l);if(typeof Buffer=="function")return Buffer.from(l);throw Error("Don't know how to encode UTF8")}return{ArgonType:I,hash:function(l){let C=l.mem||1024;return u(C).then(B=>{let S=l.time||1,b=l.parallelism||1,_=v(l.pass),F=m(B,_),w=_.length,R=v(l.salt),M=m(B,R),U=R.length,H=l.type||I.Argon2d,K=B.allocate(Array(l.hashLen||24),"i8",B.ALLOC_NORMAL),q=l.secret?y(B,l.secret):0,$=l.secret?l.secret.byteLength:0,st=l.ad?y(B,l.ad):0,J=l.ad?l.ad.byteLength:0,Rt=l.hashLen||24,at=B._argon2_encodedlen(S,C,b,U,Rt,H),ut=B.allocate(Array(at+1),"i8",B.ALLOC_NORMAL),j,X,Et;try{X=B._argon2_hash_ext(S,C,b,F,w,M,U,K,Rt,ut,at,H,q,$,st,J,19)}catch(At){j=At}if(X!==0||j){try{j||(j=B.UTF8ToString(B._argon2_error_message(X)))}catch{}Et={message:j,code:X}}else{let At="",wt=new Uint8Array(Rt);for(let nt=0;nt<Rt;nt++){let vt=B.HEAP8[K+nt];wt[nt]=vt,At+=("0"+(255&vt).toString(16)).slice(-2)}Et={hash:wt,hashHex:At,encoded:B.UTF8ToString(ut)}}try{B._free(F),B._free(M),B._free(K),B._free(ut),st&&B._free(st),q&&B._free(q)}catch{}if(j)throw Et;return Et})},verify:function(l){return u().then(C=>{let B=v(l.pass),S=m(C,B),b=B.length,_=l.secret?y(C,l.secret):0,F=l.secret?l.secret.byteLength:0,w=l.ad?y(C,l.ad):0,R=l.ad?l.ad.byteLength:0,M=m(C,v(l.encoded)),U,H,K,q=l.type;if(q===void 0){let $=l.encoded.split("$")[1];$&&(q=I[$=$.replace("a","A")]||I.Argon2d)}try{H=C._argon2_verify_ext(M,S,b,_,F,w,R,q)}catch($){U=$}if(H||U){try{U||(U=C.UTF8ToString(C._argon2_error_message(H)))}catch{}K={message:U,code:H}}try{C._free(S),C._free(M)}catch{}if(U)throw K;return K})},unloadRuntime:function(){u._module&&(u._module.unloadRuntime(),delete u._promise,delete u._module)}}})=="function"?E.apply(a,[]):E)===void 0||(A.exports=o)},721:function(A,a){A.exports="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DwtBixEPC0GeEyEBCyABC48DAQF/IwBBgANrIgQkACAEQQA2AowBIARBjAFqIAEQBwJAIAFBwABNBEAgBEGQAWogARAYQQBIDQEgBEGQAWogBEGMAWpBBBAGQQBIDQEgBEGQAWogAiADEAZBAEgNASAEQZABaiAAIAEQEhoMAQsgBEGQAWpBwAAQGEEASA0AIARBkAFqIARBjAFqQQQQBkEASA0AIARBkAFqIAIgAxAGQQBIDQAgBEGQAWogBEFAa0HAABASQQBIDQAgACAEKQNANwAAIAAgBCkDSDcACCAAIAQpA1g3ABggACAEKQNQNwAQIABBIGohACABQSBrIgJBwQBPBEADQCAEIARBQGtBwAAQBSIBQUBrQcAAIAEQMUEASA0CIAAgASkDQDcAACAAIAEpA0g3AAggACAEKQNYNwAYIAAgBCkDUDcAECAAQSBqIQAgAkEgayICQcAASw0ACwsgBCAEQUBrQcAAEAUiAUFAayACIAEQMUEASA0AIAAgAUFAayACEAUaCyAEQZABakHwARAEIARBgANqJAALAwABC5kCACAARQRAQQAPCwJ/AkAgAAR/IAFB/wBNDQECQEGgHigCACgCAEUEQCABQYB/cUGAvwNGDQMMAQsgAUH/D00EQCAAIAFBP3FBgAFyOgABIAAgAUEGdkHAAXI6AABBAgwECyABQYCwA09BACABQYBAcUGAwANHG0UEQCAAIAFBP3FBgAFyOgACIAAgAUEMdkHgAXI6AAAgACABQQZ2QT9xQYABcjoAAUEDDAQLIAFBgIAEa0H//z9NBEAgACABQT9xQYABcjoAAyAAIAFBEnZB8AFyOgAAIAAgAUEGdkE/cUGAAXI6AAIgACABQQx2QT9xQYABcjoAAUEEDAQLC0HcHkEZNgIAQX8FQQELDAELIAAgAToAAEEBCwtQAQN/AkAgACgCACwAABAPRQRADAELA0AgACgCACICLAAAIQMgACACQQFqNgIAIAEgA2pBMGshASACLAABEA9FDQEgAUEKbCEBDAALAAsgAQu7AgACQCABQRRLDQACQAJAAkACQAJAAkACQAJAAkACQCABQQlrDgoAAQIDBAUGBwgJCgsgAiACKAIAIgFBBGo2AgAgACABKAIANgIADwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFB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AUHjFEEDEBANACABQQNqIANBDGoQFSIBRQ0AIAAgAygCDDYCKCABQecUQQMQEA0AIAFBA2ogA0EMahAVIgFFDQAgACADKAIMIgQ2AjAgACAENgI0IAEtAABBJEcNACADIAc2AgwgACgCECADQQxqIAFBAWoQLCIBRQ0AIAAgAygCDDYCFCABLQAAQSRHDQAgAyAGNgIMIAAoAgAgA0EMaiABQQFqECwiAUUNACAAIAMoAgw2AgQgAEEANgJEIABCADcCPCAAQgA3AhggAEIANwIgIAAQHCICDQBBYEEAIAEtAAAbIQILIANBEGokACACCykBAn8DQCAAIAJBA3QiA2ogASADaikAADcDACACQQFqIgJBgAFHDQALCwwAIABBAEGACBALGgtlAQJ/IAAgAhAeIgIEfyACBUFdQQACfyAAKAIAIQRBACECIAAoAgQiAAR/A0AgAyACIARqLQAAIAEgAmotAABzciEDIAJBAWoiAiAARw0ACyADQQFrQQh2QQFxQQFrBUEACwsbCwtdAQJ/IwBB8AFrIgMkAEF/IQQCQCACRSAARSABRXJyIAFBwABLcg0AIAMgARAYQQBIDQAgAyACQcAAEAZBAEgNACADIAAgARASIQQLIANB8AEQBCADQfABaiQAIAQLCQAgACABNwAACxAAIwAgAGtBcHEiACQAIAALMwEBfyAAKAIUIgMgASACIAAoAhAgA2siASABIAJLGyIBEAUaIAAgACgCFCABajYCFCACC9oBAQR/IwBB0ABrIggkAAJAIABFBEBBYCEADAELIAggABAKIgk2AgwgCCAJNgIcIAggCRAJIgo2AhggCCAJEAkiCzYCCEEAIQkCQAJAIApFIAtFcg0AIAggAjYCFCAIIAE2AhAgCEEIaiAAIAcQLSIADQEgCCgCCCEJIAggCCgCDBAJIgA2AgggAEUNACAIIAY2AiwgCCAFNgIoIAggBDYCJCAIIAM2AiAgCEEIaiAJIAcQMCEADAELQWohAAsgCCgCGBAIIAgoAggQCCAJEAgLIAhB0ABqJAAgAAuQAgEDfyMAQdAAayIRJABBfiETAkAgCEEESQ0AIAgQCSISRQRAQWohEwwBCyARQQA2AkwgEUIANwJEIBEgAjYCPCARIAI2AjggESABNgI0IBEgADYCMCARIA82AiwgESAONgIoIBEgDTYCJCAR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IGxvbmcgb3IgdG9vIHNob3J0AE1pc3NpbmcgYXJndW1lbnRzAFRvbyBtYW55IGxhbmVzAFRvbyBmZXcgbGFuZXMAVG9vIG1hbnkgdGhyZWFkcwBOb3QgZW5vdWdoIHRocmVhZHMATWVtb3J5IGFsbG9jYXRpb24gZXJyb3IATWVtb3J5IGNvc3QgaXMgdG9vIHNtYWxsAFRpbWUgY29zdCBpcyB0b28gc21hbGwAYXJnb24yaQBBcmdvbjJpAFRoZSBwYXNzd29yZCBkb2VzIG5vdCBtYXRjaCB0aGUgc3VwcGxpZWQgaGFzaABPdXRwdXQgcG9pbnRlciBtaXNtYXRjaABPdXRwdXQgaXMgdG9vIGxvbmcAU2FsdCBpcyB0b28gbG9uZwBTZWNyZXQgaXMgdG9vIGxvbmcAUGFzc3dvcmQgaXMgdG9vIGxvbmcAQXNzb2NpYXRlZCBkYXRhIGlzIHRvbyBsb25nAFRocmVhZGluZyBmYWlsdXJlAE1lbW9yeSBjb3N0IGlzIHRvbyBsYXJnZQBUaW1lIGNvc3QgaXMgdG9vIGxhcmdlAFVua25vd24gZXJyb3IgY29kZQBhcmdvbjJpZABBcmdvbjJpZABFbmNvZGluZyBmYWlsZWQARGVjb2RpbmcgZmFpbGVkAGFyZ29uMmQAQXJnb24yZABBcmdvbjJfQ29udGV4dCBjb250ZXh0IGlzIE5VTEwAT3V0cHV0IHBvaW50ZXIgaXMgTlVMTABUaGUgYWxsb2NhdGUgbWVtb3J5IGNhbGxiYWNrIGlzIE5VTEwAVGhlIGZyZWUgbWVtb3J5IGNhbGxiYWNrIGlzIE5VTEwAT0sAJHY9ACx0PQAscD0AJG09AFRoZXJlIGlzIG5vIHN1Y2ggdmVyc2lvbiBvZiBBcmdvbjIAU2FsdCBwb2ludGVyIGlzIE5VTEwsIGJ1dCBzYWx0IGxlbmd0aCBpcyBub3QgMABTZWNyZXQgcG9pbnRlciBpcyBOVUxMLCBidXQgc2VjcmV0IGxlbmd0aCBpcyBub3QgMABQYXNzd29yZCBwb2ludGVyIGlzIE5VTEwsIGJ1dCBwYXNzd29yZCBsZW5ndGggaXMgbm90IDAAQXNzb2NpYXRlZCBkYXRhIHBvaW50ZXIgaXMgTlVMTCwgYnV0IGFkIGxlbmd0aCBpcyBub3QgMAAobnVsbCkAAACbCAAAuwcAAEkJAADACQAAsAkAAPAHAAAfCAAAMAgAAMkIAABvCgAA4AkAABYKAAA7CgAAQwgAACsLAADBCgAAkgoAAPQKAAACCAAAEQgAAFsJAABbCAAAdAkAAHQIAAAFCQAAdAcAAC0JAACeBwAA9AgAAGIHAAAYCQAAiAcAAOEIAABOBwAA/wkAAFwKAAABAEGkGAsBAgBByxgLBf//////AEGQGQtBEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQeEZCyELAAAAAAAAAAARAAoKERERAAoAAAIACQsAAAAJAAsAAAsAQZsaCwEMAEGnGgsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEHVGgsBDgBB4RoLFQ0AAAAEDQAAAAAJDgAAAAAADgAADgBBjxsLARAAQZsbCx4PAAAAAA8AAAAACRAAAAAAABAAABAAABIAAAASEhIAQdIbCw4SAAAAEhISAAAAAAAACQBBgxwLAQsAQY8cCxUKAAAAAAoAAAAACQsAAAAAAAsAAAsAQb0cCwEMAEHJHAsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEHwHAsBAQBBoB4LAogPAEHYHgsDkBFQ"},145(){},967(){}},r={};function s(A){var a=r[A];if(a!==void 0)return a.exports;var g=r[A]={exports:{}};return e[A].call(g.exports,g,g.exports,s),g.exports}return s(631)})(),Ss=ms});var ze=class c{verbose;mockMode;static#e=null;#t=null;#n=!1;#r=0;#i=["time.google.com","time.cloudflare.com","pool.ntp.org"];constructor(t=0,e=!1){if(this.verbose=t,this.mockMode=e,c.#e)return c.#e;c.#e=this}static get instance(){return c.#e||new c}static get time(){return c.instance.time}get time(){return this.mockMode?Date.now():this.#t===null?null:Date.now()+Math.round(this.#t)}async sync(t){if(t!==void 0&&(this.verbose=t),this.mockMode)return Date.now();if(this.#n){for(;this.#n;)await new Promise(e=>setTimeout(e,50));return this.time}this.#n=!0;try{let e=await this.#s();return e.length===0?(console.warn("[Clock] All NTP sources failed, using local time"),this.#t=0,this.time):(this.#t=this.#o(e),this.#r=Date.now(),e.length<this.#i.length&&setTimeout(()=>this.#a(),100),this.time)}catch(e){return console.error("[Clock] Sync failed:",e),this.#t=0,this.time}finally{this.#n=!1}}get status(){return this.mockMode?{synchronized:!0,syncing:!1,offset:0,lastSync:Date.now(),age:0}:{synchronized:this.#t!==null,syncing:this.#n,offset:this.#t,lastSync:this.#r,age:this.#r?Date.now()-this.#r:null}}async#s(){let t=this.#i.map(s=>this.#A(s)),e=await Promise.allSettled(t),r=[];for(let s of e)s.status==="fulfilled"&&r.push(s.value);return r}async#A(t){let e=new AbortController,r=setTimeout(()=>e.abort(),2e3);try{let s=Date.now(),A=await fetch(`https://${t}`,{method:"HEAD",signal:e.signal,cache:"no-cache"}),a=(Date.now()-s)/2;if(!A.ok)throw new Error(`HTTP ${A.status}`);let g=new Date(A.headers.get("date")).getTime();if(isNaN(g))throw new Error("Invalid date header");return{source:t,serverTime:g+a,localTime:Date.now(),latency:a*2}}finally{clearTimeout(r)}}#o(t){if(t.length===1)return t[0].serverTime-t[0].localTime;t.sort((s,A)=>s.latency-A.latency);let e=[];for(let s of t)e.push(s.serverTime-s.localTime);e.sort((s,A)=>s-A);let r=Math.floor(e.length/2);return e.length%2===0?(e[r-1]+e[r])/2:e[r]}async#a(){if(!this.#n)try{let t=await this.#s();if(t.length===0)return;let e=this.#o(t);Math.abs(e-this.#t)>100&&(this.#t=e)}catch(t){this.verbose&&console.warn("[Clock] Background refine failed:",t)}}},et=ze.instance;await _t();await _t();var gi=1e4,fi=1e6,ui=1e5,li=36e5,It={VALID_SIGNATURE:1e4,VALID_POW:3e5,UNICAST_RELAYED:5e3,WRONG_SIGNATURE:-6e5,WRONG_POW:-1e8,WRONG_SERIALIZATION:-6e4,GOSSIP_FLOOD:-6e4,UNICAST_FLOOD:-3e4,HOPS_EXCEEDED:-3e5,UNICAST_INVALID_ROUTE:-6e4,FAILED_HANDSHAKE:-6e5,WRONG_LENGTH:-6e5},Qe=class{id;cryptoCodex;verbose;trustBalances={};manualBanList=new Set;bytesCounters={gossip:{},unicast:{}};bytesCounterResetIn=0;constructor(t,e,r=0){this.id=t,this.cryptoCodex=e,this.verbose=r}tick(){for(let t in this.trustBalances){let e=this.trustBalances[t];e!==0&&(e=e<0?Math.min(0,e+1e3):Math.max(0,e-100))}this.bytesCounterResetIn-=1e3,!(this.bytesCounterResetIn>0)&&(this.bytesCounterResetIn=gi,this.bytesCounters={gossip:{},unicast:{}})}countPeerAction(t,e){if(It[e])return this.adjustTrust(t,It[e])}adjustTrust(t,e,r="na"){t!==this.id&&(e&&(this.trustBalances[t]=Math.min(li,(this.trustBalances[t]||0)+e)),e&&this.verbose>3&&console.log(`%c(Arbiter: ${this.id}) ${t} +${e}ms (${r}). Updated: ${this.trustBalances[t]}ms.`,it.ARBITER),this.isBanished(t)&&this.verbose>1&&console.log(`%c(Arbiter: ${this.id}) Peer ${t} is now banished.`,it.ARBITER))}setBanished(t){this.manualBanList.has(t)||this.manualBanList.add(t)}isBanished(t){return ct.MANUAL_BAN_MODE?this.manualBanList.has(t):(this.trustBalances[t]||0)<0}countMessageBytes(t,e,r){this.bytesCounters[r][t]||(this.bytesCounters[r][t]=0),this.bytesCounters[r][t]+=e;let[s,A]=r==="gossip"?[ui,It.GOSSIP_FLOOD]:[fi,It.UNICAST_FLOOD];return this.bytesCounters[r][t]<s?!0:this.adjustTrust(t,A,`Message ${r} flood detected`)}async digestMessage(t,e,r,s=.01){let{senderId:A,pubkey:a,topic:g,expectedEnd:E}=e;if(!(!await this.#e(t,e,r)||!this.#t(t,g?"gossip":"unicast",r,E)||!(g?this.#n(t,e):this.#r(t,e)))&&!(this.isBanished(t)||this.isBanished(A)))return this.trustBalances[A]>It.VALID_POW||Math.random()<s&&await this.#i(A,a),!0}async#e(t,e,r){try{let{pubkey:s,signature:A,signatureStart:a}=e,g=r.subarray(0,a);if(!await this.cryptoCodex.verifySignature(s,g,A))throw new Error("Gossip signature invalid");return this.adjustTrust(t,It.VALID_SIGNATURE,"Gossip signature valid"),!0}catch(s){this.verbose>1&&console.error(`%c(Arbiter: ${this.id}) Error during signature verification from ${t}: ${s.stack}`,it.ARBITER),this.verbose>2&&console.log(`%c(Arbiter) signatureControl() error details: ${e}`,it.ARBITER)}this.adjustTrust(t,It.WRONG_SIGNATURE,"Gossip signature invalid")}#t(t,e,r,s){if(!s||r.length===s)return!0;this.adjustTrust(t,It.WRONG_LENGTH,`${e} message length mismatch`)}#n(t,e){if(e.HOPS<=(dt.HOPS[e.topic]||dt.HOPS.default))return!0;this.adjustTrust(t,It.HOPS_EXCEEDED,"Gossip HOPS exceeded")}#r(t,e){if(e.route.length<=ht.MAX_HOPS)return!0;this.adjustTrust(t,It.HOPS_EXCEEDED,"Unicast HOPS exceeded")}async#i(t,e){await this.cryptoCodex.pubkeyDifficultyCheck(e)?this.adjustTrust(t,It.VALID_POW,"Gossip PoW valid"):this.adjustTrust(t,It.WRONG_POW,"Gossip PoW invalid")}};await _t();var di;function ye(c,t=0){let e=typeof c=="string"?(di??=new TextEncoder).encode(c):c,r=e,s=t+374761393&4294967295,A=0;if(r.length>=16){let g=[t+2654435761+2246822519&4294967295,t+2246822519&4294967295,t+0&4294967295,t-2654435761&4294967295],E=e,o=E.length-16,f=0;for(A=0;(A&4294967280)<=o;A+=4){let I=A,u=E[I+0]+(E[I+1]<<8),p=E[I+2]+(E[I+3]<<8),y=u*2246822519+(p*2246822519<<16),m=g[f]+y&4294967295;m=m<<13|m>>>19;let v=m&65535,l=m>>>16;g[f]=v*2654435761+(l*2654435761<<16)&4294967295,f=f+1&3}s=(g[0]<<1|g[0]>>>31)+(g[1]<<7|g[1]>>>25)+(g[2]<<12|g[2]>>>20)+(g[3]<<18|g[3]>>>14)&4294967295}s=s+e.length&4294967295;let a=e.length-4;for(;A<=a;A+=4){let g=A,E=r[g+0]+(r[g+1]<<8),o=r[g+2]+(r[g+3]<<8),f=E*3266489917+(o*3266489917<<16);s=s+f&4294967295,s=s<<17|s>>>15,s=(s&65535)*668265263+((s>>>16)*668265263<<16)&4294967295}for(;A<r.length;++A){let g=r[A];s=s+g*374761393,s=s<<11|s>>>21,s=(s&65535)*2654435761+((s>>>16)*2654435761<<16)&4294967295}return s=s^s>>>15,s=((s&65535)*2246822519&4294967295)+((s>>>16)*2246822519<<16),s=s^s>>>13,s=((s&65535)*3266489917&4294967295)+((s>>>16)*3266489917<<16),s=s^s>>>16,s<0?s+4294967296:s}async function Ii(){if(!(typeof globalThis.RTCPeerConnection<"u"))return(await import("wrtc")).default}var qn=await Ii(),be=class{id;verbose;stunUrls;constructor(t,e,r=0){this.id=t,this.verbose=r,this.stunUrls=e}onSignalAnswer=null;onConnect=null;offerInstanceByExpiration={};creatingOffer=!1;offerCreationTimeout=null;offersToCreate=lt.MAX_SDP_OFFERS;offers={};tick(){let t=et.time;for(let A in this.offerInstanceByExpiration){let a=this.offerInstanceByExpiration[A];t<A||(a?.destroy(),delete this.offerInstanceByExpiration[A],this.creatingOffer=!1)}for(let A in this.offers){let a=this.offers[A];if(a.offererInstance.destroyed){delete this.offers[A];continue}if(a.isUsed){delete this.offers[A];continue}a.timestamp+lt.SDP_OFFER_EXPIRATION>t||(a.offererInstance?.destroy(),delete this.offers[A])}let e=0;for(let A in this.offers){e++;let a=this.offers[A];if(a.isDigestingOneAnswer){a.isDigestingOneAnswer=!1;continue}if(a.offererInstance.destroyed)continue;let g=a.answers.filter(f=>!f.used);if(!g.length)continue;let E=g.reduce((f,I)=>f.timestamp>I.timestamp?f:I);if(!E)continue;E.used=!0;let o=t-E.timestamp;o>ct.CONNECTION_UPGRADE_TIMEOUT/2||(a.offererInstance.signal(E.signal),a.isDigestingOneAnswer=!0,this.verbose>2&&console.log(`(${this.id}) Using answer from ${E.peerId} for offer ${A} (received since ${o} ms)`))}if(this.creatingOffer||e>=this.offersToCreate)return;this.creatingOffer=!0;let r=t+(lt.SIGNAL_CREATION_TIMEOUT||8e3),s=this.#e(r);this.offerInstanceByExpiration[r]=s}#e(t){let e=lt.ICE_COMPLETE_TIMEOUT||1e3,r=new lt.PEER({initiator:!0,trickle:!1,iceCompleteTimeout:e,wrtc:qn,config:{iceServers:this.stunUrls}});return r.on("error",s=>this.#n(s)),r.on("signal",s=>{let{candidate:A,type:a}=s;if(!s||A)throw new Error("Unexpected signal data from offerer instance: "+JSON.stringify(s));if(a!=="offer")throw new Error("Unexpected signal type from offerer instance: "+a);delete this.offerInstanceByExpiration[t];let g=ye(JSON.stringify(s));r.on("connect",()=>{this.offers[g]&&(this.offers[g].isUsed=!0),this.onConnect(void 0,r)}),this.offers[g]={timestamp:et.time,sentCounter:0,signal:s,offererInstance:r,answers:[],answerers:{},isUsed:!1},this.creatingOffer=!1}),r}#t(t,e="",r=2,s="includes"){return s[0]==="i"&&!t.message.includes(e)?!1:t.message.startsWith(e)?(this.verbose>=r&&console.info(`%cOfferManager => ${t.message}`,it.PEER_STORE),!0):!1}#n=t=>{this.verbose<1||this.#t(t,"Ice connection failed",2)||this.#t(t,"Connection failed",2)||this.#t(t,"Remote transport instance",3,"startsWith")||this.#t(t,"Simulated failure",4,"startsWith")||this.#t(t,"No peer found",4,"startsWith")||this.#t(t,"Missing transport instance",2,"startsWith")||this.#t(t,"Failed to create answer",2,"startsWith")||this.#t(t,"Transport instance",3,"startsWith")||this.#t(t,"cannot signal after peer is destroyed",3,"startsWith")||this.#t(t,"No pending",3)||this.#t(t,"is already linked",3)||this.#t(t,"There is already a pending",3)||this.#t(t,"closed the connection",3)||this.#t(t,"No transport instance found for id:",3)||this.verbose>0&&console.error("transportInstance ERROR => ",t.stack)};bestReadyOffer(t=0,e=!0){let r=null,s=null,A=null;for(let a in this.offers){let g=this.offers[a],{isUsed:E,sentCounter:o,signal:f,timestamp:I}=g;if(E||o>t)continue;let u=et.time-I;if(!(e&&u>lt.SDP_OFFER_EXPIRATION/2)&&!(A&&u>A)){r=g,s=a,A=u;break}}return{offerHash:s,readyOffer:r,since:A}}addSignalAnswer(t,e,r,s){!e||e.type!=="answer"||!r||!this.offers[r]||this.offers[r].answerers[t]||(this.offers[r].answerers[t]=!0,this.offers[r].answers.push({peerId:t,signal:e,timestamp:s}),this.verbose>3&&console.log(`(OfferManager) Added answer from ${t} for offer ${r}`))}getTransportInstanceForSignal(t,e,r){try{if(!e||!e.type||!e.sdp)throw new Error("Wrong remote SDP provided");let{type:s,sdp:A}=e;if(s!=="offer"&&s!=="answer")throw new Error("Invalid remote SDP type");if(s==="offer"&&!A)throw new Error("No SDP in the remote SDP offer");if(s==="answer"&&!A)throw new Error("No SDP in the remote SDP answer");if(s==="answer"){let E=r?this.offers[r]?.offererInstance:null;if(!E)throw new Error("No pending offer found for the given offer hash to accept the answer");return E}let a=lt.ICE_COMPLETE_TIMEOUT||1e3,g=new lt.PEER({initiator:!1,trickle:!1,iceCompleteTimeout:a,wrtc:qn,config:{iceServers:this.stunUrls}});return g.on("error",E=>this.#n(E)),g.on("signal",E=>this.onSignalAnswer(t,E,r)),g.on("connect",()=>this.onConnect(t,g)),g}catch(s){if(s.message.startsWith("No pending offer found")&&this.verbose<2)return null;if(this.verbose>1&&s.message.startsWith("No pending offer found"))return console.info(`%c${s.message}`,it.PEER_STORE);this.verbose>0&&console.error(s.stack)}}destroy(){for(let t in this.offers)this.offers[t].offererInstance?.destroy()}};await _t();var{SANDBOX:js,ICE_CANDIDATE_EMITTER:Xs,TEST_WS_EVENT_MANAGER:Vs}=Bt.ENABLED?await De().then(()=>Re):{},sn=class{neighbors;connectionsCount;constructor(t={}){this.neighbors=t,this.connectionsCount=Object.keys(t).length}setNeighbor(t,e=et.time){this.neighbors[t]||this.connectionsCount++,this.neighbors[t]=e}unsetNeighbor(t){this.neighbors[t]&&this.connectionsCount--,delete this.neighbors[t]}},Vt=class{peerId;transportInstance;isWebSocket;direction;pendingUntil;connStartTime;constructor(t,e,r,s=!1){this.peerId=t,this.transportInstance=e,this.isWebSocket=s,this.direction=r,this.pendingUntil=et.time+ct.CONNECTION_UPGRADE_TIMEOUT}setConnected(){this.connStartTime=et.time,this.pendingUntil=0}getConnectionDuration(){return this.connStartTime?et.time-this.connStartTime:0}close(){this.isWebSocket?this.transportInstance?.close():this.transportInstance?.destroy()}},Ne=class{id;cryptoCodex;offerManager;arbiter;verbose;isDestroy=!1;neighborsList=[];connecting={};connected={};known={};knownCount=0;kick={};callbacks={connect:[(t,e)=>this.#e(t,e)],disconnect:[(t,e)=>this.#t(t,e)],signal:[],data:[]};constructor(t,e,r,s,A=0){this.id=t,this.cryptoCodex=e,this.offerManager=r,this.arbiter=s,this.verbose=A,this.offerManager.onSignalAnswer=(a,g,E)=>{if(!(this.isDestroy||this.isKicked(a)||this.arbiter.isBanished(a)))for(let o of this.callbacks.signal)o(a,{signal:g,offerHash:E})},this.offerManager.onConnect=(a,g)=>{if(this.isDestroy)return g?.destroy();if(a===this.id)throw new Error(`Refusing to connect to self (${this.id}).`);let E=a;if(g.on("close",()=>{if(E)for(let o of this.callbacks.disconnect)o(E,g.initiator?"out":"in")}),g.on("data",o=>{if(E)for(let f of this.callbacks.data)f(E,o);else{let f=new Uint8Array(o);if(f[0]>127)return;let{route:I,type:u,neighborsList:p}=e.readUnicastMessage(f)||{};if(u!=="handshake"||I.length!==2||I[1]!==this.id)return;E=I[0],this.digestPeerNeighbors(E,p);for(let y of this.callbacks.connect)y(E,"out")}}),a)for(let o of this.callbacks.connect)o(a,"in")}}get publicNeighborsList(){return this.neighborsList.filter(t=>this.cryptoCodex.isPublicNode(t))}get standardNeighborsList(){return this.neighborsList.filter(t=>!this.cryptoCodex.isPublicNode(t))}#e(t,e){if(!this.connecting[t]?.[e])return this.verbose>=3?console.info(`%cPeer with ID ${t} is not connecting.`,it.PEER_STORE):null;let r=this.connecting[t][e];if(this.#n(t,"connecting",e),this.isKicked(t))return this.verbose>=3&&console.info(`%c(${this.id}) Connect => Peer with ID ${t} is kicked. => close()`,it.PEER_STORE),r.close();if(this.connected[t])return this.verbose>1&&console.warn(`%c(${this.id}) Connect => Peer with ID ${t} is already connected. => close()`,it.PEER_STORE),r.close();r.setConnected(),this.connected[t]=r,this.neighborsList.push(t),this.#r(this.id,t)}#t(t,e){this.#n(t,"connected",e)}#n(t,e="both",r="both"){if(!t&&t===this.id)return;let[s,A]=[this.connecting[t],this.connected[t]];if(!s&&!A||(e!=="connecting"&&(A?.direction===r||r==="both")&&(A?.close(),delete this.connected[t],this.neighborsList=Object.keys(this.connected),this.#i(this.id,t)),e==="connected"))return;let a=r==="both"?["out","in"]:[r];for(let g of a)delete s?.[g];this.connecting[t]?.in||this.connecting[t]?.out||delete this.connecting[t]}#r(t="toto",e="tutu"){for(let r of[t,e])this.known[r]||(this.known[r]=new sn,this.knownCount++),this.known[r].setNeighbor(r===t?e:t)}#i(t="toto",e="tutu"){for(let r of[t,e])this.known[r]&&(this.known[r].unsetNeighbor(r===t?e:t),!(this.known[r].connectionsCount>0)&&(delete this.known[r],this.knownCount--))}cleanupExpired(t=!0){let e=et.time;for(let r of["in","out"])for(let s in this.connecting){if(!this.connecting[s][r])continue;let A=this.connected[s]?1e4:0;this.connecting[s][r].pendingUntil+A>e||(this.verbose>=4&&!this.connected[s]&&console.info(`%c(${this.id}) Pending ${r} connection to peer ${s} expired.`,it.PEER_STORE),this.verbose>0&&this.connected[s]?.direction===r&&console.info(`%c(${this.id}) Pending ${r} connection to peer ${s} expired (already connected WARNING!).`,"color: white;"),this.connecting[s]?.out?.isWebSocket&&this.connecting[s].out.close(),this.connecting[s]?.in?.close(),this.#n(s,"connecting",r))}t&&(this.neighborsList=Object.keys(this.connected),this.digestPeerNeighbors(this.id,this.neighborsList))}on(t,e){if(!this.callbacks[t])throw new Error(`Unknown callback type: ${t}`);this.callbacks[t].push(e)}getUpdatedPeerConnectionsCount(t,e=!0){let r=et.time,s=0,A=this.known[t]?.neighbors||{};for(let a in A){if(a!==this.id&&r-A[a]>ot.PEER_LINK_EXPIRATION){this.#i(t,a);continue}e?s++:this.cryptoCodex.isPublicNode(a)||s++}return s}addConnectingPeer(t,e,r){if(t===this.id)throw new Error(`Refusing to connect to self (${this.id}).`);let s=e.type==="offer"?"in":"out";if(this.connecting[t]?.[s])return;let A=this.offerManager.getTransportInstanceForSignal(t,e,r);return A?(this.connecting[t]||(this.connecting[t]={}),this.connecting[t][s]=new Vt(t,A,s),!0):this.verbose>3?console.info(`%cFailed to get transport instance for signal from ${t}.`,it.PEER_STORE):null}assignSignal(t,e,r,s=et.time){let A=this.connecting[t]?.[e.type==="offer"?"in":"out"];try{if(A?.isWebSocket)throw new Error(`Cannot assign signal for ID ${t}. (WebSocket)`);e.type==="answer"?this.offerManager.addSignalAnswer(t,e,r,s):A.transportInstance.signal(e)}catch(a){console.error(`Error signaling ${e?.type} for ${t}:`,a.stack)}}kickPeer(t,e=6e4,r){e&&(this.kick[t]=et.time+e),this.#n(t,"both"),this.verbose>1&&console.log(`%c(${this.id}) Kicked peer ${t} for ${e/1e3}s. ${r?"| Reason: "+r:""}`,"color: green;")}isKicked(t){return this.kick[t]&&this.kick[t]>et.time}digestValidRoute(t=[]){for(let e=1;e<t.length;e++)this.#r(t[e-1],t[e])}digestPeerNeighbors(t,e=[]){if(!(!t||!Array.isArray(e))){for(let r in this.known[t]?.neighbors||{})e.includes(r)||this.#i(t,r);for(let r of e)this.#r(t,r)}}destroy(){this.isDestroy=!0;for(let[t,e]of Object.entries(this.connected))this.#n(t),e.close();for(let[t,e]of Object.entries(this.connecting))this.#n(t),e.in?.close(),e.out?.close();this.offerManager.destroy()}};await _t();var ve=class{cache={};peerStore;constructor(t,e){this.id=t,this.peerStore=e}buildRoutes(t,e=5,r=3,s=1728,A=!0,a=3){if(this.id===t)throw new Error("Cannot build route to self");if(this.peerStore.connected[t])return{routes:[{path:[this.id,t]}],success:!0,nodesExplored:1};if(!this.peerStore.known[t])return this.#n(t);if(this.cache[t]&&this.#e(this.cache[t]))return{routes:this.cache[t],success:!0,nodesExplored:0};let g=this.#r(t,r,s,a);if(!g.success)return{routes:[],success:!1,nodesExplored:g.nodesExplored};let o=this.#t(g.paths,A).slice(0,e);return this.cache[t]=o,{routes:o,success:!0,nodesExplored:g.nodesExplored}}#e(t){for(let{path:e}of t)for(let r=1;r<e.length;r++){let s=e[r-1],A=e[r];if(s===this.id){if(!this.peerStore.connected[A])return!1}else if(!this.peerStore.known[s]?.neighbors?.[A])return!1}return!0}#t(t,e){let r=[];for(let s of t)r.push({path:s,hops:s.length-1});return e&&r.sort((s,A)=>s.hops-A.hops),r}#n(t){let e=[],r=this.peerStore.neighborsList,s=[...Array(r.length).keys()].sort(()=>Math.random()-.5);for(let A of s)e.push({path:[this.id,r[A],t],hops:0,score:0});return e.length===0?{routes:[],success:!1,nodesExplored:0}:{routes:e,success:"blind",nodesExplored:e.length}}#r(t,e,r,s){let A=[],a=0,g=[{node:this.id,path:[this.id],pathSet:new Set([this.id]),depth:0}],E=new Map;E.set(this.id,[this.id]);let o=[{node:t,path:[t],pathSet:new Set([t]),depth:0}],f=new Map;f.set(t,[t]);let I=Math.ceil(e/2);for(;(g.length>0||o.length>0)&&a<r;){if(g.length>0){let u=this.#i(g,E,f,I);for(let p of u){let y=this.#s(E.get(p),f.get(p));if(A.push(y),!(y.length-1>s))return{success:!0,paths:A,nodesExplored:a}}a++}if(o.length>0){let u=this.#i(o,f,E,I);for(let p of u){let y=this.#s(E.get(p),f.get(p));if(A.push(y),!(y.length-1>s))return{success:!0,paths:A,nodesExplored:a}}a++}}return{success:A.length>0,paths:A,nodesExplored:a}}#i(t,e,r,s){if(t.length===0)return[];let{node:A,path:a,pathSet:g,depth:E}=t.shift();if(E>=s)return[];let o=[];function f(I){if(g.has(I))return;let u=E+1;if(r.has(I)&&o.push(I),e.has(I))return;let p=[...a,I],y=new Set(g).add(I);e.set(I,p),t.push({node:I,path:p,pathSet:y,depth:u})}if(A===this.id)for(let I of this.peerStore.neighborsList)f(I);else for(let I in this.peerStore.known[A]?.neighbors||{})f(I);return o}#s(t,e){let r=t.length+e.length-1,s=new Array(r),A=0;for(let a of t)s[A++]=a;for(let a=e.length-2;a>=0;a--)s[A++]=e[a];return s}};var{SANDBOX:nA,ICE_CANDIDATE_EMITTER:rA,TEST_WS_EVENT_MANAGER:iA}=Bt.ENABLED?await De().then(()=>Re):{},Ei=ve,de=class{type="message";timestamp;neighborsList;route;pubkey;data;signature;signatureStart;expectedEnd;constructor(t,e,r,s,A,a,g,E,o){this.type=t,this.timestamp=e,this.neighborsList=r,this.route=s,this.pubkey=A,this.data=a,this.signature=g,this.signatureStart=E,this.expectedEnd=o}getSenderId(){return this.route[0]}getTargetId(){return this.route[this.route.length-1]}extractRouteInfo(t="toto"){let e=this.newRoute||this.route,r=[],s=-1;for(let o=0;o<e.length;o++)if(r.push(e[o]),e[o]===t){s=o;break}let A=e[0],a=e[e.length-1],g=s>0?e[s-1]:null,E=s!==-1?e[s+1]:null;return{traveledRoute:r,selfPosition:s,senderId:A,targetId:a,prevId:g,nextId:E,routeLength:e.length}}},Te=class extends de{rerouterPubkey;newRoute;rerouterSignature;constructor(t,e,r,s,A,a,g,E,o){super(t,e,r,s,A,a),this.rerouterPubkey=g,this.newRoute=E,this.rerouterSignature=o}getRerouterId(){return this.newRoute[0]}},Fe=class{callbacks={message_handle:[]};id;cryptoCodex;arbiter;peerStore;verbose;pathFinder;maxHops=ht.MAX_HOPS;maxRoutes=ht.MAX_ROUTES;maxNodes=ht.MAX_NODES;constructor(t,e,r,s,A=0){this.id=t,this.cryptoCodex=e,this.arbiter=r,this.peerStore=s,this.verbose=A,this.pathFinder=new Ei(this.id,this.peerStore)}on(t,e){this.callbacks[t]?this.callbacks[t].push(e):this.callbacks[t]=[e]}sendUnicast(t,e,r="message",s=1){if(t===this.id)return!1;let A=this.pathFinder.buildRoutes(t,this.maxRoutes,this.maxHops,this.maxNodes,!0);if(!A.success)return!1;let a=A.success==="blind"?1:s;for(let g=0;g<Math.min(a,A.routes.length);g++){let E=A.routes[g].path;if(E.length>ht.MAX_HOPS){this.verbose>1&&console.warn(`Cannot send unicast message to ${t} as route exceeds maxHops (${ht.MAX_HOPS}). BFS incurred.`);continue}let o=this.cryptoCodex.createUnicastMessage(r,e,E,this.peerStore.neighborsList);this.#e(E[1],o)}return!0}#e(t,e){if(this.id===t)return{success:!1,reason:"Cannot send message to self."};let r=this.peerStore.connected[t]?.transportInstance;if(!r)return{success:!1,reason:`Transport instance is not available for peer ${t}.`};try{return r.send(e),{success:!0}}catch(s){this.peerStore.kickPeer(t,0,"send-error"),this.verbose>0&&console.error(`Error sending message to ${t}:`,s.message)}return{success:!1,reason:`Error sending message to ${t}.`}}async handleDirectMessage(t,e){if(this.arbiter.isBanished(t))return this.verbose>=3?console.info(`%cReceived direct message from banned peer ${t}, ignoring.`,"color: red;"):null;if(!this.arbiter.countMessageBytes(t,e.byteLength,"unicast"))return;let r=this.cryptoCodex.readUnicastMessage(e);if(!r)return this.arbiter.countPeerAction(t,"WRONG_SERIALIZATION");if(!await this.arbiter.digestMessage(t,r,e)||this.arbiter.isBanished(t)||this.arbiter.isBanished(r.senderId))return;let{traveledRoute:A,selfPosition:a,senderId:g,targetId:E,prevId:o,nextId:f}=r.extractRouteInfo(this.id);if(t===g&&t===this.id)throw new Error("DirectMessage senderId and from are both self id !!");for(let p of this.callbacks.message_handle||[])p();if(a===-1)return this.arbiter.adjustTrust(t,It.UNICAST_INVALID_ROUTE,"Self not in route");if(o&&t!==o)return this.arbiter.adjustTrust(t,It.UNICAST_INVALID_ROUTE,"Previous hop id does not match actual from id");if(g===this.id)return this.arbiter.adjustTrust(t,It.UNICAST_INVALID_ROUTE,"SenderId is self id");if(this.verbose>3&&console.log(g===t?`(${this.id}) Direct ${r.type} from ${g}: ${r.data}`:`(${this.id}) Direct ${r.type} from ${g} (lastRelay: ${t}): ${r.data}`),this.peerStore.digestPeerNeighbors(g,r.neighborsList),t!==g&&this.arbiter.adjustTrust(t,It.UNICAST_RELAYED,"Relayed unicast message"),ot.ON_UNICAST.DIGEST_TRAVELED_ROUTE&&this.peerStore.digestValidRoute(A),this.id===E){for(let p of this.callbacks[r.type]||[])p(g,r.data);return}let{success:I,reason:u}=this.#e(f,e);if(!I&&!r.rerouterSignature){let p=this.pathFinder.buildRoutes(E,this.maxRoutes,this.maxHops,this.maxNodes,!0);if(!p.success)return;let y=p.routes[0].path;if(y.length>ht.MAX_HOPS){this.verbose>1&&console.warn(`Cannot re-route unicast message to ${E} as new route exceeds maxHops (${ht.MAX_HOPS}).`);return}let m=this.cryptoCodex.createReroutedUnicastMessage(e,y),v=y[a+1];this.#e(v,m)}}};await _t();var ke=class{topic="gossip";timestamp;neighborsList;HOPS;senderId;pubkey;data;signature;signatureStart;expectedEnd;constructor(t,e,r,s,A,a,g,E,o,f){this.topic=t,this.timestamp=e,this.neighborsList=r,this.HOPS=s,this.senderId=A,this.pubkey=a,this.data=g,this.signature=E,this.signatureStart=o,this.expectedEnd=f}},An=class{cryptoCodex;xxHash32UsageCount=0;seenTimeouts={};cache=[];cleanupFrequency=100;cleanupIn=100;cleanupDurationWarning=10;constructor(t){this.cryptoCodex=t}getGossipHistoryByTime(t="asc"){let e=this.cache.map(r=>({senderId:r.senderId,topic:r.topic,data:r.serializedMessage}));return t==="asc"?e:e.reverse()}addMessage(t){let e=et.time,{marker:r,neighLength:s,timestamp:A,dataLength:a,pubkey:g,associatedId:E}=this.cryptoCodex.readBufferHeader(t);if(e-A>dt.EXPIRATION)return;let o=t.subarray(0,47+s+a),f=ye(o);if(this.xxHash32UsageCount++,this.seenTimeouts[f])return;let I=dt.MARKERS_BYTES[r],u=E,p=e+dt.CACHE_DURATION;return this.cache.push({hash:f,senderId:u,topic:I,serializedMessage:t,timestamp:A,expiration:p}),this.seenTimeouts[f]=p,--this.cleanupIn<=0&&this.#e(e),{hash:f,isNew:!this.seenTimeouts[f]}}#e(t=et.time){let e=-1;for(let r=0;r<this.cache.length;r++)this.cache[r].expiration<=t?delete this.seenTimeouts[this.cache[r].hash]:e===-1&&(e=r);e>0?this.cache=this.cache.slice(e):e===-1&&(this.cache=[]),this.cleanupIn=this.cleanupFrequency}},xe=class{callbacks={message_handle:[]};id;cryptoCodex;arbiter;peerStore;verbose;bloomFilter;constructor(t,e,r,s,A=0){this.id=t,this.cryptoCodex=e,this.arbiter=r,this.peerStore=s,this.verbose=A,this.bloomFilter=new An(e)}on(t,e){this.callbacks[t]?this.callbacks[t].push(e):this.callbacks[t]=[e]}broadcastToAll(t,e="gossip",r){let s=r||dt.HOPS[e]||dt.HOPS.default,A=this.cryptoCodex.createGossipMessage(e,t,s,this.peerStore.neighborsList);if(this.bloomFilter.addMessage(A)){this.verbose>3&&console.log(`(${this.id}) Gossip ${e}, to ${JSON.stringify(this.peerStore.neighborsList)}: ${t}`);for(let a of this.peerStore.neighborsList)this.#e(a,A)}}#e(t,e){if(t===this.id)throw new Error(`Refusing to send a gossip message to self (${this.id}).`);let r=this.peerStore.connected[t]?.transportInstance;if(!r)return{success:!1,reason:`Transport instance is not available for peer ${t}.`};try{r.send(e)}catch{this.peerStore.connected[t]?.close()}}sendGossipHistoryToPeer(t){let e=this.bloomFilter.getGossipHistoryByTime("asc");for(let r of e)this.#e(t,r.data)}async handleGossipMessage(t,e){if(this.arbiter.isBanished(t))return this.verbose>=3?console.info(`%cReceived gossip message from banned peer ${t}, ignoring.`,"color: red;"):null;if(!this.arbiter.countMessageBytes(t,e.byteLength,"gossip"))return;for(let l of this.callbacks.message_handle||[])l(e);if(!this.bloomFilter.addMessage(e))return;let r=this.cryptoCodex.readGossipMessage(e);if(!r)return this.arbiter.countPeerAction(t,"WRONG_SERIALIZATION");if(!await this.arbiter.digestMessage(t,r,e)||this.arbiter.isBanished(t)||this.arbiter.isBanished(r.senderId))return;let{topic:A,timestamp:a,neighborsList:g,HOPS:E,senderId:o,data:f}=r;if(o===this.id)throw new Error(`#${this.id}#${t}# Received our own message back from peer ${t}.`);this.verbose>3&&console.log(o===t?`(${this.id}) Gossip ${A} from ${o}: ${f}`:`(${this.id}) Gossip ${A} from ${o} (by: ${t}): ${f}`),this.peerStore.digestPeerNeighbors(o,g);for(let l of this.callbacks[A]||[])l(o,f,E,r);if(E<1)return;let I=this.peerStore.neighborsList.length,u=Math.max(1,I/dt.TRANSMISSION_RATE.NEIGHBOURS_PONDERATION),p=dt.TRANSMISSION_RATE[A]||dt.TRANSMISSION_RATE.default,y=Math.pow(p,u),m=I<dt.TRANSMISSION_RATE.MIN_NEIGHBOURS_TO_APPLY_PONDERATION,v=this.cryptoCodex.decrementGossipHops(e);for(let l of this.peerStore.neighborsList)if(l!==t){if(!m&&Math.random()>y)continue;this.#e(l,v)}}};await _t();var{SANDBOX:lA,ICE_CANDIDATE_EMITTER:dA,TEST_WS_EVENT_MANAGER:IA}=Bt.ENABLED?await De().then(()=>Re):{},on=class{maxOffers=30;offers=[];orderingBy="neighborsCount";get size(){return this.offers.length}updateOrderingBy(t=!1){this.orderingBy=t?"overlap":"neighborsCount"}removeOlderThan(t=1e3){this.offers=this.offers.filter(e=>e.timestamp+t>=et.time)}get bestOfferInfo(){let{senderId:t,overlap:e,neighborsCount:r,data:s,timestamp:A}=this.offers.shift()||{};return{senderId:t,data:s,timestamp:A,value:this.orderingBy==="overlap"?e:r}}pushSortTrim(t,e={min:.2,max:.8}){let{min:r,max:s}=e;Math.random()<Math.min(r,this.offers.size/this.maxOffers*s)||(this.offers.push(t),this.offers.length!==1&&(this.offers.sort((A,a)=>this.orderingBy==="overlap"?A.overlap-a.overlap:a.neighborsCount-A.neighborsCount),this.size>this.maxOffers&&this.offers.pop()))}},Me=class{id;cryptoCodex;gossip;messager;peerStore;bootstraps;offersQueue=new on;bootstrapsConnectionState=new Map;services;NEIGHBORS_TARGET;HALF_TARGET;TWICE_TARGET;setNeighborsTarget(t=ot.TARGET_NEIGHBORS_COUNT){this.NEIGHBORS_TARGET=t,this.HALF_TARGET=Math.ceil(this.NEIGHBORS_TARGET/2),this.TWICE_TARGET=this.NEIGHBORS_TARGET*2}automation={incomingOffer:!0,incomingAnswer:!0,spreadOffers:!0,connectBootstraps:!0};phase=0;nextBootstrapIndex=0;maxBonus=ct.CONNECTION_UPGRADE_TIMEOUT*.2;get isPublicNode(){return!!this.services?.publicUrl}constructor(t,e,r,s,A,a){this.setNeighborsTarget(ot.TARGET_NEIGHBORS_COUNT),this.id=t,this.cryptoCodex=e,this.gossip=r,this.messager=s,this.peerStore=A;for(let g of a)this.bootstrapsConnectionState.set(g,!1);this.bootstraps=[...a].sort(()=>Math.random()-.5),this.nextBootstrapIndex=Math.random()*this.bootstraps.length|0}tick(){let{neighborsCount:t,nonPublicNeighborsCount:e,isEnough:r,isTooMany:s,isHalfReached:A}=this.#e,a=e>=this.NEIGHBORS_TARGET/3?1:lt.MAX_SDP_OFFERS;if(this.peerStore.offerManager.offersToCreate=r?0:a,this.isPublicNode){this.services.freePublicNodeByKickingPeers();return}if(s)return Math.random()>.05?this.#o():null;r?Math.random()>.05&&this.#A():this.#A(),this.phase=this.phase?0:1,this.phase===0&&this.tryConnectNextBootstrap(t,e),this.phase===1&&this.#s(e,A)}handleIncomingSignal(t,e,r){if(this.isPublicNode||!t||this.peerStore.isKicked(t)||e.signal?.type!=="offer"&&e.signal?.type!=="answer")return;let{signal:s,offerHash:A}=e||{},{connected:a,nonPublicNeighborsCount:g,isTooMany:E,isHalfReached:o}=this.#e;if(E||a[t])return;if(s.type==="answer"){if(!this.automation.incomingAnswer||this.peerStore.addConnectingPeer(t,s,A)!==!0)return;let p=Math.abs(g-this.#t(t).nonPublicCount),y=this.maxBonus/this.NEIGHBORS_TARGET,m=Math.round(Math.min(this.maxBonus,p*y));return this.peerStore.assignSignal(t,s,A,et.time+m)}if(!this.automation.incomingOffer||g>this.TWICE_TARGET)return;let{overlap:f,nonPublicCount:I}=this.#t(t);if(I>this.TWICE_TARGET)return;let u={senderId:t,data:e,overlap:f,neighborsCount:I,timestamp:et.time};this.offersQueue.updateOrderingBy(o),this.offersQueue.pushSortTrim(u)}tryConnectNextBootstrap(t=0,e=0){if(!this.automation.connectBootstraps||this.bootstraps.length===0)return;let r=t-e,s=0;for(let a in this.peerStore.connecting)s++;if(this.NEIGHBORS_TARGET||t){if(r>=this.HALF_TARGET)return;if(t>=this.NEIGHBORS_TARGET)return;if(s+e>this.TWICE_TARGET)return}let A=this.bootstraps[this.nextBootstrapIndex++%this.bootstraps.length];this.bootstrapsConnectionState.get(A)||this.#i(A)}get#e(){return{connected:this.peerStore.connected,neighborsCount:this.peerStore.neighborsList.length,nonPublicNeighborsCount:this.peerStore.standardNeighborsList.length,isEnough:this.peerStore.standardNeighborsList.length>=this.NEIGHBORS_TARGET,isTooMany:this.peerStore.standardNeighborsList.length>this.NEIGHBORS_TARGET,isHalfReached:this.peerStore.standardNeighborsList.length>=this.HALF_TARGET}}#t(t="toto"){let e=this.peerStore.known[t]?.neighbors||{},r={overlap:0,nonPublicCount:0,p1nCount:this.peerStore.getUpdatedPeerConnectionsCount(t)};for(let s in e)this.cryptoCodex.isPublicNode(s)||r.nonPublicCount++;for(let s of this.peerStore.standardNeighborsList)e[s]&&r.overlap++;return r}#n(t=[]){return t.map(e=>({id:e,...this.#t(e)}))}#r(t){let e=typeof window<"u",s=e&&window.location.protocol==="https:"?"wss://":"ws://",A=t.endsWith("/ws"),a=e&&!A?window.location.host:t;return t.startsWith("ws")?t:`${s}${a}`}#i(t="localhost:8080"){let e=null,r=new lt.WS_CLIENT(this.#r(t));r.binaryType="arraybuffer",r.onerror=s=>console.error("WebSocket error:",s.stack),r.onopen=()=>{this.bootstrapsConnectionState.set(t,!0),r.onclose=()=>{this.bootstrapsConnectionState.set(t,!1);for(let s of this.peerStore.callbacks.disconnect)s(e,"out")},r.onmessage=async s=>{if(e)for(let A of this.peerStore.callbacks.data)A(e,s.data);else{let A=new Uint8Array(s.data);if(A[0]>127)return;let a=this.cryptoCodex.readUnicastMessage(A);if(!a)return;let{route:g,type:E,neighborsList:o}=a;if(E!=="handshake"||g.length!==2)return;let{signatureStart:f,pubkey:I,signature:u}=a,p=A.subarray(0,f);if(!await this.cryptoCodex.verifySignature(I,p,u))return;e=g[0],this.peerStore.digestPeerNeighbors(e,o),this.peerStore.connecting[e]?.in?.close(),this.peerStore.connecting[e]||(this.peerStore.connecting[e]={}),this.peerStore.connecting[e].out=new Vt(e,r,"out",!0);for(let y of this.peerStore.callbacks.connect)y(e,"out")}},r.send(this.cryptoCodex.createUnicastMessage("handshake",null,[this.id,this.id],this.peerStore.neighborsList))}}#s(t=0,e=!1){if(!this.automation.spreadOffers||!this.peerStore.neighborsList.length)return;let s=Object.keys(this.peerStore.connecting).length+t,{offerHash:A,readyOffer:a}=this.peerStore.offerManager.bestReadyOffer(0,!0);if(!A||!a)return;if(!e&&s<=this.TWICE_TARGET){this.gossip.broadcastToAll({signal:a.signal,offerHash:A},"signal_offer"),a.sentCounter++;return}let g=null;for(let y of this.#n(this.peerStore.standardNeighborsList)){let m=y[e?"overlap":"nonPublicCount"];g===null&&(g=m),e&&m<g&&(g=m),!e&&m<=g&&(g=m)}let E=100,o=1e3,f=this.peerStore.knownCount,I=Math.max(Math.min(o/f,f/o),.127),u=[];for(let y in this.peerStore.known){if(Math.random()>I)continue;if(--o<=0)break;if(y===this.id||this.cryptoCodex.isPublicNode(y)||this.peerStore.isKicked(y))continue;if(this.peerStore.connected[y]||this.peerStore.connecting[y])continue;let{overlap:m,nonPublicCount:v}=this.#t(y);if(!(v>this.NEIGHBORS_TARGET)&&(g===null&&(g=e?m:v),!(e&&m>g)&&!(!e&&v<g)&&(u.push(y),--E<=0)))break}if(!u.length)return;let p=new Map;for(let y=0;y<Math.min(u.length,100);y++){let m=u[Math.floor(Math.random()*u.length)];if(!p.has(m)&&(p.size===0&&a.sentCounter++,p.set(m,!0),this.messager.sendUnicast(m,{signal:a.signal,offerHash:A},"signal_offer",1),p.size>=12))break}}#A(){let t=null,e=Object.keys(this.peerStore.connecting).length;this.offersQueue.updateOrderingBy(this.#e.isHalfReached),this.offersQueue.removeOlderThan(lt.SDP_OFFER_EXPIRATION/2);for(let r=0;r<this.offersQueue.size;r++){let{senderId:s,data:A,timestamp:a,value:g}=this.offersQueue.bestOfferInfo;if(!s||!A||!a)break;if(!(this.peerStore.connected[s]||this.peerStore.isKicked(s))&&!this.peerStore.connecting[s]?.in){if(t=t===null?g:t,t!==g)break;this.peerStore.addConnectingPeer(s,A.signal,A.offerHash)===!0&&(this.peerStore.assignSignal(s,A.signal,A.offerHash,a),e++)}}}#o(){let e=this.#n(this.peerStore.standardNeighborsList).sort((r,s)=>s.overlap-r.overlap||s.nonPublicCount-r.nonPublicCount);this.peerStore.kickPeer(e[0].id,6e4,"improveTopology")}};await _t();var kt=class c{IS_BROWSER=typeof window<"u";FROMBASE64_AVAILABLE=typeof Uint8Array.fromBase64=="function";textEncoder=new TextEncoder;textDecoder=new TextDecoder;buffer2=new ArrayBuffer(2);view2=new DataView(this.buffer2);buffer4=new ArrayBuffer(4);view4=new DataView(this.buffer4);buffer8=new ArrayBuffer(8);view8=new DataView(this.buffer8);hexMap={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,A:10,B:11,C:12,D:13,E:14,F:15,a:10,b:11,c:12,d:13,e:14,f:15};numberTo2Bytes(t){return this.view2.setUint16(0,t,!0),new Uint8Array(this.buffer2)}numberTo4Bytes(t){return this.view4.setUint32(0,t,!0),new Uint8Array(this.buffer4)}numberTo8Bytes(t){return this.view8.setBigUint64(0,BigInt(t),!0),new Uint8Array(this.buffer8)}stringToBytes(t="toto"){return this.textEncoder.encode(t)}hexToBytes(t){let e=t.length/2,r=new Uint8Array(e);for(let s=0,A=0;s<e;++s,A+=2)r[s]=(this.hexMap[t[A]]<<4)+this.hexMap[t[A+1]];return r}base64toBytes(t){if(!this.IS_BROWSER)return new Uint8Array(Buffer.from(t,"base64"));if(this.FROMBASE64_AVAILABLE)return Uint8Array.fromBase64(t);let e=atob(t),r=new Uint8Array(e.length);for(let s=0;s<e.length;s++)r[s]=e.charCodeAt(s);return r}bytes2ToNumber(t){for(let e=0;e<2;e++)this.view2.setUint8(e,t[e]);return this.view2.getUint16(0,!0)}bytes4ToNumber(t){for(let e=0;e<4;e++)this.view4.setUint8(e,t[e]);return this.view4.getUint32(0,!0)}bytes8ToNumber(t){for(let e=0;e<8;e++)this.view8.setUint8(e,t[e]);return Number(this.view8.getBigUint64(0,!0))}bytesToString(t){return this.textDecoder.decode(t)}static bytesToHex(t,e=0){let r="";for(let s of t)r+=s<16?`0${s.toString(16)}`:s.toString(16);return e>0&&(r=r.padStart(e,"0")),r}bytesToHex(t,e=0){return c.bytesToHex(t,e)}static hexToBits(t="ffffff",e="string"){let r=[];if(e==="arrayOfNumbers")for(let s=0;s<t.length;s++)r.push(...parseInt(t[s],16).toString(2).padStart(4,"0").split("").map(A=>parseInt(A,10)));else for(let s=0;s<t.length;s++)r.push(parseInt(t[s],16).toString(2).padStart(4,"0"));return e==="string"?r.join(""):r}static bytesToBits(t,e="string"){return this.hexToBits(this.bytesToHex(t),e)}static ipToInt(t="192.168.0.1"){return t.split(".").reduce((e,r)=>(e<<8)+parseInt(r,10),0)}};var Ve=typeof window<"u",[Zr]=await Promise.all([Ve?Promise.resolve().then(()=>(wr(),br)):Promise.resolve().then(()=>(Xr(),jr))]),ge=Zr.default||Zr;var he=class{converter=new kt;argon2;hash=async(t,e,r=2**16,s=1,A=1,a=2,g=32)=>{let E=this.#e(t,e,s,r,A,a,g),o=await this.getArgon2Lib(),f=Ve?await o.hash(E):await o.hash(t,E);if(!f)return!1;let I=f.encoded||f,u=this.#t(I);return u||!1};async getArgon2Lib(){if(this.argon2)return this.argon2;if(!Ve)try{let e=await import("argon2");this.argon2=e}catch{throw new Error("Please install argon2 package: npm install argon2")}if(this.argon2)return this.argon2;try{if(argon2)return console.log("Argon2 loaded as a global variable"),this.argon2=argon2,this.argon2}catch{}if(this.argon2)return this.argon2;console.log("trying import argon2 ES6 and inject in window");let t=await Promise.resolve().then(()=>($r(),Vr));return window.argon2=t.default,this.argon2=t.default,this.argon2}#e(t="averylongpassword123456",e="saltsaltsaltsaltsalt",r=1,s=2**10,A=1,a=2,g=32){let E=e.padEnd(20,"0").substring(0,16);return{type:a,pass:t,parallelism:A,time:r,timeCost:r,mem:s,memoryCost:s,hashLen:g,hashLength:g,salt:Ve?E:Buffer.from(E)}}#t(t="$argon2id$v=19$m=1048576,t=1,p=1$c2FsdHNhbHRzYWx0c2FsdHNhbHQ$UamPN/XTTX4quPewQNw4/s3y1JJeS22cRroh5l7OTMM"){let e=t.split("$").pop(),r=this.converter.base64toBytes(e),s=this.converter.bytesToHex(r),A=kt.hexToBits(s,"string");return A?{encoded:t,hash:r,hex:s,bitsString:A}:!1}};var fe=class c{argon2=new he;converter=new kt;AVOID_CRYPTO=!1;verbose=ct.DEFAULT_VERBOSE;id;publicKey;privateKey;constructor(t,e=ct.DEFAULT_VERBOSE){if(this.verbose=e,!t)return;this.AVOID_CRYPTO=!0,this.id=t.padEnd(V.ID_LENGTH," ").slice(0,V.ID_LENGTH),this.privateKey=new Uint8Array(32).fill(0),this.publicKey=new Uint8Array(32).fill(0);let r=new TextEncoder().encode(this.id);for(let s=0;s<V.ID_LENGTH;s++)this.publicKey[s]=r[s]}static async createCryptoCodex(t,e){let r=new c(void 0,this.verbose);return await r.generate(t,e),r}static isPublicNode(t){return(V.ARE_IDS_HEX?kt.hexToBits(t[0]):t).startsWith(V.PUBLIC_PREFIX)}get idLength(){return V.ARE_IDS_HEX?V.ID_LENGTH/2:V.ID_LENGTH}isPublicNode(t){return c.isPublicNode(t)}async generate(t,e){if(!this.nodeId&&(await this.#t(e,t),!this.id))throw new Error("Failed to generate identity")}async pubkeyDifficultyCheck(t){if(this.AVOID_CRYPTO||!V.DIFFICULTY)return!0;let{bitsString:e}=await this.argon2.hash(t,"HiveP2P",V.ARGON2_MEM)||{};if(e&&e.startsWith("0".repeat(V.DIFFICULTY)))return!0}#e(t){return V.ARE_IDS_HEX?this.converter.bytesToHex(t.slice(0,this.idLength),V.ID_LENGTH):this.converter.bytesToString(t.slice(0,V.ID_LENGTH))}async#t(t,e){let r=2**V.DIFFICULTY*100;for(let s=0;s<r;s++){let{secretKey:A,publicKey:a}=ge.keygen(t),g=this.#e(a);if(!(e&&!this.isPublicNode(g))&&!(!e&&this.isPublicNode(g))&&await this.pubkeyDifficultyCheck(a)){this.id=g,this.privateKey=A,this.publicKey=a,this.verbose>2&&console.log(`%cNode generated id: ${this.id} (isPublic: ${e}, difficulty: ${V.DIFFICULTY}) after ${((s+1)/2).toFixed(1)} iterations`,it.CRYPTO_CODEX);return}}this.verbose>0&&console.log(`%cFAILED to generate id after ${r} iterations. Try lowering the difficulty.`,it.CRYPTO_CODEX)}signBufferViewAndAppendSignature(t,e,r=t.length-V.SIGNATURE_LENGTH){if(this.AVOID_CRYPTO)return;let s=t.subarray(0,r);t.set(ge.sign(s,e),r)}createGossipMessage(t,e,r=3,s=[],A=et.time){let a=dt.MARKERS_BYTES[t];if(a===void 0)throw new Error(`Failed to create gossip message: unknown topic '${t}'.`);let g=this.#n(s),{dataCode:E,dataBytes:o}=this.#r(e),f=47+g.length+o.length+V.SIGNATURE_LENGTH+1,I=new ArrayBuffer(f),u=new Uint8Array(I);return this.#i(u,a,E,s.length,A,o,this.publicKey),u.set(g,47),u.set(o,47+g.length),u.set([Math.min(255,r)],f-1),this.signBufferViewAndAppendSignature(u,this.privateKey,f-V.SIGNATURE_LENGTH-1),u}decrementGossipHops(t){let e=new Uint8Array(t),r=t[t.length-1];return e[t.length-1]=Math.max(0,r-1),e}createUnicastMessage(t,e,r,s=[],A=et.time){let a=ht.MARKERS_BYTES[t];if(a===void 0)throw new Error(`Failed to create unicast message: unknown type '${t}'.`);if(r.length<2)throw new Error("Failed to create unicast message: route must have at least 2 nodes (next hop and target).");if(r.length>ht.MAX_HOPS)throw new Error(`Failed to create unicast message: route exceeds max hops (${ht.MAX_HOPS}).`);let g=this.#n(s),{dataCode:E,dataBytes:o}=this.#r(e),f=this.#n(r),I=47+g.length+1+f.length+o.length+V.SIGNATURE_LENGTH,u=new ArrayBuffer(I),p=new Uint8Array(u);this.#i(p,a,E,s.length,A,o,this.publicKey);let y=g.length+o.length;return p.set(g,47),p.set(o,47+g.length),p.set([r.length],47+y),p.set(f,48+y),this.signBufferViewAndAppendSignature(p,this.privateKey,I-V.SIGNATURE_LENGTH),p}createReroutedUnicastMessage(t,e){if(e.length<2)throw new Error("Failed to create rerouted unicast message: route must have at least 2 nodes (next hop and target).");if(e.length>ht.MAX_HOPS)throw new Error(`Failed to create rerouted unicast message: route exceeds max hops (${ht.MAX_HOPS}).`);let r=e.map(g=>this.converter.stringToBytes(g)),s=t.length+32+V.ID_LENGTH*r.length+V.SIGNATURE_LENGTH,A=new ArrayBuffer(s),a=new Uint8Array(A);a.set(t,0),a.set(this.publicKey,t.length);for(let g=0;g<r.length;g++)a.set(r[g],t.length+32+g*V.ID_LENGTH);return this.signBufferViewAndAppendSignature(a,this.privateKey,s-V.SIGNATURE_LENGTH),a}#n(t){return V.ARE_IDS_HEX?this.converter.hexToBytes(t.join(""),V.ID_LENGTH*t.length):this.converter.stringToBytes(t.join(""))}#r(t){return typeof t=="string"?{dataCode:1,dataBytes:this.converter.stringToBytes(t)}:t instanceof Uint8Array?{dataCode:2,dataBytes:t}:{dataCode:3,dataBytes:this.converter.stringToBytes(JSON.stringify(t))}}#i(t,e,r,s,A,a,g){let E=this.converter.numberTo8Bytes(A),o=this.converter.numberTo4Bytes(a.length);t.set([e],0),t.set([r],1),t.set([s],2),t.set(E,3),t.set(o,11),t.set(g,15)}async verifySignature(t,e,r){return this.AVOID_CRYPTO?!0:ge.verifyAsync(r,e,t)}readBufferHeader(t,e=!0){let r=t[0],s=t[1],A=t[2],a=t.slice(3,11),g=t.slice(11,15),E=t.slice(15,47),o=e?this.#e(E):null,f=A*this.idLength,I=this.converter.bytes8ToNumber(a),u=this.converter.bytes4ToNumber(g);return{marker:r,dataCode:s,neighLength:f,timestamp:I,dataLength:u,pubkey:E,associatedId:o}}readGossipMessage(t){this.verbose>3&&console.log(`%creadGossipMessage ${t.byteLength} bytes`,it.CRYPTO_CODEX),this.verbose>4&&console.log(`%c${t}`,it.CRYPTO_CODEX);try{let{marker:e,dataCode:r,neighLength:s,timestamp:A,dataLength:a,pubkey:g,associatedId:E}=this.readBufferHeader(t),o=dt.MARKERS_BYTES[e];if(o===void 0)throw new Error(`Failed to deserialize gossip message: unknown marker byte ${d[0]}.`);let f=s+a,I=this.#s(t.slice(47,47+s)),u=this.#A(r,t.slice(47+s,47+f)),p=47+f,y=t.slice(p,p+V.SIGNATURE_LENGTH),m=t[t.length-1],v=p+V.SIGNATURE_LENGTH+1,l=E;return new ke(o,A,I,m,l,g,u,y,p,v)}catch(e){this.verbose>1&&console.warn(`Error deserializing ${topic||"unknown"} gossip message:`,e.stack)}return null}readUnicastMessage(t){this.verbose>3&&console.log(`%creadUnicastMessage ${t.byteLength} bytes`,it.CRYPTO_CODEX),this.verbose>4&&console.log(`%c${t}`,it.CRYPTO_CODEX);try{let{marker:e,dataCode:r,neighLength:s,timestamp:A,dataLength:a,pubkey:g}=this.readBufferHeader(t,!1),E=ht.MARKERS_BYTES[e];if(E===void 0)throw new Error(`Failed to deserialize unicast message: unknown marker byte ${d[0]}.`);let o=s+a,f=this.#s(t.slice(47,47+s)),I=this.#A(r,t.slice(47+s,47+o)),p=t[47+o]*this.idLength,y=47+o+1+p,m=t.slice(47+o+1,y),v=this.#s(m),l=y+V.SIGNATURE_LENGTH,C=t.slice(y,l);if(!(t.length>l))return new de(E,A,f,v,g,I,C,y,l);let S=t.slice(l,l+32),b=this.#s(t.slice(l+32,t.length-V.SIGNATURE_LENGTH)),_=t.slice(t.length-V.SIGNATURE_LENGTH);return new Te(E,A,f,v,g,I,C,S,b,_,t.length)}catch(e){this.verbose>1&&console.warn(`Error deserializing ${type||"unknown"} unicast message:`,e.stack)}return null}#s(t){let e=[],r=this.idLength;if(t.length%r!==0)throw new Error("Failed to parse ids: invalid serialized length.");for(let s=0;s<t.length/r;s++){let A=t.slice(s*r,(s+1)*r);V.ARE_IDS_HEX?e.push(this.converter.bytesToHex(A,V.ID_LENGTH)):e.push(this.converter.bytesToString(A))}return e}#A(t,e){if(t===1)return this.converter.bytesToString(e);if(t===2)return e;if(t===3)return JSON.parse(this.converter.bytesToString(e));throw new Error(`Failed to parse data: unknown data code '${t}'.`)}};await _t();var _s=ct.IS_BROWSER?null:await import("dgram"),$e=class{id;verbose;maxKick;peerStore;cryptoCodex;publicUrl;constructor(t,e,r=3,s=1){this.id=t.id,this.verbose=s,this.maxKick=r,this.peerStore=e,this.cryptoCodex=t}start(t="localhost",e=Ft.PORT){this.publicUrl=`ws://${t}:${e}`,this.#e(t,e),Bt.USE_TEST_TRANSPORTS||this.#t(t,e+1)}freePublicNodeByKickingPeers(){let t=Math.min(this.maxKick,this.peerStore.neighborsList.length-ot.TARGET_NEIGHBORS_COUNT);if(t<=0)return;let e=0,r=Ft.AUTO_KICK_DELAY;for(let s in this.peerStore.connected){let A=this.peerStore.connected[s],a=this.peerStore.getUpdatedPeerConnectionsCount(s,!1);if(a>ot.TARGET_NEIGHBORS_COUNT){if(this.peerStore.kickPeer(s,Ft.AUTO_KICK_DURATION,"freePublicNode"),this.peerStore.neighborsList.length<=ot.TARGET_NEIGHBORS_COUNT)break;continue}if(!(A.getConnectionDuration()<(a>2?r:r*2))&&(this.peerStore.kickPeer(s,Ft.AUTO_KICK_DURATION,"freePublicNode"),++e>=t))break}}#e(t="localhost",e=Ft.PORT){this.wsServer=new lt.WS_SERVER({port:e,host:t}),this.wsServer.on("error",r=>console.error(`WebSocket error on Node #${this.id}:`,r)),this.wsServer.on("connection",r=>{r.on("close",()=>{if(s)for(let A of this.peerStore.callbacks.disconnect)A(s,"in")}),r.on("error",A=>console.error(`WebSocket error on Node #${this.id} with peer ${s}:`,A.stack));let s;r.on("message",async A=>{if(s)for(let a of this.peerStore.callbacks.data)a(s,A);else{let a=new Uint8Array(A);if(a[0]>127)return;let g=this.cryptoCodex.readUnicastMessage(a);if(!g)return;let{route:E,type:o,neighborsList:f}=g;if(o!=="handshake"||E.length!==2)return;let{signatureStart:I,pubkey:u,signature:p}=g,y=a.subarray(0,I);if(!await this.cryptoCodex.verifySignature(u,y,p))return;s=E[0],this.peerStore.digestPeerNeighbors(s,f),this.peerStore.connecting[s]?.out?.close(),this.peerStore.connecting[s]||(this.peerStore.connecting[s]={}),this.peerStore.connecting[s].in=new Vt(s,r,"in",!0);for(let m of this.peerStore.callbacks.connect)m(s,"in")}}),r.send(this.cryptoCodex.createUnicastMessage("handshake",null,[this.id,this.id],this.peerStore.neighborsList))})}#t(t="localhost",e=Ft.PORT+1){this.stunServer=_s.createSocket("udp4"),this.stunServer.on("message",(r,s)=>{this.verbose>2&&console.log(`%cSTUN message from ${s.address}:${s.port} - ${r.toString("hex")}`,it.SERVICE),this.#n(r)&&this.stunServer.send(this.#r(r,s),s.port,s.address)}),this.stunServer.bind(e,t),this.verbose>2&&console.log(`%cSTUN server listening on ${t}:${e}`,it.SERVICE)}#n(t){if(t.length<20)return!1;let e=t.readUInt16BE(0),r=t.readUInt32BE(4);return e===1&&r===554869826}#r(t,e){let r=t.subarray(8,20),s=Buffer.allocUnsafe(32);return s.writeUInt16BE(257,0),s.writeUInt16BE(12,2),s.writeUInt32BE(554869826,4),r.copy(s,8),s.writeUInt16BE(1,20),s.writeUInt16BE(8,22),s.writeUInt16BE(1,24),s.writeUInt16BE(e.port,26),s.writeUInt32BE(kt.ipToInt(e.address),28),this.verbose>2&&console.log(`%cSTUN Response: client will discover IP ${e.address}:${e.port}`,"color: green;"),s}static deriveSTUNServers(t){let e=[];for(let r of t){if(!r.includes(":")||r.endsWith("/ws")||r.endsWith("/wss"))continue;let s=r.replace("ws://","stun:");s.replace("wss://","stun:"),s.includes("stun:")&&e.push({urls:s})}return lt.CENTRALIZED_STUN_SERVERS&&(e.push({urls:"stun:stun.l.google.com:5349"}),e.push({urls:"stun:stun.l.google.com:19302"}),e.push({urls:"stun:stun1.l.google.com:3478"}),e.push({urls:"stun:stun1.l.google.com:5349"})),e}};async function zr(c={}){let t=c.verbose!==void 0?c.verbose:ct.DEFAULT_VERBOSE,e=c.cryptoCodex||new fe(void 0,t),r=et.sync(t);e.publicKey||await e.generate(!1),await r;let s=new Ce(e,c.bootstraps||[],t);return c.autoStart!==!1&&await s.start(),s}var Ce=class{started=!1;id;cryptoCodex;verbose;offerManager;arbiter;peerStore;messager;gossip;topologist;services;constructor(t,e=[],r=ct.DEFAULT_VERBOSE){this.verbose=r,this.topologist?.services&&(this.topologist.services.verbose=r),this.cryptoCodex=t,this.id=this.cryptoCodex.id;let s=$e.deriveSTUNServers(e||[]);this.offerManager=new be(this.id,s,r),this.arbiter=new Qe(this.id,t,r),this.peerStore=new Ne(this.id,this.cryptoCodex,this.offerManager,this.arbiter,r),this.messager=new Fe(this.id,this.cryptoCodex,this.arbiter,this.peerStore,r),this.gossip=new xe(this.id,this.cryptoCodex,this.arbiter,this.peerStore,r),this.topologist=new Me(this.id,this.cryptoCodex,this.gossip,this.messager,this.peerStore,e||[]);let{arbiter:A,peerStore:a,messager:g,gossip:E,topologist:o}=this;a.on("signal",(f,I)=>this.sendMessage(f,I,"signal_answer")),a.on("connect",(f,I)=>this.#e(f,I)),a.on("disconnect",(f,I)=>this.#t(f,I)),a.on("data",(f,I)=>this.#n(f,I)),g.on("signal_answer",(f,I)=>o.handleIncomingSignal(f,I)),g.on("signal_offer",(f,I)=>o.handleIncomingSignal(f,I)),E.on("signal_offer",(f,I,u)=>o.handleIncomingSignal(f,I,u)),r>2&&console.log(`Node initialized: ${this.id}`)}#e=(t,e)=>{let r=this.cryptoCodex.isPublicNode(t);if(this.publicUrl)return;this.verbose>(this.publicUrl||r?3:2)&&console.log(`(${this.id}) ${e==="in"?"Incoming":"Outgoing"} connection established with peer ${t}`),(!r&&!this.cryptoCodex.isPublicNode(this.id)||e==="in")&&this.sendMessage(t,this.id,"handshake");let A=this.peerStore.neighborsList.length>=ot.TARGET_NEIGHBORS_COUNT+this.halfTarget,a=()=>{ot.ON_CONNECT_DISPATCH.OVER_NEIGHBORED&&A&&this.broadcast([],"over_neighbored"),ot.ON_CONNECT_DISPATCH.SHARE_HISTORY&&this.peerStore.getUpdatedPeerConnectionsCount(t)<=1&&this.gossip.sendGossipHistoryToPeer(t)};ot.ON_CONNECT_DISPATCH.DELAY?setTimeout(a,ot.ON_CONNECT_DISPATCH.DELAY):a()};#t=(t,e)=>{if(!this.peerStore.neighborsList.length){for(let A in this.peerStore.connecting)this.peerStore.kickPeer(A,0,"no_neighbors_left");for(let A in this.offerManager.offers)this.offerManager.offers[A].timestamp=0}let r=this.cryptoCodex.isPublicNode(t);if(this.peerStore.connected[t])return;this.verbose>(this.publicUrl||r?3:2)&&console.log(`(${this.id}) ${e==="in"?"Incoming":"Outgoing"} connection closed with peer ${t}`)};#n=(t,e)=>{let r=new Uint8Array(e);r[0]>127?this.gossip.handleGossipMessage(t,r):this.messager.handleDirectMessage(t,r)};get publicUrl(){return this.services?.publicUrl}get time(){return et.time}async start(){return await et.sync(this.verbose),this.started=!0,Bt.AVOID_INTERVALS||(this.arbiterInterval=setInterval(()=>this.arbiter.tick(),1e3),this.peerStoreInterval=setInterval(()=>{this.peerStore.cleanupExpired(),this.peerStore.offerManager.tick()},2500),this.publicUrl)||(this.enhancerInterval=setInterval(()=>this.topologist.tick(),ot.LOOP_DELAY),this.topologist.tryConnectNextBootstrap()),!0}broadcast(t,e,r){this.gossip.broadcastToAll(t,e,r)}sendMessage(t,e,r,s=1){this.messager.sendUnicast(t,e,r,s)}async tryConnectToPeer(t="toto",e=10){if(!this.peerStore.connected[t])do{let{offerHash:r,readyOffer:s}=this.peerStore.offerManager.bestReadyOffer(100,!1);if(!r||!s)await new Promise(A=>setTimeout(A,1e3));else{this.messager.sendUnicast(t,{signal:s.signal,offerHash:r},"signal_offer",1);return}}while(e-- >0)}destroy(){this.enhancerInterval&&clearInterval(this.enhancerInterval),this.enhancerInterval=null,this.peerStoreInterval&&clearInterval(this.peerStoreInterval),this.peerStoreInterval=null,this.peerStore.destroy(),this.wsServer&&this.wsServer.close(),this.stunServer&&this.stunServer.close()}onPeerConnect(t){this.peerStore.on("connect",t)}onPeerDisconnect(t){this.peerStore.on("disconnect",t)}onMessageData(t){this.messager.on("message",t)}onGossipData(t){this.gossip.on("gossip",t)}onSignalOffer(t){this.messager.on("signal_offer",t),this.gossip.on("signal_offer",t)}onSignalAnswer(t){this.messager.on("signal_answer",t)}kickPeer(t,e="kicked_by_node"){this.peerStore.kickPeer(t,0,e)}banPeer(t,e=6e4,r="banished_by_node"){this.arbiter.trustBalances[t]=0,this.arbiter.adjustTrust(t,-e,r)}};await _t();function ti(c,t){for(let e in t)t[e]&&typeof t[e]=="object"&&!Array.isArray(t[e])?(c[e]=c[e]||{},ti(c[e],t[e])):c[e]=t[e]}var ei={CLOCK:et,CONFIG:Jn,mergeConfig:ti,Node:Ce,createNode:zr,CryptoCodex:fe,ed25519:ge,Argon2Unified:he};var Qo=ei;typeof window<"u"&&(window.HiveP2P=ei);export{he as Argon2Unified,et as CLOCK,Jn as CONFIG,fe as CryptoCodex,Ce as Node,zr as createNode,Qo as default,ge as ed25519,ti as mergeConfig};
4
4
  /*!
5
5
  * The buffer module from node.js, for the browser.
6
6
  *
@@ -23,7 +23,4 @@ Use Chrome, Firefox or Internet Explorer 11`)}}).call(this)}).call(this,r("_proc
23
23
 
24
24
  @noble/ed25519/index.js:
25
25
  (*! noble-ed25519 - MIT License (c) 2019 Paul Miller (paulmillr.com) *)
26
-
27
- @noble/hashes/utils.js:
28
- (*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
29
26
  */