genosdb 0.20.0 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/gdb.min.js +1 -1
- package/dist/gdb.min.js.gz +0 -0
- package/dist/genosrtc.min.js +1 -1
- package/dist/genosrtc.min.js.gz +0 -0
- package/dist/genossrv.min.js +256 -0
- package/dist/genossrv.min.js.gz +0 -0
- package/dist/index.js +1 -1
- package/dist/index.js.gz +0 -0
- package/package.json +3 -2
- package/dist/genosrtc-cells.min.js +0 -2
- package/dist/genosrtc-cells.min.js.gz +0 -0
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var log=(()=>{const n=()=>{};return new Proxy(console,{get:(c,m)=>globalThis.__gdbDebug?c[m].bind(c):n})})();
|
|
3
|
+
var E_=Object.create;var{getPrototypeOf:$_,defineProperty:UA,getOwnPropertyNames:F_}=Object;var S_=Object.prototype.hasOwnProperty;function x_(W){return this[W]}var k_,__,_1=(W,G,X)=>{var Y=W!=null&&typeof W==="object";if(Y){var Z=G?k_??=new WeakMap:__??=new WeakMap,V=Z.get(W);if(V)return V}X=W!=null?E_($_(W)):{};let Q=G||!W||!W.__esModule?UA(X,"default",{value:W,enumerable:!0}):X;for(let J of F_(W))if(!S_.call(Q,J))UA(Q,J,{get:x_.bind(W,J),enumerable:!0});if(Y)Z.set(W,Q);return Q};var Z1=(W,G)=>()=>(G||W((G={exports:{}}).exports,G),G.exports);var y_=(W)=>W;function v_(W,G){this[W]=y_.bind(null,G)}var qA=(W,G)=>{for(var X in G)UA(W,X,{get:G[X],enumerable:!0,configurable:!0,set:v_.bind(G,X)})};var $8=import.meta.require;var rM=Z1(($e,iM)=>{var NX=1000,HX=NX*60,AX=HX*60,EW=AX*24,Bh=EW*7,Eh=EW*365.25;iM.exports=function(W,G){G=G||{};var X=typeof W;if(X==="string"&&W.length>0)return $h(W);else if(X==="number"&&isFinite(W))return G.long?Sh(W):Fh(W);throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(W))};function $h(W){if(W=String(W),W.length>100)return;var G=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(W);if(!G)return;var X=parseFloat(G[1]),Y=(G[2]||"ms").toLowerCase();switch(Y){case"years":case"year":case"yrs":case"yr":case"y":return X*Eh;case"weeks":case"week":case"w":return X*Bh;case"days":case"day":case"d":return X*EW;case"hours":case"hour":case"hrs":case"hr":case"h":return X*AX;case"minutes":case"minute":case"mins":case"min":case"m":return X*HX;case"seconds":case"second":case"secs":case"sec":case"s":return X*NX;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return X;default:return}}function Fh(W){var G=Math.abs(W);if(G>=EW)return Math.round(W/EW)+"d";if(G>=AX)return Math.round(W/AX)+"h";if(G>=HX)return Math.round(W/HX)+"m";if(G>=NX)return Math.round(W/NX)+"s";return W+"ms"}function Sh(W){var G=Math.abs(W);if(G>=EW)return RU(W,G,EW,"day");if(G>=AX)return RU(W,G,AX,"hour");if(G>=HX)return RU(W,G,HX,"minute");if(G>=NX)return RU(W,G,NX,"second");return W+" ms"}function RU(W,G,X,Y){var Z=G>=X*1.5;return Math.round(W/X)+" "+Y+(Z?"s":"")}});var Rz=Z1((Fe,aM)=>{function xh(W){X.debug=X,X.default=X,X.coerce=U,X.disable=Q,X.enable=Z,X.enabled=J,X.humanize=rM(),X.destroy=q,Object.keys(W).forEach((N)=>{X[N]=W[N]}),X.names=[],X.skips=[],X.formatters={};function G(N){let A=0;for(let H=0;H<N.length;H++)A=(A<<5)-A+N.charCodeAt(H),A|=0;return X.colors[Math.abs(A)%X.colors.length]}X.selectColor=G;function X(N){let A,H=null,I,w;function C(...D){if(!C.enabled)return;let x=C,h=Number(new Date),p=h-(A||h);if(x.diff=p,x.prev=A,x.curr=h,A=h,D[0]=X.coerce(D[0]),typeof D[0]!=="string")D.unshift("%O");let u=0;D[0]=D[0].replace(/%([a-zA-Z%])/g,(c,l)=>{if(c==="%%")return"%";u++;let G0=X.formatters[l];if(typeof G0==="function"){let m=D[u];c=G0.call(x,m),D.splice(u,1),u--}return c}),X.formatArgs.call(x,D),(x.log||X.log).apply(x,D)}if(C.namespace=N,C.useColors=X.useColors(),C.color=X.selectColor(N),C.extend=Y,C.destroy=X.destroy,Object.defineProperty(C,"enabled",{enumerable:!0,configurable:!1,get:()=>{if(H!==null)return H;if(I!==X.namespaces)I=X.namespaces,w=X.enabled(N);return w},set:(D)=>{H=D}}),typeof X.init==="function")X.init(C);return C}function Y(N,A){let H=X(this.namespace+(typeof A>"u"?":":A)+N);return H.log=this.log,H}function Z(N){X.save(N),X.namespaces=N,X.names=[],X.skips=[];let A=(typeof N==="string"?N:"").trim().replace(" ",",").split(",").filter(Boolean);for(let H of A)if(H[0]==="-")X.skips.push(H.slice(1));else X.names.push(H)}function V(N,A){let H=0,I=0,w=-1,C=0;while(H<N.length)if(I<A.length&&(A[I]===N[H]||A[I]==="*"))if(A[I]==="*")w=I,C=H,I++;else H++,I++;else if(w!==-1)I=w+1,C++,H=C;else return!1;while(I<A.length&&A[I]==="*")I++;return I===A.length}function Q(){let N=[...X.names,...X.skips.map((A)=>"-"+A)].join(",");return X.enable(""),N}function J(N){for(let A of X.skips)if(V(N,A))return!1;for(let A of X.names)if(V(N,A))return!0;return!1}function U(N){if(N instanceof Error)return N.stack||N.message;return N}function q(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return X.enable(X.load()),X}aM.exports=xh});var tM=Z1((sM,BU)=>{sM.formatArgs=_h;sM.save=yh;sM.load=vh;sM.useColors=kh;sM.storage=gh();sM.destroy=(()=>{let W=!1;return()=>{if(!W)W=!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`.")}})();sM.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"];function kh(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let W;return 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&&(W=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(W[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function _h(W){if(W[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+W[0]+(this.useColors?"%c ":" ")+"+"+BU.exports.humanize(this.diff),!this.useColors)return;let G="color: "+this.color;W.splice(1,0,G,"color: inherit");let X=0,Y=0;W[0].replace(/%[a-zA-Z%]/g,(Z)=>{if(Z==="%%")return;if(X++,Z==="%c")Y=X}),W.splice(Y,0,G)}sM.log=console.debug||console.log||(()=>{});function yh(W){try{if(W)sM.storage.setItem("debug",W);else sM.storage.removeItem("debug")}catch(G){}}function vh(){let W;try{W=sM.storage.getItem("debug")}catch(G){}if(!W&&typeof process<"u"&&"env"in process)W=process.env.DEBUG;return W}function gh(){try{return localStorage}catch(W){}}BU.exports=Rz()(sM);var{formatters:uh}=BU.exports;uh.j=function(W){try{return JSON.stringify(W)}catch(G){return"[UnexpectedJSONParseError]: "+G.message}}});var XT=Z1((WT,$U)=>{var dh=$8("tty"),EU=$8("util");WT.init=th;WT.log=rh;WT.formatArgs=nh;WT.save=ah;WT.load=sh;WT.useColors=oh;WT.destroy=EU.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");WT.colors=[6,2,3,4,5,1];try{let W=(()=>{throw new Error("Cannot require module "+"supports-color");})();if(W&&(W.stderr||W).level>=2)WT.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221]}catch(W){}WT.inspectOpts=Object.keys(process.env).filter((W)=>{return/^debug_/i.test(W)}).reduce((W,G)=>{let X=G.substring(6).toLowerCase().replace(/_([a-z])/g,(Z,V)=>{return V.toUpperCase()}),Y=process.env[G];if(/^(yes|on|true|enabled)$/i.test(Y))Y=!0;else if(/^(no|off|false|disabled)$/i.test(Y))Y=!1;else if(Y==="null")Y=null;else Y=Number(Y);return W[X]=Y,W},{});function oh(){return"colors"in WT.inspectOpts?Boolean(WT.inspectOpts.colors):dh.isatty(process.stderr.fd)}function nh(W){let{namespace:G,useColors:X}=this;if(X){let Y=this.color,Z="\x1B[3"+(Y<8?Y:"8;5;"+Y),V=` ${Z};1m${G} \x1B[0m`;W[0]=V+W[0].split(`
|
|
4
|
+
`).join(`
|
|
5
|
+
`+V),W.push(Z+"m+"+$U.exports.humanize(this.diff)+"\x1B[0m")}else W[0]=ih()+G+" "+W[0]}function ih(){if(WT.inspectOpts.hideDate)return"";return new Date().toISOString()+" "}function rh(...W){return process.stderr.write(EU.formatWithOptions(WT.inspectOpts,...W)+`
|
|
6
|
+
`)}function ah(W){if(W)process.env.DEBUG=W;else delete process.env.DEBUG}function sh(){return process.env.DEBUG}function th(W){W.inspectOpts={};let G=Object.keys(WT.inspectOpts);for(let X=0;X<G.length;X++)W.inspectOpts[G[X]]=WT.inspectOpts[G[X]]}$U.exports=Rz()(WT);var{formatters:eM}=$U.exports;eM.o=function(W){return this.inspectOpts.colors=this.useColors,EU.inspect(W,this.inspectOpts).split(`
|
|
7
|
+
`).map((G)=>G.trim()).join(" ")};eM.O=function(W){return this.inspectOpts.colors=this.useColors,EU.inspect(W,this.inspectOpts)}});var YT=Z1((ke,Lz)=>{if(typeof process>"u"||process.type==="renderer"||!1||process.__nwjs)Lz.exports=tM();else Lz.exports=XT()});var FU=Z1((VT)=>{Object.defineProperty(VT,"__esModule",{value:!0});var Qb=$8("net");function Jb(W){switch(Qb.isIP(W)){case 4:return Buffer.from(W.split(".").map((Z)=>parseInt(Z,10)));case 6:let G=W.split(":"),X=Buffer.alloc(16),Y=0;if(G[G.length-1]==="")G[G.length-1]="0";for(let Z=0;Z<G.length;Z++){if(G[Z]===""){if(Z+1<G.length&&G[Z+1]!=="")Y=16-(G.length-Z-1)*2;continue}X.writeUInt16BE(parseInt(G[Z],16),Y),Y+=2}return X;default:return null}}VT.bytesFromIP=Jb;function Ub(W){switch(W.length){case 4:return[W[0],W[1],W[2],W[3]].join(".");case 16:let G=[],X=-1,Y=0,Z=-1,V=0;for(let Q=0;Q<W.length;Q+=2){let J=W[Q]<<8|W[Q+1];if(J===0){if(Y++,X===-1)X=G.length;if(Y>V)V=Y,Z=X}else X=-1,Y=0;G.push(J.toString(16))}if(V>0){let Q="",J=G.slice(Z+V);if(G.length=Z,G.length===0)Q+=":";if(J.length===0)Q+=":";G.push(Q,...J)}return G.join(":");default:return""}}VT.bytesToIP=Ub;var N6=Object.create(null),ZT=/^[0-9.]+$/;function qb(W){if(ZT.test(W)&&N6[W]!=="")return W;return N6[W]==null?"":N6[W]}VT.getOID=qb;function Nb(W){if(!ZT.test(W)&&N6[W]!=="")return W;return N6[W]==null?W:N6[W]}VT.getOIDName=Nb;function z0(W,G){N6[W]=G,N6[G]=W}z0("1.2.840.113549.1.1.1","rsaEncryption");z0("1.2.840.113549.1.1.4","md5WithRsaEncryption");z0("1.2.840.113549.1.1.5","sha1WithRsaEncryption");z0("1.2.840.113549.1.1.8","mgf1");z0("1.2.840.113549.1.1.10","RSASSA-PSS");z0("1.2.840.113549.1.1.11","sha256WithRsaEncryption");z0("1.2.840.113549.1.1.12","sha384WithRsaEncryption");z0("1.2.840.113549.1.1.13","sha512WithRsaEncryption");z0("1.2.840.10045.2.1","ecEncryption");z0("1.2.840.10045.4.1","ecdsaWithSha1");z0("1.2.840.10045.4.3.2","ecdsaWithSha256");z0("1.2.840.10045.4.3.3","ecdsaWithSha384");z0("1.2.840.10045.4.3.4","ecdsaWithSha512");z0("1.2.840.10040.4.3","dsaWithSha1");z0("2.16.840.1.101.3.4.3.2","dsaWithSha256");z0("1.3.14.3.2.7","desCBC");z0("1.3.14.3.2.26","sha1");z0("2.16.840.1.101.3.4.2.1","sha256");z0("2.16.840.1.101.3.4.2.2","sha384");z0("2.16.840.1.101.3.4.2.3","sha512");z0("1.2.840.113549.2.5","md5");z0("1.3.101.110","X25519");z0("1.3.101.111","X448");z0("1.3.101.112","Ed25519");z0("1.3.101.113","Ed448");z0("1.2.840.113549.1.7.1","data");z0("1.2.840.113549.1.7.2","signedData");z0("1.2.840.113549.1.7.3","envelopedData");z0("1.2.840.113549.1.7.4","signedAndEnvelopedData");z0("1.2.840.113549.1.7.5","digestedData");z0("1.2.840.113549.1.7.6","encryptedData");z0("1.2.840.113549.1.9.1","emailAddress");z0("1.2.840.113549.1.9.2","unstructuredName");z0("1.2.840.113549.1.9.3","contentType");z0("1.2.840.113549.1.9.4","messageDigest");z0("1.2.840.113549.1.9.5","signingTime");z0("1.2.840.113549.1.9.6","counterSignature");z0("1.2.840.113549.1.9.7","challengePassword");z0("1.2.840.113549.1.9.8","unstructuredAddress");z0("1.2.840.113549.1.9.14","extensionRequest");z0("1.2.840.113549.1.9.20","friendlyName");z0("1.2.840.113549.1.9.21","localKeyId");z0("1.2.840.113549.1.9.22.1","x509Certificate");z0("1.2.840.113549.1.12.10.1.1","keyBag");z0("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");z0("1.2.840.113549.1.12.10.1.3","certBag");z0("1.2.840.113549.1.12.10.1.4","crlBag");z0("1.2.840.113549.1.12.10.1.5","secretBag");z0("1.2.840.113549.1.12.10.1.6","safeContentsBag");z0("1.2.840.113549.1.5.13","pkcs5PBES2");z0("1.2.840.113549.1.5.12","pkcs5PBKDF2");z0("1.2.840.113549.2.7","hmacWithSha1");z0("1.2.840.113549.2.9","hmacWithSha256");z0("1.2.840.113549.2.10","hmacWithSha384");z0("1.2.840.113549.2.11","hmacWithSha512");z0("1.2.840.113549.3.7","3desCBC");z0("2.16.840.1.101.3.4.1.2","aesCBC128");z0("2.16.840.1.101.3.4.1.42","aesCBC256");z0("2.5.4.3","commonName");z0("2.5.4.5","serialName");z0("2.5.4.6","countryName");z0("2.5.4.7","localityName");z0("2.5.4.8","stateOrProvinceName");z0("2.5.4.10","organizationName");z0("2.5.4.11","organizationalUnitName");z0("2.5.4.15","businessCategory");z0("2.16.840.1.113730.1.1","nsCertType");z0("2.5.29.2","keyAttributes");z0("2.5.29.4","keyUsageRestriction");z0("2.5.29.6","subtreesConstraint");z0("2.5.29.9","subjectDirectoryAttributes");z0("2.5.29.14","subjectKeyIdentifier");z0("2.5.29.15","keyUsage");z0("2.5.29.16","privateKeyUsagePeriod");z0("2.5.29.17","subjectAltName");z0("2.5.29.18","issuerAltName");z0("2.5.29.19","basicConstraints");z0("2.5.29.20","cRLNumber");z0("2.5.29.21","cRLReason");z0("2.5.29.22","expirationDate");z0("2.5.29.23","instructionCode");z0("2.5.29.24","invalidityDate");z0("2.5.29.27","deltaCRLIndicator");z0("2.5.29.28","issuingDistributionPoint");z0("2.5.29.29","certificateIssuer");z0("2.5.29.30","nameConstraints");z0("2.5.29.31","cRLDistributionPoints");z0("2.5.29.32","certificatePolicies");z0("2.5.29.33","policyMappings");z0("2.5.29.35","authorityKeyIdentifier");z0("2.5.29.36","policyConstraints");z0("2.5.29.37","extKeyUsage");z0("2.5.29.46","freshestCRL");z0("2.5.29.54","inhibitAnyPolicy");z0("1.3.6.1.4.1.311.60.2.1.2","jurisdictionST");z0("1.3.6.1.4.1.311.60.2.1.3","jurisdictionC");z0("1.3.6.1.4.1.11129.2.4.2","timestampList");z0("1.3.6.1.5.5.7.1.1","authorityInfoAccess");z0("1.3.6.1.5.5.7.3.1","serverAuth");z0("1.3.6.1.5.5.7.3.2","clientAuth");z0("1.3.6.1.5.5.7.3.3","codeSigning");z0("1.3.6.1.5.5.7.3.4","emailProtection");z0("1.3.6.1.5.5.7.3.8","timeStamping");z0("1.3.6.1.5.5.7.48.1","authorityInfoAccessOcsp");z0("1.3.6.1.5.5.7.48.2","authorityInfoAccessIssuers")});var xU=Z1((ye,SU)=>{(function(W){var G=function(O){var T,M=new Float64Array(16);if(O)for(T=0;T<O.length;T++)M[T]=O[T];return M},X=function(){throw Error("no PRNG")},Y=new Uint8Array(16),Z=new Uint8Array(32);Z[0]=9;var V=G(),Q=G([1]),J=G([56129,1]),U=G([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),q=G([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),N=G([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),A=G([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),H=G([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function I(O,T,M,z){O[T]=M>>24&255,O[T+1]=M>>16&255,O[T+2]=M>>8&255,O[T+3]=M&255,O[T+4]=z>>24&255,O[T+5]=z>>16&255,O[T+6]=z>>8&255,O[T+7]=z&255}function w(O,T,M,z,L){var r,t=0;for(r=0;r<L;r++)t|=O[T+r]^M[z+r];return(1&t-1>>>8)-1}function C(O,T,M,z){return w(O,T,M,z,16)}function D(O,T,M,z){return w(O,T,M,z,32)}function x(O,T,M,z){var L=z[0]&255|(z[1]&255)<<8|(z[2]&255)<<16|(z[3]&255)<<24,r=M[0]&255|(M[1]&255)<<8|(M[2]&255)<<16|(M[3]&255)<<24,t=M[4]&255|(M[5]&255)<<8|(M[6]&255)<<16|(M[7]&255)<<24,H0=M[8]&255|(M[9]&255)<<8|(M[10]&255)<<16|(M[11]&255)<<24,M0=M[12]&255|(M[13]&255)<<8|(M[14]&255)<<16|(M[15]&255)<<24,n0=z[4]&255|(z[5]&255)<<8|(z[6]&255)<<16|(z[7]&255)<<24,v0=T[0]&255|(T[1]&255)<<8|(T[2]&255)<<16|(T[3]&255)<<24,m1=T[4]&255|(T[5]&255)<<8|(T[6]&255)<<16|(T[7]&255)<<24,m0=T[8]&255|(T[9]&255)<<8|(T[10]&255)<<16|(T[11]&255)<<24,N1=T[12]&255|(T[13]&255)<<8|(T[14]&255)<<16|(T[15]&255)<<24,A1=z[8]&255|(z[9]&255)<<8|(z[10]&255)<<16|(z[11]&255)<<24,T1=M[16]&255|(M[17]&255)<<8|(M[18]&255)<<16|(M[19]&255)<<24,C1=M[20]&255|(M[21]&255)<<8|(M[22]&255)<<16|(M[23]&255)<<24,z1=M[24]&255|(M[25]&255)<<8|(M[26]&255)<<16|(M[27]&255)<<24,j1=M[28]&255|(M[29]&255)<<8|(M[30]&255)<<16|(M[31]&255)<<24,I1=z[12]&255|(z[13]&255)<<8|(z[14]&255)<<16|(z[15]&255)<<24,c0=L,a0=r,u0=t,d0=H0,o0=M0,_0=n0,Z0=v0,V0=m1,I0=m0,N0=N1,A0=A1,O0=T1,J1=C1,P1=z1,L1=j1,R1=I1,g;for(var E1=0;E1<20;E1+=2)g=c0+J1|0,o0^=g<<7|g>>>25,g=o0+c0|0,I0^=g<<9|g>>>23,g=I0+o0|0,J1^=g<<13|g>>>19,g=J1+I0|0,c0^=g<<18|g>>>14,g=_0+a0|0,N0^=g<<7|g>>>25,g=N0+_0|0,P1^=g<<9|g>>>23,g=P1+N0|0,a0^=g<<13|g>>>19,g=a0+P1|0,_0^=g<<18|g>>>14,g=A0+Z0|0,L1^=g<<7|g>>>25,g=L1+A0|0,u0^=g<<9|g>>>23,g=u0+L1|0,Z0^=g<<13|g>>>19,g=Z0+u0|0,A0^=g<<18|g>>>14,g=R1+O0|0,d0^=g<<7|g>>>25,g=d0+R1|0,V0^=g<<9|g>>>23,g=V0+d0|0,O0^=g<<13|g>>>19,g=O0+V0|0,R1^=g<<18|g>>>14,g=c0+d0|0,a0^=g<<7|g>>>25,g=a0+c0|0,u0^=g<<9|g>>>23,g=u0+a0|0,d0^=g<<13|g>>>19,g=d0+u0|0,c0^=g<<18|g>>>14,g=_0+o0|0,Z0^=g<<7|g>>>25,g=Z0+_0|0,V0^=g<<9|g>>>23,g=V0+Z0|0,o0^=g<<13|g>>>19,g=o0+V0|0,_0^=g<<18|g>>>14,g=A0+N0|0,O0^=g<<7|g>>>25,g=O0+A0|0,I0^=g<<9|g>>>23,g=I0+O0|0,N0^=g<<13|g>>>19,g=N0+I0|0,A0^=g<<18|g>>>14,g=R1+L1|0,J1^=g<<7|g>>>25,g=J1+R1|0,P1^=g<<9|g>>>23,g=P1+J1|0,L1^=g<<13|g>>>19,g=L1+P1|0,R1^=g<<18|g>>>14;c0=c0+L|0,a0=a0+r|0,u0=u0+t|0,d0=d0+H0|0,o0=o0+M0|0,_0=_0+n0|0,Z0=Z0+v0|0,V0=V0+m1|0,I0=I0+m0|0,N0=N0+N1|0,A0=A0+A1|0,O0=O0+T1|0,J1=J1+C1|0,P1=P1+z1|0,L1=L1+j1|0,R1=R1+I1|0,O[0]=c0>>>0&255,O[1]=c0>>>8&255,O[2]=c0>>>16&255,O[3]=c0>>>24&255,O[4]=a0>>>0&255,O[5]=a0>>>8&255,O[6]=a0>>>16&255,O[7]=a0>>>24&255,O[8]=u0>>>0&255,O[9]=u0>>>8&255,O[10]=u0>>>16&255,O[11]=u0>>>24&255,O[12]=d0>>>0&255,O[13]=d0>>>8&255,O[14]=d0>>>16&255,O[15]=d0>>>24&255,O[16]=o0>>>0&255,O[17]=o0>>>8&255,O[18]=o0>>>16&255,O[19]=o0>>>24&255,O[20]=_0>>>0&255,O[21]=_0>>>8&255,O[22]=_0>>>16&255,O[23]=_0>>>24&255,O[24]=Z0>>>0&255,O[25]=Z0>>>8&255,O[26]=Z0>>>16&255,O[27]=Z0>>>24&255,O[28]=V0>>>0&255,O[29]=V0>>>8&255,O[30]=V0>>>16&255,O[31]=V0>>>24&255,O[32]=I0>>>0&255,O[33]=I0>>>8&255,O[34]=I0>>>16&255,O[35]=I0>>>24&255,O[36]=N0>>>0&255,O[37]=N0>>>8&255,O[38]=N0>>>16&255,O[39]=N0>>>24&255,O[40]=A0>>>0&255,O[41]=A0>>>8&255,O[42]=A0>>>16&255,O[43]=A0>>>24&255,O[44]=O0>>>0&255,O[45]=O0>>>8&255,O[46]=O0>>>16&255,O[47]=O0>>>24&255,O[48]=J1>>>0&255,O[49]=J1>>>8&255,O[50]=J1>>>16&255,O[51]=J1>>>24&255,O[52]=P1>>>0&255,O[53]=P1>>>8&255,O[54]=P1>>>16&255,O[55]=P1>>>24&255,O[56]=L1>>>0&255,O[57]=L1>>>8&255,O[58]=L1>>>16&255,O[59]=L1>>>24&255,O[60]=R1>>>0&255,O[61]=R1>>>8&255,O[62]=R1>>>16&255,O[63]=R1>>>24&255}function h(O,T,M,z){var L=z[0]&255|(z[1]&255)<<8|(z[2]&255)<<16|(z[3]&255)<<24,r=M[0]&255|(M[1]&255)<<8|(M[2]&255)<<16|(M[3]&255)<<24,t=M[4]&255|(M[5]&255)<<8|(M[6]&255)<<16|(M[7]&255)<<24,H0=M[8]&255|(M[9]&255)<<8|(M[10]&255)<<16|(M[11]&255)<<24,M0=M[12]&255|(M[13]&255)<<8|(M[14]&255)<<16|(M[15]&255)<<24,n0=z[4]&255|(z[5]&255)<<8|(z[6]&255)<<16|(z[7]&255)<<24,v0=T[0]&255|(T[1]&255)<<8|(T[2]&255)<<16|(T[3]&255)<<24,m1=T[4]&255|(T[5]&255)<<8|(T[6]&255)<<16|(T[7]&255)<<24,m0=T[8]&255|(T[9]&255)<<8|(T[10]&255)<<16|(T[11]&255)<<24,N1=T[12]&255|(T[13]&255)<<8|(T[14]&255)<<16|(T[15]&255)<<24,A1=z[8]&255|(z[9]&255)<<8|(z[10]&255)<<16|(z[11]&255)<<24,T1=M[16]&255|(M[17]&255)<<8|(M[18]&255)<<16|(M[19]&255)<<24,C1=M[20]&255|(M[21]&255)<<8|(M[22]&255)<<16|(M[23]&255)<<24,z1=M[24]&255|(M[25]&255)<<8|(M[26]&255)<<16|(M[27]&255)<<24,j1=M[28]&255|(M[29]&255)<<8|(M[30]&255)<<16|(M[31]&255)<<24,I1=z[12]&255|(z[13]&255)<<8|(z[14]&255)<<16|(z[15]&255)<<24,c0=L,a0=r,u0=t,d0=H0,o0=M0,_0=n0,Z0=v0,V0=m1,I0=m0,N0=N1,A0=A1,O0=T1,J1=C1,P1=z1,L1=j1,R1=I1,g;for(var E1=0;E1<20;E1+=2)g=c0+J1|0,o0^=g<<7|g>>>25,g=o0+c0|0,I0^=g<<9|g>>>23,g=I0+o0|0,J1^=g<<13|g>>>19,g=J1+I0|0,c0^=g<<18|g>>>14,g=_0+a0|0,N0^=g<<7|g>>>25,g=N0+_0|0,P1^=g<<9|g>>>23,g=P1+N0|0,a0^=g<<13|g>>>19,g=a0+P1|0,_0^=g<<18|g>>>14,g=A0+Z0|0,L1^=g<<7|g>>>25,g=L1+A0|0,u0^=g<<9|g>>>23,g=u0+L1|0,Z0^=g<<13|g>>>19,g=Z0+u0|0,A0^=g<<18|g>>>14,g=R1+O0|0,d0^=g<<7|g>>>25,g=d0+R1|0,V0^=g<<9|g>>>23,g=V0+d0|0,O0^=g<<13|g>>>19,g=O0+V0|0,R1^=g<<18|g>>>14,g=c0+d0|0,a0^=g<<7|g>>>25,g=a0+c0|0,u0^=g<<9|g>>>23,g=u0+a0|0,d0^=g<<13|g>>>19,g=d0+u0|0,c0^=g<<18|g>>>14,g=_0+o0|0,Z0^=g<<7|g>>>25,g=Z0+_0|0,V0^=g<<9|g>>>23,g=V0+Z0|0,o0^=g<<13|g>>>19,g=o0+V0|0,_0^=g<<18|g>>>14,g=A0+N0|0,O0^=g<<7|g>>>25,g=O0+A0|0,I0^=g<<9|g>>>23,g=I0+O0|0,N0^=g<<13|g>>>19,g=N0+I0|0,A0^=g<<18|g>>>14,g=R1+L1|0,J1^=g<<7|g>>>25,g=J1+R1|0,P1^=g<<9|g>>>23,g=P1+J1|0,L1^=g<<13|g>>>19,g=L1+P1|0,R1^=g<<18|g>>>14;O[0]=c0>>>0&255,O[1]=c0>>>8&255,O[2]=c0>>>16&255,O[3]=c0>>>24&255,O[4]=_0>>>0&255,O[5]=_0>>>8&255,O[6]=_0>>>16&255,O[7]=_0>>>24&255,O[8]=A0>>>0&255,O[9]=A0>>>8&255,O[10]=A0>>>16&255,O[11]=A0>>>24&255,O[12]=R1>>>0&255,O[13]=R1>>>8&255,O[14]=R1>>>16&255,O[15]=R1>>>24&255,O[16]=Z0>>>0&255,O[17]=Z0>>>8&255,O[18]=Z0>>>16&255,O[19]=Z0>>>24&255,O[20]=V0>>>0&255,O[21]=V0>>>8&255,O[22]=V0>>>16&255,O[23]=V0>>>24&255,O[24]=I0>>>0&255,O[25]=I0>>>8&255,O[26]=I0>>>16&255,O[27]=I0>>>24&255,O[28]=N0>>>0&255,O[29]=N0>>>8&255,O[30]=N0>>>16&255,O[31]=N0>>>24&255}function p(O,T,M,z){x(O,T,M,z)}function u(O,T,M,z){h(O,T,M,z)}var n=new Uint8Array([101,120,112,97,110,100,32,51,50,45,98,121,116,101,32,107]);function c(O,T,M,z,L,r,t){var H0=new Uint8Array(16),M0=new Uint8Array(64),n0,v0;for(v0=0;v0<16;v0++)H0[v0]=0;for(v0=0;v0<8;v0++)H0[v0]=r[v0];while(L>=64){p(M0,H0,t,n);for(v0=0;v0<64;v0++)O[T+v0]=M[z+v0]^M0[v0];n0=1;for(v0=8;v0<16;v0++)n0=n0+(H0[v0]&255)|0,H0[v0]=n0&255,n0>>>=8;L-=64,T+=64,z+=64}if(L>0){p(M0,H0,t,n);for(v0=0;v0<L;v0++)O[T+v0]=M[z+v0]^M0[v0]}return 0}function l(O,T,M,z,L){var r=new Uint8Array(16),t=new Uint8Array(64),H0,M0;for(M0=0;M0<16;M0++)r[M0]=0;for(M0=0;M0<8;M0++)r[M0]=z[M0];while(M>=64){p(t,r,L,n);for(M0=0;M0<64;M0++)O[T+M0]=t[M0];H0=1;for(M0=8;M0<16;M0++)H0=H0+(r[M0]&255)|0,r[M0]=H0&255,H0>>>=8;M-=64,T+=64}if(M>0){p(t,r,L,n);for(M0=0;M0<M;M0++)O[T+M0]=t[M0]}return 0}function G0(O,T,M,z,L){var r=new Uint8Array(32);u(r,z,L,n);var t=new Uint8Array(8);for(var H0=0;H0<8;H0++)t[H0]=z[H0+16];return l(O,T,M,t,r)}function m(O,T,M,z,L,r,t){var H0=new Uint8Array(32);u(H0,r,t,n);var M0=new Uint8Array(8);for(var n0=0;n0<8;n0++)M0[n0]=r[n0+16];return c(O,T,M,z,L,M0,H0)}var Y0=function(O){this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.leftover=0,this.fin=0;var T,M,z,L,r,t,H0,M0;T=O[0]&255|(O[1]&255)<<8,this.r[0]=T&8191,M=O[2]&255|(O[3]&255)<<8,this.r[1]=(T>>>13|M<<3)&8191,z=O[4]&255|(O[5]&255)<<8,this.r[2]=(M>>>10|z<<6)&7939,L=O[6]&255|(O[7]&255)<<8,this.r[3]=(z>>>7|L<<9)&8191,r=O[8]&255|(O[9]&255)<<8,this.r[4]=(L>>>4|r<<12)&255,this.r[5]=r>>>1&8190,t=O[10]&255|(O[11]&255)<<8,this.r[6]=(r>>>14|t<<2)&8191,H0=O[12]&255|(O[13]&255)<<8,this.r[7]=(t>>>11|H0<<5)&8065,M0=O[14]&255|(O[15]&255)<<8,this.r[8]=(H0>>>8|M0<<8)&8191,this.r[9]=M0>>>5&127,this.pad[0]=O[16]&255|(O[17]&255)<<8,this.pad[1]=O[18]&255|(O[19]&255)<<8,this.pad[2]=O[20]&255|(O[21]&255)<<8,this.pad[3]=O[22]&255|(O[23]&255)<<8,this.pad[4]=O[24]&255|(O[25]&255)<<8,this.pad[5]=O[26]&255|(O[27]&255)<<8,this.pad[6]=O[28]&255|(O[29]&255)<<8,this.pad[7]=O[30]&255|(O[31]&255)<<8};Y0.prototype.blocks=function(O,T,M){var z=this.fin?0:2048,L,r,t,H0,M0,n0,v0,m1,m0,N1,A1,T1,C1,z1,j1,I1,c0,a0,u0,d0=this.h[0],o0=this.h[1],_0=this.h[2],Z0=this.h[3],V0=this.h[4],I0=this.h[5],N0=this.h[6],A0=this.h[7],O0=this.h[8],J1=this.h[9],P1=this.r[0],L1=this.r[1],R1=this.r[2],g=this.r[3],E1=this.r[4],f1=this.r[5],c1=this.r[6],B1=this.r[7],u1=this.r[8],h1=this.r[9];while(M>=16)L=O[T+0]&255|(O[T+1]&255)<<8,d0+=L&8191,r=O[T+2]&255|(O[T+3]&255)<<8,o0+=(L>>>13|r<<3)&8191,t=O[T+4]&255|(O[T+5]&255)<<8,_0+=(r>>>10|t<<6)&8191,H0=O[T+6]&255|(O[T+7]&255)<<8,Z0+=(t>>>7|H0<<9)&8191,M0=O[T+8]&255|(O[T+9]&255)<<8,V0+=(H0>>>4|M0<<12)&8191,I0+=M0>>>1&8191,n0=O[T+10]&255|(O[T+11]&255)<<8,N0+=(M0>>>14|n0<<2)&8191,v0=O[T+12]&255|(O[T+13]&255)<<8,A0+=(n0>>>11|v0<<5)&8191,m1=O[T+14]&255|(O[T+15]&255)<<8,O0+=(v0>>>8|m1<<8)&8191,J1+=m1>>>5|z,m0=0,N1=m0,N1+=d0*P1,N1+=o0*(5*h1),N1+=_0*(5*u1),N1+=Z0*(5*B1),N1+=V0*(5*c1),m0=N1>>>13,N1&=8191,N1+=I0*(5*f1),N1+=N0*(5*E1),N1+=A0*(5*g),N1+=O0*(5*R1),N1+=J1*(5*L1),m0+=N1>>>13,N1&=8191,A1=m0,A1+=d0*L1,A1+=o0*P1,A1+=_0*(5*h1),A1+=Z0*(5*u1),A1+=V0*(5*B1),m0=A1>>>13,A1&=8191,A1+=I0*(5*c1),A1+=N0*(5*f1),A1+=A0*(5*E1),A1+=O0*(5*g),A1+=J1*(5*R1),m0+=A1>>>13,A1&=8191,T1=m0,T1+=d0*R1,T1+=o0*L1,T1+=_0*P1,T1+=Z0*(5*h1),T1+=V0*(5*u1),m0=T1>>>13,T1&=8191,T1+=I0*(5*B1),T1+=N0*(5*c1),T1+=A0*(5*f1),T1+=O0*(5*E1),T1+=J1*(5*g),m0+=T1>>>13,T1&=8191,C1=m0,C1+=d0*g,C1+=o0*R1,C1+=_0*L1,C1+=Z0*P1,C1+=V0*(5*h1),m0=C1>>>13,C1&=8191,C1+=I0*(5*u1),C1+=N0*(5*B1),C1+=A0*(5*c1),C1+=O0*(5*f1),C1+=J1*(5*E1),m0+=C1>>>13,C1&=8191,z1=m0,z1+=d0*E1,z1+=o0*g,z1+=_0*R1,z1+=Z0*L1,z1+=V0*P1,m0=z1>>>13,z1&=8191,z1+=I0*(5*h1),z1+=N0*(5*u1),z1+=A0*(5*B1),z1+=O0*(5*c1),z1+=J1*(5*f1),m0+=z1>>>13,z1&=8191,j1=m0,j1+=d0*f1,j1+=o0*E1,j1+=_0*g,j1+=Z0*R1,j1+=V0*L1,m0=j1>>>13,j1&=8191,j1+=I0*P1,j1+=N0*(5*h1),j1+=A0*(5*u1),j1+=O0*(5*B1),j1+=J1*(5*c1),m0+=j1>>>13,j1&=8191,I1=m0,I1+=d0*c1,I1+=o0*f1,I1+=_0*E1,I1+=Z0*g,I1+=V0*R1,m0=I1>>>13,I1&=8191,I1+=I0*L1,I1+=N0*P1,I1+=A0*(5*h1),I1+=O0*(5*u1),I1+=J1*(5*B1),m0+=I1>>>13,I1&=8191,c0=m0,c0+=d0*B1,c0+=o0*c1,c0+=_0*f1,c0+=Z0*E1,c0+=V0*g,m0=c0>>>13,c0&=8191,c0+=I0*R1,c0+=N0*L1,c0+=A0*P1,c0+=O0*(5*h1),c0+=J1*(5*u1),m0+=c0>>>13,c0&=8191,a0=m0,a0+=d0*u1,a0+=o0*B1,a0+=_0*c1,a0+=Z0*f1,a0+=V0*E1,m0=a0>>>13,a0&=8191,a0+=I0*g,a0+=N0*R1,a0+=A0*L1,a0+=O0*P1,a0+=J1*(5*h1),m0+=a0>>>13,a0&=8191,u0=m0,u0+=d0*h1,u0+=o0*u1,u0+=_0*B1,u0+=Z0*c1,u0+=V0*f1,m0=u0>>>13,u0&=8191,u0+=I0*E1,u0+=N0*g,u0+=A0*R1,u0+=O0*L1,u0+=J1*P1,m0+=u0>>>13,u0&=8191,m0=(m0<<2)+m0|0,m0=m0+N1|0,N1=m0&8191,m0=m0>>>13,A1+=m0,d0=N1,o0=A1,_0=T1,Z0=C1,V0=z1,I0=j1,N0=I1,A0=c0,O0=a0,J1=u0,T+=16,M-=16;this.h[0]=d0,this.h[1]=o0,this.h[2]=_0,this.h[3]=Z0,this.h[4]=V0,this.h[5]=I0,this.h[6]=N0,this.h[7]=A0,this.h[8]=O0,this.h[9]=J1},Y0.prototype.finish=function(O,T){var M=new Uint16Array(10),z,L,r,t;if(this.leftover){t=this.leftover,this.buffer[t++]=1;for(;t<16;t++)this.buffer[t]=0;this.fin=1,this.blocks(this.buffer,0,16)}z=this.h[1]>>>13,this.h[1]&=8191;for(t=2;t<10;t++)this.h[t]+=z,z=this.h[t]>>>13,this.h[t]&=8191;this.h[0]+=z*5,z=this.h[0]>>>13,this.h[0]&=8191,this.h[1]+=z,z=this.h[1]>>>13,this.h[1]&=8191,this.h[2]+=z,M[0]=this.h[0]+5,z=M[0]>>>13,M[0]&=8191;for(t=1;t<10;t++)M[t]=this.h[t]+z,z=M[t]>>>13,M[t]&=8191;M[9]-=8192,L=(z^1)-1;for(t=0;t<10;t++)M[t]&=L;L=~L;for(t=0;t<10;t++)this.h[t]=this.h[t]&L|M[t];this.h[0]=(this.h[0]|this.h[1]<<13)&65535,this.h[1]=(this.h[1]>>>3|this.h[2]<<10)&65535,this.h[2]=(this.h[2]>>>6|this.h[3]<<7)&65535,this.h[3]=(this.h[3]>>>9|this.h[4]<<4)&65535,this.h[4]=(this.h[4]>>>12|this.h[5]<<1|this.h[6]<<14)&65535,this.h[5]=(this.h[6]>>>2|this.h[7]<<11)&65535,this.h[6]=(this.h[7]>>>5|this.h[8]<<8)&65535,this.h[7]=(this.h[8]>>>8|this.h[9]<<5)&65535,r=this.h[0]+this.pad[0],this.h[0]=r&65535;for(t=1;t<8;t++)r=(this.h[t]+this.pad[t]|0)+(r>>>16)|0,this.h[t]=r&65535;O[T+0]=this.h[0]>>>0&255,O[T+1]=this.h[0]>>>8&255,O[T+2]=this.h[1]>>>0&255,O[T+3]=this.h[1]>>>8&255,O[T+4]=this.h[2]>>>0&255,O[T+5]=this.h[2]>>>8&255,O[T+6]=this.h[3]>>>0&255,O[T+7]=this.h[3]>>>8&255,O[T+8]=this.h[4]>>>0&255,O[T+9]=this.h[4]>>>8&255,O[T+10]=this.h[5]>>>0&255,O[T+11]=this.h[5]>>>8&255,O[T+12]=this.h[6]>>>0&255,O[T+13]=this.h[6]>>>8&255,O[T+14]=this.h[7]>>>0&255,O[T+15]=this.h[7]>>>8&255},Y0.prototype.update=function(O,T,M){var z,L;if(this.leftover){if(L=16-this.leftover,L>M)L=M;for(z=0;z<L;z++)this.buffer[this.leftover+z]=O[T+z];if(M-=L,T+=L,this.leftover+=L,this.leftover<16)return;this.blocks(this.buffer,0,16),this.leftover=0}if(M>=16)L=M-M%16,this.blocks(O,T,L),T+=L,M-=L;if(M){for(z=0;z<M;z++)this.buffer[this.leftover+z]=O[T+z];this.leftover+=M}};function U0(O,T,M,z,L,r){var t=new Y0(r);return t.update(M,z,L),t.finish(O,T),0}function y(O,T,M,z,L,r){var t=new Uint8Array(16);return U0(t,0,M,z,L,r),C(O,T,t,0)}function o(O,T,M,z,L){var r;if(M<32)return-1;m(O,0,T,0,M,z,L),U0(O,16,O,32,M-32,O);for(r=0;r<16;r++)O[r]=0;return 0}function B(O,T,M,z,L){var r,t=new Uint8Array(32);if(M<32)return-1;if(G0(t,0,32,z,L),y(T,16,T,32,M-32,t)!==0)return-1;m(O,0,T,0,M,z,L);for(r=0;r<32;r++)O[r]=0;return 0}function R(O,T){var M;for(M=0;M<16;M++)O[M]=T[M]|0}function _(O){var T,M,z=1;for(T=0;T<16;T++)M=O[T]+z+65535,z=Math.floor(M/65536),O[T]=M-z*65536;O[0]+=z-1+37*(z-1)}function S(O,T,M){var z,L=~(M-1);for(var r=0;r<16;r++)z=L&(O[r]^T[r]),O[r]^=z,T[r]^=z}function v(O,T){var M,z,L,r=G(),t=G();for(M=0;M<16;M++)t[M]=T[M];_(t),_(t),_(t);for(z=0;z<2;z++){r[0]=t[0]-65517;for(M=1;M<15;M++)r[M]=t[M]-65535-(r[M-1]>>16&1),r[M-1]&=65535;r[15]=t[15]-32767-(r[14]>>16&1),L=r[15]>>16&1,r[14]&=65535,S(t,r,1-L)}for(M=0;M<16;M++)O[2*M]=t[M]&255,O[2*M+1]=t[M]>>8}function P(O,T){var M=new Uint8Array(32),z=new Uint8Array(32);return v(M,O),v(z,T),D(M,0,z,0)}function E(O){var T=new Uint8Array(32);return v(T,O),T[0]&1}function b(O,T){var M;for(M=0;M<16;M++)O[M]=T[2*M]+(T[2*M+1]<<8);O[15]&=32767}function k(O,T,M){for(var z=0;z<16;z++)O[z]=T[z]+M[z]}function f(O,T,M){for(var z=0;z<16;z++)O[z]=T[z]-M[z]}function e(O,T,M){var z,L,r=0,t=0,H0=0,M0=0,n0=0,v0=0,m1=0,m0=0,N1=0,A1=0,T1=0,C1=0,z1=0,j1=0,I1=0,c0=0,a0=0,u0=0,d0=0,o0=0,_0=0,Z0=0,V0=0,I0=0,N0=0,A0=0,O0=0,J1=0,P1=0,L1=0,R1=0,g=M[0],E1=M[1],f1=M[2],c1=M[3],B1=M[4],u1=M[5],h1=M[6],E8=M[7],s1=M[8],K8=M[9],C8=M[10],D8=M[11],g8=M[12],U9=M[13],q9=M[14],N9=M[15];z=T[0],r+=z*g,t+=z*E1,H0+=z*f1,M0+=z*c1,n0+=z*B1,v0+=z*u1,m1+=z*h1,m0+=z*E8,N1+=z*s1,A1+=z*K8,T1+=z*C8,C1+=z*D8,z1+=z*g8,j1+=z*U9,I1+=z*q9,c0+=z*N9,z=T[1],t+=z*g,H0+=z*E1,M0+=z*f1,n0+=z*c1,v0+=z*B1,m1+=z*u1,m0+=z*h1,N1+=z*E8,A1+=z*s1,T1+=z*K8,C1+=z*C8,z1+=z*D8,j1+=z*g8,I1+=z*U9,c0+=z*q9,a0+=z*N9,z=T[2],H0+=z*g,M0+=z*E1,n0+=z*f1,v0+=z*c1,m1+=z*B1,m0+=z*u1,N1+=z*h1,A1+=z*E8,T1+=z*s1,C1+=z*K8,z1+=z*C8,j1+=z*D8,I1+=z*g8,c0+=z*U9,a0+=z*q9,u0+=z*N9,z=T[3],M0+=z*g,n0+=z*E1,v0+=z*f1,m1+=z*c1,m0+=z*B1,N1+=z*u1,A1+=z*h1,T1+=z*E8,C1+=z*s1,z1+=z*K8,j1+=z*C8,I1+=z*D8,c0+=z*g8,a0+=z*U9,u0+=z*q9,d0+=z*N9,z=T[4],n0+=z*g,v0+=z*E1,m1+=z*f1,m0+=z*c1,N1+=z*B1,A1+=z*u1,T1+=z*h1,C1+=z*E8,z1+=z*s1,j1+=z*K8,I1+=z*C8,c0+=z*D8,a0+=z*g8,u0+=z*U9,d0+=z*q9,o0+=z*N9,z=T[5],v0+=z*g,m1+=z*E1,m0+=z*f1,N1+=z*c1,A1+=z*B1,T1+=z*u1,C1+=z*h1,z1+=z*E8,j1+=z*s1,I1+=z*K8,c0+=z*C8,a0+=z*D8,u0+=z*g8,d0+=z*U9,o0+=z*q9,_0+=z*N9,z=T[6],m1+=z*g,m0+=z*E1,N1+=z*f1,A1+=z*c1,T1+=z*B1,C1+=z*u1,z1+=z*h1,j1+=z*E8,I1+=z*s1,c0+=z*K8,a0+=z*C8,u0+=z*D8,d0+=z*g8,o0+=z*U9,_0+=z*q9,Z0+=z*N9,z=T[7],m0+=z*g,N1+=z*E1,A1+=z*f1,T1+=z*c1,C1+=z*B1,z1+=z*u1,j1+=z*h1,I1+=z*E8,c0+=z*s1,a0+=z*K8,u0+=z*C8,d0+=z*D8,o0+=z*g8,_0+=z*U9,Z0+=z*q9,V0+=z*N9,z=T[8],N1+=z*g,A1+=z*E1,T1+=z*f1,C1+=z*c1,z1+=z*B1,j1+=z*u1,I1+=z*h1,c0+=z*E8,a0+=z*s1,u0+=z*K8,d0+=z*C8,o0+=z*D8,_0+=z*g8,Z0+=z*U9,V0+=z*q9,I0+=z*N9,z=T[9],A1+=z*g,T1+=z*E1,C1+=z*f1,z1+=z*c1,j1+=z*B1,I1+=z*u1,c0+=z*h1,a0+=z*E8,u0+=z*s1,d0+=z*K8,o0+=z*C8,_0+=z*D8,Z0+=z*g8,V0+=z*U9,I0+=z*q9,N0+=z*N9,z=T[10],T1+=z*g,C1+=z*E1,z1+=z*f1,j1+=z*c1,I1+=z*B1,c0+=z*u1,a0+=z*h1,u0+=z*E8,d0+=z*s1,o0+=z*K8,_0+=z*C8,Z0+=z*D8,V0+=z*g8,I0+=z*U9,N0+=z*q9,A0+=z*N9,z=T[11],C1+=z*g,z1+=z*E1,j1+=z*f1,I1+=z*c1,c0+=z*B1,a0+=z*u1,u0+=z*h1,d0+=z*E8,o0+=z*s1,_0+=z*K8,Z0+=z*C8,V0+=z*D8,I0+=z*g8,N0+=z*U9,A0+=z*q9,O0+=z*N9,z=T[12],z1+=z*g,j1+=z*E1,I1+=z*f1,c0+=z*c1,a0+=z*B1,u0+=z*u1,d0+=z*h1,o0+=z*E8,_0+=z*s1,Z0+=z*K8,V0+=z*C8,I0+=z*D8,N0+=z*g8,A0+=z*U9,O0+=z*q9,J1+=z*N9,z=T[13],j1+=z*g,I1+=z*E1,c0+=z*f1,a0+=z*c1,u0+=z*B1,d0+=z*u1,o0+=z*h1,_0+=z*E8,Z0+=z*s1,V0+=z*K8,I0+=z*C8,N0+=z*D8,A0+=z*g8,O0+=z*U9,J1+=z*q9,P1+=z*N9,z=T[14],I1+=z*g,c0+=z*E1,a0+=z*f1,u0+=z*c1,d0+=z*B1,o0+=z*u1,_0+=z*h1,Z0+=z*E8,V0+=z*s1,I0+=z*K8,N0+=z*C8,A0+=z*D8,O0+=z*g8,J1+=z*U9,P1+=z*q9,L1+=z*N9,z=T[15],c0+=z*g,a0+=z*E1,u0+=z*f1,d0+=z*c1,o0+=z*B1,_0+=z*u1,Z0+=z*h1,V0+=z*E8,I0+=z*s1,N0+=z*K8,A0+=z*C8,O0+=z*D8,J1+=z*g8,P1+=z*U9,L1+=z*q9,R1+=z*N9,r+=38*a0,t+=38*u0,H0+=38*d0,M0+=38*o0,n0+=38*_0,v0+=38*Z0,m1+=38*V0,m0+=38*I0,N1+=38*N0,A1+=38*A0,T1+=38*O0,C1+=38*J1,z1+=38*P1,j1+=38*L1,I1+=38*R1,L=1,z=r+L+65535,L=Math.floor(z/65536),r=z-L*65536,z=t+L+65535,L=Math.floor(z/65536),t=z-L*65536,z=H0+L+65535,L=Math.floor(z/65536),H0=z-L*65536,z=M0+L+65535,L=Math.floor(z/65536),M0=z-L*65536,z=n0+L+65535,L=Math.floor(z/65536),n0=z-L*65536,z=v0+L+65535,L=Math.floor(z/65536),v0=z-L*65536,z=m1+L+65535,L=Math.floor(z/65536),m1=z-L*65536,z=m0+L+65535,L=Math.floor(z/65536),m0=z-L*65536,z=N1+L+65535,L=Math.floor(z/65536),N1=z-L*65536,z=A1+L+65535,L=Math.floor(z/65536),A1=z-L*65536,z=T1+L+65535,L=Math.floor(z/65536),T1=z-L*65536,z=C1+L+65535,L=Math.floor(z/65536),C1=z-L*65536,z=z1+L+65535,L=Math.floor(z/65536),z1=z-L*65536,z=j1+L+65535,L=Math.floor(z/65536),j1=z-L*65536,z=I1+L+65535,L=Math.floor(z/65536),I1=z-L*65536,z=c0+L+65535,L=Math.floor(z/65536),c0=z-L*65536,r+=L-1+37*(L-1),L=1,z=r+L+65535,L=Math.floor(z/65536),r=z-L*65536,z=t+L+65535,L=Math.floor(z/65536),t=z-L*65536,z=H0+L+65535,L=Math.floor(z/65536),H0=z-L*65536,z=M0+L+65535,L=Math.floor(z/65536),M0=z-L*65536,z=n0+L+65535,L=Math.floor(z/65536),n0=z-L*65536,z=v0+L+65535,L=Math.floor(z/65536),v0=z-L*65536,z=m1+L+65535,L=Math.floor(z/65536),m1=z-L*65536,z=m0+L+65535,L=Math.floor(z/65536),m0=z-L*65536,z=N1+L+65535,L=Math.floor(z/65536),N1=z-L*65536,z=A1+L+65535,L=Math.floor(z/65536),A1=z-L*65536,z=T1+L+65535,L=Math.floor(z/65536),T1=z-L*65536,z=C1+L+65535,L=Math.floor(z/65536),C1=z-L*65536,z=z1+L+65535,L=Math.floor(z/65536),z1=z-L*65536,z=j1+L+65535,L=Math.floor(z/65536),j1=z-L*65536,z=I1+L+65535,L=Math.floor(z/65536),I1=z-L*65536,z=c0+L+65535,L=Math.floor(z/65536),c0=z-L*65536,r+=L-1+37*(L-1),O[0]=r,O[1]=t,O[2]=H0,O[3]=M0,O[4]=n0,O[5]=v0,O[6]=m1,O[7]=m0,O[8]=N1,O[9]=A1,O[10]=T1,O[11]=C1,O[12]=z1,O[13]=j1,O[14]=I1,O[15]=c0}function q0(O,T){e(O,T,T)}function Q0(O,T){var M=G(),z;for(z=0;z<16;z++)M[z]=T[z];for(z=253;z>=0;z--)if(q0(M,M),z!==2&&z!==4)e(M,M,T);for(z=0;z<16;z++)O[z]=M[z]}function $0(O,T){var M=G(),z;for(z=0;z<16;z++)M[z]=T[z];for(z=250;z>=0;z--)if(q0(M,M),z!==1)e(M,M,T);for(z=0;z<16;z++)O[z]=M[z]}function D0(O,T,M){var z=new Uint8Array(32),L=new Float64Array(80),r,t,H0=G(),M0=G(),n0=G(),v0=G(),m1=G(),m0=G();for(t=0;t<31;t++)z[t]=T[t];z[31]=T[31]&127|64,z[0]&=248,b(L,M);for(t=0;t<16;t++)M0[t]=L[t],v0[t]=H0[t]=n0[t]=0;H0[0]=v0[0]=1;for(t=254;t>=0;--t)r=z[t>>>3]>>>(t&7)&1,S(H0,M0,r),S(n0,v0,r),k(m1,H0,n0),f(H0,H0,n0),k(n0,M0,v0),f(M0,M0,v0),q0(v0,m1),q0(m0,H0),e(H0,n0,H0),e(n0,M0,m1),k(m1,H0,n0),f(H0,H0,n0),q0(M0,H0),f(n0,v0,m0),e(H0,n0,J),k(H0,H0,v0),e(n0,n0,H0),e(H0,v0,m0),e(v0,M0,L),q0(M0,m1),S(H0,M0,r),S(n0,v0,r);for(t=0;t<16;t++)L[t+16]=H0[t],L[t+32]=n0[t],L[t+48]=M0[t],L[t+64]=v0[t];var N1=L.subarray(32),A1=L.subarray(16);return Q0(N1,N1),e(A1,A1,N1),v(O,A1),0}function k0(O,T){return D0(O,T,Z)}function H1(O,T){return X(T,32),k0(O,T)}function U1(O,T,M){var z=new Uint8Array(32);return D0(z,M,T),u(O,Y,z,n)}var J0=o,B0=B;function h0(O,T,M,z,L,r){var t=new Uint8Array(32);return U1(t,L,r),J0(O,T,M,z,t)}function Y1(O,T,M,z,L,r){var t=new Uint8Array(32);return U1(t,L,r),B0(O,T,M,z,t)}var A8=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function F1(O,T,M,z){var L=new Int32Array(16),r=new Int32Array(16),t,H0,M0,n0,v0,m1,m0,N1,A1,T1,C1,z1,j1,I1,c0,a0,u0,d0,o0,_0,Z0,V0,I0,N0,A0,O0,J1=O[0],P1=O[1],L1=O[2],R1=O[3],g=O[4],E1=O[5],f1=O[6],c1=O[7],B1=T[0],u1=T[1],h1=T[2],E8=T[3],s1=T[4],K8=T[5],C8=T[6],D8=T[7],g8=0;while(z>=128){for(o0=0;o0<16;o0++)_0=8*o0+g8,L[o0]=M[_0+0]<<24|M[_0+1]<<16|M[_0+2]<<8|M[_0+3],r[o0]=M[_0+4]<<24|M[_0+5]<<16|M[_0+6]<<8|M[_0+7];for(o0=0;o0<80;o0++)if(t=J1,H0=P1,M0=L1,n0=R1,v0=g,m1=E1,m0=f1,N1=c1,A1=B1,T1=u1,C1=h1,z1=E8,j1=s1,I1=K8,c0=C8,a0=D8,Z0=c1,V0=D8,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=(g>>>14|s1<<18)^(g>>>18|s1<<14)^(s1>>>9|g<<23),V0=(s1>>>14|g<<18)^(s1>>>18|g<<14)^(g>>>9|s1<<23),I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,Z0=g&E1^~g&f1,V0=s1&K8^~s1&C8,I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,Z0=A8[o0*2],V0=A8[o0*2+1],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,Z0=L[o0%16],V0=r[o0%16],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,u0=A0&65535|O0<<16,d0=I0&65535|N0<<16,Z0=u0,V0=d0,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=(J1>>>28|B1<<4)^(B1>>>2|J1<<30)^(B1>>>7|J1<<25),V0=(B1>>>28|J1<<4)^(J1>>>2|B1<<30)^(J1>>>7|B1<<25),I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,Z0=J1&P1^J1&L1^P1&L1,V0=B1&u1^B1&h1^u1&h1,I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,N1=A0&65535|O0<<16,a0=I0&65535|N0<<16,Z0=n0,V0=z1,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=u0,V0=d0,I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,n0=A0&65535|O0<<16,z1=I0&65535|N0<<16,P1=t,L1=H0,R1=M0,g=n0,E1=v0,f1=m1,c1=m0,J1=N1,u1=A1,h1=T1,E8=C1,s1=z1,K8=j1,C8=I1,D8=c0,B1=a0,o0%16===15)for(_0=0;_0<16;_0++)Z0=L[_0],V0=r[_0],I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=L[(_0+9)%16],V0=r[(_0+9)%16],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,u0=L[(_0+1)%16],d0=r[(_0+1)%16],Z0=(u0>>>1|d0<<31)^(u0>>>8|d0<<24)^u0>>>7,V0=(d0>>>1|u0<<31)^(d0>>>8|u0<<24)^(d0>>>7|u0<<25),I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,u0=L[(_0+14)%16],d0=r[(_0+14)%16],Z0=(u0>>>19|d0<<13)^(d0>>>29|u0<<3)^u0>>>6,V0=(d0>>>19|u0<<13)^(u0>>>29|d0<<3)^(d0>>>6|u0<<26),I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,L[_0]=A0&65535|O0<<16,r[_0]=I0&65535|N0<<16;Z0=J1,V0=B1,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[0],V0=T[0],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[0]=J1=A0&65535|O0<<16,T[0]=B1=I0&65535|N0<<16,Z0=P1,V0=u1,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[1],V0=T[1],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[1]=P1=A0&65535|O0<<16,T[1]=u1=I0&65535|N0<<16,Z0=L1,V0=h1,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[2],V0=T[2],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[2]=L1=A0&65535|O0<<16,T[2]=h1=I0&65535|N0<<16,Z0=R1,V0=E8,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[3],V0=T[3],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[3]=R1=A0&65535|O0<<16,T[3]=E8=I0&65535|N0<<16,Z0=g,V0=s1,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[4],V0=T[4],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[4]=g=A0&65535|O0<<16,T[4]=s1=I0&65535|N0<<16,Z0=E1,V0=K8,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[5],V0=T[5],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[5]=E1=A0&65535|O0<<16,T[5]=K8=I0&65535|N0<<16,Z0=f1,V0=C8,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[6],V0=T[6],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[6]=f1=A0&65535|O0<<16,T[6]=C8=I0&65535|N0<<16,Z0=c1,V0=D8,I0=V0&65535,N0=V0>>>16,A0=Z0&65535,O0=Z0>>>16,Z0=O[7],V0=T[7],I0+=V0&65535,N0+=V0>>>16,A0+=Z0&65535,O0+=Z0>>>16,N0+=I0>>>16,A0+=N0>>>16,O0+=A0>>>16,O[7]=c1=A0&65535|O0<<16,T[7]=D8=I0&65535|N0<<16,g8+=128,z-=128}return z}function E0(O,T,M){var z=new Int32Array(8),L=new Int32Array(8),r=new Uint8Array(256),t,H0=M;z[0]=1779033703,z[1]=3144134277,z[2]=1013904242,z[3]=2773480762,z[4]=1359893119,z[5]=2600822924,z[6]=528734635,z[7]=1541459225,L[0]=4089235720,L[1]=2227873595,L[2]=4271175723,L[3]=1595750129,L[4]=2917565137,L[5]=725511199,L[6]=4215389547,L[7]=327033209,F1(z,L,T,M),M%=128;for(t=0;t<M;t++)r[t]=T[H0-M+t];r[M]=128,M=256-128*(M<112?1:0),r[M-9]=0,I(r,M-8,H0/536870912|0,H0<<3),F1(z,L,r,M);for(t=0;t<8;t++)I(O,8*t,z[t],L[t]);return 0}function l0(O,T){var M=G(),z=G(),L=G(),r=G(),t=G(),H0=G(),M0=G(),n0=G(),v0=G();f(M,O[1],O[0]),f(v0,T[1],T[0]),e(M,M,v0),k(z,O[0],O[1]),k(v0,T[0],T[1]),e(z,z,v0),e(L,O[3],T[3]),e(L,L,q),e(r,O[2],T[2]),k(r,r,r),f(t,z,M),f(H0,r,L),k(M0,r,L),k(n0,z,M),e(O[0],t,H0),e(O[1],n0,M0),e(O[2],M0,H0),e(O[3],t,n0)}function q1(O,T,M){var z;for(z=0;z<4;z++)S(O[z],T[z],M)}function d1(O,T){var M=G(),z=G(),L=G();Q0(L,T[2]),e(M,T[0],L),e(z,T[1],L),v(O,z),O[31]^=E(M)<<7}function j8(O,T,M){var z,L;R(O[0],V),R(O[1],Q),R(O[2],Q),R(O[3],V);for(L=255;L>=0;--L)z=M[L/8|0]>>(L&7)&1,q1(O,T,z),l0(T,O),l0(O,O),q1(O,T,z)}function v8(O,T){var M=[G(),G(),G(),G()];R(M[0],N),R(M[1],A),R(M[2],Q),e(M[3],N,A),j8(O,M,T)}function O8(O,T,M){var z=new Uint8Array(64),L=[G(),G(),G(),G()],r;if(!M)X(T,32);E0(z,T,32),z[0]&=248,z[31]&=127,z[31]|=64,v8(L,z),d1(O,L);for(r=0;r<32;r++)T[r+32]=O[r];return 0}var q8=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]);function Q9(O,T){var M,z,L,r;for(z=63;z>=32;--z){M=0;for(L=z-32,r=z-12;L<r;++L)T[L]+=M-16*T[z]*q8[L-(z-32)],M=Math.floor((T[L]+128)/256),T[L]-=M*256;T[L]+=M,T[z]=0}M=0;for(L=0;L<32;L++)T[L]+=M-(T[31]>>4)*q8[L],M=T[L]>>8,T[L]&=255;for(L=0;L<32;L++)T[L]-=M*q8[L];for(z=0;z<32;z++)T[z+1]+=T[z]>>8,O[z]=T[z]&255}function X6(O){var T=new Float64Array(64),M;for(M=0;M<64;M++)T[M]=O[M];for(M=0;M<64;M++)O[M]=0;Q9(O,T)}function qW(O,T,M,z){var L=new Uint8Array(64),r=new Uint8Array(64),t=new Uint8Array(64),H0,M0,n0=new Float64Array(64),v0=[G(),G(),G(),G()];E0(L,z,32),L[0]&=248,L[31]&=127,L[31]|=64;var m1=M+64;for(H0=0;H0<M;H0++)O[64+H0]=T[H0];for(H0=0;H0<32;H0++)O[32+H0]=L[32+H0];E0(t,O.subarray(32),M+32),X6(t),v8(v0,t),d1(O,v0);for(H0=32;H0<64;H0++)O[H0]=z[H0];E0(r,O,M+64),X6(r);for(H0=0;H0<64;H0++)n0[H0]=0;for(H0=0;H0<32;H0++)n0[H0]=t[H0];for(H0=0;H0<32;H0++)for(M0=0;M0<32;M0++)n0[H0+M0]+=r[H0]*L[M0];return Q9(O.subarray(32),n0),m1}function QZ(O,T){var M=G(),z=G(),L=G(),r=G(),t=G(),H0=G(),M0=G();if(R(O[2],Q),b(O[1],T),q0(L,O[1]),e(r,L,U),f(L,L,O[2]),k(r,O[2],r),q0(t,r),q0(H0,t),e(M0,H0,t),e(M,M0,L),e(M,M,r),$0(M,M),e(M,M,L),e(M,M,r),e(M,M,r),e(O[0],M,r),q0(z,O[0]),e(z,z,r),P(z,L))e(O[0],O[0],H);if(q0(z,O[0]),e(z,z,r),P(z,L))return-1;if(E(O[0])===T[31]>>7)f(O[0],V,O[0]);return e(O[3],O[0],O[1]),0}function n7(O,T,M,z){var L,r=new Uint8Array(32),t=new Uint8Array(64),H0=[G(),G(),G(),G()],M0=[G(),G(),G(),G()];if(M<64)return-1;if(QZ(M0,z))return-1;for(L=0;L<M;L++)O[L]=T[L];for(L=0;L<32;L++)O[L+32]=z[L];if(E0(t,O,M),X6(t),j8(H0,M0,t),v8(M0,T.subarray(32)),l0(H0,M0),d1(r,H0),M-=64,D(T,0,r,0)){for(L=0;L<M;L++)O[L]=0;return-1}for(L=0;L<M;L++)O[L]=T[L+64];return M}var i=32,$=24,d=32,X0=16,w0=32,e0=32,K1=32,r0=32,K0=32,F0=$,g0=d,x0=X0,Q1=64,X1=32,S1=64,o1=32,V7=64;W.lowlevel={crypto_core_hsalsa20:u,crypto_stream_xor:m,crypto_stream:G0,crypto_stream_salsa20_xor:c,crypto_stream_salsa20:l,crypto_onetimeauth:U0,crypto_onetimeauth_verify:y,crypto_verify_16:C,crypto_verify_32:D,crypto_secretbox:o,crypto_secretbox_open:B,crypto_scalarmult:D0,crypto_scalarmult_base:k0,crypto_box_beforenm:U1,crypto_box_afternm:J0,crypto_box:h0,crypto_box_open:Y1,crypto_box_keypair:H1,crypto_hash:E0,crypto_sign:qW,crypto_sign_keypair:O8,crypto_sign_open:n7,crypto_secretbox_KEYBYTES:i,crypto_secretbox_NONCEBYTES:$,crypto_secretbox_ZEROBYTES:d,crypto_secretbox_BOXZEROBYTES:X0,crypto_scalarmult_BYTES:w0,crypto_scalarmult_SCALARBYTES:e0,crypto_box_PUBLICKEYBYTES:K1,crypto_box_SECRETKEYBYTES:r0,crypto_box_BEFORENMBYTES:K0,crypto_box_NONCEBYTES:F0,crypto_box_ZEROBYTES:g0,crypto_box_BOXZEROBYTES:x0,crypto_sign_BYTES:Q1,crypto_sign_PUBLICKEYBYTES:X1,crypto_sign_SECRETKEYBYTES:S1,crypto_sign_SEEDBYTES:o1,crypto_hash_BYTES:V7,gf:G,D:U,L:q8,pack25519:v,unpack25519:b,M:e,A:k,S:q0,Z:f,pow2523:$0,add:l0,set25519:R,modL:Q9,scalarmult:j8,scalarbase:v8};function NW(O,T){if(O.length!==i)throw Error("bad key size");if(T.length!==$)throw Error("bad nonce size")}function JZ(O,T){if(O.length!==K1)throw Error("bad public key size");if(T.length!==r0)throw Error("bad secret key size")}function J9(){for(var O=0;O<arguments.length;O++)if(!(arguments[O]instanceof Uint8Array))throw TypeError("unexpected type, use Uint8Array")}function kJ(O){for(var T=0;T<O.length;T++)O[T]=0}W.randomBytes=function(O){var T=new Uint8Array(O);return X(T,O),T},W.secretbox=function(O,T,M){J9(O,T,M),NW(M,T);var z=new Uint8Array(d+O.length),L=new Uint8Array(z.length);for(var r=0;r<O.length;r++)z[r+d]=O[r];return o(L,z,z.length,T,M),L.subarray(X0)},W.secretbox.open=function(O,T,M){J9(O,T,M),NW(M,T);var z=new Uint8Array(X0+O.length),L=new Uint8Array(z.length);for(var r=0;r<O.length;r++)z[r+X0]=O[r];if(z.length<32)return null;if(B(L,z,z.length,T,M)!==0)return null;return L.subarray(d)},W.secretbox.keyLength=i,W.secretbox.nonceLength=$,W.secretbox.overheadLength=X0,W.scalarMult=function(O,T){if(J9(O,T),O.length!==e0)throw Error("bad n size");if(T.length!==w0)throw Error("bad p size");var M=new Uint8Array(w0);return D0(M,O,T),M},W.scalarMult.base=function(O){if(J9(O),O.length!==e0)throw Error("bad n size");var T=new Uint8Array(w0);return k0(T,O),T},W.scalarMult.scalarLength=e0,W.scalarMult.groupElementLength=w0,W.box=function(O,T,M,z){var L=W.box.before(M,z);return W.secretbox(O,T,L)},W.box.before=function(O,T){J9(O,T),JZ(O,T);var M=new Uint8Array(K0);return U1(M,O,T),M},W.box.after=W.secretbox,W.box.open=function(O,T,M,z){var L=W.box.before(M,z);return W.secretbox.open(O,T,L)},W.box.open.after=W.secretbox.open,W.box.keyPair=function(){var O=new Uint8Array(K1),T=new Uint8Array(r0);return H1(O,T),{publicKey:O,secretKey:T}},W.box.keyPair.fromSecretKey=function(O){if(J9(O),O.length!==r0)throw Error("bad secret key size");var T=new Uint8Array(K1);return k0(T,O),{publicKey:T,secretKey:new Uint8Array(O)}},W.box.publicKeyLength=K1,W.box.secretKeyLength=r0,W.box.sharedKeyLength=K0,W.box.nonceLength=F0,W.box.overheadLength=W.secretbox.overheadLength,W.sign=function(O,T){if(J9(O,T),T.length!==S1)throw Error("bad secret key size");var M=new Uint8Array(Q1+O.length);return qW(M,O,O.length,T),M},W.sign.open=function(O,T){if(J9(O,T),T.length!==X1)throw Error("bad public key size");var M=new Uint8Array(O.length),z=n7(M,O,O.length,T);if(z<0)return null;var L=new Uint8Array(z);for(var r=0;r<L.length;r++)L[r]=M[r];return L},W.sign.detached=function(O,T){var M=W.sign(O,T),z=new Uint8Array(Q1);for(var L=0;L<z.length;L++)z[L]=M[L];return z},W.sign.detached.verify=function(O,T,M){if(J9(O,T,M),T.length!==Q1)throw Error("bad signature size");if(M.length!==X1)throw Error("bad public key size");var z=new Uint8Array(Q1+O.length),L=new Uint8Array(Q1+O.length),r;for(r=0;r<Q1;r++)z[r]=T[r];for(r=0;r<O.length;r++)z[r+Q1]=O[r];return n7(L,z,z.length,M)>=0},W.sign.keyPair=function(){var O=new Uint8Array(X1),T=new Uint8Array(S1);return O8(O,T),{publicKey:O,secretKey:T}},W.sign.keyPair.fromSecretKey=function(O){if(J9(O),O.length!==S1)throw Error("bad secret key size");var T=new Uint8Array(X1);for(var M=0;M<T.length;M++)T[M]=O[32+M];return{publicKey:T,secretKey:new Uint8Array(O)}},W.sign.keyPair.fromSeed=function(O){if(J9(O),O.length!==o1)throw Error("bad seed size");var T=new Uint8Array(X1),M=new Uint8Array(S1);for(var z=0;z<32;z++)M[z]=O[z];return O8(T,M,!0),{publicKey:T,secretKey:M}},W.sign.publicKeyLength=X1,W.sign.secretKeyLength=S1,W.sign.seedLength=o1,W.sign.signatureLength=Q1,W.hash=function(O){J9(O);var T=new Uint8Array(V7);return E0(T,O,O.length),T},W.hash.hashLength=V7,W.verify=function(O,T){if(J9(O,T),O.length===0||T.length===0)return!1;if(O.length!==T.length)return!1;return w(O,0,T,0,O.length)===0?!0:!1},W.setPRNG=function(O){X=O},function(){var O=typeof self<"u"?self.crypto||self.msCrypto:null;if(O&&O.getRandomValues){var T=65536;W.setPRNG(function(M,z){var L,r=new Uint8Array(z);for(L=0;L<z;L+=T)O.getRandomValues(r.subarray(L,L+Math.min(z-L,T)));for(L=0;L<z;L++)M[L]=r[L];kJ(r)})}else if(O=$8("crypto"),O&&O.randomBytes)W.setPRNG(function(M,z){var L,r=O.randomBytes(z);for(L=0;L<z;L++)M[L]=r[L];kJ(r)})}()})(typeof SU<"u"&&ye?ye:self.nacl=self.nacl||{})});var Bz=Z1((JT)=>{Object.defineProperty(JT,"__esModule",{value:!0});class QT{constructor(W,G=0,X=0){this.start=G,this.end=X>G?X:G,this.buf=W}get length(){return this.buf.length}reset(W=0,G=0){if(this.start=W,G>=this.start)this.end=G;else if(this.end<this.start)this.end=this.start;return this}walk(W){return this.start=this.end,this.end+=W,this}mustHas(W,G="Too few bytes to parse."){let X=this.end+W;if(X>this.buf.length){let Y=Error(G);throw Y.available=this.buf.length,Y.requested=X,Y}return this.walk(0),this}mustWalk(W,G){return this.mustHas(W,G),this.walk(W),this}}JT.BufferVisitor=QT});var HT=Z1((NT)=>{Object.defineProperty(NT,"__esModule",{value:!0});var UT=$8("util"),qT=64,$z="-----BEGIN ",Fz="-----END ",bZ="-----",Ez="Proc-Type";class Sz{static parse(W){let G=[],X=W.toString("utf8").split(`
|
|
8
|
+
`).map((Y)=>Y.trim()).filter((Y)=>Y!==""&&!Y.startsWith("#"));while(X.length>0)G.push(jb(X));if(G.length===0)throw Error("PEM: no block");return G}constructor(W,G){this.type=W,this.body=G,this.headers=Object.create(null)}get procType(){return this.getHeader(Ez)}getHeader(W){let G=this.headers[W];return G==null?"":G}setHeader(W,G){if(W.includes(":"))throw Error("pem: cannot encode a header key that contains a colon");if(W===""||G==="")throw Error("pem: invalid header key or value");this.headers[W]=G}toString(){let W=$z+this.type+bZ+`
|
|
9
|
+
`,G=Object.keys(this.headers);if(G.length>0){let Z=this.procType;if(Z!=="")W+=`${Ez}: ${Z}
|
|
10
|
+
`;G.sort();for(let V of G)if(V!==Ez)W+=`${V}: ${this.headers[V]}
|
|
11
|
+
`;W+=`
|
|
12
|
+
`}let X=this.body.toString("base64"),Y=0;while(Y<X.length)W+=X.slice(Y,Y+qT)+`
|
|
13
|
+
`,Y+=qT;return W+=Fz+this.type+bZ+`
|
|
14
|
+
`,W}toBuffer(){return Buffer.from(this.toString(),"utf8")}valueOf(){return this.body}toJSON(){return{type:this.type,body:this.body,headers:this.headers}}[UT.inspect.custom](W,G){return`<${this.constructor.name} ${UT.inspect(this.toJSON(),G)}>`}}NT.PEM=Sz;function jb(W){let G=W.shift();if(G==null||!G.startsWith($z)||!G.endsWith(bZ))throw Error("pem: invalid BEGIN line");let X=G.slice($z.length,G.length-bZ.length);if(X==="")throw Error("pem: invalid type");let Y=[];G=W.shift();while(G!=null&&G.includes(": ")){let Q=G.split(": ");if(Q.length!==2||Q[0]===""||Q[1]==="")throw Error("pem: invalid Header line");Y.push(Q),G=W.shift()}let Z="";while(G!=null&&!G.startsWith(Fz))Z+=G,G=W.shift();if(G==null||G!==`${Fz}${X}${bZ}`)throw Error("pem: invalid END line");let V=new Sz(X,Buffer.from(Z,"base64"));if(Z===""||V.body.toString("base64")!==Z)throw Error("pem: invalid base64 body");for(let Q of Y)V.setHeader(Q[0],Q[1]);return V}});var jT=Z1((wT)=>{Object.defineProperty(wT,"__esModule",{value:!0});var AT=$8("util"),kU=Bz(),M8;(function(W){W[W.UNIVERSAL=0]="UNIVERSAL",W[W.APPLICATION=64]="APPLICATION",W[W.CONTEXT_SPECIFIC=128]="CONTEXT_SPECIFIC",W[W.PRIVATE=192]="PRIVATE"})(M8=wT.Class||(wT.Class={}));var x1;(function(W){W[W.NONE=0]="NONE",W[W.BOOLEAN=1]="BOOLEAN",W[W.INTEGER=2]="INTEGER",W[W.BITSTRING=3]="BITSTRING",W[W.OCTETSTRING=4]="OCTETSTRING",W[W.NULL=5]="NULL",W[W.OID=6]="OID",W[W.ENUMERATED=10]="ENUMERATED",W[W.UTF8=12]="UTF8",W[W.SEQUENCE=16]="SEQUENCE",W[W.SET=17]="SET",W[W.NUMERICSTRING=18]="NUMERICSTRING",W[W.PRINTABLESTRING=19]="PRINTABLESTRING",W[W.T61STRING=20]="T61STRING",W[W.IA5STRING=22]="IA5STRING",W[W.UTCTIME=23]="UTCTIME",W[W.GENERALIZEDTIME=24]="GENERALIZEDTIME",W[W.GENERALSTRING=27]="GENERALSTRING"})(x1=wT.Tag||(wT.Tag={}));class _U{constructor(W,G){this.buf=W,this.bitLen=G}at(W){if(W<0||W>=this.bitLen||!Number.isInteger(W))return 0;let G=Math.floor(W/8),X=7-W%8;return this.buf[G]>>X&1}rightAlign(){let W=8-this.bitLen%8;if(W===8||this.buf.length===0)return this.buf;let G=Buffer.alloc(this.buf.length);G[0]=this.buf[0]>>W;for(let X=1;X<this.buf.length;X++)G[X]=this.buf[X-1]<<8-W,G[X]|=this.buf[X]>>W;return G}}wT.BitString=_U;class O1{static Bool(W){let G=new O1(M8.UNIVERSAL,x1.BOOLEAN,Buffer.from([W?255:0]));return G._value=W,G}static parseBool(W){if(!(W instanceof Buffer)||W.length!==1)throw Error("ASN1 syntax error: invalid boolean");switch(W[0]){case 0:return!1;case 255:return!0;default:throw Error("ASN1 syntax error: invalid boolean")}}static Integer(W){if(W instanceof Buffer){let Y=new O1(M8.UNIVERSAL,x1.INTEGER,W);return Y._value=W.toString("hex"),Y}if(!Number.isSafeInteger(W))throw Error("ASN1 syntax error: invalid integer");let G;if(W>=-128&&W<128)G=Buffer.alloc(1),G.writeInt8(W,0);else if(W>=-32768&&W<32768)G=Buffer.alloc(2),G.writeIntBE(W,0,2);else if(W>=-8388608&&W<8388608)G=Buffer.alloc(3),G.writeIntBE(W,0,3);else if(W>=-2147483648&&W<2147483648)G=Buffer.alloc(4),G.writeIntBE(W,0,4);else if(W>=-549755813888&&W<549755813888)G=Buffer.alloc(5),G.writeIntBE(W,0,5);else if(W>=-140737488355328&&W<140737488355328)G=Buffer.alloc(6),G.writeIntBE(W,0,6);else throw Error("ASN1 syntax error: invalid Integer");let X=new O1(M8.UNIVERSAL,x1.INTEGER,G);return X._value=W,X}static parseInteger(W){if(!(W instanceof Buffer)||W.length===0)throw Error("ASN1 syntax error: invalid Integer");if(W.length>6)return W.toString("hex");return W.readIntBE(0,W.length)}static parseIntegerNum(W){let G=O1.parseInteger(W);if(typeof G!=="number")throw Error("ASN1 syntax error: invalid Integer number");return G}static parseIntegerStr(W){let G=O1.parseInteger(W);if(typeof G==="number")return G.toString(16);return G}static BitString(W){if(W instanceof Buffer)W=new _U(W,W.length*8);let G=W.buf.length*8-W.bitLen,X=Buffer.alloc(W.buf.length+1);return X.writeInt8(G,0),W.buf.copy(X,1),new O1(M8.UNIVERSAL,x1.BITSTRING,X)}static parseBitString(W){if(!(W instanceof Buffer)||W.length===0)throw Error("ASN1 syntax error: invalid BitString");let G=W[0];if(G>7||W.length===1&&G>0||(W[W.length-1]&(1<<W[0])-1)!==0)throw Error("ASN1 syntax error: invalid padding bits in BIT STRING");return new _U(W.slice(1),(W.length-1)*8-G)}static Null(){let W=new O1(M8.UNIVERSAL,x1.NULL,Buffer.alloc(0));return W._value=null,W}static parseNull(W){if(!(W instanceof Buffer)||W.length!==0)throw Error("ASN1 syntax error: invalid null");return null}static OID(W){let G=W.split(".");if(G.length===0)throw Error("ASN1 syntax error: invalid Object Identifier");let X=[];X.push(40*h8(G[0])+h8(G[1]));let Y=[];for(let V=2;V<G.length;++V){let Q=h8(G[V]);Y.length=0,Y.push(Q&127);while(Q>127)Q=Q>>>7,Y.unshift(Q&127|128);X.push(...Y)}let Z=new O1(M8.UNIVERSAL,x1.OID,Buffer.from(X));return Z._value=W,Z}static parseOID(W){if(!(W instanceof Buffer)||W.length===0)throw Error("ASN1 syntax error: invalid OID");let G=Math.floor(W[0]/40)+"."+W[0]%40,X=0;for(let Y=1;Y<W.length;Y++)if(W[Y]>=128)X+=W[Y]&127,X=X<<7;else G+="."+(X+W[Y]),X=0;return G}static UTF8(W){let G=new O1(M8.UNIVERSAL,x1.UTF8,Buffer.from(W,"utf8"));return G._value=W,G}static parseUTF8(W){if(!(W instanceof Buffer))throw Error("parse ASN1 error: invalid Buffer");return W.toString("utf8")}static NumericString(W){if(!zT(W))throw Error("ASN1 syntax error: invalid NumericString");let G=new O1(M8.UNIVERSAL,x1.NUMERICSTRING,Buffer.from(W,"utf8"));return G._value=W,G}static parseNumericString(W){if(!(W instanceof Buffer))throw Error("parse ASN1 error: invalid Buffer");let G=W.toString("utf8");if(!zT(G))throw Error("ASN1 syntax error: invalid NumericString");return G}static PrintableString(W){let G=new O1(M8.UNIVERSAL,x1.PRINTABLESTRING,Buffer.from(W,"utf8"));return G._value=W,G}static parsePrintableString(W){if(!(W instanceof Buffer))throw Error("parse ASN1 error: invalid Buffer");return W.toString("utf8")}static IA5String(W){if(!IT(W))throw Error("ASN1 syntax error: invalid IA5String");let G=new O1(M8.UNIVERSAL,x1.IA5STRING,Buffer.from(W,"utf8"));return G._value=W,G}static parseIA5String(W){if(!(W instanceof Buffer))throw Error("parse ASN1 error: invalid Buffer");let G=W.toString("utf8");if(!IT(G))throw Error("ASN1 syntax error: invalid IA5String");return G}static T61String(W){let G=new O1(M8.UNIVERSAL,x1.T61STRING,Buffer.from(W,"utf8"));return G._value=W,G}static parseT61String(W){if(!(W instanceof Buffer))throw Error("parse ASN1 error: invalid Buffer");return W.toString("utf8")}static GeneralString(W){let G=new O1(M8.UNIVERSAL,x1.GENERALSTRING,Buffer.from(W,"utf8"));return G._value=W,G}static parseGeneralString(W){if(!(W instanceof Buffer))throw Error("parse ASN1 error: invalid Buffer");return W.toString("utf8")}static UTCTime(W){let G="",X=[];X.push((""+W.getUTCFullYear()).substr(2)),X.push(""+(W.getUTCMonth()+1)),X.push(""+W.getUTCDate()),X.push(""+W.getUTCHours()),X.push(""+W.getUTCMinutes()),X.push(""+W.getUTCSeconds());for(let Z of X){if(Z.length<2)G+="0";G+=Z}G+="Z";let Y=new O1(M8.UNIVERSAL,x1.UTCTIME,Buffer.from(G,"utf8"));return Y._value=W,Y}static parseUTCTime(W){if(!(W instanceof Buffer)||W.length===0)throw Error("ASN1 syntax error: invalid UTC Time");let G=W.toString("utf8"),X=new Date,Y=h8(G.substr(0,2));Y=Y>=50?1900+Y:2000+Y;let Z=h8(G.substr(2,2))-1,V=h8(G.substr(4,2)),Q=h8(G.substr(6,2)),J=h8(G.substr(8,2)),U=0,q=0,N="";if(G.length>11){if(q=10,N=G.charAt(q),N!=="+"&&N!=="-")U=h8(G.substr(10,2)),q+=2}if(X.setUTCFullYear(Y,Z,V),X.setUTCHours(Q,J,U,0),q>0){if(N=G.charAt(q),N==="+"||N==="-"){let A=h8(G.substr(q+1,2)),H=h8(G.substr(q+4,2)),I=A*60+H;if(I*=60000,N==="+")X.setTime(+X-I);else X.setTime(+X+I)}}return X}static GeneralizedTime(W){let G="",X=[];X.push(""+W.getUTCFullYear()),X.push(""+(W.getUTCMonth()+1)),X.push(""+W.getUTCDate()),X.push(""+W.getUTCHours()),X.push(""+W.getUTCMinutes()),X.push(""+W.getUTCSeconds());for(let Z of X){if(Z.length<2)G+="0";G+=Z}G+="Z";let Y=new O1(M8.UNIVERSAL,x1.GENERALIZEDTIME,Buffer.from(G,"utf8"));return Y._value=W,Y}static parseGeneralizedTime(W){if(!(W instanceof Buffer)||W.length===0)throw Error("ASN1 syntax error: invalid Generalized Time");let G=W.toString("utf8"),X=new Date,Y=h8(G.substr(0,4)),Z=h8(G.substr(4,2))-1,V=h8(G.substr(6,2)),Q=h8(G.substr(8,2)),J=h8(G.substr(10,2)),U=h8(G.substr(12,2)),q=0,N=0,A=!1;if(G.charAt(G.length-1)==="Z")A=!0;let H=G.length-5,I=G.charAt(H);if(I==="+"||I==="-"){let w=h8(G.substr(H+1,2)),C=h8(G.substr(H+4,2));if(N=w*60+C,N*=60000,I==="+")N*=-1;A=!0}if(G.charAt(14)===".")q=parseFloat(G.substr(14))*1000;if(A)X.setUTCFullYear(Y,Z,V),X.setUTCHours(Q,J,U,q),X.setTime(+X+N);else X.setFullYear(Y,Z,V),X.setHours(Q,J,U,q);return X}static parseTime(W,G){switch(W){case x1.UTCTIME:return O1.parseUTCTime(G);case x1.GENERALIZEDTIME:return O1.parseGeneralizedTime(G);default:throw Error("Invalid ASN1 time tag")}}static Set(W){let G=new O1(M8.UNIVERSAL,x1.SET,Buffer.concat(W.map((X)=>X.toDER())));return G._value=W,G}static Seq(W){let G=new O1(M8.UNIVERSAL,x1.SEQUENCE,Buffer.concat(W.map((X)=>X.toDER())));return G._value=W,G}static Spec(W,G,X=!0){let Y=Array.isArray(G)?Buffer.concat(G.map((V)=>V.toDER())):G.toDER();if(Array.isArray(G))X=!0;let Z=new O1(M8.CONTEXT_SPECIFIC,W,Y,X);return Z._value=G,Z}static fromDER(W,G=!1){return O1._fromDER(new kU.BufferVisitor(W),G)}static parseDER(W,G,X){let Y=O1._fromDER(new kU.BufferVisitor(W),!1);if(Y.class!==G&&Y.tag!==X)throw Error(`invalid ASN.1 DER for class ${G} and tag ${X}`);return Y}static parseDERWithTemplate(W,G){let X=O1._fromDER(new kU.BufferVisitor(W),!0),Y={},Z=X.validate(G,Y);if(Z!=null)throw Z.data=X,Z;return Y}static _parseCompound(W,G){let X=[],Y=W.length,Z=new kU.BufferVisitor(W),V=0;while(V<Y){let Q=Z.end;X.push(O1._fromDER(Z,G)),V+=Z.end-Q}return X}static _fromDER(W,G){if(!(W.buf instanceof Buffer)||W.length===0)throw Error("ASN1 syntax error: invalid Generalized Time");W.mustWalk(1,"Too few bytes to read ASN.1 tag.");let X=W.start,Y=W.buf[X],Z=Y&192,V=Y&31,Q=Db(W);if(W.mustHas(Q),Q!==0&&V===x1.NULL)throw Error("invalid value length or NULL tag.");W.mustWalk(Q);let J=(Y&32)===32,U=new O1(Z,V,W.buf.slice(W.start,W.end),J);if(J&&G)U._value=O1._parseCompound(U.bytes,G);return U._der=W.buf.slice(X,W.end),U}constructor(W,G,X,Y=!1){this.class=W,this.tag=G,this.bytes=X,this.isCompound=Y||G===x1.SEQUENCE||G===x1.SET,this._value=void 0,this._der=null}get value(){if(this._value===void 0)this._value=this.valueOf();return this._value}get DER(){if(this._der==null)this._der=this.toDER();return this._der}mustCompound(W="asn1 object value is not compound"){if(!this.isCompound||!Array.isArray(this.value)){let G=Error(W);throw G.data=this.toJSON(),G}return this.value}equals(W){if(!(W instanceof O1))return!1;if(this.class!==W.class||this.tag!==W.tag||this.isCompound!==W.isCompound)return!1;if(!this.bytes.equals(W.bytes))return!1;return!0}toDER(){let W=this.class|this.tag;if(this.isCompound)W|=32;let G=Mb(this.bytes.length),X=Buffer.allocUnsafe(2+G+this.bytes.length);if(X.writeInt8(W,0),G===0)X.writeUInt8(this.bytes.length,1),this.bytes.copy(X,2);else X.writeUInt8(G|128,1),X.writeUIntBE(this.bytes.length,2,G),this.bytes.copy(X,2+G);return X}valueOf(){if(this.isCompound)return O1._parseCompound(this.bytes,!1);if(this.class!==M8.UNIVERSAL)return this.bytes;switch(this.tag){case x1.BOOLEAN:return O1.parseBool(this.bytes);case x1.INTEGER:return O1.parseInteger(this.bytes);case x1.BITSTRING:return O1.parseBitString(this.bytes);case x1.NULL:return O1.parseNull(this.bytes);case x1.OID:return O1.parseOID(this.bytes);case x1.UTF8:return O1.parseUTF8(this.bytes);case x1.NUMERICSTRING:return O1.parseNumericString(this.bytes);case x1.PRINTABLESTRING:return O1.parsePrintableString(this.bytes);case x1.T61STRING:return O1.parseT61String(this.bytes);case x1.IA5STRING:return O1.parseIA5String(this.bytes);case x1.GENERALSTRING:return O1.parseGeneralString(this.bytes);case x1.UTCTIME:return O1.parseUTCTime(this.bytes);case x1.GENERALIZEDTIME:return O1.parseGeneralizedTime(this.bytes);default:return this.bytes}}validate(W,G={}){if(this.class!==W.class)return Error(`ASN.1 object validate failure for ${W.name} : error class ${M8[this.class]}`);if(!(Array.isArray(W.tag)?W.tag:[W.tag]).includes(this.tag))return Error(`ASN.1 object validate failure for ${W.name}: error tag ${x1[this.tag]}`);if(W.capture!=null)G[W.capture]=this;if(Array.isArray(W.value)){let Y=this.mustCompound(`${W.name} need compound ASN1 value`);for(let Z=0,V=0;Z<W.value.length;Z++)if(Y[V]!=null){let Q=Y[V].validate(W.value[Z],G);if(Q==null)V++;else if(W.value[Z].optional!==!0)return Q}else if(W.value[Z].optional!==!0)return Error(`ASN.1 object validate failure for ${W.value[Z].name}: not exists`)}else if(W.value!=null){let Y=this.tag===x1.BITSTRING?this.bytes.slice(1):this.bytes;return O1.fromDER(Y).validate(W.value,G)}return null}toJSON(){let W=this.value;if(Array.isArray(W))W=W.map((G)=>G.toJSON());return{class:M8[this.class],tag:this.class===M8.UNIVERSAL?x1[this.tag]:this.tag,value:W}}[AT.inspect.custom](W,G){if(G.depth<=2)G.depth=10;return`<${this.constructor.name} ${AT.inspect(this.toJSON(),G)}>`}}wT.ASN1=O1;function Db(W){W.mustWalk(1,"Too few bytes to read ASN.1 value length.");let G=W.buf[W.start];if((G&128)===0)return G;let X=G&127;return W.mustWalk(X,"Too few bytes to read ASN.1 value length."),W.buf.readUIntBE(W.start,X)}function Mb(W){if(W<=127)return 0;else if(W<=255)return 1;else if(W<=65535)return 2;else if(W<=16777215)return 3;else if(W<=4294967295)return 4;else if(W<=1099511627775)return 5;else if(W<=281474976710655)return 6;else throw Error("invalid value length")}function zT(W){for(let G of W){let X=G.charCodeAt(0);if(X!==32&&(X<48||X>57))return!1}return!0}function IT(W){for(let G of W)if(G.charCodeAt(0)>=128)return!1;return!0}function h8(W,G=10){let X=parseInt(W,G);if(Number.isNaN(X))throw Error(`Invalid numeric string "${W}" in radix ${G}.`);return X}});var xz=Z1((OT)=>{Object.defineProperty(OT,"__esModule",{value:!0});var Rb=Bz();OT.BufferVisitor=Rb.BufferVisitor;var Lb=HT();OT.PEM=Lb.PEM;var yU=jT();OT.ASN1=yU.ASN1;OT.Class=yU.Class;OT.Tag=yU.Tag;OT.BitString=yU.BitString});var vz=Z1((KT)=>{Object.defineProperty(KT,"__esModule",{value:!0});var A6=$8("util"),mZ=$8("crypto"),kz=xU(),P0=xz(),A9=FU();KT.publicKeyValidator={name:"PublicKeyInfo",class:P0.Class.UNIVERSAL,tag:P0.Tag.SEQUENCE,capture:"publicKeyInfo",value:[{name:"PublicKeyInfo.AlgorithmIdentifier",class:P0.Class.UNIVERSAL,tag:P0.Tag.SEQUENCE,value:[{name:"PublicKeyAlgorithmIdentifier.algorithm",class:P0.Class.UNIVERSAL,tag:P0.Tag.OID,capture:"publicKeyOID"}]},{name:"PublicKeyInfo.PublicKey",class:P0.Class.UNIVERSAL,tag:P0.Tag.BITSTRING,capture:"publicKey"}]};KT.privateKeyValidator={name:"PrivateKeyInfo",class:P0.Class.UNIVERSAL,tag:P0.Tag.SEQUENCE,capture:"privateKeyInfo",value:[{name:"PrivateKeyInfo.Version",class:P0.Class.UNIVERSAL,tag:P0.Tag.INTEGER,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.AlgorithmIdentifier",class:P0.Class.UNIVERSAL,tag:P0.Tag.SEQUENCE,value:[{name:"PrivateKeyAlgorithmIdentifier.algorithm",class:P0.Class.UNIVERSAL,tag:P0.Tag.OID,capture:"privateKeyOID"}]},{name:"PrivateKeyInfo.PrivateKey",class:P0.Class.UNIVERSAL,tag:P0.Tag.OCTETSTRING,capture:"privateKey"}]};var kb={name:"RSAPublicKey",class:P0.Class.UNIVERSAL,tag:P0.Tag.SEQUENCE,value:[{name:"RSAPublicKey.modulus",class:P0.Class.UNIVERSAL,tag:P0.Tag.INTEGER,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",class:P0.Class.UNIVERSAL,tag:P0.Tag.INTEGER,capture:"publicKeyExponent"}]},_b={name:"RSAPrivateKey",class:P0.Class.UNIVERSAL,tag:P0.Tag.SEQUENCE,value:[{name:"RSAPrivateKey.version",class:P0.Class.UNIVERSAL,tag:P0.Tag.INTEGER,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",class:P0.Class.UNIVERSAL,tag:P0.Tag.INTEGER,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",class:P0.Class.UNIVERSAL,tag:P0.Tag.INTEGER,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",class:P0.Class.UNIVERSAL,tag:P0.Tag.INTEGER,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",class:P0.Class.UNIVERSAL,tag:P0.Tag.INTEGER,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",class:P0.Class.UNIVERSAL,tag:P0.Tag.INTEGER,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",class:P0.Class.UNIVERSAL,tag:P0.Tag.INTEGER,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",class:P0.Class.UNIVERSAL,tag:P0.Tag.INTEGER,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",class:P0.Class.UNIVERSAL,tag:P0.Tag.INTEGER,capture:"privateKeyCoefficient"}]},yb=[A9.getOID("X25519"),A9.getOID("X448"),A9.getOID("Ed25519"),A9.getOID("Ed448")];class A7{constructor(W){let G={},X=W.validate(KT.publicKeyValidator,G);if(X!=null)throw Error("Cannot read X.509 public key: "+X.message);this.oid=P0.ASN1.parseOID(G.publicKeyOID.bytes),this.algo=A9.getOIDName(this.oid),this._pkcs8=W,this._keyRaw=P0.ASN1.parseBitString(G.publicKey.bytes).buf,this._finalKey=this._keyRaw,this._finalPEM=""}static fromPEM(W){let G=P0.PEM.parse(W)[0];if(G.procType.includes("ENCRYPTED"))throw Error("Could not convert public key from PEM, PEM is encrypted.");let X=P0.ASN1.fromDER(G.body,!0);switch(G.type){case"PUBLIC KEY":return new A7(X);case"RSA PUBLIC KEY":let Y=P0.ASN1.Seq([P0.ASN1.Seq([P0.ASN1.OID(A9.getOID("rsaEncryption")),P0.ASN1.Null()]),P0.ASN1.BitString(X.DER)]);return new A7(Y);default:throw Error("Could not convert public key from PEM, recommend PKCS#8 PEM")}}static addVerifier(W,G){if(W=A9.getOID(W),W==="")throw Error(`Invalid object identifier: ${W}`);if(A7._verifiers[W]!=null)throw Error(`Verifier ${W} exists`);A7._verifiers[W]=G}get keyRaw(){return this._finalKey}verify(W,G,X){let Y=A7._verifiers[this.oid];if(Y!=null){let V=mZ.createHash(X).update(W).digest();return Y.call(this,V,G)}let Z=mZ.createVerify(X);return Z.update(W),Z.verify(this.toPEM(),G)}getFingerprint(W,G="PublicKey"){let X;switch(G){case"PublicKeyInfo":X=this._pkcs8.DER;break;case"PublicKey":X=this._keyRaw;break;default:throw Error(`Unknown fingerprint type "${G}".`)}let Y=mZ.createHash(W);return Y.update(X),Y.digest()}toASN1(){return this._pkcs8}toDER(){return this._pkcs8.DER}toPEM(){if(this._finalPEM==="")this._finalPEM=new P0.PEM("PUBLIC KEY",this._pkcs8.DER).toString();return this._finalPEM}toJSON(){return{oid:this.oid,algo:this.algo,publicKey:this._keyRaw}}[A6.inspect.custom](W,G){return`<${this.constructor.name} ${A6.inspect(this.toJSON(),G)}>`}}A7._verifiers=Object.create(null);KT.PublicKey=A7;class z7{constructor(W){let G=Object.create(null),X=W.validate(KT.privateKeyValidator,G);if(X!=null)throw Error("Cannot read X.509 private key: "+X.message);if(this.version=P0.ASN1.parseIntegerNum(G.privateKeyVersion.bytes)+1,this.oid=P0.ASN1.parseOID(G.privateKeyOID.bytes),this.algo=A9.getOIDName(this.oid),this._pkcs8=W,this._keyRaw=G.privateKey.bytes,this._publicKeyRaw=null,this._finalKey=this._keyRaw,this._finalPEM="",yb.includes(this.oid)){if(this._finalKey=this._keyRaw=P0.ASN1.parseDER(this._keyRaw,P0.Class.UNIVERSAL,P0.Tag.OCTETSTRING).bytes,this.oid==="1.3.101.112"){let Y=kz.sign.keyPair.fromSeed(this._keyRaw);this._publicKeyRaw=Buffer.from(Y.publicKey),this._finalKey=Buffer.from(Y.secretKey)}else if(this.version===2){for(let Y of W.mustCompound())if(Y.class===P0.Class.CONTEXT_SPECIFIC&&Y.tag===1)this._publicKeyRaw=P0.ASN1.parseBitString(Y.bytes).buf,this._finalKey=Buffer.concat([this._keyRaw,this._publicKeyRaw])}}}static fromPEM(W){let G=P0.PEM.parse(W)[0];if(G.procType.includes("ENCRYPTED"))throw Error("Could not convert private key from PEM, PEM is encrypted.");let X=P0.ASN1.fromDER(G.body,!0);switch(G.type){case"PRIVATE KEY":return new z7(X);case"RSA PRIVATE KEY":return X=P0.ASN1.Seq([X.value[0],P0.ASN1.Seq([P0.ASN1.OID(A9.getOID("rsaEncryption")),P0.ASN1.Null()]),new P0.ASN1(P0.Class.UNIVERSAL,P0.Tag.OCTETSTRING,X.DER)]),new z7(X);default:throw Error("Could not convert private key from PEM, recommend PKCS#8 PEM")}}static addSigner(W,G){if(W=A9.getOID(W),W==="")throw Error(`Invalid object identifier: ${W}`);if(z7._signers[W]!=null)throw Error(`Signer ${W} exists`);z7._signers[W]=G}get keyRaw(){return this._finalKey}get publicKeyRaw(){return this._publicKeyRaw}sign(W,G){let X=z7._signers[this.oid];if(X!=null){let Z=mZ.createHash(G).update(W).digest();return X.call(this,Z)}let Y=mZ.createSign(G);return Y.update(W),Y.sign(this.toPEM())}toASN1(){return this._pkcs8}toDER(){return this._pkcs8.DER}toPEM(){if(this._finalPEM==="")this._finalPEM=new P0.PEM("PRIVATE KEY",this._pkcs8.DER).toString();return this._finalPEM}toJSON(){return{version:this.version,oid:this.oid,algo:this.algo,privateKey:this._keyRaw,publicKey:this._publicKeyRaw}}[A6.inspect.custom](W,G){return`<${this.constructor.name} ${A6.inspect(this.toJSON(),G)}>`}}z7._signers=Object.create(null);KT.PrivateKey=z7;class _z extends A7{static fromPublicKey(W){return new _z(W.toASN1())}constructor(W){super(W);if(A9.getOID(this.oid)!==A9.getOID("rsaEncryption"))throw Error(`Invalid RSA public key, unknown OID: ${this.oid}`);let G=Object.create(null);this._pkcs1=P0.ASN1.fromDER(this._keyRaw,!0);let X=this._pkcs1.validate(kb,G);if(X!=null)throw Error("Cannot read RSA public key: "+X.message);this.modulus=P0.ASN1.parseIntegerStr(G.publicKeyModulus.bytes),this.exponent=P0.ASN1.parseIntegerNum(G.publicKeyExponent.bytes)}toASN1(){return this._pkcs1}toDER(){return this._keyRaw}toPEM(){if(this._finalPEM==="")this._finalPEM=new P0.PEM("RSA PUBLIC KEY",this._keyRaw).toString();return this._finalPEM}toPublicKeyPEM(){return new P0.PEM("PUBLIC KEY",this._pkcs8.DER).toString()}toJSON(){return{oid:this.oid,algo:this.algo,modulus:H6(this.modulus),exponent:this.exponent}}[A6.inspect.custom](W,G){return`<${this.constructor.name} ${A6.inspect(this.toJSON(),G)}>`}}KT.RSAPublicKey=_z;class yz extends z7{static fromPrivateKey(W){return new yz(W.toASN1())}constructor(W){super(W);if(A9.getOID(this.oid)!==A9.getOID("rsaEncryption"))throw Error(`Invalid RSA private key, unknown OID: ${this.oid}`);let G=Object.create(null);this._pkcs1=P0.ASN1.fromDER(this._keyRaw,!0);let X=this._pkcs1.validate(_b,G);if(X!=null)throw Error("Cannot read RSA private key: "+X.message);this.publicExponent=P0.ASN1.parseIntegerNum(G.privateKeyPublicExponent.bytes),this.privateExponent=P0.ASN1.parseIntegerStr(G.privateKeyPrivateExponent.bytes),this.modulus=P0.ASN1.parseIntegerStr(G.privateKeyModulus.bytes),this.prime1=P0.ASN1.parseIntegerStr(G.privateKeyPrime1.bytes),this.prime2=P0.ASN1.parseIntegerStr(G.privateKeyPrime2.bytes),this.exponent1=P0.ASN1.parseIntegerStr(G.privateKeyExponent1.bytes),this.exponent2=P0.ASN1.parseIntegerStr(G.privateKeyExponent2.bytes),this.coefficient=P0.ASN1.parseIntegerStr(G.privateKeyCoefficient.bytes)}toASN1(){return this._pkcs1}toDER(){return this._keyRaw}toPEM(){if(this._finalPEM==="")this._finalPEM=new P0.PEM("RSA PRIVATE KEY",this._keyRaw).toString();return this._finalPEM}toPrivateKeyPEM(){return new P0.PEM("PRIVATE KEY",this._pkcs8.DER).toString()}toJSON(){return{version:this.version,oid:this.oid,algo:this.algo,publicExponent:this.publicExponent,privateExponent:H6(this.privateExponent),modulus:H6(this.modulus),prime1:H6(this.prime1),prime2:H6(this.prime2),exponent1:H6(this.exponent1),exponent2:H6(this.exponent2),coefficient:H6(this.coefficient)}}[A6.inspect.custom](W,G){return`<${this.constructor.name} ${A6.inspect(this.toJSON(),G)}>`}}KT.RSAPrivateKey=yz;function H6(W){return W.length%8!==0&&W.startsWith("00")?W.slice(2):W}A7.addVerifier(A9.getOID("Ed25519"),function(W,G){return kz.sign.detached.verify(W,G,this.keyRaw)});z7.addSigner(A9.getOID("Ed25519"),function(W){let G=this.keyRaw;if(G.length!==64)throw Error("Invalid signing key.");return Buffer.from(kz.sign.detached(W,G))})});var ET=Z1((BT)=>{Object.defineProperty(BT,"__esModule",{value:!0});var MT=$8("util"),bb=$8("crypto"),j0=xz(),z9=FU(),LT=vz(),b8=Object.create(null);b8.CN=z9.getOID("commonName");b8.commonName="CN";b8.C=z9.getOID("countryName");b8.countryName="C";b8.L=z9.getOID("localityName");b8.localityName="L";b8.ST=z9.getOID("stateOrProvinceName");b8.stateOrProvinceName="ST";b8.O=z9.getOID("organizationName");b8.organizationName="O";b8.OU=z9.getOID("organizationalUnitName");b8.organizationalUnitName="OU";b8.E=z9.getOID("emailAddress");b8.emailAddress="E";function mb(W){return b8[W]==null?"":b8[W]}var fb={name:"Certificate",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,value:[{name:"Certificate.TBSCertificate",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,capture:"tbsCertificate",value:[{name:"Certificate.TBSCertificate.version",class:j0.Class.CONTEXT_SPECIFIC,tag:j0.Tag.NONE,optional:!0,value:[{name:"Certificate.TBSCertificate.version.integer",class:j0.Class.UNIVERSAL,tag:j0.Tag.INTEGER,capture:"certVersion"}]},{name:"Certificate.TBSCertificate.serialNumber",class:j0.Class.UNIVERSAL,tag:j0.Tag.INTEGER,capture:"certSerialNumber"},{name:"Certificate.TBSCertificate.signature",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,value:[{name:"Certificate.TBSCertificate.signature.algorithm",class:j0.Class.UNIVERSAL,tag:j0.Tag.OID,capture:"certinfoSignatureOID"},{name:"Certificate.TBSCertificate.signature.parameters",class:j0.Class.UNIVERSAL,tag:j0.Tag.OCTETSTRING,optional:!0,capture:"certinfoSignatureParams"}]},{name:"Certificate.TBSCertificate.issuer",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,capture:"certIssuer"},{name:"Certificate.TBSCertificate.validity",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,value:[{name:"Certificate.TBSCertificate.validity.notBefore",class:j0.Class.UNIVERSAL,tag:[j0.Tag.UTCTIME,j0.Tag.GENERALIZEDTIME],capture:"certValidityNotBefore"},{name:"Certificate.TBSCertificate.validity.notAfter",class:j0.Class.UNIVERSAL,tag:[j0.Tag.UTCTIME,j0.Tag.GENERALIZEDTIME],capture:"certValidityNotAfter"}]},{name:"Certificate.TBSCertificate.subject",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,capture:"certSubject"},LT.publicKeyValidator,{name:"Certificate.TBSCertificate.issuerUniqueID",class:j0.Class.CONTEXT_SPECIFIC,tag:j0.Tag.BOOLEAN,optional:!0,value:[{name:"Certificate.TBSCertificate.issuerUniqueID.id",class:j0.Class.UNIVERSAL,tag:j0.Tag.BITSTRING,capture:"certIssuerUniqueId"}]},{name:"Certificate.TBSCertificate.subjectUniqueID",class:j0.Class.CONTEXT_SPECIFIC,tag:j0.Tag.INTEGER,optional:!0,value:[{name:"Certificate.TBSCertificate.subjectUniqueID.id",class:j0.Class.UNIVERSAL,tag:j0.Tag.BITSTRING,capture:"certSubjectUniqueId"}]},{name:"Certificate.TBSCertificate.extensions",class:j0.Class.CONTEXT_SPECIFIC,tag:j0.Tag.BITSTRING,capture:"certExtensions",optional:!0}]},{name:"Certificate.signatureAlgorithm",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,value:[{name:"Certificate.signatureAlgorithm.algorithm",class:j0.Class.UNIVERSAL,tag:j0.Tag.OID,capture:"certSignatureOID"},{name:"Certificate.TBSCertificate.signature.parameters",class:j0.Class.UNIVERSAL,tag:j0.Tag.OCTETSTRING,optional:!0,capture:"certSignatureParams"}]},{name:"Certificate.signatureValue",class:j0.Class.UNIVERSAL,tag:j0.Tag.BITSTRING,capture:"certSignature"}]};class vU{constructor(){this.attributes=[],this.uniqueId=null}get commonName(){return this.getFieldValue("commonName")}get organizationName(){return this.getFieldValue("organizationName")}get organizationalUnitName(){return this.getFieldValue("organizationalUnitName")}get countryName(){return this.getFieldValue("countryName")}get localityName(){return this.getFieldValue("localityName")}get serialName(){return this.getFieldValue("serialName")}getHash(){let W=bb.createHash("sha1");for(let G of this.attributes)W.update(G.oid),W.update(G.value);return W.digest()}getField(W){for(let G of this.attributes)if(W===G.oid||W===G.name||W===G.shortName)return G;return null}addField(W){PT([W]),this.attributes.push(W)}setAttrs(W){PT(W),this.attributes=W}toJSON(){let W={};for(let G of this.attributes){let X=G.shortName;if(typeof X==="string"&&X!=="")W[X]=G.value}return W.uniqueId=this.uniqueId,W.attributes=this.attributes,W}getFieldValue(W){let G=this.getField(W);if(G!=null)return G.value;return""}}BT.DistinguishedName=vU;class gU{static fromPEMs(W){let G=[],X=j0.PEM.parse(W);for(let Y of X){if(Y.type!=="CERTIFICATE"&&Y.type!=="X509 CERTIFICATE"&&Y.type!=="TRUSTED CERTIFICATE")throw Error("Could not convert certificate from PEM: invalid type");if(Y.procType.includes("ENCRYPTED"))throw Error("Could not convert certificate from PEM: PEM is encrypted.");let Z=j0.ASN1.fromDER(Y.body);G.push(new gU(Z))}if(G.length===0)throw Error("No Certificate");return G}static fromPEM(W){return gU.fromPEMs(W)[0]}constructor(W){let G=Object.create(null),X=W.validate(fb,G);if(X!=null)throw Error("Cannot read X.509 certificate: "+X.message);if(this.raw=W.DER,this.version=G.certVersion==null?0:j0.ASN1.parseIntegerNum(G.certVersion.bytes)+1,this.serialNumber=j0.ASN1.parseIntegerStr(G.certSerialNumber.bytes),this.signatureOID=j0.ASN1.parseOID(G.certSignatureOID.bytes),this.signatureAlgorithm=z9.getOIDName(this.signatureOID),this.infoSignatureOID=j0.ASN1.parseOID(G.certinfoSignatureOID.bytes),this.signature=j0.ASN1.parseBitString(G.certSignature.bytes).buf,this.validFrom=j0.ASN1.parseTime(G.certValidityNotBefore.tag,G.certValidityNotBefore.bytes),this.validTo=j0.ASN1.parseTime(G.certValidityNotAfter.tag,G.certValidityNotAfter.bytes),this.issuer=new vU,this.issuer.setAttrs(RT(G.certIssuer)),G.certIssuerUniqueId!=null)this.issuer.uniqueId=j0.ASN1.parseBitString(G.certIssuerUniqueId.bytes);if(this.subject=new vU,this.subject.setAttrs(RT(G.certSubject)),G.certSubjectUniqueId!=null)this.subject.uniqueId=j0.ASN1.parseBitString(G.certSubjectUniqueId.bytes);if(this.extensions=[],this.subjectKeyIdentifier="",this.authorityKeyIdentifier="",this.ocspServer="",this.issuingCertificateURL="",this.isCA=!1,this.maxPathLen=-1,this.basicConstraintsValid=!1,this.keyUsage=0,this.dnsNames=[],this.emailAddresses=[],this.ipAddresses=[],this.uris=[],G.certExtensions!=null){this.extensions=cb(G.certExtensions);for(let Y of this.extensions){if(typeof Y.subjectKeyIdentifier==="string")this.subjectKeyIdentifier=Y.subjectKeyIdentifier;if(typeof Y.authorityKeyIdentifier==="string")this.authorityKeyIdentifier=Y.authorityKeyIdentifier;if(typeof Y.authorityInfoAccessOcsp==="string")this.ocspServer=Y.authorityInfoAccessOcsp;if(typeof Y.authorityInfoAccessIssuers==="string")this.issuingCertificateURL=Y.authorityInfoAccessIssuers;if(typeof Y.basicConstraintsValid==="boolean")this.isCA=Y.isCA,this.maxPathLen=Y.maxPathLen,this.basicConstraintsValid=Y.basicConstraintsValid;if(typeof Y.keyUsage==="number")this.keyUsage=Y.keyUsage;if(Array.isArray(Y.altNames))for(let Z of Y.altNames){if(Z.dnsName!=null)this.dnsNames.push(Z.dnsName);if(Z.email!=null)this.emailAddresses.push(Z.email);if(Z.ip!=null)this.ipAddresses.push(Z.ip);if(Z.uri!=null)this.uris.push(Z.uri)}}}this.publicKey=new LT.PublicKey(G.publicKeyInfo),this.publicKeyRaw=this.publicKey.toDER(),this.tbsCertificate=G.tbsCertificate}getExtension(W,G=""){for(let X of this.extensions)if(W===X.oid||W===X.name)return G===""?X:X[G];return null}checkSignature(W){if(this.version===3&&!this.basicConstraintsValid||this.basicConstraintsValid&&!this.isCA)return Error("The parent constraint violation error");if(this.getExtension("keyUsage","keyCertSign")!==!0)return Error("The parent constraint violation error");if(!W.isIssuer(this))return Error("The parent certificate did not issue the given child certificate");let G=Wm(W.signatureOID);if(G==="")return Error("Unknown child signature OID.");if(this.publicKey.verify(W.tbsCertificate.DER,W.signature,G)===!1)return Error("Child signature not matched");return null}isIssuer(W){return this.issuer.getHash().equals(W.subject.getHash())}verifySubjectKeyIdentifier(){return this.publicKey.getFingerprint("sha1","PublicKey").toString("hex")===this.subjectKeyIdentifier}toJSON(){let W={};for(let G of Object.keys(this))W[G]=Gm(this[G]);return delete W.tbsCertificate,W}[MT.inspect.custom](W,G){if(G.depth<=2)G.depth=10;return`<${this.constructor.name} ${MT.inspect(this.toJSON(),G)}>`}}BT.Certificate=gU;function cb(W){let G=[];for(let X of W.mustCompound())for(let Y of X.mustCompound())G.push(pb(Y));return G}function pb(W){let G={};if(G.oid=j0.ASN1.parseOID(W.value[0].bytes),G.critical=!1,W.value[1].tag===j0.Tag.BOOLEAN)G.critical=j0.ASN1.parseBool(W.value[1].bytes),G.value=W.value[2].bytes;else G.value=W.value[1].bytes;switch(G.name=z9.getOIDName(G.oid),G.name){case"keyUsage":lb(G);break;case"basicConstraints":db(G);break;case"extKeyUsage":ob(G);break;case"nsCertType":nb(G);break;case"subjectAltName":TT(G);break;case"issuerAltName":TT(G);break;case"subjectKeyIdentifier":rb(G);break;case"authorityKeyIdentifier":sb(G);break;case"authorityInfoAccess":eb(G);break}return G}function lb(W){let G=j0.ASN1.parseBitString(j0.ASN1.fromDER(W.value).bytes),X=0,Y=0;W.keyUsage=0;for(let Z=0;Z<9;Z++)if(G.at(Z)!==0)W.keyUsage|=1<<Z;if(G.buf.length>0)X=G.buf[0],Y=G.buf.length>1?G.buf[1]:0;W.digitalSignature=(X&128)===128,W.nonRepudiation=(X&64)===64,W.keyEncipherment=(X&32)===32,W.dataEncipherment=(X&16)===16,W.keyAgreement=(X&8)===8,W.keyCertSign=(X&4)===4,W.cRLSign=(X&2)===2,W.encipherOnly=(X&1)===1,W.decipherOnly=(Y&128)===128}function db(W){let X=j0.ASN1.fromDER(W.value).mustCompound();if(X.length>0&&X[0].tag===j0.Tag.BOOLEAN)W.isCA=j0.ASN1.parseBool(X[0].bytes);else W.isCA=!1;let Y=null;if(X.length>0&&X[0].tag===j0.Tag.INTEGER)Y=X[0].bytes;else if(X.length>1)Y=X[1].bytes;if(Y!==null)W.maxPathLen=j0.ASN1.parseInteger(Y);else W.maxPathLen=-1;W.basicConstraintsValid=!0}function ob(W){let X=j0.ASN1.fromDER(W.value).mustCompound();for(let Y of X)W[z9.getOIDName(j0.ASN1.parseOID(Y.bytes))]=!0}function nb(W){let G=j0.ASN1.parseBitString(j0.ASN1.fromDER(W.value).bytes),X=0;if(G.buf.length>0)X=G.buf[0];W.client=(X&128)===128,W.server=(X&64)===64,W.email=(X&32)===32,W.objsign=(X&16)===16,W.reserved=(X&8)===8,W.sslCA=(X&4)===4,W.emailCA=(X&2)===2,W.objCA=(X&1)===1}function TT(W){W.altNames=[];let X=j0.ASN1.fromDER(W.value).mustCompound();for(let Y of X){let Z={tag:Y.tag,value:Y.bytes};switch(W.altNames.push(Z),Y.tag){case 1:Z.email=Y.bytes.toString();break;case 2:Z.dnsName=Y.bytes.toString();break;case 6:Z.uri=Y.bytes.toString();break;case 7:Z.ip=z9.bytesToIP(Y.bytes);break;case 8:Z.oid=j0.ASN1.parseOID(Y.bytes);break;default:}}}var ib={name:"subjectKeyIdentifier",class:j0.Class.UNIVERSAL,tag:j0.Tag.OCTETSTRING,capture:"subjectKeyIdentifier"};function rb(W){let G=j0.ASN1.parseDERWithTemplate(W.value,ib);W.subjectKeyIdentifier=G.subjectKeyIdentifier.bytes.toString("hex")}var ab={name:"authorityKeyIdentifier",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,value:[{name:"authorityKeyIdentifier.value",class:j0.Class.CONTEXT_SPECIFIC,tag:j0.Tag.NONE,capture:"authorityKeyIdentifier"}]};function sb(W){let G=j0.ASN1.parseDERWithTemplate(W.value,ab);W.authorityKeyIdentifier=G.authorityKeyIdentifier.bytes.toString("hex")}var tb={name:"authorityInfoAccess",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,value:[{name:"authorityInfoAccess.authorityInfoAccessOcsp",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,optional:!0,value:[{name:"authorityInfoAccess.authorityInfoAccessOcsp.oid",class:j0.Class.UNIVERSAL,tag:j0.Tag.OID},{name:"authorityInfoAccess.authorityInfoAccessOcsp.value",class:j0.Class.CONTEXT_SPECIFIC,tag:j0.Tag.OID,capture:"authorityInfoAccessOcsp"}]},{name:"authorityInfoAccess.authorityInfoAccessIssuers",class:j0.Class.UNIVERSAL,tag:j0.Tag.SEQUENCE,optional:!0,value:[{name:"authorityInfoAccess.authorityInfoAccessIssuers.oid",class:j0.Class.UNIVERSAL,tag:j0.Tag.OID},{name:"authorityInfoAccess.authorityInfoAccessIssuers.value",class:j0.Class.CONTEXT_SPECIFIC,tag:j0.Tag.OID,capture:"authorityInfoAccessIssuers"}]}]};function eb(W){let G=j0.ASN1.parseDERWithTemplate(W.value,tb);if(G.authorityInfoAccessOcsp!=null)W.authorityInfoAccessOcsp=G.authorityInfoAccessOcsp.bytes.toString();if(G.authorityInfoAccessIssuers!=null)W.authorityInfoAccessIssuers=G.authorityInfoAccessIssuers.bytes.toString()}function PT(W){for(let G of W){if(G.name==null||G.name===""){if(G.oid!=null)G.name=z9.getOIDName(G.oid);if(G.name===""&&G.shortName!=null)G.name=z9.getOIDName(b8[G.shortName])}if(G.oid==null||G.oid==="")if(G.name!=="")G.oid=z9.getOID(G.name);else throw Error("Attribute oid not specified.");if(G.shortName==null||G.shortName==="")G.shortName=b8[G.name]==null?"":b8[G.name];if(G.value==null)throw Error("Attribute value not specified.")}}function Wm(W){switch(z9.getOIDName(W)){case"sha1WithRsaEncryption":return"sha1";case"md5WithRsaEncryption":return"md5";case"sha256WithRsaEncryption":return"sha256";case"sha384WithRsaEncryption":return"sha384";case"sha512WithRsaEncryption":return"sha512";case"RSASSA-PSS":return"sha256";case"ecdsaWithSha1":return"sha1";case"ecdsaWithSha256":return"sha256";case"ecdsaWithSha384":return"sha384";case"ecdsaWithSha512":return"sha512";case"dsaWithSha1":return"sha1";case"dsaWithSha256":return"sha256";default:return""}}function RT(W){let G=[];for(let X of W.mustCompound())for(let Y of X.mustCompound()){let Z=Y.mustCompound(),V={};V.oid=j0.ASN1.parseOID(Z[0].bytes),V.value=Z[1].value,V.valueTag=Z[1].tag,V.name=z9.getOIDName(V.oid),V.shortName=mb(V.name),G.push(V)}return G}function Gm(W){if(W!=null&&!(W instanceof Buffer)&&typeof W.toJSON==="function")return W.toJSON();return W}});var gz=Z1((FT)=>{Object.defineProperty(FT,"__esModule",{value:!0});var uU=FU();FT.bytesFromIP=uU.bytesFromIP;FT.bytesToIP=uU.bytesToIP;FT.getOID=uU.getOID;FT.getOIDName=uU.getOIDName;var hU=vz();FT.PublicKey=hU.PublicKey;FT.PrivateKey=hU.PrivateKey;FT.RSAPublicKey=hU.RSAPublicKey;FT.RSAPrivateKey=hU.RSAPrivateKey;var $T=ET();FT.Certificate=$T.Certificate;FT.DistinguishedName=$T.DistinguishedName});var xT=Z1(()=>{/*! *****************************************************************************
|
|
15
|
+
Copyright (C) Microsoft. All rights reserved.
|
|
16
|
+
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
|
|
17
|
+
this file except in compliance with the License. You may obtain a copy of the
|
|
18
|
+
License at http://www.apache.org/licenses/LICENSE-2.0
|
|
19
|
+
|
|
20
|
+
THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
21
|
+
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
|
22
|
+
WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,
|
|
23
|
+
MERCHANTABLITY OR NON-INFRINGEMENT.
|
|
24
|
+
|
|
25
|
+
See the Apache Version 2.0 License for specific language governing permissions
|
|
26
|
+
and limitations under the License.
|
|
27
|
+
***************************************************************************** */var ST;(function(W){(function(G){var X=typeof globalThis==="object"?globalThis:typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:J(),Y=Z(W);if(typeof X.Reflect<"u")Y=Z(X.Reflect,Y);if(G(Y,X),typeof X.Reflect>"u")X.Reflect=W;function Z(U,q){return function(N,A){if(Object.defineProperty(U,N,{configurable:!0,writable:!0,value:A}),q)q(N,A)}}function V(){try{return Function("return this;")()}catch(U){}}function Q(){try{return(0,eval)("(function() { return this; })()")}catch(U){}}function J(){return V()||Q()}})(function(G,X){var Y=Object.prototype.hasOwnProperty,Z=typeof Symbol==="function",V=Z&&typeof Symbol.toPrimitive<"u"?Symbol.toPrimitive:"@@toPrimitive",Q=Z&&typeof Symbol.iterator<"u"?Symbol.iterator:"@@iterator",J=typeof Object.create==="function",U={__proto__:[]}instanceof Array,q=!J&&!U,N={create:J?function(){return n7(Object.create(null))}:U?function(){return n7({__proto__:null})}:function(){return n7({})},has:q?function(i,$){return Y.call(i,$)}:function(i,$){return $ in i},get:q?function(i,$){return Y.call(i,$)?i[$]:void 0}:function(i,$){return i[$]}},A=Object.getPrototypeOf(Function),H=typeof Map==="function"&&typeof Map.prototype.entries==="function"?Map:X6(),I=typeof Set==="function"&&typeof Set.prototype.entries==="function"?Set:qW(),w=typeof WeakMap==="function"?WeakMap:QZ(),C=Z?Symbol.for("@reflect-metadata:registry"):void 0,D=v8(),x=O8(D);function h(i,$,d,X0){if(!k(d)){if(!U1(i))throw TypeError();if(!q0($))throw TypeError();if(!q0(X0)&&!k(X0)&&!f(X0))throw TypeError();if(f(X0))X0=void 0;return d=H1(d),o(i,$,d,X0)}else{if(!U1(i))throw TypeError();if(!B0($))throw TypeError();return y(i,$)}}G("decorate",h);function p(i,$){function d(X0,w0){if(!q0(X0))throw TypeError();if(!k(w0)&&!h0(w0))throw TypeError();v(i,$,X0,w0)}return d}G("metadata",p);function u(i,$,d,X0){if(!q0(d))throw TypeError();if(!k(X0))X0=H1(X0);return v(i,$,d,X0)}G("defineMetadata",u);function n(i,$,d){if(!q0($))throw TypeError();if(!k(d))d=H1(d);return B(i,$,d)}G("hasMetadata",n);function c(i,$,d){if(!q0($))throw TypeError();if(!k(d))d=H1(d);return R(i,$,d)}G("hasOwnMetadata",c);function l(i,$,d){if(!q0($))throw TypeError();if(!k(d))d=H1(d);return _(i,$,d)}G("getMetadata",l);function G0(i,$,d){if(!q0($))throw TypeError();if(!k(d))d=H1(d);return S(i,$,d)}G("getOwnMetadata",G0);function m(i,$){if(!q0(i))throw TypeError();if(!k($))$=H1($);return P(i,$)}G("getMetadataKeys",m);function Y0(i,$){if(!q0(i))throw TypeError();if(!k($))$=H1($);return E(i,$)}G("getOwnMetadataKeys",Y0);function U0(i,$,d){if(!q0($))throw TypeError();if(!k(d))d=H1(d);if(!q0($))throw TypeError();if(!k(d))d=H1(d);var X0=Q9($,d,!1);if(k(X0))return!1;return X0.OrdinaryDeleteMetadata(i,$,d)}G("deleteMetadata",U0);function y(i,$){for(var d=i.length-1;d>=0;--d){var X0=i[d],w0=X0($);if(!k(w0)&&!f(w0)){if(!B0(w0))throw TypeError();$=w0}}return $}function o(i,$,d,X0){for(var w0=i.length-1;w0>=0;--w0){var e0=i[w0],K1=e0($,d,X0);if(!k(K1)&&!f(K1)){if(!q0(K1))throw TypeError();X0=K1}}return X0}function B(i,$,d){var X0=R(i,$,d);if(X0)return!0;var w0=d1($);if(!f(w0))return B(i,w0,d);return!1}function R(i,$,d){var X0=Q9($,d,!1);if(k(X0))return!1;return D0(X0.OrdinaryHasOwnMetadata(i,$,d))}function _(i,$,d){var X0=R(i,$,d);if(X0)return S(i,$,d);var w0=d1($);if(!f(w0))return _(i,w0,d);return}function S(i,$,d){var X0=Q9($,d,!1);if(k(X0))return;return X0.OrdinaryGetOwnMetadata(i,$,d)}function v(i,$,d,X0){var w0=Q9(d,X0,!0);w0.OrdinaryDefineOwnMetadata(i,$,d,X0)}function P(i,$){var d=E(i,$),X0=d1(i);if(X0===null)return d;var w0=P(X0,$);if(w0.length<=0)return d;if(d.length<=0)return w0;var e0=new I,K1=[];for(var r0=0,K0=d;r0<K0.length;r0++){var F0=K0[r0],g0=e0.has(F0);if(!g0)e0.add(F0),K1.push(F0)}for(var x0=0,Q1=w0;x0<Q1.length;x0++){var F0=Q1[x0],g0=e0.has(F0);if(!g0)e0.add(F0),K1.push(F0)}return K1}function E(i,$){var d=Q9(i,$,!1);if(!d)return[];return d.OrdinaryOwnMetadataKeys(i,$)}function b(i){if(i===null)return 1;switch(typeof i){case"undefined":return 0;case"boolean":return 2;case"string":return 3;case"symbol":return 4;case"number":return 5;case"object":return i===null?1:6;default:return 6}}function k(i){return i===void 0}function f(i){return i===null}function e(i){return typeof i==="symbol"}function q0(i){return typeof i==="object"?i!==null:typeof i==="function"}function Q0(i,$){switch(b(i)){case 0:return i;case 1:return i;case 2:return i;case 3:return i;case 4:return i;case 5:return i}var d=$===3?"string":$===5?"number":"default",X0=A8(i,V);if(X0!==void 0){var w0=X0.call(i,d);if(q0(w0))throw TypeError();return w0}return $0(i,d==="default"?"number":d)}function $0(i,$){if($==="string"){var d=i.toString;if(J0(d)){var X0=d.call(i);if(!q0(X0))return X0}var w0=i.valueOf;if(J0(w0)){var X0=w0.call(i);if(!q0(X0))return X0}}else{var w0=i.valueOf;if(J0(w0)){var X0=w0.call(i);if(!q0(X0))return X0}var e0=i.toString;if(J0(e0)){var X0=e0.call(i);if(!q0(X0))return X0}}throw TypeError()}function D0(i){return!!i}function k0(i){return""+i}function H1(i){var $=Q0(i,3);if(e($))return $;return k0($)}function U1(i){return Array.isArray?Array.isArray(i):i instanceof Object?i instanceof Array:Object.prototype.toString.call(i)==="[object Array]"}function J0(i){return typeof i==="function"}function B0(i){return typeof i==="function"}function h0(i){switch(b(i)){case 3:return!0;case 4:return!0;default:return!1}}function Y1(i,$){return i===$||i!==i&&$!==$}function A8(i,$){var d=i[$];if(d===void 0||d===null)return;if(!J0(d))throw TypeError();return d}function F1(i){var $=A8(i,Q);if(!J0($))throw TypeError();var d=$.call(i);if(!q0(d))throw TypeError();return d}function E0(i){return i.value}function l0(i){var $=i.next();return $.done?!1:$}function q1(i){var $=i.return;if($)$.call(i)}function d1(i){var $=Object.getPrototypeOf(i);if(typeof i!=="function"||i===A)return $;if($!==A)return $;var d=i.prototype,X0=d&&Object.getPrototypeOf(d);if(X0==null||X0===Object.prototype)return $;var w0=X0.constructor;if(typeof w0!=="function")return $;if(w0===i)return $;return w0}function j8(){var i;if(!k(C)&&typeof X.Reflect<"u"&&!(C in X.Reflect)&&typeof X.Reflect.defineMetadata==="function")i=q8(X.Reflect);var $,d,X0,w0=new w,e0={registerProvider:K1,getProvider:K0,setProvider:g0};return e0;function K1(x0){if(!Object.isExtensible(e0))throw Error("Cannot add provider to a frozen registry.");switch(!0){case i===x0:break;case k($):$=x0;break;case $===x0:break;case k(d):d=x0;break;case d===x0:break;default:if(X0===void 0)X0=new I;X0.add(x0);break}}function r0(x0,Q1){if(!k($)){if($.isProviderFor(x0,Q1))return $;if(!k(d)){if(d.isProviderFor(x0,Q1))return $;if(!k(X0)){var X1=F1(X0);while(!0){var S1=l0(X1);if(!S1)return;var o1=E0(S1);if(o1.isProviderFor(x0,Q1))return q1(X1),o1}}}}if(!k(i)&&i.isProviderFor(x0,Q1))return i;return}function K0(x0,Q1){var X1=w0.get(x0),S1;if(!k(X1))S1=X1.get(Q1);if(!k(S1))return S1;if(S1=r0(x0,Q1),!k(S1)){if(k(X1))X1=new H,w0.set(x0,X1);X1.set(Q1,S1)}return S1}function F0(x0){if(k(x0))throw TypeError();return $===x0||d===x0||!k(X0)&&X0.has(x0)}function g0(x0,Q1,X1){if(!F0(X1))throw Error("Metadata provider not registered.");var S1=K0(x0,Q1);if(S1!==X1){if(!k(S1))return!1;var o1=w0.get(x0);if(k(o1))o1=new H,w0.set(x0,o1);o1.set(Q1,X1)}return!0}}function v8(){var i;if(!k(C)&&q0(X.Reflect)&&Object.isExtensible(X.Reflect))i=X.Reflect[C];if(k(i))i=j8();if(!k(C)&&q0(X.Reflect)&&Object.isExtensible(X.Reflect))Object.defineProperty(X.Reflect,C,{enumerable:!1,configurable:!1,writable:!1,value:i});return i}function O8(i){var $=new w,d={isProviderFor:function(F0,g0){var x0=$.get(F0);if(k(x0))return!1;return x0.has(g0)},OrdinaryDefineOwnMetadata:K1,OrdinaryHasOwnMetadata:w0,OrdinaryGetOwnMetadata:e0,OrdinaryOwnMetadataKeys:r0,OrdinaryDeleteMetadata:K0};return D.registerProvider(d),d;function X0(F0,g0,x0){var Q1=$.get(F0),X1=!1;if(k(Q1)){if(!x0)return;Q1=new H,$.set(F0,Q1),X1=!0}var S1=Q1.get(g0);if(k(S1)){if(!x0)return;if(S1=new H,Q1.set(g0,S1),!i.setProvider(F0,g0,d)){if(Q1.delete(g0),X1)$.delete(F0);throw Error("Wrong provider for target.")}}return S1}function w0(F0,g0,x0){var Q1=X0(g0,x0,!1);if(k(Q1))return!1;return D0(Q1.has(F0))}function e0(F0,g0,x0){var Q1=X0(g0,x0,!1);if(k(Q1))return;return Q1.get(F0)}function K1(F0,g0,x0,Q1){var X1=X0(x0,Q1,!0);X1.set(F0,g0)}function r0(F0,g0){var x0=[],Q1=X0(F0,g0,!1);if(k(Q1))return x0;var X1=Q1.keys(),S1=F1(X1),o1=0;while(!0){var V7=l0(S1);if(!V7)return x0.length=o1,x0;var NW=E0(V7);try{x0[o1]=NW}catch(JZ){try{q1(S1)}finally{throw JZ}}o1++}}function K0(F0,g0,x0){var Q1=X0(g0,x0,!1);if(k(Q1))return!1;if(!Q1.delete(F0))return!1;if(Q1.size===0){var X1=$.get(g0);if(!k(X1)){if(X1.delete(x0),X1.size===0)$.delete(X1)}}return!0}}function q8(i){var{defineMetadata:$,hasOwnMetadata:d,getOwnMetadata:X0,getOwnMetadataKeys:w0,deleteMetadata:e0}=i,K1=new w,r0={isProviderFor:function(K0,F0){var g0=K1.get(K0);if(!k(g0)&&g0.has(F0))return!0;if(w0(K0,F0).length){if(k(g0))g0=new I,K1.set(K0,g0);return g0.add(F0),!0}return!1},OrdinaryDefineOwnMetadata:$,OrdinaryHasOwnMetadata:d,OrdinaryGetOwnMetadata:X0,OrdinaryOwnMetadataKeys:w0,OrdinaryDeleteMetadata:e0};return r0}function Q9(i,$,d){var X0=D.getProvider(i,$);if(!k(X0))return X0;if(d){if(D.setProvider(i,$,x))return x;throw Error("Illegal state.")}return}function X6(){var i={},$=[],d=function(){function r0(K0,F0,g0){this._index=0,this._keys=K0,this._values=F0,this._selector=g0}return r0.prototype["@@iterator"]=function(){return this},r0.prototype[Q]=function(){return this},r0.prototype.next=function(){var K0=this._index;if(K0>=0&&K0<this._keys.length){var F0=this._selector(this._keys[K0],this._values[K0]);if(K0+1>=this._keys.length)this._index=-1,this._keys=$,this._values=$;else this._index++;return{value:F0,done:!1}}return{value:void 0,done:!0}},r0.prototype.throw=function(K0){if(this._index>=0)this._index=-1,this._keys=$,this._values=$;throw K0},r0.prototype.return=function(K0){if(this._index>=0)this._index=-1,this._keys=$,this._values=$;return{value:K0,done:!0}},r0}(),X0=function(){function r0(){this._keys=[],this._values=[],this._cacheKey=i,this._cacheIndex=-2}return Object.defineProperty(r0.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),r0.prototype.has=function(K0){return this._find(K0,!1)>=0},r0.prototype.get=function(K0){var F0=this._find(K0,!1);return F0>=0?this._values[F0]:void 0},r0.prototype.set=function(K0,F0){var g0=this._find(K0,!0);return this._values[g0]=F0,this},r0.prototype.delete=function(K0){var F0=this._find(K0,!1);if(F0>=0){var g0=this._keys.length;for(var x0=F0+1;x0<g0;x0++)this._keys[x0-1]=this._keys[x0],this._values[x0-1]=this._values[x0];if(this._keys.length--,this._values.length--,Y1(K0,this._cacheKey))this._cacheKey=i,this._cacheIndex=-2;return!0}return!1},r0.prototype.clear=function(){this._keys.length=0,this._values.length=0,this._cacheKey=i,this._cacheIndex=-2},r0.prototype.keys=function(){return new d(this._keys,this._values,w0)},r0.prototype.values=function(){return new d(this._keys,this._values,e0)},r0.prototype.entries=function(){return new d(this._keys,this._values,K1)},r0.prototype["@@iterator"]=function(){return this.entries()},r0.prototype[Q]=function(){return this.entries()},r0.prototype._find=function(K0,F0){if(!Y1(this._cacheKey,K0)){this._cacheIndex=-1;for(var g0=0;g0<this._keys.length;g0++)if(Y1(this._keys[g0],K0)){this._cacheIndex=g0;break}}if(this._cacheIndex<0&&F0)this._cacheIndex=this._keys.length,this._keys.push(K0),this._values.push(void 0);return this._cacheIndex},r0}();return X0;function w0(r0,K0){return r0}function e0(r0,K0){return K0}function K1(r0,K0){return[r0,K0]}}function qW(){var i=function(){function $(){this._map=new H}return Object.defineProperty($.prototype,"size",{get:function(){return this._map.size},enumerable:!0,configurable:!0}),$.prototype.has=function(d){return this._map.has(d)},$.prototype.add=function(d){return this._map.set(d,d),this},$.prototype.delete=function(d){return this._map.delete(d)},$.prototype.clear=function(){this._map.clear()},$.prototype.keys=function(){return this._map.keys()},$.prototype.values=function(){return this._map.keys()},$.prototype.entries=function(){return this._map.entries()},$.prototype["@@iterator"]=function(){return this.keys()},$.prototype[Q]=function(){return this.keys()},$}();return i}function QZ(){var i=16,$=N.create(),d=X0();return function(){function K0(){this._key=X0()}return K0.prototype.has=function(F0){var g0=w0(F0,!1);return g0!==void 0?N.has(g0,this._key):!1},K0.prototype.get=function(F0){var g0=w0(F0,!1);return g0!==void 0?N.get(g0,this._key):void 0},K0.prototype.set=function(F0,g0){var x0=w0(F0,!0);return x0[this._key]=g0,this},K0.prototype.delete=function(F0){var g0=w0(F0,!1);return g0!==void 0?delete g0[this._key]:!1},K0.prototype.clear=function(){this._key=X0()},K0}();function X0(){var K0;do K0="@@WeakMap@@"+r0();while(N.has($,K0));return $[K0]=!0,K0}function w0(K0,F0){if(!Y.call(K0,d)){if(!F0)return;Object.defineProperty(K0,d,{value:N.create()})}return K0[d]}function e0(K0,F0){for(var g0=0;g0<F0;++g0)K0[g0]=Math.random()*255|0;return K0}function K1(K0){if(typeof Uint8Array==="function"){var F0=new Uint8Array(K0);if(typeof crypto<"u")crypto.getRandomValues(F0);else if(typeof msCrypto<"u")msCrypto.getRandomValues(F0);else e0(F0,K0);return F0}return e0(Array(K0),K0)}function r0(){var K0=K1(i);K0[6]=K0[6]&79|64,K0[8]=K0[8]&191|128;var F0="";for(var g0=0;g0<i;++g0){var x0=K0[g0];if(g0===4||g0===6||g0===8)F0+="-";if(x0<16)F0+="0";F0+=x0.toString(16).toLowerCase()}return F0}}function n7(i){return i.__=void 0,delete i.__,i}})})(ST||(ST={}))});var XR=Z1((w10,Zq)=>{var $P,FP,SP,xP,kP,_P,yP,vP,gP,uP,hP,bP,mP,Xq,HI,fP,cP,pP,FX,lP,dP,oP,nP,iP,rP,aP,sP,tP,Yq,eP,WR,GR;(function(W){var G=typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:{};if(typeof define==="function"&&define.amd)define("tslib",["exports"],function(Y){W(X(G,X(Y)))});else if(typeof Zq==="object"&&typeof w10==="object")W(X(G,X(w10)));else W(X(G));function X(Y,Z){if(Y!==G)if(typeof Object.create==="function")Object.defineProperty(Y,"__esModule",{value:!0});else Y.__esModule=!0;return function(V,Q){return Y[V]=Z?Z(V,Q):Q}}})(function(W){var G=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(V,Q){V.__proto__=Q}||function(V,Q){for(var J in Q)if(Object.prototype.hasOwnProperty.call(Q,J))V[J]=Q[J]};$P=function(V,Q){if(typeof Q!=="function"&&Q!==null)throw TypeError("Class extends value "+String(Q)+" is not a constructor or null");G(V,Q);function J(){this.constructor=V}V.prototype=Q===null?Object.create(Q):(J.prototype=Q.prototype,new J)},FP=Object.assign||function(V){for(var Q,J=1,U=arguments.length;J<U;J++){Q=arguments[J];for(var q in Q)if(Object.prototype.hasOwnProperty.call(Q,q))V[q]=Q[q]}return V},SP=function(V,Q){var J={};for(var U in V)if(Object.prototype.hasOwnProperty.call(V,U)&&Q.indexOf(U)<0)J[U]=V[U];if(V!=null&&typeof Object.getOwnPropertySymbols==="function"){for(var q=0,U=Object.getOwnPropertySymbols(V);q<U.length;q++)if(Q.indexOf(U[q])<0&&Object.prototype.propertyIsEnumerable.call(V,U[q]))J[U[q]]=V[U[q]]}return J},xP=function(V,Q,J,U){var q=arguments.length,N=q<3?Q:U===null?U=Object.getOwnPropertyDescriptor(Q,J):U,A;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")N=Reflect.decorate(V,Q,J,U);else for(var H=V.length-1;H>=0;H--)if(A=V[H])N=(q<3?A(N):q>3?A(Q,J,N):A(Q,J))||N;return q>3&&N&&Object.defineProperty(Q,J,N),N},kP=function(V,Q){return function(J,U){Q(J,U,V)}},_P=function(V,Q,J,U,q,N){function A(c){if(c!==void 0&&typeof c!=="function")throw TypeError("Function expected");return c}var H=U.kind,I=H==="getter"?"get":H==="setter"?"set":"value",w=!Q&&V?U.static?V:V.prototype:null,C=Q||(w?Object.getOwnPropertyDescriptor(w,U.name):{}),D,x=!1;for(var h=J.length-1;h>=0;h--){var p={};for(var u in U)p[u]=u==="access"?{}:U[u];for(var u in U.access)p.access[u]=U.access[u];p.addInitializer=function(c){if(x)throw TypeError("Cannot add initializers after decoration has completed");N.push(A(c||null))};var n=(0,J[h])(H==="accessor"?{get:C.get,set:C.set}:C[I],p);if(H==="accessor"){if(n===void 0)continue;if(n===null||typeof n!=="object")throw TypeError("Object expected");if(D=A(n.get))C.get=D;if(D=A(n.set))C.set=D;if(D=A(n.init))q.unshift(D)}else if(D=A(n))if(H==="field")q.unshift(D);else C[I]=D}if(w)Object.defineProperty(w,U.name,C);x=!0},yP=function(V,Q,J){var U=arguments.length>2;for(var q=0;q<Q.length;q++)J=U?Q[q].call(V,J):Q[q].call(V);return U?J:void 0},vP=function(V){return typeof V==="symbol"?V:"".concat(V)},gP=function(V,Q,J){if(typeof Q==="symbol")Q=Q.description?"[".concat(Q.description,"]"):"";return Object.defineProperty(V,"name",{configurable:!0,value:J?"".concat(J," ",Q):Q})},uP=function(V,Q){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(V,Q)},hP=function(V,Q,J,U){function q(N){return N instanceof J?N:new J(function(A){A(N)})}return new(J||(J=Promise))(function(N,A){function H(C){try{w(U.next(C))}catch(D){A(D)}}function I(C){try{w(U.throw(C))}catch(D){A(D)}}function w(C){C.done?N(C.value):q(C.value).then(H,I)}w((U=U.apply(V,Q||[])).next())})},bP=function(V,Q){var J={label:0,sent:function(){if(N[0]&1)throw N[1];return N[1]},trys:[],ops:[]},U,q,N,A=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return A.next=H(0),A.throw=H(1),A.return=H(2),typeof Symbol==="function"&&(A[Symbol.iterator]=function(){return this}),A;function H(w){return function(C){return I([w,C])}}function I(w){if(U)throw TypeError("Generator is already executing.");while(A&&(A=0,w[0]&&(J=0)),J)try{if(U=1,q&&(N=w[0]&2?q.return:w[0]?q.throw||((N=q.return)&&N.call(q),0):q.next)&&!(N=N.call(q,w[1])).done)return N;if(q=0,N)w=[w[0]&2,N.value];switch(w[0]){case 0:case 1:N=w;break;case 4:return J.label++,{value:w[1],done:!1};case 5:J.label++,q=w[1],w=[0];continue;case 7:w=J.ops.pop(),J.trys.pop();continue;default:if((N=J.trys,!(N=N.length>0&&N[N.length-1]))&&(w[0]===6||w[0]===2)){J=0;continue}if(w[0]===3&&(!N||w[1]>N[0]&&w[1]<N[3])){J.label=w[1];break}if(w[0]===6&&J.label<N[1]){J.label=N[1],N=w;break}if(N&&J.label<N[2]){J.label=N[2],J.ops.push(w);break}if(N[2])J.ops.pop();J.trys.pop();continue}w=Q.call(V,J)}catch(C){w=[6,C],q=0}finally{U=N=0}if(w[0]&5)throw w[1];return{value:w[0]?w[1]:void 0,done:!0}}},mP=function(V,Q){for(var J in V)if(J!=="default"&&!Object.prototype.hasOwnProperty.call(Q,J))Yq(Q,V,J)},Yq=Object.create?function(V,Q,J,U){if(U===void 0)U=J;var q=Object.getOwnPropertyDescriptor(Q,J);if(!q||("get"in q?!Q.__esModule:q.writable||q.configurable))q={enumerable:!0,get:function(){return Q[J]}};Object.defineProperty(V,U,q)}:function(V,Q,J,U){if(U===void 0)U=J;V[U]=Q[J]},Xq=function(V){var Q=typeof Symbol==="function"&&Symbol.iterator,J=Q&&V[Q],U=0;if(J)return J.call(V);if(V&&typeof V.length==="number")return{next:function(){if(V&&U>=V.length)V=void 0;return{value:V&&V[U++],done:!V}}};throw TypeError(Q?"Object is not iterable.":"Symbol.iterator is not defined.")},HI=function(V,Q){var J=typeof Symbol==="function"&&V[Symbol.iterator];if(!J)return V;var U=J.call(V),q,N=[],A;try{while((Q===void 0||Q-- >0)&&!(q=U.next()).done)N.push(q.value)}catch(H){A={error:H}}finally{try{if(q&&!q.done&&(J=U.return))J.call(U)}finally{if(A)throw A.error}}return N},fP=function(){for(var V=[],Q=0;Q<arguments.length;Q++)V=V.concat(HI(arguments[Q]));return V},cP=function(){for(var V=0,Q=0,J=arguments.length;Q<J;Q++)V+=arguments[Q].length;for(var U=Array(V),q=0,Q=0;Q<J;Q++)for(var N=arguments[Q],A=0,H=N.length;A<H;A++,q++)U[q]=N[A];return U},pP=function(V,Q,J){if(J||arguments.length===2){for(var U=0,q=Q.length,N;U<q;U++)if(N||!(U in Q)){if(!N)N=Array.prototype.slice.call(Q,0,U);N[U]=Q[U]}}return V.concat(N||Array.prototype.slice.call(Q))},FX=function(V){return this instanceof FX?(this.v=V,this):new FX(V)},lP=function(V,Q,J){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var U=J.apply(V,Q||[]),q,N=[];return q=Object.create((typeof AsyncIterator==="function"?AsyncIterator:Object).prototype),H("next"),H("throw"),H("return",A),q[Symbol.asyncIterator]=function(){return this},q;function A(h){return function(p){return Promise.resolve(p).then(h,D)}}function H(h,p){if(U[h]){if(q[h]=function(u){return new Promise(function(n,c){N.push([h,u,n,c])>1||I(h,u)})},p)q[h]=p(q[h])}}function I(h,p){try{w(U[h](p))}catch(u){x(N[0][3],u)}}function w(h){h.value instanceof FX?Promise.resolve(h.value.v).then(C,D):x(N[0][2],h)}function C(h){I("next",h)}function D(h){I("throw",h)}function x(h,p){if(h(p),N.shift(),N.length)I(N[0][0],N[0][1])}},dP=function(V){var Q,J;return Q={},U("next"),U("throw",function(q){throw q}),U("return"),Q[Symbol.iterator]=function(){return this},Q;function U(q,N){Q[q]=V[q]?function(A){return(J=!J)?{value:FX(V[q](A)),done:!1}:N?N(A):A}:N}},oP=function(V){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var Q=V[Symbol.asyncIterator],J;return Q?Q.call(V):(V=typeof Xq==="function"?Xq(V):V[Symbol.iterator](),J={},U("next"),U("throw"),U("return"),J[Symbol.asyncIterator]=function(){return this},J);function U(N){J[N]=V[N]&&function(A){return new Promise(function(H,I){A=V[N](A),q(H,I,A.done,A.value)})}}function q(N,A,H,I){Promise.resolve(I).then(function(w){N({value:w,done:H})},A)}},nP=function(V,Q){if(Object.defineProperty)Object.defineProperty(V,"raw",{value:Q});else V.raw=Q;return V};var X=Object.create?function(V,Q){Object.defineProperty(V,"default",{enumerable:!0,value:Q})}:function(V,Q){V.default=Q},Y=function(V){return Y=Object.getOwnPropertyNames||function(Q){var J=[];for(var U in Q)if(Object.prototype.hasOwnProperty.call(Q,U))J[J.length]=U;return J},Y(V)};iP=function(V){if(V&&V.__esModule)return V;var Q={};if(V!=null){for(var J=Y(V),U=0;U<J.length;U++)if(J[U]!=="default")Yq(Q,V,J[U])}return X(Q,V),Q},rP=function(V){return V&&V.__esModule?V:{default:V}},aP=function(V,Q,J,U){if(J==="a"&&!U)throw TypeError("Private accessor was defined without a getter");if(typeof Q==="function"?V!==Q||!U:!Q.has(V))throw TypeError("Cannot read private member from an object whose class did not declare it");return J==="m"?U:J==="a"?U.call(V):U?U.value:Q.get(V)},sP=function(V,Q,J,U,q){if(U==="m")throw TypeError("Private method is not writable");if(U==="a"&&!q)throw TypeError("Private accessor was defined without a setter");if(typeof Q==="function"?V!==Q||!q:!Q.has(V))throw TypeError("Cannot write private member to an object whose class did not declare it");return U==="a"?q.call(V,J):q?q.value=J:Q.set(V,J),J},tP=function(V,Q){if(Q===null||typeof Q!=="object"&&typeof Q!=="function")throw TypeError("Cannot use 'in' operator on non-object");return typeof V==="function"?Q===V:V.has(Q)},eP=function(V,Q,J){if(Q!==null&&Q!==void 0){if(typeof Q!=="object"&&typeof Q!=="function")throw TypeError("Object expected.");var U,q;if(J){if(!Symbol.asyncDispose)throw TypeError("Symbol.asyncDispose is not defined.");U=Q[Symbol.asyncDispose]}if(U===void 0){if(!Symbol.dispose)throw TypeError("Symbol.dispose is not defined.");if(U=Q[Symbol.dispose],J)q=U}if(typeof U!=="function")throw TypeError("Object not disposable.");if(q)U=function(){try{q.call(this)}catch(N){return Promise.reject(N)}};V.stack.push({value:Q,dispose:U,async:J})}else if(J)V.stack.push({async:!0});return Q};var Z=typeof SuppressedError==="function"?SuppressedError:function(V,Q,J){var U=Error(J);return U.name="SuppressedError",U.error=V,U.suppressed=Q,U};WR=function(V){function Q(N){V.error=V.hasError?new Z(N,V.error,"An error was suppressed during disposal."):N,V.hasError=!0}var J,U=0;function q(){while(J=V.stack.pop())try{if(!J.async&&U===1)return U=0,V.stack.push(J),Promise.resolve().then(q);if(J.dispose){var N=J.dispose.call(J.value);if(J.async)return U|=2,Promise.resolve(N).then(q,function(A){return Q(A),q()})}else U|=1}catch(A){Q(A)}if(U===1)return V.hasError?Promise.reject(V.error):Promise.resolve();if(V.hasError)throw V.error}return q()},GR=function(V,Q){if(typeof V==="string"&&/^\.\.?\//.test(V))return V.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(J,U,q,N,A){return U?Q?".jsx":".js":q&&(!N||!A)?J:q+N+"."+A.toLowerCase()+"js"});return V},W("__extends",$P),W("__assign",FP),W("__rest",SP),W("__decorate",xP),W("__param",kP),W("__esDecorate",_P),W("__runInitializers",yP),W("__propKey",vP),W("__setFunctionName",gP),W("__metadata",uP),W("__awaiter",hP),W("__generator",bP),W("__exportStar",mP),W("__createBinding",Yq),W("__values",Xq),W("__read",HI),W("__spread",fP),W("__spreadArrays",cP),W("__spreadArray",pP),W("__await",FX),W("__asyncGenerator",lP),W("__asyncDelegator",dP),W("__asyncValues",oP),W("__makeTemplateObject",nP),W("__importStar",iP),W("__importDefault",rP),W("__classPrivateFieldGet",aP),W("__classPrivateFieldSet",sP),W("__classPrivateFieldIn",tP),W("__addDisposableResource",eP),W("__disposeResources",WR),W("__rewriteRelativeImportExtension",GR)})});var zL=Z1(($Z0,fq)=>{/*! *****************************************************************************
|
|
28
|
+
Copyright (c) Microsoft Corporation.
|
|
29
|
+
|
|
30
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
31
|
+
purpose with or without fee is hereby granted.
|
|
32
|
+
|
|
33
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
34
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
35
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
36
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
37
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
38
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
39
|
+
PERFORMANCE OF THIS SOFTWARE.
|
|
40
|
+
***************************************************************************** */var nR,iR,rR,aR,sR,tR,eR,WL,GL,mq,jw,XL,YL,GY,ZL,VL,QL,JL,UL,qL,NL,HL,AL;(function(W){var G=typeof global==="object"?global:typeof self==="object"?self:typeof this==="object"?this:{};if(typeof define==="function"&&define.amd)define("tslib",["exports"],function(Y){W(X(G,X(Y)))});else if(typeof fq==="object"&&typeof $Z0==="object")W(X(G,X($Z0)));else W(X(G));function X(Y,Z){if(Y!==G)if(typeof Object.create==="function")Object.defineProperty(Y,"__esModule",{value:!0});else Y.__esModule=!0;return function(V,Q){return Y[V]=Z?Z(V,Q):Q}}})(function(W){var G=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(X,Y){X.__proto__=Y}||function(X,Y){for(var Z in Y)if(Y.hasOwnProperty(Z))X[Z]=Y[Z]};nR=function(X,Y){G(X,Y);function Z(){this.constructor=X}X.prototype=Y===null?Object.create(Y):(Z.prototype=Y.prototype,new Z)},iR=Object.assign||function(X){for(var Y,Z=1,V=arguments.length;Z<V;Z++){Y=arguments[Z];for(var Q in Y)if(Object.prototype.hasOwnProperty.call(Y,Q))X[Q]=Y[Q]}return X},rR=function(X,Y){var Z={};for(var V in X)if(Object.prototype.hasOwnProperty.call(X,V)&&Y.indexOf(V)<0)Z[V]=X[V];if(X!=null&&typeof Object.getOwnPropertySymbols==="function"){for(var Q=0,V=Object.getOwnPropertySymbols(X);Q<V.length;Q++)if(Y.indexOf(V[Q])<0&&Object.prototype.propertyIsEnumerable.call(X,V[Q]))Z[V[Q]]=X[V[Q]]}return Z},aR=function(X,Y,Z,V){var Q=arguments.length,J=Q<3?Y:V===null?V=Object.getOwnPropertyDescriptor(Y,Z):V,U;if(typeof Reflect==="object"&&typeof Reflect.decorate==="function")J=Reflect.decorate(X,Y,Z,V);else for(var q=X.length-1;q>=0;q--)if(U=X[q])J=(Q<3?U(J):Q>3?U(Y,Z,J):U(Y,Z))||J;return Q>3&&J&&Object.defineProperty(Y,Z,J),J},sR=function(X,Y){return function(Z,V){Y(Z,V,X)}},tR=function(X,Y){if(typeof Reflect==="object"&&typeof Reflect.metadata==="function")return Reflect.metadata(X,Y)},eR=function(X,Y,Z,V){function Q(J){return J instanceof Z?J:new Z(function(U){U(J)})}return new(Z||(Z=Promise))(function(J,U){function q(H){try{A(V.next(H))}catch(I){U(I)}}function N(H){try{A(V.throw(H))}catch(I){U(I)}}function A(H){H.done?J(H.value):Q(H.value).then(q,N)}A((V=V.apply(X,Y||[])).next())})},WL=function(X,Y){var Z={label:0,sent:function(){if(J[0]&1)throw J[1];return J[1]},trys:[],ops:[]},V,Q,J,U;return U={next:q(0),throw:q(1),return:q(2)},typeof Symbol==="function"&&(U[Symbol.iterator]=function(){return this}),U;function q(A){return function(H){return N([A,H])}}function N(A){if(V)throw TypeError("Generator is already executing.");while(Z)try{if(V=1,Q&&(J=A[0]&2?Q.return:A[0]?Q.throw||((J=Q.return)&&J.call(Q),0):Q.next)&&!(J=J.call(Q,A[1])).done)return J;if(Q=0,J)A=[A[0]&2,J.value];switch(A[0]){case 0:case 1:J=A;break;case 4:return Z.label++,{value:A[1],done:!1};case 5:Z.label++,Q=A[1],A=[0];continue;case 7:A=Z.ops.pop(),Z.trys.pop();continue;default:if((J=Z.trys,!(J=J.length>0&&J[J.length-1]))&&(A[0]===6||A[0]===2)){Z=0;continue}if(A[0]===3&&(!J||A[1]>J[0]&&A[1]<J[3])){Z.label=A[1];break}if(A[0]===6&&Z.label<J[1]){Z.label=J[1],J=A;break}if(J&&Z.label<J[2]){Z.label=J[2],Z.ops.push(A);break}if(J[2])Z.ops.pop();Z.trys.pop();continue}A=Y.call(X,Z)}catch(H){A=[6,H],Q=0}finally{V=J=0}if(A[0]&5)throw A[1];return{value:A[0]?A[1]:void 0,done:!0}}},AL=function(X,Y,Z,V){if(V===void 0)V=Z;X[V]=Y[Z]},GL=function(X,Y){for(var Z in X)if(Z!=="default"&&!Y.hasOwnProperty(Z))Y[Z]=X[Z]},mq=function(X){var Y=typeof Symbol==="function"&&Symbol.iterator,Z=Y&&X[Y],V=0;if(Z)return Z.call(X);if(X&&typeof X.length==="number")return{next:function(){if(X&&V>=X.length)X=void 0;return{value:X&&X[V++],done:!X}}};throw TypeError(Y?"Object is not iterable.":"Symbol.iterator is not defined.")},jw=function(X,Y){var Z=typeof Symbol==="function"&&X[Symbol.iterator];if(!Z)return X;var V=Z.call(X),Q,J=[],U;try{while((Y===void 0||Y-- >0)&&!(Q=V.next()).done)J.push(Q.value)}catch(q){U={error:q}}finally{try{if(Q&&!Q.done&&(Z=V.return))Z.call(V)}finally{if(U)throw U.error}}return J},XL=function(){for(var X=[],Y=0;Y<arguments.length;Y++)X=X.concat(jw(arguments[Y]));return X},YL=function(){for(var X=0,Y=0,Z=arguments.length;Y<Z;Y++)X+=arguments[Y].length;for(var V=Array(X),Q=0,Y=0;Y<Z;Y++)for(var J=arguments[Y],U=0,q=J.length;U<q;U++,Q++)V[Q]=J[U];return V},GY=function(X){return this instanceof GY?(this.v=X,this):new GY(X)},ZL=function(X,Y,Z){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var V=Z.apply(X,Y||[]),Q,J=[];return Q={},U("next"),U("throw"),U("return"),Q[Symbol.asyncIterator]=function(){return this},Q;function U(w){if(V[w])Q[w]=function(C){return new Promise(function(D,x){J.push([w,C,D,x])>1||q(w,C)})}}function q(w,C){try{N(V[w](C))}catch(D){I(J[0][3],D)}}function N(w){w.value instanceof GY?Promise.resolve(w.value.v).then(A,H):I(J[0][2],w)}function A(w){q("next",w)}function H(w){q("throw",w)}function I(w,C){if(w(C),J.shift(),J.length)q(J[0][0],J[0][1])}},VL=function(X){var Y,Z;return Y={},V("next"),V("throw",function(Q){throw Q}),V("return"),Y[Symbol.iterator]=function(){return this},Y;function V(Q,J){Y[Q]=X[Q]?function(U){return(Z=!Z)?{value:GY(X[Q](U)),done:Q==="return"}:J?J(U):U}:J}},QL=function(X){if(!Symbol.asyncIterator)throw TypeError("Symbol.asyncIterator is not defined.");var Y=X[Symbol.asyncIterator],Z;return Y?Y.call(X):(X=typeof mq==="function"?mq(X):X[Symbol.iterator](),Z={},V("next"),V("throw"),V("return"),Z[Symbol.asyncIterator]=function(){return this},Z);function V(J){Z[J]=X[J]&&function(U){return new Promise(function(q,N){U=X[J](U),Q(q,N,U.done,U.value)})}}function Q(J,U,q,N){Promise.resolve(N).then(function(A){J({value:A,done:q})},U)}},JL=function(X,Y){if(Object.defineProperty)Object.defineProperty(X,"raw",{value:Y});else X.raw=Y;return X},UL=function(X){if(X&&X.__esModule)return X;var Y={};if(X!=null){for(var Z in X)if(Object.hasOwnProperty.call(X,Z))Y[Z]=X[Z]}return Y.default=X,Y},qL=function(X){return X&&X.__esModule?X:{default:X}},NL=function(X,Y){if(!Y.has(X))throw TypeError("attempted to get private field on non-instance");return Y.get(X)},HL=function(X,Y,Z){if(!Y.has(X))throw TypeError("attempted to set private field on non-instance");return Y.set(X,Z),Z},W("__extends",nR),W("__assign",iR),W("__rest",rR),W("__decorate",aR),W("__param",sR),W("__metadata",tR),W("__awaiter",eR),W("__generator",WL),W("__exportStar",GL),W("__createBinding",AL),W("__values",mq),W("__read",jw),W("__spread",XL),W("__spreadArrays",YL),W("__await",GY),W("__asyncGenerator",ZL),W("__asyncDelegator",VL),W("__asyncValues",QL),W("__makeTemplateObject",JL),W("__importStar",UL),W("__importDefault",qL),W("__classPrivateFieldGet",NL),W("__classPrivateFieldSet",HL)})});var u3=Z1((Dq0,g3)=>{function Cc(W){return/^[$A-Z\_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc][$A-Z\_a-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0\u08a2-\u08ac\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097f\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c3d\u0c58\u0c59\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d60\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f4\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f0\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191c\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19c1-\u19c7\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2119-\u211d\u2124\u2126\u2128\u212a-\u212d\u212f-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2e2f\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309d-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fcc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua697\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua78e\ua790-\ua793\ua7a0-\ua7aa\ua7f8-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa80-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uabc0-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc0-9\u0300-\u036f\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e4-\u08fe\u0900-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c01-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c82\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d02\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19b0-\u19c0\u19c8\u19c9\u19d0-\u19d9\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1dc0-\u1de6\u1dfc-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f1\ua900-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f]*$/.test(W)}g3.exports=Cc});var zQ=Z1((Mq0,o3)=>{var h3=$8("util"),c3=u3(),b3=/[\{\[]/,m3=/[\}\]]/,f3=["do","if","in","for","let","new","try","var","case","else","enum","eval","null","this","true","void","with","await","break","catch","class","const","false","super","throw","while","yield","delete","export","import","public","return","static","switch","typeof","default","extends","finally","package","private","continue","debugger","function","arguments","interface","protected","implements","instanceof","NaN","undefined"],p3={};for(AQ=0;AQ<f3.length;AQ++)p3[f3[AQ]]=!0;var AQ,Dc=function(W){return c3(W)&&!p3.hasOwnProperty(W)},l3={s:function(W){return""+W},d:function(W){return""+Number(W)},o:function(W){return JSON.stringify(W)}},d3=function(){var W=[],G=0,X={},Y=function(Q){var J="";while(J.length<G*2)J+=" ";W.push(J+Q)},Z=function(Q){if(m3.test(Q.trim()[0])&&b3.test(Q[Q.length-1])){G--,Y(Q),G++;return}if(b3.test(Q[Q.length-1])){Y(Q),G++;return}if(m3.test(Q.trim()[0])){G--,Y(Q);return}Y(Q)},V=function(Q){if(!Q)return V;if(arguments.length===1&&Q.indexOf(`
|
|
41
|
+
`)>-1){var J=Q.trim().split(`
|
|
42
|
+
`);for(var U=0;U<J.length;U++)Z(J[U].trim())}else Z(h3.format.apply(h3,arguments));return V};if(V.scope={},V.formats=l3,V.sym=function(Q){if(!Q||!Dc(Q))Q="tmp";if(!X[Q])X[Q]=0;return Q+(X[Q]++||"")},V.property=function(Q,J){if(arguments.length===1)J=Q,Q="";if(J=J+"",c3(J))return Q?Q+"."+J:J;return Q?Q+"["+JSON.stringify(J)+"]":JSON.stringify(J)},V.toString=function(){return W.join(`
|
|
43
|
+
`)},V.toFunction=function(Q){if(!Q)Q={};var J="return ("+V.toString()+")";Object.keys(V.scope).forEach(function(N){if(!Q[N])Q[N]=V.scope[N]});var U=Object.keys(Q).map(function(N){return N}),q=U.map(function(N){return Q[N]});return Function.apply(null,U.concat(J)).apply(null,q)},arguments.length)V.apply(null,arguments);return V};d3.formats=l3;o3.exports=d3});var i3=Z1((Tq0,n3)=>{class wj{constructor(){this.next=null,this.buffer=null}}n3.exports=class W{constructor(){this.head=null,this.tail=null,this.length=0,this.count=0}push(G){let X=new wj;if(X.buffer=G,this.length>0)this.tail.next=X;else this.head=X;this.tail=X,this.length+=G.length,this.count+=1}unshift(G){let X=new wj;if(X.buffer=G,X.next=this.head,this.isEmpty())this.tail=X;this.head=X,this.length+=G.length,this.count+=1}shift(){if(this.isEmpty())return null;let G=this.head.buffer;if(this.head===this.tail)this.head=null,this.tail=null;else this.head=this.head.next;return this.length-=G.length,this.length=Math.max(this.length,0),this.count-=1,G}get first(){if(this.isEmpty())return null;return this.head.buffer}get last(){if(this.isEmpty())return null;return this.tail.buffer}isEmpty(){return this.length===0}clear(){this.head=null,this.tail=null,this.length=0,this.count=0}slice(G,X){if(G<0||G>=this.length)return new W;if(X<0||X>this.length||X<G)return new W;let Y=new W,Z=this.head,V=G,Q=X;while(Z){if(Z.buffer.length>V){if(V===0&&Z.buffer.length<=Q)Y.push(Z.buffer);else if(Z.buffer.length>=Q)Y.push(Z.buffer.slice(V,Q));else Y.push(Z.buffer.slice(V));break}V-=Z.buffer.length,Q-=Z.buffer.length,Z=Z.next}if(Z.buffer.length<Q)while(Z){if(Z.buffer.length===Q){Y.push(Z.buffer);break}else if(Z.buffer.length>Q){Y.push(Z.buffer.slice(0,Q));break}else if(V<0&&Z.buffer.length<Q)Y.push(Z.buffer);V-=Z.buffer.length,Q-=Z.buffer.length,Z=Z.next}return Y}}});var t3=Z1((Pq0,s3)=>{var WN=zQ(),Mc=i3();class JG{constructor(){this.queue=new Mc,this.offset=0}get length(){return this.queue.length-this.offset}append(W){if(Buffer.isBuffer(W)){if(this.offset>0){let G=this.queue.shift();this.queue.unshift(G.slice(this.offset)),this.offset=0}this.queue.push(W)}else if(Array.isArray(W))for(let G=0;G<W.length;G+=1)this.append(W[G]);else if(W instanceof JG){if(this.offset>0){let X=this.queue.shift();this.queue.unshift(X.slice(this.offset)),this.offset=0}if(W.offset>0){let X=W.queue.shift();W.queue.unshift(X.slice(W.offset)),W.offset=0}let G=W.queue.head;while(G)this.queue.push(G.buffer),G=G.next}}get(W){let G=W;while(G>=this.length)G-=this.length;while(G<0)G+=this.length;let X=this.queue.head,{offset:Y}=this;while(X){if(X.buffer.length-Y>G)return X.buffer[G+Y];G-=X.buffer.length-Y,Y=0,X=X.next}}slice(W,G){if(typeof W!=="number")W=0;if(typeof G!=="number")G=this.length;while(W<0)W+=this.length;while(G<0)G+=this.length;if(G=Math.min(G,this.length),W>=this.length||G===0)return Buffer.alloc(0);let X=W;W=Math.min(X,G),G=Math.max(X,G);let Y=this.queue.slice(W+this.offset,G+this.offset);if(Y.count===1)return Y.first;let Z=Y.head,V=Buffer.allocUnsafe(Y.length),Q=0;for(let J=0;J<Y.count;J+=1)V.set(Z.buffer,Q),Q+=Z.buffer.length,Z=Z.next;return V}toString(W,G,X){return this.slice(G,X).toString(W)}consume(W){let G=W;while(this.length>0){let X=this.queue.first.length-this.offset;if(G>=X)this.queue.shift(),G-=X,this.offset=0;else{this.offset+=G;break}}}indexOf(W,G=0){if(!Number.isInteger(W))throw TypeError("Invalid argument 1");if(W<0||W>255)throw Error("Invalid argument 1");if(!Number.isInteger(G))G=0;while(G>=this.length)G-=this.length;while(G<0)G+=this.length;let X=this.queue.head,Y=0,Z=()=>{Y+=X.buffer.length,X=X.next};while(X){let V=0;if(X===this.queue.head)V+=this.offset;if(G>=X.buffer.length-V){G-=X.buffer.length-V,Z();continue}if(G<X.buffer.length)V+=G;let Q=X.buffer.indexOf(W,V);if(Q>-1)return Q+Y-this.offset;if(Z(),V>this.offset)G=0}return-1}}var r3={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1};Object.keys(r3).forEach((W)=>{let G=WN();G(`
|
|
44
|
+
function bufferlist_${W}(offset = 0) {
|
|
45
|
+
const start = offset + this.offset;
|
|
46
|
+
const head = this.queue.first;
|
|
47
|
+
const size = ${G.formats.d(r3[W])};
|
|
48
|
+
const isFirtsChunkEnough = head.length - start >= size;
|
|
49
|
+
|
|
50
|
+
return isFirtsChunkEnough
|
|
51
|
+
? head.${W}(start)
|
|
52
|
+
: this.slice(offset, offset + size).${W}(0)
|
|
53
|
+
}
|
|
54
|
+
`),JG.prototype[W]=G.toFunction()});var Tc=["readIntBE","readIntLE","readUIntBE","readUIntLE"];Tc.forEach((W)=>{let G=WN();G(`
|
|
55
|
+
function bufferlist_${W}(size, offset = 0) {
|
|
56
|
+
const start = offset + this.offset;
|
|
57
|
+
const head = this.queue.first;
|
|
58
|
+
const isFirtsChunkEnough = head.length - start >= size;
|
|
59
|
+
|
|
60
|
+
return isFirtsChunkEnough
|
|
61
|
+
? head.${W}(start, size)
|
|
62
|
+
: this.slice(offset, offset + size).${W}(0, size)
|
|
63
|
+
}
|
|
64
|
+
`),JG.prototype[W]=G.toFunction()});var a3={writeDoubleBE:8,writeDoubleLE:8,writeFloatBE:4,writeFloatLE:4,writeInt32BE:4,writeInt32LE:4,writeUInt32BE:4,writeUInt32LE:4,writeInt16BE:2,writeInt16LE:2,writeUInt16BE:2,writeUInt16LE:2,writeInt8:1,writeUInt8:1};Object.keys(a3).forEach((W)=>{let G=WN();G(`
|
|
65
|
+
function bufferlist_${W}(value) {
|
|
66
|
+
const size = ${G.formats.d(a3[W])};
|
|
67
|
+
const buf = Buffer.allocUnsafe(size);
|
|
68
|
+
buf.${W}(value, 0);
|
|
69
|
+
this.append(buf);
|
|
70
|
+
}
|
|
71
|
+
`),JG.prototype[W]=G.toFunction()});var Pc=["writeIntBE","writeIntLE","writeUIntBE","writeUIntLE"];Pc.forEach((W)=>{let G=WN();G(`
|
|
72
|
+
function bufferlist_${W}(value, size) {
|
|
73
|
+
const buf = Buffer.allocUnsafe(size);
|
|
74
|
+
buf.${W}(value, 0, size);
|
|
75
|
+
this.append(buf);
|
|
76
|
+
}
|
|
77
|
+
`),JG.prototype[W]=G.toFunction()});s3.exports=JG});var HY=Z1((Rq0,e3)=>{e3.exports=class extends Error{constructor(G,X){let Y=`requested ${G} bytes but only ${X} available`;super(Y);this.name="NotEnoughDataError"}}});var IQ=Z1((Lq0,XB)=>{var{Transform:Rc}=$8("stream"),GN=zQ(),Lc=t3(),Bc=HY(),WB=Symbol("buffer");class AY extends Rc{constructor(W={}){super(W);this[WB]=new Lc}get buffer(){return this[WB]}get length(){return this.buffer.length}append(W){this.buffer.append(W)}get(W){return this.buffer.get(W)}slice(W,G){return this.buffer.slice(W,G)}consume(W){this.buffer.consume(W)}toString(W,G,X){return this.buffer.toString(W,G,X)}indexOf(W,G=0){return this.buffer.indexOf(W,G)}readBuffer(W){jj(W,this.length);let G=this.slice(0,W);return this.consume(W),G}writeBuffer(W){this.append(W)}}var GB={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1},Ec=["readIntBE","readIntLE","readUIntBE","readUIntLE"];Object.keys(GB).forEach((W)=>{let G=GN();G(`
|
|
78
|
+
function binary_${W}() {
|
|
79
|
+
const bytes = ${G.formats.d(GB[W])};
|
|
80
|
+
assertSize(bytes, this.length);
|
|
81
|
+
|
|
82
|
+
const res = this.buffer.${W}(0);
|
|
83
|
+
this.consume(bytes);
|
|
84
|
+
|
|
85
|
+
return res;
|
|
86
|
+
}
|
|
87
|
+
`),AY.prototype[W]=G.toFunction({assertSize:jj})});Ec.forEach((W)=>{let G=GN();G(`
|
|
88
|
+
function binary_${W}(size) {
|
|
89
|
+
assertSize(size, this.length);
|
|
90
|
+
|
|
91
|
+
const res = this.buffer.${W}(size, 0);
|
|
92
|
+
this.consume(size);
|
|
93
|
+
return res;
|
|
94
|
+
}
|
|
95
|
+
`),AY.prototype[W]=G.toFunction({assertSize:jj})});var $c=["writeDoubleBE","writeDoubleLE","writeFloatBE","writeFloatLE","writeInt32BE","writeInt32LE","writeUInt32BE","writeUInt32LE","writeInt16BE","writeInt16LE","writeUInt16BE","writeUInt16LE","writeInt8","writeUInt8"];$c.forEach((W)=>{let G=GN();G(`
|
|
96
|
+
function binary_${W}(value) {
|
|
97
|
+
this.buffer.${W}(value);
|
|
98
|
+
}
|
|
99
|
+
`),AY.prototype[W]=G.toFunction()});var Fc=["writeIntBE","writeIntLE","writeUIntBE","writeUIntLE"];Fc.forEach((W)=>{let G=GN();G(`
|
|
100
|
+
function binary_${W}(value, size) {
|
|
101
|
+
this.buffer.${W}(value, size);
|
|
102
|
+
}
|
|
103
|
+
`),AY.prototype[W]=G.toFunction()});function jj(W,G){if(W>G)throw new Bc(W,G)}XB.exports=AY});var ZB=Z1((Bq0,YB)=>{/*!
|
|
104
|
+
* isobject <https://github.com/jonschlinkert/isobject>
|
|
105
|
+
*
|
|
106
|
+
* Copyright (c) 2014-2017, Jon Schlinkert.
|
|
107
|
+
* Released under the MIT License.
|
|
108
|
+
*/YB.exports=function(G){return G!=null&&typeof G==="object"&&Array.isArray(G)===!1}});var JB=Z1((Eq0,QB)=>{/*!
|
|
109
|
+
* is-plain-object <https://github.com/jonschlinkert/is-plain-object>
|
|
110
|
+
*
|
|
111
|
+
* Copyright (c) 2014-2017, Jon Schlinkert.
|
|
112
|
+
* Released under the MIT License.
|
|
113
|
+
*/var Sc=ZB();function VB(W){return Sc(W)===!0&&Object.prototype.toString.call(W)==="[object Object]"}QB.exports=function(G){var X,Y;if(VB(G)===!1)return!1;if(X=G.constructor,typeof X!=="function")return!1;if(Y=X.prototype,VB(Y)===!1)return!1;if(Y.hasOwnProperty("isPrototypeOf")===!1)return!1;return!0}});var E7=Z1(($q0,UB)=>{var xc=JB();UB.exports={isType:kc,isUserType:xc,isFunction:wQ,isDecodeType:_c,isEncodeType:yc};function kc(W){return Oj(W)&&wQ(W.encode)&&wQ(W.decode)}function wQ(W){return typeof W==="function"}function Oj(W){return typeof W==="object"&&W!==null}function _c(W){return Oj(W)&&wQ(W.decode)}function yc(W){return Oj(W)&&wQ(W.encode)}});var _6=Z1((Fq0,qB)=>{var vc=Symbol("skip"),gc=Symbol("bytes");qB.exports={skip:vc,bytes:gc}});var y6=Z1((Sq0,HB)=>{var NB=_6();HB.exports=class W{constructor(){this[NB.bytes]=0,this.node=void 0,this.current=void 0}get bytes(){return this[NB.bytes]}static clone(G){let X=new W;if(G instanceof W)X.node=G.node,X.current=G.current;return X}static clean(G){if(G instanceof W)G.node=void 0,G.current=void 0}}});var zY=Z1((xq0,jB)=>{var{isType:uc,isUserType:hc,isDecodeType:bc}=E7(),mc=IQ(),Kj=_6(),AB=y6();jB.exports={decode:zB,decodeCommon:IB};function zB(W,G){let X=W;if(Buffer.isBuffer(W))X=new mc,X.append(W);let Y=new AB,Z=IB(X,G,Y);return zB.bytes=Y.bytes,AB.clean(Y),Z}function IB(W,G,X){if(uc(G)){let Y=G.decode.call(X,W);return X[Kj.bytes]+=G.decode.bytes,Y}return wB(W,G,X)}function wB(W,G,X){fc(G);let Y=Object.create(null);if(X.node===void 0)X.node=Y,X.current=Y;else X.current=Y;let Z=Object.keys(G);for(let V=0;V<Z.length;V+=1){let Q=Z[V],J=G[Q];if(!bc(J)){Y[Q]=wB(W,J,X),X.current=Y;continue}let U=J.decode.call(X,W);if(X[Kj.bytes]+=J.decode.bytes,J[Kj.skip]===!0)continue;Y[Q]=U}return Y}function fc(W){if(!hc(W))throw TypeError("Argument #2 should be a plain object.")}});var jQ=Z1((kq0,TB)=>{var{isUserType:cc,isEncodeType:pc,isType:lc}=E7(),KB=_6(),OB=y6(),Cj=IQ();TB.exports={encode:CB,encodeCommon:DB};function CB(W,G,X){let Y=new OB;if(G instanceof Cj){let Z=X;X=G,G=Z}if(!(X instanceof Cj))X=new Cj;return DB(W,X,G,Y),CB.bytes=Y.bytes,OB.clean(Y),X}function DB(W,G,X,Y){if(lc(X))X.encode.call(Y,W,G),Y[KB.bytes]+=X.encode.bytes;else MB(W,G,X,Y)}function MB(W,G,X,Y){if(dc(X),Y.node===void 0)Y.node=W,Y.current=W;else Y.current=W;let Z=Object.keys(X);for(let V=0;V<Z.length;V+=1){let Q=Z[V],J=X[Q],U=W[Q];if(!pc(J)){MB(U,G,J,Y),Y.current=W;continue}J.encode.call(Y,U,G),Y[KB.bytes]+=J.encode.bytes}}function dc(W){if(!cc(W))throw TypeError("Argument `schema` should be a plain object.")}});var OQ=Z1((_q0,$B)=>{var{isUserType:oc,isType:RB}=E7(),PB=y6(),LB=_6();$B.exports={encodingLength:nc,encodingLengthCommon:BB};function nc(W,G){let X=new PB;return BB(W,G,X),PB.clean(X),X.bytes}function BB(W,G,X){if(RB(G))X[LB.bytes]+=G.encodingLength.call(X,W);else EB(W,G,X)}function EB(W,G,X){if(!oc(G))throw TypeError("Argument `schema` should be a plain object.");if(X.node===void 0)X.node=W,X.current=W;else X.current=W;let Y=Object.keys(G);for(let Z=0;Z<Y.length;Z+=1){let V=Y[Z],Q=G[V],J=W[V];if(!RB(Q)){EB(J,Q,X),X.current=W;continue}X[LB.bytes]+=Q.encodingLength.call(X,J)}}});var gB=Z1((yq0,vB)=>{var{decodeCommon:yB}=zY(),{encodeCommon:ic}=jQ(),{encodingLengthCommon:FB}=OQ(),{isType:SB,isUserType:rc,isFunction:ac}=E7(),v6=y6();vB.exports=sc;function sc(W,G,X="count"){if(!SB(W)&&!rc(W))throw TypeError("Argument #1 should be a valid type.");let Y=X==="bytes",Z=typeof G==="number",V=SB(G),Q=ac(G);if(!Z&&!V&&!Q)throw TypeError("Unknown type of argument #1.");return{encode:J,decode:U,encodingLength:q};function J(N,A){xB(N);let H=v6.clone(this);J.bytes=0;let I=0;if(V)I=N.length;else if(Z)I=G;else if(Q)I=G(H),kB(I);if(!Y)_B(I,N.length);if(Y){let w=v6.clone(H);for(let C of N)FB(C,W,w);if(V)I=w.bytes;_B(w.bytes,I),v6.clean(w)}if(V)G.encode.call(H,I,A),J.bytes+=G.encode.bytes;N.forEach((w)=>{ic(w,A,W,H)}),J.bytes+=H.bytes,v6.clean(H)}function U(N){let A=0;U.bytes=0;let H=v6.clone(this);if(Z)A=G;else if(V)A=G.decode.call(H,N),U.bytes+=G.decode.bytes;else if(Q)A=G(H);kB(A);let I;if(Y)I=tc(W,A,N,H);else I=ec(W,A,N,H);return U.bytes+=H.bytes,v6.clean(H),I}function q(N){xB(N);let A=v6.clone(this),H=0;if(Z&&Y)return G;if(V&&!Y)H=G.encodingLength(N.length);for(let I of N)FB(I,W,A);if(v6.clean(A),H+=A.bytes,V&&Y)H+=G.encodingLength(H);return H}}function xB(W){if(!Array.isArray(W))throw TypeError("Argument #1 should be an Array.")}function kB(W){if(typeof W!=="number")throw TypeError("Length of an array should be a number.")}function _B(W,G){if(W!==G)throw Error(`Argument #1 required length ${W} instead of ${G}`)}function tc(W,G,X,Y){let Z=[],V=Y.bytes,Q=0;while(Q<G)Z.push(yB(X,W,Y)),Q=Y.bytes-V;if(Q>G)throw Error("Incorrect length of an array.");return Z}function ec(W,G,X,Y){let Z=Array(G);for(let V=0;V<G;V+=1)Z[V]=yB(X,W,Y);return Z}});var mB=Z1((vq0,bB)=>{var{isType:Wp,isFunction:Gp}=E7(),Xp=HY(),Yp=IQ();bB.exports=Zp;function Zp(W){let G=typeof W==="number",X=Wp(W),Y=Gp(W),Z=W===null;if(!G&&!X&&!Y&&!Z)throw TypeError("Unknown type of argument #1.");return{encode:V,decode:Q,encodingLength:J};function V(U,q){uB(U),V.bytes=0;let N=this;if(G)hB(W,U.length);if(X)W.encode.call(N,U.length,q),V.bytes+=W.encode.bytes;if(Y){let A=W(N);Dj(A),hB(A,U.length)}if(q.writeBuffer(Buffer.isBuffer(U)?U:U.buffer),V.bytes+=U.length,Z)q.writeUInt8(0),V.bytes+=1}function Q(U){let q=0;Q.bytes=0;let N=this;if(G)q=W;else if(X)q=W.decode.call(N,U),Q.bytes+=W.decode.bytes,Dj(q);else if(Y)q=W(N),Dj(q);else if(Z){if(q=U.indexOf(0),q===-1)throw new Xp(U.length+1,U.length)}let A=U.readBuffer(q);if(Q.bytes+=q,Z)Q.bytes+=1,U.consume(1);return A}function J(U){uB(U);let q=0;if(G)return W;if(Z)q=1;else if(X)q=W.encodingLength(U.length);return q+U.length}}function uB(W){if(!Buffer.isBuffer(W)&&!(W instanceof Yp))throw TypeError("Argument 1 should be a Buffer or a BinaryStream.")}function hB(W,G){if(W!==G)throw Error(`Buffer required length ${W} instead of ${G}`)}function Dj(W){if(typeof W!=="number")throw TypeError("Length of a buffer should be a number.")}});var cB=Z1((gq0,fB)=>{var{isType:Vp}=E7();fB.exports=Qp;function Qp(W){if(!Vp(W))throw TypeError("Argument #1 should be valid type.");function G(Y){let Z=this,V=W.decode.call(Z,Y);return G.bytes=W.decode.bytes,Boolean(V)}function X(Y,Z){let V=this;W.encode.call(V,Y?1:0,Z),X.bytes=W.encode.bytes}return{encode:X,decode:G,encodingLength:W.encodingLength}}});var lB=Z1((uq0,pB)=>{var{decodeCommon:Jp}=zY(),{encodeCommon:Up}=jQ(),{encodingLengthCommon:qp}=OQ(),{isType:Np,isFunction:XN}=E7(),Hp=_6(),g6=y6();pB.exports=Ap;function Ap(W,G=1){if(!Np(W))throw TypeError("Invalid data type.");if(!Number.isInteger(G)&&!XN(G))throw TypeError("Argument #2 should be a valid integer or function.");return{[Hp.skip]:!0,encodingLength:X,decode:Y,encode:Z};function X(V){let Q=g6.clone(this),J=XN(G)?G(Q):G;return qp(V,W,Q),g6.clean(Q),Q.bytes*J}function Y(V){let Q=g6.clone(this);Y.bytes=0;let J=XN(G)?G(Q):G;if(J===0){g6.clean(Q);return}for(let U=J;U>0;U-=1)Jp(V,W,Q);Y.bytes=Q.bytes,g6.clean(Q)}function Z(V,Q){Z.bytes=0;let J=g6.clone(this),U=XN(G)?G(J):G;if(U===0){g6.clean(J);return}for(let q=U;q>0;q-=1)Up(0,Q,W,J);Z.bytes=J.bytes,g6.clean(J)}}});var nB=Z1((hq0,oB)=>{var{isType:zp}=E7(),Ip=HY();oB.exports=wp;function wp(W,G="ascii"){if(!Buffer.isEncoding(G))throw Error("Argument #2 should be an encoding name.");if(typeof W==="number")return{encode:Kp(W,G),decode:Cp(W,G),encodingLength:()=>W};if(zp(W))return{encode:Dp(W,G),decode:Mp(W,G),encodingLength:Tp(W,G)};if(W===null)return{encode:jp(G),decode:Op(G),encodingLength(X){return Buffer.byteLength(X,G)+1}};if(typeof W==="function")return{encode:Pp(W,G),decode:Rp(W,G),encodingLength(X){return Buffer.byteLength(X,G)}};throw TypeError("Unknown type of argument #1.")}function jp(W){return function G(X,Y){let Z=Buffer.from(X.toString(),W);Y.writeBuffer(Z),Y.writeInt8(0),G.bytes=Z.length+1}}function Op(W){return function G(X){let Y=X.indexOf(0);if(Y===-1)throw new Ip(X.length+1,X.length);let Z=Y+1,V=X.readBuffer(Z);return G.bytes=Z,V.toString(W,0,Y)}}function Kp(W,G){return function X(Y,Z){if(Y=Y.toString(),Buffer.byteLength(Y,G)!==W)throw Error(`Size of string should be ${W} in bytes.`);let V=Buffer.from(Y,G);Z.writeBuffer(V),X.bytes=V.length}}function Cp(W,G){return function X(Y){let Z=Y.readBuffer(W);return X.bytes=W,Z.toString(G)}}function Dp(W,G){return function X(Y,Z){Y=Y.toString();let V=this;W.encode.call(V,Buffer.byteLength(Y,G),Z),X.bytes=W.encode.bytes;let Q=Buffer.from(Y,G);Z.writeBuffer(Q),X.bytes+=Q.length}}function Mp(W,G){return function X(Y){let Z=W.decode.call(this,Y);if(typeof Z!=="number")throw TypeError("Size of a string should be a number.");let V=Y.readBuffer(Z);return X.bytes=W.decode.bytes+V.length,V.toString(G)}}function Tp(W,G){return function(Y){let Z=Buffer.byteLength(Y,G);return W.encodingLength(Z)+Z}}function Pp(W,G){return function X(Y,Z){X.bytes=0;let Q=W(this),J=Buffer.from(Y.toString(),G);dB(Q),Lp(Q,J.length),Z.writeBuffer(J),X.bytes+=J.length}}function Rp(W,G){return function X(Y){let Z=W(this);dB(Z);let V=Y.readBuffer(Z);return X.bytes=Z,V.toString(G)}}function dB(W){if(typeof W!=="number")throw TypeError("Length of a buffer should be a number.")}function Lp(W,G){if(W!==G)throw Error(`Buffer required length ${W} instead of ${G}`)}});var rB=Z1((bq0,iB)=>{var YN=zQ();iB.exports={doublebe:d9(8,"writeDoubleBE","readDoubleBE"),doublele:d9(8,"writeDoubleLE","readDoubleLE"),floatbe:d9(4,"writeFloatBE","readFloatBE"),floatle:d9(4,"writeFloatLE","readFloatLE"),int8:d9(1,"writeInt8","readInt8"),uint8:d9(1,"writeUInt8","readUInt8"),int16be:d9(2,"writeInt16BE","readInt16BE"),uint16be:d9(2,"writeUInt16BE","readUInt16BE"),int16le:d9(2,"writeInt16LE","readInt16LE"),uint16le:d9(2,"writeUInt16LE","readUInt16LE"),int32be:d9(4,"writeInt32BE","readInt32BE"),uint32be:d9(4,"writeUInt32BE","readUInt32BE"),int32le:d9(4,"writeInt32LE","readInt32LE"),uint32le:d9(4,"writeUInt32LE","readUInt32LE"),int24be:M5(3,"writeIntBE","readIntBE"),uint24be:M5(3,"writeUIntBE","readUIntBE"),int24le:M5(3,"writeIntLE","readIntLE"),uint24le:M5(3,"writeUIntLE","readUIntLE"),int40be:M5(5,"writeIntBE","readIntBE"),uint40be:M5(5,"writeUIntBE","readUIntBE"),int40le:M5(5,"writeIntLE","readIntLE"),uint40le:M5(5,"writeUIntLE","readUIntLE"),int48be:M5(6,"writeIntBE","readIntBE"),uint48be:M5(6,"writeUIntBE","readUIntBE"),int48le:M5(6,"writeIntLE","readIntLE"),uint48le:M5(6,"writeUIntLE","readUIntLE")};function d9(W,G,X){let Y=YN(),Z=YN();return Y(`
|
|
114
|
+
function decode_${X}(rstream) {
|
|
115
|
+
decode_${X}.bytes = ${Y.formats.d(W)};
|
|
116
|
+
return rstream.${X}()
|
|
117
|
+
}
|
|
118
|
+
`),Z(`
|
|
119
|
+
function encode_${G}(value, wstream) {
|
|
120
|
+
wstream.${G}(value);
|
|
121
|
+
encode_${G}.bytes = ${Y.formats.d(W)};
|
|
122
|
+
}
|
|
123
|
+
`),{encodingLength:()=>W,encode:Z.toFunction(),decode:Y.toFunction()}}function M5(W,G,X){let Y=YN(),Z=YN();return Y(`
|
|
124
|
+
function decode_${X}(rstream) {
|
|
125
|
+
decode_${X}.bytes = ${Y.formats.d(W)};
|
|
126
|
+
return rstream.${X}(${Y.formats.d(W)})
|
|
127
|
+
}
|
|
128
|
+
`),Z(`
|
|
129
|
+
function encode_${G}(value, wstream) {
|
|
130
|
+
wstream.${G}(value, ${Y.formats.d(W)});
|
|
131
|
+
encode_${G}.bytes = ${Y.formats.d(W)};
|
|
132
|
+
}
|
|
133
|
+
`),{encodingLength:()=>W,encode:Z.toFunction(),decode:Y.toFunction()}}});var sB=Z1((mq0,aB)=>{var{isType:Bp,isFunction:Mj,isUserType:Ep}=E7(),Tj=_6(),{decodeCommon:$p}=zY(),{encodeCommon:Fp}=jQ(),{encodingLengthCommon:Sp}=OQ(),u6=y6();aB.exports=xp;function xp(W,G){if(!Bp(G)&&!Ep(G))throw TypeError("Argument #2 should be a valid type.");let X={encode:Y,decode:Z,encodingLength:V,[Tj.skip]:!1};return X;function Y(Q,J){let U=u6.clone(this);Y.bytes=0;let q=Mj(W)?Boolean(W(U)):Boolean(W);if(X[Tj.skip]=!q,!q){u6.clean(U);return}Fp(Q,J,G,U),Y.bytes=U.bytes,u6.clean(U)}function Z(Q){let J=u6.clone(this);Z.bytes=0;let U=Mj(W)?Boolean(W(J)):Boolean(W);if(X[Tj.skip]=!U,!U){u6.clean(J);return}let q=$p(Q,G,J);return Z.bytes=J.bytes,u6.clean(J),q}function V(Q){let J=u6.clone(this);if(Mj(W)?Boolean(W(J)):Boolean(W))Sp(Q,G,J);return u6.clean(J),J.bytes}}});var WE=Z1((fq0,eB)=>{var ZN=_6(),{decodeCommon:kp}=zY(),tB=y6();eB.exports=_p;function _p(...W){if(W.length===0)throw TypeError("You should set at least one condition type.");let G={decode:X,encode:()=>{},[ZN.skip]:!0};return G;function X(Y){X.bytes=0;let Z=tB.clone(this);for(let V of W){let Q=kp(Y,V,Z);if(V[ZN.skip]===!0)continue;return X.bytes=Z.bytes,tB.clean(Z),G[ZN.skip]=!1,Q}G[ZN.skip]=!0}}});var ZE=Z1((cq0,YE)=>{var XE=zQ(),yp=HY();class VN{constructor(W){this.stream=W,this.index=0}append(W){this.stream.append(W)}commit(){this.stream.consume(this.index)}get(W=0){return this.stream.get(this.index+W)}get length(){return this.stream.length}slice(W,G){return this.stream.slice(W,G)}toString(W,G,X){return this.stream.toString(W,G,X)}readBuffer(W){Pj(this.index+W,this.length);let G=this.stream.slice(this.index,this.index+W);return this.index+=W,G}indexOf(W,G=0){return this.stream.indexOf(W,this.index+G)-this.index}}var GE={readDoubleBE:8,readDoubleLE:8,readFloatBE:4,readFloatLE:4,readInt32BE:4,readInt32LE:4,readUInt32BE:4,readUInt32LE:4,readInt16BE:2,readInt16LE:2,readUInt16BE:2,readUInt16LE:2,readInt8:1,readUInt8:1};Object.keys(GE).forEach((W)=>{let G=XE(),X=GE[W];G(`
|
|
134
|
+
function transaction_${W}() {
|
|
135
|
+
assertSize(this.index + ${G.formats.d(X)}, this.length);
|
|
136
|
+
const value = this.stream.buffer.${W}(this.index);
|
|
137
|
+
this.index += ${G.formats.d(X)};
|
|
138
|
+
return value;
|
|
139
|
+
}
|
|
140
|
+
`),VN.prototype[W]=G.toFunction({assertSize:Pj})});["readIntBE","readIntLE","readUIntBE","readUIntLE"].forEach((W)=>{let G=XE();G(`
|
|
141
|
+
function transaction_${W}(bytes) {
|
|
142
|
+
assertSize(this.index + bytes, this.length);
|
|
143
|
+
const value = this.stream.buffer.${W}(bytes, this.index);
|
|
144
|
+
this.index += bytes;
|
|
145
|
+
return value;
|
|
146
|
+
}
|
|
147
|
+
`),VN.prototype[W]=G.toFunction({assertSize:Pj})});YE.exports=VN;function Pj(W,G){if(W>G)throw new yp(W,G)}});var H8=Z1((pq0,AE)=>{var Rj=IQ(),vp=gB(),gp=mB(),up=cB(),hp=lB(),bp=nB(),VE=rB(),mp=sB(),fp=WE(),{encode:UE}=jQ(),{decode:qE}=zY(),{encodingLength:cp}=OQ(),pp=ZE(),NE=HY(),HE={array:vp,bool:up,buffer:gp,reserved:hp,string:bp,when:mp,select:fp};for(let W of Object.keys(VE))HE[W]=VE[W];var QN=Symbol("schema");function QE(W){let G=new Rj({readableObjectMode:!1,writableObjectMode:!0,transform:lp});return G[QN]=W,G}function JE(W){let G=null,X=Buffer.isBuffer(W);if(!X)G=W;let Y=new Rj({transform:dp,readableObjectMode:!0,writableObjectMode:!1});if(Y[QN]=G,X)Y.append(W);return Y}function lp(W,G,X){try{UE(W,this[QN],this);let Y=this.slice();this.consume(Y.length),X(null,Y)}catch(Y){X(Y)}}function dp(W,G,X){this.append(W);try{while(this.length>0){let Y=new pp(this),Z=qE(Y,this[QN]);Y.commit(),this.push(Z)}X()}catch(Y){if(Y instanceof NE)X();else X(Y)}}AE.exports={createEncodeStream:QE,createDecodeStream:JE,encode:UE,decode:qE,encodingLength:cp,createEncode:QE,createDecode:JE,types:HE,BinaryStream:Rj,NotEnoughDataError:NE}});var H$=Z1((q$)=>{Object.defineProperty(q$,"__esModule",{value:!0});q$.LEB128=q$.SignedLEB128=q$.UnsignedLEB128=void 0;var DY;(function(W){W[W.LOWER_7=127]="LOWER_7",W[W.UPPER_1=128]="UPPER_1"})(DY||(DY={}));var U$=(W)=>Number.isSafeInteger(W);class MY{static decode(W,G=0){let X=this.$scanForNullBytes(W,G),Y=0,Z=0;for(let V=0;V<=X-G;V++){let Q=W[G+V]&DY.LOWER_7;Y|=Q<<Z,Z+=7}return Y}static encode(W){if(this.check(W),W<0)throw Error(`An unsigned number must NOT be negative, ${W} is!`);let G=[],X=W;do{let Y=X&DY.LOWER_7;if(X>>=7,X)Y=Y|DY.UPPER_1;G.push(Y)}while(X);return Uint8Array.from(G)}static check(W){if(!U$(W))throw Error(`${W} is not a safe integer!`)}static $scanForNullBytes(W,G=0){let X=G,Y=0;do{if(X>=W.byteLength)throw Error("This is not a LEB128-encoded Uint8Array, no ending found!");Y=W.slice(X,X+1)[0],X++}while(Y&DY.UPPER_1);return X-1}static getLength(W,G=0){return this.$scanForNullBytes(W,G)-G}}q$.UnsignedLEB128=MY;class DN{static $ceil7mul(W){let G=W;while(G%7)G++;return G}static check(W){if(!U$(W))throw Error(`${W} is not a safe integer!`)}static encode(W){if(this.check(W),W>=0)throw Error(`A signed number must be negative, ${W} isn't!`);let G=Math.ceil(Math.log2(-W));return MY.encode((1<<this.$ceil7mul(G))+W)}static decode(W,G=0){let X=MY.decode(W,G);return-((1<<Math.ceil(Math.log2(X)))-X)}}q$.SignedLEB128=DN;class MN{}q$.LEB128=MN;MN.encode=(W)=>(W>=0?MY:DN).encode(W);MN.decode=(W,G=0,X=!1)=>(X?DN:MY).decode(W,G)});var z$=Z1((dj,A$)=>{/*! MIT License. Copyright 2015-2018 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */(function(W){function G(P){return parseInt(P)===P}function X(P){if(!G(P.length))return!1;for(var E=0;E<P.length;E++)if(!G(P[E])||P[E]<0||P[E]>255)return!1;return!0}function Y(P,E){if(P.buffer&&P.name==="Uint8Array"){if(E)if(P.slice)P=P.slice();else P=Array.prototype.slice.call(P);return P}if(Array.isArray(P)){if(!X(P))throw Error("Array contains invalid value: "+P);return new Uint8Array(P)}if(G(P.length)&&X(P))return new Uint8Array(P);throw Error("unsupported array-like object")}function Z(P){return new Uint8Array(P)}function V(P,E,b,k,f){if(k!=null||f!=null)if(P.slice)P=P.slice(k,f);else P=Array.prototype.slice.call(P,k,f);E.set(P,b)}var Q=function(){function P(b){var k=[],f=0;b=encodeURI(b);while(f<b.length){var e=b.charCodeAt(f++);if(e===37)k.push(parseInt(b.substr(f,2),16)),f+=2;else k.push(e)}return Y(k)}function E(b){var k=[],f=0;while(f<b.length){var e=b[f];if(e<128)k.push(String.fromCharCode(e)),f++;else if(e>191&&e<224)k.push(String.fromCharCode((e&31)<<6|b[f+1]&63)),f+=2;else k.push(String.fromCharCode((e&15)<<12|(b[f+1]&63)<<6|b[f+2]&63)),f+=3}return k.join("")}return{toBytes:P,fromBytes:E}}(),J=function(){function P(k){var f=[];for(var e=0;e<k.length;e+=2)f.push(parseInt(k.substr(e,2),16));return f}var E="0123456789abcdef";function b(k){var f=[];for(var e=0;e<k.length;e++){var q0=k[e];f.push(E[(q0&240)>>4]+E[q0&15])}return f.join("")}return{toBytes:P,fromBytes:b}}(),U={16:10,24:12,32:14},q=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],N=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],A=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],H=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],I=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],w=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],C=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],D=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],x=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],h=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239000,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],p=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998000,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],u=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],n=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],c=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239000,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],l=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998000,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function G0(P){var E=[];for(var b=0;b<P.length;b+=4)E.push(P[b]<<24|P[b+1]<<16|P[b+2]<<8|P[b+3]);return E}var m=function(P){if(!(this instanceof m))throw Error("AES must be instanitated with `new`");Object.defineProperty(this,"key",{value:Y(P,!0)}),this._prepare()};m.prototype._prepare=function(){var P=U[this.key.length];if(P==null)throw Error("invalid key size (must be 16, 24 or 32 bytes)");this._Ke=[],this._Kd=[];for(var E=0;E<=P;E++)this._Ke.push([0,0,0,0]),this._Kd.push([0,0,0,0]);var b=(P+1)*4,k=this.key.length/4,f=G0(this.key),e;for(var E=0;E<k;E++)e=E>>2,this._Ke[e][E%4]=f[E],this._Kd[P-e][E%4]=f[E];var q0=0,Q0=k,$0;while(Q0<b){if($0=f[k-1],f[0]^=N[$0>>16&255]<<24^N[$0>>8&255]<<16^N[$0&255]<<8^N[$0>>24&255]^q[q0]<<24,q0+=1,k!=8)for(var E=1;E<k;E++)f[E]^=f[E-1];else{for(var E=1;E<k/2;E++)f[E]^=f[E-1];$0=f[k/2-1],f[k/2]^=N[$0&255]^N[$0>>8&255]<<8^N[$0>>16&255]<<16^N[$0>>24&255]<<24;for(var E=k/2+1;E<k;E++)f[E]^=f[E-1]}var E=0,D0,k0;while(E<k&&Q0<b)D0=Q0>>2,k0=Q0%4,this._Ke[D0][k0]=f[E],this._Kd[P-D0][k0]=f[E++],Q0++}for(var D0=1;D0<P;D0++)for(var k0=0;k0<4;k0++)$0=this._Kd[D0][k0],this._Kd[D0][k0]=u[$0>>24&255]^n[$0>>16&255]^c[$0>>8&255]^l[$0&255]},m.prototype.encrypt=function(P){if(P.length!=16)throw Error("invalid plaintext size (must be 16 bytes)");var E=this._Ke.length-1,b=[0,0,0,0],k=G0(P);for(var f=0;f<4;f++)k[f]^=this._Ke[0][f];for(var e=1;e<E;e++){for(var f=0;f<4;f++)b[f]=H[k[f]>>24&255]^I[k[(f+1)%4]>>16&255]^w[k[(f+2)%4]>>8&255]^C[k[(f+3)%4]&255]^this._Ke[e][f];k=b.slice()}var q0=Z(16),Q0;for(var f=0;f<4;f++)Q0=this._Ke[E][f],q0[4*f]=(N[k[f]>>24&255]^Q0>>24)&255,q0[4*f+1]=(N[k[(f+1)%4]>>16&255]^Q0>>16)&255,q0[4*f+2]=(N[k[(f+2)%4]>>8&255]^Q0>>8)&255,q0[4*f+3]=(N[k[(f+3)%4]&255]^Q0)&255;return q0},m.prototype.decrypt=function(P){if(P.length!=16)throw Error("invalid ciphertext size (must be 16 bytes)");var E=this._Kd.length-1,b=[0,0,0,0],k=G0(P);for(var f=0;f<4;f++)k[f]^=this._Kd[0][f];for(var e=1;e<E;e++){for(var f=0;f<4;f++)b[f]=D[k[f]>>24&255]^x[k[(f+3)%4]>>16&255]^h[k[(f+2)%4]>>8&255]^p[k[(f+1)%4]&255]^this._Kd[e][f];k=b.slice()}var q0=Z(16),Q0;for(var f=0;f<4;f++)Q0=this._Kd[E][f],q0[4*f]=(A[k[f]>>24&255]^Q0>>24)&255,q0[4*f+1]=(A[k[(f+3)%4]>>16&255]^Q0>>16)&255,q0[4*f+2]=(A[k[(f+2)%4]>>8&255]^Q0>>8)&255,q0[4*f+3]=(A[k[(f+1)%4]&255]^Q0)&255;return q0};var Y0=function(P){if(!(this instanceof Y0))throw Error("AES must be instanitated with `new`");this.description="Electronic Code Block",this.name="ecb",this._aes=new m(P)};Y0.prototype.encrypt=function(P){if(P=Y(P),P.length%16!==0)throw Error("invalid plaintext size (must be multiple of 16 bytes)");var E=Z(P.length),b=Z(16);for(var k=0;k<P.length;k+=16)V(P,b,0,k,k+16),b=this._aes.encrypt(b),V(b,E,k);return E},Y0.prototype.decrypt=function(P){if(P=Y(P),P.length%16!==0)throw Error("invalid ciphertext size (must be multiple of 16 bytes)");var E=Z(P.length),b=Z(16);for(var k=0;k<P.length;k+=16)V(P,b,0,k,k+16),b=this._aes.decrypt(b),V(b,E,k);return E};var U0=function(P,E){if(!(this instanceof U0))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Block Chaining",this.name="cbc",!E)E=Z(16);else if(E.length!=16)throw Error("invalid initialation vector size (must be 16 bytes)");this._lastCipherblock=Y(E,!0),this._aes=new m(P)};U0.prototype.encrypt=function(P){if(P=Y(P),P.length%16!==0)throw Error("invalid plaintext size (must be multiple of 16 bytes)");var E=Z(P.length),b=Z(16);for(var k=0;k<P.length;k+=16){V(P,b,0,k,k+16);for(var f=0;f<16;f++)b[f]^=this._lastCipherblock[f];this._lastCipherblock=this._aes.encrypt(b),V(this._lastCipherblock,E,k)}return E},U0.prototype.decrypt=function(P){if(P=Y(P),P.length%16!==0)throw Error("invalid ciphertext size (must be multiple of 16 bytes)");var E=Z(P.length),b=Z(16);for(var k=0;k<P.length;k+=16){V(P,b,0,k,k+16),b=this._aes.decrypt(b);for(var f=0;f<16;f++)E[k+f]=b[f]^this._lastCipherblock[f];V(P,this._lastCipherblock,0,k,k+16)}return E};var y=function(P,E,b){if(!(this instanceof y))throw Error("AES must be instanitated with `new`");if(this.description="Cipher Feedback",this.name="cfb",!E)E=Z(16);else if(E.length!=16)throw Error("invalid initialation vector size (must be 16 size)");if(!b)b=1;this.segmentSize=b,this._shiftRegister=Y(E,!0),this._aes=new m(P)};y.prototype.encrypt=function(P){if(P.length%this.segmentSize!=0)throw Error("invalid plaintext size (must be segmentSize bytes)");var E=Y(P,!0),b;for(var k=0;k<E.length;k+=this.segmentSize){b=this._aes.encrypt(this._shiftRegister);for(var f=0;f<this.segmentSize;f++)E[k+f]^=b[f];V(this._shiftRegister,this._shiftRegister,0,this.segmentSize),V(E,this._shiftRegister,16-this.segmentSize,k,k+this.segmentSize)}return E},y.prototype.decrypt=function(P){if(P.length%this.segmentSize!=0)throw Error("invalid ciphertext size (must be segmentSize bytes)");var E=Y(P,!0),b;for(var k=0;k<E.length;k+=this.segmentSize){b=this._aes.encrypt(this._shiftRegister);for(var f=0;f<this.segmentSize;f++)E[k+f]^=b[f];V(this._shiftRegister,this._shiftRegister,0,this.segmentSize),V(P,this._shiftRegister,16-this.segmentSize,k,k+this.segmentSize)}return E};var o=function(P,E){if(!(this instanceof o))throw Error("AES must be instanitated with `new`");if(this.description="Output Feedback",this.name="ofb",!E)E=Z(16);else if(E.length!=16)throw Error("invalid initialation vector size (must be 16 bytes)");this._lastPrecipher=Y(E,!0),this._lastPrecipherIndex=16,this._aes=new m(P)};o.prototype.encrypt=function(P){var E=Y(P,!0);for(var b=0;b<E.length;b++){if(this._lastPrecipherIndex===16)this._lastPrecipher=this._aes.encrypt(this._lastPrecipher),this._lastPrecipherIndex=0;E[b]^=this._lastPrecipher[this._lastPrecipherIndex++]}return E},o.prototype.decrypt=o.prototype.encrypt;var B=function(P){if(!(this instanceof B))throw Error("Counter must be instanitated with `new`");if(P!==0&&!P)P=1;if(typeof P==="number")this._counter=Z(16),this.setValue(P);else this.setBytes(P)};B.prototype.setValue=function(P){if(typeof P!=="number"||parseInt(P)!=P)throw Error("invalid counter value (must be an integer)");if(P>Number.MAX_SAFE_INTEGER)throw Error("integer value out of safe range");for(var E=15;E>=0;--E)this._counter[E]=P%256,P=parseInt(P/256)},B.prototype.setBytes=function(P){if(P=Y(P,!0),P.length!=16)throw Error("invalid counter bytes size (must be 16 bytes)");this._counter=P},B.prototype.increment=function(){for(var P=15;P>=0;P--)if(this._counter[P]===255)this._counter[P]=0;else{this._counter[P]++;break}};var R=function(P,E){if(!(this instanceof R))throw Error("AES must be instanitated with `new`");if(this.description="Counter",this.name="ctr",!(E instanceof B))E=new B(E);this._counter=E,this._remainingCounter=null,this._remainingCounterIndex=16,this._aes=new m(P)};R.prototype.encrypt=function(P){var E=Y(P,!0);for(var b=0;b<E.length;b++){if(this._remainingCounterIndex===16)this._remainingCounter=this._aes.encrypt(this._counter._counter),this._remainingCounterIndex=0,this._counter.increment();E[b]^=this._remainingCounter[this._remainingCounterIndex++]}return E},R.prototype.decrypt=R.prototype.encrypt;function _(P){P=Y(P,!0);var E=16-P.length%16,b=Z(P.length+E);V(P,b);for(var k=P.length;k<b.length;k++)b[k]=E;return b}function S(P){if(P=Y(P,!0),P.length<16)throw Error("PKCS#7 invalid length");var E=P[P.length-1];if(E>16)throw Error("PKCS#7 padding byte out of range");var b=P.length-E;for(var k=0;k<E;k++)if(P[b+k]!==E)throw Error("PKCS#7 invalid padding byte");var f=Z(b);return V(P,f,0,0,b),f}var v={AES:m,Counter:B,ModeOfOperation:{ecb:Y0,cbc:U0,cfb:y,ofb:o,ctr:R},utils:{hex:J,utf8:Q},padding:{pkcs7:{pad:_,strip:S}},_arrayTest:{coerceArray:Y,createArray:Z,copyArray:V}};if(typeof dj<"u")A$.exports=v;else if(typeof define==="function"&&define.amd)define([],function(){return v});else{if(W.aesjs)v._aesjs=W.aesjs;W.aesjs=v}})(dj)});var rj=Z1((C$)=>{var s0=C$,{Buffer:LN}=$8("buffer"),Sl=$8("os");s0.toBuffer=function(W,G,X){X=~~X;let Y;if(this.isV4Format(W))Y=G||LN.alloc(X+4),W.split(/\./g).map((Z)=>{Y[X++]=parseInt(Z,10)&255});else if(this.isV6Format(W)){let Z=W.split(":",8),V;for(V=0;V<Z.length;V++){let Q=this.isV4Format(Z[V]),J;if(Q)J=this.toBuffer(Z[V]),Z[V]=J.slice(0,2).toString("hex");if(J&&++V<8)Z.splice(V,0,J.slice(2,4).toString("hex"))}if(Z[0]==="")while(Z.length<8)Z.unshift("0");else if(Z[Z.length-1]==="")while(Z.length<8)Z.push("0");else if(Z.length<8){for(V=0;V<Z.length&&Z[V]!=="";V++);let Q=[V,1];for(V=9-Z.length;V>0;V--)Q.push("0");Z.splice(...Q)}Y=G||LN.alloc(X+16);for(V=0;V<Z.length;V++){let Q=parseInt(Z[V],16);Y[X++]=Q>>8&255,Y[X++]=Q&255}}if(!Y)throw Error(`Invalid ip address: ${W}`);return Y};s0.toString=function(W,G,X){G=~~G,X=X||W.length-G;let Y=[];if(X===4){for(let Z=0;Z<X;Z++)Y.push(W[G+Z]);Y=Y.join(".")}else if(X===16){for(let Z=0;Z<X;Z+=2)Y.push(W.readUInt16BE(G+Z).toString(16));Y=Y.join(":"),Y=Y.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3"),Y=Y.replace(/:{3,4}/,"::")}return Y};var xl=/^(\d{1,3}\.){3,3}\d{1,3}$/,kl=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i;s0.isV4Format=function(W){return xl.test(W)};s0.isV6Format=function(W){return kl.test(W)};function $Q(W){if(W===4)return"ipv4";if(W===6)return"ipv6";return W?W.toLowerCase():"ipv4"}s0.fromPrefixLen=function(W,G){if(W>32)G="ipv6";else G=$Q(G);let X=4;if(G==="ipv6")X=16;let Y=LN.alloc(X);for(let Z=0,V=Y.length;Z<V;++Z){let Q=8;if(W<8)Q=W;W-=Q,Y[Z]=~(255>>Q)&255}return s0.toString(Y)};s0.mask=function(W,G){W=s0.toBuffer(W),G=s0.toBuffer(G);let X=LN.alloc(Math.max(W.length,G.length)),Y;if(W.length===G.length)for(Y=0;Y<W.length;Y++)X[Y]=W[Y]&G[Y];else if(G.length===4)for(Y=0;Y<G.length;Y++)X[Y]=W[W.length-4+Y]&G[Y];else{for(Y=0;Y<X.length-6;Y++)X[Y]=0;X[10]=255,X[11]=255;for(Y=0;Y<W.length;Y++)X[Y+12]=W[Y]&G[Y+12];Y+=12}for(;Y<X.length;Y++)X[Y]=0;return s0.toString(X)};s0.cidr=function(W){let G=W.split("/"),X=G[0];if(G.length!==2)throw Error(`invalid CIDR subnet: ${X}`);let Y=s0.fromPrefixLen(parseInt(G[1],10));return s0.mask(X,Y)};s0.subnet=function(W,G){let X=s0.toLong(s0.mask(W,G)),Y=s0.toBuffer(G),Z=0;for(let Q=0;Q<Y.length;Q++)if(Y[Q]===255)Z+=8;else{let J=Y[Q]&255;while(J)J=J<<1&255,Z++}let V=2**(32-Z);return{networkAddress:s0.fromLong(X),firstAddress:V<=2?s0.fromLong(X):s0.fromLong(X+1),lastAddress:V<=2?s0.fromLong(X+V-1):s0.fromLong(X+V-2),broadcastAddress:s0.fromLong(X+V-1),subnetMask:G,subnetMaskLength:Z,numHosts:V<=2?V:V-2,length:V,contains(Q){return X===s0.toLong(s0.mask(Q,G))}}};s0.cidrSubnet=function(W){let G=W.split("/"),X=G[0];if(G.length!==2)throw Error(`invalid CIDR subnet: ${X}`);let Y=s0.fromPrefixLen(parseInt(G[1],10));return s0.subnet(X,Y)};s0.not=function(W){let G=s0.toBuffer(W);for(let X=0;X<G.length;X++)G[X]=255^G[X];return s0.toString(G)};s0.or=function(W,G){if(W=s0.toBuffer(W),G=s0.toBuffer(G),W.length===G.length){for(let V=0;V<W.length;++V)W[V]|=G[V];return s0.toString(W)}let X=W,Y=G;if(G.length>W.length)X=G,Y=W;let Z=X.length-Y.length;for(let V=Z;V<X.length;++V)X[V]|=Y[V-Z];return s0.toString(X)};s0.isEqual=function(W,G){if(W=s0.toBuffer(W),G=s0.toBuffer(G),W.length===G.length){for(let Y=0;Y<W.length;Y++)if(W[Y]!==G[Y])return!1;return!0}if(G.length===4){let Y=G;G=W,W=Y}for(let Y=0;Y<10;Y++)if(G[Y]!==0)return!1;let X=G.readUInt16BE(10);if(X!==0&&X!==65535)return!1;for(let Y=0;Y<4;Y++)if(W[Y]!==G[Y+12])return!1;return!0};s0.isPrivate=function(W){if(s0.isLoopback(W))return!0;if(!s0.isV6Format(W)){let G=s0.normalizeToLong(W);if(G<0)throw Error("invalid ipv4 address");W=s0.fromLong(G)}return/^(::f{4}:)?10\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?192\.168\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?172\.(1[6-9]|2\d|30|31)\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^(::f{4}:)?169\.254\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(W)||/^f[cd][0-9a-f]{2}:/i.test(W)||/^fe80:/i.test(W)||/^::1$/.test(W)||/^::$/.test(W)};s0.isPublic=function(W){return!s0.isPrivate(W)};s0.isLoopback=function(W){if(!/\./.test(W)&&!/:/.test(W))W=s0.fromLong(Number(W));return/^(::f{4}:)?127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/.test(W)||/^0177\./.test(W)||/^0x7f\./i.test(W)||/^fe80::1$/i.test(W)||/^::1$/.test(W)||/^::$/.test(W)};s0.loopback=function(W){if(W=$Q(W),W!=="ipv4"&&W!=="ipv6")throw Error("family must be ipv4 or ipv6");return W==="ipv4"?"127.0.0.1":"fe80::1"};s0.address=function(W,G){let X=Sl.networkInterfaces();if(G=$Q(G),W&&W!=="private"&&W!=="public"){let Z=X[W].filter((V)=>{return $Q(V.family)===G});if(Z.length===0)return;return Z[0].address}let Y=Object.keys(X).map((Z)=>{let V=X[Z].filter((Q)=>{if(Q.family=$Q(Q.family),Q.family!==G||s0.isLoopback(Q.address))return!1;if(!W)return!0;return W==="public"?s0.isPrivate(Q.address):s0.isPublic(Q.address)});return V.length?V[0].address:void 0}).filter(Boolean);return!Y.length?s0.loopback(G):Y[0]};s0.toLong=function(W){let G=0;return W.split(".").forEach((X)=>{G<<=8,G+=parseInt(X)}),G>>>0};s0.fromLong=function(W){return`${W>>>24}.${W>>16&255}.${W>>8&255}.${W&255}`};s0.normalizeToLong=function(W){let G=W.split(".").map((Z)=>{if(Z.startsWith("0x")||Z.startsWith("0X"))return parseInt(Z,16);else if(Z.startsWith("0")&&Z!=="0"&&/^[0-7]+$/.test(Z))return parseInt(Z,8);else if(/^[1-9]\d*$/.test(Z)||Z==="0")return parseInt(Z,10);else return NaN});if(G.some(isNaN))return-1;let X=0;switch(G.length){case 1:X=G[0];break;case 2:if(G[0]>255||G[1]>16777215)return-1;X=G[0]<<24|G[1]&16777215;break;case 3:if(G[0]>255||G[1]>255||G[2]>65535)return-1;X=G[0]<<24|G[1]<<16|G[2]&65535;break;case 4:if(G.some((Z)=>Z>255))return-1;X=G[0]<<24|G[1]<<16|G[2]<<8|G[3];break;default:return-1}return X>>>0}});var M$=Z1((SN0,D$)=>{D$.exports=function W(G,X){if(G===X)return!0;if(G&&X&&typeof G=="object"&&typeof X=="object"){if(G.constructor!==X.constructor)return!1;var Y,Z,V;if(Array.isArray(G)){if(Y=G.length,Y!=X.length)return!1;for(Z=Y;Z--!==0;)if(!W(G[Z],X[Z]))return!1;return!0}if(G.constructor===RegExp)return G.source===X.source&&G.flags===X.flags;if(G.valueOf!==Object.prototype.valueOf)return G.valueOf()===X.valueOf();if(G.toString!==Object.prototype.toString)return G.toString()===X.toString();if(V=Object.keys(G),Y=V.length,Y!==Object.keys(X).length)return!1;for(Z=Y;Z--!==0;)if(!Object.prototype.hasOwnProperty.call(X,V[Z]))return!1;for(Z=Y;Z--!==0;){var Q=V[Z];if(!W(G[Q],X[Q]))return!1}return!0}return G!==G&&X!==X}});var T$=Z1((_l)=>{_l.toString=function(W){switch(W){case 1:return"A";case 10:return"NULL";case 28:return"AAAA";case 18:return"AFSDB";case 42:return"APL";case 257:return"CAA";case 60:return"CDNSKEY";case 59:return"CDS";case 37:return"CERT";case 5:return"CNAME";case 49:return"DHCID";case 32769:return"DLV";case 39:return"DNAME";case 48:return"DNSKEY";case 43:return"DS";case 55:return"HIP";case 13:return"HINFO";case 45:return"IPSECKEY";case 25:return"KEY";case 36:return"KX";case 29:return"LOC";case 15:return"MX";case 35:return"NAPTR";case 2:return"NS";case 47:return"NSEC";case 50:return"NSEC3";case 51:return"NSEC3PARAM";case 12:return"PTR";case 46:return"RRSIG";case 17:return"RP";case 24:return"SIG";case 6:return"SOA";case 99:return"SPF";case 33:return"SRV";case 44:return"SSHFP";case 32768:return"TA";case 249:return"TKEY";case 52:return"TLSA";case 250:return"TSIG";case 16:return"TXT";case 252:return"AXFR";case 251:return"IXFR";case 41:return"OPT";case 255:return"ANY"}return"UNKNOWN_"+W};_l.toType=function(W){switch(W.toUpperCase()){case"A":return 1;case"NULL":return 10;case"AAAA":return 28;case"AFSDB":return 18;case"APL":return 42;case"CAA":return 257;case"CDNSKEY":return 60;case"CDS":return 59;case"CERT":return 37;case"CNAME":return 5;case"DHCID":return 49;case"DLV":return 32769;case"DNAME":return 39;case"DNSKEY":return 48;case"DS":return 43;case"HIP":return 55;case"HINFO":return 13;case"IPSECKEY":return 45;case"KEY":return 25;case"KX":return 36;case"LOC":return 29;case"MX":return 15;case"NAPTR":return 35;case"NS":return 2;case"NSEC":return 47;case"NSEC3":return 50;case"NSEC3PARAM":return 51;case"PTR":return 12;case"RRSIG":return 46;case"RP":return 17;case"SIG":return 24;case"SOA":return 6;case"SPF":return 99;case"SRV":return 33;case"SSHFP":return 44;case"TA":return 32768;case"TKEY":return 249;case"TLSA":return 52;case"TSIG":return 250;case"TXT":return 16;case"AXFR":return 252;case"IXFR":return 251;case"OPT":return 41;case"ANY":return 255;case"*":return 255}if(W.toUpperCase().startsWith("UNKNOWN_"))return parseInt(W.slice(8));return 0}});var P$=Z1((gl)=>{gl.toString=function(W){switch(W){case 0:return"NOERROR";case 1:return"FORMERR";case 2:return"SERVFAIL";case 3:return"NXDOMAIN";case 4:return"NOTIMP";case 5:return"REFUSED";case 6:return"YXDOMAIN";case 7:return"YXRRSET";case 8:return"NXRRSET";case 9:return"NOTAUTH";case 10:return"NOTZONE";case 11:return"RCODE_11";case 12:return"RCODE_12";case 13:return"RCODE_13";case 14:return"RCODE_14";case 15:return"RCODE_15"}return"RCODE_"+W};gl.toRcode=function(W){switch(W.toUpperCase()){case"NOERROR":return 0;case"FORMERR":return 1;case"SERVFAIL":return 2;case"NXDOMAIN":return 3;case"NOTIMP":return 4;case"REFUSED":return 5;case"YXDOMAIN":return 6;case"YXRRSET":return 7;case"NXRRSET":return 8;case"NOTAUTH":return 9;case"NOTZONE":return 10;case"RCODE_11":return 11;case"RCODE_12":return 12;case"RCODE_13":return 13;case"RCODE_14":return 14;case"RCODE_15":return 15}return 0}});var R$=Z1((bl)=>{bl.toString=function(W){switch(W){case 0:return"QUERY";case 1:return"IQUERY";case 2:return"STATUS";case 3:return"OPCODE_3";case 4:return"NOTIFY";case 5:return"UPDATE";case 6:return"OPCODE_6";case 7:return"OPCODE_7";case 8:return"OPCODE_8";case 9:return"OPCODE_9";case 10:return"OPCODE_10";case 11:return"OPCODE_11";case 12:return"OPCODE_12";case 13:return"OPCODE_13";case 14:return"OPCODE_14";case 15:return"OPCODE_15"}return"OPCODE_"+W};bl.toOpcode=function(W){switch(W.toUpperCase()){case"QUERY":return 0;case"IQUERY":return 1;case"STATUS":return 2;case"OPCODE_3":return 3;case"NOTIFY":return 4;case"UPDATE":return 5;case"OPCODE_6":return 6;case"OPCODE_7":return 7;case"OPCODE_8":return 8;case"OPCODE_9":return 9;case"OPCODE_10":return 10;case"OPCODE_11":return 11;case"OPCODE_12":return 12;case"OPCODE_13":return 13;case"OPCODE_14":return 14;case"OPCODE_15":return 15}return 0}});var L$=Z1((cl)=>{cl.toString=function(W){switch(W){case 1:return"IN";case 2:return"CS";case 3:return"CH";case 4:return"HS";case 255:return"ANY"}return"UNKNOWN_"+W};cl.toClass=function(W){switch(W.toUpperCase()){case"IN":return 1;case"CS":return 2;case"CH":return 3;case"HS":return 4;case"ANY":return 255}return 0}});var B$=Z1((dl)=>{dl.toString=function(W){switch(W){case 1:return"LLQ";case 2:return"UL";case 3:return"NSID";case 5:return"DAU";case 6:return"DHU";case 7:return"N3U";case 8:return"CLIENT_SUBNET";case 9:return"EXPIRE";case 10:return"COOKIE";case 11:return"TCP_KEEPALIVE";case 12:return"PADDING";case 13:return"CHAIN";case 14:return"KEY_TAG";case 26946:return"DEVICEID"}if(W<0)return null;return`OPTION_${W}`};dl.toCode=function(W){if(typeof W==="number")return W;if(!W)return-1;switch(W.toUpperCase()){case"OPTION_0":return 0;case"LLQ":return 1;case"UL":return 2;case"NSID":return 3;case"OPTION_4":return 4;case"DAU":return 5;case"DHU":return 6;case"N3U":return 7;case"CLIENT_SUBNET":return 8;case"EXPIRE":return 9;case"COOKIE":return 10;case"TCP_KEEPALIVE":return 11;case"PADDING":return 12;case"CHAIN":return 13;case"KEY_TAG":return 14;case"DEVICEID":return 26946;case"OPTION_65535":return 65535}let G=W.match(/_(\d+)$/);if(G)return parseInt(G[1],10);return-1}});var F$=Z1(($$,aj)=>{var E$=function(W){Object.defineProperty(W,"__esModule",{value:!0}),W.decode=A,W.encode=N,W.familyOf=q,W.name=void 0,W.sizeOf=U,W.v6=W.v4=void 0;let G=/^(\d{1,3}\.){3,3}\d{1,3}$/,X=4,Y=/^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i,Z=16,V={name:"v4",size:X,isFormat:(H)=>G.test(H),encode(H,I,w){w=~~w,I=I||new Uint8Array(w+X);let C=H.length,D=0;for(let x=0;x<C;){let h=H.charCodeAt(x++);if(h===46)I[w++]=D,D=0;else D=D*10+(h-48)}return I[w]=D,I},decode(H,I){return I=~~I,`${H[I++]}.${H[I++]}.${H[I++]}.${H[I]}`}};W.v4=V;let Q={name:"v6",size:Z,isFormat:(H)=>H.length>0&&Y.test(H),encode(H,I,w){w=~~w;let C=w+Z,D=-1,x=0,h=0,p=!0,u=!1;I=I||new Uint8Array(w+Z);for(let n=0;n<H.length;n++){let c=H.charCodeAt(n);if(c===58){if(p){if(D!==-1){if(w<C)I[w]=0;if(w<C-1)I[w+1]=0;w+=2}else if(w<C)D=w}else{if(u===!0){if(w<C)I[w]=h;w++}else{if(w<C)I[w]=x>>8;if(w<C-1)I[w+1]=x&255;w+=2}x=0,h=0}p=!0,u=!1}else if(c===46){if(w<C)I[w]=h;w++,h=0,x=0,p=!1,u=!0}else{if(p=!1,c>=97)c-=87;else if(c>=65)c-=55;else c-=48,h=h*10+c;x=(x<<4)+c}}if(p===!1)if(u===!0){if(w<C)I[w]=h;w++}else{if(w<C)I[w]=x>>8;if(w<C-1)I[w+1]=x&255;w+=2}else if(D===0){if(w<C)I[w]=0;if(w<C-1)I[w+1]=0;w+=2}else if(D!==-1){w+=2;for(let n=Math.min(w-1,C-1);n>=D+2;n--)I[n]=I[n-2];I[D]=0,I[D+1]=0,D=w}if(D!==w&&D!==-1){if(w>C-2)w=C-2;while(C>D)I[--C]=w<C&&w>D?I[--w]:0}else while(w<C)I[w++]=0;return I},decode(H,I){I=~~I;let w="";for(let C=0;C<Z;C+=2){if(C!==0)w+=":";w+=(H[I+C]<<8|H[I+C+1]).toString(16)}return w.replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}};W.v6=Q;let J="ip";W.name=J;function U(H){if(V.isFormat(H))return V.size;if(Q.isFormat(H))return Q.size;throw Error(`Invalid ip address: ${H}`)}function q(H){return U(H)===V.size?1:2}function N(H,I,w){w=~~w;let C=U(H);if(typeof I==="function")I=I(w+C);if(C===V.size)return V.encode(H,I,w);return Q.encode(H,I,w)}function A(H,I,w){if(I=~~I,w=w||H.length-I,w===V.size)return V.decode(H,I,w);if(w===Q.size)return Q.decode(H,I,w);throw Error(`Invalid buffer size needs to be ${V.size} for v4 or ${Q.size} for v6.`)}return"default"in W?W.default:W}({});if(typeof define==="function"&&define.amd)define([],function(){return E$});else if(typeof aj==="object"&&typeof $$==="object")aj.exports=E$});var S$=Z1((tl)=>{var G1=$8("buffer").Buffer,u4=T$(),il=P$(),rl=R$(),EN=L$(),ej=B$(),jG=F$(),y0=tl.name={};y0.encode=function(W,G,X,{mail:Y=!1}={}){if(!G)G=G1.alloc(y0.encodingLength(W));if(!X)X=0;let Z=X,V=W.replace(/^\.|\.$/gm,"");if(V.length){let Q=[];if(Y){let J="";V.split(".").forEach((U)=>{if(U.endsWith("\\"))J+=(J.length?".":"")+U.slice(0,-1);else if(Q.length===0&&J.length)Q.push(J+"."+U);else Q.push(U)})}else Q=V.split(".");for(let J=0;J<Q.length;J++){let U=G.write(Q[J],X+1);G[X]=U,X+=U+1}}return G[X++]=0,y0.encode.bytes=X-Z,G};y0.encode.bytes=0;y0.decode=function(W,G,{mail:X=!1}={}){if(!G)G=0;let Y=[],Z=G,V=0,Q=0,J=!1;while(!0){if(G>=W.length)throw Error("Cannot decode name (buffer overflow)");let U=W[G++];if(Q+=J?0:1,U===0)break;else if((U&192)===0){if(G+U>W.length)throw Error("Cannot decode name (buffer overflow)");if(V+=U+1,V>254)throw Error("Cannot decode name (name too long)");let q=W.toString("utf-8",G,G+U);if(X)q=q.replace(/\./g,"\\.");Y.push(q),G+=U,Q+=J?0:U}else if((U&192)===192){if(G+1>W.length)throw Error("Cannot decode name (buffer overflow)");let q=W.readUInt16BE(G-1)-49152;if(q>=Z)throw Error("Cannot decode name (bad pointer)");G=q,Z=q,Q+=J?0:1,J=!0}else throw Error("Cannot decode name (bad label)")}return y0.decode.bytes=Q,Y.length===0?".":Y.join(".")};y0.decode.bytes=0;y0.encodingLength=function(W){if(W==="."||W==="..")return 1;return G1.byteLength(W.replace(/^\.|\.$/gm,""))+2};var $1={};$1.encode=function(W,G,X){if(!G)G=G1.alloc($1.encodingLength(W));if(!X)X=0;let Y=G.write(W,X+1);return G[X]=Y,$1.encode.bytes=Y+1,G};$1.encode.bytes=0;$1.decode=function(W,G){if(!G)G=0;let X=W[G],Y=W.toString("utf-8",G+1,G+1+X);return $1.decode.bytes=X+1,Y};$1.decode.bytes=0;$1.encodingLength=function(W){return G1.byteLength(W)+1};var i5={};i5.encode=function(W,G,X){if(!G)G=i5.encodingLength(W);if(!X)X=0;let Y=(W.flags||0)&32767,Z=W.type==="response"?32768:0;return G.writeUInt16BE(W.id||0,X),G.writeUInt16BE(Y|Z,X+2),G.writeUInt16BE(W.questions.length,X+4),G.writeUInt16BE(W.answers.length,X+6),G.writeUInt16BE(W.authorities.length,X+8),G.writeUInt16BE(W.additionals.length,X+10),G};i5.encode.bytes=12;i5.decode=function(W,G){if(!G)G=0;if(W.length<12)throw Error("Header must be 12 bytes");let X=W.readUInt16BE(G+2);return{id:W.readUInt16BE(G),type:X&32768?"response":"query",flags:X&32767,flag_qr:(X>>15&1)===1,opcode:rl.toString(X>>11&15),flag_aa:(X>>10&1)===1,flag_tc:(X>>9&1)===1,flag_rd:(X>>8&1)===1,flag_ra:(X>>7&1)===1,flag_z:(X>>6&1)===1,flag_ad:(X>>5&1)===1,flag_cd:(X>>4&1)===1,rcode:il.toString(X&15),questions:Array(W.readUInt16BE(G+4)),answers:Array(W.readUInt16BE(G+6)),authorities:Array(W.readUInt16BE(G+8)),additionals:Array(W.readUInt16BE(G+10))}};i5.decode.bytes=12;i5.encodingLength=function(){return 12};var $4=tl.unknown={};$4.encode=function(W,G,X){if(!G)G=G1.alloc($4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(W.length,X),W.copy(G,X+2),$4.encode.bytes=W.length+2,G};$4.encode.bytes=0;$4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y=W.slice(G+2,G+2+X);return $4.decode.bytes=X+2,Y};$4.decode.bytes=0;$4.encodingLength=function(W){return W.length+2};var F4=tl.ns={};F4.encode=function(W,G,X){if(!G)G=G1.alloc(F4.encodingLength(W));if(!X)X=0;return y0.encode(W,G,X+2),G.writeUInt16BE(y0.encode.bytes,X),F4.encode.bytes=y0.encode.bytes+2,G};F4.encode.bytes=0;F4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y=y0.decode(W,G+2);return F4.decode.bytes=X+2,Y};F4.decode.bytes=0;F4.encodingLength=function(W){return y0.encodingLength(W)+2};var S4=tl.soa={};S4.encode=function(W,G,X){if(!G)G=G1.alloc(S4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.mname,G,X),X+=y0.encode.bytes,y0.encode(W.rname,G,X,{mail:!0}),X+=y0.encode.bytes,G.writeUInt32BE(W.serial||0,X),X+=4,G.writeUInt32BE(W.refresh||0,X),X+=4,G.writeUInt32BE(W.retry||0,X),X+=4,G.writeUInt32BE(W.expire||0,X),X+=4,G.writeUInt32BE(W.minimum||0,X),X+=4,G.writeUInt16BE(X-Y-2,Y),S4.encode.bytes=X-Y,G};S4.encode.bytes=0;S4.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.mname=y0.decode(W,G),G+=y0.decode.bytes,Y.rname=y0.decode(W,G,{mail:!0}),G+=y0.decode.bytes,Y.serial=W.readUInt32BE(G),G+=4,Y.refresh=W.readUInt32BE(G),G+=4,Y.retry=W.readUInt32BE(G),G+=4,Y.expire=W.readUInt32BE(G),G+=4,Y.minimum=W.readUInt32BE(G),G+=4,S4.decode.bytes=G-X,Y};S4.decode.bytes=0;S4.encodingLength=function(W){return 22+y0.encodingLength(W.mname)+y0.encodingLength(W.rname)};var x4=tl.txt={};x4.encode=function(W,G,X){if(!Array.isArray(W))W=[W];for(let Z=0;Z<W.length;Z++){if(typeof W[Z]==="string")W[Z]=G1.from(W[Z]);if(!G1.isBuffer(W[Z]))throw Error("Must be a Buffer")}if(!G)G=G1.alloc(x4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,W.forEach(function(Z){G[X++]=Z.length,Z.copy(G,X,0,Z.length),X+=Z.length}),G.writeUInt16BE(X-Y-2,Y),x4.encode.bytes=X-Y,G};x4.encode.bytes=0;x4.decode=function(W,G){if(!G)G=0;let X=G,Y=W.readUInt16BE(G);G+=2;let Z=[];while(Y>0){let V=W[G++];if(--Y,Y<V)throw Error("Buffer overflow");Z.push(W.slice(G,G+V)),G+=V,Y-=V}return x4.decode.bytes=G-X,Z};x4.decode.bytes=0;x4.encodingLength=function(W){if(!Array.isArray(W))W=[W];let G=2;return W.forEach(function(X){if(typeof X==="string")G+=G1.byteLength(X)+1;else G+=X.length+1}),G};var k4=tl.null={};k4.encode=function(W,G,X){if(!G)G=G1.alloc(k4.encodingLength(W));if(!X)X=0;if(typeof W==="string")W=G1.from(W);if(!W)W=G1.alloc(0);let Y=X;X+=2;let Z=W.length;return W.copy(G,X,0,Z),X+=Z,G.writeUInt16BE(X-Y-2,Y),k4.encode.bytes=X-Y,G};k4.encode.bytes=0;k4.decode=function(W,G){if(!G)G=0;let X=G,Y=W.readUInt16BE(G);G+=2;let Z=W.slice(G,G+Y);return G+=Y,k4.decode.bytes=G-X,Z};k4.decode.bytes=0;k4.encodingLength=function(W){if(!W)return 2;return(G1.isBuffer(W)?W.length:G1.byteLength(W))+2};var _4=tl.hinfo={};_4.encode=function(W,G,X){if(!G)G=G1.alloc(_4.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,$1.encode(W.cpu,G,X),X+=$1.encode.bytes,$1.encode(W.os,G,X),X+=$1.encode.bytes,G.writeUInt16BE(X-Y-2,Y),_4.encode.bytes=X-Y,G};_4.encode.bytes=0;_4.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.cpu=$1.decode(W,G),G+=$1.decode.bytes,Y.os=$1.decode(W,G),G+=$1.decode.bytes,_4.decode.bytes=G-X,Y};_4.decode.bytes=0;_4.encodingLength=function(W){return $1.encodingLength(W.cpu)+$1.encodingLength(W.os)+2};var o5=tl.ptr={},al=tl.cname=o5,sl=tl.dname=o5;o5.encode=function(W,G,X){if(!G)G=G1.alloc(o5.encodingLength(W));if(!X)X=0;return y0.encode(W,G,X+2),G.writeUInt16BE(y0.encode.bytes,X),o5.encode.bytes=y0.encode.bytes+2,G};o5.encode.bytes=0;o5.decode=function(W,G){if(!G)G=0;let X=y0.decode(W,G+2);return o5.decode.bytes=y0.decode.bytes+2,X};o5.decode.bytes=0;o5.encodingLength=function(W){return y0.encodingLength(W)+2};var y4=tl.srv={};y4.encode=function(W,G,X){if(!G)G=G1.alloc(y4.encodingLength(W));if(!X)X=0;G.writeUInt16BE(W.priority||0,X+2),G.writeUInt16BE(W.weight||0,X+4),G.writeUInt16BE(W.port||0,X+6),y0.encode(W.target,G,X+8);let Y=y0.encode.bytes+6;return G.writeUInt16BE(Y,X),y4.encode.bytes=Y+2,G};y4.encode.bytes=0;y4.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G),Y={};return Y.priority=W.readUInt16BE(G+2),Y.weight=W.readUInt16BE(G+4),Y.port=W.readUInt16BE(G+6),Y.target=y0.decode(W,G+8),y4.decode.bytes=X+2,Y};y4.decode.bytes=0;y4.encodingLength=function(W){return 8+y0.encodingLength(W.target)};var Q5=tl.caa={};Q5.ISSUER_CRITICAL=128;Q5.encode=function(W,G,X){let Y=Q5.encodingLength(W);if(!G)G=G1.alloc(Q5.encodingLength(W));if(!X)X=0;if(W.issuerCritical)W.flags=Q5.ISSUER_CRITICAL;return G.writeUInt16BE(Y-2,X),X+=2,G.writeUInt8(W.flags||0,X),X+=1,$1.encode(W.tag,G,X),X+=$1.encode.bytes,G.write(W.value,X),X+=G1.byteLength(W.value),Q5.encode.bytes=Y,G};Q5.encode.bytes=0;Q5.decode=function(W,G){if(!G)G=0;let X=W.readUInt16BE(G);G+=2;let Y=G,Z={};return Z.flags=W.readUInt8(G),G+=1,Z.tag=$1.decode(W,G),G+=$1.decode.bytes,Z.value=W.toString("utf-8",G,Y+X),Z.issuerCritical=!!(Z.flags&Q5.ISSUER_CRITICAL),Q5.decode.bytes=X+2,Z};Q5.decode.bytes=0;Q5.encodingLength=function(W){return $1.encodingLength(W.tag)+$1.encodingLength(W.value)+2};var l6=tl.mx={};l6.encode=function(W,G,X){if(!G)G=G1.alloc(l6.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,G.writeUInt16BE(W.preference||0,X),X+=2,y0.encode(W.exchange,G,X),X+=y0.encode.bytes,G.writeUInt16BE(X-Y-2,Y),l6.encode.bytes=X-Y,G};l6.encode.bytes=0;l6.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.preference=W.readUInt16BE(G),G+=2,Y.exchange=y0.decode(W,G),G+=y0.decode.bytes,l6.decode.bytes=G-X,Y};l6.encodingLength=function(W){return 4+y0.encodingLength(W.exchange)};var v4=tl.a={};v4.encode=function(W,G,X){if(!G)G=G1.alloc(v4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(4,X),X+=2,jG.v4.encode(W,G,X),v4.encode.bytes=6,G};v4.encode.bytes=0;v4.decode=function(W,G){if(!G)G=0;G+=2;let X=jG.v4.decode(W,G);return v4.decode.bytes=6,X};v4.decode.bytes=0;v4.encodingLength=function(){return 6};var g4=tl.aaaa={};g4.encode=function(W,G,X){if(!G)G=G1.alloc(g4.encodingLength(W));if(!X)X=0;return G.writeUInt16BE(16,X),X+=2,jG.v6.encode(W,G,X),g4.encode.bytes=18,G};g4.encode.bytes=0;g4.decode=function(W,G){if(!G)G=0;G+=2;let X=jG.v6.decode(W,G);return g4.decode.bytes=18,X};g4.decode.bytes=0;g4.encodingLength=function(){return 18};var n9=tl.option={};n9.encode=function(W,G,X){if(!G)G=G1.alloc(n9.encodingLength(W));if(!X)X=0;let Y=X,Z=ej.toCode(W.code);if(G.writeUInt16BE(Z,X),X+=2,W.data)G.writeUInt16BE(W.data.length,X),X+=2,W.data.copy(G,X),X+=W.data.length;else switch(Z){case 8:let V=W.sourcePrefixLength||0,Q=W.family||jG.familyOf(W.ip),J=jG.encode(W.ip,G1.alloc),U=Math.ceil(V/8);G.writeUInt16BE(U+4,X),X+=2,G.writeUInt16BE(Q,X),X+=2,G.writeUInt8(V,X++),G.writeUInt8(W.scopePrefixLength||0,X++),J.copy(G,X,0,U),X+=U;break;case 11:if(W.timeout)G.writeUInt16BE(2,X),X+=2,G.writeUInt16BE(W.timeout,X),X+=2;else G.writeUInt16BE(0,X),X+=2;break;case 12:let q=W.length||0;G.writeUInt16BE(q,X),X+=2,G.fill(0,X,X+q),X+=q;break;case 14:let N=W.tags.length*2;G.writeUInt16BE(N,X),X+=2;for(let A of W.tags)G.writeUInt16BE(A,X),X+=2;break;default:throw Error(`Unknown roption code: ${W.code}`)}return n9.encode.bytes=X-Y,G};n9.encode.bytes=0;n9.decode=function(W,G){if(!G)G=0;let X={};X.code=W.readUInt16BE(G),X.type=ej.toString(X.code),G+=2;let Y=W.readUInt16BE(G);switch(G+=2,X.data=W.slice(G,G+Y),X.code){case 8:X.family=W.readUInt16BE(G),G+=2,X.sourcePrefixLength=W.readUInt8(G++),X.scopePrefixLength=W.readUInt8(G++);let Z=G1.alloc(X.family===1?4:16);W.copy(Z,0,G,G+Y-4),X.ip=jG.decode(Z);break;case 11:if(Y>0)X.timeout=W.readUInt16BE(G),G+=2;break;case 14:X.tags=[];for(let V=0;V<Y;V+=2)X.tags.push(W.readUInt16BE(G)),G+=2}return n9.decode.bytes=Y+4,X};n9.decode.bytes=0;n9.encodingLength=function(W){if(W.data)return W.data.length+4;switch(ej.toCode(W.code)){case 8:let X=W.sourcePrefixLength||0;return Math.ceil(X/8)+8;case 11:return typeof W.timeout==="number"?6:4;case 12:return W.length+4;case 14:return 4+W.tags.length*2}throw Error(`Unknown roption code: ${W.code}`)};var U5=tl.opt={};U5.encode=function(W,G,X){if(!G)G=G1.alloc(U5.encodingLength(W));if(!X)X=0;let Y=X,Z=BY(W,n9);return G.writeUInt16BE(Z,X),X=FQ(W,n9,G,X+2),U5.encode.bytes=X-Y,G};U5.encode.bytes=0;U5.decode=function(W,G){if(!G)G=0;let X=G,Y=[],Z=W.readUInt16BE(G);G+=2;let V=0;while(Z>0)Y[V++]=n9.decode(W,G),G+=n9.decode.bytes,Z-=n9.decode.bytes;return U5.decode.bytes=G-X,Y};U5.decode.bytes=0;U5.encodingLength=function(W){return 2+BY(W||[],n9)};var y9=tl.dnskey={};y9.PROTOCOL_DNSSEC=3;y9.ZONE_KEY=128;y9.SECURE_ENTRYPOINT=32768;y9.encode=function(W,G,X){if(!G)G=G1.alloc(y9.encodingLength(W));if(!X)X=0;let Y=X,Z=W.key;if(!G1.isBuffer(Z))throw Error("Key must be a Buffer");return X+=2,G.writeUInt16BE(W.flags,X),X+=2,G.writeUInt8(y9.PROTOCOL_DNSSEC,X),X+=1,G.writeUInt8(W.algorithm,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,y9.encode.bytes=X-Y,G.writeUInt16BE(y9.encode.bytes-2,Y),G};y9.encode.bytes=0;y9.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);if(G+=2,Y.flags=W.readUInt16BE(G),G+=2,W.readUInt8(G)!==y9.PROTOCOL_DNSSEC)throw Error("Protocol must be 3");return G+=1,Y.algorithm=W.readUInt8(G),G+=1,Y.key=W.slice(G,X+Z+2),G+=Y.key.length,y9.decode.bytes=G-X,Y};y9.decode.bytes=0;y9.encodingLength=function(W){return 6+G1.byteLength(W.key)};var F7=tl.rrsig={};F7.encode=function(W,G,X){if(!G)G=G1.alloc(F7.encodingLength(W));if(!X)X=0;let Y=X,Z=W.signature;if(!G1.isBuffer(Z))throw Error("Signature must be a Buffer");return X+=2,G.writeUInt16BE(u4.toType(W.typeCovered),X),X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.labels,X),X+=1,G.writeUInt32BE(W.originalTTL,X),X+=4,G.writeUInt32BE(W.expiration,X),X+=4,G.writeUInt32BE(W.inception,X),X+=4,G.writeUInt16BE(W.keyTag,X),X+=2,y0.encode(W.signersName,G,X),X+=y0.encode.bytes,Z.copy(G,X,0,Z.length),X+=Z.length,F7.encode.bytes=X-Y,G.writeUInt16BE(F7.encode.bytes-2,Y),G};F7.encode.bytes=0;F7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);return G+=2,Y.typeCovered=u4.toString(W.readUInt16BE(G)),G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.labels=W.readUInt8(G),G+=1,Y.originalTTL=W.readUInt32BE(G),G+=4,Y.expiration=W.readUInt32BE(G),G+=4,Y.inception=W.readUInt32BE(G),G+=4,Y.keyTag=W.readUInt16BE(G),G+=2,Y.signersName=y0.decode(W,G),G+=y0.decode.bytes,Y.signature=W.slice(G,X+Z+2),G+=Y.signature.length,F7.decode.bytes=G-X,Y};F7.decode.bytes=0;F7.encodingLength=function(W){return 20+y0.encodingLength(W.signersName)+G1.byteLength(W.signature)};var S7=tl.rp={};S7.encode=function(W,G,X){if(!G)G=G1.alloc(S7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.mbox||".",G,X,{mail:!0}),X+=y0.encode.bytes,y0.encode(W.txt||".",G,X),X+=y0.encode.bytes,S7.encode.bytes=X-Y,G.writeUInt16BE(S7.encode.bytes-2,Y),G};S7.encode.bytes=0;S7.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.mbox=y0.decode(W,G,{mail:!0})||".",G+=y0.decode.bytes,Y.txt=y0.decode(W,G)||".",G+=y0.decode.bytes,S7.decode.bytes=G-X,Y};S7.decode.bytes=0;S7.encodingLength=function(W){return 2+y0.encodingLength(W.mbox||".")+y0.encodingLength(W.txt||".")};var o8={};o8.encode=function(W,G,X){if(!G)G=G1.alloc(o8.encodingLength(W));if(!X)X=0;let Y=X;var Z=[];for(var V=0;V<W.length;V++){var Q=u4.toType(W[V]);if(Z[Q>>8]===void 0)Z[Q>>8]=[];Z[Q>>8][Q>>3&31]|=1<<7-(Q&7)}for(V=0;V<Z.length;V++)if(Z[V]!==void 0){var J=G1.from(Z[V]);G.writeUInt8(V,X),X+=1,G.writeUInt8(J.length,X),X+=1,J.copy(G,X),X+=J.length}return o8.encode.bytes=X-Y,G};o8.encode.bytes=0;o8.decode=function(W,G,X){if(!G)G=0;let Y=G;var Z=[];while(G-Y<X){var V=W.readUInt8(G);G+=1;var Q=W.readUInt8(G);G+=1;for(var J=0;J<Q;J++){var U=W.readUInt8(G+J);for(var q=0;q<8;q++)if(U&1<<7-q){var N=u4.toString(V<<8|J<<3|q);Z.push(N)}}G+=Q}return o8.decode.bytes=G-Y,Z};o8.decode.bytes=0;o8.encodingLength=function(W){var G=[];for(var X=0;X<W.length;X++){var Y=u4.toType(W[X]);G[Y>>8]=Math.max(G[Y>>8]||0,Y&255)}var Z=0;for(X=0;X<G.length;X++)if(G[X]!==void 0)Z+=2+Math.ceil((G[X]+1)/8);return Z};var x7=tl.nsec={};x7.encode=function(W,G,X){if(!G)G=G1.alloc(x7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,y0.encode(W.nextDomain,G,X),X+=y0.encode.bytes,o8.encode(W.rrtypes,G,X),X+=o8.encode.bytes,x7.encode.bytes=X-Y,G.writeUInt16BE(x7.encode.bytes-2,Y),G};x7.encode.bytes=0;x7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);return G+=2,Y.nextDomain=y0.decode(W,G),G+=y0.decode.bytes,Y.rrtypes=o8.decode(W,G,Z-(G-X)),G+=o8.decode.bytes,x7.decode.bytes=G-X,Y};x7.decode.bytes=0;x7.encodingLength=function(W){return 2+y0.encodingLength(W.nextDomain)+o8.encodingLength(W.rrtypes)};var k7=tl.nsec3={};k7.encode=function(W,G,X){if(!G)G=G1.alloc(k7.encodingLength(W));if(!X)X=0;let Y=X,Z=W.salt;if(!G1.isBuffer(Z))throw Error("salt must be a Buffer");let V=W.nextDomain;if(!G1.isBuffer(V))throw Error("nextDomain must be a Buffer");return X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.flags,X),X+=1,G.writeUInt16BE(W.iterations,X),X+=2,G.writeUInt8(Z.length,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,G.writeUInt8(V.length,X),X+=1,V.copy(G,X,0,V.length),X+=V.length,o8.encode(W.rrtypes,G,X),X+=o8.encode.bytes,k7.encode.bytes=X-Y,G.writeUInt16BE(k7.encode.bytes-2,Y),G};k7.encode.bytes=0;k7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.flags=W.readUInt8(G),G+=1,Y.iterations=W.readUInt16BE(G),G+=2;let V=W.readUInt8(G);G+=1,Y.salt=W.slice(G,G+V),G+=V;let Q=W.readUInt8(G);return G+=1,Y.nextDomain=W.slice(G,G+Q),G+=Q,Y.rrtypes=o8.decode(W,G,Z-(G-X)),G+=o8.decode.bytes,k7.decode.bytes=G-X,Y};k7.decode.bytes=0;k7.encodingLength=function(W){return 8+W.salt.length+W.nextDomain.length+o8.encodingLength(W.rrtypes)};var _7=tl.ds={};_7.encode=function(W,G,X){if(!G)G=G1.alloc(_7.encodingLength(W));if(!X)X=0;let Y=X,Z=W.digest;if(!G1.isBuffer(Z))throw Error("Digest must be a Buffer");return X+=2,G.writeUInt16BE(W.keyTag,X),X+=2,G.writeUInt8(W.algorithm,X),X+=1,G.writeUInt8(W.digestType,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,_7.encode.bytes=X-Y,G.writeUInt16BE(_7.encode.bytes-2,Y),G};_7.encode.bytes=0;_7.decode=function(W,G){if(!G)G=0;let X=G;var Y={},Z=W.readUInt16BE(G);return G+=2,Y.keyTag=W.readUInt16BE(G),G+=2,Y.algorithm=W.readUInt8(G),G+=1,Y.digestType=W.readUInt8(G),G+=1,Y.digest=W.slice(G,X+Z+2),G+=Y.digest.length,_7.decode.bytes=G-X,Y};_7.decode.bytes=0;_7.encodingLength=function(W){return 6+G1.byteLength(W.digest)};var J5=tl.sshfp={};J5.getFingerprintLengthForHashType=function(G){switch(G){case 1:return 20;case 2:return 32}};J5.encode=function(G,X,Y){if(!X)X=G1.alloc(J5.encodingLength(G));if(!Y)Y=0;let Z=Y;Y+=2,X[Y]=G.algorithm,Y+=1,X[Y]=G.hash,Y+=1;let V=G1.from(G.fingerprint.toUpperCase(),"hex");if(V.length!==J5.getFingerprintLengthForHashType(G.hash))throw Error("Invalid fingerprint length");return V.copy(X,Y),Y+=V.byteLength,J5.encode.bytes=Y-Z,X.writeUInt16BE(J5.encode.bytes-2,Z),X};J5.encode.bytes=0;J5.decode=function(G,X){if(!X)X=0;let Y=X,Z={};X+=2,Z.algorithm=G[X],X+=1,Z.hash=G[X],X+=1;let V=J5.getFingerprintLengthForHashType(Z.hash);return Z.fingerprint=G.slice(X,X+V).toString("hex").toUpperCase(),X+=V,J5.decode.bytes=X-Y,Z};J5.decode.bytes=0;J5.encodingLength=function(W){return 4+G1.from(W.fingerprint,"hex").byteLength};var y7=tl.naptr={};y7.encode=function(W,G,X){if(!G)G=G1.alloc(y7.encodingLength(W));if(!X)X=0;let Y=X;return X+=2,G.writeUInt16BE(W.order||0,X),X+=2,G.writeUInt16BE(W.preference||0,X),X+=2,$1.encode(W.flags,G,X),X+=$1.encode.bytes,$1.encode(W.services,G,X),X+=$1.encode.bytes,$1.encode(W.regexp,G,X),X+=$1.encode.bytes,y0.encode(W.replacement,G,X),X+=y0.encode.bytes,y7.encode.bytes=X-Y,G.writeUInt16BE(y7.encode.bytes-2,Y),G};y7.encode.bytes=0;y7.decode=function(W,G){if(!G)G=0;let X=G,Y={};return G+=2,Y.order=W.readUInt16BE(G),G+=2,Y.preference=W.readUInt16BE(G),G+=2,Y.flags=$1.decode(W,G),G+=$1.decode.bytes,Y.services=$1.decode(W,G),G+=$1.decode.bytes,Y.regexp=$1.decode(W,G),G+=$1.decode.bytes,Y.replacement=y0.decode(W,G),G+=y0.decode.bytes,y7.decode.bytes=G-X,Y};y7.decode.bytes=0;y7.encodingLength=function(W){return $1.encodingLength(W.flags)+$1.encodingLength(W.services)+$1.encodingLength(W.regexp)+y0.encodingLength(W.replacement)+6};var v7=tl.tlsa={};v7.encode=function(W,G,X){if(!G)G=G1.alloc(v7.encodingLength(W));if(!X)X=0;let Y=X,Z=W.certificate;if(!G1.isBuffer(Z))throw Error("Certificate must be a Buffer");return X+=2,G.writeUInt8(W.usage,X),X+=1,G.writeUInt8(W.selector,X),X+=1,G.writeUInt8(W.matchingType,X),X+=1,Z.copy(G,X,0,Z.length),X+=Z.length,v7.encode.bytes=X-Y,G.writeUInt16BE(v7.encode.bytes-2,Y),G};v7.encode.bytes=0;v7.decode=function(W,G){if(!G)G=0;let X=G,Y={},Z=W.readUInt16BE(G);return G+=2,Y.usage=W.readUInt8(G),G+=1,Y.selector=W.readUInt8(G),G+=1,Y.matchingType=W.readUInt8(G),G+=1,Y.certificate=W.slice(G,X+Z+2),G+=Y.certificate.length,v7.decode.bytes=G-X,Y};v7.decode.bytes=0;v7.encodingLength=function(W){return 5+G1.byteLength(W.certificate)};var WO=tl.record=function(W){switch(W.toUpperCase()){case"A":return v4;case"PTR":return o5;case"CNAME":return al;case"DNAME":return sl;case"TXT":return x4;case"NULL":return k4;case"AAAA":return g4;case"SRV":return y4;case"HINFO":return _4;case"CAA":return Q5;case"NS":return F4;case"SOA":return S4;case"MX":return l6;case"OPT":return U5;case"DNSKEY":return y9;case"RRSIG":return F7;case"RP":return S7;case"NSEC":return x7;case"NSEC3":return k7;case"SSHFP":return J5;case"DS":return _7;case"NAPTR":return y7;case"TLSA":return v7}return $4},X9=tl.answer={};X9.encode=function(W,G,X){if(!G)G=G1.alloc(X9.encodingLength(W));if(!X)X=0;let Y=X;if(y0.encode(W.name,G,X),X+=y0.encode.bytes,G.writeUInt16BE(u4.toType(W.type),X),W.type.toUpperCase()==="OPT"){if(W.name!==".")throw Error("OPT name must be root.");G.writeUInt16BE(W.udpPayloadSize||4096,X+2),G.writeUInt8(W.extendedRcode||0,X+4),G.writeUInt8(W.ednsVersion||0,X+5),G.writeUInt16BE(W.flags||0,X+6),X+=8,U5.encode(W.options||[],G,X),X+=U5.encode.bytes}else{let Z=EN.toClass(W.class===void 0?"IN":W.class);if(W.flush)Z|=32768;G.writeUInt16BE(Z,X+2),G.writeUInt32BE(W.ttl||0,X+4),X+=8;let V=WO(W.type);V.encode(W.data,G,X),X+=V.encode.bytes}return X9.encode.bytes=X-Y,G};X9.encode.bytes=0;X9.decode=function(W,G){if(!G)G=0;let X={},Y=G;if(X.name=y0.decode(W,G),G+=y0.decode.bytes,X.type=u4.toString(W.readUInt16BE(G)),X.type==="OPT")X.udpPayloadSize=W.readUInt16BE(G+2),X.extendedRcode=W.readUInt8(G+4),X.ednsVersion=W.readUInt8(G+5),X.flags=W.readUInt16BE(G+6),X.flag_do=(X.flags>>15&1)===1,X.options=U5.decode(W,G+8),G+=8+U5.decode.bytes;else{let Z=W.readUInt16BE(G+2);X.ttl=W.readUInt32BE(G+4),X.class=EN.toString(Z&-32769),X.flush=!!(Z&32768);let V=WO(X.type);X.data=V.decode(W,G+8),G+=8+V.decode.bytes}return X9.decode.bytes=G-Y,X};X9.decode.bytes=0;X9.encodingLength=function(W){let G=W.data!==null&&W.data!==void 0?W.data:W.options;return y0.encodingLength(W.name)+8+WO(W.type).encodingLength(G)};var n5=tl.question={};n5.encode=function(W,G,X){if(!G)G=G1.alloc(n5.encodingLength(W));if(!X)X=0;let Y=X;return y0.encode(W.name,G,X),X+=y0.encode.bytes,G.writeUInt16BE(u4.toType(W.type),X),X+=2,G.writeUInt16BE(EN.toClass(W.class===void 0?"IN":W.class),X),X+=2,n5.encode.bytes=X-Y,W};n5.encode.bytes=0;n5.decode=function(W,G){if(!G)G=0;let X=G,Y={};if(Y.name=y0.decode(W,G),G+=y0.decode.bytes,Y.type=u4.toString(W.readUInt16BE(G)),G+=2,Y.class=EN.toString(W.readUInt16BE(G)),G+=2,!!(Y.class&32768))Y.class&=-32769;return n5.decode.bytes=G-X,Y};n5.decode.bytes=0;n5.encodingLength=function(W){return y0.encodingLength(W.name)+4};tl.AUTHORITATIVE_ANSWER=1024;tl.TRUNCATED_RESPONSE=512;tl.RECURSION_DESIRED=256;tl.RECURSION_AVAILABLE=128;tl.AUTHENTIC_DATA=32;tl.CHECKING_DISABLED=16;tl.DNSSEC_OK=32768;tl.encode=function(W,G,X){let Y=!G;if(Y)G=G1.alloc(tl.encodingLength(W));if(!X)X=0;let Z=X;if(!W.questions)W.questions=[];if(!W.answers)W.answers=[];if(!W.authorities)W.authorities=[];if(!W.additionals)W.additionals=[];if(i5.encode(W,G,X),X+=i5.encode.bytes,X=FQ(W.questions,n5,G,X),X=FQ(W.answers,X9,G,X),X=FQ(W.authorities,X9,G,X),X=FQ(W.additionals,X9,G,X),tl.encode.bytes=X-Z,Y&&tl.encode.bytes!==G.length)return G.slice(0,tl.encode.bytes);return G};tl.encode.bytes=0;tl.decode=function(W,G){if(!G)G=0;let X=G,Y=i5.decode(W,G);return G+=i5.decode.bytes,G=BN(Y.questions,n5,W,G),G=BN(Y.answers,X9,W,G),G=BN(Y.authorities,X9,W,G),G=BN(Y.additionals,X9,W,G),tl.decode.bytes=G-X,Y};tl.decode.bytes=0;tl.encodingLength=function(W){return i5.encodingLength(W)+BY(W.questions||[],n5)+BY(W.answers||[],X9)+BY(W.authorities||[],X9)+BY(W.additionals||[],X9)};tl.streamEncode=function(W){let G=tl.encode(W),X=G1.alloc(2);X.writeUInt16BE(G.byteLength);let Y=G1.concat([X,G]);return tl.streamEncode.bytes=Y.byteLength,Y};tl.streamEncode.bytes=0;tl.streamDecode=function(W){let G=W.readUInt16BE(0);if(W.byteLength<G+2)return null;let X=tl.decode(W.slice(2));return tl.streamDecode.bytes=tl.decode.bytes,X};tl.streamDecode.bytes=0;function BY(W,G){let X=0;for(let Y=0;Y<W.length;Y++)X+=G.encodingLength(W[Y]);return X}function FQ(W,G,X,Y){for(let Z=0;Z<W.length;Z++)G.encode(W[Z],X,Y),Y+=G.encode.bytes;return Y}function BN(W,G,X,Y){for(let Z=0;Z<W.length;Z++)W[Z]=G.decode(X,Y),Y+=G.decode.bytes;return Y}});var _$=Z1((AH0,k$)=>{var x$=Ad;process.nextTick(Hd,42);k$.exports=Jd;function Jd(W){var G=Y;return X;function X(Z){G(Z||qd)}function Y(Z){var V=[Z];G=Q,W(J);function Q(U){V.push(U)}function J(U){var q=arguments;G=Ud(U)?Y:N;while(V.length)N(V.shift());function N(A){x$(Nd,A,q)}}}}function Ud(W){return Object.prototype.toString.call(W)==="[object Error]"}function qd(){}function Nd(W,G){W.apply(null,G)}function Hd(W){if(W===42)x$=process.nextTick}function Ad(W,G,X){process.nextTick(function(){W(G,X)})}});var g$=Z1((zH0,v$)=>{var GO=S$(),zd=$8("dgram"),Id=_$(),wd=$8("events"),YO=$8("os"),XO=function(){};v$.exports=function(W){if(!W)W={};var G=new wd.EventEmitter,X=typeof W.port==="number"?W.port:5353,Y=W.type||"udp4",Z=W.ip||W.host||(Y==="udp4"?"224.0.0.251":null),V={address:Z,port:X},Q={},J=!1,U=null;if(Y==="udp6"&&(!Z||!W.interface))throw Error("For IPv6 multicast you must specify `ip` and `interface`");var q=W.socket||zd.createSocket({type:Y,reuseAddr:W.reuseAddr!==!1,toString:function(){return Y}});q.on("error",function(A){if(A.code==="EACCES"||A.code==="EADDRINUSE")G.emit("error",A);else G.emit("warning",A)}),q.on("message",function(A,H){try{A=GO.decode(A)}catch(I){G.emit("warning",I);return}if(G.emit("packet",A,H),A.type==="query")G.emit("query",A,H);if(A.type==="response")G.emit("response",A,H)}),q.on("listening",function(){if(!X)X=V.port=q.address().port;if(W.multicast!==!1)G.update(),U=setInterval(G.update,5000),q.setMulticastTTL(W.ttl||255),q.setMulticastLoopback(W.loopback!==!1)});var N=Id(function(A){if(!X||W.bind===!1)return A(null);q.once("error",A),q.bind(X,W.bind||W.interface,function(){q.removeListener("error",A),A(null)})});return N(function(A){if(A)return G.emit("error",A);G.emit("ready")}),G.send=function(A,H,I){if(typeof H==="function")return G.send(A,null,H);if(!I)I=XO;if(!H)H=V;else if(!H.host&&!H.address)H.address=V.address;N(w);function w(C){if(J)return I();if(C)return I(C);var D=GO.encode(A);q.send(D,0,D.length,H.port,H.address||H.host,I)}},G.response=G.respond=function(A,H,I){if(Array.isArray(A))A={answers:A};A.type="response",A.flags=(A.flags||0)|GO.AUTHORITATIVE_ANSWER,G.send(A,H,I)},G.query=function(A,H,I,w){if(typeof H==="function")return G.query(A,null,null,H);if(typeof H==="object"&&H&&H.port)return G.query(A,null,H,I);if(typeof I==="function")return G.query(A,H,null,I);if(!w)w=XO;if(typeof A==="string")A=[{name:A,type:H||"ANY"}];if(Array.isArray(A))A={type:"query",questions:A};A.type="query",G.send(A,I,w)},G.destroy=function(A){if(!A)A=XO;if(J)return process.nextTick(A);J=!0,clearInterval(U);for(var H in Q)try{q.dropMembership(Z,H)}catch(I){}Q={},q.close(A)},G.update=function(){var A=W.interface?[].concat(W.interface):Od(),H=!1;for(var I=0;I<A.length;I++){var w=A[I];if(Q[w])continue;try{q.addMembership(Z,w),Q[w]=!0,H=!0}catch(C){G.emit("warning",C)}}if(H){if(q.setMulticastInterface)try{q.setMulticastInterface(W.interface||jd())}catch(C){G.emit("warning",C)}G.emit("networkInterface")}},G};function jd(){var W=YO.networkInterfaces(),G=Object.keys(W);for(var X=0;X<G.length;X++){var Y=W[G[X]];for(var Z=0;Z<Y.length;Z++){var V=Y[Z];if(y$(V.family)&&!V.internal){if(YO.platform()==="darwin"&&G[X]==="en0")return V.address;return"0.0.0.0"}}}return"127.0.0.1"}function Od(){var W=YO.networkInterfaces(),G=Object.keys(W),X=[];for(var Y=0;Y<G.length;Y++){var Z=W[G[Y]];for(var V=0;V<Z.length;V++){var Q=Z[V];if(y$(Q.family)){X.push(Q.address);break}}}return X}function y$(W){return W===4||W==="IPv4"}});import{Database as qt}from"bun:sqlite";import{mkdirSync as Nt}from"fs";import{dirname as Ht}from"path";function JC(W){let G=W.length,X=0,Y=0;while(Y<G){let Z=W.charCodeAt(Y++);if((Z&4294967168)===0){X++;continue}else if((Z&4294965248)===0)X+=2;else{if(Z>=55296&&Z<=56319){if(Y<G){let V=W.charCodeAt(Y);if((V&64512)===56320)++Y,Z=((Z&1023)<<10)+(V&1023)+65536}}if((Z&4294901760)===0)X+=3;else X+=4}}return X}function g_(W,G,X){let Y=W.length,Z=X,V=0;while(V<Y){let Q=W.charCodeAt(V++);if((Q&4294967168)===0){G[Z++]=Q;continue}else if((Q&4294965248)===0)G[Z++]=Q>>6&31|192;else{if(Q>=55296&&Q<=56319){if(V<Y){let J=W.charCodeAt(V);if((J&64512)===56320)++V,Q=((Q&1023)<<10)+(J&1023)+65536}}if((Q&4294901760)===0)G[Z++]=Q>>12&15|224,G[Z++]=Q>>6&63|128;else G[Z++]=Q>>18&7|240,G[Z++]=Q>>12&63|128,G[Z++]=Q>>6&63|128}G[Z++]=Q&63|128}}var u_=new TextEncoder,h_=50;function b_(W,G,X){u_.encodeInto(W,G.subarray(X))}function UC(W,G,X){if(W.length>h_)b_(W,G,X);else g_(W,G,X)}var m_=4096;function NA(W,G,X){let Y=G,Z=Y+X,V=[],Q="";while(Y<Z){let J=W[Y++];if((J&128)===0)V.push(J);else if((J&224)===192){let U=W[Y++]&63;V.push((J&31)<<6|U)}else if((J&240)===224){let U=W[Y++]&63,q=W[Y++]&63;V.push((J&31)<<12|U<<6|q)}else if((J&248)===240){let U=W[Y++]&63,q=W[Y++]&63,N=W[Y++]&63,A=(J&7)<<18|U<<12|q<<6|N;if(A>65535)A-=65536,V.push(A>>>10&1023|55296),A=56320|A&1023;V.push(A)}else V.push(J);if(V.length>=m_)Q+=String.fromCharCode(...V),V.length=0}if(V.length>0)Q+=String.fromCharCode(...V);return Q}var f_=new TextDecoder,c_=200;function p_(W,G,X){let Y=W.subarray(G,G+X);return f_.decode(Y)}function qC(W,G,X){if(X>c_)return p_(W,G,X);else return NA(W,G,X)}class pG{type;data;constructor(W,G){this.type=W,this.data=G}}class $9 extends Error{constructor(W){super(W);let G=Object.create($9.prototype);Object.setPrototypeOf(this,G),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:$9.name})}}var lG=4294967295;function NC(W,G,X){let Y=X/4294967296,Z=X;W.setUint32(G,Y),W.setUint32(G+4,Z)}function _J(W,G,X){let Y=Math.floor(X/4294967296),Z=X;W.setUint32(G,Y),W.setUint32(G+4,Z)}function yJ(W,G){let X=W.getInt32(G),Y=W.getUint32(G+4);return X*4294967296+Y}function HC(W,G){let X=W.getUint32(G),Y=W.getUint32(G+4);return X*4294967296+Y}var l_=-1,d_=4294967295,o_=17179869183;function n_({sec:W,nsec:G}){if(W>=0&&G>=0&&W<=o_)if(G===0&&W<=d_){let X=new Uint8Array(4);return new DataView(X.buffer).setUint32(0,W),X}else{let X=W/4294967296,Y=W&4294967295,Z=new Uint8Array(8),V=new DataView(Z.buffer);return V.setUint32(0,G<<2|X&3),V.setUint32(4,Y),Z}else{let X=new Uint8Array(12),Y=new DataView(X.buffer);return Y.setUint32(0,G),_J(Y,4,W),X}}function i_(W){let G=W.getTime(),X=Math.floor(G/1000),Y=(G-X*1000)*1e6,Z=Math.floor(Y/1e9);return{sec:X+Z,nsec:Y-Z*1e9}}function r_(W){if(W instanceof Date){let G=i_(W);return n_(G)}else return null}function a_(W){let G=new DataView(W.buffer,W.byteOffset,W.byteLength);switch(W.byteLength){case 4:{let X=G.getUint32(0),Y=0;return{sec:X,nsec:0}}case 8:{let X=G.getUint32(0),Y=G.getUint32(4),Z=(X&3)*4294967296+Y,V=X>>>2;return{sec:Z,nsec:V}}case 12:{let X=yJ(G,4),Y=G.getUint32(0);return{sec:X,nsec:Y}}default:throw new $9(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${W.length}`)}}function s_(W){let G=a_(W);return new Date(G.sec*1000+G.nsec/1e6)}var AC={type:l_,encode:r_,decode:s_};class dG{static defaultCodec=new dG;__brand;builtInEncoders=[];builtInDecoders=[];encoders=[];decoders=[];constructor(){this.register(AC)}register({type:W,encode:G,decode:X}){if(W>=0)this.encoders[W]=G,this.decoders[W]=X;else{let Y=-1-W;this.builtInEncoders[Y]=G,this.builtInDecoders[Y]=X}}tryToEncode(W,G){for(let X=0;X<this.builtInEncoders.length;X++){let Y=this.builtInEncoders[X];if(Y!=null){let Z=Y(W,G);if(Z!=null){let V=-1-X;return new pG(V,Z)}}}for(let X=0;X<this.encoders.length;X++){let Y=this.encoders[X];if(Y!=null){let Z=Y(W,G);if(Z!=null)return new pG(X,Z)}}if(W instanceof pG)return W;return null}decode(W,G,X){let Y=G<0?this.builtInDecoders[-1-G]:this.decoders[G];if(Y)return Y(W,G,X);else return new pG(G,W)}}function t_(W){return W instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&W instanceof SharedArrayBuffer}function UZ(W){if(W instanceof Uint8Array)return W;else if(ArrayBuffer.isView(W))return new Uint8Array(W.buffer,W.byteOffset,W.byteLength);else if(t_(W))return new Uint8Array(W);else return Uint8Array.from(W)}var e_=100,Wy=2048;class vJ{extensionCodec;context;useBigInt64;maxDepth;initialBufferSize;sortKeys;forceFloat32;ignoreUndefined;forceIntegerToFloat;pos;view;bytes;entered=!1;constructor(W){this.extensionCodec=W?.extensionCodec??dG.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.maxDepth=W?.maxDepth??e_,this.initialBufferSize=W?.initialBufferSize??Wy,this.sortKeys=W?.sortKeys??!1,this.forceFloat32=W?.forceFloat32??!1,this.ignoreUndefined=W?.ignoreUndefined??!1,this.forceIntegerToFloat=W?.forceIntegerToFloat??!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}clone(){return new vJ({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,maxDepth:this.maxDepth,initialBufferSize:this.initialBufferSize,sortKeys:this.sortKeys,forceFloat32:this.forceFloat32,ignoreUndefined:this.ignoreUndefined,forceIntegerToFloat:this.forceIntegerToFloat})}reinitializeState(){this.pos=0}encodeSharedRef(W){if(this.entered)return this.clone().encodeSharedRef(W);try{return this.entered=!0,this.reinitializeState(),this.doEncode(W,1),this.bytes.subarray(0,this.pos)}finally{this.entered=!1}}encode(W){if(this.entered)return this.clone().encode(W);try{return this.entered=!0,this.reinitializeState(),this.doEncode(W,1),this.bytes.slice(0,this.pos)}finally{this.entered=!1}}doEncode(W,G){if(G>this.maxDepth)throw Error(`Too deep objects in depth ${G}`);if(W==null)this.encodeNil();else if(typeof W==="boolean")this.encodeBoolean(W);else if(typeof W==="number")if(!this.forceIntegerToFloat)this.encodeNumber(W);else this.encodeNumberAsFloat(W);else if(typeof W==="string")this.encodeString(W);else if(this.useBigInt64&&typeof W==="bigint")this.encodeBigInt64(W);else this.encodeObject(W,G)}ensureBufferSizeToWrite(W){let G=this.pos+W;if(this.view.byteLength<G)this.resizeBuffer(G*2)}resizeBuffer(W){let G=new ArrayBuffer(W),X=new Uint8Array(G),Y=new DataView(G);X.set(this.bytes),this.view=Y,this.bytes=X}encodeNil(){this.writeU8(192)}encodeBoolean(W){if(W===!1)this.writeU8(194);else this.writeU8(195)}encodeNumber(W){if(!this.forceIntegerToFloat&&Number.isSafeInteger(W))if(W>=0)if(W<128)this.writeU8(W);else if(W<256)this.writeU8(204),this.writeU8(W);else if(W<65536)this.writeU8(205),this.writeU16(W);else if(W<4294967296)this.writeU8(206),this.writeU32(W);else if(!this.useBigInt64)this.writeU8(207),this.writeU64(W);else this.encodeNumberAsFloat(W);else if(W>=-32)this.writeU8(224|W+32);else if(W>=-128)this.writeU8(208),this.writeI8(W);else if(W>=-32768)this.writeU8(209),this.writeI16(W);else if(W>=-2147483648)this.writeU8(210),this.writeI32(W);else if(!this.useBigInt64)this.writeU8(211),this.writeI64(W);else this.encodeNumberAsFloat(W);else this.encodeNumberAsFloat(W)}encodeNumberAsFloat(W){if(this.forceFloat32)this.writeU8(202),this.writeF32(W);else this.writeU8(203),this.writeF64(W)}encodeBigInt64(W){if(W>=BigInt(0))this.writeU8(207),this.writeBigUint64(W);else this.writeU8(211),this.writeBigInt64(W)}writeStringHeader(W){if(W<32)this.writeU8(160+W);else if(W<256)this.writeU8(217),this.writeU8(W);else if(W<65536)this.writeU8(218),this.writeU16(W);else if(W<4294967296)this.writeU8(219),this.writeU32(W);else throw Error(`Too long string: ${W} bytes in UTF-8`)}encodeString(W){let X=JC(W);this.ensureBufferSizeToWrite(5+X),this.writeStringHeader(X),UC(W,this.bytes,this.pos),this.pos+=X}encodeObject(W,G){let X=this.extensionCodec.tryToEncode(W,this.context);if(X!=null)this.encodeExtension(X);else if(Array.isArray(W))this.encodeArray(W,G);else if(ArrayBuffer.isView(W))this.encodeBinary(W);else if(typeof W==="object")this.encodeMap(W,G);else throw Error(`Unrecognized object: ${Object.prototype.toString.apply(W)}`)}encodeBinary(W){let G=W.byteLength;if(G<256)this.writeU8(196),this.writeU8(G);else if(G<65536)this.writeU8(197),this.writeU16(G);else if(G<4294967296)this.writeU8(198),this.writeU32(G);else throw Error(`Too large binary: ${G}`);let X=UZ(W);this.writeU8a(X)}encodeArray(W,G){let X=W.length;if(X<16)this.writeU8(144+X);else if(X<65536)this.writeU8(220),this.writeU16(X);else if(X<4294967296)this.writeU8(221),this.writeU32(X);else throw Error(`Too large array: ${X}`);for(let Y of W)this.doEncode(Y,G+1)}countWithoutUndefined(W,G){let X=0;for(let Y of G)if(W[Y]!==void 0)X++;return X}encodeMap(W,G){let X=Object.keys(W);if(this.sortKeys)X.sort();let Y=this.ignoreUndefined?this.countWithoutUndefined(W,X):X.length;if(Y<16)this.writeU8(128+Y);else if(Y<65536)this.writeU8(222),this.writeU16(Y);else if(Y<4294967296)this.writeU8(223),this.writeU32(Y);else throw Error(`Too large map object: ${Y}`);for(let Z of X){let V=W[Z];if(!(this.ignoreUndefined&&V===void 0))this.encodeString(Z),this.doEncode(V,G+1)}}encodeExtension(W){if(typeof W.data==="function"){let X=W.data(this.pos+6),Y=X.length;if(Y>=4294967296)throw Error(`Too large extension object: ${Y}`);this.writeU8(201),this.writeU32(Y),this.writeI8(W.type),this.writeU8a(X);return}let G=W.data.length;if(G===1)this.writeU8(212);else if(G===2)this.writeU8(213);else if(G===4)this.writeU8(214);else if(G===8)this.writeU8(215);else if(G===16)this.writeU8(216);else if(G<256)this.writeU8(199),this.writeU8(G);else if(G<65536)this.writeU8(200),this.writeU16(G);else if(G<4294967296)this.writeU8(201),this.writeU32(G);else throw Error(`Too large extension object: ${G}`);this.writeI8(W.type),this.writeU8a(W.data)}writeU8(W){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,W),this.pos++}writeU8a(W){let G=W.length;this.ensureBufferSizeToWrite(G),this.bytes.set(W,this.pos),this.pos+=G}writeI8(W){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,W),this.pos++}writeU16(W){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,W),this.pos+=2}writeI16(W){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,W),this.pos+=2}writeU32(W){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,W),this.pos+=4}writeI32(W){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,W),this.pos+=4}writeF32(W){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,W),this.pos+=4}writeF64(W){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,W),this.pos+=8}writeU64(W){this.ensureBufferSizeToWrite(8),NC(this.view,this.pos,W),this.pos+=8}writeI64(W){this.ensureBufferSizeToWrite(8),_J(this.view,this.pos,W),this.pos+=8}writeBigUint64(W){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,W),this.pos+=8}writeBigInt64(W){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,W),this.pos+=8}}function qZ(W,G){return new vJ(G).encodeSharedRef(W)}function gJ(W){return`${W<0?"-":""}0x${Math.abs(W).toString(16).padStart(2,"0")}`}var Gy=16,Xy=16;class HA{hit=0;miss=0;caches;maxKeyLength;maxLengthPerKey;constructor(W=Gy,G=Xy){this.maxKeyLength=W,this.maxLengthPerKey=G,this.caches=[];for(let X=0;X<this.maxKeyLength;X++)this.caches.push([])}canBeCached(W){return W>0&&W<=this.maxKeyLength}find(W,G,X){let Y=this.caches[X-1];W:for(let Z of Y){let V=Z.bytes;for(let Q=0;Q<X;Q++)if(V[Q]!==W[G+Q])continue W;return Z.str}return null}store(W,G){let X=this.caches[W.length-1],Y={bytes:W,str:G};if(X.length>=this.maxLengthPerKey)X[Math.random()*X.length|0]=Y;else X.push(Y)}decode(W,G,X){let Y=this.find(W,G,X);if(Y!=null)return this.hit++,Y;this.miss++;let Z=NA(W,G,X),V=Uint8Array.prototype.slice.call(W,G,G+X);return this.store(V,Z),Z}}var AA="array",HZ="map_key",IC="map_value",Yy=(W)=>{if(typeof W==="string"||typeof W==="number")return W;throw new $9("The type of key must be string or number but "+typeof W)};class wC{stack=[];stackHeadPosition=-1;get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(W){let G=this.getUninitializedStateFromPool();G.type=AA,G.position=0,G.size=W,G.array=Array(W)}pushMapState(W){let G=this.getUninitializedStateFromPool();G.type=HZ,G.readCount=0,G.size=W,G.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){let W={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(W)}return this.stack[this.stackHeadPosition]}release(W){if(this.stack[this.stackHeadPosition]!==W)throw Error("Invalid stack state. Released state is not on top of the stack.");if(W.type===AA){let X=W;X.size=0,X.array=void 0,X.position=0,X.type=void 0}if(W.type===HZ||W.type===IC){let X=W;X.size=0,X.map=void 0,X.readCount=0,X.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}var NZ=-1,zA=new DataView(new ArrayBuffer(0)),Zy=new Uint8Array(zA.buffer);try{zA.getInt8(0)}catch(W){if(!(W instanceof RangeError))throw Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}var zC=RangeError("Insufficient data"),Vy=new HA;class uJ{extensionCodec;context;useBigInt64;rawStrings;maxStrLength;maxBinLength;maxArrayLength;maxMapLength;maxExtLength;keyDecoder;mapKeyConverter;totalPos=0;pos=0;view=zA;bytes=Zy;headByte=NZ;stack=new wC;entered=!1;constructor(W){this.extensionCodec=W?.extensionCodec??dG.defaultCodec,this.context=W?.context,this.useBigInt64=W?.useBigInt64??!1,this.rawStrings=W?.rawStrings??!1,this.maxStrLength=W?.maxStrLength??lG,this.maxBinLength=W?.maxBinLength??lG,this.maxArrayLength=W?.maxArrayLength??lG,this.maxMapLength=W?.maxMapLength??lG,this.maxExtLength=W?.maxExtLength??lG,this.keyDecoder=W?.keyDecoder!==void 0?W.keyDecoder:Vy,this.mapKeyConverter=W?.mapKeyConverter??Yy}clone(){return new uJ({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,rawStrings:this.rawStrings,maxStrLength:this.maxStrLength,maxBinLength:this.maxBinLength,maxArrayLength:this.maxArrayLength,maxMapLength:this.maxMapLength,maxExtLength:this.maxExtLength,keyDecoder:this.keyDecoder})}reinitializeState(){this.totalPos=0,this.headByte=NZ,this.stack.reset()}setBuffer(W){let G=UZ(W);this.bytes=G,this.view=new DataView(G.buffer,G.byteOffset,G.byteLength),this.pos=0}appendBuffer(W){if(this.headByte===NZ&&!this.hasRemaining(1))this.setBuffer(W);else{let G=this.bytes.subarray(this.pos),X=UZ(W),Y=new Uint8Array(G.length+X.length);Y.set(G),Y.set(X,G.length),this.setBuffer(Y)}}hasRemaining(W){return this.view.byteLength-this.pos>=W}createExtraByteError(W){let{view:G,pos:X}=this;return RangeError(`Extra ${G.byteLength-X} of ${G.byteLength} byte(s) found at buffer[${W}]`)}decode(W){if(this.entered)return this.clone().decode(W);try{this.entered=!0,this.reinitializeState(),this.setBuffer(W);let G=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return G}finally{this.entered=!1}}*decodeMulti(W){if(this.entered){yield*this.clone().decodeMulti(W);return}try{this.entered=!0,this.reinitializeState(),this.setBuffer(W);while(this.hasRemaining(1))yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(W){if(this.entered)return this.clone().decodeAsync(W);try{this.entered=!0;let G=!1,X;for await(let Q of W){if(G)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(Q);try{X=this.doDecodeSync(),G=!0}catch(J){if(!(J instanceof RangeError))throw J}this.totalPos+=this.pos}if(G){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return X}let{headByte:Y,pos:Z,totalPos:V}=this;throw RangeError(`Insufficient data in parsing ${gJ(Y)} at ${V} (${Z} in the current buffer)`)}finally{this.entered=!1}}decodeArrayStream(W){return this.decodeMultiAsync(W,!0)}decodeStream(W){return this.decodeMultiAsync(W,!1)}async*decodeMultiAsync(W,G){if(this.entered){yield*this.clone().decodeMultiAsync(W,G);return}try{this.entered=!0;let X=G,Y=-1;for await(let Z of W){if(G&&Y===0)throw this.createExtraByteError(this.totalPos);if(this.appendBuffer(Z),X)Y=this.readArraySize(),X=!1,this.complete();try{while(!0)if(yield this.doDecodeSync(),--Y===0)break}catch(V){if(!(V instanceof RangeError))throw V}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){W:while(!0){let W=this.readHeadByte(),G;if(W>=224)G=W-256;else if(W<192)if(W<128)G=W;else if(W<144){let Y=W-128;if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W<160){let Y=W-144;if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else{let Y=W-160;G=this.decodeString(Y,0)}else if(W===192)G=null;else if(W===194)G=!1;else if(W===195)G=!0;else if(W===202)G=this.readF32();else if(W===203)G=this.readF64();else if(W===204)G=this.readU8();else if(W===205)G=this.readU16();else if(W===206)G=this.readU32();else if(W===207)if(this.useBigInt64)G=this.readU64AsBigInt();else G=this.readU64();else if(W===208)G=this.readI8();else if(W===209)G=this.readI16();else if(W===210)G=this.readI32();else if(W===211)if(this.useBigInt64)G=this.readI64AsBigInt();else G=this.readI64();else if(W===217){let Y=this.lookU8();G=this.decodeString(Y,1)}else if(W===218){let Y=this.lookU16();G=this.decodeString(Y,2)}else if(W===219){let Y=this.lookU32();G=this.decodeString(Y,4)}else if(W===220){let Y=this.readU16();if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else if(W===221){let Y=this.readU32();if(Y!==0){this.pushArrayState(Y),this.complete();continue W}else G=[]}else if(W===222){let Y=this.readU16();if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W===223){let Y=this.readU32();if(Y!==0){this.pushMapState(Y),this.complete();continue W}else G={}}else if(W===196){let Y=this.lookU8();G=this.decodeBinary(Y,1)}else if(W===197){let Y=this.lookU16();G=this.decodeBinary(Y,2)}else if(W===198){let Y=this.lookU32();G=this.decodeBinary(Y,4)}else if(W===212)G=this.decodeExtension(1,0);else if(W===213)G=this.decodeExtension(2,0);else if(W===214)G=this.decodeExtension(4,0);else if(W===215)G=this.decodeExtension(8,0);else if(W===216)G=this.decodeExtension(16,0);else if(W===199){let Y=this.lookU8();G=this.decodeExtension(Y,1)}else if(W===200){let Y=this.lookU16();G=this.decodeExtension(Y,2)}else if(W===201){let Y=this.lookU32();G=this.decodeExtension(Y,4)}else throw new $9(`Unrecognized type byte: ${gJ(W)}`);this.complete();let X=this.stack;while(X.length>0){let Y=X.top();if(Y.type===AA)if(Y.array[Y.position]=G,Y.position++,Y.position===Y.size)G=Y.array,X.release(Y);else continue W;else if(Y.type===HZ){if(G==="__proto__")throw new $9("The key __proto__ is not allowed");Y.key=this.mapKeyConverter(G),Y.type=IC;continue W}else if(Y.map[Y.key]=G,Y.readCount++,Y.readCount===Y.size)G=Y.map,X.release(Y);else{Y.key=null,Y.type=HZ;continue W}}return G}}readHeadByte(){if(this.headByte===NZ)this.headByte=this.readU8();return this.headByte}complete(){this.headByte=NZ}readArraySize(){let W=this.readHeadByte();switch(W){case 220:return this.readU16();case 221:return this.readU32();default:if(W<160)return W-144;else throw new $9(`Unrecognized array type byte: ${gJ(W)}`)}}pushMapState(W){if(W>this.maxMapLength)throw new $9(`Max length exceeded: map length (${W}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(W)}pushArrayState(W){if(W>this.maxArrayLength)throw new $9(`Max length exceeded: array length (${W}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(W)}decodeString(W,G){if(!this.rawStrings||this.stateIsMapKey())return this.decodeUtf8String(W,G);return this.decodeBinary(W,G)}decodeUtf8String(W,G){if(W>this.maxStrLength)throw new $9(`Max length exceeded: UTF-8 byte length (${W}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+G+W)throw zC;let X=this.pos+G,Y;if(this.stateIsMapKey()&&this.keyDecoder?.canBeCached(W))Y=this.keyDecoder.decode(this.bytes,X,W);else Y=qC(this.bytes,X,W);return this.pos+=G+W,Y}stateIsMapKey(){if(this.stack.length>0)return this.stack.top().type===HZ;return!1}decodeBinary(W,G){if(W>this.maxBinLength)throw new $9(`Max length exceeded: bin length (${W}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(W+G))throw zC;let X=this.pos+G,Y=this.bytes.subarray(X,X+W);return this.pos+=G+W,Y}decodeExtension(W,G){if(W>this.maxExtLength)throw new $9(`Max length exceeded: ext length (${W}) > maxExtLength (${this.maxExtLength})`);let X=this.view.getInt8(this.pos+G),Y=this.decodeBinary(W,G+1);return this.extensionCodec.decode(Y,X,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){let W=this.view.getUint8(this.pos);return this.pos++,W}readI8(){let W=this.view.getInt8(this.pos);return this.pos++,W}readU16(){let W=this.view.getUint16(this.pos);return this.pos+=2,W}readI16(){let W=this.view.getInt16(this.pos);return this.pos+=2,W}readU32(){let W=this.view.getUint32(this.pos);return this.pos+=4,W}readI32(){let W=this.view.getInt32(this.pos);return this.pos+=4,W}readU64(){let W=HC(this.view,this.pos);return this.pos+=8,W}readI64(){let W=yJ(this.view,this.pos);return this.pos+=8,W}readU64AsBigInt(){let W=this.view.getBigUint64(this.pos);return this.pos+=8,W}readI64AsBigInt(){let W=this.view.getBigInt64(this.pos);return this.pos+=8,W}readF32(){let W=this.view.getFloat32(this.pos);return this.pos+=4,W}readF64(){let W=this.view.getFloat64(this.pos);return this.pos+=8,W}}function HW(W,G){return new uJ(G).decode(W)}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */function sG(W){let G=W.length;while(--G>=0)W[G]=0}var Qy=0,WD=1,Jy=2,Uy=3,qy=258,uA=29,BZ=256,KZ=BZ+1+uA,iG=30,hA=19,GD=2*KZ+1,AW=15,IA=16,Ny=7,bA=256,XD=16,YD=17,ZD=18,$A=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),pJ=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Hy=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),VD=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Ay=512,r7=Array((KZ+2)*2);sG(r7);var wZ=Array(iG*2);sG(wZ);var CZ=Array(Ay);sG(CZ);var DZ=Array(qy-Uy+1);sG(DZ);var mA=Array(uA);sG(mA);var lJ=Array(iG);sG(lJ);function wA(W,G,X,Y,Z){this.static_tree=W,this.extra_bits=G,this.extra_base=X,this.elems=Y,this.max_length=Z,this.has_stree=W&&W.length}var QD,JD,UD;function jA(W,G){this.dyn_tree=W,this.max_code=0,this.stat_desc=G}var qD=(W)=>{return W<256?CZ[W]:CZ[256+(W>>>7)]},MZ=(W,G)=>{W.pending_buf[W.pending++]=G&255,W.pending_buf[W.pending++]=G>>>8&255},g9=(W,G,X)=>{if(W.bi_valid>IA-X)W.bi_buf|=G<<W.bi_valid&65535,MZ(W,W.bi_buf),W.bi_buf=G>>IA-W.bi_valid,W.bi_valid+=X-IA;else W.bi_buf|=G<<W.bi_valid&65535,W.bi_valid+=X},J7=(W,G,X)=>{g9(W,X[G*2],X[G*2+1])},ND=(W,G)=>{let X=0;do X|=W&1,W>>>=1,X<<=1;while(--G>0);return X>>>1},zy=(W)=>{if(W.bi_valid===16)MZ(W,W.bi_buf),W.bi_buf=0,W.bi_valid=0;else if(W.bi_valid>=8)W.pending_buf[W.pending++]=W.bi_buf&255,W.bi_buf>>=8,W.bi_valid-=8},Iy=(W,G)=>{let{dyn_tree:X,max_code:Y}=G,Z=G.stat_desc.static_tree,V=G.stat_desc.has_stree,Q=G.stat_desc.extra_bits,J=G.stat_desc.extra_base,U=G.stat_desc.max_length,q,N,A,H,I,w,C=0;for(H=0;H<=AW;H++)W.bl_count[H]=0;X[W.heap[W.heap_max]*2+1]=0;for(q=W.heap_max+1;q<GD;q++){if(N=W.heap[q],H=X[X[N*2+1]*2+1]+1,H>U)H=U,C++;if(X[N*2+1]=H,N>Y)continue;if(W.bl_count[H]++,I=0,N>=J)I=Q[N-J];if(w=X[N*2],W.opt_len+=w*(H+I),V)W.static_len+=w*(Z[N*2+1]+I)}if(C===0)return;do{H=U-1;while(W.bl_count[H]===0)H--;W.bl_count[H]--,W.bl_count[H+1]+=2,W.bl_count[U]--,C-=2}while(C>0);for(H=U;H!==0;H--){N=W.bl_count[H];while(N!==0){if(A=W.heap[--q],A>Y)continue;if(X[A*2+1]!==H)W.opt_len+=(H-X[A*2+1])*X[A*2],X[A*2+1]=H;N--}}},HD=(W,G,X)=>{let Y=Array(AW+1),Z=0,V,Q;for(V=1;V<=AW;V++)Z=Z+X[V-1]<<1,Y[V]=Z;for(Q=0;Q<=G;Q++){let J=W[Q*2+1];if(J===0)continue;W[Q*2]=ND(Y[J]++,J)}},wy=()=>{let W,G,X,Y,Z,V=Array(AW+1);X=0;for(Y=0;Y<uA-1;Y++){mA[Y]=X;for(W=0;W<1<<$A[Y];W++)DZ[X++]=Y}DZ[X-1]=Y,Z=0;for(Y=0;Y<16;Y++){lJ[Y]=Z;for(W=0;W<1<<pJ[Y];W++)CZ[Z++]=Y}Z>>=7;for(;Y<iG;Y++){lJ[Y]=Z<<7;for(W=0;W<1<<pJ[Y]-7;W++)CZ[256+Z++]=Y}for(G=0;G<=AW;G++)V[G]=0;W=0;while(W<=143)r7[W*2+1]=8,W++,V[8]++;while(W<=255)r7[W*2+1]=9,W++,V[9]++;while(W<=279)r7[W*2+1]=7,W++,V[7]++;while(W<=287)r7[W*2+1]=8,W++,V[8]++;HD(r7,KZ+1,V);for(W=0;W<iG;W++)wZ[W*2+1]=5,wZ[W*2]=ND(W,5);QD=new wA(r7,$A,BZ+1,KZ,AW),JD=new wA(wZ,pJ,0,iG,AW),UD=new wA([],Hy,0,hA,Ny)},AD=(W)=>{let G;for(G=0;G<KZ;G++)W.dyn_ltree[G*2]=0;for(G=0;G<iG;G++)W.dyn_dtree[G*2]=0;for(G=0;G<hA;G++)W.bl_tree[G*2]=0;W.dyn_ltree[bA*2]=1,W.opt_len=W.static_len=0,W.sym_next=W.matches=0},zD=(W)=>{if(W.bi_valid>8)MZ(W,W.bi_buf);else if(W.bi_valid>0)W.pending_buf[W.pending++]=W.bi_buf;W.bi_buf=0,W.bi_valid=0},jC=(W,G,X,Y)=>{let Z=G*2,V=X*2;return W[Z]<W[V]||W[Z]===W[V]&&Y[G]<=Y[X]},OA=(W,G,X)=>{let Y=W.heap[X],Z=X<<1;while(Z<=W.heap_len){if(Z<W.heap_len&&jC(G,W.heap[Z+1],W.heap[Z],W.depth))Z++;if(jC(G,Y,W.heap[Z],W.depth))break;W.heap[X]=W.heap[Z],X=Z,Z<<=1}W.heap[X]=Y},OC=(W,G,X)=>{let Y,Z,V=0,Q,J;if(W.sym_next!==0)do if(Y=W.pending_buf[W.sym_buf+V++]&255,Y+=(W.pending_buf[W.sym_buf+V++]&255)<<8,Z=W.pending_buf[W.sym_buf+V++],Y===0)J7(W,Z,G);else{if(Q=DZ[Z],J7(W,Q+BZ+1,G),J=$A[Q],J!==0)Z-=mA[Q],g9(W,Z,J);if(Y--,Q=qD(Y),J7(W,Q,X),J=pJ[Q],J!==0)Y-=lJ[Q],g9(W,Y,J)}while(V<W.sym_next);J7(W,bA,G)},FA=(W,G)=>{let X=G.dyn_tree,Y=G.stat_desc.static_tree,Z=G.stat_desc.has_stree,V=G.stat_desc.elems,Q,J,U=-1,q;W.heap_len=0,W.heap_max=GD;for(Q=0;Q<V;Q++)if(X[Q*2]!==0)W.heap[++W.heap_len]=U=Q,W.depth[Q]=0;else X[Q*2+1]=0;while(W.heap_len<2)if(q=W.heap[++W.heap_len]=U<2?++U:0,X[q*2]=1,W.depth[q]=0,W.opt_len--,Z)W.static_len-=Y[q*2+1];G.max_code=U;for(Q=W.heap_len>>1;Q>=1;Q--)OA(W,X,Q);q=V;do Q=W.heap[1],W.heap[1]=W.heap[W.heap_len--],OA(W,X,1),J=W.heap[1],W.heap[--W.heap_max]=Q,W.heap[--W.heap_max]=J,X[q*2]=X[Q*2]+X[J*2],W.depth[q]=(W.depth[Q]>=W.depth[J]?W.depth[Q]:W.depth[J])+1,X[Q*2+1]=X[J*2+1]=q,W.heap[1]=q++,OA(W,X,1);while(W.heap_len>=2);W.heap[--W.heap_max]=W.heap[1],Iy(W,G),HD(X,U,W.bl_count)},KC=(W,G,X)=>{let Y,Z=-1,V,Q=G[1],J=0,U=7,q=4;if(Q===0)U=138,q=3;G[(X+1)*2+1]=65535;for(Y=0;Y<=X;Y++){if(V=Q,Q=G[(Y+1)*2+1],++J<U&&V===Q)continue;else if(J<q)W.bl_tree[V*2]+=J;else if(V!==0){if(V!==Z)W.bl_tree[V*2]++;W.bl_tree[XD*2]++}else if(J<=10)W.bl_tree[YD*2]++;else W.bl_tree[ZD*2]++;if(J=0,Z=V,Q===0)U=138,q=3;else if(V===Q)U=6,q=3;else U=7,q=4}},CC=(W,G,X)=>{let Y,Z=-1,V,Q=G[1],J=0,U=7,q=4;if(Q===0)U=138,q=3;for(Y=0;Y<=X;Y++){if(V=Q,Q=G[(Y+1)*2+1],++J<U&&V===Q)continue;else if(J<q)do J7(W,V,W.bl_tree);while(--J!==0);else if(V!==0){if(V!==Z)J7(W,V,W.bl_tree),J--;J7(W,XD,W.bl_tree),g9(W,J-3,2)}else if(J<=10)J7(W,YD,W.bl_tree),g9(W,J-3,3);else J7(W,ZD,W.bl_tree),g9(W,J-11,7);if(J=0,Z=V,Q===0)U=138,q=3;else if(V===Q)U=6,q=3;else U=7,q=4}},jy=(W)=>{let G;KC(W,W.dyn_ltree,W.l_desc.max_code),KC(W,W.dyn_dtree,W.d_desc.max_code),FA(W,W.bl_desc);for(G=hA-1;G>=3;G--)if(W.bl_tree[VD[G]*2+1]!==0)break;return W.opt_len+=3*(G+1)+5+5+4,G},Oy=(W,G,X,Y)=>{let Z;g9(W,G-257,5),g9(W,X-1,5),g9(W,Y-4,4);for(Z=0;Z<Y;Z++)g9(W,W.bl_tree[VD[Z]*2+1],3);CC(W,W.dyn_ltree,G-1),CC(W,W.dyn_dtree,X-1)},Ky=(W)=>{let G=4093624447,X;for(X=0;X<=31;X++,G>>>=1)if(G&1&&W.dyn_ltree[X*2]!==0)return 0;if(W.dyn_ltree[18]!==0||W.dyn_ltree[20]!==0||W.dyn_ltree[26]!==0)return 1;for(X=32;X<BZ;X++)if(W.dyn_ltree[X*2]!==0)return 1;return 0},DC=!1,Cy=(W)=>{if(!DC)wy(),DC=!0;W.l_desc=new jA(W.dyn_ltree,QD),W.d_desc=new jA(W.dyn_dtree,JD),W.bl_desc=new jA(W.bl_tree,UD),W.bi_buf=0,W.bi_valid=0,AD(W)},ID=(W,G,X,Y)=>{if(g9(W,(Qy<<1)+(Y?1:0),3),zD(W),MZ(W,X),MZ(W,~X),X)W.pending_buf.set(W.window.subarray(G,G+X),W.pending);W.pending+=X},Dy=(W)=>{g9(W,WD<<1,3),J7(W,bA,r7),zy(W)},My=(W,G,X,Y)=>{let Z,V,Q=0;if(W.level>0){if(W.strm.data_type===2)W.strm.data_type=Ky(W);if(FA(W,W.l_desc),FA(W,W.d_desc),Q=jy(W),Z=W.opt_len+3+7>>>3,V=W.static_len+3+7>>>3,V<=Z)Z=V}else Z=V=X+5;if(X+4<=Z&&G!==-1)ID(W,G,X,Y);else if(W.strategy===4||V===Z)g9(W,(WD<<1)+(Y?1:0),3),OC(W,r7,wZ);else g9(W,(Jy<<1)+(Y?1:0),3),Oy(W,W.l_desc.max_code+1,W.d_desc.max_code+1,Q+1),OC(W,W.dyn_ltree,W.dyn_dtree);if(AD(W),Y)zD(W)},Ty=(W,G,X)=>{if(W.pending_buf[W.sym_buf+W.sym_next++]=G,W.pending_buf[W.sym_buf+W.sym_next++]=G>>8,W.pending_buf[W.sym_buf+W.sym_next++]=X,G===0)W.dyn_ltree[X*2]++;else W.matches++,G--,W.dyn_ltree[(DZ[X]+BZ+1)*2]++,W.dyn_dtree[qD(G)*2]++;return W.sym_next===W.sym_end},Py=Cy,Ry=ID,Ly=My,By=Ty,Ey=Dy,$y={_tr_init:Py,_tr_stored_block:Ry,_tr_flush_block:Ly,_tr_tally:By,_tr_align:Ey},Fy=(W,G,X,Y)=>{let Z=W&65535|0,V=W>>>16&65535|0,Q=0;while(X!==0){Q=X>2000?2000:X,X-=Q;do Z=Z+G[Y++]|0,V=V+Z|0;while(--Q);Z%=65521,V%=65521}return Z|V<<16|0},TZ=Fy,Sy=()=>{let W,G=[];for(var X=0;X<256;X++){W=X;for(var Y=0;Y<8;Y++)W=W&1?3988292384^W>>>1:W>>>1;G[X]=W}return G},xy=new Uint32Array(Sy()),ky=(W,G,X,Y)=>{let Z=xy,V=Y+X;W^=-1;for(let Q=Y;Q<V;Q++)W=W>>>8^Z[(W^G[Q])&255];return W^-1},d8=ky,wW={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},KW={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:_y,_tr_stored_block:SA,_tr_flush_block:yy,_tr_tally:V6,_tr_align:vy}=$y,{Z_NO_FLUSH:Q6,Z_PARTIAL_FLUSH:gy,Z_FULL_FLUSH:uy,Z_FINISH:A5,Z_BLOCK:MC,Z_OK:a8,Z_STREAM_END:TC,Z_STREAM_ERROR:U7,Z_DATA_ERROR:hy,Z_BUF_ERROR:KA,Z_DEFAULT_COMPRESSION:by,Z_FILTERED:my,Z_HUFFMAN_ONLY:hJ,Z_RLE:fy,Z_FIXED:cy,Z_DEFAULT_STRATEGY:py,Z_UNKNOWN:ly,Z_DEFLATED:nJ}=KW,dy=9,oy=15,ny=8,iy=29,ry=256,xA=ry+1+iy,ay=30,sy=19,ty=2*xA+1,ey=15,y1=3,Z6=258,q7=Z6+y1+1,Wv=32,rG=42,fA=57,kA=69,_A=73,yA=91,vA=103,zW=113,zZ=666,F9=1,tG=2,jW=3,eG=4,Gv=3,IW=(W,G)=>{return W.msg=wW[G],G},PC=(W)=>{return W*2-(W>4?9:0)},Y6=(W)=>{let G=W.length;while(--G>=0)W[G]=0},Xv=(W)=>{let G,X,Y,Z=W.w_size;G=W.hash_size,Y=G;do X=W.head[--Y],W.head[Y]=X>=Z?X-Z:0;while(--G);G=Z,Y=G;do X=W.prev[--Y],W.prev[Y]=X>=Z?X-Z:0;while(--G)},Yv=(W,G,X)=>(G<<W.hash_shift^X)&W.hash_mask,J6=Yv,s9=(W)=>{let G=W.state,X=G.pending;if(X>W.avail_out)X=W.avail_out;if(X===0)return;if(W.output.set(G.pending_buf.subarray(G.pending_out,G.pending_out+X),W.next_out),W.next_out+=X,G.pending_out+=X,W.total_out+=X,W.avail_out-=X,G.pending-=X,G.pending===0)G.pending_out=0},t9=(W,G)=>{yy(W,W.block_start>=0?W.block_start:-1,W.strstart-W.block_start,G),W.block_start=W.strstart,s9(W.strm)},n1=(W,G)=>{W.pending_buf[W.pending++]=G},AZ=(W,G)=>{W.pending_buf[W.pending++]=G>>>8&255,W.pending_buf[W.pending++]=G&255},gA=(W,G,X,Y)=>{let Z=W.avail_in;if(Z>Y)Z=Y;if(Z===0)return 0;if(W.avail_in-=Z,G.set(W.input.subarray(W.next_in,W.next_in+Z),X),W.state.wrap===1)W.adler=TZ(W.adler,G,Z,X);else if(W.state.wrap===2)W.adler=d8(W.adler,G,Z,X);return W.next_in+=Z,W.total_in+=Z,Z},wD=(W,G)=>{let{max_chain_length:X,strstart:Y}=W,Z,V,Q=W.prev_length,J=W.nice_match,U=W.strstart>W.w_size-q7?W.strstart-(W.w_size-q7):0,q=W.window,N=W.w_mask,A=W.prev,H=W.strstart+Z6,I=q[Y+Q-1],w=q[Y+Q];if(W.prev_length>=W.good_match)X>>=2;if(J>W.lookahead)J=W.lookahead;do{if(Z=G,q[Z+Q]!==w||q[Z+Q-1]!==I||q[Z]!==q[Y]||q[++Z]!==q[Y+1])continue;Y+=2,Z++;do;while(q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&q[++Y]===q[++Z]&&Y<H);if(V=Z6-(H-Y),Y=H-Z6,V>Q){if(W.match_start=G,Q=V,V>=J)break;I=q[Y+Q-1],w=q[Y+Q]}}while((G=A[G&N])>U&&--X!==0);if(Q<=W.lookahead)return Q;return W.lookahead},aG=(W)=>{let G=W.w_size,X,Y,Z;do{if(Y=W.window_size-W.lookahead-W.strstart,W.strstart>=G+(G-q7)){if(W.window.set(W.window.subarray(G,G+G-Y),0),W.match_start-=G,W.strstart-=G,W.block_start-=G,W.insert>W.strstart)W.insert=W.strstart;Xv(W),Y+=G}if(W.strm.avail_in===0)break;if(X=gA(W.strm,W.window,W.strstart+W.lookahead,Y),W.lookahead+=X,W.lookahead+W.insert>=y1){Z=W.strstart-W.insert,W.ins_h=W.window[Z],W.ins_h=J6(W,W.ins_h,W.window[Z+1]);while(W.insert)if(W.ins_h=J6(W,W.ins_h,W.window[Z+y1-1]),W.prev[Z&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=Z,Z++,W.insert--,W.lookahead+W.insert<y1)break}}while(W.lookahead<q7&&W.strm.avail_in!==0)},jD=(W,G)=>{let X=W.pending_buf_size-5>W.w_size?W.w_size:W.pending_buf_size-5,Y,Z,V,Q=0,J=W.strm.avail_in;do{if(Y=65535,V=W.bi_valid+42>>3,W.strm.avail_out<V)break;if(V=W.strm.avail_out-V,Z=W.strstart-W.block_start,Y>Z+W.strm.avail_in)Y=Z+W.strm.avail_in;if(Y>V)Y=V;if(Y<X&&(Y===0&&G!==A5||G===Q6||Y!==Z+W.strm.avail_in))break;if(Q=G===A5&&Y===Z+W.strm.avail_in?1:0,SA(W,0,0,Q),W.pending_buf[W.pending-4]=Y,W.pending_buf[W.pending-3]=Y>>8,W.pending_buf[W.pending-2]=~Y,W.pending_buf[W.pending-1]=~Y>>8,s9(W.strm),Z){if(Z>Y)Z=Y;W.strm.output.set(W.window.subarray(W.block_start,W.block_start+Z),W.strm.next_out),W.strm.next_out+=Z,W.strm.avail_out-=Z,W.strm.total_out+=Z,W.block_start+=Z,Y-=Z}if(Y)gA(W.strm,W.strm.output,W.strm.next_out,Y),W.strm.next_out+=Y,W.strm.avail_out-=Y,W.strm.total_out+=Y}while(Q===0);if(J-=W.strm.avail_in,J){if(J>=W.w_size)W.matches=2,W.window.set(W.strm.input.subarray(W.strm.next_in-W.w_size,W.strm.next_in),0),W.strstart=W.w_size,W.insert=W.strstart;else{if(W.window_size-W.strstart<=J){if(W.strstart-=W.w_size,W.window.set(W.window.subarray(W.w_size,W.w_size+W.strstart),0),W.matches<2)W.matches++;if(W.insert>W.strstart)W.insert=W.strstart}W.window.set(W.strm.input.subarray(W.strm.next_in-J,W.strm.next_in),W.strstart),W.strstart+=J,W.insert+=J>W.w_size-W.insert?W.w_size-W.insert:J}W.block_start=W.strstart}if(W.high_water<W.strstart)W.high_water=W.strstart;if(Q)return eG;if(G!==Q6&&G!==A5&&W.strm.avail_in===0&&W.strstart===W.block_start)return tG;if(V=W.window_size-W.strstart,W.strm.avail_in>V&&W.block_start>=W.w_size){if(W.block_start-=W.w_size,W.strstart-=W.w_size,W.window.set(W.window.subarray(W.w_size,W.w_size+W.strstart),0),W.matches<2)W.matches++;if(V+=W.w_size,W.insert>W.strstart)W.insert=W.strstart}if(V>W.strm.avail_in)V=W.strm.avail_in;if(V)gA(W.strm,W.window,W.strstart,V),W.strstart+=V,W.insert+=V>W.w_size-W.insert?W.w_size-W.insert:V;if(W.high_water<W.strstart)W.high_water=W.strstart;if(V=W.bi_valid+42>>3,V=W.pending_buf_size-V>65535?65535:W.pending_buf_size-V,X=V>W.w_size?W.w_size:V,Z=W.strstart-W.block_start,Z>=X||(Z||G===A5)&&G!==Q6&&W.strm.avail_in===0&&Z<=V)Y=Z>V?V:Z,Q=G===A5&&W.strm.avail_in===0&&Y===Z?1:0,SA(W,W.block_start,Y,Q),W.block_start+=Y,s9(W.strm);return Q?jW:F9},CA=(W,G)=>{let X,Y;for(;;){if(W.lookahead<q7){if(aG(W),W.lookahead<q7&&G===Q6)return F9;if(W.lookahead===0)break}if(X=0,W.lookahead>=y1)W.ins_h=J6(W,W.ins_h,W.window[W.strstart+y1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(X!==0&&W.strstart-X<=W.w_size-q7)W.match_length=wD(W,X);if(W.match_length>=y1)if(Y=V6(W,W.strstart-W.match_start,W.match_length-y1),W.lookahead-=W.match_length,W.match_length<=W.max_lazy_match&&W.lookahead>=y1){W.match_length--;do W.strstart++,W.ins_h=J6(W,W.ins_h,W.window[W.strstart+y1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;while(--W.match_length!==0);W.strstart++}else W.strstart+=W.match_length,W.match_length=0,W.ins_h=W.window[W.strstart],W.ins_h=J6(W,W.ins_h,W.window[W.strstart+1]);else Y=V6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(Y){if(t9(W,!1),W.strm.avail_out===0)return F9}}if(W.insert=W.strstart<y1-1?W.strstart:y1-1,G===A5){if(t9(W,!0),W.strm.avail_out===0)return jW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG},oG=(W,G)=>{let X,Y,Z;for(;;){if(W.lookahead<q7){if(aG(W),W.lookahead<q7&&G===Q6)return F9;if(W.lookahead===0)break}if(X=0,W.lookahead>=y1)W.ins_h=J6(W,W.ins_h,W.window[W.strstart+y1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;if(W.prev_length=W.match_length,W.prev_match=W.match_start,W.match_length=y1-1,X!==0&&W.prev_length<W.max_lazy_match&&W.strstart-X<=W.w_size-q7){if(W.match_length=wD(W,X),W.match_length<=5&&(W.strategy===my||W.match_length===y1&&W.strstart-W.match_start>4096))W.match_length=y1-1}if(W.prev_length>=y1&&W.match_length<=W.prev_length){Z=W.strstart+W.lookahead-y1,Y=V6(W,W.strstart-1-W.prev_match,W.prev_length-y1),W.lookahead-=W.prev_length-1,W.prev_length-=2;do if(++W.strstart<=Z)W.ins_h=J6(W,W.ins_h,W.window[W.strstart+y1-1]),X=W.prev[W.strstart&W.w_mask]=W.head[W.ins_h],W.head[W.ins_h]=W.strstart;while(--W.prev_length!==0);if(W.match_available=0,W.match_length=y1-1,W.strstart++,Y){if(t9(W,!1),W.strm.avail_out===0)return F9}}else if(W.match_available){if(Y=V6(W,0,W.window[W.strstart-1]),Y)t9(W,!1);if(W.strstart++,W.lookahead--,W.strm.avail_out===0)return F9}else W.match_available=1,W.strstart++,W.lookahead--}if(W.match_available)Y=V6(W,0,W.window[W.strstart-1]),W.match_available=0;if(W.insert=W.strstart<y1-1?W.strstart:y1-1,G===A5){if(t9(W,!0),W.strm.avail_out===0)return jW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG},Zv=(W,G)=>{let X,Y,Z,V,Q=W.window;for(;;){if(W.lookahead<=Z6){if(aG(W),W.lookahead<=Z6&&G===Q6)return F9;if(W.lookahead===0)break}if(W.match_length=0,W.lookahead>=y1&&W.strstart>0){if(Z=W.strstart-1,Y=Q[Z],Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]){V=W.strstart+Z6;do;while(Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Y===Q[++Z]&&Z<V);if(W.match_length=Z6-(V-Z),W.match_length>W.lookahead)W.match_length=W.lookahead}}if(W.match_length>=y1)X=V6(W,1,W.match_length-y1),W.lookahead-=W.match_length,W.strstart+=W.match_length,W.match_length=0;else X=V6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++;if(X){if(t9(W,!1),W.strm.avail_out===0)return F9}}if(W.insert=0,G===A5){if(t9(W,!0),W.strm.avail_out===0)return jW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG},Vv=(W,G)=>{let X;for(;;){if(W.lookahead===0){if(aG(W),W.lookahead===0){if(G===Q6)return F9;break}}if(W.match_length=0,X=V6(W,0,W.window[W.strstart]),W.lookahead--,W.strstart++,X){if(t9(W,!1),W.strm.avail_out===0)return F9}}if(W.insert=0,G===A5){if(t9(W,!0),W.strm.avail_out===0)return jW;return eG}if(W.sym_next){if(t9(W,!1),W.strm.avail_out===0)return F9}return tG};function Q7(W,G,X,Y,Z){this.good_length=W,this.max_lazy=G,this.nice_length=X,this.max_chain=Y,this.func=Z}var IZ=[new Q7(0,0,0,0,jD),new Q7(4,4,8,4,CA),new Q7(4,5,16,8,CA),new Q7(4,6,32,32,CA),new Q7(4,4,16,16,oG),new Q7(8,16,32,32,oG),new Q7(8,16,128,128,oG),new Q7(8,32,128,256,oG),new Q7(32,128,258,1024,oG),new Q7(32,258,258,4096,oG)],Qv=(W)=>{W.window_size=2*W.w_size,Y6(W.head),W.max_lazy_match=IZ[W.level].max_lazy,W.good_match=IZ[W.level].good_length,W.nice_match=IZ[W.level].nice_length,W.max_chain_length=IZ[W.level].max_chain,W.strstart=0,W.block_start=0,W.lookahead=0,W.insert=0,W.match_length=W.prev_length=y1-1,W.match_available=0,W.ins_h=0};function Jv(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=nJ,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(ty*2),this.dyn_dtree=new Uint16Array((2*ay+1)*2),this.bl_tree=new Uint16Array((2*sy+1)*2),Y6(this.dyn_ltree),Y6(this.dyn_dtree),Y6(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(ey+1),this.heap=new Uint16Array(2*xA+1),Y6(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*xA+1),Y6(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var EZ=(W)=>{if(!W)return 1;let G=W.state;if(!G||G.strm!==W||G.status!==rG&&G.status!==fA&&G.status!==kA&&G.status!==_A&&G.status!==yA&&G.status!==vA&&G.status!==zW&&G.status!==zZ)return 1;return 0},OD=(W)=>{if(EZ(W))return IW(W,U7);W.total_in=W.total_out=0,W.data_type=ly;let G=W.state;if(G.pending=0,G.pending_out=0,G.wrap<0)G.wrap=-G.wrap;return G.status=G.wrap===2?fA:G.wrap?rG:zW,W.adler=G.wrap===2?0:1,G.last_flush=-2,_y(G),a8},KD=(W)=>{let G=OD(W);if(G===a8)Qv(W.state);return G},Uv=(W,G)=>{if(EZ(W)||W.state.wrap!==2)return U7;return W.state.gzhead=G,a8},CD=(W,G,X,Y,Z,V)=>{if(!W)return U7;let Q=1;if(G===by)G=6;if(Y<0)Q=0,Y=-Y;else if(Y>15)Q=2,Y-=16;if(Z<1||Z>dy||X!==nJ||Y<8||Y>15||G<0||G>9||V<0||V>cy||Y===8&&Q!==1)return IW(W,U7);if(Y===8)Y=9;let J=new Jv;return W.state=J,J.strm=W,J.status=rG,J.wrap=Q,J.gzhead=null,J.w_bits=Y,J.w_size=1<<J.w_bits,J.w_mask=J.w_size-1,J.hash_bits=Z+7,J.hash_size=1<<J.hash_bits,J.hash_mask=J.hash_size-1,J.hash_shift=~~((J.hash_bits+y1-1)/y1),J.window=new Uint8Array(J.w_size*2),J.head=new Uint16Array(J.hash_size),J.prev=new Uint16Array(J.w_size),J.lit_bufsize=1<<Z+6,J.pending_buf_size=J.lit_bufsize*4,J.pending_buf=new Uint8Array(J.pending_buf_size),J.sym_buf=J.lit_bufsize,J.sym_end=(J.lit_bufsize-1)*3,J.level=G,J.strategy=V,J.method=X,KD(W)},qv=(W,G)=>{return CD(W,G,nJ,oy,ny,py)},Nv=(W,G)=>{if(EZ(W)||G>MC||G<0)return W?IW(W,U7):U7;let X=W.state;if(!W.output||W.avail_in!==0&&!W.input||X.status===zZ&&G!==A5)return IW(W,W.avail_out===0?KA:U7);let Y=X.last_flush;if(X.last_flush=G,X.pending!==0){if(s9(W),W.avail_out===0)return X.last_flush=-1,a8}else if(W.avail_in===0&&PC(G)<=PC(Y)&&G!==A5)return IW(W,KA);if(X.status===zZ&&W.avail_in!==0)return IW(W,KA);if(X.status===rG&&X.wrap===0)X.status=zW;if(X.status===rG){let Z=nJ+(X.w_bits-8<<4)<<8,V=-1;if(X.strategy>=hJ||X.level<2)V=0;else if(X.level<6)V=1;else if(X.level===6)V=2;else V=3;if(Z|=V<<6,X.strstart!==0)Z|=Wv;if(Z+=31-Z%31,AZ(X,Z),X.strstart!==0)AZ(X,W.adler>>>16),AZ(X,W.adler&65535);if(W.adler=1,X.status=zW,s9(W),X.pending!==0)return X.last_flush=-1,a8}if(X.status===fA)if(W.adler=0,n1(X,31),n1(X,139),n1(X,8),!X.gzhead){if(n1(X,0),n1(X,0),n1(X,0),n1(X,0),n1(X,0),n1(X,X.level===9?2:X.strategy>=hJ||X.level<2?4:0),n1(X,Gv),X.status=zW,s9(W),X.pending!==0)return X.last_flush=-1,a8}else{if(n1(X,(X.gzhead.text?1:0)+(X.gzhead.hcrc?2:0)+(!X.gzhead.extra?0:4)+(!X.gzhead.name?0:8)+(!X.gzhead.comment?0:16)),n1(X,X.gzhead.time&255),n1(X,X.gzhead.time>>8&255),n1(X,X.gzhead.time>>16&255),n1(X,X.gzhead.time>>24&255),n1(X,X.level===9?2:X.strategy>=hJ||X.level<2?4:0),n1(X,X.gzhead.os&255),X.gzhead.extra&&X.gzhead.extra.length)n1(X,X.gzhead.extra.length&255),n1(X,X.gzhead.extra.length>>8&255);if(X.gzhead.hcrc)W.adler=d8(W.adler,X.pending_buf,X.pending,0);X.gzindex=0,X.status=kA}if(X.status===kA){if(X.gzhead.extra){let Z=X.pending,V=(X.gzhead.extra.length&65535)-X.gzindex;while(X.pending+V>X.pending_buf_size){let J=X.pending_buf_size-X.pending;if(X.pending_buf.set(X.gzhead.extra.subarray(X.gzindex,X.gzindex+J),X.pending),X.pending=X.pending_buf_size,X.gzhead.hcrc&&X.pending>Z)W.adler=d8(W.adler,X.pending_buf,X.pending-Z,Z);if(X.gzindex+=J,s9(W),X.pending!==0)return X.last_flush=-1,a8;Z=0,V-=J}let Q=new Uint8Array(X.gzhead.extra);if(X.pending_buf.set(Q.subarray(X.gzindex,X.gzindex+V),X.pending),X.pending+=V,X.gzhead.hcrc&&X.pending>Z)W.adler=d8(W.adler,X.pending_buf,X.pending-Z,Z);X.gzindex=0}X.status=_A}if(X.status===_A){if(X.gzhead.name){let Z=X.pending,V;do{if(X.pending===X.pending_buf_size){if(X.gzhead.hcrc&&X.pending>Z)W.adler=d8(W.adler,X.pending_buf,X.pending-Z,Z);if(s9(W),X.pending!==0)return X.last_flush=-1,a8;Z=0}if(X.gzindex<X.gzhead.name.length)V=X.gzhead.name.charCodeAt(X.gzindex++)&255;else V=0;n1(X,V)}while(V!==0);if(X.gzhead.hcrc&&X.pending>Z)W.adler=d8(W.adler,X.pending_buf,X.pending-Z,Z);X.gzindex=0}X.status=yA}if(X.status===yA){if(X.gzhead.comment){let Z=X.pending,V;do{if(X.pending===X.pending_buf_size){if(X.gzhead.hcrc&&X.pending>Z)W.adler=d8(W.adler,X.pending_buf,X.pending-Z,Z);if(s9(W),X.pending!==0)return X.last_flush=-1,a8;Z=0}if(X.gzindex<X.gzhead.comment.length)V=X.gzhead.comment.charCodeAt(X.gzindex++)&255;else V=0;n1(X,V)}while(V!==0);if(X.gzhead.hcrc&&X.pending>Z)W.adler=d8(W.adler,X.pending_buf,X.pending-Z,Z)}X.status=vA}if(X.status===vA){if(X.gzhead.hcrc){if(X.pending+2>X.pending_buf_size){if(s9(W),X.pending!==0)return X.last_flush=-1,a8}n1(X,W.adler&255),n1(X,W.adler>>8&255),W.adler=0}if(X.status=zW,s9(W),X.pending!==0)return X.last_flush=-1,a8}if(W.avail_in!==0||X.lookahead!==0||G!==Q6&&X.status!==zZ){let Z=X.level===0?jD(X,G):X.strategy===hJ?Vv(X,G):X.strategy===fy?Zv(X,G):IZ[X.level].func(X,G);if(Z===jW||Z===eG)X.status=zZ;if(Z===F9||Z===jW){if(W.avail_out===0)X.last_flush=-1;return a8}if(Z===tG){if(G===gy)vy(X);else if(G!==MC){if(SA(X,0,0,!1),G===uy){if(Y6(X.head),X.lookahead===0)X.strstart=0,X.block_start=0,X.insert=0}}if(s9(W),W.avail_out===0)return X.last_flush=-1,a8}}if(G!==A5)return a8;if(X.wrap<=0)return TC;if(X.wrap===2)n1(X,W.adler&255),n1(X,W.adler>>8&255),n1(X,W.adler>>16&255),n1(X,W.adler>>24&255),n1(X,W.total_in&255),n1(X,W.total_in>>8&255),n1(X,W.total_in>>16&255),n1(X,W.total_in>>24&255);else AZ(X,W.adler>>>16),AZ(X,W.adler&65535);if(s9(W),X.wrap>0)X.wrap=-X.wrap;return X.pending!==0?a8:TC},Hv=(W)=>{if(EZ(W))return U7;let G=W.state.status;return W.state=null,G===zW?IW(W,hy):a8},Av=(W,G)=>{let X=G.length;if(EZ(W))return U7;let Y=W.state,Z=Y.wrap;if(Z===2||Z===1&&Y.status!==rG||Y.lookahead)return U7;if(Z===1)W.adler=TZ(W.adler,G,X,0);if(Y.wrap=0,X>=Y.w_size){if(Z===0)Y6(Y.head),Y.strstart=0,Y.block_start=0,Y.insert=0;let U=new Uint8Array(Y.w_size);U.set(G.subarray(X-Y.w_size,X),0),G=U,X=Y.w_size}let{avail_in:V,next_in:Q,input:J}=W;W.avail_in=X,W.next_in=0,W.input=G,aG(Y);while(Y.lookahead>=y1){let U=Y.strstart,q=Y.lookahead-(y1-1);do Y.ins_h=J6(Y,Y.ins_h,Y.window[U+y1-1]),Y.prev[U&Y.w_mask]=Y.head[Y.ins_h],Y.head[Y.ins_h]=U,U++;while(--q);Y.strstart=U,Y.lookahead=y1-1,aG(Y)}return Y.strstart+=Y.lookahead,Y.block_start=Y.strstart,Y.insert=Y.lookahead,Y.lookahead=0,Y.match_length=Y.prev_length=y1-1,Y.match_available=0,W.next_in=Q,W.input=J,W.avail_in=V,Y.wrap=Z,a8},zv=qv,Iv=CD,wv=KD,jv=OD,Ov=Uv,Kv=Nv,Cv=Hv,Dv=Av,Mv="pako deflate (from Nodeca project)",jZ={deflateInit:zv,deflateInit2:Iv,deflateReset:wv,deflateResetKeep:jv,deflateSetHeader:Ov,deflate:Kv,deflateEnd:Cv,deflateSetDictionary:Dv,deflateInfo:Mv},Tv=(W,G)=>{return Object.prototype.hasOwnProperty.call(W,G)},Pv=function(W){let G=Array.prototype.slice.call(arguments,1);while(G.length){let X=G.shift();if(!X)continue;if(typeof X!=="object")throw TypeError(X+"must be non-object");for(let Y in X)if(Tv(X,Y))W[Y]=X[Y]}return W},Rv=(W)=>{let G=0;for(let Y=0,Z=W.length;Y<Z;Y++)G+=W[Y].length;let X=new Uint8Array(G);for(let Y=0,Z=0,V=W.length;Y<V;Y++){let Q=W[Y];X.set(Q,Z),Z+=Q.length}return X},iJ={assign:Pv,flattenChunks:Rv},DD=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(W){DD=!1}var PZ=new Uint8Array(256);for(let W=0;W<256;W++)PZ[W]=W>=252?6:W>=248?5:W>=240?4:W>=224?3:W>=192?2:1;PZ[254]=PZ[254]=1;var Lv=(W)=>{if(typeof TextEncoder==="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(W);let G,X,Y,Z,V,Q=W.length,J=0;for(Z=0;Z<Q;Z++){if(X=W.charCodeAt(Z),(X&64512)===55296&&Z+1<Q){if(Y=W.charCodeAt(Z+1),(Y&64512)===56320)X=65536+(X-55296<<10)+(Y-56320),Z++}J+=X<128?1:X<2048?2:X<65536?3:4}G=new Uint8Array(J);for(V=0,Z=0;V<J;Z++){if(X=W.charCodeAt(Z),(X&64512)===55296&&Z+1<Q){if(Y=W.charCodeAt(Z+1),(Y&64512)===56320)X=65536+(X-55296<<10)+(Y-56320),Z++}if(X<128)G[V++]=X;else if(X<2048)G[V++]=192|X>>>6,G[V++]=128|X&63;else if(X<65536)G[V++]=224|X>>>12,G[V++]=128|X>>>6&63,G[V++]=128|X&63;else G[V++]=240|X>>>18,G[V++]=128|X>>>12&63,G[V++]=128|X>>>6&63,G[V++]=128|X&63}return G},Bv=(W,G)=>{if(G<65534){if(W.subarray&&DD)return String.fromCharCode.apply(null,W.length===G?W:W.subarray(0,G))}let X="";for(let Y=0;Y<G;Y++)X+=String.fromCharCode(W[Y]);return X},Ev=(W,G)=>{let X=G||W.length;if(typeof TextDecoder==="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(W.subarray(0,G));let Y,Z,V=Array(X*2);for(Z=0,Y=0;Y<X;){let Q=W[Y++];if(Q<128){V[Z++]=Q;continue}let J=PZ[Q];if(J>4){V[Z++]=65533,Y+=J-1;continue}Q&=J===2?31:J===3?15:7;while(J>1&&Y<X)Q=Q<<6|W[Y++]&63,J--;if(J>1){V[Z++]=65533;continue}if(Q<65536)V[Z++]=Q;else Q-=65536,V[Z++]=55296|Q>>10&1023,V[Z++]=56320|Q&1023}return Bv(V,Z)},$v=(W,G)=>{if(G=G||W.length,G>W.length)G=W.length;let X=G-1;while(X>=0&&(W[X]&192)===128)X--;if(X<0)return G;if(X===0)return G;return X+PZ[W[X]]>G?X:G},RZ={string2buf:Lv,buf2string:Ev,utf8border:$v};function Fv(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var MD=Fv,TD=Object.prototype.toString,{Z_NO_FLUSH:Sv,Z_SYNC_FLUSH:xv,Z_FULL_FLUSH:kv,Z_FINISH:_v,Z_OK:dJ,Z_STREAM_END:yv,Z_DEFAULT_COMPRESSION:vv,Z_DEFAULT_STRATEGY:gv,Z_DEFLATED:uv}=KW;function $Z(W){this.options=iJ.assign({level:vv,method:uv,chunkSize:16384,windowBits:15,memLevel:8,strategy:gv},W||{});let G=this.options;if(G.raw&&G.windowBits>0)G.windowBits=-G.windowBits;else if(G.gzip&&G.windowBits>0&&G.windowBits<16)G.windowBits+=16;this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new MD,this.strm.avail_out=0;let X=jZ.deflateInit2(this.strm,G.level,G.method,G.windowBits,G.memLevel,G.strategy);if(X!==dJ)throw Error(wW[X]);if(G.header)jZ.deflateSetHeader(this.strm,G.header);if(G.dictionary){let Y;if(typeof G.dictionary==="string")Y=RZ.string2buf(G.dictionary);else if(TD.call(G.dictionary)==="[object ArrayBuffer]")Y=new Uint8Array(G.dictionary);else Y=G.dictionary;if(X=jZ.deflateSetDictionary(this.strm,Y),X!==dJ)throw Error(wW[X]);this._dict_set=!0}}$Z.prototype.push=function(W,G){let X=this.strm,Y=this.options.chunkSize,Z,V;if(this.ended)return!1;if(G===~~G)V=G;else V=G===!0?_v:Sv;if(typeof W==="string")X.input=RZ.string2buf(W);else if(TD.call(W)==="[object ArrayBuffer]")X.input=new Uint8Array(W);else X.input=W;X.next_in=0,X.avail_in=X.input.length;for(;;){if(X.avail_out===0)X.output=new Uint8Array(Y),X.next_out=0,X.avail_out=Y;if((V===xv||V===kv)&&X.avail_out<=6){this.onData(X.output.subarray(0,X.next_out)),X.avail_out=0;continue}if(Z=jZ.deflate(X,V),Z===yv){if(X.next_out>0)this.onData(X.output.subarray(0,X.next_out));return Z=jZ.deflateEnd(this.strm),this.onEnd(Z),this.ended=!0,Z===dJ}if(X.avail_out===0){this.onData(X.output);continue}if(V>0&&X.next_out>0){this.onData(X.output.subarray(0,X.next_out)),X.avail_out=0;continue}if(X.avail_in===0)break}return!0};$Z.prototype.onData=function(W){this.chunks.push(W)};$Z.prototype.onEnd=function(W){if(W===dJ)this.result=iJ.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};function cA(W,G){let X=new $Z(G);if(X.push(W,!0),X.err)throw X.msg||wW[X.err];return X.result}function hv(W,G){return G=G||{},G.raw=!0,cA(W,G)}function bv(W,G){return G=G||{},G.gzip=!0,cA(W,G)}var mv=$Z,fv=cA,cv=hv,pv=bv,lv=KW,dv={Deflate:mv,deflate:fv,deflateRaw:cv,gzip:pv,constants:lv},bJ=16209,ov=16191,nv=function(G,X){let Y,Z,V,Q,J,U,q,N,A,H,I,w,C,D,x,h,p,u,n,c,l,G0,m,Y0,U0=G.state;Y=G.next_in,m=G.input,Z=Y+(G.avail_in-5),V=G.next_out,Y0=G.output,Q=V-(X-G.avail_out),J=V+(G.avail_out-257),U=U0.dmax,q=U0.wsize,N=U0.whave,A=U0.wnext,H=U0.window,I=U0.hold,w=U0.bits,C=U0.lencode,D=U0.distcode,x=(1<<U0.lenbits)-1,h=(1<<U0.distbits)-1;W:do{if(w<15)I+=m[Y++]<<w,w+=8,I+=m[Y++]<<w,w+=8;p=C[I&x];G:for(;;){if(u=p>>>24,I>>>=u,w-=u,u=p>>>16&255,u===0)Y0[V++]=p&65535;else if(u&16){if(n=p&65535,u&=15,u){if(w<u)I+=m[Y++]<<w,w+=8;n+=I&(1<<u)-1,I>>>=u,w-=u}if(w<15)I+=m[Y++]<<w,w+=8,I+=m[Y++]<<w,w+=8;p=D[I&h];X:for(;;){if(u=p>>>24,I>>>=u,w-=u,u=p>>>16&255,u&16){if(c=p&65535,u&=15,w<u){if(I+=m[Y++]<<w,w+=8,w<u)I+=m[Y++]<<w,w+=8}if(c+=I&(1<<u)-1,c>U){G.msg="invalid distance too far back",U0.mode=bJ;break W}if(I>>>=u,w-=u,u=V-Q,c>u){if(u=c-u,u>N){if(U0.sane){G.msg="invalid distance too far back",U0.mode=bJ;break W}}if(l=0,G0=H,A===0){if(l+=q-u,u<n){n-=u;do Y0[V++]=H[l++];while(--u);l=V-c,G0=Y0}}else if(A<u){if(l+=q+A-u,u-=A,u<n){n-=u;do Y0[V++]=H[l++];while(--u);if(l=0,A<n){u=A,n-=u;do Y0[V++]=H[l++];while(--u);l=V-c,G0=Y0}}}else if(l+=A-u,u<n){n-=u;do Y0[V++]=H[l++];while(--u);l=V-c,G0=Y0}while(n>2)Y0[V++]=G0[l++],Y0[V++]=G0[l++],Y0[V++]=G0[l++],n-=3;if(n){if(Y0[V++]=G0[l++],n>1)Y0[V++]=G0[l++]}}else{l=V-c;do Y0[V++]=Y0[l++],Y0[V++]=Y0[l++],Y0[V++]=Y0[l++],n-=3;while(n>2);if(n){if(Y0[V++]=Y0[l++],n>1)Y0[V++]=Y0[l++]}}}else if((u&64)===0){p=D[(p&65535)+(I&(1<<u)-1)];continue X}else{G.msg="invalid distance code",U0.mode=bJ;break W}break}}else if((u&64)===0){p=C[(p&65535)+(I&(1<<u)-1)];continue G}else if(u&32){U0.mode=ov;break W}else{G.msg="invalid literal/length code",U0.mode=bJ;break W}break}}while(Y<Z&&V<J);n=w>>3,Y-=n,w-=n<<3,I&=(1<<w)-1,G.next_in=Y,G.next_out=V,G.avail_in=Y<Z?5+(Z-Y):5-(Y-Z),G.avail_out=V<J?257+(J-V):257-(V-J),U0.hold=I,U0.bits=w;return},nG=15,RC=852,LC=592,BC=0,DA=1,EC=2,iv=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),rv=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),av=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),sv=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),tv=(W,G,X,Y,Z,V,Q,J)=>{let U=J.bits,q=0,N=0,A=0,H=0,I=0,w=0,C=0,D=0,x=0,h=0,p,u,n,c,l,G0=null,m,Y0=new Uint16Array(nG+1),U0=new Uint16Array(nG+1),y=null,o,B,R;for(q=0;q<=nG;q++)Y0[q]=0;for(N=0;N<Y;N++)Y0[G[X+N]]++;I=U;for(H=nG;H>=1;H--)if(Y0[H]!==0)break;if(I>H)I=H;if(H===0)return Z[V++]=20971520,Z[V++]=20971520,J.bits=1,0;for(A=1;A<H;A++)if(Y0[A]!==0)break;if(I<A)I=A;D=1;for(q=1;q<=nG;q++)if(D<<=1,D-=Y0[q],D<0)return-1;if(D>0&&(W===BC||H!==1))return-1;U0[1]=0;for(q=1;q<nG;q++)U0[q+1]=U0[q]+Y0[q];for(N=0;N<Y;N++)if(G[X+N]!==0)Q[U0[G[X+N]]++]=N;if(W===BC)G0=y=Q,m=20;else if(W===DA)G0=iv,y=rv,m=257;else G0=av,y=sv,m=0;if(h=0,N=0,q=A,l=V,w=I,C=0,n=-1,x=1<<I,c=x-1,W===DA&&x>RC||W===EC&&x>LC)return 1;for(;;){if(o=q-C,Q[N]+1<m)B=0,R=Q[N];else if(Q[N]>=m)B=y[Q[N]-m],R=G0[Q[N]-m];else B=96,R=0;p=1<<q-C,u=1<<w,A=u;do u-=p,Z[l+(h>>C)+u]=o<<24|B<<16|R|0;while(u!==0);p=1<<q-1;while(h&p)p>>=1;if(p!==0)h&=p-1,h+=p;else h=0;if(N++,--Y0[q]===0){if(q===H)break;q=G[X+Q[N]]}if(q>I&&(h&c)!==n){if(C===0)C=I;l+=A,w=q-C,D=1<<w;while(w+C<H){if(D-=Y0[w+C],D<=0)break;w++,D<<=1}if(x+=1<<w,W===DA&&x>RC||W===EC&&x>LC)return 1;n=h&c,Z[n]=I<<24|w<<16|l-V|0}}if(h!==0)Z[l+h]=q-C<<24|4194304|0;return J.bits=I,0},OZ=tv,ev=0,PD=1,RD=2,{Z_FINISH:$C,Z_BLOCK:Wg,Z_TREES:mJ,Z_OK:OW,Z_STREAM_END:Gg,Z_NEED_DICT:Xg,Z_STREAM_ERROR:z5,Z_DATA_ERROR:LD,Z_MEM_ERROR:BD,Z_BUF_ERROR:Yg,Z_DEFLATED:FC}=KW,rJ=16180,SC=16181,xC=16182,kC=16183,_C=16184,yC=16185,vC=16186,gC=16187,uC=16188,hC=16189,oJ=16190,i7=16191,MA=16192,bC=16193,TA=16194,mC=16195,fC=16196,cC=16197,pC=16198,fJ=16199,cJ=16200,lC=16201,dC=16202,oC=16203,nC=16204,iC=16205,PA=16206,rC=16207,aC=16208,N8=16209,ED=16210,$D=16211,Zg=852,Vg=592,Qg=15,Jg=Qg,sC=(W)=>{return(W>>>24&255)+(W>>>8&65280)+((W&65280)<<8)+((W&255)<<24)};function Ug(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var CW=(W)=>{if(!W)return 1;let G=W.state;if(!G||G.strm!==W||G.mode<rJ||G.mode>$D)return 1;return 0},FD=(W)=>{if(CW(W))return z5;let G=W.state;if(W.total_in=W.total_out=G.total=0,W.msg="",G.wrap)W.adler=G.wrap&1;return G.mode=rJ,G.last=0,G.havedict=0,G.flags=-1,G.dmax=32768,G.head=null,G.hold=0,G.bits=0,G.lencode=G.lendyn=new Int32Array(Zg),G.distcode=G.distdyn=new Int32Array(Vg),G.sane=1,G.back=-1,OW},SD=(W)=>{if(CW(W))return z5;let G=W.state;return G.wsize=0,G.whave=0,G.wnext=0,FD(W)},xD=(W,G)=>{let X;if(CW(W))return z5;let Y=W.state;if(G<0)X=0,G=-G;else if(X=(G>>4)+5,G<48)G&=15;if(G&&(G<8||G>15))return z5;if(Y.window!==null&&Y.wbits!==G)Y.window=null;return Y.wrap=X,Y.wbits=G,SD(W)},kD=(W,G)=>{if(!W)return z5;let X=new Ug;W.state=X,X.strm=W,X.window=null,X.mode=rJ;let Y=xD(W,G);if(Y!==OW)W.state=null;return Y},qg=(W)=>{return kD(W,Jg)},tC=!0,RA,LA,Ng=(W)=>{if(tC){RA=new Int32Array(512),LA=new Int32Array(32);let G=0;while(G<144)W.lens[G++]=8;while(G<256)W.lens[G++]=9;while(G<280)W.lens[G++]=7;while(G<288)W.lens[G++]=8;OZ(PD,W.lens,0,288,RA,0,W.work,{bits:9}),G=0;while(G<32)W.lens[G++]=5;OZ(RD,W.lens,0,32,LA,0,W.work,{bits:5}),tC=!1}W.lencode=RA,W.lenbits=9,W.distcode=LA,W.distbits=5},_D=(W,G,X,Y)=>{let Z,V=W.state;if(V.window===null)V.wsize=1<<V.wbits,V.wnext=0,V.whave=0,V.window=new Uint8Array(V.wsize);if(Y>=V.wsize)V.window.set(G.subarray(X-V.wsize,X),0),V.wnext=0,V.whave=V.wsize;else{if(Z=V.wsize-V.wnext,Z>Y)Z=Y;if(V.window.set(G.subarray(X-Y,X-Y+Z),V.wnext),Y-=Z,Y)V.window.set(G.subarray(X-Y,X),0),V.wnext=Y,V.whave=V.wsize;else{if(V.wnext+=Z,V.wnext===V.wsize)V.wnext=0;if(V.whave<V.wsize)V.whave+=Z}}return 0},Hg=(W,G)=>{let X,Y,Z,V,Q,J,U,q,N,A,H,I,w,C,D=0,x,h,p,u,n,c,l,G0,m=new Uint8Array(4),Y0,U0,y=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(CW(W)||!W.output||!W.input&&W.avail_in!==0)return z5;if(X=W.state,X.mode===i7)X.mode=MA;Q=W.next_out,Z=W.output,U=W.avail_out,V=W.next_in,Y=W.input,J=W.avail_in,q=X.hold,N=X.bits,A=J,H=U,G0=OW;W:for(;;)switch(X.mode){case rJ:if(X.wrap===0){X.mode=MA;break}while(N<16){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.wrap&2&&q===35615){if(X.wbits===0)X.wbits=15;X.check=0,m[0]=q&255,m[1]=q>>>8&255,X.check=d8(X.check,m,2,0),q=0,N=0,X.mode=SC;break}if(X.head)X.head.done=!1;if(!(X.wrap&1)||(((q&255)<<8)+(q>>8))%31){W.msg="incorrect header check",X.mode=N8;break}if((q&15)!==FC){W.msg="unknown compression method",X.mode=N8;break}if(q>>>=4,N-=4,l=(q&15)+8,X.wbits===0)X.wbits=l;if(l>15||l>X.wbits){W.msg="invalid window size",X.mode=N8;break}X.dmax=1<<X.wbits,X.flags=0,W.adler=X.check=1,X.mode=q&512?hC:i7,q=0,N=0;break;case SC:while(N<16){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.flags=q,(X.flags&255)!==FC){W.msg="unknown compression method",X.mode=N8;break}if(X.flags&57344){W.msg="unknown header flags set",X.mode=N8;break}if(X.head)X.head.text=q>>8&1;if(X.flags&512&&X.wrap&4)m[0]=q&255,m[1]=q>>>8&255,X.check=d8(X.check,m,2,0);q=0,N=0,X.mode=xC;case xC:while(N<32){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.head)X.head.time=q;if(X.flags&512&&X.wrap&4)m[0]=q&255,m[1]=q>>>8&255,m[2]=q>>>16&255,m[3]=q>>>24&255,X.check=d8(X.check,m,4,0);q=0,N=0,X.mode=kC;case kC:while(N<16){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.head)X.head.xflags=q&255,X.head.os=q>>8;if(X.flags&512&&X.wrap&4)m[0]=q&255,m[1]=q>>>8&255,X.check=d8(X.check,m,2,0);q=0,N=0,X.mode=_C;case _C:if(X.flags&1024){while(N<16){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.length=q,X.head)X.head.extra_len=q;if(X.flags&512&&X.wrap&4)m[0]=q&255,m[1]=q>>>8&255,X.check=d8(X.check,m,2,0);q=0,N=0}else if(X.head)X.head.extra=null;X.mode=yC;case yC:if(X.flags&1024){if(I=X.length,I>J)I=J;if(I){if(X.head){if(l=X.head.extra_len-X.length,!X.head.extra)X.head.extra=new Uint8Array(X.head.extra_len);X.head.extra.set(Y.subarray(V,V+I),l)}if(X.flags&512&&X.wrap&4)X.check=d8(X.check,Y,I,V);J-=I,V+=I,X.length-=I}if(X.length)break W}X.length=0,X.mode=vC;case vC:if(X.flags&2048){if(J===0)break W;I=0;do if(l=Y[V+I++],X.head&&l&&X.length<65536)X.head.name+=String.fromCharCode(l);while(l&&I<J);if(X.flags&512&&X.wrap&4)X.check=d8(X.check,Y,I,V);if(J-=I,V+=I,l)break W}else if(X.head)X.head.name=null;X.length=0,X.mode=gC;case gC:if(X.flags&4096){if(J===0)break W;I=0;do if(l=Y[V+I++],X.head&&l&&X.length<65536)X.head.comment+=String.fromCharCode(l);while(l&&I<J);if(X.flags&512&&X.wrap&4)X.check=d8(X.check,Y,I,V);if(J-=I,V+=I,l)break W}else if(X.head)X.head.comment=null;X.mode=uC;case uC:if(X.flags&512){while(N<16){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.wrap&4&&q!==(X.check&65535)){W.msg="header crc mismatch",X.mode=N8;break}q=0,N=0}if(X.head)X.head.hcrc=X.flags>>9&1,X.head.done=!0;W.adler=X.check=0,X.mode=i7;break;case hC:while(N<32){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}W.adler=X.check=sC(q),q=0,N=0,X.mode=oJ;case oJ:if(X.havedict===0)return W.next_out=Q,W.avail_out=U,W.next_in=V,W.avail_in=J,X.hold=q,X.bits=N,Xg;W.adler=X.check=1,X.mode=i7;case i7:if(G===Wg||G===mJ)break W;case MA:if(X.last){q>>>=N&7,N-=N&7,X.mode=PA;break}while(N<3){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}switch(X.last=q&1,q>>>=1,N-=1,q&3){case 0:X.mode=bC;break;case 1:if(Ng(X),X.mode=fJ,G===mJ){q>>>=2,N-=2;break W}break;case 2:X.mode=fC;break;case 3:W.msg="invalid block type",X.mode=N8}q>>>=2,N-=2;break;case bC:q>>>=N&7,N-=N&7;while(N<32){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if((q&65535)!==(q>>>16^65535)){W.msg="invalid stored block lengths",X.mode=N8;break}if(X.length=q&65535,q=0,N=0,X.mode=TA,G===mJ)break W;case TA:X.mode=mC;case mC:if(I=X.length,I){if(I>J)I=J;if(I>U)I=U;if(I===0)break W;Z.set(Y.subarray(V,V+I),Q),J-=I,V+=I,U-=I,Q+=I,X.length-=I;break}X.mode=i7;break;case fC:while(N<14){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.nlen=(q&31)+257,q>>>=5,N-=5,X.ndist=(q&31)+1,q>>>=5,N-=5,X.ncode=(q&15)+4,q>>>=4,N-=4,X.nlen>286||X.ndist>30){W.msg="too many length or distance symbols",X.mode=N8;break}X.have=0,X.mode=cC;case cC:while(X.have<X.ncode){while(N<3){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}X.lens[y[X.have++]]=q&7,q>>>=3,N-=3}while(X.have<19)X.lens[y[X.have++]]=0;if(X.lencode=X.lendyn,X.lenbits=7,Y0={bits:X.lenbits},G0=OZ(ev,X.lens,0,19,X.lencode,0,X.work,Y0),X.lenbits=Y0.bits,G0){W.msg="invalid code lengths set",X.mode=N8;break}X.have=0,X.mode=pC;case pC:while(X.have<X.nlen+X.ndist){for(;;){if(D=X.lencode[q&(1<<X.lenbits)-1],x=D>>>24,h=D>>>16&255,p=D&65535,x<=N)break;if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(p<16)q>>>=x,N-=x,X.lens[X.have++]=p;else{if(p===16){U0=x+2;while(N<U0){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(q>>>=x,N-=x,X.have===0){W.msg="invalid bit length repeat",X.mode=N8;break}l=X.lens[X.have-1],I=3+(q&3),q>>>=2,N-=2}else if(p===17){U0=x+3;while(N<U0){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}q>>>=x,N-=x,l=0,I=3+(q&7),q>>>=3,N-=3}else{U0=x+7;while(N<U0){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}q>>>=x,N-=x,l=0,I=11+(q&127),q>>>=7,N-=7}if(X.have+I>X.nlen+X.ndist){W.msg="invalid bit length repeat",X.mode=N8;break}while(I--)X.lens[X.have++]=l}}if(X.mode===N8)break;if(X.lens[256]===0){W.msg="invalid code -- missing end-of-block",X.mode=N8;break}if(X.lenbits=9,Y0={bits:X.lenbits},G0=OZ(PD,X.lens,0,X.nlen,X.lencode,0,X.work,Y0),X.lenbits=Y0.bits,G0){W.msg="invalid literal/lengths set",X.mode=N8;break}if(X.distbits=6,X.distcode=X.distdyn,Y0={bits:X.distbits},G0=OZ(RD,X.lens,X.nlen,X.ndist,X.distcode,0,X.work,Y0),X.distbits=Y0.bits,G0){W.msg="invalid distances set",X.mode=N8;break}if(X.mode=fJ,G===mJ)break W;case fJ:X.mode=cJ;case cJ:if(J>=6&&U>=258){if(W.next_out=Q,W.avail_out=U,W.next_in=V,W.avail_in=J,X.hold=q,X.bits=N,nv(W,H),Q=W.next_out,Z=W.output,U=W.avail_out,V=W.next_in,Y=W.input,J=W.avail_in,q=X.hold,N=X.bits,X.mode===i7)X.back=-1;break}X.back=0;for(;;){if(D=X.lencode[q&(1<<X.lenbits)-1],x=D>>>24,h=D>>>16&255,p=D&65535,x<=N)break;if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(h&&(h&240)===0){u=x,n=h,c=p;for(;;){if(D=X.lencode[c+((q&(1<<u+n)-1)>>u)],x=D>>>24,h=D>>>16&255,p=D&65535,u+x<=N)break;if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}q>>>=u,N-=u,X.back+=u}if(q>>>=x,N-=x,X.back+=x,X.length=p,h===0){X.mode=iC;break}if(h&32){X.back=-1,X.mode=i7;break}if(h&64){W.msg="invalid literal/length code",X.mode=N8;break}X.extra=h&15,X.mode=lC;case lC:if(X.extra){U0=X.extra;while(N<U0){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}X.length+=q&(1<<X.extra)-1,q>>>=X.extra,N-=X.extra,X.back+=X.extra}X.was=X.length,X.mode=dC;case dC:for(;;){if(D=X.distcode[q&(1<<X.distbits)-1],x=D>>>24,h=D>>>16&255,p=D&65535,x<=N)break;if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if((h&240)===0){u=x,n=h,c=p;for(;;){if(D=X.distcode[c+((q&(1<<u+n)-1)>>u)],x=D>>>24,h=D>>>16&255,p=D&65535,u+x<=N)break;if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}q>>>=u,N-=u,X.back+=u}if(q>>>=x,N-=x,X.back+=x,h&64){W.msg="invalid distance code",X.mode=N8;break}X.offset=p,X.extra=h&15,X.mode=oC;case oC:if(X.extra){U0=X.extra;while(N<U0){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}X.offset+=q&(1<<X.extra)-1,q>>>=X.extra,N-=X.extra,X.back+=X.extra}if(X.offset>X.dmax){W.msg="invalid distance too far back",X.mode=N8;break}X.mode=nC;case nC:if(U===0)break W;if(I=H-U,X.offset>I){if(I=X.offset-I,I>X.whave){if(X.sane){W.msg="invalid distance too far back",X.mode=N8;break}}if(I>X.wnext)I-=X.wnext,w=X.wsize-I;else w=X.wnext-I;if(I>X.length)I=X.length;C=X.window}else C=Z,w=Q-X.offset,I=X.length;if(I>U)I=U;U-=I,X.length-=I;do Z[Q++]=C[w++];while(--I);if(X.length===0)X.mode=cJ;break;case iC:if(U===0)break W;Z[Q++]=X.length,U--,X.mode=cJ;break;case PA:if(X.wrap){while(N<32){if(J===0)break W;J--,q|=Y[V++]<<N,N+=8}if(H-=U,W.total_out+=H,X.total+=H,X.wrap&4&&H)W.adler=X.check=X.flags?d8(X.check,Z,H,Q-H):TZ(X.check,Z,H,Q-H);if(H=U,X.wrap&4&&(X.flags?q:sC(q))!==X.check){W.msg="incorrect data check",X.mode=N8;break}q=0,N=0}X.mode=rC;case rC:if(X.wrap&&X.flags){while(N<32){if(J===0)break W;J--,q+=Y[V++]<<N,N+=8}if(X.wrap&4&&q!==(X.total&4294967295)){W.msg="incorrect length check",X.mode=N8;break}q=0,N=0}X.mode=aC;case aC:G0=Gg;break W;case N8:G0=LD;break W;case ED:return BD;case $D:default:return z5}if(W.next_out=Q,W.avail_out=U,W.next_in=V,W.avail_in=J,X.hold=q,X.bits=N,X.wsize||H!==W.avail_out&&X.mode<N8&&(X.mode<PA||G!==$C)){if(_D(W,W.output,W.next_out,H-W.avail_out));}if(A-=W.avail_in,H-=W.avail_out,W.total_in+=A,W.total_out+=H,X.total+=H,X.wrap&4&&H)W.adler=X.check=X.flags?d8(X.check,Z,H,W.next_out-H):TZ(X.check,Z,H,W.next_out-H);if(W.data_type=X.bits+(X.last?64:0)+(X.mode===i7?128:0)+(X.mode===fJ||X.mode===TA?256:0),(A===0&&H===0||G===$C)&&G0===OW)G0=Yg;return G0},Ag=(W)=>{if(CW(W))return z5;let G=W.state;if(G.window)G.window=null;return W.state=null,OW},zg=(W,G)=>{if(CW(W))return z5;let X=W.state;if((X.wrap&2)===0)return z5;return X.head=G,G.done=!1,OW},Ig=(W,G)=>{let X=G.length,Y,Z,V;if(CW(W))return z5;if(Y=W.state,Y.wrap!==0&&Y.mode!==oJ)return z5;if(Y.mode===oJ){if(Z=1,Z=TZ(Z,G,X,0),Z!==Y.check)return LD}if(V=_D(W,G,X,X),V)return Y.mode=ED,BD;return Y.havedict=1,OW},wg=SD,jg=xD,Og=FD,Kg=qg,Cg=kD,Dg=Hg,Mg=Ag,Tg=zg,Pg=Ig,Rg="pako inflate (from Nodeca project)",a7={inflateReset:wg,inflateReset2:jg,inflateResetKeep:Og,inflateInit:Kg,inflateInit2:Cg,inflate:Dg,inflateEnd:Mg,inflateGetHeader:Tg,inflateSetDictionary:Pg,inflateInfo:Rg};function Lg(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var Bg=Lg,yD=Object.prototype.toString,{Z_NO_FLUSH:Eg,Z_FINISH:$g,Z_OK:LZ,Z_STREAM_END:BA,Z_NEED_DICT:EA,Z_STREAM_ERROR:Fg,Z_DATA_ERROR:eC,Z_MEM_ERROR:Sg}=KW;function FZ(W){this.options=iJ.assign({chunkSize:65536,windowBits:15,to:""},W||{});let G=this.options;if(G.raw&&G.windowBits>=0&&G.windowBits<16){if(G.windowBits=-G.windowBits,G.windowBits===0)G.windowBits=-15}if(G.windowBits>=0&&G.windowBits<16&&!(W&&W.windowBits))G.windowBits+=32;if(G.windowBits>15&&G.windowBits<48){if((G.windowBits&15)===0)G.windowBits|=15}this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new MD,this.strm.avail_out=0;let X=a7.inflateInit2(this.strm,G.windowBits);if(X!==LZ)throw Error(wW[X]);if(this.header=new Bg,a7.inflateGetHeader(this.strm,this.header),G.dictionary){if(typeof G.dictionary==="string")G.dictionary=RZ.string2buf(G.dictionary);else if(yD.call(G.dictionary)==="[object ArrayBuffer]")G.dictionary=new Uint8Array(G.dictionary);if(G.raw){if(X=a7.inflateSetDictionary(this.strm,G.dictionary),X!==LZ)throw Error(wW[X])}}}FZ.prototype.push=function(W,G){let X=this.strm,Y=this.options.chunkSize,Z=this.options.dictionary,V,Q,J;if(this.ended)return!1;if(G===~~G)Q=G;else Q=G===!0?$g:Eg;if(yD.call(W)==="[object ArrayBuffer]")X.input=new Uint8Array(W);else X.input=W;X.next_in=0,X.avail_in=X.input.length;for(;;){if(X.avail_out===0)X.output=new Uint8Array(Y),X.next_out=0,X.avail_out=Y;if(V=a7.inflate(X,Q),V===EA&&Z){if(V=a7.inflateSetDictionary(X,Z),V===LZ)V=a7.inflate(X,Q);else if(V===eC)V=EA}while(X.avail_in>0&&V===BA&&X.state.wrap>0&&W[X.next_in]!==0)a7.inflateReset(X),V=a7.inflate(X,Q);switch(V){case Fg:case eC:case EA:case Sg:return this.onEnd(V),this.ended=!0,!1}if(J=X.avail_out,X.next_out){if(X.avail_out===0||V===BA)if(this.options.to==="string"){let U=RZ.utf8border(X.output,X.next_out),q=X.next_out-U,N=RZ.buf2string(X.output,U);if(X.next_out=q,X.avail_out=Y-q,q)X.output.set(X.output.subarray(U,U+q),0);this.onData(N)}else this.onData(X.output.length===X.next_out?X.output:X.output.subarray(0,X.next_out))}if(V===LZ&&J===0)continue;if(V===BA)return V=a7.inflateEnd(this.strm),this.onEnd(V),this.ended=!0,!0;if(X.avail_in===0)break}return!0};FZ.prototype.onData=function(W){this.chunks.push(W)};FZ.prototype.onEnd=function(W){if(W===LZ)if(this.options.to==="string")this.result=this.chunks.join("");else this.result=iJ.flattenChunks(this.chunks);this.chunks=[],this.err=W,this.msg=this.strm.msg};function pA(W,G){let X=new FZ(G);if(X.push(W),X.err)throw X.msg||wW[X.err];return X.result}function xg(W,G){return G=G||{},G.raw=!0,pA(W,G)}var kg=FZ,_g=pA,yg=xg,vg=pA,gg=KW,ug={Inflate:kg,inflate:_g,inflateRaw:yg,ungzip:vg,constants:gg},{Deflate:hg,deflate:bg,deflateRaw:mg,gzip:fg}=dv,{Inflate:cg,inflate:pg,inflateRaw:lg,ungzip:dg}=ug,og=hg,ng=bg,ig=mg,rg=fg,ag=cg,sg=pg,tg=lg,eg=dg,Wu=KW,DW={Deflate:og,deflate:ng,deflateRaw:ig,gzip:rg,Inflate:ag,inflate:sg,inflateRaw:tg,ungzip:eg,constants:Wu};function vD(){let W=Date.now(),G=0;return{now(){return W=Math.max(W,Date.now()),G++,{physical:W,logical:G}},update(X){if(!X||typeof X.physical!=="number"||typeof X.logical!=="number")return;W=Math.max(W,X.physical),G=Math.max(G,X.logical)+1},compare(X,Y){if(!X&&!Y)return 0;if(!X)return-1;if(!Y)return 1;if(X.physical!==Y.physical)return X.physical>Y.physical?1:-1;if(X.logical!==Y.logical)return X.logical>Y.logical?1:-1;return 0}}}function gD(W,G,X){let Y=G.timestamp;if(Y?.physical>Date.now()+7200000)Y={physical:Date.now()+7200000,logical:Y.logical};if(G?.value?.priority===!0&&typeof G.id==="string"&&G.id.startsWith("user:")&&"role"in G.value){let{priority:Z,...V}=G.value;return{resolved:!0,value:V,timestamp:Y}}if(G?.value?.priority!==void 0){let{priority:Z,...V}=G.value;G={...G,value:V}}if(!W?.timestamp)return{resolved:!0,value:G.value,timestamp:Y};if(X.compare(Y,W.timestamp)<=0)return{resolved:!1};return{resolved:!0,value:G.value,timestamp:Y}}var SZ={$eq:(W,G)=>W===G,$ne:(W,G)=>W!==G,$gt:(W,G)=>W>G,$gte:(W,G)=>W>=G,$lt:(W,G)=>W<G,$lte:(W,G)=>W<=G,$in:(W,G)=>Array.isArray(G)&&(Array.isArray(W)?W.some((X)=>G.includes(X)):G.includes(W)),$between:(W,[G,X])=>W>=G&&W<=X,$exists:(W,G)=>G?W!==void 0:W===void 0,$startsWith:(W,G)=>typeof W==="string"&&W.startsWith(G),$endsWith:(W,G)=>typeof W==="string"&&W.endsWith(G),$contains:(W,G)=>typeof W==="string"&&W.includes(G),$text:{global:(W,G)=>{let X=(Z)=>String(Z).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=X(G);return Object.values(W).some((Z)=>typeof Z==="object"?null.fieldSearch(Z,Y):X(Z).includes(Y))},field:(W,G)=>{let X=(Z)=>String(Z).normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^\w\s]/g,""),Y=X(G);return Array.isArray(W)?W.some((Z)=>X(Z).includes(Y)):X(W).includes(Y)}},$like:(W,G)=>typeof W==="string"&&typeof G==="string"&&new RegExp(`^${G.replace(/%/g,".*").replace(/_/g,".")}$`,"i").test(W),$regex:(W,G)=>typeof W==="string"&&new RegExp(G.$regex||G,"i").test(W),$and:(W,G,X)=>G.every((Y)=>X.createFilter(Y,X.allNodes)(W)),$or:(W,G,X)=>G.some((Y)=>X.createFilter(Y,X.allNodes)(W)),$not:(W,G,X)=>!X.createFilter(G,X.allNodes)(W),$edge:(W,G,X)=>{if(!W.edges?.length||typeof G!=="object"||G===null)return!1;let Y=X.createFilter(G,X.allNodes),Z=[...W.edges],V=new Set(Z).add(W.id),Q=[];while(Z.length){let J=Z.shift(),U=X.allNodes[J];if(!U)continue;if(Y(U))Q.push(U);U.edges?.forEach((q)=>!V.has(q)&&V.add(q)&&Z.push(q))}if(Q.length)W._edgeResult=Q;return Q.length>0}},aJ=(W,G)=>G.split(".").reduce((X,Y)=>X&&typeof X==="object"&&(Y in X)?X[Y]:void 0,W),sJ=(W,G)=>{if(Object.keys(W).length===0)return()=>!0;return(X)=>Object.entries(W).every(([Y,Z])=>{if(Y.startsWith("$"))return SZ[Y](X,Z,{createFilter:sJ,allNodes:G});let V=aJ(X.value,Y);if(V===void 0)V=aJ(X,Y);if(typeof Z!=="object"||Z===null)return SZ.$eq(V,Z);return Object.entries(Z).every(([Q,J])=>{if(Q==="$text")return SZ.$text.field(V,J);if(Q==="$between"&&J.every((U)=>U instanceof Date))return SZ.$between(new Date(V),J);return SZ[Q]?.(V,J,{createFilter:sJ,allNodes:G})??!1})})},lA=(W,G)=>{let{$edge:X,...Y}=G.query||{},Z=sJ(Y,W),V=Object.values(W).filter(Z),J=[...X?(()=>{let U=sJ({$edge:X},W);V.forEach((N)=>U(N));let q=new Map;return V.forEach((N)=>{if(N._edgeResult)N._edgeResult.forEach((A)=>q.set(A.id,A)),delete N._edgeResult}),Array.from(q.values())})():V];if(G.field){let U=G.order==="asc"?1:-1;J.sort((q,N)=>{let A=aJ(q.value,G.field),H=aJ(N.value,G.field);if(typeof A==="string"&&typeof H==="string")return A.localeCompare(H)*U;return((A??0)-(H??0))*U})}if(G.$after){let U=J.findIndex((q)=>q.id===G.$after);J=U>=0?J.slice(U+1):[]}if(G.$before){let U=J.findIndex((q)=>q.id===G.$before);J=U>=0?J.slice(0,U):[]}if(G.$limit)J=J.slice(0,G.$limit);return J};var dA=(()=>{let W=()=>{};return new Proxy(console,{get:(G,X)=>globalThis.__gdbDebug?G[X].bind(G):W})})(),WX=typeof globalThis==="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function MU(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"}function Xz(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)}function BW(W,...G){if(!MU(W))throw Error("Uint8Array expected");if(G.length>0&&!G.includes(W.length))throw Error("Uint8Array expected of length "+G+", got length="+W.length)}function XM(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");Xz(W.outputLen),Xz(W.blockLen)}function NU(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function Gu(W,G){BW(W);let X=G.outputLen;if(W.length<X)throw Error("digestInto() expects output buffer of length at least "+X)}function HU(...W){for(let G=0;G<W.length;G++)W[G].fill(0)}function oA(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)}function N7(W,G){return W<<32-G|W>>>G}var YM=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),Xu=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function YX(W){if(BW(W),YM)return W.toHex();let G="";for(let X=0;X<W.length;X++)G+=Xu[W[X]];return G}var s7={_0:48,_9:57,A:65,F:70,a:97,f:102};function uD(W){if(W>=s7._0&&W<=s7._9)return W-s7._0;if(W>=s7.A&&W<=s7.F)return W-(s7.A-10);if(W>=s7.a&&W<=s7.f)return W-(s7.a-10);return}function AU(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);if(YM)return Uint8Array.fromHex(W);let G=W.length,X=G/2;if(G%2)throw Error("hex string expected, got unpadded hex of length "+G);let Y=new Uint8Array(X);for(let Z=0,V=0;Z<X;Z++,V+=2){let Q=uD(W.charCodeAt(V)),J=uD(W.charCodeAt(V+1));if(Q===void 0||J===void 0){let U=W[V]+W[V+1];throw Error('hex string expected, got non-hex character "'+U+'" at index '+V)}Y[Z]=Q*16+J}return Y}function ZM(W){if(typeof W!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(W))}function Hz(W){if(typeof W==="string")W=ZM(W);return BW(W),W}function H7(...W){let G=0;for(let Y=0;Y<W.length;Y++){let Z=W[Y];BW(Z),G+=Z.length}let X=new Uint8Array(G);for(let Y=0,Z=0;Y<W.length;Y++){let V=W[Y];X.set(V,Z),Z+=V.length}return X}class Az{}function Yu(W){let G=(Y)=>W().update(Hz(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function TU(W=32){if(WX&&typeof WX.getRandomValues==="function")return WX.getRandomValues(new Uint8Array(W));if(WX&&typeof WX.randomBytes==="function")return Uint8Array.from(WX.randomBytes(W));throw Error("crypto.getRandomValues must be defined")}function Zu(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let Z=BigInt(32),V=BigInt(4294967295),Q=Number(X>>Z&V),J=Number(X&V),U=Y?4:0,q=Y?0:4;W.setUint32(G+U,Q,Y),W.setUint32(G+q,J,Y)}function Vu(W,G,X){return W&G^~W&X}function Qu(W,G,X){return W&G^W&X^G&X}class VM extends Az{constructor(W,G,X,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.buffer=new Uint8Array(W),this.view=oA(this.buffer)}update(W){NU(this),W=Hz(W),BW(W);let{view:G,buffer:X,blockLen:Y}=this,Z=W.length;for(let V=0;V<Z;){let Q=Math.min(Y-this.pos,Z-V);if(Q===Y){let J=oA(W);for(;Y<=Z-V;V+=Y)this.process(J,V);continue}if(X.set(W.subarray(V,V+Q),this.pos),this.pos+=Q,V+=Q,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){NU(this),Gu(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:Z}=this,{pos:V}=this;if(G[V++]=128,HU(this.buffer.subarray(V)),this.padOffset>Y-V)this.process(X,0),V=0;for(let N=V;N<Y;N++)G[N]=0;Zu(X,Y-8,BigInt(this.length*8),Z),this.process(X,0);let Q=oA(W),J=this.outputLen;if(J%4)throw Error("_sha2: outputLen should be aligned to 32bit");let U=J/4,q=this.get();if(U>q.length)throw Error("_sha2: outputLen bigger than state");for(let N=0;N<U;N++)Q.setUint32(4*N,q[N],Z)}digest(){let{buffer:W,outputLen:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:Z,destroyed:V,pos:Q}=this;if(W.destroyed=V,W.finished=Z,W.length=Y,W.pos=Q,Y%G)W.buffer.set(X);return W}clone(){return this._cloneInto()}}var U6=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ju=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]),q6=new Uint32Array(64);class QM extends VM{constructor(W=32){super(64,W,8,!1);this.A=U6[0]|0,this.B=U6[1]|0,this.C=U6[2]|0,this.D=U6[3]|0,this.E=U6[4]|0,this.F=U6[5]|0,this.G=U6[6]|0,this.H=U6[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:Z,F:V,G:Q,H:J}=this;return[W,G,X,Y,Z,V,Q,J]}set(W,G,X,Y,Z,V,Q,J){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=Z|0,this.F=V|0,this.G=Q|0,this.H=J|0}process(W,G){for(let N=0;N<16;N++,G+=4)q6[N]=W.getUint32(G,!1);for(let N=16;N<64;N++){let A=q6[N-15],H=q6[N-2],I=N7(A,7)^N7(A,18)^A>>>3,w=N7(H,17)^N7(H,19)^H>>>10;q6[N]=w+q6[N-7]+I+q6[N-16]|0}let{A:X,B:Y,C:Z,D:V,E:Q,F:J,G:U,H:q}=this;for(let N=0;N<64;N++){let A=N7(Q,6)^N7(Q,11)^N7(Q,25),H=q+A+Vu(Q,J,U)+Ju[N]+q6[N]|0,I=(N7(X,2)^N7(X,13)^N7(X,22))+Qu(X,Y,Z)|0;q=U,U=J,J=Q,Q=V+H|0,V=Z,Z=Y,Y=X,X=H+I|0}X=X+this.A|0,Y=Y+this.B|0,Z=Z+this.C|0,V=V+this.D|0,Q=Q+this.E|0,J=J+this.F|0,U=U+this.G|0,q=q+this.H|0,this.set(X,Y,Z,V,Q,J,U,q)}roundClean(){HU(q6)}destroy(){this.set(0,0,0,0,0,0,0,0),HU(this.buffer)}}var Yz=Yu(()=>new QM);class zz extends Az{constructor(W,G){super();this.finished=!1,this.destroyed=!1,XM(W);let X=Hz(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,Z=new Uint8Array(Y);Z.set(X.length>Y?W.create().update(X).digest():X);for(let V=0;V<Z.length;V++)Z[V]^=54;this.iHash.update(Z),this.oHash=W.create();for(let V=0;V<Z.length;V++)Z[V]^=106;this.oHash.update(Z),HU(Z)}update(W){return NU(this),this.iHash.update(W),this}digestInto(W){NU(this),BW(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:Z,blockLen:V,outputLen:Q}=this;return W=W,W.finished=Y,W.destroyed=Z,W.blockLen=V,W.outputLen=Q,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var JM=(W,G,X)=>new zz(W,G).update(X).digest();JM.create=(W,G)=>new zz(W,G);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Iz=BigInt(0),Zz=BigInt(1);function zU(W,G=""){if(typeof W!=="boolean"){let X=G&&`"${G}"`;throw Error(X+"expected boolean, got type="+typeof W)}return W}function MW(W,G,X=""){let Y=MU(W),Z=W?.length,V=G!==void 0;if(!Y||V&&Z!==G){let Q=X&&`"${X}" `,J=V?` of length ${G}`:"",U=Y?`length=${Z}`:`type=${typeof W}`;throw Error(Q+"expected Uint8Array"+J+", got "+U)}return W}function tJ(W){let G=W.toString(16);return G.length&1?"0"+G:G}function UM(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return W===""?Iz:BigInt("0x"+W)}function UX(W){return UM(YX(W))}function qM(W){return BW(W),UM(YX(Uint8Array.from(W).reverse()))}function PU(W,G){return AU(W.toString(16).padStart(G*2,"0"))}function NM(W,G){return PU(W,G).reverse()}function u8(W,G,X){let Y;if(typeof G==="string")try{Y=AU(G)}catch(V){throw Error(W+" must be hex string or Uint8Array, cause: "+V)}else if(MU(G))Y=Uint8Array.from(G);else throw Error(W+" must be hex string or Uint8Array");let Z=Y.length;if(typeof X==="number"&&Z!==X)throw Error(W+" of length "+X+" expected, got "+Z);return Y}var nA=(W)=>typeof W==="bigint"&&Iz<=W;function Vz(W,G,X){return nA(W)&&nA(G)&&nA(X)&&G<=W&&W<X}function Uu(W,G,X,Y){if(!Vz(G,X,Y))throw Error("expected valid "+W+": "+X+" <= n < "+Y+", got "+G)}function HM(W){let G;for(G=0;W>Iz;W>>=Zz,G+=1);return G}var uZ=(W)=>(Zz<<BigInt(W))-Zz;function qu(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=(H)=>new Uint8Array(H),Z=(H)=>Uint8Array.of(H),V=Y(W),Q=Y(W),J=0,U=()=>{V.fill(1),Q.fill(0),J=0},q=(...H)=>X(Q,V,...H),N=(H=Y(0))=>{if(Q=q(Z(0),H),V=q(),H.length===0)return;Q=q(Z(1),H),V=q()},A=()=>{if(J++>=1000)throw Error("drbg: tried 1000 values");let H=0,I=[];while(H<G){V=q();let w=V.slice();I.push(w),H+=V.length}return H7(...I)};return(H,I)=>{U(),N(H);let w=void 0;while(!(w=I(A())))N();return U(),w}}function wz(W,G,X={}){if(!W||typeof W!=="object")throw Error("expected valid options object");function Y(Z,V,Q){let J=W[Z];if(Q&&J===void 0)return;let U=typeof J;if(U!==V||J===null)throw Error(`param "${Z}" is invalid: expected ${V}, got ${U}`)}Object.entries(G).forEach(([Z,V])=>Y(Z,V,!1)),Object.entries(X).forEach(([Z,V])=>Y(Z,V,!0))}function hD(W){let G=new WeakMap;return(X,...Y)=>{let Z=G.get(X);if(Z!==void 0)return Z;let V=W(X,...Y);return G.set(X,V),V}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var S9=BigInt(0),H9=BigInt(1),TW=BigInt(2),AM=BigInt(3),zM=BigInt(4),IM=BigInt(5),Nu=BigInt(7),wM=BigInt(8),Hu=BigInt(9),jM=BigInt(16);function w5(W,G){let X=W%G;return X>=S9?X:G+X}function I5(W,G,X){let Y=W;while(G-- >S9)Y*=Y,Y%=X;return Y}function bD(W,G){if(W===S9)throw Error("invert: expected non-zero number");if(G<=S9)throw Error("invert: expected positive modulus, got "+G);let X=w5(W,G),Y=G,Z=S9,V=H9,Q=H9,J=S9;while(X!==S9){let U=Y/X,q=Y%X,N=Z-Q*U,A=V-J*U;Y=X,X=q,Z=Q,V=J,Q=N,J=A}if(Y!==H9)throw Error("invert: does not exist");return w5(Z,G)}function jz(W,G,X){if(!W.eql(W.sqr(G),X))throw Error("Cannot find square root")}function OM(W,G){let X=(W.ORDER+H9)/zM,Y=W.pow(G,X);return jz(W,Y,G),Y}function Au(W,G){let X=(W.ORDER-IM)/wM,Y=W.mul(G,TW),Z=W.pow(Y,X),V=W.mul(G,Z),Q=W.mul(W.mul(V,TW),Z),J=W.mul(V,W.sub(Q,W.ONE));return jz(W,J,G),J}function zu(W){let G=hZ(W),X=KM(W),Y=X(G,G.neg(G.ONE)),Z=X(G,Y),V=X(G,G.neg(Y)),Q=(W+Nu)/jM;return(J,U)=>{let q=J.pow(U,Q),N=J.mul(q,Y),A=J.mul(q,Z),H=J.mul(q,V),I=J.eql(J.sqr(N),U),w=J.eql(J.sqr(A),U);q=J.cmov(q,N,I),N=J.cmov(H,A,w);let C=J.eql(J.sqr(N),U),D=J.cmov(q,N,C);return jz(J,D,U),D}}function KM(W){if(W<AM)throw Error("sqrt is not defined for small field");let G=W-H9,X=0;while(G%TW===S9)G/=TW,X++;let Y=TW,Z=hZ(W);while(mD(Z,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(X===1)return OM;let V=Z.pow(Y,G),Q=(G+H9)/TW;return function(J,U){if(J.is0(U))return U;if(mD(J,U)!==1)throw Error("Cannot find square root");let q=X,N=J.mul(J.ONE,V),A=J.pow(U,G),H=J.pow(U,Q);while(!J.eql(A,J.ONE)){if(J.is0(A))return J.ZERO;let I=1,w=J.sqr(A);while(!J.eql(w,J.ONE))if(I++,w=J.sqr(w),I===q)throw Error("Cannot find square root");let C=H9<<BigInt(q-I-1),D=J.pow(N,C);q=I,N=J.sqr(D),A=J.mul(A,N),H=J.mul(H,D)}return H}}function Iu(W){if(W%zM===AM)return OM;if(W%wM===IM)return Au;if(W%jM===Hu)return zu(W);return KM(W)}var wu=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ju(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},X=wu.reduce((Y,Z)=>{return Y[Z]="function",Y},G);return wz(W,X),W}function Ou(W,G,X){if(X<S9)throw Error("invalid exponent, negatives unsupported");if(X===S9)return W.ONE;if(X===H9)return G;let Y=W.ONE,Z=G;while(X>S9){if(X&H9)Y=W.mul(Y,Z);Z=W.sqr(Z),X>>=H9}return Y}function CM(W,G,X=!1){let Y=Array(G.length).fill(X?W.ZERO:void 0),Z=G.reduce((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=Q,W.mul(Q,J)},W.ONE),V=W.inv(Z);return G.reduceRight((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=W.mul(Q,Y[U]),W.mul(Q,J)},V),Y}function mD(W,G){let X=(W.ORDER-H9)/TW,Y=W.pow(G,X),Z=W.eql(Y,W.ONE),V=W.eql(Y,W.ZERO),Q=W.eql(Y,W.neg(W.ONE));if(!Z&&!V&&!Q)throw Error("invalid Legendre symbol result");return Z?1:V?0:-1}function DM(W,G){if(G!==void 0)Xz(G);let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function hZ(W,G,X=!1,Y={}){if(W<=S9)throw Error("invalid field: expected ORDER > 0, got "+W);let Z=void 0,V=void 0,Q=!1,J=void 0;if(typeof G==="object"&&G!=null){if(Y.sqrt||X)throw Error("cannot specify opts in two arguments");let H=G;if(H.BITS)Z=H.BITS;if(H.sqrt)V=H.sqrt;if(typeof H.isLE==="boolean")X=H.isLE;if(typeof H.modFromBytes==="boolean")Q=H.modFromBytes;J=H.allowedLengths}else{if(typeof G==="number")Z=G;if(Y.sqrt)V=Y.sqrt}let{nBitLength:U,nByteLength:q}=DM(W,Z);if(q>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let N,A=Object.freeze({ORDER:W,isLE:X,BITS:U,BYTES:q,MASK:uZ(U),ZERO:S9,ONE:H9,allowedLengths:J,create:(H)=>w5(H,W),isValid:(H)=>{if(typeof H!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof H);return S9<=H&&H<W},is0:(H)=>H===S9,isValidNot0:(H)=>!A.is0(H)&&A.isValid(H),isOdd:(H)=>(H&H9)===H9,neg:(H)=>w5(-H,W),eql:(H,I)=>H===I,sqr:(H)=>w5(H*H,W),add:(H,I)=>w5(H+I,W),sub:(H,I)=>w5(H-I,W),mul:(H,I)=>w5(H*I,W),pow:(H,I)=>Ou(A,H,I),div:(H,I)=>w5(H*bD(I,W),W),sqrN:(H)=>H*H,addN:(H,I)=>H+I,subN:(H,I)=>H-I,mulN:(H,I)=>H*I,inv:(H)=>bD(H,W),sqrt:V||((H)=>{if(!N)N=Iu(W);return N(A,H)}),toBytes:(H)=>X?NM(H,q):PU(H,q),fromBytes:(H,I=!0)=>{if(J){if(!J.includes(H.length)||H.length>q)throw Error("Field.fromBytes: expected "+J+" bytes, got "+H.length);let C=new Uint8Array(q);C.set(H,X?0:C.length-H.length),H=C}if(H.length!==q)throw Error("Field.fromBytes: expected "+q+" bytes, got "+H.length);let w=X?qM(H):UX(H);if(Q)w=w5(w,W);if(!I){if(!A.isValid(w))throw Error("invalid field element: outside of range 0..ORDER")}return w},invertBatch:(H)=>CM(A,H),cmov:(H,I,w)=>w?I:H});return Object.freeze(A)}function MM(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function TM(W){let G=MM(W);return G+Math.ceil(G/2)}function PM(W,G,X=!1){let Y=W.length,Z=MM(G),V=TM(G);if(Y<16||Y<V||Y>1024)throw Error("expected "+V+"-1024 bytes of input, got "+Y);let Q=X?qM(W):UX(W),J=w5(Q,G-H9)+H9;return X?NM(J,Z):PU(J,Z)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var QX=BigInt(0),PW=BigInt(1);function IU(W,G){let X=G.negate();return W?X:G}function iA(W,G){let X=CM(W.Fp,G.map((Y)=>Y.Z));return G.map((Y,Z)=>W.fromAffine(Y.toAffine(X[Z])))}function RM(W,G){if(!Number.isSafeInteger(W)||W<=0||W>G)throw Error("invalid window size, expected [1.."+G+"], got W="+W)}function rA(W,G){RM(W,G);let X=Math.ceil(G/W)+1,Y=2**(W-1),Z=2**W,V=uZ(W),Q=BigInt(W);return{windows:X,windowSize:Y,mask:V,maxNumber:Z,shiftBy:Q}}function fD(W,G,X){let{windowSize:Y,mask:Z,maxNumber:V,shiftBy:Q}=X,J=Number(W&Z),U=W>>Q;if(J>Y)J-=V,U+=PW;let q=G*Y,N=q+Math.abs(J)-1,A=J===0,H=J<0,I=G%2!==0;return{nextN:U,offset:N,isZero:A,isNeg:H,isNegF:I,offsetF:q}}function Ku(W,G){if(!Array.isArray(W))throw Error("array expected");W.forEach((X,Y)=>{if(!(X instanceof G))throw Error("invalid point at index "+Y)})}function Cu(W,G){if(!Array.isArray(W))throw Error("array of scalars expected");W.forEach((X,Y)=>{if(!G.isValid(X))throw Error("invalid scalar at index "+Y)})}var aA=new WeakMap,LM=new WeakMap;function sA(W){return LM.get(W)||1}function cD(W){if(W!==QX)throw Error("invalid wNAF")}class BM{constructor(W,G){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=G}_unsafeLadder(W,G,X=this.ZERO){let Y=W;while(G>QX){if(G&PW)X=X.add(Y);Y=Y.double(),G>>=PW}return X}precomputeWindow(W,G){let{windows:X,windowSize:Y}=rA(G,this.bits),Z=[],V=W,Q=V;for(let J=0;J<X;J++){Q=V,Z.push(Q);for(let U=1;U<Y;U++)Q=Q.add(V),Z.push(Q);V=Q.double()}return Z}wNAF(W,G,X){if(!this.Fn.isValid(X))throw Error("invalid scalar");let Y=this.ZERO,Z=this.BASE,V=rA(W,this.bits);for(let Q=0;Q<V.windows;Q++){let{nextN:J,offset:U,isZero:q,isNeg:N,isNegF:A,offsetF:H}=fD(X,Q,V);if(X=J,q)Z=Z.add(IU(A,G[H]));else Y=Y.add(IU(N,G[U]))}return cD(X),{p:Y,f:Z}}wNAFUnsafe(W,G,X,Y=this.ZERO){let Z=rA(W,this.bits);for(let V=0;V<Z.windows;V++){if(X===QX)break;let{nextN:Q,offset:J,isZero:U,isNeg:q}=fD(X,V,Z);if(X=Q,U)continue;else{let N=G[J];Y=Y.add(q?N.negate():N)}}return cD(X),Y}getPrecomputes(W,G,X){let Y=aA.get(G);if(!Y){if(Y=this.precomputeWindow(G,W),W!==1){if(typeof X==="function")Y=X(Y);aA.set(G,Y)}}return Y}cached(W,G,X){let Y=sA(W);return this.wNAF(Y,this.getPrecomputes(Y,W,X),G)}unsafe(W,G,X,Y){let Z=sA(W);if(Z===1)return this._unsafeLadder(W,G,Y);return this.wNAFUnsafe(Z,this.getPrecomputes(Z,W,X),G,Y)}createCache(W,G){RM(G,this.bits),LM.set(W,G),aA.delete(W)}hasCache(W){return sA(W)!==1}}function Du(W,G,X,Y){let Z=G,V=W.ZERO,Q=W.ZERO;while(X>QX||Y>QX){if(X&PW)V=V.add(Z);if(Y&PW)Q=Q.add(Z);Z=Z.double(),X>>=PW,Y>>=PW}return{p1:V,p2:Q}}function Mu(W,G,X,Y){Ku(X,W),Cu(Y,G);let Z=X.length,V=Y.length;if(Z!==V)throw Error("arrays of points and scalars must have equal length");let Q=W.ZERO,J=HM(BigInt(Z)),U=1;if(J>12)U=J-3;else if(J>4)U=J-2;else if(J>0)U=2;let q=uZ(U),N=Array(Number(q)+1).fill(Q),A=Math.floor((G.BITS-1)/U)*U,H=Q;for(let I=A;I>=0;I-=U){N.fill(Q);for(let C=0;C<V;C++){let D=Y[C],x=Number(D>>BigInt(I)&q);N[x]=N[x].add(X[C])}let w=Q;for(let C=N.length-1,D=Q;C>0;C--)D=D.add(N[C]),w=w.add(D);if(H=H.add(w),I!==0)for(let C=0;C<U;C++)H=H.double()}return H}function pD(W,G,X){if(G){if(G.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return ju(G),G}else return hZ(W,{isLE:X})}function Tu(W,G,X={},Y){if(Y===void 0)Y=W==="edwards";if(!G||typeof G!=="object")throw Error(`expected valid ${W} CURVE object`);for(let J of["p","n","h"]){let U=G[J];if(!(typeof U==="bigint"&&U>QX))throw Error(`CURVE.${J} must be positive bigint`)}let Z=pD(G.p,X.Fp,Y),V=pD(G.n,X.Fn,Y),Q=["Gx","Gy","a",W==="weierstrass"?"b":"d"];for(let J of Q)if(!Z.isValid(G[J]))throw Error(`CURVE.${J} must be valid field element of CURVE.Fp`);return G=Object.freeze(Object.assign({},G)),{CURVE:G,Fp:Z,Fn:V}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var lD=(W,G)=>(W+(W>=0?G:-G)/$M)/G;function Pu(W,G,X){let[[Y,Z],[V,Q]]=G,J=lD(Q*W,X),U=lD(-Z*W,X),q=W-J*Y-U*V,N=-J*Z-U*Q,A=q<W4,H=N<W4;if(A)q=-q;if(H)N=-N;let I=uZ(Math.ceil(HM(X)/2))+ZX;if(q<W4||q>=I||N<W4||N>=I)throw Error("splitScalar (endomorphism): failed, k="+W);return{k1neg:A,k1:q,k2neg:H,k2:N}}function Qz(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W}function tA(W,G){let X={};for(let Y of Object.keys(G))X[Y]=W[Y]===void 0?G[Y]:W[Y];if(zU(X.lowS,"lowS"),zU(X.prehash,"prehash"),X.format!==void 0)Qz(X.format);return X}class EM extends Error{constructor(W=""){super(W)}}var e7={Err:EM,_tlv:{encode:(W,G)=>{let{Err:X}=e7;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length&1)throw new X("tlv.encode: unpadded data");let Y=G.length/2,Z=tJ(Y);if(Z.length/2&128)throw new X("tlv.encode: long form length too big");let V=Y>127?tJ(Z.length/2|128):"";return tJ(W)+V+Z+G},decode(W,G){let{Err:X}=e7,Y=0;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length<2||G[Y++]!==W)throw new X("tlv.decode: wrong tlv");let Z=G[Y++],V=!!(Z&128),Q=0;if(!V)Q=Z;else{let U=Z&127;if(!U)throw new X("tlv.decode(long): indefinite length not supported");if(U>4)throw new X("tlv.decode(long): byte length is too big");let q=G.subarray(Y,Y+U);if(q.length!==U)throw new X("tlv.decode: length bytes not complete");if(q[0]===0)throw new X("tlv.decode(long): zero leftmost byte");for(let N of q)Q=Q<<8|N;if(Y+=U,Q<128)throw new X("tlv.decode(long): not minimal encoding")}let J=G.subarray(Y,Y+Q);if(J.length!==Q)throw new X("tlv.decode: wrong value length");return{v:J,l:G.subarray(Y+Q)}}},_int:{encode(W){let{Err:G}=e7;if(W<W4)throw new G("integer: negative integers are not allowed");let X=tJ(W);if(Number.parseInt(X[0],16)&8)X="00"+X;if(X.length&1)throw new G("unexpected DER parsing assertion: unpadded hex");return X},decode(W){let{Err:G}=e7;if(W[0]&128)throw new G("invalid signature integer: negative");if(W[0]===0&&!(W[1]&128))throw new G("invalid signature integer: unnecessary leading zero");return UX(W)}},toSig(W){let{Err:G,_int:X,_tlv:Y}=e7,Z=u8("signature",W),{v:V,l:Q}=Y.decode(48,Z);if(Q.length)throw new G("invalid signature: left bytes after parsing");let{v:J,l:U}=Y.decode(2,V),{v:q,l:N}=Y.decode(2,U);if(N.length)throw new G("invalid signature: left bytes after parsing");return{r:X.decode(J),s:X.decode(q)}},hexFromSig(W){let{_tlv:G,_int:X}=e7,Y=G.encode(2,X.encode(W.r)),Z=G.encode(2,X.encode(W.s)),V=Y+Z;return G.encode(48,V)}},W4=BigInt(0),ZX=BigInt(1),$M=BigInt(2),eJ=BigInt(3),Ru=BigInt(4);function RW(W,G){let{BYTES:X}=W,Y;if(typeof G==="bigint")Y=G;else{let Z=u8("private key",G);try{Y=W.fromBytes(Z)}catch(V){throw Error(`invalid private key: expected ui8a of size ${X}, got ${typeof G}`)}}if(!W.isValidNot0(Y))throw Error("invalid private key: out of range [1..N-1]");return Y}function Lu(W,G={}){let X=Tu("weierstrass",W,G),{Fp:Y,Fn:Z}=X,V=X.CURVE,{h:Q,n:J}=V;wz(G,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:U}=G;if(U){if(!Y.is0(V.a)||typeof U.beta!=="bigint"||!Array.isArray(U.basises))throw Error('invalid endo: expected "beta": bigint and "basises": array')}let q=SM(Y,Z);function N(){if(!Y.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}function A(y,o,B){let{x:R,y:_}=o.toAffine(),S=Y.toBytes(R);if(zU(B,"isCompressed"),B){N();let v=!Y.isOdd(_);return H7(FM(v),S)}else return H7(Uint8Array.of(4),S,Y.toBytes(_))}function H(y){MW(y,void 0,"Point");let{publicKey:o,publicKeyUncompressed:B}=q,R=y.length,_=y[0],S=y.subarray(1);if(R===o&&(_===2||_===3)){let v=Y.fromBytes(S);if(!Y.isValid(v))throw Error("bad point: is not on curve, wrong x");let P=C(v),E;try{E=Y.sqrt(P)}catch(k){let f=k instanceof Error?": "+k.message:"";throw Error("bad point: is not on curve, sqrt error"+f)}N();let b=Y.isOdd(E);if((_&1)===1!==b)E=Y.neg(E);return{x:v,y:E}}else if(R===B&&_===4){let v=Y.BYTES,P=Y.fromBytes(S.subarray(0,v)),E=Y.fromBytes(S.subarray(v,v*2));if(!D(P,E))throw Error("bad point: is not on curve");return{x:P,y:E}}else throw Error(`bad point: got length ${R}, expected compressed=${o} or uncompressed=${B}`)}let I=G.toBytes||A,w=G.fromBytes||H;function C(y){let o=Y.sqr(y),B=Y.mul(o,y);return Y.add(Y.add(B,Y.mul(y,V.a)),V.b)}function D(y,o){let B=Y.sqr(o),R=C(y);return Y.eql(B,R)}if(!D(V.Gx,V.Gy))throw Error("bad curve params: generator point");let x=Y.mul(Y.pow(V.a,eJ),Ru),h=Y.mul(Y.sqr(V.b),BigInt(27));if(Y.is0(Y.add(x,h)))throw Error("bad curve params: a or b");function p(y,o,B=!1){if(!Y.isValid(o)||B&&Y.is0(o))throw Error(`bad point coordinate ${y}`);return o}function u(y){if(!(y instanceof m))throw Error("ProjectivePoint expected")}function n(y){if(!U||!U.basises)throw Error("no endo");return Pu(y,U.basises,Z.ORDER)}let c=hD((y,o)=>{let{X:B,Y:R,Z:_}=y;if(Y.eql(_,Y.ONE))return{x:B,y:R};let S=y.is0();if(o==null)o=S?Y.ONE:Y.inv(_);let v=Y.mul(B,o),P=Y.mul(R,o),E=Y.mul(_,o);if(S)return{x:Y.ZERO,y:Y.ZERO};if(!Y.eql(E,Y.ONE))throw Error("invZ was invalid");return{x:v,y:P}}),l=hD((y)=>{if(y.is0()){if(G.allowInfinityPoint&&!Y.is0(y.Y))return;throw Error("bad point: ZERO")}let{x:o,y:B}=y.toAffine();if(!Y.isValid(o)||!Y.isValid(B))throw Error("bad point: x or y not field elements");if(!D(o,B))throw Error("bad point: equation left != right");if(!y.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function G0(y,o,B,R,_){return B=new m(Y.mul(B.X,y),B.Y,B.Z),o=IU(R,o),B=IU(_,B),o.add(B)}class m{constructor(y,o,B){this.X=p("x",y),this.Y=p("y",o,!0),this.Z=p("z",B),Object.freeze(this)}static CURVE(){return V}static fromAffine(y){let{x:o,y:B}=y||{};if(!y||!Y.isValid(o)||!Y.isValid(B))throw Error("invalid affine point");if(y instanceof m)throw Error("projective point not allowed");if(Y.is0(o)&&Y.is0(B))return m.ZERO;return new m(o,B,Y.ONE)}static fromBytes(y){let o=m.fromAffine(w(MW(y,void 0,"point")));return o.assertValidity(),o}static fromHex(y){return m.fromBytes(u8("pointHex",y))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,o=!0){if(U0.createCache(this,y),!o)this.multiply(eJ);return this}assertValidity(){l(this)}hasEvenY(){let{y}=this.toAffine();if(!Y.isOdd)throw Error("Field doesn't support isOdd");return!Y.isOdd(y)}equals(y){u(y);let{X:o,Y:B,Z:R}=this,{X:_,Y:S,Z:v}=y,P=Y.eql(Y.mul(o,v),Y.mul(_,R)),E=Y.eql(Y.mul(B,v),Y.mul(S,R));return P&&E}negate(){return new m(this.X,Y.neg(this.Y),this.Z)}double(){let{a:y,b:o}=V,B=Y.mul(o,eJ),{X:R,Y:_,Z:S}=this,v=Y.ZERO,P=Y.ZERO,E=Y.ZERO,b=Y.mul(R,R),k=Y.mul(_,_),f=Y.mul(S,S),e=Y.mul(R,_);return e=Y.add(e,e),E=Y.mul(R,S),E=Y.add(E,E),v=Y.mul(y,E),P=Y.mul(B,f),P=Y.add(v,P),v=Y.sub(k,P),P=Y.add(k,P),P=Y.mul(v,P),v=Y.mul(e,v),E=Y.mul(B,E),f=Y.mul(y,f),e=Y.sub(b,f),e=Y.mul(y,e),e=Y.add(e,E),E=Y.add(b,b),b=Y.add(E,b),b=Y.add(b,f),b=Y.mul(b,e),P=Y.add(P,b),f=Y.mul(_,S),f=Y.add(f,f),b=Y.mul(f,e),v=Y.sub(v,b),E=Y.mul(f,k),E=Y.add(E,E),E=Y.add(E,E),new m(v,P,E)}add(y){u(y);let{X:o,Y:B,Z:R}=this,{X:_,Y:S,Z:v}=y,P=Y.ZERO,E=Y.ZERO,b=Y.ZERO,k=V.a,f=Y.mul(V.b,eJ),e=Y.mul(o,_),q0=Y.mul(B,S),Q0=Y.mul(R,v),$0=Y.add(o,B),D0=Y.add(_,S);$0=Y.mul($0,D0),D0=Y.add(e,q0),$0=Y.sub($0,D0),D0=Y.add(o,R);let k0=Y.add(_,v);return D0=Y.mul(D0,k0),k0=Y.add(e,Q0),D0=Y.sub(D0,k0),k0=Y.add(B,R),P=Y.add(S,v),k0=Y.mul(k0,P),P=Y.add(q0,Q0),k0=Y.sub(k0,P),b=Y.mul(k,D0),P=Y.mul(f,Q0),b=Y.add(P,b),P=Y.sub(q0,b),b=Y.add(q0,b),E=Y.mul(P,b),q0=Y.add(e,e),q0=Y.add(q0,e),Q0=Y.mul(k,Q0),D0=Y.mul(f,D0),q0=Y.add(q0,Q0),Q0=Y.sub(e,Q0),Q0=Y.mul(k,Q0),D0=Y.add(D0,Q0),e=Y.mul(q0,D0),E=Y.add(E,e),e=Y.mul(k0,D0),P=Y.mul($0,P),P=Y.sub(P,e),e=Y.mul($0,q0),b=Y.mul(k0,b),b=Y.add(b,e),new m(P,E,b)}subtract(y){return this.add(y.negate())}is0(){return this.equals(m.ZERO)}multiply(y){let{endo:o}=G;if(!Z.isValidNot0(y))throw Error("invalid scalar: out of range");let B,R,_=(S)=>U0.cached(this,S,(v)=>iA(m,v));if(o){let{k1neg:S,k1:v,k2neg:P,k2:E}=n(y),{p:b,f:k}=_(v),{p:f,f:e}=_(E);R=k.add(e),B=G0(o.beta,b,f,S,P)}else{let{p:S,f:v}=_(y);B=S,R=v}return iA(m,[B,R])[0]}multiplyUnsafe(y){let{endo:o}=G,B=this;if(!Z.isValid(y))throw Error("invalid scalar: out of range");if(y===W4||B.is0())return m.ZERO;if(y===ZX)return B;if(U0.hasCache(this))return this.multiply(y);if(o){let{k1neg:R,k1:_,k2neg:S,k2:v}=n(y),{p1:P,p2:E}=Du(m,B,_,v);return G0(o.beta,P,E,R,S)}else return U0.unsafe(B,y)}multiplyAndAddUnsafe(y,o,B){let R=this.multiplyUnsafe(o).add(y.multiplyUnsafe(B));return R.is0()?void 0:R}toAffine(y){return c(this,y)}isTorsionFree(){let{isTorsionFree:y}=G;if(Q===ZX)return!0;if(y)return y(m,this);return U0.unsafe(this,J).is0()}clearCofactor(){let{clearCofactor:y}=G;if(Q===ZX)return this;if(y)return y(m,this);return this.multiplyUnsafe(Q)}isSmallOrder(){return this.multiplyUnsafe(Q).is0()}toBytes(y=!0){return zU(y,"isCompressed"),this.assertValidity(),I(m,this,y)}toHex(y=!0){return YX(this.toBytes(y))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(y=!0){return this.toBytes(y)}_setWindowSize(y){this.precompute(y)}static normalizeZ(y){return iA(m,y)}static msm(y,o){return Mu(m,Z,y,o)}static fromPrivateKey(y){return m.BASE.multiply(RW(Z,y))}}m.BASE=new m(V.Gx,V.Gy,Y.ONE),m.ZERO=new m(Y.ZERO,Y.ONE,Y.ZERO),m.Fp=Y,m.Fn=Z;let Y0=Z.BITS,U0=new BM(m,G.endo?Math.ceil(Y0/2):Y0);return m.BASE.precompute(8),m}function FM(W){return Uint8Array.of(W?2:3)}function SM(W,G){return{secretKey:G.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*G.BYTES}}function Bu(W,G={}){let{Fn:X}=W,Y=G.randomBytes||TU,Z=Object.assign(SM(W.Fp,X),{seed:TM(X.ORDER)});function V(H){try{return!!RW(X,H)}catch(I){return!1}}function Q(H,I){let{publicKey:w,publicKeyUncompressed:C}=Z;try{let D=H.length;if(I===!0&&D!==w)return!1;if(I===!1&&D!==C)return!1;return!!W.fromBytes(H)}catch(D){return!1}}function J(H=Y(Z.seed)){return PM(MW(H,Z.seed,"seed"),X.ORDER)}function U(H,I=!0){return W.BASE.multiply(RW(X,H)).toBytes(I)}function q(H){let I=J(H);return{secretKey:I,publicKey:U(I)}}function N(H){if(typeof H==="bigint")return!1;if(H instanceof W)return!0;let{secretKey:I,publicKey:w,publicKeyUncompressed:C}=Z;if(X.allowedLengths||I===w)return;let D=u8("key",H).length;return D===w||D===C}function A(H,I,w=!0){if(N(H)===!0)throw Error("first arg must be private key");if(N(I)===!1)throw Error("second arg must be public key");let C=RW(X,H);return W.fromHex(I).multiply(C).toBytes(w)}return Object.freeze({getPublicKey:U,getSharedSecret:A,keygen:q,Point:W,utils:{isValidSecretKey:V,isValidPublicKey:Q,randomSecretKey:J,isValidPrivateKey:V,randomPrivateKey:J,normPrivateKeyToScalar:(H)=>RW(X,H),precompute(H=8,I=W.BASE){return I.precompute(H,!1)}},lengths:Z})}function Eu(W,G,X={}){XM(G),wz(X,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let Y=X.randomBytes||TU,Z=X.hmac||((B,...R)=>JM(G,B,H7(...R))),{Fp:V,Fn:Q}=W,{ORDER:J,BITS:U}=Q,{keygen:q,getPublicKey:N,getSharedSecret:A,utils:H,lengths:I}=Bu(W,X),w={prehash:!1,lowS:typeof X.lowS==="boolean"?X.lowS:!1,format:void 0,extraEntropy:!1},C="compact";function D(B){let R=J>>ZX;return B>R}function x(B,R){if(!Q.isValidNot0(R))throw Error(`invalid signature ${B}: out of range 1..Point.Fn.ORDER`);return R}function h(B,R){Qz(R);let _=I.signature,S=R==="compact"?_:R==="recovered"?_+1:void 0;return MW(B,S,`${R} signature`)}class p{constructor(B,R,_){if(this.r=x("r",B),this.s=x("s",R),_!=null)this.recovery=_;Object.freeze(this)}static fromBytes(B,R=C){h(B,R);let _;if(R==="der"){let{r:E,s:b}=e7.toSig(MW(B));return new p(E,b)}if(R==="recovered")_=B[0],R="compact",B=B.subarray(1);let S=Q.BYTES,v=B.subarray(0,S),P=B.subarray(S,S*2);return new p(Q.fromBytes(v),Q.fromBytes(P),_)}static fromHex(B,R){return this.fromBytes(AU(B),R)}addRecoveryBit(B){return new p(this.r,this.s,B)}recoverPublicKey(B){let R=V.ORDER,{r:_,s:S,recovery:v}=this;if(v==null||![0,1,2,3].includes(v))throw Error("recovery id invalid");if(J*$M<R&&v>1)throw Error("recovery id is ambiguous for h>1 curve");let P=v===2||v===3?_+J:_;if(!V.isValid(P))throw Error("recovery id 2 or 3 invalid");let E=V.toBytes(P),b=W.fromBytes(H7(FM((v&1)===0),E)),k=Q.inv(P),f=n(u8("msgHash",B)),e=Q.create(-f*k),q0=Q.create(S*k),Q0=W.BASE.multiplyUnsafe(e).add(b.multiplyUnsafe(q0));if(Q0.is0())throw Error("point at infinify");return Q0.assertValidity(),Q0}hasHighS(){return D(this.s)}toBytes(B=C){if(Qz(B),B==="der")return AU(e7.hexFromSig(this));let R=Q.toBytes(this.r),_=Q.toBytes(this.s);if(B==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return H7(Uint8Array.of(this.recovery),R,_)}return H7(R,_)}toHex(B){return YX(this.toBytes(B))}assertValidity(){}static fromCompact(B){return p.fromBytes(u8("sig",B),"compact")}static fromDER(B){return p.fromBytes(u8("sig",B),"der")}normalizeS(){return this.hasHighS()?new p(this.r,Q.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return YX(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return YX(this.toBytes("compact"))}}let u=X.bits2int||function(B){if(B.length>8192)throw Error("input is too large");let R=UX(B),_=B.length*8-U;return _>0?R>>BigInt(_):R},n=X.bits2int_modN||function(B){return Q.create(u(B))},c=uZ(U);function l(B){return Uu("num < 2^"+U,B,W4,c),Q.toBytes(B)}function G0(B,R){return MW(B,void 0,"message"),R?MW(G(B),void 0,"prehashed message"):B}function m(B,R,_){if(["recovered","canonical"].some((Q0)=>(Q0 in _)))throw Error("sign() legacy options not supported");let{lowS:S,prehash:v,extraEntropy:P}=tA(_,w);B=G0(B,v);let E=n(B),b=RW(Q,R),k=[l(b),l(E)];if(P!=null&&P!==!1){let Q0=P===!0?Y(I.secretKey):P;k.push(u8("extraEntropy",Q0))}let f=H7(...k),e=E;function q0(Q0){let $0=u(Q0);if(!Q.isValidNot0($0))return;let D0=Q.inv($0),k0=W.BASE.multiply($0).toAffine(),H1=Q.create(k0.x);if(H1===W4)return;let U1=Q.create(D0*Q.create(e+H1*b));if(U1===W4)return;let J0=(k0.x===H1?0:2)|Number(k0.y&ZX),B0=U1;if(S&&D(U1))B0=Q.neg(U1),J0^=1;return new p(H1,B0,J0)}return{seed:f,k2sig:q0}}function Y0(B,R,_={}){B=u8("message",B);let{seed:S,k2sig:v}=m(B,R,_);return qu(G.outputLen,Q.BYTES,Z)(S,v)}function U0(B){let R=void 0,_=typeof B==="string"||MU(B),S=!_&&B!==null&&typeof B==="object"&&typeof B.r==="bigint"&&typeof B.s==="bigint";if(!_&&!S)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(S)R=new p(B.r,B.s);else if(_){try{R=p.fromBytes(u8("sig",B),"der")}catch(v){if(!(v instanceof e7.Err))throw v}if(!R)try{R=p.fromBytes(u8("sig",B),"compact")}catch(v){return!1}}if(!R)return!1;return R}function y(B,R,_,S={}){let{lowS:v,prehash:P,format:E}=tA(S,w);if(_=u8("publicKey",_),R=G0(u8("message",R),P),"strict"in S)throw Error("options.strict was renamed to lowS");let b=E===void 0?U0(B):p.fromBytes(u8("sig",B),E);if(b===!1)return!1;try{let k=W.fromBytes(_);if(v&&b.hasHighS())return!1;let{r:f,s:e}=b,q0=n(R),Q0=Q.inv(e),$0=Q.create(q0*Q0),D0=Q.create(f*Q0),k0=W.BASE.multiplyUnsafe($0).add(k.multiplyUnsafe(D0));if(k0.is0())return!1;return Q.create(k0.x)===f}catch(k){return!1}}function o(B,R,_={}){let{prehash:S}=tA(_,w);return R=G0(R,S),p.fromBytes(B,"recovered").recoverPublicKey(R).toBytes()}return Object.freeze({keygen:q,getPublicKey:N,getSharedSecret:A,utils:H,lengths:I,Point:W,sign:Y0,verify:y,recoverPublicKey:o,Signature:p,hash:G})}function $u(W){let G={a:W.a,b:W.b,p:W.Fp.ORDER,n:W.n,h:W.h,Gx:W.Gx,Gy:W.Gy},X=W.Fp,Y=W.allowedPrivateKeyLengths?Array.from(new Set(W.allowedPrivateKeyLengths.map((Q)=>Math.ceil(Q/2)))):void 0,Z=hZ(G.n,{BITS:W.nBitLength,allowedLengths:Y,modFromBytes:W.wrapPrivateKey}),V={Fp:X,Fn:Z,allowInfinityPoint:W.allowInfinityPoint,endo:W.endo,isTorsionFree:W.isTorsionFree,clearCofactor:W.clearCofactor,fromBytes:W.fromBytes,toBytes:W.toBytes};return{CURVE:G,curveOpts:V}}function Fu(W){let{CURVE:G,curveOpts:X}=$u(W),Y={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:G,curveOpts:X,hash:W.hash,ecdsaOpts:Y}}function Su(W,G){let X=G.Point;return Object.assign({},G,{ProjectivePoint:X,CURVE:Object.assign({},W,DM(X.Fn.ORDER,X.Fn.BITS))})}function xu(W){let{CURVE:G,curveOpts:X,hash:Y,ecdsaOpts:Z}=Fu(W),V=Lu(G,X),Q=Eu(V,Y,Z);return Su(W,Q)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ku(W,G){let X=(Y)=>xu({...W,hash:Y});return{...X(G),create:X}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var JX={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},_u={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},yu=BigInt(0),dD=BigInt(1),Jz=BigInt(2);function vu(W){let G=JX.p,X=BigInt(3),Y=BigInt(6),Z=BigInt(11),V=BigInt(22),Q=BigInt(23),J=BigInt(44),U=BigInt(88),q=W*W*W%G,N=q*q*W%G,A=I5(N,X,G)*N%G,H=I5(A,X,G)*N%G,I=I5(H,Jz,G)*q%G,w=I5(I,Z,G)*I%G,C=I5(w,V,G)*w%G,D=I5(C,J,G)*C%G,x=I5(D,U,G)*D%G,h=I5(x,J,G)*C%G,p=I5(h,X,G)*N%G,u=I5(p,Q,G)*w%G,n=I5(u,Y,G)*q%G,c=I5(n,Jz,G);if(!wU.eql(wU.sqr(c),W))throw Error("Cannot find square root");return c}var wU=hZ(JX.p,{sqrt:vu}),xM=ku({...JX,Fp:wU,lowS:!0,endo:_u},Yz),oD={};function jU(W,...G){let X=oD[W];if(X===void 0){let Y=Yz(ZM(W));X=H7(Y,Y),oD[W]=X}return Yz(H7(X,...G))}var Oz=(W)=>W.toBytes(!0).slice(1),qX=(()=>xM.Point)(),Kz=(W)=>W%Jz===yu;function Uz(W){let{Fn:G,BASE:X}=qX,Y=RW(G,W),Z=X.multiply(Y);return{scalar:Kz(Z.y)?Y:G.neg(Y),bytes:Oz(Z)}}function kM(W){let G=wU;if(!G.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let X=G.create(W*W),Y=G.create(X*W+BigInt(7)),Z=G.sqrt(Y);if(!Kz(Z))Z=G.neg(Z);let V=qX.fromAffine({x:W,y:Z});return V.assertValidity(),V}var gZ=UX;function _M(...W){return qX.Fn.create(gZ(jU("BIP0340/challenge",...W)))}function nD(W){return Uz(W).bytes}function gu(W,G,X=TU(32)){let{Fn:Y}=qX,Z=u8("message",W),{bytes:V,scalar:Q}=Uz(G),J=u8("auxRand",X,32),U=Y.toBytes(Q^gZ(jU("BIP0340/aux",J))),q=jU("BIP0340/nonce",U,V,Z),{bytes:N,scalar:A}=Uz(q),H=_M(N,V,Z),I=new Uint8Array(64);if(I.set(N,0),I.set(Y.toBytes(Y.create(A+H*Q)),32),!yM(I,Z,V))throw Error("sign: Invalid signature produced");return I}function yM(W,G,X){let{Fn:Y,BASE:Z}=qX,V=u8("signature",W,64),Q=u8("message",G),J=u8("publicKey",X,32);try{let U=kM(gZ(J)),q=gZ(V.subarray(0,32));if(!Vz(q,dD,JX.p))return!1;let N=gZ(V.subarray(32,64));if(!Vz(N,dD,JX.n))return!1;let A=_M(Y.toBytes(q),Oz(U),Q),H=Z.multiplyUnsafe(N).add(U.multiplyUnsafe(Y.neg(A))),{x:I,y:w}=H.toAffine();if(H.is0()||!Kz(w)||I!==q)return!1;return!0}catch(U){return!1}}var Cz=(()=>{let W=(X=TU(48))=>{return PM(X,JX.n)};xM.utils.randomSecretKey;function G(X){let Y=W(X);return{secretKey:Y,publicKey:nD(Y)}}return{keygen:G,getPublicKey:nD,sign:gu,verify:yM,Point:qX,utils:{randomSecretKey:W,randomPrivateKey:W,taggedHash:jU,lift_x:kM,pointToBytes:Oz,numberToBytesBE:PU,bytesToNumberBE:UX,mod:w5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})(),uu=new TextEncoder,hu=new TextDecoder,LW=(W)=>uu.encode(W),kZ=(W)=>hu.decode(W),qz=(W)=>Array.from(W,(G)=>G.toString(16).padStart(2,"0")).join(""),G4=JSON.stringify,OU=JSON.parse,vM=(W,G=Number.MAX_SAFE_INTEGER)=>W.split("").reduce((X,Y)=>X+Y.charCodeAt(0),0)%G,Dz="AES-GCM",bu={},gM="$",uM=",",mu=(W)=>{let G=new Uint8Array(W),X=32768,Y="";for(let Z=0;Z<G.length;Z+=32768)Y+=String.fromCharCode(...G.subarray(Z,Z+32768));return btoa(Y)},fu=(W)=>Uint8Array.from(atob(W),(G)=>G.charCodeAt(0)).buffer,WU=(W)=>bu[W]??=crypto.subtle.digest("SHA-1",LW(W)).then((G)=>{let X=new Uint8Array(G),Y="";for(let Z of X)Y+=Z.toString(36);return Y}),cu=async(W,G,X)=>{let Y=await crypto.subtle.digest("SHA-256",LW(`${W}:${G}:${X}`));return crypto.subtle.importKey("raw",Y,{name:Dz},!1,["encrypt","decrypt"])},pu=async(W,G)=>{let X=crypto.getRandomValues(new Uint8Array(12)),Y=await W,Z=await crypto.subtle.encrypt({name:Dz,iv:X},Y,LW(G));return`${X.join(uM)}${gM}${mu(Z)}`},lu=async(W,G)=>{let[X,Y]=G.split(gM);if(!X||!Y)throw Error("Invalid encrypted payload format");let Z=Uint8Array.from(X.split(uM),Number),V=await W,Q=await crypto.subtle.decrypt({name:Dz,iv:Z},V,fu(Y));return kZ(Q)},k5="GenosRTC",Mz=(W,G)=>Array.from({length:W},G),KU=(W)=>Array.from(crypto.getRandomValues(new Uint8Array(W)),(G)=>"0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"[G%62]).join(""),e1=typeof sessionStorage<"u"?sessionStorage.__genosrtcId??=KU(20):KU(20),XX=Promise.all.bind(Promise),du=typeof window<"u",{entries:ou,fromEntries:hM,keys:Re}=Object,nu=()=>{},t7=(W)=>Error(`GenosRTC: ${W}`),GU=(...W)=>W.join("@"),iu=(W,G)=>{let X=[...W],Y=X.length,Z=()=>{let V=Math.sin(G++)*1e4;return V-Math.floor(V)};while(Y){let V=Math.floor(Z()*Y--);[X[Y],X[V]]=[X[V],X[Y]]}return X},ru=5000,iD="icegatheringstatechange",rD="offer",au="answer",su=[...Mz(3,(W,G)=>`stun:stun${G||""}.l.google.com:19302`),"stun:stun.cloudflare.com:3478"].map((W)=>({urls:W})),aD=(W,{rtcConfig:G,rtcPolyfill:X,turnConfig:Y})=>{let Z=new(X||RTCPeerConnection)({iceServers:[...su,...Y||[]],...G}),V={},Q=!1,J=!1,U,q=(H)=>Object.assign(H,{binaryType:"arraybuffer",bufferedAmountLowThreshold:65535,onmessage:(I)=>V.data?.(I.data),onopen:()=>V.connect?.(),onclose:()=>V.close?.(),onerror:(I)=>!I?.error?.message?.includes("User-Initiated Abort")&&V.error?.(I)}),N=()=>Promise.race([new Promise((H)=>{let I=()=>{if(Z.iceGatheringState==="complete")Z.removeEventListener(iD,I),H()};Z.addEventListener(iD,I),I()}),new Promise((H)=>setTimeout(H,ru))]).then(()=>({type:Z.localDescription.type,sdp:Z.localDescription.sdp.replace(/a=ice-options:trickle\s\n/g,"")}));if(W?q(U=Z.createDataChannel("data")):Z.ondatachannel=({channel:H})=>q(U=H),Z.onnegotiationneeded=async()=>{try{Q=!0,await Z.setLocalDescription(),V.signal?.(await N())}catch(H){V.error?.(H)}finally{Q=!1}},Z.onconnectionstatechange=()=>{if(["disconnected","failed","closed"].includes(Z.connectionState))V.close?.()},Z.ontrack=(H)=>{V.track?.(H.track,H.streams[0]),V.stream?.(H.streams[0])},Z.onremovestream=(H)=>V.stream?.(H.stream),W&&!Z.canTrickleIceCandidates)Z.onnegotiationneeded();let A=()=>Z.getSenders();return{created:Date.now(),connection:Z,get channel(){return U},get isDead(){return Z.connectionState==="closed"},async signal(H){if(U?.readyState==="open"&&!H.sdp?.includes("a=rtpmap"))return;try{if(H.type===rD){if(Q||Z.signalingState!=="stable"&&!J){if(W)return;await XX([Z.setLocalDescription({type:"rollback"}),Z.setRemoteDescription(H)])}else await Z.setRemoteDescription(H);await Z.setLocalDescription();let I=await N();return V.signal?.(I),I}if(H.type===au){J=!0;try{await Z.setRemoteDescription(H)}finally{J=!1}}}catch(I){V.error?.(I)}},sendData:(H)=>{if(U?.readyState==="open")U.send(H)},destroy:()=>{U?.close(),Z.close(),Q=J=!1},setHandlers:(H)=>Object.assign(V,H),offerPromise:W?new Promise((H)=>V.signal=(I)=>I.type===rD&&H(I)):Promise.resolve(),addStream:(H)=>H.getTracks().forEach((I)=>Z.addTrack(I,H)),removeStream:(H)=>A().filter((I)=>H.getTracks().includes(I.track)).forEach((I)=>Z.removeTrack(I)),addTrack:(H,I)=>Z.addTrack(H,I),removeTrack:(H)=>{let I=A().find((w)=>w.track===H);if(I)Z.removeTrack(I)},replaceTrack:(H,I)=>A().find((w)=>w.track===H)?.replaceTrack(I)}},tu=Object.getPrototypeOf(Uint8Array),QU=12,bM=0,JU=bM+QU,UU=JU+1,_Z=UU+1,yZ=_Z+1,xZ=16384-yZ,XU=255,eA="bufferedamountlow",GX=(W)=>`@_${W}`,Wz=100,eu=3,Wh=200,Gh=(W,G,X,Y)=>{let Z=new Map,V=new Map,Q=new Map,J={},U={},q={},N={},A=new Map,H=(S,v)=>{if(!A.has(S))A.set(S,new Set);A.get(S).add(v)},I=(S,v)=>A.get(S)?.delete(v),w=(S,...v)=>A.get(S)?.forEach((P)=>P(...v)),C=(S,v)=>{let P=S?Array.isArray(S)?S:[S]:Z.keys();return Array.from(P,(E)=>{let b=Z.get(E);if(!b)return console.warn(`${k5}: no peer with id ${E}`),null;return v(E,b)}).filter(Boolean)},D=(S)=>{if(!Z.has(S))return;Z.delete(S),delete J[S],delete U[S],delete q[S],delete N[S],w("peer:leave",S),G(S)},x=(S)=>new Promise((v,P)=>{let E=setTimeout(()=>{S.removeEventListener(eA,b),P(Error(`${k5}: bufferLow timeout`))},5000);function b(){clearTimeout(E),S.removeEventListener(eA,b),v()}S.addEventListener(eA,b)}),h=(S)=>{if(Q.has(S))return Q.get(S);if(!S)throw t7("action type is required");let v=LW(S);if(v.byteLength>QU)throw t7(`\u274C "${S}" exceeds ${QU} bytes. Use a shorter name.`);let P=new Uint8Array(QU).map((Q0,$0)=>v[$0]||0),E=0,b=new Map([["message",new Set],["progress",new Set]]),k=(Q0,$0)=>b.get(Q0)?.add($0),f=(Q0,$0)=>b.get(Q0)?.delete($0),e=async(Q0,$0,D0,k0)=>{if(D0&&typeof D0!=="object")throw t7("meta must be object");if(Q0===void 0)throw t7("data cannot be undefined");let H1=Q0 instanceof Blob,U1=H1||Q0 instanceof ArrayBuffer||Q0 instanceof tu,J0=typeof Q0!=="string";if(D0&&!U1)throw t7("meta only allowed with binary");let B0=U1?new Uint8Array(H1?await Q0.arrayBuffer():Q0):LW(J0?G4(Q0):Q0),h0=D0?LW(G4(D0)):null,Y1=Math.ceil(B0.byteLength/xZ)+(D0?1:0)||1;if(Y1>Wz)throw t7(`Message too large, exceeds max chunks ${Wz}`);let A8=Mz(Y1,(F1,E0)=>{let l0=E0===Y1-1,q1=D0&&E0===0,d1=q1?h0:B0.subarray(D0?(E0-1)*xZ:E0*xZ,D0?E0*xZ:(E0+1)*xZ),j8=new Uint8Array(yZ+d1.byteLength);return j8.set(P),j8.set([E],JU),j8.set([l0|q1<<1|U1<<2|J0<<3],UU),j8.set([Math.round((E0+1)/Y1*XU)],_Z),j8.set(d1,yZ),j8});return E=E+1&XU,XX(C($0,async(F1,E0)=>{let{channel:l0}=E0;for(let q1=0;q1<Y1;q1++){let d1=0;while(l0.bufferedAmount>l0.bufferedAmountLowThreshold){if(d1++>eu)throw t7(`${k5}: send buffer full, max retries reached for peer ${F1}`);try{await x(l0)}catch(j8){console.warn(j8.message),await new Promise((v8)=>setTimeout(v8,Wh))}}if(!Z.has(F1))break;E0.sendData(A8[q1]),k0?.(A8[q1][_Z]/XU,F1,D0)}}))};V.set(S,{listeners:b,send:e});let q0={send:e,on:k,off:f};return Q.set(S,q0),q0},p=(S,v)=>{try{let P=new Uint8Array(v),E=kZ(P.subarray(bM,JU)).replace(/\x00/g,"");if(!V.has(E))return console.warn(`${k5}: unregistered type (${E})`);let[b]=P.subarray(JU,UU),[k]=P.subarray(UU,_Z),[f]=P.subarray(_Z,yZ),e=P.subarray(yZ),q0=Boolean(k&1),Q0=Boolean(k&2),$0=Boolean(k&4),D0=Boolean(k&8),k0=V.get(E),H1=(J[S]||={})[E]||={};if(H1[b]?.chunks?.length>Wz){console.warn(`${k5}: peer ${S} sent too many chunks for nonce ${b}, ignoring.`);return}let U1=H1[b]||={chunks:[]};if(Q0)try{U1.meta=OU(kZ(e))}catch{console.warn(`${k5}: failed to parse meta from peer ${S} for type ${E}`);return}else U1.chunks.push(e);if(k0.listeners.get("progress").forEach((h0)=>{try{h0(f/XU,S,U1.meta)}catch(Y1){console.error(Y1)}}),!q0)return;let J0=new Uint8Array(U1.chunks.reduce((h0,Y1)=>h0+Y1.byteLength,0));U1.chunks.reduce((h0,Y1)=>(J0.set(Y1,h0),h0+Y1.byteLength),0),delete H1[b];let B0;if($0)B0=J0;else if(D0)try{B0=OU(kZ(J0))}catch{console.warn(`${k5}: failed to parse JSON message data from peer ${S} for type ${E}`);return}else B0=kZ(J0);k0.listeners.get("message").forEach((h0)=>{try{h0(B0,S,U1.meta)}catch(Y1){console.error(Y1)}})}catch(P){console.error(`${k5}: error handling data from peer ${S}:`,P)}},u=async()=>{try{await R(""),await new Promise((S)=>setTimeout(S,99))}catch(S){console.warn(`${k5}: error sending leave`,S)}for(let[S,v]of Z){try{v.destroy()}catch{}Z.delete(S)}X()},{send:n,on:c}=h(GX("ping")),{send:l,on:G0}=h(GX("pong")),{send:m,on:Y0}=h(GX("signal")),{send:U0,on:y}=h(GX("stream")),{send:o,on:B}=h(GX("track")),{send:R,on:_}=h(GX("leave"));if(W((S,v)=>{let P=Z.get(v);if(P===S)return;if(P){let E=()=>{};P.setHandlers({data:E,stream:E,track:E,signal:E,close:E,error:E})}Z.set(v,S),S.setHandlers({data:(E)=>p(v,E),stream:(E)=>{w("stream:add",E,v,q[v]),delete q[v]},track:(E,b)=>{w("track:add",E,b,v,N[v]),delete N[v]},signal:(E)=>m(E,v),close:()=>D(v),error:(E)=>{console.error(`${k5}: peer error for ${v}`,E),D(v)}}),w("peer:join",v,Y?.(v))}),c("message",(S,v)=>l("",v)),G0("message",(S,v)=>{U[v]?.(),delete U[v]}),Y0("message",(S,v)=>Z.get(v)?.signal(S)),y("message",(S,v)=>q[v]=S),B("message",(S,v)=>N[v]=S),_("message",(S,v)=>D(v)),du)addEventListener("beforeunload",u);return{on:H,off:I,channel:h,leave:u,ping:async(S)=>{if(!S)throw t7("ping() requires target peer ID");let v=Date.now();return n("",S),await new Promise((P)=>U[S]=P),Date.now()-v},getPeers:()=>hM(Array.from(Z,([S,v])=>[S,v.connection])),addStream:(S,v,P)=>C(v,async(E,b)=>{if(P)await U0(P,E);b.addStream(S)}),removeStream:(S,v)=>C(v,(P,E)=>E.removeStream(S)),addTrack:(S,v,P,E)=>C(P,async(b,k)=>{if(E)await o(E,b);k.addTrack(S,v)}),removeTrack:(S,v)=>C(v,(P,E)=>E.removeTrack(S)),replaceTrack:(S,v,P,E)=>C(P,async(b,k)=>{if(E)await o(E,b);k.replaceTrack(S,v)})}},Xh=5,Yh=10,Zh=2500,YU=57333,Vh=({init:W,subscribe:G,announce:X})=>{let Y={},Z=!1,V,Q;return(J,U,q)=>{let{appId:N}=J;if(Y[N]?.[U])return Y[N][U];if(!J||!U||!N&&!J.firebaseApp)throw t7(!J?"config required":!U?"roomId required":"appId missing");let A=nu;if(!Z){let _=W(J);Q=Mz(Xh,()=>{try{return aD(!0,J)}catch{return null}}).filter(Boolean),V=Array.isArray(_)?_:[_];let S=setInterval(()=>{Q=Q.filter((v)=>{let P=Date.now()-v.created<YU;if(!P)v.destroy();return P})},YU);Y.offerCleanupTimer||=S,Z=!0}let H={},I={},w=new Map,C=new Map,D={},x=GU(k5,N,U),h=WU(x),p=WU(GU(x,e1)),u=cu(J.password||"",N,U),n=(_)=>async(S)=>({type:S.type,sdp:await _(u,S.sdp)}),c=n(lu),l=n(pu),G0=(_)=>{return setTimeout(()=>{if(!_.isDead&&!Object.values(I).includes(_))_.destroy()},YU),_},m=(_)=>{try{return G0(aD(_,J))}catch{return null}},Y0=(_,S)=>{if(I[S]===_)return;I[S]?.destroy(),I[S]=_,A(_,S),H[S]?.forEach((v)=>v!==_&&v.destroy()),delete H[S]},U0=(_,S)=>{if(I[S]===_)delete I[S]},y=(_)=>async(S,v,P)=>{let[E,b]=await XX([h,p]);if(S!==E&&S!==b)return;let{peerId:k,offer:f,answer:e,type:q0}=typeof v==="string"?OU(v):v;if(k&&k!==e1)C.set(k,Date.now());if(q0&&k)D[k]=q0;if(k===e1||I[k])return;if(J.admit&&!J.admit(k))return;if(f){if(H[k]?.[_]&&e1>k)return;let Q0=m(!1);if(!Q0)return;Q0.setHandlers({connect:()=>Y0(Q0,k),close:()=>U0(Q0,k)});try{let $0=await c(f);if(Q0.isDead)return;let[D0,k0]=await XX([WU(GU(x,k)),Q0.signal($0).then(l)]);P(D0,G4({peerId:e1,answer:k0,...J.type&&{type:J.type}}))}catch{q?.({error:"decryption failed (offer)",appId:N,peerId:k,roomId:U})}}else if(e){let Q0=H[k]?.[_];if(!Q0||Q0.isDead)return;Q0.setHandlers({connect:()=>Y0(Q0,k),close:()=>U0(Q0,k)});try{Q0.signal(await c(e))}catch{q?.({error:"decryption failed (answer)",appId:N,peerId:k,roomId:U})}}else{let Q0=H[k]||=[];if(Q0.forEach((U1,J0)=>{if(U1&&(U1.isDead||Date.now()-(U1.dialedAt??U1.created)>YU)){if(U1.isDead)w.set(k,Date.now()+30000);U1.destroy(),delete Q0[J0]}}),Q0[_]||Q0.filter(Boolean).length>=2||w.get(k)>Date.now())return;if(Object.values(H).reduce((U1,J0)=>U1+J0.filter((B0)=>B0&&!B0.isDead).length,0)>=Yh)return;let $0=Q.pop(),D0=$0?G0($0):m(!0);if(!D0){w.set(k,Date.now()+30000);return}D0.dialedAt=Date.now();let[k0,{offer:H1}]=await XX([WU(GU(x,k)),D0.offerPromise.then(l).then((U1)=>({offer:U1}))]);Q0[_]=D0,D0.setHandlers({connect:()=>Y0(D0,k),close:()=>U0(D0,k)}),P(k0,G4({peerId:e1,offer:H1,peer:D0,...J.type&&{type:J.type}}))}},o=[],B=[];V.forEach(async(_,S)=>{let v=await _;if(!v)return;let[P,E]=await XX([h,p]);B[S]=G(v,P,E,y(S));let b=async()=>{let k=await X(v,P,E);o[S]=setTimeout(b,typeof k==="number"?k:Zh)};b()}),Y[N]||={};let R=Gh((_)=>A=_,(_)=>delete I[_],()=>R.onCleanup?.(),(_)=>D[_]);return R.onCleanup=()=>{if(delete Y[N][U],o.forEach(clearTimeout),B.forEach((_)=>_?.()),Object.keys(Y).length===0)clearInterval(Y.offerCleanupTimer),delete Y.offerCleanupTimer},R._census=()=>{for(let S of Object.keys(I))C.set(S,Date.now());let _=Date.now()-120000;for(let[S,v]of C)if(v<_)C.delete(S);return[...C.keys()]},Y[N][U]=R}},sD=3333,ZU={},mM={},Qh=(W,G)=>{let X={},Y=null,Z=()=>{if(Y)clearTimeout(Y),Y=null;let V=new WebSocket(W);V.onclose=()=>{ZU[W]??=sD,Y=setTimeout(Z,ZU[W]),ZU[W]*=2},V.onmessage=(Q)=>G(Q.data),X.socket=V,X.url=V.url,X.ready=new Promise((Q)=>{V.onopen=()=>{ZU[W]=sD,Q(X)}}),X.send=(Q)=>{if(V.readyState===1)V.send(Q)}};return X.forceReconnect=Z,Z(),mM[W]=X,X};if(typeof window<"u"){let W=()=>{dA.info("\u26A1 [GenosRTC] Network event detected. Forcing reconnection\u2026"),Object.values(mM).forEach((G)=>{if(G.socket&&G.socket.readyState!==WebSocket.OPEN&&G.socket.readyState!==WebSocket.CONNECTING)G.forceReconnect()})};window.addEventListener("online",()=>{dA.info("\u2705 Reconnected to the network."),W()}),window.addEventListener("offline",async()=>{dA.info("\u274C Disconnected from the network.")}),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="visible")W()})}var Jh=(W)=>()=>hM(ou(W).map(([G,X])=>[G,X.socket])),Uh=(W,G,X,Y)=>(W.relayUrls??(Y?iu(G,vM(W.appId)):G)).slice(0,W.relayUrls?.length??W.relayRedundancy??X),qh=["wss://relay.primal.net","wss://ftp.halifax.rwth-aachen.de/nostr","wss://nostr.oxtr.dev","wss://nostr.sathoarder.com","wss://nostr.mom","wss://nos.lol","wss://nostr.vulpem.com","wss://nostr.data.haus","wss://relay.mostro.network","wss://relay.nostrdice.com"],VX={},Nh=10,fM="x",cM="EVENT",Hh=/pow:\s*(\d+)\s*bits needed\.?/i,Nz=new Set,pM=Cz.utils.randomSecretKey(),Ah=qz(Cz.getPublicKey(pM)),Tz={},vZ={},zh={},lM=()=>Math.floor(Date.now()/1000),dM=(W)=>zh[W]??=vM(W,1e4)+20000,CU=(W)=>W.replace(/\/$/,""),Ih=(W,G)=>{let[X,Y,Z,V]=OU(G);if(X===cM)return vZ[Y]?.(Tz[Y],Z.content);if(X==="NOTICE"||X==="OK"&&!Z){if(+((X==="NOTICE"?Y:V).match(Hh)?.[1]??0)>0){let Q=CU(W);Nz.add(Q),VX[Q]?.close?.(),delete VX[Q]}}},wh=(W)=>{let G=CU(W);if(VX[G])return VX[G];let X=Qh(G,(Y)=>Ih(G,Y));return VX[G]=X},tD=async(W,G)=>{let X={kind:dM(W),content:G,pubkey:Ah,created_at:lM(),tags:[[fM,W]]},Y=LW(G4([0,X.pubkey,X.created_at,X.kind,X.tags,X.content])),Z=new Uint8Array(await crypto.subtle.digest("SHA-256",Y)),V=Cz.sign(Z,pM);return G4([cM,{...X,id:qz(Z),sig:qz(V)}])},eD=(W,G)=>{return Tz[W]=G,G4(["REQ",W,{kinds:[dM(G)],since:lM(),["#"+fM]:[G]}])},WM=(W)=>{return delete Tz[W],G4(["CLOSE",W])},oM=Vh({init:(W)=>{let G=(W?.relayUrls?.length?W.relayUrls:null)??qh;return Uh(W,G,Nh,!1).map(wh).map((X)=>X.ready.then(()=>X).catch(()=>null))},subscribe:(W,G,X,Y)=>{let Z=KU(64),V=KU(64);return vZ[Z]=vZ[V]=(Q,J)=>Y(Q,J,async(U,q)=>{if(Nz.has(CU(W.url)))return;W.send(await tD(U,q))}),W.send(eD(Z,G)),W.send(eD(V,X)),()=>{W.send(WM(Z)),W.send(WM(V)),delete vZ[Z],delete vZ[V]}},announce:async(W,G)=>{if(Nz.has(CU(W.url)))return;W.send(await tD(G,G4({peerId:e1})))}}),Le=Jh(VX),jh={cellSize:"auto",bridgesPerEdge:2,maxCellSize:50,targetCells:100,debug:!1},GM=5000,Oh=3000,Kh=30000,Ch=2000,DU=(W)=>{let G=String(W||"").match(/cell-(\d+)/);return G?Number(G[1]):null},Dh=(W,G)=>{let X=DU(W);if(X==null)return[];let Y=[];for(let Z=1;Z<G;Z*=2){if(X-Z>=0)Y.push(`cell-${X-Z}`);if(X+Z<G)Y.push(`cell-${X+Z}`)}return Y},VU=(W)=>`c${(DU(W)||0).toString(36)}`,Mh=(W,G,X)=>{if(W<=10)return Math.max(2,W);let Y=10,Z=Math.ceil(W/G);return Math.max(Y,Math.min(X,Z))},Th=(W,G)=>{return Math.max(1,Math.ceil(W/G))},nM=(W)=>{let G=0;for(let X=0;X<W.length;X++)G=Math.imul(G^W.charCodeAt(X),2654435761);return G>>>0},Gz=(W,G)=>{let X=0,Y=-1;for(let Z=0;Z<G;Z++){let V=nM(`${W}:${Z}`);if(V>Y)Y=V,X=Z}return X};class qU{constructor(W){this.peerId=W,this.joinedAt=Date.now(),this.lastSeen=Date.now(),this.rttSamples=[],this.stability=1,this.reconnects=0,this.isResponsive=!0,this.connectedCells=new Set}get uptime(){return Date.now()-this.joinedAt}get avgRtt(){if(this.rttSamples.length===0)return 1/0;return Math.round(this.rttSamples.reduce((W,G)=>W+G,0)/this.rttSamples.length)}get healthScore(){let W=this.avgRtt===1/0?0.5:Math.max(0,100-this.avgRtt)/100,G=Math.min(1,this.uptime/60000),X=this.stability,Y=this.isResponsive?1:0.3;return W*0.25+G*0.25+X*0.3+Y*0.2}get isStale(){return Date.now()-this.lastSeen>Kh}addRttSample(W){if(this.rttSamples.push(W),this.rttSamples.length>10)this.rttSamples.shift();this.lastSeen=Date.now(),this.isResponsive=!0}markReconnect(){this.reconnects++,this.stability=Math.max(0,1-this.reconnects*0.1)}markUnresponsive(){this.isResponsive=!1}markSeen(){this.lastSeen=Date.now()}addConnectedCell(W){if(W)this.connectedCells.add(W)}}function Ph(W,G={},X={}){let Y={...jh,...G},Z=!!Y.debug,V=(...$)=>Z&&console.debug("[cells]",...$),Q=Math.max(0,Y.bridgesPerEdge|0),J=Math.max(5,Y.maxCellSize|0),U=Math.max(10,Y.targetCells|0),q=Y.cellSize==="auto",N=q?2:Math.max(1,Y.cellSize|0),A={cellId:null,bridges:[],isBridge:!1},H=null,I=null,w=null,C=new Map,D=new Map,x=new Set,h=new Map,p=new Set,u=new Set,n=0,c=[],l=new Map,G0=new Set,m=new Map,Y0=new Map,U0=1,y=0,o=1,B=0,R=()=>{B0();let $=Th(J0().length,N);if($!==o)o=$,B=Date.now();let d=Date.now()-B;if($>U0&&d>4000)U0=$;else if($<U0&&d>30000)U0=$;return U0},_=()=>Math.min(150,Math.ceil(Math.log2(R()+1))*2+3),S=($)=>Dh($,R()),v=W.on?.bind(W),P=W.off?.bind(W);if(v)W.on=($,d)=>String($).startsWith("mesh:")?k($,d):v($,d);if(P)W.off=($,d)=>String($).startsWith("mesh:")?h.get($)?.delete(d):P($,d);let E=($)=>(x.add($),()=>x.delete($)),b=($,d,X0)=>{if(u.has(X0))return;if(u.add(X0),u.size>GM){let w0=u.values().next().value;u.delete(w0)}for(let w0 of x)try{w0($,d)}catch(e0){V("Error in deliver handler:",e0)}},k=($,d)=>{if(!h.has($))h.set($,new Set);return h.get($).add(d),()=>h.get($)?.delete(d)},f=($,...d)=>{let X0=h.get($);if(X0)for(let w0 of X0)try{w0(...d)}catch{}},e=($)=>{try{return typeof $==="string"?JSON.parse($):$}catch{return null}},q0=()=>`${e1}:${Date.now().toString(36)}:${(n++&65535).toString(36)}`,Q0=()=>{if(p.size>GM)p.delete(p.values().next().value)},$0=($,d,X0=[])=>{if(!$||!d)return;if(C.set($,{cell:d,isBridge:X0.length>0,bridges:[...X0]}),!D.has($))D.set($,new qU($));let w0=D.get($);if(w0.markSeen(),w0.addConnectedCell(d),Y0.set(d,{lastSeen:Date.now(),peerId:$}),X0.length>0)for(let e0 of S(d))w0.addConnectedCell(e0)},D0=($)=>D.get($),k0=($,d)=>{let X0=D.get($);if(X0)X0.addRttSample(d)},H1=($)=>{let d=E0($);if(d.length===0)return null;let X0=0,w0=0;for(let K1 of d){let r0=D.get(K1);if(r0&&!r0.isStale){if(X0+=r0.healthScore,r0.isResponsive)w0++}}let e0=d.filter((K1)=>{let r0=D.get(K1);return r0&&!r0.isStale});return{cellId:$,memberCount:e0.length,avgHealth:e0.length>0?X0/e0.length:0,responsiveRatio:e0.length>0?w0/e0.length:0}},U1=()=>{let $=H1(A.cellId);f("mesh:health",{...A,health:$})},J0=()=>[...new Set([...W._census(),e1])].sort(),B0=()=>{if(!q)return;let $=J0().length,d=Mh($,U,J);if(d!==N)V("cellSize changed:",N,"->",d),N=d},h0=($,d)=>d.filter((X0)=>Gz(X0,R())===$),Y1=($,d)=>{if(Q===0)return[];let X0=DU($),w0=DU(d);if(X0==null||w0==null)return[];let e0=J0(),K1=h0(X0,e0),r0=h0(w0,e0),K0=Math.min(X0,w0),F0=Math.max(X0,w0),g0=(o1)=>nM(`${o1}@${K0}~${F0}`),x0=[...new Set([...K1,...r0])].sort((o1,V7)=>g0(V7)-g0(o1));if(!x0.length)return[];let Q1=new Set(K1),X1=[],S1=(o1)=>o1&&!X1.includes(o1)&&X1.push(o1);S1(x0.find((o1)=>Q1.has(o1))),S1(x0.find((o1)=>!Q1.has(o1)));for(let o1 of x0){if(X1.length>=Math.max(Q,2))break;S1(o1)}return X1},A8=($,d)=>{if(Q===0)return[];let X0=S(d),w0=[];for(let e0 of X0)if(Y1(d,e0).includes($))w0.push(e0);return w0},F1=()=>{B0();let $=J0(),d=Gz(e1,R()),X0=R(),w0=`cell-${d}`,e0=A8(e1,w0),K1=e0.length>0;return V("computeState",{self:e1,myCell:w0,isBridge:K1,bridgeEdges:e0,cellSize:N,rosterSize:$.length,totalCells:X0,dynamicTTL:_()}),{cellId:w0,isBridge:K1,bridges:e0,cellSize:N,dynamicTTL:_(),totalCells:X0}},E0=($)=>{let d=[],X0=new Set(Object.keys(W.getPeers?.()||{}));for(let[w0,e0]of C)if(e0.cell===$){let K1=D.get(w0);if(X0.has(w0)&&(!K1||!K1.isStale))d.push(w0)}return d.sort(),d},l0=()=>{if(!H)return;Q9=qW(),X6=Date.now();let $={t:"state",id:q0(),ttl:_(),data:{id:e1,cell:A.cellId,bridges:A.bridges,health:D.get(e1)?.healthScore||0.5,timestamp:Date.now()},origin:e1,originCell:A.cellId},d=JSON.stringify($);H.send(d),q1(I,d)},q1=($,d)=>{let X0=e(d);if(!X0?.id||!X0?.t)return;let w0=p.has(X0.id);if(!w0)p.add(X0.id),Q0();let{t:e0,id:K1,ttl:r0,data:K0,origin:F0,originCell:g0}=X0,x0=A.cellId;if(e0==="state"&&K0)$0(K0.id,K0.cell,K0.bridges),f("mesh:peer-state",K0);if(e0==="ping"&&K0?.pingId&&F0!==e1){let X1={t:"pong",id:q0(),ttl:_(),data:{pingId:K0.pingId,receivedAt:Date.now()},origin:e1,originCell:x0};H?.send(JSON.stringify(X1))}if(e0==="pong"&&K0?.pingId){let X1=m.get(K0.pingId);if(X1){clearTimeout(X1.timeout);let S1=Date.now()-X1.start;k0(X1.peerId,S1),X1.resolve(S1),m.delete(K0.pingId)}}if(e0==="msg"&&F0!==e1){if(g0===x0||Q>0)b(K0,F0,K1)}if(w0)return;if(!A.isBridge)return;if((r0??0)<=0)return;let Q1=(X1,S1,o1=null)=>{if(!X1)return;let V7={t:e0,id:K1,ttl:o1??(r0??_())-1,data:K0,origin:F0||e1,originCell:g0||x0},NW=JSON.stringify(V7);if(S1?.length){let JZ=new Set(Object.keys(W.getPeers?.()||{})),J9=S1.filter((kJ)=>JZ.has(kJ));if(J9.length>0)X1.send(NW,J9)}else X1.send(NW)};if($===I){for(let X1 of S(x0))Q1(d1(X1),null);return}if(!S(x0).map(VU).includes($))return;Q1(H,null);for(let X1 of S(x0))if(VU(X1)!==$)Q1(d1(X1),null)},d1=($)=>{let d=VU($);if(l.has($))return l.get($);let X0=W.channel(d);if(l.set($,X0),!G0.has(d))G0.add(d),X0.on("message",(w0)=>q1(d,w0));return X0},j8=()=>{if(!A.cellId)return;if(I=VU(A.cellId),H=W.channel(I),!G0.has(I))G0.add(I),H.on("message",($)=>q1(I,$));if(A.isBridge)for(let $ of S(A.cellId))d1($);if(c.length)for(let $ of c.splice(0)){let d={t:"msg",id:q0(),ttl:_(),data:$,origin:e1,originCell:A.cellId},X0=JSON.stringify(d);H.send(X0),q1(I,X0)}l0()},v8=($)=>{if(!A.cellId)return!0;if(!J0().includes($))return!0;let d=`cell-${Gz($,R())}`;if(d===A.cellId)return!0;if(A.bridges.includes(d))return!0;return S(A.cellId).includes(d)&&Y1(d,A.cellId).includes($)},O8=()=>{let $=W.getPeers?.()||{};for(let d of Object.keys($))if(!v8(d))$[d].close?.()};X.admit=v8;let q8=()=>{let $=F1(),d=!A.cellId||A.cellId!==$.cellId||A.isBridge!==$.isBridge||JSON.stringify(A.bridges)!==JSON.stringify($.bridges);if(A=$,$0(e1,$.cellId,$.bridges),d)j8();else l0();O8(),f("mesh:state",$),U1()},Q9="",X6=0,qW=()=>{return`${A.cellId}:${A.isBridge}:${A.bridges.join(",")}`},QZ=()=>{if(w)return;w=setInterval(()=>{let $=R();if($!==y){y=$,q8();return}let d=qW();if(d!==Q9||Date.now()-X6>1e4)l0(),Q9=d;for(let[X0,w0]of D)if(X0!==e1&&w0.isStale)C.delete(X0),D.delete(X0),V("Removed stale peer:",X0)},Ch)},n7=()=>{if(w)clearInterval(w),w=null},i=($)=>{return new Promise((d,X0)=>{let w0=`${Date.now()}-${Math.random().toString(36).slice(2,8)}`,e0=Date.now(),K1=setTimeout(()=>{m.delete(w0);let K0=D.get($);if(K0)K0.markUnresponsive();X0(Error("Ping timeout"))},Oh);m.set(w0,{start:e0,resolve:d,reject:X0,timeout:K1,peerId:$});let r0={t:"ping",id:q0(),ttl:_(),data:{pingId:w0,target:$},origin:e1,originCell:A.cellId};H?.send(JSON.stringify(r0))})};if(W.on?.("peer:join",($)=>{if(!D.has($))D.set($,new qU($));else D.get($).markReconnect();q8()}),W.on?.("peer:leave",($)=>{C.delete($),q8()}),!D.has(e1))D.set(e1,new qU(e1));return D.get(e1).addConnectedCell(A.cellId||"cell-0"),q8(),QZ(),{send:($)=>{if(!A.cellId||!H)return c.push($);let d={t:"msg",id:q0(),ttl:_(),data:$,origin:e1,originCell:A.cellId},X0=JSON.stringify(d);H.send(X0),q1(I,X0)},on:($,d)=>$==="message"?E(d):void 0,ping:i,getState:()=>({...A,cellSize:N,health:H1(A.cellId),dynamicTTL:_(),totalCells:R(),knownCells:Y0.size}),getMetrics:D0,getCellHealth:H1,getPeerInfo:()=>new Map(C),getStableRoster:()=>J0(),getKnownCells:()=>new Map(Y0),getCellSize:()=>N,destroy:()=>{n7(),m.forEach(($)=>clearTimeout($.timeout)),m.clear(),u.clear(),Y0.clear()}}}function Rh(W,G,X){let Y={},Z=oM({...W,admit:(U)=>Y.admit?.(U)??!0},G,X),V=W.overlay||{},Q=Ph(Z,V,Y),J=new Map;return{on:(U,q)=>Z.on(U,q),off:(U,q)=>Z.off?.(U,q),channel:(U)=>{if(J.has(U))return J.get(U);let q=Z.channel(U),N={send:(A,H)=>{Q.send({_ch:U,_d:A,_t:H})},on:(A,H)=>{if(A==="message")Q.on("message",(I,w)=>{if(I?._ch===U)H(I._d,w)}),q.on(A,H);else q.on(A,H)},off:(A,H)=>q.off?.(A,H),_original:q};return J.set(U,N),N},get id(){return Z.id},get peers(){return Z.peers},getPeers:()=>Z.getPeers?.()||{},mesh:Q,_room:Z,getState:()=>Q.getState(),getMetrics:(U)=>Q.getMetrics(U),getCellHealth:(U)=>Q.getCellHealth(U),getPeerInfo:()=>Q.getPeerInfo(),ping:(U)=>Q.ping(U),destroy:()=>{Q.destroy(),J.clear()}}}var Pz=(W,G,X)=>W?.cells||W?.overlay?Rh(W,G,X):oM(W,G,X);import{randomBytes as A2}from"crypto";function Lh(){var W,G=!1,X=this;X._DeArray=function(Y,Z,V){return[Y.slice(Z,Z+V)]},X._EnArray=function(Y,Z,V,Q){for(var J=0;J<V;Y[Z+J]=Q[J]?Q[J]:0,J++);},X._DeChar=function(Y,Z){return String.fromCharCode(Y[Z])},X._EnChar=function(Y,Z,V){Y[Z]=V.charCodeAt(0)},X._DeInt=function(Y,Z){var V=G?W.len-1:0,Q=G?-1:1,J=V+Q*W.len,U,q,N;for(U=0,q=V,N=1;q!=J;U+=Y[Z+q]*N,q+=Q,N*=256);if(W.bSigned&&U&Math.pow(2,W.len*8-1))U-=Math.pow(2,W.len*8);return U},X._EnInt=function(Y,Z,V){var Q=G?W.len-1:0,J=G?-1:1,U=Q+J*W.len,q;V=V<W.min?W.min:V>W.max?W.max:V;for(q=Q;q!=U;Y[Z+q]=V&255,q+=J,V>>=8);},X._DeString=function(Y,Z,V){for(var Q=Array(V),J=0;J<V;Q[J]=String.fromCharCode(Y[Z+J]),J++);return Q.join("")},X._EnString=function(Y,Z,V,Q){for(var J,U=0;U<V;Y[Z+U]=(J=Q.charCodeAt(U))?J:0,U++);},X._De754=function(Y,Z){var V,Q,J,U,q,N,A,H,I,w;A=W.mLen,H=W.len*8-W.mLen-1,w=(1<<H)-1,I=w>>1,U=G?0:W.len-1,q=G?1:-1,V=Y[Z+U],U+=q,N=-7;for(Q=V&(1<<-N)-1,V>>=-N,N+=H;N>0;Q=Q*256+Y[Z+U],U+=q,N-=8);for(J=Q&(1<<-N)-1,Q>>=-N,N+=A;N>0;J=J*256+Y[Z+U],U+=q,N-=8);switch(Q){case 0:Q=1-I;break;case w:return J?NaN:(V?-1:1)*(1/0);default:J=J+Math.pow(2,A),Q=Q-I;break}return(V?-1:1)*J*Math.pow(2,Q-A)},X._En754=function(Y,Z,V){var Q,J,U,q,N,A,H,I,w,C;if(H=W.mLen,I=W.len*8-W.mLen-1,C=(1<<I)-1,w=C>>1,Q=V<0?1:0,V=Math.abs(V),isNaN(V)||V==1/0)U=isNaN(V)?1:0,J=C;else{if(J=Math.floor(Math.log(V)/Math.LN2),V*(A=Math.pow(2,-J))<1)J--,A*=2;if(J+w>=1)V+=W.rt/A;else V+=W.rt*Math.pow(2,1-w);if(V*A>=2)J++,A/=2;if(J+w>=C)U=0,J=C;else if(J+w>=1)U=(V*A-1)*Math.pow(2,H),J=J+w;else U=V*Math.pow(2,w-1)*Math.pow(2,H),J=0}for(q=G?W.len-1:0,N=G?-1:1;H>=8;Y[Z+q]=U&255,q+=N,U/=256,H-=8);for(J=J<<H|U,I+=H;I>0;Y[Z+q]=J&255,q+=N,J/=256,I-=8);Y[Z+q-N]|=Q*128},X._DeInt64=function(Y,Z){var V=G?0:7,Q=G?1:-1,J=V+Q*8,U=[0,0,!W.bSigned],q,N,A;for(q=V,A=1,N=0;q!=J;U[A]=(U[A]<<8>>>0)+Y[Z+q],q+=Q,N++,A=N<4?1:0);return U},X._EnInt64=function(Y,Z,V){var Q=G?0:7,J=G?1:-1,U=Q+J*8,q,N,A,H;for(q=Q,A=1,N=0,H=24;q!=U;Y[Z+q]=V[A]>>H&255,q+=J,N++,A=N<4?1:0,H=24-8*(N%4));},X._sPattern="(\\d + )?([AxcbBhHsfdiIlLqQ])",X._lenLut={A:1,x:1,c:1,b:1,B:1,h:2,H:2,s:1,f:4,d:8,i:4,I:4,l:4,L:4,q:8,Q:8},X._elLut={A:{en:X._EnArray,de:X._DeArray},s:{en:X._EnString,de:X._DeString},c:{en:X._EnChar,de:X._DeChar},b:{en:X._EnInt,de:X._DeInt,len:1,bSigned:!0,min:-Math.pow(2,7),max:Math.pow(2,7)-1},B:{en:X._EnInt,de:X._DeInt,len:1,bSigned:!1,min:0,max:Math.pow(2,8)-1},h:{en:X._EnInt,de:X._DeInt,len:2,bSigned:!0,min:-Math.pow(2,15),max:Math.pow(2,15)-1},H:{en:X._EnInt,de:X._DeInt,len:2,bSigned:!1,min:0,max:Math.pow(2,16)-1},i:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},I:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},l:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!0,min:-Math.pow(2,31),max:Math.pow(2,31)-1},L:{en:X._EnInt,de:X._DeInt,len:4,bSigned:!1,min:0,max:Math.pow(2,32)-1},f:{en:X._En754,de:X._De754,len:4,mLen:23,rt:Math.pow(2,-24)-Math.pow(2,-77)},d:{en:X._En754,de:X._De754,len:8,mLen:52,rt:0},q:{en:X._EnInt64,de:X._DeInt64,bSigned:!0},Q:{en:X._EnInt64,de:X._DeInt64,bSigned:!1}},X._UnpackSeries=function(Y,Z,V,Q){for(var J=W.de,U=[],q=0;q<Y;U.push(J(V,Q+q*Z)),q++);return U},X._PackSeries=function(Y,Z,V,Q,J,U){for(var q=W.en,N=0;N<Y;q(V,Q+N*Z,J[U+N]),N++);},X.Unpack=function(Y,Z,V){G=Y.charAt(0)!="<",V=V?V:0;var Q=new RegExp(this._sPattern,"g"),J,U,q,N=[];while(J=Q.exec(Y)){if(U=J[1]==null||J[1]==""?1:parseInt(J[1]),q=this._lenLut[J[2]],V+U*q>Z.length)return;switch(J[2]){case"A":case"s":N.push(this._elLut[J[2]].de(Z,V,U));break;case"c":case"b":case"B":case"h":case"H":case"i":case"I":case"l":case"L":case"f":case"d":case"q":case"Q":W=this._elLut[J[2]],N.push(this._UnpackSeries(U,q,Z,V));break}V+=U*q}return Array.prototype.concat.apply([],N)},X.PackTo=function(Y,Z,V,Q){G=Y.charAt(0)!="<";var J=new RegExp(this._sPattern,"g"),U,q,N,A,H=0;while(U=J.exec(Y)){if(q=U[1]==null||U[1]==""?1:parseInt(U[1]),N=this._lenLut[U[2]],V+q*N>Z.length)return!1;switch(U[2]){case"A":case"s":if(H+1>Q.length)return!1;this._elLut[U[2]].en(Z,V,q,Q[H]),H+=1;break;case"c":case"b":case"B":case"h":case"H":case"i":case"I":case"l":case"L":case"f":case"d":case"q":case"Q":if(W=this._elLut[U[2]],H+q>Q.length)return!1;this._PackSeries(q,N,Z,V,Q,H),H+=q;break;case"x":for(A=0;A<q;A++)Z[V+A]=0;break}V+=q*N}return Z},X.Pack=function(Y,Z){return this.PackTo(Y,Array(this.CalcLength(Y)),0,Z)},X.CalcLength=function(Y){var Z=new RegExp(this._sPattern,"g"),V=0,Q;while(Q=Z.exec(Y))V+=(Q[1]==null||Q[1]==""?1:parseInt(Q[1]))*this._lenLut[Q[2]];return V}}var r1=new Lh;var P2=_1(YT(),1),qH=_1(gz(),1);import{createSocket as Ld}from"dgram";import{createSocket as $d}from"dgram";import*as R2 from"net";import{connect as Fd}from"net";import{createSign as xd,randomBytes as kd,webcrypto as _d}from"crypto";var Nq0=_1(xT(),1);var C7={};qA(C7,{verifySchema:()=>um,fromBER:()=>Q4,compareSchema:()=>X4,VisibleString:()=>SW,ViewWriter:()=>lZ,VideotexString:()=>TX,ValueBlock:()=>s8,Utf8String:()=>y5,UniversalString:()=>KX,UTCTime:()=>xW,TimeOfDay:()=>aU,TeletexString:()=>MX,TIME:()=>eU,Set:()=>b9,Sequence:()=>x9,Repeated:()=>zX,RelativeObjectIdentifier:()=>iU,RawData:()=>TP,PrintableString:()=>DX,Primitive:()=>w6,OctetString:()=>O7,ObjectIdentifier:()=>jX,NumericString:()=>CX,Null:()=>j7,Integer:()=>j6,IA5String:()=>PX,HexBlock:()=>w7,GraphicString:()=>RX,GeneralizedTime:()=>EX,GeneralString:()=>LX,Enumerated:()=>wX,EndOfContent:()=>oU,Duration:()=>tU,DateTime:()=>sU,DEFAULT_MAX_NODES:()=>lT,DEFAULT_MAX_DEPTH:()=>pT,DEFAULT_MAX_CONTENT_LENGTH:()=>dT,DATE:()=>rU,Constructed:()=>m8,Choice:()=>oZ,CharacterString:()=>BX,Boolean:()=>IX,BmpString:()=>OX,BitString:()=>K7,BaseStringBlock:()=>lU,BaseBlock:()=>F8,Any:()=>Z4});/*!
|
|
148
|
+
* MIT License
|
|
149
|
+
*
|
|
150
|
+
* Copyright (c) 2017-2024 Peculiar Ventures, LLC
|
|
151
|
+
*
|
|
152
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
153
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
154
|
+
* in the Software without restriction, including without limitation the rights
|
|
155
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
156
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
157
|
+
* furnished to do so, subject to the following conditions:
|
|
158
|
+
*
|
|
159
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
160
|
+
* copies or substantial portions of the Software.
|
|
161
|
+
*
|
|
162
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
163
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
164
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
165
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
166
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
167
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
168
|
+
* SOFTWARE.
|
|
169
|
+
*
|
|
170
|
+
*/class S0{static isArrayBuffer(W){return Object.prototype.toString.call(W)==="[object ArrayBuffer]"}static toArrayBuffer(W){if(this.isArrayBuffer(W))return W;if(W.byteLength===W.buffer.byteLength)return W.buffer;if(W.byteOffset===0&&W.byteLength===W.buffer.byteLength)return W.buffer;return this.toUint8Array(W.buffer).slice(W.byteOffset,W.byteOffset+W.byteLength).buffer}static toUint8Array(W){return this.toView(W,Uint8Array)}static toView(W,G){if(W.constructor===G)return W;if(this.isArrayBuffer(W))return new G(W);if(this.isArrayBufferView(W))return new G(W.buffer,W.byteOffset,W.byteLength);throw TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(W){return this.isArrayBufferView(W)||this.isArrayBuffer(W)}static isArrayBufferView(W){return ArrayBuffer.isView(W)||W&&this.isArrayBuffer(W.buffer)}static isEqual(W,G){let X=S0.toUint8Array(W),Y=S0.toUint8Array(G);if(X.length!==Y.byteLength)return!1;for(let Z=0;Z<X.length;Z++)if(X[Z]!==Y[Z])return!1;return!0}static concat(...W){let G;if(Array.isArray(W[0])&&!(W[1]instanceof Function))G=W[0];else if(Array.isArray(W[0])&&W[1]instanceof Function)G=W[0];else if(W[W.length-1]instanceof Function)G=W.slice(0,W.length-1);else G=W;let X=0;for(let V of G)X+=V.byteLength;let Y=new Uint8Array(X),Z=0;for(let V of G){let Q=this.toUint8Array(V);Y.set(Q,Z),Z+=Q.length}if(W[W.length-1]instanceof Function)return this.toView(Y,W[W.length-1]);return Y.buffer}}var uz="string",Im=/^[0-9a-f\s]+$/i,wm=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,jm=/^[a-zA-Z0-9-_]+$/;class hz{static fromString(W){let G=unescape(encodeURIComponent(W)),X=new Uint8Array(G.length);for(let Y=0;Y<G.length;Y++)X[Y]=G.charCodeAt(Y);return X.buffer}static toString(W){let G=S0.toUint8Array(W),X="";for(let Z=0;Z<G.length;Z++)X+=String.fromCharCode(G[Z]);return decodeURIComponent(escape(X))}}class _5{static toString(W,G=!1){let X=S0.toArrayBuffer(W),Y=new DataView(X),Z="";for(let V=0;V<X.byteLength;V+=2){let Q=Y.getUint16(V,G);Z+=String.fromCharCode(Q)}return Z}static fromString(W,G=!1){let X=new ArrayBuffer(W.length*2),Y=new DataView(X);for(let Z=0;Z<W.length;Z++)Y.setUint16(Z*2,W.charCodeAt(Z),G);return X}}class p0{static isHex(W){return typeof W===uz&&Im.test(W)}static isBase64(W){return typeof W===uz&&wm.test(W)}static isBase64Url(W){return typeof W===uz&&jm.test(W)}static ToString(W,G="utf8"){let X=S0.toUint8Array(W);switch(G.toLowerCase()){case"utf8":return this.ToUtf8String(X);case"binary":return this.ToBinary(X);case"hex":return this.ToHex(X);case"base64":return this.ToBase64(X);case"base64url":return this.ToBase64Url(X);case"utf16le":return _5.toString(X,!0);case"utf16":case"utf16be":return _5.toString(X);default:throw Error(`Unknown type of encoding '${G}'`)}}static FromString(W,G="utf8"){if(!W)return new ArrayBuffer(0);switch(G.toLowerCase()){case"utf8":return this.FromUtf8String(W);case"binary":return this.FromBinary(W);case"hex":return this.FromHex(W);case"base64":return this.FromBase64(W);case"base64url":return this.FromBase64Url(W);case"utf16le":return _5.fromString(W,!0);case"utf16":case"utf16be":return _5.fromString(W);default:throw Error(`Unknown type of encoding '${G}'`)}}static ToBase64(W){let G=S0.toUint8Array(W);if(typeof btoa<"u"){let X=this.ToString(G,"binary");return btoa(X)}else return Buffer.from(G).toString("base64")}static FromBase64(W){let G=this.formatString(W);if(!G)return new ArrayBuffer(0);if(!p0.isBase64(G))throw TypeError("Argument 'base64Text' is not Base64 encoded");if(typeof atob<"u")return this.FromBinary(atob(G));else return new Uint8Array(Buffer.from(G,"base64")).buffer}static FromBase64Url(W){let G=this.formatString(W);if(!G)return new ArrayBuffer(0);if(!p0.isBase64Url(G))throw TypeError("Argument 'base64url' is not Base64Url encoded");return this.FromBase64(this.Base64Padding(G.replace(/\-/g,"+").replace(/\_/g,"/")))}static ToBase64Url(W){return this.ToBase64(W).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}static FromUtf8String(W,G=p0.DEFAULT_UTF8_ENCODING){switch(G){case"ascii":return this.FromBinary(W);case"utf8":return hz.fromString(W);case"utf16":case"utf16be":return _5.fromString(W);case"utf16le":case"usc2":return _5.fromString(W,!0);default:throw Error(`Unknown type of encoding '${G}'`)}}static ToUtf8String(W,G=p0.DEFAULT_UTF8_ENCODING){switch(G){case"ascii":return this.ToBinary(W);case"utf8":return hz.toString(W);case"utf16":case"utf16be":return _5.toString(W);case"utf16le":case"usc2":return _5.toString(W,!0);default:throw Error(`Unknown type of encoding '${G}'`)}}static FromBinary(W){let G=W.length,X=new Uint8Array(G);for(let Y=0;Y<G;Y++)X[Y]=W.charCodeAt(Y);return X.buffer}static ToBinary(W){let G=S0.toUint8Array(W),X="";for(let Y=0;Y<G.length;Y++)X+=String.fromCharCode(G[Y]);return X}static ToHex(W){let G=S0.toUint8Array(W),X="",Y=G.length;for(let Z=0;Z<Y;Z++){let V=G[Z];if(V<16)X+="0";X+=V.toString(16)}return X}static FromHex(W){let G=this.formatString(W);if(!G)return new ArrayBuffer(0);if(!p0.isHex(G))throw TypeError("Argument 'hexString' is not HEX encoded");if(G.length%2)G=`0${G}`;let X=new Uint8Array(G.length/2);for(let Y=0;Y<G.length;Y=Y+2){let Z=G.slice(Y,Y+2);X[Y/2]=parseInt(Z,16)}return X.buffer}static ToUtf16String(W,G=!1){return _5.toString(W,G)}static FromUtf16String(W,G=!1){return _5.fromString(W,G)}static Base64Padding(W){let G=4-W.length%4;if(G<4)for(let X=0;X<G;X++)W+="=";return W}static formatString(W){return(W===null||W===void 0?void 0:W.replace(/[\n\r\t ]/g,""))||""}}p0.DEFAULT_UTF8_ENCODING="utf8";function kT(...W){let G=W.map((Z)=>Z.byteLength).reduce((Z,V)=>Z+V),X=new Uint8Array(G),Y=0;return W.map((Z)=>new Uint8Array(Z)).forEach((Z)=>{for(let V of Z)X[Y++]=V}),X.buffer}function _T(W,G){if(!(W&&G))return!1;if(W.byteLength!==G.byteLength)return!1;let X=new Uint8Array(W),Y=new Uint8Array(G);for(let Z=0;Z<W.byteLength;Z++)if(X[Z]!==Y[Z])return!1;return!0}/*!
|
|
171
|
+
Copyright (c) Peculiar Ventures, LLC
|
|
172
|
+
*/function FW(W,G){let X=0;if(W.length===1)return W[0];for(let Y=W.length-1;Y>=0;Y--)X+=W[W.length-1-Y]*Math.pow(2,G*Y);return X}function z6(W,G,X=-1){let Y=X,Z=W,V=0,Q=Math.pow(2,G);for(let J=1;J<8;J++){if(W<Q){let U;if(Y<0)U=new ArrayBuffer(J),V=J;else{if(Y<J)return new ArrayBuffer(0);U=new ArrayBuffer(Y),V=Y}let q=new Uint8Array(U);for(let N=J-1;N>=0;N--){let A=Math.pow(2,N*G);q[V-N-1]=Math.floor(Z/A),Z-=q[V-N-1]*A}return U}Q*=Math.pow(2,G)}return new ArrayBuffer(0)}function bU(...W){let G=0,X=0;for(let V of W)G+=V.length;let Y=new ArrayBuffer(G),Z=new Uint8Array(Y);for(let V of W)Z.set(V,X),X+=V.length;return Z}function bz(){let W=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){let J=W[0]===255&&W[1]&128,U=W[0]===0&&(W[1]&128)===0;if(J||U)this.warnings.push("Needlessly long format")}let G=new ArrayBuffer(this.valueHex.byteLength),X=new Uint8Array(G);for(let J=0;J<this.valueHex.byteLength;J++)X[J]=0;X[0]=W[0]&128;let Y=FW(X,8),Z=new ArrayBuffer(this.valueHex.byteLength),V=new Uint8Array(Z);for(let J=0;J<this.valueHex.byteLength;J++)V[J]=W[J];return V[0]&=127,FW(V,8)-Y}function yT(W){let G=W<0?W*-1:W,X=128;for(let Y=1;Y<8;Y++){if(G<=X){if(W<0){let Q=X-G,J=z6(Q,8,Y),U=new Uint8Array(J);return U[0]|=128,J}let Z=z6(G,8,Y),V=new Uint8Array(Z);if(V[0]&128){let Q=Z.slice(0),J=new Uint8Array(Q);Z=new ArrayBuffer(Z.byteLength+1),V=new Uint8Array(Z);for(let U=0;U<Q.byteLength;U++)V[U+1]=J[U];V[0]=0}return Z}X*=Math.pow(2,8)}return new ArrayBuffer(0)}function vT(W,G){if(W.byteLength!==G.byteLength)return!1;let X=new Uint8Array(W),Y=new Uint8Array(G);for(let Z=0;Z<X.length;Z++)if(X[Z]!==Y[Z])return!1;return!0}function u9(W,G){let X=W.toString(10);if(G<X.length)return"";let Y=G-X.length,Z=Array(Y);for(let Q=0;Q<Y;Q++)Z[Q]="0";return Z.join("").concat(X)}var de=Math.log(2);/*!
|
|
173
|
+
* Copyright (c) 2014, GMO GlobalSign
|
|
174
|
+
* Copyright (c) 2015-2022, Peculiar Ventures
|
|
175
|
+
* All rights reserved.
|
|
176
|
+
*
|
|
177
|
+
* Author 2014-2019, Yury Strozhevsky
|
|
178
|
+
*
|
|
179
|
+
* Redistribution and use in source and binary forms, with or without modification,
|
|
180
|
+
* are permitted provided that the following conditions are met:
|
|
181
|
+
*
|
|
182
|
+
* * Redistributions of source code must retain the above copyright notice, this
|
|
183
|
+
* list of conditions and the following disclaimer.
|
|
184
|
+
*
|
|
185
|
+
* * Redistributions in binary form must reproduce the above copyright notice, this
|
|
186
|
+
* list of conditions and the following disclaimer in the documentation and/or
|
|
187
|
+
* other materials provided with the distribution.
|
|
188
|
+
*
|
|
189
|
+
* * Neither the name of the copyright holder nor the names of its
|
|
190
|
+
* contributors may be used to endorse or promote products derived from
|
|
191
|
+
* this software without specific prior written permission.
|
|
192
|
+
*
|
|
193
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
194
|
+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
195
|
+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
196
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
197
|
+
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
198
|
+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
199
|
+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
200
|
+
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
201
|
+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
202
|
+
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
203
|
+
*
|
|
204
|
+
*/function mU(){if(typeof BigInt>"u")throw Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function fz(W){let G=0,X=0;for(let Z=0;Z<W.length;Z++){let V=W[Z];G+=V.byteLength}let Y=new Uint8Array(G);for(let Z=0;Z<W.length;Z++){let V=W[Z];Y.set(new Uint8Array(V),X),X+=V.byteLength}return Y.buffer}function V4(W,G,X,Y){if(!(G instanceof Uint8Array))return W.error="Wrong parameter: inputBuffer must be 'Uint8Array'",!1;if(!G.byteLength)return W.error="Wrong parameter: inputBuffer has zero length",!1;if(X<0)return W.error="Wrong parameter: inputOffset less than zero",!1;if(Y<0)return W.error="Wrong parameter: inputLength less than zero",!1;if(G.byteLength-X-Y<0)return W.error="End of input reached before message was fully decoded (inconsistent offset and length values)",!1;return!0}class lZ{constructor(){this.items=[]}write(W){this.items.push(W)}final(){return fz(this.items)}}var fZ=[new Uint8Array([1])],gT="0123456789",mz="name",uT="valueHexView",Cm="isHexOnly",Dm="idBlock",Mm="tagClass",Tm="tagNumber",Pm="isConstructed",Rm="fromBER",Lm="toBER",Bm="local",h9="",I7=new ArrayBuffer(0),pU=new Uint8Array(0),pZ="EndOfContent",bT="OCTET STRING",mT="BIT STRING";function w7(W){var G;return G=class extends W{get valueHex(){return this.valueHexView.slice().buffer}set valueHex(Y){this.valueHexView=new Uint8Array(Y)}constructor(...Y){var Z;super(...Y);let V=Y[0]||{};this.isHexOnly=(Z=V.isHexOnly)!==null&&Z!==void 0?Z:!1,this.valueHexView=V.valueHex?S0.toUint8Array(V.valueHex):pU}fromBER(Y,Z,V,Q){let J=Y instanceof ArrayBuffer?new Uint8Array(Y):Y;if(!V4(this,J,Z,V))return-1;let U=Z+V;if(this.valueHexView=J.subarray(Z,U),!this.valueHexView.length)return this.warnings.push("Zero buffer length"),Z;return this.blockLength=V,U}toBER(Y=!1){if(!this.isHexOnly)return this.error="Flag 'isHexOnly' is not set, abort",I7;if(Y)return new ArrayBuffer(this.valueHexView.byteLength);return this.valueHexView.byteLength===this.valueHexView.buffer.byteLength?this.valueHexView.buffer:this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isHexOnly:this.isHexOnly,valueHex:p0.ToHex(this.valueHexView)}}},G.NAME="hexBlock",G}class I6{static blockName(){return this.NAME}get valueBeforeDecode(){return this.valueBeforeDecodeView.slice().buffer}set valueBeforeDecode(W){this.valueBeforeDecodeView=new Uint8Array(W)}constructor({blockLength:W=0,error:G=h9,warnings:X=[],valueBeforeDecode:Y=pU}={}){this.blockLength=W,this.error=G,this.warnings=X,this.valueBeforeDecodeView=S0.toUint8Array(Y)}toJSON(){return{blockName:this.constructor.NAME,blockLength:this.blockLength,error:this.error,warnings:this.warnings,valueBeforeDecode:p0.ToHex(this.valueBeforeDecodeView)}}}I6.NAME="baseBlock";class s8 extends I6{fromBER(W,G,X,Y){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}toBER(W,G){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}}s8.NAME="valueBlock";class cz extends w7(I6){constructor({idBlock:W={}}={}){var G,X,Y,Z;super();if(W)this.isHexOnly=(G=W.isHexOnly)!==null&&G!==void 0?G:!1,this.valueHexView=W.valueHex?S0.toUint8Array(W.valueHex):pU,this.tagClass=(X=W.tagClass)!==null&&X!==void 0?X:-1,this.tagNumber=(Y=W.tagNumber)!==null&&Y!==void 0?Y:-1,this.isConstructed=(Z=W.isConstructed)!==null&&Z!==void 0?Z:!1;else this.tagClass=-1,this.tagNumber=-1,this.isConstructed=!1}toBER(W=!1){let G=0;switch(this.tagClass){case 1:G|=0;break;case 2:G|=64;break;case 3:G|=128;break;case 4:G|=192;break;default:return this.error="Unknown tag class",I7}if(this.isConstructed)G|=32;if(this.tagNumber<31&&!this.isHexOnly){let Y=new Uint8Array(1);if(!W){let Z=this.tagNumber;Z&=31,G|=Z,Y[0]=G}return Y.buffer}if(!this.isHexOnly){let Y=z6(this.tagNumber,7),Z=new Uint8Array(Y),V=Y.byteLength,Q=new Uint8Array(V+1);if(Q[0]=G|31,!W){for(let J=0;J<V-1;J++)Q[J+1]=Z[J]|128;Q[V]=Z[V-1]}return Q.buffer}let X=new Uint8Array(this.valueHexView.byteLength+1);if(X[0]=G|31,!W){let Y=this.valueHexView;for(let Z=0;Z<Y.length-1;Z++)X[Z+1]=Y[Z]|128;X[this.valueHexView.byteLength]=Y[Y.length-1]}return X.buffer}fromBER(W,G,X){let Y=S0.toUint8Array(W);if(!V4(this,Y,G,X))return-1;let Z=Y.subarray(G,G+X);if(Z.length===0)return this.error="Zero buffer length",-1;switch(Z[0]&192){case 0:this.tagClass=1;break;case 64:this.tagClass=2;break;case 128:this.tagClass=3;break;case 192:this.tagClass=4;break;default:return this.error="Unknown tag class",-1}this.isConstructed=(Z[0]&32)===32,this.isHexOnly=!1;let Q=Z[0]&31;if(Q!==31)this.tagNumber=Q,this.blockLength=1;else{let J=0;while(!0){let q=J+1;if(q>=Z.length)return this.error="End of input reached before message was fully decoded",-1;if(J++,(Z[q]&128)===0)break}this.blockLength=J+1;let U=this.valueHexView=new Uint8Array(J);for(let q=0;q<J;q++)U[q]=Z[q+1]&127;if(this.blockLength<=9)this.tagNumber=FW(U,7);else this.isHexOnly=!0,this.warnings.push("Tag too long, represented as hex-coded")}if(this.tagClass===1&&this.isConstructed)switch(this.tagNumber){case 1:case 2:case 5:case 6:case 9:case 13:case 14:case 23:case 24:case 31:case 32:case 33:case 34:return this.error="Constructed encoding used for primitive type",-1}return G+this.blockLength}toJSON(){return{...super.toJSON(),tagClass:this.tagClass,tagNumber:this.tagNumber,isConstructed:this.isConstructed}}}cz.NAME="identificationBlock";class pz extends I6{constructor({lenBlock:W={}}={}){var G,X,Y;super();this.isIndefiniteForm=(G=W.isIndefiniteForm)!==null&&G!==void 0?G:!1,this.longFormUsed=(X=W.longFormUsed)!==null&&X!==void 0?X:!1,this.length=(Y=W.length)!==null&&Y!==void 0?Y:0}fromBER(W,G,X){let Y=S0.toUint8Array(W);if(!V4(this,Y,G,X))return-1;let Z=Y.subarray(G,G+X);if(Z.length===0)return this.error="Zero buffer length",-1;if(Z[0]===255)return this.error="Length block 0xFF is reserved by standard",-1;if(this.isIndefiniteForm=Z[0]===128,this.isIndefiniteForm)return this.blockLength=1,G+this.blockLength;if(this.longFormUsed=!!(Z[0]&128),this.longFormUsed===!1)return this.length=Z[0],this.blockLength=1,G+this.blockLength;let V=Z[0]&127;if(V>8)return this.error="Too big integer",-1;if(V+1>Z.length)return this.error="End of input reached before message was fully decoded",-1;let Q=G+1,J=Y.subarray(Q,Q+V);if(J[V-1]===0)this.warnings.push("Needlessly long encoded length");if(this.length=FW(J,8),this.longFormUsed&&this.length<=127)this.warnings.push("Unnecessary usage of long length form");return this.blockLength=V+1,G+this.blockLength}toBER(W=!1){let G,X;if(this.length>127)this.longFormUsed=!0;if(this.isIndefiniteForm){if(G=new ArrayBuffer(1),W===!1)X=new Uint8Array(G),X[0]=128;return G}if(this.longFormUsed){let Y=z6(this.length,8);if(Y.byteLength>127)return this.error="Too big length",I7;if(G=new ArrayBuffer(Y.byteLength+1),W)return G;let Z=new Uint8Array(Y);X=new Uint8Array(G),X[0]=Y.byteLength|128;for(let V=0;V<Y.byteLength;V++)X[V+1]=Z[V];return G}if(G=new ArrayBuffer(1),W===!1)X=new Uint8Array(G),X[0]=this.length;return G}toJSON(){return{...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,longFormUsed:this.longFormUsed,length:this.length}}}pz.NAME="lengthBlock";var b0={};class F8 extends I6{constructor({name:W=h9,optional:G=!1,primitiveSchema:X,...Y}={},Z){super(Y);if(this.name=W,this.optional=G,X)this.primitiveSchema=X;this.idBlock=new cz(Y),this.lenBlock=new pz(Y),this.valueBlock=Z?new Z(Y):new s8(Y)}fromBER(W,G,X,Y){let Z=this.valueBlock.fromBER(W,G,this.lenBlock.isIndefiniteForm?X:this.lenBlock.length,Y);if(Z===-1)return this.error=this.valueBlock.error,Z;if(!this.idBlock.error.length)this.blockLength+=this.idBlock.blockLength;if(!this.lenBlock.error.length)this.blockLength+=this.lenBlock.blockLength;if(!this.valueBlock.error.length)this.blockLength+=this.valueBlock.blockLength;return Z}toBER(W,G){let X=G||new lZ;if(!G)fT(this);let Y=this.idBlock.toBER(W);if(X.write(Y),this.lenBlock.isIndefiniteForm)X.write(new Uint8Array([128]).buffer),this.valueBlock.toBER(W,X),X.write(new ArrayBuffer(2));else{let Z=this.valueBlock.toBER(W);this.lenBlock.length=Z.byteLength;let V=this.lenBlock.toBER(W);X.write(V),X.write(Z)}if(!G)return X.final();return I7}toJSON(){let W={...super.toJSON(),idBlock:this.idBlock.toJSON(),lenBlock:this.lenBlock.toJSON(),valueBlock:this.valueBlock.toJSON(),name:this.name,optional:this.optional};if(this.primitiveSchema)W.primitiveSchema=this.primitiveSchema.toJSON();return W}toString(W="ascii"){if(W==="ascii")return this.onAsciiEncoding();return p0.ToHex(this.toBER())}onAsciiEncoding(){let W=this.constructor.NAME,G=p0.ToHex(this.valueBlock.valueBeforeDecodeView);return`${W} : ${G}`}isEqual(W){if(this===W)return!0;if(!(W instanceof this.constructor))return!1;let G=this.toBER(),X=W.toBER();return vT(G,X)}}F8.NAME="BaseBlock";function fT(W){var G;if(W instanceof b0.Constructed){for(let X of W.valueBlock.value)if(fT(X))W.lenBlock.isIndefiniteForm=!0}return!!((G=W.lenBlock)===null||G===void 0?void 0:G.isIndefiniteForm)}class lU extends F8{getValue(){return this.valueBlock.value}setValue(W){this.valueBlock.value=W}constructor({value:W=h9,...G}={},X){super(G,X);if(W)this.fromString(W)}fromBER(W,G,X){let Y=this.valueBlock.fromBER(W,G,this.lenBlock.isIndefiniteForm?X:this.lenBlock.length);if(Y===-1)return this.error=this.valueBlock.error,Y;if(this.fromBuffer(this.valueBlock.valueHexView),!this.idBlock.error.length)this.blockLength+=this.idBlock.blockLength;if(!this.lenBlock.error.length)this.blockLength+=this.lenBlock.blockLength;if(!this.valueBlock.error.length)this.blockLength+=this.valueBlock.blockLength;return Y}onAsciiEncoding(){return`${this.constructor.NAME} : '${this.valueBlock.value}'`}}lU.NAME="BaseStringBlock";class lz extends w7(s8){constructor({isHexOnly:W=!0,...G}={}){super(G);this.isHexOnly=W}}lz.NAME="PrimitiveValueBlock";var cT;class w6 extends F8{constructor(W={}){super(W,lz);this.idBlock.isConstructed=!1}}cT=w6;(()=>{b0.Primitive=cT})();w6.NAME="PRIMITIVE";var pT=100,lT=1e4,dT=16777216,Em="Maximum ASN.1 nesting depth exceeded",$m="Maximum ASN.1 node count exceeded",Fm="Maximum ASN.1 content length exceeded";function dZ(W={}){var G,X,Y;return{depth:0,maxDepth:(G=W.maxDepth)!==null&&G!==void 0?G:pT,nodesCount:0,maxNodes:(X=W.maxNodes)!==null&&X!==void 0?X:lT,maxContentLength:(Y=W.maxContentLength)!==null&&Y!==void 0?Y:dT}}function Sm(W){let G=new F8({},s8);return G.error=W,{offset:-1,result:G}}function xm(W){if(W.nodesCount+=1,W.nodesCount>W.maxNodes)return $m;return}function km(W,G){if(W>G.maxContentLength)return Fm;return}function dz(W,G,X,Y){let Z=Y.depth+1;if(Z>Y.maxDepth)return Sm(Em);Y.depth=Z;try{return dU(W,G,X,Y)}finally{Y.depth-=1}}function _m(W,G){if(W instanceof G)return W;let X=new G;return X.idBlock=W.idBlock,X.lenBlock=W.lenBlock,X.warnings=W.warnings,X.valueBeforeDecodeView=W.valueBeforeDecodeView,X}function dU(W,G=0,X=W.length,Y=dZ()){let Z=G,V=new F8({},s8),Q=new I6;if(!V4(Q,W,G,X))return V.error=Q.error,{offset:-1,result:V};if(!W.subarray(G,G+X).length)return V.error="Zero buffer length",{offset:-1,result:V};let U=xm(Y);if(U)return V.error=U,{offset:-1,result:V};let q=V.idBlock.fromBER(W,G,X);if(V.idBlock.warnings.length)V.warnings.concat(V.idBlock.warnings);if(q===-1)return V.error=V.idBlock.error,{offset:-1,result:V};if(G=q,X-=V.idBlock.blockLength,q=V.lenBlock.fromBER(W,G,X),V.lenBlock.warnings.length)V.warnings.concat(V.lenBlock.warnings);if(q===-1)return V.error=V.lenBlock.error,{offset:-1,result:V};G=q,X-=V.lenBlock.blockLength;let N=V.lenBlock.isIndefiniteForm?X:V.lenBlock.length,A=km(N,Y);if(A)return V.error=A,{offset:-1,result:V};if(!V.idBlock.isConstructed&&V.lenBlock.isIndefiniteForm)return V.error="Indefinite length form used for primitive encoding form",{offset:-1,result:V};let H=F8;switch(V.idBlock.tagClass){case 1:if(V.idBlock.tagNumber>=37&&V.idBlock.isHexOnly===!1)return V.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:V};switch(V.idBlock.tagNumber){case 0:if(V.idBlock.isConstructed&&V.lenBlock.length>0)return V.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:V};H=b0.EndOfContent;break;case 1:H=b0.Boolean;break;case 2:H=b0.Integer;break;case 3:H=b0.BitString;break;case 4:H=b0.OctetString;break;case 5:H=b0.Null;break;case 6:H=b0.ObjectIdentifier;break;case 10:H=b0.Enumerated;break;case 12:H=b0.Utf8String;break;case 13:H=b0.RelativeObjectIdentifier;break;case 14:H=b0.TIME;break;case 15:return V.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:V};case 16:H=b0.Sequence;break;case 17:H=b0.Set;break;case 18:H=b0.NumericString;break;case 19:H=b0.PrintableString;break;case 20:H=b0.TeletexString;break;case 21:H=b0.VideotexString;break;case 22:H=b0.IA5String;break;case 23:H=b0.UTCTime;break;case 24:H=b0.GeneralizedTime;break;case 25:H=b0.GraphicString;break;case 26:H=b0.VisibleString;break;case 27:H=b0.GeneralString;break;case 28:H=b0.UniversalString;break;case 29:H=b0.CharacterString;break;case 30:H=b0.BmpString;break;case 31:H=b0.DATE;break;case 32:H=b0.TimeOfDay;break;case 33:H=b0.DateTime;break;case 34:H=b0.Duration;break;default:{let I=V.idBlock.isConstructed?new b0.Constructed:new b0.Primitive;I.idBlock=V.idBlock,I.lenBlock=V.lenBlock,I.warnings=V.warnings,V=I}}break;case 2:case 3:case 4:default:H=V.idBlock.isConstructed?b0.Constructed:b0.Primitive}return V=_m(V,H),q=V.fromBER(W,G,N,Y),V.valueBeforeDecodeView=W.subarray(Z,Z+V.blockLength),{offset:q,result:V}}function Q4(W,G={}){if(!W.byteLength){let X=new F8({},s8);return X.error="Input buffer has zero length",{offset:-1,result:X}}return dU(S0.toUint8Array(W).slice(),0,W.byteLength,dZ(G))}function ym(W,G){if(W)return 1;return G}class Y4 extends s8{constructor({value:W=[],isIndefiniteForm:G=!1,...X}={}){super(X);this.value=W,this.isIndefiniteForm=G}fromBER(W,G,X,Y){let Z=S0.toUint8Array(W),V=Y!==null&&Y!==void 0?Y:dZ();if(!V4(this,Z,G,X))return-1;if(this.valueBeforeDecodeView=Z.subarray(G,G+X),this.valueBeforeDecodeView.length===0)return this.warnings.push("Zero buffer length"),G;let Q=G;while(ym(this.isIndefiniteForm,X)>0){let J=dz(Z,Q,X,V);if(J.offset===-1)return this.error=J.result.error,this.warnings.concat(J.result.warnings),-1;if(Q=J.offset,this.blockLength+=J.result.blockLength,X-=J.result.blockLength,this.value.push(J.result),this.isIndefiniteForm&&J.result.constructor.NAME===pZ)break}if(this.isIndefiniteForm)if(this.value[this.value.length-1].constructor.NAME===pZ)this.value.pop();else this.warnings.push("No EndOfContent block encoded");return Q}toBER(W,G){let X=G||new lZ;for(let Y=0;Y<this.value.length;Y++)this.value[Y].toBER(W,X);if(!G)return X.final();return I7}toJSON(){let W={...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,value:[]};for(let G of this.value)W.value.push(G.toJSON());return W}}Y4.NAME="ConstructedValueBlock";var oT;class m8 extends F8{constructor(W={}){super(W,Y4);this.idBlock.isConstructed=!0}fromBER(W,G,X,Y){this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm;let Z=this.valueBlock.fromBER(W,G,this.lenBlock.isIndefiniteForm?X:this.lenBlock.length,Y);if(Z===-1)return this.error=this.valueBlock.error,Z;if(!this.idBlock.error.length)this.blockLength+=this.idBlock.blockLength;if(!this.lenBlock.error.length)this.blockLength+=this.lenBlock.blockLength;if(!this.valueBlock.error.length)this.blockLength+=this.valueBlock.blockLength;return Z}onAsciiEncoding(){let W=[];for(let X of this.valueBlock.value)W.push(X.toString("ascii").split(`
|
|
205
|
+
`).map((Y)=>` ${Y}`).join(`
|
|
206
|
+
`));let G=this.idBlock.tagClass===3?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return W.length?`${G} :
|
|
207
|
+
${W.join(`
|
|
208
|
+
`)}`:`${G} :`}}oT=m8;(()=>{b0.Constructed=oT})();m8.NAME="CONSTRUCTED";class oz extends s8{fromBER(W,G,X){return G}toBER(W){return I7}}oz.override="EndOfContentValueBlock";var nT;class oU extends F8{constructor(W={}){super(W,oz);this.idBlock.tagClass=1,this.idBlock.tagNumber=0}}nT=oU;(()=>{b0.EndOfContent=nT})();oU.NAME=pZ;var iT;class j7 extends F8{constructor(W={}){super(W,s8);this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(W,G,X){if(this.lenBlock.length>0)this.warnings.push("Non-zero length of value block for Null type");if(!this.idBlock.error.length)this.blockLength+=this.idBlock.blockLength;if(!this.lenBlock.error.length)this.blockLength+=this.lenBlock.blockLength;if(this.blockLength+=X,G+X>W.byteLength)return this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1;return G+X}toBER(W,G){let X=new ArrayBuffer(2);if(!W){let Y=new Uint8Array(X);Y[0]=5,Y[1]=0}if(G)G.write(X);return X}onAsciiEncoding(){return`${this.constructor.NAME}`}}iT=j7;(()=>{b0.Null=iT})();j7.NAME="NULL";class nz extends w7(s8){get value(){for(let W of this.valueHexView)if(W>0)return!0;return!1}set value(W){this.valueHexView[0]=W?255:0}constructor({value:W,...G}={}){super(G);if(G.valueHex)this.valueHexView=S0.toUint8Array(G.valueHex);else this.valueHexView=new Uint8Array(1);if(W)this.value=W}fromBER(W,G,X){let Y=S0.toUint8Array(W);if(!V4(this,Y,G,X))return-1;if(this.valueHexView=Y.subarray(G,G+X),X>1)this.warnings.push("Boolean value encoded in more then 1 octet");return this.isHexOnly=!0,bz.call(this),this.blockLength=X,G+X}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}}nz.NAME="BooleanValueBlock";var rT;class IX extends F8{getValue(){return this.valueBlock.value}setValue(W){this.valueBlock.value=W}constructor(W={}){super(W,nz);this.idBlock.tagClass=1,this.idBlock.tagNumber=1}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}}rT=IX;(()=>{b0.Boolean=rT})();IX.NAME="BOOLEAN";class iz extends w7(Y4){constructor({isConstructed:W=!1,...G}={}){super(G);this.isConstructed=W}fromBER(W,G,X,Y){let Z=0;if(this.isConstructed){if(this.isHexOnly=!1,Z=Y4.prototype.fromBER.call(this,W,G,X,Y),Z===-1)return Z;for(let V=0;V<this.value.length;V++){let Q=this.value[V].constructor.NAME;if(Q===pZ)if(this.isIndefiniteForm)break;else return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1;if(Q!==bT)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,Z=super.fromBER(W,G,X),this.blockLength=X;return Z}toBER(W,G){if(this.isConstructed)return Y4.prototype.toBER.call(this,W,G);return W?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}}iz.NAME="OctetStringValueBlock";var rz;class O7 extends F8{constructor({idBlock:W={},lenBlock:G={},...X}={}){var Y,Z;(Y=X.isConstructed)!==null&&Y!==void 0||(X.isConstructed=!!((Z=X.value)===null||Z===void 0?void 0:Z.length));super({idBlock:{isConstructed:X.isConstructed,...W},lenBlock:{...G,isIndefiniteForm:!!X.isIndefiniteForm},...X},iz);this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(W,G,X,Y){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,X===0){if(this.idBlock.error.length===0)this.blockLength+=this.idBlock.blockLength;if(this.lenBlock.error.length===0)this.blockLength+=this.lenBlock.blockLength;return G}if(!this.valueBlock.isConstructed){let V=(W instanceof ArrayBuffer?new Uint8Array(W):W).subarray(G,G+X);try{if(V.byteLength){let Q=Y!==null&&Y!==void 0?Y:dZ(),J=dz(V,0,V.byteLength,Q);if(J.offset!==-1&&J.offset===X)this.valueBlock.value=[J.result]}}catch{}}return super.fromBER(W,G,X,Y)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return m8.prototype.onAsciiEncoding.call(this);let W=this.constructor.NAME,G=p0.ToHex(this.valueBlock.valueHexView);return`${W} : ${G}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let W=[];for(let G of this.valueBlock.value)if(G instanceof rz)W.push(G.valueBlock.valueHexView);return S0.concat(W)}}rz=O7;(()=>{b0.OctetString=rz})();O7.NAME=bT;class az extends w7(Y4){constructor({unusedBits:W=0,isConstructed:G=!1,...X}={}){super(X);this.unusedBits=W,this.isConstructed=G,this.blockLength=this.valueHexView.byteLength}fromBER(W,G,X,Y){if(!X)return G;let Z=-1;if(this.isConstructed){if(Z=Y4.prototype.fromBER.call(this,W,G,X,Y),Z===-1)return Z;for(let J of this.value){let U=J.constructor.NAME;if(U===pZ)if(this.isIndefiniteForm)break;else return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1;if(U!==mT)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let q=J.valueBlock;if(this.unusedBits>0&&q.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=q.unusedBits}return Z}let V=S0.toUint8Array(W);if(!V4(this,V,G,X))return-1;let Q=V.subarray(G,G+X);if(this.unusedBits=Q[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let J=Q.subarray(1);try{if(J.byteLength){let U=Y!==null&&Y!==void 0?Y:dZ(),q=dz(J,0,J.byteLength,U);if(q.offset!==-1&&q.offset===X-1)this.value=[q.result]}}catch{}}return this.valueHexView=Q.subarray(1),this.blockLength=Q.length,G+X}toBER(W,G){if(this.isConstructed)return Y4.prototype.toBER.call(this,W,G);if(W)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength){let Y=new Uint8Array(1);return Y[0]=0,Y.buffer}let X=new Uint8Array(this.valueHexView.length+1);return X[0]=this.unusedBits,X.set(this.valueHexView,1),X.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}}az.NAME="BitStringValueBlock";var aT;class K7 extends F8{constructor({idBlock:W={},lenBlock:G={},...X}={}){var Y,Z;(Y=X.isConstructed)!==null&&Y!==void 0||(X.isConstructed=!!((Z=X.value)===null||Z===void 0?void 0:Z.length));super({idBlock:{isConstructed:X.isConstructed,...W},lenBlock:{...G,isIndefiniteForm:!!X.isIndefiniteForm},...X},az);this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(W,G,X,Y){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(W,G,X,Y)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return m8.prototype.onAsciiEncoding.call(this);else{let W=[],G=this.valueBlock.valueHexView;for(let V of G)W.push(V.toString(2).padStart(8,"0"));let X=W.join(""),Y=this.constructor.NAME,Z=X.substring(0,X.length-this.valueBlock.unusedBits);return`${Y} : ${Z}`}}}aT=K7;(()=>{b0.BitString=aT})();K7.NAME=mT;var sT;function vm(W,G){let X=new Uint8Array([0]),Y=new Uint8Array(W),Z=new Uint8Array(G),V=Y.slice(0),Q=V.length-1,J=Z.slice(0),U=J.length-1,q=0,N=U<Q?Q:U,A=0;for(let H=N;H>=0;H--,A++){switch(!0){case A<J.length:q=V[Q-A]+J[U-A]+X[0];break;default:q=V[Q-A]+X[0]}switch(X[0]=q/10,!0){case A>=V.length:V=bU(new Uint8Array([q%10]),V);break;default:V[Q-A]=q%10}}if(X[0]>0)V=bU(X,V);return V}function hT(W){if(W>=fZ.length)for(let G=fZ.length;G<=W;G++){let X=new Uint8Array([0]),Y=fZ[G-1].slice(0);for(let Z=Y.length-1;Z>=0;Z--){let V=new Uint8Array([(Y[Z]<<1)+X[0]]);X[0]=V[0]/10,Y[Z]=V[0]%10}if(X[0]>0)Y=bU(X,Y);fZ.push(Y)}return fZ[W]}function gm(W,G){let X=0,Y=new Uint8Array(W),Z=new Uint8Array(G),V=Y.slice(0),Q=V.length-1,J=Z.slice(0),U=J.length-1,q,N=0;for(let A=U;A>=0;A--,N++)switch(q=V[Q-N]-J[U-N]-X,!0){case q<0:X=1,V[Q-N]=q+10;break;default:X=0,V[Q-N]=q}if(X>0)for(let A=Q-U+1;A>=0;A--,N++)if(q=V[Q-N]-X,q<0)X=1,V[Q-N]=q+10;else{X=0,V[Q-N]=q;break}return V.slice()}class nU extends w7(s8){setValueHex(){if(this.valueHexView.length>=4)this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0;else if(this.isHexOnly=!1,this.valueHexView.length>0)this._valueDec=bz.call(this)}constructor({value:W,...G}={}){super(G);if(this._valueDec=0,G.valueHex)this.setValueHex();if(W!==void 0)this.valueDec=W}set valueDec(W){this._valueDec=W,this.isHexOnly=!1,this.valueHexView=new Uint8Array(yT(W))}get valueDec(){return this._valueDec}fromDER(W,G,X,Y=0){let Z=this.fromBER(W,G,X);if(Z===-1)return Z;let V=this.valueHexView;if(V[0]===0&&(V[1]&128)!==0)this.valueHexView=V.subarray(1);else if(Y!==0){if(V.length<Y){if(Y-V.length>1)Y=V.length+1;this.valueHexView=V.subarray(Y-V.length)}}return Z}toDER(W=!1){let G=this.valueHexView;switch(!0){case(G[0]&128)!==0:{let X=new Uint8Array(this.valueHexView.length+1);X[0]=0,X.set(G,1),this.valueHexView=X}break;case(G[0]===0&&(G[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(W)}fromBER(W,G,X){let Y=super.fromBER(W,G,X);if(Y===-1)return Y;return this.setValueHex(),Y}toBER(W){return W?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let W=this.valueHexView.length*8-1,G=new Uint8Array(this.valueHexView.length*8/3),X=0,Y,Z=this.valueHexView,V="",Q=!1;for(let J=Z.byteLength-1;J>=0;J--){Y=Z[J];for(let U=0;U<8;U++){if((Y&1)===1)switch(X){case W:G=gm(hT(X),G),V="-";break;default:G=vm(G,hT(X))}X++,Y>>=1}}for(let J=0;J<G.length;J++){if(G[J])Q=!0;if(Q)V+=gT.charAt(G[J])}if(Q===!1)V+=gT.charAt(0);return V}}sT=nU;nU.NAME="IntegerValueBlock";(()=>{Object.defineProperty(sT.prototype,"valueHex",{set:function(W){this.valueHexView=new Uint8Array(W),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}})})();var cZ;class j6 extends F8{constructor(W={}){super(W,nU);this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return mU(),BigInt(this.valueBlock.toString())}static fromBigInt(W){mU();let G=BigInt(W),X=new lZ,Y=G.toString(16).replace(/^-/,""),Z=new Uint8Array(p0.FromHex(Y));if(G<0){let Q=new Uint8Array(Z.length+(Z[0]&128?1:0));Q[0]|=128;let U=BigInt(`0x${p0.ToHex(Q)}`)+G,q=S0.toUint8Array(p0.FromHex(U.toString(16)));q[0]|=128,X.write(q)}else{if(Z[0]&128)X.write(new Uint8Array([0]));X.write(Z)}return new cZ({valueHex:X.final()})}convertToDER(){let W=new cZ({valueHex:this.valueBlock.valueHexView});return W.valueBlock.toDER(),W}convertFromDER(){return new cZ({valueHex:this.valueBlock.valueHexView[0]===0?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()}`}}cZ=j6;(()=>{b0.Integer=cZ})();j6.NAME="INTEGER";var tT;class wX extends j6{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=10}}tT=wX;(()=>{b0.Enumerated=tT})();wX.NAME="ENUMERATED";class fU extends w7(s8){constructor({valueDec:W=-1,isFirstSid:G=!1,...X}={}){super(X);this.valueDec=W,this.isFirstSid=G}fromBER(W,G,X){if(!X)return G;let Y=S0.toUint8Array(W);if(!V4(this,Y,G,X))return-1;let Z=Y.subarray(G,G+X);this.valueHexView=new Uint8Array(X);for(let Q=0;Q<X;Q++)if(this.valueHexView[Q]=Z[Q]&127,this.blockLength++,(Z[Q]&128)===0)break;let V=new Uint8Array(this.blockLength);for(let Q=0;Q<this.blockLength;Q++)V[Q]=this.valueHexView[Q];if(this.valueHexView=V,(Z[this.blockLength-1]&128)!==0)return this.error="End of input reached before message was fully decoded",-1;if(this.valueHexView[0]===0)this.warnings.push("Needlessly long format of SID encoding");if(this.blockLength<=8)this.valueDec=FW(this.valueHexView,7);else this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only");return G+this.blockLength}set valueBigInt(W){mU();let G=BigInt(W).toString(2);while(G.length%7)G="0"+G;let X=new Uint8Array(G.length/7);for(let Y=0;Y<X.length;Y++)X[Y]=parseInt(G.slice(Y*7,Y*7+7),2)+(Y+1<X.length?128:0);this.fromBER(X.buffer,0,X.length)}toBER(W){if(this.isHexOnly){if(W)return new ArrayBuffer(this.valueHexView.byteLength);let Y=this.valueHexView,Z=new Uint8Array(this.blockLength);for(let V=0;V<this.blockLength-1;V++)Z[V]=Y[V]|128;return Z[this.blockLength-1]=Y[this.blockLength-1],Z.buffer}let G=z6(this.valueDec,7);if(G.byteLength===0)return this.error="Error during encoding SID value",I7;let X=new Uint8Array(G.byteLength);if(!W){let Y=new Uint8Array(G),Z=G.byteLength-1;for(let V=0;V<Z;V++)X[V]=Y[V]|128;X[Z]=Y[Z]}return X}toString(){let W="";if(this.isHexOnly)W=p0.ToHex(this.valueHexView);else if(this.isFirstSid){let G=this.valueDec;if(this.valueDec<=39)W="0.";else if(this.valueDec<=79)W="1.",G-=40;else W="2.",G-=80;W+=G.toString()}else W=this.valueDec.toString();return W}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}}fU.NAME="sidBlock";class sz extends s8{constructor({value:W=h9,...G}={}){super(G);if(this.value=[],W)this.fromString(W)}fromBER(W,G,X){let Y=G;while(X>0){let Z=new fU;if(Y=Z.fromBER(W,Y,X),Y===-1)return this.blockLength=0,this.error=Z.error,Y;if(this.value.length===0)Z.isFirstSid=!0;this.blockLength+=Z.blockLength,X-=Z.blockLength,this.value.push(Z)}return Y}toBER(W){let G=[];for(let X=0;X<this.value.length;X++){let Y=this.value[X].toBER(W);if(Y.byteLength===0)return this.error=this.value[X].error,I7;G.push(Y)}return fz(G)}fromString(W){this.value=[];let G=0,X=0,Y="",Z=!1;do{if(X=W.indexOf(".",G),X===-1)Y=W.substring(G);else Y=W.substring(G,X);if(G=X+1,Z){let V=this.value[0],Q=0;switch(V.valueDec){case 0:break;case 1:Q=40;break;case 2:Q=80;break;default:this.value=[];return}let J=parseInt(Y,10);if(isNaN(J))return;V.valueDec=J+Q,Z=!1}else{let V=new fU;if(Y>Number.MAX_SAFE_INTEGER){mU();let Q=BigInt(Y);V.valueBigInt=Q}else if(V.valueDec=parseInt(Y,10),isNaN(V.valueDec))return;if(!this.value.length)V.isFirstSid=!0,Z=!0;this.value.push(V)}}while(X!==-1)}toString(){let W="",G=!1;for(let X=0;X<this.value.length;X++){G=this.value[X].isHexOnly;let Y=this.value[X].toString();if(X!==0)W=`${W}.`;if(G)if(Y=`{${Y}}`,this.value[X].isFirstSid)W=`2.{${Y} - 80}`;else W+=Y;else W+=Y}return W}toJSON(){let W={...super.toJSON(),value:this.toString(),sidArray:[]};for(let G=0;G<this.value.length;G++)W.sidArray.push(this.value[G].toJSON());return W}}sz.NAME="ObjectIdentifierValueBlock";var eT;class jX extends F8{getValue(){return this.valueBlock.toString()}setValue(W){this.valueBlock.fromString(W)}constructor(W={}){super(W,sz);this.idBlock.tagClass=1,this.idBlock.tagNumber=6}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}}eT=jX;(()=>{b0.ObjectIdentifier=eT})();jX.NAME="OBJECT IDENTIFIER";class cU extends w7(I6){constructor({valueDec:W=0,...G}={}){super(G);this.valueDec=W}fromBER(W,G,X){if(X===0)return G;let Y=S0.toUint8Array(W);if(!V4(this,Y,G,X))return-1;let Z=Y.subarray(G,G+X);this.valueHexView=new Uint8Array(X);for(let Q=0;Q<X;Q++)if(this.valueHexView[Q]=Z[Q]&127,this.blockLength++,(Z[Q]&128)===0)break;let V=new Uint8Array(this.blockLength);for(let Q=0;Q<this.blockLength;Q++)V[Q]=this.valueHexView[Q];if(this.valueHexView=V,(Z[this.blockLength-1]&128)!==0)return this.error="End of input reached before message was fully decoded",-1;if(this.valueHexView[0]===0)this.warnings.push("Needlessly long format of SID encoding");if(this.blockLength<=8)this.valueDec=FW(this.valueHexView,7);else this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only");return G+this.blockLength}toBER(W){if(this.isHexOnly){if(W)return new ArrayBuffer(this.valueHexView.byteLength);let Y=this.valueHexView,Z=new Uint8Array(this.blockLength);for(let V=0;V<this.blockLength-1;V++)Z[V]=Y[V]|128;return Z[this.blockLength-1]=Y[this.blockLength-1],Z.buffer}let G=z6(this.valueDec,7);if(G.byteLength===0)return this.error="Error during encoding SID value",I7;let X=new Uint8Array(G.byteLength);if(!W){let Y=new Uint8Array(G),Z=G.byteLength-1;for(let V=0;V<Z;V++)X[V]=Y[V]|128;X[Z]=Y[Z]}return X.buffer}toString(){let W="";if(this.isHexOnly)W=p0.ToHex(this.valueHexView);else W=this.valueDec.toString();return W}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}}cU.NAME="relativeSidBlock";class tz extends s8{constructor({value:W=h9,...G}={}){super(G);if(this.value=[],W)this.fromString(W)}fromBER(W,G,X){let Y=G;while(X>0){let Z=new cU;if(Y=Z.fromBER(W,Y,X),Y===-1)return this.blockLength=0,this.error=Z.error,Y;this.blockLength+=Z.blockLength,X-=Z.blockLength,this.value.push(Z)}return Y}toBER(W,G){let X=[];for(let Y=0;Y<this.value.length;Y++){let Z=this.value[Y].toBER(W);if(Z.byteLength===0)return this.error=this.value[Y].error,I7;X.push(Z)}return fz(X)}fromString(W){this.value=[];let G=0,X=0,Y="";do{if(X=W.indexOf(".",G),X===-1)Y=W.substring(G);else Y=W.substring(G,X);G=X+1;let Z=new cU;if(Z.valueDec=parseInt(Y,10),isNaN(Z.valueDec))return!0;this.value.push(Z)}while(X!==-1);return!0}toString(){let W="",G=!1;for(let X=0;X<this.value.length;X++){G=this.value[X].isHexOnly;let Y=this.value[X].toString();if(X!==0)W=`${W}.`;if(G)Y=`{${Y}}`,W+=Y;else W+=Y}return W}toJSON(){let W={...super.toJSON(),value:this.toString(),sidArray:[]};for(let G=0;G<this.value.length;G++)W.sidArray.push(this.value[G].toJSON());return W}}tz.NAME="RelativeObjectIdentifierValueBlock";var WP;class iU extends F8{getValue(){return this.valueBlock.toString()}setValue(W){this.valueBlock.fromString(W)}constructor(W={}){super(W,tz);this.idBlock.tagClass=1,this.idBlock.tagNumber=13}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}}WP=iU;(()=>{b0.RelativeObjectIdentifier=WP})();iU.NAME="RelativeObjectIdentifier";var GP;class x9 extends m8{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=16}}GP=x9;(()=>{b0.Sequence=GP})();x9.NAME="SEQUENCE";var XP;class b9 extends m8{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=17}}XP=b9;(()=>{b0.Set=XP})();b9.NAME="SET";class ez extends w7(s8){constructor({...W}={}){super(W);this.isHexOnly=!0,this.value=h9}toJSON(){return{...super.toJSON(),value:this.value}}}ez.NAME="StringValueBlock";class WI extends ez{}WI.NAME="SimpleStringValueBlock";class m9 extends lU{constructor({...W}={}){super(W,WI)}fromBuffer(W){this.valueBlock.value=String.fromCharCode.apply(null,S0.toUint8Array(W))}fromString(W){let G=W.length,X=this.valueBlock.valueHexView=new Uint8Array(G);for(let Y=0;Y<G;Y++)X[Y]=W.charCodeAt(Y);this.valueBlock.value=W}}m9.NAME="SIMPLE STRING";class GI extends m9{fromBuffer(W){this.valueBlock.valueHexView=S0.toUint8Array(W);try{this.valueBlock.value=p0.ToUtf8String(W)}catch(G){this.warnings.push(`Error during "decodeURIComponent": ${G}, using raw string`),this.valueBlock.value=p0.ToBinary(W)}}fromString(W){this.valueBlock.valueHexView=new Uint8Array(p0.FromUtf8String(W)),this.valueBlock.value=W}}GI.NAME="Utf8StringValueBlock";var YP;class y5 extends GI{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=12}}YP=y5;(()=>{b0.Utf8String=YP})();y5.NAME="UTF8String";class XI extends m9{fromBuffer(W){this.valueBlock.value=p0.ToUtf16String(W),this.valueBlock.valueHexView=S0.toUint8Array(W)}fromString(W){this.valueBlock.value=W,this.valueBlock.valueHexView=new Uint8Array(p0.FromUtf16String(W))}}XI.NAME="BmpStringValueBlock";var ZP;class OX extends XI{constructor({...W}={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=30}}ZP=OX;(()=>{b0.BmpString=ZP})();OX.NAME="BMPString";class YI extends m9{fromBuffer(W){let G=ArrayBuffer.isView(W)?W.slice().buffer:W.slice(0),X=new Uint8Array(G);for(let Y=0;Y<X.length;Y+=4)X[Y]=X[Y+3],X[Y+1]=X[Y+2],X[Y+2]=0,X[Y+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(G))}fromString(W){let G=W.length,X=this.valueBlock.valueHexView=new Uint8Array(G*4);for(let Y=0;Y<G;Y++){let Z=z6(W.charCodeAt(Y),8),V=new Uint8Array(Z);if(V.length>4)continue;let Q=4-V.length;for(let J=V.length-1;J>=0;J--)X[Y*4+J+Q]=V[J]}this.valueBlock.value=W}}YI.NAME="UniversalStringValueBlock";var VP;class KX extends YI{constructor({...W}={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=28}}VP=KX;(()=>{b0.UniversalString=VP})();KX.NAME="UniversalString";var QP;class CX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=18}}QP=CX;(()=>{b0.NumericString=QP})();CX.NAME="NumericString";var JP;class DX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=19}}JP=DX;(()=>{b0.PrintableString=JP})();DX.NAME="PrintableString";var UP;class MX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=20}}UP=MX;(()=>{b0.TeletexString=UP})();MX.NAME="TeletexString";var qP;class TX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=21}}qP=TX;(()=>{b0.VideotexString=qP})();TX.NAME="VideotexString";var NP;class PX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=22}}NP=PX;(()=>{b0.IA5String=NP})();PX.NAME="IA5String";var HP;class RX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=25}}HP=RX;(()=>{b0.GraphicString=HP})();RX.NAME="GraphicString";var AP;class SW extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=26}}AP=SW;(()=>{b0.VisibleString=AP})();SW.NAME="VisibleString";var zP;class LX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=27}}zP=LX;(()=>{b0.GeneralString=zP})();LX.NAME="GeneralString";var IP;class BX extends m9{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=29}}IP=BX;(()=>{b0.CharacterString=IP})();BX.NAME="CharacterString";var wP;class xW extends SW{constructor({value:W,valueDate:G,...X}={}){super(X);if(this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,W){this.fromString(W),this.valueBlock.valueHexView=new Uint8Array(W.length);for(let Y=0;Y<W.length;Y++)this.valueBlock.valueHexView[Y]=W.charCodeAt(Y)}if(G)this.fromDate(G),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer());this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(W){this.fromString(String.fromCharCode.apply(null,S0.toUint8Array(W)))}toBuffer(){let W=this.toString(),G=new ArrayBuffer(W.length),X=new Uint8Array(G);for(let Y=0;Y<W.length;Y++)X[Y]=W.charCodeAt(Y);return G}fromDate(W){this.year=W.getUTCFullYear(),this.month=W.getUTCMonth()+1,this.day=W.getUTCDate(),this.hour=W.getUTCHours(),this.minute=W.getUTCMinutes(),this.second=W.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(W){let X=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(W);if(X===null){this.error="Wrong input string for conversion";return}let Y=parseInt(X[1],10);if(Y>=50)this.year=1900+Y;else this.year=2000+Y;this.month=parseInt(X[2],10),this.day=parseInt(X[3],10),this.hour=parseInt(X[4],10),this.minute=parseInt(X[5],10),this.second=parseInt(X[6],10)}toString(W="iso"){if(W==="iso"){let G=[,,,,,,,];return G[0]=u9(this.year<2000?this.year-1900:this.year-2000,2),G[1]=u9(this.month,2),G[2]=u9(this.day,2),G[3]=u9(this.hour,2),G[4]=u9(this.minute,2),G[5]=u9(this.second,2),G[6]="Z",G.join("")}return super.toString(W)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}}wP=xW;(()=>{b0.UTCTime=wP})();xW.NAME="UTCTime";var jP;class EX extends xW{constructor(W={}){var G;super(W);(G=this.millisecond)!==null&&G!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(W){super.fromDate(W),this.millisecond=W.getUTCMilliseconds()}toDate(){let W=Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond);return new Date(W)}fromString(W){let G=!1,X="",Y="",Z=0,V,Q=0,J=0;if(W[W.length-1]==="Z")X=W.substring(0,W.length-1),G=!0;else{let N=new Number(W[W.length-1]);if(isNaN(N.valueOf()))throw Error("Wrong input string for conversion");X=W}if(G){if(X.indexOf("+")!==-1)throw Error("Wrong input string for conversion");if(X.indexOf("-")!==-1)throw Error("Wrong input string for conversion")}else{let N=1,A=X.indexOf("+"),H="";if(A===-1)A=X.indexOf("-"),N=-1;if(A!==-1){if(H=X.substring(A+1),X=X.substring(0,A),H.length!==2&&H.length!==4)throw Error("Wrong input string for conversion");let I=parseInt(H.substring(0,2),10);if(isNaN(I.valueOf()))throw Error("Wrong input string for conversion");if(Q=N*I,H.length===4){if(I=parseInt(H.substring(2,4),10),isNaN(I.valueOf()))throw Error("Wrong input string for conversion");J=N*I}}}let U=X.indexOf(".");if(U===-1)U=X.indexOf(",");if(U!==-1){let N=new Number(`0${X.substring(U)}`);if(isNaN(N.valueOf()))throw Error("Wrong input string for conversion");Z=N.valueOf(),Y=X.substring(0,U)}else Y=X;switch(!0){case Y.length===8:if(V=/(\d{4})(\d{2})(\d{2})/ig,U!==-1)throw Error("Wrong input string for conversion");break;case Y.length===10:if(V=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,U!==-1){let N=60*Z;this.minute=Math.floor(N),N=60*(N-this.minute),this.second=Math.floor(N),N=1000*(N-this.second),this.millisecond=Math.floor(N)}break;case Y.length===12:if(V=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,U!==-1){let N=60*Z;this.second=Math.floor(N),N=1000*(N-this.second),this.millisecond=Math.floor(N)}break;case Y.length===14:if(V=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,U!==-1){let N=1000*Z;this.millisecond=Math.floor(N)}break;default:throw Error("Wrong input string for conversion")}let q=V.exec(Y);if(q===null)throw Error("Wrong input string for conversion");for(let N=1;N<q.length;N++)switch(N){case 1:this.year=parseInt(q[N],10);break;case 2:this.month=parseInt(q[N],10);break;case 3:this.day=parseInt(q[N],10);break;case 4:this.hour=parseInt(q[N],10)+Q;break;case 5:this.minute=parseInt(q[N],10)+J;break;case 6:this.second=parseInt(q[N],10);break;default:throw Error("Wrong input string for conversion")}if(G===!1){let N=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=N.getUTCFullYear(),this.month=N.getUTCMonth(),this.day=N.getUTCDay(),this.hour=N.getUTCHours(),this.minute=N.getUTCMinutes(),this.second=N.getUTCSeconds(),this.millisecond=N.getUTCMilliseconds()}}toString(W="iso"){if(W==="iso"){let G=[];if(G.push(u9(this.year,4)),G.push(u9(this.month,2)),G.push(u9(this.day,2)),G.push(u9(this.hour,2)),G.push(u9(this.minute,2)),G.push(u9(this.second,2)),this.millisecond!==0)G.push("."),G.push(u9(this.millisecond,3));return G.push("Z"),G.join("")}return super.toString(W)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}}jP=EX;(()=>{b0.GeneralizedTime=jP})();EX.NAME="GeneralizedTime";var OP;class rU extends y5{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=31}}OP=rU;(()=>{b0.DATE=OP})();rU.NAME="DATE";var KP;class aU extends y5{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=32}}KP=aU;(()=>{b0.TimeOfDay=KP})();aU.NAME="TimeOfDay";var CP;class sU extends y5{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=33}}CP=sU;(()=>{b0.DateTime=CP})();sU.NAME="DateTime";var DP;class tU extends y5{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=34}}DP=tU;(()=>{b0.Duration=DP})();tU.NAME="Duration";var MP;class eU extends y5{constructor(W={}){super(W);this.idBlock.tagClass=1,this.idBlock.tagNumber=14}}MP=eU;(()=>{b0.TIME=MP})();eU.NAME="TIME";class Z4{constructor({name:W=h9,optional:G=!1}={}){this.name=W,this.optional=G}}class oZ extends Z4{constructor({value:W=[],...G}={}){super(G);this.value=W}}class zX extends Z4{constructor({value:W=new Z4,local:G=!1,...X}={}){super(X);this.value=W,this.local=G}}class TP{get data(){return this.dataView.slice().buffer}set data(W){this.dataView=S0.toUint8Array(W)}constructor({data:W=pU}={}){this.dataView=S0.toUint8Array(W)}fromBER(W,G,X){let Y=G+X;return this.dataView=S0.toUint8Array(W).subarray(G,Y),Y}toBER(W){return this.dataView.slice().buffer}}function X4(W,G,X){if(X instanceof oZ){for(let V of X.value)if(X4(W,G,V).verified)return{verified:!0,result:W};{let V={verified:!1,result:{error:"Wrong values for Choice type"}};if(X.hasOwnProperty(mz))V.name=X.name;return V}}if(X instanceof Z4){if(X.hasOwnProperty(mz))W[X.name]=G;return{verified:!0,result:W}}if(W instanceof Object===!1)return{verified:!1,result:{error:"Wrong root object"}};if(G instanceof Object===!1)return{verified:!1,result:{error:"Wrong ASN.1 data"}};if(X instanceof Object===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(Dm in X===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(Rm in X.idBlock===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(Lm in X.idBlock===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};let Y=X.idBlock.toBER(!1);if(Y.byteLength===0)return{verified:!1,result:{error:"Error encoding idBlock for ASN.1 schema"}};if(X.idBlock.fromBER(Y,0,Y.byteLength)===-1)return{verified:!1,result:{error:"Error decoding idBlock for ASN.1 schema"}};if(X.idBlock.hasOwnProperty(Mm)===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(X.idBlock.tagClass!==G.idBlock.tagClass)return{verified:!1,result:W};if(X.idBlock.hasOwnProperty(Tm)===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(X.idBlock.tagNumber!==G.idBlock.tagNumber)return{verified:!1,result:W};if(X.idBlock.hasOwnProperty(Pm)===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(X.idBlock.isConstructed!==G.idBlock.isConstructed)return{verified:!1,result:W};if(!(Cm in X.idBlock))return{verified:!1,result:{error:"Wrong ASN.1 schema"}};if(X.idBlock.isHexOnly!==G.idBlock.isHexOnly)return{verified:!1,result:W};if(X.idBlock.isHexOnly){if(uT in X.idBlock===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema"}};let V=X.idBlock.valueHexView,Q=G.idBlock.valueHexView;if(V.length!==Q.length)return{verified:!1,result:W};for(let J=0;J<V.length;J++)if(V[J]!==Q[1])return{verified:!1,result:W}}if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)W[X.name]=G}if(X instanceof b0.Constructed){let V=0,Q={verified:!1,result:{error:"Unknown error"}},J=X.valueBlock.value.length;if(J>0){if(X.valueBlock.value[0]instanceof zX)J=G.valueBlock.value.length}if(J===0)return{verified:!0,result:W};if(G.valueBlock.value.length===0&&X.valueBlock.value.length!==0){let U=!0;for(let q=0;q<X.valueBlock.value.length;q++)U=U&&(X.valueBlock.value[q].optional||!1);if(U)return{verified:!0,result:W};if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name]}return W.error="Inconsistent object length",{verified:!1,result:W}}for(let U=0;U<J;U++)if(U-V>=G.valueBlock.value.length){if(X.valueBlock.value[U].optional===!1){let q={verified:!1,result:W};if(W.error="Inconsistent length between ASN.1 data and schema",X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name],q.name=X.name}return q}}else if(X.valueBlock.value[0]instanceof zX){if(Q=X4(W,G.valueBlock.value[U],X.valueBlock.value[0].value),Q.verified===!1)if(X.valueBlock.value[0].optional)V++;else{if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name]}return Q}if(mz in X.valueBlock.value[0]&&X.valueBlock.value[0].name.length>0){let q={};if(Bm in X.valueBlock.value[0]&&X.valueBlock.value[0].local)q=G;else q=W;if(typeof q[X.valueBlock.value[0].name]>"u")q[X.valueBlock.value[0].name]=[];q[X.valueBlock.value[0].name].push(G.valueBlock.value[U])}}else if(Q=X4(W,G.valueBlock.value[U-V],X.valueBlock.value[U]),Q.verified===!1)if(X.valueBlock.value[U].optional)V++;else{if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name]}return Q}if(Q.verified===!1){let U={verified:!1,result:W};if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name],U.name=X.name}return U}return{verified:!0,result:W}}if(X.primitiveSchema&&uT in G.valueBlock){let V=dU(G.valueBlock.valueHexView);if(V.offset===-1){let Q={verified:!1,result:V.result};if(X.name){if(X.name=X.name.replace(/^\s+|\s+$/g,h9),X.name)delete W[X.name],Q.name=X.name}return Q}return X4(W,V.result,X.primitiveSchema)}return{verified:!0,result:W}}function um(W,G){if(G instanceof Object===!1)return{verified:!1,result:{error:"Wrong ASN.1 schema type"}};let X=dU(S0.toUint8Array(W));if(X.offset===-1)return{verified:!1,result:X.result};return X4(X.result,X.result,G)}function PP(W){return Object.prototype.toString.call(W)}function hm(W){if(ArrayBuffer.isView(W))return!0;if(!W||typeof W!=="object")return!1;let G=W;return typeof G.byteOffset==="number"&&typeof G.byteLength==="number"&&Wq(G.buffer)}function ZI(W){return PP(W)==="[object ArrayBuffer]"}function RP(W){return typeof SharedArrayBuffer<"u"&&PP(W)==="[object SharedArrayBuffer]"}function Wq(W){return ZI(W)||RP(W)}function LP(W){return hm(W)}function J4(W){return Wq(W)||LP(W)}function VI(W){if(!J4(W))throw TypeError("Expected ArrayBuffer, SharedArrayBuffer, or ArrayBufferView")}function j5(W){if(VI(W),Wq(W))return new Uint8Array(W);return new Uint8Array(W.buffer,W.byteOffset,W.byteLength)}function f8(W){if(VI(W),ZI(W))return W;let G=new ArrayBuffer(W.byteLength);return new Uint8Array(G).set(j5(W)),G}function QI(W,G,X={}){let Y=j5(W),Z=j5(G);if(!X.constantTime&&Y.byteLength!==Z.byteLength)return!1;let V=Math.max(Y.byteLength,Z.byteLength),Q=Y.byteLength^Z.byteLength;for(let J=0;J<V;J++)Q|=(Y[J]??0)^(Z[J]??0);return Q===0}var a;(function(W){W[W.Sequence=0]="Sequence",W[W.Set=1]="Set",W[W.Choice=2]="Choice"})(a||(a={}));var F;(function(W){W[W.Any=1]="Any",W[W.Boolean=2]="Boolean",W[W.OctetString=3]="OctetString",W[W.BitString=4]="BitString",W[W.Integer=5]="Integer",W[W.Enumerated=6]="Enumerated",W[W.ObjectIdentifier=7]="ObjectIdentifier",W[W.Utf8String=8]="Utf8String",W[W.BmpString=9]="BmpString",W[W.UniversalString=10]="UniversalString",W[W.NumericString=11]="NumericString",W[W.PrintableString=12]="PrintableString",W[W.TeletexString=13]="TeletexString",W[W.VideotexString=14]="VideotexString",W[W.IA5String=15]="IA5String",W[W.GraphicString=16]="GraphicString",W[W.VisibleString=17]="VisibleString",W[W.GeneralString=18]="GeneralString",W[W.CharacterString=19]="CharacterString",W[W.UTCTime=20]="UTCTime",W[W.GeneralizedTime=21]="GeneralizedTime",W[W.DATE=22]="DATE",W[W.TimeOfDay=23]="TimeOfDay",W[W.DateTime=24]="DateTime",W[W.Duration=25]="Duration",W[W.TIME=26]="TIME",W[W.Null=27]="Null"})(F||(F={}));class U4{unusedBits=0;value=new ArrayBuffer(0);constructor(W,G=0){if(W)if(typeof W==="number")this.fromNumber(W);else if(J4(W))this.unusedBits=G,this.value=f8(W);else throw TypeError("Unsupported type of 'params' argument for BitString")}fromASN(W){if(!(W instanceof K7))throw TypeError("Argument 'asn' is not instance of ASN.1 BitString");return this.unusedBits=W.valueBlock.unusedBits,this.value=f8(W.valueBlock.valueHex),this}toASN(){return new K7({unusedBits:this.unusedBits,valueHex:this.value})}toSchema(W){return new K7({name:W})}toNumber(){let W="",G=new Uint8Array(this.value);for(let X of G)W+=X.toString(2).padStart(8,"0");if(W=W.split("").reverse().join(""),this.unusedBits)W=W.slice(this.unusedBits).padStart(this.unusedBits,"0");return parseInt(W,2)}fromNumber(W){let G=W.toString(2),X=G.length+7>>3;this.unusedBits=(X<<3)-G.length;let Y=new Uint8Array(X);G=G.padStart(X<<3,"0").split("").reverse().join("");let Z=0;while(Z<X)Y[Z]=parseInt(G.slice(Z<<3,(Z<<3)+8),2),Z++;this.value=Y.buffer}}class W1{buffer;get byteLength(){return this.buffer.byteLength}get byteOffset(){return 0}constructor(W){if(typeof W==="number")this.buffer=new ArrayBuffer(W);else if(J4(W))this.buffer=f8(W);else if(Array.isArray(W))this.buffer=new Uint8Array(W).buffer;else this.buffer=new ArrayBuffer(0)}fromASN(W){if(!(W instanceof O7))throw TypeError("Argument 'asn' is not instance of ASN.1 OctetString");return this.buffer=f8(W.valueBlock.valueHex),this}toASN(){return new O7({valueHex:this.buffer})}toSchema(W){return new O7({name:W})}}var fm={fromASN:(W)=>W instanceof j7?null:f8(W.valueBeforeDecodeView),toASN:(W)=>{if(W===null)return new j7;let G=Q4(W);if(G.result.error)throw Error(G.result.error);return G.result}},cm={fromASN:(W)=>W.valueBlock.valueHexView.byteLength>=4?W.valueBlock.toString():W.valueBlock.valueDec,toASN:(W)=>new j6({value:+W})},pm={fromASN:(W)=>W.valueBlock.valueDec,toASN:(W)=>new wX({value:W})},k1={fromASN:(W)=>f8(W.valueBlock.valueHexView),toASN:(W)=>new j6({valueHex:W})};var lm={fromASN:(W)=>f8(W.valueBlock.valueHexView),toASN:(W)=>new K7({valueHex:W})},dm={fromASN:(W)=>W.valueBlock.toString(),toASN:(W)=>new jX({value:W})},om={fromASN:(W)=>W.valueBlock.value,toASN:(W)=>new IX({value:W})},$X={fromASN:(W)=>f8(W.valueBlock.valueHexView),toASN:(W)=>new O7({valueHex:W})},BP={fromASN:(W)=>new W1(W.getValue()),toASN:(W)=>W.toASN()};function O5(W){return{fromASN:(G)=>G.valueBlock.value,toASN:(G)=>new W({value:G})}}var JI=O5(y5),nm=O5(OX),im=O5(KX),rm=O5(CX),am=O5(DX),sm=O5(MX),tm=O5(TX),em=O5(PX),Wf=O5(RX),Gf=O5(SW),Xf=O5(LX),Yf=O5(BX),Zf={fromASN:(W)=>W.toDate(),toASN:(W)=>new xW({valueDate:W})},Vf={fromASN:(W)=>W.toDate(),toASN:(W)=>new EX({valueDate:W})},Qf={fromASN:()=>null,toASN:()=>{return new j7}};function O6(W){switch(W){case F.Any:return fm;case F.BitString:return lm;case F.BmpString:return nm;case F.Boolean:return om;case F.CharacterString:return Yf;case F.Enumerated:return pm;case F.GeneralString:return Xf;case F.GeneralizedTime:return Vf;case F.GraphicString:return Wf;case F.IA5String:return em;case F.Integer:return cm;case F.Null:return Qf;case F.NumericString:return rm;case F.ObjectIdentifier:return dm;case F.OctetString:return $X;case F.PrintableString:return am;case F.TeletexString:return sm;case F.UTCTime:return Zf;case F.UniversalString:return im;case F.Utf8String:return JI;case F.VideotexString:return tm;case F.VisibleString:return Gf;default:return null}}function K5(W){if(typeof W==="function"&&W.prototype)if(W.prototype.toASN&&W.prototype.fromASN)return!0;else return K5(W.prototype);else return!!(W&&typeof W==="object"&&("toASN"in W)&&("fromASN"in W))}function qI(W){if(W){let G=Object.getPrototypeOf(W);if(G?.prototype?.constructor===Array)return!0;return qI(G)}return!1}function EP(W,G){if(!(W&&G))return!1;if(W.byteLength!==G.byteLength)return!1;let X=new Uint8Array(W),Y=new Uint8Array(G);for(let Z=0;Z<W.byteLength;Z++)if(X[Z]!==Y[Z])return!1;return!0}class NI{items=new WeakMap;has(W){return this.items.has(W)}get(W,G=!1){let X=this.items.get(W);if(!X)throw Error(`Cannot get schema for '${W.prototype.constructor.name}' target`);if(G&&!X.schema)throw Error(`Schema '${W.prototype.constructor.name}' doesn't contain ASN.1 schema. Call 'AsnSchemaStorage.cache'.`);return X}cache(W){let G=this.get(W);if(!G.schema)G.schema=this.create(W,!0)}createDefault(W){let G={type:a.Sequence,items:{}},X=this.findParentSchema(W);if(X)Object.assign(G,X),G.items=Object.assign({},G.items,X.items);return G}create(W,G){let X=this.items.get(W)||this.createDefault(W),Y=[];for(let Z in X.items){let V=X.items[Z],Q=G?Z:"",J;if(typeof V.type==="number"){let q=F[V.type],N=C7[q];if(!N)throw Error(`Cannot get ASN1 class by name '${q}'`);J=new N({name:Q})}else if(K5(V.type))J=new V.type().toSchema(Q);else if(V.optional)if(this.get(V.type).type===a.Choice)J=new Z4({name:Q});else J=this.create(V.type,!1),J.name=Q;else J=new Z4({name:Q});let U=!!V.optional||V.defaultValue!==void 0;if(V.repeated)J.name="",J=new(V.repeated==="set"?b9:x9)({name:"",value:[new zX({name:Q,value:J})]});if(V.context!==null&&V.context!==void 0)if(V.implicit)if(typeof V.type==="number"||K5(V.type)){let q=V.repeated?m8:w6;Y.push(new q({name:Q,optional:U,idBlock:{tagClass:3,tagNumber:V.context}}))}else{this.cache(V.type);let q=!!V.repeated,N=!q?this.get(V.type,!0).schema:J;N="valueBlock"in N?N.valueBlock.value:N.value,Y.push(new m8({name:!q?Q:"",optional:U,idBlock:{tagClass:3,tagNumber:V.context},value:N}))}else Y.push(new m8({optional:U,idBlock:{tagClass:3,tagNumber:V.context},value:[J]}));else J.optional=U,Y.push(J)}switch(X.type){case a.Sequence:return new x9({value:Y,name:""});case a.Set:return new b9({value:Y,name:""});case a.Choice:return new oZ({value:Y,name:""});default:throw Error("Unsupported ASN1 type in use")}}set(W,G){return this.items.set(W,G),this}findParentSchema(W){let G=Object.getPrototypeOf(W);if(G)return this.items.get(G)||this.findParentSchema(G);return null}}var S8=new NI;var W0=(W)=>(G)=>{let X;if(!S8.has(G))X=S8.createDefault(G),S8.set(G,X);else X=S8.get(G);Object.assign(X,W)};var K=(W)=>(G,X)=>{let Y;if(!S8.has(G.constructor))Y=S8.createDefault(G.constructor),S8.set(G.constructor,Y);else Y=S8.get(G.constructor);let Z=Object.assign({},W);if(typeof Z.type==="number"&&!Z.converter){let V=O6(W.type);if(!V)throw Error(`Cannot get default converter for property '${X}' of ${G.constructor.name}`);Z.converter=V}Z.raw=W.raw,Y.items[X]=Z};class kW extends Error{schemas=[]}class Gq{static parse(W,G,X){let Y=Q4(f8(W),X?.berOptions);if(Y.result.error)throw Error(Y.result.error);return this.fromASN(Y.result,G,X)}static fromASN(W,G,X){try{if(K5(G))return new G().fromASN(W);let Y=S8.get(G);S8.cache(G);let Z=Y.schema,V=this.handleChoiceTypes(W,Y,G,Z,X);if(V?.result)return V.result;if(V?.targetSchema)Z=V.targetSchema;let Q=this.handleSequenceTypes(W,Y,G,Z),J=new G;if(qI(G))return this.handleArrayTypes(W,Y,G,X);return this.processSchemaItems(Y,Q,J,X),J}catch(Y){if(Y instanceof kW)Y.schemas.push(G.name);throw Y}}static handleChoiceTypes(W,G,X,Y,Z){if(W.constructor===m8&&G.type===a.Choice&&W.idBlock.tagClass===3)for(let V in G.items){let Q=G.items[V];if(Q.context===W.idBlock.tagNumber&&Q.implicit){if(typeof Q.type==="function"&&S8.has(Q.type)){let J=S8.get(Q.type);if(J&&J.type===a.Sequence){let U=new x9;if("value"in W.valueBlock&&Array.isArray(W.valueBlock.value)&&"value"in U.valueBlock){U.valueBlock.value=W.valueBlock.value;let q=this.fromASN(U,Q.type,Z),N=new X;return N[V]=q,{result:N}}}}}}else if(W.constructor===m8&&G.type!==a.Choice){let V=new m8({idBlock:{tagClass:3,tagNumber:W.idBlock.tagNumber},value:G.schema.valueBlock.value});for(let Q in G.items)delete W[Q];return{targetSchema:V}}return null}static handleSequenceTypes(W,G,X,Y){if(G.type===a.Sequence){let Z=X4({},W,Y);if(!Z.verified)throw new kW(`Data does not match to ${X.name} ASN1 schema.${Z.result.error?` ${Z.result.error}`:""}`);return Z}else{let Z=X4({},W,Y);if(!Z.verified)throw new kW(`Data does not match to ${X.name} ASN1 schema.${Z.result.error?` ${Z.result.error}`:""}`);return Z}}static processRepeatedField(W,G,X){let Y=W.slice(G);if(Y.length===1&&Y[0].constructor.name==="Sequence"){let Z=Y[0];if(Z.valueBlock&&Z.valueBlock.value&&Array.isArray(Z.valueBlock.value))Y=Z.valueBlock.value}if(typeof X.type==="number"){let Z=O6(X.type);if(!Z)throw Error(`No converter for ASN.1 type ${X.type}`);return Y.filter((V)=>V&&V.valueBlock).map((V)=>{try{return Z.fromASN(V)}catch{return}}).filter((V)=>V!==void 0)}else return Y.filter((Z)=>Z&&Z.valueBlock).map((Z)=>{try{return this.fromASN(Z,X.type)}catch{return}}).filter((Z)=>Z!==void 0)}static processPrimitiveField(W,G){let X=O6(G.type);if(!X)throw Error(`No converter for ASN.1 type ${G.type}`);return X.fromASN(W)}static isOptionalChoiceField(W){return W.optional&&typeof W.type==="function"&&S8.has(W.type)&&S8.get(W.type).type===a.Choice}static processOptionalChoiceField(W,G){try{return{processed:!0,value:this.fromASN(W,G.type)}}catch(X){if(X instanceof kW&&/Wrong values for Choice type/.test(X.message))return{processed:!1};throw X}}static handleArrayTypes(W,G,X,Y){if(!(("value"in W.valueBlock)&&Array.isArray(W.valueBlock.value)))throw Error("Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.");let Z=G.itemType;if(typeof Z==="number"){let V=O6(Z);if(!V)throw Error(`Cannot get default converter for array item of ${X.name} ASN1 schema`);return X.from(W.valueBlock.value,(Q)=>V.fromASN(Q))}else return X.from(W.valueBlock.value,(V)=>this.fromASN(V,Z,Y))}static processSchemaItems(W,G,X,Y){for(let Z in W.items){let V=G.result[Z];if(!V)continue;let Q=W.items[Z],J=Q.type,U;if(typeof J==="number"||K5(J))U=this.processPrimitiveSchemaItem(V,Q,J,Y);else U=this.processComplexSchemaItem(V,Q,J,Y);if(U&&typeof U==="object"&&"value"in U&&"raw"in U)X[Z]=U.value,X[`${Z}Raw`]=U.raw;else X[Z]=U}}static processPrimitiveSchemaItem(W,G,X,Y){let Z=G.converter??(K5(X)?new X:null);if(!Z)throw Error("Converter is empty");if(G.repeated)return this.processRepeatedPrimitiveItem(W,G,Z,Y);else return this.processSinglePrimitiveItem(W,G,X,Z,Y)}static processRepeatedPrimitiveItem(W,G,X,Y){if(G.implicit){let V=new(G.repeated==="sequence"?x9:b9);V.valueBlock=W.valueBlock;let Q=Q4(V.toBER(!1),Y?.berOptions);if(Q.offset===-1)throw Error(`Cannot parse the child item. ${Q.result.error}`);if(!(("value"in Q.result.valueBlock)&&Array.isArray(Q.result.valueBlock.value)))throw Error("Cannot get items from the ASN.1 parsed value. ASN.1 object is not constructed.");let J=Q.result.valueBlock.value;return Array.from(J,(U)=>X.fromASN(U))}else return Array.from(W,(Z)=>X.fromASN(Z))}static processSinglePrimitiveItem(W,G,X,Y,Z){let V=W;if(G.implicit){let Q;if(K5(X))Q=new X().toSchema("");else{let J=F[X],U=C7[J];if(!U)throw Error(`Cannot get '${J}' class from asn1js module`);Q=new U}Q.valueBlock=V.valueBlock,V=Q4(Q.toBER(!1),Z?.berOptions).result}return Y.fromASN(V)}static processComplexSchemaItem(W,G,X,Y){if(G.repeated){if(!Array.isArray(W))throw Error("Cannot get list of items from the ASN.1 parsed value. ASN.1 value should be iterable.");return Array.from(W,(Z)=>this.fromASN(Z,X,Y))}else{let Z=this.handleImplicitTagging(W,G,X);if(this.isOptionalChoiceField(G))try{return this.fromASN(Z,X,Y)}catch(V){if(V instanceof kW&&/Wrong values for Choice type/.test(V.message))return;throw V}else{let V=this.fromASN(Z,X,Y);if(G.raw)return{value:V,raw:W.valueBeforeDecodeView};return V}}}static handleImplicitTagging(W,G,X){if(G.implicit&&typeof G.context==="number"){let Y=S8.get(X);if(Y.type===a.Sequence){let Z=new x9;if("value"in W.valueBlock&&Array.isArray(W.valueBlock.value)&&"value"in Z.valueBlock)return Z.valueBlock.value=W.valueBlock.value,Z}else if(Y.type===a.Set){let Z=new b9;if("value"in W.valueBlock&&Array.isArray(W.valueBlock.value)&&"value"in Z.valueBlock)return Z.valueBlock.value=W.valueBlock.value,Z}}return W}}class nZ{static serialize(W){if(W instanceof F8)return W.toBER(!1);return this.toASN(W).toBER(!1)}static toASN(W){if(W&&typeof W==="object"&&K5(W))return W.toASN();if(!(W&&typeof W==="object"))throw TypeError("Parameter 1 should be type of Object.");let G=W.constructor,X=S8.get(G);S8.cache(G);let Y=[];if(X.itemType){if(!Array.isArray(W))throw TypeError("Parameter 1 should be type of Array.");if(typeof X.itemType==="number"){let V=O6(X.itemType);if(!V)throw Error(`Cannot get default converter for array item of ${G.name} ASN1 schema`);Y=W.map((Q)=>V.toASN(Q))}else Y=W.map((V)=>this.toAsnItem({type:X.itemType},"[]",G,V))}else for(let V in X.items){let Q=X.items[V],J=W[V];if(J===void 0||Q.defaultValue===J||typeof Q.defaultValue==="object"&&typeof J==="object"&&EP(this.serialize(Q.defaultValue),this.serialize(J)))continue;let U=nZ.toAsnItem(Q,V,G,J);if(typeof Q.context==="number")if(Q.implicit)if(!Q.repeated&&(typeof Q.type==="number"||K5(Q.type))){let q={};q.valueHex=U instanceof j7?f8(U.valueBeforeDecodeView):U.valueBlock.toBER(),Y.push(new w6({optional:Q.optional,idBlock:{tagClass:3,tagNumber:Q.context},...q}))}else Y.push(new m8({optional:Q.optional,idBlock:{tagClass:3,tagNumber:Q.context},value:U.valueBlock.value}));else Y.push(new m8({optional:Q.optional,idBlock:{tagClass:3,tagNumber:Q.context},value:[U]}));else if(Q.repeated)Y=Y.concat(U);else Y.push(U)}let Z;switch(X.type){case a.Sequence:Z=new x9({value:Y});break;case a.Set:Z=new b9({value:Y});break;case a.Choice:if(!Y[0])throw Error(`Schema '${G.name}' has wrong data. Choice cannot be empty.`);Z=Y[0];break}return Z}static toAsnItem(W,G,X,Y){let Z;if(typeof W.type==="number"){let V=W.converter;if(!V)throw Error(`Property '${G}' doesn't have converter for type ${F[W.type]} in schema '${X.name}'`);if(W.repeated){if(!Array.isArray(Y))throw TypeError("Parameter 'objProp' should be type of Array.");let Q=Array.from(Y,(U)=>V.toASN(U));Z=new(W.repeated==="sequence"?x9:b9)({value:Q})}else Z=V.toASN(Y)}else if(W.repeated){if(!Array.isArray(Y))throw TypeError("Parameter 'objProp' should be type of Array.");let V=Array.from(Y,(J)=>this.toASN(J));Z=new(W.repeated==="sequence"?x9:b9)({value:V})}else Z=this.toASN(Y);return Z}}class i0 extends Array{constructor(W=[]){if(typeof W==="number")super(W);else{super();for(let G of W)this.push(G)}}}class L0{static serialize(W){return nZ.serialize(W)}static parse(W,G,X){return Gq.parse(W,G,X)}static toString(W,G){let X=J4(W)?f8(W):L0.serialize(W),Y=Q4(X,G?.berOptions);if(Y.offset===-1)throw Error(`Cannot decode ASN.1 data. ${Y.result.error}`);return Y.result.toString()}}var YR=_1(XR(),1),{__extends:j10,__assign:O10,__rest:K10,__decorate:j,__param:C10,__esDecorate:D10,__runInitializers:M10,__propKey:T10,__setFunctionName:P10,__metadata:R10,__awaiter:L10,__generator:B10,__exportStar:E10,__createBinding:$10,__values:F10,__read:S10,__spread:x10,__spreadArrays:k10,__spreadArray:_10,__await:y10,__asyncGenerator:v10,__asyncDelegator:g10,__asyncValues:u10,__makeTemplateObject:h10,__importStar:b10,__importDefault:m10,__classPrivateFieldGet:D1,__classPrivateFieldSet:J8,__classPrivateFieldIn:f10,__addDisposableResource:c10,__disposeResources:p10,__rewriteRelativeImportExtension:l10}=YR.default;var SX={};qA(SX,{parse:()=>JR,normalize:()=>iZ,is:()=>QR,hex:()=>Kf,formats:()=>qR,format:()=>UR,encode:()=>AI,decode:()=>zI});var Uf=/^[0-9a-f]$/i,qf=[" ","\t",`
|
|
209
|
+
`,"\r",":","-","."];function Nf(W){if(W.separators==="none")return[];if(!W.separators||W.separators==="common")return qf;return W.separators}function Hf(W){if(!W)throw TypeError("Hex separators must be non-empty strings")}function Af(W,G,X){for(let Y of X)if(W.startsWith(Y,G))return Y;return}function zf(W){let G=/[A-F]/.test(W),X=/[a-f]/.test(W);return G&&!X?"upper":"lower"}function If(W){let G=/\r\n|\n/.exec(W);if(!G)return;return G[0]===`\r
|
|
210
|
+
`?`\r
|
|
211
|
+
`:`
|
|
212
|
+
`}function ZR(W){return W.replace(/[^0-9a-f]/gi,"")}function wf(W){let G=W.match(/[0-9A-Fa-f]+|[^0-9A-Fa-f]+/g)??[];if(G.length<3)return;let X=G.filter((Q,J)=>J%2===0),Y=G.filter((Q,J)=>J%2===1),Z=Y[0];if(!Z||Y.some((Q)=>Q!==Z))return;if(X.some((Q)=>Q.length===0||Q.length%2!==0))return;let V=X[0]?.length??0;if(!V)return;if(X.slice(0,-1).some((Q)=>Q.length!==V))return;if((X[X.length-1]?.length??0)>V)return;return{size:V/2,separator:Z}}function jf(W){let G=W.trim(),X=/^0x/i.test(G)?"0x":"",Y=X?G.slice(2):G,Z=If(Y),V=Y.split(/\r\n|\n/).filter((q)=>q.length>0),Q=V[0]?.trim()??"",J=wf(Q),U={case:zf(G),prefix:X};if(J)U.group=J;if(Z&&V.length>1){let q=ZR(V[0]??"").length/2;if(q>0&&V.slice(0,-1).every((N)=>ZR(N).length/2===q))U.line={bytesPerLine:q,separator:Z}}return U}function Of(W,G){let X=G.allowPrefix??!0,Y=[...Nf(G)].sort((J,U)=>U.length-J.length);for(let J of Y)Hf(J);let Z=W.trim();if(/^0x/i.test(Z)){if(!X)throw TypeError("Hexadecimal text must not include a 0x prefix");Z=Z.slice(2)}let V="",Q=!1;for(let J=0;J<Z.length;){let U=Z[J]??"";if(Uf.test(U)){V+=U,Q=!1,J+=1;continue}let q=Af(Z,J,Y);if(!q)throw TypeError("Input is not valid hexadecimal text");if(G.strict&&(Q||V.length===0))throw TypeError("Hexadecimal text contains misplaced separators");Q=!0,J+=q.length}if(G.strict&&Q&&V.length>0)throw TypeError("Hexadecimal text must not end with a separator");if(V.length%2!==0){if(!G.allowOddLength)throw TypeError("Hexadecimal text must contain an even number of characters");V=`0${V}`}return V.toLowerCase()}function VR(W,G){if(!G)return W.join("");if(!Number.isInteger(G.size)||G.size<1)throw RangeError("Hex group size must be a positive integer");let X=[];for(let Y=0;Y<W.length;Y+=G.size)X.push(W.slice(Y,Y+G.size).join(""));return X.join(G.separator)}function iZ(W,G={}){return Of(W,G)}function QR(W,G={}){if(typeof W!=="string")return!1;try{return iZ(W,G),!0}catch{return!1}}function AI(W,G={}){let X=j5(W),Y=G.case??"lower",Z=Array.from(X,(Q)=>{let J=Q.toString(16).padStart(2,"0");return Y==="upper"?J.toUpperCase():J}),V="";if(G.line){let Q=G.line.bytesPerLine;if(!Number.isInteger(Q)||Q<1)throw RangeError("Hex bytesPerLine must be a positive integer");let J=G.line.separator??`
|
|
213
|
+
`,U=[];for(let q=0;q<Z.length;q+=Q)U.push(VR(Z.slice(q,q+Q),G.group));V=U.join(J)}else V=VR(Z,G.group);return`${G.prefix??""}${V}`}function zI(W,G={}){let X=iZ(W,G),Y=new Uint8Array(X.length/2);for(let Z=0;Z<X.length;Z+=2)Y[Z/2]=Number.parseInt(X.slice(Z,Z+2),16);return Y}function JR(W,G={}){let X=iZ(W,G);return{bytes:zI(X),format:jf(W),normalized:X}}function UR(W,G){return AI(W,G)}var qR={compact:Object.freeze({}),upper:Object.freeze({case:"upper"}),colon:Object.freeze({group:{size:1,separator:":"}}),colonUpper:Object.freeze({case:"upper",group:{size:1,separator:":"}}),groupsOf4:Object.freeze({group:{size:4,separator:" "}}),prefixed:Object.freeze({prefix:"0x"})},Kf={encode:AI,decode:zI,format:UR,formats:qR,is:QR,normalize:iZ,parse:JR};class Vq{static isIPv4(W){return/^(\d{1,3}\.){3}\d{1,3}$/.test(W)}static parseIPv4(W){let G=W.split(".");if(G.length!==4)throw Error("Invalid IPv4 address");return G.map((X)=>{let Y=parseInt(X,10);if(isNaN(Y)||Y<0||Y>255)throw Error("Invalid IPv4 address part");return Y})}static parseIPv6(W){let X=this.expandIPv6(W).split(":");if(X.length!==8)throw Error("Invalid IPv6 address");return X.reduce((Y,Z)=>{let V=parseInt(Z,16);if(isNaN(V)||V<0||V>65535)throw Error("Invalid IPv6 address part");return Y.push(V>>8&255),Y.push(V&255),Y},[])}static expandIPv6(W){if(!W.includes("::"))return W;let G=W.split("::");if(G.length>2)throw Error("Invalid IPv6 address");let X=G[0]?G[0].split(":"):[],Y=G[1]?G[1].split(":"):[],Z=8-(X.length+Y.length);if(Z<0)throw Error("Invalid IPv6 address");return[...X,...Array(Z).fill("0"),...Y].join(":")}static formatIPv6(W){let G=[];for(let X=0;X<16;X+=2)G.push((W[X]<<8|W[X+1]).toString(16));return this.compressIPv6(G.join(":"))}static compressIPv6(W){let G=W.split(":"),X=-1,Y=0,Z=-1,V=0;for(let Q=0;Q<G.length;Q++)if(G[Q]==="0"){if(Z===-1)Z=Q;V++}else{if(V>Y)X=Z,Y=V;Z=-1,V=0}if(V>Y)X=Z,Y=V;if(Y>1){let Q=G.slice(0,X).join(":"),J=G.slice(X+Y).join(":");return`${Q}::${J}`}return W}static parseCIDR(W){let[G,X]=W.split("/"),Y=parseInt(X,10);if(this.isIPv4(G)){if(Y<0||Y>32)throw Error("Invalid IPv4 prefix length");return[this.parseIPv4(G),Y]}else{if(Y<0||Y>128)throw Error("Invalid IPv6 prefix length");return[this.parseIPv6(G),Y]}}static decodeIP(W){if(W.length===64&&parseInt(W,16)===0)return"::/0";if(W.length!==16)return W;let G=parseInt(W.slice(8),16).toString(2).split("").reduce((Y,Z)=>Y+ +Z,0),X=W.slice(0,8).replace(/(.{2})/g,(Y)=>`${parseInt(Y,16)}.`);return X=X.slice(0,-1),`${X}/${G}`}static toString(W){let G=new Uint8Array(W);if(G.length===4)return Array.from(G).join(".");if(G.length===16)return this.formatIPv6(G);if(G.length===8||G.length===32){let X=G.length/2,Y=G.slice(0,X),Z=G.slice(X);if(G.every((J)=>J===0))return G.length===8?"0.0.0.0/0":"::/0";let Q=Z.reduce((J,U)=>J+(U.toString(2).match(/1/g)||[]).length,0);if(G.length===8)return`${Array.from(Y).join(".")}/${Q}`;else return`${this.formatIPv6(Y)}/${Q}`}return this.decodeIP(SX.encode(W))}static fromString(W){if(W.includes("/")){let[X,Y]=this.parseCIDR(W),Z=new Uint8Array(X.length),V=Y;for(let J=0;J<Z.length;J++)if(V>=8)Z[J]=255,V-=8;else if(V>0)Z[J]=255<<8-V,V=0;let Q=new Uint8Array(X.length*2);return Q.set(X,0),Q.set(Z,X.length),Q.buffer}let G=this.isIPv4(W)?this.parseIPv4(W):this.parseIPv6(W);return new Uint8Array(G).buffer}}var II,wI,jI,x8=class{teletexString;printableString;universalString;utf8String;bmpString;constructor(G={}){Object.assign(this,G)}toString(){return this.bmpString||this.printableString||this.teletexString||this.universalString||this.utf8String||""}};j([K({type:F.TeletexString})],x8.prototype,"teletexString",void 0);j([K({type:F.PrintableString})],x8.prototype,"printableString",void 0);j([K({type:F.UniversalString})],x8.prototype,"universalString",void 0);j([K({type:F.Utf8String})],x8.prototype,"utf8String",void 0);j([K({type:F.BmpString})],x8.prototype,"bmpString",void 0);x8=j([W0({type:a.Choice})],x8);var xX=class extends x8{ia5String;anyValue;constructor(G={}){super(G);Object.assign(this,G)}toString(){return this.ia5String||(this.anyValue?SX.encode(this.anyValue):super.toString())}};j([K({type:F.IA5String})],xX.prototype,"ia5String",void 0);j([K({type:F.Any})],xX.prototype,"anyValue",void 0);xX=j([W0({type:a.Choice})],xX);class kX{type="";value=new xX;constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],kX.prototype,"type",void 0);j([K({type:xX})],kX.prototype,"value",void 0);var K6=II=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,II.prototype)}};K6=II=j([W0({type:a.Set,itemType:kX})],K6);var OI=wI=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,wI.prototype)}};OI=wI=j([W0({type:a.Sequence,itemType:K6})],OI);var W8=jI=class extends OI{constructor(G){super(G);Object.setPrototypeOf(this,jI.prototype)}};W8=jI=j([W0({type:a.Sequence})],W8);var Pf={fromASN:(W)=>Vq.toString($X.fromASN(W)),toASN:(W)=>$X.toASN(Vq.fromString(W))};class _W{typeId="";value=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],_W.prototype,"typeId",void 0);j([K({type:F.Any,context:0})],_W.prototype,"value",void 0);class Qq{nameAssigner;partyName=new x8;constructor(W={}){Object.assign(this,W)}}j([K({type:x8,optional:!0,context:0,implicit:!0})],Qq.prototype,"nameAssigner",void 0);j([K({type:x8,context:1,implicit:!0})],Qq.prototype,"partyName",void 0);var V1=class{otherName;rfc822Name;dNSName;x400Address;directoryName;ediPartyName;uniformResourceIdentifier;iPAddress;registeredID;constructor(G={}){Object.assign(this,G)}};j([K({type:_W,context:0,implicit:!0})],V1.prototype,"otherName",void 0);j([K({type:F.IA5String,context:1,implicit:!0})],V1.prototype,"rfc822Name",void 0);j([K({type:F.IA5String,context:2,implicit:!0})],V1.prototype,"dNSName",void 0);j([K({type:F.Any,context:3,implicit:!0})],V1.prototype,"x400Address",void 0);j([K({type:W8,context:4,implicit:!1})],V1.prototype,"directoryName",void 0);j([K({type:Qq,context:5})],V1.prototype,"ediPartyName",void 0);j([K({type:F.IA5String,context:6,implicit:!0})],V1.prototype,"uniformResourceIdentifier",void 0);j([K({type:F.OctetString,context:7,implicit:!0,converter:Pf})],V1.prototype,"iPAddress",void 0);j([K({type:F.ObjectIdentifier,context:8,implicit:!0})],V1.prototype,"registeredID",void 0);V1=j([W0({type:a.Choice})],V1);var Jq="1.3.6.1.5.5.7",C6="1.3.6.1.5.5.7.1";var yW="1.3.6.1.5.5.7.3";var KI="1.3.6.1.5.5.7.48.1",CI="1.3.6.1.5.5.7.48.2",DI="1.3.6.1.5.5.7.48.3",MI="1.3.6.1.5.5.7.48.5",w1="2.5.29";var TI,Uq=`${C6}.1`;class D6{accessMethod="";accessLocation=new V1;constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],D6.prototype,"accessMethod",void 0);j([K({type:V1})],D6.prototype,"accessLocation",void 0);var vW=TI=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,TI.prototype)}};vW=TI=j([W0({type:a.Sequence,itemType:D6})],vW);var qq=`${w1}.35`;class _X extends W1{}class q4{keyIdentifier;authorityCertIssuer;authorityCertSerialNumber;constructor(W={}){if(W)Object.assign(this,W)}}j([K({type:_X,context:0,optional:!0,implicit:!0})],q4.prototype,"keyIdentifier",void 0);j([K({type:V1,context:1,optional:!0,implicit:!0,repeated:"sequence"})],q4.prototype,"authorityCertIssuer",void 0);j([K({type:F.Integer,context:2,optional:!0,implicit:!0,converter:k1})],q4.prototype,"authorityCertSerialNumber",void 0);var Nq=`${w1}.19`;class yX{cA=!1;pathLenConstraint;constructor(W={}){Object.assign(this,W)}}j([K({type:F.Boolean,defaultValue:!1})],yX.prototype,"cA",void 0);j([K({type:F.Integer,optional:!0})],yX.prototype,"pathLenConstraint",void 0);var PI,U8=PI=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,PI.prototype)}};U8=PI=j([W0({type:a.Sequence,itemType:V1})],U8);var RI,Rf=`${w1}.29`,NR=RI=class extends U8{constructor(G){super(G);Object.setPrototypeOf(this,RI.prototype)}};NR=RI=j([W0({type:a.Sequence})],NR);var LI,Aq=`${w1}.32`,f80=`${Aq}.0`,N4=class{ia5String;visibleString;bmpString;utf8String;constructor(G={}){Object.assign(this,G)}toString(){return this.ia5String||this.visibleString||this.bmpString||this.utf8String||""}};j([K({type:F.IA5String})],N4.prototype,"ia5String",void 0);j([K({type:F.VisibleString})],N4.prototype,"visibleString",void 0);j([K({type:F.BmpString})],N4.prototype,"bmpString",void 0);j([K({type:F.Utf8String})],N4.prototype,"utf8String",void 0);N4=j([W0({type:a.Choice})],N4);class zq{organization=new N4;noticeNumbers=[];constructor(W={}){Object.assign(this,W)}}j([K({type:N4})],zq.prototype,"organization",void 0);j([K({type:F.Integer,repeated:"sequence"})],zq.prototype,"noticeNumbers",void 0);class Iq{noticeRef;explicitText;constructor(W={}){Object.assign(this,W)}}j([K({type:zq,optional:!0})],Iq.prototype,"noticeRef",void 0);j([K({type:N4,optional:!0})],Iq.prototype,"explicitText",void 0);var Hq=class{cPSuri;userNotice;constructor(G={}){Object.assign(this,G)}};j([K({type:F.IA5String})],Hq.prototype,"cPSuri",void 0);j([K({type:Iq})],Hq.prototype,"userNotice",void 0);Hq=j([W0({type:a.Choice})],Hq);class wq{policyQualifierId="";qualifier=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],wq.prototype,"policyQualifierId",void 0);j([K({type:F.Any})],wq.prototype,"qualifier",void 0);class vX{policyIdentifier="";policyQualifiers;constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],vX.prototype,"policyIdentifier",void 0);j([K({type:wq,repeated:"sequence",optional:!0})],vX.prototype,"policyQualifiers",void 0);var rZ=LI=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,LI.prototype)}};rZ=LI=j([W0({type:a.Sequence,itemType:vX})],rZ);var o80=`${w1}.20`,aZ=class{value;constructor(G=0){this.value=G}};j([K({type:F.Integer})],aZ.prototype,"value",void 0);aZ=j([W0({type:a.Choice})],aZ);var t80=`${w1}.27`,HR=class extends aZ{};HR=j([W0({type:a.Choice})],HR);var BI,jq=`${w1}.31`,v5;(function(W){W[W.unused=1]="unused",W[W.keyCompromise=2]="keyCompromise",W[W.cACompromise=4]="cACompromise",W[W.affiliationChanged=8]="affiliationChanged",W[W.superseded=16]="superseded",W[W.cessationOfOperation=32]="cessationOfOperation",W[W.certificateHold=64]="certificateHold",W[W.privilegeWithdrawn=128]="privilegeWithdrawn",W[W.aACompromise=256]="aACompromise"})(v5||(v5={}));class Oq extends U4{toJSON(){let W=[],G=this.toNumber();if(G&v5.aACompromise)W.push("aACompromise");if(G&v5.affiliationChanged)W.push("affiliationChanged");if(G&v5.cACompromise)W.push("cACompromise");if(G&v5.certificateHold)W.push("certificateHold");if(G&v5.cessationOfOperation)W.push("cessationOfOperation");if(G&v5.keyCompromise)W.push("keyCompromise");if(G&v5.privilegeWithdrawn)W.push("privilegeWithdrawn");if(G&v5.superseded)W.push("superseded");if(G&v5.unused)W.push("unused");return W}toString(){return`[${this.toJSON().join(", ")}]`}}var H4=class{fullName;nameRelativeToCRLIssuer;constructor(G={}){Object.assign(this,G)}};j([K({type:V1,context:0,repeated:"sequence",implicit:!0})],H4.prototype,"fullName",void 0);j([K({type:K6,context:1,implicit:!0})],H4.prototype,"nameRelativeToCRLIssuer",void 0);H4=j([W0({type:a.Choice})],H4);class A4{distributionPoint;reasons;cRLIssuer;constructor(W={}){Object.assign(this,W)}}j([K({type:H4,context:0,optional:!0})],A4.prototype,"distributionPoint",void 0);j([K({type:Oq,context:1,optional:!0,implicit:!0})],A4.prototype,"reasons",void 0);j([K({type:V1,context:2,optional:!0,repeated:"sequence",implicit:!0})],A4.prototype,"cRLIssuer",void 0);var M6=BI=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,BI.prototype)}};M6=BI=j([W0({type:a.Sequence,itemType:A4})],M6);var EI,N90=`${w1}.46`,AR=EI=class extends M6{constructor(G){super(G);Object.setPrototypeOf(this,EI.prototype)}};AR=EI=j([W0({type:a.Sequence,itemType:A4})],AR);var j90=`${w1}.28`;class k9{static ONLY=!1;distributionPoint;onlyContainsUserCerts=k9.ONLY;onlyContainsCACerts=k9.ONLY;onlySomeReasons;indirectCRL=k9.ONLY;onlyContainsAttributeCerts=k9.ONLY;constructor(W={}){Object.assign(this,W)}}j([K({type:H4,context:0,optional:!0})],k9.prototype,"distributionPoint",void 0);j([K({type:F.Boolean,context:1,defaultValue:k9.ONLY,implicit:!0})],k9.prototype,"onlyContainsUserCerts",void 0);j([K({type:F.Boolean,context:2,defaultValue:k9.ONLY,implicit:!0})],k9.prototype,"onlyContainsCACerts",void 0);j([K({type:Oq,context:3,optional:!0,implicit:!0})],k9.prototype,"onlySomeReasons",void 0);j([K({type:F.Boolean,context:4,defaultValue:k9.ONLY,implicit:!0})],k9.prototype,"indirectCRL",void 0);j([K({type:F.Boolean,context:5,defaultValue:k9.ONLY,implicit:!0})],k9.prototype,"onlyContainsAttributeCerts",void 0);var zR=`${w1}.21`,sZ;(function(W){W[W.unspecified=0]="unspecified",W[W.keyCompromise=1]="keyCompromise",W[W.cACompromise=2]="cACompromise",W[W.affiliationChanged=3]="affiliationChanged",W[W.superseded=4]="superseded",W[W.cessationOfOperation=5]="cessationOfOperation",W[W.certificateHold=6]="certificateHold",W[W.removeFromCRL=8]="removeFromCRL",W[W.privilegeWithdrawn=9]="privilegeWithdrawn",W[W.aACompromise=10]="aACompromise"})(sZ||(sZ={}));var tZ=class{reason=sZ.unspecified;constructor(G=sZ.unspecified){this.reason=G}toJSON(){return sZ[this.reason]}toString(){return this.toJSON()}};j([K({type:F.Enumerated})],tZ.prototype,"reason",void 0);tZ=j([W0({type:a.Choice})],tZ);var $I,Kq=`${w1}.37`,eZ=$I=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,$I.prototype)}};eZ=$I=j([W0({type:a.Sequence,itemType:F.ObjectIdentifier})],eZ);var L90=`${Kq}.0`,IR=`${yW}.1`,wR=`${yW}.2`,jR=`${yW}.3`,OR=`${yW}.4`,KR=`${yW}.8`,CR=`${yW}.9`;var S90=`${w1}.54`,FI=class{value;constructor(G=new ArrayBuffer(0)){this.value=G}};j([K({type:F.Integer,converter:k1})],FI.prototype,"value",void 0);FI=j([W0({type:a.Choice})],FI);var DR=`${w1}.24`,WV=class{value=new Date;constructor(G){if(G)this.value=G}};j([K({type:F.GeneralizedTime})],WV.prototype,"value",void 0);WV=j([W0({type:a.Choice})],WV);var SI,xI=`${w1}.18`,MR=SI=class extends U8{constructor(G){super(G);Object.setPrototypeOf(this,SI.prototype)}};MR=SI=j([W0({type:a.Sequence})],MR);var Cq=`${w1}.15`,g5;(function(W){W[W.digitalSignature=1]="digitalSignature",W[W.nonRepudiation=2]="nonRepudiation",W[W.keyEncipherment=4]="keyEncipherment",W[W.dataEncipherment=8]="dataEncipherment",W[W.keyAgreement=16]="keyAgreement",W[W.keyCertSign=32]="keyCertSign",W[W.cRLSign=64]="cRLSign",W[W.encipherOnly=128]="encipherOnly",W[W.decipherOnly=256]="decipherOnly"})(g5||(g5={}));class GV extends U4{toJSON(){let W=this.toNumber(),G=[];if(W&g5.cRLSign)G.push("crlSign");if(W&g5.dataEncipherment)G.push("dataEncipherment");if(W&g5.decipherOnly)G.push("decipherOnly");if(W&g5.digitalSignature)G.push("digitalSignature");if(W&g5.encipherOnly)G.push("encipherOnly");if(W&g5.keyAgreement)G.push("keyAgreement");if(W&g5.keyCertSign)G.push("keyCertSign");if(W&g5.keyEncipherment)G.push("keyEncipherment");if(W&g5.nonRepudiation)G.push("nonRepudiation");return G}toString(){return`[${this.toJSON().join(", ")}]`}}var kI,i90=`${w1}.30`;class XV{base=new V1;minimum=0;maximum;constructor(W={}){Object.assign(this,W)}}j([K({type:V1})],XV.prototype,"base",void 0);j([K({type:F.Integer,context:0,defaultValue:0,implicit:!0})],XV.prototype,"minimum",void 0);j([K({type:F.Integer,context:1,optional:!0,implicit:!0})],XV.prototype,"maximum",void 0);var Dq=kI=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,kI.prototype)}};Dq=kI=j([W0({type:a.Sequence,itemType:XV})],Dq);class _I{permittedSubtrees;excludedSubtrees;constructor(W={}){Object.assign(this,W)}}j([K({type:Dq,context:0,optional:!0,implicit:!0})],_I.prototype,"permittedSubtrees",void 0);j([K({type:Dq,context:1,optional:!0,implicit:!0})],_I.prototype,"excludedSubtrees",void 0);var e90=`${w1}.36`;class yI{requireExplicitPolicy;inhibitPolicyMapping;constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer,context:0,implicit:!0,optional:!0,converter:k1})],yI.prototype,"requireExplicitPolicy",void 0);j([K({type:F.Integer,context:1,implicit:!0,optional:!0,converter:k1})],yI.prototype,"inhibitPolicyMapping",void 0);var vI,Z50=`${w1}.33`;class Mq{issuerDomainPolicy="";subjectDomainPolicy="";constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],Mq.prototype,"issuerDomainPolicy",void 0);j([K({type:F.ObjectIdentifier})],Mq.prototype,"subjectDomainPolicy",void 0);var TR=vI=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,vI.prototype)}};TR=vI=j([W0({type:a.Sequence,itemType:Mq})],TR);var gI,uI=`${w1}.17`,Tq=gI=class extends U8{constructor(G){super(G);Object.setPrototypeOf(this,gI.prototype)}};Tq=gI=j([W0({type:a.Sequence})],Tq);class I9{type="";values=[];constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],I9.prototype,"type",void 0);j([K({type:F.Any,repeated:"set"})],I9.prototype,"values",void 0);var hI,K50=`${w1}.9`,PR=hI=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,hI.prototype)}};PR=hI=j([W0({type:a.Sequence,itemType:I9})],PR);var bI=`${w1}.14`;class e9 extends _X{}var B50=`${w1}.16`;class mI{notBefore;notAfter;constructor(W={}){Object.assign(this,W)}}j([K({type:F.GeneralizedTime,context:0,implicit:!0,optional:!0})],mI.prototype,"notBefore",void 0);j([K({type:F.GeneralizedTime,context:1,implicit:!0,optional:!0})],mI.prototype,"notAfter",void 0);var YV;(function(W){W[W.keyUpdateAllowed=1]="keyUpdateAllowed",W[W.newExtensions=2]="newExtensions",W[W.pKIXCertificate=4]="pKIXCertificate"})(YV||(YV={}));class fI extends U4{toJSON(){let W=[],G=this.toNumber();if(G&YV.pKIXCertificate)W.push("pKIXCertificate");if(G&YV.newExtensions)W.push("newExtensions");if(G&YV.keyUpdateAllowed)W.push("keyUpdateAllowed");return W}toString(){return`[${this.toJSON().join(", ")}]`}}class cI{entrustVers="";entrustInfoFlags=new fI;constructor(W={}){Object.assign(this,W)}}j([K({type:F.GeneralString})],cI.prototype,"entrustVers",void 0);j([K({type:fI})],cI.prototype,"entrustInfoFlags",void 0);var pI,v50=`${C6}.11`,RR=pI=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,pI.prototype)}};RR=pI=j([W0({type:a.Sequence,itemType:D6})],RR);class T0{algorithm="";parameters;constructor(W={}){Object.assign(this,W)}isEqual(W){return W instanceof T0&&W.algorithm==this.algorithm&&(W.parameters&&this.parameters&&QI(W.parameters,this.parameters)||W.parameters===this.parameters)}}j([K({type:F.ObjectIdentifier})],T0.prototype,"algorithm",void 0);j([K({type:F.Any,optional:!0})],T0.prototype,"parameters",void 0);class w9{algorithm=new T0;subjectPublicKey=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:T0})],w9.prototype,"algorithm",void 0);j([K({type:F.BitString})],w9.prototype,"subjectPublicKey",void 0);var T8=class{utcTime;generalTime;constructor(G){if(G)if(typeof G==="string"||typeof G==="number"||G instanceof Date){let X=new Date(G);if(X.setMilliseconds(0),X.getUTCFullYear()>2049)this.generalTime=X;else this.utcTime=X}else Object.assign(this,G)}getTime(){let G=this.utcTime||this.generalTime;if(!G)throw Error("Cannot get time from CHOICE object");return G}};j([K({type:F.UTCTime})],T8.prototype,"utcTime",void 0);j([K({type:F.GeneralizedTime})],T8.prototype,"generalTime",void 0);T8=j([W0({type:a.Choice})],T8);class T6{notBefore=new T8(new Date);notAfter=new T8(new Date);constructor(W){if(W)this.notBefore=new T8(W.notBefore),this.notAfter=new T8(W.notAfter)}}j([K({type:T8})],T6.prototype,"notBefore",void 0);j([K({type:T8})],T6.prototype,"notAfter",void 0);var lI;class j9{static CRITICAL=!1;extnID="";critical=j9.CRITICAL;extnValue=new W1;constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],j9.prototype,"extnID",void 0);j([K({type:F.Boolean,defaultValue:j9.CRITICAL})],j9.prototype,"critical",void 0);j([K({type:W1})],j9.prototype,"extnValue",void 0);var W5=lI=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,lI.prototype)}};W5=lI=j([W0({type:a.Sequence,itemType:j9})],W5);var D7;(function(W){W[W.v1=0]="v1",W[W.v2=1]="v2",W[W.v3=2]="v3"})(D7||(D7={}));class O9{version=D7.v1;serialNumber=new ArrayBuffer(0);signature=new T0;issuer=new W8;validity=new T6;subject=new W8;subjectPublicKeyInfo=new w9;issuerUniqueID;subjectUniqueID;extensions;constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer,context:0,defaultValue:D7.v1})],O9.prototype,"version",void 0);j([K({type:F.Integer,converter:k1})],O9.prototype,"serialNumber",void 0);j([K({type:T0})],O9.prototype,"signature",void 0);j([K({type:W8})],O9.prototype,"issuer",void 0);j([K({type:T6})],O9.prototype,"validity",void 0);j([K({type:W8})],O9.prototype,"subject",void 0);j([K({type:w9})],O9.prototype,"subjectPublicKeyInfo",void 0);j([K({type:F.BitString,context:1,implicit:!0,optional:!0})],O9.prototype,"issuerUniqueID",void 0);j([K({type:F.BitString,context:2,implicit:!0,optional:!0})],O9.prototype,"subjectUniqueID",void 0);j([K({type:W5,context:3,optional:!0})],O9.prototype,"extensions",void 0);class u5{tbsCertificate=new O9;tbsCertificateRaw;signatureAlgorithm=new T0;signatureValue=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:O9,raw:!0})],u5.prototype,"tbsCertificate",void 0);j([K({type:T0})],u5.prototype,"signatureAlgorithm",void 0);j([K({type:F.BitString})],u5.prototype,"signatureValue",void 0);class gX{userCertificate=new ArrayBuffer(0);revocationDate=new T8;crlEntryExtensions;constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer,converter:k1})],gX.prototype,"userCertificate",void 0);j([K({type:T8})],gX.prototype,"revocationDate",void 0);j([K({type:j9,optional:!0,repeated:"sequence"})],gX.prototype,"crlEntryExtensions",void 0);class C5{version;signature=new T0;issuer=new W8;thisUpdate=new T8;nextUpdate;revokedCertificates;crlExtensions;constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer,optional:!0})],C5.prototype,"version",void 0);j([K({type:T0})],C5.prototype,"signature",void 0);j([K({type:W8})],C5.prototype,"issuer",void 0);j([K({type:T8})],C5.prototype,"thisUpdate",void 0);j([K({type:T8,optional:!0})],C5.prototype,"nextUpdate",void 0);j([K({type:gX,repeated:"sequence",optional:!0})],C5.prototype,"revokedCertificates",void 0);j([K({type:j9,optional:!0,context:0,repeated:"sequence"})],C5.prototype,"crlExtensions",void 0);class uX{tbsCertList=new C5;tbsCertListRaw;signatureAlgorithm=new T0;signature=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:C5,raw:!0})],uX.prototype,"tbsCertList",void 0);j([K({type:T0})],uX.prototype,"signatureAlgorithm",void 0);j([K({type:F.BitString})],uX.prototype,"signature",void 0);class M7{issuer=new W8;serialNumber=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:W8})],M7.prototype,"issuer",void 0);j([K({type:F.Integer,converter:k1})],M7.prototype,"serialNumber",void 0);var gW=class{subjectKeyIdentifier;issuerAndSerialNumber;constructor(G={}){Object.assign(this,G)}};j([K({type:e9,context:0,implicit:!0})],gW.prototype,"subjectKeyIdentifier",void 0);j([K({type:M7})],gW.prototype,"issuerAndSerialNumber",void 0);gW=j([W0({type:a.Choice})],gW);var t8;(function(W){W[W.v0=0]="v0",W[W.v1=1]="v1",W[W.v2=2]="v2",W[W.v3=3]="v3",W[W.v4=4]="v4",W[W.v5=5]="v5"})(t8||(t8={}));var uW=class extends T0{};uW=j([W0({type:a.Sequence})],uW);var ZV=class extends T0{};ZV=j([W0({type:a.Sequence})],ZV);var f9=class extends T0{};f9=j([W0({type:a.Sequence})],f9);var VV=class extends T0{};VV=j([W0({type:a.Sequence})],VV);var BR=class extends T0{};BR=j([W0({type:a.Sequence})],BR);var Pq=class extends T0{};Pq=j([W0({type:a.Sequence})],Pq);class T7{attrType="";attrValues=[];constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],T7.prototype,"attrType",void 0);j([K({type:F.Any,repeated:"set"})],T7.prototype,"attrValues",void 0);var dI;class G5{version=t8.v0;sid=new gW;digestAlgorithm=new uW;signedAttrs;signedAttrsRaw;signatureAlgorithm=new ZV;signature=new W1;unsignedAttrs;constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer})],G5.prototype,"version",void 0);j([K({type:gW})],G5.prototype,"sid",void 0);j([K({type:uW})],G5.prototype,"digestAlgorithm",void 0);j([K({type:T7,repeated:"set",context:0,implicit:!0,optional:!0,raw:!0})],G5.prototype,"signedAttrs",void 0);j([K({type:ZV})],G5.prototype,"signatureAlgorithm",void 0);j([K({type:W1})],G5.prototype,"signature",void 0);j([K({type:T7,repeated:"set",context:1,implicit:!0,optional:!0})],G5.prototype,"unsignedAttrs",void 0);var QV=dI=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,dI.prototype)}};QV=dI=j([W0({type:a.Set,itemType:G5})],QV);var ER=class extends G5{};ER=j([W0({type:a.Sequence})],ER);var $R=class extends T8{};$R=j([W0({type:a.Choice})],$R);class Rq{acIssuer=new V1;acSerial=0;attrs=[];constructor(W={}){Object.assign(this,W)}}j([K({type:V1})],Rq.prototype,"acIssuer",void 0);j([K({type:F.Integer})],Rq.prototype,"acSerial",void 0);j([K({type:I9,repeated:"sequence"})],Rq.prototype,"attrs",void 0);var oI,JV=oI=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,oI.prototype)}};JV=oI=j([W0({type:a.Sequence,itemType:F.ObjectIdentifier})],JV);class UV{pathLenConstraint;permittedAttrs;excludedAttrs;permitUnSpecified=!0;constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer,optional:!0})],UV.prototype,"pathLenConstraint",void 0);j([K({type:JV,implicit:!0,context:0,optional:!0})],UV.prototype,"permittedAttrs",void 0);j([K({type:JV,implicit:!0,context:1,optional:!0})],UV.prototype,"excludedAttrs",void 0);j([K({type:F.Boolean,defaultValue:!0})],UV.prototype,"permitUnSpecified",void 0);class h5{issuer=new U8;serial=new ArrayBuffer(0);issuerUID=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:U8})],h5.prototype,"issuer",void 0);j([K({type:F.Integer,converter:k1})],h5.prototype,"serial",void 0);j([K({type:F.BitString,optional:!0})],h5.prototype,"issuerUID",void 0);var nI;(function(W){W[W.publicKey=0]="publicKey",W[W.publicKeyCert=1]="publicKeyCert",W[W.otherObjectTypes=2]="otherObjectTypes"})(nI||(nI={}));class b5{digestedObjectType=nI.publicKey;otherObjectTypeID;digestAlgorithm=new T0;objectDigest=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:F.Enumerated})],b5.prototype,"digestedObjectType",void 0);j([K({type:F.ObjectIdentifier,optional:!0})],b5.prototype,"otherObjectTypeID",void 0);j([K({type:T0})],b5.prototype,"digestAlgorithm",void 0);j([K({type:F.BitString})],b5.prototype,"objectDigest",void 0);class hX{issuerName;baseCertificateID;objectDigestInfo;constructor(W={}){Object.assign(this,W)}}j([K({type:U8,optional:!0})],hX.prototype,"issuerName",void 0);j([K({type:h5,context:0,implicit:!0,optional:!0})],hX.prototype,"baseCertificateID",void 0);j([K({type:b5,context:1,implicit:!0,optional:!0})],hX.prototype,"objectDigestInfo",void 0);var hW=class{v1Form;v2Form;constructor(G={}){Object.assign(this,G)}};j([K({type:V1,repeated:"sequence"})],hW.prototype,"v1Form",void 0);j([K({type:hX,context:0,implicit:!0})],hW.prototype,"v2Form",void 0);hW=j([W0({type:a.Choice})],hW);class bX{notBeforeTime=new Date;notAfterTime=new Date;constructor(W={}){Object.assign(this,W)}}j([K({type:F.GeneralizedTime})],bX.prototype,"notBeforeTime",void 0);j([K({type:F.GeneralizedTime})],bX.prototype,"notAfterTime",void 0);class bW{baseCertificateID;entityName;objectDigestInfo;constructor(W={}){Object.assign(this,W)}}j([K({type:h5,implicit:!0,context:0,optional:!0})],bW.prototype,"baseCertificateID",void 0);j([K({type:U8,implicit:!0,context:1,optional:!0})],bW.prototype,"entityName",void 0);j([K({type:b5,implicit:!0,context:2,optional:!0})],bW.prototype,"objectDigestInfo",void 0);var iI;(function(W){W[W.v2=1]="v2"})(iI||(iI={}));class X5{version=iI.v2;holder=new bW;issuer=new hW;signature=new T0;serialNumber=new ArrayBuffer(0);attrCertValidityPeriod=new bX;attributes=[];issuerUniqueID;extensions;constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer})],X5.prototype,"version",void 0);j([K({type:bW})],X5.prototype,"holder",void 0);j([K({type:hW})],X5.prototype,"issuer",void 0);j([K({type:T0})],X5.prototype,"signature",void 0);j([K({type:F.Integer,converter:k1})],X5.prototype,"serialNumber",void 0);j([K({type:bX})],X5.prototype,"attrCertValidityPeriod",void 0);j([K({type:I9,repeated:"sequence"})],X5.prototype,"attributes",void 0);j([K({type:F.BitString,optional:!0})],X5.prototype,"issuerUniqueID",void 0);j([K({type:W5,optional:!0})],X5.prototype,"extensions",void 0);class mX{acinfo=new X5;signatureAlgorithm=new T0;signatureValue=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:X5})],mX.prototype,"acinfo",void 0);j([K({type:T0})],mX.prototype,"signatureAlgorithm",void 0);j([K({type:F.BitString})],mX.prototype,"signatureValue",void 0);var qV;(function(W){W[W.unmarked=1]="unmarked",W[W.unclassified=2]="unclassified",W[W.restricted=4]="restricted",W[W.confidential=8]="confidential",W[W.secret=16]="secret",W[W.topSecret=32]="topSecret"})(qV||(qV={}));class NV extends U4{}class HV{type="";value=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier,implicit:!0,context:0})],HV.prototype,"type",void 0);j([K({type:F.Any,implicit:!0,context:1})],HV.prototype,"value",void 0);class Lq{policyId="";classList=new NV(qV.unclassified);securityCategories;constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],Lq.prototype,"policyId",void 0);j([K({type:NV,defaultValue:new NV(qV.unclassified)})],Lq.prototype,"classList",void 0);j([K({type:HV,repeated:"set"})],Lq.prototype,"securityCategories",void 0);class AV{cotets;oid;string;constructor(W={}){Object.assign(this,W)}}j([K({type:W1})],AV.prototype,"cotets",void 0);j([K({type:F.ObjectIdentifier})],AV.prototype,"oid",void 0);j([K({type:F.Utf8String})],AV.prototype,"string",void 0);class rI{policyAuthority;values=[];constructor(W={}){Object.assign(this,W)}}j([K({type:U8,implicit:!0,context:0,optional:!0})],rI.prototype,"policyAuthority",void 0);j([K({type:AV,repeated:"sequence"})],rI.prototype,"values",void 0);var NW0=`${C6}.4`,HW0=`${C6}.6`,AW0=`${C6}.10`,zW0=`${w1}.55`,zV=`${Jq}.10`,IW0=`${zV}.1`,wW0=`${zV}.2`,jW0=`${zV}.3`,OW0=`${zV}.4`,KW0=`${zV}.6`,aI="2.5.4",CW0=`${aI}.72`;var sI;class IV{targetCertificate=new h5;targetName;certDigestInfo;constructor(W={}){Object.assign(this,W)}}j([K({type:h5})],IV.prototype,"targetCertificate",void 0);j([K({type:V1,optional:!0})],IV.prototype,"targetName",void 0);j([K({type:b5,optional:!0})],IV.prototype,"certDigestInfo",void 0);var fX=class{targetName;targetGroup;targetCert;constructor(G={}){Object.assign(this,G)}};j([K({type:V1,context:0,implicit:!0})],fX.prototype,"targetName",void 0);j([K({type:V1,context:1,implicit:!0})],fX.prototype,"targetGroup",void 0);j([K({type:IV,context:2,implicit:!0})],fX.prototype,"targetCert",void 0);fX=j([W0({type:a.Choice})],fX);var Bq=sI=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,sI.prototype)}};Bq=sI=j([W0({type:a.Sequence,itemType:fX})],Bq);var tI,FR=tI=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,tI.prototype)}};FR=tI=j([W0({type:a.Sequence,itemType:Bq})],FR);class eI{roleAuthority;roleName;constructor(W={}){Object.assign(this,W)}}j([K({type:U8,implicit:!0,context:0,optional:!0})],eI.prototype,"roleAuthority",void 0);j([K({type:V1,implicit:!0,context:1})],eI.prototype,"roleName",void 0);class Eq{service=new V1;ident=new V1;authInfo;constructor(W={}){Object.assign(this,W)}}j([K({type:V1})],Eq.prototype,"service",void 0);j([K({type:V1})],Eq.prototype,"ident",void 0);j([K({type:W1,optional:!0})],Eq.prototype,"authInfo",void 0);var Ww;class $q{otherCertFormat="";otherCert=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],$q.prototype,"otherCertFormat",void 0);j([K({type:F.Any})],$q.prototype,"otherCert",void 0);var mW=class{certificate;v2AttrCert;other;constructor(G={}){Object.assign(this,G)}};j([K({type:u5})],mW.prototype,"certificate",void 0);j([K({type:mX,context:2,implicit:!0})],mW.prototype,"v2AttrCert",void 0);j([K({type:$q,context:3,implicit:!0})],mW.prototype,"other",void 0);mW=j([W0({type:a.Choice})],mW);var fW=Ww=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Ww.prototype)}};fW=Ww=j([W0({type:a.Set,itemType:mW})],fW);class m5{contentType="";content=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],m5.prototype,"contentType",void 0);j([K({type:F.Any,context:0})],m5.prototype,"content",void 0);var cX=class{single;any;constructor(G={}){Object.assign(this,G)}};j([K({type:W1})],cX.prototype,"single",void 0);j([K({type:F.Any})],cX.prototype,"any",void 0);cX=j([W0({type:a.Choice})],cX);class pX{eContentType="";eContent;constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],pX.prototype,"eContentType",void 0);j([K({type:cX,context:0,optional:!0})],pX.prototype,"eContent",void 0);var wV=class{value;constructedValue;constructor(G={}){Object.assign(this,G)}};j([K({type:W1,context:0,implicit:!0,optional:!0})],wV.prototype,"value",void 0);j([K({type:W1,converter:BP,context:0,implicit:!0,optional:!0,repeated:"sequence"})],wV.prototype,"constructedValue",void 0);wV=j([W0({type:a.Choice})],wV);class cW{contentType="";contentEncryptionAlgorithm=new VV;encryptedContent;constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],cW.prototype,"contentType",void 0);j([K({type:VV})],cW.prototype,"contentEncryptionAlgorithm",void 0);j([K({type:wV,optional:!0})],cW.prototype,"encryptedContent",void 0);class pW{keyAttrId="";keyAttr;constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],pW.prototype,"keyAttrId",void 0);j([K({type:F.Any,optional:!0})],pW.prototype,"keyAttr",void 0);var Gw;class jV{subjectKeyIdentifier=new e9;date;other;constructor(W={}){Object.assign(this,W)}}j([K({type:e9})],jV.prototype,"subjectKeyIdentifier",void 0);j([K({type:F.GeneralizedTime,optional:!0})],jV.prototype,"date",void 0);j([K({type:pW,optional:!0})],jV.prototype,"other",void 0);var lX=class{rKeyId;issuerAndSerialNumber;constructor(G={}){Object.assign(this,G)}};j([K({type:jV,context:0,implicit:!0,optional:!0})],lX.prototype,"rKeyId",void 0);j([K({type:M7,optional:!0})],lX.prototype,"issuerAndSerialNumber",void 0);lX=j([W0({type:a.Choice})],lX);class Sq{rid=new lX;encryptedKey=new W1;constructor(W={}){Object.assign(this,W)}}j([K({type:lX})],Sq.prototype,"rid",void 0);j([K({type:W1})],Sq.prototype,"encryptedKey",void 0);var Fq=Gw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Gw.prototype)}};Fq=Gw=j([W0({type:a.Sequence,itemType:Sq})],Fq);class xq{algorithm=new T0;publicKey=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:T0})],xq.prototype,"algorithm",void 0);j([K({type:F.BitString})],xq.prototype,"publicKey",void 0);var lW=class{subjectKeyIdentifier;originatorKey;issuerAndSerialNumber;constructor(G={}){Object.assign(this,G)}};j([K({type:e9,context:0,implicit:!0,optional:!0})],lW.prototype,"subjectKeyIdentifier",void 0);j([K({type:xq,context:1,implicit:!0,optional:!0})],lW.prototype,"originatorKey",void 0);j([K({type:M7,optional:!0})],lW.prototype,"issuerAndSerialNumber",void 0);lW=j([W0({type:a.Choice})],lW);class P6{version=t8.v3;originator=new lW;ukm;keyEncryptionAlgorithm=new f9;recipientEncryptedKeys=new Fq;constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer})],P6.prototype,"version",void 0);j([K({type:lW,context:0})],P6.prototype,"originator",void 0);j([K({type:W1,context:1,optional:!0})],P6.prototype,"ukm",void 0);j([K({type:f9})],P6.prototype,"keyEncryptionAlgorithm",void 0);j([K({type:Fq})],P6.prototype,"recipientEncryptedKeys",void 0);var dX=class{subjectKeyIdentifier;issuerAndSerialNumber;constructor(G={}){Object.assign(this,G)}};j([K({type:e9,context:0,implicit:!0})],dX.prototype,"subjectKeyIdentifier",void 0);j([K({type:M7})],dX.prototype,"issuerAndSerialNumber",void 0);dX=j([W0({type:a.Choice})],dX);class dW{version=t8.v0;rid=new dX;keyEncryptionAlgorithm=new f9;encryptedKey=new W1;constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer})],dW.prototype,"version",void 0);j([K({type:dX})],dW.prototype,"rid",void 0);j([K({type:f9})],dW.prototype,"keyEncryptionAlgorithm",void 0);j([K({type:W1})],dW.prototype,"encryptedKey",void 0);class oX{keyIdentifier=new W1;date;other;constructor(W={}){Object.assign(this,W)}}j([K({type:W1})],oX.prototype,"keyIdentifier",void 0);j([K({type:F.GeneralizedTime,optional:!0})],oX.prototype,"date",void 0);j([K({type:pW,optional:!0})],oX.prototype,"other",void 0);class oW{version=t8.v4;kekid=new oX;keyEncryptionAlgorithm=new f9;encryptedKey=new W1;constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer})],oW.prototype,"version",void 0);j([K({type:oX})],oW.prototype,"kekid",void 0);j([K({type:f9})],oW.prototype,"keyEncryptionAlgorithm",void 0);j([K({type:W1})],oW.prototype,"encryptedKey",void 0);class nW{version=t8.v0;keyDerivationAlgorithm;keyEncryptionAlgorithm=new f9;encryptedKey=new W1;constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer})],nW.prototype,"version",void 0);j([K({type:Pq,context:0,optional:!0})],nW.prototype,"keyDerivationAlgorithm",void 0);j([K({type:f9})],nW.prototype,"keyEncryptionAlgorithm",void 0);j([K({type:W1})],nW.prototype,"encryptedKey",void 0);class kq{oriType="";oriValue=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],kq.prototype,"oriType",void 0);j([K({type:F.Any})],kq.prototype,"oriValue",void 0);var z4=class{ktri;kari;kekri;pwri;ori;constructor(G={}){Object.assign(this,G)}};j([K({type:dW,optional:!0})],z4.prototype,"ktri",void 0);j([K({type:P6,context:1,implicit:!0,optional:!0})],z4.prototype,"kari",void 0);j([K({type:oW,context:2,implicit:!0,optional:!0})],z4.prototype,"kekri",void 0);j([K({type:nW,context:3,implicit:!0,optional:!0})],z4.prototype,"pwri",void 0);j([K({type:kq,context:4,implicit:!0,optional:!0})],z4.prototype,"ori",void 0);z4=j([W0({type:a.Choice})],z4);var Xw,OV=Xw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Xw.prototype)}};OV=Xw=j([W0({type:a.Set,itemType:z4})],OV);var Yw,SR=`${Jq}.16`,VX0=`${SR}.2`,QX0=`${SR}.4`;class KV{otherRevInfoFormat="";otherRevInfo=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],KV.prototype,"otherRevInfoFormat",void 0);j([K({type:F.Any})],KV.prototype,"otherRevInfo",void 0);var _q=class{other=new KV;constructor(G={}){Object.assign(this,G)}};j([K({type:KV,context:1,implicit:!0})],_q.prototype,"other",void 0);_q=j([W0({type:a.Choice})],_q);var nX=Yw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Yw.prototype)}};nX=Yw=j([W0({type:a.Set,itemType:_q})],nX);class CV{certs;crls;constructor(W={}){Object.assign(this,W)}}j([K({type:fW,context:0,implicit:!0,optional:!0})],CV.prototype,"certs",void 0);j([K({type:nX,context:1,implicit:!0,optional:!0})],CV.prototype,"crls",void 0);var Zw,Vw=Zw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Zw.prototype)}};Vw=Zw=j([W0({type:a.Set,itemType:T7})],Vw);class iX{version=t8.v0;originatorInfo;recipientInfos=new OV;encryptedContentInfo=new cW;unprotectedAttrs;constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer})],iX.prototype,"version",void 0);j([K({type:CV,context:0,implicit:!0,optional:!0})],iX.prototype,"originatorInfo",void 0);j([K({type:OV})],iX.prototype,"recipientInfos",void 0);j([K({type:cW})],iX.prototype,"encryptedContentInfo",void 0);j([K({type:Vw,context:1,implicit:!0,optional:!0})],iX.prototype,"unprotectedAttrs",void 0);var xR="1.2.840.113549.1.7.2";var Qw,yq=Qw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Qw.prototype)}};yq=Qw=j([W0({type:a.Set,itemType:uW})],yq);class R6{version=t8.v0;digestAlgorithms=new yq;encapContentInfo=new pX;certificates;crls;signerInfos=new QV;constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer})],R6.prototype,"version",void 0);j([K({type:yq})],R6.prototype,"digestAlgorithms",void 0);j([K({type:pX})],R6.prototype,"encapContentInfo",void 0);j([K({type:fW,context:0,implicit:!0,optional:!0})],R6.prototype,"certificates",void 0);j([K({type:nX,context:1,implicit:!0,optional:!0})],R6.prototype,"crls",void 0);j([K({type:QV})],R6.prototype,"signerInfos",void 0);var iW="1.2.840.10045.2.1";var DV="1.2.840.10045.4.1",vq="1.2.840.10045.4.3.1",MV="1.2.840.10045.4.3.2",TV="1.2.840.10045.4.3.3",PV="1.2.840.10045.4.3.4";var Jw="1.2.840.10045.3.1.7";var Uw="1.3.132.0.34";var qw="1.3.132.0.35";function RV(W){return new T0({algorithm:W})}var _R=RV(DV),tX0=RV(vq),yR=RV(MV),vR=RV(TV),gR=RV(PV);var LV=class{fieldType;parameters;constructor(G={}){Object.assign(this,G)}};j([K({type:F.ObjectIdentifier})],LV.prototype,"fieldType",void 0);j([K({type:F.Any})],LV.prototype,"parameters",void 0);LV=j([W0({type:a.Sequence})],LV);class uR extends W1{}var rX=class{a;b;seed;constructor(G={}){Object.assign(this,G)}};j([K({type:F.OctetString})],rX.prototype,"a",void 0);j([K({type:F.OctetString})],rX.prototype,"b",void 0);j([K({type:F.BitString,optional:!0})],rX.prototype,"seed",void 0);rX=j([W0({type:a.Sequence})],rX);var Nw;(function(W){W[W.ecpVer1=1]="ecpVer1"})(Nw||(Nw={}));var P7=class{version=Nw.ecpVer1;fieldID;curve;base;order;cofactor;constructor(G={}){Object.assign(this,G)}};j([K({type:F.Integer})],P7.prototype,"version",void 0);j([K({type:LV})],P7.prototype,"fieldID",void 0);j([K({type:rX})],P7.prototype,"curve",void 0);j([K({type:uR})],P7.prototype,"base",void 0);j([K({type:F.Integer,converter:k1})],P7.prototype,"order",void 0);j([K({type:F.Integer,optional:!0})],P7.prototype,"cofactor",void 0);P7=j([W0({type:a.Sequence})],P7);var R7=class{namedCurve;implicitCurve;specifiedCurve;constructor(G={}){Object.assign(this,G)}};j([K({type:F.ObjectIdentifier})],R7.prototype,"namedCurve",void 0);j([K({type:F.Null})],R7.prototype,"implicitCurve",void 0);j([K({type:P7})],R7.prototype,"specifiedCurve",void 0);R7=j([W0({type:a.Choice})],R7);class BV{version=1;privateKey=new W1;parameters;publicKey;constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer})],BV.prototype,"version",void 0);j([K({type:W1})],BV.prototype,"privateKey",void 0);j([K({type:R7,context:0,optional:!0})],BV.prototype,"parameters",void 0);j([K({type:F.BitString,context:1,optional:!0})],BV.prototype,"publicKey",void 0);class aX{r=new ArrayBuffer(0);s=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer,converter:k1})],aX.prototype,"r",void 0);j([K({type:F.Integer,converter:k1})],aX.prototype,"s",void 0);var L7="1.2.840.113549.1.1.1",hR="1.2.840.113549.1.1.7",bR="1.2.840.113549.1.1.9",L6="1.2.840.113549.1.1.10",mR="1.2.840.113549.1.1.2",fR="1.2.840.113549.1.1.4",sX="1.2.840.113549.1.1.5",cR="1.2.840.113549.1.1.14";var gq="1.2.840.113549.1.1.11",tX="1.2.840.113549.1.1.12",eX="1.2.840.113549.1.1.13",Hw="1.2.840.113549.1.1.15",Aw="1.2.840.113549.1.1.16",rW="1.3.14.3.2.26",uq="2.16.840.1.101.3.4.2.4",aW="2.16.840.1.101.3.4.2.1",sW="2.16.840.1.101.3.4.2.2",tW="2.16.840.1.101.3.4.2.3",pR="2.16.840.1.101.3.4.2.5",lR="2.16.840.1.101.3.4.2.6",dR="1.2.840.113549.2.2",oR="1.2.840.113549.2.5",B6="1.2.840.113549.1.1.8";function c8(W){return new T0({algorithm:W,parameters:null})}var TY0=c8(dR),PY0=c8(oR),I4=c8(rW),RY0=c8(uq),LY0=c8(aW),BY0=c8(sW),EY0=c8(tW),$Y0=c8(pR),FY0=c8(lR),hq=new T0({algorithm:B6,parameters:L0.serialize(I4)}),zw=new T0({algorithm:bR,parameters:L0.serialize($X.toASN(new Uint8Array([218,57,163,238,94,107,75,13,50,85,191,239,149,96,24,144,175,216,7,9]).buffer))}),SY0=c8(L7),xY0=c8(mR),kY0=c8(fR),_Y0=c8(sX),yY0=c8(Hw),vY0=c8(Aw),gY0=c8(tX),uY0=c8(eX),hY0=c8(Hw),bY0=c8(Aw);class EV{hashAlgorithm=new T0(I4);maskGenAlgorithm=new T0({algorithm:B6,parameters:L0.serialize(I4)});pSourceAlgorithm=new T0(zw);constructor(W={}){Object.assign(this,W)}}j([K({type:T0,context:0,defaultValue:I4})],EV.prototype,"hashAlgorithm",void 0);j([K({type:T0,context:1,defaultValue:hq})],EV.prototype,"maskGenAlgorithm",void 0);j([K({type:T0,context:2,defaultValue:zw})],EV.prototype,"pSourceAlgorithm",void 0);var oY0=new T0({algorithm:hR,parameters:L0.serialize(new EV)});class w4{hashAlgorithm=new T0(I4);maskGenAlgorithm=new T0({algorithm:B6,parameters:L0.serialize(I4)});saltLength=20;trailerField=1;constructor(W={}){Object.assign(this,W)}}j([K({type:T0,context:0,defaultValue:I4})],w4.prototype,"hashAlgorithm",void 0);j([K({type:T0,context:1,defaultValue:hq})],w4.prototype,"maskGenAlgorithm",void 0);j([K({type:F.Integer,context:2,defaultValue:20})],w4.prototype,"saltLength",void 0);j([K({type:F.Integer,context:3,defaultValue:1})],w4.prototype,"trailerField",void 0);var eY0=new T0({algorithm:L6,parameters:L0.serialize(new w4)});class WY{digestAlgorithm=new T0;digest=new W1;constructor(W={}){Object.assign(this,W)}}j([K({type:T0})],WY.prototype,"digestAlgorithm",void 0);j([K({type:W1})],WY.prototype,"digest",void 0);var Iw;class $V{prime=new ArrayBuffer(0);exponent=new ArrayBuffer(0);coefficient=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer,converter:k1})],$V.prototype,"prime",void 0);j([K({type:F.Integer,converter:k1})],$V.prototype,"exponent",void 0);j([K({type:F.Integer,converter:k1})],$V.prototype,"coefficient",void 0);var bq=Iw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Iw.prototype)}};bq=Iw=j([W0({type:a.Sequence,itemType:$V})],bq);class f5{version=0;modulus=new ArrayBuffer(0);publicExponent=new ArrayBuffer(0);privateExponent=new ArrayBuffer(0);prime1=new ArrayBuffer(0);prime2=new ArrayBuffer(0);exponent1=new ArrayBuffer(0);exponent2=new ArrayBuffer(0);coefficient=new ArrayBuffer(0);otherPrimeInfos;constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer})],f5.prototype,"version",void 0);j([K({type:F.Integer,converter:k1})],f5.prototype,"modulus",void 0);j([K({type:F.Integer,converter:k1})],f5.prototype,"publicExponent",void 0);j([K({type:F.Integer,converter:k1})],f5.prototype,"privateExponent",void 0);j([K({type:F.Integer,converter:k1})],f5.prototype,"prime1",void 0);j([K({type:F.Integer,converter:k1})],f5.prototype,"prime2",void 0);j([K({type:F.Integer,converter:k1})],f5.prototype,"exponent1",void 0);j([K({type:F.Integer,converter:k1})],f5.prototype,"exponent2",void 0);j([K({type:F.Integer,converter:k1})],f5.prototype,"coefficient",void 0);j([K({type:bq,optional:!0})],f5.prototype,"otherPrimeInfos",void 0);class FV{modulus=new ArrayBuffer(0);publicExponent=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer,converter:k1})],FV.prototype,"modulus",void 0);j([K({type:F.Integer,converter:k1})],FV.prototype,"publicExponent",void 0);var ww;(function(W){W[W.Transient=0]="Transient",W[W.Singleton=1]="Singleton",W[W.ResolutionScoped=2]="ResolutionScoped",W[W.ContainerScoped=3]="ContainerScoped"})(ww||(ww={}));var e8=ww;var IL=_1(zL(),1),{__extends:SV,__assign:FZ0,__rest:SZ0,__decorate:xZ0,__param:kZ0,__metadata:_Z0,__awaiter:wL,__generator:jL,__exportStar:yZ0,__createBinding:vZ0,__values:xV,__read:XY,__spread:B7,__spreadArrays:gZ0,__await:uZ0,__asyncGenerator:hZ0,__asyncDelegator:bZ0,__asyncValues:mZ0,__makeTemplateObject:fZ0,__importStar:cZ0,__importDefault:pZ0,__classPrivateFieldGet:lZ0,__classPrivateFieldSet:dZ0}=IL.default;var Sf="injectionTokens";function Ow(W){var G=Reflect.getMetadata("design:paramtypes",W)||[],X=Reflect.getOwnMetadata(Sf,W)||{};return Object.keys(X).forEach(function(Y){G[+Y]=X[Y]}),G}function kV(W){return!!W.useClass}function YY(W){return!!W.useFactory}var cq=function(){function W(G){this.wrap=G,this.reflectMethods=["get","getPrototypeOf","setPrototypeOf","getOwnPropertyDescriptor","defineProperty","has","set","deleteProperty","apply","construct","ownKeys"]}return W.prototype.createProxy=function(G){var X=this,Y={},Z=!1,V,Q=function(){if(!Z)V=G(X.wrap()),Z=!0;return V};return new Proxy(Y,this.createHandler(Q))},W.prototype.createHandler=function(G){var X={},Y=function(Z){X[Z]=function(){var V=[];for(var Q=0;Q<arguments.length;Q++)V[Q]=arguments[Q];V[0]=G();var J=Reflect[Z];return J.apply(void 0,B7(V))}};return this.reflectMethods.forEach(Y),X},W}();function E6(W){return typeof W==="string"||typeof W==="symbol"}function Kw(W){return typeof W==="object"&&"token"in W&&"multiple"in W}function pq(W){return typeof W==="object"&&"token"in W&&"transform"in W}function OL(W){return typeof W==="function"||W instanceof cq}function eW(W){return!!W.useToken}function WG(W){return W.useValue!=null}function KL(W){return kV(W)||WG(W)||eW(W)||YY(W)}var xf=function(){function W(){this._registryMap=new Map}return W.prototype.entries=function(){return this._registryMap.entries()},W.prototype.getAll=function(G){return this.ensure(G),this._registryMap.get(G)},W.prototype.get=function(G){this.ensure(G);var X=this._registryMap.get(G);return X[X.length-1]||null},W.prototype.set=function(G,X){this.ensure(G),this._registryMap.get(G).push(X)},W.prototype.setAll=function(G,X){this._registryMap.set(G,X)},W.prototype.has=function(G){return this.ensure(G),this._registryMap.get(G).length>0},W.prototype.clear=function(){this._registryMap.clear()},W.prototype.ensure=function(G){if(!this._registryMap.has(G))this._registryMap.set(G,[])},W}(),_V=xf;var kf=function(W){SV(G,W);function G(){return W!==null&&W.apply(this,arguments)||this}return G}(_V),CL=kf;var _f=function(){function W(){this.scopedResolutions=new Map}return W}(),yV=_f;function yf(W,G){if(W===null)return"at position #"+G;var X=W.split(",")[G].trim();return'"'+X+'" at position #'+G}function vf(W,G,X){if(X===void 0)X=" ";return B7([W],G.message.split(`
|
|
214
|
+
`).map(function(Y){return X+Y})).join(`
|
|
215
|
+
`)}function Cw(W,G,X){var Y=XY(W.toString().match(/constructor\(([\w, ]+)\)/)||[],2),Z=Y[1],V=Z===void 0?null:Z,Q=yf(V,G);return vf("Cannot inject the dependency "+Q+' of "'+W.name+'" constructor. Reason:',X)}function DL(W){if(typeof W.dispose!=="function")return!1;var G=W.dispose;if(G.length>0)return!1;return!0}var gf=function(W){SV(G,W);function G(){return W!==null&&W.apply(this,arguments)||this}return G}(_V);var uf=function(W){SV(G,W);function G(){return W!==null&&W.apply(this,arguments)||this}return G}(_V);var hf=function(){function W(){this.preResolution=new gf,this.postResolution=new uf}return W}(),ML=hf;var Dw=new Map,bf=function(){function W(G){this.parent=G,this._registry=new CL,this.interceptors=new ML,this.disposed=!1,this.disposables=new Set}return W.prototype.register=function(G,X,Y){if(Y===void 0)Y={lifecycle:e8.Transient};this.ensureNotDisposed();var Z;if(!KL(X))Z={useClass:X};else Z=X;if(eW(Z)){var V=[G],Q=Z;while(Q!=null){var J=Q.useToken;if(V.includes(J))throw Error("Token registration cycle detected! "+B7(V,[J]).join(" -> "));V.push(J);var U=this._registry.get(J);if(U&&eW(U.provider))Q=U.provider;else Q=null}}if(Y.lifecycle===e8.Singleton||Y.lifecycle==e8.ContainerScoped||Y.lifecycle==e8.ResolutionScoped){if(WG(Z)||YY(Z))throw Error('Cannot use lifecycle "'+e8[Y.lifecycle]+'" with ValueProviders or FactoryProviders')}return this._registry.set(G,{provider:Z,options:Y}),this},W.prototype.registerType=function(G,X){if(this.ensureNotDisposed(),E6(X))return this.register(G,{useToken:X});return this.register(G,{useClass:X})},W.prototype.registerInstance=function(G,X){return this.ensureNotDisposed(),this.register(G,{useValue:X})},W.prototype.registerSingleton=function(G,X){if(this.ensureNotDisposed(),E6(G)){if(E6(X))return this.register(G,{useToken:X},{lifecycle:e8.Singleton});else if(X)return this.register(G,{useClass:X},{lifecycle:e8.Singleton});throw Error('Cannot register a type name as a singleton without a "to" token')}var Y=G;if(X&&!E6(X))Y=X;return this.register(G,{useClass:Y},{lifecycle:e8.Singleton})},W.prototype.resolve=function(G,X,Y){if(X===void 0)X=new yV;if(Y===void 0)Y=!1;this.ensureNotDisposed();var Z=this.getRegistration(G);if(!Z&&E6(G)){if(Y)return;throw Error('Attempted to resolve unregistered dependency token: "'+G.toString()+'"')}if(this.executePreResolutionInterceptor(G,"Single"),Z){var V=this.resolveRegistration(Z,X);return this.executePostResolutionInterceptor(G,V,"Single"),V}if(OL(G)){var V=this.construct(G,X);return this.executePostResolutionInterceptor(G,V,"Single"),V}throw Error("Attempted to construct an undefined constructor. Could mean a circular dependency problem. Try using `delay` function.")},W.prototype.executePreResolutionInterceptor=function(G,X){var Y,Z;if(this.interceptors.preResolution.has(G)){var V=[];try{for(var Q=xV(this.interceptors.preResolution.getAll(G)),J=Q.next();!J.done;J=Q.next()){var U=J.value;if(U.options.frequency!="Once")V.push(U);U.callback(G,X)}}catch(q){Y={error:q}}finally{try{if(J&&!J.done&&(Z=Q.return))Z.call(Q)}finally{if(Y)throw Y.error}}this.interceptors.preResolution.setAll(G,V)}},W.prototype.executePostResolutionInterceptor=function(G,X,Y){var Z,V;if(this.interceptors.postResolution.has(G)){var Q=[];try{for(var J=xV(this.interceptors.postResolution.getAll(G)),U=J.next();!U.done;U=J.next()){var q=U.value;if(q.options.frequency!="Once")Q.push(q);q.callback(G,X,Y)}}catch(N){Z={error:N}}finally{try{if(U&&!U.done&&(V=J.return))V.call(J)}finally{if(Z)throw Z.error}}this.interceptors.postResolution.setAll(G,Q)}},W.prototype.resolveRegistration=function(G,X){if(this.ensureNotDisposed(),G.options.lifecycle===e8.ResolutionScoped&&X.scopedResolutions.has(G))return X.scopedResolutions.get(G);var Y=G.options.lifecycle===e8.Singleton,Z=G.options.lifecycle===e8.ContainerScoped,V=Y||Z,Q;if(WG(G.provider))Q=G.provider.useValue;else if(eW(G.provider))Q=V?G.instance||(G.instance=this.resolve(G.provider.useToken,X)):this.resolve(G.provider.useToken,X);else if(kV(G.provider))Q=V?G.instance||(G.instance=this.construct(G.provider.useClass,X)):this.construct(G.provider.useClass,X);else if(YY(G.provider))Q=G.provider.useFactory(this);else Q=this.construct(G.provider,X);if(G.options.lifecycle===e8.ResolutionScoped)X.scopedResolutions.set(G,Q);return Q},W.prototype.resolveAll=function(G,X,Y){var Z=this;if(X===void 0)X=new yV;if(Y===void 0)Y=!1;this.ensureNotDisposed();var V=this.getAllRegistrations(G);if(!V&&E6(G)){if(Y)return[];throw Error('Attempted to resolve unregistered dependency token: "'+G.toString()+'"')}if(this.executePreResolutionInterceptor(G,"All"),V){var Q=V.map(function(U){return Z.resolveRegistration(U,X)});return this.executePostResolutionInterceptor(G,Q,"All"),Q}var J=[this.construct(G,X)];return this.executePostResolutionInterceptor(G,J,"All"),J},W.prototype.isRegistered=function(G,X){if(X===void 0)X=!1;return this.ensureNotDisposed(),this._registry.has(G)||X&&(this.parent||!1)&&this.parent.isRegistered(G,!0)},W.prototype.reset=function(){this.ensureNotDisposed(),this._registry.clear(),this.interceptors.preResolution.clear(),this.interceptors.postResolution.clear()},W.prototype.clearInstances=function(){var G,X;this.ensureNotDisposed();try{for(var Y=xV(this._registry.entries()),Z=Y.next();!Z.done;Z=Y.next()){var V=XY(Z.value,2),Q=V[0],J=V[1];this._registry.setAll(Q,J.filter(function(U){return!WG(U.provider)}).map(function(U){return U.instance=void 0,U}))}}catch(U){G={error:U}}finally{try{if(Z&&!Z.done&&(X=Y.return))X.call(Y)}finally{if(G)throw G.error}}},W.prototype.createChildContainer=function(){var G,X;this.ensureNotDisposed();var Y=new W(this);try{for(var Z=xV(this._registry.entries()),V=Z.next();!V.done;V=Z.next()){var Q=XY(V.value,2),J=Q[0],U=Q[1];if(U.some(function(q){var N=q.options;return N.lifecycle===e8.ContainerScoped}))Y._registry.setAll(J,U.map(function(q){if(q.options.lifecycle===e8.ContainerScoped)return{provider:q.provider,options:q.options};return q}))}}catch(q){G={error:q}}finally{try{if(V&&!V.done&&(X=Z.return))X.call(Z)}finally{if(G)throw G.error}}return Y},W.prototype.beforeResolution=function(G,X,Y){if(Y===void 0)Y={frequency:"Always"};this.interceptors.preResolution.set(G,{callback:X,options:Y})},W.prototype.afterResolution=function(G,X,Y){if(Y===void 0)Y={frequency:"Always"};this.interceptors.postResolution.set(G,{callback:X,options:Y})},W.prototype.dispose=function(){return wL(this,void 0,void 0,function(){var G;return jL(this,function(X){switch(X.label){case 0:return this.disposed=!0,G=[],this.disposables.forEach(function(Y){var Z=Y.dispose();if(Z)G.push(Z)}),[4,Promise.all(G)];case 1:return X.sent(),[2]}})})},W.prototype.getRegistration=function(G){if(this.isRegistered(G))return this._registry.get(G);if(this.parent)return this.parent.getRegistration(G);return null},W.prototype.getAllRegistrations=function(G){if(this.isRegistered(G))return this._registry.getAll(G);if(this.parent)return this.parent.getAllRegistrations(G);return null},W.prototype.construct=function(G,X){var Y=this;if(G instanceof cq)return G.createProxy(function(V){return Y.resolve(V,X)});var Z=function(){var V=Dw.get(G);if(!V||V.length===0)if(G.length===0)return new G;else throw Error('TypeInfo not known for "'+G.name+'"');var Q=V.map(Y.resolveParams(X,G));return new(G.bind.apply(G,B7([void 0],Q)))}();if(DL(Z))this.disposables.add(Z);return Z},W.prototype.resolveParams=function(G,X){var Y=this;return function(Z,V){var Q,J,U;try{if(Kw(Z))if(pq(Z))return Z.multiple?(Q=Y.resolve(Z.transform)).transform.apply(Q,B7([Y.resolveAll(Z.token,new yV,Z.isOptional)],Z.transformArgs)):(J=Y.resolve(Z.transform)).transform.apply(J,B7([Y.resolve(Z.token,G,Z.isOptional)],Z.transformArgs));else return Z.multiple?Y.resolveAll(Z.token,new yV,Z.isOptional):Y.resolve(Z.token,G,Z.isOptional);else if(pq(Z))return(U=Y.resolve(Z.transform,G)).transform.apply(U,B7([Y.resolve(Z.token,G)],Z.transformArgs));return Y.resolve(Z,G)}catch(q){throw Error(Cw(X,V,q))}}},W.prototype.ensureNotDisposed=function(){if(this.disposed)throw Error("This container has been disposed, you cannot interact with a disposed container")},W}(),Z8=new bf;function mf(W){return function(G){if(Dw.set(G,Ow(G)),W&&W.token)if(!Array.isArray(W.token))Z8.register(W.token,G);else W.token.forEach(function(X){Z8.register(X,G)})}}var $6=mf;if(typeof Reflect>"u"||!Reflect.getMetadata)throw Error(`tsyringe requires a reflect polyfill. Please add 'import "reflect-metadata"' to the top of your entry point.`);var Tw;class ZY{attrId="";attrValues=[];constructor(W={}){Object.assign(W)}}j([K({type:F.ObjectIdentifier})],ZY.prototype,"attrId",void 0);j([K({type:F.Any,repeated:"set"})],ZY.prototype,"attrValues",void 0);var TL=Tw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Tw.prototype)}};TL=Tw=j([W0({type:a.Sequence,itemType:ZY})],TL);var Pw,PL=Pw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Pw.prototype)}};PL=Pw=j([W0({type:a.Sequence,itemType:m5})],PL);var GG="1.2.840.113549.1.12.10.1";var tQ0=`${GG}.1`,eQ0=`${GG}.2`,WJ0=`${GG}.3`,GJ0=`${GG}.4`,XJ0=`${GG}.5`,YJ0=`${GG}.6`,lq="1.2.840.113549.1.9";class Rw{certId="";certValue=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],Rw.prototype,"certId",void 0);j([K({type:F.Any,context:0})],Rw.prototype,"certValue",void 0);var RL=`${lq}.22`,UJ0=`${RL}.1`,qJ0=`${RL}.2`;class Lw{crlId="";crltValue=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],Lw.prototype,"crlId",void 0);j([K({type:F.Any,context:0})],Lw.prototype,"crltValue",void 0);var ff=`${lq}.23`,IJ0=`${ff}.1`;class Bw extends W1{}class XG{encryptionAlgorithm=new T0;encryptedData=new Bw;constructor(W={}){Object.assign(this,W)}}j([K({type:T0})],XG.prototype,"encryptionAlgorithm",void 0);j([K({type:Bw})],XG.prototype,"encryptedData",void 0);var Ew,$w;(function(W){W[W.v1=0]="v1"})($w||($w={}));class Sw extends W1{}var Fw=Ew=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,Ew.prototype)}};Fw=Ew=j([W0({type:a.Sequence,itemType:I9})],Fw);class YG{version=$w.v1;privateKeyAlgorithm=new T0;privateKey=new Sw;attributes;constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer})],YG.prototype,"version",void 0);j([K({type:T0})],YG.prototype,"privateKeyAlgorithm",void 0);j([K({type:Sw})],YG.prototype,"privateKey",void 0);j([K({type:Fw,implicit:!0,context:0,optional:!0})],YG.prototype,"attributes",void 0);var LL=class extends YG{};LL=j([W0({type:a.Sequence})],LL);var BL=class extends XG{};BL=j([W0({type:a.Sequence})],BL);class xw{secretTypeId="";secretValue=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],xw.prototype,"secretTypeId",void 0);j([K({type:F.Any,context:0})],xw.prototype,"secretValue",void 0);class ZG{mac=new WY;macSalt=new W1;iterations=1;constructor(W={}){Object.assign(this,W)}}j([K({type:WY})],ZG.prototype,"mac",void 0);j([K({type:W1})],ZG.prototype,"macSalt",void 0);j([K({type:F.Integer,defaultValue:1})],ZG.prototype,"iterations",void 0);class VY{version=3;authSafe=new m5;macData=new ZG;constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer})],VY.prototype,"version",void 0);j([K({type:m5})],VY.prototype,"authSafe",void 0);j([K({type:ZG,optional:!0})],VY.prototype,"macData",void 0);var kw;class vV{bagId="";bagValue=new ArrayBuffer(0);bagAttributes;constructor(W={}){Object.assign(this,W)}}j([K({type:F.ObjectIdentifier})],vV.prototype,"bagId",void 0);j([K({type:F.Any,context:0})],vV.prototype,"bagValue",void 0);j([K({type:ZY,repeated:"set",optional:!0})],vV.prototype,"bagAttributes",void 0);var EL=kw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,kw.prototype)}};EL=kw=j([W0({type:a.Sequence,itemType:vV})],EL);var _w,yw,vw,P8="1.2.840.113549.1.9",AU0=`${P8}.0`,fL=`${P8}.24`,uV=`${P8}.25`,cL=`${P8}.26`,pL=`${P8}.27`,zU0=`${fL}.1`,IU0=`${fL}.2`,wU0=`${P8}.1`,jU0=`${P8}.2`,OU0=`${P8}.3`,KU0=`${P8}.4`,CU0=`${P8}.5`,DU0=`${P8}.6`,pw=`${P8}.7`,MU0=`${P8}.8`,TU0=`${P8}.9`,PU0=`${P8}.13`,hV=`${P8}.14`,RU0=`${P8}.15`,LU0=`${P8}.20`,BU0=`${P8}.21`;var EU0=`${uV}.1`,$U0=`${uV}.2`,FU0=`${uV}.3`,SU0=`${uV}.4`,xU0=`${uV}.5`,bV="1.3.6.1.5.5.7.9",kU0=`${bV}.1`,_U0=`${bV}.2`,yU0=`${bV}.3`,vU0=`${bV}.4`,gU0=`${bV}.5`,uU0=`${cL}.1`,hU0=`${cL}.2`,bU0=`${pL}.1`,mU0=`${pL}.2`,fU0=`${P8}.16`,cU0=`${P8}.22`,pU0=`${P8}.23`,lU0=`${aI}.65`,dq=class extends x8{ia5String;constructor(G={}){super(G)}toString(){return{}.toString(),this.ia5String||super.toString()}};j([K({type:F.IA5String})],dq.prototype,"ia5String",void 0);dq=j([W0({type:a.Choice})],dq);var $L=class extends m5{};$L=j([W0({type:a.Sequence})],$L);var FL=class extends VY{};FL=j([W0({type:a.Sequence})],FL);var SL=class extends XG{};SL=j([W0({type:a.Sequence})],SL);var gw=class{value;constructor(G=""){this.value=G}toString(){return this.value}};j([K({type:F.IA5String})],gw.prototype,"value",void 0);gw=j([W0({type:a.Choice})],gw);var xL=class extends dq{};xL=j([W0({type:a.Choice})],xL);var kL=class extends x8{};kL=j([W0({type:a.Choice})],kL);var uw=class{value;constructor(G=new Date){this.value=G}};j([K({type:F.GeneralizedTime})],uw.prototype,"value",void 0);uw=j([W0({type:a.Choice})],uw);var _L=class extends x8{};_L=j([W0({type:a.Choice})],_L);var hw=class{value;constructor(G="M"){this.value=G}toString(){return this.value}};j([K({type:F.PrintableString})],hw.prototype,"value",void 0);hw=j([W0({type:a.Choice})],hw);var oq=class{value;constructor(G=""){this.value=G}toString(){return this.value}};j([K({type:F.PrintableString})],oq.prototype,"value",void 0);oq=j([W0({type:a.Choice})],oq);var yL=class extends oq{};yL=j([W0({type:a.Choice})],yL);var vL=class extends x8{};vL=j([W0({type:a.Choice})],vL);var bw=class{value;constructor(G=""){this.value=G}toString(){return this.value}};j([K({type:F.ObjectIdentifier})],bw.prototype,"value",void 0);bw=j([W0({type:a.Choice})],bw);var gL=class extends T8{};gL=j([W0({type:a.Choice})],gL);var mw=class{value;constructor(G=0){this.value=G}toString(){return this.value.toString()}};j([K({type:F.Integer})],mw.prototype,"value",void 0);mw=j([W0({type:a.Choice})],mw);var uL=class extends G5{};uL=j([W0({type:a.Sequence})],uL);var gV=class extends x8{};gV=j([W0({type:a.Choice})],gV);var hL=_w=class extends W5{constructor(G){super(G);Object.setPrototypeOf(this,_w.prototype)}};hL=_w=j([W0({type:a.Sequence})],hL);var bL=yw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,yw.prototype)}};bL=yw=j([W0({type:a.Set,itemType:T7})],bL);var fw=class{value;constructor(G=""){this.value=G}toString(){return this.value}};j([K({type:F.BmpString})],fw.prototype,"value",void 0);fw=j([W0({type:a.Choice})],fw);var cw=class extends T0{};cw=j([W0({type:a.Sequence})],cw);var mL=vw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,vw.prototype)}};mL=vw=j([W0({type:a.Sequence,itemType:cw})],mL);var lw,mV=lw=class extends i0{constructor(G){super(G);Object.setPrototypeOf(this,lw.prototype)}};mV=lw=j([W0({type:a.Sequence,itemType:I9})],mV);class j4{version=0;subject=new W8;subjectPKInfo=new w9;attributes=new mV;constructor(W={}){Object.assign(this,W)}}j([K({type:F.Integer})],j4.prototype,"version",void 0);j([K({type:W8})],j4.prototype,"subject",void 0);j([K({type:w9})],j4.prototype,"subjectPKInfo",void 0);j([K({type:mV,implicit:!0,context:0,optional:!0})],j4.prototype,"attributes",void 0);class VG{certificationRequestInfo=new j4;certificationRequestInfoRaw;signatureAlgorithm=new T0;signature=new ArrayBuffer(0);constructor(W={}){Object.assign(this,W)}}j([K({type:j4,raw:!0})],VG.prototype,"certificationRequestInfo",void 0);j([K({type:T0})],VG.prototype,"signatureAlgorithm",void 0);j([K({type:F.BitString})],VG.prototype,"signature",void 0);/*!
|
|
216
|
+
* MIT License
|
|
217
|
+
*
|
|
218
|
+
* Copyright (c) Peculiar Ventures. All rights reserved.
|
|
219
|
+
*
|
|
220
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
221
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
222
|
+
* in the Software without restriction, including without limitation the rights
|
|
223
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
224
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
225
|
+
* furnished to do so, subject to the following conditions:
|
|
226
|
+
*
|
|
227
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
228
|
+
* copies or substantial portions of the Software.
|
|
229
|
+
*
|
|
230
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
231
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
232
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
233
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
234
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
235
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
236
|
+
* SOFTWARE.
|
|
237
|
+
*
|
|
238
|
+
*/var qQ="crypto.algorithm";class $3{getAlgorithms(){return Z8.resolveAll(qQ)}toAsnAlgorithm(W){({...W});for(let G of this.getAlgorithms()){let X=G.toAsnAlgorithm(W);if(X)return X}if(/^[0-9.]+$/.test(W.name)){let G=new T0({algorithm:W.name});if("parameters"in W){let X=W;G.parameters=X.parameters}return G}throw Error("Cannot convert WebCrypto algorithm to ASN.1 algorithm")}toWebAlgorithm(W){for(let X of this.getAlgorithms()){let Y=X.toWebAlgorithm(W);if(Y)return Y}return{name:W.algorithm,parameters:W.parameters}}}var QG="crypto.algorithmProvider";Z8.registerSingleton(QG,$3);var aq,p9="1.3.36.3.3.2.8.1.1",lL=`${p9}.1`,dL=`${p9}.2`,oL=`${p9}.3`,nL=`${p9}.4`,iL=`${p9}.5`,rL=`${p9}.6`,aL=`${p9}.7`,sL=`${p9}.8`,tL=`${p9}.9`,eL=`${p9}.10`,W3=`${p9}.11`,G3=`${p9}.12`,X3=`${p9}.13`,Y3=`${p9}.14`,Z3="brainpoolP160r1",V3="brainpoolP160t1",Q3="brainpoolP192r1",J3="brainpoolP192t1",U3="brainpoolP224r1",q3="brainpoolP224t1",N3="brainpoolP256r1",H3="brainpoolP256t1",A3="brainpoolP320r1",z3="brainpoolP320t1",I3="brainpoolP384r1",w3="brainpoolP384t1",j3="brainpoolP512r1",O3="brainpoolP512t1",z8="ECDSA",QQ=aq=class{toAsnAlgorithm(G){switch(G.name.toLowerCase()){case z8.toLowerCase():if("hash"in G)switch((typeof G.hash==="string"?G.hash:G.hash.name).toLowerCase()){case"sha-1":return _R;case"sha-256":return yR;case"sha-384":return vR;case"sha-512":return gR}else if("namedCurve"in G){let X="";switch(G.namedCurve){case"P-256":X=Jw;break;case"K-256":X=aq.SECP256K1;break;case"P-384":X=Uw;break;case"P-521":X=qw;break;case Z3:X=lL;break;case V3:X=dL;break;case Q3:X=oL;break;case J3:X=nL;break;case U3:X=iL;break;case q3:X=rL;break;case N3:X=aL;break;case H3:X=sL;break;case A3:X=tL;break;case z3:X=eL;break;case I3:X=W3;break;case w3:X=G3;break;case j3:X=X3;break;case O3:X=Y3;break}if(X)return new T0({algorithm:iW,parameters:L0.serialize(new R7({namedCurve:X}))})}}return null}toWebAlgorithm(G){switch(G.algorithm){case DV:return{name:z8,hash:{name:"SHA-1"}};case MV:return{name:z8,hash:{name:"SHA-256"}};case TV:return{name:z8,hash:{name:"SHA-384"}};case PV:return{name:z8,hash:{name:"SHA-512"}};case iW:{if(!G.parameters)throw TypeError("Cannot get required parameters from EC algorithm");switch(L0.parse(G.parameters,R7).namedCurve){case Jw:return{name:z8,namedCurve:"P-256"};case aq.SECP256K1:return{name:z8,namedCurve:"K-256"};case Uw:return{name:z8,namedCurve:"P-384"};case qw:return{name:z8,namedCurve:"P-521"};case lL:return{name:z8,namedCurve:Z3};case dL:return{name:z8,namedCurve:V3};case oL:return{name:z8,namedCurve:Q3};case nL:return{name:z8,namedCurve:J3};case iL:return{name:z8,namedCurve:U3};case rL:return{name:z8,namedCurve:q3};case aL:return{name:z8,namedCurve:N3};case sL:return{name:z8,namedCurve:H3};case tL:return{name:z8,namedCurve:A3};case eL:return{name:z8,namedCurve:z3};case W3:return{name:z8,namedCurve:I3};case G3:return{name:z8,namedCurve:w3};case X3:return{name:z8,namedCurve:j3};case Y3:return{name:z8,namedCurve:O3}}}}return null}};QQ.SECP256K1="1.3.132.0.10";QQ=aq=j([$6()],QQ);Z8.registerSingleton(qQ,QQ);var F3=Symbol("name"),S3=Symbol("value");class p1{constructor(W,G={},X=""){this[F3]=W,this[S3]=X;for(let Y in G)this[Y]=G[Y]}}p1.NAME=F3;p1.VALUE=S3;class x3{static toTextObject(W){let G=new p1("Algorithm Identifier",{},C4.toString(W.algorithm));if(W.parameters)switch(W.algorithm){case iW:{let X=new QQ().toWebAlgorithm(W);if(X&&"namedCurve"in X)G["Named Curve"]=X.namedCurve;else G.Parameters=W.parameters;break}default:G.Parameters=W.parameters}return G}}class C4{static toString(W){let G=this.items[W];if(G)return G;return W}}C4.items={[rW]:"sha1",[uq]:"sha224",[aW]:"sha256",[sW]:"sha384",[tW]:"sha512",[L7]:"rsaEncryption",[sX]:"sha1WithRSAEncryption",[cR]:"sha224WithRSAEncryption",[gq]:"sha256WithRSAEncryption",[tX]:"sha384WithRSAEncryption",[eX]:"sha512WithRSAEncryption",[iW]:"ecPublicKey",[DV]:"ecdsaWithSHA1",[vq]:"ecdsaWithSHA224",[MV]:"ecdsaWithSHA256",[TV]:"ecdsaWithSHA384",[PV]:"ecdsaWithSHA512",[IR]:"TLS WWW server authentication",[wR]:"TLS WWW client authentication",[jR]:"Code Signing",[OR]:"E-mail Protection",[KR]:"Time Stamping",[CR]:"OCSP Signing",[xR]:"Signed Data"};class S6{static serialize(W){return this.serializeObj(W).join(`
|
|
239
|
+
`)}static pad(W=0){return"".padStart(2*W," ")}static serializeObj(W,G=0){let X=[],Y=this.pad(G++),Z="",V=W[p1.VALUE];if(V)Z=` ${V}`;X.push(`${Y}${W[p1.NAME]}:${Z}`),Y=this.pad(G);for(let Q in W){if(typeof Q==="symbol")continue;let J=W[Q],U=Q?`${Q}: `:"";if(typeof J==="string"||typeof J==="number"||typeof J==="boolean")X.push(`${Y}${U}${J}`);else if(J instanceof Date)X.push(`${Y}${U}${J.toUTCString()}`);else if(Array.isArray(J))for(let q of J)q[p1.NAME]=Q,X.push(...this.serializeObj(q,G));else if(J instanceof p1)J[p1.NAME]=Q,X.push(...this.serializeObj(J,G));else if(S0.isBufferSource(J))if(Q)X.push(`${Y}${U}`),X.push(...this.serializeBufferSource(J,G+1));else X.push(...this.serializeBufferSource(J,G));else if("toTextObject"in J){let q=J.toTextObject();q[p1.NAME]=Q,X.push(...this.serializeObj(q,G))}else throw TypeError("Cannot serialize data in text format. Unsupported type.")}return X}static serializeBufferSource(W,G=0){let X=this.pad(G),Y=S0.toUint8Array(W),Z=[];for(let V=0;V<Y.length;){let Q=[];for(let J=0;J<16&&V<Y.length;J++){if(J===8)Q.push("");let U=Y[V++].toString(16).padStart(2,"0");Q.push(U)}Z.push(`${X}${Q.join(" ")}`)}return Z}static serializeAlgorithm(W){return this.algorithmSerializer.toTextObject(W)}}S6.oidSerializer=C4;S6.algorithmSerializer=x3;var QY;class k6{get rawData(){if(!D1(this,QY,"f"))J8(this,QY,L0.serialize(this.asn),"f");return D1(this,QY,"f")}constructor(...W){if(QY.set(this,void 0),S0.isBufferSource(W[0]))this.asn=L0.parse(W[0],W[1]),J8(this,QY,S0.toArrayBuffer(W[0]),"f"),this.onInit(this.asn);else this.asn=W[0],this.onInit(this.asn)}equal(W){if(W instanceof k6)return _T(W.rawData,this.rawData);return!1}toString(W="text"){switch(W){case"asn":return L0.toString(this.rawData);case"text":return S6.serialize(this.toTextObject());case"hex":return p0.ToHex(this.rawData);case"base64":return p0.ToBase64(this.rawData);case"base64url":return p0.ToBase64Url(this.rawData);default:throw TypeError("Argument 'format' is unsupported value")}}getTextName(){return this.constructor.NAME}toTextObject(){let W=this.toTextObjectEmpty();return W[""]=this.rawData,W}toTextObjectEmpty(W){return new p1(this.getTextName(),{},W)}}QY=new WeakMap;k6.NAME="ASN";class Y5 extends k6{constructor(...W){let G;if(S0.isBufferSource(W[0]))G=S0.toArrayBuffer(W[0]);else G=L0.serialize(new j9({extnID:W[0],critical:W[1],extnValue:new W1(S0.toArrayBuffer(W[2]))}));super(G,j9)}onInit(W){this.type=W.extnID,this.critical=W.critical,this.value=W.extnValue.buffer}toTextObject(){let W=this.toTextObjectWithoutValue();return W[""]=this.value,W}toTextObjectWithoutValue(){let W=this.toTextObjectEmpty(this.critical?"critical":void 0);if(W[p1.NAME]===Y5.NAME)W[p1.NAME]=C4.toString(this.type);return W}}var k3;class F6{static isCryptoKeyPair(W){return W&&W.privateKey&&W.publicKey}static isCryptoKey(W){return W&&W.usages&&W.type&&W.algorithm&&W.extractable!==void 0}constructor(){if(this.items=new Map,this[k3]="CryptoProvider",typeof self<"u"&&typeof crypto<"u")this.set(F6.DEFAULT,crypto);else if(typeof global<"u"&&global.crypto&&global.crypto.subtle)this.set(F6.DEFAULT,global.crypto)}clear(){this.items.clear()}delete(W){return this.items.delete(W)}forEach(W,G){return this.items.forEach(W,G)}has(W){return this.items.has(W)}get size(){return this.items.size}entries(){return this.items.entries()}keys(){return this.items.keys()}values(){return this.items.values()}[Symbol.iterator](){return this.items[Symbol.iterator]()}get(W=F6.DEFAULT){let G=this.items.get(W.toLowerCase());if(!G)throw Error(`Cannot get Crypto by name '${W}'`);return G}set(W,G){if(typeof W==="string"){if(!G)throw TypeError("Argument 'value' is required");this.items.set(W.toLowerCase(),G)}else this.items.set(F6.DEFAULT,W);return this}}k3=Symbol.toStringTag;F6.DEFAULT="default";var k8=new F6,df=/^[0-2](?:\.[1-9][0-9]*)+$/;function of(W){return new RegExp(df).test(W)}class Yj{constructor(W={}){this.items={};for(let G in W)this.register(G,W[G])}get(W){return this.items[W]||null}findId(W){if(!of(W))return this.get(W);return W}register(W,G){this.items[W]=G,this.items[G]=W}}var c9=new Yj;c9.register("CN","2.5.4.3");c9.register("L","2.5.4.7");c9.register("ST","2.5.4.8");c9.register("O","2.5.4.10");c9.register("OU","2.5.4.11");c9.register("C","2.5.4.6");c9.register("DC","0.9.2342.19200300.100.1.25");c9.register("E","1.2.840.113549.1.9.1");c9.register("G","2.5.4.42");c9.register("I","2.5.4.43");c9.register("SN","2.5.4.4");c9.register("T","2.5.4.12");function nf(W,G){return`\\${p0.ToHex(p0.FromUtf8String(G)).toUpperCase()}`}function rf(W){return W.replace(/([,+"\\<>;])/g,"\\$1").replace(/^([ #])/,"\\$1").replace(/([ ]$)/,"\\$1").replace(/([\r\n\t])/,nf)}class c5{static isASCII(W){for(let G=0;G<W.length;G++)if(W.charCodeAt(G)>255)return!1;return!0}static isPrintableString(W){return/^[A-Za-z0-9 '()+,-./:=?]*$/g.test(W)}constructor(W,G={}){this.extraNames=new Yj,this.asn=new W8;for(let X in G)if(Object.prototype.hasOwnProperty.call(G,X)){let Y=G[X];this.extraNames.register(X,Y)}if(typeof W==="string")this.asn=this.fromString(W);else if(W instanceof W8)this.asn=W;else if(S0.isBufferSource(W))this.asn=L0.parse(W,W8);else this.asn=this.fromJSON(W)}getField(W){let G=this.extraNames.findId(W)||c9.findId(W),X=[];for(let Y of this.asn)for(let Z of Y)if(Z.type===G)X.push(Z.value.toString());return X}getName(W){return this.extraNames.get(W)||c9.get(W)}toString(){return this.asn.map((W)=>W.map((G)=>{let X=this.getName(G.type)||G.type,Y=G.value.anyValue?`#${p0.ToHex(G.value.anyValue)}`:rf(G.value.toString());return`${X}=${Y}`}).join("+")).join(", ")}toJSON(){var W;let G=[];for(let X of this.asn){let Y={};for(let Z of X){let V=this.getName(Z.type)||Z.type;(W=Y[V])!==null&&W!==void 0||(Y[V]=[]),Y[V].push(Z.value.anyValue?`#${p0.ToHex(Z.value.anyValue)}`:Z.value.toString())}G.push(Y)}return G}fromString(W){let G=new W8,X=/(\d\.[\d.]*\d|[A-Za-z]+)=((?:"")|(?:".*?[^\\]")|(?:[^,+"\\](?=[,+]|$))|(?:[^,+].*?(?:[^\\][,+]))|(?:))([,+])?/g,Y=null,Z=",";while(Y=X.exec(`${W},`)){let[,V,Q]=Y,J=Q[Q.length-1];if(J===","||J==="+")Q=Q.slice(0,Q.length-1),Y[3]=J;let U=Y[3];V=this.getTypeOid(V);let q=this.createAttribute(V,Q);if(Z==="+")G[G.length-1].push(q);else G.push(new K6([q]));Z=U}return G}fromJSON(W){let G=new W8;for(let X of W){let Y=new K6;for(let Z in X){let V=this.getTypeOid(Z),Q=X[Z];for(let J of Q){let U=this.createAttribute(V,J);Y.push(U)}}G.push(Y)}return G}getTypeOid(W){if(!/[\d.]+/.test(W))W=this.getName(W)||"";if(!W)throw Error(`Cannot get OID for name type '${W}'`);return W}createAttribute(W,G){let X=new kX({type:W});if(typeof G==="object")for(let Y in G)switch(Y){case"ia5String":X.value.ia5String=G[Y];break;case"utf8String":X.value.utf8String=G[Y];break;case"universalString":X.value.universalString=G[Y];break;case"bmpString":X.value.bmpString=G[Y];break;case"printableString":X.value.printableString=G[Y];break}else if(G[0]==="#")X.value.anyValue=p0.FromHex(G.slice(1));else{let Y=this.processStringValue(G);if(W===this.getName("E")||W===this.getName("DC"))X.value.ia5String=Y;else if(c5.isPrintableString(Y))X.value.printableString=Y;else X.value.utf8String=Y}return X}processStringValue(W){let G=/"(.*?[^\\])?"/.exec(W);if(G)W=G[1];return W.replace(/\\0a/ig,`
|
|
240
|
+
`).replace(/\\0d/ig,"\r").replace(/\\0g/ig,"\t").replace(/\\(.)/g,"$1")}toArrayBuffer(){return L0.serialize(this.asn)}async getThumbprint(...W){var G;let X,Y="SHA-1";if(W.length>=1&&!((G=W[0])===null||G===void 0?void 0:G.subtle))Y=W[0]||Y,X=W[1]||k8.get();else X=W[0]||k8.get();return await X.subtle.digest(Y,this.toArrayBuffer())}}var _3="Cannot initialize GeneralName from ASN.1 data.",K3=`${_3} Unsupported string format in use.`,af=`${_3} Value doesn't match to GUID regular expression.`,C3=/^([0-9a-f]{8})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{12})$/i,D3="1.3.6.1.4.1.311.25.1",M3="1.3.6.1.4.1.311.20.2.3",dw="dns",ow="dn",nw="email",iw="ip",rw="url",aw="guid",sw="upn",nq="id";class O4 extends k6{constructor(...W){let G;if(W.length===2)switch(W[0]){case ow:{let X=new c5(W[1]).toArrayBuffer(),Y=L0.parse(X,W8);G=new V1({directoryName:Y});break}case dw:G=new V1({dNSName:W[1]});break;case nw:G=new V1({rfc822Name:W[1]});break;case aw:{let X=new RegExp(C3,"i").exec(W[1]);if(!X)throw Error("Cannot parse GUID value. Value doesn't match to regular expression");let Y=X.slice(1).map((Z,V)=>{if(V<3)return p0.ToHex(new Uint8Array(p0.FromHex(Z)).reverse());return Z}).join("");G=new V1({otherName:new _W({typeId:D3,value:L0.serialize(new W1(p0.FromHex(Y)))})});break}case iw:G=new V1({iPAddress:W[1]});break;case nq:G=new V1({registeredID:W[1]});break;case sw:{G=new V1({otherName:new _W({typeId:M3,value:L0.serialize(JI.toASN(W[1]))})});break}case rw:G=new V1({uniformResourceIdentifier:W[1]});break;default:throw Error("Cannot create GeneralName. Unsupported type of the name")}else if(S0.isBufferSource(W[0]))G=L0.parse(W[0],V1);else G=W[0];super(G)}onInit(W){if(W.dNSName!=null)this.type=dw,this.value=W.dNSName;else if(W.rfc822Name!=null)this.type=nw,this.value=W.rfc822Name;else if(W.iPAddress!=null)this.type=iw,this.value=W.iPAddress;else if(W.uniformResourceIdentifier!=null)this.type=rw,this.value=W.uniformResourceIdentifier;else if(W.registeredID!=null)this.type=nq,this.value=W.registeredID;else if(W.directoryName!=null)this.type=ow,this.value=new c5(W.directoryName).toString();else if(W.otherName!=null)if(W.otherName.typeId===D3){this.type=aw;let G=L0.parse(W.otherName.value,W1),X=new RegExp(C3,"i").exec(p0.ToHex(G));if(!X)throw Error(af);this.value=X.slice(1).map((Y,Z)=>{if(Z<3)return p0.ToHex(new Uint8Array(p0.FromHex(Y)).reverse());return Y}).join("-")}else if(W.otherName.typeId===M3)this.type=sw,this.value=L0.parse(W.otherName.value,x8).toString();else throw Error(K3);else throw Error(K3)}toJSON(){return{type:this.type,value:this.value}}toTextObject(){let W;switch(this.type){case ow:case dw:case aw:case iw:case nq:case sw:case rw:W=this.type.toUpperCase();break;case nw:W="Email";break;default:throw Error("Unsupported GeneralName type")}let G=this.value;if(this.type===nq)G=C4.toString(G);return new p1(W,void 0,G)}}class x6 extends k6{constructor(W){let G;if(W instanceof U8)G=W;else if(Array.isArray(W)){let X=[];for(let Y of W)if(Y instanceof V1)X.push(Y);else{let Z=L0.parse(new O4(Y.type,Y.value).rawData,V1);X.push(Z)}G=new U8(X)}else if(S0.isBufferSource(W))G=L0.parse(W,U8);else throw Error("Cannot initialize GeneralNames. Incorrect incoming arguments");super(G)}onInit(W){let G=[];for(let X of W){let Y=null;try{Y=new O4(X)}catch{continue}G.push(Y)}this.items=G}toJSON(){return this.items.map((W)=>W.toJSON())}toTextObject(){let W=super.toTextObjectEmpty();for(let G of this.items){let X=G.toTextObject(),Y=W[X[p1.NAME]];if(!Array.isArray(Y))Y=[],W[X[p1.NAME]]=Y;Y.push(X)}return W}}x6.NAME="GeneralNames";var VQ="-{5}",JQ="\\n",sf=`[^${JQ}]+`,tf=`${VQ}BEGIN (${sf}(?=${VQ}))${VQ}`,ef=`${VQ}END \\1${VQ}`,qY="\\n",Wc=`[^:${JQ}]+`,Gc=`(?:[^${JQ}]+${qY}(?: +[^${JQ}]+${qY})*)`,Xc="[a-zA-Z0-9=+/]+",Yc=`(?:${Xc}${qY})+`,T3=`${tf}${qY}(?:((?:${Wc}: ${Gc})+))?${qY}?(${Yc})${ef}`;class K9{static isPem(W){return typeof W==="string"&&new RegExp(T3,"g").test(W.replace(/\r/g,""))}static decodeWithHeaders(W){W=W.replace(/\r/g,"");let G=new RegExp(T3,"g"),X=[],Y=null;while(Y=G.exec(W)){let Z=Y[3].replace(new RegExp(`[${JQ}]+`,"g"),""),V={type:Y[1],headers:[],rawData:p0.FromBase64(Z)},Q=Y[2];if(Q){let J=Q.split(new RegExp(qY,"g")),U=null;for(let q of J){let[N,A]=q.split(/:(.*)/);if(A===void 0){if(!U)throw Error("Cannot parse PEM string. Incorrect header value");U.value+=N.trim()}else{if(U)V.headers.push(U);U={key:N,value:A.trim()}}}if(U)V.headers.push(U)}X.push(V)}return X}static decode(W){return this.decodeWithHeaders(W).map((X)=>X.rawData)}static decodeFirst(W){let G=this.decode(W);if(!G.length)throw RangeError("PEM string doesn't contain any objects");return G[0]}static encode(W,G){if(Array.isArray(W)){let X=[];if(G)W.forEach((Y)=>{if(!S0.isBufferSource(Y))throw TypeError("Cannot encode array of BufferSource in PEM format. Not all items of the array are BufferSource");X.push(this.encodeStruct({type:G,rawData:S0.toArrayBuffer(Y)}))});else W.forEach((Y)=>{if(!("type"in Y))throw TypeError("Cannot encode array of PemStruct in PEM format. Not all items of the array are PemStrut");X.push(this.encodeStruct(Y))});return X.join(`
|
|
241
|
+
`)}else{if(!G)throw Error("Required argument 'tag' is missed");return this.encodeStruct({type:G,rawData:S0.toArrayBuffer(W)})}}static encodeStruct(W){var G;let X=W.type.toLocaleUpperCase(),Y=[];if(Y.push(`-----BEGIN ${X}-----`),(G=W.headers)===null||G===void 0?void 0:G.length){for(let U of W.headers)Y.push(`${U.key}: ${U.value}`);Y.push("")}let Z=p0.ToBase64(W.rawData),V,Q=0,J=Array();while(Q<Z.length){if(Z.length-Q<64)V=Z.substring(Q);else V=Z.substring(Q,Q+64),Q+=64;if(V.length!==0){if(J.push(V),V.length<64)break}else break}return Y.push(...J),Y.push(`-----END ${X}-----`),Y.join(`
|
|
242
|
+
`)}}K9.CertificateTag="CERTIFICATE";K9.CrlTag="CRL";K9.CertificateRequestTag="CERTIFICATE REQUEST";K9.PublicKeyTag="PUBLIC KEY";K9.PrivateKeyTag="PRIVATE KEY";class K4 extends k6{static isAsnEncoded(W){return S0.isBufferSource(W)||typeof W==="string"}static toArrayBuffer(W){if(typeof W==="string")if(K9.isPem(W))return K9.decode(W)[0];else if(p0.isHex(W))return p0.FromHex(W);else if(p0.isBase64(W))return p0.FromBase64(W);else if(p0.isBase64Url(W))return p0.FromBase64Url(W);else throw TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url");else{let G=S0.toUint8Array(W);if(G.length>0&&G[0]===48)return S0.toArrayBuffer(W);let X=p0.ToBinary(W);if(K9.isPem(X))return K9.decode(X)[0];else if(p0.isHex(X))return p0.FromHex(X);else if(p0.isBase64(X))return p0.FromBase64(X);else if(p0.isBase64Url(X))return p0.FromBase64Url(X);throw TypeError("Unsupported format of 'raw' argument. Must be one of DER, PEM, HEX, Base64, or Base4Url")}}constructor(...W){if(K4.isAsnEncoded(W[0]))super(K4.toArrayBuffer(W[0]),W[1]);else super(W[0])}toString(W="pem"){switch(W){case"pem":return K9.encode(this.rawData,this.tag);default:return super.toString(W)}}}class p5 extends K4{static async create(W,G=k8.get()){if(W instanceof p5)return W;else if(F6.isCryptoKey(W)){if(W.type!=="public")throw TypeError("Public key is required");let X=await G.subtle.exportKey("spki",W);return new p5(X)}else if(W.publicKey)return W.publicKey;else if(S0.isBufferSource(W))return new p5(W);else throw TypeError("Unsupported PublicKeyType")}constructor(W){if(K4.isAsnEncoded(W))super(W,w9);else super(W);this.tag=K9.PublicKeyTag}async export(...W){let G,X=["verify"],Y={hash:"SHA-256",...this.algorithm};if(W.length>1)Y=W[0]||Y,X=W[1]||X,G=W[2]||k8.get();else G=W[0]||k8.get();let Z=this.rawData,V=L0.parse(this.rawData,w9);if(V.algorithm.algorithm===L6)Z=Zc(V,Z);return G.subtle.importKey("spki",Z,Y,!0,X)}onInit(W){let G=Z8.resolve(QG),X=this.algorithm=G.toWebAlgorithm(W.algorithm);switch(W.algorithm.algorithm){case L7:{let Y=L0.parse(W.subjectPublicKey,FV),Z=S0.toUint8Array(Y.modulus);X.publicExponent=S0.toUint8Array(Y.publicExponent),X.modulusLength=(!Z[0]?Z.slice(1):Z).byteLength<<3;break}}}async getThumbprint(...W){var G;let X,Y="SHA-1";if(W.length>=1&&!((G=W[0])===null||G===void 0?void 0:G.subtle))Y=W[0]||Y,X=W[1]||k8.get();else X=W[0]||k8.get();return await X.subtle.digest(Y,this.rawData)}async getKeyIdentifier(...W){let G,X="SHA-1";if(W.length===1)if(typeof W[0]==="string")X=W[0],G=k8.get();else G=W[0];else if(W.length===2)X=W[0],G=W[1];else G=k8.get();let Y=L0.parse(this.rawData,w9);return await G.subtle.digest(X,Y.subjectPublicKey)}toTextObject(){let W=this.toTextObjectEmpty(),G=L0.parse(this.rawData,w9);switch(W.Algorithm=S6.serializeAlgorithm(G.algorithm),G.algorithm.algorithm){case iW:W["EC Point"]=G.subjectPublicKey;break;case L7:default:W["Raw Data"]=G.subjectPublicKey}return W}}function Zc(W,G){return W.algorithm=new T0({algorithm:L7,parameters:null}),G=L0.serialize(W),G}class UQ extends Y5{static async create(W,G=!1,X=k8.get()){if("name"in W&&"serialNumber"in W)return new UQ(W,G);let Z=await(await p5.create(W,X)).getKeyIdentifier(X);return new UQ(p0.ToHex(Z),G)}constructor(...W){if(S0.isBufferSource(W[0]))super(W[0]);else if(typeof W[0]==="string"){let G=new q4({keyIdentifier:new _X(p0.FromHex(W[0]))});super(qq,W[1],L0.serialize(G))}else{let G=W[0],X=G.name instanceof x6?L0.parse(G.name.rawData,U8):G.name,Y=new q4({authorityCertIssuer:X,authorityCertSerialNumber:p0.FromHex(G.serialNumber)});super(qq,W[1],L0.serialize(Y))}}onInit(W){super.onInit(W);let G=L0.parse(W.extnValue,q4);if(G.keyIdentifier)this.keyId=p0.ToHex(G.keyIdentifier);if(G.authorityCertIssuer||G.authorityCertSerialNumber)this.certId={name:G.authorityCertIssuer||[],serialNumber:G.authorityCertSerialNumber?p0.ToHex(G.authorityCertSerialNumber):""}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=L0.parse(this.value,q4);if(G.authorityCertIssuer)W["Authority Issuer"]=new x6(G.authorityCertIssuer).toTextObject();if(G.authorityCertSerialNumber)W["Authority Serial Number"]=G.authorityCertSerialNumber;if(G.keyIdentifier)W[""]=G.keyIdentifier;return W}}UQ.NAME="Authority Key Identifier";class Zj extends Y5{constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=L0.parse(this.value,yX);this.ca=G.cA,this.pathLength=G.pathLenConstraint}else{let G=new yX({cA:W[0],pathLenConstraint:W[1]});super(Nq,W[2],L0.serialize(G));this.ca=W[0],this.pathLength=W[1]}}toTextObject(){let W=this.toTextObjectWithoutValue();if(this.ca)W.CA=this.ca;if(this.pathLength!==void 0)W["Path Length"]=this.pathLength;return W}}Zj.NAME="Basic Constraints";var P3;(function(W){W.serverAuth="1.3.6.1.5.5.7.3.1",W.clientAuth="1.3.6.1.5.5.7.3.2",W.codeSigning="1.3.6.1.5.5.7.3.3",W.emailProtection="1.3.6.1.5.5.7.3.4",W.timeStamping="1.3.6.1.5.5.7.3.8",W.ocspSigning="1.3.6.1.5.5.7.3.9"})(P3||(P3={}));class Vj extends Y5{constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=L0.parse(this.value,eZ);this.usages=G.map((X)=>X)}else{let G=new eZ(W[0]);super(Kq,W[1],L0.serialize(G));this.usages=W[0]}}toTextObject(){let W=this.toTextObjectWithoutValue();return W[""]=this.usages.map((G)=>C4.toString(G)).join(", "),W}}Vj.NAME="Extended Key Usages";var R3;(function(W){W[W.digitalSignature=1]="digitalSignature",W[W.nonRepudiation=2]="nonRepudiation",W[W.keyEncipherment=4]="keyEncipherment",W[W.dataEncipherment=8]="dataEncipherment",W[W.keyAgreement=16]="keyAgreement",W[W.keyCertSign=32]="keyCertSign",W[W.cRLSign=64]="cRLSign",W[W.encipherOnly=128]="encipherOnly",W[W.decipherOnly=256]="decipherOnly"})(R3||(R3={}));class Qj extends Y5{constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=L0.parse(this.value,GV);this.usages=G.toNumber()}else{let G=new GV(W[0]);super(Cq,W[1],L0.serialize(G));this.usages=W[0]}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=L0.parse(this.value,GV);return W[""]=G.toJSON().join(", "),W}}Qj.NAME="Key Usages";class tq extends Y5{static async create(W,G=!1,X=k8.get()){let Z=await(await p5.create(W,X)).getKeyIdentifier(X);return new tq(p0.ToHex(Z),G)}constructor(...W){if(S0.isBufferSource(W[0])){super(W[0]);let G=L0.parse(this.value,e9);this.keyId=p0.ToHex(G)}else{let G=typeof W[0]==="string"?p0.FromHex(W[0]):W[0],X=new e9(G);super(bI,W[1],L0.serialize(X));this.keyId=p0.ToHex(G)}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=L0.parse(this.value,e9);return W[""]=G,W}}tq.NAME="Subject Key Identifier";class Jj extends Y5{constructor(...W){if(S0.isBufferSource(W[0]))super(W[0]);else super(uI,W[1],new x6(W[0]||[]).rawData)}onInit(W){super.onInit(W);let G=L0.parse(W.extnValue,Tq);this.names=new x6(G)}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.names.toTextObject();for(let X in G)W[X]=G[X];return W}}Jj.NAME="Subject Alternative Name";class l9{static register(W,G){this.items.set(W,G)}static create(W){let G=new Y5(W),X=this.items.get(G.type);if(X)return new X(W);return G}}l9.items=new Map;class Uj extends Y5{constructor(...W){var G;if(S0.isBufferSource(W[0])){super(W[0]);let X=L0.parse(this.value,rZ);this.policies=X.map((Y)=>Y.policyIdentifier)}else{let X=W[0],Y=(G=W[1])!==null&&G!==void 0?G:!1,Z=new rZ(X.map((V)=>new vX({policyIdentifier:V})));super(Aq,Y,L0.serialize(Z));this.policies=X}}toTextObject(){let W=this.toTextObjectWithoutValue();return W.Policy=this.policies.map((G)=>new p1("",{},C4.toString(G))),W}}Uj.NAME="Certificate Policies";l9.register(Aq,Uj);class qj extends Y5{constructor(...W){var G;if(S0.isBufferSource(W[0]))super(W[0]);else if(Array.isArray(W[0])&&typeof W[0][0]==="string"){let Y=W[0].map((V)=>{return new A4({distributionPoint:new H4({fullName:[new V1({uniformResourceIdentifier:V})]})})}),Z=new M6(Y);super(jq,W[1],L0.serialize(Z))}else{let X=new M6(W[0]);super(jq,W[1],L0.serialize(X))}(G=this.distributionPoints)!==null&&G!==void 0||(this.distributionPoints=[])}onInit(W){super.onInit(W);let G=L0.parse(W.extnValue,M6);this.distributionPoints=G}toTextObject(){let W=this.toTextObjectWithoutValue();return W["Distribution Point"]=this.distributionPoints.map((G)=>{var X;let Y={};if(G.distributionPoint)Y[""]=(X=G.distributionPoint.fullName)===null||X===void 0?void 0:X.map((Z)=>new O4(Z).toString()).join(", ");if(G.reasons)Y.Reasons=G.reasons.toString();if(G.cRLIssuer)Y["CRL Issuer"]=G.cRLIssuer.map((Z)=>Z.toString()).join(", ");return Y}),W}}qj.NAME="CRL Distribution Points";class Nj extends Y5{constructor(...W){var G,X,Y,Z;if(S0.isBufferSource(W[0]))super(W[0]);else if(W[0]instanceof vW){let V=new vW(W[0]);super(Uq,W[1],L0.serialize(V))}else{let V=W[0],Q=new vW;rq(Q,V,KI,"ocsp"),rq(Q,V,CI,"caIssuers"),rq(Q,V,DI,"timeStamping"),rq(Q,V,MI,"caRepository");super(Uq,W[1],L0.serialize(Q))}(G=this.ocsp)!==null&&G!==void 0||(this.ocsp=[]),(X=this.caIssuers)!==null&&X!==void 0||(this.caIssuers=[]),(Y=this.timeStamping)!==null&&Y!==void 0||(this.timeStamping=[]),(Z=this.caRepository)!==null&&Z!==void 0||(this.caRepository=[])}onInit(W){super.onInit(W),this.ocsp=[],this.caIssuers=[],this.timeStamping=[],this.caRepository=[],L0.parse(W.extnValue,vW).forEach((X)=>{switch(X.accessMethod){case KI:this.ocsp.push(new O4(X.accessLocation));break;case CI:this.caIssuers.push(new O4(X.accessLocation));break;case DI:this.timeStamping.push(new O4(X.accessLocation));break;case MI:this.caRepository.push(new O4(X.accessLocation));break}})}toTextObject(){let W=this.toTextObjectWithoutValue();if(this.ocsp.length)iq(W,"OCSP",this.ocsp);if(this.caIssuers.length)iq(W,"CA Issuers",this.caIssuers);if(this.timeStamping.length)iq(W,"Time Stamping",this.timeStamping);if(this.caRepository.length)iq(W,"CA Repository",this.caRepository);return W}}Nj.NAME="Authority Info Access";function iq(W,G,X){if(X.length===1)W[G]=X[0].toTextObject();else{let Y=new p1("");X.forEach((Z,V)=>{let Q=Z.toTextObject(),J=`${Q[p1.NAME]} ${V+1}`,U=Y[J];if(!Array.isArray(U))U=[],Y[J]=U;U.push(Q)}),W[G]=Y}}function rq(W,G,X,Y){let Z=G[Y];if(Z)(Array.isArray(Z)?Z:[Z]).forEach((Q)=>{if(typeof Q==="string")Q=new O4("url",Q);W.push(new D6({accessMethod:X,accessLocation:L0.parse(Q.rawData,V1)}))})}class Hj extends Y5{constructor(...W){if(S0.isBufferSource(W[0]))super(W[0]);else super(xI,W[1],new x6(W[0]||[]).rawData)}onInit(W){super.onInit(W);let G=L0.parse(W.extnValue,U8);this.names=new x6(G)}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.names.toTextObject();for(let X in G)W[X]=G[X];return W}}Hj.NAME="Issuer Alternative Name";class NY extends k6{constructor(...W){let G;if(S0.isBufferSource(W[0]))G=S0.toArrayBuffer(W[0]);else{let X=W[0],Y=Array.isArray(W[1])?W[1].map((Z)=>S0.toArrayBuffer(Z)):[];G=L0.serialize(new I9({type:X,values:Y}))}super(G,I9)}onInit(W){this.type=W.type,this.values=W.values}toTextObject(){let W=this.toTextObjectWithoutValue();return W.Value=this.values.map((G)=>new p1("",{"":G})),W}toTextObjectWithoutValue(){let W=this.toTextObjectEmpty();if(W[p1.NAME]===NY.NAME)W[p1.NAME]=C4.toString(this.type);return W}}NY.NAME="Attribute";class Aj extends NY{constructor(...W){var G;if(S0.isBufferSource(W[0]))super(W[0]);else{let X=new gV({printableString:W[0]});super(pw,[L0.serialize(X)])}(G=this.password)!==null&&G!==void 0||(this.password="")}onInit(W){if(super.onInit(W),this.values[0]){let G=L0.parse(this.values[0],gV);this.password=G.toString()}}toTextObject(){let W=this.toTextObjectWithoutValue();return W[p1.VALUE]=this.password,W}}Aj.NAME="Challenge Password";class eq extends NY{constructor(...W){var G;if(S0.isBufferSource(W[0]))super(W[0]);else{let X=W[0],Y=new W5;for(let Z of X)Y.push(L0.parse(Z.rawData,j9));super(hV,[L0.serialize(Y)])}(G=this.items)!==null&&G!==void 0||(this.items=[])}onInit(W){if(super.onInit(W),this.values[0]){let G=L0.parse(this.values[0],W5);this.items=G.map((X)=>l9.create(L0.serialize(X)))}}toTextObject(){let W=this.toTextObjectWithoutValue(),G=this.items.map((X)=>X.toTextObject());for(let X of G)W[X[p1.NAME]]=X;return W}}eq.NAME="Extensions";class NQ{static register(W,G){this.items.set(W,G)}static create(W){let G=new NY(W),X=this.items.get(G.type);if(X)return new X(W);return G}}NQ.items=new Map;var HQ="crypto.signatureFormatter";class y3{toAsnSignature(W,G){return S0.toArrayBuffer(G)}toWebSignature(W,G){return S0.toArrayBuffer(G)}}var sq,Wj=sq=class{static createPssParams(G,X){let Y=sq.getHashAlgorithm(G);if(!Y)return null;return new w4({hashAlgorithm:Y,maskGenAlgorithm:new T0({algorithm:B6,parameters:L0.serialize(Y)}),saltLength:X})}static getHashAlgorithm(G){let X=Z8.resolve(QG);if(typeof G==="string")return X.toAsnAlgorithm({name:G});if(typeof G==="object"&&G&&"name"in G)return X.toAsnAlgorithm(G);return null}toAsnAlgorithm(G){switch(G.name.toLowerCase()){case"rsassa-pkcs1-v1_5":if("hash"in G){let X;if(typeof G.hash==="string")X=G.hash;else if(G.hash&&typeof G.hash==="object"&&"name"in G.hash&&typeof G.hash.name==="string")X=G.hash.name.toUpperCase();else throw Error("Cannot get hash algorithm name");switch(X.toLowerCase()){case"sha-1":return new T0({algorithm:sX,parameters:null});case"sha-256":return new T0({algorithm:gq,parameters:null});case"sha-384":return new T0({algorithm:tX,parameters:null});case"sha-512":return new T0({algorithm:eX,parameters:null})}}else return new T0({algorithm:L7,parameters:null});break;case"rsa-pss":if("hash"in G){if(!(("saltLength"in G)&&typeof G.saltLength==="number"))throw Error("Cannot get 'saltLength' from 'alg' argument");let X=sq.createPssParams(G.hash,G.saltLength);if(!X)throw Error("Cannot create PSS parameters");return new T0({algorithm:L6,parameters:L0.serialize(X)})}else return new T0({algorithm:L6,parameters:null})}return null}toWebAlgorithm(G){switch(G.algorithm){case L7:return{name:"RSASSA-PKCS1-v1_5"};case sX:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-1"}};case gq:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case tX:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-384"}};case eX:return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-512"}};case L6:if(G.parameters){let X=L0.parse(G.parameters,w4);return{name:"RSA-PSS",hash:Z8.resolve(QG).toWebAlgorithm(X.hashAlgorithm),saltLength:X.saltLength}}else return{name:"RSA-PSS"}}return null}};Wj=sq=j([$6()],Wj);Z8.registerSingleton(qQ,Wj);var Gj=class{toAsnAlgorithm(G){switch(G.name.toLowerCase()){case"sha-1":return new T0({algorithm:rW});case"sha-256":return new T0({algorithm:aW});case"sha-384":return new T0({algorithm:sW});case"sha-512":return new T0({algorithm:tW})}return null}toWebAlgorithm(G){switch(G.algorithm){case rW:return{name:"SHA-1"};case aW:return{name:"SHA-256"};case sW:return{name:"SHA-384"};case tW:return{name:"SHA-512"}}return null}};Gj=j([$6()],Gj);Z8.registerSingleton(qQ,Gj);class D5{addPadding(W,G){let X=S0.toUint8Array(G),Y=new Uint8Array(W);return Y.set(X,W-X.length),Y.buffer}removePadding(W,G=!1){let X=S0.toUint8Array(W);for(let Y=0;Y<X.length;Y++){if(!X[Y])continue;X=X.slice(Y);break}if(G&&X[0]>127){let Y=new Uint8Array(X.length+1);return Y.set(X,1),Y.buffer}return X.buffer}toAsnSignature(W,G){if(W.name==="ECDSA"){let X=W.namedCurve,Y=D5.namedCurveSize.get(X)||D5.defaultNamedCurveSize,Z=new aX,V=S0.toUint8Array(G);return Z.r=this.removePadding(V.slice(0,Y),!0),Z.s=this.removePadding(V.slice(Y,Y+Y),!0),L0.serialize(Z)}return null}toWebSignature(W,G){if(W.name==="ECDSA"){let X=L0.parse(G,aX),Y=W.namedCurve,Z=D5.namedCurveSize.get(Y)||D5.defaultNamedCurveSize,V=this.addPadding(Z,this.removePadding(X.r)),Q=this.addPadding(Z,this.removePadding(X.s));return kT(V,Q)}return null}}D5.namedCurveSize=new Map;D5.defaultNamedCurveSize=32;var tw="1.3.101.110",L3="1.3.101.111",ew="1.3.101.112",B3="1.3.101.113",Xj=class{toAsnAlgorithm(G){let X=null;switch(G.name.toLowerCase()){case"ed25519":X=ew;break;case"x25519":X=tw;break;case"eddsa":switch(G.namedCurve.toLowerCase()){case"ed25519":X=ew;break;case"ed448":X=B3;break}break;case"ecdh-es":switch(G.namedCurve.toLowerCase()){case"x25519":X=tw;break;case"x448":X=L3;break}}if(X)return new T0({algorithm:X});return null}toWebAlgorithm(G){switch(G.algorithm){case ew:return{name:"Ed25519"};case B3:return{name:"EdDSA",namedCurve:"Ed448"};case tw:return{name:"X25519"};case L3:return{name:"ECDH-ES",namedCurve:"X448"}}return null}};Xj=j([$6()],Xj);Z8.registerSingleton(qQ,Xj);var fV,cV,pV,lV,dV,oV,nV,JY;class v3 extends K4{get subjectName(){if(!D1(this,cV,"f"))J8(this,cV,new c5(this.asn.certificationRequestInfo.subject),"f");return D1(this,cV,"f")}get subject(){if(!D1(this,pV,"f"))J8(this,pV,this.subjectName.toString(),"f");return D1(this,pV,"f")}get signatureAlgorithm(){if(!D1(this,lV,"f")){let W=Z8.resolve(QG);J8(this,lV,W.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return D1(this,lV,"f")}get signature(){if(!D1(this,dV,"f"))J8(this,dV,this.asn.signature,"f");return D1(this,dV,"f")}get publicKey(){if(!D1(this,oV,"f"))J8(this,oV,new p5(this.asn.certificationRequestInfo.subjectPKInfo),"f");return D1(this,oV,"f")}get attributes(){if(!D1(this,nV,"f"))J8(this,nV,this.asn.certificationRequestInfo.attributes.map((W)=>NQ.create(L0.serialize(W))),"f");return D1(this,nV,"f")}get extensions(){if(!D1(this,JY,"f")){J8(this,JY,[],"f");let W=this.getAttribute(hV);if(W instanceof eq)J8(this,JY,W.items,"f")}return D1(this,JY,"f")}get tbs(){if(!D1(this,fV,"f"))J8(this,fV,this.asn.certificationRequestInfoRaw||L0.serialize(this.asn.certificationRequestInfo),"f");return D1(this,fV,"f")}constructor(W){let G=K4.isAsnEncoded(W)?[W,VG]:[W];super(G[0],G[1]);fV.set(this,void 0),cV.set(this,void 0),pV.set(this,void 0),lV.set(this,void 0),dV.set(this,void 0),oV.set(this,void 0),nV.set(this,void 0),JY.set(this,void 0),this.tag=K9.CertificateRequestTag}onInit(W){}getAttribute(W){for(let G of this.attributes)if(G.type===W)return G;return null}getAttributes(W){return this.attributes.filter((G)=>G.type===W)}getExtension(W){for(let G of this.extensions)if(G.type===W)return G;return null}getExtensions(W){return this.extensions.filter((G)=>G.type===W)}async verify(W=k8.get()){let G={...this.publicKey.algorithm,...this.signatureAlgorithm},X=await this.publicKey.export(G,["verify"],W),Y=Z8.resolveAll(HQ).reverse(),Z=null;for(let Q of Y)if(Z=Q.toWebSignature(G,this.signature),Z)break;if(!Z)throw Error("Cannot convert WebCrypto signature value to ASN.1 format");return await W.subtle.verify(this.signatureAlgorithm,X,Z,this.tbs)}toTextObject(){let W=this.toTextObjectEmpty(),G=L0.parse(this.rawData,VG),X=G.certificationRequestInfo,Y=new p1("",{Version:`${D7[X.version]} (${X.version})`,Subject:this.subject,"Subject Public Key Info":this.publicKey});if(this.attributes.length){let Z=new p1("");for(let V of this.attributes){let Q=V.toTextObject();Z[Q[p1.NAME]]=Q}Y.Attributes=Z}return W.Data=Y,W.Signature=new p1("",{Algorithm:S6.serializeAlgorithm(G.signatureAlgorithm),"":G.signature}),W}}fV=new WeakMap,cV=new WeakMap,pV=new WeakMap,lV=new WeakMap,dV=new WeakMap,oV=new WeakMap,nV=new WeakMap,JY=new WeakMap;v3.NAME="PKCS#10 Certificate Request";var iV,rV,aV,sV,tV,eV,WQ,GQ,XQ,YQ,UY,ZQ;class zj extends K4{get publicKey(){if(!D1(this,ZQ,"f"))J8(this,ZQ,new p5(this.asn.tbsCertificate.subjectPublicKeyInfo),"f");return D1(this,ZQ,"f")}get serialNumber(){if(!D1(this,rV,"f")){let W=this.asn.tbsCertificate,G=new Uint8Array(W.serialNumber);if(G.length>1&&G[0]===0&&G[1]>127)G=G.slice(1);J8(this,rV,p0.ToHex(G),"f")}return D1(this,rV,"f")}get subjectName(){if(!D1(this,aV,"f"))J8(this,aV,new c5(this.asn.tbsCertificate.subject),"f");return D1(this,aV,"f")}get subject(){if(!D1(this,sV,"f"))J8(this,sV,this.subjectName.toString(),"f");return D1(this,sV,"f")}get issuerName(){if(!D1(this,tV,"f"))J8(this,tV,new c5(this.asn.tbsCertificate.issuer),"f");return D1(this,tV,"f")}get issuer(){if(!D1(this,eV,"f"))J8(this,eV,this.issuerName.toString(),"f");return D1(this,eV,"f")}get notBefore(){if(!D1(this,WQ,"f")){let W=this.asn.tbsCertificate.validity.notBefore.utcTime||this.asn.tbsCertificate.validity.notBefore.generalTime;if(!W)throw Error("Cannot get 'notBefore' value");J8(this,WQ,W,"f")}return D1(this,WQ,"f")}get notAfter(){if(!D1(this,GQ,"f")){let W=this.asn.tbsCertificate.validity.notAfter.utcTime||this.asn.tbsCertificate.validity.notAfter.generalTime;if(!W)throw Error("Cannot get 'notAfter' value");J8(this,GQ,W,"f")}return D1(this,GQ,"f")}get signatureAlgorithm(){if(!D1(this,XQ,"f")){let W=Z8.resolve(QG);J8(this,XQ,W.toWebAlgorithm(this.asn.signatureAlgorithm),"f")}return D1(this,XQ,"f")}get signature(){if(!D1(this,YQ,"f"))J8(this,YQ,this.asn.signatureValue,"f");return D1(this,YQ,"f")}get extensions(){if(!D1(this,UY,"f")){if(J8(this,UY,[],"f"),this.asn.tbsCertificate.extensions)J8(this,UY,this.asn.tbsCertificate.extensions.map((W)=>l9.create(L0.serialize(W))),"f")}return D1(this,UY,"f")}get tbs(){if(!D1(this,iV,"f"))J8(this,iV,this.asn.tbsCertificateRaw||L0.serialize(this.asn.tbsCertificate),"f");return D1(this,iV,"f")}constructor(W){let G=K4.isAsnEncoded(W)?[W,u5]:[W];super(G[0],G[1]);iV.set(this,void 0),rV.set(this,void 0),aV.set(this,void 0),sV.set(this,void 0),tV.set(this,void 0),eV.set(this,void 0),WQ.set(this,void 0),GQ.set(this,void 0),XQ.set(this,void 0),YQ.set(this,void 0),UY.set(this,void 0),ZQ.set(this,void 0),this.tag=K9.CertificateTag}onInit(W){}getExtension(W){for(let G of this.extensions)if(typeof W==="string"){if(G.type===W)return G}else if(G instanceof W)return G;return null}getExtensions(W){return this.extensions.filter((G)=>{if(typeof W==="string")return G.type===W;else return G instanceof W})}async verify(W={},G=k8.get()){let X,Y,Z=W.publicKey;try{if(!Z)X={...this.publicKey.algorithm,...this.signatureAlgorithm},Y=await this.publicKey.export(X,["verify"],G);else if("publicKey"in Z)X={...Z.publicKey.algorithm,...this.signatureAlgorithm},Y=await Z.publicKey.export(X,["verify"],G);else if(Z instanceof p5)X={...Z.algorithm,...this.signatureAlgorithm},Y=await Z.export(X,["verify"],G);else if(S0.isBufferSource(Z)){let U=new p5(Z);X={...U.algorithm,...this.signatureAlgorithm},Y=await U.export(X,["verify"],G)}else X={...Z.algorithm,...this.signatureAlgorithm},Y=Z}catch{return!1}let V=Z8.resolveAll(HQ).reverse(),Q=null;for(let U of V)if(Q=U.toWebSignature(X,this.signature),Q)break;if(!Q)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");let J=await G.subtle.verify(this.signatureAlgorithm,Y,Q,this.tbs);if(W.signatureOnly)return J;else{let q=(W.date||new Date).getTime();return J&&this.notBefore.getTime()<q&&q<this.notAfter.getTime()}}async getThumbprint(...W){let G,X="SHA-1";if(W[0])if(!W[0].subtle)X=W[0]||X,G=W[1];else G=W[0];return G!==null&&G!==void 0||(G=k8.get()),await G.subtle.digest(X,this.rawData)}async isSelfSigned(W=k8.get()){return this.subject===this.issuer&&await this.verify({signatureOnly:!0},W)}toTextObject(){let W=this.toTextObjectEmpty(),G=L0.parse(this.rawData,u5),X=G.tbsCertificate,Y=new p1("",{Version:`${D7[X.version]} (${X.version})`,"Serial Number":X.serialNumber,"Signature Algorithm":S6.serializeAlgorithm(X.signature),Issuer:this.issuer,Validity:new p1("",{"Not Before":X.validity.notBefore.getTime(),"Not After":X.validity.notAfter.getTime()}),Subject:this.subject,"Subject Public Key Info":this.publicKey});if(X.issuerUniqueID)Y["Issuer Unique ID"]=X.issuerUniqueID;if(X.subjectUniqueID)Y["Subject Unique ID"]=X.subjectUniqueID;if(this.extensions.length){let Z=new p1("");for(let V of this.extensions){let Q=V.toTextObject();Z[Q[p1.NAME]]=Q}Y.Extensions=Z}return W.Data=Y,W.Signature=new p1("",{Algorithm:S6.serializeAlgorithm(G.signatureAlgorithm),"":G.signatureValue}),W}}iV=new WeakMap,rV=new WeakMap,aV=new WeakMap,sV=new WeakMap,tV=new WeakMap,eV=new WeakMap,WQ=new WeakMap,GQ=new WeakMap,XQ=new WeakMap,YQ=new WeakMap,UY=new WeakMap,ZQ=new WeakMap;zj.NAME="Certificate";function Vc(W,G=k8.get()){let X=S0.toUint8Array(p0.FromHex(W||"")),Y=X&&X.length&&X.some((V)=>V>0)?new Uint8Array(X):void 0;if(!Y)Y=G.getRandomValues(new Uint8Array(16));let Z=0;while(Z<Y.length-1&&Y[Z]===0)Z++;if(Y=Y.slice(Z),Y[0]>127){let V=new Uint8Array(Y.length+1);V[0]=0,V.set(Y,1),Y=V}return Y.buffer}class Ij{static async createSelfSigned(W,G=k8.get()){if(!W.keys.privateKey)throw Error("Bad field 'keys' in 'params' argument. 'privateKey' is empty");if(!W.keys.publicKey)throw Error("Bad field 'keys' in 'params' argument. 'publicKey' is empty");return this.create({serialNumber:W.serialNumber,subject:W.name,issuer:W.name,notBefore:W.notBefore,notAfter:W.notAfter,publicKey:W.keys.publicKey,signingKey:W.keys.privateKey,signingAlgorithm:W.signingAlgorithm,extensions:W.extensions},G)}static async create(W,G=k8.get()){var X;let Y;if(W.publicKey instanceof p5)Y=W.publicKey.rawData;else if("publicKey"in W.publicKey)Y=W.publicKey.publicKey.rawData;else if(S0.isBufferSource(W.publicKey))Y=W.publicKey;else Y=await G.subtle.exportKey("spki",W.publicKey);let Z=Vc(W.serialNumber,G),V=W.notBefore||new Date,Q=W.notAfter||new Date(V.getTime()+31536000000),J=new u5({tbsCertificate:new O9({version:D7.v3,serialNumber:Z,validity:new T6({notBefore:V,notAfter:Q}),extensions:new W5(((X=W.extensions)===null||X===void 0?void 0:X.map((C)=>L0.parse(C.rawData,j9)))||[]),subjectPublicKeyInfo:L0.parse(Y,w9)})});if(W.subject){let C=W.subject instanceof c5?W.subject:new c5(W.subject);J.tbsCertificate.subject=L0.parse(C.toArrayBuffer(),W8)}if(W.issuer){let C=W.issuer instanceof c5?W.issuer:new c5(W.issuer);J.tbsCertificate.issuer=L0.parse(C.toArrayBuffer(),W8)}let U={hash:"SHA-256"},q="signingKey"in W?{...U,...W.signingAlgorithm,...W.signingKey.algorithm}:{...U,...W.signingAlgorithm},N=Z8.resolve(QG);J.tbsCertificate.signature=J.signatureAlgorithm=N.toAsnAlgorithm(q);let A=L0.serialize(J.tbsCertificate),H="signingKey"in W?await G.subtle.sign(q,W.signingKey,A):W.signature,I=Z8.resolveAll(HQ).reverse(),w=null;for(let C of I)if(w=C.toAsnSignature(q,H),w)break;if(!w)throw Error("Cannot convert ASN.1 signature value to WebCrypto format");return J.signatureValue=w,new zj(L0.serialize(J))}}var Qc,Jc,Uc,qc,Nc,E3;(function(W){W[W.unspecified=0]="unspecified",W[W.keyCompromise=1]="keyCompromise",W[W.cACompromise=2]="cACompromise",W[W.affiliationChanged=3]="affiliationChanged",W[W.superseded=4]="superseded",W[W.cessationOfOperation=5]="cessationOfOperation",W[W.certificateHold=6]="certificateHold",W[W.removeFromCRL=8]="removeFromCRL",W[W.privilegeWithdrawn=9]="privilegeWithdrawn",W[W.aACompromise=10]="aACompromise"})(E3||(E3={}));Qc=new WeakMap,Jc=new WeakMap,Uc=new WeakMap,qc=new WeakMap,Nc=new WeakMap;var Hc,Ac,zc,Ic,wc,jc,Oc;Hc=new WeakMap,Ac=new WeakMap,zc=new WeakMap,Ic=new WeakMap,wc=new WeakMap,jc=new WeakMap,Oc=new WeakMap;l9.register(Nq,Zj);l9.register(Kq,Vj);l9.register(Cq,Qj);l9.register(bI,tq);l9.register(qq,UQ);l9.register(uI,Jj);l9.register(jq,qj);l9.register(Uq,Nj);l9.register(xI,Hj);NQ.register(pw,Aj);NQ.register(hV,eq);Z8.registerSingleton(HQ,y3);Z8.registerSingleton(HQ,D5);D5.namedCurveSize.set("P-256",32);D5.namedCurveSize.set("K-256",32);D5.namedCurveSize.set("P-384",48);D5.namedCurveSize.set("P-521",66);var vY=_1(H8(),1),$2=_1(H8(),1),F2=_1(xU(),1);import{createHash as gd,createHmac as ud}from"crypto";import*as D4 from"crypto";var UG=D4&&typeof D4==="object"&&"webcrypto"in D4?D4.webcrypto:D4&&typeof D4==="object"&&("randomBytes"in D4)?D4:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function qG(W){return W instanceof Uint8Array||ArrayBuffer.isView(W)&&W.constructor.name==="Uint8Array"}function KQ(W){if(!Number.isSafeInteger(W)||W<0)throw Error("positive integer expected, got "+W)}function l5(W,...G){if(!qG(W))throw Error("Uint8Array expected");if(G.length>0&&!G.includes(W.length))throw Error("Uint8Array expected of length "+G+", got length="+W.length)}function JN(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.createHasher");KQ(W.outputLen),KQ(W.blockLen)}function IY(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function IE(W,G){l5(W);let X=G.outputLen;if(W.length<X)throw Error("digestInto() expects output buffer of length at least "+X)}function T4(...W){for(let G=0;G<W.length;G++)W[G].fill(0)}function UN(W){return new DataView(W.buffer,W.byteOffset,W.byteLength)}function d5(W,G){return W<<32-G|W>>>G}var wE=(()=>typeof Uint8Array.from([]).toHex==="function"&&typeof Uint8Array.fromHex==="function")(),op=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function P4(W){if(l5(W),wE)return W.toHex();let G="";for(let X=0;X<W.length;X++)G+=op[W[X]];return G}var M4={_0:48,_9:57,A:65,F:70,a:97,f:102};function zE(W){if(W>=M4._0&&W<=M4._9)return W-M4._0;if(W>=M4.A&&W<=M4.F)return W-(M4.A-10);if(W>=M4.a&&W<=M4.f)return W-(M4.a-10);return}function NG(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);if(wE)return Uint8Array.fromHex(W);let G=W.length,X=G/2;if(G%2)throw Error("hex string expected, got unpadded hex of length "+G);let Y=new Uint8Array(X);for(let Z=0,V=0;Z<X;Z++,V+=2){let Q=zE(W.charCodeAt(V)),J=zE(W.charCodeAt(V+1));if(Q===void 0||J===void 0){let U=W[V]+W[V+1];throw Error('hex string expected, got non-hex character "'+U+'" at index '+V)}Y[Z]=Q*16+J}return Y}function qN(W){if(typeof W!=="string")throw Error("string expected");return new Uint8Array(new TextEncoder().encode(W))}function CQ(W){if(typeof W==="string")W=qN(W);return l5(W),W}function o9(...W){let G=0;for(let Y=0;Y<W.length;Y++){let Z=W[Y];l5(Z),G+=Z.length}let X=new Uint8Array(G);for(let Y=0,Z=0;Y<W.length;Y++){let V=W[Y];X.set(V,Z),Z+=V.length}return X}class DQ{}function NN(W){let G=(Y)=>W().update(CQ(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function HG(W=32){if(UG&&typeof UG.getRandomValues==="function")return UG.getRandomValues(new Uint8Array(W));if(UG&&typeof UG.randomBytes==="function")return Uint8Array.from(UG.randomBytes(W));throw Error("crypto.getRandomValues must be defined")}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Ej=BigInt(0),Bj=BigInt(1);function MQ(W,G=""){if(typeof W!=="boolean"){let X=G&&`"${G}"`;throw Error(X+"expected boolean, got type="+typeof W)}return W}function h6(W,G,X=""){let Y=qG(W),Z=W?.length,V=G!==void 0;if(!Y||V&&Z!==G){let Q=X&&`"${X}" `,J=V?` of length ${G}`:"",U=Y?`length=${Z}`:`type=${typeof W}`;throw Error(Q+"expected Uint8Array"+J+", got "+U)}return W}function TQ(W){let G=W.toString(16);return G.length&1?"0"+G:G}function jE(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return W===""?Ej:BigInt("0x"+W)}function R4(W){return jE(P4(W))}function $j(W){return l5(W),jE(P4(Uint8Array.from(W).reverse()))}function wY(W,G){return NG(W.toString(16).padStart(G*2,"0"))}function Fj(W,G){return wY(W,G).reverse()}function R8(W,G,X){let Y;if(typeof G==="string")try{Y=NG(G)}catch(V){throw Error(W+" must be hex string or Uint8Array, cause: "+V)}else if(qG(G))Y=Uint8Array.from(G);else throw Error(W+" must be hex string or Uint8Array");let Z=Y.length;if(typeof X==="number"&&Z!==X)throw Error(W+" of length "+X+" expected, got "+Z);return Y}var Lj=(W)=>typeof W==="bigint"&&Ej<=W;function PQ(W,G,X){return Lj(W)&&Lj(G)&&Lj(X)&&G<=W&&W<X}function OE(W,G,X,Y){if(!PQ(G,X,Y))throw Error("expected valid "+W+": "+X+" <= n < "+Y+", got "+G)}function HN(W){let G;for(G=0;W>Ej;W>>=Bj,G+=1);return G}var b6=(W)=>(Bj<<BigInt(W))-Bj;function KE(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=(I)=>new Uint8Array(I),Z=(I)=>Uint8Array.of(I),V=Y(W),Q=Y(W),J=0,U=()=>{V.fill(1),Q.fill(0),J=0},q=(...I)=>X(Q,V,...I),N=(I=Y(0))=>{if(Q=q(Z(0),I),V=q(),I.length===0)return;Q=q(Z(1),I),V=q()},A=()=>{if(J++>=1000)throw Error("drbg: tried 1000 values");let I=0,w=[];while(I<G){V=q();let C=V.slice();w.push(C),I+=V.length}return o9(...w)};return(I,w)=>{U(),N(I);let C=void 0;while(!(C=w(A())))N();return U(),C}}function RQ(W,G,X={}){if(!W||typeof W!=="object")throw Error("expected valid options object");function Y(Z,V,Q){let J=W[Z];if(Q&&J===void 0)return;let U=typeof J;if(U!==V||J===null)throw Error(`param "${Z}" is invalid: expected ${V}, got ${U}`)}Object.entries(G).forEach(([Z,V])=>Y(Z,V,!1)),Object.entries(X).forEach(([Z,V])=>Y(Z,V,!0))}function Sj(W){let G=new WeakMap;return(X,...Y)=>{let Z=G.get(X);if(Z!==void 0)return Z;let V=W(X,...Y);return G.set(X,V),V}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var _9=BigInt(0),C9=BigInt(1),AG=BigInt(2),ME=BigInt(3),TE=BigInt(4),PE=BigInt(5),np=BigInt(7),RE=BigInt(8),ip=BigInt(9),LE=BigInt(16);function Z5(W,G){let X=W%G;return X>=_9?X:G+X}function V5(W,G,X){let Y=W;while(G-- >_9)Y*=Y,Y%=X;return Y}function CE(W,G){if(W===_9)throw Error("invert: expected non-zero number");if(G<=_9)throw Error("invert: expected positive modulus, got "+G);let X=Z5(W,G),Y=G,Z=_9,V=C9,Q=C9,J=_9;while(X!==_9){let q=Y/X,N=Y%X,A=Z-Q*q,H=V-J*q;Y=X,X=N,Z=Q,V=J,Q=A,J=H}if(Y!==C9)throw Error("invert: does not exist");return Z5(Z,G)}function xj(W,G,X){if(!W.eql(W.sqr(G),X))throw Error("Cannot find square root")}function BE(W,G){let X=(W.ORDER+C9)/TE,Y=W.pow(G,X);return xj(W,Y,G),Y}function rp(W,G){let X=(W.ORDER-PE)/RE,Y=W.mul(G,AG),Z=W.pow(Y,X),V=W.mul(G,Z),Q=W.mul(W.mul(V,AG),Z),J=W.mul(V,W.sub(Q,W.ONE));return xj(W,J,G),J}function ap(W){let G=T5(W),X=EE(W),Y=X(G,G.neg(G.ONE)),Z=X(G,Y),V=X(G,G.neg(Y)),Q=(W+np)/LE;return(J,U)=>{let q=J.pow(U,Q),N=J.mul(q,Y),A=J.mul(q,Z),H=J.mul(q,V),I=J.eql(J.sqr(N),U),w=J.eql(J.sqr(A),U);q=J.cmov(q,N,I),N=J.cmov(H,A,w);let C=J.eql(J.sqr(N),U),D=J.cmov(q,N,C);return xj(J,D,U),D}}function EE(W){if(W<ME)throw Error("sqrt is not defined for small field");let G=W-C9,X=0;while(G%AG===_9)G/=AG,X++;let Y=AG,Z=T5(W);while(DE(Z,Y)===1)if(Y++>1000)throw Error("Cannot find square root: probably non-prime P");if(X===1)return BE;let V=Z.pow(Y,G),Q=(G+C9)/AG;return function(U,q){if(U.is0(q))return q;if(DE(U,q)!==1)throw Error("Cannot find square root");let N=X,A=U.mul(U.ONE,V),H=U.pow(q,G),I=U.pow(q,Q);while(!U.eql(H,U.ONE)){if(U.is0(H))return U.ZERO;let w=1,C=U.sqr(H);while(!U.eql(C,U.ONE))if(w++,C=U.sqr(C),w===N)throw Error("Cannot find square root");let D=C9<<BigInt(N-w-1),x=U.pow(A,D);N=w,A=U.sqr(x),H=U.mul(H,A),I=U.mul(I,x)}return I}}function sp(W){if(W%TE===ME)return BE;if(W%RE===PE)return rp;if(W%LE===ip)return ap(W);return EE(W)}var tp=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function kj(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},X=tp.reduce((Y,Z)=>{return Y[Z]="function",Y},G);return RQ(W,X),W}function ep(W,G,X){if(X<_9)throw Error("invalid exponent, negatives unsupported");if(X===_9)return W.ONE;if(X===C9)return G;let Y=W.ONE,Z=G;while(X>_9){if(X&C9)Y=W.mul(Y,Z);Z=W.sqr(Z),X>>=C9}return Y}function AN(W,G,X=!1){let Y=Array(G.length).fill(X?W.ZERO:void 0),Z=G.reduce((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=Q,W.mul(Q,J)},W.ONE),V=W.inv(Z);return G.reduceRight((Q,J,U)=>{if(W.is0(J))return Q;return Y[U]=W.mul(Q,Y[U]),W.mul(Q,J)},V),Y}function DE(W,G){let X=(W.ORDER-C9)/AG,Y=W.pow(G,X),Z=W.eql(Y,W.ONE),V=W.eql(Y,W.ZERO),Q=W.eql(Y,W.neg(W.ONE));if(!Z&&!V&&!Q)throw Error("invalid Legendre symbol result");return Z?1:V?0:-1}function zN(W,G){if(G!==void 0)KQ(G);let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function T5(W,G,X=!1,Y={}){if(W<=_9)throw Error("invalid field: expected ORDER > 0, got "+W);let Z=void 0,V=void 0,Q=!1,J=void 0;if(typeof G==="object"&&G!=null){if(Y.sqrt||X)throw Error("cannot specify opts in two arguments");let H=G;if(H.BITS)Z=H.BITS;if(H.sqrt)V=H.sqrt;if(typeof H.isLE==="boolean")X=H.isLE;if(typeof H.modFromBytes==="boolean")Q=H.modFromBytes;J=H.allowedLengths}else{if(typeof G==="number")Z=G;if(Y.sqrt)V=Y.sqrt}let{nBitLength:U,nByteLength:q}=zN(W,Z);if(q>2048)throw Error("invalid field: expected ORDER of <= 2048 bytes");let N,A=Object.freeze({ORDER:W,isLE:X,BITS:U,BYTES:q,MASK:b6(U),ZERO:_9,ONE:C9,allowedLengths:J,create:(H)=>Z5(H,W),isValid:(H)=>{if(typeof H!=="bigint")throw Error("invalid field element: expected bigint, got "+typeof H);return _9<=H&&H<W},is0:(H)=>H===_9,isValidNot0:(H)=>!A.is0(H)&&A.isValid(H),isOdd:(H)=>(H&C9)===C9,neg:(H)=>Z5(-H,W),eql:(H,I)=>H===I,sqr:(H)=>Z5(H*H,W),add:(H,I)=>Z5(H+I,W),sub:(H,I)=>Z5(H-I,W),mul:(H,I)=>Z5(H*I,W),pow:(H,I)=>ep(A,H,I),div:(H,I)=>Z5(H*CE(I,W),W),sqrN:(H)=>H*H,addN:(H,I)=>H+I,subN:(H,I)=>H-I,mulN:(H,I)=>H*I,inv:(H)=>CE(H,W),sqrt:V||((H)=>{if(!N)N=sp(W);return N(A,H)}),toBytes:(H)=>X?Fj(H,q):wY(H,q),fromBytes:(H,I=!0)=>{if(J){if(!J.includes(H.length)||H.length>q)throw Error("Field.fromBytes: expected "+J+" bytes, got "+H.length);let C=new Uint8Array(q);C.set(H,X?0:C.length-H.length),H=C}if(H.length!==q)throw Error("Field.fromBytes: expected "+q+" bytes, got "+H.length);let w=X?$j(H):R4(H);if(Q)w=Z5(w,W);if(!I){if(!A.isValid(w))throw Error("invalid field element: outside of range 0..ORDER")}return w},invertBatch:(H)=>AN(A,H),cmov:(H,I,w)=>w?I:H});return Object.freeze(A)}function $E(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function _j(W){let G=$E(W);return G+Math.ceil(G/2)}function IN(W,G,X=!1){let Y=W.length,Z=$E(G),V=_j(G);if(Y<16||Y<V||Y>1024)throw Error("expected "+V+"-1024 bytes of input, got "+Y);let Q=X?$j(W):R4(W),J=Z5(Q,G-C9)+C9;return X?Fj(J,Z):wY(J,Z)}function Wl(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let Z=BigInt(32),V=BigInt(4294967295),Q=Number(X>>Z&V),J=Number(X&V),U=Y?4:0,q=Y?0:4;W.setUint32(G+U,Q,Y),W.setUint32(G+q,J,Y)}function FE(W,G,X){return W&G^~W&X}function SE(W,G,X){return W&G^W&X^G&X}class wN extends DQ{constructor(W,G,X,Y){super();this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.buffer=new Uint8Array(W),this.view=UN(this.buffer)}update(W){IY(this),W=CQ(W),l5(W);let{view:G,buffer:X,blockLen:Y}=this,Z=W.length;for(let V=0;V<Z;){let Q=Math.min(Y-this.pos,Z-V);if(Q===Y){let J=UN(W);for(;Y<=Z-V;V+=Y)this.process(J,V);continue}if(X.set(W.subarray(V,V+Q),this.pos),this.pos+=Q,V+=Q,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){IY(this),IE(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:Z}=this,{pos:V}=this;if(G[V++]=128,T4(this.buffer.subarray(V)),this.padOffset>Y-V)this.process(X,0),V=0;for(let N=V;N<Y;N++)G[N]=0;Wl(X,Y-8,BigInt(this.length*8),Z),this.process(X,0);let Q=UN(W),J=this.outputLen;if(J%4)throw Error("_sha2: outputLen should be aligned to 32bit");let U=J/4,q=this.get();if(U>q.length)throw Error("_sha2: outputLen bigger than state");for(let N=0;N<U;N++)Q.setUint32(4*N,q[N],Z)}digest(){let{buffer:W,outputLen:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:Z,destroyed:V,pos:Q}=this;if(W.destroyed=V,W.finished=Z,W.length=Y,W.pos=Q,Y%G)W.buffer.set(X);return W}clone(){return this._cloneInto()}}var L4=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var W9=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),G9=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]);var jN=BigInt(4294967295),xE=BigInt(32);function Gl(W,G=!1){if(G)return{h:Number(W&jN),l:Number(W>>xE&jN)};return{h:Number(W>>xE&jN)|0,l:Number(W&jN)|0}}function kE(W,G=!1){let X=W.length,Y=new Uint32Array(X),Z=new Uint32Array(X);for(let V=0;V<X;V++){let{h:Q,l:J}=Gl(W[V],G);[Y[V],Z[V]]=[Q,J]}return[Y,Z]}var yj=(W,G,X)=>W>>>X,vj=(W,G,X)=>W<<32-X|G>>>X,zG=(W,G,X)=>W>>>X|G<<32-X,IG=(W,G,X)=>W<<32-X|G>>>X,LQ=(W,G,X)=>W<<64-X|G>>>X-32,BQ=(W,G,X)=>W>>>X-32|G<<64-X;function $7(W,G,X,Y){let Z=(G>>>0)+(Y>>>0);return{h:W+X+(Z/4294967296|0)|0,l:Z|0}}var _E=(W,G,X)=>(W>>>0)+(G>>>0)+(X>>>0),yE=(W,G,X,Y)=>G+X+Y+(W/4294967296|0)|0,vE=(W,G,X,Y)=>(W>>>0)+(G>>>0)+(X>>>0)+(Y>>>0),gE=(W,G,X,Y,Z)=>G+X+Y+Z+(W/4294967296|0)|0,uE=(W,G,X,Y,Z)=>(W>>>0)+(G>>>0)+(X>>>0)+(Y>>>0)+(Z>>>0),hE=(W,G,X,Y,Z,V)=>G+X+Y+Z+V+(W/4294967296|0)|0;var Yl=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]),m6=new Uint32Array(64);class bE extends wN{constructor(W=32){super(64,W,8,!1);this.A=L4[0]|0,this.B=L4[1]|0,this.C=L4[2]|0,this.D=L4[3]|0,this.E=L4[4]|0,this.F=L4[5]|0,this.G=L4[6]|0,this.H=L4[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:Z,F:V,G:Q,H:J}=this;return[W,G,X,Y,Z,V,Q,J]}set(W,G,X,Y,Z,V,Q,J){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=Z|0,this.F=V|0,this.G=Q|0,this.H=J|0}process(W,G){for(let N=0;N<16;N++,G+=4)m6[N]=W.getUint32(G,!1);for(let N=16;N<64;N++){let A=m6[N-15],H=m6[N-2],I=d5(A,7)^d5(A,18)^A>>>3,w=d5(H,17)^d5(H,19)^H>>>10;m6[N]=w+m6[N-7]+I+m6[N-16]|0}let{A:X,B:Y,C:Z,D:V,E:Q,F:J,G:U,H:q}=this;for(let N=0;N<64;N++){let A=d5(Q,6)^d5(Q,11)^d5(Q,25),H=q+A+FE(Q,J,U)+Yl[N]+m6[N]|0,w=(d5(X,2)^d5(X,13)^d5(X,22))+SE(X,Y,Z)|0;q=U,U=J,J=Q,Q=V+H|0,V=Z,Z=Y,Y=X,X=H+w|0}X=X+this.A|0,Y=Y+this.B|0,Z=Z+this.C|0,V=V+this.D|0,Q=Q+this.E|0,J=J+this.F|0,U=U+this.G|0,q=q+this.H|0,this.set(X,Y,Z,V,Q,J,U,q)}roundClean(){T4(m6)}destroy(){this.set(0,0,0,0,0,0,0,0),T4(this.buffer)}}var mE=(()=>kE(["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((W)=>BigInt(W))))(),Zl=(()=>mE[0])(),Vl=(()=>mE[1])(),f6=new Uint32Array(80),c6=new Uint32Array(80);class gj extends wN{constructor(W=64){super(128,W,16,!1);this.Ah=G9[0]|0,this.Al=G9[1]|0,this.Bh=G9[2]|0,this.Bl=G9[3]|0,this.Ch=G9[4]|0,this.Cl=G9[5]|0,this.Dh=G9[6]|0,this.Dl=G9[7]|0,this.Eh=G9[8]|0,this.El=G9[9]|0,this.Fh=G9[10]|0,this.Fl=G9[11]|0,this.Gh=G9[12]|0,this.Gl=G9[13]|0,this.Hh=G9[14]|0,this.Hl=G9[15]|0}get(){let{Ah:W,Al:G,Bh:X,Bl:Y,Ch:Z,Cl:V,Dh:Q,Dl:J,Eh:U,El:q,Fh:N,Fl:A,Gh:H,Gl:I,Hh:w,Hl:C}=this;return[W,G,X,Y,Z,V,Q,J,U,q,N,A,H,I,w,C]}set(W,G,X,Y,Z,V,Q,J,U,q,N,A,H,I,w,C){this.Ah=W|0,this.Al=G|0,this.Bh=X|0,this.Bl=Y|0,this.Ch=Z|0,this.Cl=V|0,this.Dh=Q|0,this.Dl=J|0,this.Eh=U|0,this.El=q|0,this.Fh=N|0,this.Fl=A|0,this.Gh=H|0,this.Gl=I|0,this.Hh=w|0,this.Hl=C|0}process(W,G){for(let h=0;h<16;h++,G+=4)f6[h]=W.getUint32(G),c6[h]=W.getUint32(G+=4);for(let h=16;h<80;h++){let p=f6[h-15]|0,u=c6[h-15]|0,n=zG(p,u,1)^zG(p,u,8)^yj(p,u,7),c=IG(p,u,1)^IG(p,u,8)^vj(p,u,7),l=f6[h-2]|0,G0=c6[h-2]|0,m=zG(l,G0,19)^LQ(l,G0,61)^yj(l,G0,6),Y0=IG(l,G0,19)^BQ(l,G0,61)^vj(l,G0,6),U0=vE(c,Y0,c6[h-7],c6[h-16]),y=gE(U0,n,m,f6[h-7],f6[h-16]);f6[h]=y|0,c6[h]=U0|0}let{Ah:X,Al:Y,Bh:Z,Bl:V,Ch:Q,Cl:J,Dh:U,Dl:q,Eh:N,El:A,Fh:H,Fl:I,Gh:w,Gl:C,Hh:D,Hl:x}=this;for(let h=0;h<80;h++){let p=zG(N,A,14)^zG(N,A,18)^LQ(N,A,41),u=IG(N,A,14)^IG(N,A,18)^BQ(N,A,41),n=N&H^~N&w,c=A&I^~A&C,l=uE(x,u,c,Vl[h],c6[h]),G0=hE(l,D,p,n,Zl[h],f6[h]),m=l|0,Y0=zG(X,Y,28)^LQ(X,Y,34)^LQ(X,Y,39),U0=IG(X,Y,28)^BQ(X,Y,34)^BQ(X,Y,39),y=X&Z^X&Q^Z&Q,o=Y&V^Y&J^V&J;D=w|0,x=C|0,w=H|0,C=I|0,H=N|0,I=A|0,{h:N,l:A}=$7(U|0,q|0,G0|0,m|0),U=Q|0,q=J|0,Q=Z|0,J=V|0,Z=X|0,V=Y|0;let B=_E(m,U0,o);X=yE(B,G0,Y0,y),Y=B|0}({h:X,l:Y}=$7(this.Ah|0,this.Al|0,X|0,Y|0)),{h:Z,l:V}=$7(this.Bh|0,this.Bl|0,Z|0,V|0),{h:Q,l:J}=$7(this.Ch|0,this.Cl|0,Q|0,J|0),{h:U,l:q}=$7(this.Dh|0,this.Dl|0,U|0,q|0),{h:N,l:A}=$7(this.Eh|0,this.El|0,N|0,A|0),{h:H,l:I}=$7(this.Fh|0,this.Fl|0,H|0,I|0),{h:w,l:C}=$7(this.Gh|0,this.Gl|0,w|0,C|0),{h:D,l:x}=$7(this.Hh|0,this.Hl|0,D|0,x|0),this.set(X,Y,Z,V,Q,J,U,q,N,A,H,I,w,C,D,x)}roundClean(){T4(f6,c6)}destroy(){T4(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class fE extends gj{constructor(){super(48);this.Ah=W9[0]|0,this.Al=W9[1]|0,this.Bh=W9[2]|0,this.Bl=W9[3]|0,this.Ch=W9[4]|0,this.Cl=W9[5]|0,this.Dh=W9[6]|0,this.Dl=W9[7]|0,this.Eh=W9[8]|0,this.El=W9[9]|0,this.Fh=W9[10]|0,this.Fl=W9[11]|0,this.Gh=W9[12]|0,this.Gl=W9[13]|0,this.Hh=W9[14]|0,this.Hl=W9[15]|0}}var jY=NN(()=>new bE);var cE=NN(()=>new gj),pE=NN(()=>new fE);class uj extends DQ{constructor(W,G){super();this.finished=!1,this.destroyed=!1,JN(W);let X=CQ(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,Z=new Uint8Array(Y);Z.set(X.length>Y?W.create().update(X).digest():X);for(let V=0;V<Z.length;V++)Z[V]^=54;this.iHash.update(Z),this.oHash=W.create();for(let V=0;V<Z.length;V++)Z[V]^=106;this.oHash.update(Z),T4(Z)}update(W){return IY(this),this.iHash.update(W),this}digestInto(W){IY(this),l5(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:Z,blockLen:V,outputLen:Q}=this;return W=W,W.finished=Y,W.destroyed=Z,W.blockLen=V,W.outputLen=Q,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var hj=(W,G,X)=>new uj(W,G).update(X).digest();hj.create=(W,G)=>new uj(W,G);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var OY=BigInt(0),wG=BigInt(1);function EQ(W,G){let X=G.negate();return W?X:G}function ON(W,G){let X=AN(W.Fp,G.map((Y)=>Y.Z));return G.map((Y,Z)=>W.fromAffine(Y.toAffine(X[Z])))}function nE(W,G){if(!Number.isSafeInteger(W)||W<=0||W>G)throw Error("invalid window size, expected [1.."+G+"], got W="+W)}function bj(W,G){nE(W,G);let X=Math.ceil(G/W)+1,Y=2**(W-1),Z=2**W,V=b6(W),Q=BigInt(W);return{windows:X,windowSize:Y,mask:V,maxNumber:Z,shiftBy:Q}}function lE(W,G,X){let{windowSize:Y,mask:Z,maxNumber:V,shiftBy:Q}=X,J=Number(W&Z),U=W>>Q;if(J>Y)J-=V,U+=wG;let q=G*Y,N=q+Math.abs(J)-1,A=J===0,H=J<0,I=G%2!==0;return{nextN:U,offset:N,isZero:A,isNeg:H,isNegF:I,offsetF:q}}function Ql(W,G){if(!Array.isArray(W))throw Error("array expected");W.forEach((X,Y)=>{if(!(X instanceof G))throw Error("invalid point at index "+Y)})}function Jl(W,G){if(!Array.isArray(W))throw Error("array of scalars expected");W.forEach((X,Y)=>{if(!G.isValid(X))throw Error("invalid scalar at index "+Y)})}var mj=new WeakMap,iE=new WeakMap;function fj(W){return iE.get(W)||1}function dE(W){if(W!==OY)throw Error("invalid wNAF")}class cj{constructor(W,G){this.BASE=W.BASE,this.ZERO=W.ZERO,this.Fn=W.Fn,this.bits=G}_unsafeLadder(W,G,X=this.ZERO){let Y=W;while(G>OY){if(G&wG)X=X.add(Y);Y=Y.double(),G>>=wG}return X}precomputeWindow(W,G){let{windows:X,windowSize:Y}=bj(G,this.bits),Z=[],V=W,Q=V;for(let J=0;J<X;J++){Q=V,Z.push(Q);for(let U=1;U<Y;U++)Q=Q.add(V),Z.push(Q);V=Q.double()}return Z}wNAF(W,G,X){if(!this.Fn.isValid(X))throw Error("invalid scalar");let Y=this.ZERO,Z=this.BASE,V=bj(W,this.bits);for(let Q=0;Q<V.windows;Q++){let{nextN:J,offset:U,isZero:q,isNeg:N,isNegF:A,offsetF:H}=lE(X,Q,V);if(X=J,q)Z=Z.add(EQ(A,G[H]));else Y=Y.add(EQ(N,G[U]))}return dE(X),{p:Y,f:Z}}wNAFUnsafe(W,G,X,Y=this.ZERO){let Z=bj(W,this.bits);for(let V=0;V<Z.windows;V++){if(X===OY)break;let{nextN:Q,offset:J,isZero:U,isNeg:q}=lE(X,V,Z);if(X=Q,U)continue;else{let N=G[J];Y=Y.add(q?N.negate():N)}}return dE(X),Y}getPrecomputes(W,G,X){let Y=mj.get(G);if(!Y){if(Y=this.precomputeWindow(G,W),W!==1){if(typeof X==="function")Y=X(Y);mj.set(G,Y)}}return Y}cached(W,G,X){let Y=fj(W);return this.wNAF(Y,this.getPrecomputes(Y,W,X),G)}unsafe(W,G,X,Y){let Z=fj(W);if(Z===1)return this._unsafeLadder(W,G,Y);return this.wNAFUnsafe(Z,this.getPrecomputes(Z,W,X),G,Y)}createCache(W,G){nE(G,this.bits),iE.set(W,G),mj.delete(W)}hasCache(W){return fj(W)!==1}}function rE(W,G,X,Y){let Z=G,V=W.ZERO,Q=W.ZERO;while(X>OY||Y>OY){if(X&wG)V=V.add(Z);if(Y&wG)Q=Q.add(Z);Z=Z.double(),X>>=wG,Y>>=wG}return{p1:V,p2:Q}}function aE(W,G,X,Y){Ql(X,W),Jl(Y,G);let Z=X.length,V=Y.length;if(Z!==V)throw Error("arrays of points and scalars must have equal length");let Q=W.ZERO,J=HN(BigInt(Z)),U=1;if(J>12)U=J-3;else if(J>4)U=J-2;else if(J>0)U=2;let q=b6(U),N=Array(Number(q)+1).fill(Q),A=Math.floor((G.BITS-1)/U)*U,H=Q;for(let I=A;I>=0;I-=U){N.fill(Q);for(let C=0;C<V;C++){let D=Y[C],x=Number(D>>BigInt(I)&q);N[x]=N[x].add(X[C])}let w=Q;for(let C=N.length-1,D=Q;C>0;C--)D=D.add(N[C]),w=w.add(D);if(H=H.add(w),I!==0)for(let C=0;C<U;C++)H=H.double()}return H}function oE(W,G,X){if(G){if(G.ORDER!==W)throw Error("Field.ORDER must match order: Fp == p, Fn == n");return kj(G),G}else return T5(W,{isLE:X})}function sE(W,G,X={},Y){if(Y===void 0)Y=W==="edwards";if(!G||typeof G!=="object")throw Error(`expected valid ${W} CURVE object`);for(let U of["p","n","h"]){let q=G[U];if(!(typeof q==="bigint"&&q>OY))throw Error(`CURVE.${U} must be positive bigint`)}let Z=oE(G.p,X.Fp,Y),V=oE(G.n,X.Fn,Y),J=["Gx","Gy","a",W==="weierstrass"?"b":"d"];for(let U of J)if(!Z.isValid(G[U]))throw Error(`CURVE.${U} must be valid field element of CURVE.Fp`);return G=Object.freeze(Object.assign({},G)),{CURVE:G,Fp:Z,Fn:V}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var tE=(W,G)=>(W+(W>=0?G:-G)/W$)/G;function Ul(W,G,X){let[[Y,Z],[V,Q]]=G,J=tE(Q*W,X),U=tE(-Z*W,X),q=W-J*Y-U*V,N=-J*Z-U*Q,A=q<E4,H=N<E4;if(A)q=-q;if(H)N=-N;let I=b6(Math.ceil(HN(X)/2))+KY;if(q<E4||q>=I||N<E4||N>=I)throw Error("splitScalar (endomorphism): failed, k="+W);return{k1neg:A,k1:q,k2neg:H,k2:N}}function lj(W){if(!["compact","recovered","der"].includes(W))throw Error('Signature format must be "compact", "recovered", or "der"');return W}function pj(W,G){let X={};for(let Y of Object.keys(G))X[Y]=W[Y]===void 0?G[Y]:W[Y];if(MQ(X.lowS,"lowS"),MQ(X.prehash,"prehash"),X.format!==void 0)lj(X.format);return X}class eE extends Error{constructor(W=""){super(W)}}var B4={Err:eE,_tlv:{encode:(W,G)=>{let{Err:X}=B4;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length&1)throw new X("tlv.encode: unpadded data");let Y=G.length/2,Z=TQ(Y);if(Z.length/2&128)throw new X("tlv.encode: long form length too big");let V=Y>127?TQ(Z.length/2|128):"";return TQ(W)+V+Z+G},decode(W,G){let{Err:X}=B4,Y=0;if(W<0||W>256)throw new X("tlv.encode: wrong tag");if(G.length<2||G[Y++]!==W)throw new X("tlv.decode: wrong tlv");let Z=G[Y++],V=!!(Z&128),Q=0;if(!V)Q=Z;else{let U=Z&127;if(!U)throw new X("tlv.decode(long): indefinite length not supported");if(U>4)throw new X("tlv.decode(long): byte length is too big");let q=G.subarray(Y,Y+U);if(q.length!==U)throw new X("tlv.decode: length bytes not complete");if(q[0]===0)throw new X("tlv.decode(long): zero leftmost byte");for(let N of q)Q=Q<<8|N;if(Y+=U,Q<128)throw new X("tlv.decode(long): not minimal encoding")}let J=G.subarray(Y,Y+Q);if(J.length!==Q)throw new X("tlv.decode: wrong value length");return{v:J,l:G.subarray(Y+Q)}}},_int:{encode(W){let{Err:G}=B4;if(W<E4)throw new G("integer: negative integers are not allowed");let X=TQ(W);if(Number.parseInt(X[0],16)&8)X="00"+X;if(X.length&1)throw new G("unexpected DER parsing assertion: unpadded hex");return X},decode(W){let{Err:G}=B4;if(W[0]&128)throw new G("invalid signature integer: negative");if(W[0]===0&&!(W[1]&128))throw new G("invalid signature integer: unnecessary leading zero");return R4(W)}},toSig(W){let{Err:G,_int:X,_tlv:Y}=B4,Z=R8("signature",W),{v:V,l:Q}=Y.decode(48,Z);if(Q.length)throw new G("invalid signature: left bytes after parsing");let{v:J,l:U}=Y.decode(2,V),{v:q,l:N}=Y.decode(2,U);if(N.length)throw new G("invalid signature: left bytes after parsing");return{r:X.decode(J),s:X.decode(q)}},hexFromSig(W){let{_tlv:G,_int:X}=B4,Y=G.encode(2,X.encode(W.r)),Z=G.encode(2,X.encode(W.s)),V=Y+Z;return G.encode(48,V)}},E4=BigInt(0),KY=BigInt(1),W$=BigInt(2),KN=BigInt(3),ql=BigInt(4);function p6(W,G){let{BYTES:X}=W,Y;if(typeof G==="bigint")Y=G;else{let Z=R8("private key",G);try{Y=W.fromBytes(Z)}catch(V){throw Error(`invalid private key: expected ui8a of size ${X}, got ${typeof G}`)}}if(!W.isValidNot0(Y))throw Error("invalid private key: out of range [1..N-1]");return Y}function Nl(W,G={}){let X=sE("weierstrass",W,G),{Fp:Y,Fn:Z}=X,V=X.CURVE,{h:Q,n:J}=V;RQ(G,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});let{endo:U}=G;if(U){if(!Y.is0(V.a)||typeof U.beta!=="bigint"||!Array.isArray(U.basises))throw Error('invalid endo: expected "beta": bigint and "basises": array')}let q=X$(Y,Z);function N(){if(!Y.isOdd)throw Error("compression is not supported: Field does not have .isOdd()")}function A(y,o,B){let{x:R,y:_}=o.toAffine(),S=Y.toBytes(R);if(MQ(B,"isCompressed"),B){N();let v=!Y.isOdd(_);return o9(G$(v),S)}else return o9(Uint8Array.of(4),S,Y.toBytes(_))}function H(y){h6(y,void 0,"Point");let{publicKey:o,publicKeyUncompressed:B}=q,R=y.length,_=y[0],S=y.subarray(1);if(R===o&&(_===2||_===3)){let v=Y.fromBytes(S);if(!Y.isValid(v))throw Error("bad point: is not on curve, wrong x");let P=C(v),E;try{E=Y.sqrt(P)}catch(f){let e=f instanceof Error?": "+f.message:"";throw Error("bad point: is not on curve, sqrt error"+e)}N();let b=Y.isOdd(E);if((_&1)===1!==b)E=Y.neg(E);return{x:v,y:E}}else if(R===B&&_===4){let v=Y.BYTES,P=Y.fromBytes(S.subarray(0,v)),E=Y.fromBytes(S.subarray(v,v*2));if(!D(P,E))throw Error("bad point: is not on curve");return{x:P,y:E}}else throw Error(`bad point: got length ${R}, expected compressed=${o} or uncompressed=${B}`)}let I=G.toBytes||A,w=G.fromBytes||H;function C(y){let o=Y.sqr(y),B=Y.mul(o,y);return Y.add(Y.add(B,Y.mul(y,V.a)),V.b)}function D(y,o){let B=Y.sqr(o),R=C(y);return Y.eql(B,R)}if(!D(V.Gx,V.Gy))throw Error("bad curve params: generator point");let x=Y.mul(Y.pow(V.a,KN),ql),h=Y.mul(Y.sqr(V.b),BigInt(27));if(Y.is0(Y.add(x,h)))throw Error("bad curve params: a or b");function p(y,o,B=!1){if(!Y.isValid(o)||B&&Y.is0(o))throw Error(`bad point coordinate ${y}`);return o}function u(y){if(!(y instanceof m))throw Error("ProjectivePoint expected")}function n(y){if(!U||!U.basises)throw Error("no endo");return Ul(y,U.basises,Z.ORDER)}let c=Sj((y,o)=>{let{X:B,Y:R,Z:_}=y;if(Y.eql(_,Y.ONE))return{x:B,y:R};let S=y.is0();if(o==null)o=S?Y.ONE:Y.inv(_);let v=Y.mul(B,o),P=Y.mul(R,o),E=Y.mul(_,o);if(S)return{x:Y.ZERO,y:Y.ZERO};if(!Y.eql(E,Y.ONE))throw Error("invZ was invalid");return{x:v,y:P}}),l=Sj((y)=>{if(y.is0()){if(G.allowInfinityPoint&&!Y.is0(y.Y))return;throw Error("bad point: ZERO")}let{x:o,y:B}=y.toAffine();if(!Y.isValid(o)||!Y.isValid(B))throw Error("bad point: x or y not field elements");if(!D(o,B))throw Error("bad point: equation left != right");if(!y.isTorsionFree())throw Error("bad point: not in prime-order subgroup");return!0});function G0(y,o,B,R,_){return B=new m(Y.mul(B.X,y),B.Y,B.Z),o=EQ(R,o),B=EQ(_,B),o.add(B)}class m{constructor(y,o,B){this.X=p("x",y),this.Y=p("y",o,!0),this.Z=p("z",B),Object.freeze(this)}static CURVE(){return V}static fromAffine(y){let{x:o,y:B}=y||{};if(!y||!Y.isValid(o)||!Y.isValid(B))throw Error("invalid affine point");if(y instanceof m)throw Error("projective point not allowed");if(Y.is0(o)&&Y.is0(B))return m.ZERO;return new m(o,B,Y.ONE)}static fromBytes(y){let o=m.fromAffine(w(h6(y,void 0,"point")));return o.assertValidity(),o}static fromHex(y){return m.fromBytes(R8("pointHex",y))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,o=!0){if(U0.createCache(this,y),!o)this.multiply(KN);return this}assertValidity(){l(this)}hasEvenY(){let{y}=this.toAffine();if(!Y.isOdd)throw Error("Field doesn't support isOdd");return!Y.isOdd(y)}equals(y){u(y);let{X:o,Y:B,Z:R}=this,{X:_,Y:S,Z:v}=y,P=Y.eql(Y.mul(o,v),Y.mul(_,R)),E=Y.eql(Y.mul(B,v),Y.mul(S,R));return P&&E}negate(){return new m(this.X,Y.neg(this.Y),this.Z)}double(){let{a:y,b:o}=V,B=Y.mul(o,KN),{X:R,Y:_,Z:S}=this,v=Y.ZERO,P=Y.ZERO,E=Y.ZERO,b=Y.mul(R,R),k=Y.mul(_,_),f=Y.mul(S,S),e=Y.mul(R,_);return e=Y.add(e,e),E=Y.mul(R,S),E=Y.add(E,E),v=Y.mul(y,E),P=Y.mul(B,f),P=Y.add(v,P),v=Y.sub(k,P),P=Y.add(k,P),P=Y.mul(v,P),v=Y.mul(e,v),E=Y.mul(B,E),f=Y.mul(y,f),e=Y.sub(b,f),e=Y.mul(y,e),e=Y.add(e,E),E=Y.add(b,b),b=Y.add(E,b),b=Y.add(b,f),b=Y.mul(b,e),P=Y.add(P,b),f=Y.mul(_,S),f=Y.add(f,f),b=Y.mul(f,e),v=Y.sub(v,b),E=Y.mul(f,k),E=Y.add(E,E),E=Y.add(E,E),new m(v,P,E)}add(y){u(y);let{X:o,Y:B,Z:R}=this,{X:_,Y:S,Z:v}=y,P=Y.ZERO,E=Y.ZERO,b=Y.ZERO,k=V.a,f=Y.mul(V.b,KN),e=Y.mul(o,_),q0=Y.mul(B,S),Q0=Y.mul(R,v),$0=Y.add(o,B),D0=Y.add(_,S);$0=Y.mul($0,D0),D0=Y.add(e,q0),$0=Y.sub($0,D0),D0=Y.add(o,R);let k0=Y.add(_,v);return D0=Y.mul(D0,k0),k0=Y.add(e,Q0),D0=Y.sub(D0,k0),k0=Y.add(B,R),P=Y.add(S,v),k0=Y.mul(k0,P),P=Y.add(q0,Q0),k0=Y.sub(k0,P),b=Y.mul(k,D0),P=Y.mul(f,Q0),b=Y.add(P,b),P=Y.sub(q0,b),b=Y.add(q0,b),E=Y.mul(P,b),q0=Y.add(e,e),q0=Y.add(q0,e),Q0=Y.mul(k,Q0),D0=Y.mul(f,D0),q0=Y.add(q0,Q0),Q0=Y.sub(e,Q0),Q0=Y.mul(k,Q0),D0=Y.add(D0,Q0),e=Y.mul(q0,D0),E=Y.add(E,e),e=Y.mul(k0,D0),P=Y.mul($0,P),P=Y.sub(P,e),e=Y.mul($0,q0),b=Y.mul(k0,b),b=Y.add(b,e),new m(P,E,b)}subtract(y){return this.add(y.negate())}is0(){return this.equals(m.ZERO)}multiply(y){let{endo:o}=G;if(!Z.isValidNot0(y))throw Error("invalid scalar: out of range");let B,R,_=(S)=>U0.cached(this,S,(v)=>ON(m,v));if(o){let{k1neg:S,k1:v,k2neg:P,k2:E}=n(y),{p:b,f:k}=_(v),{p:f,f:e}=_(E);R=k.add(e),B=G0(o.beta,b,f,S,P)}else{let{p:S,f:v}=_(y);B=S,R=v}return ON(m,[B,R])[0]}multiplyUnsafe(y){let{endo:o}=G,B=this;if(!Z.isValid(y))throw Error("invalid scalar: out of range");if(y===E4||B.is0())return m.ZERO;if(y===KY)return B;if(U0.hasCache(this))return this.multiply(y);if(o){let{k1neg:R,k1:_,k2neg:S,k2:v}=n(y),{p1:P,p2:E}=rE(m,B,_,v);return G0(o.beta,P,E,R,S)}else return U0.unsafe(B,y)}multiplyAndAddUnsafe(y,o,B){let R=this.multiplyUnsafe(o).add(y.multiplyUnsafe(B));return R.is0()?void 0:R}toAffine(y){return c(this,y)}isTorsionFree(){let{isTorsionFree:y}=G;if(Q===KY)return!0;if(y)return y(m,this);return U0.unsafe(this,J).is0()}clearCofactor(){let{clearCofactor:y}=G;if(Q===KY)return this;if(y)return y(m,this);return this.multiplyUnsafe(Q)}isSmallOrder(){return this.multiplyUnsafe(Q).is0()}toBytes(y=!0){return MQ(y,"isCompressed"),this.assertValidity(),I(m,this,y)}toHex(y=!0){return P4(this.toBytes(y))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(y=!0){return this.toBytes(y)}_setWindowSize(y){this.precompute(y)}static normalizeZ(y){return ON(m,y)}static msm(y,o){return aE(m,Z,y,o)}static fromPrivateKey(y){return m.BASE.multiply(p6(Z,y))}}m.BASE=new m(V.Gx,V.Gy,Y.ONE),m.ZERO=new m(Y.ZERO,Y.ONE,Y.ZERO),m.Fp=Y,m.Fn=Z;let Y0=Z.BITS,U0=new cj(m,G.endo?Math.ceil(Y0/2):Y0);return m.BASE.precompute(8),m}function G$(W){return Uint8Array.of(W?2:3)}function X$(W,G){return{secretKey:G.BYTES,publicKey:1+W.BYTES,publicKeyUncompressed:1+2*W.BYTES,publicKeyHasPrefix:!0,signature:2*G.BYTES}}function Hl(W,G={}){let{Fn:X}=W,Y=G.randomBytes||HG,Z=Object.assign(X$(W.Fp,X),{seed:_j(X.ORDER)});function V(I){try{return!!p6(X,I)}catch(w){return!1}}function Q(I,w){let{publicKey:C,publicKeyUncompressed:D}=Z;try{let x=I.length;if(w===!0&&x!==C)return!1;if(w===!1&&x!==D)return!1;return!!W.fromBytes(I)}catch(x){return!1}}function J(I=Y(Z.seed)){return IN(h6(I,Z.seed,"seed"),X.ORDER)}function U(I,w=!0){return W.BASE.multiply(p6(X,I)).toBytes(w)}function q(I){let w=J(I);return{secretKey:w,publicKey:U(w)}}function N(I){if(typeof I==="bigint")return!1;if(I instanceof W)return!0;let{secretKey:w,publicKey:C,publicKeyUncompressed:D}=Z;if(X.allowedLengths||w===C)return;let x=R8("key",I).length;return x===C||x===D}function A(I,w,C=!0){if(N(I)===!0)throw Error("first arg must be private key");if(N(w)===!1)throw Error("second arg must be public key");let D=p6(X,I);return W.fromHex(w).multiply(D).toBytes(C)}return Object.freeze({getPublicKey:U,getSharedSecret:A,keygen:q,Point:W,utils:{isValidSecretKey:V,isValidPublicKey:Q,randomSecretKey:J,isValidPrivateKey:V,randomPrivateKey:J,normPrivateKeyToScalar:(I)=>p6(X,I),precompute(I=8,w=W.BASE){return w.precompute(I,!1)}},lengths:Z})}function Al(W,G,X={}){JN(G),RQ(X,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});let Y=X.randomBytes||HG,Z=X.hmac||((B,...R)=>hj(G,B,o9(...R))),{Fp:V,Fn:Q}=W,{ORDER:J,BITS:U}=Q,{keygen:q,getPublicKey:N,getSharedSecret:A,utils:H,lengths:I}=Hl(W,X),w={prehash:!1,lowS:typeof X.lowS==="boolean"?X.lowS:!1,format:void 0,extraEntropy:!1},C="compact";function D(B){let R=J>>KY;return B>R}function x(B,R){if(!Q.isValidNot0(R))throw Error(`invalid signature ${B}: out of range 1..Point.Fn.ORDER`);return R}function h(B,R){lj(R);let _=I.signature,S=R==="compact"?_:R==="recovered"?_+1:void 0;return h6(B,S,`${R} signature`)}class p{constructor(B,R,_){if(this.r=x("r",B),this.s=x("s",R),_!=null)this.recovery=_;Object.freeze(this)}static fromBytes(B,R=C){h(B,R);let _;if(R==="der"){let{r:E,s:b}=B4.toSig(h6(B));return new p(E,b)}if(R==="recovered")_=B[0],R="compact",B=B.subarray(1);let S=Q.BYTES,v=B.subarray(0,S),P=B.subarray(S,S*2);return new p(Q.fromBytes(v),Q.fromBytes(P),_)}static fromHex(B,R){return this.fromBytes(NG(B),R)}addRecoveryBit(B){return new p(this.r,this.s,B)}recoverPublicKey(B){let R=V.ORDER,{r:_,s:S,recovery:v}=this;if(v==null||![0,1,2,3].includes(v))throw Error("recovery id invalid");if(J*W$<R&&v>1)throw Error("recovery id is ambiguous for h>1 curve");let E=v===2||v===3?_+J:_;if(!V.isValid(E))throw Error("recovery id 2 or 3 invalid");let b=V.toBytes(E),k=W.fromBytes(o9(G$((v&1)===0),b)),f=Q.inv(E),e=n(R8("msgHash",B)),q0=Q.create(-e*f),Q0=Q.create(S*f),$0=W.BASE.multiplyUnsafe(q0).add(k.multiplyUnsafe(Q0));if($0.is0())throw Error("point at infinify");return $0.assertValidity(),$0}hasHighS(){return D(this.s)}toBytes(B=C){if(lj(B),B==="der")return NG(B4.hexFromSig(this));let R=Q.toBytes(this.r),_=Q.toBytes(this.s);if(B==="recovered"){if(this.recovery==null)throw Error("recovery bit must be present");return o9(Uint8Array.of(this.recovery),R,_)}return o9(R,_)}toHex(B){return P4(this.toBytes(B))}assertValidity(){}static fromCompact(B){return p.fromBytes(R8("sig",B),"compact")}static fromDER(B){return p.fromBytes(R8("sig",B),"der")}normalizeS(){return this.hasHighS()?new p(this.r,Q.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return P4(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return P4(this.toBytes("compact"))}}let u=X.bits2int||function(R){if(R.length>8192)throw Error("input is too large");let _=R4(R),S=R.length*8-U;return S>0?_>>BigInt(S):_},n=X.bits2int_modN||function(R){return Q.create(u(R))},c=b6(U);function l(B){return OE("num < 2^"+U,B,E4,c),Q.toBytes(B)}function G0(B,R){return h6(B,void 0,"message"),R?h6(G(B),void 0,"prehashed message"):B}function m(B,R,_){if(["recovered","canonical"].some((Q0)=>(Q0 in _)))throw Error("sign() legacy options not supported");let{lowS:S,prehash:v,extraEntropy:P}=pj(_,w);B=G0(B,v);let E=n(B),b=p6(Q,R),k=[l(b),l(E)];if(P!=null&&P!==!1){let Q0=P===!0?Y(I.secretKey):P;k.push(R8("extraEntropy",Q0))}let f=o9(...k),e=E;function q0(Q0){let $0=u(Q0);if(!Q.isValidNot0($0))return;let D0=Q.inv($0),k0=W.BASE.multiply($0).toAffine(),H1=Q.create(k0.x);if(H1===E4)return;let U1=Q.create(D0*Q.create(e+H1*b));if(U1===E4)return;let J0=(k0.x===H1?0:2)|Number(k0.y&KY),B0=U1;if(S&&D(U1))B0=Q.neg(U1),J0^=1;return new p(H1,B0,J0)}return{seed:f,k2sig:q0}}function Y0(B,R,_={}){B=R8("message",B);let{seed:S,k2sig:v}=m(B,R,_);return KE(G.outputLen,Q.BYTES,Z)(S,v)}function U0(B){let R=void 0,_=typeof B==="string"||qG(B),S=!_&&B!==null&&typeof B==="object"&&typeof B.r==="bigint"&&typeof B.s==="bigint";if(!_&&!S)throw Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(S)R=new p(B.r,B.s);else if(_){try{R=p.fromBytes(R8("sig",B),"der")}catch(v){if(!(v instanceof B4.Err))throw v}if(!R)try{R=p.fromBytes(R8("sig",B),"compact")}catch(v){return!1}}if(!R)return!1;return R}function y(B,R,_,S={}){let{lowS:v,prehash:P,format:E}=pj(S,w);if(_=R8("publicKey",_),R=G0(R8("message",R),P),"strict"in S)throw Error("options.strict was renamed to lowS");let b=E===void 0?U0(B):p.fromBytes(R8("sig",B),E);if(b===!1)return!1;try{let k=W.fromBytes(_);if(v&&b.hasHighS())return!1;let{r:f,s:e}=b,q0=n(R),Q0=Q.inv(e),$0=Q.create(q0*Q0),D0=Q.create(f*Q0),k0=W.BASE.multiplyUnsafe($0).add(k.multiplyUnsafe(D0));if(k0.is0())return!1;return Q.create(k0.x)===f}catch(k){return!1}}function o(B,R,_={}){let{prehash:S}=pj(_,w);return R=G0(R,S),p.fromBytes(B,"recovered").recoverPublicKey(R).toBytes()}return Object.freeze({keygen:q,getPublicKey:N,getSharedSecret:A,utils:H,lengths:I,Point:W,sign:Y0,verify:y,recoverPublicKey:o,Signature:p,hash:G})}function zl(W){let G={a:W.a,b:W.b,p:W.Fp.ORDER,n:W.n,h:W.h,Gx:W.Gx,Gy:W.Gy},X=W.Fp,Y=W.allowedPrivateKeyLengths?Array.from(new Set(W.allowedPrivateKeyLengths.map((Q)=>Math.ceil(Q/2)))):void 0,Z=T5(G.n,{BITS:W.nBitLength,allowedLengths:Y,modFromBytes:W.wrapPrivateKey}),V={Fp:X,Fn:Z,allowInfinityPoint:W.allowInfinityPoint,endo:W.endo,isTorsionFree:W.isTorsionFree,clearCofactor:W.clearCofactor,fromBytes:W.fromBytes,toBytes:W.toBytes};return{CURVE:G,curveOpts:V}}function Il(W){let{CURVE:G,curveOpts:X}=zl(W),Y={hmac:W.hmac,randomBytes:W.randomBytes,lowS:W.lowS,bits2int:W.bits2int,bits2int_modN:W.bits2int_modN};return{CURVE:G,curveOpts:X,hash:W.hash,ecdsaOpts:Y}}function wl(W,G){let X=G.Point;return Object.assign({},G,{ProjectivePoint:X,CURVE:Object.assign({},W,zN(X.Fn.ORDER,X.Fn.BITS))})}function Y$(W){let{CURVE:G,curveOpts:X,hash:Y,ecdsaOpts:Z}=Il(W),V=Nl(G,X),Q=Al(V,Y,Z);return wl(W,Q)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function CY(W,G){let X=(Y)=>Y$({...W,hash:Y});return{...X(G),create:X}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var Z$={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},V$={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},Q$={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},jl=T5(Z$.p),Ol=T5(V$.p),Kl=T5(Q$.p);var J$=CY({...Z$,Fp:jl,lowS:!1},jY);var TN0=CY({...V$,Fp:Ol,lowS:!1},pE);var PN0=CY({...Q$,Fp:Kl,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},cE);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var CN=J$;var Y9=_1(H8(),1),e5=_1(H8(),1),g2=_1(H8(),1),MG=_1(H8(),1),m4=_1(H8(),1),c2=_1(xU(),1),PG=_1(H8(),1),o6=_1(H8(),1),RG=_1(H8(),1),fY=_1(H8(),1),n6=_1(H8(),1),LG=_1(H8(),1),W7=_1(H8(),1),G7=_1(H8(),1),zH=_1(H8(),1),t5=_1(H8(),1),a2=_1(H8(),1),Ko=_1(H$(),1);import{randomBytes as ed}from"crypto";import{setTimeout as Wo}from"timers/promises";import{createCipheriv as Ho,createDecipheriv as Ao}from"crypto";var vN=_1(z$(),1),BG=_1(H8(),1),CG=_1(H8(),1),m7=_1(H8(),1),h7=_1(H8(),1),EG=_1(H8(),1);import{createHmac as VO}from"crypto";import{createCipheriv as WF,createDecipheriv as GF,createHmac as XF,timingSafeEqual as io}from"crypto";import{createCipheriv as QF,createDecipheriv as JF}from"crypto";import{setTimeout as Zn}from"timers/promises";import{randomBytes as qn}from"crypto";import{createHmac as jS}from"crypto";import{randomBytes as OS}from"crypto";var PN="undefined",RY=PN!==typeof Buffer&&Buffer,PY=PN!==typeof Uint8Array&&Uint8Array,TN=PN!==typeof ArrayBuffer&&ArrayBuffer,I$=[0,0,0,0,0,0,0,0],Ml=Array.isArray||Fl,TY=4294967296,Tl=16777216,LY,RN=j$("Uint64BE",!0,!0),nj=j$("Int64BE",!0,!1);function j$(W,G,X){var Y=G?0:4,Z=G?4:0,V=G?0:3,Q=G?1:2,J=G?2:1,U=G?3:0,q=G?Ll:El,N=G?Bl:$l,A=w.prototype,H="is"+W,I="_"+H;if(A.buffer=void 0,A.offset=0,A[I]=!0,A.toNumber=h,A.toString=p,A.toJSON=h,A.toArray=Pl,RY)A.toBuffer=Rl;if(PY)A.toArrayBuffer=O$;return w[H]=C,w;function w(c,l,G0,m){if(!(this instanceof w))return new w(c,l,G0,m);return D(this,c,l,G0,m)}function C(c){return!!(c&&c[I])}function D(c,l,G0,m,Y0){if(PY&&TN){if(l instanceof TN)l=new PY(l);if(m instanceof TN)m=new PY(m)}if(!l&&!G0&&!m&&!LY){c.buffer=K$(I$,0);return}if(!w$(l,G0)){var U0=LY||Array;Y0=G0,m=l,G0=0,l=LY===RY?RY.alloc(8):new U0(8)}if(c.buffer=l,c.offset=G0|=0,PN===typeof m)return;if(typeof m==="string")x(l,G0,m,Y0||10);else if(w$(m,Y0))oj(l,G0,m,Y0);else if(typeof Y0==="number")u(l,G0+Y,m),u(l,G0+Z,Y0);else if(m>0)q(l,G0,m);else if(m<0)N(l,G0,m);else oj(l,G0,I$,0)}function x(c,l,G0,m){var Y0=0,U0=G0.length,y=0,o=0;if(G0[0]==="-")Y0++;var B=Y0;while(Y0<U0){var R=parseInt(G0[Y0++],m);if(!(R>=0))break;o=o*m+R,y=y*m+Math.floor(o/TY),o%=TY}if(B)if(y=~y,o)o=TY-o;else y++;u(c,l+Y,y),u(c,l+Z,o)}function h(){var c=this.buffer,l=this.offset,G0=n(c,l+Y),m=n(c,l+Z);if(!X)G0|=0;return G0?G0*TY+m:m}function p(c){var l=this.buffer,G0=this.offset,m=n(l,G0+Y),Y0=n(l,G0+Z),U0="",y=!X&&m&2147483648;if(y)m=~m,Y0=TY-Y0;c=c||10;while(!0){var o=m%c*TY+Y0;if(m=Math.floor(m/c),Y0=Math.floor(o/c),U0=(o%c).toString(c)+U0,!m&&!Y0)break}if(y)U0="-"+U0;return U0}function u(c,l,G0){c[l+U]=G0&255,G0=G0>>8,c[l+J]=G0&255,G0=G0>>8,c[l+Q]=G0&255,G0=G0>>8,c[l+V]=G0&255}function n(c,l){return c[l+V]*Tl+(c[l+Q]<<16)+(c[l+J]<<8)+c[l+U]}}function Pl(W){var G=this.buffer,X=this.offset;if(LY=null,W!==!1&&Ml(G))return G.length===8?G:G.slice(X,X+8);return K$(G,X)}function Rl(W){var G=this.buffer,X=this.offset;if(LY=RY,W!==!1&&RY.isBuffer(G))return G.length===8?G:G.slice(X,X+8);return RY.from(O$.call(this,W))}function O$(W){var G=this.buffer,X=this.offset,Y=G.buffer;if(LY=PY,W!==!1&&!G.offset&&Y instanceof TN)return Y.byteLength===8?Y:Y.slice(X,X+8);var Z=new PY(8);return oj(Z,0,G,X),Z.buffer}function w$(W,G){var X=W&&W.length;return G|=0,X&&G+8<=X&&typeof W[G]!=="string"}function oj(W,G,X,Y){G|=0,Y|=0;for(var Z=0;Z<8;Z++)W[G++]=X[Y++]&255}function K$(W,G){return Array.prototype.slice.call(W,G,G+8)}function Ll(W,G,X){var Y=G+8;while(Y>G)W[--Y]=X&255,X/=256}function Bl(W,G,X){var Y=G+8;X++;while(Y>G)W[--Y]=-X&255^255,X/=256}function El(W,G,X){var Y=G+8;while(G<Y)W[G++]=X&255,X/=256}function $l(W,G,X){var Y=G+8;X++;while(G<Y)W[G++]=-X&255^255,X/=256}function Fl(W){return!!W&&Object.prototype.toString.call(W)=="[object Array]"}var aQ=_1(rj(),1);import{createHash as En}from"crypto";import{setTimeout as $n}from"timers/promises";import{createHash as gn}from"crypto";import{isIPv4 as EF}from"net";import{randomBytes as un}from"crypto";import{isIPv4 as $F}from"net";var bN=_1(M$(),1),LS=_1(g$(),1),ES=_1(rj(),1);import*as yO from"timers/promises";import{randomUUID as bn}from"crypto";import*as BS from"os";import{EventEmitter as sn}from"events";import{randomUUID as Ui}from"crypto";import{setTimeout as IO}from"timers/promises";import{createHash as qi}from"crypto";import{performance as FN}from"perf_hooks";import{randomUUID as Ni}from"crypto";import{randomUUID as bS}from"crypto";import{setTimeout as ki}from"timers/promises";import{randomBytes as gi}from"crypto";import{isIPv4 as ui}from"net";var sQ=_1(gz(),1);import{randomUUID as hi}from"crypto";import{setTimeout as bi}from"timers/promises";import{randomUUID as li}from"crypto";import{randomUUID as ri}from"crypto";import{createHmac as iF,randomBytes as ai}from"crypto";import{randomBytes as Q2}from"crypto";import{randomUUID as J2}from"crypto";import{setTimeout as U2}from"timers/promises";import{randomUUID as Rr}from"crypto";function z2(){return r1.Unpack("!H",A2(2))[0]}function DO(){return r1.Unpack("!L",A2(4))[0]}var nN=class{constructor(W){this.bitLength=W}value=0;set(W,G,X){return X&=(1<<W)-1,this.value|=X<<this.bitLength-W-G,this}get buffer(){let W=Math.ceil(this.bitLength/8),G=Buffer.alloc(W);return G.writeUIntBE(this.value,0,W),G}},I2=class{constructor(W){if(this.bitLength=W,W>32)throw Error()}_value=0n;offset=0n;set(W,G=1){let X=BigInt(W),Y=BigInt(G);return X&=(1n<<Y)-1n,this._value|=X<<BigInt(this.bitLength)-Y-this.offset,this.offset+=Y,this}get value(){return Number(this._value)}get buffer(){let W=Math.ceil(this.bitLength/8),G=Buffer.alloc(W);return G.writeUIntBE(this.value,0,W),G}};function y8(W,G,X=1){let Y=W.toString(2).split("");Y=[...Array(8-Y.length).fill("0"),...Y];let Z=Y.slice(G,G+X).join("");return Number.parseInt(Z,2)}function L8(W,G){return _N(W)(G)}function _N(W,G){let X=W.reduce((Z,V)=>Z+V,0),Y=G?Buffer.alloc(X):void 0;return(Z)=>{let V=Y||Buffer.alloc(X),Q=0;return Z.forEach((J,U)=>{let q=W[U];if(q===8)V.writeBigUInt64BE(J,Q);else V.writeUIntBE(J,Q,q);Q+=q}),V}}function r9(W,G){let X=0;return G.map((Y)=>{let Z;if(Y===8)Z=W.readBigUInt64BE(X);else Z=W.readUIntBE(X,Y);return X+=Y,Z})}var cQ=class{constructor(W){this.uint8Array=W}position=0;bitsPending=0;writeBits(W,G){if(W==0)return this;G&=4294967295>>>32-W;let X;if(this.bitsPending>0)if(this.bitsPending>W)this.uint8Array[this.position-1]|=G<<this.bitsPending-W,X=W,this.bitsPending-=W;else if(this.bitsPending==W)this.uint8Array[this.position-1]|=G,X=W,this.bitsPending=0;else this.uint8Array[this.position-1]|=G>>W-this.bitsPending,X=this.bitsPending,this.bitsPending=0;else X=Math.min(8,W),this.bitsPending=8-X,this.uint8Array[this.position++]=G>>W-X<<this.bitsPending;if(W-=X,W>0)this.writeBits(W,G);return this}readBits(W){return this._readBits(W)}_readBits(W,G){if(typeof G>"u")G=0;if(W==0)return G;let X,Y;if(this.bitsPending>0){let Z=this.uint8Array[this.position-1]&255>>8-this.bitsPending;Y=Math.min(this.bitsPending,W),this.bitsPending-=Y,X=Z>>this.bitsPending}else Y=Math.min(8,W),this.bitsPending=8-Y,X=this.uint8Array[this.position++]>>this.bitsPending;return W-=Y,G=G<<Y|X,W>0?this._readBits(W,G):G}seekTo(W){if(this.position=W/8|0,this.bitsPending=W%8,this.bitsPending>0)this.bitsPending=8-this.bitsPending,this.position++}},Kd=3988292384,Cd=2197175160;function w2(W){return typeof W!=="string"}function j2(W){let G=Array(256),X=0;for(let Y=0;Y<256;++Y)X=Y,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,X=X&1?W^X>>>1:X>>>1,G[Y]=X;return new Int32Array(G)}function O2(W){let G=new Int32Array(4096),X=0,Y=0,Z=0;for(Z=0;Z<256;++Z)G[Z]=W[Z];for(Z=0;Z<256;++Z){Y=W[Z];for(X=256+Z;X<4096;X+=256)Y=G[X]=Y>>>8^W[Y&255]}let V=[];for(Z=1;Z<16;++Z)V[Z-1]=G.subarray(Z*256,Z*256+256);return V}function K2(W,G,X){let Y=G^-1,Z=0,V=W.length,Q=0,J=0;while(Z<V)if(Q=W.charCodeAt(Z++),Q<128)Y=Y>>>8^X[(Y^Q)&255];else if(Q<2048)Y=Y>>>8^X[(Y^(192|Q>>6&31))&255],Y=Y>>>8^X[(Y^(128|Q&63))&255];else if(Q>=55296&&Q<57344)Q=(Q&1023)+64,J=W.charCodeAt(Z++)&1023,Y=Y>>>8^X[(Y^(240|Q>>8&7))&255],Y=Y>>>8^X[(Y^(128|Q>>2&63))&255],Y=Y>>>8^X[(Y^(128|J>>6&15|(Q&3)<<4))&255],Y=Y>>>8^X[(Y^(128|J&63))&255];else Y=Y>>>8^X[(Y^(224|Q>>12&15))&255],Y=Y>>>8^X[(Y^(128|Q>>6&63))&255],Y=Y>>>8^X[(Y^(128|Q&63))&255];return~Y>>>0}function C2(W,G,X,Y){let[Z,V,Q,J,U,q,N,A,H,I,w,C,D,x,h]=Y,p=G^-1,u=0,n=W.length-15;while(u<n)p=h[W[u++]^p&255]^x[W[u++]^p>>>8&255]^D[W[u++]^p>>>16&255]^C[W[u++]^p>>>24]^w[W[u++]]^I[W[u++]]^H[W[u++]]^A[W[u++]]^N[W[u++]]^q[W[u++]]^U[W[u++]]^J[W[u++]]^Q[W[u++]]^V[W[u++]]^Z[W[u++]]^X[W[u++]];for(n+=15;u<n;)p=p>>>8^X[(p^W[u++])&255];return~p>>>0}var MO=j2(Kd),Dd=O2(MO),TO=j2(Cd),Md=O2(TO);function Td(W,G=0){if(w2(W))return C2(W,G,MO,Dd);return K2(W,G,MO)}function D2(W,G=0){if(w2(W))return C2(W,G,TO,Md);return K2(W,G,TO)}function Pd(W,G){return W+G&255}function M9(W,G){return W+G&65535}function yY(W,G){return Number(BigInt(W)+BigInt(G)&0xffffffffn)}function Rd(W){return W&16777215}function M2(W,G){return W<G&&G-W>32768||W>G&&W-G<32768}function b4(W,G){return W<G&&G-W>2147483648||W>G&&W-G<2147483648}function bQ(W,G){return W===G||b4(W,G)}var pQ=(W)=>Number.parseInt(W,10);var T2=(W,G)=>G?G[W]:void 0;async function Bd(W,G,X="udp4",Y){let Z;for(let V=W;V<=G;V++){let Q=Ld(X);if(setImmediate(()=>Q.bind({port:V,address:T2(X,Y)})),await new Promise((U)=>{Q.once("error",(q)=>U(q)),Q.once("listening",()=>U())})){await new Promise((U)=>Q.close(()=>U()));continue}if(Z=Q.address()?.port,await new Promise((U)=>Q.close(()=>U())),W<=Z&&Z<=G)break}if(!Z)throw Error("port not found");return Z}function iN(W){if(W==="IPv4")return 4;if(W==="IPv6")return 6;return W}var M1=P2.default.debug,f0=class{event={stack:[],promiseStack:[],eventId:0};ended=!1;onended;onerror=(W)=>{};execute=(...W)=>{if(this.ended)return;for(let G of this.event.stack)G.execute(...W);(async()=>{for(let G of this.event.promiseStack)await G.execute(...W)})().catch((G)=>{this.onerror(G)})};complete=()=>{if(this.ended)return;for(let W of this.event.stack)if(W.complete)W.complete();if(this.allUnsubscribe(),this.ended=!0,this.onended)this.onended(),this.onended=void 0};error=(W)=>{if(this.ended)return;for(let G of this.event.stack)if(G.error)G.error(W);this.allUnsubscribe()};allUnsubscribe=()=>{if(this.ended)throw Error("event completed");this.event={stack:[],promiseStack:[],eventId:0}};subscribe=(W,G,X)=>{let Y=this.event.eventId;this.event.stack.push({execute:W,id:Y,complete:G,error:X}),this.event.eventId++;let Z=()=>{this.event.stack=this.event.stack.filter((Q)=>Q.id!==Y&&Q)};return{unSubscribe:Z,disposer:(Q)=>{Q.push(Z)}}};pipe(W){this.subscribe((...G)=>{W.execute(...G)})}queuingSubscribe=(W,G,X)=>{if(this.ended)throw Error("event completed");let Y=this.event.eventId;this.event.promiseStack.push({execute:W,id:Y,complete:G,error:X}),this.event.eventId++;let Z=()=>{this.event.stack=this.event.stack.filter((Q)=>Q.id!==Y&&Q)};return{unSubscribe:Z,disposer:(Q)=>{Q.push(Z)}}};once=(W,G,X)=>{let Y=this.subscribe((...Z)=>{Y.unSubscribe(),W(...Z)},G,X)};watch=(W,G)=>new Promise((X,Y)=>{let Z=G&&setTimeout(()=>{Y("Event watch timeout")},G),{unSubscribe:V}=this.subscribe((...Q)=>{if(W(...Q)){if(Z)clearTimeout(Z);V(),X(Q)}})});asPromise=(W)=>new Promise((G,X)=>{let Y=W&&setTimeout(()=>{X("Event asPromise timeout")},W);this.once((...Z)=>{if(Y)clearTimeout(Y);G(Z)},()=>{if(Y)clearTimeout(Y);G([])},(Z)=>{if(Y)clearTimeout(Y);X(Z)})});get returnTrigger(){let{execute:W,error:G,complete:X}=this;return{execute:W,error:G,complete:X}}get returnListener(){let{subscribe:W,once:G,asPromise:X}=this;return{subscribe:W,once:G,asPromise:X}}get length(){return this.event.stack.length}},Ed=class{_disposer=[];push(W){this._disposer.push(W)}dispose(){this._disposer.forEach((W)=>W()),this._disposer=[]}},u$=M1("werift-ice:packages/ice/src/transport.ts"),PO=class W{constructor(G,X={}){this.socketType=G,this.options=X,this.socket=$d(G),this.socket.on("message",(Y,Z)=>{if(iN(Z.family)===6)[Z.address]=Z.address.split("%");this.rinfo=Z;try{this.onData(Y,[Z.address,Z.port])}catch(V){u$("onData error",V)}})}type="udp";socket;rinfo;onData=()=>{};closed=!1;static async init(G,X={}){let Y=new W(G,X);return await Y.init(),Y}async init(){let G=T2(this.socketType,this.options.interfaceAddresses);if(this.options.port)this.socket.bind({port:this.options.port,address:G});else if(this.options.portRange){let X=await Bd(this.options.portRange[0],this.options.portRange[1],this.socketType,this.options.interfaceAddresses);this.socket.bind({port:X,address:G})}else this.socket.bind({address:G});await new Promise((X)=>this.socket.once("listening",X))}send=async(G,X)=>{if(X&&!R2.isIP(X[0]))return new Promise((Y,Z)=>{this.socket.send(G,X[1],X[0],(V)=>{if(V)u$("send error",X,G),Z(V);else Y()})});else X=X??[this.rinfo?.address,this.rinfo?.port],this.socket.send(G,X[1],X[0])};get address(){return this.socket.address()}get host(){return this.socket.address().address}get port(){return this.socket.address().port}close=()=>new Promise((G)=>{this.closed=!0,this.socket.once("close",G);try{this.socket.close()}catch(X){G()}})},Sd=class W{constructor(G){this.addr=G,this.connect()}type="tcp";connecting;client;onData=()=>{};closed=!1;connect(){if(this.closed)return;if(this.client)this.client.destroy();this.connecting=new Promise((G,X)=>{try{this.client=Fd({port:this.addr[1],host:this.addr[0]},G)}catch(Y){X(Y)}}),this.client.on("data",(G)=>{let X=[this.client.remoteAddress,this.client.remotePort];this.onData(G,X)}),this.client.on("end",()=>{this.connect()}),this.client.on("error",(G)=>{console.log("error",G)})}async init(){await this.connecting}static async init(G){let X=new W(G);return await X.init(),X}get address(){return{}}send=async(G,X)=>{await this.connecting,this.client.write(G,(Y)=>{if(Y)console.log("err",Y)})};close=async()=>{this.closed=!0,this.client.destroy()}},c4={rsa_1:1,ecdsa_3:3},rN={sha256_4:4},RO={TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195:49195,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199:49199},yd=Object.values(RO),i6={x25519_29:29,secp256r1_23:23},L2=Object.values(i6),B2={named_curve_3:3},h$={rsa_pkcs1_sha256:1025,ecdsa_secp256r1_sha256:1027},vd=[1,64],E2=[{hash:rN.sha256_4,signature:c4.rsa_1},{hash:rN.sha256_4,signature:c4.ecdsa_3}],hd=()=>{let W=CN.utils.randomPrivateKey(),G=CN.getPublicKey(W,!1),X=Buffer.from(W),Y=Buffer.from(G);return{privateKey:X,publicKey:Y}},bd=({publicKey:W,privateKey:G})=>{let X=CN.getSharedSecret(G,W);return Buffer.from(X).subarray(1)};function S2(W,G,X){switch(X){case i6.secp256r1_23:return bd({publicKey:W,privateKey:G});case i6.x25519_29:return Buffer.from(F2.default.scalarMult(G,W));default:throw Error()}}function b$(W,G,X){let Y=ud(W,G);return Y.update(X),Y.digest()}function eQ(W,G,X,Y="sha256"){let Z=X,V=[],Q=G;do{Q=b$(Y,W,Q);let J=b$(Y,W,Buffer.concat([Q,G]));V.push(J),X-=J.length}while(X>0);return Buffer.concat(V,Z)}function x2(W,G,X){let Y=Buffer.concat([Buffer.from("master secret"),G,X]);return eQ(W,Y,48)}function k2(W,G){let X=_2("sha256",G),Y="extended master secret";return eQ(W,Buffer.concat([Buffer.from("extended master secret"),X]),48)}function md(W,G,X,Y,Z,V){let Q=V?Y:Z,J=V?Z:Y,U=Buffer.concat([Buffer.from(W),Q,J]);return eQ(X,U,G)}function _2(W,G){return gd(W).update(G).digest()}function y2(W,G,X,Y=12){let Z=_2("sha256",G);return eQ(W,Buffer.concat([Buffer.from(X),Z]),Y)}function fd(W,G){return y2(W,G,"client finished")}function cd(W,G){return y2(W,G,"server finished")}function pd(W,G,X,Y,Z,V,Q="sha256"){let J=Y*2+Z*2,U=W,q=Buffer.concat([X,G]),N=eQ(U,Buffer.concat([Buffer.from("key expansion"),q]),J,Q),A=$2.createDecode(N),H=A.readBuffer(Y),I=A.readBuffer(Y),w=A.readBuffer(Z),C=A.readBuffer(Z),D=Buffer.alloc(V,0),x=Buffer.alloc(V,0);return w.copy(D,0),C.copy(x,0),{clientWriteKey:H,serverWriteKey:I,clientNonce:D,serverNonce:x}}var f4={CLIENT:1,SERVER:2},ld=class{id=0;name;hashAlgorithm;verifyDataLength=12;blockAlgorithm;kx;init(...W){throw Error("not implemented")}encrypt(...W){throw Error("not implemented")}decrypt(...W){throw Error("not implemented")}toString(){return this.name}},LO=_d;k8.set(LO);var aN=class{constructor(W,G,X,Y){if(this.sessionType=W,this.certPem=G,this.keyPem=X,G&&X&&Y)this.parseX509(G,X,Y)}localRandom;remoteRandom;cipherSuite;remoteCertificate;remoteKeyPair;localKeyPair;masterSecret;cipher;namedCurve;signatureHashAlgorithm;localCert;localPrivateKey;static createSelfSignedCertificateWithKey=async(W,G)=>{let X=(()=>{switch(W.signature){case c4.rsa_1:return"RSASSA-PKCS1-v1_5";case c4.ecdsa_3:return"ECDSA"}})(),Y=(()=>{switch(W.hash){case rN.sha256_4:return"SHA-256"}})(),Z=(()=>{switch(G){case i6.secp256r1_23:return"P-256";case i6.x25519_29:if(X==="ECDSA")return"P-256";return"X25519";default:{if(X==="ECDSA")return"P-256";if(X==="RSASSA-PKCS1-v1_5")return"X25519"}}})(),V=(()=>{switch(X){case"ECDSA":return{name:X,hash:Y,namedCurve:Z};case"RSASSA-PKCS1-v1_5":return{name:X,hash:Y,publicExponent:new Uint8Array([1,0,1]),modulusLength:2048}}})(),Q=await LO.subtle.generateKey(V,!0,["sign","verify"]),U=(await Ij.createSelfSigned({serialNumber:kd(8).toString("hex"),name:"C=AU, ST=Some-State, O=Internet Widgits Pty Ltd",notBefore:new Date,notAfter:new Date(Date.now()+315360000000),signingAlgorithm:V,keys:Q})).toString("pem"),q=K9.encode(await LO.subtle.exportKey("pkcs8",Q.privateKey),"private key");return{certPem:U,keyPem:q,signatureHash:W}};encryptPacket(W){let G=W.recordLayerHeader,X=G.protocolVersion.major<<8|G.protocolVersion.minor,Y=this.cipher.encrypt(this.sessionType,W.fragment,{type:G.contentType,version:X,epoch:G.epoch,sequenceNumber:G.sequenceNumber});return W.fragment=Y,W.recordLayerHeader.contentLen=Y.length,W}decryptPacket(W){let G=W.recordLayerHeader,X=G.protocolVersion.major<<8|G.protocolVersion.minor;return this.cipher.decrypt(this.sessionType,W.fragment,{type:G.contentType,version:X,epoch:G.epoch,sequenceNumber:G.sequenceNumber})}verifyData(W){if(this.sessionType===f4.CLIENT)return fd(this.masterSecret,W);else return cd(this.masterSecret,W)}signatureData(W,G){let X=xd(G).update(W),Y=this.localPrivateKey.toPEM().toString();return X.sign(Y)}generateKeySignature(W){let G=this.sessionType===f4.CLIENT?this.localRandom:this.remoteRandom,X=this.sessionType===f4.SERVER?this.localRandom:this.remoteRandom,Y=this.valueKeySignature(G.serialize(),X.serialize(),this.localKeyPair.publicKey,this.namedCurve);return this.localPrivateKey.sign(Y,W)}parseX509(W,G,X){let Y=qH.Certificate.fromPEM(Buffer.from(W)),Z=qH.PrivateKey.fromPEM(Buffer.from(G));this.localCert=Y.raw,this.localPrivateKey=Z,this.signatureHashAlgorithm=X}valueKeySignature(W,G,X,Y){let Z=Buffer.from(vY.encode({type:B2.named_curve_3,curve:Y,len:X.length},{type:vY.types.uint8,curve:vY.types.uint16be,len:vY.types.uint8}).slice());return Buffer.concat([W,G,Z,X])}},sN=class{srtpProfile;static findMatchingSRTPProfile(W,G){for(let X of G)if(W.includes(X))return X}},eO=(W)=>"0x"+W.toString("hex").replace(/(.)(.)/g,"$1$2 ").split(" ").filter((G)=>G!=null&&G.length>0).join(",0x"),v2=(W)=>Object.entries({...W}).reduce((G,[X,Y])=>{if(typeof Y==="number"||typeof Y==="string")G[X]=Y;if(Buffer.isBuffer(Y))G[X]=eO(Y);return G},{}),P5=class W{constructor(G,X,Y,Z,V,Q){this.msg_type=G,this.length=X,this.message_seq=Y,this.fragment_offset=Z,this.fragment_length=V,this.fragment=Q}static spec={msg_type:e5.types.uint8,length:e5.types.uint24be,message_seq:e5.types.uint16be,fragment_offset:e5.types.uint24be,fragment_length:e5.types.uint24be,fragment:e5.types.buffer((G)=>G.current.fragment_length)};get summary(){return v2(this)}static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(e5.decode(G,W.spec)))}serialize(){let G=e5.encode(this,W.spec).slice();return Buffer.from(G)}chunk(G){let X=0,Y=this.fragment.length;if(Y===0)return[new W(this.msg_type,Y,this.message_seq,X,0,this.fragment)];let Z=[];if(!G)G=1240;while(X<Y){let V=Math.min(G,Y-X),Q=Buffer.from(this.fragment.slice(X,X+V));if(Q.length<=0)throw Error("Zero or less bytes processed while fragmenting handshake message.");Z.push(new W(this.msg_type,Y,this.message_seq,X,Q.length,Q)),X+=Q.length}return Z}static assemble(G){if(!G?.length)throw Error("cannot reassemble handshake from empty array");G=G.sort((Y,Z)=>Y.fragment_offset-Z.fragment_offset);let X=Buffer.alloc(G[0].length);for(let Y of G)Y.fragment.copy(X,Y.fragment_offset);return new W(G[0].msg_type,G[0].length,G[0].message_seq,0,X.length,X)}static findAllFragments(G,X){let Y=G.find((Z)=>Z.msg_type===X);if(!Y)return[];if(!G?.length)return[];return G.filter((Z)=>{return Z.msg_type===Y.msg_type&&Z.message_seq===Y.message_seq&&Z.length===Y.length})}},{uint16be:tN,uint24be:dd,buffer:u2,array:od,uint8:oQ,string:nd}=g2.types,id={type:tN,data:u2(tN)},BO=od(id,tN,"bytes"),rd=u2(dd),ad=oQ,sd=nd(tN),td={hash:oQ,signature:oQ},WK={major:oQ,minor:oQ},TG=class W{constructor(G=Math.floor(Date.now()/1000),X=ed(28)){this.gmt_unix_time=G,this.random_bytes=X}static spec={gmt_unix_time:MG.types.uint32be,random_bytes:MG.types.buffer(28)};static deSerialize(G){return new W(...Object.values(MG.decode(G,W.spec)))}static from(G){return new W(...Object.values(G))}serialize(){let G=MG.encode(this,W.spec).slice();return Buffer.from(G)}},h2=class W{constructor(G,X,Y,Z,V,Q,J){this.clientVersion=G,this.random=X,this.sessionId=Y,this.cookie=Z,this.cipherSuites=V,this.compressionMethods=Q,this.extensions=J}msgType=1;messageSeq=0;static spec={clientVersion:{major:Y9.types.uint8,minor:Y9.types.uint8},random:TG.spec,sessionId:Y9.types.buffer(Y9.types.uint8),cookie:Y9.types.buffer(Y9.types.uint8),cipherSuites:Y9.types.array(Y9.types.uint16be,Y9.types.uint16be,"bytes"),compressionMethods:Y9.types.array(Y9.types.uint8,Y9.types.uint8,"bytes"),extensions:BO};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(Y9.decode(G,W.spec)))}serialize(){let G=Y9.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},Go=class W{constructor(G,X,Y,Z,V){this.epoch=G,this.sequenceNumber=X,this.contentType=Y,this.protocolVersion=Z,this.contentLen=V}static spec={epoch:m4.types.uint16be,sequenceNumber:m4.types.uint48be,contentType:m4.types.uint8,protocolVersion:WK,contentLen:m4.types.uint16be};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(m4.decode(G,W.spec)))}serialize(){let G=m4.encode(this,W.spec).slice();return Buffer.from(G)}},b2=class W{constructor(G,X){this.recordLayerHeader=G,this.fragment=X}get summary(){return{header:this.recordLayerHeader,fragment:eO(this.fragment)}}static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){if(G.length<13)throw Error("Invalid DTLS record: buffer is too short");let X=G.readUInt8(0),Y=G.readUInt8(1),Z=G.readUInt8(2),V=G.readUInt16BE(3),Q=G.slice(5,11).readUIntBE(0,6),J=G.readUInt16BE(11);if(G.length<13+J)throw Error("Invalid DTLS record: fragment length exceeds buffer");let U=G.slice(13,13+J);return new W({contentType:X,protocolVersion:{major:Y,minor:Z},epoch:V,sequenceNumber:Q,contentLen:J},U)}serialize(){let G=this.fragment.length,X=13+G,Y=Buffer.alloc(X);return Y.writeUInt8(this.recordLayerHeader.contentType,0),Y.writeUInt8(this.recordLayerHeader.protocolVersion.major,1),Y.writeUInt8(this.recordLayerHeader.protocolVersion.minor,2),Y.writeUInt16BE(this.recordLayerHeader.epoch,3),Y.writeUIntBE(this.recordLayerHeader.sequenceNumber,5,6),Y.writeUInt16BE(G,11),this.fragment.copy(Y,13),Y}computeMACHeader(){return new Go(this.recordLayerHeader.epoch,this.recordLayerHeader.sequenceNumber,this.recordLayerHeader.contentType,this.recordLayerHeader.protocolVersion,this.recordLayerHeader.contentLen).serialize()}},m2=(W)=>(G)=>{return W.lastFlight=G,G.flatMap((X)=>{return X.messageSeq=W.sequenceNumber++,X.toFragment().chunk()})},WJ=(W)=>(G,X)=>{return G.map((Y)=>{return new b2({contentType:Y.type,protocolVersion:W.version,epoch:W.epoch,sequenceNumber:X,contentLen:Y.fragment.length},Y.fragment)})},EO=((W)=>{return W[W.CloseNotify=0]="CloseNotify",W[W.UnexpectedMessage=10]="UnexpectedMessage",W[W.BadRecordMac=20]="BadRecordMac",W[W.DecryptionFailed=21]="DecryptionFailed",W[W.RecordOverflow=22]="RecordOverflow",W[W.DecompressionFailure=30]="DecompressionFailure",W[W.HandshakeFailure=40]="HandshakeFailure",W[W.NoCertificate=41]="NoCertificate",W[W.BadCertificate=42]="BadCertificate",W[W.UnsupportedCertificate=43]="UnsupportedCertificate",W[W.CertificateRevoked=44]="CertificateRevoked",W[W.CertificateExpired=45]="CertificateExpired",W[W.CertificateUnknown=46]="CertificateUnknown",W[W.IllegalParameter=47]="IllegalParameter",W[W.UnknownCa=48]="UnknownCa",W[W.AccessDenied=49]="AccessDenied",W[W.DecodeError=50]="DecodeError",W[W.DecryptError=51]="DecryptError",W[W.ExportRestriction=60]="ExportRestriction",W[W.ProtocolVersion=70]="ProtocolVersion",W[W.InsufficientSecurity=71]="InsufficientSecurity",W[W.InternalError=80]="InternalError",W[W.UserCanceled=90]="UserCanceled",W[W.NoRenegotiation=100]="NoRenegotiation",W[W.UnsupportedExtension=110]="UnsupportedExtension",W})(EO||{}),Xo=M1("werift-dtls : packages/dtls/src/flight/flight.ts : warn"),ZO=M1("werift-dtls : packages/dtls/src/flight/flight.ts : err"),GJ=class W{constructor(G,X,Y,Z){this.transport=G,this.dtls=X,this.flight=Y,this.nextFlight=Z}state="PREPARING";static RetransmitCount=10;createPacket(G){let X=m2(this.dtls)(G);return this.dtls.bufferHandshakeCache(X,!0,this.flight),WJ(this.dtls)(X.map((Z)=>({type:22,fragment:Z.serialize()})),++this.dtls.recordSequenceNumber)}async transmit(G){let X=0;for(;X<=W.RetransmitCount;X++){if(this.setState("SENDING"),this.send(G).catch((Y)=>{ZO("fail to send",ZO)}),this.setState("WAITING"),this.nextFlight===void 0){this.setState("FINISHED");break}if(await Wo(1000*((X+1)/2)),this.dtls.flight>=this.nextFlight){this.setState("FINISHED");break}else Xo(this.dtls.sessionId,"retransmit",X,this.dtls.flight)}if(X>W.RetransmitCount)throw ZO(this.dtls.sessionId,"retransmit failed",X),Error(`over retransmitCount : ${this.flight} ${this.nextFlight}`)}send=(G)=>Promise.all(G.map((X)=>this.transport.send(X)));setState(G){this.state=G}},Yo=class extends GJ{constructor(W,G,X){super(W,G,1,3);this.cipher=X}async exec(W){if(this.dtls.flight===1)throw Error();this.dtls.flight=1;let G=new h2({major:254,minor:253},new TG,Buffer.from([]),Buffer.from([]),yd,[0],W);this.dtls.version=G.clientVersion,this.cipher.localRandom=TG.from(G.random);let X=this.createPacket([G]),Y=Buffer.concat(X.map((Z)=>Z.serialize()));await this.transmit([Y])}},Zo=M1("werift-dtls : packages/dtls/src/flight/client/flight3.ts : log"),Vo=class extends GJ{constructor(W,G){super(W,G,3,5)}async exec(W){if(this.dtls.flight===3)throw Error();this.dtls.flight=3,this.dtls.handshakeCache=[];let[G]=this.dtls.lastFlight;Zo("dtls version",G.clientVersion),G.cookie=W.cookie,this.dtls.cookie=W.cookie;let X=this.createPacket([G]),Y=Buffer.concat(X.map((Z)=>Z.serialize()));await this.transmit([Y])}},NH={NULL:0,ECDHE:1},XJ={NULL:0,RSA:1,ECDSA:2,PSK:3},YJ={NULL:0,RSA:1,ECDHE_RSA:2,ECDHE_ECDSA:3,PSK:4,ECDHE_PSK:5},ZJ=class{id=0;name;signType;keyType;toString(){return this.name}};function Qo(){let W=new ZJ;return W.id=YJ.RSA,W.name="RSA",W.keyType=XJ.RSA,W}function Jo(){let W=new ZJ;return W.id=YJ.ECDHE_RSA,W.name="ECDHE_RSA",W.signType=NH.ECDHE,W.keyType=XJ.RSA,W}function Uo(){let W=new ZJ;return W.id=YJ.ECDHE_ECDSA,W.name="ECDHE_ECDSA",W.signType=NH.ECDHE,W.keyType=XJ.ECDSA,W}function qo(){let W=new ZJ;return W.id=YJ.PSK,W.name="PSK",W.signType=NH.NULL,W.keyType=XJ.PSK,W}function No(){let W=new ZJ;return W.id=YJ.ECDHE_PSK,W.name="ECDHE_PSK",W.signType=NH.ECDHE,W.keyType=XJ.PSK,W}var zo=M1("werift-dtls : packages/dtls/src/cipher/suites/aead.ts : err"),Io=class extends ld{keyLength=0;nonceLength=0;ivLength=0;authTagLength=0;nonceImplicitLength=0;nonceExplicitLength=0;clientWriteKey;serverWriteKey;clientNonce;serverNonce;constructor(){super()}get summary(){return v2(this)}init(W,G,X){let Y=pd(W,X,G,this.keyLength,this.ivLength,this.nonceLength,this.hashAlgorithm);this.clientWriteKey=Y.clientWriteKey,this.serverWriteKey=Y.serverWriteKey,this.clientNonce=Y.clientNonce,this.serverNonce=Y.serverNonce}encrypt(W,G,X){let Y=W===f4.CLIENT,Z=Y?this.clientNonce:this.serverNonce,V=Y?this.clientWriteKey:this.serverWriteKey;if(!Z||!V)throw Error();Z.writeUInt16BE(X.epoch,this.nonceImplicitLength),Z.writeUIntBE(X.sequenceNumber,this.nonceImplicitLength+2,6);let Q=Z.slice(this.nonceImplicitLength),J=this.encodeAdditionalBuffer(X,G.length),U=Ho(this.blockAlgorithm,V,Z,{authTagLength:this.authTagLength});U.setAAD(J,{plaintextLength:G.length});let q=U.update(G),N=U.final(),A=U.getAuthTag();return Buffer.concat([Q,q,N,A])}encodeAdditionalBuffer(W,G){let X=Buffer.alloc(13);return X.writeUInt16BE(W.epoch,0),X.writeUintBE(W.sequenceNumber,2,6),X.writeUInt8(W.type,8),X.writeUInt16BE(W.version,9),X.writeUInt16BE(G,11),X}decrypt(W,G,X){let Y=W===f4.CLIENT,Z=Y?this.serverNonce:this.clientNonce,V=Y?this.serverWriteKey:this.clientWriteKey;if(!Z||!V)throw Error();G.subarray(0,this.nonceExplicitLength).copy(Z,this.nonceImplicitLength);let J=G.subarray(this.nonceExplicitLength,G.length-this.authTagLength),U=G.subarray(G.length-this.authTagLength),q=this.encodeAdditionalBuffer(X,J.length),N=Ao(this.blockAlgorithm,V,Z,{authTagLength:this.authTagLength});N.setAuthTag(U),N.setAAD(q,{plaintextLength:J.length});let A=N.update(J);try{let H=N.final();return H.length>0?Buffer.concat([A,H]):A}catch(H){throw zo("decrypt failed",H,W,eO(G),X,this.summary),H}}},_8={TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:49195,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:49196,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:49199,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:49200,TLS_RSA_WITH_AES_128_GCM_SHA256:156,TLS_RSA_WITH_AES_256_GCM_SHA384:157,TLS_PSK_WITH_AES_128_GCM_SHA256:168,TLS_PSK_WITH_AES_256_GCM_SHA384:169,TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256:53249,TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384:53250,TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256:52396,TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256:52393,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256:52392,TLS_PSK_WITH_CHACHA20_POLY1305_SHA256:52395},xQ={K_LEN:16,N_MIN:12,N_MAX:12,P_MAX:68719476705,A_MAX:9007199254740991,C_MAX:68719476721},kQ={K_LEN:32,N_MIN:12,N_MAX:12,P_MAX:68719476705,A_MAX:9007199254740991,C_MAX:68719476721},m$=Qo(),f$=Jo(),c$=Uo(),p$=qo(),l$=No();function f2(W){switch(W){case _8.TLS_RSA_WITH_AES_128_GCM_SHA256:return g7(_8.TLS_RSA_WITH_AES_128_GCM_SHA256,"TLS_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",m$,xQ);case _8.TLS_RSA_WITH_AES_256_GCM_SHA384:return g7(_8.TLS_RSA_WITH_AES_256_GCM_SHA384,"TLS_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",m$,kQ,"sha384");case _8.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256:return g7(_8.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",f$,xQ);case _8.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384:return g7(_8.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",f$,kQ,"sha384");case _8.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256:return g7(_8.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256","aes-128-gcm",c$,xQ);case _8.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384:return g7(_8.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384","aes-256-gcm",c$,kQ,"sha384");case _8.TLS_PSK_WITH_AES_128_GCM_SHA256:return g7(_8.TLS_PSK_WITH_AES_128_GCM_SHA256,"TLS_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",p$,xQ,"sha256");case _8.TLS_PSK_WITH_AES_256_GCM_SHA384:return g7(_8.TLS_PSK_WITH_AES_256_GCM_SHA384,"TLS_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",p$,kQ,"sha384");case _8.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256:return g7(_8.TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256,"TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256","aes-128-gcm",l$,xQ,"sha256");case _8.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384:return g7(_8.TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384,"TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384","aes-256-gcm",l$,kQ,"sha384");default:break}return null}function g7(W,G,X,Y,Z,V="sha256"){let Q=new Io;return Q.id=W,Q.name=G,Q.blockAlgorithm=X,Q.kx=Y,Q.hashAlgorithm=V,Q.keyLength=Z.K_LEN,Q.nonceLength=Z.N_MAX,Q.nonceImplicitLength=4,Q.nonceExplicitLength=8,Q.ivLength=Q.nonceImplicitLength,Q.authTagLength=16,Q}function p2(W){switch(W){case i6.secp256r1_23:{let{privateKey:G,publicKey:X}=hd();return{curve:W,privateKey:G,publicKey:X}}case i6.x25519_29:{let G=c2.default.box.keyPair();return{curve:W,privateKey:Buffer.from(G.secretKey.buffer),publicKey:Buffer.from(G.publicKey.buffer)}}default:throw Error()}}var HH=class{static type=23},AH=class W{static type=65281;static spec={type:PG.types.uint16be,data:PG.types.uint8};type=W.type;data=0;constructor(G={}){Object.assign(this,G)}static createEmpty(){return new W}static deSerialize(G){return new W(PG.decode(G,W.spec))}serialize(){let G=PG.encode(this,W.spec).slice();return Buffer.from(G)}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},gY=class W{static type=14;static spec={type:o6.types.uint16be,data:o6.types.buffer(o6.types.uint16be)};type=W.type;data=Buffer.from([]);profiles=[];mki=Buffer.from([0]);constructor(G={}){Object.assign(this,G)}static create(G,X){return new W({profiles:G,mki:X})}static deSerialize(G){let X=new W(o6.decode(G,W.spec)),Y=X.data.readUInt16BE(),Z=Array(Y/2);for(let V=0;V<Z.length;V++)Z[V]=X.data.readUInt16BE(V*2+2);return X.profiles=Z,X.mki=X.data.slice(Y+2),X}serialize(){let G=Buffer.alloc(2);G.writeUInt16BE(this.profiles.length*2);let X=Buffer.concat([G,...this.profiles.map((Z)=>{let V=Buffer.alloc(2);return V.writeUInt16BE(Z),V}),this.mki]);this.data=X;let Y=o6.encode(this,W.spec).slice();return Buffer.from(Y)}static fromData(G){let X=Buffer.alloc(4);return X.writeUInt16BE(W.type),X.writeUInt16BE(G.length,2),W.deSerialize(Buffer.concat([X,G]))}get extension(){return{type:this.type,data:this.serialize().slice(4)}}},eN=class W{constructor(G){this.certificateList=G}msgType=11;messageSeq;static spec={certificateList:RG.types.array(rd,RG.types.uint24be,"bytes")};static createEmpty(){return new W(void 0)}static deSerialize(G){return new W(...Object.values(RG.decode(G,W.spec)))}serialize(){let G=RG.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},l2=class W{constructor(G=1){this.type=G}static spec={type:fY.types.uint8};static createEmpty(){return new W}static deSerialize(G){return new W(...Object.values(fY.decode(G,W.spec)))}serialize(){let G=fY.encode(this,W.spec).slice();return Buffer.from(G)}},d2=class W{constructor(G,X){this.algorithm=G,this.signature=X}msgType=15;messageSeq;static spec={algorithm:n6.types.uint16be,signature:n6.types.buffer(n6.types.uint16be)};static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){let X=n6.decode(G,W.spec);return new W(...Object.values(X))}serialize(){let G=n6.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},o2=class W{constructor(G){this.publicKey=G}msgType=16;messageSeq;static spec={publicKey:LG.types.buffer(LG.types.uint8)};static createEmpty(){return new W(void 0)}static deSerialize(G){let X=LG.decode(G,W.spec);return new W(...Object.values(X))}serialize(){let G=LG.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},$O=class W{constructor(G){this.verifyData=G}msgType=20;messageSeq;static createEmpty(){return new W(void 0)}static deSerialize(G){return new W(G)}serialize(){return this.verifyData}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},n2=class W{constructor(G,X,Y){this.certificateTypes=G,this.signatures=X,this.authorities=Y}msgType=13;messageSeq;static spec={certificateTypes:W7.types.array(ad,W7.types.uint8,"bytes"),signatures:W7.types.array(td,W7.types.uint16be,"bytes"),authorities:W7.types.array(sd,W7.types.uint16be,"bytes")};static createEmpty(){return new W(void 0,void 0,void 0)}static deSerialize(G){return new W(...Object.values(W7.decode(G,W.spec)))}serialize(){let G=W7.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},i2=class W{constructor(G,X,Y,Z,V,Q){this.serverVersion=G,this.random=X,this.sessionId=Y,this.cipherSuite=Z,this.compressionMethod=V,this.extensions=Q}msgType=2;messageSeq;static spec={serverVersion:WK,random:TG.spec,sessionId:G7.types.buffer(G7.types.uint8),cipherSuite:G7.types.uint16be,compressionMethod:G7.types.uint8};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){let X=G7.decode(G,W.spec),Y=new W(...Object.values(X));if(Y.serialize().length<G.length)return new W(...Object.values(G7.decode(G,{...W.spec,extensions:BO})));return Y}serialize(){let G=this.extensions===void 0?G7.encode(this,W.spec).slice():G7.encode(this,{...W.spec,extensions:BO}).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},r2=class W{msgType=14;messageSeq;static spec={};static createEmpty(){return new W}static deSerialize(G){return new W(...Object.values(zH.decode(G,W.spec)))}serialize(){let G=zH.encode(this,W.spec).slice();return Buffer.from(G)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}};function wo(W,G){return Buffer.from(a2.encode(W,G).slice())}var s2=class W{constructor(G,X,Y,Z,V,Q,J,U){this.ellipticCurveType=G,this.namedCurve=X,this.publicKeyLength=Y,this.publicKey=Z,this.hashAlgorithm=V,this.signatureAlgorithm=Q,this.signatureLength=J,this.signature=U}msgType=12;messageSeq;static spec={ellipticCurveType:t5.types.uint8,namedCurve:t5.types.uint16be,publicKeyLength:t5.types.uint8,publicKey:t5.types.buffer((G)=>G.current.publicKeyLength),hashAlgorithm:t5.types.uint8,signatureAlgorithm:t5.types.uint8,signatureLength:t5.types.uint16be,signature:t5.types.buffer((G)=>G.current.signatureLength)};static createEmpty(){return new W(void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}static deSerialize(G){let X=t5.decode(G,W.spec);return new W(...Object.values(X))}serialize(){return wo(this,W.spec)}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},IH=1,VJ=7;var jo=(W)=>{switch(W){case IH:case VJ:return 16}},Oo=(W)=>{switch(W){case IH:return 14;case VJ:return 12}},LH0=M1("werift-rtp : packages/rtp/src/codec/av1.ts");var Co={0:"Reserved",1:"OBU_SEQUENCE_HEADER",2:"OBU_TEMPORAL_DELIMITER",3:"OBU_FRAME_HEADER",4:"OBU_TILE_GROUP",5:"OBU_METADATA",6:"OBU_FRAME",7:"OBU_REDUNDANT_FRAME_HEADER",8:"OBU_TILE_LIST",15:"OBU_PADDING"},BH0=Object.entries(Co).reduce((W,[G,X])=>{return W[X]=Number(G),W},{});var EH0=Buffer.from([0,0,0,1]);function d$(W,G){let X=Buffer.alloc(G);return W.copy(X),X}function WH(W){return Number.parseInt(W.toString(),10)}function Do(W){let G=W[0];return G>127&&G<192}var FO=4,s6=class W{version=2;padding=!1;count=0;type=0;length=0;constructor(G={}){Object.assign(this,G)}static serialize(G,X,Y,Z){let Q=new W({type:G,count:X,version:2,length:Z}).serialize();return Buffer.concat([Q,Y])}serialize(){let G=new nN(8);if(G.set(2,0,this.version),this.padding)G.set(1,2,1);return G.set(5,3,this.count),L8([1,1,2],[G.value,this.type,this.length])}static deSerialize(G){let[X,Y,Z]=r9(G,[1,1,2]),V=y8(X,0,2),Q=y8(X,2,1)>0,J=y8(X,3,5);return new W({version:V,padding:Q,count:J,type:Y,length:Z})}},o$=class W{static count=4;count=W.count;senderSsrc;mediaSsrc;fir=[];constructor(G={}){Object.assign(this,G)}get length(){return Math.floor(this.serialize().length/4-1)}static deSerialize(G){let[X,Y]=r9(G,[4,4]),Z=[];for(let V=8;V<G.length;V+=8)Z.push({ssrc:G.readUInt32BE(V),sequenceNumber:G[V+4]});return new W({senderSsrc:X,mediaSsrc:Y,fir:Z})}serialize(){let G=L8([4,4],[this.senderSsrc,this.mediaSsrc]),X=Buffer.alloc(this.fir.length*8);return this.fir.forEach(({ssrc:Y,sequenceNumber:Z},V)=>{X.writeUInt32BE(Y,V*8),X[V*8+4]=Z}),Buffer.concat([G,X])}},GH=class W{static count=1;count=W.count;length=2;senderSsrc;mediaSsrc;constructor(G={}){Object.assign(this,G)}static deSerialize(G){let[X,Y]=r9(G,[4,4]);return new W({senderSsrc:X,mediaSsrc:Y})}serialize(){return L8([4,4],[this.senderSsrc,this.mediaSsrc])}},XH=class W{static count=15;length;count=W.count;senderSsrc;mediaSsrc;uniqueID="REMB";ssrcNum=0;brExp;brMantissa;bitrate;ssrcFeedbacks=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let[X,Y,Z,V,Q]=r9(G,[4,4,4,1,1]),J=y8(Q,0,6),U=(y8(Q,6,2)<<16)+(G[14]<<8)+G[15],q=J>46?18446744073709551615n:BigInt(U)<<BigInt(J),N=[];for(let A=16;A<G.length;A+=4){let H=G.slice(A).readUIntBE(0,4);N.push(H)}return new W({senderSsrc:X,mediaSsrc:Y,uniqueID:L8([4],[Z]).toString(),ssrcNum:V,brExp:J,brMantissa:U,ssrcFeedbacks:N,bitrate:q})}serialize(){let G=Buffer.concat([L8([4,4],[this.senderSsrc,this.mediaSsrc]),Buffer.from(this.uniqueID),L8([1],[this.ssrcNum])]),X=new nN(24);X.set(6,0,this.brExp).set(18,6,this.brMantissa);let Y=Buffer.concat(this.ssrcFeedbacks.map((V)=>L8([4],[V]))),Z=Buffer.concat([G,L8([3],[X.value]),Y]);return this.length=Z.length/4,Z}},Mo=M1("werift-rtp: /rtcp/psfb/index"),nQ=class W{static type=206;type=W.type;feedback;constructor(G={}){Object.assign(this,G)}serialize(){let G=this.feedback.serialize();return s6.serialize(this.type,this.feedback.count,G,this.feedback.length)}static deSerialize(G,X){let Y;switch(X.count){case o$.count:Y=o$.deSerialize(G);break;case GH.count:Y=GH.deSerialize(G);break;case XH.count:Y=XH.deSerialize(G);break;default:Mo("unknown psfb packet",X.count);break}return new W({feedback:Y})}},iQ=class W{ssrc=0;reports=[];static type=201;type=W.type;constructor(G={}){Object.assign(this,G)}serialize(){let G=L8([4],[this.ssrc]);return G=Buffer.concat([G,...this.reports.map((X)=>X.serialize())]),s6.serialize(W.type,this.reports.length,G,Math.floor(G.length/4))}static deSerialize(G,X){let[Y]=r9(G,[4]),Z=4,V=[];for(let Q=0;Q<X;Q++)V.push(GK.deSerialize(G.slice(Z,Z+24))),Z+=24;return new W({ssrc:Y,reports:V})}},GK=class W{ssrc;fractionLost;packetsLost;highestSequence;jitter;lsr;dlsr;constructor(G={}){Object.assign(this,G)}toJSON(){return{ssrc:this.ssrc,fractionLost:this.fractionLost,packetsLost:this.packetsLost,highestSequence:this.highestSequence,jitter:this.jitter,lsr:this.lsr,dlsr:this.dlsr}}serialize(){return L8([4,1,3,4,4,4,4],[this.ssrc,this.fractionLost,this.packetsLost,this.highestSequence,this.jitter,this.lsr,this.dlsr])}static deSerialize(G){let[X,Y,Z,V,Q,J,U]=r9(G,[4,1,3,4,4,4,4]);return new W({ssrc:X,fractionLost:Y,packetsLost:Z,highestSequence:V,jitter:Q,lsr:J,dlsr:U})}},t2=205,YH=class W{static count=1;count=W.count;header;senderSsrc;mediaSourceSsrc;lost=[];toJSON(){return{lost:this.lost,senderSsrc:this.senderSsrc,mediaSourceSsrc:this.mediaSourceSsrc}}constructor(G={}){if(Object.assign(this,G),!this.header)this.header=new s6({type:t2,count:this.count,version:2})}static deSerialize(G,X){let[Y,Z]=r9(G,[4,4]),V=[];for(let Q=8;Q<G.length;Q+=4){let[J,U]=r9(G.subarray(Q),[2,2]);V.push(J);for(let q=0;q<16;q++)if(U>>q&1)V.push(J+q+1)}return new W({header:X,senderSsrc:Y,mediaSourceSsrc:Z,lost:V})}serialize(){let G=L8([4,4],[this.senderSsrc,this.mediaSourceSsrc]),X=[];if(this.lost.length>0){let Z=this.lost[0],V=0;this.lost.slice(1).forEach((Q)=>{let J=Q-Z-1;if(J>=0&&J<16)V|=1<<J;else X.push(L8([2,2],[Z,V])),Z=Q,V=0}),X.push(L8([2,2],[Z,V]))}let Y=Buffer.concat([G,Buffer.concat(X)]);return this.header.length=Y.length/4,Buffer.concat([this.header.serialize(),Y])}},To=M1("werift/rtp/rtcp/rtpfb/twcc"),ZH=class W{static count=15;count=W.count;length=2;senderSsrc;mediaSourceSsrc;baseSequenceNumber;packetStatusCount;referenceTime;fbPktCount;packetChunks=[];recvDeltas=[];header;constructor(G={}){if(Object.assign(this,G),!this.header)this.header=new s6({type:205,count:this.count,version:2})}static deSerialize(G,X){let[Y,Z,V,Q,J,U]=r9(G,[4,4,2,2,3,1]),q=[],N=[],A=16;for(let I=0;I<Q;){let w=y8(G.slice(A,A+1)[0],0,1),C;switch(w){case 0:{let D=lQ.deSerialize(G.slice(A,A+2));C=D;let x=Math.min(Q-I,D.runLength);if(D.packetStatus===1||D.packetStatus===2)for(let h=0;h<x;h++)N.push(new yN({type:D.packetStatus}));I+=x}break;case 1:{let D=Po.deSerialize(G.slice(A,A+2));if(C=D,D.symbolSize===0)D.symbolList.forEach((x)=>{if(x===1)N.push(new yN({type:1}))});if(D.symbolSize===1)D.symbolList.forEach((x)=>{if(x===1||x===2)N.push(new yN({type:x}))});I+=D.symbolList.length}break}if(!C)throw Error();A+=2,q.push(C)}let H=A;return N.forEach((I)=>{if(I.type===1)I.deSerialize(G.slice(H,H+1)),H++;if(I.type===2)I.deSerialize(G.slice(H,H+2)),H+=2}),new W({senderSsrc:Y,mediaSourceSsrc:Z,baseSequenceNumber:V,packetStatusCount:Q,referenceTime:J,fbPktCount:U,recvDeltas:N,packetChunks:q,header:X})}serialize(){let G=L8([4,4,2,2,3,1],[this.senderSsrc,this.mediaSourceSsrc,this.baseSequenceNumber,this.packetStatusCount,this.referenceTime,this.fbPktCount]),X=Buffer.concat(this.packetChunks.map((V)=>V.serialize())),Y=Buffer.concat(this.recvDeltas.map((V)=>{try{return V.serialize()}catch(Q){To(Q?.message);return}}).filter((V)=>V)),Z=Buffer.concat([G,X,Y]);if(this.header.padding&&Z.length%4!==0){let V=4-Z.length%4,Q=Buffer.alloc(V);return Q[Q.length-1]=Q.length,this.header.length=Math.floor((Z.length+Q.length)/4),Buffer.concat([this.header.serialize(),Z,Q])}return this.header.length=Math.floor(Z.length/4),Buffer.concat([this.header.serialize(),Z])}get packetResults(){let G=this.baseSequenceNumber-1,X=this.packetChunks.filter((Q)=>Q instanceof lQ).flatMap((Q)=>Q.results(G)),Y=0,V=BigInt(this.referenceTime)*64n;for(let Q of X){let J=this.recvDeltas[Y];if(!Q.received||!J)continue;V+=BigInt(J.delta)/1000n,Q.delta=J.delta,Q.receivedAtMs=Number(V),Y++}return X}},lQ=class W{type;packetStatus;runLength;constructor(G={}){Object.assign(this,G),this.type=0}static deSerialize(G){let X=y8(G[0],1,2),Y=(y8(G[0],3,5)<<8)+G[1];return new W({type:0,packetStatus:X,runLength:Y})}serialize(){return new I2(16).set(0).set(this.packetStatus,2).set(this.runLength,13).buffer}results(G){let X=this.packetStatus===1||this.packetStatus===2,Y=[];for(let Z=0;Z<=this.runLength;++Z)Y.push(new Ro({sequenceNumber:++G,received:X}));return Y}},Po=class W{type;symbolSize;symbolList=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let Y=y8(G[0],1,1),Z=[];function V(Q,J){for(let U=0;U<Q;U++)J(U)}switch(Y){case 0:V(6,(Q)=>Z.push(y8(G[0],2+Q,1))),V(8,(Q)=>Z.push(y8(G[1],Q,1)));break;case 1:V(3,(Q)=>Z.push(y8(G[0],2+Q*2,2))),V(4,(Q)=>Z.push(y8(G[1],Q*2,2)));break;default:Y=(y8(G[0],2,6)<<8)+G[1]}return new W({type:1,symbolSize:Y,symbolList:Z})}serialize(){let G=Buffer.alloc(2),X=new I2(16).set(1).set(this.symbolSize),Y=this.symbolSize===0?1:2;return this.symbolList.forEach((Z)=>{X.set(Z,Y)}),G.writeUInt16BE(X.value),G}},yN=class W{type;delta;constructor(G={}){Object.assign(this,G)}static deSerialize(G){let X,Y;if(G.length===1)X=1,Y=250*G[0];else if(G.length===2)X=2,Y=250*G.readInt16BE();if(X===void 0||Y===void 0)throw Error();return new W({type:X,delta:Y})}deSerialize(G){let X=W.deSerialize(G);this.delta=X.delta}parsed=!1;parseDelta(){if(this.delta=Math.floor(this.delta/250),this.delta<0||this.delta>255){if(this.delta>32767)this.delta=32767;if(this.delta<-32768)this.delta=-32768;if(!this.type)this.type=2}else if(!this.type)this.type=1;this.parsed=!0}serialize(){if(!this.parsed)this.parseDelta();if(this.type===1){let G=Buffer.alloc(1);return G.writeUInt8(this.delta),G}else if(this.type===2){let G=Buffer.alloc(2);return G.writeInt16BE(this.delta),G}throw Error("errDeltaExceedLimit "+this.delta+" "+this.type)}};var Ro=class{sequenceNumber=0;delta=0;received=!1;receivedAtMs=0;constructor(W){Object.assign(this,W)}},Lo=M1("werift-rtp:packages/rtp/rtcp/rtpfb/index"),uY=class W{static type=t2;type=W.type;feedback;header;constructor(G={}){Object.assign(this,G)}serialize(){return this.feedback.serialize()}static deSerialize(G,X){let Y;switch(X.count){case YH.count:Y=YH.deSerialize(G,X);break;case ZH.count:Y=ZH.deSerialize(G,X);break;default:Lo("unknown rtpfb packet",X.count);break}return new W({feedback:Y,header:X})}},VH=class W{static type=202;type=W.type;chunks=[];constructor(G){Object.assign(this,G)}get length(){let G=0;return this.chunks.forEach((X)=>G+=X.length),G}serialize(){let G=Buffer.concat(this.chunks.map((X)=>X.serialize()));while(G.length%4)G=Buffer.concat([G,Buffer.from([0])]);return s6.serialize(this.type,this.chunks.length,G,G.length/4)}static deSerialize(G,X){let Y=[];for(let Z=0;Z<G.length;){let V=e2.deSerialize(G.slice(Z));Y.push(V),Z+=V.length}return new W({chunks:Y})}},e2=class W{source;items=[];constructor(G={}){Object.assign(this,G)}get length(){let G=4;return this.items.forEach((X)=>G+=X.length),G+=1,G+=n$(G),G}serialize(){let G=Buffer.concat([L8([4],[this.source]),Buffer.concat(this.items.map((Y)=>Y.serialize()))]);return Buffer.concat([G,Buffer.alloc(n$(G.length))])}static deSerialize(G){let X=G.readUInt32BE(),Y=[];for(let Z=4;Z<G.length;){if(G[Z]===0)break;let Q=WS.deSerialize(G.slice(Z));Y.push(Q),Z+=Q.length}return new W({source:X,items:Y})}},WS=class W{type;text;constructor(G){Object.assign(this,G)}get length(){return 2+Buffer.from(this.text).length}serialize(){let G=Buffer.from(this.text);return Buffer.concat([L8([1,1],[this.type,G.length]),G])}static deSerialize(G){let X=G[0],Y=G[1],Z=G.slice(2,2+Y).toString();return new W({type:X,text:Z})}};function n$(W){if(W%4==0)return 0;return 4-W%4}var hY=class W{ssrc=0;senderInfo;reports=[];static type=200;type=W.type;constructor(G){Object.assign(this,G)}toJSON(){return{ssrc:this.ssrc,senderInfo:this.senderInfo.toJSON(),reports:this.reports.map((G)=>G.toJSON())}}serialize(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.ssrc),G=Buffer.concat([G,this.senderInfo.serialize()]),G=Buffer.concat([G,...this.reports.map((X)=>X.serialize())]),s6.serialize(W.type,this.reports.length,G,Math.floor(G.length/4))}static deSerialize(G,X){let Y=G.readUInt32BE(),Z=GS.deSerialize(G.subarray(4,24)),V=24,Q=[];for(let U=0;U<X;U++)Q.push(GK.deSerialize(G.subarray(V,V+24))),V+=24;return new W({ssrc:Y,senderInfo:Z,reports:Q})}},GS=class W{ntpTimestamp;rtpTimestamp;packetCount;octetCount;constructor(G={}){Object.assign(this,G)}toJSON(){return{ntpTimestamp:Bo(this.ntpTimestamp),rtpTimestamp:this.rtpTimestamp}}serialize(){return L8([8,4,4,4],[this.ntpTimestamp,this.rtpTimestamp,this.packetCount,this.octetCount])}static deSerialize(G){let[X,Y,Z,V]=r9(G,[8,4,4,4]);return new W({ntpTimestamp:X,rtpTimestamp:Y,packetCount:Z,octetCount:V})}},Bo=(W)=>{let[G,X]=r9(L8([8],[W]),[4,4]);return Number(`${G}.${X}`)},Eo=M1("werift-rtp:packages/rtp/src/rtcp/rtcp.ts"),$o=class{static deSerialize(W){let G=0,X=[];while(G<W.length){let Y=s6.deSerialize(W.subarray(G,G+FO));G+=FO;let Z=W.subarray(G);if(G+=Y.length*4,Y.padding)Z=Z.subarray(0,Z.length-Z.subarray(-1)[0]);try{switch(Y.type){case hY.type:X.push(hY.deSerialize(Z,Y.count));break;case iQ.type:X.push(iQ.deSerialize(Z,Y.count));break;case VH.type:X.push(VH.deSerialize(Z,Y));break;case uY.type:X.push(uY.deSerialize(Z,Y));break;case nQ.type:X.push(nQ.deSerialize(Z,Y));break;default:break}}catch(V){Eo("deSerialize RTCP",V)}}return X}};function Fo(W){return W.length>=2&&W[1]>=192&&W[1]<=208}var D9={sdesMid:"urn:ietf:params:rtp-hdrext:sdes:mid",sdesRTPStreamID:"urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id",repairedRtpStreamId:"urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id",transportWideCC:"http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01",absSendTime:"http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time",dependencyDescriptor:"https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension",audioLevelIndication:"urn:ietf:params:rtp-hdrext:ssrc-audio-level",videoOrientation:"urn:3gpp:video-orientation"};function So(W,G){return W.map((X)=>{let Y=G[X.id];if(!Y)return{uri:"unknown",value:X.payload};switch(Y){case D9.sdesMid:case D9.sdesRTPStreamID:case D9.repairedRtpStreamId:return{uri:Y,value:go(X.payload)};case D9.transportWideCC:return{uri:Y,value:uo(X.payload)};case D9.absSendTime:return{uri:Y,value:ho(X.payload)};case D9.audioLevelIndication:return{uri:Y,value:bo(X.payload)};case D9.videoOrientation:return{uri:Y,value:mo(X.payload)};default:return{uri:Y,value:X.payload}}}).reduce((X,Y)=>{if(Y)X[Y.uri]=Y.value;return X},{})}function xo(W){return Buffer.from(W)}function ko(W){return Buffer.from(W)}function _o(W){return Buffer.from(W)}function yo(W){return L8([2],[W])}function vo(W){let G=Buffer.alloc(3),X=W>>14n&0x00ffffffn;return G.writeUIntBE(Number(X),0,3),G}function go(W){return W.toString()}function uo(W){return W.readUInt16BE()}function ho(W){return r9(W,[3])[0]}function bo(W){let G=new cQ(W);return{v:G.readBits(1)===1,level:G.readBits(7)}}function mo(W){let G=new cQ(W);return G.readBits(4),{c:G.readBits(1),f:G.readBits(1),r1:G.readBits(1),r0:G.readBits(1)}}var fo=M1("packages/rtp/src/rtp/red/packet.ts"),XS=class W{header;blocks=[];static deSerialize(G){let X=G instanceof ArrayBuffer?Buffer.from(G):G,Y=new W,Z=0;return[Y.header,Z]=i$.deSerialize(X),Y.header.fields.forEach(({blockLength:V,timestampOffset:Q,blockPT:J})=>{if(V&&Q){let U=X.subarray(Z,Z+V);Y.blocks.push({block:U,blockPT:J,timestampOffset:Q}),Z+=V}else{let U=X.subarray(Z);Y.blocks.push({block:U,blockPT:J})}}),Y}serialize(){this.header=new i$;for(let{timestampOffset:X,blockPT:Y,block:Z}of this.blocks)if(X)this.header.fields.push({fBit:1,blockPT:Y,blockLength:Z.length,timestampOffset:X});else this.header.fields.push({fBit:0,blockPT:Y});let G=this.header.serialize();for(let{block:X}of this.blocks)G=Buffer.concat([G,X]);return G}},i$=class W{fields=[];static deSerialize(G){let X=0,Y=new W;for(;;){let Z={};Y.fields.push(Z);let V=new cQ(G.subarray(X));if(Z.fBit=V.readBits(1),Z.blockPT=V.readBits(7),X++,Z.fBit===0)break;Z.timestampOffset=V.readBits(14),Z.blockLength=V.readBits(10),X+=3}return[Y,X]}serialize(){let G=Buffer.alloc(0);for(let X of this.fields)try{if(X.timestampOffset&&X.blockLength){let Y=new cQ(Buffer.alloc(4)).writeBits(1,X.fBit).writeBits(7,X.blockPT).writeBits(14,X.timestampOffset).writeBits(10,X.blockLength);G=Buffer.concat([G,Y.uint8Array])}else{let Y=new cQ(Buffer.alloc(1)).writeBits(1,0).writeBits(7,X.blockPT);G=Buffer.concat([G,Y.uint8Array])}}catch(Y){fo(Y?.message)}return G}},co=class{constructor(W=1){this.distance=W}cache=[];cacheSize=10;push(W){if(this.cache.push(W),this.cache.length>this.cacheSize)this.cache.shift()}build(){let W=new XS,G=this.cache.slice(-(this.distance+1)),X=G.pop();if(!X)return W;return G.forEach((Y)=>{let Z=yY(X.timestamp,-Y.timestamp);if(Z>po)return;W.blocks.push({block:Y.block,blockPT:Y.blockPT,timestampOffset:Z})}),W.blocks.push({block:X.block,blockPT:X.blockPT}),W}},po=16383,lo=class{size=150;sequenceNumbers=[];push(W,G){let X=[];return W.blocks.forEach(({blockPT:Z,timestampOffset:V,block:Q},J)=>{let U=M9(G.header.sequenceNumber,-(W.blocks.length-(J+1)));if(V)X.push(new a6(new r6({timestamp:yY(G.header.timestamp,-V),payloadType:Z,ssrc:G.header.ssrc,sequenceNumber:U,marker:!0}),Q));else X.push(new a6(new r6({timestamp:G.header.timestamp,payloadType:Z,ssrc:G.header.ssrc,sequenceNumber:U,marker:!0}),Q))}),X.filter((Z)=>{if(this.sequenceNumbers.includes(Z.header.sequenceNumber))return!1;else{if(this.sequenceNumbers.length>this.size)this.sequenceNumbers.shift();return this.sequenceNumbers.push(Z.header.sequenceNumber),!0}})}},OG={OneByte:48862,TwoByte:4096},r$=2,a$=4,s$=8,t$=12,e$=4,r6=class W{version=2;padding=!1;paddingSize=0;extension=!1;marker=!1;payloadOffset=0;payloadType=0;sequenceNumber=0;timestamp=0;ssrc=0;csrcLength=0;csrc=[];extensionProfile=OG.OneByte;extensionLength;extensions=[];constructor(G={}){Object.assign(this,G)}static deSerialize(G){let X=new W,Y=0,Z=G[Y++];X.version=y8(Z,0,2),X.padding=y8(Z,2)>0,X.extension=y8(Z,3)>0,X.csrcLength=y8(Z,4,4),X.csrc=[...Array(X.csrcLength)].map(()=>{let Q=G.readUInt32BE(Y);return Y+=4,Q}),Y+=t$-1;let V=G[1];X.marker=y8(V,0)>0,X.payloadType=y8(V,1,7),X.sequenceNumber=G.readUInt16BE(r$),X.timestamp=G.readUInt32BE(a$),X.ssrc=G.readUInt32BE(s$);for(let Q=0;Q<X.csrc.length;Q++){let J=t$+Q*e$;X.csrc[Q]=G.subarray(J).readUInt32BE()}if(X.extension){X.extensionProfile=G.subarray(Y).readUInt16BE(),Y+=2;let Q=G.subarray(Y).readUInt16BE()*4;switch(X.extensionLength=Q,Y+=2,X.extensionProfile){case OG.OneByte:{let J=Y+Q;while(Y<J){if(G[Y]===0){Y++;continue}let U=G[Y]>>4,q=(G[Y]&(G[Y]^240))+1;if(Y++,U===15)break;let N={id:U,payload:G.subarray(Y,Y+q)};X.extensions=[...X.extensions,N],Y+=q}}break;case OG.TwoByte:{let J=Y+Q;while(Y<J){if(G[Y]===0){Y++;continue}let U=G[Y];Y++;let q=G[Y];Y++;let N={id:U,payload:G.subarray(Y,Y+q)};X.extensions=[...X.extensions,N],Y+=q}}break;default:{let J={id:0,payload:G.subarray(Y,Y+Q)};X.extensions=[...X.extensions,J],Y+=X.extensions[0].payload.length}break}}if(X.payloadOffset=Y,X.padding)X.paddingSize=G[G.length-1];return X}get serializeSize(){let{csrc:G,extensionProfile:X,extensions:Y}=this,Z=12+G.length*e$;if(Y.length>0||this.extension===!0){let V=4;switch(X){case OG.OneByte:for(let Q of Y)V+=1+Q.payload.length;break;case OG.TwoByte:for(let Q of Y)V+=2+Q.payload.length;break;default:V+=Y[0].payload.length}Z+=Math.floor((V+3)/4)*4}return Z}serialize(G){let X=Buffer.alloc(G),Y=0,Z=new nN(8);if(Z.set(2,0,this.version),this.padding)Z.set(1,2,1);if(this.extensions.length>0)this.extension=!0;if(this.extension)Z.set(1,3,1);Z.set(4,4,this.csrc.length),X.writeUInt8(Z.value,Y++);let V=new nN(8);if(this.marker)V.set(1,0,1);V.set(7,1,this.payloadType),X.writeUInt8(V.value,Y++),X.writeUInt16BE(this.sequenceNumber,r$),Y+=2,X.writeUInt32BE(this.timestamp,a$),Y+=4,X.writeUInt32BE(this.ssrc,s$),Y+=4;for(let Q of this.csrc)X.writeUInt32BE(Q,Y),Y+=4;if(this.extension){let Q=Y;X.writeUInt16BE(this.extensionProfile,Y),Y+=4;let J=Y;switch(this.extensionProfile){case OG.OneByte:for(let N of this.extensions)X.writeUInt8(N.id<<4|N.payload.length-1,Y++),N.payload.copy(X,Y),Y+=N.payload.length;break;case OG.TwoByte:for(let N of this.extensions)X.writeUInt8(N.id,Y++),X.writeUInt8(N.payload.length,Y++),N.payload.copy(X,Y),Y+=N.payload.length;break;default:{let N=this.extensions[0].payload.length;if(N%4!=0)throw Error();this.extensions[0].payload.copy(X,Y),Y+=N}}let U=Y-J,q=Math.trunc((U+3)/4)*4;X.writeUInt16BE(Math.trunc(q/4),Q+2);for(let N=0;N<q-U;N++)X.writeUInt8(0,Y),Y++}return this.payloadOffset=Y,X}},a6=class W{constructor(G,X){this.header=G,this.payload=X}get serializeSize(){return this.header.serializeSize+this.payload.length}clone(){return new W(new r6({...this.header}),this.payload)}serialize(){let G=this.header.serialize(this.header.serializeSize+this.payload.length),{payloadOffset:X}=this.header;if(this.payload.copy(G,X),this.header.padding){let Y=Buffer.alloc(this.header.paddingSize);Y.writeUInt8(this.header.paddingSize,this.header.paddingSize-1),G=Buffer.concat([G,Y])}return G}static deSerialize(G){let X=r6.deSerialize(G);return new W(X,G.subarray(X.payloadOffset,G.length-X.paddingSize))}clear(){this.payload=null}};function oo(W,G,X){return new a6(new r6({payloadType:G,marker:W.header.marker,sequenceNumber:r1.Unpack("!H",W.payload.subarray(0,2))[0],timestamp:W.header.timestamp,ssrc:X}),W.payload.subarray(2))}function no(W,G,X,Y){return new a6(new r6({payloadType:G,marker:W.header.marker,sequenceNumber:X,timestamp:W.header.timestamp,ssrc:Y,csrc:W.header.csrc,extensions:W.header.extensions}),Buffer.concat([Buffer.from(r1.Pack("!H",[W.header.sequenceNumber])),W.payload]))}var YS=class{constructor(W,G,X,Y){this.srtpSessionKey=W,this.srtpSessionSalt=G,this.srtcpSessionKey=X,this.srtcpSessionSalt=Y}encryptRtp(W,G,X){return Buffer.from([])}decryptRtp(W,G,X){return[]}encryptRTCP(W,G){return Buffer.from([])}decryptRTCP(W){return[]}},bY=class extends Error{constructor(W){super(W);this.name="SrtpAuthenticationError"}},YF=12,ro=8;function XK(W,G,X="Failed to authenticate SRTP packet"){let Y=W.length-G;rQ(W.length>=YF+G,X);let Z=VS(()=>r6.deSerialize(W.subarray(0,Y)),X);return Z.paddingSize=0,rQ(Z.payloadOffset>=YF&&Z.payloadOffset<=Y,X),Z}function ZS(W,G,X,Y="Failed to authenticate SRTCP packet"){return rQ(W.length>=ro+G+X,Y),VS(()=>s6.deSerialize(W.subarray(0,FO)),Y)}function rQ(W,G){if(!W)throw new bY(G)}function VS(W,G){try{return W()}catch{throw new bY(G)}}function QS(W,G,X="Failed to authenticate SRTP packet"){if(!W.padding)return W.paddingSize=0,W;rQ(G.length>W.payloadOffset,X);let Y=G[G.length-1];return rQ(Y>0&&Y<=G.length-W.payloadOffset,X),W.paddingSize=Y,W}var ao=class extends YS{constructor(W,G,X,Y,Z,V){super(W,G,X,Y);this.srtpSessionAuthTag=Z,this.srtcpSessionAuthTag=V}authTagLength=10;encryptRtp(W,G,X){let Y=W.serialize(W.serializeSize),Z=this.generateCounter(W.sequenceNumber,X,W.ssrc,this.srtpSessionSalt),Q=WF("aes-128-ctr",this.srtpSessionKey,Z).update(G),J=this.generateSrtpAuthTag(X,Y,Q);return Buffer.concat([Y,Q,J])}decryptRtp(W,G,X=XK(W,this.authTagLength)){let Y=W.length-this.authTagLength,Z=W.subarray(0,Y),V=W.subarray(Y),Q=this.generateSrtpAuthTag(G,Z.subarray(0,X.payloadOffset),Z.subarray(X.payloadOffset));VF(V,Q,"Failed to authenticate SRTP packet");let J=this.generateCounter(X.sequenceNumber,G,X.ssrc,this.srtpSessionSalt),U=GF("aes-128-ctr",this.srtpSessionKey,J),q=Z.subarray(X.payloadOffset),N=U.update(q),A=Buffer.concat([Z.subarray(0,X.payloadOffset),N]);return[A,QS(X,A,"Failed to authenticate SRTP packet")]}encryptRTCP(W,G){let X=Buffer.from(W),Y=X.readUInt32BE(4),Z=this.generateCounter(G&65535,G>>16,Y,this.srtcpSessionSalt);WF("aes-128-ctr",this.srtcpSessionKey,Z).update(X.slice(8)).copy(X,8),X=Buffer.concat([X,Buffer.alloc(4)]),X.writeUInt32BE(G,X.length-4),X[X.length-4]|=128;let J=this.generateSrtcpAuthTag(X);return X=Buffer.concat([X,J]),X}decryptRTCP(W){let G=ZS(W,this.authTagLength,ZF),X=W.length-(this.authTagLength+ZF),Y=W.subarray(0,W.length-this.authTagLength),Z=W.subarray(W.length-this.authTagLength),V=this.generateSrtcpAuthTag(Y);VF(Z,V,"Failed to authenticate SRTCP packet");let Q=Buffer.from(W).slice(0,X);if(W[X]>>>7===0)return[Q,G];let U=W.readUInt32BE(X);U&=2147483647;let q=W.readUInt32BE(4),N=this.generateCounter(U&65535,U>>16,q,this.srtcpSessionSalt);return GF("aes-128-ctr",this.srtcpSessionKey,N).update(Q.subarray(8)).copy(Q,8),[Q,G]}generateSrtcpAuthTag(W){return XF("sha1",this.srtcpSessionAuthTag).update(W).digest().slice(0,10)}generateCounter(W,G,X,Y){let Z=Buffer.alloc(16);Z.writeUInt32BE(X,4),Z.writeUInt32BE(G,8),Z.writeUInt32BE(Number(BigInt(W)<<16n),12);for(let V=0;V<Y.length;V++)Z[V]^=Y[V];return Z}generateSrtpAuthTag(W,...G){let X=XF("sha1",this.srtpSessionAuthTag),Y=Buffer.alloc(4);Y.writeUInt32BE(W);for(let Z of G)X.update(Z);return X.update(Y).digest().subarray(0,10)}},ZF=4;function VF(W,G,X){if(W.length!==G.length||!io(W,G))throw new bY(X)}var so=class extends YS{aeadAuthTagLen=16;rtpIvWriter=_N([2,4,4,2],!0);rtcpIvWriter=_N([2,4,2,4],!0);aadWriter=_N([4],!0);constructor(W,G,X,Y){super(W,G,X,Y)}encryptRtp(W,G,X){let Y=W.serialize(W.serializeSize),Z=this.rtpInitializationVector(W,X),V=QF("aes-128-gcm",this.srtpSessionKey,Z);V.setAAD(Y);let Q=V.update(G);V.final();let J=V.getAuthTag();return Buffer.concat([Y,Q,J])}decryptRtp(W,G,X=XK(W,this.aeadAuthTagLen)){let Y=W.subarray(0,X.payloadOffset),Z=W.length-this.aeadAuthTagLen,V=W.subarray(Z),Q=Buffer.from([]);Q=d$(Q,W.length-this.aeadAuthTagLen),Y.copy(Q);let J=this.rtpInitializationVector(X,G),U=W.slice(X.payloadOffset,Z),q=JF("aes-128-gcm",this.srtpSessionKey,J);q.setAAD(Y),q.setAuthTag(V);let N=q.update(U);return qF(q,"SRTP"),N.copy(Q,X.payloadOffset),[Q,QS(X,Q,"Failed to authenticate SRTP packet")]}encryptRTCP(W,G){let X=W.readUInt32BE(4),Y=W.length+this.aeadAuthTagLen,Z=Buffer.from([]);Z=d$(Z,Y+QO),W.slice(0,8).copy(Z);let V=this.rtcpInitializationVector(X,G),Q=this.rtcpAdditionalAuthenticatedData(W,G),J=QF("aes-128-gcm",this.srtcpSessionKey,V);J.setAAD(Q);let U=J.update(W.slice(8));return J.final(),U.copy(Z,8),J.getAuthTag().copy(Z,8+U.length),Q.slice(8,12).copy(Z,Y),Z}decryptRTCP(W){let G=ZS(W,this.aeadAuthTagLen,QO),X=W.length-QO,Y=X-this.aeadAuthTagLen,Z=W.readUInt32BE(4),V=W.readUInt32BE(X),Q=V>>>31===1,J=V&~(UF<<24),U=this.rtcpInitializationVector(Z,J),q=Q?Buffer.concat([W.subarray(0,8),W.subarray(X)]):Buffer.concat([W.subarray(0,Y),W.subarray(X)]),N=Q?W.slice(8,Y):Buffer.alloc(0),A=Q?Buffer.alloc(Y):Buffer.from(W.subarray(0,Y));if(Q)W.slice(0,8).copy(A);let H=JF("aes-128-gcm",this.srtcpSessionKey,U);H.setAAD(q),H.setAuthTag(W.subarray(Y,X));let I=H.update(N);if(qF(H,"SRTCP"),Q)I.copy(A,8);return[A,G]}rtpInitializationVector(W,G){let X=this.rtpIvWriter([0,W.ssrc,G,W.sequenceNumber]);for(let Y=0;Y<X.length;Y++)X[Y]^=this.srtpSessionSalt[Y];return X}rtcpInitializationVector(W,G){let X=this.rtcpIvWriter([0,W,0,G]);for(let Y=0;Y<X.length;Y++)X[Y]^=this.srtcpSessionSalt[Y];return X}rtcpAdditionalAuthenticatedData(W,G){let X=Buffer.concat([W.subarray(0,8),this.aadWriter([G])]);return X[8]|=UF,X}},QO=4,UF=128;function qF(W,G){try{W.final()}catch{throw new bY(`Failed to authenticate ${G} packet`)}}var JS=class{constructor(W,G,X){this.masterKey=W,this.masterSalt=G,this.profile=X;{let Y=14-G.length;if(Y>0)this.masterSalt=Buffer.concat([G,Buffer.alloc(Y)])}switch(this.srtpSessionKey=this.generateSessionKey(0),this.srtpSessionSalt=this.generateSessionSalt(2),this.srtpSessionAuthTag=this.generateSessionAuthTag(1),this.srtpSessionAuth=VO("sha1",this.srtpSessionAuthTag),this.srtcpSessionKey=this.generateSessionKey(3),this.srtcpSessionSalt=this.generateSessionSalt(5),this.srtcpSessionAuthTag=this.generateSessionAuthTag(4),this.srtcpSessionAuth=VO("sha1",this.srtcpSessionAuthTag),X){case IH:this.cipher=new ao(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt,this.srtpSessionAuthTag,this.srtcpSessionAuthTag);break;case VJ:this.cipher=new so(this.srtpSessionKey,this.srtpSessionSalt,this.srtcpSessionKey,this.srtcpSessionSalt);break}}srtpSSRCStates={};srtpSessionKey;srtpSessionSalt;srtpSessionAuthTag;srtpSessionAuth;srtcpSSRCStates={};srtcpSessionKey;srtcpSessionSalt;srtcpSessionAuthTag;srtcpSessionAuth;cipher;generateSessionKey(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let Z=X.length-1,V=G.length-1;Z>=0;Z--,V--)G[V]=G[V]^X[Z];G=Buffer.concat([G,Buffer.from([0,0])]);let Y=new vN.default.AES(this.masterKey);return Buffer.from(Y.encrypt(G))}generateSessionSalt(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let Z=X.length-1,V=G.length-1;Z>=0;Z--,V--)G[V]=G[V]^X[Z];G=Buffer.concat([G,Buffer.from([0,0])]);let Y=new vN.default.AES(this.masterKey);return G=Buffer.from(Y.encrypt(G)),G.subarray(0,14)}generateSessionAuthTag(W){let G=Buffer.from(this.masterSalt),X=Buffer.from([W,0,0,0,0,0,0]);for(let Q=X.length-1,J=G.length-1;Q>=0;Q--,J--)G[J]=G[J]^X[Q];let Y=Buffer.concat([G,Buffer.from([0,0])]),Z=Buffer.concat([G,Buffer.from([0,1])]),V=new vN.default.AES(this.masterKey);return Y=Buffer.from(V.encrypt(Y)),Z=Buffer.from(V.encrypt(Z)),Buffer.concat([Y,Z.subarray(0,4)])}getSrtpSsrcState(W){let G=this.srtpSSRCStates[W];if(G)return G;return G={ssrc:W,rolloverCounter:0,lastSequenceNumber:0},this.srtpSSRCStates[W]=G,G}getSrtcpSsrcState(W){let G=this.srtcpSSRCStates[W];if(G)return G;return G={srtcpIndex:0,ssrc:W},this.srtcpSSRCStates[W]=G,G}updateRolloverCount(W,G){if(!G.rolloverHasProcessed)G.rolloverHasProcessed=!0;else if(W===0){if(G.lastSequenceNumber>_Q)G.rolloverCounter++}else if(G.lastSequenceNumber<_Q&&W>NF-_Q){if(G.rolloverCounter>0)G.rolloverCounter--}else if(W<_Q&&G.lastSequenceNumber>NF-_Q)G.rolloverCounter++;G.lastSequenceNumber=W}generateSrtpAuthTag(W,G){this.srtpSessionAuth=VO("sha1",this.srtpSessionAuthTag);let X=Buffer.alloc(4);return X.writeUInt32BE(G),this.srtpSessionAuth.update(W).update(X).digest().slice(0,10)}index(W){let G=this.srtcpSSRCStates[W];if(!G)return 0;return G.srtcpIndex}setIndex(W,G){let X=this.getSrtcpSsrcState(W);X.srtcpIndex=G%2147483647}},_Q=100,NF=65535,to=class extends JS{constructor(W,G,X){super(W,G,X)}encryptRTCP(W){let G=W.readUInt32BE(4),X=this.getSrtcpSsrcState(G);if(X.srtcpIndex++,X.srtcpIndex>>eo)X.srtcpIndex=0;return this.cipher.encryptRTCP(W,X.srtcpIndex)}decryptRTCP(W){return this.cipher.decryptRTCP(W)}},eo=2147483647,US=class{constructor(W){this.ContextCls=W}localContext;remoteContext;onData;start(W,G,X,Y,Z){this.localContext=new this.ContextCls(W,G,Z),this.remoteContext=new this.ContextCls(X,Y,Z)}},Wn=class extends US{constructor(W){super(to);this.config=W,this.start(W.keys.localMasterKey,W.keys.localMasterSalt,W.keys.remoteMasterKey,W.keys.remoteMasterSalt,W.profile)}decrypt=(W)=>{let[G]=this.remoteContext.decryptRTCP(W);return G};encrypt(W){return this.localContext.encryptRTCP(W)}},Gn=class extends JS{constructor(W,G,X){super(W,G,X)}encryptRtp(W,G){let X=this.getSrtpSsrcState(G.ssrc);return this.updateRolloverCount(G.sequenceNumber,X),this.cipher.encryptRtp(G,W,X.rolloverCounter)}decryptRtp(W){let G=XK(W,this.rtpAuthTagLength),X=this.srtpSSRCStates[G.ssrc],Y=X?{...X}:{ssrc:G.ssrc,rolloverCounter:0,lastSequenceNumber:0};this.updateRolloverCount(G.sequenceNumber,Y);let Z=this.cipher.decryptRtp(W,Y.rolloverCounter,G);if(X)Object.assign(X,Y);else this.srtpSSRCStates[G.ssrc]=Y;return Z}get rtpAuthTagLength(){return this.profile===VJ?16:10}},Xn=class extends US{constructor(W){super(Gn);this.config=W,this.start(W.keys.localMasterKey,W.keys.localMasterSalt,W.keys.remoteMasterKey,W.keys.remoteMasterSalt,W.profile)}decrypt=(W)=>{let[G]=this.remoteContext.decryptRtp(W);return G};encrypt(W,G){return this.localContext.encryptRtp(W,G)}},kH0=class{constructor(W){this.props=W}sequenceNumber=z2();timestamp=DO();create(W){this.sequenceNumber=M9(this.sequenceNumber,1);let G=this.props.between*this.props.clockRate/1000;this.timestamp=yY(this.timestamp,G);let X=new r6({sequenceNumber:this.sequenceNumber,timestamp:Number(this.timestamp),payloadType:96,extension:!0,marker:!1,padding:!1});return new a6(X,W)}},v9=M1("werift-dtls : packages/dtls/src/flight/client/flight5.ts : log"),Yn=class extends GJ{constructor(W,G,X,Y){super(W,G,5,7);this.cipher=X,this.srtp=Y}handleHandshake(W){this.dtls.bufferHandshakeCache([W],!1,4);let G=(()=>{switch(W.msg_type){case 2:return i2.deSerialize(W.fragment);case 11:return eN.deSerialize(W.fragment);case 12:return s2.deSerialize(W.fragment);case 13:return n2.deSerialize(W.fragment);case 14:return r2.deSerialize(W.fragment)}})();if(G)cY[G.msgType]({dtls:this.dtls,cipher:this.cipher,srtp:this.srtp})(G)}async exec(){if(this.dtls.flight===5){v9(this.dtls.sessionId,"flight5 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=5;let W=this.dtls.requestedCertificateTypes.length>0;v9(this.dtls.sessionId,"send flight5",W);let G=[W&&this.sendCertificate(),this.sendClientKeyExchange(),W&&this.sendCertificateVerify(),this.sendChangeCipherSpec(),this.sendFinished()].filter((X)=>X);this.dtls.lastMessage=G,await this.transmit(G)}sendCertificate(){let W=new eN([Buffer.from(this.cipher.localCert)]),G=this.createPacket([W]);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendClientKeyExchange(){if(!this.cipher.localKeyPair)throw Error();let W=new o2(this.cipher.localKeyPair.publicKey),G=this.createPacket([W]),X=Buffer.concat(G.map((J)=>J.serialize())),Y=this.cipher.localKeyPair,Z=this.cipher.remoteKeyPair;if(!Z.publicKey)throw Error("not exist");let V=S2(Z.publicKey,Y.privateKey,Y.curve);v9(this.dtls.sessionId,"extendedMasterSecret",this.dtls.options.extendedMasterSecret,this.dtls.remoteExtendedMasterSecret);let Q=Buffer.concat(this.dtls.sortedHandshakeCache.map((J)=>J.serialize()));return this.cipher.masterSecret=this.dtls.options.extendedMasterSecret&&this.dtls.remoteExtendedMasterSecret?k2(V,Q):x2(V,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize()),this.cipher.cipher=f2(this.cipher.cipherSuite),this.cipher.cipher.init(this.cipher.masterSecret,this.cipher.remoteRandom.serialize(),this.cipher.localRandom.serialize()),v9(this.dtls.sessionId,"cipher",this.cipher.cipher.summary),X}sendCertificateVerify(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((Q)=>Q.serialize())),G=this.cipher.signatureData(W,"sha256"),X=(()=>{switch(this.cipher.signatureHashAlgorithm?.signature){case c4.ecdsa_3:return h$.ecdsa_secp256r1_sha256;case c4.rsa_1:return h$.rsa_pkcs1_sha256}})();if(!X)throw Error();v9(this.dtls.sessionId,"signatureScheme",this.cipher.signatureHashAlgorithm?.signature,X);let Y=new d2(X,G),Z=this.createPacket([Y]);return Buffer.concat(Z.map((Q)=>Q.serialize()))}sendChangeCipherSpec(){let W=l2.createEmpty().serialize(),G=WJ(this.dtls)([{type:20,fragment:W}],++this.dtls.recordSequenceNumber);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendFinished(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((V)=>V.serialize())),G=this.cipher.verifyData(W),X=new $O(G);this.dtls.epoch=1;let[Y]=this.createPacket([X]);this.dtls.recordSequenceNumber=0;let Z=this.cipher.encryptPacket(Y).serialize();return v9(this.dtls.sessionId,"finished",this.cipher.cipher.summary),Z}},cY={};cY[2]=({cipher:W,srtp:G,dtls:X})=>(Y)=>{if(v9(X.sessionId,"serverHello",Y.cipherSuite),W.remoteRandom=TG.from(Y.random),W.cipherSuite=Y.cipherSuite,v9(X.sessionId,"selected cipherSuite",W.cipherSuite),Y.extensions)Y.extensions.forEach((Z)=>{switch(Z.type){case gY.type:{let V=gY.fromData(Z.data),Q=sN.findMatchingSRTPProfile(V.profiles,X.options.srtpProfiles||[]);if(v9(X.sessionId,"selected srtp profile",Q),Q==null)return;G.srtpProfile=Q}break;case HH.type:X.remoteExtendedMasterSecret=!0;break;case AH.type:v9(X.sessionId,"RenegotiationIndication");break}})};cY[11]=({cipher:W,dtls:G})=>(X)=>{v9(G.sessionId,"handshake certificate",X),W.remoteCertificate=X.certificateList[0]};cY[12]=({cipher:W,dtls:G})=>(X)=>{if(!W.localRandom||!W.remoteRandom)throw Error();v9(G.sessionId,"ServerKeyExchange",X),v9(G.sessionId,"selected curve",X.namedCurve),W.remoteKeyPair={curve:X.namedCurve,publicKey:X.publicKey},W.localKeyPair=p2(X.namedCurve)};cY[13]=({dtls:W})=>(G)=>{v9(W.sessionId,"certificate_request",G),W.requestedCertificateTypes=G.certificateTypes,W.requestedSignatureAlgorithms=G.signatures};cY[14]=({dtls:W})=>(G)=>{v9(W.sessionId,"server_hello_done",G)};var qS=class W{constructor(G,X){this.serverVersion=G,this.cookie=X}msgType=3;messageSeq;static spec={serverVersion:WK,cookie:BG.types.buffer(BG.types.uint8)};static createEmpty(){return new W(void 0,void 0)}static deSerialize(G){return new W(...Object.values(BG.decode(G,W.spec)))}serialize(){let G=BG.encode(this,W.spec).slice();return Buffer.from(G)}get version(){return{major:255-this.serverVersion.major,minor:255-this.serverVersion.minor}}toFragment(){let G=this.serialize();return new P5(this.msgType,G.length,this.messageSeq,0,G.length,G)}},Vn=M1("werift-dtls : packages/dtls/src/context/dtls.ts : log"),HF=class{constructor(W,G){this.options=W,this.sessionType=G}version={major:254,minor:253};lastFlight=[];lastMessage=[];recordSequenceNumber=0;sequenceNumber=0;epoch=0;flight=0;handshakeCache={};cookie;requestedCertificateTypes=[];requestedSignatureAlgorithms=[];remoteExtendedMasterSecret=!1;get sessionId(){return this.cookie?this.cookie.toString("hex").slice(0,10):""}get sortedHandshakeCache(){return Object.entries(this.handshakeCache).sort(([W],[G])=>Number(W)-Number(G)).flatMap(([,{data:W}])=>W.sort((G,X)=>G.message_seq-X.message_seq))}checkHandshakesExist=(W)=>!W.find((G)=>this.sortedHandshakeCache.find((X)=>X.msg_type===G)==null);bufferHandshakeCache(W,G,X){if(!this.handshakeCache[X])this.handshakeCache[X]={data:[],isLocal:G,flight:X};let Y=W.filter((Z)=>{let V=this.handshakeCache[X].data.find((Q)=>Q.msg_type===Z.msg_type);if(V)return Vn(this.sessionId,"exist",V.summary,G,X),!1;return!0});this.handshakeCache[X].data=[...this.handshakeCache[X].data,...Y]}},Qn=class{constructor(W){this.socket=W}send=(W)=>{return this.socket.send(W)}},SO=class W{static type=10;static spec={type:m7.types.uint16be,data:m7.types.array(m7.types.uint16be,m7.types.uint16be,"bytes")};type=W.type;data=[];constructor(G={}){Object.assign(this,G)}static createEmpty(){return new W}static fromData(G){return new W({type:W.type,data:m7.decode(G,W.spec.data)})}static deSerialize(G){return new W(m7.decode(G,W.spec))}serialize(){return Buffer.from(m7.encode(this,W.spec).slice())}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},xO=class W{static type=13;static spec={type:h7.types.uint16be,data:h7.types.array({hash:h7.types.uint8,signature:h7.types.uint8},h7.types.uint16be,"bytes")};type=W.type;data=[];constructor(G={}){Object.assign(this,G)}static createEmpty(){return new W}static deSerialize(G){return new W(h7.decode(G,W.spec))}serialize(){let G=h7.encode(this,W.spec).slice();return Buffer.from(G)}static fromData(G){let X=Buffer.alloc(2);return X.writeUInt16BE(W.type),W.deSerialize(Buffer.concat([X,G]))}get extension(){return{type:this.type,data:this.serialize().slice(2)}}},AF=class W{constructor(G,X){this.level=G,this.description=X}static spec={level:EG.types.uint8,description:EG.types.uint8};static deSerialize(G){return new W(...Object.values(EG.decode(G,W.spec)))}serialize(){let G=EG.encode(this,W.spec).slice();return Buffer.from(G)}},zF=M1("werift-dtls : packages/dtls/record/receive.ts : log"),JO=M1("werift-dtls : packages/dtls/record/receive.ts : err"),Jn=(W)=>{let G=0,X=[];while(W.length>G){let Y=W.readUInt16BE(G+11);if(W.length<G+(12+Y))break;let Z=b2.deSerialize(W.subarray(G));X.push(Z),G+=13+Y}return X},Un=(W,G)=>(X)=>{switch(X.recordLayerHeader.contentType){case 20:return zF(W.sessionId,"change cipher spec"),[{type:20,data:void 0}];case 22:{let Z=X.fragment;try{if(X.recordLayerHeader.epoch>0)zF(W.sessionId,"decrypt handshake"),Z=G.decryptPacket(X)}catch(V){throw JO(W.sessionId,"decrypt failed",V),V}try{let V=0,Q=[];while(Z.length>V){let J=P5.deSerialize(Z.subarray(V));Q.push({type:22,data:J}),V+=J.fragment_length+12}return Q}catch(V){throw JO(W.sessionId,"decSerialize failed",V,Z),V}}case 23:return[{type:23,data:G.decryptPacket(X)}];case 21:{let Z=AF.deSerialize(X.fragment);if(EO[Z.description]==null){let V=G.decryptPacket(X);Z=AF.deSerialize(V)}if(JO(W.sessionId,"ContentType.alert",Z,EO[Z.description],"flight",W.flight,"lastFlight",W.lastFlight),Z.level>1)throw Error("alert fatal error");return[{type:21,data:void 0}]}default:return[{type:21,data:void 0}]}},IF=M1("werift-dtls : packages/dtls/src/socket.ts : log"),wF=M1("werift-dtls : packages/dtls/src/socket.ts : err"),NS=class{constructor(W,G){this.options=W,this.sessionType=G,this.dtls=new HF(this.options,this.sessionType),this.cipher=new aN(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.transport=new Qn(this.options.transport),this.setupExtensions(),this.transport.socket.onData=this.udpOnMessage}onConnect=new f0;onData=new f0;onError=new f0;onClose=new f0;transport;cipher;dtls;srtp=new sN;connected=!1;extensions=[];onHandleHandshakes;bufferFragmentedHandshakes=[];renegotiation(){IF("renegotiation",this.sessionType),this.connected=!1,this.cipher=new aN(this.sessionType,this.options.cert,this.options.key,this.options.signatureHash),this.dtls=new HF(this.options,this.sessionType),this.srtp=new sN,this.extensions=[],this.bufferFragmentedHandshakes=[]}udpOnMessage=(W)=>{let G=Jn(W);for(let X of G)try{let Y=Un(this.dtls,this.cipher)(X);for(let Z of Y)switch(Z.type){case 22:{let V=Z.data,Q=this.handleFragmentHandshake([V]),J=Object.values(Q.reduce((U,q)=>{if(!U[q.msg_type])U[q.msg_type]=[];return U[q.msg_type].push(q),U},{})).map((U)=>P5.assemble(U)).sort((U,q)=>U.msg_type-q.msg_type);this.onHandleHandshakes(J).catch((U)=>{wF(this.dtls.sessionId,"onHandleHandshakes error",U),this.onError.execute(U)})}break;case 23:this.onData.execute(Z.data);break;case 21:this.onClose.execute();break}}catch(Y){wF(this.dtls.sessionId,"catch udpOnMessage error",Y)}};setupExtensions(){if(IF(this.dtls.sessionId,"support srtpProfiles",this.options.srtpProfiles),this.options.srtpProfiles&&this.options.srtpProfiles.length>0){let W=gY.create(this.options.srtpProfiles,Buffer.from([0]));this.extensions.push(W.extension)}{let W=SO.createEmpty();W.data=L2,this.extensions.push(W.extension)}{let W=xO.createEmpty();W.data=E2,this.extensions.push(W.extension)}if(this.options.extendedMasterSecret)this.extensions.push({type:HH.type,data:Buffer.alloc(0)});{let W=AH.createEmpty();this.extensions.push(W.extension)}}waitForReady=(W)=>new Promise(async(G,X)=>{for(let Y=0;Y<10;Y++)if(W()){G();break}else await Zn(100*Y);X("waitForReady timeout")});handleFragmentHandshake(W){let G=W.filter((X)=>{if(X.fragment_length!==X.length)return this.bufferFragmentedHandshakes.push(X),!1;return!0});if(this.bufferFragmentedHandshakes.length>1){let[X]=this.bufferFragmentedHandshakes.slice(-1);if(X.fragment_offset+X.fragment_length===X.length)G=[...this.bufferFragmentedHandshakes,...G],this.bufferFragmentedHandshakes=[]}return G}send=async(W)=>{let G=WJ(this.dtls)([{type:23,fragment:W}],++this.dtls.recordSequenceNumber)[0];await this.transport.send(this.cipher.encryptPacket(G).serialize())};close(){this.transport.socket.close()}extractSessionKeys(W,G){let X=this.exportKeyingMaterial("EXTRACTOR-dtls_srtp",W*2+G*2),{clientKey:Y,serverKey:Z,clientSalt:V,serverSalt:Q}=CG.decode(X,{clientKey:CG.types.buffer(W),serverKey:CG.types.buffer(W),clientSalt:CG.types.buffer(G),serverSalt:CG.types.buffer(G)});if(this.sessionType===f4.CLIENT)return{localKey:Y,localSalt:V,remoteKey:Z,remoteSalt:Q};else return{localKey:Z,localSalt:Q,remoteKey:Y,remoteSalt:V}}exportKeyingMaterial(W,G){return md(W,G,this.cipher.masterSecret,this.cipher.localRandom.serialize(),this.cipher.remoteRandom.serialize(),this.sessionType===f4.CLIENT)}get remoteCertificate(){return this.cipher.remoteCertificate}},UO=M1("werift-dtls : packages/dtls/src/client.ts : log"),jF=class extends NS{constructor(W){super(W,f4.CLIENT);this.onHandleHandshakes=this.handleHandshakes,UO(this.dtls.sessionId,"start client")}async connect(){await new Yo(this.transport,this.dtls,this.cipher).exec(this.extensions)}flight5;handleHandshakes=async(W)=>{UO(this.dtls.sessionId,"handleHandshakes",W.map((G)=>G.msg_type));for(let G of W)switch(G.msg_type){case 3:{let X=qS.deSerialize(G.fragment);await new Vo(this.transport,this.dtls).exec(X)}break;case 2:{if(this.connected)return;this.flight5=new Yn(this.transport,this.dtls,this.cipher,this.srtp),this.flight5.handleHandshake(G)}break;case 11:case 12:case 13:await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(G);break;case 14:{await this.waitForReady(()=>!!this.flight5),this.flight5?.handleHandshake(G);let X=[11,12,this.options.certificateRequest&&13].filter((Y)=>typeof Y==="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(X)),await this.flight5?.exec()}break;case 20:this.dtls.flight=7,this.connected=!0,this.onConnect.execute(),UO(this.dtls.sessionId,"dtls connected");break}}},u7=M1("werift-dtls : packages/dtls/flight/server/flight2.ts : log"),Nn=(W,G,X,Y)=>(Z)=>{u7("dtls version",Z.clientVersion),G.flight=2,G.recordSequenceNumber=0,G.sequenceNumber=0,Z.extensions.forEach((A)=>{switch(A.type){case SO.type:{let H=SO.fromData(A.data).data;u7(G.sessionId,"curves",H);let I=H.filter((w)=>L2.includes(w))[0];X.namedCurve=I,u7(G.sessionId,"curve selected",X.namedCurve)}break;case xO.type:{if(!X.signatureHashAlgorithm)throw Error("need to set certificate");let H=xO.fromData(A.data).data;u7(G.sessionId,"hash,signature",H);let I=H.find((C)=>C.signature===X.signatureHashAlgorithm?.signature)?.signature,w=H.find((C)=>C.hash===X.signatureHashAlgorithm?.hash)?.hash;if(I==null||w==null)throw Error("invalid signatureHash")}break;case gY.type:{if(!G.options?.srtpProfiles)return;if(G.options.srtpProfiles.length===0)return;let H=gY.fromData(A.data);u7(G.sessionId,"srtp profiles",H.profiles);let I=sN.findMatchingSRTPProfile(H.profiles,G.options?.srtpProfiles);if(!I)throw Error();Y.srtpProfile=I,u7(G.sessionId,"srtp profile selected",Y.srtpProfile)}break;case HH.type:G.remoteExtendedMasterSecret=!0;break;case AH.type:u7(G.sessionId,"RenegotiationIndication",A.data);break;case 43:{let I=[...A.data.subarray(1)].map((w)=>w.toString(10));u7("dtls supported version",I)}break}}),X.localRandom=new TG,X.remoteRandom=TG.from(Z.random);let V=Z.cipherSuites;u7(G.sessionId,"cipher suites",V);let Q=(()=>{switch(X.signatureHashAlgorithm?.signature){case c4.ecdsa_3:return RO.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_49195;case c4.rsa_1:return RO.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256_49199}})();if(Q===void 0||!V.includes(Q))throw Error("dtls cipher suite negotiation failed");X.cipherSuite=Q,u7(G.sessionId,"selected cipherSuite",X.cipherSuite),X.localKeyPair=p2(X.namedCurve),G.cookie||=qn(20);let J=new qS({major:254,minor:253},G.cookie),U=m2(G)([J]),N=WJ(G)(U.map((A)=>({type:22,fragment:A.serialize()})),++G.recordSequenceNumber).map((A)=>A.serialize());for(let A of N)W.send(A)},OF=M1("werift-dtls : packages/dtls/flight/server/flight4.ts : log"),Hn=class extends GJ{constructor(W,G,X,Y){super(W,G,4,6);this.cipher=X,this.srtp=Y}async exec(W,G=!1){if(this.dtls.flight===4){OF(this.dtls.sessionId,"flight4 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=4,this.dtls.sequenceNumber=1,this.dtls.bufferHandshakeCache([W],!1,4);let X=[this.sendServerHello(),this.sendCertificate(),this.sendServerKeyExchange(),G&&this.sendCertificateRequest(),this.sendServerHelloDone()].filter((Y)=>Y);this.dtls.lastMessage=X,await this.transmit(X)}sendServerHello(){let W=[];if(this.srtp.srtpProfile)W.push(gY.create([this.srtp.srtpProfile],Buffer.from([0])).extension);if(this.dtls.options.extendedMasterSecret)W.push({type:HH.type,data:Buffer.alloc(0)});let G=AH.createEmpty();W.push(G.extension);let X=new i2(this.dtls.version,this.cipher.localRandom,Buffer.from([0]),this.cipher.cipherSuite,0,W),Y=this.createPacket([X]);return Buffer.concat(Y.map((Z)=>Z.serialize()))}sendCertificate(){let W=new eN([Buffer.from(this.cipher.localCert)]),G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}sendServerKeyExchange(){let W=this.cipher.generateKeySignature("sha256");if(!this.cipher.signatureHashAlgorithm)throw Error("not exist");let G=new s2(B2.named_curve_3,this.cipher.namedCurve,this.cipher.localKeyPair.publicKey.length,this.cipher.localKeyPair.publicKey,this.cipher.signatureHashAlgorithm.hash,this.cipher.signatureHashAlgorithm.signature,W.length,W),X=this.createPacket([G]);return Buffer.concat(X.map((Y)=>Y.serialize()))}sendCertificateRequest(){let W=new n2(vd,E2,[]);OF(this.dtls.sessionId,"sendCertificateRequest",W);let G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}sendServerHelloDone(){let W=new r2,G=this.createPacket([W]);return Buffer.concat(G.map((X)=>X.serialize()))}},mY=M1("werift-dtls : packages/dtls/flight/server/flight6.ts"),An=class extends GJ{constructor(W,G,X){super(W,G,6);this.cipher=X}handleHandshake(W){this.dtls.bufferHandshakeCache([W],!1,5);let G=(()=>{switch(W.msg_type){case 11:return eN.deSerialize(W.fragment);case 15:return d2.deSerialize(W.fragment);case 16:return o2.deSerialize(W.fragment);case 20:return $O.deSerialize(W.fragment)}})();if(G){let X=QJ[G.msgType];if(!X)return;X({dtls:this.dtls,cipher:this.cipher})(G)}}async exec(){if(this.dtls.flight===6){mY(this.dtls.sessionId,"flight6 twice"),this.send(this.dtls.lastMessage);return}this.dtls.flight=6;let W=[this.sendChangeCipherSpec(),this.sendFinished()];this.dtls.lastMessage=W,await this.transmit(W)}sendChangeCipherSpec(){let W=l2.createEmpty().serialize(),G=WJ(this.dtls)([{type:20,fragment:W}],++this.dtls.recordSequenceNumber);return Buffer.concat(G.map((Y)=>Y.serialize()))}sendFinished(){let W=Buffer.concat(this.dtls.sortedHandshakeCache.map((V)=>V.serialize())),G=this.cipher.verifyData(W),X=new $O(G);this.dtls.epoch=1;let[Y]=this.createPacket([X]);return this.dtls.recordSequenceNumber=0,this.cipher.encryptPacket(Y).serialize()}},QJ={};QJ[16]=({cipher:W,dtls:G})=>(X)=>{if(W.remoteKeyPair={curve:W.namedCurve,publicKey:X.publicKey},!W.remoteKeyPair.publicKey||!W.localKeyPair||!W.remoteRandom||!W.localRandom)throw Error("not exist");let Y=S2(W.remoteKeyPair.publicKey,W.localKeyPair.privateKey,W.localKeyPair.curve);mY(G.sessionId,"extendedMasterSecret",G.options.extendedMasterSecret,G.remoteExtendedMasterSecret);let Z=Buffer.concat(G.sortedHandshakeCache.map((V)=>V.serialize()));W.masterSecret=G.options.extendedMasterSecret&&G.remoteExtendedMasterSecret?k2(Y,Z):x2(Y,W.remoteRandom.serialize(),W.localRandom.serialize()),W.cipher=f2(W.cipherSuite),W.cipher.init(W.masterSecret,W.localRandom.serialize(),W.remoteRandom.serialize()),mY(G.sessionId,"setup cipher",W.cipher.summary)};QJ[11]=({cipher:W,dtls:G})=>(X)=>{mY(G.sessionId,"handshake certificate",X),W.remoteCertificate=X.certificateList[0]};QJ[15]=({cipher:W,dtls:G})=>(X)=>{if(!W.remoteCertificate)throw Error("client certificate missing before certificate verify");mY(G.sessionId,"certificate_verify",X.algorithm)};QJ[20]=({dtls:W})=>(G)=>{mY(W.sessionId,"finished",G)};var $Y=M1("werift-dtls : packages/dtls/src/server.ts : log"),zn=class extends NS{constructor(W){super(W,f4.SERVER);this.onHandleHandshakes=this.handleHandshakes,$Y(this.dtls.sessionId,"start server")}flight6;handleHandshakes=async(W)=>{$Y(this.dtls.sessionId,"handleHandshakes",W.map((G)=>G.msg_type));for(let G of W)switch(G.msg_type){case 1:{if(this.connected)this.renegotiation();let X=h2.deSerialize(G.fragment);if(X.cookie.length===0)$Y(this.dtls.sessionId,"send flight2"),Nn(this.transport,this.dtls,this.cipher,this.srtp)(X);else if(this.dtls.cookie&&X.cookie.equals(this.dtls.cookie))$Y(this.dtls.sessionId,"send flight4"),await new Hn(this.transport,this.dtls,this.cipher,this.srtp).exec(G,this.options.certificateRequest);else $Y("wrong state",{dtlsCookie:this.dtls.cookie?.toString("hex").slice(10),helloCookie:X.cookie.toString("hex").slice(10)})}break;case 11:case 15:case 16:{if(this.connected)return;this.flight6=new An(this.transport,this.dtls,this.cipher),this.flight6.handleHandshake(G)}break;case 20:{await this.waitForReady(()=>!!this.flight6),this.flight6?.handleHandshake(G);let X=[16,this.options.certificateRequest&&11,this.options.certificateRequest&&15].filter((Y)=>typeof Y==="number");await this.waitForReady(()=>this.dtls.checkHandshakesExist(X)),await this.flight6?.exec(),this.connected=!0,this.onConnect.execute(),$Y(this.dtls.sessionId,"dtls connected")}break}}},YK=554869826,In=8,wn=1398035790,d6=20,HS=24,AS=1,zS=2,jn=6,On=50;var IS=((W)=>{return W[W.REQUEST=0]="REQUEST",W[W.INDICATION=16]="INDICATION",W[W.RESPONSE=256]="RESPONSE",W[W.ERROR=272]="ERROR",W})(IS||{}),wS=((W)=>{return W[W.BINDING=1]="BINDING",W[W.SHARED_SECRET=2]="SHARED_SECRET",W[W.ALLOCATE=3]="ALLOCATE",W[W.REFRESH=4]="REFRESH",W[W.SEND=6]="SEND",W[W.DATA=7]="DATA",W[W.CREATE_PERMISSION=8]="CREATE_PERMISSION",W[W.CHANNEL_BIND=9]="CHANNEL_BIND",W})(wS||{});function yQ(W){return OS(W).toString("hex").substring(0,W)}function KS(){return OS(12)}var KF=class{queue=[];wait=new f0;put(W){if(this.queue.push(W),this.queue.length===1)this.wait.execute(W)}get(){let W=this.queue.shift();if(!W)return new Promise((G)=>{this.wait.subscribe((X)=>{this.queue.shift(),G(X)})});return W}},kO=(W)=>{let G,X,Y=new Promise((V,Q)=>{G=V,X=Q});Y.then(()=>{Z.execute(void 0),Z.complete()}).catch((V)=>{Z.execute(V??Error()),Z.complete()});let Z=new f0;return W(G,X,Z).catch(()=>{}),{awaitable:Y,resolve:G,reject:X}};function xY(W){let[G]=W,X=aQ.default.isV4Format(G)?AS:zS,Y=Buffer.alloc(4);return Y.writeUInt8(0,0),Y.writeUInt8(X,1),Y.writeUInt16BE(W[1],2),Buffer.concat([Y,aQ.default.toBuffer(G)])}function Kn(W){if(W.length<4)throw Error("STUN error code is less than 4 bytes");let G=W.readUInt8(2),X=W.readUInt8(3),Y=W.slice(4).toString("utf8");return[G*100+X,Y]}function kY(W){if(W.length<4)throw Error("STUN address length is less than 4 bytes");let G=W.readUInt8(1),X=W.readUInt16BE(2),Y=W.slice(4);switch(G){case AS:if(Y.length!=4)throw Error("STUN address has invalid length for IPv4");return[aQ.default.toString(Y),X];case zS:if(Y.length!=16)throw Error("STUN address has invalid length for IPv6");return[aQ.default.toString(Y),X];default:throw Error("STUN address has unknown protocol")}}var ZK=Buffer.alloc(6);ZK.writeUInt16BE(YK>>16,0);ZK.writeUInt32BE(YK,2);function CS(W,G){let X=[...ZK,...G],Y=W.slice(0,2);for(let Z=2;Z<W.length;Z++){let V=W[Z]^X[Z-2],Q=Buffer.alloc(1);Q.writeUIntBE(V,0,1),Y=Buffer.concat([Y,Q])}return Y}function gN(W,G){return kY(CS(W,G))}function Cn(W){let G=Buffer.alloc(4);G.writeUInt16BE(0,0),G.writeUInt8(Math.floor(W[0]/100),2),G.writeUInt8(W[0]%100,3);let X=Buffer.from(W[1],"utf8");return Buffer.concat([G,X])}function uN(W,G){return CS(xY(W),G)}var vQ=(W)=>{let G=Buffer.alloc(4);return G.writeUInt32BE(W,0),G},gQ=(W)=>W.readUInt32BE(0),Dn=(W)=>{let G=Buffer.alloc(4);return G.writeUInt16BE(W,0),G},Mn=(W)=>W.readUInt16BE(0),CF=(W)=>{return new nj(W.toString()).toBuffer()},DF=(W)=>{let G=new nj(W);return BigInt(G.toString())},qO=(W)=>Buffer.from(W,"utf8"),NO=(W)=>W.toString("utf8"),HO=(W)=>W,AO=(W)=>W,Tn=(W)=>Buffer.from([]),Pn=(W)=>null,DS=[[1,"MAPPED-ADDRESS",xY,kY],[3,"CHANGE-REQUEST",vQ,gQ],[4,"SOURCE-ADDRESS",xY,kY],[5,"CHANGED-ADDRESS",xY,kY],[6,"USERNAME",qO,NO],[8,"MESSAGE-INTEGRITY",HO,AO],[9,"ERROR-CODE",Cn,Kn],[12,"CHANNEL-NUMBER",Dn,Mn],[13,"LIFETIME",vQ,gQ],[18,"XOR-PEER-ADDRESS",uN,gN],[19,"DATA",HO,AO],[20,"REALM",qO,NO],[21,"NONCE",HO,AO],[22,"XOR-RELAYED-ADDRESS",uN,gN],[25,"REQUESTED-TRANSPORT",vQ,gQ],[32,"XOR-MAPPED-ADDRESS",uN,gN],[36,"PRIORITY",vQ,gQ],[37,"USE-CANDIDATE",Tn,Pn],[32802,"SOFTWARE",qO,NO],[32808,"FINGERPRINT",vQ,gQ],[32809,"ICE-CONTROLLED",CF,DF],[32810,"ICE-CONTROLLING",CF,DF],[32811,"RESPONSE-ORIGIN",xY,kY],[32812,"OTHER-ADDRESS",xY,kY]],MS=class{constructor(W=[]){this.attributes=W}getAttributes(){return this.attributes}setAttribute(W,G){let X=this.attributes.find((Y)=>Y[0]===W);if(X)X[1]=G;else this.attributes.push([W,G]);return this}getAttributeValue(W){let G=this.attributes.find((X)=>X[0]===W);if(!G)return;return G[1]}get attributesKeys(){return this.attributes.map((W)=>W[0])}clear(){this.attributes=[]}},MF=DS.reduce((W,G)=>{return W[G[0]]=G,W},{}),Rn=DS.reduce((W,G)=>{return W[G[1]]=G,W},{});function VK(W,G){if(W.length<d6)return;let X=W.readUint16BE(2);if(W.length!==d6+X)return;let Y=W.readUint16BE(0),Z=Buffer.from(W.slice(d6-12,d6)),V=new MS;for(let J=d6;J<=W.length-4;){let U=W.readUInt16BE(J),q=W.readUInt16BE(J+2),N=W.slice(J+4,J+4+q),A=4*Math.floor((q+3)/4)-q;if(Object.keys(MF).includes(U.toString())){let[,I,,w]=MF[U];if(w.name===gN.name)V.setAttribute(I,w(N,Z));else V.setAttribute(I,w(N));if(I==="FINGERPRINT"){let C=TS(W.slice(0,J));if(V.getAttributeValue("FINGERPRINT")!==C)return}else if(I==="MESSAGE-INTEGRITY"){if(G){let C=Ln(W.slice(0,J),G),D=V.getAttributeValue("MESSAGE-INTEGRITY");if(!C.equals(D))return}}}J+=4+q+A}let Q=V.getAttributes();return V.clear(),new b7(Y&16111,Y&272,Z,Q)}var b7=class extends MS{constructor(W,G,X=KS(),Y=[]){super(Y);this.messageMethod=W,this.messageClass=G,this.transactionId=X}toJSON(){return this.json}get json(){return{messageMethod:wS[this.messageMethod],messageClass:IS[this.messageClass],attributes:this.attributes}}get transactionIdHex(){return this.transactionId.toString("hex")}get bytes(){let W=Buffer.from([]);for(let X of this.attributesKeys){let Y=this.getAttributeValue(X),[Z,,V]=Rn[X],Q=V.name===uN.name?V(Y,this.transactionId):V(Y),J=Q.length,U=4*Math.floor((J+3)/4)-J,q=Buffer.alloc(4);q.writeUInt16BE(Z,0),q.writeUInt16BE(J,2),W=Buffer.concat([W,q,Q,Buffer.alloc(U,0)])}let G=Buffer.alloc(8);return G.writeUInt16BE(this.messageMethod|this.messageClass,0),G.writeUInt16BE(W.length,2),G.writeUInt32BE(YK,4),Buffer.concat([G,this.transactionId,W])}addMessageIntegrity(W){return this.setAttribute("MESSAGE-INTEGRITY",this.messageIntegrity(W)),this}messageIntegrity(W){let G=QK(this.bytes,this.bytes.length-d6+HS);return Buffer.from(jS("sha1",W).update(G).digest("hex"),"hex")}addFingerprint(){this.setAttribute("FINGERPRINT",TS(this.bytes))}},QK=(W,G)=>{let X=Buffer.alloc(W.length);return W.copy(X,0,0,2),X.writeUInt16BE(G,2),W.copy(X,4,4),X};function TS(W){let G=QK(W,W.length-d6+In);return(Td(G)^wn)>>>0}function Ln(W,G){let X=QK(W,W.length-d6+HS);return Buffer.from(jS("sha1",G).update(X).digest("hex"),"hex")}function TF(W){let G=W%4;if(G===0)return 0;else return 4-G}var PS=class extends Error{response;addr},RS=class extends PS{constructor(W,G){super();this.response=W,this.addr=G}get str(){let W="STUN transaction failed",G=this.response.getAttributeValue("ERROR-CODE");if(G){let[X,Y]=G;W+=` (${X} - ${Y})`}return W}},Bn=class extends PS{get str(){return"STUN transaction timed out"}},zO=M1("werift-ice:packages/ice/src/stun/transaction.ts"),JK=class{constructor(W,G,X,Y){this.request=W,this.addr=G,this.protocol=X,this.retransmissions=Y,this.triesMax=1+(this.retransmissions?this.retransmissions:jn)}timeoutDelay=On;ended=!1;tries=0;triesMax;onResponse=new f0;responseReceived=(W,G)=>{if(this.onResponse.length>0)if(W.messageClass===256)this.onResponse.execute(W,G),this.onResponse.complete();else this.onResponse.error(new RS(W,G))};run=async()=>{try{return this.retry().catch((G)=>{zO("retry failed",G)}),await this.onResponse.asPromise()}catch(W){throw W}finally{this.cancel()}};retry=async()=>{while(this.tries<this.triesMax&&!this.ended){if(this.protocol.sendStun(this.request,this.addr).catch((W)=>{zO("send stun failed",W)}),await new Promise((W)=>setTimeout(W,this.timeoutDelay)),this.ended)break;this.timeoutDelay*=2,this.tries++}if(this.tries>=this.triesMax)zO(`retry failed times:${this.tries} maxLimit:${this.triesMax}`),this.onResponse.error(new Bn)};cancel(){this.ended=!0}},PF=M1("werift-ice : packages/ice/src/stun/protocol.ts"),RF=class W{static type="stun";type=W.type;transport;transactions={};get transactionsKeys(){return Object.keys(this.transactions)}localCandidate;sentMessage;localIp;onRequestReceived=new f0;onDataReceived=new f0;constructor(){}connectionMade=async(G,X,Y)=>{if(G)this.transport=await PO.init("udp4",{portRange:X,interfaceAddresses:Y});else this.transport=await PO.init("udp6",{portRange:X,interfaceAddresses:Y});this.transport.onData=(Z,V)=>{this.datagramReceived(Z,V)}};datagramReceived(G,X){try{let Y=VK(G);if(!Y){if(this.localCandidate)this.onDataReceived.execute(G);return}if((Y.messageClass===256||Y.messageClass===272)&&this.transactionsKeys.includes(Y.transactionIdHex))this.transactions[Y.transactionIdHex].responseReceived(Y,X);else if(Y.messageClass===0)this.onRequestReceived.execute(Y,X,G)}catch(Y){PF("datagramReceived error",Y)}}getExtraInfo(){let{address:G,port:X}=this.transport.address;return[G,X]}async sendStun(G,X){if(this.transport.closed)return;let Y=G.bytes;await this.transport.send(Y,X).catch(()=>{PF("sendStun failed",X,G)})}async sendData(G,X){if(this.transport.closed)return;await this.transport.send(G,X)}async request(G,X,Y,Z){if(this.transactionsKeys.includes(G.transactionIdHex))throw Error("already request ed");if(Y)G.addMessageIntegrity(Y),G.addFingerprint();let V=new JK(G,X,this,Z);this.transactions[G.transactionIdHex]=V;try{return await V.run()}catch(Q){throw Q}finally{delete this.transactions[G.transactionIdHex]}}async close(){Object.values(this.transactions).forEach((G)=>{G.cancel()}),await this.transport.close(),this.onRequestReceived.complete(),this.onDataReceived.complete()}},i9=M1("werift-ice:packages/ice/src/turn/protocol.ts"),Fn=500,Sn=600,xn=285212672,kn=class W{constructor(G){this.turn=G,G.onData.subscribe((X,Y)=>{this.handleStunMessage(X,Y)}).disposer(this.disposer)}static type="turn";type=W.type;localCandidate;disposer=new Ed;onRequestReceived=new f0;onDataReceived=new f0;handleStunMessage=(G,X)=>{try{let Y=VK(G);if(!Y){this.onDataReceived.execute(G);return}if(Y.messageClass===256||Y.messageClass===272){let Z=this.turn.transactions[Y.transactionIdHex];if(Z)Z.responseReceived(Y,X)}else if(Y.messageClass===0)this.onRequestReceived.execute(Y,X,G)}catch(Y){i9("datagramReceived error",Y)}};async request(G,X,Y){if(this.turn.transactions[G.transactionIdHex])throw Error("exist");if(Y)G.addMessageIntegrity(Y),G.addFingerprint();let Z=new JK(G,X,this);this.turn.transactions[G.transactionIdHex]=Z;try{return await Z.run()}catch(V){throw V}finally{delete this.turn.transactions[G.transactionIdHex]}}async connectionMade(){}async sendData(G,X){await this.turn.sendData(G,X)}async sendStun(G,X){await this.turn.sendData(G.bytes,X)}async close(){return this.disposer.dispose(),this.turn.close()}},_n=class W{constructor(G,X,Y,Z,V,Q={}){this.server=G,this.username=X,this.password=Y,this.lifetime=Z,this.transport=V,this.options=Q,this.channelRefreshTime=this.options.channelRefreshTime??Fn}static type="turn";type=W.type;onData=new f0;onRequestReceived=new f0;onDataReceived=new f0;integrityKey;nonce;realm;relayedAddress;mappedAddress;localCandidate;transactions={};refreshHandle;channelNumber=16384;channelByAddr={};addrByChannel={};channelRefreshTime;channelBinding;channelRefreshAt=0;tcpBuffer=Buffer.alloc(0);permissionByAddr={};creatingPermission=Promise.resolve();async connectionMade(){this.transport.onData=(Z,V)=>{this.dataReceived(Z,V)};let G=new b7(3,0);G.setAttribute("LIFETIME",this.lifetime).setAttribute("REQUESTED-TRANSPORT",xn);let[X]=await this.requestWithRetry(G,this.server).catch((Z)=>{throw i9("connect error",Z),Z});this.relayedAddress=X.getAttributeValue("XOR-RELAYED-ADDRESS"),this.mappedAddress=X.getAttributeValue("XOR-MAPPED-ADDRESS");let Y=X.getAttributeValue("LIFETIME");i9("connect",this.relayedAddress,this.mappedAddress,{exp:Y}),this.refresh(Y)}handleChannelData(G){let[X,Y]=r1.Unpack("!HH",G.slice(0,4)),Z=this.addrByChannel[X];if(Z){let V=G.subarray(4,4+Y);this.onData.execute(V,Z)}}handleSTUNMessage(G,X){try{let Y=VK(G);if(!Y)throw Error("not stun message");if(Y.messageClass===256||Y.messageClass===272){let Z=this.transactions[Y.transactionIdHex];if(Z)Z.responseReceived(Y,X)}else if(Y.messageClass===0)this.onData.execute(G,X);if(Y.getAttributeValue("DATA")){let Z=Y.getAttributeValue("DATA");this.onData.execute(Z,X)}}catch(Y){i9("parse error",G.toString())}}dataReceived(G,X){let Y=(Z,V)=>{if(Z.length>=4&&BF(Z))this.handleChannelData(Z);else this.handleSTUNMessage(Z,V)};if(this.transport.type==="tcp"){this.tcpBuffer=Buffer.concat([this.tcpBuffer,G]);while(this.tcpBuffer.length>=4){let[,Z]=r9(this.tcpBuffer.subarray(0,4),[2,2]);Z+=TF(Z);let V=BF(this.tcpBuffer)?4+Z:20+Z;if(this.tcpBuffer.length<V)break;Y(this.tcpBuffer.subarray(0,V),X),this.tcpBuffer=this.tcpBuffer.subarray(V)}}else Y(G,X)}async send(G,X){if(this.transport.closed)return;if(this.transport.type==="tcp"){let Y=TF(G.length);await this.transport.send(Y>0?Buffer.concat([G,Buffer.alloc(Y)]):G,X)}else await this.transport.send(G,X)}async createPermission(G){let X=new b7(8,0);X.setAttribute("XOR-PEER-ADDRESS",G).setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce),await this.request(X,this.server).catch((Y)=>{throw Y})}refresh=(G)=>{this.refreshHandle=kO(async(X,Y,Z)=>{let V=!0;Z.once(()=>{V=!1});while(V){let Q=0.8333333333333334*G*1000;i9("refresh delay",Q,{exp:G}),await $n(Q);let J=new b7(4,0);J.setAttribute("LIFETIME",G);try{let[U]=await this.requestWithRetry(J,this.server);G=U.getAttributeValue("LIFETIME"),i9("refresh",{exp:G})}catch(U){i9("refresh error",U)}}})};async request(G,X){if(this.transactions[G.transactionIdHex])throw Error("exist");if(this.integrityKey)G.setAttribute("USERNAME",this.username).setAttribute("REALM",this.realm).setAttribute("NONCE",this.nonce).addMessageIntegrity(this.integrityKey).addFingerprint();let Y=new JK(G,X,this);this.transactions[G.transactionIdHex]=Y;try{return await Y.run()}catch(Z){throw Z}finally{delete this.transactions[G.transactionIdHex]}}async requestWithRetry(G,X){let Y,Z;try{[Y,Z]=await this.request(G,X)}catch(V){if(V instanceof RS==!1)throw i9("requestWithRetry error",V),V;this.server=V.addr;let[Q]=V.response.getAttributeValue("ERROR-CODE"),J=V.response.getAttributeValue("NONCE"),U=V.response.getAttributeValue("REALM");if((Q===401&&U||Q===438&&this.realm)&&J){if(i9("retry with nonce",Q),this.nonce=J,Q===401)this.realm=U;this.integrityKey=vn(this.username,this.realm,this.password),G.transactionId=KS(),[Y,Z]=await this.request(G,this.server)}else throw V}return[Y,Z]}async sendData(G,X){let Y=await this.getChannel(X).catch((V)=>{return Error("channelBind error")});if(Y instanceof Error){await this.getPermission(X);let V=new b7(6,16).setAttribute("DATA",G).setAttribute("XOR-PEER-ADDRESS",X);await this.sendStun(V,this.server);return}let Z=r1.Pack("!HH",[Y.number,G.length]);await this.send(Buffer.concat([Buffer.from(Z),G]),this.server)}async getPermission(G){if(await this.creatingPermission,!this.permissionByAddr[G.join(":")])this.creatingPermission=this.createPermission(G),this.permissionByAddr[G.join(":")]=!0,await this.creatingPermission.catch((Y)=>{throw i9("createPermission error",Y),Y})}async getChannel(G){if(this.channelBinding)await this.channelBinding;let X=this.channelByAddr[G.join(":")];if(!X)this.channelByAddr[G.join(":")]={number:this.channelNumber++,address:G},X=this.channelByAddr[G.join(":")],this.addrByChannel[X.number]=G,this.channelBinding=this.channelBind(X.number,G),await this.channelBinding.catch((Y)=>{throw i9("channelBind error",Y),Y}),this.channelRefreshAt=pQ(Date.now()/1000)+this.channelRefreshTime,this.channelBinding=void 0,i9("channelBind",X);else if(this.channelRefreshAt<pQ(Date.now()/1000))this.channelBinding=this.channelBind(X.number,G),this.channelRefreshAt=pQ(Date.now()/1000)+this.channelRefreshTime,await this.channelBinding.catch((Y)=>{throw i9("channelBind error",Y),Y}),this.channelBinding=void 0,i9("channelBind refresh",X);return X}async channelBind(G,X){let Y=new b7(9,0);Y.setAttribute("CHANNEL-NUMBER",G).setAttribute("XOR-PEER-ADDRESS",X);let[Z]=await this.requestWithRetry(Y,this.server);if(Z.messageMethod!==9)throw Error("should be CHANNEL_BIND")}async sendStun(G,X){await this.send(G.bytes,X)}async close(){this.refreshHandle?.resolve?.(),await this.transport.close()}};async function yn({address:W,username:G,password:X},{lifetime:Y,portRange:Z,interfaceAddresses:V,transport:Q}={}){Y??=Sn,Q??="udp";let J=Q==="udp"?await PO.init("udp4",{portRange:Z,interfaceAddresses:V}):await Sd.init(W),U=new _n(W,G,X,Y,J);return await U.connectionMade(),U}async function LF({address:W,username:G,password:X},{lifetime:Y,portRange:Z,interfaceAddresses:V,transport:Q}={}){let J=await yn({address:W,username:G,password:X},{lifetime:Y,portRange:Z,interfaceAddresses:V,transport:Q});return new kn(J)}function vn(W,G,X){return En("md5").update(Buffer.from([W,G,X].join(":"))).digest()}function BF(W){return(W[0]&192)==64}var DG=class W{constructor(G,X,Y,Z,V,Q,J,U,q,N,A,H){this.foundation=G,this.component=X,this.transport=Y,this.priority=Z,this.host=V,this.port=Q,this.type=J,this.relatedAddress=U,this.relatedPort=q,this.tcptype=N,this.generation=A,this.ufrag=H}static fromSdp(G){let X=G.split(" ");if(X.length<8)throw Error("SDP does not have enough properties");let Y={foundation:X[0],component:Number(X[1]),transport:X[2],priority:Number(X[3]),host:X[4],port:Number(X[5]),type:X[7]};for(let A=8,H=X.length-1;A<H;A+=2)if(X[A]==="raddr")Y.related_address=X[A+1];else if(X[A]==="rport")Y.related_port=Number(X[A+1]);else if(X[A]==="tcptype")Y.tcptype=X[A+1];else if(X[A]==="generation")Y.generation=Number(X[A+1]);else if(X[A]==="ufrag")Y.ufrag=X[A+1];let{foundation:Z,component:V,transport:Q,priority:J,host:U,port:q,type:N}=Y;return new W(Z,V,Q,J,U,q,N,Y.related_address,Y.related_port,Y.tcptype,Y.generation,Y.ufrag)}canPairWith(G){let X=EF(this.host),Y=EF(G.host);return this.component===G.component&&this.transport.toLowerCase()===G.transport.toLowerCase()&&X===Y}toSdp(){let G=`${this.foundation} ${this.component} ${this.transport} ${this.priority} ${this.host} ${this.port} typ ${this.type}`;if(this.relatedAddress)G+=` raddr ${this.relatedAddress}`;if(this.relatedPort!=null)G+=` rport ${this.relatedPort}`;if(this.tcptype)G+=` tcptype ${this.tcptype}`;if(this.generation!=null)G+=` generation ${this.generation}`;if(this.ufrag!=null)G+=` ufrag ${this.ufrag}`;return G}};function _O(W,G,X){let Y=`${W}|${G}|${X}`;return gn("md5").update(Y,"ascii").digest("hex").slice(7)}function hN(W,G=65535){let Y=0;if(W==="host")Y=126;else if(W==="prflx")Y=110;else if(W==="srflx")Y=100;else Y=0;return 16777216*Y+256*G+255}var hn=class{cache=new Map;mdnsInstance=LS.default();constructor(){this.mdnsInstance.setMaxListeners(50)}lookup(W){return new Promise((G,X)=>{let Y=()=>{this.mdnsInstance.removeListener("response",V),clearTimeout(Z)},Z=setTimeout(()=>{Y(),X(Error("No mDNS response"))},1e4),V=(Q)=>{let J=Q.answers?.[0];if(J?.type!=="A")return;if(J.name!==W)return;Y(),G(J.data)};this.mdnsInstance.on("response",V),this.mdnsInstance.query(W,"A")})}close(){this.mdnsInstance.destroy()}},mn=M1("werift-ice : packages/ice/src/ice.ts : log"),FF=class{constructor(W,G,X){this.protocol=W,this.remoteCandidate=G,this.iceControlling=X}id=bn().toString();handle;nominated=!1;remoteNominated=!1;_state=0;get state(){return this._state}packetsSent=0;packetsReceived=0;bytesSent=0;bytesReceived=0;rtt;totalRoundTripTime=0;roundTripTimeMeasurements=0;toJSON(){return this.json}get json(){return{protocol:this.protocol.type,localCandidate:this.localCandidate.toSdp(),remoteCandidate:this.remoteCandidate.toSdp()}}updateState(W){this._state=W}get localCandidate(){if(!this.protocol.localCandidate)throw Error("localCandidate not exist");return this.protocol.localCandidate}get remoteAddr(){return[this.remoteCandidate.host,this.remoteCandidate.port]}get component(){return this.localCandidate.component}get priority(){return vO(this.localCandidate,this.remoteCandidate,this.iceControlling)}get foundation(){return this.localCandidate.foundation}},SF=1,$N=2,fn=5,xF=6;var cn={useIpv4:!0,useIpv6:!0};function kF(W){if(!["host","relay","srflx"].includes(W.type))throw Error(`Unexpected candidate type "${W.type}"`);return W}function pn(W,G){return W.sort((X,Y)=>vO(X.localCandidate,X.remoteCandidate,G)-vO(Y.localCandidate,Y.remoteCandidate,G)).reverse()}function vO(W,G,X){let Y=X&&W.priority||G.priority,Z=X&&G.priority||W.priority;return 1*Math.min(Y,Z)+2*Math.max(Y,Z)+(Y>Z?1:0)}async function ln(W,G){let X=new b7(1,0);try{let[Y]=await W.request(X,G),Z=W.localCandidate;if(!Z)throw Error("not exist");return new DG(_O("srflx","udp",Z.host),Z.component,Z.transport,hN("srflx"),Y.getAttributeValue("XOR-MAPPED-ADDRESS")[0],Y.getAttributeValue("XOR-MAPPED-ADDRESS")[1],"srflx",Z.host,Z.port)}catch(Y){mn("error serverReflexiveCandidate",Y)}}function _F(W){if(W&&Number.isNaN(W[1]))return[W[0],443];return W}var dn=M1("werift-ice : packages/ice/src/utils.ts");function on(W){return iN(W.family)===4&&W.address?.startsWith("169.254.")||iN(W.family)===6&&W.address?.startsWith("fe80::")}function yF(W,{useLinkLocalAddress:G}={}){let X=["ipsec","tun","utun","tap"],Y=["vmnet","veth"],Z=BS.networkInterfaces();dn(Z);let V=Object.keys(Z).map((Q)=>{for(let U of[...X,...Y])if(Q.startsWith(U))return{nic:Q,addresses:[]};let J=Z[Q].filter((U)=>iN(U.family)===W&&!ES.default.isLoopback(U.address)&&(G?!0:!on(U)));return{nic:Q,addresses:J.map((U)=>U.address)}}).filter((Q)=>!!Q);return V.sort((Q,J)=>Q.nic.localeCompare(J.nic)),Object.values(V).flatMap((Q)=>Q.addresses)}function nn(W,G,X={}){let Y=[];if(W)Y.push(...yF(4,X));if(G)Y.push(...yF(6,X));return Y}var t1=M1("werift-ice : packages/ice/src/ice.ts : log"),rn=class{constructor(W,G){this._iceControlling=W,this.options={...cn,...G};let{stunServer:X,turnServer:Y}=this.options;this.stunServer=_F(X)??["stun.l.google.com",19302],this.turnServer=_F(Y),this.restart(),t1("new Connection",this.options)}localUsername=yQ(4);localPassword=yQ(22);remoteIsLite=!1;remotePassword="";remoteUsername="";checkList=[];localCandidates=[];stunServer;turnServer;options;remoteCandidatesEnd=!1;localCandidatesEnd=!1;generation=-1;userHistory={};tieBreaker=BigInt(new RN(un(64)).toString());state="new";lookup;_remoteCandidates=[];nominated;nominating=!1;checkListDone=!1;checkListState=new KF;earlyChecks=[];earlyChecksDone=!1;localCandidatesStart=!1;protocols=[];queryConsentHandle;onData=new f0;stateChanged=new f0;onIceCandidate=new f0;get iceControlling(){return this._iceControlling}set iceControlling(W){if(this.generation>0||this.nominated)return;this._iceControlling=W;for(let G of this.checkList)G.iceControlling=W}async restart(){if(this.generation++,this.localUsername=yQ(4),this.localPassword=yQ(22),this.options.localPasswordPrefix)this.localPassword=this.options.localPasswordPrefix+this.localPassword.slice(this.options.localPasswordPrefix.length);this.userHistory[this.localUsername]=this.localPassword,this.remoteUsername="",this.remotePassword="",this.localCandidates=[],this._remoteCandidates=[],this.remoteCandidatesEnd=!1,this.localCandidatesEnd=!1,this.state="new",this.lookup?.close?.(),this.lookup=void 0,this.nominated=void 0,this.nominating=!1,this.checkList=[],this.checkListDone=!1,this.checkListState=new KF,this.earlyChecks=[],this.earlyChecksDone=!1,this.localCandidatesStart=!1;for(let W of this.protocols)if(W.localCandidate)W.localCandidate.generation=this.generation,W.localCandidate.ufrag=this.localUsername;this.queryConsentHandle?.resolve?.(),this.queryConsentHandle=void 0}resetNominatedPair(){t1("resetNominatedPair"),this.nominated=void 0,this.nominating=!1}setRemoteParams({iceLite:W,usernameFragment:G,password:X}){t1("setRemoteParams",{iceLite:W,usernameFragment:G,password:X}),this.remoteIsLite=W,this.remoteUsername=G,this.remotePassword=X}async gatherCandidates(){if(!this.localCandidatesStart){this.localCandidatesStart=!0;let W=nn(this.options.useIpv4,this.options.useIpv6,{useLinkLocalAddress:this.options.useLinkLocalAddress}),{interfaceAddresses:G}=this.options;if(G){let Y=W.filter((Z)=>Object.values(G).includes(Z));if(Y.length)W=Y}if(this.options.additionalHostAddresses)W=Array.from(new Set([...this.options.additionalHostAddresses,...W]));let X=this.getCandidatePromises(W,5);await Promise.allSettled(X),this.localCandidatesEnd=!0}this.setState("completed")}appendLocalCandidate(W){this.localCandidates.push(W),this.onIceCandidate.execute(W)}ensureProtocol(W){W.onRequestReceived.subscribe((G,X,Y)=>{if(G.messageMethod!==1){this.respondError(G,X,W,[400,"Bad Request"]);return}let Z=G.getAttributeValue("USERNAME"),{remoteUsername:V}=vF(Z),Q=this.userHistory[V]??this.localPassword,{iceControlling:J}=this;if(J&&G.attributesKeys.includes("ICE-CONTROLLING"))if(this.tieBreaker>=G.getAttributeValue("ICE-CONTROLLING")){this.respondError(G,X,W,[487,"Role Conflict"]);return}else this.switchRole(!1);else if(!J&&G.attributesKeys.includes("ICE-CONTROLLED"))if(this.tieBreaker<G.getAttributeValue("ICE-CONTROLLED"))this.respondError(G,X,W,[487,"Role Conflict"]);else{this.switchRole(!0);return}if(this.options.filterStunResponse&&!this.options.filterStunResponse(G,X,W))return;let U=new b7(1,256,G.transactionId);if(U.setAttribute("XOR-MAPPED-ADDRESS",X).addMessageIntegrity(Buffer.from(Q,"utf8")).addFingerprint(),W.sendStun(U,X).catch((q)=>{t1("sendStun error",q)}),this.checkList.length===0&&!this.earlyChecksDone)this.earlyChecks.push([G,X,W]);else this.checkIncoming(G,X,W)}),W.onDataReceived.subscribe((G)=>{try{let X=this.nominated;if(X&&X.protocol===W)X.packetsReceived++,X.bytesReceived+=G.length;this.onData.execute(G)}catch(X){t1("dataReceived",X)}})}getCandidatePromises(W,G=5){let X=[];W=W.filter((U)=>{if(this.protocols.find((q)=>q.localIp===U))return!1;return!0});let Y=W.map(async(U)=>{let q=new RF;this.ensureProtocol(q);try{await q.connectionMade($F(U),this.options.portRange,this.options.interfaceAddresses),q.localIp=U,this.protocols.push(q),t1("protocol",q.localIp);let N=[U,q.getExtraInfo()[1]];return q.localCandidate=new DG(_O("host","udp",N[0]),1,"udp",hN("host"),N[0],N[1],"host",void 0,void 0,void 0,this.generation,this.localUsername),this.pairLocalProtocol(q),this.appendLocalCandidate(q.localCandidate),q}catch(N){t1("error protocol STUN",N)}});X.push(...Y.map((U)=>U.then((q)=>q?.localCandidate)));let{stunServer:Z,turnServer:V}=this;if(Z){let U=Y.map(async(q)=>{let N=await q;if(!N)return;return new Promise(async(H,I)=>{let w=setTimeout(I,G*1000);if(N.localCandidate?.host&&$F(N.localCandidate?.host)){let C=await ln(N,Z).catch((D)=>{t1("error",D)});if(C)this.appendLocalCandidate(C);clearTimeout(w),H(C)}else clearTimeout(w),H()}).catch((H)=>{t1("query STUN server",H)})});X.push(...U)}let{turnUsername:Q,turnPassword:J}=this.options;if(V&&Q&&J){let U=(async()=>{let q=await LF({address:V,username:Q,password:J},{portRange:this.options.portRange,interfaceAddresses:this.options.interfaceAddresses,transport:this.options.turnTransport==="tcp"?"tcp":"udp"}).catch(async(H)=>{if(this.options.turnTransport!=="tcp")return await LF({address:V,username:Q,password:J},{portRange:this.options.portRange,interfaceAddresses:this.options.interfaceAddresses,transport:"tcp"});else throw H});this.ensureProtocol(q),this.protocols.push(q);let N=q.turn.relayedAddress,A=q.turn.mappedAddress;return t1("turn candidateAddress",N),q.localCandidate=new DG(_O("relay","udp",N[0]),1,"udp",hN("relay"),N[0],N[1],"relay",A[0],A[1],void 0,this.generation,this.localUsername),this.appendLocalCandidate(q.localCandidate),q.localCandidate})().catch((q)=>{t1("query TURN server",q)});if(this.options.forceTurn)X=[];X.push(U)}return X}async connect(){if(t1("start connect ice"),!this.localCandidatesEnd){if(!this.localCandidatesStart)throw Error("Local candidates gathering was not performed")}if(!this.remoteUsername||!this.remotePassword)throw Error("Remote username or password is missing");for(let G of this.remoteCandidates)this.pairRemoteCandidate(G);this.sortCheckList(),this.unfreezeInitial(),t1("earlyChecks",this.localPassword,this.earlyChecks.length);for(let G of this.earlyChecks)this.checkIncoming(...G);this.earlyChecks=[],this.earlyChecksDone=!0;for(;;){if(this.state==="closed")break;if(!this.schedulingChecks())break;await yO.setTimeout(20)}let W=$N;while(this.checkList.length>0&&W===$N)W=await this.checkListState.get(),t1("checkListState",W);for(let G of this.checkList)G.handle?.resolve?.();if(W!==SF)throw Error("ICE negotiation failed");this.queryConsent(),this.setState("connected")}unfreezeInitial(){let[W]=this.checkList;if(!W)return;if(W.state===0)W.updateState(1);let G=new Set(W.localCandidate.foundation);for(let X of this.checkList)if(X.component===W.component&&!G.has(X.localCandidate.foundation)&&X.state===0)X.updateState(1),G.add(X.localCandidate.foundation)}schedulingChecks(){{let W=this.checkList.filter((G)=>{if(this.options.forceTurn&&G.protocol.type===RF.type)return!1;return!0}).find((G)=>G.state===1);if(W)return W.handle=this.checkStart(W),!0}{let W=this.checkList.find((G)=>G.state===0);if(W)return W.handle=this.checkStart(W),!0}if(!this.remoteCandidatesEnd)return!this.checkListDone;return!1}queryConsent=()=>{if(this.queryConsentHandle)this.queryConsentHandle.resolve();this.queryConsentHandle=kO(async(W,G,X)=>{let Y=0,Z=!1,V=new AbortController;X.once(()=>{Z=!0,Y+=xF,V.abort(),this.queryConsentHandle=void 0});let{localUsername:Q,remoteUsername:J,iceControlling:U}=this;try{while(this.state!=="closed"&&!Z){await yO.setTimeout(fn*(0.8+0.4*Math.random())*1000,void 0,{signal:V.signal});let q=this.nominated;if(!q||Z)break;let N=this.buildRequest({nominate:!1,localUsername:Q,remoteUsername:J,iceControlling:U});try{if(await q.protocol.request(N,q.remoteAddr,Buffer.from(this.remotePassword,"utf8"),0),Y=0,this.state==="disconnected")this.setState("connected")}catch(A){if(q.id===this.nominated?.id){t1("no stun response"),Y++,this.setState("disconnected");break}}if(Y>=xF){t1("Consent to send expired"),this.queryConsentHandle=void 0,this.setState("closed");break}}}catch(q){}})};async close(){if(this.setState("closed"),this.queryConsentHandle?.resolve?.(),this.checkList&&!this.checkListDone)this.checkListState.put(new Promise((W)=>{W($N)}));this.nominated=void 0;for(let W of this.protocols)if(W.close)await W.close();this.protocols=[],this.localCandidates=[],this.lookup?.close?.(),this.lookup=void 0}setState(W){this.state=W,this.stateChanged.execute(W)}async addRemoteCandidate(W){if(!W){this.remoteCandidatesEnd=!0;return}if(W.host.includes(".local"))try{if(!this.lookup)this.lookup=new hn;let G=await this.lookup.lookup(W.host);W.host=G}catch(G){return}try{kF(W)}catch(G){return}t1("addRemoteCandidate",W),this._remoteCandidates.push(W),this.pairRemoteCandidate(W),this.sortCheckList()}send=async(W)=>{let G=this.nominated;if(G)await G.protocol.sendData(W,G.remoteAddr),G.packetsSent++,G.bytesSent+=W.length;else return};getDefaultCandidate(){let W=this.localCandidates.sort((X,Y)=>X.priority-Y.priority),[G]=W;return G}set remoteCandidates(W){if(this.remoteCandidatesEnd)throw Error("Cannot set remote candidates after end-of-candidates.");this._remoteCandidates=[];for(let G of W){try{kF(G)}catch(X){continue}this._remoteCandidates.push(G)}this.remoteCandidatesEnd=!0}get remoteCandidates(){return this._remoteCandidates}get candidatePairs(){return this.checkList}sortCheckList(){pn(this.checkList,this.iceControlling)}findPair(W,G){return this.checkList.find((Y)=>bN.default(Y.protocol,W)&&bN.default(Y.remoteCandidate,G))}switchRole(W){t1("switch role",W),this.iceControlling=W,this.sortCheckList()}checkComplete(W){if(W.handle=void 0,W.state===3){if(W.nominated&&(W.remoteCandidate.generation!=null?W.remoteCandidate.generation===this.generation:!0)&&this.nominated==null){t1("nominated",W.toJSON()),this.nominated=W,this.nominating=!1;for(let G of this.checkList)if(G.component===W.component&&[1,0].includes(G.state))G.updateState(4)}if(this.nominated){if(!this.checkListDone)t1("ICE completed"),this.checkListState.put(new Promise((G)=>G(SF))),this.checkListDone=!0;return}t1("not completed",W.toJSON());for(let G of this.checkList)if(G.localCandidate.foundation===W.localCandidate.foundation&&G.state===0)G.updateState(1)}{let G=[3,4];if(this.checkList.find(({state:X})=>!G.includes(X)))return}if(!this.iceControlling){if(this.checkList.find(({state:X})=>X===3))return}if(!this.checkListDone)t1("ICE failed"),this.checkListState.put(new Promise((G)=>{G($N)}))}checkStart=(W)=>kO(async(G)=>{t1("check start",W.toJSON()),W.updateState(2);let X={},{remotePassword:Y,remoteUsername:Z,generation:V}=this,Q=W.localCandidate.ufrag??this.localUsername,J=this.iceControlling&&!this.remoteIsLite,U=this.buildRequest({nominate:J,localUsername:Q,remoteUsername:Z,iceControlling:this.iceControlling}),q=performance.now();try{let[N,A]=await W.protocol.request(U,W.remoteAddr,Buffer.from(Y,"utf8"),4),I=(performance.now()-q)/1000;W.rtt=I,W.totalRoundTripTime+=I,W.roundTripTimeMeasurements++,t1("response received",U.toJSON(),N.toJSON(),A,{localUsername:Q,remoteUsername:Z,remotePassword:Y,generation:V,rtt:I}),X.response=N,X.addr=A}catch(N){let A=N;if(t1("failure case",U.toJSON(),A.response?JSON.stringify(A.response.toJSON(),null,2):N,{localUsername:Q,remoteUsername:Z,remotePassword:Y,generation:V},W.remoteAddr),A.response?.getAttributeValue("ERROR-CODE")[0]===487){if(U.attributesKeys.includes("ICE-CONTROLLED"))this.switchRole(!0);else if(U.attributesKeys.includes("ICE-CONTROLLING"))this.switchRole(!1);await this.checkStart(W).awaitable,G();return}if(A.response?.getAttributeValue("ERROR-CODE")[0]===401){t1("retry 401",W.toJSON()),await this.checkStart(W).awaitable,G();return}else{t1("checkStart CandidatePairState.FAILED",W.toJSON()),W.updateState(4),this.checkComplete(W),G();return}}if(!bN.default(X.addr,W.remoteAddr)){W.updateState(4),this.checkComplete(W),G();return}if(J||W.remoteNominated)W.nominated=!0;else if(this.iceControlling&&!this.nominating){this.nominating=!0;let N=this.buildRequest({nominate:!0,localUsername:Q,remoteUsername:Z,iceControlling:this.iceControlling});try{await W.protocol.request(N,W.remoteAddr,Buffer.from(this.remotePassword,"utf8"))}catch(A){W.updateState(4),this.checkComplete(W);return}W.nominated=!0}W.updateState(3),this.checkComplete(W),G()});addPair(W){this.checkList.push(W),this.sortCheckList()}checkIncoming(W,G,X){let Y=W.getAttributeValue("USERNAME"),{remoteUsername:Z}=vF(Y),V,[Q,J]=G;for(let q of this.remoteCandidates)if(q.host===Q&&q.port===J){V=q;break}if(!V)V=new DG(yQ(10),1,"udp",W.getAttributeValue("PRIORITY"),Q,J,"prflx",void 0,void 0,void 0,void 0,void 0),this._remoteCandidates.push(V);let U=this.findPair(X,V);if(!U)U=new FF(X,V,this.iceControlling),U.updateState(1),this.addPair(U);if(U.localCandidate.ufrag=Z,t1("Triggered Checks",W.toJSON(),U.toJSON(),{localUsername:this.localUsername,remoteUsername:this.remoteUsername,localPassword:this.localPassword,remotePassword:this.remotePassword,generation:this.generation}),[1,4].includes(U.state))U.handle=this.checkStart(U);if(W.attributesKeys.includes("USE-CANDIDATE")&&!this.iceControlling){if(U.remoteNominated=!0,U.state===3)U.nominated=!0,this.checkComplete(U)}}tryPair(W,G){if(W.localCandidate?.canPairWith(G)&&!this.findPair(W,G)){let X=new FF(W,G,this.iceControlling);if(this.options.filterCandidatePair&&!this.options.filterCandidatePair(X))return;X.updateState(1),this.addPair(X)}}pairLocalProtocol(W){for(let G of this.remoteCandidates)this.tryPair(W,G)}pairRemoteCandidate=(W)=>{for(let G of this.protocols)this.tryPair(G,W)};buildRequest({nominate:W,remoteUsername:G,localUsername:X,iceControlling:Y}){let Z=an({remoteUsername:G,localUsername:X}),V=new b7(1,0);if(V.setAttribute("USERNAME",Z).setAttribute("PRIORITY",hN("prflx")),Y){if(V.setAttribute("ICE-CONTROLLING",this.tieBreaker),W)V.setAttribute("USE-CANDIDATE",null)}else V.setAttribute("ICE-CONTROLLED",this.tieBreaker);return V}respondError(W,G,X,Y){let Z=new b7(W.messageMethod,272,W.transactionId);Z.setAttribute("ERROR-CODE",Y).addMessageIntegrity(Buffer.from(this.localPassword,"utf8")).addFingerprint(),X.sendStun(Z,G).catch((V)=>{t1("sendStun error",V)})}},an=({remoteUsername:W,localUsername:G})=>{return`${W}:${G}`},vF=(W)=>{let[G,X]=W.split(":");return{remoteUsername:G,localUsername:X}};function gF(W){return W.map((G,X)=>[X,G])}function h4(W,G){let X=W.split(G);return[X[0],X.slice(1).join(G)]}var UK=class extends sn{addEventListener=(W,G)=>{this.addListener(W,G)};removeEventListener=(W,G)=>{this.removeListener(W,G)}},tn=M1("werift:packages/webrtc/src/dataChannel.ts");function en(W){return Buffer.isBuffer(W)?W.length:Buffer.byteLength(W)}var $S=class extends UK{constructor(W,G,X=!0){super();if(this.sctp=W,this.parameters=G,this.sendOpen=X,this.id=this.parameters.id,G.negotiated){if(this.id==null||this.id<0||this.id>65534)throw Error("ID must be in range 0-65534 if data channel is negotiated out-of-band");this.sctp.dataChannelAddNegotiated(this)}else if(X)this.sendOpen=!1,this.sctp.dataChannelOpen(this)}stateChange=new f0;stateChanged=new f0;onMessage=new f0;error=new f0;bufferedAmountLow=new f0;onopen;onclose;onclosing;onmessage;onerror;isCreatedByRemote=!1;id;readyState="connecting";bufferedAmount=0;_bufferedAmountLowThreshold=0;messagesSent=0;bytesSent=0;messagesReceived=0;bytesReceived=0;get ordered(){return this.parameters.ordered}get maxRetransmits(){return this.parameters.maxRetransmits}get maxPacketLifeTime(){return this.parameters.maxPacketLifeTime}get label(){return this.parameters.label}get protocol(){return this.parameters.protocol}get negotiated(){return this.parameters.negotiated}get bufferedAmountLowThreshold(){return this._bufferedAmountLowThreshold}set bufferedAmountLowThreshold(W){if(W<0||W>4294967295)throw Error("bufferedAmountLowThreshold must be in range 0 - 4294967295");this._bufferedAmountLowThreshold=W}setId(W){this.id=W}setReadyState(W){if(W!==this.readyState){switch(this.readyState=W,this.stateChange.execute(W),this.stateChanged.execute(W),W){case"open":if(this.onopen)this.onopen();this.emit("open");break;case"closed":if(this.onclose)this.onclose();this.emit("close");break;case"closing":if(this.onclosing)this.onclosing();break}tn("change state",W)}}addBufferedAmount(W){let G=this.bufferedAmount>this.bufferedAmountLowThreshold&&this.bufferedAmount+W<=this.bufferedAmountLowThreshold;if(this.bufferedAmount+=W,G)this.bufferedAmountLow.execute(),this.emit("bufferedamountlow")}send(W){let G=this.sctp.datachannelSend(this,W);this.messagesSent++,this.bytesSent+=G}close(){this.sctp.dataChannelClose(this)}},FS=class{label="";maxPacketLifeTime;maxRetransmits;ordered=!0;protocol="";negotiated=!1;id;constructor(W={}){Object.assign(this,W)}};var wH=()=>({type:"nack"}),JJ=()=>({type:"nack",parameter:"pli"}),jH=()=>({type:"goog-remb"}),Wi=()=>({type:"transport-cc"}),$G=class{payloadType;mimeType;clockRate;channels;rtcpFeedback=[];parameters;direction="all";constructor(W){Object.assign(this,W)}get name(){return this.mimeType.split("/")[1]}get contentType(){return this.mimeType.split("/")[0]}get str(){let W=`${this.name}/${this.clockRate}`;if(this.channels===2)W+="/2";return W}},Gi=class{id;uri;constructor(W){Object.assign(this,W)}};var Xi=class{type;parameter;constructor(W={}){Object.assign(this,W)}},Yi=class{ssrc;constructor(W={}){Object.assign(this,W)}},Zi=class{ssrc;payloadType;rtx;constructor(W){Object.assign(this,W)}},SS=class{rid;direction;constructor(W){Object.assign(this,W)}},Vi=(W={})=>new $G({mimeType:"video/h264",clockRate:90000,rtcpFeedback:[wH(),JJ(),jH()],parameters:"profile-level-id=42e01f;packetization-mode=1;level-asymmetry-allowed=1",...W}),xS=(W={})=>new $G({mimeType:"video/VP8",clockRate:90000,rtcpFeedback:[wH(),JJ(),jH()],...W}),Qi=(W={})=>new $G({mimeType:"video/VP9",clockRate:90000,rtcpFeedback:[wH(),JJ(),jH()],...W}),Ji=(W={})=>new $G({mimeType:"video/AV1X",clockRate:90000,rtcpFeedback:[wH(),JJ(),jH()],...W}),kS=(W={})=>new $G({mimeType:"audio/OPUS",clockRate:48000,channels:2,...W}),_S=(W={})=>new $G({mimeType:"audio/PCMU",clockRate:8000,channels:1,payloadType:0,...W}),yS=[Ji(),Qi(),xS(),Vi(),kS(),_S()].map((W)=>W.mimeType),oH0=yS.filter((W)=>W.toLowerCase().startsWith("video/")),nH0=yS.filter((W)=>W.toLowerCase().startsWith("audio/"));var uF=2,hF=3,Hi=0,SN=50,bF=51,mF=53,Ai=56,zi=57,Ii="0.0.0.0",fF=9,gO={auto:"actpass",client:"active",server:"passive"},cF=Object.keys(gO).reduce((W,G)=>{let X=gO[G];return W[X]=G,W},{}),wi=["apt","max-fr","max-fs","maxplaybackrate","minptime","stereo","useinbandfec"],vS=["cname","msid","mslabel","label"],pF={SRTP_AES128_CM_HMAC_SHA1_80:IH,SRTP_AEAD_AES_128_GCM:VJ},mN=["sendonly","sendrecv"],ji=["sendrecv","recvonly"],Oi=class extends Map{constructor(W){super();if(W)for(let G of W)this.set(G.id,G)}};function Y8(W,...G){let X=G.filter((Y)=>Y!==void 0);return`${W}_${X.join("_")}`}function FG(){return performance.now()}var Ki=class{constructor(W,G,X,Y,Z){if(this.kind=W,this.receiver=X,this.sender=Y,this._direction=Z,G)this.setDtlsTransport(G)}id=Ni().toString();onTrack=new f0;mid;mLineIndex;usedForSender=!1;_currentDirection;offerDirection;_codecs=[];set codecs(W){this._codecs=W}get codecs(){return this._codecs}headerExtensions=[];options={};stopping=!1;stopped=!1;get dtlsTransport(){return this.receiver.dtlsTransport}get direction(){return this._direction}setDirection(W){if(this._direction=W,mN.includes(this._currentDirection??""))this.usedForSender=!0}get currentDirection(){return this._currentDirection}setCurrentDirection(W){this._currentDirection=W}setDtlsTransport(W){this.receiver.setDtlsTransport(W),this.sender.setDtlsTransport(W)}get msid(){return`${this.sender.streamId} ${this.sender.trackId}`}addTrack(W){if(this.receiver.addTrack(W))this.onTrack.execute(W,this)}stop(){if(this.stopping)return;this.stopping=!0}getPayloadType(W){return this.codecs.find((G)=>G.mimeType.toLowerCase().includes(W.toLowerCase()))?.payloadType}getCodecStats(){let W=FG(),G=[];if(!this.dtlsTransport)return G;let X=Y8("transport",this.dtlsTransport.id);for(let Y of this.codecs){let Z={type:"codec",id:Y8("codec",Y.payloadType,X),timestamp:W,payloadType:Y.payloadType,transportId:X,mimeType:Y.mimeType,clockRate:Y.clockRate,channels:Y.channels,sdpFmtpLine:Y.parameters};G.push(Z)}return G}},Ci="inactive",gS="sendonly",uS="recvonly",hS="sendrecv",wO=[Ci,gS,uS,hS],uO=class extends UK{uuid=bS().toString();streamId;remote=!1;label;kind;id;ssrc;rid;header;codec;enabled=!0;onReceiveRtp=new f0;onReceiveRtcp=new f0;onSourceChanged=new f0;stopped=!1;muted=!0;constructor(W){super();Object.assign(this,W),this.onReceiveRtp.subscribe((G)=>{this.muted=!1,this.header=G.header}),this.label=`${this.remote?"remote":"local"} ${this.kind}`}stop=()=>{this.stopped=!0,this.muted=!0,this.onReceiveRtp.complete(),this.emit("ended")};writeRtp=(W)=>{if(this.remote)throw Error("this is remoteTrack");if(this.stopped)return;let G=Buffer.isBuffer(W)?a6.deSerialize(W):W;G.header.payloadType=this.codec?.payloadType??G.header.payloadType,this.onReceiveRtp.execute(G)}},Di=class{id;tracks=[];constructor(W){if(Array.isArray(W))this.tracks=W;else Object.assign(this,W);this.id??=bS().toString()}addTrack(W){W.streamId=this.id,this.tracks.push(W)}getTracks(){return this.tracks}getAudioTracks(){return this.tracks.filter((W)=>W.kind==="audio")}getVideoTracks(){return this.tracks.filter((W)=>W.kind==="video")}},Mi=M1("werift:packages/webrtc/src/utils.ts");function mS(W,G){let X=(V)=>V.toUpperCase(),Y=(V)=>V.match(/(.{2})/g).join(":"),Z=qi(G).update(W).digest("hex");return Y(X(Z))}var Ti={sha1:"sha1","sha-1":"sha1",sha224:"sha224","sha-224":"sha224",sha256:"sha256","sha-256":"sha256",sha384:"sha384","sha-384":"sha384",sha512:"sha512","sha-512":"sha512"};function fS(W){return Ti[W.trim().toLowerCase()]}function hO(W){return W.replace(/[^0-9a-f]/gi,"").toLowerCase()}function Pi(W){let G=W[0];return G>19&&G<64}var cS=(W,G)=>wO[wO.indexOf(W)&wO.indexOf(G)];function Ri(W){if(W==="sendonly")return"recvonly";if(W==="recvonly")return"sendonly";return W}var pS=Date.now,Li=BigInt(Date.now())*1000n-process.hrtime.bigint()/1000n,Bi=()=>{return Li+process.hrtime.bigint()/1000n},QH=()=>Date.now()/1000,Ei=()=>{let G=(FN.timeOrigin+FN.now()-Date.UTC(1900,0,1))/1000,[X,Y]=G.toString().split(".").map(Number);return L8([4,4],[X,Y]).readBigUInt64BE()},lS=(W)=>{let G=L8([8],[W]),[,X,Y]=r9(G,[2,2,2,2]);return L8([2,2],[X,Y]).readUInt32BE()};function $i(W){let G=(J)=>{if(!J)return;let[U,q]=J.split(":");return[U,Number.parseInt(q)]},X=G(W.find(({urls:J})=>J.includes("stun:"))?.urls.slice(5)),Y=G(W.find(({urls:J})=>J.includes("turn:"))?.urls.slice(5)),{credential:Z,username:V}=W.find(({urls:J})=>J.includes("turn:"))||{},Q={stunServer:X,turnServer:Y,turnUsername:V,turnPassword:Z};return Mi("iceOptions",Q),Q}var WA0=aN.createSelfSignedCertificateWithKey;var Fi=(W,G)=>{if(!W||typeof W!=="object")if(G!==null&&typeof G==="object")return G;else return W;if(!G||typeof G!=="object"){if(G==null)return W;return G}for(let X in G)if(Object.prototype.hasOwnProperty.call(G,X)){let Y=G[X];if(Y!=null)W[X]=Y}return W},Si=M1("werift:packages/webrtc/src/media/receiver/nack.ts"),lF=150,xi=class{constructor(W){this.receiver=W}newEstSeqNum=0;_lost={};nackLoop;onPacketLost=new f0;mediaSourceSsrc;retryCount=10;closed=!1;get lostSeqNumbers(){return Object.keys(this._lost).map(Number).sort()}getLost(W){return this._lost[W]}setLost(W,G){if(this._lost[W]=G,this.nackLoop||this.closed)return;this.nackLoop=setInterval(async()=>{try{if(await this.sendNack(),!Object.keys(this._lost).length)clearInterval(this.nackLoop),this.nackLoop=void 0}catch(X){Si("failed to send nack",X)}},5)}removeLost(W){delete this._lost[W]}addPacket(W){let{sequenceNumber:G,ssrc:X}=W.header;if(this.mediaSourceSsrc=X,this.newEstSeqNum===0){this.newEstSeqNum=G;return}if(this.getLost(G)){this.removeLost(G);return}if(G===M9(this.newEstSeqNum,1))this.newEstSeqNum=G;else if(G>M9(this.newEstSeqNum,1)){for(let Y=M9(this.newEstSeqNum,1);Y<G;Y=M9(Y,1))this.setLost(Y,1);this.newEstSeqNum=G,this.pruneLost()}}pruneLost(){if(this.lostSeqNumbers.length>lF)this._lost=Object.entries(this._lost).slice(-lF).reduce((W,[G,X])=>{return W[G]=X,W},{})}close(){this.closed=!0,clearInterval(this.nackLoop),this._lost={}}updateRetryCount(){this.lostSeqNumbers.forEach((W)=>{if(this._lost[W]++>this.retryCount)return this.removeLost(W),W})}sendNack=()=>new Promise((W,G)=>{if(this.lostSeqNumbers.length>0&&this.mediaSourceSsrc){let X=new YH({senderSsrc:this.receiver.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,lost:this.lostSeqNumbers}),Y=new uY({feedback:X});this.receiver.dtlsTransport.sendRtcp([Y]).then(W).catch(G),this.updateRetryCount(),this.onPacketLost.execute(X)}})},_i=M1("werift:packages/webrtc/media/receiver/receiverTwcc"),yi=class{constructor(W,G,X){this.dtlsTransport=W,this.rtcpSsrc=G,this.mediaSourceSsrc=X,this.runTWCC()}extensionInfo={};twccRunning=!1;fbPktCount=0;lastTimestamp;handleTWCC(W){if(this.extensionInfo[W]={tsn:W,timestamp:Bi()},Object.keys(this.extensionInfo).length>10)this.sendTWCC()}async runTWCC(){while(this.twccRunning)this.sendTWCC(),await ki(100)}sendTWCC(){if(Object.keys(this.extensionInfo).length===0)return;let W=Object.values(this.extensionInfo).sort((N,A)=>N.tsn-A.tsn),G=W[0].tsn,X=W.slice(-1)[0].tsn,Y=[],Z=W[0].tsn,V=M9(X-G,1),Q,J,U=[];for(let N=G;N<=X;N++){let A=this.extensionInfo[N]?.timestamp;if(A){if(!this.lastTimestamp)this.lastTimestamp=A;if(!Q)Q=this.lastTimestamp;let H=A-this.lastTimestamp;this.lastTimestamp=A;let I=new yN({delta:Number(H)});if(I.parseDelta(),U.push(I),J!=null&&J.status!==I.type)Y.push(new lQ({packetStatus:J.status,runLength:N-J.minTSN})),J={minTSN:N,status:I.type};if(N===X)if(J!=null)Y.push(new lQ({packetStatus:J.status,runLength:N-J.minTSN+1}));else Y.push(new lQ({packetStatus:I.type,runLength:1}));if(J==null)J={minTSN:N,status:I.type}}}if(!Q)return;let q=new uY({feedback:new ZH({senderSsrc:this.rtcpSsrc,mediaSourceSsrc:this.mediaSourceSsrc,baseSequenceNumber:Z,packetStatusCount:V,referenceTime:Rd(Math.floor(Number(Q/1000n/64n))),fbPktCount:this.fbPktCount,recvDeltas:U,packetChunks:Y})});this.dtlsTransport.sendRtcp([q]).catch((N)=>{_i(N)}),this.extensionInfo={},this.fbPktCount=Pd(this.fbPktCount,1)}},vi=class{base_seq;max_seq;cycles=0;packets_received=0;clockRate;jitter_q4=0;last_arrival;last_timestamp;expected_prior=0;received_prior=0;constructor(W){this.clockRate=W}add(W,G=Date.now()/1000){let X=this.max_seq==null||M2(W.header.sequenceNumber,this.max_seq);if(this.packets_received++,this.base_seq==null)this.base_seq=W.header.sequenceNumber;if(X){let Y=pQ(G*this.clockRate);if(this.max_seq!=null&&W.header.sequenceNumber<this.max_seq)this.cycles+=65536;if(this.max_seq=W.header.sequenceNumber,W.header.timestamp!==this.last_timestamp&&this.packets_received>1){let Z=Math.abs(Y-(this.last_arrival??0)-(W.header.timestamp-(this.last_timestamp??0)));this.jitter_q4+=Z-(this.jitter_q4+8>>4)}this.last_arrival=Y,this.last_timestamp=W.header.timestamp}}get fraction_lost(){let W=this.packets_expected-this.expected_prior;this.expected_prior=this.packets_expected;let G=this.packets_received-this.received_prior;this.received_prior=this.packets_received;let X=W-G;if(W==0||X<=0)return 0;else return Math.floor((X<<8)/W)}get jitter(){return this.jitter_q4>>4}get packets_expected(){return this.cycles+(this.max_seq??0)-(this.base_seq??0)+1}get packets_lost(){let W=this.packets_expected-this.packets_received;return W<0?0:W}},r5=M1("werift:packages/webrtc/src/transport/dtls.ts"),dF=class W{constructor(G,X,Y,Z=[]){this.config=G,this.iceTransport=X,this.localCertificate=Y,this.srtpProfiles=Z,this.localCertificate??=W.localCertificate}id=hi().toString();state="new";role="auto";srtpStarted=!1;transportSequenceNumber=0;bytesSent=0;bytesReceived=0;packetsSent=0;packetsReceived=0;dataReceiver=()=>{};dtls;srtp;srtcp;onStateChange=new f0;onRtcp=new f0;onRtp=new f0;static localCertificate;static localCertificatePromise;remoteParameters;get localParameters(){return new mO(this.localCertificate?this.localCertificate.getFingerprints():[],this.role)}static async SetupCertificate(){if(this.localCertificate)return this.localCertificate;if(this.localCertificatePromise)return this.localCertificatePromise;return this.localCertificatePromise=(async()=>{let{certPem:G,keyPem:X,signatureHash:Y}=await aN.createSelfSignedCertificateWithKey({signature:c4.ecdsa_3,hash:rN.sha256_4},i6.secp256r1_23);return this.localCertificate=new dS(X,G,Y),this.localCertificate})(),this.localCertificatePromise}setRemoteParams(G){let X=mi([...this.remoteParameters?.fingerprints??[],...G.fingerprints]),Y=G.role==="auto"&&this.remoteParameters?.role?this.remoteParameters.role:G.role;this.remoteParameters=new mO(X,Y)}async start(){if(this.state!=="new")throw Error("state must be new");if(!this.remoteParameters||this.remoteParameters.fingerprints.length===0)throw Error("remote fingerprint not exist");if(this.role==="auto")if(this.iceTransport.role==="controlling")this.role="server";else this.role="client";this.setState("connecting"),await new Promise(async(G,X)=>{if(this.role==="server")this.dtls=new zn({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:oF(this.iceTransport.connection),srtpProfiles:this.srtpProfiles,extendedMasterSecret:!0,certificateRequest:!0});else this.dtls=new jF({cert:this.localCertificate?.certPem,key:this.localCertificate?.privateKey,signatureHash:this.localCertificate?.signatureHash,transport:oF(this.iceTransport.connection),srtpProfiles:this.srtpProfiles,extendedMasterSecret:!0});if(this.dtls.onData.subscribe((Y)=>{if(this.config.debug.inboundPacketLoss&&this.config.debug.inboundPacketLoss/100<Math.random())return;this.dataReceiver(Y)}),this.dtls.onClose.subscribe(()=>{if(this.state!=="failed")this.setState("closed")}),this.dtls.onConnect.once(G),this.dtls.onError.once((Y)=>{this.setState("failed"),r5("dtls failed",Y),X(Y)}),this.dtls instanceof jF)await bi(100),this.dtls.connect().catch((Y)=>{this.setState("failed"),r5("dtls connect failed",Y),X(Y)})});try{this.verifyRemoteCertificateFingerprint()}catch(G){throw this.setState("failed"),this.dtls?.close(),G}if(this.srtpProfiles.length>0)this.startSrtp();this.setState("connected"),r5("dtls connected")}verifyRemoteCertificateFingerprint(){if(!this.remoteParameters||this.remoteParameters.fingerprints.length===0)throw Error("remote fingerprint not exist");let G=this.dtls?.remoteCertificate;if(!G)throw Error("remote certificate not available");let X=this.remoteParameters.fingerprints.flatMap(({algorithm:J,value:U})=>{let q=fS(J);if(!q)return[];let N=hO(U);if(!N)throw Error("remote fingerprint value is empty");return[{normalizedAlgorithm:q,normalizedValue:N}]});if(X.length===0)throw Error("no supported remote fingerprint algorithms");let Y=ci(X),Z=X.filter(({normalizedAlgorithm:J})=>J===Y),V=Z.reduce((J,{normalizedAlgorithm:U})=>{if(!J.has(U))J.set(U,hO(mS(G,U)));return J},new Map);if(!Z.some(({normalizedAlgorithm:J,normalizedValue:U})=>V.get(J)===U))throw Error("remote certificate fingerprint mismatch")}updateSrtpSession(){if(!this.dtls)throw Error();let G=this.dtls.srtp.srtpProfile;if(!G)throw Error("need srtpProfile");r5("selected SRTP Profile",G);let{localKey:X,localSalt:Y,remoteKey:Z,remoteSalt:V}=this.dtls.extractSessionKeys(jo(G),Oo(G)),Q={keys:{localMasterKey:X,localMasterSalt:Y,remoteMasterKey:Z,remoteMasterSalt:V},profile:G};this.srtp=new Xn(Q),this.srtcp=new Wn(Q)}startSrtp(){if(this.srtpStarted)return;this.srtpStarted=!0,this.updateSrtpSession(),this.iceTransport.connection.onData.subscribe((G)=>{if(this.config.debug.inboundPacketLoss&&this.config.debug.inboundPacketLoss/100<Math.random())return;if(!Do(G))return;if(this.bytesReceived+=G.length,this.packetsReceived++,Fo(G)){let X;try{X=this.srtcp.decrypt(G)}catch(Z){if(Z instanceof bY){r5("dropping invalid SRTCP packet",Z);return}throw Z}let Y;try{Y=$o.deSerialize(X)}catch(Z){r5("dropping malformed SRTCP packet",Z);return}for(let Z of Y)try{this.onRtcp.execute(Z)}catch(V){r5("RTCP error",V)}}else{let X;try{X=this.srtp.decrypt(G)}catch(Z){if(Z instanceof bY){r5("dropping invalid SRTP packet",Z);return}throw Z}let Y;try{Y=a6.deSerialize(X)}catch(Z){r5("dropping malformed SRTP packet",Z);return}try{this.onRtp.execute(Y)}catch(Z){r5("RTP error",Z)}}})}sendData=async(G)=>{if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return;if(!this.dtls)throw Error("dtls not established");await this.dtls.send(G)};async sendRtp(G,X){try{let Y=this.srtp.encrypt(G,X);if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return Y.length;return this.bytesSent+=Y.length,this.packetsSent++,await this.iceTransport.connection.send(Y).catch(()=>{}),Y.length}catch(Y){return r5("failed to send",Y),0}}async sendRtcp(G){let X=Buffer.concat(G.map((Z)=>Z.serialize())),Y=this.srtcp.encrypt(X);if(this.config.debug.outboundPacketLoss&&this.config.debug.outboundPacketLoss/100<Math.random())return Y.length;this.bytesSent+=Y.length,this.packetsSent++,await this.iceTransport.connection.send(Y).catch(()=>{})}setState(G){if(G!=this.state)this.state=G,this.onStateChange.execute(G)}async stop(){this.setState("closed"),await this.iceTransport.stop()}async getStats(){let G=FG(),X=[],Z={type:"transport",id:Y8("transport",this.id),timestamp:G,bytesSent:this.bytesSent,bytesReceived:this.bytesReceived,packetsSent:this.packetsSent,packetsReceived:this.packetsReceived,dtlsState:this.state,iceState:this.iceTransport.state,selectedCandidatePairId:this.iceTransport.connection.nominated?Y8("candidate-pair",this.iceTransport.connection.nominated.localCandidate.foundation,this.iceTransport.connection.nominated.remoteCandidate.foundation):void 0,localCertificateId:this.localCertificate?Y8("certificate","local"):void 0,remoteCertificateId:this.remoteParameters?Y8("certificate","remote"):void 0,dtlsRole:this.role==="auto"?void 0:this.role};if(X.push(Z),this.localCertificate){let Q=this.localCertificate.getFingerprints();if(Q.length>0){let J={type:"certificate",id:Y8("certificate","local"),timestamp:G,fingerprint:Q[0].value,fingerprintAlgorithm:Q[0].algorithm,base64Certificate:Buffer.from(this.localCertificate.certPem).toString("base64")};X.push(J)}}if(this.remoteParameters&&this.remoteParameters.fingerprints.length>0){let Q={type:"certificate",id:Y8("certificate","remote"),timestamp:G,fingerprint:this.remoteParameters.fingerprints[0].value,fingerprintAlgorithm:this.remoteParameters.fingerprints[0].algorithm,base64Certificate:""};X.push(Q)}let V=await this.iceTransport.getStats();return X.push(...V),X}};var dS=class{constructor(W,G,X){this.certPem=G,this.signatureHash=X;let Y=sQ.Certificate.fromPEM(Buffer.from(G));this.publicKey=Y.publicKey.toPEM(),this.privateKey=sQ.PrivateKey.fromPEM(Buffer.from(W)).toPEM()}publicKey;privateKey;getFingerprints(){return[new bO("sha-256",mS(sQ.Certificate.fromPEM(Buffer.from(this.certPem)).raw,"sha256"))]}},bO=class{constructor(W,G){this.algorithm=W,this.value=G}},mO=class{constructor(W=[],G){this.fingerprints=W,this.role=G}},mi=(W)=>{let G=new Set;return W.filter(({algorithm:X,value:Y})=>{let Z=`${fS(X)??X.trim().toLowerCase()}:${hO(Y)}`;if(G.has(Z))return!1;return G.add(Z),!0})},fi=["sha512","sha384","sha256","sha224","sha1"],ci=(W)=>{return fi.find((G)=>W.some(({normalizedAlgorithm:X})=>X===G))??W[0].normalizedAlgorithm},pi=class{constructor(W){this.ice=W,W.onData.subscribe((G)=>{if(Pi(G)){if(this.onData)this.onData(G)}})}closed=!1;onData=()=>{};get address(){return{}}type="ice";send=(W)=>{return this.ice.send(W)};async close(){this.closed=!0,this.ice.close()}},oF=(W)=>new pi(W),nF=M1("werift:packages/webrtc/src/transport/ice.ts"),di=class{constructor(W){this.iceGather=W,this.connection=this.iceGather.connection,this.connection.stateChanged.subscribe((G)=>{this.setState(G)}),this.iceGather.onIceCandidate=(G)=>{this.onIceCandidate.execute(G)}}id=li().toString();connection;state="new";waitStart;renominating=!1;onStateChange=new f0;onIceCandidate=new f0;onNegotiationNeeded=new f0;get role(){if(this.connection.iceControlling)return"controlling";else return"controlled"}get gatheringState(){return this.iceGather.gatheringState}get localCandidates(){return this.iceGather.localCandidates}get localParameters(){return this.iceGather.localParameters}setState(W){if(W!==this.state)this.state=W,this.onStateChange.execute(W)}gather(){return this.iceGather.gather()}addRemoteCandidate=(W)=>{if(!this.connection.remoteCandidatesEnd)if(!W)return this.connection.addRemoteCandidate(void 0);else return this.connection.addRemoteCandidate(ni(W))};setRemoteParams(W,G=!1){if(G)this.renominating=!0;if(this.connection.remoteUsername&&this.connection.remotePassword&&(this.connection.remoteUsername!==W.usernameFragment||this.connection.remotePassword!==W.password))if(this.renominating)nF("renomination",W),this.connection.resetNominatedPair(),this.renominating=!1;else nF("restart",W),this.restart();this.connection.setRemoteParams(W)}restart(){this.connection.restart(),this.setState("new"),this.iceGather.gatheringState="new",this.waitStart=void 0,this.onNegotiationNeeded.execute()}async start(){if(this.state==="closed")throw Error("RTCIceTransport is closed");if(!this.connection.remotePassword||!this.connection.remoteUsername)throw Error("remoteParams missing");if(this.waitStart)await this.waitStart.asPromise();this.waitStart=new f0,this.setState("checking");try{await this.connection.connect()}catch(W){throw this.setState("failed"),W}this.waitStart.execute(),this.waitStart.complete(),this.waitStart=void 0}async stop(){if(this.state!=="closed")this.setState("closed"),await this.connection.close();this.onStateChange.complete(),this.onIceCandidate.complete(),this.onNegotiationNeeded.complete()}async getStats(){let W=FG(),G=[];for(let Y of this.localCandidates){let Z={type:"local-candidate",id:Y8("local-candidate",Y.foundation),timestamp:W,transportId:Y8("transport",this.id),address:Y.ip,port:Y.port,protocol:Y.protocol,candidateType:Y.type,priority:Y.priority,foundation:Y.foundation};G.push(Z)}for(let Y of this.connection.remoteCandidates){let Z=tQ(Y),V={type:"remote-candidate",id:Y8("remote-candidate",Z.foundation),timestamp:W,transportId:Y8("transport",this.id),address:Z.ip,port:Z.port,protocol:Z.protocol,candidateType:Z.type,priority:Z.priority,foundation:Z.foundation};G.push(V)}let X=this.connection?.candidatePairs?[...this.connection.candidatePairs.filter((Y)=>Y.nominated),...this.connection.candidatePairs.filter((Y)=>!Y.nominated)]:[];for(let Y of X){let Z={type:"candidate-pair",id:Y8("candidate-pair",Y.foundation),timestamp:W,transportId:Y8("transport",this.id),localCandidateId:Y8("local-candidate",Y.localCandidate.foundation),remoteCandidateId:Y8("remote-candidate",Y.remoteCandidate.foundation),state:Y.state,nominated:Y.nominated,packetsSent:Y.packetsSent,packetsReceived:Y.packetsReceived,bytesSent:Y.bytesSent,bytesReceived:Y.bytesReceived,currentRoundTripTime:Y.rtt};G.push(Z)}return G}};var oi=class{constructor(W={}){this.options=W,this.connection=new rn(!1,this.options),this.connection.onIceCandidate.subscribe((G)=>{this.onIceCandidate(tQ(G))})}onIceCandidate=()=>{};gatheringState="new";connection;onGatheringStateChange=new f0;async gather(){if(this.gatheringState==="new")this.setState("gathering"),await this.connection.gatherCandidates(),this.onIceCandidate(void 0),this.setState("complete")}get localCandidates(){return this.connection.localCandidates.map(tQ)}get localParameters(){return new nS({usernameFragment:this.connection.localUsername,password:this.connection.localPassword})}setState(W){if(W!==this.gatheringState)this.gatheringState=W,this.onGatheringStateChange.execute(W)}};function tQ(W){let G=new oS(W.component,W.foundation,W.host,W.port,W.priority,W.transport,W.type,W.generation,W.ufrag);return G.relatedAddress=W.relatedAddress,G.relatedPort=W.relatedPort,G.tcpType=W.tcptype,G}function ni(W){return new DG(W.foundation,W.component,W.protocol,W.priority,W.ip,W.port,W.type,W.relatedAddress,W.relatedPort,W.tcpType,W.generation,W.ufrag)}var ii=class{candidate;sdpMid;sdpMLineIndex;usernameFragment;constructor(W){Object.assign(this,W)}static fromSdp(W){let G=DG.fromSdp(W);return tQ(G).toJSON()}static isThis(W){if(typeof W?.candidate==="string")return!0}toJSON(){return{candidate:this.candidate,sdpMid:this.sdpMid,sdpMLineIndex:this.sdpMLineIndex,usernameFragment:this.usernameFragment}}},oS=class{constructor(W,G,X,Y,Z,V,Q,J,U){this.component=W,this.foundation=G,this.ip=X,this.port=Y,this.priority=Z,this.protocol=V,this.type=Q,this.generation=J,this.ufrag=U}relatedAddress;relatedPort;sdpMid;sdpMLineIndex;tcpType;toJSON(){return new ii({candidate:Yx(this),sdpMLineIndex:this.sdpMLineIndex,sdpMid:this.sdpMid,usernameFragment:this.ufrag})}static fromJSON(W){try{if(!W.candidate)throw Error("candidate is required");let G=Zx(W.candidate);return G.sdpMLineIndex=W.sdpMLineIndex??void 0,G.sdpMid=W.sdpMid??void 0,G}catch(G){}}},nS=class{iceLite=!1;usernameFragment;password;constructor(W={}){Object.assign(this,W)}},f7=class W{constructor(G=0,X=Buffer.from("")){this.flags=G,this._body=X}get body(){return this._body}set body(G){this._body=G}static type=-1;get type(){return W.type}get bytes(){if(!this.body)throw Error();let G=Buffer.alloc(4);return G.writeUInt8(this.type,0),G.writeUInt8(this.flags,1),G.writeUInt16BE(this.body.length+4,2),Buffer.concat([G,this.body,...[...Array(qJ(this.body.length))].map(()=>Buffer.from("\x00"))])}},qK=class extends f7{constructor(W=0,G){super(W,G);if(this.flags=W,G)this.initiateTag=G.readUInt32BE(0),this.advertisedRwnd=G.readUInt32BE(4),this.outboundStreams=G.readUInt16BE(8),this.inboundStreams=G.readUInt16BE(10),this.initialTsn=G.readUInt32BE(12),this.params=eS(G.slice(16));else this.initiateTag=0,this.advertisedRwnd=0,this.outboundStreams=0,this.inboundStreams=0,this.initialTsn=0,this.params=[]}initiateTag;advertisedRwnd;outboundStreams;inboundStreams;initialTsn;params;get body(){let W=Buffer.alloc(16);return W.writeUInt32BE(this.initiateTag,0),W.writeUInt32BE(this.advertisedRwnd,4),W.writeUInt16BE(this.outboundStreams,8),W.writeUInt16BE(this.inboundStreams,10),W.writeUInt32BE(this.initialTsn,12),Buffer.concat([W,tS(this.params)])}},fN=class W extends qK{static type=1;get type(){return W.type}},fO=class W extends qK{static type=2;get type(){return W.type}},si=class W extends qK{static type=130;get type(){return W.type}},cN=class W extends f7{constructor(G=0,X){super(G,X);if(this.flags=G,X){this.cumulativeTsn=X.readUInt32BE(0);let Y=4;while(Y<X.length)this.streams.push([X.readUInt16BE(Y),X.readUInt16BE(Y+2)]),Y+=4}else this.cumulativeTsn=0}static type=192;streams=[];cumulativeTsn;get type(){return W.type}set body(G){}get body(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.cumulativeTsn,0),Buffer.concat([G,...this.streams.map(([X,Y])=>{let Z=Buffer.alloc(4);return Z.writeUInt16BE(X,0),Z.writeUInt16BE(Y,2),Z})])}},pN=class W extends f7{constructor(G=0,X){super(G,X);if(this.flags=G,X)this.tsn=X.readUInt32BE(0),this.streamId=X.readUInt16BE(4),this.streamSeqNum=X.readUInt16BE(6),this.protocol=X.readUInt32BE(8),this.userData=X.slice(12)}static type=0;get type(){return W.type}tsn=0;streamId=0;streamSeqNum=0;protocol=0;userData=Buffer.from("");abandoned=!1;acked=!1;misses=0;retransmit=!1;sentCount=0;bookSize=0;expiry;maxRetransmits;sentTime;get bytes(){let G=16+this.userData.length,X=Buffer.alloc(16);X.writeUInt8(this.type,0),X.writeUInt8(this.flags,1),X.writeUInt16BE(G,2),X.writeUInt32BE(this.tsn,4),X.writeUInt16BE(this.streamId,8),X.writeUInt16BE(this.streamSeqNum,10),X.writeUInt32BE(this.protocol,12);let Y=Buffer.concat([X,this.userData]);if(G%4)Y=Buffer.concat([Y,...[...Array(qJ(G))].map(()=>Buffer.from("\x00"))]);return Y}},cO=class W extends f7{static type=10;get type(){return W.type}},pO=class W extends f7{static type=11;get type(){return W.type}},UJ=class extends f7{constructor(W=0,G=void 0){super(W,G);if(this.flags=W,G)this.params=eS(G)}params=[];get body(){return tS(this.params)}},lO=class W extends UJ{static type=6;get type(){return W.type}},lN=class W extends UJ{static type=9;static CODE={InvalidStreamIdentifier:1,MissingMandatoryParameter:2,StaleCookieError:3,OutofResource:4,UnresolvableAddress:5,UnrecognizedChunkType:6,InvalidMandatoryParameter:7,UnrecognizedParameters:8,NoUserData:9,CookieReceivedWhileShuttingDown:10,RestartofanAssociationwithNewAddresses:11,UserInitiatedAbort:12,ProtocolViolation:13};get type(){return W.type}get descriptions(){return this.params.map(([G,X])=>{return{name:(Object.entries(W.CODE).find(([,Z])=>Z===G)||[])[0],body:X}})}},dO=class W extends UJ{static type=4;get type(){return W.type}},iS=class W extends UJ{static type=5;get type(){return W.type}},oO=class W extends UJ{static type=130;get type(){return W.type}},nO=class W extends f7{constructor(G=0,X){super(G,X);if(this.flags=G,X){this.cumulativeTsn=X.readUInt32BE(0),this.advertisedRwnd=X.readUInt32BE(4);let Y=X.readUInt16BE(8),Z=X.readUInt16BE(10),V=12;[...Array(Y)].forEach(()=>{this.gaps.push([X.readUInt16BE(V),X.readUInt16BE(V+2)]),V+=4}),[...Array(Z)].forEach(()=>{this.duplicates.push(X.readUInt32BE(V)),V+=4})}}static type=3;get type(){return W.type}gaps=[];duplicates=[];cumulativeTsn=0;advertisedRwnd=0;get bytes(){let G=16+4*(this.gaps.length+this.duplicates.length),X=Buffer.alloc(16);X.writeUInt8(this.type,0),X.writeUInt8(this.flags,1),X.writeUInt16BE(G,2),X.writeUInt32BE(this.cumulativeTsn,4),X.writeUInt32BE(this.advertisedRwnd,8),X.writeUInt16BE(this.gaps.length,12),X.writeUInt16BE(this.duplicates.length,14);let Y=Buffer.concat([X,...this.gaps.map((Z)=>{let V=Buffer.alloc(4);return V.writeUInt16BE(Z[0],0),V.writeUInt16BE(Z[1],2),V})]);return Y=Buffer.concat([Y,...this.duplicates.map((Z)=>{let V=Buffer.alloc(4);return V.writeUInt32BE(Z,0),V})]),Y}},rS=class W extends f7{constructor(G=0,X){super(G,X);if(this.flags=G,X)this.cumulativeTsn=X.readUInt32BE(0)}static type=7;get type(){return W.type}cumulativeTsn=0;get body(){let G=Buffer.alloc(4);return G.writeUInt32BE(this.cumulativeTsn,0),G}},aS=class W extends f7{static type=8;get type(){return W.type}},sS=class W extends f7{static type=14;get type(){return W.type}},ti=[pN,fN,fO,nO,dO,iS,lO,rS,aS,lN,cO,pO,sS,oO,cN],ei=ti.reduce((W,G)=>{return W[G.type]=G,W},{});function qJ(W){let G=W%4;return G?4-G:0}function tS(W){let G=Buffer.from(""),X=Buffer.from("");return W.forEach(([Y,Z])=>{let V=Z.length+4,Q=Buffer.alloc(4);Q.writeUInt16BE(Y,0),Q.writeUInt16BE(V,2),G=Buffer.concat([G,X,Q,Z]),X=Buffer.concat([...Array(qJ(V))].map(()=>Buffer.from("\x00")))}),G}function eS(W){let G=[],X=0;while(X<=W.length-4){let Y=W.readUInt16BE(X),Z=W.readUInt16BE(X+2);G.push([Y,W.slice(X+4,X+Z)]),X+=Z+qJ(Z)}return G}function Wr(W){if(W.length<12)throw Error("SCTP packet length is less than 12 bytes");let G=W.readUInt16BE(0),X=W.readUInt16BE(2),Y=W.readUInt32BE(4),Z=W.readUInt32LE(8),V=D2(Buffer.concat([W.slice(0,8),Buffer.from("\x00\x00\x00\x00"),W.slice(12)]));if(Z!==V)throw Error("SCTP packet has invalid checksum");let Q=[],J=12;while(J+4<=W.length){let U=W.readUInt8(J),q=W.readUInt8(J+1),N=W.readUInt16BE(J+2),A=W.slice(J+4,J+N),H=ei[U.toString()];if(H)Q.push(new H(q,A));else throw Error("unknown");J+=N+qJ(N)}return[G,X,Y,Q]}function Gr(W,G,X,Y){let Z=Buffer.alloc(8);Z.writeUInt16BE(W,0),Z.writeUInt16BE(G,2),Z.writeUInt32BE(X,4);let V=Y.bytes,Q=D2(Buffer.concat([Z,Buffer.from("\x00\x00\x00\x00"),V])),J=Buffer.alloc(4);return J.writeUInt32LE(Q,0),Buffer.concat([Z,J,V])}function Xr(W){return W.map((G,X)=>[X,G])}function Yr(W){return W.reduce((G,X)=>{return G[X]=new f0,G},{})}var iO=class W{constructor(G,X,Y,Z){this.requestSequence=G,this.responseSequence=X,this.lastTsn=Y,this.streams=Z}static type=13;get type(){return W.type}get bytes(){let G=Buffer.from(r1.Pack("!LLL",[this.requestSequence,this.responseSequence,this.lastTsn]));return Buffer.concat([G,...this.streams.map((X)=>Buffer.from(r1.Pack("!H",[X])))])}static parse(G){let[X,Y,Z]=r1.Unpack("!LLL",G),V=[];for(let Q=12;Q<G.length;Q+=2)V.push(r1.Unpack("!H",G.slice(Q))[0]);return new W(X,Y,Z,V)}},Wx=class W{constructor(G,X){this.requestSequence=G,this.newStreams=X}static type=17;get type(){return W.type}get bytes(){return Buffer.from(r1.Pack("!LHH",[this.requestSequence,this.newStreams,0]))}static parse(G){let[X,Y]=r1.Unpack("!LHH",G);return new W(X,Y)}},xN={ReconfigResultSuccessPerformed:1,BadSequenceNumber:5},dN=class W{constructor(G,X){this.responseSequence=G,this.result=X}static type=16;get type(){return W.type}get bytes(){return Buffer.from(r1.Pack("!LL",[this.responseSequence,this.result]))}static parse(G){let[X,Y]=r1.Unpack("!LL",G);return new W(X,Y)}},rF={13:iO,16:dN,17:Wx},i1=M1("werift/sctp/sctp"),Zr=24,Vr=60,aF=65535,a5=1200,mQ=1,Gx=2,rO=4,sF=10,Qr=8,tF=0.125,eF=0.25,W2=3,Jr=1,Ur=60,JH=4294967296,qr=200,Nr=30,G2=135,X2=7,Y2=32776,Z2=49152,Hr=["new","closed","connected","connecting"],Ar=class W{constructor(G,X=5000){this.transport=G,this.port=X,this.localPort=this.port,this.transport.onData=(Y)=>{this.handleData(Y)}}flush=new f0;stateChanged=Yr(Hr);onReconfigStreams=new f0;onReceive=new f0;onSackReceived=async()=>{};associationState=1;started=!1;state="new";isServer=!0;isStopping=!1;isClosed=!1;hmacKey=ai(16);localPartialReliability=!0;localPort;localVerificationTag=DO();remoteExtensions=[];remotePartialReliability=!0;remotePort;remoteVerificationTag=0;advertisedRwnd=1048576;peerAdvertisedRwnd=this.advertisedRwnd;get peerRwnd(){return Math.max(0,this.peerAdvertisedRwnd-this.flightSize)}inboundStreams={};_inboundStreamsCount=0;_inboundStreamsMax=aF;lastReceivedTsn;sackDuplicates=[];sackMisOrdered=new Set;sackNeeded=!1;sackPacketCount=0;sackHasNewDataInPacket=!1;sackImmediate=!1;sackTimeout;cwnd=3*a5;fastRecoveryExit;fastRecoveryTransmit=!1;forwardTsnChunk;flightSize=0;outboundQueue=[];outboundStreamSeq={};_outboundStreamsCount=aF;localTsn=Number(DO());lastSackedTsn=KG(this.localTsn);advancedPeerAckTsn=KG(this.localTsn);partialBytesAcked=0;sentQueue=[];transmitting=!1;transmitRequested=!1;reconfigRequestSeq=this.localTsn;reconfigResponseSeq=0;reconfigRequest;reconfigQueue=[];srtt;rttvar;rto=W2;timer1Handle;timer1Chunk;timer1Failures=0;timer2Handle;timer2Chunk;timer2Failures=0;timer3Handle;timerReconfigHandle;timerReconfigFailures=0;timerHeartbeatHandle;heartbeatInterval=Nr;ssthresh;get isStopped(){return this.isStopping||this.isClosed}get maxChannels(){if(this._inboundStreamsCount>0)return Math.min(this._inboundStreamsCount,this._outboundStreamsCount);return}static client(G,X=5000){let Y=new W(G,X);return Y.isServer=!1,Y}static server(G,X=5000){let Y=new W(G,X);return Y.isServer=!0,Y}async handleData(G){if(this.isStopped)return;let X,[,,Y,Z]=Wr(G);if(Z.filter((Q)=>Q.type===fN.type).length>0){if(Z.length!=1)throw Error();X=0}else X=this.localVerificationTag;if(Y!==X)return;this.sackHasNewDataInPacket=!1;for(let Q of Z)await this.receiveChunk(Q);if(this.sackNeeded){if(this.sackHasNewDataInPacket)this.sackPacketCount++;if(this.sackPacketCount>=2)this.sackImmediate=!0;await this.scheduleSack()}}async scheduleSack(){if(this.isStopped)return;if(!this.sackNeeded)return;if(this.sackImmediate){if(this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;await this.sendSack();return}if(this.sackTimeout)return;this.sackTimeout=setTimeout(()=>{this.sackTimeout=void 0,this.sendSack().catch((G)=>{i1("send delayed sack failed",G.message)})},qr)}async sendSack(){if(this.isStopped)return;if(!this.sackNeeded)return;let G=[],X;[...this.sackMisOrdered].sort().forEach((Z)=>{let V=(Z-this.lastReceivedTsn)%JH;if(Z===X)G[G.length-1][1]=V;else G.push([V,V]);X=_Y(Z)});let Y=new nO(0,void 0);Y.cumulativeTsn=this.lastReceivedTsn,Y.advertisedRwnd=Math.max(0,this.advertisedRwnd),Y.duplicates=[...this.sackDuplicates],Y.gaps=G,await this.sendChunk(Y).catch((Z)=>{i1("send sack failed",Z.message)}),this.sackDuplicates=[],this.sackNeeded=!1,this.sackPacketCount=0,this.sackImmediate=!1}async receiveChunk(G){switch(G.type){case pN.type:this.receiveDataChunk(G);break;case fN.type:{if(!this.isServer)return;let X=G;i1("receive init",X),this.lastReceivedTsn=KG(X.initialTsn),this.reconfigResponseSeq=KG(X.initialTsn),this.remoteVerificationTag=X.initiateTag,this.ssthresh=X.advertisedRwnd,this.peerAdvertisedRwnd=X.advertisedRwnd,this.getExtensions(X.params),this._inboundStreamsCount=Math.min(X.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,X.inboundStreams);let Y=new fO;Y.initiateTag=this.localVerificationTag,Y.advertisedRwnd=this.advertisedRwnd,Y.outboundStreams=this._outboundStreamsCount,Y.inboundStreams=this._inboundStreamsCount,Y.initialTsn=this.localTsn,this.setExtensions(Y.params);let Z=Date.now()/1000,V=Buffer.from(r1.Pack("!L",[Z]));V=Buffer.concat([V,iF("sha1",this.hmacKey).update(V).digest()]),Y.params.push([X2,V]),i1("send initAck",Y),await this.sendChunk(Y).catch((Q)=>{i1("send initAck failed",Q.message)})}break;case fO.type:{if(this.associationState!=2)return;let X=G;this.timer1Cancel(),this.lastReceivedTsn=KG(X.initialTsn),this.reconfigResponseSeq=KG(X.initialTsn),this.remoteVerificationTag=X.initiateTag,this.ssthresh=X.advertisedRwnd,this.peerAdvertisedRwnd=X.advertisedRwnd,this.getExtensions(X.params),this._inboundStreamsCount=Math.min(X.outboundStreams,this._inboundStreamsMax),this._outboundStreamsCount=Math.min(this._outboundStreamsCount,X.inboundStreams);let Y=new cO;for(let[Z,V]of X.params)if(Z===X2){Y.body=V;break}await this.sendChunk(Y).catch((Z)=>{i1("send echo failed",Z.message)}),this.timer1Start(Y),this.setState(3)}break;case nO.type:await this.receiveSackChunk(G);break;case dO.type:{let X=new iS;X.params=G.params,await this.sendChunk(X).catch((Y)=>{i1("send heartbeat ack failed",Y.message)})}break;case lO.type:this.setState(1);break;case rS.type:{this.timer2Cancel(),this.setState(7);let X=new aS;await this.sendChunk(X).catch((Y)=>{i1("send shutdown ack failed",Y.message)}),this.t2Start(X),this.setState(6)}break;case lN.type:i1("ErrorChunk",G.descriptions);break;case cO.type:{if(!this.isServer)return;let Y=G.body,Z=iF("sha1",this.hmacKey).update(Y.slice(0,4)).digest();if(Y?.length!=Zr||!Y.slice(4).equals(Z)){i1("x State cookie is invalid");return}let V=Date.now()/1000,Q=r1.Unpack("!L",Y)[0];if(Q<V-Vr||Q>V){let U=new lN(0,void 0);U.params.push([lN.CODE.StaleCookieError,Buffer.concat([...Array(8)].map(()=>Buffer.from("\x00")))]),await this.sendChunk(U).catch((q)=>{i1("send errorChunk failed",q.message)});return}let J=new pO;await this.sendChunk(J).catch((U)=>{i1("send cookieAck failed",U.message)}),this.setState(4)}break;case pO.type:{if(this.associationState!=3)return;this.timer1Cancel(),this.setState(4)}break;case sS.type:{if(this.associationState!=8)return;this.timer2Cancel(),this.setState(1)}break;case oO.type:{if(this.associationState!=4)return;let X=G;for(let[Y,Z]of X.params){let V=rF[Y];if(V)await this.receiveReconfigParam(V.parse(Z))}}break;case cN.type:this.receiveForwardTsnChunk(G);break}}getExtensions(G){for(let[X,Y]of G)if(X===Z2)this.remotePartialReliability=!0;else if(X===Y2)this.remoteExtensions=[...Y]}async receiveReconfigParam(G){switch(i1("receiveReconfigParam",rF[G.type]),G.type){case iO.type:{let X=G,Y=new dN(X.requestSequence,xN.ReconfigResultSuccessPerformed);this.reconfigResponseSeq=X.requestSequence,await this.sendReconfigParam(Y),await Promise.all(X.streams.map(async(Z)=>{if(delete this.inboundStreams[Z],this.outboundStreamSeq[Z]){if(!this.reconfigQueue.includes(Z))this.reconfigQueue.push(Z)}})),await this.transmitReconfigRequest(),this.onReconfigStreams.execute(X.streams)}break;case dN.type:{let X=G;if(X.result!==xN.ReconfigResultSuccessPerformed)i1("OutgoingSSNResetRequestParam failed",Object.keys(xN).find((Y)=>xN[Y]===X.result));else if(X.responseSequence===this.reconfigRequest?.requestSequence){let Y=this.reconfigRequest.streams.map((Z)=>{return delete this.outboundStreamSeq[Z],Z});if(this.onReconfigStreams.execute(Y),this.reconfigRequest=void 0,this.timerReconfigCancel(),this.rto=W2,this.timerReconfigFailures=0,this.reconfigQueue.length>0)await this.transmitReconfigRequest()}}break;case Wx.type:{let X=G;this._inboundStreamsCount+=X.newStreams;let Y=new dN(X.requestSequence,1);this.reconfigResponseSeq=X.requestSequence,await this.sendReconfigParam(Y)}break}}receiveDataChunk(G){if(this.sackNeeded=!0,this.markReceived(G.tsn)){this.sackImmediate=!0;return}if(this.sackHasNewDataInPacket=!0,this.sackImmediate=!0,(G.flags&mQ)===0)this.sackImmediate=!0;if(this.sackMisOrdered.size>0)this.sackImmediate=!0;let X=this.getInboundStream(G.streamId);X.addChunk(G),this.advertisedRwnd-=G.userData.length;for(let Y of X.popMessages())this.advertisedRwnd+=Y[2].length,this.receive(...Y)}async receiveSackChunk(G){if(b4(this.lastSackedTsn,G.cumulativeTsn))return;let X=Date.now()/1000;this.lastSackedTsn=G.cumulativeTsn;let Y=this.flightSize>=this.cwnd,Z=0,V=0;while(this.sentQueue.length>0&&bQ(this.lastSackedTsn,this.sentQueue[0].tsn)){let J=this.sentQueue.shift();if(Z++,!J?.acked)V+=J.bookSize,this.flightSizeDecrease(J);if(Z===1&&J.sentCount===1)this.updateRto(X-J.sentTime)}if(!this.sentQueue.length)this.sentQueue=[];let Q=!1;if(G.gaps.length>0){let J=new Set,U;G.gaps.forEach((N)=>{for(let A=N[0];A<N[1]+1;A++)U=(G.cumulativeTsn+A)%JH,J.add(U)});let q=G.cumulativeTsn;for(let N of this.sentQueue){if(b4(N.tsn,U))break;if(J.has(N.tsn)&&!N.acked)V+=N.bookSize,N.acked=!0,this.flightSizeDecrease(N),q=N.tsn}for(let N of this.sentQueue){if(b4(N.tsn,q))break;if(!J.has(N.tsn)){if(N.misses++,N.misses===3){if(N.misses=0,!this.maybeAbandon(N))N.retransmit=!0;N.acked=!1,this.flightSizeDecrease(N),Q=!0}}}}if(this.fastRecoveryExit===void 0){if(Z&&Y){if(this.cwnd<=this.ssthresh)this.cwnd+=Math.min(V,a5);else if(this.partialBytesAcked+=V,this.partialBytesAcked>=this.cwnd)this.partialBytesAcked-=this.cwnd,this.cwnd+=a5}if(Q)this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*a5),this.cwnd=this.ssthresh,this.partialBytesAcked=0,this.fastRecoveryExit=this.sentQueue[this.sentQueue.length-1].tsn,this.fastRecoveryTransmit=!0}else if(bQ(G.cumulativeTsn,this.fastRecoveryExit))this.fastRecoveryExit=void 0;if(this.sentQueue.length===0)this.timer3Cancel();else if(Z>0)this.timer3Restart();this.peerAdvertisedRwnd=G.advertisedRwnd,this.updateAdvancedPeerAckPoint(),await this.onSackReceived(),await this.transmit()}receiveForwardTsnChunk(G){if(this.sackNeeded=!0,this.sackImmediate=!0,bQ(this.lastReceivedTsn,G.cumulativeTsn))return;let X=(Y)=>b4(Y,this.lastReceivedTsn);this.lastReceivedTsn=G.cumulativeTsn,this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X));for(let Y of[...this.sackMisOrdered].sort())if(Y===_Y(this.lastReceivedTsn))this.lastReceivedTsn=Y;else break;this.sackDuplicates=this.sackDuplicates.filter(X),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X));for(let[Y,Z]of G.streams){let V=this.getInboundStream(Y);V.streamSequenceNumber=M9(Z,1);for(let Q of V.popMessages())this.advertisedRwnd+=Q[2].length,this.receive(...Q)}Object.values(this.inboundStreams).forEach((Y)=>{this.advertisedRwnd+=Y.pruneChunks(this.lastReceivedTsn)})}updateRto(G){if(!this.srtt)this.rttvar=G/2,this.srtt=G;else this.rttvar=(1-eF)*this.rttvar+eF*Math.abs(this.srtt-G),this.srtt=(1-tF)*this.srtt+tF*G;this.rto=Math.max(Jr,Math.min(this.srtt+4*this.rttvar,Ur))}receive(G,X,Y){this.onReceive.execute(G,X,Y)}getInboundStream(G){if(!this.inboundStreams[G])this.inboundStreams[G]=new zr;return this.inboundStreams[G]}markReceived(G){if(bQ(this.lastReceivedTsn,G)||this.sackMisOrdered.has(G))return this.sackDuplicates.push(G),!0;this.sackMisOrdered.add(G);for(let Y of[...this.sackMisOrdered].sort())if(Y===_Y(this.lastReceivedTsn))this.lastReceivedTsn=Y;else break;let X=(Y)=>b4(Y,this.lastReceivedTsn);return this.sackDuplicates=this.sackDuplicates.filter(X),this.sackMisOrdered=new Set([...this.sackMisOrdered].filter(X)),!1}send=async(G,X,Y,{expiry:Z,maxRetransmits:V,ordered:Q}={expiry:void 0,maxRetransmits:void 0,ordered:!0})=>{let J=Q?this.outboundStreamSeq[G]||0:0,U=Math.ceil(Y.length/a5),q=0,N=[];for(let A=0;A<U;A++){let H=new pN(0,void 0);if(H.flags=0,!Q)H.flags=rO;if(A===0)H.flags|=Gx;if(A===U-1)H.flags|=mQ;H.tsn=this.localTsn,H.streamId=G,H.streamSeqNum=J,H.protocol=X,H.userData=Y.slice(q,q+a5),H.bookSize=H.userData.length,H.expiry=Z,H.maxRetransmits=V,q+=a5,this.localTsn=_Y(this.localTsn),N.push(H)}if(N.forEach((A)=>{this.outboundQueue.push(A)}),Q)this.outboundStreamSeq[G]=M9(J,1);await this.transmit();while(this.outboundQueue.length)await this.flush.asPromise()};async transmit(){if(this.isStopped)return;if(this.transmitting){this.transmitRequested=!0;return}this.transmitting=!0;try{do this.transmitRequested=!1,await this.transmitOnce();while(this.transmitRequested)}finally{this.transmitting=!1}}async transmitOnce(){if(this.isStopped)return;if(this.forwardTsnChunk){if(await this.sendChunk(this.forwardTsnChunk).catch((Z)=>{i1("send forwardTsn failed",Z.message)}),this.forwardTsnChunk=void 0,!this.timer3Handle)this.timer3Start()}let G=this.fastRecoveryExit!=null?2*a5:4*a5,X=Math.min(this.flightSize+G,this.cwnd),Y=!0;for(let Z of this.sentQueue){if(Z.retransmit){if(this.fastRecoveryTransmit)this.fastRecoveryTransmit=!1;else if(this.flightSize>=X)break;if(this.flightSizeIncrease(Z),Z.misses=0,Z.retransmit=!1,Z.sentCount++,await this.sendChunk(Z).catch((V)=>{i1("send data failed",V.message)}),Y)this.timer3Restart()}Y=!1}while(this.outboundQueue.length>0&&this.flightSize<X&&this.peerRwnd>0){let Z=this.outboundQueue.shift();if(!Z)break;if(Z.bookSize>this.peerRwnd&&this.flightSize>0){this.outboundQueue.unshift(Z);break}if(this.sentQueue.push(Z),this.flightSizeIncrease(Z),Z.sentCount++,Z.sentTime=Date.now()/1000,await this.sendChunk(Z).catch((V)=>{i1("send data outboundQueue failed",V.message)}),!this.timer3Handle)this.timer3Start()}if(!this.outboundQueue.length)this.outboundQueue=[];this.flush.execute()}async transmitReconfigRequest(){if(this.reconfigQueue.length>0&&this.associationState===4&&!this.reconfigRequest){let G=[...new Set(this.reconfigQueue)],X=G.slice(0,G2);this.reconfigQueue=G.slice(G2);let Y=new iO(this.reconfigRequestSeq,this.reconfigResponseSeq,KG(this.localTsn),X);this.reconfigRequestSeq=_Y(this.reconfigRequestSeq),this.reconfigRequest=Y,await this.sendReconfigParam(Y),this.timerReconfigHandleStart()}}async sendReconfigParam(G){i1("sendReconfigParam",G);let X=new oO;X.params.push([G.type,G.bytes]),await this.sendChunk(X).catch((Y)=>{i1("send reconfig failed",Y.message)})}async sendResetRequest(G){i1("sendResetRequest",G);let X=new pN(0,void 0);if(X.streamId=G,this.outboundQueue.push(X),!this.timer3Handle)await this.transmit()}flightSizeIncrease(G){this.flightSize+=G.bookSize}flightSizeDecrease(G){this.flightSize=Math.max(0,this.flightSize-G.bookSize)}timer1Start(G){if(this.timer1Handle)throw Error();this.timer1Chunk=G,this.timer1Failures=0,this.timer1Handle=setTimeout(this.timer1Expired,this.rto*1000)}timer1Expired=()=>{if(this.isStopped)return;if(this.timer1Failures++,this.timer1Handle=void 0,this.timer1Failures>Qr)this.setState(1);else{if(setImmediate(()=>{if(this.isStopped)return;this.sendChunk(this.timer1Chunk).catch((G)=>{i1("send timer1 chunk failed",G.message)})}),this.isStopped)return;this.timer1Handle=setTimeout(this.timer1Expired,this.rto*1000)}};timer1Cancel(){if(this.timer1Handle)clearTimeout(this.timer1Handle),this.timer1Handle=void 0,this.timer1Chunk=void 0}t2Start(G){if(this.timer2Handle)throw Error();this.timer2Chunk=G,this.timer2Failures=0,this.timer2Handle=setTimeout(this.timer2Expired,this.rto*1000)}timer2Expired=()=>{if(this.isStopped)return;if(this.timer2Failures++,this.timer2Handle=void 0,this.timer2Failures>sF)this.setState(1);else{if(setImmediate(()=>{if(this.isStopped)return;this.sendChunk(this.timer2Chunk).catch((G)=>{i1("send timer2Chunk failed",G.message)})}),this.isStopped)return;this.timer2Handle=setTimeout(this.timer2Expired,this.rto*1000)}};timer2Cancel(){if(this.timer2Handle)clearTimeout(this.timer2Handle),this.timer2Handle=void 0,this.timer2Chunk=void 0}timer3Start(){if(this.isStopped)return;if(this.timer3Handle)throw Error();this.timer3Handle=setTimeout(this.timer3Expired,this.rto*1000)}timer3Restart(){if(this.isStopped)return;this.timer3Cancel(),this.timer3Handle=setTimeout(this.timer3Expired,this.rto*1000)}timer3Expired=()=>{if(this.isStopped)return;this.timer3Handle=void 0,this.sentQueue.forEach((G)=>{if(!this.maybeAbandon(G))G.retransmit=!0}),this.updateAdvancedPeerAckPoint(),this.fastRecoveryExit=void 0,this.flightSize=0,this.partialBytesAcked=0,this.ssthresh=Math.max(Math.floor(this.cwnd/2),4*a5),this.cwnd=a5,this.transmit()};timer3Cancel(){if(this.timer3Handle)clearTimeout(this.timer3Handle),this.timer3Handle=void 0}timerReconfigHandleStart(){if(this.isStopped)return;if(this.timerReconfigHandle)return;i1("timerReconfigHandleStart",{rto:this.rto}),this.timerReconfigFailures=0,this.timerReconfigHandle=setTimeout(this.timerReconfigHandleExpired,this.rto*1000)}timerReconfigHandleExpired=async()=>{if(this.isStopped)return;if(this.timerReconfigFailures++,this.rto=Math.ceil(this.rto*1.5),this.timerReconfigFailures>sF)i1("timerReconfigFailures",this.timerReconfigFailures),this.setState(1),this.timerReconfigHandle=void 0;else if(this.reconfigRequest){if(i1("timerReconfigHandleExpired",this.timerReconfigFailures,this.rto),await this.sendReconfigParam(this.reconfigRequest),this.isStopped)return;this.timerReconfigHandle=setTimeout(this.timerReconfigHandleExpired,this.rto*1000)}};timerReconfigCancel(){if(this.timerReconfigHandle)i1("timerReconfigCancel"),clearTimeout(this.timerReconfigHandle),this.timerReconfigHandle=void 0,this.timerReconfigFailures=0}heartbeatStart(){if(this.timerHeartbeatHandle||this.associationState!==4)return;this.timerHeartbeatHandle=setTimeout(this.timerHeartbeatExpired,(this.rto+this.heartbeatInterval)*1000)}heartbeatRestart(){this.heartbeatCancel(),this.heartbeatStart()}heartbeatCancel(){if(this.timerHeartbeatHandle)clearTimeout(this.timerHeartbeatHandle),this.timerHeartbeatHandle=void 0}timerHeartbeatExpired=async()=>{if(this.timerHeartbeatHandle=void 0,this.associationState!==4)return;if(this.flightSize===0&&this.outboundQueue.length===0){let G=new dO;G.params.push([1,Buffer.from(r1.Pack("!L",[Math.floor(Date.now()/1000)]))]),await this.sendChunk(G).catch((X)=>{i1("send heartbeat failed",X.message)})}this.heartbeatStart()};setHeartbeatInterval(G){if(G<=0)throw Error("heartbeat interval must be > 0");this.heartbeatInterval=G,this.heartbeatRestart()}updateAdvancedPeerAckPoint(){if(b4(this.lastSackedTsn,this.advancedPeerAckTsn))this.advancedPeerAckTsn=this.lastSackedTsn;let G=0,X={};while(this.sentQueue.length>0&&this.sentQueue[0].abandoned){let Y=this.sentQueue.shift();if(this.advancedPeerAckTsn=Y.tsn,G++,!(Y.flags&rO))X[Y.streamId]=Y.streamSeqNum}if(!this.sentQueue.length)this.sentQueue=[];if(G)this.forwardTsnChunk=new cN(0,void 0),this.forwardTsnChunk.cumulativeTsn=this.advancedPeerAckTsn,this.forwardTsnChunk.streams=Object.entries(X).map(([Y,Z])=>[Number(Y),Z])}maybeAbandon(G){if(G.abandoned)return!0;if(!(!!G.maxRetransmits&&G.maxRetransmits<G.sentCount||!!G.expiry&&G.expiry<Date.now()/1000))return!1;let Y=this.sentQueue.findIndex((Z)=>Z.type===G.type);for(let Z=Y;Z>=0;Z--){let V=this.sentQueue[Z];if(V.abandoned=!0,V.retransmit=!1,V.flags&mQ)break}for(let Z=Y;Z<this.sentQueue.length;Z++){let V=this.sentQueue[Z];if(V.abandoned=!0,V.retransmit=!1,V.flags&mQ)break}return!0}static getCapabilities(){return new Ir(65536)}setRemotePort(G){this.remotePort=G}async start(G){if(!this.started){if(this.started=!0,this.setConnectionState("connecting"),G)this.setRemotePort(G);if(!this.isServer)await this.init()}}async init(){let G=new fN;G.initiateTag=this.localVerificationTag,G.advertisedRwnd=this.advertisedRwnd,G.outboundStreams=this._outboundStreamsCount,G.inboundStreams=this._inboundStreamsMax,G.initialTsn=this.localTsn,this.setExtensions(G.params),i1("send init",G);try{await this.sendChunk(G),this.timer1Start(G),this.setState(2)}catch(X){i1("send init failed",X.message)}}setExtensions(G){let X=[];if(this.localPartialReliability)G.push([Z2,Buffer.from("")]),X.push(cN.type);X.push(si.type),G.push([Y2,Buffer.from(X)])}async sendChunk(G){if(this.state==="closed")return;if(this.remotePort===void 0)throw Error("invalid remote port");let X=Gr(this.localPort,this.remotePort,this.remoteVerificationTag,G);await this.transport.send(X)}setState(G){if(G!=this.associationState)this.associationState=G;if(G===4)this.isStopping=!1,this.isClosed=!1,this.setConnectionState("connected"),this.heartbeatStart();else if(G===1){if(this.isClosed=!0,this.timer1Cancel(),this.timer2Cancel(),this.timer3Cancel(),this.timerReconfigCancel(),this.heartbeatCancel(),this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;this.setConnectionState("closed"),this.removeAllListeners()}}setConnectionState(G){this.state=G,i1("setConnectionState",G),this.stateChanged[G].execute()}async stop(){if(this.isStopped){this.setState(1);return}if(this.isStopping=!0,this.transport.onData=void 0,this.sackTimeout)clearTimeout(this.sackTimeout),this.sackTimeout=void 0;if(this.associationState!==1)await this.abort();this.setState(1),clearTimeout(this.timer1Handle),clearTimeout(this.timer2Handle),clearTimeout(this.timer3Handle),clearTimeout(this.timerReconfigHandle),clearTimeout(this.timerHeartbeatHandle),clearTimeout(this.sackTimeout)}async abort(){let G=new lO;await this.sendChunk(G).catch((X)=>{i1("send abort failed",X.message)})}removeAllListeners(){Object.values(this.stateChanged).forEach((G)=>G.allUnsubscribe())}},zr=class{reassembly=[];streamSequenceNumber=0;constructor(){}addChunk(W){if(this.reassembly.length===0||b4(W.tsn,this.reassembly[this.reassembly.length-1].tsn)){this.reassembly.push(W);return}for(let[G,X]of Xr(this.reassembly)){if(X.tsn===W.tsn)throw Error("duplicate chunk in reassembly");if(b4(X.tsn,W.tsn)){this.reassembly.splice(G,0,W);break}}}*popMessages(){let W=0,G,X,Y;while(W<this.reassembly.length){let Z=this.reassembly[W];if(G===void 0){if(Y=!(Z.flags&rO),!(Z.flags&Gx))if(Y)break;else{W++;continue}if(Y&&M2(Z.streamSeqNum,this.streamSequenceNumber))break;X=Z.tsn,G=W}else if(Z.tsn!==X)if(Y)break;else{G=void 0,W++;continue}if(Z.flags&mQ){let V=this.reassembly.slice(G,W+1).map((J)=>J.userData).reduce((J,U)=>{return J.push(U),J.push(Buffer.from("")),J},[]);V.pop();let Q=Buffer.concat(V);if(this.reassembly=[...this.reassembly.slice(0,G),...this.reassembly.slice(W+1)],Y&&Z.streamSeqNum===this.streamSequenceNumber)this.streamSequenceNumber=M9(this.streamSequenceNumber,1);W=G,yield[Z.streamId,Z.protocol,Q]}else W++;X=_Y(X)}}pruneChunks(W){let G=-1,X=0;for(let[Y,Z]of this.reassembly.entries())if(bQ(W,Z.tsn))G=Y,X+=Z.userData.length;else break;return this.reassembly=this.reassembly.slice(G+1),X}},Ir=class{constructor(W){this.maxMessageSize=W}};function KG(W){return(W-1)%JH}function _Y(W){return(W+1)%JH}var FY=M1("werift:packages/webrtc/src/transport/sctp.ts"),fQ=65536,wr=class W{constructor(G=5000,X=fQ){this.port=G,this.maxMessageSize=X}dtlsTransport;sctp;onDataChannel=new f0;id=ri().toString();mid;mLineIndex;bundled=!1;dataChannels={};remoteMaxMessageSize=fQ;dataChannelQueue=[];dataChannelId;eventDisposer=[];setDtlsTransport(G){if(this.dtlsTransport&&this.dtlsTransport.id===G.id)return;this.eventDisposer.forEach((X)=>X()),this.dtlsTransport=G,this.sctp=new Ar(new jr(this.dtlsTransport),this.port),this.eventDisposer=[...[this.sctp.onReceive.subscribe(this.datachannelReceive),this.sctp.onReconfigStreams.subscribe((X)=>{X.forEach((Y)=>{let Z=this.dataChannels[Y];if(!Z)return;Z.setReadyState("closing"),Z.setReadyState("closed"),delete this.dataChannels[Y]})}),this.sctp.stateChanged.connected.subscribe(()=>{Object.values(this.dataChannels).forEach((X)=>{if(X.negotiated&&X.readyState!=="open")X.setReadyState("open")}),this.dataChannelFlush()}),this.sctp.stateChanged.closed.subscribe(()=>{Object.values(this.dataChannels).forEach((X)=>{X.setReadyState("closed")}),this.dataChannels={}}),this.dtlsTransport.onStateChange.subscribe((X)=>{if(X==="closed")this.sctp.setState(1)})].map((X)=>X.unSubscribe),()=>this.sctp.onSackReceived=async()=>{}],this.sctp.onSackReceived=async()=>{await this.dataChannelFlush()}}get isServer(){return this.dtlsTransport.iceTransport.role!=="controlling"}channelByLabel(G){return Object.values(this.dataChannels).find((X)=>X.label===G)}datachannelReceive=async(G,X,Y)=>{if(X===SN&&Y.length>0)switch(FY("DCEP",G,X,Y),Y[0]){case hF:{if(Y.length<12){FY("DATA_CHANNEL_OPEN data.length not enough");return}if(!Object.keys(this.dataChannels).includes(G.toString())){let[,V,,Q,J,U]=r1.Unpack("!BBHLHH",Y),q=12,N=Y.slice(q,q+J).toString("utf8");q+=J;let A=Y.slice(q,q+U).toString("utf8");FY("DATA_CHANNEL_OPEN",{channelType:V,reliability:Q,streamId:G,label:N,protocol:A});let H=(V&3)===1?Q:void 0,I=(V&3)===2?Q:void 0,w=new FS({label:N,ordered:(V&128)===0,maxPacketLifeTime:I,maxRetransmits:H,protocol:A,id:G}),C=new $S(this,w,!1);C.isCreatedByRemote=!0,this.dataChannels[G]=C,this.onDataChannel.execute(C),C.setReadyState("open")}else FY("datachannel already opened","retransmit ack");let Z=this.dataChannels[G];this.dataChannelQueue.push([Z,SN,Buffer.from(r1.Pack("!B",[uF]))]),await this.dataChannelFlush()}break;case uF:{FY("DATA_CHANNEL_ACK",G,X);let Z=this.dataChannels[G];if(!Z)throw Error("channel not found");Z.setReadyState("open")}break}else{let Z=this.dataChannels[G];if(Z){let V=(()=>{switch(X){case bF:return Y.toString("utf8");case Ai:return"";case mF:return Y;case zi:return Buffer.from([]);default:throw Error()}})();if(Z.messagesReceived++,Z.bytesReceived+=Y.length,Z.onMessage.execute(V),Z.emit("message",{data:V}),Z.onmessage)Z.onmessage({data:V})}}};dataChannelAddNegotiated(G){if(G.id==null)throw Error();if(this.dataChannels[G.id])throw Error();if(this.dataChannels[G.id]=G,this.sctp.associationState===4)G.setReadyState("open")}dataChannelOpen(G){if(G.id){if(this.dataChannels[G.id])throw Error(`Data channel with ID ${G.id} already registered`);this.dataChannels[G.id]=G}let X=Hi,Y=0,Z=0;if(!G.ordered)X=128;if(G.maxRetransmits)X=1,Z=G.maxRetransmits;else if(G.maxPacketLifeTime)X=2,Z=G.maxPacketLifeTime;let V=r1.Pack("!BBHLHH",[hF,X,Y,Z,G.label.length,G.protocol.length]),Q=Buffer.concat([Buffer.from(V),Buffer.from(G.label,"utf8"),Buffer.from(G.protocol,"utf8")]);this.dataChannelQueue.push([G,SN,Q]),this.dataChannelFlush()}async dataChannelFlush(){if(this.sctp.associationState!=4)return;while(this.dataChannelQueue.length>0){let[G,X,Y]=this.dataChannelQueue.shift(),Z=G.id;if(Z===void 0){Z=this.dataChannelId;while(Object.keys(this.dataChannels).includes(Z.toString()))Z+=2;this.dataChannels[Z]=G,G.setId(Z)}if(X===SN)await this.sctp.send(Z,X,Y,{ordered:!0});else{let V=G.maxPacketLifeTime?Date.now()+G.maxPacketLifeTime/1000:void 0;await this.sctp.send(Z,X,Y,{expiry:V,maxRetransmits:G.maxRetransmits,ordered:G.ordered}),G.addBufferedAmount(-Y.length)}}this.dataChannelQueue=[]}assertSendableMessageSize(G){if(this.remoteMaxMessageSize!==0&&G>this.remoteMaxMessageSize)throw Error(`max-message-size exceeded: ${G} > ${this.remoteMaxMessageSize}`)}datachannelSend=(G,X)=>{let Y=Buffer.isBuffer(X)?X:Buffer.from(X),Z=en(X);if(this.assertSendableMessageSize(Z),G.addBufferedAmount(Z),this.dataChannelQueue.push(typeof X==="string"?[G,bF,Y]:[G,mF,Y]),this.sctp.associationState!==4)FY("sctp not established",this.sctp.associationState);return this.dataChannelFlush(),Z};getCapabilities(){return W.getCapabilities(this.maxMessageSize)}static getCapabilities(G=fQ){return new Xx(G)}setRemoteMaxMessageSize(G){this.remoteMaxMessageSize=G??fQ}setRemotePort(G){this.sctp.setRemotePort(G)}async start(G){if(this.isServer)this.dataChannelId=0;else this.dataChannelId=1;this.sctp.isServer=this.isServer,await this.sctp.start(G)}async stop(){this.dtlsTransport.dataReceiver=()=>{},await this.sctp.stop()}dataChannelClose(G){if(!["closing","closed"].includes(G.readyState))if(G.setReadyState("closing"),this.sctp.associationState===4){if(!this.sctp.reconfigQueue.includes(G.id))this.sctp.reconfigQueue.push(G.id);if(this.sctp.reconfigQueue.length===1)this.sctp.transmitReconfigRequest()}else{if(this.dataChannelQueue=this.dataChannelQueue.filter((X)=>X[0].id!==G.id),this.sctp.reconfigQueue=this.sctp.reconfigQueue.filter((X)=>X!==G.id),G.id)delete this.dataChannels[G.id];G.setReadyState("closed")}}},Xx=class{constructor(W){this.maxMessageSize=W}},jr=class{constructor(W){this.dtls=W}set onData(W){this.dtls.dataReceiver=W}send=(W)=>{return this.dtls.sendData(W)};close(){}},oN=class W{version=0;origin;name="-";time="0 0";host;group=[];extMapAllowMixed=!0;msidSemantic=[];media=[];type;dtlsRole;iceOptions;iceLite;icePassword;iceUsernameFragment;dtlsFingerprints=[];static parse(G){let[X,Y]=Or(G),Z=new W;X.forEach((Q)=>{if(Q.startsWith("v="))Z.version=Number.parseInt(Q.slice(2),10);else if(Q.startsWith("o="))Z.origin=Q.slice(2);else if(Q.startsWith("s="))Z.name=Q.slice(2);else if(Q.startsWith("c="))Z.host=jO(Q.slice(2));else if(Q.startsWith("t="))Z.time=Q.slice(2);else if(Q.startsWith("a=")){let[J,U]=OO(Q);switch(J){case"fingerprint":{let[q,N]=U?.split(" ")||[];Z.dtlsFingerprints.push(new bO(q,N))}break;case"ice-lite":Z.iceLite=!0;break;case"ice-options":Z.iceOptions=U;break;case"ice-pwd":Z.icePassword=U;break;case"ice-ufrag":Z.iceUsernameFragment=U;break;case"group":KO(Z.group,U);break;case"msid-semantic":KO(Z.msidSemantic,U);break;case"setup":Z.dtlsRole=cF[U];break;case"extmap-allow-mixed":Z.extMapAllowMixed=!0;break}}});let V=Z.group.find((Q)=>Q.semantic==="BUNDLE");return Y.forEach((Q)=>{let U=Q[0].match(/^m=([^ ]+) ([0-9]+) ([A-Z/]+) (.+)/);if(!U)throw Error("m line not found");let q=U[1],N=U[4].split(" "),A=["audio","video"].includes(q)?N.map((w)=>Number(w)):void 0,H=new aO(q,Number.parseInt(U[2]),U[3],A||N);if(H.dtlsParams=new mO([...Z.dtlsFingerprints],Z.dtlsRole),H.iceParams=new nS({iceLite:Z.iceLite,usernameFragment:Z.iceUsernameFragment,password:Z.icePassword}),H.iceOptions=Z.iceOptions,Z.media.push(H),Q.slice(1).forEach((w)=>{if(w.startsWith("c="))H.host=jO(w.slice(2));else if(w.startsWith("a=")){let[C,D]=OO(w);switch(C){case"candidate":if(!D)throw Error();H.iceCandidates.push(Zx(D));break;case"end-of-candidates":H.iceCandidatesComplete=!0;break;case"extmap":{let[x,h]=D.split(" ");if(x.includes("/"))[x]=x.split("/");H.rtp.headerExtensions.push(new Gi({id:Number.parseInt(x),uri:h}))}break;case"fingerprint":{if(!D)throw Error();let[x,h]=D.split(" ");H.dtlsParams?.fingerprints.push(new bO(x,h))}break;case"ice-options":H.iceOptions=D;break;case"ice-pwd":H.iceParams.password=D;break;case"ice-ufrag":H.iceParams.usernameFragment=D;break;case"ice-lite":H.iceParams.iceLite=!0;break;case"max-message-size":H.sctpCapabilities=new Xx(Number.parseInt(D,10));break;case"mid":H.rtp.muxId=D;break;case"msid":H.msid=D;break;case"rtcp":{let[x,h]=h4(D," ");H.rtcpPort=Number.parseInt(x),H.rtcpHost=jO(h)}break;case"rtcp-mux":H.rtcpMux=!0;break;case"setup":H.dtlsParams.role=cF[D];break;case"recvonly":case"sendonly":case"sendrecv":case"inactive":H.direction=C;break;case"rtpmap":{let[x,h]=h4(D," "),[p,u,n]=h.split("/"),c;if(H.kind==="audio")c=n?Number.parseInt(n):1;let l=new $G({mimeType:H.kind+"/"+p,channels:c,clockRate:Number.parseInt(u),payloadType:Number.parseInt(x)});H.rtp.codecs.push(l)}break;case"sctpmap":{if(!D)throw Error();let[x,h]=h4(D," ");H.sctpMap[Number.parseInt(x)]=h,H.sctpPort=Number.parseInt(x)}break;case"sctp-port":if(!D)throw Error();H.sctpPort=Number.parseInt(D);break;case"ssrc":{let[x,h]=h4(D," "),p=Number.parseInt(x),[u,n]=h4(h,":"),c=H.ssrc.find((l)=>l.ssrc===p);if(!c)c=new tO({ssrc:p}),H.ssrc.push(c);if(vS.includes(u))c[u]=n}break;case"ssrc-group":KO(H.ssrcGroup,D);break;case"rid":{let[x,h]=h4(D," ");H.simulcastParameters.push(new SS({rid:x,direction:h}))}break}}}),!H.iceParams.usernameFragment||!H.iceParams.password){if(H.rtp.muxId&&V&&V.items.includes(H.rtp.muxId))for(let w=0;w<V.items.length;w++){if(!V.items.includes(w.toString()))continue;let C=Z.media[w];if(C.iceParams?.usernameFragment&&C.iceParams.password){H.iceParams={...C.iceParams};break}}}if(!H.dtlsParams.role)H.dtlsParams=void 0;let I=(w)=>H.rtp.codecs.find((C)=>C.payloadType===w);Q.slice(1).forEach((w)=>{if(w.startsWith("a=")){let[C,D]=OO(w);if(C==="fmtp"){let[x,h]=h4(D," "),p=I(Number(x));p.parameters=h}else if(C==="rtcp-fb"){let[x,h,p]=D.split(" ");H.rtp.codecs.forEach((u)=>{if(["*",u.payloadType.toString()].includes(x))u.rtcpFeedback.push(new Xi({type:h,parameter:p}))})}}})}),Z}webrtcTrackId(G){if(G.msid?.includes(" ")){let X=G.msid.split(" ");for(let Y of this.msidSemantic)if(Y.semantic==="WMS"&&(Y.items.includes(X[0])||Y.items.includes("*")))return X[1]}return}get string(){let G=[`v=${this.version}`,`o=${this.origin}`,`s=${this.name}`];if(this.host)G.push(`c=${sO(this.host)}`);if(G.push(`t=${this.time}`),this.group.forEach((Z)=>G.push(`a=group:${Z.str}`)),this.extMapAllowMixed)G.push("a=extmap-allow-mixed");this.msidSemantic.forEach((Z)=>G.push(`a=msid-semantic:${Z.str}`));let X=this.media.map((Z)=>Z.toString()).join("");return G.join(`\r
|
|
243
|
+
`)+`\r
|
|
244
|
+
`+X}toJSON(){return new Kr(this.string,this.type)}toSdp(){return{type:this.type,sdp:this.string}}},aO=class{constructor(W,G,X,Y){this.kind=W,this.port=G,this.profile=X,this.fmt=Y}host;direction;msid;rtcpPort;rtcpHost;rtcpMux=!1;ssrc=[];ssrcGroup=[];rtp={codecs:[],headerExtensions:[]};sctpCapabilities;sctpMap={};sctpPort;dtlsParams;iceParams;iceCandidates=[];iceCandidatesComplete=!1;iceOptions;simulcastParameters=[];toString(){let W=[];if(W.push(`m=${this.kind} ${this.port} ${this.profile} ${this.fmt.map((G)=>G.toString()).join(" ")}`),this.host)W.push(`c=${sO(this.host)}`);if(this.iceCandidates.forEach((G)=>{W.push(`a=candidate:${Yx(G)}`)}),this.iceCandidatesComplete)W.push("a=end-of-candidates");if(this.iceParams?.usernameFragment)W.push(`a=ice-ufrag:${this.iceParams.usernameFragment}`);if(this.iceParams?.password)W.push(`a=ice-pwd:${this.iceParams.password}`);if(this.iceParams?.iceLite)W.push("a=ice-lite");if(this.iceOptions)W.push(`a=ice-options:${this.iceOptions}`);if(this.dtlsParams)this.dtlsParams.fingerprints.forEach((G)=>{W.push(`a=fingerprint:${G.algorithm} ${G.value}`)}),W.push(`a=setup:${gO[this.dtlsParams.role]}`);if(this.direction)W.push(`a=${this.direction}`);if(this.rtp.muxId)W.push(`a=mid:${this.rtp.muxId}`);if(this.msid)W.push(`a=msid:${this.msid}`);if(this.rtcpPort&&this.rtcpHost){if(W.push(`a=rtcp:${this.rtcpPort} ${sO(this.rtcpHost)}`),this.rtcpMux)W.push("a=rtcp-mux")}if(this.ssrcGroup.forEach((G)=>{W.push(`a=ssrc-group:${G.str}`)}),this.ssrc.forEach((G)=>{vS.forEach((X)=>{let Y=G[X];if(Y!==void 0)W.push(`a=ssrc:${G.ssrc} ${X}:${Y}`)})}),this.rtp.codecs.forEach((G)=>{if(W.push(`a=rtpmap:${G.payloadType} ${G.str}`),G.rtcpFeedback.forEach((X)=>{let Y=X.type;if(X.parameter)Y+=` ${X.parameter}`;W.push(`a=rtcp-fb:${G.payloadType} ${Y}`)}),G.parameters)W.push(`a=fmtp:${G.payloadType} ${G.parameters}`)}),Object.keys(this.sctpMap).forEach((G)=>{let X=this.sctpMap[Number(G)];W.push(`a=sctpmap:${G} ${X}`)}),this.sctpPort)W.push(`a=sctp-port:${this.sctpPort}`);if(this.sctpCapabilities)W.push(`a=max-message-size:${this.sctpCapabilities.maxMessageSize}`);if(this.rtp.headerExtensions.forEach((G)=>W.push(`a=extmap:${G.id} ${G.uri}`)),this.simulcastParameters.length){this.simulcastParameters.forEach((Z)=>{W.push(`a=rid:${Z.rid} ${Z.direction}`)});let G="a=simulcast:",X=this.simulcastParameters.filter((Z)=>Z.direction==="recv");if(X.length)G+=`recv ${X.map((Z)=>Z.rid).join(";")} `;let Y=this.simulcastParameters.filter((Z)=>Z.direction==="send");if(Y.length)G+=`send ${Y.map((Z)=>Z.rid).join(";")}`;W.push(G)}return W.join(`\r
|
|
245
|
+
`)+`\r
|
|
246
|
+
`}},dQ=class{constructor(W,G){this.semantic=W,this.items=G}get str(){return`${this.semantic} ${this.items.join(" ")}`}};function jO(W){let G=W.match(/^IN (IP4|IP6) ([^ ]+)$/);if(!G)throw Error("exception");return G[2]}function sO(W){return`IN IP${ui(W)?4:6} ${W}`}function Yx(W){let G=`${W.foundation} ${W.component} ${W.protocol} ${W.priority} ${W.ip} ${W.port} typ ${W.type}`;if(W.relatedAddress!=null)G+=` raddr ${W.relatedAddress}`;if(W.relatedPort!=null)G+=` rport ${W.relatedPort}`;if(W.tcpType!=null)G+=` tcptype ${W.tcpType}`;if(W.generation!=null)G+=` generation ${W.generation}`;if(W.ufrag!=null)G+=` ufrag ${W.ufrag}`;return G}function Or(W){let G=[],X=[],Y=W.split(`\r
|
|
247
|
+
`);if(Y.length===1)Y=W.split(`
|
|
248
|
+
`);return Y.forEach((Z)=>{if(Z.startsWith("m="))X.push([Z]);else if(X.length>0)X[X.length-1].push(Z);else G.push(Z)}),[G,X]}function OO(W){if(W.includes(":")){let G=h4(W.slice(2),":");return[G[0],G[1]]}else return[W.slice(2),void 0]}function KO(W,G,X=(Y)=>Y.toString()){let Y=G.split(" ");if(Y.length>0)W.push(new dQ(Y[0],Y.slice(1).map(X)))}function Zx(W){let G=DG.fromSdp(W);return tQ(G)}var Kr=class{constructor(W,G){this.sdp=W,this.type=G}static isThis(W){if(typeof W?.sdp==="string")return!0}toSdp(){return{sdp:this.sdp,type:this.type}}};function V2(W,G){let Y=new RN(gi(64)).toString().slice(0,8),Z=0;G.origin=`- ${Y} 0 IN IP4 0.0.0.0`,G.msidSemantic.push(new dQ("WMS",["*"])),G.type=W}function UH(W){let G={};return W.split(";").forEach((X)=>{if(X.includes("=")){let[Y,Z]=h4(X,"=");if(wi.includes(Y))G[Y]=Number(Z);else G[Y]=Z}else if(X.includes(":")){let[Y,Z]=X.split(":");G[Y]=Number.isNaN(Number(Z))?Z:Number(Z)}else G[X]=void 0}),G}var tO=class{ssrc;cname;msid;msLabel;label;constructor(W){Object.assign(this,W)}},kN=M1("werift:packages/webrtc/src/media/rtpReceiver.ts"),Vx=class{constructor(W,G,X){this.config=W,this.kind=G,this.rtcpSsrc=X}codecs={};get codecArray(){return Object.values(this.codecs).sort((W,G)=>W.payloadType-G.payloadType)}ssrcByRtx={};nack=new xi(this);audioRedHandler=new lo;type="receiver";uuid=Ui().toString();tracks=[];trackBySSRC={};trackByRID={};lastSRtimestamp={};receiveLastSRTimestamp={};onPacketLost=this.nack.onPacketLost;onRtcp=new f0;dtlsTransport;sdesMid;latestRid;latestRepairedRid;receiverTWCC;stopped=!1;remoteStreamId;remoteTrackId;rtcpRunning=!1;rtcpCancel=new AbortController;remoteStreams={};setDtlsTransport(W){this.dtlsTransport=W}get track(){return this.tracks[0]??new uO({kind:this.kind})}get nackEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type==="nack")}get twccEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type===Wi().type)}get pliEnabled(){return this.codecArray[0]?.rtcpFeedback.find((W)=>W.type===JJ().type)}prepareReceive(W){W.codecs.forEach((G)=>{this.codecs[G.payloadType]=G}),W.encodings.forEach((G)=>{if(G.rtx)this.ssrcByRtx[G.rtx.ssrc]=G.ssrc})}setupTWCC(W){if(this.twccEnabled&&!this.receiverTWCC)this.receiverTWCC=new yi(this.dtlsTransport,this.rtcpSsrc,W)}addTrack(W){if(this.tracks.find((X)=>{if(X.rid)return X.rid===W.rid;if(X.ssrc)return X.ssrc===W.ssrc}))return!1;if(this.tracks.push(W),W.ssrc)this.trackBySSRC[W.ssrc]=W;if(W.rid)this.trackByRID[W.rid]=W;return!0}stop(){if(this.stopped=!0,this.rtcpRunning=!1,this.rtcpCancel.abort(),this.receiverTWCC)this.receiverTWCC.twccRunning=!1;this.nack.close()}async runRtcp(){if(this.rtcpRunning||this.stopped)return;this.rtcpRunning=!0;try{while(this.rtcpRunning){await IO(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=Object.entries(this.remoteStreams).map(([X,Y])=>{let Z=0,V=0;if(this.lastSRtimestamp[X]){Z=this.lastSRtimestamp[X];let Q=QH()-this.receiveLastSRTimestamp[X];if(Q>0&&Q<65536)V=pQ(Q*65536)}return new GK({ssrc:Number(X),fractionLost:Y.fraction_lost,packetsLost:Y.packets_lost,highestSequence:Y.max_seq,jitter:Y.jitter,lsr:Z,dlsr:V})}),G=new iQ({ssrc:this.rtcpSsrc,reports:W});try{if(this.config.debug.receiverReportDelay)await IO(this.config.debug.receiverReportDelay);await this.dtlsTransport.sendRtcp([G])}catch(X){kN("sendRtcp failed",X),await IO(500+Math.random()*1000)}}}catch(W){}}async getStats(){let W=FG(),G=[];if(!this.dtlsTransport)return G;let X=Y8("transport",this.dtlsTransport.id);for(let Y of this.tracks){if(!Y.ssrc)continue;let Z=this.remoteStreams[Y.ssrc];if(!Z)continue;let V={type:"inbound-rtp",id:Y8("inbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:X,codecId:this.codecs[0]?Y8("codec",this.codecs[0].payloadType,X):void 0,mid:this.sdesMid,trackIdentifier:Y.id,packetsReceived:Z.packets_received,packetsLost:Z.packets_lost,jitter:Z.jitter};if(G.push(V),this.lastSRtimestamp[Y.ssrc]){let Q={type:"remote-outbound-rtp",id:Y8("remote-outbound-rtp",Y.ssrc),timestamp:W,ssrc:Y.ssrc,kind:this.kind,transportId:X,codecId:V.codecId,localId:V.id,remoteTimestamp:this.receiveLastSRTimestamp[Y.ssrc]*1000};G.push(Q)}}return G}async sendRtcpPLI(W){if(!this.pliEnabled){kN("pli not supported",{mediaSsrc:W});return}if(this.stopped)return;kN("sendRtcpPLI",{mediaSsrc:W});let G=new nQ({feedback:new GH({senderSsrc:this.rtcpSsrc,mediaSsrc:W})});try{await this.dtlsTransport.sendRtcp([G])}catch(X){kN(X)}}handleRtcpPacket(W){switch(W.type){case hY.type:{let G=W;this.lastSRtimestamp[G.ssrc]=lS(G.senderInfo.ntpTimestamp),this.receiveLastSRTimestamp[G.ssrc]=QH();let X=this.trackBySSRC[W.ssrc];if(X)X.onReceiveRtcp.execute(W)}break}this.onRtcp.execute(W)}handleRtpBySsrc=(W,G)=>{let X=this.trackBySSRC[W.header.ssrc];this.handleRTP(W,G,X)};handleRtpByRid=(W,G,X)=>{let Y=this.trackByRID[G];if(!this.trackBySSRC[W.header.ssrc])this.trackBySSRC[W.header.ssrc]=Y;this.handleRTP(W,X,Y)};handleRTP(W,G,X){if(this.stopped)return;let Y=this.codecs[W.header.payloadType];if(!Y)return;if(this.remoteStreams[W.header.ssrc]=this.remoteStreams[W.header.ssrc]??new vi(Y.clockRate),this.remoteStreams[W.header.ssrc].add(W),this.receiverTWCC){let V=G[D9.transportWideCC];if(!V==null)throw Error("undefined");this.receiverTWCC.handleTWCC(V)}else if(this.twccEnabled)this.setupTWCC(W.header.ssrc);if(Y.name.toLowerCase()==="rtx"){let V=this.ssrcByRtx[W.header.ssrc],Q=UH(Y.parameters??""),J=this.codecs[Q.apt];if(W.payload.length<2)return;W=oo(W,J.payloadType,V),X=this.trackBySSRC[V]}let Z;if(Y.name.toLowerCase()==="red"){if(Z=XS.deSerialize(W.payload),!Object.keys(this.codecs).includes(Z.header.fields[0].blockPT.toString()))return}if(X?.kind==="video"&&this.nackEnabled)this.nack.addPacket(W);if(X)if(Z){if(X.kind==="audio"){let V=this.audioRedHandler.push(Z,W);for(let Q of V)X.onReceiveRtp.execute(Q.clone(),G)}}else X.onReceiveRtp.execute(W.clone(),G);this.runRtcp()}},uQ=M1("werift:packages/webrtc/src/media/router.ts"),Cr=class{ssrcTable={};ridTable={};extIdUriMap={};constructor(){}registerRtpSender(W){this.ssrcTable[W.ssrc]=W}registerRtpReceiver(W,G){uQ("registerRtpReceiver",G),this.ssrcTable[G]=W}registerRtpReceiverBySsrc(W,G){uQ("registerRtpReceiverBySsrc",G),G.encodings.filter((X)=>X.ssrc!=null).forEach((X,Y)=>{if(this.registerRtpReceiver(W.receiver,X.ssrc),W.addTrack(new uO({ssrc:X.ssrc,kind:W.kind,id:W.sender.trackId,remote:!0,codec:G.codecs[Y]})),X.rtx)this.registerRtpReceiver(W.receiver,X.rtx.ssrc)}),G.headerExtensions.forEach((X)=>{this.extIdUriMap[X.id]=X.uri})}registerRtpReceiverByRid(W,G,X){let[Y]=X.codecs;uQ("registerRtpReceiverByRid",G),W.addTrack(new uO({rid:G.rid,kind:W.kind,id:W.sender.trackId,remote:!0,codec:Y})),this.ridTable[G.rid]=W.receiver}routeRtp=(W)=>{let G=So(W.header.extensions,this.extIdUriMap),X=this.ssrcTable[W.header.ssrc],Y=G[D9.sdesRTPStreamID];if(typeof Y==="string")X=this.ridTable[Y],X.latestRid=Y,X.handleRtpByRid(W,Y,G);else if(X)X.handleRtpBySsrc(W,G);else if(X=Object.values(this.ridTable).filter((Q)=>Q instanceof Vx).find((Q)=>Q.trackBySSRC[W.header.ssrc]),X)uQ("simulcast register receiver by ssrc",W.header.ssrc),this.registerRtpReceiver(X,W.header.ssrc),X.handleRtpBySsrc(W,G);if(!X){uQ("ssrcReceiver not found");return}let Z=G[D9.sdesMid];if(typeof Z==="string")X.sdesMid=Z;let V=G[D9.repairedRtpStreamId];if(typeof V==="string")X.latestRepairedRid=V};routeRtcp=(W)=>{let G=[];switch(W.type){case hY.type:W=W,G.push(this.ssrcTable[W.ssrc]);break;case iQ.type:W=W,W.reports.forEach((X)=>{G.push(this.ssrcTable[X.ssrc])});break;case VH.type:{let X=W}break;case uY.type:{let X=W;if(X.feedback)G.push(this.ssrcTable[X.feedback.mediaSourceSsrc])}break;case nQ.type:{let X=W;switch(X.feedback.count){case XH.count:{let Y=X.feedback;G.push(this.ssrcTable[Y.ssrcFeedbacks[0]])}break;default:G.push(this.ssrcTable[X.feedback.senderSsrc]||this.ssrcTable[X.feedback.mediaSsrc])}}break}G.filter((X)=>X).forEach((X)=>X.handleRtcpPacket(W))}},Dr=class{numPackets=0;totalSize=0;firstPacketSentAtMs=0;lastPacketSentAtMs=0;firstPacketReceivedAtMs=0;lastPacketReceivedAtMs=0;addPacket(W,G,X){if(this.numPackets===0)this.firstPacketSentAtMs=G,this.firstPacketReceivedAtMs=X,this.lastPacketSentAtMs=G,this.lastPacketReceivedAtMs=X;else{if(G<this.firstPacketSentAtMs)this.firstPacketSentAtMs=G;if(X<this.firstPacketReceivedAtMs)this.firstPacketReceivedAtMs=X;if(G>this.lastPacketSentAtMs)this.lastPacketSentAtMs=G;if(X>this.lastPacketReceivedAtMs)this.lastPacketReceivedAtMs=X}this.numPackets++,this.totalSize+=W}reset(){this.numPackets=0,this.totalSize=0,this.firstPacketSentAtMs=0,this.lastPacketSentAtMs=0,this.firstPacketReceivedAtMs=0,this.lastPacketReceivedAtMs=0}get receiveBitrate(){let W=this.lastPacketReceivedAtMs-this.firstPacketReceivedAtMs,G=this.totalSize/W*8*1000;return WH(G)}get sendBitrate(){let W=this.lastPacketSentAtMs-this.firstPacketSentAtMs,G=this.totalSize/W*8*1000;return WH(G)}},SY=20,Mr=10,Tr=class{congestion=!1;onAvailableBitrate=new f0;onCongestion=new f0;onCongestionScore=new f0;congestionCounter=0;cumulativeResult=new Dr;sentInfos={};_congestionScore=1;get congestionScore(){return this._congestionScore}set congestionScore(W){this._congestionScore=W,this.onCongestionScore.execute(W)}_availableBitrate=0;get availableBitrate(){return this._availableBitrate}set availableBitrate(W){this._availableBitrate=W,this.onAvailableBitrate.execute(W)}constructor(){}receiveTWCC(W){let X=pS()-this.cumulativeResult.firstPacketSentAtMs;if(X>1000){if(this.cumulativeResult.reset(),this.congestionCounter<SY)this.congestionCounter++;else if(this.congestionScore<Mr)this.congestionScore++;if(this.congestionCounter>=SY&&!this.congestion)this.congestion=!0,this.onCongestion.execute(this.congestion)}for(let Y of W.packetResults){if(!Y.received)continue;let Z=Y.sequenceNumber,V=this.sentInfos[Z];if(!V)continue;if(!Y.receivedAtMs)continue;this.cumulativeResult.addPacket(V.size,V.sendingAtMs,Y.receivedAtMs)}if(X>=100&&this.cumulativeResult.numPackets>=20){if(this.availableBitrate=Math.min(this.cumulativeResult.sendBitrate,this.cumulativeResult.receiveBitrate),this.cumulativeResult.reset(),this.congestionCounter>-SY){let Y=WH(SY/2)+1,Z=WH(SY/4)+1,V=Y-(Y-Z)/10*this.congestionScore;this.congestionCounter=this.congestionCounter-V}if(this.congestionCounter<=-SY){if(this.congestionScore>1)this.congestionScore--,this.onCongestion.execute(!1);this.congestionCounter=0}if(this.congestionCounter<=0&&this.congestion)this.congestion=!1,this.onCongestion.execute(this.congestion)}}rtpPacketSent(W){Object.keys(W).map((G)=>Number(G)).sort().filter((G)=>G<W.wideSeq).forEach((G)=>{delete this.sentInfos[G]}),this.sentInfos[W.wideSeq]=W}},CO=M1("werift:packages/webrtc/src/media/rtpSender.ts"),q2=128,N2=0.85,Pr=class{constructor(W){if(this.trackOrKind=W,this.kind=typeof this.trackOrKind==="string"?this.trackOrKind:this.trackOrKind.kind,typeof W!=="string"){if(W.streamId)this.streamId=W.streamId;this.registerTrack(W)}}type="sender";kind;ssrc=r1.Unpack("!L",Q2(4))[0];rtxSsrc=r1.Unpack("!L",Q2(4))[0];streamId=J2().toString();trackId=J2().toString();onReady=new f0;onRtcp=new f0;onPictureLossIndication=new f0;onGenericNack=new f0;senderBWE=new Tr;cname;mid;rtpStreamId;repairedRtpStreamId;rtxPayloadType;rtxSequenceNumber=z2();redRedundantPayloadType;_redDistance=2;redEncoder=new co(this._redDistance);headerExtensions=[];disposeTrack;lastSRtimestamp;lastSentSRTimestamp;ntpTimestamp=0n;rtpTimestamp=0;octetCount=0;packetCount=0;rtt;receiverEstimatedMaxBitrate=0n;sequenceNumber;timestamp;timestampOffset=0;seqOffset=0;rtpCache=[];codec;dtlsTransport;dtlsDisposer=[];track;stopped=!1;rtcpRunning=!1;rtcpCancel=new AbortController;setDtlsTransport(W){if(this.dtlsTransport)this.dtlsDisposer.forEach((G)=>G());this.dtlsTransport=W,this.dtlsDisposer=[this.dtlsTransport.onStateChange.subscribe((G)=>{if(G==="connected")this.onReady.execute()}).unSubscribe]}get redDistance(){return this._redDistance}set redDistance(W){this._redDistance=W,this.redEncoder.distance=W}prepareSend(W){if(this.cname=W.rtcp?.cname,this.mid=W.muxId,this.headerExtensions=W.headerExtensions,this.rtpStreamId=W.rtpStreamId,this.repairedRtpStreamId=W.repairedRtpStreamId,this.codec=W.codecs[0],this.track)this.track.codec=this.codec;W.codecs.forEach((G)=>{let X=UH(G.parameters??"");if(G.name.toLowerCase()==="rtx"&&X.apt===this.codec?.payloadType)this.rtxPayloadType=G.payloadType;if(G.name.toLowerCase()==="red")this.redRedundantPayloadType=Number((G.parameters??"").split("/")[0])})}registerTrack(W){if(W.stopped)throw Error("track is ended");if(this.disposeTrack)this.disposeTrack();W.id=this.trackId;let{unSubscribe:G}=W.onReceiveRtp.subscribe(async(X)=>{await this.sendRtp(X)});if(this.track=W,this.disposeTrack=G,this.codec)W.codec=this.codec;W.onSourceChanged.subscribe((X)=>{this.replaceRTP(X)})}async replaceTrack(W){if(W===null)return;if(W.stopped)throw Error("track is ended");if(this.sequenceNumber!=null){let G=W.header||(await W.onReceiveRtp.asPromise())[0].header;this.replaceRTP(G)}this.registerTrack(W),CO("replaceTrack","ssrc",W.ssrc,"rid",W.rid)}stop(){if(this.stopped=!0,this.rtcpRunning=!1,this.rtcpCancel.abort(),this.disposeTrack)this.disposeTrack();this.track=void 0}async runRtcp(){if(this.rtcpRunning||this.stopped)return;this.rtcpRunning=!0;try{while(this.rtcpRunning){await U2(500+Math.random()*1000,void 0,{signal:this.rtcpCancel.signal});let W=[new hY({ssrc:this.ssrc,senderInfo:new GS({ntpTimestamp:this.ntpTimestamp,rtpTimestamp:this.rtpTimestamp,packetCount:this.packetCount,octetCount:this.octetCount})})];if(this.lastSRtimestamp=lS(this.ntpTimestamp),this.lastSentSRTimestamp=QH(),this.cname)W.push(new VH({chunks:[new e2({source:this.ssrc,items:[new WS({type:1,text:this.cname})]})]}));try{await this.dtlsTransport.sendRtcp(W)}catch(G){CO("sendRtcp failed",G),await U2(500+Math.random()*1000)}}}catch(W){}}replaceRTP({sequenceNumber:W,timestamp:G},X=!1){if(this.sequenceNumber!=null){if(this.seqOffset=M9(this.sequenceNumber,-W),X)this.seqOffset=M9(this.seqOffset,2)}if(this.timestamp!=null){if(this.timestampOffset=yY(this.timestamp,-G),X)this.timestampOffset=M9(this.timestampOffset,1)}this.rtpCache=[],CO("replaceRTP",this.sequenceNumber,W,this.seqOffset)}async sendRtp(W){if(this.dtlsTransport.state!=="connected"||!this.codec)return;W=Buffer.isBuffer(W)?a6.deSerialize(W):W;let{header:G,payload:X}=W;G.ssrc=this.ssrc,G.payloadType=this.codec.payloadType,G.timestamp=yY(G.timestamp,this.timestampOffset),G.sequenceNumber=M9(G.sequenceNumber,this.seqOffset),this.timestamp=G.timestamp,this.sequenceNumber=G.sequenceNumber;let Y=Ei(),Z=[...G.extensions];G.extensions=this.headerExtensions.map((q)=>{let N=(()=>{switch(q.uri){case D9.sdesMid:if(this.mid)return xo(this.mid);return;case D9.sdesRTPStreamID:if(this.rtpStreamId)return ko(this.rtpStreamId);return;case D9.repairedRtpStreamId:if(this.repairedRtpStreamId)return _o(this.repairedRtpStreamId);return;case D9.transportWideCC:return this.dtlsTransport.transportSequenceNumber=M9(this.dtlsTransport.transportSequenceNumber,1),yo(this.dtlsTransport.transportSequenceNumber);case D9.absSendTime:return vo(Y)}})();if(N)return{id:q.id,payload:N}}).filter((q)=>q);for(let q of Z){let N=G.extensions.find((A)=>A.id===q.id);if(N)N.payload=q.payload;else G.extensions.push(q)}G.extensions=G.extensions.sort((q,N)=>q.id-N.id),this.ntpTimestamp=Y,this.rtpTimestamp=G.timestamp,this.octetCount+=X.length,this.packetCount=yY(this.packetCount,1),this.rtpCache[G.sequenceNumber%q2]=W;let V=X;if(this.redRedundantPayloadType)this.redEncoder.push({block:V,timestamp:G.timestamp,blockPT:this.redRedundantPayloadType}),V=this.redEncoder.build().serialize();let Q=await this.dtlsTransport.sendRtp(V,G);this.runRtcp();let J=pS(),U={wideSeq:this.dtlsTransport.transportSequenceNumber,size:Q,sendingAtMs:J,sentAtMs:J};this.senderBWE.rtpPacketSent(U)}handleRtcpPacket(W){switch(W.type){case hY.type:case iQ.type:W.reports.filter((X)=>X.ssrc===this.ssrc).forEach((X)=>{if(this.lastSRtimestamp===X.lsr&&X.dlsr){if(this.lastSentSRTimestamp){let Y=QH()-this.lastSentSRTimestamp-X.dlsr/65536;if(this.rtt===void 0)this.rtt=Y;else this.rtt=N2*this.rtt+(1-N2)*Y}}});break;case uY.type:{let G=W;switch(G.feedback.count){case ZH.count:{let X=G.feedback;this.senderBWE.receiveTWCC(X)}break;case YH.count:{let X=G.feedback;X.lost.forEach(async(Y)=>{let Z=this.rtpCache[Y%q2];if(Z&&Z.header.sequenceNumber!==Y)Z=void 0;if(Z){if(this.rtxPayloadType!=null)Z=no(Z,this.rtxPayloadType,this.rtxSequenceNumber,this.rtxSsrc),this.rtxSequenceNumber=M9(this.rtxSequenceNumber,1);await this.dtlsTransport.sendRtp(Z.payload,Z.header)}}),this.onGenericNack.execute(X)}break}}break;case nQ.type:{let G=W;switch(G.feedback.count){case XH.count:{let X=G.feedback;this.receiverEstimatedMaxBitrate=X.bitrate}break;case GH.count:this.onPictureLossIndication.execute();break}}break}this.onRtcp.execute(W)}getParameters(){return{encodings:[]}}setParameters(W){}async getStats(){let W=FG(),G=[];if(!this.dtlsTransport)return G;let X=Y8("transport",this.dtlsTransport.id),Y={type:"outbound-rtp",id:Y8("outbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:X,codecId:this.codec?Y8("codec",this.codec.payloadType,X):void 0,mid:this.mid,packetsSent:this.packetCount,bytesSent:this.octetCount,rtxSsrc:this.rtxPayloadType?this.rtxSsrc:void 0};if(G.push(Y),this.track){let Z={type:"media-source",id:Y8("media-source",this.trackId),timestamp:W,trackIdentifier:this.trackId,kind:this.kind};G.push(Z)}if(this.rtt!==void 0){let Z={type:"remote-inbound-rtp",id:Y8("remote-inbound-rtp",this.ssrc),timestamp:W,ssrc:this.ssrc,kind:this.kind,transportId:X,codecId:Y.codecId,localId:Y.id,roundTripTime:this.rtt};G.push(Z)}return G}},Lr=M1("werift:packages/webrtc/src/transport/sctpManager.ts"),Br=class{sctpTransport;sctpRemotePort;dataChannelsOpened=0;dataChannelsClosed=0;dataChannels=[];onDataChannel=new f0;constructor(){}createSctpTransport(W){let G=new wr(5000,W);return G.mid=void 0,G.onDataChannel.subscribe((X)=>{this.dataChannelsOpened++,this.dataChannels.push(X),this.onDataChannel.execute(X)}),this.sctpTransport=G,G}createDataChannel(W,G={}){let Y={...{protocol:"",ordered:!0,negotiated:!1},...G};if(Y.maxPacketLifeTime&&Y.maxRetransmits)throw Error("can not select both");if(!this.sctpTransport)this.sctpTransport=this.createSctpTransport();let Z=new FS({id:Y.id,label:W,maxPacketLifeTime:Y.maxPacketLifeTime,maxRetransmits:Y.maxRetransmits,negotiated:Y.negotiated,ordered:Y.ordered,protocol:Y.protocol}),V=new $S(this.sctpTransport,Z);return this.dataChannelsOpened++,this.dataChannels.push(V),V.stateChange.subscribe((Q)=>{if(Q==="closed"){this.dataChannelsClosed++;let J=this.dataChannels.indexOf(V);if(J!==-1)this.dataChannels.splice(J,1)}}),V}async connectSctp(){if(!this.sctpTransport||!this.sctpRemotePort)return;await this.sctpTransport.start(this.sctpRemotePort),await this.sctpTransport.sctp.stateChanged.connected.asPromise(),Lr("sctp connected")}setRemoteSCTP(W,G){if(!this.sctpTransport)return;if(this.sctpTransport.setRemoteMaxMessageSize(W.sctpCapabilities?.maxMessageSize),this.sctpRemotePort=W.sctpPort,!this.sctpRemotePort)throw Error("sctpRemotePort not exist");if(this.sctpTransport.setRemotePort(this.sctpRemotePort),this.sctpTransport.mLineIndex=G,!this.sctpTransport.mid)this.sctpTransport.mid=W.rtp.muxId}async close(){if(this.sctpTransport)await this.sctpTransport.stop();this.onDataChannel.allUnsubscribe()}async getStats(){let W=FG(),G=[];for(let X of this.dataChannels){let Y={type:"data-channel",id:Y8("data-channel",X.id),timestamp:W,label:X.label,protocol:X.protocol,dataChannelIdentifier:X.id,state:X.readyState,messagesSent:X.messagesSent||0,bytesSent:X.bytesSent||0,messagesReceived:X.messagesReceived||0,bytesReceived:X.bytesReceived||0};G.push(Y)}return G}},Er=class{currentLocalDescription;currentRemoteDescription;pendingLocalDescription;pendingRemoteDescription;cname;midSuffix;bundlePolicy;seenMid=new Set;constructor({cname:W,midSuffix:G,bundlePolicy:X}){this.cname=W,this.midSuffix=G??!1,this.bundlePolicy=X}get localDescription(){if(!this._localDescription)return;return this._localDescription.toJSON()}get remoteDescription(){if(!this._remoteDescription)return;return this._remoteDescription.toJSON()}get _localDescription(){return this.pendingLocalDescription||this.currentLocalDescription}get _remoteDescription(){return this.pendingRemoteDescription||this.currentRemoteDescription}get inactiveRemoteMedia(){return this._remoteDescription?.media?.find?.((W)=>W.direction==="inactive")}createMediaDescriptionForTransceiver(W,G){let X=new aO(W.kind,9,"UDP/TLS/RTP/SAVPF",W.codecs.map((Y)=>Y.payloadType));if(X.direction=G,X.msid=W.msid,X.rtp={codecs:W.codecs,headerExtensions:W.headerExtensions,muxId:W.mid},X.rtcpHost="0.0.0.0",X.rtcpPort=9,X.rtcpMux=!0,X.ssrc=[new tO({ssrc:W.sender.ssrc,cname:this.cname})],W.options.simulcast)X.simulcastParameters=W.options.simulcast.map((Y)=>new SS(Y));if(X.rtp.codecs.find((Y)=>Y.name.toLowerCase()==="rtx"))X.ssrc.push(new tO({ssrc:W.sender.rtxSsrc,cname:this.cname})),X.ssrcGroup=[new dQ("FID",[W.sender.ssrc.toString(),W.sender.rtxSsrc.toString()])];return this.addTransportDescription(X,W.dtlsTransport),X}createMediaDescriptionForSctp(W){let G=new aO("application",fF,"UDP/DTLS/SCTP",["webrtc-datachannel"]);return G.sctpPort=W.port,G.rtp.muxId=W.mid,G.sctpCapabilities=W.getCapabilities(),this.addTransportDescription(G,W.dtlsTransport),G}addTransportDescription(W,G){let X=G.iceTransport;if(W.iceCandidates=X.localCandidates,W.iceCandidatesComplete=X.gatheringState==="complete",W.iceParams=X.localParameters,W.iceOptions="trickle",W.host=Ii,W.port=fF,W.direction==="inactive")W.port=0,W.msid=void 0;if(!W.dtlsParams){if(W.dtlsParams=G.localParameters,!W.dtlsParams.fingerprints)W.dtlsParams.fingerprints=G.localParameters.fingerprints}}allocateMid(W=""){let G="";for(let X=0;;)if(G=(X++).toString()+W,!this.seenMid.has(G))break;return this.seenMid.add(G),G}parseSdp({sdp:W,isLocal:G,signalingState:X,type:Y}){let Z=oN.parse(W);return this.validateDescription({description:Z,isLocal:G,signalingState:X}),Z.type=Y,Z}validateDescription({description:W,isLocal:G,signalingState:X}){if(G){if(W.type==="offer"){if(!["stable","have-local-offer"].includes(X))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-remote-offer","have-local-pranswer"].includes(X))throw Error("Cannot handle answer in signaling state")}}else if(W.type==="offer"){if(!["stable","have-remote-offer"].includes(X))throw Error("Cannot handle offer in signaling state")}else if(W.type==="answer"){if(!["have-local-offer","have-remote-pranswer"].includes(X))throw Error("Cannot handle answer in signaling state")}}buildOfferSdp(W,G){let X=new oN;V2("offer",X),(this.currentLocalDescription?.media??[]).forEach((Z,V)=>{let Q=Z.rtp.muxId;if(!Q)return;if(Z.kind==="application"){if(!G)throw Error("sctpTransport not found");G.mLineIndex=V,X.media.push(this.createMediaDescriptionForSctp(G))}else{let J=W.find((U)=>U.mid===Q);if(!J){if(Z.direction==="inactive"){X.media.push(Z);return}throw Error("transceiver not found")}J.mLineIndex=V,X.media.push(this.createMediaDescriptionForTransceiver(J,J.direction))}});for(let Z of W.filter((V)=>!X.media.find((Q)=>Q.rtp.muxId===V.mid))){if(Z.mid==null)Z.mid=this.allocateMid(this.midSuffix?"av":"");let V=this.createMediaDescriptionForTransceiver(Z,Z.direction);if(Z.mLineIndex===void 0)Z.mLineIndex=X.media.length,X.media.push(V);else X.media[Z.mLineIndex]=V}if(G&&!X.media.find((Z)=>Z.kind==="application")){if(G.mLineIndex=X.media.length,G.mid==null)G.mid=this.allocateMid(this.midSuffix?"dc":"");X.media.push(this.createMediaDescriptionForSctp(G))}if(this.bundlePolicy!=="disable"){let Z=X.media.map((V)=>V.rtp.muxId).filter((V)=>V);if(Z.length){let V=new dQ("BUNDLE",Z);X.group.push(V)}}return X}buildAnswerSdp({transceivers:W,sctpTransport:G,signalingState:X}){if(!["have-remote-offer","have-local-pranswer"].includes(X))throw Error("createAnswer failed");if(!this._remoteDescription)throw Error("wrong state");let Y=new oN;V2("answer",Y);for(let Z of this._remoteDescription.media){let V,Q;if(["audio","video"].includes(Z.kind)){let J=W.find((U)=>U.mid===Z.rtp.muxId);if(!J)throw Error(`Transceiver with mid=${Z.rtp.muxId} not found`);Q=this.createMediaDescriptionForTransceiver(J,cS(J.direction,J.offerDirection)),V=J.dtlsTransport}else if(Z.kind==="application"){if(!G||!G.mid)throw Error("sctpTransport not found");Q=this.createMediaDescriptionForSctp(G),V=G.dtlsTransport}else throw Error("invalid kind");if(Q.dtlsParams)if(V.role==="auto")Q.dtlsParams.role="client";else Q.dtlsParams.role=V.role;if(Z.simulcastParameters&&Z.simulcastParameters.length>0)Q.simulcastParameters=Z.simulcastParameters.map((J)=>({...J,direction:J.direction==="send"?"recv":"send"}));Y.media.push(Q)}if(this.bundlePolicy!=="disable"){let Z=new dQ("BUNDLE",[]);for(let V of Y.media)if(V.rtp.muxId)Z.items.push(V.rtp.muxId);Y.group.push(Z)}return Y}setLocalDescription(W){if(this.currentLocalDescription=W,W.type==="answer")this.pendingLocalDescription=void 0;else this.pendingLocalDescription=W}setRemoteDescription(W,G){if(!W.sdp||!W.type||W.type==="rollback"||W.type==="pranswer")throw Error("invalid sessionDescription");let X=this.parseSdp({sdp:W.sdp,isLocal:!1,signalingState:G,type:W.type});if(X.type==="answer")this.currentRemoteDescription=X,this.pendingRemoteDescription=void 0;else this.pendingRemoteDescription=X;return X}registerMid(W){this.seenMid.add(W)}get remoteIsBundled(){let W=this._remoteDescription;if(!W)return;return W.group.find((X)=>X.semantic==="BUNDLE"&&this.bundlePolicy!=="disable")}setLocal(W,G,X){let Y=new Map(G.map((Q)=>[Q?.mLineIndex,Q])),Z=G.find((Q)=>Q?.dtlsTransport)?.dtlsTransport??X?.dtlsTransport;W.media.filter((Q)=>["audio","video"].includes(Q.kind)).forEach((Q,J)=>{let q=(Y.get(J)??G[J])?.dtlsTransport??Z;if(!q)throw Error(`dtls transport not found for media index ${J}`);this.addTransportDescription(Q,q)});let V=W.media.find((Q)=>Q.kind==="application");if(X&&V)this.addTransportDescription(V,X.dtlsTransport);this.setLocalDescription(W)}},hQ=M1("werift:packages/webrtc/src/transport/secureTransportManager.ts"),$r=class{connectionState="new";iceConnectionState="new";iceGatheringState="new";certificate;iceGatheringStateChange=new f0;iceConnectionStateChange=new f0;onIceCandidate=new f0;connectionStateChange=new f0;config;transceiverManager;sctpManager;constructor({config:W,transceiverManager:G,sctpManager:X}){if(this.config=W,this.transceiverManager=G,this.sctpManager=X,this.config.dtls){let{keys:Y}=this.config.dtls;if(Y)this.setupCertificate(Y)}}get dtlsTransports(){return[...this.transceiverManager.getTransceivers().map((G)=>G?.dtlsTransport),this.sctpManager.sctpTransport?.dtlsTransport].filter((G)=>G!=null).reduce((G,X)=>{if(!G.map((Y)=>Y.id).includes(X.id))G.push(X);return G},[])}get iceTransports(){return this.dtlsTransports.map((W)=>W.iceTransport)}setupCertificate(W){this.certificate=new dS(W.keyPem,W.certPem,W.signatureHash)}createTransport(){let W=this.iceTransports.find((Z)=>Z.state!=="closed"),G=new oi({...$i(this.config.iceServers),forceTurn:this.config.iceTransportPolicy==="relay",portRange:this.config.icePortRange,interfaceAddresses:this.config.iceInterfaceAddresses,additionalHostAddresses:this.config.iceAdditionalHostAddresses,filterStunResponse:this.config.iceFilterStunResponse,filterCandidatePair:this.config.iceFilterCandidatePair,localPasswordPrefix:this.config.icePasswordPrefix,useIpv4:this.config.iceUseIpv4,useIpv6:this.config.iceUseIpv6,turnTransport:this.config.forceTurnTCP===!0?"tcp":"udp",useLinkLocalAddress:this.config.iceUseLinkLocalAddress});if(W)G.connection.localUsername=W.connection.localUsername,G.connection.localPassword=W.connection.localPassword;G.onGatheringStateChange.subscribe(()=>{this.updateIceGatheringState()}),this.updateIceGatheringState();let X=new di(G);return X.onStateChange.subscribe(()=>{this.updateIceConnectionState()}),new dF(this.config,X,this.certificate,Fr)}handleNewIceCandidate({candidate:W,media:G,remoteIsBundled:X,transceiver:Y,sctpTransport:Z,bundlePolicy:V}){if(V==="max-bundle"||X){if(W.sdpMLineIndex=0,G)W.sdpMid=G.rtp.muxId}else{if(Y)W.sdpMLineIndex=Y.mLineIndex,W.sdpMid=Y.mid;if(Z)W.sdpMLineIndex=Z.mLineIndex,W.sdpMid=Z.mid}if(W.foundation&&!W.foundation.startsWith("candidate:"))W.foundation="candidate:"+W.foundation;return this.onIceCandidate.execute(W),W}async addIceCandidate(W,G){let X=oS.fromJSON(G);if(!X)return;let Y;if(typeof X.sdpMid==="number")Y=this.getTransportByMid(X.sdpMid);if(!Y&&typeof X.sdpMLineIndex==="number")Y=this.getTransportByMLineIndex(W,X.sdpMLineIndex);if(!Y)Y=this.iceTransports[0];if(Y)await Y.addRemoteCandidate(X);else hQ("iceTransport not found for candidate",X)}getTransportByMid(W){let G,X=this.transceiverManager.getTransceivers().find((Y)=>Y.mid===W);if(X)G=X.dtlsTransport.iceTransport;else if(!G&&this.sctpManager.sctpTransport?.mid===W)G=this.sctpManager.sctpTransport.dtlsTransport.iceTransport;return G}getTransportByMLineIndex(W,G){let X=W.media[G];if(!X)return;return this.getTransportByMid(X.rtp.muxId)}restartIce(){for(let W of this.iceTransports)W.restart()}setLocalRole({type:W,role:G}){for(let X of this.dtlsTransports){let Y=X.iceTransport;if(W==="offer")Y.connection.iceControlling=!0;else Y.connection.iceControlling=!1;if(Y.connection.remoteIsLite)Y.connection.iceControlling=!0;if(W==="answer"){if(G)X.role=G}}}updateIceGatheringState(){let W=this.iceTransports;function G(...Y){return W.filter((Z)=>Y.includes(Z.gatheringState)).length===W.length}let X;if(W.length&&G("complete"))X="complete";else if(!W.length||G("new","complete"))X="new";else if(W.map((Y)=>Y.gatheringState).includes("gathering"))X="gathering";else X="new";if(this.iceGatheringState===X)return;this.iceGatheringState=X,this.iceGatheringStateChange.execute(X)}updateIceConnectionState(){let W=this.iceTransports,G;function X(...Z){return W.filter((V)=>Z.includes(V.state)).length===W.length}function Y(...Z){return W.some((V)=>Z.includes(V.state))}if(this.connectionState==="closed")G="closed";else if(Y("failed"))G="failed";else if(Y("disconnected"))G="disconnected";else if(X("new","closed"))G="new";else if(Y("new","checking"))G="checking";else if(X("completed","closed"))G="completed";else if(X("connected","completed","closed"))G="connected";else G="new";if(this.iceConnectionState===G)return;hQ("iceConnectionStateChange",G),this.iceConnectionState=G,this.iceConnectionStateChange.execute(G)}async gatherCandidates(W){let G=this.iceTransports.find((X)=>X.state==="connected"||X.state==="completed");if(W&&G)hQ("skipping ICE gathering for bundled connection");else await Promise.allSettled(this.iceTransports.map((X)=>X.gather())).catch((X)=>{hQ("gatherCandidates failed",X)})}setConnectionState(W){hQ("connectionStateChange",W),this.connectionState=W,this.connectionStateChange.execute(W)}async getStats(){let W=[];for(let G of this.dtlsTransports){let X=await G.getStats();if(X)W.push(...X)}return W}async ensureCerts(){if(!this.certificate)this.certificate=await dF.SetupCertificate();for(let W of this.dtlsTransports)W.localCertificate=this.certificate}async close(){this.setConnectionState("closed"),await Promise.allSettled([...this.dtlsTransports.map((W)=>W.stop())]),this.iceGatheringStateChange.allUnsubscribe(),this.iceConnectionStateChange.allUnsubscribe(),this.onIceCandidate.allUnsubscribe(),this.connectionStateChange.allUnsubscribe()}},Fr=[pF.SRTP_AEAD_AES_128_GCM,pF.SRTP_AES128_CM_HMAC_SHA1_80],s5=M1("werift:packages/webrtc/src/peerConnection.ts"),Qx=class extends UK{cname=Rr().toString();config=Jx();signalingState="stable";negotiationneeded=!1;needRestart=!1;router=new Cr;sdpManager;transceiverManager;sctpManager;secureManager;isClosed=!1;shouldNegotiationneeded=!1;remoteBundleNegotiated=!1;iceGatheringStateChange=new f0;iceConnectionStateChange=new f0;signalingStateChange=new f0;connectionStateChange=new f0;onDataChannel=new f0;onRemoteTransceiverAdded=new f0;onTransceiverAdded=new f0;onIceCandidate=new f0;onNegotiationneeded=new f0;onTrack=new f0;ondatachannel;onicecandidate;onicecandidateerror;onicegatheringstatechange;onnegotiationneeded;onsignalingstatechange;ontrack;onconnectionstatechange;oniceconnectionstatechange;constructor(W={}){super();this.setConfiguration(W),this.sdpManager=new Er({cname:this.cname,bundlePolicy:this.config.bundlePolicy}),this.transceiverManager=new xr(this.cname,this.config,this.router),this.transceiverManager.onTransceiverAdded.pipe(this.onTransceiverAdded),this.transceiverManager.onRemoteTransceiverAdded.pipe(this.onRemoteTransceiverAdded),this.transceiverManager.onTrack.subscribe(({track:G,stream:X,transceiver:Y})=>{let Z={track:G,streams:[X],transceiver:Y,receiver:Y.receiver};if(this.onTrack.execute(G),this.emit("track",Z),this.ontrack)this.ontrack(Z)}),this.transceiverManager.onNegotiationNeeded.subscribe(()=>this.needNegotiation()),this.sctpManager=new Br,this.sctpManager.onDataChannel.subscribe((G)=>{this.onDataChannel.execute(G);let X={channel:G};this.ondatachannel?.(X),this.emit("datachannel",X)}),this.secureManager=new $r({config:this.config,sctpManager:this.sctpManager,transceiverManager:this.transceiverManager}),this.secureManager.iceGatheringStateChange.pipe(this.iceGatheringStateChange),this.secureManager.iceConnectionStateChange.subscribe((G)=>{if(G==="closed")this.close();this.iceConnectionStateChange.execute(G)}),this.secureManager.connectionStateChange.subscribe((G)=>{this.connectionStateChange.execute(G),this.onconnectionstatechange?.(),this.emit("connectionstatechange")}),this.secureManager.onIceCandidate.subscribe((G)=>{let X=G?G.toJSON():void 0;this.onIceCandidate.execute(X),this.onicecandidate?.({candidate:X}),this.emit("icecandidate",{candidate:X})})}get connectionState(){return this.secureManager.connectionState}get iceConnectionState(){return this.secureManager.iceConnectionState}get iceGathererState(){return this.secureManager.iceGatheringState}get iceGatheringState(){return this.secureManager.iceGatheringState}get dtlsTransports(){return this.secureManager.dtlsTransports}get sctpTransport(){return this.sctpManager.sctpTransport}get sctpRemotePort(){return this.sctpManager.sctpRemotePort}get iceTransports(){return this.secureManager.iceTransports}get extIdUriMap(){return this.router.extIdUriMap}get iceGeneration(){return this.iceTransports[0].connection.generation}get localDescription(){return this.sdpManager.localDescription}get remoteDescription(){return this.sdpManager.remoteDescription}get remoteIsBundled(){return this.sdpManager.remoteIsBundled}get _localDescription(){return this.sdpManager._localDescription}get _remoteDescription(){return this.sdpManager._remoteDescription}getTransceivers(){return this.transceiverManager.getTransceivers()}getSenders(){return this.transceiverManager.getSenders()}getReceivers(){return this.transceiverManager.getReceivers()}setConfiguration(W){if(Fi(this.config,W),this.config.icePortRange){let[G,X]=this.config.icePortRange;if(G===X)throw Error("should not be same value");if(G>=X)throw Error("The min must be less than max")}if(!Number.isInteger(this.config.maxMessageSize)||this.config.maxMessageSize<0)throw Error("maxMessageSize must be a non-negative integer");if(this.sctpManager?.sctpTransport)this.sctpManager.sctpTransport.maxMessageSize=this.config.maxMessageSize;for(let[G,X]of gF([...this.config.codecs.audio||[],...this.config.codecs.video||[]])){if(X.payloadType!=null)continue;switch(X.payloadType=96+G,X.name.toLowerCase()){case"rtx":X.parameters=`apt=${X.payloadType-1}`;break;case"red":if(X.contentType==="audio"){let Y=X.payloadType+1;X.parameters=`${Y}/${Y}`,X.payloadType=63}break}}[...this.config.headerExtensions.audio||[],...this.config.headerExtensions.video||[]].forEach((G,X)=>{G.id=1+X})}getConfiguration(){return this.config}async createOffer({iceRestart:W}={}){if(W||this.needRestart)this.needRestart=!1,this.secureManager.restartIce();await this.secureManager.ensureCerts();for(let X of this.transceiverManager.getTransceivers()){if(X.codecs.length===0)this.transceiverManager.assignTransceiverCodecs(X);if(X.headerExtensions.length===0)X.headerExtensions=this.config.headerExtensions[X.kind]??[]}return this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport).toJSON()}createSctpTransport(){let W=this.sctpManager.createSctpTransport(this.config.maxMessageSize),G=this.findOrCreateTransport();return W.setDtlsTransport(G),W}createDataChannel(W,G={}){if(!this.sctpTransport)this.createSctpTransport(),this.needNegotiation();let X=this.sctpManager.createDataChannel(W,G);if(!X.sctp.dtlsTransport){let Y=this.findOrCreateTransport();X.sctp.setDtlsTransport(Y)}return X}removeTrack(W){if(this.isClosed)throw Error("peer closed");this.transceiverManager.removeTrack(W),this.needNegotiation()}needNegotiation=async()=>{if(this.shouldNegotiationneeded=!0,this.negotiationneeded||this.signalingState!=="stable")return;this.shouldNegotiationneeded=!1,setImmediate(()=>{if(this.negotiationneeded=!0,this.onNegotiationneeded.execute(),this.onnegotiationneeded)this.onnegotiationneeded({})})};findOrCreateTransport(){let W=this.dtlsTransports.find((Z)=>Z.state!=="closed"),G=W?.iceTransport;if(this.sdpManager.bundlePolicy==="max-bundle"||this.sdpManager.bundlePolicy!=="disable"&&(this.remoteIsBundled||this.remoteBundleNegotiated)){if(W)return W}let X=this.secureManager.createTransport();X.onRtp.subscribe((Z)=>{this.router.routeRtp(Z)}),X.onRtcp.subscribe((Z)=>{this.router.routeRtcp(Z)});let Y=X.iceTransport;return Y.onNegotiationNeeded.subscribe(()=>{this.needNegotiation()}),Y.onIceCandidate.subscribe((Z)=>{if(!this.localDescription){s5("localDescription not found when ice candidate was gathered");return}if(!Z){if(this.sdpManager.setLocal(this._localDescription,this.transceiverManager.getTransceivers(),this.sctpTransport),this.onIceCandidate.execute(void 0),this.onicecandidate)this.onicecandidate({candidate:void 0});this.emit("icecandidate",{candidate:void 0});return}if(!this._localDescription){s5("localDescription not found when ice candidate was gathered");return}this.secureManager.handleNewIceCandidate({candidate:Z,bundlePolicy:this.sdpManager.bundlePolicy,remoteIsBundled:!!this.sdpManager.remoteIsBundled,media:this._localDescription.media[0],transceiver:this.transceiverManager.getTransceivers().find((V)=>V?.dtlsTransport?.iceTransport.id===Y.id),sctpTransport:this.sctpTransport?.dtlsTransport.iceTransport.id===Y.id?this.sctpTransport:void 0})}),X}async setLocalDescription(W){W=W??(["stable","have-local-offer","have-remote-pranswer"].includes(this.signalingState)?await this.createOffer():await this.createAnswer());let X=this.sdpManager.parseSdp({sdp:W.sdp,isLocal:!0,signalingState:this.signalingState,type:W.type});if(X.type==="offer")this.setSignalingState("have-local-offer");else if(X.type==="answer")this.setSignalingState("stable");for(let[Z,V]of gF(X.media)){let Q=V.rtp.muxId;if(this.sdpManager.registerMid(Q),["audio","video"].includes(V.kind)){let J=this.transceiverManager.getTransceiverByMLineIndex(Z);if(J)J.mid=Q}if(V.kind==="application"&&this.sctpTransport)this.sctpTransport.mid=Q}let Y=X.media.find((Z)=>Z.dtlsParams)?.dtlsParams?.role;if(this.secureManager.setLocalRole({type:X.type,role:Y}),["answer","pranswer"].includes(X.type))for(let Z of this.transceiverManager.getTransceivers()){let V=cS(Z.direction,Z.offerDirection);Z.setCurrentDirection(V)}if(this.sdpManager.setLocal(X,this.transceiverManager.getTransceivers(),this.sctpTransport),await this.gatherCandidates().catch((Z)=>{s5("gatherCandidates failed",Z)}),X.type==="answer")this.connect().catch((Z)=>{s5("connect failed",Z),this.secureManager.setConnectionState("failed")});if(this.sdpManager.setLocal(X,this.transceiverManager.getTransceivers(),this.sctpTransport),this.shouldNegotiationneeded)this.needNegotiation();return X}async gatherCandidates(){await this.secureManager.gatherCandidates(!!this.sdpManager.remoteIsBundled)}async addIceCandidate(W){let G=this.sdpManager.buildOfferSdp(this.transceiverManager.getTransceivers(),this.sctpTransport);await this.secureManager.addIceCandidate(G,W)}async connect(){if(s5("start connect"),(await Promise.allSettled(this.dtlsTransports.map(async(G)=>{let{iceTransport:X}=G;if(X.state==="connected")return;let Y=()=>G.state==="connected";if(Y())return;if(this.secureManager.setConnectionState("connecting"),await X.start().catch((Z)=>{throw s5("iceTransport.start failed",Z),Z}),Y())return;if(await G.start().catch((Z)=>{throw s5("dtlsTransport.start failed",Z),Z}),this.sctpTransport&&this.sctpTransport.dtlsTransport.id===G.id)await this.sctpManager.connectSctp()}))).find((G)=>G.status==="rejected"))this.secureManager.setConnectionState("failed");else this.secureManager.setConnectionState("connected")}restartIce(){this.needRestart=!0,this.needNegotiation()}async setRemoteDescription(W){if(W instanceof oN)W=W.toSdp();let G=this.sdpManager.setRemoteDescription(W,this.signalingState);if(G.group.some((Q)=>Q.semantic==="BUNDLE"&&Q.items.length>0))this.remoteBundleNegotiated=!0;let X,Y=(Q,J)=>Q.kind===J.kind&&[void 0,J.rtp.muxId].includes(Q.mid),Z=G.media.map((Q,J)=>{let U;if(["audio","video"].includes(Q.kind)){let N=this.transceiverManager.getTransceivers().find((A)=>Y(A,Q));if(!N)N=this.addTransceiver(Q.kind,{direction:"recvonly"}),N.mid=Q.rtp.muxId,this.onRemoteTransceiverAdded.execute(N);else if(N.direction==="inactive"&&N.stopping){if(N.stopped=!0,W.type==="answer")N.setCurrentDirection("inactive");return}if(this.sdpManager.remoteIsBundled)if(!X)X=N.dtlsTransport;else N.setDtlsTransport(X);U=N.dtlsTransport,this.transceiverManager.setRemoteRTP(N,Q,G.type,J)}else if(Q.kind==="application"){let N=this.sctpTransport;if(!N)N=this.createSctpTransport(),N.mid=Q.rtp.muxId;if(this.sdpManager.remoteIsBundled)if(!X)X=N.dtlsTransport;else N.setDtlsTransport(X);U=N.dtlsTransport,this.sctpManager.setRemoteSCTP(Q,J)}else throw Error("invalid media kind");let q=U.iceTransport;if(Q.iceParams){let N=!!this.sdpManager.inactiveRemoteMedia;if(q.setRemoteParams(Q.iceParams,N),Q.iceParams?.iceLite)q.connection.iceControlling=!0}if(Q.dtlsParams)U.setRemoteParams(Q.dtlsParams);if(Q.iceCandidates.forEach(q.addRemoteCandidate),Q.iceCandidatesComplete)q.addRemoteCandidate(void 0);if(G.type==="answer"&&Q.dtlsParams?.role)U.role=Q.dtlsParams.role==="client"?"server":"client";return q});Z=Z.filter((Q)=>!!Q);let V=this.transceiverManager.getTransceivers().filter((Q)=>G.media.find((J)=>Y(Q,J))==null);if(W.type==="answer")for(let Q of V)Q.stop(),Q.stopped=!0;if(G.type==="offer")this.setSignalingState("have-remote-offer");else if(G.type==="answer")this.setSignalingState("stable");if(G.type==="answer")s5("caller start connect"),this.connect().catch((Q)=>{s5("connect failed",Q),this.secureManager.setConnectionState("failed")});if(this.negotiationneeded=!1,this.shouldNegotiationneeded)this.needNegotiation()}addTransceiver(W,G={}){let X=this.findOrCreateTransport(),Y=this.transceiverManager.addTransceiver(W,X,G);return this.secureManager.updateIceConnectionState(),this.needNegotiation(),Y}addTrack(W,G){if(this.isClosed)throw Error("is closed");let X=this.transceiverManager.addTrack(W,G);if(!X.dtlsTransport){let Y=this.findOrCreateTransport();X.setDtlsTransport(Y)}return this.needNegotiation(),X.sender}async createAnswer(){return this.assertNotClosed(),await this.secureManager.ensureCerts(),this.sdpManager.buildAnswerSdp({transceivers:this.transceiverManager.getTransceivers(),sctpTransport:this.sctpTransport,signalingState:this.signalingState}).toJSON()}assertNotClosed(){if(this.isClosed)throw Error("RTCPeerConnection is closed")}setSignalingState(W){if(s5("signalingStateChange",W),this.signalingState=W,this.signalingStateChange.execute(W),this.onsignalingstatechange)this.onsignalingstatechange({})}createPeerConnectionStats(){let W=FG();return{type:"peer-connection",id:Y8("peer-connection"),timestamp:W,dataChannelsOpened:this.sctpManager.dataChannelsOpened,dataChannelsClosed:this.sctpManager.dataChannelsClosed}}async getStats(W){let G=[];G.push(this.createPeerConnectionStats());let X=await this.transceiverManager.getStats(W);G.push(...X);let Y=await this.secureManager.getStats();if(G.push(...Y),this.sctpTransport){let Z=await this.sctpManager.getStats();if(Z)G.push(...Z)}return new Oi(G)}async close(){if(this.isClosed)return;this.isClosed=!0,this.setSignalingState("closed"),this.transceiverManager.close(),await this.secureManager.close(),await this.sctpManager.close(),this.onDataChannel.allUnsubscribe(),this.iceGatheringStateChange.allUnsubscribe(),this.iceConnectionStateChange.allUnsubscribe(),this.signalingStateChange.allUnsubscribe(),this.onTransceiverAdded.allUnsubscribe(),this.onRemoteTransceiverAdded.allUnsubscribe(),this.onIceCandidate.allUnsubscribe(),s5("peerConnection closed")}},H2=(W,G)=>W.find((X)=>X.mimeType.toLowerCase()===G.mimeType.toLowerCase())?G:void 0;function Jx(){return{codecs:{audio:[kS(),_S()],video:[xS()]},headerExtensions:{audio:[],video:[]},iceTransportPolicy:"all",iceServers:[{urls:"stun:stun.l.google.com:19302"}],icePortRange:void 0,iceInterfaceAddresses:void 0,iceAdditionalHostAddresses:void 0,iceUseIpv4:!0,iceUseIpv6:!0,iceFilterStunResponse:void 0,iceFilterCandidatePair:void 0,icePasswordPrefix:void 0,iceUseLinkLocalAddress:void 0,dtls:{},bundlePolicy:"max-compat",debug:{},midSuffix:!1,forceTurnTCP:!1,maxMessageSize:fQ}}var OA0=Jx(),Sr=M1("werift:packages/webrtc/src/media/rtpTransceiverManager.ts"),xr=class{constructor(W,G,X){this.cname=W,this.config=G,this.router=X}transceivers=[];onTransceiverAdded=new f0;onRemoteTransceiverAdded=new f0;onTrack=new f0;onNegotiationNeeded=new f0;getTransceivers(){return this.transceivers}getSenders(){return this.getTransceivers().map((W)=>W.sender)}getReceivers(){return this.getTransceivers().map((W)=>W.receiver)}getTransceiverByMLineIndex(W){return this.transceivers.find((G)=>G.mLineIndex===W)}pushTransceiver(W){this.transceivers.push(W)}replaceTransceiver(W,G){this.transceivers[G]=W}addTransceiver(W,G,X={}){let Y=typeof W==="string"?W:W.kind,Z=X.direction||"sendrecv",V=new Pr(W),Q=new Vx(this.config,Y,V.ssrc),J=new Ki(Y,G,Q,V,Z);J.options=X,this.router.registerRtpSender(J.sender);let U=this.transceivers.findIndex((N)=>N.currentDirection==="inactive"&&!N.usedForSender),q=this.transceivers.find((N)=>N.currentDirection==="inactive"&&!N.usedForSender);if(U>-1&&q)this.replaceTransceiver(J,U),J.mLineIndex=q.mLineIndex,J.mid=q.mid,q.setCurrentDirection(void 0);else this.pushTransceiver(J);return this.onTransceiverAdded.execute(J),J}addTrack(W,G){if(this.getSenders().find((Z)=>Z.track?.uuid===W.uuid))throw Error("Track already added");let X=this.transceivers.find((Z)=>Z.sender.track==null&&Z.kind===W.kind&&mN.includes(Z.direction)===!0);if(X)return X.sender.registerTrack(W),X;let Y=this.transceivers.find((Z)=>Z.sender.track==null&&Z.kind===W.kind&&mN.includes(Z.direction)===!1&&!Z.usedForSender);if(Y){switch(Y.sender.registerTrack(W),Y.direction){case"recvonly":Y.setDirection("sendrecv");break;case"inactive":Y.setDirection("sendonly");break}return Y}else return this.addTransceiver(W,void 0,{direction:"sendrecv"})}removeTrack(W){if(!this.getSenders().find(({ssrc:X})=>W.ssrc===X))throw Error("Sender does not exist");let G=this.transceivers.find(({sender:{ssrc:X}})=>W.ssrc===X);if(!G)throw Error("No matching transceiver found");if(W.stop(),G.currentDirection==="recvonly"){this.onNegotiationNeeded.execute();return}if(G.stopping||G.stopped)G.setDirection("inactive");else if(G.direction==="sendrecv")G.setDirection("recvonly");else if(G.direction==="sendonly"||G.direction==="recvonly")G.setDirection("inactive")}assignTransceiverCodecs(W){let G=this.config.codecs[W.kind].filter((X)=>{switch(X.direction){case"recvonly":{if(ji.includes(W.direction))return!0;return!1}case"sendonly":{if(mN.includes(W.direction))return!0;return!1}case"sendrecv":{if([hS,uS,gS].includes(W.direction))return!0;return!1}case"all":return!0;default:return!1}});W.codecs=G}getLocalRtpParams(W){if(W.mid==null)throw Error("mid not assigned");return{codecs:W.codecs,muxId:W.mid,headerExtensions:W.headerExtensions,rtcp:{cname:this.cname,ssrc:W.sender.ssrc,mux:!0}}}getRemoteRtpParams(W,G){return{muxId:W.rtp.muxId,rtcp:W.rtp.rtcp,codecs:G.codecs,headerExtensions:G.headerExtensions,encodings:Object.values(G.codecs.reduce((Y,Z)=>{if(Z.name.toLowerCase()==="rtx"){let V=UH(Z.parameters??""),Q=Y[V.apt];if(Q&&W.ssrc.length===2)Q.rtx=new Yi({ssrc:W.ssrc[1].ssrc});return Y}return Y[Z.payloadType]=new Zi({ssrc:W.ssrc[0]?.ssrc,payloadType:Z.payloadType}),Y},{}))}}setRemoteRTP(W,G,X,Y){if(!W.mid)W.mid=G.rtp.muxId;if(W.mLineIndex=Y,W.codecs=G.rtp.codecs.filter((J)=>{let U=this.config.codecs[G.kind]||[],q=H2(U,J);if(!q)return!1;if(q?.name.toLowerCase()==="rtx"){let A=UH(q.parameters??"").apt,H=G.rtp.codecs.find((I)=>I.payloadType===A);if(!H)return!1;return!!H2(U,H)}return!0}),Sr("negotiated codecs",W.codecs),W.codecs.length===0)throw Error("negotiate codecs failed.");W.headerExtensions=G.rtp.headerExtensions.filter((J)=>(this.config.headerExtensions[G.kind]||[]).find((U)=>U.uri===J.uri));let Z=G.direction??"inactive",V=Ri(Z);if(["answer","pranswer"].includes(X))W.setCurrentDirection(V);else W.offerDirection=V;let Q=this.getLocalRtpParams(W);if(W.sender.prepareSend(Q),["recvonly","sendrecv"].includes(W.direction)){let J=this.getRemoteRtpParams(G,W);for(let U of G.simulcastParameters)this.router.registerRtpReceiverByRid(W,U,J);W.receiver.prepareReceive(J),this.router.registerRtpReceiverBySsrc(W,J)}if(["sendonly","sendrecv"].includes(Z)){if(G.msid){let[J,U]=G.msid.split(" ");W.receiver.remoteStreamId=J,W.receiver.remoteTrackId=U}this.onTrack.execute({track:W.receiver.track,transceiver:W,stream:new Di({id:W.receiver.remoteStreamId,tracks:[W.receiver.track]})})}if(G.ssrc[0]?.ssrc)W.receiver.setupTWCC(G.ssrc[0].ssrc)}async getStats(W){let G=[];for(let X of this.transceivers){let Y=!W||X.sender.track===W||X.receiver.track===W;if(X.sender){let Z=await X.sender.getStats();if(Z)for(let V of Z)if(V.type==="outbound-rtp"||V.type==="media-source"){if(Y)G.push(V)}else G.push(V)}if(X.receiver){let Z=await X.receiver.getStats();if(Z)for(let V of Z)if(V.type==="inbound-rtp"||V.type==="remote-outbound-rtp"){if(Y)G.push(V)}else G.push(V)}if(Y){let Z=X.getCodecStats();if(Z)G.push(...Z)}}return G}close(){for(let W of this.transceivers)W.receiver.stop(),W.sender.stop();this.onTransceiverAdded.allUnsubscribe(),this.onRemoteTransceiverAdded.allUnsubscribe(),this.onTrack.allUnsubscribe(),this.onNegotiationNeeded.allUnsubscribe()}};class NK extends Qx{toJSON(){return{}}createDataChannel(...W){let G=super.createDataChannel(...W);try{G.toJSON=()=>({})}catch{}return G}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var pY={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},kr={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},_r=BigInt(0),Ux=BigInt(1),HK=BigInt(2);function yr(W){let G=pY.p,X=BigInt(3),Y=BigInt(6),Z=BigInt(11),V=BigInt(22),Q=BigInt(23),J=BigInt(44),U=BigInt(88),q=W*W*W%G,N=q*q*W%G,A=V5(N,X,G)*N%G,H=V5(A,X,G)*N%G,I=V5(H,HK,G)*q%G,w=V5(I,Z,G)*I%G,C=V5(w,V,G)*w%G,D=V5(C,J,G)*C%G,x=V5(D,U,G)*D%G,h=V5(x,J,G)*C%G,p=V5(h,X,G)*N%G,u=V5(p,Q,G)*w%G,n=V5(u,Y,G)*q%G,c=V5(n,HK,G);if(!OH.eql(OH.sqr(c),W))throw Error("Cannot find square root");return c}var OH=T5(pY.p,{sqrt:yr}),Hx=CY({...pY,Fp:OH,lowS:!0,endo:kr},jY),qx={};function KH(W,...G){let X=qx[W];if(X===void 0){let Y=jY(qN(W));X=o9(Y,Y),qx[W]=X}return jY(o9(X,...G))}var zK=(W)=>W.toBytes(!0).slice(1),lY=(()=>Hx.Point)(),IK=(W)=>W%HK===_r;function AK(W){let{Fn:G,BASE:X}=lY,Y=p6(G,W),Z=X.multiply(Y);return{scalar:IK(Z.y)?Y:G.neg(Y),bytes:zK(Z)}}function Ax(W){let G=OH;if(!G.isValidNot0(W))throw Error("invalid x: Fail if x \u2265 p");let X=G.create(W*W),Y=G.create(X*W+BigInt(7)),Z=G.sqrt(Y);if(!IK(Z))Z=G.neg(Z);let V=lY.fromAffine({x:W,y:Z});return V.assertValidity(),V}var NJ=R4;function zx(...W){return lY.Fn.create(NJ(KH("BIP0340/challenge",...W)))}function Nx(W){return AK(W).bytes}function vr(W,G,X=HG(32)){let{Fn:Y}=lY,Z=R8("message",W),{bytes:V,scalar:Q}=AK(G),J=R8("auxRand",X,32),U=Y.toBytes(Q^NJ(KH("BIP0340/aux",J))),q=KH("BIP0340/nonce",U,V,Z),{bytes:N,scalar:A}=AK(q),H=zx(N,V,Z),I=new Uint8Array(64);if(I.set(N,0),I.set(Y.toBytes(Y.create(A+H*Q)),32),!Ix(I,Z,V))throw Error("sign: Invalid signature produced");return I}function Ix(W,G,X){let{Fn:Y,BASE:Z}=lY,V=R8("signature",W,64),Q=R8("message",G),J=R8("publicKey",X,32);try{let U=Ax(NJ(J)),q=NJ(V.subarray(0,32));if(!PQ(q,Ux,pY.p))return!1;let N=NJ(V.subarray(32,64));if(!PQ(N,Ux,pY.n))return!1;let A=zx(Y.toBytes(q),zK(U),Q),H=Z.multiplyUnsafe(N).add(U.multiplyUnsafe(Y.neg(A))),{x:I,y:w}=H.toAffine();if(H.is0()||!IK(w)||I!==q)return!1;return!0}catch(U){return!1}}var wx=(()=>{let X=(Z=HG(48))=>{return IN(Z,pY.n)};Hx.utils.randomSecretKey;function Y(Z){let V=X(Z);return{secretKey:V,publicKey:Nx(V)}}return{keygen:Y,getPublicKey:Nx,sign:vr,verify:Ix,Point:lY,utils:{randomSecretKey:X,randomPrivateKey:X,taggedHash:KH,lift_x:Ax,pointToBytes:zK,numberToBytesBE:wY,bytesToNumberBE:R4,mod:Z5},lengths:{secretKey:32,publicKey:32,publicKeyHasPrefix:!1,signature:64,seed:48}}})();var jx=(W)=>Uint8Array.from(W.match(/.{2}/g).map((G)=>parseInt(G,16))),gr=(W)=>[...W].map((G)=>G.toString(16).padStart(2,"0")).join(""),ur=async(W)=>{try{if(typeof W.pubkey!=="string"||typeof W.sig!=="string"||typeof W.id!=="string")return!1;let G=new TextEncoder().encode(JSON.stringify([0,W.pubkey,W.created_at,W.kind,W.tags,W.content])),X=new Uint8Array(await crypto.subtle.digest("SHA-256",G));if(gr(X)!==W.id)return!1;return wx.verify(jx(W.sig),X,jx(W.pubkey))}catch{return!1}},hr=(W,G)=>{if(W.kinds&&!W.kinds.includes(G.kind))return!1;if(W.since&&G.created_at<W.since-60)return!1;if(W["#x"]){let X=(G.tags??[]).filter((Y)=>Y?.[0]==="x").map((Y)=>Y[1]);if(!W["#x"].some((Y)=>X.includes(Y)))return!1}return!0};function Ox({port:W=Number(process.env.PORT)||8080}={}){let G=new Map,X=0,Y=0,Z=Bun.serve({port:W,fetch(V,Q){if(Q.upgrade(V))return;return Response.json({relay:"GenosSRV embedded relay",protocol:"nostr (ephemeral subset)",connections:G.size,events:X,dropped:Y})},websocket:{open(V){G.set(V,new Map)},close(V){G.delete(V)},async message(V,Q){let J;try{J=JSON.parse(String(Q))}catch{return}if(!Array.isArray(J))return;let[U,q,N]=J;if(U==="REQ"&&typeof q==="string"&&N&&typeof N==="object"){G.get(V)?.set(q,N),V.send(JSON.stringify(["EOSE",q]));return}if(U==="CLOSE"&&typeof q==="string"){G.get(V)?.delete(q);return}if(U==="EVENT"&&q&&typeof q==="object"){if(!await ur(q)){Y++,V.send(JSON.stringify(["OK",q.id??"",!1,"invalid: bad signature"]));return}X++,V.send(JSON.stringify(["OK",q.id,!0,""]));for(let[A,H]of G)for(let[I,w]of H)if(hr(w,q)){try{A.send(JSON.stringify(["EVENT",I,q]))}catch{}break}}}}});return console.info(`\uD83D\uDCE1 Relay listening on :${Z.port} (ephemeral, schnorr-verified)`),{port:Z.port,stats:()=>({connections:G.size,events:X,dropped:Y}),stop:()=>Z.stop(!0)}}var CH="6.15.0";function br(W,G,X){let Y=G.split("|").map((V)=>V.trim());for(let V=0;V<Y.length;V++)switch(G){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof W===G)return}let Z=Error(`invalid value for type ${G}`);throw Z.code="INVALID_ARGUMENT",Z.argument=`value.${X}`,Z.value=W,Z}async function c7(W){let G=Object.keys(W);return(await Promise.all(G.map((Y)=>Promise.resolve(W[Y])))).reduce((Y,Z,V)=>{return Y[G[V]]=Z,Y},{})}function V8(W,G,X){for(let Y in G){let Z=G[Y],V=X?X[Y]:null;if(V)br(Z,V,Y);Object.defineProperty(W,Y,{enumerable:!0,value:Z,writable:!1})}}function dY(W,G){if(W==null)return"null";if(G==null)G=new Set;if(typeof W==="object"){if(G.has(W))return"[Circular]";G.add(W)}if(Array.isArray(W))return"[ "+W.map((X)=>dY(X,G)).join(", ")+" ]";if(W instanceof Uint8Array){let Y="0x";for(let Z=0;Z<W.length;Z++)Y+="0123456789abcdef"[W[Z]>>4],Y+="0123456789abcdef"[W[Z]&15];return Y}if(typeof W==="object"&&typeof W.toJSON==="function")return dY(W.toJSON(),G);switch(typeof W){case"boolean":case"number":case"symbol":return W.toString();case"bigint":return BigInt(W).toString();case"string":return JSON.stringify(W);case"object":{let X=Object.keys(W);return X.sort(),"{ "+X.map((Y)=>`${dY(Y,G)}: ${dY(W[Y],G)}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function DH(W,G){return W&&W.code===G}function HJ(W,G,X){let Y=W;{let V=[];if(X){if("message"in X||"code"in X||"name"in X)throw Error(`value will overwrite populated values: ${dY(X)}`);for(let Q in X){if(Q==="shortMessage")continue;let J=X[Q];V.push(Q+"="+dY(J))}}if(V.push(`code=${G}`),V.push(`version=${CH}`),V.length)W+=" ("+V.join(", ")+")"}let Z;switch(G){case"INVALID_ARGUMENT":Z=TypeError(W);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":Z=RangeError(W);break;default:Z=Error(W)}if(V8(Z,{code:G}),X)Object.assign(Z,X);if(Z.shortMessage==null)V8(Z,{shortMessage:Y});return Z}function t0(W,G,X,Y){if(!W)throw HJ(G,X,Y)}function s(W,G,X,Y){t0(W,G,"INVALID_ARGUMENT",{argument:X,value:Y})}var mr=["NFD","NFC","NFKD","NFKC"].reduce((W,G)=>{try{if("test".normalize(G)!=="test")throw Error("bad");if(G==="NFD"){let X=String.fromCharCode(233).normalize("NFD"),Y=String.fromCharCode(101,769);if(X!==Y)throw Error("broken")}W.push(G)}catch(X){}return W},[]);function oY(W){t0(mr.indexOf(W)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:W}})}function p4(W,G,X){if(X==null)X="";if(W!==G){let Y=X,Z="new";if(X)Y+=".",Z+=" "+X;t0(!1,`private constructor; use ${Y}from* methods`,"UNSUPPORTED_OPERATION",{operation:Z})}}function Cx(W,G,X){if(W instanceof Uint8Array){if(X)return new Uint8Array(W);return W}if(typeof W==="string"&&W.match(/^0x(?:[0-9a-f][0-9a-f])*$/i)){let Y=new Uint8Array((W.length-2)/2),Z=2;for(let V=0;V<Y.length;V++)Y[V]=parseInt(W.substring(Z,Z+2),16),Z+=2;return Y}s(!1,"invalid BytesLike value",G||"value",W)}function R0(W,G){return Cx(W,G,!1)}function X7(W,G){return Cx(W,G,!0)}function T9(W,G){if(typeof W!=="string"||!W.match(/^0x[0-9A-Fa-f]*$/))return!1;if(typeof G==="number"&&W.length!==2+2*G)return!1;if(G===!0&&W.length%2!==0)return!1;return!0}function p7(W){return T9(W,!0)||W instanceof Uint8Array}var Kx="0123456789abcdef";function C0(W){let G=R0(W),X="0x";for(let Y=0;Y<G.length;Y++){let Z=G[Y];X+=Kx[(Z&240)>>4]+Kx[Z&15]}return X}function a1(W){return"0x"+W.map((G)=>C0(G).substring(2)).join("")}function l4(W){if(T9(W,!0))return(W.length-2)/2;return R0(W).length}function nY(W,G,X){let Y=R0(W);if(X!=null&&X>Y.length)t0(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:Y,length:Y.length,offset:X});return C0(Y.slice(G==null?0:G,X==null?Y.length:X))}function fr(W,G,X){let Y=R0(W);t0(G>=Y.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(Y),length:G,offset:G+1});let Z=new Uint8Array(G);if(Z.fill(0),X)Z.set(Y,G-Y.length);else Z.set(Y,0);return C0(Z)}function q5(W,G){return fr(W,G,!0)}var wK=BigInt(0),SG=BigInt(1),iY=9007199254740991;function MH(W,G){let X=v1(W,"value"),Y=BigInt(n8(G,"width")),Z=SG<<Y-SG;if(X<wK){X=-X,t0(X<=Z,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});let V=(SG<<Y)-SG;return(~X&V)+SG}else t0(X<Z,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:W});return X}function TH(W,G){let X=AJ(W,"value"),Y=BigInt(n8(G,"bits"));return X&(SG<<Y)-SG}function v1(W,G){switch(typeof W){case"bigint":return W;case"number":return s(Number.isInteger(W),"underflow",G||"value",W),s(W>=-iY&&W<=iY,"overflow",G||"value",W),BigInt(W);case"string":try{if(W==="")throw Error("empty string");if(W[0]==="-"&&W[1]!=="-")return-BigInt(W.substring(1));return BigInt(W)}catch(X){s(!1,`invalid BigNumberish string: ${X.message}`,G||"value",W)}}s(!1,"invalid BigNumberish value",G||"value",W)}function AJ(W,G){let X=v1(W,G);return t0(X>=wK,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:W}),X}var Dx="0123456789abcdef";function rY(W){if(W instanceof Uint8Array){let G="0x0";for(let X of W)G+=Dx[X>>4],G+=Dx[X&15];return BigInt(G)}return v1(W)}function n8(W,G){switch(typeof W){case"bigint":return s(W>=-iY&&W<=iY,"overflow",G||"value",W),Number(W);case"number":return s(Number.isInteger(W),"underflow",G||"value",W),s(W>=-iY&&W<=iY,"overflow",G||"value",W),W;case"string":try{if(W==="")throw Error("empty string");return n8(BigInt(W),G)}catch(X){s(!1,`invalid numeric string: ${X.message}`,G||"value",W)}}s(!1,"invalid numeric value",G||"value",W)}function Y7(W,G){let Y=AJ(W,"value").toString(16);if(G==null){if(Y.length%2)Y="0"+Y}else{let Z=n8(G,"width");t0(Z*2>=Y.length,`value exceeds width (${Z} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:W});while(Y.length<Z*2)Y="0"+Y}return"0x"+Y}function Q8(W){let G=AJ(W,"value");if(G===wK)return new Uint8Array([]);let X=G.toString(16);if(X.length%2)X="0"+X;let Y=new Uint8Array(X.length/2);for(let Z=0;Z<Y.length;Z++){let V=Z*2;Y[Z]=parseInt(X.substring(V,V+2),16)}return Y}function PH(W){let G=C0(p7(W)?W:Q8(W)).substring(2);while(G.startsWith("0"))G=G.substring(1);if(G==="")G="0";return"0x"+G}var LH="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",RH=null;function cr(W){if(RH==null){RH={};for(let X=0;X<LH.length;X++)RH[LH[X]]=BigInt(X)}let G=RH[W];return s(G!=null,"invalid base58 value","letter",W),G}var pr=BigInt(0),jK=BigInt(58);function BH(W){let G=R0(W),X=rY(G),Y="";while(X)Y=LH[Number(X%jK)]+Y,X/=jK;for(let Z=0;Z<G.length;Z++){if(G[Z])break;Y=LH[0]+Y}return Y}function EH(W){let G=pr;for(let X=0;X<W.length;X++)G*=jK,G+=cr(W[X]);return G}function lr(W,G,X,Y,Z){s(!1,`invalid codepoint at offset ${G}; ${W}`,"bytes",X)}function Mx(W,G,X,Y,Z){if(W==="BAD_PREFIX"||W==="UNEXPECTED_CONTINUE"){let V=0;for(let Q=G+1;Q<X.length;Q++){if(X[Q]>>6!==2)break;V++}return V}if(W==="OVERRUN")return X.length-G-1;return 0}function dr(W,G,X,Y,Z){if(W==="OVERLONG")return s(typeof Z==="number","invalid bad code point for replacement","badCodepoint",Z),Y.push(Z),0;return Y.push(65533),Mx(W,G,X,Y,Z)}var Tx=Object.freeze({error:lr,ignore:Mx,replace:dr});function P9(W,G){if(s(typeof W==="string","invalid string value","str",W),G!=null)oY(G),W=W.normalize(G);let X=[];for(let Y=0;Y<W.length;Y++){let Z=W.charCodeAt(Y);if(Z<128)X.push(Z);else if(Z<2048)X.push(Z>>6|192),X.push(Z&63|128);else if((Z&64512)==55296){Y++;let V=W.charCodeAt(Y);s(Y<W.length&&(V&64512)===56320,"invalid surrogate pair","str",W);let Q=65536+((Z&1023)<<10)+(V&1023);X.push(Q>>18|240),X.push(Q>>12&63|128),X.push(Q>>6&63|128),X.push(Q&63|128)}else X.push(Z>>12|224),X.push(Z>>6&63|128),X.push(Z&63|128)}return new Uint8Array(X)}function or(W){let G=W.toString(16);while(G.length<2)G="0"+G;return"0x"+G}function Px(W,G,X){let Y=0;for(let Z=0;Z<X;Z++)Y=Y*256+W[G+Z];return Y}function Rx(W,G,X,Y){let Z=[];while(X<G+1+Y){let V=Lx(W,X);Z.push(V.result),X+=V.consumed,t0(X<=G+1+Y,"child data too short","BUFFER_OVERRUN",{buffer:W,length:Y,offset:G})}return{consumed:1+Y,result:Z}}function Lx(W,G){t0(W.length!==0,"data too short","BUFFER_OVERRUN",{buffer:W,length:0,offset:1});let X=(Y)=>{t0(Y<=W.length,"data short segment too short","BUFFER_OVERRUN",{buffer:W,length:W.length,offset:Y})};if(W[G]>=248){let Y=W[G]-247;X(G+1+Y);let Z=Px(W,G+1,Y);return X(G+1+Y+Z),Rx(W,G,G+1+Y,Y+Z)}else if(W[G]>=192){let Y=W[G]-192;return X(G+1+Y),Rx(W,G,G+1,Y)}else if(W[G]>=184){let Y=W[G]-183;X(G+1+Y);let Z=Px(W,G+1,Y);X(G+1+Y+Z);let V=C0(W.slice(G+1+Y,G+1+Y+Z));return{consumed:1+Y+Z,result:V}}else if(W[G]>=128){let Y=W[G]-128;X(G+1+Y);let Z=C0(W.slice(G+1,G+1+Y));return{consumed:1+Y,result:Z}}return{consumed:1,result:or(W[G])}}function t6(W){let G=R0(W,"data"),X=Lx(G,0);return s(X.consumed===G.length,"unexpected junk after rlp payload","data",W),X.result}function Bx(W){let G=[];while(W)G.unshift(W&255),W>>=8;return G}function $x(W){if(Array.isArray(W)){let Y=[];if(W.forEach(function(V){Y=Y.concat($x(V))}),Y.length<=55)return Y.unshift(192+Y.length),Y;let Z=Bx(Y.length);return Z.unshift(247+Z.length),Z.concat(Y)}let G=Array.prototype.slice.call(R0(W,"object"));if(G.length===1&&G[0]<=127)return G;else if(G.length<=55)return G.unshift(128+G.length),G;let X=Bx(G.length);return X.unshift(183+X.length),X.concat(G)}var Ex="0123456789abcdef";function R5(W){let G="0x";for(let X of $x(W))G+=Ex[X>>4],G+=Ex[X&15];return G}function $H(W){let G=R0(W,"randomBytes");G[6]=G[6]&15|64,G[8]=G[8]&63|128;let X=C0(G);return[X.substring(2,10),X.substring(10,14),X.substring(14,18),X.substring(18,22),X.substring(22,34)].join("-")}import{createHash as OK,createHmac as Fx,pbkdf2Sync as Sx,randomBytes as xx}from"crypto";var kx=!1,_x=function(W,G,X){return Fx(W,G).update(X).digest()},yx=_x;function e6(W,G,X){let Y=R0(G,"key"),Z=R0(X,"data");return C0(yx(W,Y,Z))}e6._=_x;e6.lock=function(){kx=!0};e6.register=function(W){if(kx)throw Error("computeHmac is locked");yx=W};Object.freeze(e6);function R9(W){if(!Number.isSafeInteger(W)||W<0)throw Error(`Wrong positive integer: ${W}`)}function zJ(W,...G){if(!(W instanceof Uint8Array))throw Error("Expected Uint8Array");if(G.length>0&&!G.includes(W.length))throw Error(`Expected Uint8Array of length ${G}, not of length=${W.length}`)}function FH(W){if(typeof W!=="function"||typeof W.create!=="function")throw Error("Hash should be wrapped by utils.wrapConstructor");R9(W.outputLen),R9(W.blockLen)}function d4(W,G=!0){if(W.destroyed)throw Error("Hash instance has been destroyed");if(G&&W.finished)throw Error("Hash#digest() has already been called")}function SH(W,G){zJ(W);let X=G.outputLen;if(W.length<X)throw Error(`digestInto() expects output buffer of length at least ${X}`)}var xH=BigInt(4294967295),vx=BigInt(32);function Ga(W,G=!1){if(G)return{h:Number(W&xH),l:Number(W>>vx&xH)};return{h:Number(W>>vx&xH)|0,l:Number(W&xH)|0}}function gx(W,G=!1){let X=new Uint32Array(W.length),Y=new Uint32Array(W.length);for(let Z=0;Z<W.length;Z++){let{h:V,l:Q}=Ga(W[Z],G);[X[Z],Y[Z]]=[V,Q]}return[X,Y]}var ux=(W,G,X)=>W<<X|G>>>32-X,hx=(W,G,X)=>G<<X|W>>>32-X,bx=(W,G,X)=>G<<X-32|W>>>64-X,mx=(W,G,X)=>W<<X-32|G>>>64-X;import*as IJ from"crypto";var kH=IJ&&typeof IJ==="object"&&"webcrypto"in IJ?IJ.webcrypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */var fx=(W)=>W instanceof Uint8Array;var aY=(W)=>new Uint32Array(W.buffer,W.byteOffset,Math.floor(W.byteLength/4)),sY=(W)=>new DataView(W.buffer,W.byteOffset,W.byteLength),Z7=(W,G)=>W<<32-G|W>>>G,Xa=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!Xa)throw Error("Non little-endian hardware is not supported");var Ya=async()=>{};async function _H(W,G,X){let Y=Date.now();for(let Z=0;Z<W;Z++){X(Z);let V=Date.now()-Y;if(V>=0&&V<G)continue;await Ya(),Y+=V}}function Za(W){if(typeof W!=="string")throw Error(`utf8ToBytes expected string, got ${typeof W}`);return new Uint8Array(new TextEncoder().encode(W))}function l7(W){if(typeof W==="string")W=Za(W);if(!fx(W))throw Error(`expected Uint8Array, got ${typeof W}`);return W}function cx(...W){let G=new Uint8Array(W.reduce((Y,Z)=>Y+Z.length,0)),X=0;return W.forEach((Y)=>{if(!fx(Y))throw Error("Uint8Array expected");G.set(Y,X),X+=Y.length}),G}class xG{clone(){return this._cloneInto()}}var Va={}.toString;function yH(W,G){if(G!==void 0&&Va.call(G)!=="[object Object]")throw Error("Options should be object or undefined");return Object.assign(W,G)}function tY(W){let G=(Y)=>W().update(l7(Y)).digest(),X=W();return G.outputLen=X.outputLen,G.blockLen=X.blockLen,G.create=()=>W(),G}function px(W=32){if(kH&&typeof kH.getRandomValues==="function")return kH.getRandomValues(new Uint8Array(W));throw Error("crypto.getRandomValues must be defined")}var[ox,nx,ix]=[[],[],[]],Qa=BigInt(0),wJ=BigInt(1),Ja=BigInt(2),Ua=BigInt(7),qa=BigInt(256),Na=BigInt(113);for(let W=0,G=wJ,X=1,Y=0;W<24;W++){[X,Y]=[Y,(2*X+3*Y)%5],ox.push(2*(5*Y+X)),nx.push((W+1)*(W+2)/2%64);let Z=Qa;for(let V=0;V<7;V++)if(G=(G<<wJ^(G>>Ua)*Na)%qa,G&Ja)Z^=wJ<<(wJ<<BigInt(V))-wJ;ix.push(Z)}var[Ha,Aa]=gx(ix,!0),lx=(W,G,X)=>X>32?bx(W,G,X):ux(W,G,X),dx=(W,G,X)=>X>32?mx(W,G,X):hx(W,G,X);function za(W,G=24){let X=new Uint32Array(10);for(let Y=24-G;Y<24;Y++){for(let Q=0;Q<10;Q++)X[Q]=W[Q]^W[Q+10]^W[Q+20]^W[Q+30]^W[Q+40];for(let Q=0;Q<10;Q+=2){let J=(Q+8)%10,U=(Q+2)%10,q=X[U],N=X[U+1],A=lx(q,N,1)^X[J],H=dx(q,N,1)^X[J+1];for(let I=0;I<50;I+=10)W[Q+I]^=A,W[Q+I+1]^=H}let Z=W[2],V=W[3];for(let Q=0;Q<24;Q++){let J=nx[Q],U=lx(Z,V,J),q=dx(Z,V,J),N=ox[Q];Z=W[N],V=W[N+1],W[N]=U,W[N+1]=q}for(let Q=0;Q<50;Q+=10){for(let J=0;J<10;J++)X[J]=W[Q+J];for(let J=0;J<10;J++)W[Q+J]^=~X[(J+2)%10]&X[(J+4)%10]}W[0]^=Ha[Y],W[1]^=Aa[Y]}X.fill(0)}class KK extends xG{constructor(W,G,X,Y=!1,Z=24){super();if(this.blockLen=W,this.suffix=G,this.outputLen=X,this.enableXOF=Y,this.rounds=Z,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,R9(X),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=aY(this.state)}keccak(){za(this.state32,this.rounds),this.posOut=0,this.pos=0}update(W){d4(this);let{blockLen:G,state:X}=this;W=l7(W);let Y=W.length;for(let Z=0;Z<Y;){let V=Math.min(G-this.pos,Y-Z);for(let Q=0;Q<V;Q++)X[this.pos++]^=W[Z++];if(this.pos===G)this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:W,suffix:G,pos:X,blockLen:Y}=this;if(W[X]^=G,(G&128)!==0&&X===Y-1)this.keccak();W[Y-1]^=128,this.keccak()}writeInto(W){d4(this,!1),zJ(W),this.finish();let G=this.state,{blockLen:X}=this;for(let Y=0,Z=W.length;Y<Z;){if(this.posOut>=X)this.keccak();let V=Math.min(X-this.posOut,Z-Y);W.set(G.subarray(this.posOut,this.posOut+V),Y),this.posOut+=V,Y+=V}return W}xofInto(W){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(W)}xof(W){return R9(W),this.xofInto(new Uint8Array(W))}digestInto(W){if(SH(W,this),this.finished)throw Error("digest() was already called");return this.writeInto(W),this.destroy(),W}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(W){let{blockLen:G,suffix:X,outputLen:Y,rounds:Z,enableXOF:V}=this;return W||(W=new KK(G,X,Y,V,Z)),W.state32.set(this.state32),W.pos=this.pos,W.posOut=this.posOut,W.finished=this.finished,W.rounds=Z,W.suffix=X,W.outputLen=Y,W.enableXOF=V,W.destroyed=this.destroyed,W}}var Ia=(W,G,X)=>tY(()=>new KK(G,W,X));var rx=Ia(1,136,32);var ax=!1,sx=function(W){return rx(W)},tx=sx;function G8(W){let G=R0(W,"data");return C0(tx(G))}G8._=sx;G8.lock=function(){ax=!0};G8.register=function(W){if(ax)throw TypeError("keccak256 is locked");tx=W};Object.freeze(G8);function wa(W,G,X,Y){if(typeof W.setBigUint64==="function")return W.setBigUint64(G,X,Y);let Z=BigInt(32),V=BigInt(4294967295),Q=Number(X>>Z&V),J=Number(X&V),U=Y?4:0,q=Y?0:4;W.setUint32(G+U,Q,Y),W.setUint32(G+q,J,Y)}class jJ extends xG{constructor(W,G,X,Y){super();this.blockLen=W,this.outputLen=G,this.padOffset=X,this.isLE=Y,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(W),this.view=sY(this.buffer)}update(W){d4(this);let{view:G,buffer:X,blockLen:Y}=this;W=l7(W);let Z=W.length;for(let V=0;V<Z;){let Q=Math.min(Y-this.pos,Z-V);if(Q===Y){let J=sY(W);for(;Y<=Z-V;V+=Y)this.process(J,V);continue}if(X.set(W.subarray(V,V+Q),this.pos),this.pos+=Q,V+=Q,this.pos===Y)this.process(G,0),this.pos=0}return this.length+=W.length,this.roundClean(),this}digestInto(W){d4(this),SH(W,this),this.finished=!0;let{buffer:G,view:X,blockLen:Y,isLE:Z}=this,{pos:V}=this;if(G[V++]=128,this.buffer.subarray(V).fill(0),this.padOffset>Y-V)this.process(X,0),V=0;for(let N=V;N<Y;N++)G[N]=0;wa(X,Y-8,BigInt(this.length*8),Z),this.process(X,0);let Q=sY(W),J=this.outputLen;if(J%4)throw Error("_sha2: outputLen should be aligned to 32bit");let U=J/4,q=this.get();if(U>q.length)throw Error("_sha2: outputLen bigger than state");for(let N=0;N<U;N++)Q.setUint32(4*N,q[N],Z)}digest(){let{buffer:W,outputLen:G}=this;this.digestInto(W);let X=W.slice(0,G);return this.destroy(),X}_cloneInto(W){W||(W=new this.constructor),W.set(...this.get());let{blockLen:G,buffer:X,length:Y,finished:Z,destroyed:V,pos:Q}=this;if(W.length=Y,W.pos=Q,W.finished=Z,W.destroyed=V,Y%G)W.buffer.set(X);return W}}var ja=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),Wk=Uint8Array.from({length:16},(W,G)=>G),Oa=Wk.map((W)=>(9*W+5)%16),CK=[Wk],DK=[Oa];for(let W=0;W<4;W++)for(let G of[CK,DK])G.push(G[W].map((X)=>ja[X]));var Gk=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map((W)=>new Uint8Array(W)),Ka=CK.map((W,G)=>W.map((X)=>Gk[G][X])),Ca=DK.map((W,G)=>W.map((X)=>Gk[G][X])),Da=new Uint32Array([0,1518500249,1859775393,2400959708,2840853838]),Ma=new Uint32Array([1352829926,1548603684,1836072691,2053994217,0]),vH=(W,G)=>W<<G|W>>>32-G;function ex(W,G,X,Y){if(W===0)return G^X^Y;else if(W===1)return G&X|~G&Y;else if(W===2)return(G|~X)^Y;else if(W===3)return G&Y|X&~Y;else return G^(X|~Y)}var gH=new Uint32Array(16);class Xk extends jJ{constructor(){super(64,20,8,!0);this.h0=1732584193,this.h1=-271733879,this.h2=-1732584194,this.h3=271733878,this.h4=-1009589776}get(){let{h0:W,h1:G,h2:X,h3:Y,h4:Z}=this;return[W,G,X,Y,Z]}set(W,G,X,Y,Z){this.h0=W|0,this.h1=G|0,this.h2=X|0,this.h3=Y|0,this.h4=Z|0}process(W,G){for(let H=0;H<16;H++,G+=4)gH[H]=W.getUint32(G,!0);let X=this.h0|0,Y=X,Z=this.h1|0,V=Z,Q=this.h2|0,J=Q,U=this.h3|0,q=U,N=this.h4|0,A=N;for(let H=0;H<5;H++){let I=4-H,w=Da[H],C=Ma[H],D=CK[H],x=DK[H],h=Ka[H],p=Ca[H];for(let u=0;u<16;u++){let n=vH(X+ex(H,Z,Q,U)+gH[D[u]]+w,h[u])+N|0;X=N,N=U,U=vH(Q,10)|0,Q=Z,Z=n}for(let u=0;u<16;u++){let n=vH(Y+ex(I,V,J,q)+gH[x[u]]+C,p[u])+A|0;Y=A,A=q,q=vH(J,10)|0,J=V,V=n}}this.set(this.h1+Q+q|0,this.h2+U+A|0,this.h3+N+Y|0,this.h4+X+V|0,this.h0+Z+J|0)}roundClean(){gH.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}var Yk=tY(()=>new Xk);var Zk=!1,Vk=function(W){return Yk(W)},Qk=Vk;function WW(W){let G=R0(W,"data");return C0(Qk(G))}WW._=Vk;WW.lock=function(){Zk=!0};WW.register=function(W){if(Zk)throw TypeError("ripemd160 is locked");Qk=W};Object.freeze(WW);var Jk=!1,Uk=function(W,G,X,Y,Z){return Sx(W,G,X,Y,Z)},qk=Uk;function L5(W,G,X,Y,Z){let V=R0(W,"password"),Q=R0(G,"salt");return C0(qk(V,Q,X,Y,Z))}L5._=Uk;L5.lock=function(){Jk=!0};L5.register=function(W){if(Jk)throw Error("pbkdf2 is locked");qk=W};Object.freeze(L5);var Nk=!1,Hk=function(W){return new Uint8Array(xx(W))},Ak=Hk;function B5(W){return Ak(W)}B5._=Hk;B5.lock=function(){Nk=!0};B5.register=function(W){if(Nk)throw Error("randomBytes is locked");Ak=W};Object.freeze(B5);var Ta=(W,G,X)=>W&G^~W&X,Pa=(W,G,X)=>W&G^W&X^G&X,Ra=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),GW=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),XW=new Uint32Array(64);class zk extends jJ{constructor(){super(64,32,8,!1);this.A=GW[0]|0,this.B=GW[1]|0,this.C=GW[2]|0,this.D=GW[3]|0,this.E=GW[4]|0,this.F=GW[5]|0,this.G=GW[6]|0,this.H=GW[7]|0}get(){let{A:W,B:G,C:X,D:Y,E:Z,F:V,G:Q,H:J}=this;return[W,G,X,Y,Z,V,Q,J]}set(W,G,X,Y,Z,V,Q,J){this.A=W|0,this.B=G|0,this.C=X|0,this.D=Y|0,this.E=Z|0,this.F=V|0,this.G=Q|0,this.H=J|0}process(W,G){for(let N=0;N<16;N++,G+=4)XW[N]=W.getUint32(G,!1);for(let N=16;N<64;N++){let A=XW[N-15],H=XW[N-2],I=Z7(A,7)^Z7(A,18)^A>>>3,w=Z7(H,17)^Z7(H,19)^H>>>10;XW[N]=w+XW[N-7]+I+XW[N-16]|0}let{A:X,B:Y,C:Z,D:V,E:Q,F:J,G:U,H:q}=this;for(let N=0;N<64;N++){let A=Z7(Q,6)^Z7(Q,11)^Z7(Q,25),H=q+A+Ta(Q,J,U)+Ra[N]+XW[N]|0,w=(Z7(X,2)^Z7(X,13)^Z7(X,22))+Pa(X,Y,Z)|0;q=U,U=J,J=Q,Q=V+H|0,V=Z,Z=Y,Y=X,X=H+w|0}X=X+this.A|0,Y=Y+this.B|0,Z=Z+this.C|0,V=V+this.D|0,Q=Q+this.E|0,J=J+this.F|0,U=U+this.G|0,q=q+this.H|0,this.set(X,Y,Z,V,Q,J,U,q)}roundClean(){XW.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}var OJ=tY(()=>new zk);class MK extends xG{constructor(W,G){super();this.finished=!1,this.destroyed=!1,FH(W);let X=l7(G);if(this.iHash=W.create(),typeof this.iHash.update!=="function")throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let Y=this.blockLen,Z=new Uint8Array(Y);Z.set(X.length>Y?W.create().update(X).digest():X);for(let V=0;V<Z.length;V++)Z[V]^=54;this.iHash.update(Z),this.oHash=W.create();for(let V=0;V<Z.length;V++)Z[V]^=106;this.oHash.update(Z),Z.fill(0)}update(W){return d4(this),this.iHash.update(W),this}digestInto(W){d4(this),zJ(W,this.outputLen),this.finished=!0,this.iHash.digestInto(W),this.oHash.update(W),this.oHash.digestInto(W),this.destroy()}digest(){let W=new Uint8Array(this.oHash.outputLen);return this.digestInto(W),W}_cloneInto(W){W||(W=Object.create(Object.getPrototypeOf(this),{}));let{oHash:G,iHash:X,finished:Y,destroyed:Z,blockLen:V,outputLen:Q}=this;return W=W,W.finished=Y,W.destroyed=Z,W.blockLen=V,W.outputLen=Q,W.oHash=G._cloneInto(W.oHash),W.iHash=X._cloneInto(W.iHash),W}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}var KJ=(W,G,X)=>new MK(W,G).update(X).digest();KJ.create=(W,G)=>new MK(W,G);function La(W,G,X,Y){FH(W);let Z=yH({dkLen:32,asyncTick:10},Y),{c:V,dkLen:Q,asyncTick:J}=Z;if(R9(V),R9(Q),R9(J),V<1)throw Error("PBKDF2: iterations (c) should be >= 1");let U=l7(G),q=l7(X),N=new Uint8Array(Q),A=KJ.create(W,U),H=A._cloneInto().update(q);return{c:V,dkLen:Q,asyncTick:J,DK:N,PRF:A,PRFSalt:H}}function Ba(W,G,X,Y,Z){if(W.destroy(),G.destroy(),Y)Y.destroy();return Z.fill(0),X}function TK(W,G,X,Y){let{c:Z,dkLen:V,DK:Q,PRF:J,PRFSalt:U}=La(W,G,X,Y),q,N=new Uint8Array(4),A=sY(N),H=new Uint8Array(J.outputLen);for(let I=1,w=0;w<V;I++,w+=J.outputLen){let C=Q.subarray(w,w+J.outputLen);A.setInt32(0,I,!1),(q=U._cloneInto(q)).update(N).digestInto(H),C.set(H.subarray(0,C.length));for(let D=1;D<Z;D++){J._cloneInto(q).update(H).digestInto(H);for(let x=0;x<C.length;x++)C[x]^=H[x]}}return Ba(J,U,Q,q,H)}var l1=(W,G)=>W<<G|W>>>32-G;function Ik(W,G,X,Y,Z,V){let Q=W[G++]^X[Y++],J=W[G++]^X[Y++],U=W[G++]^X[Y++],q=W[G++]^X[Y++],N=W[G++]^X[Y++],A=W[G++]^X[Y++],H=W[G++]^X[Y++],I=W[G++]^X[Y++],w=W[G++]^X[Y++],C=W[G++]^X[Y++],D=W[G++]^X[Y++],x=W[G++]^X[Y++],h=W[G++]^X[Y++],p=W[G++]^X[Y++],u=W[G++]^X[Y++],n=W[G++]^X[Y++],c=Q,l=J,G0=U,m=q,Y0=N,U0=A,y=H,o=I,B=w,R=C,_=D,S=x,v=h,P=p,E=u,b=n;for(let k=0;k<8;k+=2)Y0^=l1(c+v|0,7),B^=l1(Y0+c|0,9),v^=l1(B+Y0|0,13),c^=l1(v+B|0,18),R^=l1(U0+l|0,7),P^=l1(R+U0|0,9),l^=l1(P+R|0,13),U0^=l1(l+P|0,18),E^=l1(_+y|0,7),G0^=l1(E+_|0,9),y^=l1(G0+E|0,13),_^=l1(y+G0|0,18),m^=l1(b+S|0,7),o^=l1(m+b|0,9),S^=l1(o+m|0,13),b^=l1(S+o|0,18),l^=l1(c+m|0,7),G0^=l1(l+c|0,9),m^=l1(G0+l|0,13),c^=l1(m+G0|0,18),y^=l1(U0+Y0|0,7),o^=l1(y+U0|0,9),Y0^=l1(o+y|0,13),U0^=l1(Y0+o|0,18),S^=l1(_+R|0,7),B^=l1(S+_|0,9),R^=l1(B+S|0,13),_^=l1(R+B|0,18),v^=l1(b+E|0,7),P^=l1(v+b|0,9),E^=l1(P+v|0,13),b^=l1(E+P|0,18);Z[V++]=Q+c|0,Z[V++]=J+l|0,Z[V++]=U+G0|0,Z[V++]=q+m|0,Z[V++]=N+Y0|0,Z[V++]=A+U0|0,Z[V++]=H+y|0,Z[V++]=I+o|0,Z[V++]=w+B|0,Z[V++]=C+R|0,Z[V++]=D+_|0,Z[V++]=x+S|0,Z[V++]=h+v|0,Z[V++]=p+P|0,Z[V++]=u+E|0,Z[V++]=n+b|0}function eY(W,G,X,Y,Z){let V=Y+0,Q=Y+16*Z;for(let J=0;J<16;J++)X[Q+J]=W[G+(2*Z-1)*16+J];for(let J=0;J<Z;J++,V+=16,G+=16){if(Ik(X,Q,W,G,X,V),J>0)Q+=16;Ik(X,V,W,G+=16,X,Q)}}function wk(W,G,X){let Y=yH({dkLen:32,asyncTick:10,maxmem:1073742848},X),{N:Z,r:V,p:Q,dkLen:J,asyncTick:U,maxmem:q,onProgress:N}=Y;if(R9(Z),R9(V),R9(Q),R9(J),R9(U),R9(q),N!==void 0&&typeof N!=="function")throw Error("progressCb should be function");let A=128*V,H=A/4;if(Z<=1||(Z&Z-1)!==0||Z>=2**(A/8)||Z>4294967296)throw Error("Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32");if(Q<0||Q>137438953440/A)throw Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)");if(J<0||J>137438953440)throw Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32");let I=A*(Z+Q);if(I>q)throw Error(`Scrypt: parameters too large, ${I} (128 * r * (N + p)) > ${q} (maxmem)`);let w=TK(OJ,W,G,{c:1,dkLen:A*Q}),C=aY(w),D=aY(new Uint8Array(A*Z)),x=aY(new Uint8Array(A)),h=()=>{};if(N){let p=2*Z*Q,u=Math.max(Math.floor(p/1e4),1),n=0;h=()=>{if(n++,N&&(!(n%u)||n===p))N(n/p)}}return{N:Z,r:V,p:Q,dkLen:J,blockSize32:H,V:D,B32:C,B:w,tmp:x,blockMixCb:h,asyncTick:U}}function jk(W,G,X,Y,Z){let V=TK(OJ,W,X,{c:1,dkLen:G});return X.fill(0),Y.fill(0),Z.fill(0),V}function Ok(W,G,X){let{N:Y,r:Z,p:V,dkLen:Q,blockSize32:J,V:U,B32:q,B:N,tmp:A,blockMixCb:H}=wk(W,G,X);for(let I=0;I<V;I++){let w=J*I;for(let C=0;C<J;C++)U[C]=q[w+C];for(let C=0,D=0;C<Y-1;C++)eY(U,D,U,D+=J,Z),H();eY(U,(Y-1)*J,q,w,Z),H();for(let C=0;C<Y;C++){let D=q[w+J-16]%Y;for(let x=0;x<J;x++)A[x]=q[w+x]^U[D*J+x];eY(A,0,q,w,Z),H()}}return jk(W,Q,N,U,A)}async function Kk(W,G,X){let{N:Y,r:Z,p:V,dkLen:Q,blockSize32:J,V:U,B32:q,B:N,tmp:A,blockMixCb:H,asyncTick:I}=wk(W,G,X);for(let w=0;w<V;w++){let C=J*w;for(let x=0;x<J;x++)U[x]=q[C+x];let D=0;await _H(Y-1,I,()=>{eY(U,D,U,D+=J,Z),H()}),eY(U,(Y-1)*J,q,C,Z),H(),await _H(Y,I,()=>{let x=q[C+J-16]%Y;for(let h=0;h<J;h++)A[h]=q[C+h]^U[x*J+h];eY(A,0,q,C,Z),H()})}return jk(W,Q,N,U,A)}var Ck=!1,Dk=!1,Mk=async function(W,G,X,Y,Z,V,Q){return await Kk(W,G,{N:X,r:Y,p:Z,dkLen:V,onProgress:Q})},Tk=function(W,G,X,Y,Z,V){return Ok(W,G,{N:X,r:Y,p:Z,dkLen:V})},Pk=Mk,Rk=Tk;async function YW(W,G,X,Y,Z,V,Q){let J=R0(W,"passwd"),U=R0(G,"salt");return C0(await Pk(J,U,X,Y,Z,V,Q))}YW._=Mk;YW.lock=function(){Dk=!0};YW.register=function(W){if(Dk)throw Error("scrypt is locked");Pk=W};Object.freeze(YW);function ZW(W,G,X,Y,Z,V){let Q=R0(W,"passwd"),J=R0(G,"salt");return C0(Rk(Q,J,X,Y,Z,V))}ZW._=Tk;ZW.lock=function(){Ck=!0};ZW.register=function(W){if(Ck)throw Error("scryptSync is locked");Rk=W};Object.freeze(ZW);var Lk=function(W){return OK("sha256").update(W).digest()},Bk=function(W){return OK("sha512").update(W).digest()},Ek=Lk,$k=Bk,Fk=!1,Sk=!1;function L9(W){let G=R0(W,"data");return C0(Ek(G))}L9._=Lk;L9.lock=function(){Fk=!0};L9.register=function(W){if(Fk)throw Error("sha256 is locked");Ek=W};Object.freeze(L9);function uH(W){let G=R0(W,"data");return C0($k(G))}uH._=Bk;uH.lock=function(){Sk=!0};uH.register=function(W){if(Sk)throw Error("sha512 is locked");$k=W};Object.freeze(L9);var BK={};qA(BK,{validateObject:()=>QW,utf8ToBytes:()=>xa,numberToVarBytesBE:()=>Fa,numberToHexUnpadded:()=>_k,numberToBytesLE:()=>fH,numberToBytesBE:()=>VW,hexToNumber:()=>RK,hexToBytes:()=>_G,equalBytes:()=>Sa,ensureBytes:()=>N5,createHmacDrbg:()=>LK,concatBytes:()=>WZ,bytesToNumberLE:()=>mH,bytesToNumberBE:()=>o4,bytesToHex:()=>kG,bitSet:()=>ya,bitMask:()=>CJ,bitLen:()=>ka,bitGet:()=>_a});/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var kk=BigInt(0),hH=BigInt(1),Ea=BigInt(2),bH=(W)=>W instanceof Uint8Array,$a=Array.from({length:256},(W,G)=>G.toString(16).padStart(2,"0"));function kG(W){if(!bH(W))throw Error("Uint8Array expected");let G="";for(let X=0;X<W.length;X++)G+=$a[W[X]];return G}function _k(W){let G=W.toString(16);return G.length&1?`0${G}`:G}function RK(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);return BigInt(W===""?"0":`0x${W}`)}function _G(W){if(typeof W!=="string")throw Error("hex string expected, got "+typeof W);let G=W.length;if(G%2)throw Error("padded hex string expected, got unpadded hex of length "+G);let X=new Uint8Array(G/2);for(let Y=0;Y<X.length;Y++){let Z=Y*2,V=W.slice(Z,Z+2),Q=Number.parseInt(V,16);if(Number.isNaN(Q)||Q<0)throw Error("Invalid byte sequence");X[Y]=Q}return X}function o4(W){return RK(kG(W))}function mH(W){if(!bH(W))throw Error("Uint8Array expected");return RK(kG(Uint8Array.from(W).reverse()))}function VW(W,G){return _G(W.toString(16).padStart(G*2,"0"))}function fH(W,G){return VW(W,G).reverse()}function Fa(W){return _G(_k(W))}function N5(W,G,X){let Y;if(typeof G==="string")try{Y=_G(G)}catch(V){throw Error(`${W} must be valid hex string, got "${G}". Cause: ${V}`)}else if(bH(G))Y=Uint8Array.from(G);else throw Error(`${W} must be hex string or Uint8Array`);let Z=Y.length;if(typeof X==="number"&&Z!==X)throw Error(`${W} expected ${X} bytes, got ${Z}`);return Y}function WZ(...W){let G=new Uint8Array(W.reduce((Y,Z)=>Y+Z.length,0)),X=0;return W.forEach((Y)=>{if(!bH(Y))throw Error("Uint8Array expected");G.set(Y,X),X+=Y.length}),G}function Sa(W,G){if(W.length!==G.length)return!1;for(let X=0;X<W.length;X++)if(W[X]!==G[X])return!1;return!0}function xa(W){if(typeof W!=="string")throw Error(`utf8ToBytes expected string, got ${typeof W}`);return new Uint8Array(new TextEncoder().encode(W))}function ka(W){let G;for(G=0;W>kk;W>>=hH,G+=1);return G}function _a(W,G){return W>>BigInt(G)&hH}var ya=(W,G,X)=>{return W|(X?hH:kk)<<BigInt(G)},CJ=(W)=>(Ea<<BigInt(W-1))-hH,PK=(W)=>new Uint8Array(W),xk=(W)=>Uint8Array.from(W);function LK(W,G,X){if(typeof W!=="number"||W<2)throw Error("hashLen must be a number");if(typeof G!=="number"||G<2)throw Error("qByteLen must be a number");if(typeof X!=="function")throw Error("hmacFn must be a function");let Y=PK(W),Z=PK(W),V=0,Q=()=>{Y.fill(1),Z.fill(0),V=0},J=(...A)=>X(Z,Y,...A),U=(A=PK())=>{if(Z=J(xk([0]),A),Y=J(),A.length===0)return;Z=J(xk([1]),A),Y=J()},q=()=>{if(V++>=1000)throw Error("drbg: tried 1000 values");let A=0,H=[];while(A<G){Y=J();let I=Y.slice();H.push(I),A+=Y.length}return WZ(...H)};return(A,H)=>{Q(),U(A);let I=void 0;while(!(I=H(q())))U();return Q(),I}}var va={bigint:(W)=>typeof W==="bigint",function:(W)=>typeof W==="function",boolean:(W)=>typeof W==="boolean",string:(W)=>typeof W==="string",stringOrUint8Array:(W)=>typeof W==="string"||W instanceof Uint8Array,isSafeInteger:(W)=>Number.isSafeInteger(W),array:(W)=>Array.isArray(W),field:(W,G)=>G.Fp.isValid(W),hash:(W)=>typeof W==="function"&&Number.isSafeInteger(W.outputLen)};function QW(W,G,X={}){let Y=(Z,V,Q)=>{let J=va[V];if(typeof J!=="function")throw Error(`Invalid validator "${V}", expected function`);let U=W[Z];if(Q&&U===void 0)return;if(!J(U,W))throw Error(`Invalid param ${String(Z)}=${U} (${typeof U}), expected ${V}`)};for(let[Z,V]of Object.entries(G))Y(Z,V,!1);for(let[Z,V]of Object.entries(X))Y(Z,V,!0);return W}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var p8=BigInt(0),B8=BigInt(1),yG=BigInt(2),ga=BigInt(3),EK=BigInt(4),yk=BigInt(5),vk=BigInt(8),ua=BigInt(9),ha=BigInt(16);function B9(W,G){let X=W%G;return X>=p8?X:G+X}function ba(W,G,X){if(X<=p8||G<p8)throw Error("Expected power/modulo > 0");if(X===B8)return p8;let Y=B8;while(G>p8){if(G&B8)Y=Y*W%X;W=W*W%X,G>>=B8}return Y}function H5(W,G,X){let Y=W;while(G-- >p8)Y*=Y,Y%=X;return Y}function cH(W,G){if(W===p8||G<=p8)throw Error(`invert: expected positive integers, got n=${W} mod=${G}`);let X=B9(W,G),Y=G,Z=p8,V=B8,Q=B8,J=p8;while(X!==p8){let q=Y/X,N=Y%X,A=Z-Q*q,H=V-J*q;Y=X,X=N,Z=Q,V=J,Q=A,J=H}if(Y!==B8)throw Error("invert: does not exist");return B9(Z,G)}function ma(W){let G=(W-B8)/yG,X,Y,Z;for(X=W-B8,Y=0;X%yG===p8;X/=yG,Y++);for(Z=yG;Z<W&&ba(Z,G,W)!==W-B8;Z++);if(Y===1){let Q=(W+B8)/EK;return function(U,q){let N=U.pow(q,Q);if(!U.eql(U.sqr(N),q))throw Error("Cannot find square root");return N}}let V=(X+B8)/yG;return function(J,U){if(J.pow(U,G)===J.neg(J.ONE))throw Error("Cannot find square root");let q=Y,N=J.pow(J.mul(J.ONE,Z),X),A=J.pow(U,V),H=J.pow(U,X);while(!J.eql(H,J.ONE)){if(J.eql(H,J.ZERO))return J.ZERO;let I=1;for(let C=J.sqr(H);I<q;I++){if(J.eql(C,J.ONE))break;C=J.sqr(C)}let w=J.pow(N,B8<<BigInt(q-I-1));N=J.sqr(w),A=J.mul(A,w),H=J.mul(H,N),q=I}return A}}function fa(W){if(W%EK===ga){let G=(W+B8)/EK;return function(Y,Z){let V=Y.pow(Z,G);if(!Y.eql(Y.sqr(V),Z))throw Error("Cannot find square root");return V}}if(W%vk===yk){let G=(W-yk)/vk;return function(Y,Z){let V=Y.mul(Z,yG),Q=Y.pow(V,G),J=Y.mul(Z,Q),U=Y.mul(Y.mul(J,yG),Q),q=Y.mul(J,Y.sub(U,Y.ONE));if(!Y.eql(Y.sqr(q),Z))throw Error("Cannot find square root");return q}}if(W%ha===ua);return ma(W)}var ca=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function $K(W){let G={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},X=ca.reduce((Y,Z)=>{return Y[Z]="function",Y},G);return QW(W,X)}function pa(W,G,X){if(X<p8)throw Error("Expected power > 0");if(X===p8)return W.ONE;if(X===B8)return G;let Y=W.ONE,Z=G;while(X>p8){if(X&B8)Y=W.mul(Y,Z);Z=W.sqr(Z),X>>=B8}return Y}function la(W,G){let X=Array(G.length),Y=G.reduce((V,Q,J)=>{if(W.is0(Q))return V;return X[J]=V,W.mul(V,Q)},W.ONE),Z=W.inv(Y);return G.reduceRight((V,Q,J)=>{if(W.is0(Q))return V;return X[J]=W.mul(V,X[J]),W.mul(V,Q)},Z),X}function FK(W,G){let X=G!==void 0?G:W.toString(2).length,Y=Math.ceil(X/8);return{nBitLength:X,nByteLength:Y}}function gk(W,G,X=!1,Y={}){if(W<=p8)throw Error(`Expected Field ORDER > 0, got ${W}`);let{nBitLength:Z,nByteLength:V}=FK(W,G);if(V>2048)throw Error("Field lengths over 2048 bytes are not supported");let Q=fa(W),J=Object.freeze({ORDER:W,BITS:Z,BYTES:V,MASK:CJ(Z),ZERO:p8,ONE:B8,create:(U)=>B9(U,W),isValid:(U)=>{if(typeof U!=="bigint")throw Error(`Invalid field element: expected bigint, got ${typeof U}`);return p8<=U&&U<W},is0:(U)=>U===p8,isOdd:(U)=>(U&B8)===B8,neg:(U)=>B9(-U,W),eql:(U,q)=>U===q,sqr:(U)=>B9(U*U,W),add:(U,q)=>B9(U+q,W),sub:(U,q)=>B9(U-q,W),mul:(U,q)=>B9(U*q,W),pow:(U,q)=>pa(J,U,q),div:(U,q)=>B9(U*cH(q,W),W),sqrN:(U)=>U*U,addN:(U,q)=>U+q,subN:(U,q)=>U-q,mulN:(U,q)=>U*q,inv:(U)=>cH(U,W),sqrt:Y.sqrt||((U)=>Q(J,U)),invertBatch:(U)=>la(J,U),cmov:(U,q,N)=>N?q:U,toBytes:(U)=>X?fH(U,V):VW(U,V),fromBytes:(U)=>{if(U.length!==V)throw Error(`Fp.fromBytes: expected ${V}, got ${U.length}`);return X?mH(U):o4(U)}});return Object.freeze(J)}function uk(W){if(typeof W!=="bigint")throw Error("field order must be bigint");let G=W.toString(2).length;return Math.ceil(G/8)}function SK(W){let G=uk(W);return G+Math.ceil(G/2)}function hk(W,G,X=!1){let Y=W.length,Z=uk(G),V=SK(G);if(Y<16||Y<V||Y>1024)throw Error(`expected ${V}-1024 bytes of input, got ${Y}`);let Q=X?o4(W):mH(W),J=B9(Q,G-B8)+B8;return X?fH(J,Z):VW(J,Z)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var oa=BigInt(0),xK=BigInt(1);function bk(W,G){let X=(Z,V)=>{let Q=V.negate();return Z?Q:V},Y=(Z)=>{let V=Math.ceil(G/Z)+1,Q=2**(Z-1);return{windows:V,windowSize:Q}};return{constTimeNegate:X,unsafeLadder(Z,V){let Q=W.ZERO,J=Z;while(V>oa){if(V&xK)Q=Q.add(J);J=J.double(),V>>=xK}return Q},precomputeWindow(Z,V){let{windows:Q,windowSize:J}=Y(V),U=[],q=Z,N=q;for(let A=0;A<Q;A++){N=q,U.push(N);for(let H=1;H<J;H++)N=N.add(q),U.push(N);q=N.double()}return U},wNAF(Z,V,Q){let{windows:J,windowSize:U}=Y(Z),q=W.ZERO,N=W.BASE,A=BigInt(2**Z-1),H=2**Z,I=BigInt(Z);for(let w=0;w<J;w++){let C=w*U,D=Number(Q&A);if(Q>>=I,D>U)D-=H,Q+=xK;let x=C,h=C+Math.abs(D)-1,p=w%2!==0,u=D<0;if(D===0)N=N.add(X(p,V[x]));else q=q.add(X(u,V[h]))}return{p:q,f:N}},wNAFCached(Z,V,Q,J){let U=Z._WINDOW_SIZE||1,q=V.get(Z);if(!q){if(q=this.precomputeWindow(Z,U),U!==1)V.set(Z,J(q))}return this.wNAF(U,q,Q)}}}function kK(W){return $K(W.Fp),QW(W,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...FK(W.n,W.nBitLength),...W,...{p:W.Fp.ORDER}})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function na(W){let G=kK(W);QW(G,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:X,Fp:Y,a:Z}=G;if(X){if(!Y.eql(Z,Y.ZERO))throw Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof X!=="object"||typeof X.beta!=="bigint"||typeof X.splitScalar!=="function")throw Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...G})}var{bytesToNumberBE:ia,hexToBytes:ra}=BK,vG={Err:class extends Error{constructor(G=""){super(G)}},_parseInt(W){let{Err:G}=vG;if(W.length<2||W[0]!==2)throw new G("Invalid signature integer tag");let X=W[1],Y=W.subarray(2,X+2);if(!X||Y.length!==X)throw new G("Invalid signature integer: wrong length");if(Y[0]&128)throw new G("Invalid signature integer: negative");if(Y[0]===0&&!(Y[1]&128))throw new G("Invalid signature integer: unnecessary leading zero");return{d:ia(Y),l:W.subarray(X+2)}},toSig(W){let{Err:G}=vG,X=typeof W==="string"?ra(W):W;if(!(X instanceof Uint8Array))throw Error("ui8a expected");let Y=X.length;if(Y<2||X[0]!=48)throw new G("Invalid signature tag");if(X[1]!==Y-2)throw new G("Invalid signature: incorrect length");let{d:Z,l:V}=vG._parseInt(X.subarray(2)),{d:Q,l:J}=vG._parseInt(V);if(J.length)throw new G("Invalid signature: left bytes after parsing");return{r:Z,s:Q}},hexFromSig(W){let G=(q)=>Number.parseInt(q[0],16)&8?"00"+q:q,X=(q)=>{let N=q.toString(16);return N.length&1?`0${N}`:N},Y=G(X(W.s)),Z=G(X(W.r)),V=Y.length/2,Q=Z.length/2,J=X(V),U=X(Q);return`30${X(Q+V+4)}02${U}${Z}02${J}${Y}`}},n4=BigInt(0),E5=BigInt(1),ew0=BigInt(2),mk=BigInt(3),Wj0=BigInt(4);function aa(W){let G=na(W),{Fp:X}=G,Y=G.toBytes||((w,C,D)=>{let x=C.toAffine();return WZ(Uint8Array.from([4]),X.toBytes(x.x),X.toBytes(x.y))}),Z=G.fromBytes||((w)=>{let C=w.subarray(1),D=X.fromBytes(C.subarray(0,X.BYTES)),x=X.fromBytes(C.subarray(X.BYTES,2*X.BYTES));return{x:D,y:x}});function V(w){let{a:C,b:D}=G,x=X.sqr(w),h=X.mul(x,w);return X.add(X.add(h,X.mul(w,C)),D)}if(!X.eql(X.sqr(G.Gy),V(G.Gx)))throw Error("bad generator point: equation left != right");function Q(w){return typeof w==="bigint"&&n4<w&&w<G.n}function J(w){if(!Q(w))throw Error("Expected valid bigint: 0 < bigint < curve.n")}function U(w){let{allowedPrivateKeyLengths:C,nByteLength:D,wrapPrivateKey:x,n:h}=G;if(C&&typeof w!=="bigint"){if(w instanceof Uint8Array)w=kG(w);if(typeof w!=="string"||!C.includes(w.length))throw Error("Invalid key");w=w.padStart(D*2,"0")}let p;try{p=typeof w==="bigint"?w:o4(N5("private key",w,D))}catch(u){throw Error(`private key must be ${D} bytes, hex or bigint, not ${typeof w}`)}if(x)p=B9(p,h);return J(p),p}let q=new Map;function N(w){if(!(w instanceof A))throw Error("ProjectivePoint expected")}class A{constructor(w,C,D){if(this.px=w,this.py=C,this.pz=D,w==null||!X.isValid(w))throw Error("x required");if(C==null||!X.isValid(C))throw Error("y required");if(D==null||!X.isValid(D))throw Error("z required")}static fromAffine(w){let{x:C,y:D}=w||{};if(!w||!X.isValid(C)||!X.isValid(D))throw Error("invalid affine point");if(w instanceof A)throw Error("projective point not allowed");let x=(h)=>X.eql(h,X.ZERO);if(x(C)&&x(D))return A.ZERO;return new A(C,D,X.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(w){let C=X.invertBatch(w.map((D)=>D.pz));return w.map((D,x)=>D.toAffine(C[x])).map(A.fromAffine)}static fromHex(w){let C=A.fromAffine(Z(N5("pointHex",w)));return C.assertValidity(),C}static fromPrivateKey(w){return A.BASE.multiply(U(w))}_setWindowSize(w){this._WINDOW_SIZE=w,q.delete(this)}assertValidity(){if(this.is0()){if(G.allowInfinityPoint&&!X.is0(this.py))return;throw Error("bad point: ZERO")}let{x:w,y:C}=this.toAffine();if(!X.isValid(w)||!X.isValid(C))throw Error("bad point: x or y not FE");let D=X.sqr(C),x=V(w);if(!X.eql(D,x))throw Error("bad point: equation left != right");if(!this.isTorsionFree())throw Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:w}=this.toAffine();if(X.isOdd)return!X.isOdd(w);throw Error("Field doesn't support isOdd")}equals(w){N(w);let{px:C,py:D,pz:x}=this,{px:h,py:p,pz:u}=w,n=X.eql(X.mul(C,u),X.mul(h,x)),c=X.eql(X.mul(D,u),X.mul(p,x));return n&&c}negate(){return new A(this.px,X.neg(this.py),this.pz)}double(){let{a:w,b:C}=G,D=X.mul(C,mk),{px:x,py:h,pz:p}=this,u=X.ZERO,n=X.ZERO,c=X.ZERO,l=X.mul(x,x),G0=X.mul(h,h),m=X.mul(p,p),Y0=X.mul(x,h);return Y0=X.add(Y0,Y0),c=X.mul(x,p),c=X.add(c,c),u=X.mul(w,c),n=X.mul(D,m),n=X.add(u,n),u=X.sub(G0,n),n=X.add(G0,n),n=X.mul(u,n),u=X.mul(Y0,u),c=X.mul(D,c),m=X.mul(w,m),Y0=X.sub(l,m),Y0=X.mul(w,Y0),Y0=X.add(Y0,c),c=X.add(l,l),l=X.add(c,l),l=X.add(l,m),l=X.mul(l,Y0),n=X.add(n,l),m=X.mul(h,p),m=X.add(m,m),l=X.mul(m,Y0),u=X.sub(u,l),c=X.mul(m,G0),c=X.add(c,c),c=X.add(c,c),new A(u,n,c)}add(w){N(w);let{px:C,py:D,pz:x}=this,{px:h,py:p,pz:u}=w,n=X.ZERO,c=X.ZERO,l=X.ZERO,G0=G.a,m=X.mul(G.b,mk),Y0=X.mul(C,h),U0=X.mul(D,p),y=X.mul(x,u),o=X.add(C,D),B=X.add(h,p);o=X.mul(o,B),B=X.add(Y0,U0),o=X.sub(o,B),B=X.add(C,x);let R=X.add(h,u);return B=X.mul(B,R),R=X.add(Y0,y),B=X.sub(B,R),R=X.add(D,x),n=X.add(p,u),R=X.mul(R,n),n=X.add(U0,y),R=X.sub(R,n),l=X.mul(G0,B),n=X.mul(m,y),l=X.add(n,l),n=X.sub(U0,l),l=X.add(U0,l),c=X.mul(n,l),U0=X.add(Y0,Y0),U0=X.add(U0,Y0),y=X.mul(G0,y),B=X.mul(m,B),U0=X.add(U0,y),y=X.sub(Y0,y),y=X.mul(G0,y),B=X.add(B,y),Y0=X.mul(U0,B),c=X.add(c,Y0),Y0=X.mul(R,B),n=X.mul(o,n),n=X.sub(n,Y0),Y0=X.mul(o,U0),l=X.mul(R,l),l=X.add(l,Y0),new A(n,c,l)}subtract(w){return this.add(w.negate())}is0(){return this.equals(A.ZERO)}wNAF(w){return I.wNAFCached(this,q,w,(C)=>{let D=X.invertBatch(C.map((x)=>x.pz));return C.map((x,h)=>x.toAffine(D[h])).map(A.fromAffine)})}multiplyUnsafe(w){let C=A.ZERO;if(w===n4)return C;if(J(w),w===E5)return this;let{endo:D}=G;if(!D)return I.unsafeLadder(this,w);let{k1neg:x,k1:h,k2neg:p,k2:u}=D.splitScalar(w),n=C,c=C,l=this;while(h>n4||u>n4){if(h&E5)n=n.add(l);if(u&E5)c=c.add(l);l=l.double(),h>>=E5,u>>=E5}if(x)n=n.negate();if(p)c=c.negate();return c=new A(X.mul(c.px,D.beta),c.py,c.pz),n.add(c)}multiply(w){J(w);let C=w,D,x,{endo:h}=G;if(h){let{k1neg:p,k1:u,k2neg:n,k2:c}=h.splitScalar(C),{p:l,f:G0}=this.wNAF(u),{p:m,f:Y0}=this.wNAF(c);l=I.constTimeNegate(p,l),m=I.constTimeNegate(n,m),m=new A(X.mul(m.px,h.beta),m.py,m.pz),D=l.add(m),x=G0.add(Y0)}else{let{p,f:u}=this.wNAF(C);D=p,x=u}return A.normalizeZ([D,x])[0]}multiplyAndAddUnsafe(w,C,D){let x=A.BASE,h=(u,n)=>n===n4||n===E5||!u.equals(x)?u.multiplyUnsafe(n):u.multiply(n),p=h(this,C).add(h(w,D));return p.is0()?void 0:p}toAffine(w){let{px:C,py:D,pz:x}=this,h=this.is0();if(w==null)w=h?X.ONE:X.inv(x);let p=X.mul(C,w),u=X.mul(D,w),n=X.mul(x,w);if(h)return{x:X.ZERO,y:X.ZERO};if(!X.eql(n,X.ONE))throw Error("invZ was invalid");return{x:p,y:u}}isTorsionFree(){let{h:w,isTorsionFree:C}=G;if(w===E5)return!0;if(C)return C(A,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:w,clearCofactor:C}=G;if(w===E5)return this;if(C)return C(A,this);return this.multiplyUnsafe(G.h)}toRawBytes(w=!0){return this.assertValidity(),Y(A,this,w)}toHex(w=!0){return kG(this.toRawBytes(w))}}A.BASE=new A(G.Gx,G.Gy,X.ONE),A.ZERO=new A(X.ZERO,X.ONE,X.ZERO);let H=G.nBitLength,I=bk(A,G.endo?Math.ceil(H/2):H);return{CURVE:G,ProjectivePoint:A,normPrivateKeyToScalar:U,weierstrassEquation:V,isWithinCurveOrder:Q}}function sa(W){let G=kK(W);return QW(G,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...G})}function fk(W){let G=sa(W),{Fp:X,n:Y}=G,Z=X.BYTES+1,V=2*X.BYTES+1;function Q(R){return n4<R&&R<X.ORDER}function J(R){return B9(R,Y)}function U(R){return cH(R,Y)}let{ProjectivePoint:q,normPrivateKeyToScalar:N,weierstrassEquation:A,isWithinCurveOrder:H}=aa({...G,toBytes(R,_,S){let v=_.toAffine(),P=X.toBytes(v.x),E=WZ;if(S)return E(Uint8Array.from([_.hasEvenY()?2:3]),P);else return E(Uint8Array.from([4]),P,X.toBytes(v.y))},fromBytes(R){let _=R.length,S=R[0],v=R.subarray(1);if(_===Z&&(S===2||S===3)){let P=o4(v);if(!Q(P))throw Error("Point is not on curve");let E=A(P),b=X.sqrt(E),k=(b&E5)===E5;if((S&1)===1!==k)b=X.neg(b);return{x:P,y:b}}else if(_===V&&S===4){let P=X.fromBytes(v.subarray(0,X.BYTES)),E=X.fromBytes(v.subarray(X.BYTES,2*X.BYTES));return{x:P,y:E}}else throw Error(`Point of length ${_} was invalid. Expected ${Z} compressed bytes or ${V} uncompressed bytes`)}}),I=(R)=>kG(VW(R,G.nByteLength));function w(R){let _=Y>>E5;return R>_}function C(R){return w(R)?J(-R):R}let D=(R,_,S)=>o4(R.slice(_,S));class x{constructor(R,_,S){this.r=R,this.s=_,this.recovery=S,this.assertValidity()}static fromCompact(R){let _=G.nByteLength;return R=N5("compactSignature",R,_*2),new x(D(R,0,_),D(R,_,2*_))}static fromDER(R){let{r:_,s:S}=vG.toSig(N5("DER",R));return new x(_,S)}assertValidity(){if(!H(this.r))throw Error("r must be 0 < r < CURVE.n");if(!H(this.s))throw Error("s must be 0 < s < CURVE.n")}addRecoveryBit(R){return new x(this.r,this.s,R)}recoverPublicKey(R){let{r:_,s:S,recovery:v}=this,P=l(N5("msgHash",R));if(v==null||![0,1,2,3].includes(v))throw Error("recovery id invalid");let E=v===2||v===3?_+G.n:_;if(E>=X.ORDER)throw Error("recovery id 2 or 3 invalid");let b=(v&1)===0?"02":"03",k=q.fromHex(b+I(E)),f=U(E),e=J(-P*f),q0=J(S*f),Q0=q.BASE.multiplyAndAddUnsafe(k,e,q0);if(!Q0)throw Error("point at infinify");return Q0.assertValidity(),Q0}hasHighS(){return w(this.s)}normalizeS(){return this.hasHighS()?new x(this.r,J(-this.s),this.recovery):this}toDERRawBytes(){return _G(this.toDERHex())}toDERHex(){return vG.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return _G(this.toCompactHex())}toCompactHex(){return I(this.r)+I(this.s)}}let h={isValidPrivateKey(R){try{return N(R),!0}catch(_){return!1}},normPrivateKeyToScalar:N,randomPrivateKey:()=>{let R=SK(G.n);return hk(G.randomBytes(R),G.n)},precompute(R=8,_=q.BASE){return _._setWindowSize(R),_.multiply(BigInt(3)),_}};function p(R,_=!0){return q.fromPrivateKey(R).toRawBytes(_)}function u(R){let _=R instanceof Uint8Array,S=typeof R==="string",v=(_||S)&&R.length;if(_)return v===Z||v===V;if(S)return v===2*Z||v===2*V;if(R instanceof q)return!0;return!1}function n(R,_,S=!0){if(u(R))throw Error("first arg must be private key");if(!u(_))throw Error("second arg must be public key");return q.fromHex(_).multiply(N(R)).toRawBytes(S)}let c=G.bits2int||function(R){let _=o4(R),S=R.length*8-G.nBitLength;return S>0?_>>BigInt(S):_},l=G.bits2int_modN||function(R){return J(c(R))},G0=CJ(G.nBitLength);function m(R){if(typeof R!=="bigint")throw Error("bigint expected");if(!(n4<=R&&R<G0))throw Error(`bigint expected < 2^${G.nBitLength}`);return VW(R,G.nByteLength)}function Y0(R,_,S=U0){if(["recovered","canonical"].some((k0)=>(k0 in S)))throw Error("sign() legacy options not supported");let{hash:v,randomBytes:P}=G,{lowS:E,prehash:b,extraEntropy:k}=S;if(E==null)E=!0;if(R=N5("msgHash",R),b)R=N5("prehashed msgHash",v(R));let f=l(R),e=N(_),q0=[m(e),m(f)];if(k!=null){let k0=k===!0?P(X.BYTES):k;q0.push(N5("extraEntropy",k0))}let Q0=WZ(...q0),$0=f;function D0(k0){let H1=c(k0);if(!H(H1))return;let U1=U(H1),J0=q.BASE.multiply(H1).toAffine(),B0=J(J0.x);if(B0===n4)return;let h0=J(U1*J($0+B0*e));if(h0===n4)return;let Y1=(J0.x===B0?0:2)|Number(J0.y&E5),A8=h0;if(E&&w(h0))A8=C(h0),Y1^=1;return new x(B0,A8,Y1)}return{seed:Q0,k2sig:D0}}let U0={lowS:G.lowS,prehash:!1},y={lowS:G.lowS,prehash:!1};function o(R,_,S=U0){let{seed:v,k2sig:P}=Y0(R,_,S),E=G;return LK(E.hash.outputLen,E.nByteLength,E.hmac)(v,P)}q.BASE._setWindowSize(8);function B(R,_,S,v=y){let P=R;if(_=N5("msgHash",_),S=N5("publicKey",S),"strict"in v)throw Error("options.strict was renamed to lowS");let{lowS:E,prehash:b}=v,k=void 0,f;try{if(typeof P==="string"||P instanceof Uint8Array)try{k=x.fromDER(P)}catch(J0){if(!(J0 instanceof vG.Err))throw J0;k=x.fromCompact(P)}else if(typeof P==="object"&&typeof P.r==="bigint"&&typeof P.s==="bigint"){let{r:J0,s:B0}=P;k=new x(J0,B0)}else throw Error("PARSE");f=q.fromHex(S)}catch(J0){if(J0.message==="PARSE")throw Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(E&&k.hasHighS())return!1;if(b)_=G.hash(_);let{r:e,s:q0}=k,Q0=l(_),$0=U(q0),D0=J(Q0*$0),k0=J(e*$0),H1=q.BASE.multiplyAndAddUnsafe(f,D0,k0)?.toAffine();if(!H1)return!1;return J(H1.x)===e}return{CURVE:G,getPublicKey:p,getSharedSecret:n,sign:o,verify:B,ProjectivePoint:q,Signature:x,utils:h}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function ta(W){return{hash:W,hmac:(G,...X)=>KJ(W,G,cx(...X)),randomBytes:px}}function ck(W,G){let X=(Y)=>fk({...W,...ta(Y)});return Object.freeze({...X(G),create:X})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */var dk=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),pk=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),ea=BigInt(1),_K=BigInt(2),lk=(W,G)=>(W+G/_K)/G;function Ws(W){let G=dk,X=BigInt(3),Y=BigInt(6),Z=BigInt(11),V=BigInt(22),Q=BigInt(23),J=BigInt(44),U=BigInt(88),q=W*W*W%G,N=q*q*W%G,A=H5(N,X,G)*N%G,H=H5(A,X,G)*N%G,I=H5(H,_K,G)*q%G,w=H5(I,Z,G)*I%G,C=H5(w,V,G)*w%G,D=H5(C,J,G)*C%G,x=H5(D,U,G)*D%G,h=H5(x,J,G)*C%G,p=H5(h,X,G)*N%G,u=H5(p,Q,G)*w%G,n=H5(u,Y,G)*q%G,c=H5(n,_K,G);if(!yK.eql(yK.sqr(c),W))throw Error("Cannot find square root");return c}var yK=gk(dk,void 0,void 0,{sqrt:Ws}),i4=ck({a:BigInt(0),b:BigInt(7),Fp:yK,n:pk,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:(W)=>{let G=pk,X=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),Y=-ea*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),Z=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),V=X,Q=BigInt("0x100000000000000000000000000000000"),J=lk(V*W,G),U=lk(-Y*W,G),q=B9(W-J*X-U*Z,G),N=B9(-J*Y-U*V,G),A=q>Q,H=N>Q;if(A)q=G-q;if(H)N=G-N;if(q>Q||N>Q)throw Error("splitScalar: Endomorphism failed, k="+W);return{k1neg:A,k1:q,k2neg:H,k2:N}}}},OJ),qj0=BigInt(0);var Nj0=i4.ProjectivePoint;var vK="0x0000000000000000000000000000000000000000";var pH="0x0000000000000000000000000000000000000000000000000000000000000000";var gK=`\x19Ethereum Signed Message:
|
|
249
|
+
`;var ok=BigInt(0),nk=BigInt(1),ik=BigInt(2),rk=BigInt(27),ak=BigInt(28),lH=BigInt(35),GZ={};function sk(W){return q5(Q8(W),32)}class I8{#W;#G;#X;#Y;get r(){return this.#W}set r(W){s(l4(W)===32,"invalid r","value",W),this.#W=C0(W)}get s(){return s(parseInt(this.#G.substring(0,3))<8,"non-canonical s; use ._s","s",this.#G),this.#G}set s(W){s(l4(W)===32,"invalid s","value",W),this.#G=C0(W)}get _s(){return this.#G}isValid(){return parseInt(this.#G.substring(0,3))<8}get v(){return this.#X}set v(W){let G=n8(W,"value");s(G===27||G===28,"invalid v","v",W),this.#X=G}get networkV(){return this.#Y}get legacyChainId(){let W=this.networkV;if(W==null)return null;return I8.getChainId(W)}get yParity(){return this.v===27?0:1}get yParityAndS(){let W=R0(this.s);if(this.yParity)W[0]|=128;return C0(W)}get compactSerialized(){return a1([this.r,this.yParityAndS])}get serialized(){return a1([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(W,G,X,Y){p4(W,GZ,"Signature"),this.#W=G,this.#G=X,this.#X=Y,this.#Y=null}[Symbol.for("nodejs.util.inspect.custom")](){return`Signature { r: "${this.r}", s: "${this._s}"${this.isValid()?"":', valid: "false"'}, yParity: ${this.yParity}, networkV: ${this.networkV} }`}clone(){let W=new I8(GZ,this.r,this._s,this.v);if(this.networkV)W.#Y=this.networkV;return W}toJSON(){let W=this.networkV;return{_type:"signature",networkV:W!=null?W.toString():null,r:this.r,s:this._s,v:this.v}}static getChainId(W){let G=v1(W,"v");if(G==rk||G==ak)return ok;return s(G>=lH,"invalid EIP-155 v","v",W),(G-lH)/ik}static getChainIdV(W,G){return v1(W)*ik+BigInt(35+G-27)}static getNormalizedV(W){let G=v1(W);if(G===ok||G===rk)return 27;if(G===nk||G===ak)return 28;return s(G>=lH,"invalid v","v",W),G&nk?27:28}static from(W){function G(U,q){s(U,q,"signature",W)}if(W==null)return new I8(GZ,pH,pH,27);if(typeof W==="string"){let U=R0(W,"signature");if(U.length===64){let q=C0(U.slice(0,32)),N=U.slice(32,64),A=N[0]&128?28:27;return N[0]&=127,new I8(GZ,q,C0(N),A)}if(U.length===65){let q=C0(U.slice(0,32)),N=C0(U.slice(32,64)),A=I8.getNormalizedV(U[64]);return new I8(GZ,q,N,A)}G(!1,"invalid raw signature length")}if(W instanceof I8)return W.clone();let X=W.r;G(X!=null,"missing r");let Y=sk(X),Z=function(U,q){if(U!=null)return sk(U);if(q!=null){G(T9(q,32),"invalid yParityAndS");let N=R0(q);return N[0]&=127,C0(N)}G(!1,"missing s")}(W.s,W.yParityAndS),{networkV:V,v:Q}=function(U,q,N){if(U!=null){let A=v1(U);return{networkV:A>=lH?A:void 0,v:I8.getNormalizedV(A)}}if(q!=null)return G(T9(q,32),"invalid yParityAndS"),{v:R0(q)[0]&128?28:27};if(N!=null){switch(n8(N,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}G(!1,"invalid yParity")}G(!1,"missing v")}(W.v,W.yParityAndS,W.yParity),J=new I8(GZ,Y,Z,Q);if(V)J.#Y=V;return G(W.yParity==null||n8(W.yParity,"sig.yParity")===J.yParity,"yParity mismatch"),G(W.yParityAndS==null||W.yParityAndS===J.yParityAndS,"yParityAndS mismatch"),J}}class l8{#W;constructor(W){s(l4(W)===32,"invalid private key","privateKey","[REDACTED]"),this.#W=C0(W)}get privateKey(){return this.#W}get publicKey(){return l8.computePublicKey(this.#W)}get compressedPublicKey(){return l8.computePublicKey(this.#W,!0)}sign(W){s(l4(W)===32,"invalid digest length","digest",W);let G=i4.sign(X7(W),X7(this.#W),{lowS:!0});return I8.from({r:Y7(G.r,32),s:Y7(G.s,32),v:G.recovery?28:27})}computeSharedSecret(W){let G=l8.computePublicKey(W);return C0(i4.getSharedSecret(X7(this.#W),R0(G),!1))}static computePublicKey(W,G){let X=R0(W,"key");if(X.length===32){let Z=i4.getPublicKey(X,!!G);return C0(Z)}if(X.length===64){let Z=new Uint8Array(65);Z[0]=4,Z.set(X,1),X=Z}let Y=i4.ProjectivePoint.fromHex(X);return C0(Y.toRawBytes(G))}static recoverPublicKey(W,G){s(l4(W)===32,"invalid digest length","digest",W);let X=I8.from(G),Y=i4.Signature.fromCompact(X7(a1([X.r,X.s])));Y=Y.addRecoveryBit(X.yParity);let Z=Y.recoverPublicKey(X7(W));return s(Z!=null,"invalid signature for digest","signature",G),"0x"+Z.toHex(!1)}static addPoints(W,G,X){let Y=i4.ProjectivePoint.fromHex(l8.computePublicKey(W).substring(2)),Z=i4.ProjectivePoint.fromHex(l8.computePublicKey(G).substring(2));return"0x"+Y.add(Z).toHex(!!X)}}var Gs=BigInt(0),Xs=BigInt(36);function tk(W){W=W.toLowerCase();let G=W.substring(2).split(""),X=new Uint8Array(40);for(let Z=0;Z<40;Z++)X[Z]=G[Z].charCodeAt(0);let Y=R0(G8(X));for(let Z=0;Z<40;Z+=2){if(Y[Z>>1]>>4>=8)G[Z]=G[Z].toUpperCase();if((Y[Z>>1]&15)>=8)G[Z+1]=G[Z+1].toUpperCase()}return"0x"+G.join("")}var uK={};for(let W=0;W<10;W++)uK[String(W)]=String(W);for(let W=0;W<26;W++)uK[String.fromCharCode(65+W)]=String(10+W);var ek=15;function Ys(W){W=W.toUpperCase(),W=W.substring(4)+W.substring(0,2)+"00";let G=W.split("").map((Y)=>{return uK[Y]}).join("");while(G.length>=ek){let Y=G.substring(0,ek);G=parseInt(Y,10)%97+G.substring(Y.length)}let X=String(98-parseInt(G,10)%97);while(X.length<2)X="0"+X;return X}var Zs=function(){let W={};for(let G=0;G<36;G++){let X="0123456789abcdefghijklmnopqrstuvwxyz"[G];W[X]=BigInt(G)}return W}();function Vs(W){W=W.toLowerCase();let G=Gs;for(let X=0;X<W.length;X++)G=G*Xs+Zs[W[X]];return G}function b1(W){if(s(typeof W==="string","invalid address","address",W),W.match(/^(0x)?[0-9a-fA-F]{40}$/)){if(!W.startsWith("0x"))W="0x"+W;let G=tk(W);return s(!W.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||G===W,"bad address checksum","address",W),G}if(W.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){s(W.substring(2,4)===Ys(W),"bad icap checksum","address",W);let G=Vs(W.substring(4)).toString(16);while(G.length<40)G="0"+G;return tk("0x"+G)}s(!1,"invalid address","address",W)}function bK(W){return W&&typeof W.getAddress==="function"}async function hK(W,G){let X=await G;if(X==null||X==="0x0000000000000000000000000000000000000000")t0(typeof W!=="string","unconfigured name","UNCONFIGURED_NAME",{value:W}),s(!1,"invalid AddressLike value; did not resolve to a value address","target",W);return b1(X)}function r4(W,G){if(typeof W==="string"){if(W.match(/^0x[0-9a-f]{40}$/i))return b1(W);return t0(G!=null,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),hK(W,G.resolveName(W))}else if(bK(W))return hK(W,W.getAddress());else if(W&&typeof W.then==="function")return hK(W,W);s(!1,"unsupported addressable value","target",W)}function mK(W,G){return{address:b1(W),storageKeys:G.map((X,Y)=>{return s(T9(X,32),"invalid slot",`storageKeys[${Y}]`,X),X.toLowerCase()})}}function gG(W){if(Array.isArray(W))return W.map((X,Y)=>{if(Array.isArray(X))return s(X.length===2,"invalid slot set",`value[${Y}]`,X),mK(X[0],X[1]);return s(X!=null&&typeof X==="object","invalid address-slot set","value",W),mK(X.address,X.storageKeys)});s(W!=null&&typeof W==="object","invalid access list","value",W);let G=Object.keys(W).map((X)=>{let Y=W[X].reduce((Z,V)=>{return Z[V]=!0,Z},{});return mK(X,Object.keys(Y).sort())});return G.sort((X,Y)=>X.address.localeCompare(Y.address)),G}function W_(W){return{address:b1(W.address),nonce:v1(W.nonce!=null?W.nonce:0),chainId:v1(W.chainId!=null?W.chainId:0),signature:I8.from(W.signature)}}function a4(W){let G;if(typeof W==="string")G=l8.computePublicKey(W,!1);else G=W.publicKey;return b1(G8("0x"+G.substring(4)).substring(26))}function DJ(W,G){return a4(l8.recoverPublicKey(W,G))}var i8=BigInt(0),Us=BigInt(2),qs=BigInt(27),Ns=BigInt(28),Hs=BigInt(35),As=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),fK=131072;function zs(W){return{blobToKzgCommitment:(Y)=>{if("computeBlobProof"in W){if("blobToKzgCommitment"in W&&typeof W.blobToKzgCommitment==="function")return R0(W.blobToKzgCommitment(C0(Y)))}else if("blobToKzgCommitment"in W&&typeof W.blobToKzgCommitment==="function")return R0(W.blobToKzgCommitment(Y));if("blobToKZGCommitment"in W&&typeof W.blobToKZGCommitment==="function")return R0(W.blobToKZGCommitment(C0(Y)));s(!1,"unsupported KZG library","kzg",W)},computeBlobKzgProof:(Y,Z)=>{if("computeBlobProof"in W&&typeof W.computeBlobProof==="function")return R0(W.computeBlobProof(C0(Y),C0(Z)));if("computeBlobKzgProof"in W&&typeof W.computeBlobKzgProof==="function")return W.computeBlobKzgProof(Y,Z);if("computeBlobKZGProof"in W&&typeof W.computeBlobKZGProof==="function")return R0(W.computeBlobKZGProof(C0(Y),C0(Z)));s(!1,"unsupported KZG library","kzg",W)}}}function G_(W,G){let X=W.toString(16);while(X.length<2)X="0"+X;return X+=L9(G).substring(4),"0x"+X}function XZ(W){if(W==="0x")return null;return b1(W)}function dH(W,G){try{return gG(W)}catch(X){s(!1,X.message,G,W)}}function Is(W,G){try{if(!Array.isArray(W))throw Error("authorizationList: invalid array");let X=[];for(let Y=0;Y<W.length;Y++){let Z=W[Y];if(!Array.isArray(Z))throw Error(`authorization[${Y}]: invalid array`);if(Z.length!==6)throw Error(`authorization[${Y}]: wrong length`);if(!Z[1])throw Error(`authorization[${Y}]: null address`);X.push({address:XZ(Z[1]),nonce:X8(Z[2],"nonce"),chainId:X8(Z[0],"chainId"),signature:I8.from({yParity:uG(Z[3],"yParity"),r:q5(Z[4],32),s:q5(Z[5],32)})})}return X}catch(X){s(!1,X.message,G,W)}}function uG(W,G){if(W==="0x")return 0;return n8(W,G)}function X8(W,G){if(W==="0x")return i8;let X=v1(W,G);return s(X<=As,"value exceeds uint size",G,X),X}function g1(W,G){let X=v1(W,"value"),Y=Q8(X);return s(Y.length<=32,"value too large",`tx.${G}`,X),Y}function oH(W){return gG(W).map((G)=>[G.address,G.storageKeys])}function ws(W){return W.map((G)=>{return[g1(G.chainId,"chainId"),G.address,g1(G.nonce,"nonce"),g1(G.signature.yParity,"yParity"),Q8(G.signature.r),Q8(G.signature.s)]})}function js(W,G){s(Array.isArray(W),`invalid ${G}`,"value",W);for(let X=0;X<W.length;X++)s(T9(W[X],32),"invalid ${ param } hash",`value[${X}]`,W[X]);return W}function Os(W){let G=t6(W);s(Array.isArray(G)&&(G.length===9||G.length===6),"invalid field count for legacy transaction","data",W);let X={type:0,nonce:uG(G[0],"nonce"),gasPrice:X8(G[1],"gasPrice"),gasLimit:X8(G[2],"gasLimit"),to:XZ(G[3]),value:X8(G[4],"value"),data:C0(G[5]),chainId:i8};if(G.length===6)return X;let Y=X8(G[6],"v"),Z=X8(G[7],"r"),V=X8(G[8],"s");if(Z===i8&&V===i8)X.chainId=Y;else{let Q=(Y-Hs)/Us;if(Q<i8)Q=i8;X.chainId=Q,s(Q!==i8||(Y===qs||Y===Ns),"non-canonical legacy v","v",G[6]),X.signature=I8.from({r:q5(G[7],32),s:q5(G[8],32),v:Y})}return X}function Ks(W,G){let X=[g1(W.nonce,"nonce"),g1(W.gasPrice||0,"gasPrice"),g1(W.gasLimit,"gasLimit"),W.to||"0x",g1(W.value,"value"),W.data],Y=i8;if(W.chainId!=i8)Y=v1(W.chainId,"tx.chainId"),s(!G||G.networkV==null||G.legacyChainId===Y,"tx.chainId/sig.v mismatch","sig",G);else if(W.signature){let V=W.signature.legacyChainId;if(V!=null)Y=V}if(!G){if(Y!==i8)X.push(Q8(Y)),X.push("0x"),X.push("0x");return R5(X)}let Z=BigInt(27+G.yParity);if(Y!==i8)Z=I8.getChainIdV(Y,G.v);else if(BigInt(G.v)!==Z)s(!1,"tx.chainId/sig.v mismatch","sig",G);return X.push(Q8(Z)),X.push(Q8(G.r)),X.push(Q8(G.s)),R5(X)}function nH(W,G){let X;try{if(X=uG(G[0],"yParity"),X!==0&&X!==1)throw Error("bad yParity")}catch(Q){s(!1,"invalid yParity","yParity",G[0])}let Y=q5(G[1],32),Z=q5(G[2],32),V=I8.from({r:Y,s:Z,yParity:X});W.signature=V}function Cs(W){let G=t6(R0(W).slice(1));s(Array.isArray(G)&&(G.length===9||G.length===12),"invalid field count for transaction type: 2","data",C0(W));let X={type:2,chainId:X8(G[0],"chainId"),nonce:uG(G[1],"nonce"),maxPriorityFeePerGas:X8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:X8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:X8(G[4],"gasLimit"),to:XZ(G[5]),value:X8(G[6],"value"),data:C0(G[7]),accessList:dH(G[8],"accessList")};if(G.length===9)return X;return nH(X,G.slice(9)),X}function Ds(W,G){let X=[g1(W.chainId,"chainId"),g1(W.nonce,"nonce"),g1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),g1(W.maxFeePerGas||0,"maxFeePerGas"),g1(W.gasLimit,"gasLimit"),W.to||"0x",g1(W.value,"value"),W.data,oH(W.accessList||[])];if(G)X.push(g1(G.yParity,"yParity")),X.push(Q8(G.r)),X.push(Q8(G.s));return a1(["0x02",R5(X)])}function Ms(W){let G=t6(R0(W).slice(1));s(Array.isArray(G)&&(G.length===8||G.length===11),"invalid field count for transaction type: 1","data",C0(W));let X={type:1,chainId:X8(G[0],"chainId"),nonce:uG(G[1],"nonce"),gasPrice:X8(G[2],"gasPrice"),gasLimit:X8(G[3],"gasLimit"),to:XZ(G[4]),value:X8(G[5],"value"),data:C0(G[6]),accessList:dH(G[7],"accessList")};if(G.length===8)return X;return nH(X,G.slice(8)),X}function Ts(W,G){let X=[g1(W.chainId,"chainId"),g1(W.nonce,"nonce"),g1(W.gasPrice||0,"gasPrice"),g1(W.gasLimit,"gasLimit"),W.to||"0x",g1(W.value,"value"),W.data,oH(W.accessList||[])];if(G)X.push(g1(G.yParity,"recoveryParam")),X.push(Q8(G.r)),X.push(Q8(G.s));return a1(["0x01",R5(X)])}function Ps(W){let G=t6(R0(W).slice(1)),X="3",Y=null;if(G.length===4&&Array.isArray(G[0])){X="3 (network format)";let V=G[1],Q=G[2],J=G[3];s(Array.isArray(V),"invalid network format: blobs not an array","fields[1]",V),s(Array.isArray(Q),"invalid network format: commitments not an array","fields[2]",Q),s(Array.isArray(J),"invalid network format: proofs not an array","fields[3]",J),s(V.length===Q.length,"invalid network format: blobs/commitments length mismatch","fields",G),s(V.length===J.length,"invalid network format: blobs/proofs length mismatch","fields",G),Y=[];for(let U=0;U<G[1].length;U++)Y.push({data:V[U],commitment:Q[U],proof:J[U]});G=G[0]}s(Array.isArray(G)&&(G.length===11||G.length===14),`invalid field count for transaction type: ${X}`,"data",C0(W));let Z={type:3,chainId:X8(G[0],"chainId"),nonce:uG(G[1],"nonce"),maxPriorityFeePerGas:X8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:X8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:X8(G[4],"gasLimit"),to:XZ(G[5]),value:X8(G[6],"value"),data:C0(G[7]),accessList:dH(G[8],"accessList"),maxFeePerBlobGas:X8(G[9],"maxFeePerBlobGas"),blobVersionedHashes:G[10]};if(Y)Z.blobs=Y;s(Z.to!=null,`invalid address for transaction type: ${X}`,"data",W),s(Array.isArray(Z.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",W);for(let V=0;V<Z.blobVersionedHashes.length;V++)s(T9(Z.blobVersionedHashes[V],32),`invalid blobVersionedHash at index ${V}: must be length 32`,"data",W);if(G.length===11)return Z;return nH(Z,G.slice(11)),Z}function Rs(W,G,X){let Y=[g1(W.chainId,"chainId"),g1(W.nonce,"nonce"),g1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),g1(W.maxFeePerGas||0,"maxFeePerGas"),g1(W.gasLimit,"gasLimit"),W.to||vK,g1(W.value,"value"),W.data,oH(W.accessList||[]),g1(W.maxFeePerBlobGas||0,"maxFeePerBlobGas"),js(W.blobVersionedHashes||[],"blobVersionedHashes")];if(G){if(Y.push(g1(G.yParity,"yParity")),Y.push(Q8(G.r)),Y.push(Q8(G.s)),X)return a1(["0x03",R5([Y,X.map((Z)=>Z.data),X.map((Z)=>Z.commitment),X.map((Z)=>Z.proof)])])}return a1(["0x03",R5(Y)])}function Ls(W){let G=t6(R0(W).slice(1));s(Array.isArray(G)&&(G.length===10||G.length===13),"invalid field count for transaction type: 4","data",C0(W));let X={type:4,chainId:X8(G[0],"chainId"),nonce:uG(G[1],"nonce"),maxPriorityFeePerGas:X8(G[2],"maxPriorityFeePerGas"),maxFeePerGas:X8(G[3],"maxFeePerGas"),gasPrice:null,gasLimit:X8(G[4],"gasLimit"),to:XZ(G[5]),value:X8(G[6],"value"),data:C0(G[7]),accessList:dH(G[8],"accessList"),authorizationList:Is(G[9],"authorizationList")};if(G.length===10)return X;return nH(X,G.slice(10)),X}function Bs(W,G){let X=[g1(W.chainId,"chainId"),g1(W.nonce,"nonce"),g1(W.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),g1(W.maxFeePerGas||0,"maxFeePerGas"),g1(W.gasLimit,"gasLimit"),W.to||"0x",g1(W.value,"value"),W.data,oH(W.accessList||[]),ws(W.authorizationList||[])];if(G)X.push(g1(G.yParity,"yParity")),X.push(Q8(G.r)),X.push(Q8(G.s));return a1(["0x04",R5(X)])}class a9{#W;#G;#X;#Y;#U;#q;#N;#H;#A;#z;#I;#w;#J;#V;#Z;#Q;#j;get type(){return this.#W}set type(W){switch(W){case null:this.#W=null;break;case 0:case"legacy":this.#W=0;break;case 1:case"berlin":case"eip-2930":this.#W=1;break;case 2:case"london":case"eip-1559":this.#W=2;break;case 3:case"cancun":case"eip-4844":this.#W=3;break;case 4:case"pectra":case"eip-7702":this.#W=4;break;default:s(!1,"unsupported transaction type","type",W)}}get typeName(){switch(this.type){case 0:return"legacy";case 1:return"eip-2930";case 2:return"eip-1559";case 3:return"eip-4844";case 4:return"eip-7702"}return null}get to(){let W=this.#G;if(W==null&&this.type===3)return vK;return W}set to(W){this.#G=W==null?null:b1(W)}get nonce(){return this.#Y}set nonce(W){this.#Y=n8(W,"value")}get gasLimit(){return this.#U}set gasLimit(W){this.#U=v1(W)}get gasPrice(){let W=this.#q;if(W==null&&(this.type===0||this.type===1))return i8;return W}set gasPrice(W){this.#q=W==null?null:v1(W,"gasPrice")}get maxPriorityFeePerGas(){let W=this.#N;if(W==null){if(this.type===2||this.type===3)return i8;return null}return W}set maxPriorityFeePerGas(W){this.#N=W==null?null:v1(W,"maxPriorityFeePerGas")}get maxFeePerGas(){let W=this.#H;if(W==null){if(this.type===2||this.type===3)return i8;return null}return W}set maxFeePerGas(W){this.#H=W==null?null:v1(W,"maxFeePerGas")}get data(){return this.#X}set data(W){this.#X=C0(W)}get value(){return this.#A}set value(W){this.#A=v1(W,"value")}get chainId(){return this.#z}set chainId(W){this.#z=v1(W)}get signature(){return this.#I||null}set signature(W){this.#I=W==null?null:I8.from(W)}get accessList(){let W=this.#w||null;if(W==null){if(this.type===1||this.type===2||this.type===3)return[];return null}return W}set accessList(W){this.#w=W==null?null:gG(W)}get authorizationList(){let W=this.#j||null;if(W==null){if(this.type===4)return[]}return W}set authorizationList(W){this.#j=W==null?null:W.map((G)=>W_(G))}get maxFeePerBlobGas(){let W=this.#J;if(W==null&&this.type===3)return i8;return W}set maxFeePerBlobGas(W){this.#J=W==null?null:v1(W,"maxFeePerBlobGas")}get blobVersionedHashes(){let W=this.#V;if(W==null&&this.type===3)return[];return W}set blobVersionedHashes(W){if(W!=null){s(Array.isArray(W),"blobVersionedHashes must be an Array","value",W),W=W.slice();for(let G=0;G<W.length;G++)s(T9(W[G],32),"invalid blobVersionedHash",`value[${G}]`,W[G])}this.#V=W}get blobs(){if(this.#Q==null)return null;return this.#Q.map((W)=>Object.assign({},W))}set blobs(W){if(W==null){this.#Q=null;return}let G=[],X=[];for(let Y=0;Y<W.length;Y++){let Z=W[Y];if(p7(Z)){t0(this.#Z,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let V=R0(Z);if(s(V.length<=fK,"blob is too large",`blobs[${Y}]`,Z),V.length!==fK){let U=new Uint8Array(fK);U.set(V),V=U}let Q=this.#Z.blobToKzgCommitment(V),J=C0(this.#Z.computeBlobKzgProof(V,Q));G.push({data:C0(V),commitment:C0(Q),proof:J}),X.push(G_(1,Q))}else{let V=C0(Z.commitment);G.push({data:C0(Z.data),commitment:V,proof:C0(Z.proof)}),X.push(G_(1,V))}}this.#Q=G,this.#V=X}get kzg(){return this.#Z}set kzg(W){if(W==null)this.#Z=null;else this.#Z=zs(W)}constructor(){this.#W=null,this.#G=null,this.#Y=0,this.#U=i8,this.#q=null,this.#N=null,this.#H=null,this.#X="0x",this.#A=i8,this.#z=i8,this.#I=null,this.#w=null,this.#J=null,this.#V=null,this.#Z=null,this.#Q=null,this.#j=null}get hash(){if(this.signature==null)return null;return G8(this.#O(!0,!1))}get unsignedHash(){return G8(this.unsignedSerialized)}get from(){if(this.signature==null)return null;return DJ(this.unsignedHash,this.signature)}get fromPublicKey(){if(this.signature==null)return null;return l8.recoverPublicKey(this.unsignedHash,this.signature)}isSigned(){return this.signature!=null}#O(W,G){t0(!W||this.signature!=null,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});let X=W?this.signature:null;switch(this.inferType()){case 0:return Ks(this,X);case 1:return Ts(this,X);case 2:return Ds(this,X);case 3:return Rs(this,X,G?this.blobs:null);case 4:return Bs(this,X)}t0(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get serialized(){return this.#O(!0,!0)}get unsignedSerialized(){return this.#O(!1,!1)}inferType(){let W=this.inferTypes();if(W.indexOf(2)>=0)return 2;return W.pop()}inferTypes(){let W=this.gasPrice!=null,G=this.maxFeePerGas!=null||this.maxPriorityFeePerGas!=null,X=this.accessList!=null,Y=this.#J!=null||this.#V;if(this.maxFeePerGas!=null&&this.maxPriorityFeePerGas!=null)t0(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this});t0(!G||this.type!==0&&this.type!==1,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),t0(this.type!==0||!X,"legacy transaction cannot have accessList","BAD_DATA",{value:this});let Z=[];if(this.type!=null)Z.push(this.type);else if(this.authorizationList&&this.authorizationList.length)Z.push(4);else if(G)Z.push(2);else if(W){if(Z.push(1),!X)Z.push(0)}else if(X)Z.push(1),Z.push(2);else if(Y&&this.to)Z.push(3);else Z.push(0),Z.push(1),Z.push(2),Z.push(3);return Z.sort(),Z}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}clone(){return a9.from(this)}toJSON(){let W=(G)=>{if(G==null)return null;return G.toString()};return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:W(this.gasLimit),gasPrice:W(this.gasPrice),maxPriorityFeePerGas:W(this.maxPriorityFeePerGas),maxFeePerGas:W(this.maxFeePerGas),value:W(this.value),chainId:W(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}static from(W){if(W==null)return new a9;if(typeof W==="string"){let X=R0(W);if(X[0]>=127)return a9.from(Os(X));switch(X[0]){case 1:return a9.from(Ms(X));case 2:return a9.from(Cs(X));case 3:return a9.from(Ps(X));case 4:return a9.from(Ls(X))}t0(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}let G=new a9;if(W.type!=null)G.type=W.type;if(W.to!=null)G.to=W.to;if(W.nonce!=null)G.nonce=W.nonce;if(W.gasLimit!=null)G.gasLimit=W.gasLimit;if(W.gasPrice!=null)G.gasPrice=W.gasPrice;if(W.maxPriorityFeePerGas!=null)G.maxPriorityFeePerGas=W.maxPriorityFeePerGas;if(W.maxFeePerGas!=null)G.maxFeePerGas=W.maxFeePerGas;if(W.maxFeePerBlobGas!=null)G.maxFeePerBlobGas=W.maxFeePerBlobGas;if(W.data!=null)G.data=W.data;if(W.value!=null)G.value=W.value;if(W.chainId!=null)G.chainId=W.chainId;if(W.signature!=null)G.signature=I8.from(W.signature);if(W.accessList!=null)G.accessList=W.accessList;if(W.authorizationList!=null)G.authorizationList=W.authorizationList;if(W.blobVersionedHashes!=null)G.blobVersionedHashes=W.blobVersionedHashes;if(W.kzg!=null)G.kzg=W.kzg;if(W.blobs!=null)G.blobs=W.blobs;if(W.hash!=null)s(G.isSigned(),"unsigned transaction cannot define '.hash'","tx",W),s(G.hash===W.hash,"hash mismatch","tx",W);if(W.from!=null)s(G.isSigned(),"unsigned transaction cannot define '.from'","tx",W),s(G.from.toLowerCase()===(W.from||"").toLowerCase(),"from mismatch","tx",W);return G}}function iH(W){return s(typeof W.address==="string","invalid address for hashAuthorization","auth.address",W),G8(a1(["0x05",R5([W.chainId!=null?Q8(W.chainId):"0x",b1(W.address),W.nonce!=null?Q8(W.nonce):"0x"])]))}function s4(W){return G8(P9(W))}function MJ(W){if(typeof W==="string")W=P9(W);return G8(a1([P9(gK),P9(String(W.length)),W]))}function rH(W,G){let X=MJ(W);return DJ(X,G)}var V_=new Uint8Array(32);V_.fill(0);var Es=BigInt(-1),Q_=BigInt(0),J_=BigInt(1),$s=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function Fs(W){let G=R0(W),X=G.length%32;if(X)return a1([G,V_.slice(X)]);return C0(G)}var Ss=Y7(J_,32),xs=Y7(Q_,32),X_={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},cK=["name","version","chainId","verifyingContract","salt"];function Y_(W){return function(G){return s(typeof G==="string",`invalid domain value for ${JSON.stringify(W)}`,`domain.${W}`,G),G}}var ks={name:Y_("name"),version:Y_("version"),chainId:function(W){let G=v1(W,"domain.chainId");if(s(G>=0,"invalid chain ID","domain.chainId",W),Number.isSafeInteger(G))return Number(G);return PH(G)},verifyingContract:function(W){try{return b1(W).toLowerCase()}catch(G){}s(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",W)},salt:function(W){let G=R0(W,"domain.salt");return s(G.length===32,'invalid domain value "salt"',"domain.salt",W),C0(G)}};function pK(W){{let G=W.match(/^(u?)int(\d+)$/);if(G){let X=G[1]==="",Y=parseInt(G[2]);s(Y%8===0&&Y!==0&&Y<=256&&G[2]===String(Y),"invalid numeric width","type",W);let Z=TH($s,X?Y-1:Y),V=X?(Z+J_)*Es:Q_;return function(Q){let J=v1(Q,"value");return s(J>=V&&J<=Z,`value out-of-bounds for ${W}`,"value",J),Y7(X?MH(J,256):J,32)}}}{let G=W.match(/^bytes(\d+)$/);if(G){let X=parseInt(G[1]);return s(X!==0&&X<=32&&G[1]===String(X),"invalid bytes width","type",W),function(Y){let Z=R0(Y);return s(Z.length===X,`invalid length for ${W}`,"value",Y),Fs(Y)}}}switch(W){case"address":return function(G){return q5(b1(G),32)};case"bool":return function(G){return!G?xs:Ss};case"bytes":return function(G){return G8(G)};case"string":return function(G){return s4(G)}}return null}function Z_(W,G){return`${W}(${G.map(({name:X,type:Y})=>Y+" "+X).join(",")})`}function aH(W){let G=W.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);if(G)return{base:G[1],index:G[2]+G[4],array:{base:G[1],prefix:G[1]+G[2],count:G[5]?parseInt(G[5]):-1}};return{base:W}}class E9{primaryType;#W;get types(){return JSON.parse(this.#W)}#G;#X;constructor(W){this.#G=new Map,this.#X=new Map;let G=new Map,X=new Map,Y=new Map,Z={};Object.keys(W).forEach((J)=>{Z[J]=W[J].map(({name:U,type:q})=>{let{base:N,index:A}=aH(q);if(N==="int"&&!W.int)N="int256";if(N==="uint"&&!W.uint)N="uint256";return{name:U,type:N+(A||"")}}),G.set(J,new Set),X.set(J,[]),Y.set(J,new Set)}),this.#W=JSON.stringify(Z);for(let J in Z){let U=new Set;for(let q of Z[J]){s(!U.has(q.name),`duplicate variable name ${JSON.stringify(q.name)} in ${JSON.stringify(J)}`,"types",W),U.add(q.name);let N=aH(q.type).base;if(s(N!==J,`circular type reference to ${JSON.stringify(N)}`,"types",W),pK(N))continue;s(X.has(N),`unknown type ${JSON.stringify(N)}`,"types",W),X.get(N).push(J),G.get(J).add(N)}}let V=Array.from(X.keys()).filter((J)=>X.get(J).length===0);s(V.length!==0,"missing primary type","types",W),s(V.length===1,`ambiguous primary types or unused types: ${V.map((J)=>JSON.stringify(J)).join(", ")}`,"types",W),V8(this,{primaryType:V[0]});function Q(J,U){s(!U.has(J),`circular type reference to ${JSON.stringify(J)}`,"types",W),U.add(J);for(let q of G.get(J)){if(!X.has(q))continue;Q(q,U);for(let N of U)Y.get(N).add(q)}U.delete(J)}Q(this.primaryType,new Set);for(let[J,U]of Y){let q=Array.from(U);q.sort(),this.#G.set(J,Z_(J,Z[J])+q.map((N)=>Z_(N,Z[N])).join(""))}}getEncoder(W){let G=this.#X.get(W);if(!G)G=this.#Y(W),this.#X.set(W,G);return G}#Y(W){{let Y=pK(W);if(Y)return Y}let G=aH(W).array;if(G){let Y=G.prefix,Z=this.getEncoder(Y);return(V)=>{s(G.count===-1||G.count===V.length,`array length mismatch; expected length ${G.count}`,"value",V);let Q=V.map(Z);if(this.#G.has(Y))Q=Q.map(G8);return G8(a1(Q))}}let X=this.types[W];if(X){let Y=s4(this.#G.get(W));return(Z)=>{let V=X.map(({name:Q,type:J})=>{let U=this.getEncoder(J)(Z[Q]);if(this.#G.has(J))return G8(U);return U});return V.unshift(Y),a1(V)}}s(!1,`unknown type: ${W}`,"type",W)}encodeType(W){let G=this.#G.get(W);return s(G,`unknown type: ${JSON.stringify(W)}`,"name",W),G}encodeData(W,G){return this.getEncoder(W)(G)}hashStruct(W,G){return G8(this.encodeData(W,G))}encode(W){return this.encodeData(this.primaryType,W)}hash(W){return this.hashStruct(this.primaryType,W)}_visit(W,G,X){if(pK(W))return X(W,G);let Y=aH(W).array;if(Y)return s(Y.count===-1||Y.count===G.length,`array length mismatch; expected length ${Y.count}`,"value",G),G.map((V)=>this._visit(Y.prefix,V,X));let Z=this.types[W];if(Z)return Z.reduce((V,{name:Q,type:J})=>{return V[Q]=this._visit(J,G[Q],X),V},{});s(!1,`unknown type: ${W}`,"type",W)}visit(W,G){return this._visit(this.primaryType,W,G)}static from(W){return new E9(W)}static getPrimaryType(W){return E9.from(W).primaryType}static hashStruct(W,G,X){return E9.from(G).hashStruct(W,X)}static hashDomain(W){let G=[];for(let X in W){if(W[X]==null)continue;let Y=X_[X];s(Y,`invalid typed-data domain key: ${JSON.stringify(X)}`,"domain",W),G.push({name:X,type:Y})}return G.sort((X,Y)=>{return cK.indexOf(X.name)-cK.indexOf(Y.name)}),E9.hashStruct("EIP712Domain",{EIP712Domain:G},W)}static encode(W,G,X){return a1(["0x1901",E9.hashDomain(W),E9.from(G).hash(X)])}static hash(W,G,X){return G8(E9.encode(W,G,X))}static async resolveNames(W,G,X,Y){W=Object.assign({},W);for(let Q in W)if(W[Q]==null)delete W[Q];let Z={};if(W.verifyingContract&&!T9(W.verifyingContract,20))Z[W.verifyingContract]="0x";let V=E9.from(G);V.visit(X,(Q,J)=>{if(Q==="address"&&!T9(J,20))Z[J]="0x";return J});for(let Q in Z)Z[Q]=await Y(Q);if(W.verifyingContract&&Z[W.verifyingContract])W.verifyingContract=Z[W.verifyingContract];return X=V.visit(X,(Q,J)=>{if(Q==="address"&&Z[J])return Z[J];return J}),{domain:W,value:X}}static getPayload(W,G,X){E9.hashDomain(W);let Y={},Z=[];cK.forEach((J)=>{let U=W[J];if(U==null)return;Y[J]=ks[J](U),Z.push({name:J,type:X_[J]})});let V=E9.from(G);G=V.types;let Q=Object.assign({},G);return s(Q.EIP712Domain==null,"types must not contain EIP712Domain type","types.EIP712Domain",G),Q.EIP712Domain=Z,V.encode(X),{types:Q,domain:Y,primaryType:V.primaryType,message:V.visit(X,(J,U)=>{if(J.match(/^bytes(\d*)/))return C0(R0(U));if(J.match(/^u?int/))return v1(U).toString();switch(J){case"address":return U.toLowerCase();case"bool":return!!U;case"string":return s(typeof U==="string","invalid string","value",U),U}s(!1,"unsupported type","type",J)})}}}var U_=BigInt(0);function lK(W){if(W==null)return null;return W}function r8(W){if(W==null)return null;return W.toString()}function TJ(W){let G={};if(W.to)G.to=W.to;if(W.from)G.from=W.from;if(W.data)G.data=C0(W.data);let X="chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/);for(let Z of X){if(!(Z in W)||W[Z]==null)continue;G[Z]=v1(W[Z],`request.${Z}`)}let Y="type,nonce".split(/,/);for(let Z of Y){if(!(Z in W)||W[Z]==null)continue;G[Z]=n8(W[Z],`request.${Z}`)}if(W.accessList)G.accessList=gG(W.accessList);if(W.authorizationList)G.authorizationList=W.authorizationList.slice();if("blockTag"in W)G.blockTag=W.blockTag;if("enableCcipRead"in W)G.enableCcipRead=!!W.enableCcipRead;if("customData"in W)G.customData=W.customData;if("blobVersionedHashes"in W&&W.blobVersionedHashes)G.blobVersionedHashes=W.blobVersionedHashes.slice();if("kzg"in W)G.kzg=W.kzg;if("blobs"in W&&W.blobs)G.blobs=W.blobs.map((Z)=>{if(p7(Z))return C0(Z);return Object.assign({},Z)});return G}class q_{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#W;constructor(W,G){this.#W=W.transactions.map((X)=>{if(typeof X!=="string")return new sH(X,G);return X}),V8(this,{provider:G,hash:lK(W.hash),number:W.number,timestamp:W.timestamp,parentHash:W.parentHash,parentBeaconBlockRoot:W.parentBeaconBlockRoot,nonce:W.nonce,difficulty:W.difficulty,gasLimit:W.gasLimit,gasUsed:W.gasUsed,blobGasUsed:W.blobGasUsed,excessBlobGas:W.excessBlobGas,miner:W.miner,prevRandao:lK(W.prevRandao),extraData:W.extraData,baseFeePerGas:lK(W.baseFeePerGas),stateRoot:W.stateRoot,receiptsRoot:W.receiptsRoot})}get transactions(){return this.#W.map((W)=>{if(typeof W==="string")return W;return W.hash})}get prefetchedTransactions(){let W=this.#W.slice();if(W.length===0)return[];return t0(typeof W[0]==="object","transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),W}toJSON(){let{baseFeePerGas:W,difficulty:G,extraData:X,gasLimit:Y,gasUsed:Z,hash:V,miner:Q,prevRandao:J,nonce:U,number:q,parentHash:N,parentBeaconBlockRoot:A,stateRoot:H,receiptsRoot:I,timestamp:w,transactions:C}=this;return{_type:"Block",baseFeePerGas:r8(W),difficulty:r8(G),extraData:X,gasLimit:r8(Y),gasUsed:r8(Z),blobGasUsed:r8(this.blobGasUsed),excessBlobGas:r8(this.excessBlobGas),hash:V,miner:Q,prevRandao:J,nonce:U,number:q,parentHash:N,timestamp:w,parentBeaconBlockRoot:A,stateRoot:H,receiptsRoot:I,transactions:C}}[Symbol.iterator](){let W=0,G=this.transactions;return{next:()=>{if(W<this.length)return{value:G[W++],done:!1};return{value:void 0,done:!0}}}}get length(){return this.#W.length}get date(){if(this.timestamp==null)return null;return new Date(this.timestamp*1000)}async getTransaction(W){let G=void 0;if(typeof W==="number")G=this.#W[W];else{let X=W.toLowerCase();for(let Y of this.#W)if(typeof Y==="string"){if(Y!==X)continue;G=Y;break}else{if(Y.hash!==X)continue;G=Y;break}}if(G==null)throw Error("no such tx");if(typeof G==="string")return await this.provider.getTransaction(G);else return G}getPrefetchedTransaction(W){let G=this.prefetchedTransactions;if(typeof W==="number")return G[W];W=W.toLowerCase();for(let X of G)if(X.hash===W)return X;s(!1,"no matching transaction","indexOrHash",W)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){if(!this.isMined())throw Error("");return vs(this)}}class dK{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor(W,G){this.provider=G;let X=Object.freeze(W.topics.slice());V8(this,{transactionHash:W.transactionHash,blockHash:W.blockHash,blockNumber:W.blockNumber,removed:W.removed,address:W.address,data:W.data,topics:X,index:W.index,transactionIndex:W.transactionIndex})}toJSON(){let{address:W,blockHash:G,blockNumber:X,data:Y,index:Z,removed:V,topics:Q,transactionHash:J,transactionIndex:U}=this;return{_type:"log",address:W,blockHash:G,blockNumber:X,data:Y,index:Z,removed:V,topics:Q,transactionHash:J,transactionIndex:U}}async getBlock(){let W=await this.provider.getBlock(this.blockHash);return t0(!!W,"failed to find transaction","UNKNOWN_ERROR",{}),W}async getTransaction(){let W=await this.provider.getTransaction(this.transactionHash);return t0(!!W,"failed to find transaction","UNKNOWN_ERROR",{}),W}async getTransactionReceipt(){let W=await this.provider.getTransactionReceipt(this.transactionHash);return t0(!!W,"failed to find transaction receipt","UNKNOWN_ERROR",{}),W}removedEvent(){return gs(this)}}class N_{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#W;constructor(W,G){this.#W=Object.freeze(W.logs.map((Y)=>{return new dK(Y,G)}));let X=U_;if(W.effectiveGasPrice!=null)X=W.effectiveGasPrice;else if(W.gasPrice!=null)X=W.gasPrice;V8(this,{provider:G,to:W.to,from:W.from,contractAddress:W.contractAddress,hash:W.hash,index:W.index,blockHash:W.blockHash,blockNumber:W.blockNumber,logsBloom:W.logsBloom,gasUsed:W.gasUsed,cumulativeGasUsed:W.cumulativeGasUsed,blobGasUsed:W.blobGasUsed,gasPrice:X,blobGasPrice:W.blobGasPrice,type:W.type,status:W.status,root:W.root})}get logs(){return this.#W}toJSON(){let{to:W,from:G,contractAddress:X,hash:Y,index:Z,blockHash:V,blockNumber:Q,logsBloom:J,logs:U,status:q,root:N}=this;return{_type:"TransactionReceipt",blockHash:V,blockNumber:Q,contractAddress:X,cumulativeGasUsed:r8(this.cumulativeGasUsed),from:G,gasPrice:r8(this.gasPrice),blobGasUsed:r8(this.blobGasUsed),blobGasPrice:r8(this.blobGasPrice),gasUsed:r8(this.gasUsed),hash:Y,index:Z,logs:U,logsBloom:J,root:N,status:q,to:W}}get length(){return this.logs.length}[Symbol.iterator](){let W=0;return{next:()=>{if(W<this.length)return{value:this.logs[W++],done:!1};return{value:void 0,done:!0}}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){let W=await this.provider.getBlock(this.blockHash);if(W==null)throw Error("TODO");return W}async getTransaction(){let W=await this.provider.getTransaction(this.hash);if(W==null)throw Error("TODO");return W}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return A_(this)}reorderedEvent(W){return t0(!W||W.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),H_(this,W)}}class sH{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;authorizationList;#W;constructor(W,G){this.provider=G,this.blockNumber=W.blockNumber!=null?W.blockNumber:null,this.blockHash=W.blockHash!=null?W.blockHash:null,this.hash=W.hash,this.index=W.index,this.type=W.type,this.from=W.from,this.to=W.to||null,this.gasLimit=W.gasLimit,this.nonce=W.nonce,this.data=W.data,this.value=W.value,this.gasPrice=W.gasPrice,this.maxPriorityFeePerGas=W.maxPriorityFeePerGas!=null?W.maxPriorityFeePerGas:null,this.maxFeePerGas=W.maxFeePerGas!=null?W.maxFeePerGas:null,this.maxFeePerBlobGas=W.maxFeePerBlobGas!=null?W.maxFeePerBlobGas:null,this.chainId=W.chainId,this.signature=W.signature,this.accessList=W.accessList!=null?W.accessList:null,this.blobVersionedHashes=W.blobVersionedHashes!=null?W.blobVersionedHashes:null,this.authorizationList=W.authorizationList!=null?W.authorizationList:null,this.#W=-1}toJSON(){let{blockNumber:W,blockHash:G,index:X,hash:Y,type:Z,to:V,from:Q,nonce:J,data:U,signature:q,accessList:N,blobVersionedHashes:A}=this;return{_type:"TransactionResponse",accessList:N,blockNumber:W,blockHash:G,blobVersionedHashes:A,chainId:r8(this.chainId),data:U,from:Q,gasLimit:r8(this.gasLimit),gasPrice:r8(this.gasPrice),hash:Y,maxFeePerGas:r8(this.maxFeePerGas),maxPriorityFeePerGas:r8(this.maxPriorityFeePerGas),maxFeePerBlobGas:r8(this.maxFeePerBlobGas),nonce:J,signature:q,to:V,index:X,type:Z,value:r8(this.value)}}async getBlock(){let W=this.blockNumber;if(W==null){let X=await this.getTransaction();if(X)W=X.blockNumber}if(W==null)return null;let G=this.provider.getBlock(W);if(G==null)throw Error("TODO");return G}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(this.blockNumber==null){let{tx:G,blockNumber:X}=await c7({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});if(G==null||G.blockNumber==null)return 0;return X-G.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(W,G){let X=W==null?1:W,Y=G==null?0:G,Z=this.#W,V=-1,Q=Z===-1?!0:!1,J=async()=>{if(Q)return null;let{blockNumber:A,nonce:H}=await c7({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(H<this.nonce){Z=A;return}if(Q)return null;let I=await this.getTransaction();if(I&&I.blockNumber!=null)return;if(V===-1){if(V=Z-3,V<this.#W)V=this.#W}while(V<=A){if(Q)return null;let w=await this.provider.getBlock(V,!0);if(w==null)return;for(let C of w)if(C===this.hash)return;for(let C=0;C<w.length;C++){let D=await w.getTransaction(C);if(D.from===this.from&&D.nonce===this.nonce){if(Q)return null;let x=await this.provider.getTransactionReceipt(D.hash);if(x==null)return;if(A-x.blockNumber+1<X)return;let h="replaced";if(D.data===this.data&&D.to===this.to&&D.value===this.value)h="repriced";else if(D.data==="0x"&&D.from===D.to&&D.value===U_)h="cancelled";t0(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:h==="replaced"||h==="cancelled",reason:h,replacement:D.replaceableTransaction(Z),hash:D.hash,receipt:x})}}V++}return},U=(A)=>{if(A==null||A.status!==0)return A;t0(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:A.to,from:A.from,data:""},receipt:A})},q=await this.provider.getTransactionReceipt(this.hash);if(X===0)return U(q);if(q){if(X===1||await q.confirmations()>=X)return U(q)}else if(await J(),X===0)return null;return await new Promise((A,H)=>{let I=[],w=()=>{I.forEach((D)=>D())};if(I.push(()=>{Q=!0}),Y>0){let D=setTimeout(()=>{w(),H(HJ("wait for transaction timeout","TIMEOUT"))},Y);I.push(()=>{clearTimeout(D)})}let C=async(D)=>{if(await D.confirmations()>=X){w();try{A(U(D))}catch(x){H(x)}}};if(I.push(()=>{this.provider.off(this.hash,C)}),this.provider.on(this.hash,C),Z>=0){let D=async()=>{try{await J()}catch(x){if(DH(x,"TRANSACTION_REPLACED")){w(),H(x);return}}if(!Q)this.provider.once("block",D)};I.push(()=>{this.provider.off("block",D)}),this.provider.once("block",D)}})}isMined(){return this.blockHash!=null}isLegacy(){return this.type===0}isBerlin(){return this.type===1}isLondon(){return this.type===2}isCancun(){return this.type===3}removedEvent(){return t0(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),A_(this)}reorderedEvent(W){return t0(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),t0(!W||W.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),H_(this,W)}replaceableTransaction(W){s(Number.isInteger(W)&&W>=0,"invalid startBlock","startBlock",W);let G=new sH(this,this.provider);return G.#W=W,G}}function vs(W){return{orphan:"drop-block",hash:W.hash,number:W.number}}function H_(W,G){return{orphan:"reorder-transaction",tx:W,other:G}}function A_(W){return{orphan:"drop-transaction",tx:W}}function gs(W){return{orphan:"drop-log",log:{transactionHash:W.transactionHash,blockHash:W.blockHash,blockNumber:W.blockNumber,address:W.address,data:W.data,topics:Object.freeze(W.topics.slice()),index:W.index}}}function hG(W,G){if(W.provider)return W.provider;t0(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:G})}async function z_(W,G){let X=TJ(G);if(X.to!=null)X.to=r4(X.to,W);if(X.from!=null){let Y=X.from;X.from=Promise.all([W.getAddress(),r4(Y,W)]).then(([Z,V])=>{return s(Z.toLowerCase()===V.toLowerCase(),"transaction from mismatch","tx.from",V),Z})}else X.from=W.getAddress();return await c7(X)}class PJ{provider;constructor(W){V8(this,{provider:W||null})}async getNonce(W){return hG(this,"getTransactionCount").getTransactionCount(await this.getAddress(),W)}async populateCall(W){return await z_(this,W)}async populateTransaction(W){let G=hG(this,"populateTransaction"),X=await z_(this,W);if(X.nonce==null)X.nonce=await this.getNonce("pending");if(X.gasLimit==null)X.gasLimit=await this.estimateGas(X);let Y=await this.provider.getNetwork();if(X.chainId!=null){let V=v1(X.chainId);s(V===Y.chainId,"transaction chainId mismatch","tx.chainId",W.chainId)}else X.chainId=Y.chainId;let Z=X.maxFeePerGas!=null||X.maxPriorityFeePerGas!=null;if(X.gasPrice!=null&&(X.type===2||Z))s(!1,"eip-1559 transaction do not support gasPrice","tx",W);else if((X.type===0||X.type===1)&&Z)s(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",W);if((X.type===2||X.type==null)&&(X.maxFeePerGas!=null&&X.maxPriorityFeePerGas!=null))X.type=2;else if(X.type===0||X.type===1){let V=await G.getFeeData();if(t0(V.gasPrice!=null,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),X.gasPrice==null)X.gasPrice=V.gasPrice}else{let V=await G.getFeeData();if(X.type==null)if(V.maxFeePerGas!=null&&V.maxPriorityFeePerGas!=null){if(X.authorizationList&&X.authorizationList.length)X.type=4;else X.type=2;if(X.gasPrice!=null){let Q=X.gasPrice;delete X.gasPrice,X.maxFeePerGas=Q,X.maxPriorityFeePerGas=Q}else{if(X.maxFeePerGas==null)X.maxFeePerGas=V.maxFeePerGas;if(X.maxPriorityFeePerGas==null)X.maxPriorityFeePerGas=V.maxPriorityFeePerGas}}else if(V.gasPrice!=null){if(t0(!Z,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),X.gasPrice==null)X.gasPrice=V.gasPrice;X.type=0}else t0(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else if(X.type===2||X.type===3||X.type===4){if(X.maxFeePerGas==null)X.maxFeePerGas=V.maxFeePerGas;if(X.maxPriorityFeePerGas==null)X.maxPriorityFeePerGas=V.maxPriorityFeePerGas}}return await c7(X)}async populateAuthorization(W){let G=Object.assign({},W);if(G.chainId==null)G.chainId=(await hG(this,"getNetwork").getNetwork()).chainId;if(G.nonce==null)G.nonce=await this.getNonce();return G}async estimateGas(W){return hG(this,"estimateGas").estimateGas(await this.populateCall(W))}async call(W){return hG(this,"call").call(await this.populateCall(W))}async resolveName(W){return await hG(this,"resolveName").resolveName(W)}async sendTransaction(W){let G=hG(this,"sendTransaction"),X=await this.populateTransaction(W);delete X.from;let Y=a9.from(X);return await G.broadcastTransaction(await this.signTransaction(Y))}authorize(W){t0(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}class RJ extends PJ{address;constructor(W,G){super(G);V8(this,{address:W})}async getAddress(){return this.address}connect(W){return new RJ(this.address,W)}#W(W,G){t0(!1,`VoidSigner cannot sign ${W}`,"UNSUPPORTED_OPERATION",{operation:G})}async signTransaction(W){this.#W("transactions","signTransaction")}async signMessage(W){this.#W("messages","signMessage")}async signTypedData(W,G,X){this.#W("typed-data","signTypedData")}}class bG extends PJ{address;#W;constructor(W,G){super(G);s(W&&typeof W.sign==="function","invalid private key","privateKey","[ REDACTED ]"),this.#W=W;let X=a4(this.signingKey.publicKey);V8(this,{address:X})}get signingKey(){return this.#W}get privateKey(){return this.signingKey.privateKey}async getAddress(){return this.address}connect(W){return new bG(this.#W,W)}async signTransaction(W){W=TJ(W);let{to:G,from:X}=await c7({to:W.to?r4(W.to,this):void 0,from:W.from?r4(W.from,this):void 0});if(G!=null)W.to=G;if(X!=null)W.from=X;if(W.from!=null)s(b1(W.from)===this.address,"transaction from address mismatch","tx.from",W.from),delete W.from;let Y=a9.from(W);return Y.signature=this.signingKey.sign(Y.unsignedHash),Y.serialized}async signMessage(W){return this.signMessageSync(W)}signMessageSync(W){return this.signingKey.sign(MJ(W)).serialized}authorizeSync(W){s(typeof W.address==="string","invalid address for authorizeSync","auth.address",W);let G=this.signingKey.sign(iH(W));return Object.assign({},{address:b1(W.address),nonce:v1(W.nonce||0),chainId:v1(W.chainId||0)},{signature:G})}async authorize(W){return W=Object.assign({},W,{address:await r4(W.address,this)}),this.authorizeSync(await this.populateAuthorization(W))}async signTypedData(W,G,X){let Y=await E9.resolveNames(W,G,X,async(Z)=>{t0(this.provider!=null,"cannot resolve ENS names without a provider","UNSUPPORTED_OPERATION",{operation:"resolveName",info:{name:Z}});let V=await this.provider.resolveName(Z);return t0(V!=null,"unconfigured ENS name","UNCONFIGURED_NAME",{value:Z}),V});return this.signingKey.sign(E9.hash(Y.domain,G,Y.value)).serialized}}var tH=" !#$%&'()*+,-./<=>?@[]^_`{|}~",us=/^[a-z]*$/i;function I_(W,G){let X=97;return W.reduce((Y,Z)=>{if(Z===G)X++;else if(Z.match(us))Y.push(String.fromCharCode(X)+Z);else X=97,Y.push(Z);return Y},[])}function hs(W,G){for(let Z=tH.length-1;Z>=0;Z--)W=W.split(tH[Z]).join(G.substring(2*Z,2*Z+2));let X=[],Y=W.replace(/(:|([0-9])|([A-Z][a-z]*))/g,(Z,V,Q,J)=>{if(Q)for(let U=parseInt(Q);U>=0;U--)X.push(";");else X.push(V.toLowerCase());return""});if(Y)throw Error(`leftovers: ${JSON.stringify(Y)}`);return I_(I_(X,";"),":")}function w_(W){return s(W[0]==="0","unsupported auwl data","data",W),hs(W.substring(1+2*tH.length),W.substring(1,1+2*tH.length))}class oK{locale;constructor(W){V8(this,{locale:W})}split(W){return W.toLowerCase().split(/\s+/g)}join(W){return W.join(" ")}}class nK extends oK{#W;#G;constructor(W,G,X){super(W);this.#W=G,this.#G=X,this.#X=null}get _data(){return this.#W}_decodeWords(){return w_(this.#W)}#X;#Y(){if(this.#X==null){let W=this._decodeWords();if(s4(W.join(`
|
|
250
|
+
`)+`
|
|
251
|
+
`)!==this.#G)throw Error(`BIP39 Wordlist for ${this.locale} FAILED`);this.#X=W}return this.#X}getWord(W){let G=this.#Y();return s(W>=0&&W<G.length,`invalid word index: ${W}`,"index",W),G[W]}getWordIndex(W){return this.#Y().indexOf(W)}}var bs="0erleonalorenseinceregesticitStanvetearctssi#ch2Athck&tneLl0And#Il.yLeOutO=S|S%b/ra@SurdU'0Ce[Cid|CountCu'Hie=IdOu,-Qui*Ro[TT]T%T*[Tu$0AptDD-tD*[Ju,M.UltV<)Vi)0Rob-0FairF%dRaid0A(EEntRee0Ead0MRRp%tS!_rmBumCoholErtI&LLeyLowMo,O}PhaReadySoT Ways0A>urAz(gOngOuntU'd0Aly,Ch%Ci|G G!GryIm$K!Noun)Nu$O` Sw T&naTiqueXietyY1ArtOlogyPe?P!Pro=Ril1ChCt-EaEnaGueMMedM%MyOundR<+Re,Ri=RowTTefa@Ti,Tw%k0KPe@SaultSetSi,SumeThma0H!>OmTa{T&dT.udeTra@0Ct]D.Gu,NtTh%ToTumn0Era+OcadoOid0AkeA*AyEsomeFulKw?d0Is:ByChel%C#D+GL<)Lc#y~MbooN<aNn RRelyRga(R*lSeS-SketTt!3A^AnAutyCau'ComeEfF%eG(Ha=H(dLie=LowLtN^Nef./TrayTt Twe&Y#d3Cyc!DKeNdOlogyRdR`Tt _{AdeAmeAnketA,EakE[IndOodO[omOu'UeUrUsh_rdAtDyIlMbNeNusOkO,Rd R(gRrowSsTtomUn)XY_{etA(AndA[A=EadEezeI{Id+IefIghtIngIskOccoliOk&OnzeOomO` OwnUsh2Bb!DdyD+tFf$oIldLbLkL!tNd!Nk Rd&Rg R,SS(e[SyTt Y Zz:Bba+B(B!CtusGeKe~LmM aMpNN$N)lNdyNn#NoeNvasNy#Pab!P.$Pta(RRb#RdRgoRpetRryRtSeShS(o/!Su$TT$ogT^Teg%yTt!UghtU'Ut]Ve3Il(gL yM|NsusNturyRe$Rta(_irAlkAmp]An+AosApt Ar+A'AtEapE{Ee'EfErryE,I{&IefIldIm}yOi)Oo'R#-U{!UnkUrn0G?Nnam#Rc!Tiz&TyVil_imApArifyAwAyE<ErkEv I{I|IffImbIn-IpO{OgO'O`OudOwnUbUmpU, Ut^_^A,C#utDeFfeeIlInL!@L%LumnMb(eMeMf%tM-Mm#Mp<yNc tNdu@NfirmNg*[N}@Nsid NtrolNv()OkOlPp PyR$ReRnR*@/Tt#U^UntryUp!Ur'Us(V Yo>_{Ad!AftAmA}AshAt AwlAzyEamEd.EekEwI{etImeIspIt-OpO[Ou^OwdUci$UelUi'Umb!Un^UshYY,$2BeLtu*PPbo?dRiousRr|Rta(R=Sh]/omTe3C!:DMa+MpN)Ng R(gShUght WnY3AlBa>BrisCadeCemb CideCl(eC%a>C*a'ErF&'F(eFyG*eLayLiv M<dMi'Ni$Nti,NyP?tP&dPos.P`PutyRi=ScribeS tSignSkSpair/royTailTe@VelopVi)Vo>3AgramAlAm#dAryCeE'lEtFf G.$Gn.yLemmaNn NosaurRe@RtSag*eScov Sea'ShSmi[S%d Splay/<)V tVideV%)Zzy5Ct%Cum|G~Lph(Ma(Na>NkeyN%OrSeUb!Ve_ftAg#AmaA,-AwEamE[IftIllInkIpI=OpUmY2CkMbNeR(g/T^Ty1Arf1Nam-:G G!RlyRnR`Sily/Sy1HoOlogyOnomy0GeItUca>1F%t0G1GhtTh 2BowD E@r-Eg<tEm|Eph<tEvat%I>Se0B?kBodyBra)Er+Ot]PloyPow Pty0Ab!A@DD![D%'EmyErgyF%)Ga+G(eH<)JoyLi,OughR-hRollSu*T Ti*TryVelope1Isode0U$Uip0AA'OdeOs]R%Upt0CapeSayS&)Ta>0Ern$H-s1Id&)IlOkeOl=1A@Amp!Ce[Ch<+C.eCludeCu'Ecu>Erci'Hau,Hib.I!I,ItOt-P<dPe@Pi*Pla(Po'P*[T&dTra0EEbrow:Br-CeCultyDeIntI`~L'MeMilyMousNNcyNtasyRmSh]TT$Th TigueUltV%.e3Atu*Bru?yD $EEdElMa!N)/iv$T^V W3B Ct]EldGu*LeLmLt N$NdNeNg NishReRmR,Sc$ShTT}[X_gAmeAshAtAv%EeIghtIpOatO{O%Ow UidUshY_mCusGIlLd~owOdOtR)Re,R+tRkRtu}RumRw?dSsil/ UndX_gi!AmeEqu|EshI&dIn+OgOntO,OwnOz&U.2ElNNnyRna)RyTu*:D+tInLaxy~ yMePRa+Rba+Rd&Rl-Rm|SSpTeTh U+Ze3N $NiusN*Nt!Nu(e/u*2O,0AntFtGg!Ng RaffeRlVe_dAn)A*A[IdeImp'ObeOomOryO=OwUe_tDde[LdOdO'RillaSpelSsipV nWn_bA)A(AntApeA[Av.yEatE&IdIefItOc yOupOwUnt_rdE[IdeIltIt?N3M:B.IrLfMm M, NdPpyRb%RdRshR=,TVeWkZ?d3AdAl`ArtAvyD+hogIght~oLmetLpNRo3Dd&Gh~NtPRe/%y5BbyCkeyLdLeLiday~owMeNeyOdPeRnRr%R'Sp.$/TelUrV 5BGeM<Mb!M%Nd*dNgryNtRd!RryRtSb<d3Brid:1EOn0EaEntifyLe2N%e4LLeg$L}[0A+Ita>M&'Mu}Pa@Po'Pro=Pul'0ChCludeComeC*a'DexD-a>Do%Du,ryF<tFl-tF%mHa!H .Iti$Je@JuryMa>N Noc|PutQuiryS<eSe@SideSpi*/$lTa@T e,ToVe,V.eVol=3On0L<dOla>Sue0Em1Ory:CketGu?RZz3AlousAns~yWel9BInKeUr}yY5D+I)MpNg!Ni%Nk/:Ng?oo3EnEpT^upY3CkDD}yNdNgdomSsTT^&TeTt&Wi4EeIfeO{Ow:BBelB%Dd DyKeMpNgua+PtopR+T T(UghUndryVaWWnWsu.Y Zy3Ad AfArnA=Ctu*FtGG$G&dIsu*M#NdNg`NsOp?dSs#Tt Vel3ArB tyBr?yC&'FeFtGhtKeMbM.NkOnQuid/Tt!VeZ?d5AdAnB, C$CkG-NelyNgOpTt yUdUn+VeY$5CkyGga+Mb N?N^Xury3R-s:Ch(eDG-G}tIdIlInJ%KeMm$NNa+Nda>NgoNs]Nu$P!Rb!R^Rg(R(eRketRria+SkSs/ T^T i$ThTrixTt XimumZe3AdowAnAsu*AtCh<-D$DiaLodyLtMb M%yNt]NuRcyR+R.RryShSsa+T$Thod3Dd!DnightLk~]M-NdNimumN%Nu>Rac!Rr%S ySs/akeXXedXtu*5Bi!DelDifyMM|N.%NkeyN, N`OnR$ReRn(gSqu.oTh T]T%Unta(U'VeVie5ChFf(LeLtiplySc!SeumShroomS-/Tu$3Self/ yTh:I=MePk(Rrow/yT]Tu*3ArCkEdGati=G!@I` PhewR=/TTw%kUtr$V WsXt3CeGht5B!I'M(eeOd!Rm$R`SeTab!TeTh(gTi)VelW5C!?Mb R'T:K0EyJe@Li+Scu*S =Ta(Vious0CurE<Tob 0Or1FF Fi)T&2L1Ay0DI=Ymp-0It0CeEI#L(eLy1EnEraIn]Po'T]1An+B.Ch?dD D(?yG<I|Ig($Ph<0Tr-h0H 0Tdo%T TputTside0AlEnEr0NN 0Yg&0/ 0O}:CtDd!GeIrLa)LmNdaNelN-N` P RadeR|RkRrotRtySsT^ThTi|TrolTt nU'VeYm|3A)AnutArAs<tL-<NN$tyNcilOp!Pp Rfe@Rm.Rs#T2O}OtoRa'Ys-$0AnoCn-Ctu*E)GGe#~LotNkO} Pe/olT^Zza_)A}tA,-A>AyEa'Ed+U{UgUn+2EmEtIntL?LeLi)NdNyOlPul?Rt]S.]Ssib!/TatoTt yV tyWd W _@i)Ai'Ed-tEf Epa*Es|EttyEv|I)IdeIm?yIntI%.yIs#Iva>IzeOb!mO)[Odu)Of.OgramOje@Omo>OofOp tyOsp O>@OudOvide2Bl-Dd(g~LpL'Mpk(N^PilPpyR^a'R.yRpo'R'ShTZz!3Ramid:99Al.yAntumArt E,]I{ItIzO>:Bb.Cco#CeCkD?DioIlInI'~yMpN^NdomN+PidReTeTh V&WZ%3AdyAlAs#BelBuildC$lCei=CipeC%dCyc!Du)F!@F%mFu'G]G*tGul?Je@LaxLea'LiefLyMa(Memb M(dMo=Nd NewNtOp&PairPeatPla)P%tQui*ScueSemb!Si,Sour)Sp#'SultTi*T*atTurnUn]Ve$ViewW?d2Y`m0BBb#CeChDeD+F!GhtGidNgOtPp!SkTu$V$V 5AdA,BotBu,CketM<)OfOkieOmSeTa>UghUndU>Y$5Bb DeGLeNNwayR$:DDd!D}[FeIlLadLm#L#LtLu>MeMp!NdTisfyToshiU)Usa+VeY1A!AnA*Att E}HemeHoolI&)I[%sOrp]OutRapRe&RiptRub1AAr^As#AtC#dC*tCt]Cur.yEdEkGm|Le@~M(?Ni%N'Nt&)RiesRvi)Ss]Tt!TupV&_dowAftAllowA*EdEllEriffIeldIftI}IpIv O{OeOotOpOrtOuld O=RimpRugUff!Y0Bl(gCkDeE+GhtGnL|Lk~yLv Mil?Mp!N)NgR&/ Tua>XZe1A>Et^IIllInIrtUll0AbAmEepEnd I)IdeIghtImOg<OtOwUsh0AllArtI!OkeOo`0A{AkeApIffOw0ApCc Ci$CkDaFtL?Ldi LidLut]L=Me#eNgOnRryRtUlUndUpUr)U`0A)A*Ati$AwnEakEci$EedEllEndH eI)Id IkeInIr.L.OilOns%O#OrtOtRayReadR(gY0Ua*UeezeUir*l_b!AdiumAffA+AirsAmpAndArtA>AyEakEelEmEpE*oI{IllIngO{Oma^O}OolOryO=Ra>gyReetRikeR#gRugg!Ud|UffUmb!Y!0Bje@Bm.BwayC)[ChDd&Ff G?G+,ItMm NNnyN'tP PplyP*meReRfa)R+Rpri'RroundR=ySpe@/a(1AllowAmpApArmE?EetIftImIngIt^Ord1MbolMptomRup/em:B!Ck!GIlL|LkNkPeR+tSk/eTtooXi3A^Am~NN<tNnisNtRm/Xt_nkAtEmeEnE%yE*EyIngIsOughtReeRi=RowUmbUnd 0CketDeG LtMb MeNyPRedSsueT!5A,BaccoDayDdl EGe` I!tK&MatoM%rowNeNgueNightOlO`PP-Pp!R^RnadoRtoi'SsT$Uri,W?dW WnY_{AdeAff-Ag-A(Ansf ApAshA=lAyEatEeEndI$IbeI{Igg ImIpOphyOub!U{UeUlyUmpetU,U`Y2BeIt]Mb!NaN}lRkeyRnRt!1El=EntyI)InI,O1PeP-$:5Ly5B*lla0Ab!Awa*C!Cov D DoFairFoldHappyIf%mIqueItIv 'KnownLo{TilUsu$Veil1Da>GradeHoldOnP Set1B<Ge0A+EEdEfulE![U$0Il.y:C<tCuumGueLidL!yL=NNishP%Rious/Ult3H-!L=tNd%Ntu*NueRbRifyRs]RyS'lT <3Ab!Br<tCiousCt%yDeoEw~a+Nta+Ol(Rtu$RusSaS.Su$T$Vid5C$I)IdLc<oLumeTeYa+:GeG#ItLk~LnutNtRfa*RmRri%ShSp/eT VeY3Al`Ap#ArA'lA` BDd(gEk&dIrdLcome/T_!AtEatEelEnE*IpIsp 0DeD`FeLd~NNdowNeNgNkNn Nt ReSdomSeShT}[5LfM<Nd OdOlRdRkRldRryR`_pE{E,!I,I>Ong::Rd3Ar~ow9UUngU`:3BraRo9NeO",ms="0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60",iK=null;class t4 extends nK{constructor(){super("en",bs,ms)}static wordlist(){if(iK==null)iK=new t4;return iK}}function j_(W){return(1<<W)-1<<8-W&255}function fs(W){return(1<<W)-1&255}function rK(W,G){if(oY("NFKD"),G==null)G=t4.wordlist();let X=G.split(W);s(X.length%3===0&&X.length>=12&&X.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");let Y=new Uint8Array(Math.ceil(11*X.length/8)),Z=0;for(let q=0;q<X.length;q++){let N=G.getWordIndex(X[q].normalize("NFKD"));s(N>=0,`invalid mnemonic word at index ${q}`,"mnemonic","[ REDACTED ]");for(let A=0;A<11;A++){if(N&1<<10-A)Y[Z>>3]|=1<<7-Z%8;Z++}}let V=32*X.length/3,Q=X.length/3,J=j_(Q),U=R0(L9(Y.slice(0,V/8)))[0]&J;return s(U===(Y[Y.length-1]&J),"invalid mnemonic checksum","mnemonic","[ REDACTED ]"),C0(Y.slice(0,V/8))}function aK(W,G){if(s(W.length%4===0&&W.length>=16&&W.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),G==null)G=t4.wordlist();let X=[0],Y=11;for(let Q=0;Q<W.length;Q++)if(Y>8)X[X.length-1]<<=8,X[X.length-1]|=W[Q],Y-=8;else X[X.length-1]<<=Y,X[X.length-1]|=W[Q]>>8-Y,X.push(W[Q]&fs(8-Y)),Y+=3;let Z=W.length/4,V=parseInt(L9(W).substring(2,4),16)&j_(Z);return X[X.length-1]<<=Z,X[X.length-1]|=V>>8-Z,G.join(X.map((Q)=>G.getWord(Q)))}var sK={};class e4{phrase;password;wordlist;entropy;constructor(W,G,X,Y,Z){if(Y==null)Y="";if(Z==null)Z=t4.wordlist();p4(W,sK,"Mnemonic"),V8(this,{phrase:X,password:Y,wordlist:Z,entropy:G})}computeSeed(){let W=P9("mnemonic"+this.password,"NFKD");return L5(P9(this.phrase,"NFKD"),W,2048,64,"sha512")}static fromPhrase(W,G,X){let Y=rK(W,X);return W=aK(R0(Y),X),new e4(sK,Y,W,G,X)}static fromEntropy(W,G,X){let Y=R0(W,"entropy"),Z=aK(Y,X);return new e4(sK,C0(Y),Z,G,X)}static entropyToPhrase(W,G){let X=R0(W,"entropy");return aK(X,G)}static phraseToEntropy(W,G){return rK(W,G)}static isValidMnemonic(W,G){try{return rK(W,G),!0}catch(X){}return!1}}/*! MIT License. Copyright 2015-2022 Richard Moore <me@ricmoo.com>. See LICENSE.txt. */var Z9=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},tK=function(W,G,X,Y,Z){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!Z)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!Z:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?Z.call(W,X):Z?Z.value=X:G.set(W,X),X},WA,F5,d7,cs={16:10,24:12,32:14},ps=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],$5=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,90,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],eH=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],ls=[3328402341,4168907908,4000806809,4135287693,4294111757,3597364157,3731845041,2445657428,1613770832,33620227,3462883241,1445669757,3892248089,3050821474,1303096294,3967186586,2412431941,528646813,2311702848,4202528135,4026202645,2992200171,2387036105,4226871307,1101901292,3017069671,1604494077,1169141738,597466303,1403299063,3832705686,2613100635,1974974402,3791519004,1033081774,1277568618,1815492186,2118074177,4126668546,2211236943,1748251740,1369810420,3521504564,4193382664,3799085459,2883115123,1647391059,706024767,134480908,2512897874,1176707941,2646852446,806885416,932615841,168101135,798661301,235341577,605164086,461406363,3756188221,3454790438,1311188841,2142417613,3933566367,302582043,495158174,1479289972,874125870,907746093,3698224818,3025820398,1537253627,2756858614,1983593293,3084310113,2108928974,1378429307,3722699582,1580150641,327451799,2790478837,3117535592,0,3253595436,1075847264,3825007647,2041688520,3059440621,3563743934,2378943302,1740553945,1916352843,2487896798,2555137236,2958579944,2244988746,3151024235,3320835882,1336584933,3992714006,2252555205,2588757463,1714631509,293963156,2319795663,3925473552,67240454,4269768577,2689618160,2017213508,631218106,1269344483,2723238387,1571005438,2151694528,93294474,1066570413,563977660,1882732616,4059428100,1673313503,2008463041,2950355573,1109467491,537923632,3858759450,4260623118,3218264685,2177748300,403442708,638784309,3287084079,3193921505,899127202,2286175436,773265209,2479146071,1437050866,4236148354,2050833735,3362022572,3126681063,840505643,3866325909,3227541664,427917720,2655997905,2749160575,1143087718,1412049534,999329963,193497219,2353415882,3354324521,1807268051,672404540,2816401017,3160301282,369822493,2916866934,3688947771,1681011286,1949973070,336202270,2454276571,201721354,1210328172,3093060836,2680341085,3184776046,1135389935,3294782118,965841320,831886756,3554993207,4068047243,3588745010,2345191491,1849112409,3664604599,26054028,2983581028,2622377682,1235855840,3630984372,2891339514,4092916743,3488279077,3395642799,4101667470,1202630377,268961816,1874508501,4034427016,1243948399,1546530418,941366308,1470539505,1941222599,2546386513,3421038627,2715671932,3899946140,1042226977,2521517021,1639824860,227249030,260737669,3765465232,2084453954,1907733956,3429263018,2420656344,100860677,4160157185,470683154,3261161891,1781871967,2924959737,1773779408,394692241,2579611992,974986535,664706745,3655459128,3958962195,731420851,571543859,3530123707,2849626480,126783113,865375399,765172662,1008606754,361203602,3387549984,2278477385,2857719295,1344809080,2782912378,59542671,1503764984,160008576,437062935,1707065306,3622233649,2218934982,3496503480,2185314755,697932208,1512910199,504303377,2075177163,2824099068,1841019862,739644986],ds=[2781242211,2230877308,2582542199,2381740923,234877682,3184946027,2984144751,1418839493,1348481072,50462977,2848876391,2102799147,434634494,1656084439,3863849899,2599188086,1167051466,2636087938,1082771913,2281340285,368048890,3954334041,3381544775,201060592,3963727277,1739838676,4250903202,3930435503,3206782108,4149453988,2531553906,1536934080,3262494647,484572669,2923271059,1783375398,1517041206,1098792767,49674231,1334037708,1550332980,4098991525,886171109,150598129,2481090929,1940642008,1398944049,1059722517,201851908,1385547719,1699095331,1587397571,674240536,2704774806,252314885,3039795866,151914247,908333586,2602270848,1038082786,651029483,1766729511,3447698098,2682942837,454166793,2652734339,1951935532,775166490,758520603,3000790638,4004797018,4217086112,4137964114,1299594043,1639438038,3464344499,2068982057,1054729187,1901997871,2534638724,4121318227,1757008337,0,750906861,1614815264,535035132,3363418545,3988151131,3201591914,1183697867,3647454910,1265776953,3734260298,3566750796,3903871064,1250283471,1807470800,717615087,3847203498,384695291,3313910595,3617213773,1432761139,2484176261,3481945413,283769337,100925954,2180939647,4037038160,1148730428,3123027871,3813386408,4087501137,4267549603,3229630528,2315620239,2906624658,3156319645,1215313976,82966005,3747855548,3245848246,1974459098,1665278241,807407632,451280895,251524083,1841287890,1283575245,337120268,891687699,801369324,3787349855,2721421207,3431482436,959321879,1469301956,4065699751,2197585534,1199193405,2898814052,3887750493,724703513,2514908019,2696962144,2551808385,3516813135,2141445340,1715741218,2119445034,2872807568,2198571144,3398190662,700968686,3547052216,1009259540,2041044702,3803995742,487983883,1991105499,1004265696,1449407026,1316239930,504629770,3683797321,168560134,1816667172,3837287516,1570751170,1857934291,4014189740,2797888098,2822345105,2754712981,936633572,2347923833,852879335,1133234376,1500395319,3084545389,2348912013,1689376213,3533459022,3762923945,3034082412,4205598294,133428468,634383082,2949277029,2398386810,3913789102,403703816,3580869306,2297460856,1867130149,1918643758,607656988,4049053350,3346248884,1368901318,600565992,2090982877,2632479860,557719327,3717614411,3697393085,2249034635,2232388234,2430627952,1115438654,3295786421,2865522278,3633334344,84280067,33027830,303828494,2747425121,1600795957,4188952407,3496589753,2434238086,1486471617,658119965,3106381470,953803233,334231800,3005978776,857870609,3151128937,1890179545,2298973838,2805175444,3056442267,574365214,2450884487,550103529,1233637070,4289353045,2018519080,2057691103,2399374476,4166623649,2148108681,387583245,3664101311,836232934,3330556482,3100665960,3280093505,2955516313,2002398509,287182607,3413881008,4238890068,3597515707,975967766],os=[1671808611,2089089148,2006576759,2072901243,4061003762,1807603307,1873927791,3310653893,810573872,16974337,1739181671,729634347,4263110654,3613570519,2883997099,1989864566,3393556426,2191335298,3376449993,2106063485,4195741690,1508618841,1204391495,4027317232,2917941677,3563566036,2734514082,2951366063,2629772188,2767672228,1922491506,3227229120,3082974647,4246528509,2477669779,644500518,911895606,1061256767,4144166391,3427763148,878471220,2784252325,3845444069,4043897329,1905517169,3631459288,827548209,356461077,67897348,3344078279,593839651,3277757891,405286936,2527147926,84871685,2595565466,118033927,305538066,2157648768,3795705826,3945188843,661212711,2999812018,1973414517,152769033,2208177539,745822252,439235610,455947803,1857215598,1525593178,2700827552,1391895634,994932283,3596728278,3016654259,695947817,3812548067,795958831,2224493444,1408607827,3513301457,0,3979133421,543178784,4229948412,2982705585,1542305371,1790891114,3410398667,3201918910,961245753,1256100938,1289001036,1491644504,3477767631,3496721360,4012557807,2867154858,4212583931,1137018435,1305975373,861234739,2241073541,1171229253,4178635257,33948674,2139225727,1357946960,1011120188,2679776671,2833468328,1374921297,2751356323,1086357568,2408187279,2460827538,2646352285,944271416,4110742005,3168756668,3066132406,3665145818,560153121,271589392,4279952895,4077846003,3530407890,3444343245,202643468,322250259,3962553324,1608629855,2543990167,1154254916,389623319,3294073796,2817676711,2122513534,1028094525,1689045092,1575467613,422261273,1939203699,1621147744,2174228865,1339137615,3699352540,577127458,712922154,2427141008,2290289544,1187679302,3995715566,3100863416,339486740,3732514782,1591917662,186455563,3681988059,3762019296,844522546,978220090,169743370,1239126601,101321734,611076132,1558493276,3260915650,3547250131,2901361580,1655096418,2443721105,2510565781,3828863972,2039214713,3878868455,3359869896,928607799,1840765549,2374762893,3580146133,1322425422,2850048425,1823791212,1459268694,4094161908,3928346602,1706019429,2056189050,2934523822,135794696,3134549946,2022240376,628050469,779246638,472135708,2800834470,3032970164,3327236038,3894660072,3715932637,1956440180,522272287,1272813131,3185336765,2340818315,2323976074,1888542832,1044544574,3049550261,1722469478,1222152264,50660867,4127324150,236067854,1638122081,895445557,1475980887,3117443513,2257655686,3243809217,489110045,2662934430,3778599393,4162055160,2561878936,288563729,1773916777,3648039385,2391345038,2493985684,2612407707,505560094,2274497927,3911240169,3460925390,1442818645,678973480,3749357023,2358182796,2717407649,2306869641,219617805,3218761151,3862026214,1120306242,1756942440,1103331905,2578459033,762796589,252780047,2966125488,1425844308,3151392187,372911126],ns=[1667474886,2088535288,2004326894,2071694838,4075949567,1802223062,1869591006,3318043793,808472672,16843522,1734846926,724270422,4278065639,3621216949,2880169549,1987484396,3402253711,2189597983,3385409673,2105378810,4210693615,1499065266,1195886990,4042263547,2913856577,3570689971,2728590687,2947541573,2627518243,2762274643,1920112356,3233831835,3082273397,4261223649,2475929149,640051788,909531756,1061110142,4160160501,3435941763,875846760,2779116625,3857003729,4059105529,1903268834,3638064043,825316194,353713962,67374088,3351728789,589522246,3284360861,404236336,2526454071,84217610,2593830191,117901582,303183396,2155911963,3806477791,3958056653,656894286,2998062463,1970642922,151591698,2206440989,741110872,437923380,454765878,1852748508,1515908788,2694904667,1381168804,993742198,3604373943,3014905469,690584402,3823320797,791638366,2223281939,1398011302,3520161977,0,3991743681,538992704,4244381667,2981218425,1532751286,1785380564,3419096717,3200178535,960056178,1246420628,1280103576,1482221744,3486468741,3503319995,4025428677,2863326543,4227536621,1128514950,1296947098,859002214,2240123921,1162203018,4193849577,33687044,2139062782,1347481760,1010582648,2678045221,2829640523,1364325282,2745433693,1077985408,2408548869,2459086143,2644360225,943212656,4126475505,3166494563,3065430391,3671750063,555836226,269496352,4294908645,4092792573,3537006015,3452783745,202118168,320025894,3974901699,1600119230,2543297077,1145359496,387397934,3301201811,2812801621,2122220284,1027426170,1684319432,1566435258,421079858,1936954854,1616945344,2172753945,1330631070,3705438115,572679748,707427924,2425400123,2290647819,1179044492,4008585671,3099120491,336870440,3739122087,1583276732,185277718,3688593069,3772791771,842159716,976899700,168435220,1229577106,101059084,606366792,1549591736,3267517855,3553849021,2897014595,1650632388,2442242105,2509612081,3840161747,2038008818,3890688725,3368567691,926374254,1835907034,2374863873,3587531953,1313788572,2846482505,1819063512,1448540844,4109633523,3941213647,1701162954,2054852340,2930698567,134748176,3132806511,2021165296,623210314,774795868,471606328,2795958615,3031746419,3334885783,3907527627,3722280097,1953799400,522133822,1263263126,3183336545,2341176845,2324333839,1886425312,1044267644,3048588401,1718004428,1212733584,50529542,4143317495,235803164,1633788866,892690282,1465383342,3115962473,2256965911,3250673817,488449850,2661202215,3789633753,4177007595,2560144171,286339874,1768537042,3654906025,2391705863,2492770099,2610673197,505291324,2273808917,3924369609,3469625735,1431699370,673740880,3755965093,2358021891,2711746649,2307489801,218961690,3217021541,3873845719,1111672452,1751693520,1094828930,2576986153,757954394,252645662,2964376443,1414855848,3149649517,370555436],is=[1374988112,2118214995,437757123,975658646,1001089995,530400753,2902087851,1273168787,540080725,2910219766,2295101073,4110568485,1340463100,3307916247,641025152,3043140495,3736164937,632953703,1172967064,1576976609,3274667266,2169303058,2370213795,1809054150,59727847,361929877,3211623147,2505202138,3569255213,1484005843,1239443753,2395588676,1975683434,4102977912,2572697195,666464733,3202437046,4035489047,3374361702,2110667444,1675577880,3843699074,2538681184,1649639237,2976151520,3144396420,4269907996,4178062228,1883793496,2403728665,2497604743,1383856311,2876494627,1917518562,3810496343,1716890410,3001755655,800440835,2261089178,3543599269,807962610,599762354,33778362,3977675356,2328828971,2809771154,4077384432,1315562145,1708848333,101039829,3509871135,3299278474,875451293,2733856160,92987698,2767645557,193195065,1080094634,1584504582,3178106961,1042385657,2531067453,3711829422,1306967366,2438237621,1908694277,67556463,1615861247,429456164,3602770327,2302690252,1742315127,2968011453,126454664,3877198648,2043211483,2709260871,2084704233,4169408201,0,159417987,841739592,504459436,1817866830,4245618683,260388950,1034867998,908933415,168810852,1750902305,2606453969,607530554,202008497,2472011535,3035535058,463180190,2160117071,1641816226,1517767529,470948374,3801332234,3231722213,1008918595,303765277,235474187,4069246893,766945465,337553864,1475418501,2943682380,4003061179,2743034109,4144047775,1551037884,1147550661,1543208500,2336434550,3408119516,3069049960,3102011747,3610369226,1113818384,328671808,2227573024,2236228733,3535486456,2935566865,3341394285,496906059,3702665459,226906860,2009195472,733156972,2842737049,294930682,1206477858,2835123396,2700099354,1451044056,573804783,2269728455,3644379585,2362090238,2564033334,2801107407,2776292904,3669462566,1068351396,742039012,1350078989,1784663195,1417561698,4136440770,2430122216,775550814,2193862645,2673705150,1775276924,1876241833,3475313331,3366754619,270040487,3902563182,3678124923,3441850377,1851332852,3969562369,2203032232,3868552805,2868897406,566021896,4011190502,3135740889,1248802510,3936291284,699432150,832877231,708780849,3332740144,899835584,1951317047,4236429990,3767586992,866637845,4043610186,1106041591,2144161806,395441711,1984812685,1139781709,3433712980,3835036895,2664543715,1282050075,3240894392,1181045119,2640243204,25965917,4203181171,4211818798,3009879386,2463879762,3910161971,1842759443,2597806476,933301370,1509430414,3943906441,3467192302,3076639029,3776767469,2051518780,2631065433,1441952575,404016761,1942435775,1408749034,1610459739,3745345300,2017778566,3400528769,3110650942,941896748,3265478751,371049330,3168937228,675039627,4279080257,967311729,135050206,3635733660,1683407248,2076935265,3576870512,1215061108,3501741890],rs=[1347548327,1400783205,3273267108,2520393566,3409685355,4045380933,2880240216,2471224067,1428173050,4138563181,2441661558,636813900,4233094615,3620022987,2149987652,2411029155,1239331162,1730525723,2554718734,3781033664,46346101,310463728,2743944855,3328955385,3875770207,2501218972,3955191162,3667219033,768917123,3545789473,692707433,1150208456,1786102409,2029293177,1805211710,3710368113,3065962831,401639597,1724457132,3028143674,409198410,2196052529,1620529459,1164071807,3769721975,2226875310,486441376,2499348523,1483753576,428819965,2274680428,3075636216,598438867,3799141122,1474502543,711349675,129166120,53458370,2592523643,2782082824,4063242375,2988687269,3120694122,1559041666,730517276,2460449204,4042459122,2706270690,3446004468,3573941694,533804130,2328143614,2637442643,2695033685,839224033,1973745387,957055980,2856345839,106852767,1371368976,4181598602,1033297158,2933734917,1179510461,3046200461,91341917,1862534868,4284502037,605657339,2547432937,3431546947,2003294622,3182487618,2282195339,954669403,3682191598,1201765386,3917234703,3388507166,0,2198438022,1211247597,2887651696,1315723890,4227665663,1443857720,507358933,657861945,1678381017,560487590,3516619604,975451694,2970356327,261314535,3535072918,2652609425,1333838021,2724322336,1767536459,370938394,182621114,3854606378,1128014560,487725847,185469197,2918353863,3106780840,3356761769,2237133081,1286567175,3152976349,4255350624,2683765030,3160175349,3309594171,878443390,1988838185,3704300486,1756818940,1673061617,3403100636,272786309,1075025698,545572369,2105887268,4174560061,296679730,1841768865,1260232239,4091327024,3960309330,3497509347,1814803222,2578018489,4195456072,575138148,3299409036,446754879,3629546796,4011996048,3347532110,3252238545,4270639778,915985419,3483825537,681933534,651868046,2755636671,3828103837,223377554,2607439820,1649704518,3270937875,3901806776,1580087799,4118987695,3198115200,2087309459,2842678573,3016697106,1003007129,2802849917,1860738147,2077965243,164439672,4100872472,32283319,2827177882,1709610350,2125135846,136428751,3874428392,3652904859,3460984630,3572145929,3593056380,2939266226,824852259,818324884,3224740454,930369212,2801566410,2967507152,355706840,1257309336,4148292826,243256656,790073846,2373340630,1296297904,1422699085,3756299780,3818836405,457992840,3099667487,2135319889,77422314,1560382517,1945798516,788204353,1521706781,1385356242,870912086,325965383,2358957921,2050466060,2388260884,2313884476,4006521127,901210569,3990953189,1014646705,1503449823,1062597235,2031621326,3212035895,3931371469,1533017514,350174575,2256028891,2177544179,1052338372,741876788,1606591296,1914052035,213705253,2334669897,1107234197,1899603969,3725069491,2631447780,2422494913,1635502980,1893020342,1950903388,1120974935],as=[2807058932,1699970625,2764249623,1586903591,1808481195,1173430173,1487645946,59984867,4199882800,1844882806,1989249228,1277555970,3623636965,3419915562,1149249077,2744104290,1514790577,459744698,244860394,3235995134,1963115311,4027744588,2544078150,4190530515,1608975247,2627016082,2062270317,1507497298,2200818878,567498868,1764313568,3359936201,2305455554,2037970062,1047239000,1910319033,1337376481,2904027272,2892417312,984907214,1243112415,830661914,861968209,2135253587,2011214180,2927934315,2686254721,731183368,1750626376,4246310725,1820824798,4172763771,3542330227,48394827,2404901663,2871682645,671593195,3254988725,2073724613,145085239,2280796200,2779915199,1790575107,2187128086,472615631,3029510009,4075877127,3802222185,4107101658,3201631749,1646252340,4270507174,1402811438,1436590835,3778151818,3950355702,3963161475,4020912224,2667994737,273792366,2331590177,104699613,95345982,3175501286,2377486676,1560637892,3564045318,369057872,4213447064,3919042237,1137477952,2658625497,1119727848,2340947849,1530455833,4007360968,172466556,266959938,516552836,0,2256734592,3980931627,1890328081,1917742170,4294704398,945164165,3575528878,958871085,3647212047,2787207260,1423022939,775562294,1739656202,3876557655,2530391278,2443058075,3310321856,547512796,1265195639,437656594,3121275539,719700128,3762502690,387781147,218828297,3350065803,2830708150,2848461854,428169201,122466165,3720081049,1627235199,648017665,4122762354,1002783846,2117360635,695634755,3336358691,4234721005,4049844452,3704280881,2232435299,574624663,287343814,612205898,1039717051,840019705,2708326185,793451934,821288114,1391201670,3822090177,376187827,3113855344,1224348052,1679968233,2361698556,1058709744,752375421,2431590963,1321699145,3519142200,2734591178,188127444,2177869557,3727205754,2384911031,3215212461,2648976442,2450346104,3432737375,1180849278,331544205,3102249176,4150144569,2952102595,2159976285,2474404304,766078933,313773861,2570832044,2108100632,1668212892,3145456443,2013908262,418672217,3070356634,2594734927,1852171925,3867060991,3473416636,3907448597,2614737639,919489135,164948639,2094410160,2997825956,590424639,2486224549,1723872674,3157750862,3399941250,3501252752,3625268135,2555048196,3673637356,1343127501,4130281361,3599595085,2957853679,1297403050,81781910,3051593425,2283490410,532201772,1367295589,3926170974,895287692,1953757831,1093597963,492483431,3528626907,1446242576,1192455638,1636604631,209336225,344873464,1015671571,669961897,3375740769,3857572124,2973530695,3747192018,1933530610,3464042516,935293895,3454686199,2858115069,1863638845,3683022916,4085369519,3292445032,875313188,1080017571,3279033885,621591778,1233856572,2504130317,24197544,3017672716,3835484340,3247465558,2220981195,3060847922,1551124588,1463996600],ss=[4104605777,1097159550,396673818,660510266,2875968315,2638606623,4200115116,3808662347,821712160,1986918061,3430322568,38544885,3856137295,718002117,893681702,1654886325,2975484382,3122358053,3926825029,4274053469,796197571,1290801793,1184342925,3556361835,2405426947,2459735317,1836772287,1381620373,3196267988,1948373848,3764988233,3385345166,3263785589,2390325492,1480485785,3111247143,3780097726,2293045232,548169417,3459953789,3746175075,439452389,1362321559,1400849762,1685577905,1806599355,2174754046,137073913,1214797936,1174215055,3731654548,2079897426,1943217067,1258480242,529487843,1437280870,3945269170,3049390895,3313212038,923313619,679998000,3215307299,57326082,377642221,3474729866,2041877159,133361907,1776460110,3673476453,96392454,878845905,2801699524,777231668,4082475170,2330014213,4142626212,2213296395,1626319424,1906247262,1846563261,562755902,3708173718,1040559837,3871163981,1418573201,3294430577,114585348,1343618912,2566595609,3186202582,1078185097,3651041127,3896688048,2307622919,425408743,3371096953,2081048481,1108339068,2216610296,0,2156299017,736970802,292596766,1517440620,251657213,2235061775,2933202493,758720310,265905162,1554391400,1532285339,908999204,174567692,1474760595,4002861748,2610011675,3234156416,3693126241,2001430874,303699484,2478443234,2687165888,585122620,454499602,151849742,2345119218,3064510765,514443284,4044981591,1963412655,2581445614,2137062819,19308535,1928707164,1715193156,4219352155,1126790795,600235211,3992742070,3841024952,836553431,1669664834,2535604243,3323011204,1243905413,3141400786,4180808110,698445255,2653899549,2989552604,2253581325,3252932727,3004591147,1891211689,2487810577,3915653703,4237083816,4030667424,2100090966,865136418,1229899655,953270745,3399679628,3557504664,4118925222,2061379749,3079546586,2915017791,983426092,2022837584,1607244650,2118541908,2366882550,3635996816,972512814,3283088770,1568718495,3499326569,3576539503,621982671,2895723464,410887952,2623762152,1002142683,645401037,1494807662,2595684844,1335535747,2507040230,4293295786,3167684641,367585007,3885750714,1865862730,2668221674,2960971305,2763173681,1059270954,2777952454,2724642869,1320957812,2194319100,2429595872,2815956275,77089521,3973773121,3444575871,2448830231,1305906550,4021308739,2857194700,2516901860,3518358430,1787304780,740276417,1699839814,1592394909,2352307457,2272556026,188821243,1729977011,3687994002,274084841,3594982253,3613494426,2701949495,4162096729,322734571,2837966542,1640576439,484830689,1202797690,3537852828,4067639125,349075736,3342319475,4157467219,4255800159,1030690015,1155237496,2951971274,1757691577,607398968,2738905026,499347990,3794078908,1011452712,227885567,2818666809,213114376,3034881240,1455525988,3414450555,850817237,1817998408,3092726480],ts=[0,235474187,470948374,303765277,941896748,908933415,607530554,708780849,1883793496,2118214995,1817866830,1649639237,1215061108,1181045119,1417561698,1517767529,3767586992,4003061179,4236429990,4069246893,3635733660,3602770327,3299278474,3400528769,2430122216,2664543715,2362090238,2193862645,2835123396,2801107407,3035535058,3135740889,3678124923,3576870512,3341394285,3374361702,3810496343,3977675356,4279080257,4043610186,2876494627,2776292904,3076639029,3110650942,2472011535,2640243204,2403728665,2169303058,1001089995,899835584,666464733,699432150,59727847,226906860,530400753,294930682,1273168787,1172967064,1475418501,1509430414,1942435775,2110667444,1876241833,1641816226,2910219766,2743034109,2976151520,3211623147,2505202138,2606453969,2302690252,2269728455,3711829422,3543599269,3240894392,3475313331,3843699074,3943906441,4178062228,4144047775,1306967366,1139781709,1374988112,1610459739,1975683434,2076935265,1775276924,1742315127,1034867998,866637845,566021896,800440835,92987698,193195065,429456164,395441711,1984812685,2017778566,1784663195,1683407248,1315562145,1080094634,1383856311,1551037884,101039829,135050206,437757123,337553864,1042385657,807962610,573804783,742039012,2531067453,2564033334,2328828971,2227573024,2935566865,2700099354,3001755655,3168937228,3868552805,3902563182,4203181171,4102977912,3736164937,3501741890,3265478751,3433712980,1106041591,1340463100,1576976609,1408749034,2043211483,2009195472,1708848333,1809054150,832877231,1068351396,766945465,599762354,159417987,126454664,361929877,463180190,2709260871,2943682380,3178106961,3009879386,2572697195,2538681184,2236228733,2336434550,3509871135,3745345300,3441850377,3274667266,3910161971,3877198648,4110568485,4211818798,2597806476,2497604743,2261089178,2295101073,2733856160,2902087851,3202437046,2968011453,3936291284,3835036895,4136440770,4169408201,3535486456,3702665459,3467192302,3231722213,2051518780,1951317047,1716890410,1750902305,1113818384,1282050075,1584504582,1350078989,168810852,67556463,371049330,404016761,841739592,1008918595,775550814,540080725,3969562369,3801332234,4035489047,4269907996,3569255213,3669462566,3366754619,3332740144,2631065433,2463879762,2160117071,2395588676,2767645557,2868897406,3102011747,3069049960,202008497,33778362,270040487,504459436,875451293,975658646,675039627,641025152,2084704233,1917518562,1615861247,1851332852,1147550661,1248802510,1484005843,1451044056,933301370,967311729,733156972,632953703,260388950,25965917,328671808,496906059,1206477858,1239443753,1543208500,1441952575,2144161806,1908694277,1675577880,1842759443,3610369226,3644379585,3408119516,3307916247,4011190502,3776767469,4077384432,4245618683,2809771154,2842737049,3144396420,3043140495,2673705150,2438237621,2203032232,2370213795],es=[0,185469197,370938394,487725847,741876788,657861945,975451694,824852259,1483753576,1400783205,1315723890,1164071807,1950903388,2135319889,1649704518,1767536459,2967507152,3152976349,2801566410,2918353863,2631447780,2547432937,2328143614,2177544179,3901806776,3818836405,4270639778,4118987695,3299409036,3483825537,3535072918,3652904859,2077965243,1893020342,1841768865,1724457132,1474502543,1559041666,1107234197,1257309336,598438867,681933534,901210569,1052338372,261314535,77422314,428819965,310463728,3409685355,3224740454,3710368113,3593056380,3875770207,3960309330,4045380933,4195456072,2471224067,2554718734,2237133081,2388260884,3212035895,3028143674,2842678573,2724322336,4138563181,4255350624,3769721975,3955191162,3667219033,3516619604,3431546947,3347532110,2933734917,2782082824,3099667487,3016697106,2196052529,2313884476,2499348523,2683765030,1179510461,1296297904,1347548327,1533017514,1786102409,1635502980,2087309459,2003294622,507358933,355706840,136428751,53458370,839224033,957055980,605657339,790073846,2373340630,2256028891,2607439820,2422494913,2706270690,2856345839,3075636216,3160175349,3573941694,3725069491,3273267108,3356761769,4181598602,4063242375,4011996048,3828103837,1033297158,915985419,730517276,545572369,296679730,446754879,129166120,213705253,1709610350,1860738147,1945798516,2029293177,1239331162,1120974935,1606591296,1422699085,4148292826,4233094615,3781033664,3931371469,3682191598,3497509347,3446004468,3328955385,2939266226,2755636671,3106780840,2988687269,2198438022,2282195339,2501218972,2652609425,1201765386,1286567175,1371368976,1521706781,1805211710,1620529459,2105887268,1988838185,533804130,350174575,164439672,46346101,870912086,954669403,636813900,788204353,2358957921,2274680428,2592523643,2441661558,2695033685,2880240216,3065962831,3182487618,3572145929,3756299780,3270937875,3388507166,4174560061,4091327024,4006521127,3854606378,1014646705,930369212,711349675,560487590,272786309,457992840,106852767,223377554,1678381017,1862534868,1914052035,2031621326,1211247597,1128014560,1580087799,1428173050,32283319,182621114,401639597,486441376,768917123,651868046,1003007129,818324884,1503449823,1385356242,1333838021,1150208456,1973745387,2125135846,1673061617,1756818940,2970356327,3120694122,2802849917,2887651696,2637442643,2520393566,2334669897,2149987652,3917234703,3799141122,4284502037,4100872472,3309594171,3460984630,3545789473,3629546796,2050466060,1899603969,1814803222,1730525723,1443857720,1560382517,1075025698,1260232239,575138148,692707433,878443390,1062597235,243256656,91341917,409198410,325965383,3403100636,3252238545,3704300486,3620022987,3874428392,3990953189,4042459122,4227665663,2460449204,2578018489,2226875310,2411029155,3198115200,3046200461,2827177882,2743944855],Wt=[0,218828297,437656594,387781147,875313188,958871085,775562294,590424639,1750626376,1699970625,1917742170,2135253587,1551124588,1367295589,1180849278,1265195639,3501252752,3720081049,3399941250,3350065803,3835484340,3919042237,4270507174,4085369519,3102249176,3051593425,2734591178,2952102595,2361698556,2177869557,2530391278,2614737639,3145456443,3060847922,2708326185,2892417312,2404901663,2187128086,2504130317,2555048196,3542330227,3727205754,3375740769,3292445032,3876557655,3926170974,4246310725,4027744588,1808481195,1723872674,1910319033,2094410160,1608975247,1391201670,1173430173,1224348052,59984867,244860394,428169201,344873464,935293895,984907214,766078933,547512796,1844882806,1627235199,2011214180,2062270317,1507497298,1423022939,1137477952,1321699145,95345982,145085239,532201772,313773861,830661914,1015671571,731183368,648017665,3175501286,2957853679,2807058932,2858115069,2305455554,2220981195,2474404304,2658625497,3575528878,3625268135,3473416636,3254988725,3778151818,3963161475,4213447064,4130281361,3599595085,3683022916,3432737375,3247465558,3802222185,4020912224,4172763771,4122762354,3201631749,3017672716,2764249623,2848461854,2331590177,2280796200,2431590963,2648976442,104699613,188127444,472615631,287343814,840019705,1058709744,671593195,621591778,1852171925,1668212892,1953757831,2037970062,1514790577,1463996600,1080017571,1297403050,3673637356,3623636965,3235995134,3454686199,4007360968,3822090177,4107101658,4190530515,2997825956,3215212461,2830708150,2779915199,2256734592,2340947849,2627016082,2443058075,172466556,122466165,273792366,492483431,1047239000,861968209,612205898,695634755,1646252340,1863638845,2013908262,1963115311,1446242576,1530455833,1277555970,1093597963,1636604631,1820824798,2073724613,1989249228,1436590835,1487645946,1337376481,1119727848,164948639,81781910,331544205,516552836,1039717051,821288114,669961897,719700128,2973530695,3157750862,2871682645,2787207260,2232435299,2283490410,2667994737,2450346104,3647212047,3564045318,3279033885,3464042516,3980931627,3762502690,4150144569,4199882800,3070356634,3121275539,2904027272,2686254721,2200818878,2384911031,2570832044,2486224549,3747192018,3528626907,3310321856,3359936201,3950355702,3867060991,4049844452,4234721005,1739656202,1790575107,2108100632,1890328081,1402811438,1586903591,1233856572,1149249077,266959938,48394827,369057872,418672217,1002783846,919489135,567498868,752375421,209336225,24197544,376187827,459744698,945164165,895287692,574624663,793451934,1679968233,1764313568,2117360635,1933530610,1343127501,1560637892,1243112415,1192455638,3704280881,3519142200,3336358691,3419915562,3907448597,3857572124,4075877127,4294704398,3029510009,3113855344,2927934315,2744104290,2159976285,2377486676,2594734927,2544078150],Gt=[0,151849742,303699484,454499602,607398968,758720310,908999204,1059270954,1214797936,1097159550,1517440620,1400849762,1817998408,1699839814,2118541908,2001430874,2429595872,2581445614,2194319100,2345119218,3034881240,3186202582,2801699524,2951971274,3635996816,3518358430,3399679628,3283088770,4237083816,4118925222,4002861748,3885750714,1002142683,850817237,698445255,548169417,529487843,377642221,227885567,77089521,1943217067,2061379749,1640576439,1757691577,1474760595,1592394909,1174215055,1290801793,2875968315,2724642869,3111247143,2960971305,2405426947,2253581325,2638606623,2487810577,3808662347,3926825029,4044981591,4162096729,3342319475,3459953789,3576539503,3693126241,1986918061,2137062819,1685577905,1836772287,1381620373,1532285339,1078185097,1229899655,1040559837,923313619,740276417,621982671,439452389,322734571,137073913,19308535,3871163981,4021308739,4104605777,4255800159,3263785589,3414450555,3499326569,3651041127,2933202493,2815956275,3167684641,3049390895,2330014213,2213296395,2566595609,2448830231,1305906550,1155237496,1607244650,1455525988,1776460110,1626319424,2079897426,1928707164,96392454,213114376,396673818,514443284,562755902,679998000,865136418,983426092,3708173718,3557504664,3474729866,3323011204,4180808110,4030667424,3945269170,3794078908,2507040230,2623762152,2272556026,2390325492,2975484382,3092726480,2738905026,2857194700,3973773121,3856137295,4274053469,4157467219,3371096953,3252932727,3673476453,3556361835,2763173681,2915017791,3064510765,3215307299,2156299017,2307622919,2459735317,2610011675,2081048481,1963412655,1846563261,1729977011,1480485785,1362321559,1243905413,1126790795,878845905,1030690015,645401037,796197571,274084841,425408743,38544885,188821243,3613494426,3731654548,3313212038,3430322568,4082475170,4200115116,3780097726,3896688048,2668221674,2516901860,2366882550,2216610296,3141400786,2989552604,2837966542,2687165888,1202797690,1320957812,1437280870,1554391400,1669664834,1787304780,1906247262,2022837584,265905162,114585348,499347990,349075736,736970802,585122620,972512814,821712160,2595684844,2478443234,2293045232,2174754046,3196267988,3079546586,2895723464,2777952454,3537852828,3687994002,3234156416,3385345166,4142626212,4293295786,3841024952,3992742070,174567692,57326082,410887952,292596766,777231668,660510266,1011452712,893681702,1108339068,1258480242,1343618912,1494807662,1715193156,1865862730,1948373848,2100090966,2701949495,2818666809,3004591147,3122358053,2235061775,2352307457,2535604243,2653899549,3915653703,3764988233,4219352155,4067639125,3444575871,3294430577,3746175075,3594982253,836553431,953270745,600235211,718002117,367585007,484830689,133361907,251657213,2041877159,1891211689,1806599355,1654886325,1568718495,1418573201,1335535747,1184342925];function eK(W){let G=[];for(let X=0;X<W.length;X+=4)G.push(W[X]<<24|W[X+1]<<16|W[X+2]<<8|W[X+3]);return G}class GA{get key(){return Z9(this,WA,"f").slice()}constructor(W){if(WA.set(this,void 0),F5.set(this,void 0),d7.set(this,void 0),!(this instanceof GA))throw Error("AES must be instanitated with `new`");tK(this,WA,new Uint8Array(W),"f");let G=cs[this.key.length];if(G==null)throw TypeError("invalid key size (must be 16, 24 or 32 bytes)");tK(this,d7,[],"f"),tK(this,F5,[],"f");for(let q=0;q<=G;q++)Z9(this,d7,"f").push([0,0,0,0]),Z9(this,F5,"f").push([0,0,0,0]);let X=(G+1)*4,Y=this.key.length/4,Z=eK(this.key),V;for(let q=0;q<Y;q++)V=q>>2,Z9(this,d7,"f")[V][q%4]=Z[q],Z9(this,F5,"f")[G-V][q%4]=Z[q];let Q=0,J=Y,U;while(J<X){if(U=Z[Y-1],Z[0]^=$5[U>>16&255]<<24^$5[U>>8&255]<<16^$5[U&255]<<8^$5[U>>24&255]^ps[Q]<<24,Q+=1,Y!=8)for(let H=1;H<Y;H++)Z[H]^=Z[H-1];else{for(let H=1;H<Y/2;H++)Z[H]^=Z[H-1];U=Z[Y/2-1],Z[Y/2]^=$5[U&255]^$5[U>>8&255]<<8^$5[U>>16&255]<<16^$5[U>>24&255]<<24;for(let H=Y/2+1;H<Y;H++)Z[H]^=Z[H-1]}let q=0,N,A;while(q<Y&&J<X)N=J>>2,A=J%4,Z9(this,d7,"f")[N][A]=Z[q],Z9(this,F5,"f")[G-N][A]=Z[q++],J++}for(let q=1;q<G;q++)for(let N=0;N<4;N++)U=Z9(this,F5,"f")[q][N],Z9(this,F5,"f")[q][N]=ts[U>>24&255]^es[U>>16&255]^Wt[U>>8&255]^Gt[U&255]}encrypt(W){if(W.length!=16)throw TypeError("invalid plaintext size (must be 16 bytes)");let G=Z9(this,d7,"f").length-1,X=[0,0,0,0],Y=eK(W);for(let Q=0;Q<4;Q++)Y[Q]^=Z9(this,d7,"f")[0][Q];for(let Q=1;Q<G;Q++){for(let J=0;J<4;J++)X[J]=ls[Y[J]>>24&255]^ds[Y[(J+1)%4]>>16&255]^os[Y[(J+2)%4]>>8&255]^ns[Y[(J+3)%4]&255]^Z9(this,d7,"f")[Q][J];Y=X.slice()}let Z=new Uint8Array(16),V=0;for(let Q=0;Q<4;Q++)V=Z9(this,d7,"f")[G][Q],Z[4*Q]=($5[Y[Q]>>24&255]^V>>24)&255,Z[4*Q+1]=($5[Y[(Q+1)%4]>>16&255]^V>>16)&255,Z[4*Q+2]=($5[Y[(Q+2)%4]>>8&255]^V>>8)&255,Z[4*Q+3]=($5[Y[(Q+3)%4]&255]^V)&255;return Z}decrypt(W){if(W.length!=16)throw TypeError("invalid ciphertext size (must be 16 bytes)");let G=Z9(this,F5,"f").length-1,X=[0,0,0,0],Y=eK(W);for(let Q=0;Q<4;Q++)Y[Q]^=Z9(this,F5,"f")[0][Q];for(let Q=1;Q<G;Q++){for(let J=0;J<4;J++)X[J]=is[Y[J]>>24&255]^rs[Y[(J+3)%4]>>16&255]^as[Y[(J+2)%4]>>8&255]^ss[Y[(J+1)%4]&255]^Z9(this,F5,"f")[Q][J];Y=X.slice()}let Z=new Uint8Array(16),V=0;for(let Q=0;Q<4;Q++)V=Z9(this,F5,"f")[G][Q],Z[4*Q]=(eH[Y[Q]>>24&255]^V>>24)&255,Z[4*Q+1]=(eH[Y[(Q+3)%4]>>16&255]^V>>16)&255,Z[4*Q+2]=(eH[Y[(Q+2)%4]>>8&255]^V>>8)&255,Z[4*Q+3]=(eH[Y[(Q+1)%4]&255]^V)&255;return Z}}WA=new WeakMap,F5=new WeakMap,d7=new WeakMap;class LJ{constructor(W,G,X){if(X&&!(this instanceof X))throw Error(`${W} must be instantiated with "new"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new GA(G)},name:{enumerable:!0,value:W}})}}var XA=function(W,G,X,Y,Z){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!Z)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!Z:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?Z.call(W,X):Z?Z.value=X:G.set(W,X),X},YZ=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},BJ,W6;class EJ extends LJ{constructor(W,G){super("ECC",W,EJ);if(BJ.set(this,void 0),W6.set(this,void 0),G){if(G.length%16)throw TypeError("invalid iv size (must be 16 bytes)");XA(this,BJ,new Uint8Array(G),"f")}else XA(this,BJ,new Uint8Array(16),"f");XA(this,W6,this.iv,"f")}get iv(){return new Uint8Array(YZ(this,BJ,"f"))}encrypt(W){if(W.length%16)throw TypeError("invalid plaintext size (must be multiple of 16 bytes)");let G=new Uint8Array(W.length);for(let X=0;X<W.length;X+=16){for(let Y=0;Y<16;Y++)YZ(this,W6,"f")[Y]^=W[X+Y];XA(this,W6,this.aes.encrypt(YZ(this,W6,"f")),"f"),G.set(YZ(this,W6,"f"),X)}return G}decrypt(W){if(W.length%16)throw TypeError("invalid ciphertext size (must be multiple of 16 bytes)");let G=new Uint8Array(W.length);for(let X=0;X<W.length;X+=16){let Y=this.aes.decrypt(W.subarray(X,X+16));for(let Z=0;Z<16;Z++)G[X+Z]=Y[Z]^YZ(this,W6,"f")[Z],YZ(this,W6,"f")[Z]=W[X+Z]}return G}}BJ=new WeakMap,W6=new WeakMap;var ZZ=function(W,G,X,Y,Z){if(Y==="m")throw TypeError("Private method is not writable");if(Y==="a"&&!Z)throw TypeError("Private accessor was defined without a setter");if(typeof G==="function"?W!==G||!Z:!G.has(W))throw TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?Z.call(W,X):Z?Z.value=X:G.set(W,X),X},S5=function(W,G,X,Y){if(X==="a"&&!Y)throw TypeError("Private accessor was defined without a getter");if(typeof G==="function"?W!==G||!Y:!G.has(W))throw TypeError("Cannot read private member from an object whose class did not declare it");return X==="m"?Y:X==="a"?Y.call(W):Y?Y.value:G.get(W)},$J,mG,x5;class JW extends LJ{constructor(W,G){super("CTR",W,JW);if($J.set(this,void 0),mG.set(this,void 0),x5.set(this,void 0),ZZ(this,x5,new Uint8Array(16),"f"),S5(this,x5,"f").fill(0),ZZ(this,$J,S5(this,x5,"f"),"f"),ZZ(this,mG,16,"f"),G==null)G=1;if(typeof G==="number")this.setCounterValue(G);else this.setCounterBytes(G)}get counter(){return new Uint8Array(S5(this,x5,"f"))}setCounterValue(W){if(!Number.isInteger(W)||W<0||W>Number.MAX_SAFE_INTEGER)throw TypeError("invalid counter initial integer value");for(let G=15;G>=0;--G)S5(this,x5,"f")[G]=W%256,W=Math.floor(W/256)}setCounterBytes(W){if(W.length!==16)throw TypeError("invalid counter initial Uint8Array value length");S5(this,x5,"f").set(W)}increment(){for(let W=15;W>=0;W--)if(S5(this,x5,"f")[W]===255)S5(this,x5,"f")[W]=0;else{S5(this,x5,"f")[W]++;break}}encrypt(W){var G,X;let Y=new Uint8Array(W);for(let Z=0;Z<Y.length;Z++){if(S5(this,mG,"f")===16)ZZ(this,$J,this.aes.encrypt(S5(this,x5,"f")),"f"),ZZ(this,mG,0,"f"),this.increment();Y[Z]^=S5(this,$J,"f")[ZZ(this,mG,(X=S5(this,mG,"f"),G=X++,X),"f"),G]}return Y}decrypt(W){return this.encrypt(W)}}$J=new WeakMap,mG=new WeakMap,x5=new WeakMap;function WC(W){if(W.length<16)throw TypeError("PKCS#7 invalid length");let G=W[W.length-1];if(G>16)throw TypeError("PKCS#7 padding byte out of range");let X=W.length-G;for(let Y=0;Y<G;Y++)if(W[X+Y]!==G)throw TypeError("PKCS#7 invalid padding byte");return new Uint8Array(W.subarray(0,X))}function GC(W){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;return X7(W)}function VZ(W,G){W=String(W);while(W.length<G)W="0"+W;return W}function fG(W){if(typeof W==="string")return P9(W,"NFKC");return X7(W)}function w8(W,G){let X=G.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);s(X!=null,"invalid path","path",G);let Y=X[1],Z=X[3],V=X[4]==="!",Q=W;for(let J of Y.toLowerCase().split(".")){if(Array.isArray(Q)){if(!J.match(/^[0-9]+$/))break;Q=Q[parseInt(J)]}else if(typeof Q==="object"){let U=null;for(let q in Q)if(q.toLowerCase()===J){U=Q[q];break}Q=U}else Q=null;if(Q==null)break}if(s(!V||Q!=null,"missing required value","path",Y),Z&&Q!=null){if(Z==="int"){if(typeof Q==="string"&&Q.match(/^-?[0-9]+$/))return parseInt(Q);else if(Number.isSafeInteger(Q))return Q}if(Z==="number"){if(typeof Q==="string"&&Q.match(/^-?[0-9.]*$/))return parseFloat(Q)}if(Z==="data"){if(typeof Q==="string")return GC(Q)}if(Z==="array"&&Array.isArray(Q))return Q;if(Z===typeof Q)return Q;s(!1,`wrong type found for ${Z} `,"path",Y)}return Q}var K_="m/44'/60'/0'/0/0";function ZA(W){try{let G=JSON.parse(W);if((G.version!=null?parseInt(G.version):0)===3)return!0}catch(G){}return!1}function Xt(W,G,X){if(w8(W,"crypto.cipher:string")==="aes-128-ctr"){let Z=w8(W,"crypto.cipherparams.iv:data!"),V=new JW(G,Z);return C0(V.decrypt(X))}t0(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}function YA(W,G){let X=R0(G),Y=w8(W,"crypto.ciphertext:data!"),Z=C0(G8(a1([X.slice(16,32),Y]))).substring(2);s(Z===w8(W,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");let V=Xt(W,X.slice(0,16),Y),Q=a4(V);if(W.address){let q=W.address.toLowerCase();if(!q.startsWith("0x"))q="0x"+q;s(b1(q)===Q,"keystore address/privateKey mismatch","address",W.address)}let J={address:Q,privateKey:V};if(w8(W,"x-ethers.version:string")==="0.1"){let q=X.slice(32,64),N=w8(W,"x-ethers.mnemonicCiphertext:data!"),A=w8(W,"x-ethers.mnemonicCounter:data!"),H=new JW(q,A);J.mnemonic={path:w8(W,"x-ethers.path:string")||K_,locale:w8(W,"x-ethers.locale:string")||"en",entropy:C0(R0(H.decrypt(N)))}}return J}function C_(W){let G=w8(W,"crypto.kdf:string");if(G&&typeof G==="string"){if(G.toLowerCase()==="scrypt"){let X=w8(W,"crypto.kdfparams.salt:data!"),Y=w8(W,"crypto.kdfparams.n:int!"),Z=w8(W,"crypto.kdfparams.r:int!"),V=w8(W,"crypto.kdfparams.p:int!");s(Y>0&&(Y&Y-1)===0,"invalid kdf.N","kdf.N",Y),s(Z>0&&V>0,"invalid kdf","kdf",G);let Q=w8(W,"crypto.kdfparams.dklen:int!");return s(Q===32,"invalid kdf.dklen","kdf.dflen",Q),{name:"scrypt",salt:X,N:Y,r:Z,p:V,dkLen:64}}else if(G.toLowerCase()==="pbkdf2"){let X=w8(W,"crypto.kdfparams.salt:data!"),Y=w8(W,"crypto.kdfparams.prf:string!"),Z=Y.split("-").pop();s(Z==="sha256"||Z==="sha512","invalid kdf.pdf","kdf.pdf",Y);let V=w8(W,"crypto.kdfparams.c:int!"),Q=w8(W,"crypto.kdfparams.dklen:int!");return s(Q===32,"invalid kdf.dklen","kdf.dklen",Q),{name:"pbkdf2",salt:X,count:V,dkLen:Q,algorithm:Z}}}s(!1,"unsupported key-derivation function","kdf",G)}function XC(W,G){let X=JSON.parse(W),Y=fG(G),Z=C_(X);if(Z.name==="pbkdf2"){let{salt:A,count:H,dkLen:I,algorithm:w}=Z,C=L5(Y,A,H,I,w);return YA(X,C)}t0(Z.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:Z});let{salt:V,N:Q,r:J,p:U,dkLen:q}=Z,N=ZW(Y,V,Q,J,U,q);return YA(X,N)}function O_(W){return new Promise((G)=>{setTimeout(()=>{G()},W)})}async function YC(W,G,X){let Y=JSON.parse(W),Z=fG(G),V=C_(Y);if(V.name==="pbkdf2"){if(X)X(0),await O_(0);let{salt:H,count:I,dkLen:w,algorithm:C}=V,D=L5(Z,H,I,w,C);if(X)X(1),await O_(0);return YA(Y,D)}t0(V.name==="scrypt","cannot be reached","UNKNOWN_ERROR",{params:V});let{salt:Q,N:J,r:U,p:q,dkLen:N}=V,A=await YW(Z,Q,J,U,q,N,X);return YA(Y,A)}function D_(W){let G=W.salt!=null?R0(W.salt,"options.salt"):B5(32),X=131072,Y=8,Z=1;if(W.scrypt){if(W.scrypt.N)X=W.scrypt.N;if(W.scrypt.r)Y=W.scrypt.r;if(W.scrypt.p)Z=W.scrypt.p}return s(typeof X==="number"&&X>0&&Number.isSafeInteger(X)&&(BigInt(X)&BigInt(X-1))===BigInt(0),"invalid scrypt N parameter","options.N",X),s(typeof Y==="number"&&Y>0&&Number.isSafeInteger(Y),"invalid scrypt r parameter","options.r",Y),s(typeof Z==="number"&&Z>0&&Number.isSafeInteger(Z),"invalid scrypt p parameter","options.p",Z),{name:"scrypt",dkLen:32,salt:G,N:X,r:Y,p:Z}}function M_(W,G,X,Y){let Z=R0(X.privateKey,"privateKey"),V=Y.iv!=null?R0(Y.iv,"options.iv"):B5(16);s(V.length===16,"invalid options.iv length","options.iv",Y.iv);let Q=Y.uuid!=null?R0(Y.uuid,"options.uuid"):B5(16);s(Q.length===16,"invalid options.uuid length","options.uuid",Y.iv);let J=W.slice(0,16),U=W.slice(16,32),q=new JW(J,V),N=R0(q.encrypt(Z)),A=G8(a1([U,N])),H={address:X.address.substring(2).toLowerCase(),id:$H(Q),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:C0(V).substring(2)},ciphertext:C0(N).substring(2),kdf:"scrypt",kdfparams:{salt:C0(G.salt).substring(2),n:G.N,dklen:32,p:G.p,r:G.r},mac:A.substring(2)}};if(X.mnemonic){let I=Y.client!=null?Y.client:`ethers/${CH}`,w=X.mnemonic.path||K_,C=X.mnemonic.locale||"en",D=W.slice(32,64),x=R0(X.mnemonic.entropy,"account.mnemonic.entropy"),h=B5(16),p=new JW(D,h),u=R0(p.encrypt(x)),n=new Date,l="UTC--"+(n.getUTCFullYear()+"-"+VZ(n.getUTCMonth()+1,2)+"-"+VZ(n.getUTCDate(),2)+"T"+VZ(n.getUTCHours(),2)+"-"+VZ(n.getUTCMinutes(),2)+"-"+VZ(n.getUTCSeconds(),2)+".0Z")+"--"+H.address;H["x-ethers"]={client:I,gethFilename:l,path:w,locale:C,mnemonicCounter:C0(h).substring(2),mnemonicCiphertext:C0(u).substring(2),version:"0.1"}}return JSON.stringify(H)}function FJ(W,G,X){if(X==null)X={};let Y=fG(G),Z=D_(X),V=ZW(Y,Z.salt,Z.N,Z.r,Z.p,64);return M_(R0(V),Z,W,X)}async function SJ(W,G,X){if(X==null)X={};let Y=fG(G),Z=D_(X),V=await YW(Y,Z.salt,Z.N,Z.r,Z.p,64,X.progressCallback);return M_(R0(V),Z,W,X)}var xJ="m/44'/60'/0'/0/0",Yt=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),UW=2147483648,Zt=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Vt="0123456789abcdef";function VA(W,G){let X="";while(W)X=Vt[W%16]+X,W=Math.trunc(W/16);while(X.length<G*2)X="0"+X;return"0x"+X}function ZC(W){let G=R0(W),X=nY(L9(L9(G)),0,4),Y=a1([G,X]);return BH(Y)}var o7={};function T_(W,G,X,Y){let Z=new Uint8Array(37);if(W&UW)t0(Y!=null,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),Z.set(R0(Y),1);else Z.set(R0(X));for(let Q=24;Q>=0;Q-=8)Z[33+(Q>>3)]=W>>24-Q&255;let V=R0(e6("sha512",G,Z));return{IL:V.slice(0,32),IR:V.slice(32)}}function P_(W,G){let X=G.split("/");if(s(X.length>0,"invalid path","path",G),X[0]==="m")s(W.depth===0,`cannot derive root path (i.e. path starting with "m/") for a node at non-zero depth ${W.depth}`,"path",G),X.shift();let Y=W;for(let Z=0;Z<X.length;Z++){let V=X[Z];if(V.match(/^[0-9]+'$/)){let Q=parseInt(V.substring(0,V.length-1));s(Q<UW,"invalid path index",`path[${Z}]`,V),Y=Y.deriveChild(UW+Q)}else if(V.match(/^[0-9]+$/)){let Q=parseInt(V);s(Q<UW,"invalid path index",`path[${Z}]`,V),Y=Y.deriveChild(Q)}else s(!1,"invalid path component",`path[${Z}]`,V)}return Y}class V9 extends bG{publicKey;fingerprint;parentFingerprint;mnemonic;chainCode;path;index;depth;constructor(W,G,X,Y,Z,V,Q,J,U){super(G,U);p4(W,o7,"HDNodeWallet"),V8(this,{publicKey:G.compressedPublicKey});let q=nY(WW(L9(this.publicKey)),0,4);V8(this,{parentFingerprint:X,fingerprint:q,chainCode:Y,path:Z,index:V,depth:Q}),V8(this,{mnemonic:J})}connect(W){return new V9(o7,this.signingKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.mnemonic,W)}#W(){let W={address:this.address,privateKey:this.privateKey},G=this.mnemonic;if(this.path&&G&&G.wordlist.locale==="en"&&G.password==="")W.mnemonic={path:this.path,locale:"en",entropy:G.entropy};return W}async encrypt(W,G){return await SJ(this.#W(),W,{progressCallback:G})}encryptSync(W){return FJ(this.#W(),W)}get extendedKey(){return t0(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZC(a1(["0x0488ADE4",VA(this.depth,1),this.parentFingerprint,VA(this.index,4),this.chainCode,a1(["0x00",this.privateKey])]))}hasPath(){return this.path!=null}neuter(){return new cG(o7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild(W){let G=n8(W,"index");s(G<=4294967295,"invalid index","index",G);let X=this.path;if(X){if(X+="/"+(G&~UW),G&UW)X+="'"}let{IR:Y,IL:Z}=T_(G,this.chainCode,this.publicKey,this.privateKey),V=new l8(Y7((rY(Z)+BigInt(this.privateKey))%Zt,32));return new V9(o7,V,this.fingerprint,C0(Y),X,G,this.depth+1,this.mnemonic,this.provider)}derivePath(W){return P_(this,W)}static#G(W,G){s(p7(W),"invalid seed","seed","[REDACTED]");let X=R0(W,"seed");s(X.length>=16&&X.length<=64,"invalid seed","seed","[REDACTED]");let Y=R0(e6("sha512",Yt,X)),Z=new l8(C0(Y.slice(0,32)));return new V9(o7,Z,"0x00000000",C0(Y.slice(32)),"m",0,0,G,null)}static fromExtendedKey(W){let G=Q8(EH(W));s(G.length===82||ZC(G.slice(0,78))===W,"invalid extended key","extendedKey","[ REDACTED ]");let X=G[4],Y=C0(G.slice(5,9)),Z=parseInt(C0(G.slice(9,13)).substring(2),16),V=C0(G.slice(13,45)),Q=G.slice(45,78);switch(C0(G.slice(0,4))){case"0x0488b21e":case"0x043587cf":{let J=C0(Q);return new cG(o7,a4(J),J,Y,V,null,Z,X,null)}case"0x0488ade4":case"0x04358394 ":if(Q[0]!==0)break;return new V9(o7,new l8(Q.slice(1)),Y,V,null,Z,X,null,null)}s(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom(W,G,X){if(W==null)W="";if(G==null)G=xJ;if(X==null)X=t4.wordlist();let Y=e4.fromEntropy(B5(16),W,X);return V9.#G(Y.computeSeed(),Y).derivePath(G)}static fromMnemonic(W,G){if(!G)G=xJ;return V9.#G(W.computeSeed(),W).derivePath(G)}static fromPhrase(W,G,X,Y){if(G==null)G="";if(X==null)X=xJ;if(Y==null)Y=t4.wordlist();let Z=e4.fromPhrase(W,G,Y);return V9.#G(Z.computeSeed(),Z).derivePath(X)}static fromSeed(W){return V9.#G(W,null)}}class cG extends RJ{publicKey;fingerprint;parentFingerprint;chainCode;path;index;depth;constructor(W,G,X,Y,Z,V,Q,J,U){super(G,U);p4(W,o7,"HDNodeVoidWallet"),V8(this,{publicKey:X});let q=nY(WW(L9(X)),0,4);V8(this,{publicKey:X,fingerprint:q,parentFingerprint:Y,chainCode:Z,path:V,index:Q,depth:J})}connect(W){return new cG(o7,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,W)}get extendedKey(){return t0(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),ZC(a1(["0x0488B21E",VA(this.depth,1),this.parentFingerprint,VA(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return this.path!=null}deriveChild(W){let G=n8(W,"index");s(G<=4294967295,"invalid index","index",G);let X=this.path;if(X){if(X+="/"+(G&~UW),G&UW)X+="'"}let{IR:Y,IL:Z}=T_(G,this.chainCode,this.publicKey,null),V=l8.addPoints(Z,this.publicKey,!0),Q=a4(V);return new cG(o7,Q,V,this.fingerprint,C0(Y),X,G,this.depth+1,this.provider)}derivePath(W){return P_(this,W)}}function QA(W){try{if(JSON.parse(W).encseed)return!0}catch(G){}return!1}function JA(W,G){let X=JSON.parse(W),Y=fG(G),Z=b1(w8(X,"ethaddr:string!")),V=GC(w8(X,"encseed:string!"));s(V&&V.length%16===0,"invalid encseed","json",W);let Q=R0(L5(Y,Y,2000,32,"sha256")).slice(0,16),J=V.slice(0,16),U=V.slice(16),q=new EJ(Q,J),N=WC(R0(q.decrypt(U))),A="";for(let H=0;H<N.length;H++)A+=String.fromCharCode(N[H]);return{address:Z,privateKey:s4(A)}}function R_(W){return new Promise((G)=>{setTimeout(()=>{G()},W)})}class G6 extends bG{constructor(W,G){if(typeof W==="string"&&!W.startsWith("0x"))W="0x"+W;let X=typeof W==="string"?new l8(W):W;super(X,G)}connect(W){return new G6(this.signingKey,W)}async encrypt(W,G){let X={address:this.address,privateKey:this.privateKey};return await SJ(X,W,{progressCallback:G})}encryptSync(W){let G={address:this.address,privateKey:this.privateKey};return FJ(G,W)}static#W(W){if(s(W,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in W&&W.mnemonic&&W.mnemonic.locale==="en"){let X=e4.fromEntropy(W.mnemonic.entropy),Y=V9.fromMnemonic(X,W.mnemonic.path);if(Y.address===W.address&&Y.privateKey===W.privateKey)return Y;console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key")}let G=new G6(W.privateKey);return s(G.address===W.address,"address/privateKey mismatch","json","[ REDACTED ]"),G}static async fromEncryptedJson(W,G,X){let Y=null;if(ZA(W))Y=await YC(W,G,X);else if(QA(W)){if(X)X(0),await R_(0);if(Y=JA(W,G),X)X(1),await R_(0)}return G6.#W(Y)}static fromEncryptedJsonSync(W,G){let X=null;if(ZA(W))X=XC(W,G);else if(QA(W))X=JA(W,G);else s(!1,"invalid JSON wallet","json","[ REDACTED ]");return G6.#W(X)}static createRandom(W){let G=V9.createRandom();if(W)return G.connect(W);return G}static fromPhrase(W,G){let X=V9.fromPhrase(W);if(G)return X.connect(G);return X}}function L_(W,G=[]){let X=String(W??"").trim();if(!X)throw Error("sm-server: signing key required (GDB_SM_KEY)");let Y=X.includes(" ")?V9.fromPhrase(X):new G6(X),Z=b1(Y.address),V=new Set([...G,Z].map((N)=>{try{return b1(N)}catch{return null}}).filter(Boolean)),Q=(N)=>{let A=(H)=>H&&typeof H==="object"&&!Array.isArray(H)?Object.keys(H).sort().reduce((I,w)=>(I[w]=A(H[w]),I),{}):Array.isArray(H)?H.map(A):H;return JSON.stringify(A(N))};return{address:Z,superAdmins:V,canonicalize:Q,signOps:async(N)=>{let A=[];for(let H of N){if(H?.signature&&H?.originEthAddress&&H?.originUser){A.push(H);continue}let I={...H,originUser:Z},w=await Y.signMessage(P9(Q(I)));A.push({...H,originUser:Z,originEthAddress:Z,signature:w})}return A},verifyOp:(N)=>{if(!N?.signature||!N?.originEthAddress||!N?.originUser)return{ok:!1,reason:"missing-fields"};let A;try{if(A=b1(N.originEthAddress),b1(N.originUser)!==A)return{ok:!1,reason:"address-mismatch"}}catch{return{ok:!1,reason:"invalid-address"}}let{signature:H,originEthAddress:I,...w}=N;try{let C=rH(P9(Q(w)),H);if(b1(C)!==A)return{ok:!1,reason:"invalid-signature"};let{originUser:D,...x}=w;return{ok:!0,normalizedOriginEthAddress:A,payload:x}}catch(C){return{ok:!1,reason:"verify-error",error:C}}},isSuperAdmin:(N)=>{try{return V.has(b1(N))}catch{return!1}}}}var Ut=["guest","user","manager","admin","superadmin"];function B_(W,G,X,{intervalMs:Y=4000,settleMs:Z=15000,customRoles:V=null}={}){let Q=new Set([...Ut,...Object.keys(V??{})]),J=async(A,H,I=null)=>{let w=b1(A);if(!Q.has(H))throw Error(`Role '${H}' is not a defined role.`);let C=`user:${w}`,D=(await W.get(C)).result?.value||{};await W.put({...D,ethAddress:w,role:H,assignedByEthAddress:G.address,expiresAt:I?new Date(I).toISOString():null,priority:!0},C)},U=async()=>{let A=new Map;for(let H of X){let I=H.then?.assignRole;if(!I)continue;let w=[];try{({results:w=[]}=W.map({query:H.if}))}catch(C){console.error("\u274C GOVERNANCE: rule evaluation failed:",C.message);continue}for(let C of w){if(!C.id.startsWith("user:"))continue;if(G.isSuperAdmin(C.id.slice(5)))continue;if(H.offsetTimestamp&&(C.timestamp?.physical??0)>Date.now()-H.offsetTimestamp)continue;A.set(C.id,{role:I,current:C.value?.role})}}for(let[H,{role:I,current:w}]of A){if(w===I)continue;try{await J(H.slice(5),I),console.info(`\uD83D\uDCDC GOVERNANCE: ${H.slice(5)} '${w}' -> '${I}'`)}catch(C){console.error("\u274C GOVERNANCE: assignRole failed:",C.message)}}},q=null,N=setTimeout(()=>{q=setInterval(U,Y),console.info(`\uD83D\uDCDC GOVERNANCE ENGINE: active \u2014 ${X.length} rule(s), every ${Y} ms.`)},Z);return{assignRole:J,stop:()=>{if(clearTimeout(N),q)clearInterval(q)}}}var QC=(W)=>W&&typeof W==="object"?structuredClone(W):W,VC=(W,G=16)=>{let X=null,Y=null;return(...Z)=>{if(Y??=Promise.withResolvers(),X!==null)clearTimeout(X);return X=setTimeout(async()=>{X=null;try{Y.resolve(await W(...Z))}catch(V){Y.reject(V)}finally{Y=null}},G),Y.promise}},At=(W)=>{let G=!1;return()=>{if(G)return;G=!0,setImmediate(()=>{G=!1,W()})}};function zt(W=1000){let G=[];return{add(X){if(X?.timestamp){if(G.push(X),G.length>W)G.splice(0,G.length-W)}},getOldest:()=>G[0]??null,getDelta:(X,Y)=>X?G.filter((Z)=>Y(Z.timestamp,X)>0):[...G],clear(){G=[]},entries:()=>[...G],setEntries(X=[]){if(G=Array.isArray(X)?[...X]:[],G.length>W)G.splice(0,G.length-W)}}}function It(){let W={nodes:{}};return{get nodes(){return W.nodes},set nodes(G){W.nodes=G??{}},upsert(G,X,Y){let Z=W.nodes[G];W.nodes[G]={id:G,value:QC(X),edges:Z?.edges?[...Z.edges]:[],timestamp:Y}},get:(G)=>W.nodes[G]??null,link(G,X,Y){let Z=W.nodes[G],V=W.nodes[X];if(Z&&V&&!Z.edges.includes(X))W.nodes[G]={...Z,edges:[...Z.edges,X],timestamp:Y}},getAllNodes:()=>Object.values(W.nodes),serialize:()=>DW.deflate(qZ(W.nodes)),deserialize(G){let X=G instanceof Uint8Array?G:new Uint8Array(G);W.nodes=HW(DW.inflate(X))}}}function wt(W,G){let X=Ht(W);if(X&&X!==".")Nt(X,{recursive:!0});let Y=new qt(W);Y.exec("PRAGMA journal_mode = WAL"),Y.exec("PRAGMA synchronous = NORMAL"),Y.exec(`
|
|
252
|
+
CREATE TABLE IF NOT EXISTS kv (
|
|
253
|
+
key TEXT PRIMARY KEY,
|
|
254
|
+
value BLOB NOT NULL
|
|
255
|
+
)
|
|
256
|
+
`);let Z=Y.prepare("SELECT value FROM kv WHERE key = ?"),V=Y.prepare("INSERT OR REPLACE INTO kv (key, value) VALUES (?, ?)"),Q=Y.prepare("DELETE FROM kv WHERE key = ?"),J=G;return{getBlob(U){let q=Z.get(`${J}:${U}`);return q?new Uint8Array(q.value):null},getText(U){let q=Z.get(`${J}:${U}`);return q?Buffer.from(q.value).toString("utf8"):null},putBlob(U,q){V.run(`${J}:${U}`,Buffer.from(q))},putText(U,q){V.run(`${J}:${U}`,Buffer.from(q,"utf8"))},del(U){Q.run(`${J}:${U}`)},close(){Y.close()}}}async function jt(W=process.env.GDB_ROOM||process.argv.slice(2).find((Y)=>!Y.startsWith("--"))||"default",G={},X=process.env.GDB_DB_PATH||"./data.sqlite"){console.info(`\u26A1 GDBServer [${W}] initializing (bun:sqlite)`);let{password:Y,saveDelay:Z=200,oplogSize:V=1000,rtcPolyfill:Q=null,rtc:J=!0,room:U=null,sm:q=null,relay:N=null}=G,A=J?.constructor===Object?J:{},{turnConfig:H=null}=A,I=A.relayUrls??((process.env.GDB_RELAY_URLS??"").split(",").map((J0)=>J0.trim()).filter(Boolean).length?process.env.GDB_RELAY_URLS.split(",").map((J0)=>J0.trim()).filter(Boolean):null),w=N??(process.argv.includes("--relay")||["1","true"].includes(process.env.GDB_RELAY??"")),C=null;if(w)C=Ox(N?.constructor===Object?N:{}),I=[...I??[],`ws://127.0.0.1:${C.port}`];let D=A.cells??(process.argv.includes("--cells")||["1","true"].includes(process.env.GDB_CELLS??"")),x=U??process.argv.includes("--room"),h=q?.constructor===Object?q:null,p=h?.key??process.env.GDB_SM_KEY??null,u=h?.superAdmins??(process.env.GDB_SUPERADMINS??"").split(",").map((J0)=>J0.trim()).filter(Boolean),n=null;if(p)n=L_(p,u),console.info(`\uD83D\uDEE1\uFE0F SM: signing as ${n.address}`);else if(h)console.warn("\u26A0\uFE0F SM: sm configured but no signing key (GDB_SM_KEY) \u2014 running unsigned, memory-only role.");let c=It(),l=vD(),G0=zt(V),m=wt(X,W),Y0=[],U0=[],y=[],o=null,B=null,R=null,_={},S=()=>{let J0=m.getBlob("graph");if(J0?.byteLength)c.deserialize(J0),console.info(`\u2705 Graph loaded: ${c.getAllNodes().length} nodes`)},v=()=>{m.putBlob("graph",c.serialize())},P=()=>{let J0=m.getText("timestamp");if(J0){let B0=JSON.parse(J0);if(B0?.physical&&B0?.logical)o=B0,l.update(o)}},E=()=>{m.putText("timestamp",JSON.stringify(o??null))},b=()=>{let J0=m.getBlob("oplog");if(J0?.byteLength){let B0=HW(DW.inflate(J0));if(Array.isArray(B0))G0.setEntries(B0),console.info(`\u2705 Oplog loaded: ${B0.length} ops`)}},k=()=>{m.putBlob("oplog",DW.deflate(qZ(G0.entries())))},f=(J0)=>{if(!J0)return;if(!o||l.compare(J0,o)>0)o=J0,E()},e=VC(()=>v(),Z),q0=VC(()=>k(),Z),Q0=()=>{let J0={...c.nodes};Y0.forEach((B0)=>B0(J0))},$0=At(()=>Q0()),D0=async(J0)=>{if(!J0?.length||!B)return!1;try{return await B.send(J0),!0}catch(B0){return console.error("\u274C safeSend failed:",B0?.message),!1}},k0=async(J0)=>{let B0=await D0(J0);return setTimeout(()=>D0(J0),2500),B0},H1=async(J0)=>{let B0=!1,h0=null,Y1=(E0)=>{if(E0&&(!h0||l.compare(E0,h0)>0))h0=E0},A8=(E0)=>{try{if(E0 instanceof Uint8Array||E0 instanceof ArrayBuffer){let l0=HW(E0);return Array.isArray(l0)?l0:[l0]}if(Array.isArray(E0))return E0;if(E0&&typeof E0==="object")return HW(DW.inflate(new Uint8Array(Object.values(E0))))}catch(l0){console.error("\u274C decode failed",l0)}return null},F1={upsert(E0){let{resolved:l0,value:q1,timestamp:d1}=gD(c.get(E0.id),E0,l);if(!l0)return;c.upsert(E0.id,q1,d1),l.update(d1),G0.add({type:"upsert",id:E0.id,timestamp:d1}),B0=!0,Y1(d1)},remove(E0){let l0=c.get(E0.id);if(!l0||l.compare(l0.timestamp,E0.timestamp)>=0)return;delete c.nodes[E0.id],Object.values(c.nodes).forEach((q1)=>{q1.edges=(q1.edges??[]).filter((d1)=>d1!==E0.id)}),l.update(E0.timestamp),G0.add({type:"remove",id:E0.id,timestamp:E0.timestamp}),B0=!0,Y1(E0.timestamp)},link(E0){let l0=c.get(E0.sourceId),q1=c.get(E0.targetId);if(!l0||!q1||l.compare(l0.timestamp,E0.timestamp)>=0)return;c.link(E0.sourceId,E0.targetId,E0.timestamp),l.update(E0.timestamp),G0.add({type:"link",...E0}),B0=!0,Y1(E0.timestamp)},async sync({timestamp:E0}){let l0=G0.getOldest();if(E0==null||l0&&l.compare(E0,l0.timestamp)<0){console.info("\uD83D\uDCA5 Sending FULL state sync:",c.getAllNodes().length,"nodes"),await k0([{type:"fullStateSync",graphData:c.serialize(),timestamp:o}]);return}let d1=G0.getDelta(E0,l.compare);if(!d1.length)return;let j8=d1.map((v8)=>v8.type==="upsert"?{...v8,value:c.get(v8.id)?.value}:v8);console.info("\uD83D\uDE80 Sending DELTA sync:",j8.length,"ops"),await k0([{type:"deltaSync",operations:DW.deflate(qZ(j8)),timestamp:o}])},deltaSync({operations:E0}){let l0=A8(E0);if(!Array.isArray(l0))return;console.info("\uD83D\uDCE5 deltaSync:",l0.length,"ops");for(let q1 of l0)if(q1&&F1[q1.type])F1[q1.type](q1)},async fullStateSync({graphData:E0,timestamp:l0}){if(o&&l0&&l.compare(o,l0)>0)return;let q1=E0;if(!(q1 instanceof Uint8Array))q1=q1&&typeof q1==="object"?new Uint8Array(Object.values(q1)):null;if(!q1)return;if(c.deserialize(q1),G0.clear(),B0=!0,console.info("\u2705 fullStateSync applied:",c.getAllNodes().length,"nodes"),l0)Y1(l0),l.update(l0)}};for(let E0 of J0)if(F1[E0.type])await F1[E0.type](E0);if(h0&&(!o||l.compare(h0,o)>0))f(h0);if(B0)await Promise.all([e(),q0()]),$0()},U1=VC(async()=>{let J0=y.splice(0);return J0.length?await D0(J0):!1},16);Object.assign(_,{use(J0){if(typeof J0==="function")U0.push(J0)},async put(J0,B0){let h0=l.now();f(h0),B0??=crypto.randomUUID(),c.upsert(B0,J0,h0),G0.add({type:"upsert",id:B0,timestamp:h0}),e(),q0();try{y.push({type:"upsert",id:B0,value:J0,timestamp:h0}),U1().catch(()=>{})}finally{$0()}return B0},async get(J0){if(typeof J0!=="string")return{result:null};let B0=c.get(J0);if(!B0)return{result:null};return{result:{...B0,value:QC(B0.value)}}},map(...J0){let h0={...{realtime:!1,query:{},field:null,order:"asc",$limit:null,$after:null,$before:null}},Y1=null,A8=!1;J0.forEach((l0)=>typeof l0==="function"?Y1=l0:l0&&typeof l0==="object"&&(A8=A8||("realtime"in l0),Object.assign(h0,l0))),Y1&&!A8&&(h0.realtime=!0);let F1=lA(c.nodes,h0),E0=null;if(Y1){if(F1.forEach((l0)=>Y1({id:l0.id,value:l0.value,edges:l0.edges,timestamp:l0.timestamp,action:"initial"})),h0.realtime){let l0=(q1)=>`${q1.id}:${q1.timestamp?.physical??0}:${q1.timestamp?.logical??0}:${(q1.edges??[]).join(",")}`;E0=(q1)=>{let d1=lA(q1,h0),j8=new Map(F1.map((O8)=>[O8.id,O8])),v8=new Map(d1.map((O8)=>[O8.id,O8]));if(d1.length!==F1.length||!d1.map(l0).every((O8,q8)=>O8===F1.map(l0)[q8])){for(let[O8,q8]of v8){let Q9=j8.get(O8);if(!Q9)Y1({id:O8,value:q8.value,edges:q8.edges,timestamp:q8.timestamp,action:"added"});else if(l0(q8)!==l0(Q9))Y1({id:O8,value:q8.value,edges:q8.edges,timestamp:q8.timestamp,action:"updated"})}for(let[O8,q8]of j8)if(!v8.has(O8))Y1({id:O8,value:null,edges:q8.edges,timestamp:q8.timestamp,action:"removed"});F1=d1}},Y0.push(E0)}}return{results:F1,...h0.realtime&&Y1&&E0&&{unsubscribe:()=>{let l0=Y0.indexOf(E0);if(l0>=0)Y0.splice(l0,1)}}}},async link(J0,B0){if(!c.nodes[J0]||!c.nodes[B0])return;let h0=l.now();c.link(J0,B0,h0),G0.add({type:"link",sourceId:J0,targetId:B0,timestamp:h0}),e(),q0(),f(h0);try{y.push({type:"link",sourceId:J0,targetId:B0,timestamp:h0}),U1().catch(()=>{})}finally{$0()}},async remove(J0){let B0=c.get(J0);if(!B0)return;let h0=l.now();delete c.nodes[J0],Object.values(c.nodes).forEach((Y1)=>{Y1.edges=(Y1.edges??[]).filter((A8)=>A8!==J0)}),G0.add({type:"remove",id:J0,timestamp:h0}),e(),q0(),f(h0);try{y.push({type:"remove",id:J0,value:B0.value,timestamp:h0}),U1().catch(()=>{})}finally{$0()}},async clear(){c.nodes={},G0.clear(),m.del("graph"),m.del("oplog"),Q0()},on(J0){return Y0.push(J0),()=>{let B0=Y0.indexOf(J0);if(B0>=0)Y0.splice(B0,1)}},close(){m.close()}});try{let J0=`graph-sync-room-${W}`,B0={appId:"1234",type:"superpeer",...Y&&{password:Y},...I&&{relayUrls:I},...H&&{turnConfig:H},...D&&{cells:!0},...D&&D!==!0&&{overlay:D},rtcPolyfill:Q??NK};if(R=Pz(B0,J0),B=R.channel("syncGraph"),console.info(`\u26A1 Transport: ${D?"cellular mesh":"full mesh"}`),n){let h0=B.send;B={...B,send:async(Y1)=>h0(await n.signOps(Y1))},_.sm=n}if(!D){let h0=!1;R.channel("c0").on("message",()=>{if(h0)return;h0=!0,console.warn("\u26A0\uFE0F This room speaks Cellular Mesh \u2014 restart with --cells / GDB_CELLS=1 (CLI) or rtc: { cells: true } (module), or browser writes will never reach this superpeer.")})}if(x)_.room=Pz(B0,`app-sync-${W}`),console.info("\u26A1 db.room joined \u2014 visible to monitors/presence");R.on("peer:join",(h0)=>{console.info("\u26A1 Peer connected:",h0);for(let Y1 of[0,1500,4000,9000])setTimeout(()=>D0([{type:"sync",timestamp:o}]),Y1)}),R.on("peer:leave",(h0)=>console.info("\u26A1 Peer disconnected:",h0)),B.on("message",async(h0)=>{let Y1;try{Y1=h0 instanceof Uint8Array||h0 instanceof ArrayBuffer?(()=>{let F1=HW(h0);return Array.isArray(F1)?F1:[F1]})():Array.isArray(h0)?h0:[h0]}catch(F1){return console.error("\u274C decode failed:",F1)}let A8=new Map([...new Set(Y1.flatMap((F1)=>["id","sourceId","targetId"].map((E0)=>F1?.[E0]).filter(Boolean)))].map((F1)=>c.get(F1)?[F1,QC(c.get(F1))]:null).filter(Boolean));for(let F1 of U0)try{if(Y1=await F1(Y1,A8),!Y1?.length)return}catch(E0){console.error("\u274C Middleware error:",E0);return}await H1(Y1)}),console.info("\u2705 GenosRTC sync enabled")}catch(J0){console.warn("\u26A0\uFE0F GenosRTC not available:",J0.message)}if(S(),P(),b(),n){let J0=h?.governanceRules??null;if(!J0&&process.env.GDB_SM_RULES){let B0=process.env.GDB_SM_RULES.trim();try{if(B0.startsWith("["))J0=JSON.parse(B0);else if(B0.startsWith("{"))J0=[JSON.parse(B0)];else J0=(await import(new URL(B0,`file://${process.cwd()}/`).href)).default}catch(h0){console.error("\u274C GOVERNANCE: could not load GDB_SM_RULES:",h0.message)}}if(Array.isArray(J0)&&J0.length)_.governance=B_(_,n,J0,{customRoles:h?.customRoles??null})}if(C)_.relay=C;return Object.defineProperties(_,{syncChannel:{get:()=>B},hybridClock:{get:()=>l},graph:{get:()=>({getAllNodes:()=>c.getAllNodes(),get:(J0)=>c.get(J0)})}}),console.info(`\u2705 GDBServer [${W}] ready (bun:sqlite)`),_}if(import.meta.main){let W=new Set(["ECONNREFUSED","ECONNRESET","EHOSTUNREACH","ENETUNREACH","EADDRNOTAVAIL","ETIMEDOUT","EPIPE"]),G=(V)=>W.has(V?.code)||W.has(V?.errno),X=new Map,Y=null,Z=(V="UNKNOWN")=>{let Q=(X.get(V)??0)+1;if(X.set(V,Q),Q===1)console.warn("\u26A0\uFE0F Transient network error (ignored):",V);Y??=setTimeout(()=>{Y=null;let J=[...X].filter(([,U])=>U>1).map(([U,q])=>`${U} \xD7${q}`).join(", ");if(J)console.warn("\u26A0\uFE0F Transient network errors (ignored, last 60s):",J);X.clear()},60000)};process.on("uncaughtException",(V)=>{if(G(V))return Z(V?.code??V?.errno);console.error("\u274C Fatal:",V?.message??V),process.exit(1)}),process.on("unhandledRejection",(V)=>{if(G(V))return Z(V?.code??V?.errno);console.error("\u274C Fatal (rejection):",V?.message??V),process.exit(1)}),jt().catch((V)=>{console.error("\u274C Fatal:",V.message),process.exit(1)})}export{jt as gdbServer};
|