@libp2p/daemon-server 9.0.12 → 9.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.min.js CHANGED
@@ -1,19 +1,19 @@
1
1
  (function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2PDaemonServer = factory()}(typeof self !== 'undefined' ? self : this, function () {
2
- "use strict";var Libp2PDaemonServer=(()=>{var lu=Object.create;var Rr=Object.defineProperty;var fu=Object.getOwnPropertyDescriptor;var du=Object.getOwnPropertyNames;var hu=Object.getPrototypeOf,pu=Object.prototype.hasOwnProperty;var oe=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var Le=(r,e)=>{for(var t in e)Rr(r,t,{get:e[t],enumerable:!0})},_i=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of du(e))!pu.call(r,o)&&o!==t&&Rr(r,o,{get:()=>e[o],enumerable:!(n=fu(e,o))||n.enumerable});return r};var Te=(r,e,t)=>(t=r!=null?lu(hu(r)):{},_i(e||!r||!r.__esModule?Rr(t,"default",{value:r,enumerable:!0}):t,r)),mu=r=>_i(Rr({},"__esModule",{value:!0}),r);var zd={};Le(zd,{Server:()=>yo,createServer:()=>Fd});var go=oe("node:buffer");function pt(r){return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function Ze(r=0){return pt(go.Buffer.alloc(r))}function Se(r=0){return pt(go.Buffer.allocUnsafe(r))}var bu=Math.pow(2,7),yu=Math.pow(2,14),gu=Math.pow(2,21),xo=Math.pow(2,28),Eo=Math.pow(2,35),wo=Math.pow(2,42),vo=Math.pow(2,49),k=128,me=127;function ae(r){if(r<bu)return 1;if(r<yu)return 2;if(r<gu)return 3;if(r<xo)return 4;if(r<Eo)return 5;if(r<wo)return 6;if(r<vo)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Pt(r,e,t=0){switch(ae(r)){case 8:e[t++]=r&255|k,r/=128;case 7:e[t++]=r&255|k,r/=128;case 6:e[t++]=r&255|k,r/=128;case 5:e[t++]=r&255|k,r/=128;case 4:e[t++]=r&255|k,r>>>=7;case 3:e[t++]=r&255|k,r>>>=7;case 2:e[t++]=r&255|k,r>>>=7;case 1:{e[t++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return e}function xu(r,e,t=0){switch(ae(r)){case 8:e.set(t++,r&255|k),r/=128;case 7:e.set(t++,r&255|k),r/=128;case 6:e.set(t++,r&255|k),r/=128;case 5:e.set(t++,r&255|k),r/=128;case 4:e.set(t++,r&255|k),r>>>=7;case 3:e.set(t++,r&255|k),r>>>=7;case 2:e.set(t++,r&255|k),r>>>=7;case 1:{e.set(t++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return e}function So(r,e){let t=r[e],n=0;if(n+=t&me,t<k||(t=r[e+1],n+=(t&me)<<7,t<k)||(t=r[e+2],n+=(t&me)<<14,t<k)||(t=r[e+3],n+=(t&me)<<21,t<k)||(t=r[e+4],n+=(t&me)*xo,t<k)||(t=r[e+5],n+=(t&me)*Eo,t<k)||(t=r[e+6],n+=(t&me)*wo,t<k)||(t=r[e+7],n+=(t&me)*vo,t<k))return n;throw new RangeError("Could not decode varint")}function Eu(r,e){let t=r.get(e),n=0;if(n+=t&me,t<k||(t=r.get(e+1),n+=(t&me)<<7,t<k)||(t=r.get(e+2),n+=(t&me)<<14,t<k)||(t=r.get(e+3),n+=(t&me)<<21,t<k)||(t=r.get(e+4),n+=(t&me)*xo,t<k)||(t=r.get(e+5),n+=(t&me)*Eo,t<k)||(t=r.get(e+6),n+=(t&me)*wo,t<k)||(t=r.get(e+7),n+=(t&me)*vo,t<k))return n;throw new RangeError("Could not decode varint")}function Nr(r,e,t=0){return e==null&&(e=Se(ae(r))),e instanceof Uint8Array?Pt(r,e,t):xu(r,e,t)}function mt(r,e=0){return r instanceof Uint8Array?So(r,e):Eu(r,e)}var Io=new Float32Array([-0]),ot=new Uint8Array(Io.buffer);function Bi(r,e,t){Io[0]=r,e[t]=ot[0],e[t+1]=ot[1],e[t+2]=ot[2],e[t+3]=ot[3]}function Oi(r,e){return ot[0]=r[e],ot[1]=r[e+1],ot[2]=r[e+2],ot[3]=r[e+3],Io[0]}var Ao=new Float64Array([-0]),be=new Uint8Array(Ao.buffer);function Pi(r,e,t){Ao[0]=r,e[t]=be[0],e[t+1]=be[1],e[t+2]=be[2],e[t+3]=be[3],e[t+4]=be[4],e[t+5]=be[5],e[t+6]=be[6],e[t+7]=be[7]}function Ri(r,e){return be[0]=r[e],be[1]=r[e+1],be[2]=r[e+2],be[3]=r[e+3],be[4]=r[e+4],be[5]=r[e+5],be[6]=r[e+6],be[7]=r[e+7],Ao[0]}var wu=BigInt(Number.MAX_SAFE_INTEGER),vu=BigInt(Number.MIN_SAFE_INTEGER),De=class r{lo;hi;constructor(e,t){this.lo=e|0,this.hi=t|0}toNumber(e=!1){if(!e&&this.hi>>>31>0){let t=~this.lo+1>>>0,n=~this.hi>>>0;return t===0&&(n=n+1>>>0),-(t+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(e=!1){if(e)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let t=~this.lo+1>>>0,n=~this.hi>>>0;return t===0&&(n=n+1>>>0),-(BigInt(t)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(e=!1){return this.toBigInt(e).toString()}zzEncode(){let e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this}zzDecode(){let e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this}length(){let e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?t===0?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:n<128?9:10}static fromBigInt(e){if(e===0n)return bt;if(e<wu&&e>vu)return this.fromNumber(Number(e));let t=e<0n;t&&(e=-e);let n=e>>32n,o=e-(n<<32n);return t&&(n=~n|0n,o=~o|0n,++o>Ni&&(o=0n,++n>Ni&&(n=0n))),new r(Number(o),Number(n))}static fromNumber(e){if(e===0)return bt;let t=e<0;t&&(e=-e);let n=e>>>0,o=(e-n)/4294967296>>>0;return t&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new r(n,o)}static from(e){return typeof e=="number"?r.fromNumber(e):typeof e=="bigint"?r.fromBigInt(e):typeof e=="string"?r.fromBigInt(BigInt(e)):e.low!=null||e.high!=null?new r(e.low>>>0,e.high>>>0):bt}},bt=new De(0,0);bt.toBigInt=function(){return 0n};bt.zzEncode=bt.zzDecode=function(){return this};bt.length=function(){return 1};var Ni=4294967296n;function ki(r){let e=0,t=0;for(let n=0;n<r.length;++n)t=r.charCodeAt(n),t<128?e+=1:t<2048?e+=2:(t&64512)===55296&&(r.charCodeAt(n+1)&64512)===56320?(++n,e+=4):e+=3;return e}function Ui(r,e,t){if(t-e<1)return"";let o,s=[],i=0,a;for(;e<t;)a=r[e++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(a&31)<<6|r[e++]&63:a>239&&a<365?(a=((a&7)<<18|(r[e++]&63)<<12|(r[e++]&63)<<6|r[e++]&63)-65536,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(r[e++]&63)<<6|r[e++]&63,i>8191&&((o??(o=[])).push(String.fromCharCode.apply(String,s)),i=0);return o!=null?(i>0&&o.push(String.fromCharCode.apply(String,s.slice(0,i))),o.join("")):String.fromCharCode.apply(String,s.slice(0,i))}function Lo(r,e,t){let n=t,o,s;for(let i=0;i<r.length;++i)o=r.charCodeAt(i),o<128?e[t++]=o:o<2048?(e[t++]=o>>6|192,e[t++]=o&63|128):(o&64512)===55296&&((s=r.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,e[t++]=o>>18|240,e[t++]=o>>12&63|128,e[t++]=o>>6&63|128,e[t++]=o&63|128):(e[t++]=o>>12|224,e[t++]=o>>6&63|128,e[t++]=o&63|128);return t-n}function Me(r,e){return RangeError(`index out of range: ${r.pos} + ${e??1} > ${r.len}`)}function Ur(r,e){return(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0}var To=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=e,this.pos=0,this.len=e.length}uint32(){let e=4294967295;if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,Me(this,10);return e}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Me(this,4);return Ur(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Me(this,4);return Ur(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Me(this,4);let e=Oi(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw Me(this,4);let e=Ri(this.buf,this.pos);return this.pos+=8,e}bytes(){let e=this.uint32(),t=this.pos,n=this.pos+e;if(n>this.len)throw Me(this,e);return this.pos+=e,t===n?new Uint8Array(0):this.buf.subarray(t,n)}string(){let e=this.bytes();return Ui(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Me(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Me(this);while((this.buf[this.pos++]&128)!==0);return this}skipType(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${e} at offset ${this.pos}`)}return this}readLongVarint(){let e=new De(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw Me(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,e}if(this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw Me(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Me(this,8);let e=Ur(this.buf,this.pos+=4),t=Ur(this.buf,this.pos+=4);return new De(e,t)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let e=So(this.buf,this.pos);return this.pos+=ae(e),e}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function Do(r){return new To(r instanceof Uint8Array?r:r.subarray())}function W(r,e,t){let n=Do(r);return e.decode(n,void 0,t)}var sa=oe("node:buffer");var Po={};Le(Po,{base10:()=>Cu});var sh=new Uint8Array(0);function Ki(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}function Re(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")}function Hi(r){return new TextEncoder().encode(r)}function $i(r){return new TextDecoder().decode(r)}function Su(r,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n<t.length;n++)t[n]=255;for(var o=0;o<r.length;o++){var s=r.charAt(o),i=s.charCodeAt(0);if(t[i]!==255)throw new TypeError(s+" is ambiguous");t[i]=o}var a=r.length,c=r.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function f(g){if(g instanceof Uint8Array||(ArrayBuffer.isView(g)?g=new Uint8Array(g.buffer,g.byteOffset,g.byteLength):Array.isArray(g)&&(g=Uint8Array.from(g))),!(g instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(g.length===0)return"";for(var w=0,b=0,E=0,_=g.length;E!==_&&g[E]===0;)E++,w++;for(var P=(_-E)*u+1>>>0,N=new Uint8Array(P);E!==_;){for(var $=g[E],ie=0,re=P-1;($!==0||ie<b)&&re!==-1;re--,ie++)$+=256*N[re]>>>0,N[re]=$%a>>>0,$=$/a>>>0;if($!==0)throw new Error("Non-zero carry");b=ie,E++}for(var le=P-b;le!==P&&N[le]===0;)le++;for(var C=c.repeat(w);le<P;++le)C+=r.charAt(N[le]);return C}function p(g){if(typeof g!="string")throw new TypeError("Expected String");if(g.length===0)return new Uint8Array;var w=0;if(g[w]!==" "){for(var b=0,E=0;g[w]===c;)b++,w++;for(var _=(g.length-w)*l+1>>>0,P=new Uint8Array(_);g[w];){var N=t[g.charCodeAt(w)];if(N===255)return;for(var $=0,ie=_-1;(N!==0||$<E)&&ie!==-1;ie--,$++)N+=a*P[ie]>>>0,P[ie]=N%256>>>0,N=N/256>>>0;if(N!==0)throw new Error("Non-zero carry");E=$,w++}if(g[w]!==" "){for(var re=_-E;re!==_&&P[re]===0;)re++;for(var le=new Uint8Array(b+(_-re)),C=b;re!==_;)le[C++]=P[re++];return le}}}function d(g){var w=p(g);if(w)return w;throw new Error(`Non-${e} character`)}return{encode:f,decodeUnsafe:p,decode:d}}var Iu=Su,Au=Iu,Gi=Au;var Co=class{name;prefix;baseEncode;constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},_o=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,n){this.name=e,this.prefix=t;let o=t.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return Fi(this,e)}},Bo=class{decoders;constructor(e){this.decoders=e}or(e){return Fi(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Fi(r,e){return new Bo({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var Oo=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,n,o){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=o,this.encoder=new Co(e,t,n),this.decoder=new _o(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function Rt({name:r,prefix:e,encode:t,decode:n}){return new Oo(r,e,t,n)}function st({name:r,prefix:e,alphabet:t}){let{encode:n,decode:o}=Gi(t,r);return Rt({prefix:e,name:r,encode:n,decode:s=>Re(o(s))})}function Lu(r,e,t,n){let o=r.length;for(;r[o-1]==="=";)--o;let s=new Uint8Array(o*t/8|0),i=0,a=0,c=0;for(let l=0;l<o;++l){let u=e[r[l]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<t|u,i+=t,i>=8&&(i-=8,s[c++]=255&a>>i)}if(i>=t||(255&a<<8-i)!==0)throw new SyntaxError("Unexpected end of data");return s}function Tu(r,e,t){let n=e[e.length-1]==="=",o=(1<<t)-1,s="",i=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],i+=8;i>t;)i-=t,s+=e[o&a>>i];if(i!==0&&(s+=e[o&a<<t-i]),n)for(;(s.length*t&7)!==0;)s+="=";return s}function Du(r){let e={};for(let t=0;t<r.length;++t)e[r[t]]=t;return e}function j({name:r,prefix:e,bitsPerChar:t,alphabet:n}){let o=Du(n);return Rt({prefix:e,name:r,encode(s){return Tu(s,n,t)},decode(s){return Lu(s,o,t,r)}})}var Cu=st({prefix:"9",name:"base10",alphabet:"0123456789"});var Ro={};Le(Ro,{base16:()=>_u,base16upper:()=>Bu});var _u=j({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Bu=j({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var No={};Le(No,{base2:()=>Ou});var Ou=j({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var ko={};Le(ko,{base256emoji:()=>Uu});var zi=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),Pu=zi.reduce((r,e,t)=>(r[t]=e,r),[]),Ru=zi.reduce((r,e,t)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return r[n]=t,r},[]);function Nu(r){return r.reduce((e,t)=>(e+=Pu[t],e),"")}function ku(r){let e=[];for(let t of r){let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);let o=Ru[n];if(o==null)throw new Error(`Non-base256emoji character: ${t}`);e.push(o)}return new Uint8Array(e)}var Uu=Rt({prefix:"\u{1F680}",name:"base256emoji",encode:Nu,decode:ku});var Uo={};Le(Uo,{base32:()=>ze,base32hex:()=>$u,base32hexpad:()=>Gu,base32hexpadupper:()=>Fu,base32hexupper:()=>Vu,base32pad:()=>Ku,base32padupper:()=>Hu,base32upper:()=>Mu,base32z:()=>zu});var ze=j({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Mu=j({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Ku=j({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Hu=j({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),$u=j({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Vu=j({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Gu=j({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Fu=j({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),zu=j({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Mo={};Le(Mo,{base36:()=>sr,base36upper:()=>Wu});var sr=st({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Wu=st({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Ko={};Le(Ko,{base58btc:()=>J,base58flickr:()=>qu});var J=st({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),qu=st({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Vo={};Le(Vo,{base64:()=>Ho,base64pad:()=>Yu,base64url:()=>$o,base64urlpad:()=>Zu});var Ho=j({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Yu=j({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),$o=j({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Zu=j({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Go={};Le(Go,{base8:()=>Xu});var Xu=j({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Fo={};Le(Fo,{identity:()=>Qu});var Qu=Rt({prefix:"\0",name:"identity",encode:r=>$i(r),decode:r=>Hi(r)});var wh=new TextEncoder,vh=new TextDecoder;var Wo={};Le(Wo,{identity:()=>Ke});var el=Yi,Wi=128,tl=127,rl=~tl,nl=Math.pow(2,31);function Yi(r,e,t){e=e||[],t=t||0;for(var n=t;r>=nl;)e[t++]=r&255|Wi,r/=128;for(;r&rl;)e[t++]=r&255|Wi,r>>>=7;return e[t]=r|0,Yi.bytes=t-n+1,e}var ol=zo,sl=128,qi=127;function zo(r,n){var t=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw zo.bytes=0,new RangeError("Could not decode varint");i=r[s++],t+=o<28?(i&qi)<<o:(i&qi)*Math.pow(2,o),o+=7}while(i>=sl);return zo.bytes=s-n,t}var il=Math.pow(2,7),al=Math.pow(2,14),cl=Math.pow(2,21),ul=Math.pow(2,28),ll=Math.pow(2,35),fl=Math.pow(2,42),dl=Math.pow(2,49),hl=Math.pow(2,56),pl=Math.pow(2,63),ml=function(r){return r<il?1:r<al?2:r<cl?3:r<ul?4:r<ll?5:r<fl?6:r<dl?7:r<hl?8:r<pl?9:10},bl={encode:el,decode:ol,encodingLength:ml},yl=bl,ir=yl;function ar(r,e=0){return[ir.decode(r,e),ir.decode.bytes]}function Nt(r,e,t=0){return ir.encode(r,e,t),e}function kt(r){return ir.encodingLength(r)}function Mt(r,e){let t=e.byteLength,n=kt(r),o=n+kt(t),s=new Uint8Array(o+t);return Nt(r,s,0),Nt(t,s,n),s.set(e,o),new Ut(r,t,e,s)}function Xe(r){let e=Re(r),[t,n]=ar(e),[o,s]=ar(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new Ut(t,o,i,e)}function Zi(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&Ki(r.bytes,t.bytes)}}var Ut=class{code;size;digest;bytes;constructor(e,t,n,o){this.code=e,this.size=t,this.digest=n,this.bytes=o}};var Xi=0,gl="identity",Qi=Re;function xl(r,e){if(e?.truncate!=null&&e.truncate!==r.byteLength){if(e.truncate<0||e.truncate>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,e.truncate)}return Mt(Xi,Qi(r))}var Ke={code:Xi,name:gl,encode:Qi,digest:xl};var Qo={};Le(Qo,{sha256:()=>Xo,sha512:()=>wl});var Zo=Te(oe("crypto"),1);var El=20;function Yo({name:r,code:e,encode:t,minDigestLength:n,maxDigestLength:o}){return new qo(r,e,t,n,o)}var qo=class{name;code;encode;minDigestLength;maxDigestLength;constructor(e,t,n,o,s){this.name=e,this.code=t,this.encode=n,this.minDigestLength=o??El,this.maxDigestLength=s}digest(e,t){if(t?.truncate!=null){if(t.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&t.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(e instanceof Uint8Array){let n=this.encode(e);return n instanceof Uint8Array?ji(n,this.code,t?.truncate):n.then(o=>ji(o,this.code,t?.truncate))}else throw Error("Unknown type, must be binary type")}};function ji(r,e,t){if(t!=null&&t!==r.byteLength){if(t>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,t)}return Mt(e,r)}var Xo=Yo({name:"sha2-256",code:18,encode:r=>Re(Zo.default.createHash("sha256").update(r).digest())}),wl=Yo({name:"sha2-512",code:19,encode:r=>Re(Zo.default.createHash("sha512").update(r).digest())});function ea(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return Sl(t,jo(r),e??J.encoder);default:return Il(t,jo(r),e??ze.encoder)}}var ta=new WeakMap;function jo(r){let e=ta.get(r);if(e==null){let t=new Map;return ta.set(r,t),t}return e}var se=class r{code;version;multihash;bytes;"/";constructor(e,t,n,o){this.code=t,this.version=e,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:t}=this;if(e!==cr)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Al)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(t)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:e,digest:t}=this.multihash,n=Mt(e,t);return r.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(e){return r.equals(this,e)}static equals(e,t){let n=t;return n!=null&&e.code===n.code&&e.version===n.version&&Zi(e.multihash,n.multihash)}toString(e){return ea(this,e)}toJSON(){return{"/":ea(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let t=e;if(t instanceof r)return t;if(t["/"]!=null&&t["/"]===t.bytes||t.asCID===t){let{version:n,code:o,multihash:s,bytes:i}=t;return new r(n,o,s,i??ra(n,o,s.bytes))}else if(t[Ll]===!0){let{version:n,multihash:o,code:s}=t,i=Xe(o);return r.create(n,s,i)}else return null}static create(e,t,n){if(typeof t!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(t!==cr)throw new Error(`Version 0 CID must use dag-pb (code: ${cr}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let o=ra(e,t,n.bytes);return new r(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,cr,e)}static createV1(e,t){return r.create(1,e,t)}static decode(e){let[t,n]=r.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=r.inspectBytes(e),n=t.size-t.multihashSize,o=Re(e.subarray(n,n+t.multihashSize));if(o.byteLength!==t.multihashSize)throw new Error("Incorrect length");let s=o.subarray(t.multihashSize-t.digestSize),i=new Ut(t.multihashCode,t.digestSize,s,o);return[t.version===0?r.createV0(i):r.createV1(t.codec,i),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[f,p]=ar(e.subarray(t));return t+=p,f},o=n(),s=cr;if(o===18?(o=0,t=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=t,a=n(),c=n(),l=t+c,u=l-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:u,size:l}}static parse(e,t){let[n,o]=vl(e,t),s=r.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return jo(s).set(n,e),s}};function vl(r,e){switch(r[0]){case"Q":{let t=e??J;return[J.prefix,t.decode(`${J.prefix}${r}`)]}case J.prefix:{let t=e??J;return[J.prefix,t.decode(r)]}case ze.prefix:{let t=e??ze;return[ze.prefix,t.decode(r)]}case sr.prefix:{let t=e??sr;return[sr.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}}function Sl(r,e,t){let{prefix:n}=t;if(n!==J.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let o=e.get(n);if(o==null){let s=t.encode(r).slice(1);return e.set(n,s),s}else return o}function Il(r,e,t){let{prefix:n}=t,o=e.get(n);if(o==null){let s=t.encode(r);return e.set(n,s),s}else return o}var cr=112,Al=18;function ra(r,e,t){let n=kt(r),o=n+kt(e),s=new Uint8Array(o+t.byteLength);return Nt(r,s,0),Nt(e,s,n),s.set(t,o),s}var Ll=Symbol.for("@ipld/js-cid/CID");var ur={...Fo,...No,...Go,...Po,...Ro,...Uo,...Mo,...Ko,...Vo,...ko},zh={...Qo,...Wo};function oa(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var na=oa("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Jo=oa("ascii","a",r=>{let e="a";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return e},r=>{r=r.substring(1);let e=Se(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),Tl={utf8:na,"utf-8":na,hex:ur.base16,latin1:Jo,ascii:Jo,binary:Jo,...ur},Kr=Tl;function ye(r,e="utf8"){let t=Kr[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return e==="utf8"||e==="utf-8"?pt(sa.Buffer.from(r,"utf-8")):t.decoder.decode(`${t.prefix}${r}`)}function es(r){let e=r??8192,t=e>>>1,n,o=e;return function(i){if(i<1||i>t)return Se(i);o+i>e&&(n=Se(e),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var gt=class{fn;len;next;val;constructor(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}};function ts(){}var ns=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},Dl=es();function Cl(r){return globalThis.Buffer!=null?Se(r):Dl(r)}var fr=class{len;head;tail;states;constructor(){this.len=0,this.head=new gt(ts,0,0),this.tail=this.head,this.states=null}_push(e,t,n){return this.tail=this.tail.next=new gt(e,t,n),this.len+=t,this}uint32(e){return this.len+=(this.tail=this.tail.next=new os((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this}int32(e){return e<0?this._push(Hr,10,De.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let t=De.fromBigInt(e);return this._push(Hr,t.length(),t)}uint64Number(e){return this._push(Pt,ae(e),e)}uint64String(e){return this.uint64(BigInt(e))}int64(e){return this.uint64(e)}int64Number(e){return this.uint64Number(e)}int64String(e){return this.uint64String(e)}sint64(e){let t=De.fromBigInt(e).zzEncode();return this._push(Hr,t.length(),t)}sint64Number(e){let t=De.fromNumber(e).zzEncode();return this._push(Hr,t.length(),t)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(rs,1,e?1:0)}fixed32(e){return this._push(lr,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let t=De.fromBigInt(e);return this._push(lr,4,t.lo)._push(lr,4,t.hi)}fixed64Number(e){let t=De.fromNumber(e);return this._push(lr,4,t.lo)._push(lr,4,t.hi)}fixed64String(e){return this.fixed64(BigInt(e))}sfixed64(e){return this.fixed64(e)}sfixed64Number(e){return this.fixed64Number(e)}sfixed64String(e){return this.fixed64String(e)}float(e){return this._push(Bi,4,e)}double(e){return this._push(Pi,8,e)}bytes(e){let t=e.length>>>0;return t===0?this._push(rs,1,0):this.uint32(t)._push(Bl,t,e)}string(e){let t=ki(e);return t!==0?this.uint32(t)._push(Lo,t,e):this._push(rs,1,0)}fork(){return this.states=new ns(this),this.head=this.tail=new gt(ts,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new gt(ts,0,0),this.len=0),this}ldelim(){let e=this.head,t=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=e.next,this.tail=t,this.len+=n),this}finish(){let e=this.head.next,t=Cl(this.len),n=0;for(;e!=null;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t}};function rs(r,e,t){e[t]=r&255}function _l(r,e,t){for(;r>127;)e[t++]=r&127|128,r>>>=7;e[t]=r}var os=class extends gt{next;constructor(e,t){super(_l,e,t),this.next=void 0}};function Hr(r,e,t){for(;r.hi!==0;)e[t++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)e[t++]=r.lo&127|128,r.lo=r.lo>>>7;e[t++]=r.lo}function lr(r,e,t){e[t]=r&255,e[t+1]=r>>>8&255,e[t+2]=r>>>16&255,e[t+3]=r>>>24}function Bl(r,e,t){e.set(r,t)}globalThis.Buffer!=null&&(fr.prototype.bytes=function(r){let e=r.length>>>0;return this.uint32(e),e>0&&this._push(Ol,e,r),this},fr.prototype.string=function(r){let e=globalThis.Buffer.byteLength(r);return this.uint32(e),e>0&&this._push(Pl,e,r),this});function Ol(r,e,t){e.set(r,t)}function Pl(r,e,t){r.length<40?Lo(r,e,t):e.utf8Write!=null?e.utf8Write(r,t):e.set(ye(r),t)}function ss(){return new fr}function q(r,e){let t=ss();return e.encode(r,t,{lengthDelimited:!1}),t.finish()}var Kt;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(Kt||(Kt={}));function $r(r,e,t,n){return{name:r,type:e,encode:t,decode:n}}function He(r){function e(o){if(r[o.toString()]==null)throw new Error("Invalid enum value");return r[o]}let t=function(s,i){let a=e(s);i.int32(a)},n=function(s){let i=s.int32();return e(i)};return $r("enum",Kt.VARINT,t,n)}function Y(r,e){return $r("message",Kt.LENGTH_DELIMITED,r,e)}var Ne;(function(r){let e;(function(o){o.IDENTIFY="IDENTIFY",o.CONNECT="CONNECT",o.STREAM_OPEN="STREAM_OPEN",o.STREAM_HANDLER="STREAM_HANDLER",o.DHT="DHT",o.LIST_PEERS="LIST_PEERS",o.CONNMANAGER="CONNMANAGER",o.DISCONNECT="DISCONNECT",o.PUBSUB="PUBSUB",o.PEERSTORE="PEERSTORE"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.IDENTIFY=0]="IDENTIFY",o[o.CONNECT=1]="CONNECT",o[o.STREAM_OPEN=2]="STREAM_OPEN",o[o.STREAM_HANDLER=3]="STREAM_HANDLER",o[o.DHT=4]="DHT",o[o.LIST_PEERS=5]="LIST_PEERS",o[o.CONNMANAGER=6]="CONNMANAGER",o[o.DISCONNECT=7]="DISCONNECT",o[o.PUBSUB=8]="PUBSUB",o[o.PEERSTORE=9]="PEERSTORE"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.connect!=null&&(s.uint32(18),Gr.codec().encode(o.connect,s)),o.streamOpen!=null&&(s.uint32(26),Fr.codec().encode(o.streamOpen,s)),o.streamHandler!=null&&(s.uint32(34),zr.codec().encode(o.streamHandler,s)),o.dht!=null&&(s.uint32(42),ke.codec().encode(o.dht,s)),o.connManager!=null&&(s.uint32(50),qr.codec().encode(o.connManager,s)),o.disconnect!=null&&(s.uint32(58),Yr.codec().encode(o.disconnect,s)),o.pubsub!=null&&(s.uint32(66),Qe.codec().encode(o.pubsub,s)),o.peerStore!=null&&(s.uint32(74),xt.codec().encode(o.peerStore,s)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.connect=Gr.codec().decode(o,o.uint32());break;case 3:i.streamOpen=Fr.codec().decode(o,o.uint32());break;case 4:i.streamHandler=zr.codec().decode(o,o.uint32());break;case 5:i.dht=ke.codec().decode(o,o.uint32());break;case 6:i.connManager=qr.codec().decode(o,o.uint32());break;case 7:i.disconnect=Yr.codec().decode(o,o.uint32());break;case 8:i.pubsub=Qe.codec().decode(o,o.uint32());break;case 9:i.peerStore=xt.codec().decode(o,o.uint32());break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(Ne||(Ne={}));var ee;(function(r){let e;(function(o){o.OK="OK",o.ERROR="ERROR"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.OK=0]="OK",o[o.ERROR=1]="ERROR"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{if(i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.error!=null&&(s.uint32(18),Wr.codec().encode(o.error,s)),o.streamInfo!=null&&(s.uint32(26),Ht.codec().encode(o.streamInfo,s)),o.identify!=null&&(s.uint32(34),Vr.codec().encode(o.identify,s)),o.dht!=null&&(s.uint32(42),de.codec().encode(o.dht,s)),o.peers!=null)for(let a of o.peers)s.uint32(50),it.codec().encode(a,s);o.pubsub!=null&&(s.uint32(58),Zr.codec().encode(o.pubsub,s)),o.peerStore!=null&&(s.uint32(66),Xr.codec().encode(o.peerStore,s)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={peers:[]},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.error=Wr.codec().decode(o,o.uint32());break;case 3:i.streamInfo=Ht.codec().decode(o,o.uint32());break;case 4:i.identify=Vr.codec().decode(o,o.uint32());break;case 5:i.dht=de.codec().decode(o,o.uint32());break;case 6:i.peers.push(it.codec().decode(o,o.uint32()));break;case 7:i.pubsub=Zr.codec().decode(o,o.uint32());break;case 8:i.peerStore=Xr.codec().decode(o,o.uint32());break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(ee||(ee={}));var Vr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.id!=null&&t.id.byteLength>0&&(n.uint32(10),n.bytes(t.id)),t.addrs!=null)for(let s of t.addrs)n.uint32(18),n.bytes(s);o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={id:new Uint8Array(0),addrs:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.id=t.bytes();break;case 2:o.addrs.push(t.bytes());break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Vr||(Vr={}));var Gr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.peer!=null&&t.peer.byteLength>0&&(n.uint32(10),n.bytes(t.peer)),t.addrs!=null)for(let s of t.addrs)n.uint32(18),n.bytes(s);t.timeout!=null&&(n.uint32(24),n.int64(t.timeout)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={peer:new Uint8Array(0),addrs:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.peer=t.bytes();break;case 2:o.addrs.push(t.bytes());break;case 3:o.timeout=t.int64();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Gr||(Gr={}));var Fr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.peer!=null&&t.peer.byteLength>0&&(n.uint32(10),n.bytes(t.peer)),t.proto!=null)for(let s of t.proto)n.uint32(18),n.string(s);t.timeout!=null&&(n.uint32(24),n.int64(t.timeout)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={peer:new Uint8Array(0),proto:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.peer=t.bytes();break;case 2:o.proto.push(t.string());break;case 3:o.timeout=t.int64();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Fr||(Fr={}));var zr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.addr!=null&&t.addr.byteLength>0&&(n.uint32(10),n.bytes(t.addr)),t.proto!=null)for(let s of t.proto)n.uint32(18),n.string(s);o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={addr:new Uint8Array(0),proto:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.addr=t.bytes();break;case 2:o.proto.push(t.string());break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(zr||(zr={}));var Wr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.msg!=null&&t.msg!==""&&(n.uint32(10),n.string(t.msg)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={msg:""},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.msg=t.string();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Wr||(Wr={}));var Ht;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.peer!=null&&t.peer.byteLength>0&&(n.uint32(10),n.bytes(t.peer)),t.addr!=null&&t.addr.byteLength>0&&(n.uint32(18),n.bytes(t.addr)),t.proto!=null&&t.proto!==""&&(n.uint32(26),n.string(t.proto)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={peer:new Uint8Array(0),addr:new Uint8Array(0),proto:""},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.peer=t.bytes();break;case 2:o.addr=t.bytes();break;case 3:o.proto=t.string();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Ht||(Ht={}));var ke;(function(r){let e;(function(o){o.FIND_PEER="FIND_PEER",o.FIND_PEERS_CONNECTED_TO_PEER="FIND_PEERS_CONNECTED_TO_PEER",o.FIND_PROVIDERS="FIND_PROVIDERS",o.GET_CLOSEST_PEERS="GET_CLOSEST_PEERS",o.GET_PUBLIC_KEY="GET_PUBLIC_KEY",o.GET_VALUE="GET_VALUE",o.SEARCH_VALUE="SEARCH_VALUE",o.PUT_VALUE="PUT_VALUE",o.PROVIDE="PROVIDE"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.FIND_PEER=0]="FIND_PEER",o[o.FIND_PEERS_CONNECTED_TO_PEER=1]="FIND_PEERS_CONNECTED_TO_PEER",o[o.FIND_PROVIDERS=2]="FIND_PROVIDERS",o[o.GET_CLOSEST_PEERS=3]="GET_CLOSEST_PEERS",o[o.GET_PUBLIC_KEY=4]="GET_PUBLIC_KEY",o[o.GET_VALUE=5]="GET_VALUE",o[o.SEARCH_VALUE=6]="SEARCH_VALUE",o[o.PUT_VALUE=7]="PUT_VALUE",o[o.PROVIDE=8]="PROVIDE"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.peer!=null&&(s.uint32(18),s.bytes(o.peer)),o.cid!=null&&(s.uint32(26),s.bytes(o.cid)),o.key!=null&&(s.uint32(34),s.bytes(o.key)),o.value!=null&&(s.uint32(42),s.bytes(o.value)),o.count!=null&&(s.uint32(48),s.int32(o.count)),o.timeout!=null&&(s.uint32(56),s.int64(o.timeout)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.peer=o.bytes();break;case 3:i.cid=o.bytes();break;case 4:i.key=o.bytes();break;case 5:i.value=o.bytes();break;case 6:i.count=o.int32();break;case 7:i.timeout=o.int64();break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(ke||(ke={}));var de;(function(r){let e;(function(o){o.BEGIN="BEGIN",o.VALUE="VALUE",o.END="END"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.BEGIN=0]="BEGIN",o[o.VALUE=1]="VALUE",o[o.END=2]="END"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.peer!=null&&(s.uint32(18),it.codec().encode(o.peer,s)),o.value!=null&&(s.uint32(26),s.bytes(o.value)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.peer=it.codec().decode(o,o.uint32());break;case 3:i.value=o.bytes();break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(de||(de={}));var it;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.id!=null&&t.id.byteLength>0&&(n.uint32(10),n.bytes(t.id)),t.addrs!=null)for(let s of t.addrs)n.uint32(18),n.bytes(s);o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={id:new Uint8Array(0),addrs:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.id=t.bytes();break;case 2:o.addrs.push(t.bytes());break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(it||(it={}));var qr;(function(r){let e;(function(o){o.TAG_PEER="TAG_PEER",o.UNTAG_PEER="UNTAG_PEER",o.TRIM="TRIM"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.TAG_PEER=0]="TAG_PEER",o[o.UNTAG_PEER=1]="UNTAG_PEER",o[o.TRIM=2]="TRIM"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.peer!=null&&(s.uint32(18),s.bytes(o.peer)),o.tag!=null&&(s.uint32(26),s.string(o.tag)),o.weight!=null&&(s.uint32(32),s.int64(o.weight)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.peer=o.bytes();break;case 3:i.tag=o.string();break;case 4:i.weight=o.int64();break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(qr||(qr={}));var Yr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.peer!=null&&t.peer.byteLength>0&&(n.uint32(10),n.bytes(t.peer)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={peer:new Uint8Array(0)},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.peer=t.bytes();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Yr||(Yr={}));var Qe;(function(r){let e;(function(o){o.GET_TOPICS="GET_TOPICS",o.LIST_PEERS="LIST_PEERS",o.PUBLISH="PUBLISH",o.SUBSCRIBE="SUBSCRIBE"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.GET_TOPICS=0]="GET_TOPICS",o[o.LIST_PEERS=1]="LIST_PEERS",o[o.PUBLISH=2]="PUBLISH",o[o.SUBSCRIBE=3]="SUBSCRIBE"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.topic!=null&&(s.uint32(18),s.string(o.topic)),o.data!=null&&(s.uint32(26),s.bytes(o.data)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.topic=o.string();break;case 3:i.data=o.bytes();break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(Qe||(Qe={}));var dr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.from!=null&&(n.uint32(10),n.bytes(t.from)),t.data!=null&&(n.uint32(18),n.bytes(t.data)),t.seqno!=null&&(n.uint32(26),n.bytes(t.seqno)),t.topicIDs!=null)for(let s of t.topicIDs)n.uint32(34),n.string(s);t.signature!=null&&(n.uint32(42),n.bytes(t.signature)),t.key!=null&&(n.uint32(50),n.bytes(t.key)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={topicIDs:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.from=t.bytes();break;case 2:o.data=t.bytes();break;case 3:o.seqno=t.bytes();break;case 4:o.topicIDs.push(t.string());break;case 5:o.signature=t.bytes();break;case 6:o.key=t.bytes();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(dr||(dr={}));var Zr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.topics!=null)for(let s of t.topics)n.uint32(10),n.string(s);if(t.peerIDs!=null)for(let s of t.peerIDs)n.uint32(18),n.bytes(s);o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={topics:[],peerIDs:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.topics.push(t.string());break;case 2:o.peerIDs.push(t.bytes());break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Zr||(Zr={}));var xt;(function(r){let e;(function(o){o.UNSPECIFIED="UNSPECIFIED",o.GET_PROTOCOLS="GET_PROTOCOLS",o.GET_PEER_INFO="GET_PEER_INFO"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.UNSPECIFIED=0]="UNSPECIFIED",o[o.GET_PROTOCOLS=1]="GET_PROTOCOLS",o[o.GET_PEER_INFO=2]="GET_PEER_INFO"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{if(i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.id!=null&&(s.uint32(18),s.bytes(o.id)),o.protos!=null)for(let a of o.protos)s.uint32(26),s.string(a);i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={protos:[]},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.id=o.bytes();break;case 3:i.protos.push(o.string());break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(xt||(xt={}));var Xr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.peer!=null&&(n.uint32(10),it.codec().encode(t.peer,n)),t.protos!=null)for(let s of t.protos)n.uint32(18),n.string(s);o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={protos:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.peer=it.codec().decode(t,t.uint32());break;case 2:o.protos.push(t.string());break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Xr||(Xr={}));function ia(r){let e=new globalThis.AbortController;function t(){let s=r.filter(i=>i?.aborted===!0).map(i=>i?.reason).pop();e.abort(s);for(let i of r)i?.removeEventListener!=null&&i.removeEventListener("abort",t)}for(let s of r){if(s?.aborted===!0){t();break}s?.addEventListener!=null&&s.addEventListener("abort",t)}function n(){for(let s of r)s?.removeEventListener!=null&&s.removeEventListener("abort",t)}let o=e.signal;return o.clear=n,o}var hr=class{onConnection;constructor(e){this.onConnection=e}async upgradeInbound(e){this.onConnection?.(e)}async upgradeOutbound(e){return e}createInboundAbortSignal(e){return ia([e])}getStreamMuxers(){return new Map}getConnectionEncrypters(){return new Map}};var ua=Te(oe("node:tty"),1),tn=Te(oe("node:util"),1);function Rl(r,e){if(typeof r=="string")return Nl(r);if(typeof r=="number")return Ml(r,e);throw Error(`Value provided to ms() must be a string or number. value=${JSON.stringify(r)}`)}var Qr=Rl;function Nl(r){if(typeof r!="string"||r.length===0||r.length>100)throw Error(`Value provided to ms.parse() must be a string with length between 1 and 99. value=${JSON.stringify(r)}`);let e=/^(?<value>-?\d*\.?\d+) *(?<unit>milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|months?|mo|years?|yrs?|y)?$/i.exec(r);if(!e?.groups)return NaN;let{value:t,unit:n="ms"}=e.groups,o=parseFloat(t),s=n.toLowerCase();switch(s){case"years":case"year":case"yrs":case"yr":case"y":return o*315576e5;case"months":case"month":case"mo":return o*26298e5;case"weeks":case"week":case"w":return o*6048e5;case"days":case"day":case"d":return o*864e5;case"hours":case"hour":case"hrs":case"hr":case"h":return o*36e5;case"minutes":case"minute":case"mins":case"min":case"m":return o*6e4;case"seconds":case"second":case"secs":case"sec":case"s":return o*1e3;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:throw Error(`Unknown unit "${s}" provided to ms.parse(). value=${JSON.stringify(r)}`)}}function kl(r){let e=Math.abs(r);return e>=315576e5?`${Math.round(r/315576e5)}y`:e>=26298e5?`${Math.round(r/26298e5)}mo`:e>=6048e5?`${Math.round(r/6048e5)}w`:e>=864e5?`${Math.round(r/864e5)}d`:e>=36e5?`${Math.round(r/36e5)}h`:e>=6e4?`${Math.round(r/6e4)}m`:e>=1e3?`${Math.round(r/1e3)}s`:`${r}ms`}function Ul(r){let e=Math.abs(r);return e>=315576e5?Et(r,e,315576e5,"year"):e>=26298e5?Et(r,e,26298e5,"month"):e>=6048e5?Et(r,e,6048e5,"week"):e>=864e5?Et(r,e,864e5,"day"):e>=36e5?Et(r,e,36e5,"hour"):e>=6e4?Et(r,e,6e4,"minute"):e>=1e3?Et(r,e,1e3,"second"):`${r} ms`}function Ml(r,e){if(typeof r!="number"||!Number.isFinite(r))throw Error("Value provided to ms.format() must be of type number.");return e?.long?Ul(r):kl(r)}function Et(r,e,t,n){let o=e>=t*1.5;return`${Math.round(r/t)} ${n}${o?"s":""}`}var Jr=Te(oe("node:process"),1),ca=Te(oe("node:os"),1),is=Te(oe("node:tty"),1);function Ue(r,e=globalThis.Deno?globalThis.Deno.args:Jr.default.argv){let t=r.startsWith("-")?"":r.length===1?"-":"--",n=e.indexOf(t+r),o=e.indexOf("--");return n!==-1&&(o===-1||n<o)}var{env:z}=Jr.default,jr;Ue("no-color")||Ue("no-colors")||Ue("color=false")||Ue("color=never")?jr=0:(Ue("color")||Ue("colors")||Ue("color=true")||Ue("color=always"))&&(jr=1);function Kl(){if(!("FORCE_COLOR"in z))return;if(z.FORCE_COLOR==="true")return 1;if(z.FORCE_COLOR==="false")return 0;if(z.FORCE_COLOR.length===0)return 1;let r=Math.min(Number.parseInt(z.FORCE_COLOR,10),3);if([0,1,2,3].includes(r))return r}function Hl(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function $l(r,{streamIsTTY:e,sniffFlags:t=!0}={}){let n=Kl();n!==void 0&&(jr=n);let o=t?jr:n;if(o===0)return 0;if(t){if(Ue("color=16m")||Ue("color=full")||Ue("color=truecolor"))return 3;if(Ue("color=256"))return 2}if("TF_BUILD"in z&&"AGENT_NAME"in z)return 1;if(r&&!e&&o===void 0)return 0;let s=o||0;if(z.TERM==="dumb")return s;if(Jr.default.platform==="win32"){let i=ca.default.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in z)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(i=>i in z)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(i=>i in z)||z.CI_NAME==="codeship"?1:s;if("TEAMCITY_VERSION"in z)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(z.TEAMCITY_VERSION)?1:0;if(z.COLORTERM==="truecolor"||z.TERM==="xterm-kitty"||z.TERM==="xterm-ghostty"||z.TERM==="wezterm")return 3;if("TERM_PROGRAM"in z){let i=Number.parseInt((z.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(z.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(z.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(z.TERM)||"COLORTERM"in z?1:s}function aa(r,e={}){let t=$l(r,{streamIsTTY:r&&r.isTTY,...e});return Hl(t)}var Vl={stdout:aa({isTTY:is.default.isatty(1)}),stderr:aa({isTTY:is.default.isatty(2)})},en=Vl;function as(r){t.debug=t,t.default=t,t.coerce=c,t.disable=s,t.enable=o,t.enabled=i,t.humanize=Qr,t.destroy=l,Object.keys(r).forEach(u=>{t[u]=r[u]}),t.names=[],t.skips=[],t.formatters={};function e(u){let f=0;for(let p=0;p<u.length;p++)f=(f<<5)-f+u.charCodeAt(p),f|=0;return t.colors[Math.abs(f)%t.colors.length]}t.selectColor=e;function t(u,f){let p,d=null,g,w;function b(...E){if(!b.enabled)return;let _=b,P=Number(new Date),N=P-(p||P);_.diff=N,_.prev=p,_.curr=P,p=P,E[0]=t.coerce(E[0]),typeof E[0]!="string"&&E.unshift("%O");let $=0;E[0]=E[0].replace(/%([a-zA-Z%])/g,(re,le)=>{if(re==="%%")return"%";$++;let C=t.formatters[le];if(typeof C=="function"){let Ot=E[$];re=C.call(_,Ot),E.splice($,1),$--}return re}),t.formatArgs.call(_,E),f?.onLog!=null&&f.onLog(...E),(_.log||t.log).apply(_,E)}return b.namespace=u,b.useColors=t.useColors(),b.color=t.selectColor(u),b.extend=n,b.destroy=t.destroy,Object.defineProperty(b,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(g!==t.namespaces&&(g=t.namespaces,w=t.enabled(u)),w),set:E=>{d=E}}),typeof t.init=="function"&&t.init(b),b}function n(u,f){let p=t(this.namespace+(typeof f>"u"?":":f)+u);return p.log=this.log,p}function o(u){t.save(u),t.namespaces=u,t.names=[],t.skips=[];let f,p=(typeof u=="string"?u:"").split(/[\s,]+/),d=p.length;for(f=0;f<d;f++)p[f]&&(u=p[f].replace(/\*/g,".*?"),u[0]==="-"?t.skips.push(new RegExp("^"+u.substr(1)+"$")):t.names.push(new RegExp("^"+u+"$")))}function s(){let u=[...t.names.map(a),...t.skips.map(a).map(f=>"-"+f)].join(",");return t.enable(""),u}function i(u){if(u[u.length-1]==="*")return!0;let f,p;for(f=0,p=t.skips.length;f<p;f++)if(t.skips[f].test(u))return!1;for(f=0,p=t.names.length;f<p;f++)if(t.names[f].test(u))return!0;return!1}function a(u){return u.toString().substring(2,u.toString().length-2).replace(/\.\*\?$/,"*")}function c(u){return u instanceof Error?u.stack??u.message:u}function l(){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 t.setupFormatters(t.formatters),t.enable(t.load()),t}var la=[6,2,3,4,5,1];en.stderr!==!1&&(en.stderr??en).level>=2&&(la=[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]);var $t=Object.keys(process.env).filter(r=>/^debug_/i.test(r)).reduce((r,e)=>{let t=e.substring(6).toLowerCase().replace(/_([a-z])/g,(o,s)=>s.toUpperCase()),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),r[t]=n,r},{});function Gl(){return"colors"in $t?!!$t.colors:ua.default.isatty(process.stderr.fd)}function Fl(r){let{namespace:e,useColors:t}=this;if(t===!0){let n=this.color,o="\x1B[3"+(n<8?n:"8;5;"+n),s=` ${o};1m${e} \x1B[0m`;r[0]=s+r[0].split(`
2
+ "use strict";var Libp2PDaemonServer=(()=>{var cu=Object.create;var Rr=Object.defineProperty;var uu=Object.getOwnPropertyDescriptor;var lu=Object.getOwnPropertyNames;var fu=Object.getPrototypeOf,du=Object.prototype.hasOwnProperty;var oe=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+r+'" is not supported')});var Le=(r,e)=>{for(var t in e)Rr(r,t,{get:e[t],enumerable:!0})},Ci=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of lu(e))!du.call(r,o)&&o!==t&&Rr(r,o,{get:()=>e[o],enumerable:!(n=uu(e,o))||n.enumerable});return r};var Te=(r,e,t)=>(t=r!=null?cu(fu(r)):{},Ci(e||!r||!r.__esModule?Rr(t,"default",{value:r,enumerable:!0}):t,r)),hu=r=>Ci(Rr({},"__esModule",{value:!0}),r);var Gd={};Le(Gd,{Server:()=>yo,createServer:()=>Vd});var go=oe("node:buffer");function pt(r){return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function Ze(r=0){return pt(go.Buffer.alloc(r))}function Se(r=0){return pt(go.Buffer.allocUnsafe(r))}var pu=Math.pow(2,7),mu=Math.pow(2,14),bu=Math.pow(2,21),xo=Math.pow(2,28),Eo=Math.pow(2,35),wo=Math.pow(2,42),vo=Math.pow(2,49),k=128,me=127;function ae(r){if(r<pu)return 1;if(r<mu)return 2;if(r<bu)return 3;if(r<xo)return 4;if(r<Eo)return 5;if(r<wo)return 6;if(r<vo)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Pt(r,e,t=0){switch(ae(r)){case 8:e[t++]=r&255|k,r/=128;case 7:e[t++]=r&255|k,r/=128;case 6:e[t++]=r&255|k,r/=128;case 5:e[t++]=r&255|k,r/=128;case 4:e[t++]=r&255|k,r>>>=7;case 3:e[t++]=r&255|k,r>>>=7;case 2:e[t++]=r&255|k,r>>>=7;case 1:{e[t++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return e}function yu(r,e,t=0){switch(ae(r)){case 8:e.set(t++,r&255|k),r/=128;case 7:e.set(t++,r&255|k),r/=128;case 6:e.set(t++,r&255|k),r/=128;case 5:e.set(t++,r&255|k),r/=128;case 4:e.set(t++,r&255|k),r>>>=7;case 3:e.set(t++,r&255|k),r>>>=7;case 2:e.set(t++,r&255|k),r>>>=7;case 1:{e.set(t++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return e}function So(r,e){let t=r[e],n=0;if(n+=t&me,t<k||(t=r[e+1],n+=(t&me)<<7,t<k)||(t=r[e+2],n+=(t&me)<<14,t<k)||(t=r[e+3],n+=(t&me)<<21,t<k)||(t=r[e+4],n+=(t&me)*xo,t<k)||(t=r[e+5],n+=(t&me)*Eo,t<k)||(t=r[e+6],n+=(t&me)*wo,t<k)||(t=r[e+7],n+=(t&me)*vo,t<k))return n;throw new RangeError("Could not decode varint")}function gu(r,e){let t=r.get(e),n=0;if(n+=t&me,t<k||(t=r.get(e+1),n+=(t&me)<<7,t<k)||(t=r.get(e+2),n+=(t&me)<<14,t<k)||(t=r.get(e+3),n+=(t&me)<<21,t<k)||(t=r.get(e+4),n+=(t&me)*xo,t<k)||(t=r.get(e+5),n+=(t&me)*Eo,t<k)||(t=r.get(e+6),n+=(t&me)*wo,t<k)||(t=r.get(e+7),n+=(t&me)*vo,t<k))return n;throw new RangeError("Could not decode varint")}function Nr(r,e,t=0){return e==null&&(e=Se(ae(r))),e instanceof Uint8Array?Pt(r,e,t):yu(r,e,t)}function mt(r,e=0){return r instanceof Uint8Array?So(r,e):gu(r,e)}var Io=new Float32Array([-0]),ot=new Uint8Array(Io.buffer);function _i(r,e,t){Io[0]=r,e[t]=ot[0],e[t+1]=ot[1],e[t+2]=ot[2],e[t+3]=ot[3]}function Bi(r,e){return ot[0]=r[e],ot[1]=r[e+1],ot[2]=r[e+2],ot[3]=r[e+3],Io[0]}var Ao=new Float64Array([-0]),be=new Uint8Array(Ao.buffer);function Oi(r,e,t){Ao[0]=r,e[t]=be[0],e[t+1]=be[1],e[t+2]=be[2],e[t+3]=be[3],e[t+4]=be[4],e[t+5]=be[5],e[t+6]=be[6],e[t+7]=be[7]}function Pi(r,e){return be[0]=r[e],be[1]=r[e+1],be[2]=r[e+2],be[3]=r[e+3],be[4]=r[e+4],be[5]=r[e+5],be[6]=r[e+6],be[7]=r[e+7],Ao[0]}var xu=BigInt(Number.MAX_SAFE_INTEGER),Eu=BigInt(Number.MIN_SAFE_INTEGER),De=class r{lo;hi;constructor(e,t){this.lo=e|0,this.hi=t|0}toNumber(e=!1){if(!e&&this.hi>>>31>0){let t=~this.lo+1>>>0,n=~this.hi>>>0;return t===0&&(n=n+1>>>0),-(t+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(e=!1){if(e)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let t=~this.lo+1>>>0,n=~this.hi>>>0;return t===0&&(n=n+1>>>0),-(BigInt(t)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(e=!1){return this.toBigInt(e).toString()}zzEncode(){let e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this}zzDecode(){let e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this}length(){let e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?t===0?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:n<128?9:10}static fromBigInt(e){if(e===0n)return bt;if(e<xu&&e>Eu)return this.fromNumber(Number(e));let t=e<0n;t&&(e=-e);let n=e>>32n,o=e-(n<<32n);return t&&(n=~n|0n,o=~o|0n,++o>Ri&&(o=0n,++n>Ri&&(n=0n))),new r(Number(o),Number(n))}static fromNumber(e){if(e===0)return bt;let t=e<0;t&&(e=-e);let n=e>>>0,o=(e-n)/4294967296>>>0;return t&&(o=~o>>>0,n=~n>>>0,++n>4294967295&&(n=0,++o>4294967295&&(o=0))),new r(n,o)}static from(e){return typeof e=="number"?r.fromNumber(e):typeof e=="bigint"?r.fromBigInt(e):typeof e=="string"?r.fromBigInt(BigInt(e)):e.low!=null||e.high!=null?new r(e.low>>>0,e.high>>>0):bt}},bt=new De(0,0);bt.toBigInt=function(){return 0n};bt.zzEncode=bt.zzDecode=function(){return this};bt.length=function(){return 1};var Ri=4294967296n;function Ni(r){let e=0,t=0;for(let n=0;n<r.length;++n)t=r.charCodeAt(n),t<128?e+=1:t<2048?e+=2:(t&64512)===55296&&(r.charCodeAt(n+1)&64512)===56320?(++n,e+=4):e+=3;return e}function ki(r,e,t){if(t-e<1)return"";let o,s=[],i=0,a;for(;e<t;)a=r[e++],a<128?s[i++]=a:a>191&&a<224?s[i++]=(a&31)<<6|r[e++]&63:a>239&&a<365?(a=((a&7)<<18|(r[e++]&63)<<12|(r[e++]&63)<<6|r[e++]&63)-65536,s[i++]=55296+(a>>10),s[i++]=56320+(a&1023)):s[i++]=(a&15)<<12|(r[e++]&63)<<6|r[e++]&63,i>8191&&((o??(o=[])).push(String.fromCharCode.apply(String,s)),i=0);return o!=null?(i>0&&o.push(String.fromCharCode.apply(String,s.slice(0,i))),o.join("")):String.fromCharCode.apply(String,s.slice(0,i))}function Lo(r,e,t){let n=t,o,s;for(let i=0;i<r.length;++i)o=r.charCodeAt(i),o<128?e[t++]=o:o<2048?(e[t++]=o>>6|192,e[t++]=o&63|128):(o&64512)===55296&&((s=r.charCodeAt(i+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++i,e[t++]=o>>18|240,e[t++]=o>>12&63|128,e[t++]=o>>6&63|128,e[t++]=o&63|128):(e[t++]=o>>12|224,e[t++]=o>>6&63|128,e[t++]=o&63|128);return t-n}function Me(r,e){return RangeError(`index out of range: ${r.pos} + ${e??1} > ${r.len}`)}function Ur(r,e){return(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0}var To=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(e){this.buf=e,this.pos=0,this.len=e.length}uint32(){let e=4294967295;if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,Me(this,10);return e}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Me(this,4);return Ur(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Me(this,4);return Ur(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Me(this,4);let e=Bi(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw Me(this,4);let e=Pi(this.buf,this.pos);return this.pos+=8,e}bytes(){let e=this.uint32(),t=this.pos,n=this.pos+e;if(n>this.len)throw Me(this,e);return this.pos+=e,t===n?new Uint8Array(0):this.buf.subarray(t,n)}string(){let e=this.bytes();return ki(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Me(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Me(this);while((this.buf[this.pos++]&128)!==0);return this}skipType(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${e} at offset ${this.pos}`)}return this}readLongVarint(){let e=new De(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw Me(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<t*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<t*7)>>>0,e}if(this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw Me(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<t*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Me(this,8);let e=Ur(this.buf,this.pos+=4),t=Ur(this.buf,this.pos+=4);return new De(e,t)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let e=So(this.buf,this.pos);return this.pos+=ae(e),e}uint64String(){return this.readLongVarint().toString(!0)}sint64(){return this.readLongVarint().zzDecode().toBigInt()}sint64Number(){return this.readLongVarint().zzDecode().toNumber()}sint64String(){return this.readLongVarint().zzDecode().toString()}fixed64(){return this.readFixed64().toBigInt()}fixed64Number(){return this.readFixed64().toNumber()}fixed64String(){return this.readFixed64().toString()}sfixed64(){return this.readFixed64().toBigInt()}sfixed64Number(){return this.readFixed64().toNumber()}sfixed64String(){return this.readFixed64().toString()}};function Do(r){return new To(r instanceof Uint8Array?r:r.subarray())}function W(r,e,t){let n=Do(r);return e.decode(n,void 0,t)}var oa=oe("node:buffer");var Po={};Le(Po,{base10:()=>Tu});var nh=new Uint8Array(0);function Mi(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}function Re(r){if(r instanceof Uint8Array&&r.constructor.name==="Uint8Array")return r;if(r instanceof ArrayBuffer)return new Uint8Array(r);if(ArrayBuffer.isView(r))return new Uint8Array(r.buffer,r.byteOffset,r.byteLength);throw new Error("Unknown type, must be binary type")}function Ki(r){return new TextEncoder().encode(r)}function Hi(r){return new TextDecoder().decode(r)}function wu(r,e){if(r.length>=255)throw new TypeError("Alphabet too long");for(var t=new Uint8Array(256),n=0;n<t.length;n++)t[n]=255;for(var o=0;o<r.length;o++){var s=r.charAt(o),i=s.charCodeAt(0);if(t[i]!==255)throw new TypeError(s+" is ambiguous");t[i]=o}var a=r.length,c=r.charAt(0),l=Math.log(a)/Math.log(256),u=Math.log(256)/Math.log(a);function f(g){if(g instanceof Uint8Array||(ArrayBuffer.isView(g)?g=new Uint8Array(g.buffer,g.byteOffset,g.byteLength):Array.isArray(g)&&(g=Uint8Array.from(g))),!(g instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(g.length===0)return"";for(var w=0,b=0,E=0,_=g.length;E!==_&&g[E]===0;)E++,w++;for(var P=(_-E)*u+1>>>0,N=new Uint8Array(P);E!==_;){for(var $=g[E],ie=0,re=P-1;($!==0||ie<b)&&re!==-1;re--,ie++)$+=256*N[re]>>>0,N[re]=$%a>>>0,$=$/a>>>0;if($!==0)throw new Error("Non-zero carry");b=ie,E++}for(var le=P-b;le!==P&&N[le]===0;)le++;for(var C=c.repeat(w);le<P;++le)C+=r.charAt(N[le]);return C}function d(g){if(typeof g!="string")throw new TypeError("Expected String");if(g.length===0)return new Uint8Array;var w=0;if(g[w]!==" "){for(var b=0,E=0;g[w]===c;)b++,w++;for(var _=(g.length-w)*l+1>>>0,P=new Uint8Array(_);g[w];){var N=t[g.charCodeAt(w)];if(N===255)return;for(var $=0,ie=_-1;(N!==0||$<E)&&ie!==-1;ie--,$++)N+=a*P[ie]>>>0,P[ie]=N%256>>>0,N=N/256>>>0;if(N!==0)throw new Error("Non-zero carry");E=$,w++}if(g[w]!==" "){for(var re=_-E;re!==_&&P[re]===0;)re++;for(var le=new Uint8Array(b+(_-re)),C=b;re!==_;)le[C++]=P[re++];return le}}}function p(g){var w=d(g);if(w)return w;throw new Error(`Non-${e} character`)}return{encode:f,decodeUnsafe:d,decode:p}}var vu=wu,Su=vu,Vi=Su;var Co=class{name;prefix;baseEncode;constructor(e,t,n){this.name=e,this.prefix=t,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},_o=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,n){this.name=e,this.prefix=t;let o=t.codePointAt(0);if(o===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=o,this.baseDecode=n}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return Gi(this,e)}},Bo=class{decoders;constructor(e){this.decoders=e}or(e){return Gi(this,e)}decode(e){let t=e[0],n=this.decoders[t];if(n!=null)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Gi(r,e){return new Bo({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var Oo=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,n,o){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=o,this.encoder=new Co(e,t,n),this.decoder=new _o(e,t,o)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function Rt({name:r,prefix:e,encode:t,decode:n}){return new Oo(r,e,t,n)}function st({name:r,prefix:e,alphabet:t}){let{encode:n,decode:o}=Vi(t,r);return Rt({prefix:e,name:r,encode:n,decode:s=>Re(o(s))})}function Iu(r,e,t,n){let o=r.length;for(;r[o-1]==="=";)--o;let s=new Uint8Array(o*t/8|0),i=0,a=0,c=0;for(let l=0;l<o;++l){let u=e[r[l]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);a=a<<t|u,i+=t,i>=8&&(i-=8,s[c++]=255&a>>i)}if(i>=t||(255&a<<8-i)!==0)throw new SyntaxError("Unexpected end of data");return s}function Au(r,e,t){let n=e[e.length-1]==="=",o=(1<<t)-1,s="",i=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],i+=8;i>t;)i-=t,s+=e[o&a>>i];if(i!==0&&(s+=e[o&a<<t-i]),n)for(;(s.length*t&7)!==0;)s+="=";return s}function Lu(r){let e={};for(let t=0;t<r.length;++t)e[r[t]]=t;return e}function j({name:r,prefix:e,bitsPerChar:t,alphabet:n}){let o=Lu(n);return Rt({prefix:e,name:r,encode(s){return Au(s,n,t)},decode(s){return Iu(s,o,t,r)}})}var Tu=st({prefix:"9",name:"base10",alphabet:"0123456789"});var Ro={};Le(Ro,{base16:()=>Du,base16upper:()=>Cu});var Du=j({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Cu=j({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var No={};Le(No,{base2:()=>_u});var _u=j({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var ko={};Le(ko,{base256emoji:()=>Nu});var Fi=Array.from("\u{1F680}\u{1FA90}\u2604\u{1F6F0}\u{1F30C}\u{1F311}\u{1F312}\u{1F313}\u{1F314}\u{1F315}\u{1F316}\u{1F317}\u{1F318}\u{1F30D}\u{1F30F}\u{1F30E}\u{1F409}\u2600\u{1F4BB}\u{1F5A5}\u{1F4BE}\u{1F4BF}\u{1F602}\u2764\u{1F60D}\u{1F923}\u{1F60A}\u{1F64F}\u{1F495}\u{1F62D}\u{1F618}\u{1F44D}\u{1F605}\u{1F44F}\u{1F601}\u{1F525}\u{1F970}\u{1F494}\u{1F496}\u{1F499}\u{1F622}\u{1F914}\u{1F606}\u{1F644}\u{1F4AA}\u{1F609}\u263A\u{1F44C}\u{1F917}\u{1F49C}\u{1F614}\u{1F60E}\u{1F607}\u{1F339}\u{1F926}\u{1F389}\u{1F49E}\u270C\u2728\u{1F937}\u{1F631}\u{1F60C}\u{1F338}\u{1F64C}\u{1F60B}\u{1F497}\u{1F49A}\u{1F60F}\u{1F49B}\u{1F642}\u{1F493}\u{1F929}\u{1F604}\u{1F600}\u{1F5A4}\u{1F603}\u{1F4AF}\u{1F648}\u{1F447}\u{1F3B6}\u{1F612}\u{1F92D}\u2763\u{1F61C}\u{1F48B}\u{1F440}\u{1F62A}\u{1F611}\u{1F4A5}\u{1F64B}\u{1F61E}\u{1F629}\u{1F621}\u{1F92A}\u{1F44A}\u{1F973}\u{1F625}\u{1F924}\u{1F449}\u{1F483}\u{1F633}\u270B\u{1F61A}\u{1F61D}\u{1F634}\u{1F31F}\u{1F62C}\u{1F643}\u{1F340}\u{1F337}\u{1F63B}\u{1F613}\u2B50\u2705\u{1F97A}\u{1F308}\u{1F608}\u{1F918}\u{1F4A6}\u2714\u{1F623}\u{1F3C3}\u{1F490}\u2639\u{1F38A}\u{1F498}\u{1F620}\u261D\u{1F615}\u{1F33A}\u{1F382}\u{1F33B}\u{1F610}\u{1F595}\u{1F49D}\u{1F64A}\u{1F639}\u{1F5E3}\u{1F4AB}\u{1F480}\u{1F451}\u{1F3B5}\u{1F91E}\u{1F61B}\u{1F534}\u{1F624}\u{1F33C}\u{1F62B}\u26BD\u{1F919}\u2615\u{1F3C6}\u{1F92B}\u{1F448}\u{1F62E}\u{1F646}\u{1F37B}\u{1F343}\u{1F436}\u{1F481}\u{1F632}\u{1F33F}\u{1F9E1}\u{1F381}\u26A1\u{1F31E}\u{1F388}\u274C\u270A\u{1F44B}\u{1F630}\u{1F928}\u{1F636}\u{1F91D}\u{1F6B6}\u{1F4B0}\u{1F353}\u{1F4A2}\u{1F91F}\u{1F641}\u{1F6A8}\u{1F4A8}\u{1F92C}\u2708\u{1F380}\u{1F37A}\u{1F913}\u{1F619}\u{1F49F}\u{1F331}\u{1F616}\u{1F476}\u{1F974}\u25B6\u27A1\u2753\u{1F48E}\u{1F4B8}\u2B07\u{1F628}\u{1F31A}\u{1F98B}\u{1F637}\u{1F57A}\u26A0\u{1F645}\u{1F61F}\u{1F635}\u{1F44E}\u{1F932}\u{1F920}\u{1F927}\u{1F4CC}\u{1F535}\u{1F485}\u{1F9D0}\u{1F43E}\u{1F352}\u{1F617}\u{1F911}\u{1F30A}\u{1F92F}\u{1F437}\u260E\u{1F4A7}\u{1F62F}\u{1F486}\u{1F446}\u{1F3A4}\u{1F647}\u{1F351}\u2744\u{1F334}\u{1F4A3}\u{1F438}\u{1F48C}\u{1F4CD}\u{1F940}\u{1F922}\u{1F445}\u{1F4A1}\u{1F4A9}\u{1F450}\u{1F4F8}\u{1F47B}\u{1F910}\u{1F92E}\u{1F3BC}\u{1F975}\u{1F6A9}\u{1F34E}\u{1F34A}\u{1F47C}\u{1F48D}\u{1F4E3}\u{1F942}"),Bu=Fi.reduce((r,e,t)=>(r[t]=e,r),[]),Ou=Fi.reduce((r,e,t)=>{let n=e.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${e}`);return r[n]=t,r},[]);function Pu(r){return r.reduce((e,t)=>(e+=Bu[t],e),"")}function Ru(r){let e=[];for(let t of r){let n=t.codePointAt(0);if(n==null)throw new Error(`Invalid character: ${t}`);let o=Ou[n];if(o==null)throw new Error(`Non-base256emoji character: ${t}`);e.push(o)}return new Uint8Array(e)}var Nu=Rt({prefix:"\u{1F680}",name:"base256emoji",encode:Pu,decode:Ru});var Uo={};Le(Uo,{base32:()=>ze,base32hex:()=>Ku,base32hexpad:()=>$u,base32hexpadupper:()=>Vu,base32hexupper:()=>Hu,base32pad:()=>Uu,base32padupper:()=>Mu,base32upper:()=>ku,base32z:()=>Gu});var ze=j({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),ku=j({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Uu=j({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Mu=j({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Ku=j({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Hu=j({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),$u=j({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Vu=j({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Gu=j({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Mo={};Le(Mo,{base36:()=>sr,base36upper:()=>Fu});var sr=st({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Fu=st({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Ko={};Le(Ko,{base58btc:()=>J,base58flickr:()=>zu});var J=st({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),zu=st({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Vo={};Le(Vo,{base64:()=>Ho,base64pad:()=>Wu,base64url:()=>$o,base64urlpad:()=>qu});var Ho=j({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Wu=j({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),$o=j({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),qu=j({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Go={};Le(Go,{base8:()=>Yu});var Yu=j({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Fo={};Le(Fo,{identity:()=>Zu});var Zu=Rt({prefix:"\0",name:"identity",encode:r=>Hi(r),decode:r=>Ki(r)});var xh=new TextEncoder,Eh=new TextDecoder;var Wo={};Le(Wo,{identity:()=>Ke});var ju=qi,zi=128,Ju=127,el=~Ju,tl=Math.pow(2,31);function qi(r,e,t){e=e||[],t=t||0;for(var n=t;r>=tl;)e[t++]=r&255|zi,r/=128;for(;r&el;)e[t++]=r&255|zi,r>>>=7;return e[t]=r|0,qi.bytes=t-n+1,e}var rl=zo,nl=128,Wi=127;function zo(r,n){var t=0,n=n||0,o=0,s=n,i,a=r.length;do{if(s>=a)throw zo.bytes=0,new RangeError("Could not decode varint");i=r[s++],t+=o<28?(i&Wi)<<o:(i&Wi)*Math.pow(2,o),o+=7}while(i>=nl);return zo.bytes=s-n,t}var ol=Math.pow(2,7),sl=Math.pow(2,14),il=Math.pow(2,21),al=Math.pow(2,28),cl=Math.pow(2,35),ul=Math.pow(2,42),ll=Math.pow(2,49),fl=Math.pow(2,56),dl=Math.pow(2,63),hl=function(r){return r<ol?1:r<sl?2:r<il?3:r<al?4:r<cl?5:r<ul?6:r<ll?7:r<fl?8:r<dl?9:10},pl={encode:ju,decode:rl,encodingLength:hl},ml=pl,ir=ml;function ar(r,e=0){return[ir.decode(r,e),ir.decode.bytes]}function Nt(r,e,t=0){return ir.encode(r,e,t),e}function kt(r){return ir.encodingLength(r)}function Mt(r,e){let t=e.byteLength,n=kt(r),o=n+kt(t),s=new Uint8Array(o+t);return Nt(r,s,0),Nt(t,s,n),s.set(e,o),new Ut(r,t,e,s)}function Xe(r){let e=Re(r),[t,n]=ar(e),[o,s]=ar(e.subarray(n)),i=e.subarray(n+s);if(i.byteLength!==o)throw new Error("Incorrect length");return new Ut(t,o,i,e)}function Yi(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&Mi(r.bytes,t.bytes)}}var Ut=class{code;size;digest;bytes;constructor(e,t,n,o){this.code=e,this.size=t,this.digest=n,this.bytes=o}};var Zi=0,bl="identity",Xi=Re;function yl(r,e){if(e?.truncate!=null&&e.truncate!==r.byteLength){if(e.truncate<0||e.truncate>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,e.truncate)}return Mt(Zi,Xi(r))}var Ke={code:Zi,name:bl,encode:Xi,digest:yl};var Qo={};Le(Qo,{sha256:()=>Xo,sha512:()=>xl});var Zo=Te(oe("crypto"),1);var gl=20;function Yo({name:r,code:e,encode:t,minDigestLength:n,maxDigestLength:o}){return new qo(r,e,t,n,o)}var qo=class{name;code;encode;minDigestLength;maxDigestLength;constructor(e,t,n,o,s){this.name=e,this.code=t,this.encode=n,this.minDigestLength=o??gl,this.maxDigestLength=s}digest(e,t){if(t?.truncate!=null){if(t.truncate<this.minDigestLength)throw new Error(`Invalid truncate option, must be greater than or equal to ${this.minDigestLength}`);if(this.maxDigestLength!=null&&t.truncate>this.maxDigestLength)throw new Error(`Invalid truncate option, must be less than or equal to ${this.maxDigestLength}`)}if(e instanceof Uint8Array){let n=this.encode(e);return n instanceof Uint8Array?Qi(n,this.code,t?.truncate):n.then(o=>Qi(o,this.code,t?.truncate))}else throw Error("Unknown type, must be binary type")}};function Qi(r,e,t){if(t!=null&&t!==r.byteLength){if(t>r.byteLength)throw new Error(`Invalid truncate option, must be less than or equal to ${r.byteLength}`);r=r.subarray(0,t)}return Mt(e,r)}var Xo=Yo({name:"sha2-256",code:18,encode:r=>Re(Zo.default.createHash("sha256").update(r).digest())}),xl=Yo({name:"sha2-512",code:19,encode:r=>Re(Zo.default.createHash("sha512").update(r).digest())});function Ji(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return wl(t,jo(r),e??J.encoder);default:return vl(t,jo(r),e??ze.encoder)}}var ea=new WeakMap;function jo(r){let e=ea.get(r);if(e==null){let t=new Map;return ea.set(r,t),t}return e}var se=class r{code;version;multihash;bytes;"/";constructor(e,t,n,o){this.code=t,this.version=e,this.multihash=n,this.bytes=o,this["/"]=o}get asCID(){return this}get byteOffset(){return this.bytes.byteOffset}get byteLength(){return this.bytes.byteLength}toV0(){switch(this.version){case 0:return this;case 1:{let{code:e,multihash:t}=this;if(e!==cr)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==Sl)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(t)}default:throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`)}}toV1(){switch(this.version){case 0:{let{code:e,digest:t}=this.multihash,n=Mt(e,t);return r.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(e){return r.equals(this,e)}static equals(e,t){let n=t;return n!=null&&e.code===n.code&&e.version===n.version&&Yi(e.multihash,n.multihash)}toString(e){return Ji(this,e)}toJSON(){return{"/":Ji(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let t=e;if(t instanceof r)return t;if(t["/"]!=null&&t["/"]===t.bytes||t.asCID===t){let{version:n,code:o,multihash:s,bytes:i}=t;return new r(n,o,s,i??ta(n,o,s.bytes))}else if(t[Il]===!0){let{version:n,multihash:o,code:s}=t,i=Xe(o);return r.create(n,s,i)}else return null}static create(e,t,n){if(typeof t!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(e){case 0:{if(t!==cr)throw new Error(`Version 0 CID must use dag-pb (code: ${cr}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let o=ta(e,t,n.bytes);return new r(e,t,n,o)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,cr,e)}static createV1(e,t){return r.create(1,e,t)}static decode(e){let[t,n]=r.decodeFirst(e);if(n.length!==0)throw new Error("Incorrect length");return t}static decodeFirst(e){let t=r.inspectBytes(e),n=t.size-t.multihashSize,o=Re(e.subarray(n,n+t.multihashSize));if(o.byteLength!==t.multihashSize)throw new Error("Incorrect length");let s=o.subarray(t.multihashSize-t.digestSize),i=new Ut(t.multihashCode,t.digestSize,s,o);return[t.version===0?r.createV0(i):r.createV1(t.codec,i),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[f,d]=ar(e.subarray(t));return t+=d,f},o=n(),s=cr;if(o===18?(o=0,t=0):s=n(),o!==0&&o!==1)throw new RangeError(`Invalid CID version ${o}`);let i=t,a=n(),c=n(),l=t+c,u=l-i;return{version:o,codec:s,multihashCode:a,digestSize:c,multihashSize:u,size:l}}static parse(e,t){let[n,o]=El(e,t),s=r.decode(o);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return jo(s).set(n,e),s}};function El(r,e){switch(r[0]){case"Q":{let t=e??J;return[J.prefix,t.decode(`${J.prefix}${r}`)]}case J.prefix:{let t=e??J;return[J.prefix,t.decode(r)]}case ze.prefix:{let t=e??ze;return[ze.prefix,t.decode(r)]}case sr.prefix:{let t=e??sr;return[sr.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32, base36 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}}function wl(r,e,t){let{prefix:n}=t;if(n!==J.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let o=e.get(n);if(o==null){let s=t.encode(r).slice(1);return e.set(n,s),s}else return o}function vl(r,e,t){let{prefix:n}=t,o=e.get(n);if(o==null){let s=t.encode(r);return e.set(n,s),s}else return o}var cr=112,Sl=18;function ta(r,e,t){let n=kt(r),o=n+kt(e),s=new Uint8Array(o+t.byteLength);return Nt(r,s,0),Nt(e,s,n),s.set(t,o),s}var Il=Symbol.for("@ipld/js-cid/CID");var ur={...Fo,...No,...Go,...Po,...Ro,...Uo,...Mo,...Ko,...Vo,...ko},Gh={...Qo,...Wo};function na(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var ra=na("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Jo=na("ascii","a",r=>{let e="a";for(let t=0;t<r.length;t++)e+=String.fromCharCode(r[t]);return e},r=>{r=r.substring(1);let e=Se(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),Al={utf8:ra,"utf-8":ra,hex:ur.base16,latin1:Jo,ascii:Jo,binary:Jo,...ur},Kr=Al;function ye(r,e="utf8"){let t=Kr[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return e==="utf8"||e==="utf-8"?pt(oa.Buffer.from(r,"utf-8")):t.decoder.decode(`${t.prefix}${r}`)}function es(r){let e=r??8192,t=e>>>1,n,o=e;return function(i){if(i<1||i>t)return Se(i);o+i>e&&(n=Se(e),o=0);let a=n.subarray(o,o+=i);return(o&7)!==0&&(o=(o|7)+1),a}}var gt=class{fn;len;next;val;constructor(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}};function ts(){}var ns=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},Ll=es();function Tl(r){return globalThis.Buffer!=null?Se(r):Ll(r)}var fr=class{len;head;tail;states;constructor(){this.len=0,this.head=new gt(ts,0,0),this.tail=this.head,this.states=null}_push(e,t,n){return this.tail=this.tail.next=new gt(e,t,n),this.len+=t,this}uint32(e){return this.len+=(this.tail=this.tail.next=new os((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this}int32(e){return e<0?this._push(Hr,10,De.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let t=De.fromBigInt(e);return this._push(Hr,t.length(),t)}uint64Number(e){return this._push(Pt,ae(e),e)}uint64String(e){return this.uint64(BigInt(e))}int64(e){return this.uint64(e)}int64Number(e){return this.uint64Number(e)}int64String(e){return this.uint64String(e)}sint64(e){let t=De.fromBigInt(e).zzEncode();return this._push(Hr,t.length(),t)}sint64Number(e){let t=De.fromNumber(e).zzEncode();return this._push(Hr,t.length(),t)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(rs,1,e?1:0)}fixed32(e){return this._push(lr,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let t=De.fromBigInt(e);return this._push(lr,4,t.lo)._push(lr,4,t.hi)}fixed64Number(e){let t=De.fromNumber(e);return this._push(lr,4,t.lo)._push(lr,4,t.hi)}fixed64String(e){return this.fixed64(BigInt(e))}sfixed64(e){return this.fixed64(e)}sfixed64Number(e){return this.fixed64Number(e)}sfixed64String(e){return this.fixed64String(e)}float(e){return this._push(_i,4,e)}double(e){return this._push(Oi,8,e)}bytes(e){let t=e.length>>>0;return t===0?this._push(rs,1,0):this.uint32(t)._push(Cl,t,e)}string(e){let t=Ni(e);return t!==0?this.uint32(t)._push(Lo,t,e):this._push(rs,1,0)}fork(){return this.states=new ns(this),this.head=this.tail=new gt(ts,0,0),this.len=0,this}reset(){return this.states!=null?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new gt(ts,0,0),this.len=0),this}ldelim(){let e=this.head,t=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=e.next,this.tail=t,this.len+=n),this}finish(){let e=this.head.next,t=Tl(this.len),n=0;for(;e!=null;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t}};function rs(r,e,t){e[t]=r&255}function Dl(r,e,t){for(;r>127;)e[t++]=r&127|128,r>>>=7;e[t]=r}var os=class extends gt{next;constructor(e,t){super(Dl,e,t),this.next=void 0}};function Hr(r,e,t){for(;r.hi!==0;)e[t++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)e[t++]=r.lo&127|128,r.lo=r.lo>>>7;e[t++]=r.lo}function lr(r,e,t){e[t]=r&255,e[t+1]=r>>>8&255,e[t+2]=r>>>16&255,e[t+3]=r>>>24}function Cl(r,e,t){e.set(r,t)}globalThis.Buffer!=null&&(fr.prototype.bytes=function(r){let e=r.length>>>0;return this.uint32(e),e>0&&this._push(_l,e,r),this},fr.prototype.string=function(r){let e=globalThis.Buffer.byteLength(r);return this.uint32(e),e>0&&this._push(Bl,e,r),this});function _l(r,e,t){e.set(r,t)}function Bl(r,e,t){r.length<40?Lo(r,e,t):e.utf8Write!=null?e.utf8Write(r,t):e.set(ye(r),t)}function ss(){return new fr}function q(r,e){let t=ss();return e.encode(r,t,{lengthDelimited:!1}),t.finish()}var Kt;(function(r){r[r.VARINT=0]="VARINT",r[r.BIT64=1]="BIT64",r[r.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",r[r.START_GROUP=3]="START_GROUP",r[r.END_GROUP=4]="END_GROUP",r[r.BIT32=5]="BIT32"})(Kt||(Kt={}));function $r(r,e,t,n){return{name:r,type:e,encode:t,decode:n}}function He(r){function e(o){if(r[o.toString()]==null)throw new Error("Invalid enum value");return r[o]}let t=function(s,i){let a=e(s);i.int32(a)},n=function(s){let i=s.int32();return e(i)};return $r("enum",Kt.VARINT,t,n)}function Y(r,e){return $r("message",Kt.LENGTH_DELIMITED,r,e)}var Ne;(function(r){let e;(function(o){o.IDENTIFY="IDENTIFY",o.CONNECT="CONNECT",o.STREAM_OPEN="STREAM_OPEN",o.STREAM_HANDLER="STREAM_HANDLER",o.DHT="DHT",o.LIST_PEERS="LIST_PEERS",o.CONNMANAGER="CONNMANAGER",o.DISCONNECT="DISCONNECT",o.PUBSUB="PUBSUB",o.PEERSTORE="PEERSTORE"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.IDENTIFY=0]="IDENTIFY",o[o.CONNECT=1]="CONNECT",o[o.STREAM_OPEN=2]="STREAM_OPEN",o[o.STREAM_HANDLER=3]="STREAM_HANDLER",o[o.DHT=4]="DHT",o[o.LIST_PEERS=5]="LIST_PEERS",o[o.CONNMANAGER=6]="CONNMANAGER",o[o.DISCONNECT=7]="DISCONNECT",o[o.PUBSUB=8]="PUBSUB",o[o.PEERSTORE=9]="PEERSTORE"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.connect!=null&&(s.uint32(18),Gr.codec().encode(o.connect,s)),o.streamOpen!=null&&(s.uint32(26),Fr.codec().encode(o.streamOpen,s)),o.streamHandler!=null&&(s.uint32(34),zr.codec().encode(o.streamHandler,s)),o.dht!=null&&(s.uint32(42),ke.codec().encode(o.dht,s)),o.connManager!=null&&(s.uint32(50),qr.codec().encode(o.connManager,s)),o.disconnect!=null&&(s.uint32(58),Yr.codec().encode(o.disconnect,s)),o.pubsub!=null&&(s.uint32(66),Qe.codec().encode(o.pubsub,s)),o.peerStore!=null&&(s.uint32(74),xt.codec().encode(o.peerStore,s)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.connect=Gr.codec().decode(o,o.uint32());break;case 3:i.streamOpen=Fr.codec().decode(o,o.uint32());break;case 4:i.streamHandler=zr.codec().decode(o,o.uint32());break;case 5:i.dht=ke.codec().decode(o,o.uint32());break;case 6:i.connManager=qr.codec().decode(o,o.uint32());break;case 7:i.disconnect=Yr.codec().decode(o,o.uint32());break;case 8:i.pubsub=Qe.codec().decode(o,o.uint32());break;case 9:i.peerStore=xt.codec().decode(o,o.uint32());break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(Ne||(Ne={}));var ee;(function(r){let e;(function(o){o.OK="OK",o.ERROR="ERROR"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.OK=0]="OK",o[o.ERROR=1]="ERROR"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{if(i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.error!=null&&(s.uint32(18),Wr.codec().encode(o.error,s)),o.streamInfo!=null&&(s.uint32(26),Ht.codec().encode(o.streamInfo,s)),o.identify!=null&&(s.uint32(34),Vr.codec().encode(o.identify,s)),o.dht!=null&&(s.uint32(42),de.codec().encode(o.dht,s)),o.peers!=null)for(let a of o.peers)s.uint32(50),it.codec().encode(a,s);o.pubsub!=null&&(s.uint32(58),Zr.codec().encode(o.pubsub,s)),o.peerStore!=null&&(s.uint32(66),Xr.codec().encode(o.peerStore,s)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={peers:[]},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.error=Wr.codec().decode(o,o.uint32());break;case 3:i.streamInfo=Ht.codec().decode(o,o.uint32());break;case 4:i.identify=Vr.codec().decode(o,o.uint32());break;case 5:i.dht=de.codec().decode(o,o.uint32());break;case 6:i.peers.push(it.codec().decode(o,o.uint32()));break;case 7:i.pubsub=Zr.codec().decode(o,o.uint32());break;case 8:i.peerStore=Xr.codec().decode(o,o.uint32());break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(ee||(ee={}));var Vr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.id!=null&&t.id.byteLength>0&&(n.uint32(10),n.bytes(t.id)),t.addrs!=null)for(let s of t.addrs)n.uint32(18),n.bytes(s);o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={id:new Uint8Array(0),addrs:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.id=t.bytes();break;case 2:o.addrs.push(t.bytes());break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Vr||(Vr={}));var Gr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.peer!=null&&t.peer.byteLength>0&&(n.uint32(10),n.bytes(t.peer)),t.addrs!=null)for(let s of t.addrs)n.uint32(18),n.bytes(s);t.timeout!=null&&(n.uint32(24),n.int64(t.timeout)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={peer:new Uint8Array(0),addrs:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.peer=t.bytes();break;case 2:o.addrs.push(t.bytes());break;case 3:o.timeout=t.int64();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Gr||(Gr={}));var Fr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.peer!=null&&t.peer.byteLength>0&&(n.uint32(10),n.bytes(t.peer)),t.proto!=null)for(let s of t.proto)n.uint32(18),n.string(s);t.timeout!=null&&(n.uint32(24),n.int64(t.timeout)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={peer:new Uint8Array(0),proto:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.peer=t.bytes();break;case 2:o.proto.push(t.string());break;case 3:o.timeout=t.int64();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Fr||(Fr={}));var zr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.addr!=null&&t.addr.byteLength>0&&(n.uint32(10),n.bytes(t.addr)),t.proto!=null)for(let s of t.proto)n.uint32(18),n.string(s);o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={addr:new Uint8Array(0),proto:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.addr=t.bytes();break;case 2:o.proto.push(t.string());break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(zr||(zr={}));var Wr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.msg!=null&&t.msg!==""&&(n.uint32(10),n.string(t.msg)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={msg:""},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.msg=t.string();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Wr||(Wr={}));var Ht;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.peer!=null&&t.peer.byteLength>0&&(n.uint32(10),n.bytes(t.peer)),t.addr!=null&&t.addr.byteLength>0&&(n.uint32(18),n.bytes(t.addr)),t.proto!=null&&t.proto!==""&&(n.uint32(26),n.string(t.proto)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={peer:new Uint8Array(0),addr:new Uint8Array(0),proto:""},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.peer=t.bytes();break;case 2:o.addr=t.bytes();break;case 3:o.proto=t.string();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Ht||(Ht={}));var ke;(function(r){let e;(function(o){o.FIND_PEER="FIND_PEER",o.FIND_PEERS_CONNECTED_TO_PEER="FIND_PEERS_CONNECTED_TO_PEER",o.FIND_PROVIDERS="FIND_PROVIDERS",o.GET_CLOSEST_PEERS="GET_CLOSEST_PEERS",o.GET_PUBLIC_KEY="GET_PUBLIC_KEY",o.GET_VALUE="GET_VALUE",o.SEARCH_VALUE="SEARCH_VALUE",o.PUT_VALUE="PUT_VALUE",o.PROVIDE="PROVIDE"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.FIND_PEER=0]="FIND_PEER",o[o.FIND_PEERS_CONNECTED_TO_PEER=1]="FIND_PEERS_CONNECTED_TO_PEER",o[o.FIND_PROVIDERS=2]="FIND_PROVIDERS",o[o.GET_CLOSEST_PEERS=3]="GET_CLOSEST_PEERS",o[o.GET_PUBLIC_KEY=4]="GET_PUBLIC_KEY",o[o.GET_VALUE=5]="GET_VALUE",o[o.SEARCH_VALUE=6]="SEARCH_VALUE",o[o.PUT_VALUE=7]="PUT_VALUE",o[o.PROVIDE=8]="PROVIDE"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.peer!=null&&(s.uint32(18),s.bytes(o.peer)),o.cid!=null&&(s.uint32(26),s.bytes(o.cid)),o.key!=null&&(s.uint32(34),s.bytes(o.key)),o.value!=null&&(s.uint32(42),s.bytes(o.value)),o.count!=null&&(s.uint32(48),s.int32(o.count)),o.timeout!=null&&(s.uint32(56),s.int64(o.timeout)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.peer=o.bytes();break;case 3:i.cid=o.bytes();break;case 4:i.key=o.bytes();break;case 5:i.value=o.bytes();break;case 6:i.count=o.int32();break;case 7:i.timeout=o.int64();break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(ke||(ke={}));var de;(function(r){let e;(function(o){o.BEGIN="BEGIN",o.VALUE="VALUE",o.END="END"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.BEGIN=0]="BEGIN",o[o.VALUE=1]="VALUE",o[o.END=2]="END"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.peer!=null&&(s.uint32(18),it.codec().encode(o.peer,s)),o.value!=null&&(s.uint32(26),s.bytes(o.value)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.peer=it.codec().decode(o,o.uint32());break;case 3:i.value=o.bytes();break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(de||(de={}));var it;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.id!=null&&t.id.byteLength>0&&(n.uint32(10),n.bytes(t.id)),t.addrs!=null)for(let s of t.addrs)n.uint32(18),n.bytes(s);o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={id:new Uint8Array(0),addrs:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.id=t.bytes();break;case 2:o.addrs.push(t.bytes());break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(it||(it={}));var qr;(function(r){let e;(function(o){o.TAG_PEER="TAG_PEER",o.UNTAG_PEER="UNTAG_PEER",o.TRIM="TRIM"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.TAG_PEER=0]="TAG_PEER",o[o.UNTAG_PEER=1]="UNTAG_PEER",o[o.TRIM=2]="TRIM"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.peer!=null&&(s.uint32(18),s.bytes(o.peer)),o.tag!=null&&(s.uint32(26),s.string(o.tag)),o.weight!=null&&(s.uint32(32),s.int64(o.weight)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.peer=o.bytes();break;case 3:i.tag=o.string();break;case 4:i.weight=o.int64();break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(qr||(qr={}));var Yr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.peer!=null&&t.peer.byteLength>0&&(n.uint32(10),n.bytes(t.peer)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={peer:new Uint8Array(0)},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.peer=t.bytes();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Yr||(Yr={}));var Qe;(function(r){let e;(function(o){o.GET_TOPICS="GET_TOPICS",o.LIST_PEERS="LIST_PEERS",o.PUBLISH="PUBLISH",o.SUBSCRIBE="SUBSCRIBE"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.GET_TOPICS=0]="GET_TOPICS",o[o.LIST_PEERS=1]="LIST_PEERS",o[o.PUBLISH=2]="PUBLISH",o[o.SUBSCRIBE=3]="SUBSCRIBE"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.topic!=null&&(s.uint32(18),s.string(o.topic)),o.data!=null&&(s.uint32(26),s.bytes(o.data)),i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.topic=o.string();break;case 3:i.data=o.bytes();break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(Qe||(Qe={}));var dr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.from!=null&&(n.uint32(10),n.bytes(t.from)),t.data!=null&&(n.uint32(18),n.bytes(t.data)),t.seqno!=null&&(n.uint32(26),n.bytes(t.seqno)),t.topicIDs!=null)for(let s of t.topicIDs)n.uint32(34),n.string(s);t.signature!=null&&(n.uint32(42),n.bytes(t.signature)),t.key!=null&&(n.uint32(50),n.bytes(t.key)),o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={topicIDs:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.from=t.bytes();break;case 2:o.data=t.bytes();break;case 3:o.seqno=t.bytes();break;case 4:o.topicIDs.push(t.string());break;case 5:o.signature=t.bytes();break;case 6:o.key=t.bytes();break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(dr||(dr={}));var Zr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.topics!=null)for(let s of t.topics)n.uint32(10),n.string(s);if(t.peerIDs!=null)for(let s of t.peerIDs)n.uint32(18),n.bytes(s);o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={topics:[],peerIDs:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.topics.push(t.string());break;case 2:o.peerIDs.push(t.bytes());break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Zr||(Zr={}));var xt;(function(r){let e;(function(o){o.UNSPECIFIED="UNSPECIFIED",o.GET_PROTOCOLS="GET_PROTOCOLS",o.GET_PEER_INFO="GET_PEER_INFO"})(e=r.Type||(r.Type={}));let t;(function(o){o[o.UNSPECIFIED=0]="UNSPECIFIED",o[o.GET_PROTOCOLS=1]="GET_PROTOCOLS",o[o.GET_PEER_INFO=2]="GET_PEER_INFO"})(t||(t={})),(function(o){o.codec=()=>He(t)})(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Y((o,s,i={})=>{if(i.lengthDelimited!==!1&&s.fork(),o.type!=null&&(s.uint32(8),r.Type.codec().encode(o.type,s)),o.id!=null&&(s.uint32(18),s.bytes(o.id)),o.protos!=null)for(let a of o.protos)s.uint32(26),s.string(a);i.lengthDelimited!==!1&&s.ldelim()},(o,s)=>{let i={protos:[]},a=s==null?o.len:o.pos+s;for(;o.pos<a;){let c=o.uint32();switch(c>>>3){case 1:i.type=r.Type.codec().decode(o);break;case 2:i.id=o.bytes();break;case 3:i.protos.push(o.string());break;default:o.skipType(c&7);break}}return i})),n),r.encode=o=>q(o,r.codec()),r.decode=o=>W(o,r.codec())})(xt||(xt={}));var Xr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{if(o.lengthDelimited!==!1&&n.fork(),t.peer!=null&&(n.uint32(10),it.codec().encode(t.peer,n)),t.protos!=null)for(let s of t.protos)n.uint32(18),n.string(s);o.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let o={protos:[]},s=n==null?t.len:t.pos+n;for(;t.pos<s;){let i=t.uint32();switch(i>>>3){case 1:o.peer=it.codec().decode(t,t.uint32());break;case 2:o.protos.push(t.string());break;default:t.skipType(i&7);break}}return o})),e),r.encode=t=>q(t,r.codec()),r.decode=t=>W(t,r.codec())})(Xr||(Xr={}));function sa(r){let e=new globalThis.AbortController;function t(){let s=r.filter(i=>i?.aborted===!0).map(i=>i?.reason).pop();e.abort(s);for(let i of r)i?.removeEventListener!=null&&i.removeEventListener("abort",t)}for(let s of r){if(s?.aborted===!0){t();break}s?.addEventListener!=null&&s.addEventListener("abort",t)}function n(){for(let s of r)s?.removeEventListener!=null&&s.removeEventListener("abort",t)}let o=e.signal;return o.clear=n,o}var hr=class{onConnection;constructor(e){this.onConnection=e}async upgradeInbound(e){this.onConnection?.(e)}async upgradeOutbound(e){return e}createInboundAbortSignal(e){return sa([e])}getStreamMuxers(){return new Map}getConnectionEncrypters(){return new Map}};var ca=Te(oe("node:tty"),1),tn=Te(oe("node:util"),1);function Ol(r,e){if(typeof r=="string")return Pl(r);if(typeof r=="number")return kl(r,e);throw Error(`Value provided to ms() must be a string or number. value=${JSON.stringify(r)}`)}var Qr=Ol;function Pl(r){if(typeof r!="string"||r.length===0||r.length>100)throw Error(`Value provided to ms.parse() must be a string with length between 1 and 99. value=${JSON.stringify(r)}`);let e=/^(?<value>-?\d*\.?\d+) *(?<unit>milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|months?|mo|years?|yrs?|y)?$/i.exec(r);if(!e?.groups)return NaN;let{value:t,unit:n="ms"}=e.groups,o=parseFloat(t),s=n.toLowerCase();switch(s){case"years":case"year":case"yrs":case"yr":case"y":return o*315576e5;case"months":case"month":case"mo":return o*26298e5;case"weeks":case"week":case"w":return o*6048e5;case"days":case"day":case"d":return o*864e5;case"hours":case"hour":case"hrs":case"hr":case"h":return o*36e5;case"minutes":case"minute":case"mins":case"min":case"m":return o*6e4;case"seconds":case"second":case"secs":case"sec":case"s":return o*1e3;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return o;default:throw Error(`Unknown unit "${s}" provided to ms.parse(). value=${JSON.stringify(r)}`)}}function Rl(r){let e=Math.abs(r);return e>=315576e5?`${Math.round(r/315576e5)}y`:e>=26298e5?`${Math.round(r/26298e5)}mo`:e>=6048e5?`${Math.round(r/6048e5)}w`:e>=864e5?`${Math.round(r/864e5)}d`:e>=36e5?`${Math.round(r/36e5)}h`:e>=6e4?`${Math.round(r/6e4)}m`:e>=1e3?`${Math.round(r/1e3)}s`:`${r}ms`}function Nl(r){let e=Math.abs(r);return e>=315576e5?Et(r,e,315576e5,"year"):e>=26298e5?Et(r,e,26298e5,"month"):e>=6048e5?Et(r,e,6048e5,"week"):e>=864e5?Et(r,e,864e5,"day"):e>=36e5?Et(r,e,36e5,"hour"):e>=6e4?Et(r,e,6e4,"minute"):e>=1e3?Et(r,e,1e3,"second"):`${r} ms`}function kl(r,e){if(typeof r!="number"||!Number.isFinite(r))throw Error("Value provided to ms.format() must be of type number.");return e?.long?Nl(r):Rl(r)}function Et(r,e,t,n){let o=e>=t*1.5;return`${Math.round(r/t)} ${n}${o?"s":""}`}var Jr=Te(oe("node:process"),1),aa=Te(oe("node:os"),1),is=Te(oe("node:tty"),1);function Ue(r,e=globalThis.Deno?globalThis.Deno.args:Jr.default.argv){let t=r.startsWith("-")?"":r.length===1?"-":"--",n=e.indexOf(t+r),o=e.indexOf("--");return n!==-1&&(o===-1||n<o)}var{env:z}=Jr.default,jr;Ue("no-color")||Ue("no-colors")||Ue("color=false")||Ue("color=never")?jr=0:(Ue("color")||Ue("colors")||Ue("color=true")||Ue("color=always"))&&(jr=1);function Ul(){if(!("FORCE_COLOR"in z))return;if(z.FORCE_COLOR==="true")return 1;if(z.FORCE_COLOR==="false")return 0;if(z.FORCE_COLOR.length===0)return 1;let r=Math.min(Number.parseInt(z.FORCE_COLOR,10),3);if([0,1,2,3].includes(r))return r}function Ml(r){return r===0?!1:{level:r,hasBasic:!0,has256:r>=2,has16m:r>=3}}function Kl(r,{streamIsTTY:e,sniffFlags:t=!0}={}){let n=Ul();n!==void 0&&(jr=n);let o=t?jr:n;if(o===0)return 0;if(t){if(Ue("color=16m")||Ue("color=full")||Ue("color=truecolor"))return 3;if(Ue("color=256"))return 2}if("TF_BUILD"in z&&"AGENT_NAME"in z)return 1;if(r&&!e&&o===void 0)return 0;let s=o||0;if(z.TERM==="dumb")return s;if(Jr.default.platform==="win32"){let i=aa.default.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in z)return["GITHUB_ACTIONS","GITEA_ACTIONS","CIRCLECI"].some(i=>i in z)?3:["TRAVIS","APPVEYOR","GITLAB_CI","BUILDKITE","DRONE"].some(i=>i in z)||z.CI_NAME==="codeship"?1:s;if("TEAMCITY_VERSION"in z)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(z.TEAMCITY_VERSION)?1:0;if(z.COLORTERM==="truecolor"||z.TERM==="xterm-kitty"||z.TERM==="xterm-ghostty"||z.TERM==="wezterm")return 3;if("TERM_PROGRAM"in z){let i=Number.parseInt((z.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(z.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(z.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(z.TERM)||"COLORTERM"in z?1:s}function ia(r,e={}){let t=Kl(r,{streamIsTTY:r&&r.isTTY,...e});return Ml(t)}var Hl={stdout:ia({isTTY:is.default.isatty(1)}),stderr:ia({isTTY:is.default.isatty(2)})},en=Hl;function as(r){t.debug=t,t.default=t,t.coerce=c,t.disable=s,t.enable=o,t.enabled=i,t.humanize=Qr,t.destroy=l,Object.keys(r).forEach(u=>{t[u]=r[u]}),t.names=[],t.skips=[],t.formatters={};function e(u){let f=0;for(let d=0;d<u.length;d++)f=(f<<5)-f+u.charCodeAt(d),f|=0;return t.colors[Math.abs(f)%t.colors.length]}t.selectColor=e;function t(u,f){let d,p=null,g,w;function b(...E){if(!b.enabled)return;let _=b,P=Number(new Date),N=P-(d||P);_.diff=N,_.prev=d,_.curr=P,d=P,E[0]=t.coerce(E[0]),typeof E[0]!="string"&&E.unshift("%O");let $=0;E[0]=E[0].replace(/%([a-zA-Z%])/g,(re,le)=>{if(re==="%%")return"%";$++;let C=t.formatters[le];if(typeof C=="function"){let Ot=E[$];re=C.call(_,Ot),E.splice($,1),$--}return re}),t.formatArgs.call(_,E),f?.onLog!=null&&f.onLog(...E),(_.log||t.log).apply(_,E)}return b.namespace=u,b.useColors=t.useColors(),b.color=t.selectColor(u),b.extend=n,b.destroy=t.destroy,Object.defineProperty(b,"enabled",{enumerable:!0,configurable:!1,get:()=>p!==null?p:(g!==t.namespaces&&(g=t.namespaces,w=t.enabled(u)),w),set:E=>{p=E}}),typeof t.init=="function"&&t.init(b),b}function n(u,f){let d=t(this.namespace+(typeof f>"u"?":":f)+u);return d.log=this.log,d}function o(u){t.save(u),t.namespaces=u,t.names=[],t.skips=[];let f,d=(typeof u=="string"?u:"").split(/[\s,]+/),p=d.length;for(f=0;f<p;f++)d[f]&&(u=d[f].replace(/\*/g,".*?"),u[0]==="-"?t.skips.push(new RegExp("^"+u.substr(1)+"$")):t.names.push(new RegExp("^"+u+"$")))}function s(){let u=[...t.names.map(a),...t.skips.map(a).map(f=>"-"+f)].join(",");return t.enable(""),u}function i(u){if(u[u.length-1]==="*")return!0;let f,d;for(f=0,d=t.skips.length;f<d;f++)if(t.skips[f].test(u))return!1;for(f=0,d=t.names.length;f<d;f++)if(t.names[f].test(u))return!0;return!1}function a(u){return u.toString().substring(2,u.toString().length-2).replace(/\.\*\?$/,"*")}function c(u){return u instanceof Error?u.stack??u.message:u}function l(){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 t.setupFormatters(t.formatters),t.enable(t.load()),t}var ua=[6,2,3,4,5,1];en.stderr!==!1&&(en.stderr??en).level>=2&&(ua=[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]);var $t=Object.keys(process.env).filter(r=>/^debug_/i.test(r)).reduce((r,e)=>{let t=e.substring(6).toLowerCase().replace(/_([a-z])/g,(o,s)=>s.toUpperCase()),n=process.env[e];return/^(yes|on|true|enabled)$/i.test(n)?n=!0:/^(no|off|false|disabled)$/i.test(n)?n=!1:n==="null"?n=null:n=Number(n),r[t]=n,r},{});function $l(){return"colors"in $t?!!$t.colors:ca.default.isatty(process.stderr.fd)}function Vl(r){let{namespace:e,useColors:t}=this;if(t===!0){let n=this.color,o="\x1B[3"+(n<8?n:"8;5;"+n),s=` ${o};1m${e} \x1B[0m`;r[0]=s+r[0].split(`
3
3
  `).join(`
4
- `+s),r.push(o+"m+"+Qr(this.diff)+"\x1B[0m")}else r[0]=zl()+e+" "+r[0]}function zl(){return $t.hideDate!=null?"":new Date().toISOString()+" "}function Wl(...r){return process.stderr.write(tn.default.format(...r)+`
5
- `)}function ql(r){r!=null?process.env.DEBUG=r:delete process.env.DEBUG}function Yl(){return process.env.DEBUG}function Zl(r){r.inspectOpts={};let e=Object.keys($t);for(let t=0;t<e.length;t++)r.inspectOpts[e[t]]=$t[e[t]]}function Xl(r){r.o=function(e){return this.inspectOpts.colors=this.useColors,tn.default.inspect(e,this.inspectOpts).split(`
6
- `).map(t=>t.trim()).join(" ")},r.O=function(e){return this.inspectOpts.colors=this.useColors,tn.default.inspect(e,this.inspectOpts)}}var fa=as({init:Zl,log:Wl,formatArgs:Fl,save:ql,load:Yl,useColors:Gl,setupFormatters:Xl,colors:la,inspectOpts:$t});var Ie=fa;Ie.formatters.b=r=>r==null?"undefined":J.baseEncode(r);Ie.formatters.t=r=>r==null?"undefined":ze.baseEncode(r);Ie.formatters.m=r=>r==null?"undefined":Ho.baseEncode(r);Ie.formatters.p=r=>r==null?"undefined":r.toString();Ie.formatters.c=r=>r==null?"undefined":r.toString();Ie.formatters.k=r=>r==null?"undefined":r.toString();Ie.formatters.a=r=>r==null?"undefined":r.toString();function da(r,e=""){let t=ha(r.message),n=ha(r.stack);return t!=null&&n!=null?n.includes(t)?`${n.split(`
4
+ `+s),r.push(o+"m+"+Qr(this.diff)+"\x1B[0m")}else r[0]=Gl()+e+" "+r[0]}function Gl(){return $t.hideDate!=null?"":new Date().toISOString()+" "}function Fl(...r){return process.stderr.write(tn.default.format(...r)+`
5
+ `)}function zl(r){r!=null?process.env.DEBUG=r:delete process.env.DEBUG}function Wl(){return process.env.DEBUG}function ql(r){r.inspectOpts={};let e=Object.keys($t);for(let t=0;t<e.length;t++)r.inspectOpts[e[t]]=$t[e[t]]}function Yl(r){r.o=function(e){return this.inspectOpts.colors=this.useColors,tn.default.inspect(e,this.inspectOpts).split(`
6
+ `).map(t=>t.trim()).join(" ")},r.O=function(e){return this.inspectOpts.colors=this.useColors,tn.default.inspect(e,this.inspectOpts)}}var la=as({init:ql,log:Fl,formatArgs:Vl,save:zl,load:Wl,useColors:$l,setupFormatters:Yl,colors:ua,inspectOpts:$t});var Ie=la;Ie.formatters.b=r=>r==null?"undefined":J.baseEncode(r);Ie.formatters.t=r=>r==null?"undefined":ze.baseEncode(r);Ie.formatters.m=r=>r==null?"undefined":Ho.baseEncode(r);Ie.formatters.p=r=>r==null?"undefined":r.toString();Ie.formatters.c=r=>r==null?"undefined":r.toString();Ie.formatters.k=r=>r==null?"undefined":r.toString();Ie.formatters.a=r=>r==null?"undefined":r.toString();function fa(r,e=""){let t=da(r.message),n=da(r.stack);return t!=null&&n!=null?n.includes(t)?`${n.split(`
7
7
  `).join(`
8
8
  ${e}`)}`:`${t}
9
9
  ${e}${n.split(`
10
10
  `).join(`
11
11
  ${e}`)}`:n!=null?`${n.split(`
12
12
  `).join(`
13
- ${e}`)}`:t!=null?`${t}`:`${r.toString()}`}function Ql(r){return r instanceof AggregateError||r?.name==="AggregateError"&&Array.isArray(r.errors)}function pa(r,e=""){if(Ql(r)){let t=da(r,e);return r.errors.length>0?(e=`${e} `,t+=`
14
- ${e}${r.errors.map(n=>`${pa(n,`${e}`)}`).join(`
13
+ ${e}`)}`:t!=null?`${t}`:`${r.toString()}`}function Zl(r){return r instanceof AggregateError||r?.name==="AggregateError"&&Array.isArray(r.errors)}function ha(r,e=""){if(Zl(r)){let t=fa(r,e);return r.errors.length>0?(e=`${e} `,t+=`
14
+ ${e}${r.errors.map(n=>`${ha(n,`${e}`)}`).join(`
15
15
  ${e}`)}`):t+=`
16
- ${e}[Error list was empty]`,t.trim()}return da(r,e)}Ie.formatters.e=r=>r==null?"undefined":pa(r);function jl(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e}function ma(r){return{forComponent(e){return at(e,r)}}}function at(r,e){let t=jl(`${r}:trace`);return Ie.enabled(`${r}:trace`)&&Ie.names.map(n=>n.toString()).find(n=>n.includes(":trace"))!=null&&(t=Ie(`${r}:trace`,e)),Object.assign(Ie(r,e),{error:Ie(`${r}:error`,e),trace:t,newScope:n=>at(`${r}:${n}`,e)})}function ha(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}var rn=class extends Error{static name="AbortError";constructor(e="The operation was aborted"){super(e),this.name="AbortError"}};var Z=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}},nn=class extends Error{static name="InvalidPublicKeyError";constructor(e="Invalid public key"){super(e),this.name="InvalidPublicKeyError"}};var on=class extends Error{static name="StreamResetError";constructor(e="The stream has been reset"){super(e),this.name="StreamResetError"}};var ct=class extends Error{static name="StreamStateError";constructor(e="The stream is in an invalid state"){super(e),this.name="StreamStateError"}},pr=class extends Error{static name="StreamBufferError";constructor(e="The stream buffer was full"){super(e),this.name="StreamBufferError"}};var sn=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};var Vt=class extends Error{static name="TimeoutError";constructor(e="Timed out"){super(e),this.name="TimeoutError"}},an=class extends Error{static name="NotStartedError";constructor(e="Not started"){super(e),this.name="NotStartedError"}},cn=class extends Error{static name="AlreadyStartedError";constructor(e="Already started"){super(e),this.name="AlreadyStartedError"}};var mr=class extends Error{static name="UnsupportedKeyTypeError";constructor(e="Unsupported key type"){super(e),this.name="UnsupportedKeyTypeError"}};var un=class extends Event{data;constructor(e,t){super("message",t),this.data=e}},Gt=class extends Event{error;local;constructor(e,t,n){super("close",n),this.error=t,this.local=e}},ln=class extends Gt{constructor(e,t){super(!0,e,t)}},fn=class extends Gt{constructor(e,t){super(!1,e,t)}};var cs=Symbol.for("@libp2p/peer-id");var ya=Symbol.for("@libp2p/transport");var ba;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(ba||(ba={}));var ga=oe("node:events"),dn=(r,...e)=>{try{(0,ga.setMaxListeners)(r,...e)}catch{}};var Ft=class extends EventTarget{#e=new Map;constructor(){super(),dn(1/0,this)}listenerCount(e){let t=this.#e.get(e);return t==null?0:t.length}addEventListener(e,t,n){super.addEventListener(e,t,n);let o=this.#e.get(e);o==null&&(o=[],this.#e.set(e,o)),o.push({callback:t,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,t,n){super.removeEventListener(e.toString(),t??null,n);let o=this.#e.get(e);o!=null&&(o=o.filter(({callback:s})=>s!==t),this.#e.set(e,o))}dispatchEvent(e){let t=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:o})=>!o),this.#e.set(e.type,n)),t}safeDispatchEvent(e,t={}){return this.dispatchEvent(new CustomEvent(e,t))}};var xa=Symbol.for("@libp2p/service-capabilities"),Zp=Symbol.for("@libp2p/service-dependencies");function Ce(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}var Ea=oe("node:buffer");function We(r,e){return pt(Ea.Buffer.concat(r,e))}var va=Symbol.for("@achingbrain/uint8arraylist");function wa(r,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let t=0;for(let n of r){let o=t+n.byteLength;if(e<o)return{buf:n,index:e-t};t=o}throw new RangeError("index is out of bounds")}function hn(r){return!!r?.[va]}var H=class r{bufs;length;[va]=!0;constructor(...e){this.bufs=[],this.length=0,e.length>0&&this.appendAll(e)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...e){this.appendAll(e)}appendAll(e){let t=0;for(let n of e)if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.push(n);else if(hn(n))t+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}prepend(...e){this.prependAll(e)}prependAll(e){let t=0;for(let n of e.reverse())if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.unshift(n);else if(hn(n))t+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}get(e){let t=wa(this.bufs,e);return t.buf[t.index]}set(e,t){let n=wa(this.bufs,e);n.buf[n.index]=t}write(e,t=0){if(e instanceof Uint8Array)for(let n=0;n<e.length;n++)this.set(t+n,e[n]);else if(hn(e))for(let n=0;n<e.length;n++)this.set(t+n,e.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(e){if(e=Math.trunc(e),!(Number.isNaN(e)||e<=0)){if(e===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(e>=this.bufs[0].byteLength)e-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(e),this.length-=e;break}}}slice(e,t){let{bufs:n,length:o}=this._subList(e,t);return We(n,o)}subarray(e,t){let{bufs:n,length:o}=this._subList(e,t);return n.length===1?n[0]:We(n,o)}sublist(e,t){let{bufs:n,length:o}=this._subList(e,t),s=new r;return s.length=o,s.bufs=[...n],s}_subList(e,t){if(e=e??0,t=t??this.length,e<0&&(e=this.length+e),t<0&&(t=this.length+t),e<0||t>this.length)throw new RangeError("index is out of bounds");if(e===t)return{bufs:[],length:0};if(e===0&&t===this.length)return{bufs:this.bufs,length:this.length};let n=[],o=0;for(let s=0;s<this.bufs.length;s++){let i=this.bufs[s],a=o,c=a+i.byteLength;if(o=c,e>=c)continue;let l=e>=a&&e<c,u=t>a&&t<=c;if(l&&u){if(e===a&&t===c){n.push(i);break}let f=e-a;n.push(i.subarray(f,f+(t-e)));break}if(l){if(e===0){n.push(i);continue}n.push(i.subarray(e-a));continue}if(u){if(t===c){n.push(i);break}n.push(i.subarray(0,t-a));break}n.push(i)}return{bufs:n,length:t-e}}indexOf(e,t=0){if(!hn(e)&&!(e instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=e instanceof Uint8Array?e:e.subarray();if(t=Number(t??0),isNaN(t)&&(t=0),t<0&&(t=this.length+t),t<0&&(t=0),e.length===0)return t>this.length?this.length:t;let o=n.byteLength;if(o===0)throw new TypeError("search must be at least 1 byte long");let s=256,i=new Int32Array(s);for(let f=0;f<s;f++)i[f]=-1;for(let f=0;f<o;f++)i[n[f]]=f;let a=i,c=this.byteLength-n.byteLength,l=n.byteLength-1,u;for(let f=t;f<=c;f+=u){u=0;for(let p=l;p>=0;p--){let d=this.get(f+p);if(n[p]!==d){u=Math.max(1,p-a[d]);break}}if(u===0)return f}return-1}getInt8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getInt8(0)}setInt8(e,t){let n=Se(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,t),this.write(n,e)}getInt16(e,t){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,t)}setInt16(e,t,n){let o=Ze(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,t,n),this.write(o,e)}getInt32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,t)}setInt32(e,t,n){let o=Ze(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,t,n),this.write(o,e)}getBigInt64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,t)}setBigInt64(e,t,n){let o=Ze(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,t,n),this.write(o,e)}getUint8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getUint8(0)}setUint8(e,t){let n=Se(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,t),this.write(n,e)}getUint16(e,t){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,t)}setUint16(e,t,n){let o=Ze(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,t,n),this.write(o,e)}getUint32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,t)}setUint32(e,t,n){let o=Ze(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,t,n),this.write(o,e)}getBigUint64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,t)}setBigUint64(e,t,n){let o=Ze(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,t,n),this.write(o,e)}getFloat32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,t)}setFloat32(e,t,n){let o=Ze(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,t,n),this.write(o,e)}getFloat64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,t)}setFloat64(e,t,n){let o=Ze(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,t,n),this.write(o,e)}equals(e){if(e==null||!(e instanceof r)||e.bufs.length!==this.bufs.length)return!1;for(let t=0;t<this.bufs.length;t++)if(!Ce(this.bufs[t],e.bufs[t]))return!1;return!0}static fromUint8Arrays(e,t){let n=new r;return n.bufs=e,t==null&&(t=e.reduce((o,s)=>o+s.byteLength,0)),n.length=t,n}};var Sa=oe("node:buffer");function te(r,e="utf8"){let t=Kr[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return e==="utf8"||e==="utf-8"?Sa.Buffer.from(r.buffer,r.byteOffset,r.byteLength).toString("utf8"):t.encoder.encode(r).substring(1)}var Jl=parseInt("11111",2),us=parseInt("10000000",2),ef=parseInt("01111111",2),Ia={0:br,1:br,2:tf,3:of,4:sf,5:nf,6:rf,16:br,22:br,48:br};function ls(r,e={offset:0}){let t=r[e.offset]&Jl;if(e.offset++,Ia[t]!=null)return Ia[t](r,e);throw new Error("No decoder for tag "+t)}function yr(r,e){let t=0;if((r[e.offset]&us)===us){let n=r[e.offset]&ef,o="0x";e.offset++;for(let s=0;s<n;s++,e.offset++)o+=r[e.offset].toString(16).padStart(2,"0");t=parseInt(o,16)}else t=r[e.offset],e.offset++;return t}function br(r,e){yr(r,e);let t=[];for(;!(e.offset>=r.byteLength);){let n=ls(r,e);if(n===null)break;t.push(n)}return t}function tf(r,e){let t=yr(r,e),n=e.offset,o=e.offset+t,s=[];for(let i=n;i<o;i++)i===n&&r[i]===0||s.push(r[i]);return e.offset+=t,Uint8Array.from(s)}function rf(r,e){let t=yr(r,e),n=e.offset+t,o=r[e.offset];e.offset++;let s=0,i=0;o<40?(s=0,i=o):o<80?(s=1,i=o-40):(s=2,i=o-80);let a=`${s}.${i}`,c=[];for(;e.offset<n;){let l=r[e.offset];if(e.offset++,c.push(l&127),l<128){c.reverse();let u=0;for(let f=0;f<c.length;f++)u+=c[f]<<f*7;a+=`.${u}`,c=[]}}return a}function nf(r,e){return e.offset++,null}function of(r,e){let t=yr(r,e),n=r[e.offset];e.offset++;let o=r.subarray(e.offset,e.offset+t-1);if(e.offset+=t,n!==0)throw new Error("Unused bits in bit string is unimplemented");return o}function sf(r,e){let t=yr(r,e),n=r.subarray(e.offset,e.offset+t);return e.offset+=t,n}function af(r){let e=r.toString(16);e.length%2===1&&(e="0"+e);let t=new H;for(let n=0;n<e.length;n+=2)t.append(Uint8Array.from([parseInt(`${e[n]}${e[n+1]}`,16)]));return t}function fs(r){if(r.byteLength<128)return Uint8Array.from([r.byteLength]);let e=af(r.byteLength);return new H(Uint8Array.from([e.byteLength|us]),e)}function Aa(r){let e=new H,t=128;return(r.subarray()[0]&t)===t&&e.append(Uint8Array.from([0])),e.append(r),new H(Uint8Array.from([2]),fs(e),e)}function La(r){let e=Uint8Array.from([0]),t=new H(e,r);return new H(Uint8Array.from([3]),fs(t),t)}function pn(r,e=48){let t=new H;for(let n of r)t.append(n);return new H(Uint8Array.from([e]),fs(t),t)}async function Ta(r,e,t,n){let o=await crypto.subtle.importKey("jwk",r,{name:"ECDSA",namedCurve:r.crv??"P-256"},!1,["verify"]);n?.signal?.throwIfAborted();let s=await crypto.subtle.verify({name:"ECDSA",hash:{name:"SHA-256"}},o,e,t.subarray());return n?.signal?.throwIfAborted(),s}var cf=Uint8Array.from([6,8,42,134,72,206,61,3,1,7]),uf=Uint8Array.from([6,5,43,129,4,0,34]),lf=Uint8Array.from([6,5,43,129,4,0,35]),ff={ext:!0,kty:"EC",crv:"P-256"},df={ext:!0,kty:"EC",crv:"P-384"},hf={ext:!0,kty:"EC",crv:"P-521"},ds=32,hs=48,ps=66;function Da(r){let e=ls(r);return Ca(e)}function Ca(r){let e=r[1][1][0],t=1,n,o;if(e.byteLength===ds*2+1)return n=te(e.subarray(t,t+ds),"base64url"),o=te(e.subarray(t+ds),"base64url"),new zt({...ff,key_ops:["verify"],x:n,y:o});if(e.byteLength===hs*2+1)return n=te(e.subarray(t,t+hs),"base64url"),o=te(e.subarray(t+hs),"base64url"),new zt({...df,key_ops:["verify"],x:n,y:o});if(e.byteLength===ps*2+1)return n=te(e.subarray(t,t+ps),"base64url"),o=te(e.subarray(t+ps),"base64url"),new zt({...hf,key_ops:["verify"],x:n,y:o});throw new Z(`coordinates were wrong length, got ${e.byteLength}, expected 65, 97 or 133`)}function _a(r){return pn([Aa(Uint8Array.from([1])),pn([pf(r.crv)],160),pn([La(new H(Uint8Array.from([4]),ye(r.x??"","base64url"),ye(r.y??"","base64url")))],161)]).subarray()}function pf(r){if(r==="P-256")return cf;if(r==="P-384")return uf;if(r==="P-521")return lf;throw new Z(`Invalid curve ${r}`)}var zt=class{type="ECDSA";jwk;_raw;constructor(e){this.jwk=e}get raw(){return this._raw==null&&(this._raw=_a(this.jwk)),this._raw}toMultihash(){return Ke.digest(ut(this))}toCID(){return se.createV1(114,this.toMultihash())}toString(){return J.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Ce(this.raw,e.raw)}async verify(e,t,n){return Ta(this.jwk,t,e,n)}};var mn=Te(oe("crypto"),1);var tb=mn.default.generateKeyPairSync,gr=32;var mf=64;function Ba(r,e,t){if(r.byteLength!==gr)throw new TypeError('"key" must be 32 bytes in length.');if(!(r instanceof Uint8Array))throw new TypeError('"key" must be a node.js Buffer, or Uint8Array.');if(e.byteLength!==mf)throw new TypeError('"sig" must be 64 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"sig" must be a node.js Buffer, or Uint8Array.');let n=mn.default.createPublicKey({format:"jwk",key:{crv:"Ed25519",x:te(r,"base64url"),kty:"OKP"}});return mn.default.verify(null,t instanceof Uint8Array?t:t.subarray(),n,e)}function Pa(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}var bn=class{type="Ed25519";raw;constructor(e){this.raw=ms(e,gr)}toMultihash(){return Ke.digest(ut(this))}toCID(){return se.createV1(114,this.toMultihash())}toString(){return J.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Ce(this.raw,e.raw)}verify(e,t,n){n?.signal?.throwIfAborted();let o=Ba(this.raw,t,e);return Pa(o)?o.then(s=>(n?.signal?.throwIfAborted(),s)):o}};function Ra(r){return r=ms(r,gr),new bn(r)}function ms(r,e){if(r=Uint8Array.from(r??[]),r.length!==e)throw new Z(`Key must be a Uint8Array of length ${e}, got ${r.length}`);return r}var _e;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.secp256k1="secp256k1",r.ECDSA="ECDSA"})(_e||(_e={}));var bs;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.secp256k1=2]="secp256k1",r[r.ECDSA=3]="ECDSA"})(bs||(bs={}));(function(r){r.codec=()=>He(bs)})(_e||(_e={}));var xr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),_e.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),o.lengthDelimited!==!1&&n.ldelim()},(t,n,o={})=>{let s={},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let a=t.uint32();switch(a>>>3){case 1:{s.Type=_e.codec().decode(t);break}case 2:{s.Data=t.bytes();break}default:{t.skipType(a&7);break}}}return s})),e),r.encode=t=>q(t,r.codec()),r.decode=(t,n)=>W(t,r.codec(),n)})(xr||(xr={}));var ys;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),_e.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),o.lengthDelimited!==!1&&n.ldelim()},(t,n,o={})=>{let s={},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let a=t.uint32();switch(a>>>3){case 1:{s.Type=_e.codec().decode(t);break}case 2:{s.Data=t.bytes();break}default:{t.skipType(a&7);break}}}return s})),e),r.encode=t=>q(t,r.codec()),r.decode=(t,n)=>W(t,r.codec(),n)})(ys||(ys={}));function Er(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function qe(r,e=""){if(!Number.isSafeInteger(r)||r<0){let t=e&&`"${e}" `;throw new Error(`${t}expected integer >= 0, got ${r}`)}}function K(r,e,t=""){let n=Er(r),o=r?.length,s=e!==void 0;if(!n||s&&o!==e){let i=t&&`"${t}" `,a=s?` of length ${e}`:"",c=n?`length=${o}`:`type=${typeof r}`;throw new Error(i+"expected Uint8Array"+a+", got "+c)}return r}function yn(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash must wrapped by utils.createHasher");qe(r.outputLen),qe(r.blockLen)}function Wt(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function ka(r,e){K(r,void 0,"digestInto() output");let t=e.outputLen;if(r.length<t)throw new Error('"digestInto() output" expected to be of length >='+t)}function wt(...r){for(let e=0;e<r.length;e++)r[e].fill(0)}function gn(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function $e(r,e){return r<<32-e|r>>>e}var Ua=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",gf=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));function vt(r){if(K(r),Ua)return r.toHex();let e="";for(let t=0;t<r.length;t++)e+=gf[r[t]];return e}var je={_0:48,_9:57,A:65,F:70,a:97,f:102};function Na(r){if(r>=je._0&&r<=je._9)return r-je._0;if(r>=je.A&&r<=je.F)return r-(je.A-10);if(r>=je.a&&r<=je.f)return r-(je.a-10)}function St(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);if(Ua)return Uint8Array.fromHex(r);let e=r.length,t=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);let n=new Uint8Array(t);for(let o=0,s=0;o<t;o++,s+=2){let i=Na(r.charCodeAt(s)),a=Na(r.charCodeAt(s+1));if(i===void 0||a===void 0){let c=r[s]+r[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}n[o]=i*16+a}return n}function Ve(...r){let e=0;for(let n=0;n<r.length;n++){let o=r[n];K(o),e+=o.length}let t=new Uint8Array(e);for(let n=0,o=0;n<r.length;n++){let s=r[n];t.set(s,o),o+=s.length}return t}function Ma(r,e={}){let t=(o,s)=>r(s).update(o).digest(),n=r(void 0);return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=o=>r(o),Object.assign(t,e),Object.freeze(t)}function xn(r=32){let e=typeof globalThis=="object"?globalThis.crypto:null;if(typeof e?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");return e.getRandomValues(new Uint8Array(r))}var Ka=r=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,r])});function Ha(r,e,t){return r&e^~r&t}function $a(r,e,t){return r&e^r&t^e&t}var En=class{blockLen;outputLen;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,n,o){this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(e),this.view=gn(this.buffer)}update(e){Wt(this),K(e);let{view:t,buffer:n,blockLen:o}=this,s=e.length;for(let i=0;i<s;){let a=Math.min(o-this.pos,s-i);if(a===o){let c=gn(e);for(;o<=s-i;i+=o)this.process(c,i);continue}n.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===o&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Wt(this),ka(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:o,isLE:s}=this,{pos:i}=this;t[i++]=128,wt(this.buffer.subarray(i)),this.padOffset>o-i&&(this.process(n,0),i=0);for(let f=i;f<o;f++)t[f]=0;n.setBigUint64(o-8,BigInt(this.length*8),s),this.process(n,0);let a=gn(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let l=c/4,u=this.get();if(l>u.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f<l;f++)a.setUint32(4*f,u[f],s)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:t,buffer:n,length:o,finished:s,destroyed:i,pos:a}=this;return e.destroyed=i,e.finished=s,e.length=o,e.pos=a,o%t&&e.buffer.set(n),e}clone(){return this._cloneInto()}},Je=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var xf=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]),lt=new Uint32Array(64),gs=class extends En{constructor(e){super(64,e,8,!1)}get(){let{A:e,B:t,C:n,D:o,E:s,F:i,G:a,H:c}=this;return[e,t,n,o,s,i,a,c]}set(e,t,n,o,s,i,a,c){this.A=e|0,this.B=t|0,this.C=n|0,this.D=o|0,this.E=s|0,this.F=i|0,this.G=a|0,this.H=c|0}process(e,t){for(let f=0;f<16;f++,t+=4)lt[f]=e.getUint32(t,!1);for(let f=16;f<64;f++){let p=lt[f-15],d=lt[f-2],g=$e(p,7)^$e(p,18)^p>>>3,w=$e(d,17)^$e(d,19)^d>>>10;lt[f]=w+lt[f-7]+g+lt[f-16]|0}let{A:n,B:o,C:s,D:i,E:a,F:c,G:l,H:u}=this;for(let f=0;f<64;f++){let p=$e(a,6)^$e(a,11)^$e(a,25),d=u+p+Ha(a,c,l)+xf[f]+lt[f]|0,w=($e(n,2)^$e(n,13)^$e(n,22))+$a(n,o,s)|0;u=l,l=c,c=a,a=i+d|0,i=s,s=o,o=n,n=d+w|0}n=n+this.A|0,o=o+this.B|0,s=s+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,l=l+this.G|0,u=u+this.H|0,this.set(n,o,s,i,a,c,l,u)}roundClean(){wt(lt)}destroy(){this.set(0,0,0,0,0,0,0,0),wt(this.buffer)}},xs=class extends gs{A=Je[0]|0;B=Je[1]|0;C=Je[2]|0;D=Je[3]|0;E=Je[4]|0;F=Je[5]|0;G=Je[6]|0;H=Je[7]|0;constructor(){super(32)}};var Va=Ma(()=>new xs,Ka(1));var gc=Te(oe("node:crypto"),1);var ws=BigInt(0),Es=BigInt(1);function wr(r,e=""){if(typeof r!="boolean"){let t=e&&`"${e}" `;throw new Error(t+"expected boolean, got type="+typeof r)}return r}function Ga(r){if(typeof r=="bigint"){if(!wn(r))throw new Error("positive bigint expected, got "+r)}else qe(r);return r}function vr(r){let e=Ga(r).toString(16);return e.length&1?"0"+e:e}function Fa(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return r===""?ws:BigInt("0x"+r)}function qt(r){return Fa(vt(r))}function vs(r){return Fa(vt(Ef(K(r)).reverse()))}function vn(r,e){qe(e),r=Ga(r);let t=St(r.toString(16).padStart(e*2,"0"));if(t.length!==e)throw new Error("number too large");return t}function Ss(r,e){return vn(r,e).reverse()}function Ef(r){return Uint8Array.from(r)}var wn=r=>typeof r=="bigint"&&ws<=r;function wf(r,e,t){return wn(r)&&wn(e)&&wn(t)&&e<=r&&r<t}function za(r,e,t,n){if(!wf(e,t,n))throw new Error("expected valid "+r+": "+t+" <= n < "+n+", got "+e)}function Is(r){let e;for(e=0;r>ws;r>>=Es,e+=1);return e}var Sr=r=>(Es<<BigInt(r))-Es;function Wa(r,e,t){if(qe(r,"hashLen"),qe(e,"qByteLen"),typeof t!="function")throw new Error("hmacFn must be a function");let n=b=>new Uint8Array(b),o=Uint8Array.of(),s=Uint8Array.of(0),i=Uint8Array.of(1),a=1e3,c=n(r),l=n(r),u=0,f=()=>{c.fill(1),l.fill(0),u=0},p=(...b)=>t(l,Ve(c,...b)),d=(b=o)=>{l=p(s,b),c=p(),b.length!==0&&(l=p(i,b),c=p())},g=()=>{if(u++>=a)throw new Error("drbg: tried max amount of iterations");let b=0,E=[];for(;b<e;){c=p();let _=c.slice();E.push(_),b+=c.length}return Ve(...E)};return(b,E)=>{f(),d(b);let _;for(;!(_=E(g()));)d();return f(),_}}function Ir(r,e={},t={}){if(!r||typeof r!="object")throw new Error("expected valid options object");function n(s,i,a){let c=r[s];if(a&&c===void 0)return;let l=typeof c;if(l!==i||c===null)throw new Error(`param "${s}" is invalid: expected ${i}, got ${l}`)}let o=(s,i)=>Object.entries(s).forEach(([a,c])=>n(a,c,i));o(e,!1),o(t,!0)}function As(r){let e=new WeakMap;return(t,...n)=>{let o=e.get(t);if(o!==void 0)return o;let s=r(t,...n);return e.set(t,s),s}}var we=BigInt(0),ge=BigInt(1),It=BigInt(2),Za=BigInt(3),Xa=BigInt(4),Qa=BigInt(5),vf=BigInt(7),ja=BigInt(8),Sf=BigInt(9),Ja=BigInt(16);function Ge(r,e){let t=r%e;return t>=we?t:e+t}function Be(r,e,t){let n=r;for(;e-- >we;)n*=n,n%=t;return n}function qa(r,e){if(r===we)throw new Error("invert: expected non-zero number");if(e<=we)throw new Error("invert: expected positive modulus, got "+e);let t=Ge(r,e),n=e,o=we,s=ge,i=ge,a=we;for(;t!==we;){let l=n/t,u=n%t,f=o-i*l,p=s-a*l;n=t,t=u,o=i,s=a,i=f,a=p}if(n!==ge)throw new Error("invert: does not exist");return Ge(o,e)}function Ts(r,e,t){if(!r.eql(r.sqr(e),t))throw new Error("Cannot find square root")}function ec(r,e){let t=(r.ORDER+ge)/Xa,n=r.pow(e,t);return Ts(r,n,e),n}function If(r,e){let t=(r.ORDER-Qa)/ja,n=r.mul(e,It),o=r.pow(n,t),s=r.mul(e,o),i=r.mul(r.mul(s,It),o),a=r.mul(s,r.sub(i,r.ONE));return Ts(r,a,e),a}function Af(r){let e=Yt(r),t=tc(r),n=t(e,e.neg(e.ONE)),o=t(e,n),s=t(e,e.neg(n)),i=(r+vf)/Ja;return(a,c)=>{let l=a.pow(c,i),u=a.mul(l,n),f=a.mul(l,o),p=a.mul(l,s),d=a.eql(a.sqr(u),c),g=a.eql(a.sqr(f),c);l=a.cmov(l,u,d),u=a.cmov(p,f,g);let w=a.eql(a.sqr(u),c),b=a.cmov(l,u,w);return Ts(a,b,c),b}}function tc(r){if(r<Za)throw new Error("sqrt is not defined for small field");let e=r-ge,t=0;for(;e%It===we;)e/=It,t++;let n=It,o=Yt(r);for(;Ya(o,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(t===1)return ec;let s=o.pow(n,e),i=(e+ge)/It;return function(c,l){if(c.is0(l))return l;if(Ya(c,l)!==1)throw new Error("Cannot find square root");let u=t,f=c.mul(c.ONE,s),p=c.pow(l,e),d=c.pow(l,i);for(;!c.eql(p,c.ONE);){if(c.is0(p))return c.ZERO;let g=1,w=c.sqr(p);for(;!c.eql(w,c.ONE);)if(g++,w=c.sqr(w),g===u)throw new Error("Cannot find square root");let b=ge<<BigInt(u-g-1),E=c.pow(f,b);u=g,f=c.sqr(E),p=c.mul(p,f),d=c.mul(d,E)}return d}}function Lf(r){return r%Xa===Za?ec:r%ja===Qa?If:r%Ja===Sf?Af(r):tc(r)}var Tf=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Ds(r){let e={ORDER:"bigint",BYTES:"number",BITS:"number"},t=Tf.reduce((n,o)=>(n[o]="function",n),e);return Ir(r,t),r}function Df(r,e,t){if(t<we)throw new Error("invalid exponent, negatives unsupported");if(t===we)return r.ONE;if(t===ge)return e;let n=r.ONE,o=e;for(;t>we;)t&ge&&(n=r.mul(n,o)),o=r.sqr(o),t>>=ge;return n}function Sn(r,e,t=!1){let n=new Array(e.length).fill(t?r.ZERO:void 0),o=e.reduce((i,a,c)=>r.is0(a)?i:(n[c]=i,r.mul(i,a)),r.ONE),s=r.inv(o);return e.reduceRight((i,a,c)=>r.is0(a)?i:(n[c]=r.mul(i,n[c]),r.mul(i,a)),s),n}function Ya(r,e){let t=(r.ORDER-ge)/It,n=r.pow(e,t),o=r.eql(n,r.ONE),s=r.eql(n,r.ZERO),i=r.eql(n,r.neg(r.ONE));if(!o&&!s&&!i)throw new Error("invalid Legendre symbol result");return o?1:s?0:-1}function Cf(r,e){e!==void 0&&qe(e);let t=e!==void 0?e:r.toString(2).length,n=Math.ceil(t/8);return{nBitLength:t,nByteLength:n}}var Ls=class{ORDER;BITS;BYTES;isLE;ZERO=we;ONE=ge;_lengths;_sqrt;_mod;constructor(e,t={}){if(e<=we)throw new Error("invalid field: expected ORDER > 0, got "+e);let n;this.isLE=!1,t!=null&&typeof t=="object"&&(typeof t.BITS=="number"&&(n=t.BITS),typeof t.sqrt=="function"&&(this.sqrt=t.sqrt),typeof t.isLE=="boolean"&&(this.isLE=t.isLE),t.allowedLengths&&(this._lengths=t.allowedLengths?.slice()),typeof t.modFromBytes=="boolean"&&(this._mod=t.modFromBytes));let{nBitLength:o,nByteLength:s}=Cf(e,n);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=e,this.BITS=o,this.BYTES=s,this._sqrt=void 0,Object.preventExtensions(this)}create(e){return Ge(e,this.ORDER)}isValid(e){if(typeof e!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof e);return we<=e&&e<this.ORDER}is0(e){return e===we}isValidNot0(e){return!this.is0(e)&&this.isValid(e)}isOdd(e){return(e&ge)===ge}neg(e){return Ge(-e,this.ORDER)}eql(e,t){return e===t}sqr(e){return Ge(e*e,this.ORDER)}add(e,t){return Ge(e+t,this.ORDER)}sub(e,t){return Ge(e-t,this.ORDER)}mul(e,t){return Ge(e*t,this.ORDER)}pow(e,t){return Df(this,e,t)}div(e,t){return Ge(e*qa(t,this.ORDER),this.ORDER)}sqrN(e){return e*e}addN(e,t){return e+t}subN(e,t){return e-t}mulN(e,t){return e*t}inv(e){return qa(e,this.ORDER)}sqrt(e){return this._sqrt||(this._sqrt=Lf(this.ORDER)),this._sqrt(this,e)}toBytes(e){return this.isLE?Ss(e,this.BYTES):vn(e,this.BYTES)}fromBytes(e,t=!1){K(e);let{_lengths:n,BYTES:o,isLE:s,ORDER:i,_mod:a}=this;if(n){if(!n.includes(e.length)||e.length>o)throw new Error("Field.fromBytes: expected "+n+" bytes, got "+e.length);let l=new Uint8Array(o);l.set(e,s?0:l.length-e.length),e=l}if(e.length!==o)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+e.length);let c=s?vs(e):qt(e);if(a&&(c=Ge(c,i)),!t&&!this.isValid(c))throw new Error("invalid field element: outside of range 0..ORDER");return c}invertBatch(e){return Sn(this,e)}cmov(e,t,n){return n?t:e}};function Yt(r,e={}){return new Ls(r,e)}function rc(r){if(typeof r!="bigint")throw new Error("field order must be bigint");let e=r.toString(2).length;return Math.ceil(e/8)}function Cs(r){let e=rc(r);return e+Math.ceil(e/2)}function _s(r,e,t=!1){K(r);let n=r.length,o=rc(e),s=Cs(e);if(n<16||n<s||n>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);let i=t?vs(r):qt(r),a=Ge(i,e-ge)+ge;return t?Ss(a,o):vn(a,o)}var Zt=BigInt(0),At=BigInt(1);function Ar(r,e){let t=e.negate();return r?t:e}function Rs(r,e){let t=Sn(r.Fp,e.map(n=>n.Z));return e.map((n,o)=>r.fromAffine(n.toAffine(t[o])))}function ic(r,e){if(!Number.isSafeInteger(r)||r<=0||r>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+r)}function Bs(r,e){ic(r,e);let t=Math.ceil(e/r)+1,n=2**(r-1),o=2**r,s=Sr(r),i=BigInt(r);return{windows:t,windowSize:n,mask:s,maxNumber:o,shiftBy:i}}function nc(r,e,t){let{windowSize:n,mask:o,maxNumber:s,shiftBy:i}=t,a=Number(r&o),c=r>>i;a>n&&(a-=s,c+=At);let l=e*n,u=l+Math.abs(a)-1,f=a===0,p=a<0,d=e%2!==0;return{nextN:c,offset:u,isZero:f,isNeg:p,isNegF:d,offsetF:l}}var Os=new WeakMap,ac=new WeakMap;function Ps(r){return ac.get(r)||1}function oc(r){if(r!==Zt)throw new Error("invalid wNAF")}var In=class{BASE;ZERO;Fn;bits;constructor(e,t){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=t}_unsafeLadder(e,t,n=this.ZERO){let o=e;for(;t>Zt;)t&At&&(n=n.add(o)),o=o.double(),t>>=At;return n}precomputeWindow(e,t){let{windows:n,windowSize:o}=Bs(t,this.bits),s=[],i=e,a=i;for(let c=0;c<n;c++){a=i,s.push(a);for(let l=1;l<o;l++)a=a.add(i),s.push(a);i=a.double()}return s}wNAF(e,t,n){if(!this.Fn.isValid(n))throw new Error("invalid scalar");let o=this.ZERO,s=this.BASE,i=Bs(e,this.bits);for(let a=0;a<i.windows;a++){let{nextN:c,offset:l,isZero:u,isNeg:f,isNegF:p,offsetF:d}=nc(n,a,i);n=c,u?s=s.add(Ar(p,t[d])):o=o.add(Ar(f,t[l]))}return oc(n),{p:o,f:s}}wNAFUnsafe(e,t,n,o=this.ZERO){let s=Bs(e,this.bits);for(let i=0;i<s.windows&&n!==Zt;i++){let{nextN:a,offset:c,isZero:l,isNeg:u}=nc(n,i,s);if(n=a,!l){let f=t[c];o=o.add(u?f.negate():f)}}return oc(n),o}getPrecomputes(e,t,n){let o=Os.get(t);return o||(o=this.precomputeWindow(t,e),e!==1&&(typeof n=="function"&&(o=n(o)),Os.set(t,o))),o}cached(e,t,n){let o=Ps(e);return this.wNAF(o,this.getPrecomputes(o,e,n),t)}unsafe(e,t,n,o){let s=Ps(e);return s===1?this._unsafeLadder(e,t,o):this.wNAFUnsafe(s,this.getPrecomputes(s,e,n),t,o)}createCache(e,t){ic(t,this.bits),ac.set(e,t),Os.delete(e)}hasCache(e){return Ps(e)!==1}};function cc(r,e,t,n){let o=e,s=r.ZERO,i=r.ZERO;for(;t>Zt||n>Zt;)t&At&&(s=s.add(o)),n&At&&(i=i.add(o)),o=o.double(),t>>=At,n>>=At;return{p1:s,p2:i}}function sc(r,e,t){if(e){if(e.ORDER!==r)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return Ds(e),e}else return Yt(r,{isLE:t})}function uc(r,e,t={},n){if(n===void 0&&(n=r==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${r} CURVE object`);for(let c of["p","n","h"]){let l=e[c];if(!(typeof l=="bigint"&&l>Zt))throw new Error(`CURVE.${c} must be positive bigint`)}let o=sc(e.p,t.Fp,n),s=sc(e.n,t.Fn,n),a=["Gx","Gy","a",r==="weierstrass"?"b":"d"];for(let c of a)if(!o.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:o,Fn:s}}function lc(r,e){return function(n){let o=r(n);return{secretKey:o,publicKey:e(o)}}}var An=class{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(e,t){if(yn(e),K(t,void 0,"key"),this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,o=new Uint8Array(n);o.set(t.length>n?e.create().update(t).digest():t);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=e.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),wt(o)}update(e){return Wt(this),this.iHash.update(e),this}digestInto(e){Wt(this),K(e,this.outputLen,"output"),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||=Object.create(Object.getPrototypeOf(this),{});let{oHash:t,iHash:n,finished:o,destroyed:s,blockLen:i,outputLen:a}=this;return e=e,e.finished=o,e.destroyed=s,e.blockLen=i,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Ns=(r,e,t)=>new An(r,e).update(t).digest();Ns.create=(r,e)=>new An(r,e);var fc=(r,e)=>(r+(r>=0?e:-e)/dc)/e;function _f(r,e,t){let[[n,o],[s,i]]=e,a=fc(i*r,t),c=fc(-o*r,t),l=r-a*n-c*s,u=-a*o-c*i,f=l<et,p=u<et;f&&(l=-l),p&&(u=-u);let d=Sr(Math.ceil(Is(t)/2))+Xt;if(l<et||l>=d||u<et||u>=d)throw new Error("splitScalar (endomorphism): failed, k="+r);return{k1neg:f,k1:l,k2neg:p,k2:u}}function Us(r){if(!["compact","recovered","der"].includes(r))throw new Error('Signature format must be "compact", "recovered", or "der"');return r}function ks(r,e){let t={};for(let n of Object.keys(e))t[n]=r[n]===void 0?e[n]:r[n];return wr(t.lowS,"lowS"),wr(t.prehash,"prehash"),t.format!==void 0&&Us(t.format),t}var Ms=class extends Error{constructor(e=""){super(e)}},ft={Err:Ms,_tlv:{encode:(r,e)=>{let{Err:t}=ft;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length&1)throw new t("tlv.encode: unpadded data");let n=e.length/2,o=vr(n);if(o.length/2&128)throw new t("tlv.encode: long form length too big");let s=n>127?vr(o.length/2|128):"";return vr(r)+s+o+e},decode(r,e){let{Err:t}=ft,n=0;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length<2||e[n++]!==r)throw new t("tlv.decode: wrong tlv");let o=e[n++],s=!!(o&128),i=0;if(!s)i=o;else{let c=o&127;if(!c)throw new t("tlv.decode(long): indefinite length not supported");if(c>4)throw new t("tlv.decode(long): byte length is too big");let l=e.subarray(n,n+c);if(l.length!==c)throw new t("tlv.decode: length bytes not complete");if(l[0]===0)throw new t("tlv.decode(long): zero leftmost byte");for(let u of l)i=i<<8|u;if(n+=c,i<128)throw new t("tlv.decode(long): not minimal encoding")}let a=e.subarray(n,n+i);if(a.length!==i)throw new t("tlv.decode: wrong value length");return{v:a,l:e.subarray(n+i)}}},_int:{encode(r){let{Err:e}=ft;if(r<et)throw new e("integer: negative integers are not allowed");let t=vr(r);if(Number.parseInt(t[0],16)&8&&(t="00"+t),t.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return t},decode(r){let{Err:e}=ft;if(r[0]&128)throw new e("invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return qt(r)}},toSig(r){let{Err:e,_int:t,_tlv:n}=ft,o=K(r,void 0,"signature"),{v:s,l:i}=n.decode(48,o);if(i.length)throw new e("invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,s),{v:l,l:u}=n.decode(2,c);if(u.length)throw new e("invalid signature: left bytes after parsing");return{r:t.decode(a),s:t.decode(l)}},hexFromSig(r){let{_tlv:e,_int:t}=ft,n=e.encode(2,t.encode(r.r)),o=e.encode(2,t.encode(r.s)),s=n+o;return e.encode(48,s)}},et=BigInt(0),Xt=BigInt(1),dc=BigInt(2),Ln=BigInt(3),Bf=BigInt(4);function hc(r,e={}){let t=uc("weierstrass",r,e),{Fp:n,Fn:o}=t,s=t.CURVE,{h:i,n:a}=s;Ir(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object"});let{endo:c}=e;if(c&&(!n.is0(s.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let l=mc(n,o);function u(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function f(M,y,m){let{x:h,y:x}=y.toAffine(),S=n.toBytes(h);if(wr(m,"isCompressed"),m){u();let L=!n.isOdd(x);return Ve(pc(L),S)}else return Ve(Uint8Array.of(4),S,n.toBytes(x))}function p(M){K(M,void 0,"Point");let{publicKey:y,publicKeyUncompressed:m}=l,h=M.length,x=M[0],S=M.subarray(1);if(h===y&&(x===2||x===3)){let L=n.fromBytes(S);if(!n.isValid(L))throw new Error("bad point: is not on curve, wrong x");let A=w(L),v;try{v=n.sqrt(A)}catch(ne){let F=ne instanceof Error?": "+ne.message:"";throw new Error("bad point: is not on curve, sqrt error"+F)}u();let T=n.isOdd(v);return(x&1)===1!==T&&(v=n.neg(v)),{x:L,y:v}}else if(h===m&&x===4){let L=n.BYTES,A=n.fromBytes(S.subarray(0,L)),v=n.fromBytes(S.subarray(L,L*2));if(!b(A,v))throw new Error("bad point: is not on curve");return{x:A,y:v}}else throw new Error(`bad point: got length ${h}, expected compressed=${y} or uncompressed=${m}`)}let d=e.toBytes||f,g=e.fromBytes||p;function w(M){let y=n.sqr(M),m=n.mul(y,M);return n.add(n.add(m,n.mul(M,s.a)),s.b)}function b(M,y){let m=n.sqr(y),h=w(M);return n.eql(m,h)}if(!b(s.Gx,s.Gy))throw new Error("bad curve params: generator point");let E=n.mul(n.pow(s.a,Ln),Bf),_=n.mul(n.sqr(s.b),BigInt(27));if(n.is0(n.add(E,_)))throw new Error("bad curve params: a or b");function P(M,y,m=!1){if(!n.isValid(y)||m&&n.is0(y))throw new Error(`bad point coordinate ${M}`);return y}function N(M){if(!(M instanceof C))throw new Error("Weierstrass Point expected")}function $(M){if(!c||!c.basises)throw new Error("no endo");return _f(M,c.basises,o.ORDER)}let ie=As((M,y)=>{let{X:m,Y:h,Z:x}=M;if(n.eql(x,n.ONE))return{x:m,y:h};let S=M.is0();y==null&&(y=S?n.ONE:n.inv(x));let L=n.mul(m,y),A=n.mul(h,y),v=n.mul(x,y);if(S)return{x:n.ZERO,y:n.ZERO};if(!n.eql(v,n.ONE))throw new Error("invZ was invalid");return{x:L,y:A}}),re=As(M=>{if(M.is0()){if(e.allowInfinityPoint&&!n.is0(M.Y))return;throw new Error("bad point: ZERO")}let{x:y,y:m}=M.toAffine();if(!n.isValid(y)||!n.isValid(m))throw new Error("bad point: x or y not field elements");if(!b(y,m))throw new Error("bad point: equation left != right");if(!M.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function le(M,y,m,h,x){return m=new C(n.mul(m.X,M),m.Y,m.Z),y=Ar(h,y),m=Ar(x,m),y.add(m)}class C{static BASE=new C(s.Gx,s.Gy,n.ONE);static ZERO=new C(n.ZERO,n.ONE,n.ZERO);static Fp=n;static Fn=o;X;Y;Z;constructor(y,m,h){this.X=P("x",y),this.Y=P("y",m,!0),this.Z=P("z",h),Object.freeze(this)}static CURVE(){return s}static fromAffine(y){let{x:m,y:h}=y||{};if(!y||!n.isValid(m)||!n.isValid(h))throw new Error("invalid affine point");if(y instanceof C)throw new Error("projective point not allowed");return n.is0(m)&&n.is0(h)?C.ZERO:new C(m,h,n.ONE)}static fromBytes(y){let m=C.fromAffine(g(K(y,void 0,"point")));return m.assertValidity(),m}static fromHex(y){return C.fromBytes(St(y))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,m=!0){return ht.createCache(this,y),m||this.multiply(Ln),this}assertValidity(){re(this)}hasEvenY(){let{y}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(y)}equals(y){N(y);let{X:m,Y:h,Z:x}=this,{X:S,Y:L,Z:A}=y,v=n.eql(n.mul(m,A),n.mul(S,x)),T=n.eql(n.mul(h,A),n.mul(L,x));return v&&T}negate(){return new C(this.X,n.neg(this.Y),this.Z)}double(){let{a:y,b:m}=s,h=n.mul(m,Ln),{X:x,Y:S,Z:L}=this,A=n.ZERO,v=n.ZERO,T=n.ZERO,D=n.mul(x,x),ne=n.mul(S,S),F=n.mul(L,L),O=n.mul(x,S);return O=n.add(O,O),T=n.mul(x,L),T=n.add(T,T),A=n.mul(y,T),v=n.mul(h,F),v=n.add(A,v),A=n.sub(ne,v),v=n.add(ne,v),v=n.mul(A,v),A=n.mul(O,A),T=n.mul(h,T),F=n.mul(y,F),O=n.sub(D,F),O=n.mul(y,O),O=n.add(O,T),T=n.add(D,D),D=n.add(T,D),D=n.add(D,F),D=n.mul(D,O),v=n.add(v,D),F=n.mul(S,L),F=n.add(F,F),D=n.mul(F,O),A=n.sub(A,D),T=n.mul(F,ne),T=n.add(T,T),T=n.add(T,T),new C(A,v,T)}add(y){N(y);let{X:m,Y:h,Z:x}=this,{X:S,Y:L,Z:A}=y,v=n.ZERO,T=n.ZERO,D=n.ZERO,ne=s.a,F=n.mul(s.b,Ln),O=n.mul(m,S),X=n.mul(h,L),fe=n.mul(x,A),Fe=n.add(m,h),Q=n.add(S,L);Fe=n.mul(Fe,Q),Q=n.add(O,X),Fe=n.sub(Fe,Q),Q=n.add(m,x);let pe=n.add(S,A);return Q=n.mul(Q,pe),pe=n.add(O,fe),Q=n.sub(Q,pe),pe=n.add(h,x),v=n.add(L,A),pe=n.mul(pe,v),v=n.add(X,fe),pe=n.sub(pe,v),D=n.mul(ne,Q),v=n.mul(F,fe),D=n.add(v,D),v=n.sub(X,D),D=n.add(X,D),T=n.mul(v,D),X=n.add(O,O),X=n.add(X,O),fe=n.mul(ne,fe),Q=n.mul(F,Q),X=n.add(X,fe),fe=n.sub(O,fe),fe=n.mul(ne,fe),Q=n.add(Q,fe),O=n.mul(X,Q),T=n.add(T,O),O=n.mul(pe,Q),v=n.mul(Fe,v),v=n.sub(v,O),O=n.mul(Fe,X),D=n.mul(pe,D),D=n.add(D,O),new C(v,T,D)}subtract(y){return this.add(y.negate())}is0(){return this.equals(C.ZERO)}multiply(y){let{endo:m}=e;if(!o.isValidNot0(y))throw new Error("invalid scalar: out of range");let h,x,S=L=>ht.cached(this,L,A=>Rs(C,A));if(m){let{k1neg:L,k1:A,k2neg:v,k2:T}=$(y),{p:D,f:ne}=S(A),{p:F,f:O}=S(T);x=ne.add(O),h=le(m.beta,D,F,L,v)}else{let{p:L,f:A}=S(y);h=L,x=A}return Rs(C,[h,x])[0]}multiplyUnsafe(y){let{endo:m}=e,h=this;if(!o.isValid(y))throw new Error("invalid scalar: out of range");if(y===et||h.is0())return C.ZERO;if(y===Xt)return h;if(ht.hasCache(this))return this.multiply(y);if(m){let{k1neg:x,k1:S,k2neg:L,k2:A}=$(y),{p1:v,p2:T}=cc(C,h,S,A);return le(m.beta,v,T,x,L)}else return ht.unsafe(h,y)}toAffine(y){return ie(this,y)}isTorsionFree(){let{isTorsionFree:y}=e;return i===Xt?!0:y?y(C,this):ht.unsafe(this,a).is0()}clearCofactor(){let{clearCofactor:y}=e;return i===Xt?this:y?y(C,this):this.multiplyUnsafe(i)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}toBytes(y=!0){return wr(y,"isCompressed"),this.assertValidity(),d(C,this,y)}toHex(y=!0){return vt(this.toBytes(y))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let Ot=o.BITS,ht=new In(C,e.endo?Math.ceil(Ot/2):Ot);return C.BASE.precompute(8),C}function pc(r){return Uint8Array.of(r?2:3)}function mc(r,e){return{secretKey:e.BYTES,publicKey:1+r.BYTES,publicKeyUncompressed:1+2*r.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function Of(r,e={}){let{Fn:t}=r,n=e.randomBytes||xn,o=Object.assign(mc(r.Fp,t),{seed:Cs(t.ORDER)});function s(d){try{let g=t.fromBytes(d);return t.isValidNot0(g)}catch{return!1}}function i(d,g){let{publicKey:w,publicKeyUncompressed:b}=o;try{let E=d.length;return g===!0&&E!==w||g===!1&&E!==b?!1:!!r.fromBytes(d)}catch{return!1}}function a(d=n(o.seed)){return _s(K(d,o.seed,"seed"),t.ORDER)}function c(d,g=!0){return r.BASE.multiply(t.fromBytes(d)).toBytes(g)}function l(d){let{secretKey:g,publicKey:w,publicKeyUncompressed:b}=o;if(!Er(d)||"_lengths"in t&&t._lengths||g===w)return;let E=K(d,void 0,"key").length;return E===w||E===b}function u(d,g,w=!0){if(l(d)===!0)throw new Error("first arg must be private key");if(l(g)===!1)throw new Error("second arg must be public key");let b=t.fromBytes(d);return r.fromBytes(g).multiply(b).toBytes(w)}let f={isValidSecretKey:s,isValidPublicKey:i,randomSecretKey:a},p=lc(a,c);return Object.freeze({getPublicKey:c,getSharedSecret:u,keygen:p,Point:r,utils:f,lengths:o})}function bc(r,e,t={}){yn(e),Ir(t,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"}),t=Object.assign({},t);let n=t.randomBytes||xn,o=t.hmac||((m,h)=>Ns(e,m,h)),{Fp:s,Fn:i}=r,{ORDER:a,BITS:c}=i,{keygen:l,getPublicKey:u,getSharedSecret:f,utils:p,lengths:d}=Of(r,t),g={prehash:!0,lowS:typeof t.lowS=="boolean"?t.lowS:!0,format:"compact",extraEntropy:!1},w=a*dc<s.ORDER;function b(m){let h=a>>Xt;return m>h}function E(m,h){if(!i.isValidNot0(h))throw new Error(`invalid signature ${m}: out of range 1..Point.Fn.ORDER`);return h}function _(){if(w)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function P(m,h){Us(h);let x=d.signature,S=h==="compact"?x:h==="recovered"?x+1:void 0;return K(m,S)}class N{r;s;recovery;constructor(h,x,S){if(this.r=E("r",h),this.s=E("s",x),S!=null){if(_(),![0,1,2,3].includes(S))throw new Error("invalid recovery id");this.recovery=S}Object.freeze(this)}static fromBytes(h,x=g.format){P(h,x);let S;if(x==="der"){let{r:T,s:D}=ft.toSig(K(h));return new N(T,D)}x==="recovered"&&(S=h[0],x="compact",h=h.subarray(1));let L=d.signature/2,A=h.subarray(0,L),v=h.subarray(L,L*2);return new N(i.fromBytes(A),i.fromBytes(v),S)}static fromHex(h,x){return this.fromBytes(St(h),x)}assertRecovery(){let{recovery:h}=this;if(h==null)throw new Error("invalid recovery id: must be present");return h}addRecoveryBit(h){return new N(this.r,this.s,h)}recoverPublicKey(h){let{r:x,s:S}=this,L=this.assertRecovery(),A=L===2||L===3?x+a:x;if(!s.isValid(A))throw new Error("invalid recovery id: sig.r+curve.n != R.x");let v=s.toBytes(A),T=r.fromBytes(Ve(pc((L&1)===0),v)),D=i.inv(A),ne=ie(K(h,void 0,"msgHash")),F=i.create(-ne*D),O=i.create(S*D),X=r.BASE.multiplyUnsafe(F).add(T.multiplyUnsafe(O));if(X.is0())throw new Error("invalid recovery: point at infinify");return X.assertValidity(),X}hasHighS(){return b(this.s)}toBytes(h=g.format){if(Us(h),h==="der")return St(ft.hexFromSig(this));let{r:x,s:S}=this,L=i.toBytes(x),A=i.toBytes(S);return h==="recovered"?(_(),Ve(Uint8Array.of(this.assertRecovery()),L,A)):Ve(L,A)}toHex(h){return vt(this.toBytes(h))}}let $=t.bits2int||function(h){if(h.length>8192)throw new Error("input is too large");let x=qt(h),S=h.length*8-c;return S>0?x>>BigInt(S):x},ie=t.bits2int_modN||function(h){return i.create($(h))},re=Sr(c);function le(m){return za("num < 2^"+c,m,et,re),i.toBytes(m)}function C(m,h){return K(m,void 0,"message"),h?K(e(m),void 0,"prehashed message"):m}function Ot(m,h,x){let{lowS:S,prehash:L,extraEntropy:A}=ks(x,g);m=C(m,L);let v=ie(m),T=i.fromBytes(h);if(!i.isValidNot0(T))throw new Error("invalid private key");let D=[le(T),le(v)];if(A!=null&&A!==!1){let X=A===!0?n(d.secretKey):A;D.push(K(X,void 0,"extraEntropy"))}let ne=Ve(...D),F=v;function O(X){let fe=$(X);if(!i.isValidNot0(fe))return;let Fe=i.inv(fe),Q=r.BASE.multiply(fe).toAffine(),pe=i.create(Q.x);if(pe===et)return;let Pr=i.create(Fe*i.create(F+pe*T));if(Pr===et)return;let Di=(Q.x===pe?0:2)|Number(Q.y&Xt),Ci=Pr;return S&&b(Pr)&&(Ci=i.neg(Pr),Di^=1),new N(pe,Ci,w?void 0:Di)}return{seed:ne,k2sig:O}}function ht(m,h,x={}){let{seed:S,k2sig:L}=Ot(m,h,x);return Wa(e.outputLen,i.BYTES,o)(S,L).toBytes(x.format)}function M(m,h,x,S={}){let{lowS:L,prehash:A,format:v}=ks(S,g);if(x=K(x,void 0,"publicKey"),h=C(h,A),!Er(m)){let T=m instanceof N?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+T)}P(m,v);try{let T=N.fromBytes(m,v),D=r.fromBytes(x);if(L&&T.hasHighS())return!1;let{r:ne,s:F}=T,O=ie(h),X=i.inv(F),fe=i.create(O*X),Fe=i.create(ne*X),Q=r.BASE.multiplyUnsafe(fe).add(D.multiplyUnsafe(Fe));return Q.is0()?!1:i.create(Q.x)===ne}catch{return!1}}function y(m,h,x={}){let{prehash:S}=ks(x,g);return h=C(h,S),N.fromBytes(m,"recovered").recoverPublicKey(h).toBytes()}return Object.freeze({keygen:l,getPublicKey:u,getSharedSecret:f,utils:p,lengths:d,Point:r,sign:ht,verify:M,recoverPublicKey:y,Signature:N,hash:e})}var Hs={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},Pf={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]};var yc=BigInt(2);function Rf(r){let e=Hs.p,t=BigInt(3),n=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),l=r*r*r%e,u=l*l*r%e,f=Be(u,t,e)*u%e,p=Be(f,t,e)*u%e,d=Be(p,yc,e)*l%e,g=Be(d,o,e)*d%e,w=Be(g,s,e)*g%e,b=Be(w,a,e)*w%e,E=Be(b,c,e)*b%e,_=Be(E,a,e)*w%e,P=Be(_,t,e)*u%e,N=Be(P,i,e)*g%e,$=Be(N,n,e)*l%e,ie=Be($,yc,e);if(!Ks.eql(Ks.sqr(ie),r))throw new Error("Cannot find square root");return ie}var Ks=Yt(Hs.p,{sqrt:Rf}),Nf=hc(Hs,{Fp:Ks,endo:Pf}),Lr=bc(Nf,Va);var Tn=class extends Error{constructor(e="An error occurred while verifying a message"){super(e),this.name="VerificationError"}};function xc(r,e,t,n){n?.signal?.throwIfAborted();let o=gc.default.createHash("sha256");if(t instanceof Uint8Array)o.update(t);else for(let i of t)o.update(i);let s=o.digest();try{return Lr.verify(e,s,r,{prehash:!1,format:"der"})}catch(i){throw new Tn(String(i))}}var Dn=class{type="secp256k1";raw;_key;constructor(e){this._key=wc(e),this.raw=Ec(this._key)}toMultihash(){return Ke.digest(ut(this))}toCID(){return se.createV1(114,this.toMultihash())}toString(){return J.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Ce(this.raw,e.raw)}verify(e,t,n){return xc(this._key,t,e,n)}};function vc(r){return new Dn(r)}function Ec(r){return Lr.Point.fromBytes(r).toBytes()}function wc(r){try{return Lr.Point.fromBytes(r),r}catch(e){throw new nn(String(e))}}function Sc(r){let{Type:e,Data:t}=xr.decode(r.digest),n=t??new Uint8Array;switch(e){case _e.Ed25519:return Ra(n);case _e.secp256k1:return vc(n);case _e.ECDSA:return Da(n);default:throw new mr}}function ut(r){return xr.encode({Type:_e[r.type],Data:r.raw})}var Ic=Symbol.for("nodejs.util.inspect.custom"),kf=114,Tr=class{type;multihash;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[cs]=!0;toString(){return this.string==null&&(this.string=J.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return se.createV1(kf,this.multihash)}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return Ce(this.multihash.bytes,e);if(typeof e=="string")return this.toString()===e;if(e?.toMultihash()?.bytes!=null)return Ce(this.multihash.bytes,e.toMultihash().bytes);throw new Error("not valid Id")}[Ic](){return`PeerId(${this.toString()})`}},Cn=class extends Tr{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},_n=class extends Tr{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.publicKey}},Bn=class extends Tr{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.publicKey}},Uf=2336,On=class{type="url";multihash;publicKey;url;constructor(e){this.url=e.toString(),this.multihash=Ke.digest(ye(this.url))}[Ic](){return`PeerId(${this.url})`}[cs]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return se.createV1(Uf,this.toMultihash())}toJSON(){return this.toString()}equals(e){return e==null?!1:(e instanceof Uint8Array&&(e=te(e)),e.toString()===this.toString())}};function Qt(r){if(Kf(r))return new Cn({multihash:r});if(Mf(r))try{let e=Sc(r);if(e.type==="Ed25519")return new _n({multihash:r,publicKey:e});if(e.type==="secp256k1")return new Bn({multihash:r,publicKey:e})}catch{let t=te(r.digest);return new On(new URL(t))}throw new sn("Supplied PeerID Multihash is invalid")}function Mf(r){return r.code===Ke.code}function Kf(r){return r.code===Xo.code}var au=Te(oe("net"),1);var he=class extends Error{static name="InvalidMultiaddrError";name="InvalidMultiaddrError"},tt=class extends Error{static name="ValidationError";name="ValidationError"},Pn=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},Rn=class extends Error{static name="UnknownProtocolError";name="UnknownProtocolError"};var Oe=oe("node:net");function Vs(r){return e=>te(e,r)}function Gs(r){return e=>ye(e,r)}function jt(r){return new DataView(r.buffer).getUint16(r.byteOffset).toString()}function Lt(r){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,typeof r=="string"?parseInt(r):r),new Uint8Array(e)}function Ac(r){let e=r.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let t=ye(e[0],"base32"),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=Lt(n);return We([t,o],t.length+o.length)}function Lc(r){let e=r.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let t=ze.decode(`b${e[0]}`),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=Lt(n);return We([t,o],t.length+o.length)}function Fs(r){let e=r.subarray(0,r.length-2),t=r.subarray(r.length-2),n=te(e,"base32"),o=jt(t);return`${n}:${o}`}var zs=function(r){r=r.toString().trim();let e=new Uint8Array(4);return r.split(/\./g).forEach((t,n)=>{let o=parseInt(t,10);if(isNaN(o)||o<0||o>255)throw new he("Invalid byte value in IP address");e[n]=o}),e},Tc=function(r){let e=0;r=r.toString().trim();let t=r.split(":",8),n;for(n=0;n<t.length;n++){let s=(0,Oe.isIPv4)(t[n]),i;s&&(i=zs(t[n]),t[n]=te(i.subarray(0,2),"base16")),i!=null&&++n<8&&t.splice(n,0,te(i.subarray(2,4),"base16"))}if(t[0]==="")for(;t.length<8;)t.unshift("0");else if(t[t.length-1]==="")for(;t.length<8;)t.push("0");else if(t.length<8){for(n=0;n<t.length&&t[n]!=="";n++);let s=[n,1];for(n=9-t.length;n>0;n--)s.push("0");t.splice.apply(t,s)}let o=new Uint8Array(e+16);for(n=0;n<t.length;n++){t[n]===""&&(t[n]="0");let s=parseInt(t[n],16);if(isNaN(s)||s<0||s>65535)throw new he("Invalid byte value in IP address");o[e++]=s>>8&255,o[e++]=s&255}return o},Dc=function(r){if(r.byteLength!==4)throw new he("IPv4 address was incorrect length");let e=[];for(let t=0;t<r.byteLength;t++)e.push(r[t]);return e.join(".")},Cc=function(r){if(r.byteLength!==16)throw new he("IPv6 address was incorrect length");let e=[];for(let n=0;n<r.byteLength;n+=2){let o=r[n],s=r[n+1],i=`${o.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}`;e.push(i)}let t=e.join(":");try{let n=new URL(`http://[${t}]`);return n.hostname.substring(1,n.hostname.length-1)}catch{throw new he(`Invalid IPv6 address "${t}"`)}};function _c(r){try{let e=new URL(`http://[${r}]`);return e.hostname.substring(1,e.hostname.length-1)}catch{throw new he(`Invalid IPv6 address "${r}"`)}}var $s=Object.values(ur).map(r=>r.decoder),Hf=(function(){let r=$s[0].or($s[1]);return $s.slice(2).forEach(e=>r=r.or(e)),r})();function Bc(r){return Hf.decode(r)}function Oc(r){return e=>r.encoder.encode(e)}function $f(r){if(parseInt(r).toString()!==r)throw new tt("Value must be an integer")}function Vf(r){if(r<0)throw new tt("Value must be a positive integer, or zero")}function Gf(r){return e=>{if(e>r)throw new tt(`Value must be smaller than or equal to ${r}`)}}function Ff(...r){return e=>{for(let t of r)t(e)}}var Dr=Ff($f,Vf,Gf(65535));var ce=-1,Ws=class{protocolsByCode=new Map;protocolsByName=new Map;getProtocol(e){let t;if(typeof e=="string"?t=this.protocolsByName.get(e):t=this.protocolsByCode.get(e),t==null)throw new Rn(`Protocol ${e} was unknown`);return t}addProtocol(e){this.protocolsByCode.set(e.code,e),this.protocolsByName.set(e.name,e),e.aliases?.forEach(t=>{this.protocolsByName.set(t,e)})}removeProtocol(e){let t=this.protocolsByCode.get(e);t!=null&&(this.protocolsByCode.delete(t.code),this.protocolsByName.delete(t.name),t.aliases?.forEach(n=>{this.protocolsByName.delete(n)}))}},rt=new Ws,sd=[{code:4,name:"ip4",size:32,valueToBytes:zs,bytesToValue:Dc,validate:r=>{if(!(0,Oe.isIPv4)(r))throw new tt(`Invalid IPv4 address "${r}"`)}},{code:6,name:"tcp",size:16,valueToBytes:Lt,bytesToValue:jt,validate:Dr},{code:273,name:"udp",size:16,valueToBytes:Lt,bytesToValue:jt,validate:Dr},{code:33,name:"dccp",size:16,valueToBytes:Lt,bytesToValue:jt,validate:Dr},{code:41,name:"ip6",size:128,valueToBytes:Tc,bytesToValue:Cc,stringToValue:_c,validate:r=>{if(!(0,Oe.isIPv6)(r))throw new tt(`Invalid IPv6 address "${r}"`)}},{code:42,name:"ip6zone",size:ce},{code:43,name:"ipcidr",size:8,bytesToValue:Vs("base10"),valueToBytes:Gs("base10")},{code:53,name:"dns",size:ce},{code:54,name:"dns4",size:ce},{code:55,name:"dns6",size:ce},{code:56,name:"dnsaddr",size:ce},{code:132,name:"sctp",size:16,valueToBytes:Lt,bytesToValue:jt,validate:Dr},{code:301,name:"udt"},{code:302,name:"utp"},{code:400,name:"unix",size:ce,stringToValue:r=>decodeURIComponent(r),valueToString:r=>encodeURIComponent(r)},{code:421,name:"p2p",aliases:["ipfs"],size:ce,bytesToValue:Vs("base58btc"),valueToBytes:r=>r.startsWith("Q")||r.startsWith("1")?Gs("base58btc")(r):se.parse(r).multihash.bytes},{code:444,name:"onion",size:96,bytesToValue:Fs,valueToBytes:Ac},{code:445,name:"onion3",size:296,bytesToValue:Fs,valueToBytes:Lc},{code:446,name:"garlic64",size:ce},{code:447,name:"garlic32",size:ce},{code:448,name:"tls"},{code:449,name:"sni",size:ce},{code:454,name:"noise"},{code:460,name:"quic"},{code:461,name:"quic-v1"},{code:465,name:"webtransport"},{code:466,name:"certhash",size:ce,bytesToValue:Oc($o),valueToBytes:Bc},{code:480,name:"http"},{code:481,name:"http-path",size:ce,stringToValue:r=>`/${decodeURIComponent(r)}`,valueToString:r=>encodeURIComponent(r.substring(1))},{code:443,name:"https"},{code:477,name:"ws"},{code:478,name:"wss"},{code:479,name:"p2p-websocket-star"},{code:277,name:"p2p-stardust"},{code:275,name:"p2p-webrtc-star"},{code:276,name:"p2p-webrtc-direct"},{code:280,name:"webrtc-direct"},{code:281,name:"webrtc"},{code:290,name:"p2p-circuit"},{code:777,name:"memory",size:ce}];sd.forEach(r=>{rt.addProtocol(r)});function Pc(r){let e=[],t=0;for(;t<r.length;){let n=mt(r,t),o=rt.getProtocol(n),s=ae(n),i=id(o,r,t+s),a=0;i>0&&o.size===ce&&(a=ae(i));let c=s+a+i,l={code:n,name:o.name,bytes:r.subarray(t,t+c)};if(i>0){let u=t+s+a,f=r.subarray(u,u+i);l.value=o.bytesToValue?.(f)??te(f)}e.push(l),t+=c}return e}function Rc(r){let e=0,t=[];for(let n of r){if(n.bytes==null){let o=rt.getProtocol(n.code),s=ae(n.code),i,a=0,c=0;n.value!=null&&(i=o.valueToBytes?.(n.value)??ye(n.value),a=i.byteLength,o.size===ce&&(c=ae(a)));let l=new Uint8Array(s+c+a),u=0;Pt(n.code,l,u),u+=s,i!=null&&(o.size===ce&&(Pt(a,l,u),u+=c),l.set(i,u)),n.bytes=l}t.push(n.bytes),e+=n.bytes.byteLength}return We(t,e)}function Nc(r){if(r.charAt(0)!=="/")throw new he('String multiaddr must start with "/"');let e=[],t="protocol",n="",o="";for(let s=1;s<r.length;s++){let i=r.charAt(s);i!=="/"&&(t==="protocol"?o+=r.charAt(s):n+=r.charAt(s));let a=s===r.length-1;if(i==="/"||a){let c=rt.getProtocol(o);if(t==="protocol"){if(c.size==null||c.size===0){e.push({code:c.code,name:c.name}),n="",o="",t="protocol";continue}else if(a)throw new he(`Component ${o} was missing value`);t="value"}else if(t==="value"){let l={code:c.code,name:c.name};if(c.size!=null&&c.size!==0){if(n==="")throw new he(`Component ${o} was missing value`);l.value=c.stringToValue?.(n)??n}e.push(l),n="",o="",t="protocol"}}}if(o!==""&&n!=="")throw new he("Incomplete multiaddr");return e}function kc(r){return`/${r.flatMap(e=>{if(e.value==null)return e.name;let t=rt.getProtocol(e.code);if(t==null)throw new he(`Unknown protocol code ${e.code}`);return[e.name,t.valueToString?.(e.value)??e.value]}).join("/")}`}function id(r,e,t){return r.size==null||r.size===0?0:r.size>0?r.size/8:mt(e,t)}var ad=Symbol.for("nodejs.util.inspect.custom"),si=Symbol.for("@multiformats/multiaddr");function cd(r){if(r==null&&(r="/"),Uc(r))return r.getComponents();if(r instanceof Uint8Array)return Pc(r);if(typeof r=="string")return r=r.replace(/\/(\/)+/,"/").replace(/(\/)+$/,""),r===""&&(r="/"),Nc(r);if(Array.isArray(r))return r;throw new he("Must be a string, Uint8Array, Component[], or another Multiaddr")}var Vn=class r{[si]=!0;#e;#t;#r;constructor(e="/",t={}){this.#e=cd(e),t.validate!==!1&&ud(this)}get bytes(){return this.#r==null&&(this.#r=Rc(this.#e)),this.#r}toString(){return this.#t==null&&(this.#t=kc(this.#e)),this.#t}toJSON(){return this.toString()}getComponents(){return[...this.#e.map(e=>({...e}))]}encapsulate(e){let t=new r(e);return new r([...this.#e,...t.getComponents()],{validate:!1})}decapsulate(e){let t=e.toString(),n=this.toString(),o=n.lastIndexOf(t);if(o<0)throw new Pn(`Address ${this.toString()} does not contain subaddress: ${t}`);return new r(n.slice(0,o),{validate:!1})}decapsulateCode(e){let t;for(let n=this.#e.length-1;n>-1;n--)if(this.#e[n].code===e){t=n;break}return new r(this.#e.slice(0,t),{validate:!1})}equals(e){return Ce(this.bytes,e.bytes)}[ad](){return`Multiaddr(${this.toString()})`}};function ud(r){r.getComponents().forEach(e=>{let t=rt.getProtocol(e.code);e.value!=null&&t.validate?.(e.value)})}function Uc(r){return!!r?.[si]}function Ye(r){return new Vn(r)}var V=r=>({match:e=>{let t=e[0];return t==null||t.code!==r||t.value!=null?!1:e.slice(1)}}),I=(r,e)=>({match:t=>{let n=t[0];return n?.code!==r||n.value==null||e!=null&&n.value!==e?!1:t.slice(1)}}),Mc=r=>({match:e=>r.match(e)===!1?e:!1}),B=r=>({match:e=>{let t=r.match(e);return t===!1?e:t}}),xe=(...r)=>({match:e=>{let t;for(let n of r){let o=n.match(e);o!==!1&&(t==null||o.length<t.length)&&(t=o)}return t??!1}}),U=(...r)=>({match:e=>{for(let t of r){let n=t.match(e);if(n===!1)return!1;e=n}return e}});function G(...r){function e(o){if(o==null)return!1;let s=o.getComponents();for(let i of r){let a=i.match(s);if(a===!1)return!1;s=a}return s}function t(o){return e(o)!==!1}function n(o){let s=e(o);return s===!1?!1:s.length===0}return{matchers:r,matches:t,exactMatch:n}}var ld=I(421),ky=G(ld),Fn=I(54),zn=I(55),Wn=I(56),ai=I(53),Uy=G(Fn,B(I(421))),My=G(zn,B(I(421))),Ky=G(Wn,B(I(421))),Hy=G(xe(ai,Wn,Fn,zn),B(I(421))),Kc=U(I(4),B(I(43))),Hc=U(B(I(42)),I(41),B(I(43))),ci=xe(Kc,Hc),Ct=xe(ci,ai,Fn,zn,Wn),$y=G(xe(ci,U(xe(ai,Wn,Fn,zn),B(I(421))))),Vy=G(Kc),Gy=G(Hc),Fy=G(ci),ui=U(Ct,I(6)),_r=U(Ct,I(273)),$c=G(U(ui,B(I(421)))),zy=G(_r),li=U(_r,V(460),B(I(421))),qn=U(_r,V(461),B(I(421))),fd=xe(li,qn),Wy=G(li),qy=G(qn),ii=xe(Ct,ui,_r,li,qn),Vc=xe(U(ii,V(477),B(I(421)))),Yy=G(Vc),Gc=xe(U(ii,V(478),B(I(421))),U(ii,V(448),B(I(449)),V(477),B(I(421)))),Zy=G(Gc),Fc=U(_r,V(280),B(I(466)),B(I(466)),B(I(421))),Xy=G(Fc),zc=U(qn,V(465),B(I(466)),B(I(466)),B(I(421))),Qy=G(zc),Gn=xe(Vc,Gc,U(ui,B(I(421))),U(fd,B(I(421))),U(Ct,B(I(421))),Fc,zc,I(421)),jy=G(Gn),dd=U(B(Gn),V(290),Mc(V(281)),B(I(421))),Jy=G(dd),hd=xe(U(Gn,V(290),V(281),B(I(421))),U(Gn,V(281),B(I(421))),U(V(281),B(I(421)))),eg=G(hd),pd=xe(U(Ct,I(6),V(480),B(I(421))),U(Ct,V(480),B(I(421)))),tg=G(pd),md=U(Ct,xe(U(I(6,"443"),V(480)),U(I(6),V(443)),U(I(6),V(448),V(480)),U(V(448),V(480)),V(448),V(443)),B(I(421))),rg=G(md),bd=xe(U(I(777),B(I(421)))),ng=G(bd),yd=xe(U(I(400),B(I(421)))),Yn=G(yd);var Zn=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};var iu=Te(oe("node:net"),1);function Xn(r){let e=r.getComponents(),t={},n=0;if(e[n]?.name==="ip6zone"&&(t.zone=`${e[n].value}`,n++),e[n].name==="ip4"||e[n].name==="ip6"||e[n].name==="dns"||e[n].name==="dns4"||e[n].name==="dns6"?(t.type=e[n].name,t.host=e[n].value,n++):e[n].name==="dnsaddr"&&(t.type=e[n].name,t.host=`_dnsaddr.${e[n].value}`,n++),(e[n]?.name==="tcp"||e[n]?.name==="udp")&&(t.protocol=e[n].name==="tcp"?"tcp":"udp",t.port=parseInt(`${e[n].value}`),n++),e[n]?.name==="ipcidr"&&(t.type==="ip4"?t.cidr=parseInt(`${e[n].value}`):t.type==="ip6"&&(t.cidr=`${e[n].value}`),n++),t.type==null||t.host==null)throw new Z(`Multiaddr ${r} was not an IPv4, IPv6, DNS, DNS4, DNS6 or DNSADDR address`);return e[n]?.name==="tls"&&e[n+1]?.name==="sni"&&(t.sni=e[n+1].value,n+=2),t}function nt(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var Qn=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||(e-1&e)!==0)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},rr=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new Qn(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let t=this.head;this.head=t.next=new Qn(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let t=this.tail.next;this.tail.next=null,this.tail=t,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var fi=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function dt(r={}){return gd(t=>{let n=t.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function gd(r,e){e=e??{};let t=e.onEnd,n=new rr,o,s,i,a=nt(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((b,E)=>{s=_=>{s=null,n.push(_);try{b(r(n))}catch(P){E(P)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=nt()})}},l=b=>s!=null?s(b):(n.push(b),o),u=b=>(n=new rr,s!=null?s({error:b}):(n.push({error:b}),o)),f=b=>{if(i)return o;if(e?.objectMode!==!0&&b?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return l({done:!1,value:b})},p=b=>i?o:(i=!0,b!=null?u(b):l({done:!0})),d=()=>(n=new rr,p(),{done:!0}),g=b=>(p(b),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:c,return:d,throw:g,push:f,end:p,get readableLength(){return n.size},onEmpty:async b=>{let E=b?.signal;if(E?.throwIfAborted(),n.isEmpty())return;let _,P;E!=null&&(_=new Promise((N,$)=>{P=()=>{$(new fi)},E.addEventListener("abort",P)}));try{await Promise.race([a.promise,_])}finally{P!=null&&E!=null&&E?.removeEventListener("abort",P)}}},t==null)return o;let w=o;return o={[Symbol.asyncIterator](){return this},next(){return w.next()},throw(b){return w.throw(b),t!=null&&(t(b),t=void 0),{done:!0}},return(){return w.return(),t!=null&&(t(),t=void 0),{done:!0}},push:f,end(b){return w.end(b),t!=null&&(t(b),t=void 0),o},get readableLength(){return w.readableLength},onEmpty:b=>w.onEmpty(b)},o}var di=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},hi=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},Wc=r=>globalThis.DOMException===void 0?new hi(r):new DOMException(r),qc=r=>{let e=r.reason===void 0?Wc("This operation was aborted."):r.reason;return e instanceof Error?e:Wc(e)};function pi(r,e){let{milliseconds:t,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout}}=e,i,a,l=new Promise((u,f)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(e.signal){let{signal:d}=e;d.aborted&&f(qc(d)),a=()=>{f(qc(d))},d.addEventListener("abort",a,{once:!0})}if(t===Number.POSITIVE_INFINITY){r.then(u,f);return}let p=new di;i=s.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(d){f(d)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?u():o instanceof Error?f(o):(p.message=o??`Promise timed out after ${t} milliseconds`,f(p))},t),(async()=>{try{u(await r)}catch(d){f(d)}})()}).finally(()=>{l.clear(),a&&e.signal&&e.signal.removeEventListener("abort",a)});return l.clear=()=>{s.clearTimeout.call(void 0,i),i=void 0},l}var xd=r=>{let e=r.addEventListener||r.on||r.addListener,t=r.removeEventListener||r.off||r.removeListener;if(!e||!t)throw new TypeError("Emitter is not compatible");return{addListener:e.bind(r),removeListener:t.bind(r)}};function Ed(r,e,t){let n,o=new Promise((s,i)=>{if(t={rejectionEvents:["error"],multiArgs:!1,rejectionMultiArgs:!1,resolveImmediately:!1,...t},!(t.count>=0&&(t.count===Number.POSITIVE_INFINITY||Number.isInteger(t.count))))throw new TypeError("The `count` option should be at least 0 or more");t.signal?.throwIfAborted();let a=[e].flat(),c=[],{addListener:l,removeListener:u}=xd(r),f=async(...d)=>{let g=t.multiArgs?d:d[0];if(t.filter)try{if(!await t.filter(g))return}catch(w){n(),i(w);return}c.push(g),t.count===c.length&&(n(),s(c))},p=(...d)=>{n(),i(t.rejectionMultiArgs?d:d[0])};n=()=>{for(let d of a)u(d,f);for(let d of t.rejectionEvents)a.includes(d)||u(d,p)};for(let d of a)l(d,f);for(let d of t.rejectionEvents)a.includes(d)||l(d,p);t.signal&&t.signal.addEventListener("abort",()=>{p(t.signal.reason)},{once:!0}),t.resolveImmediately&&s(c)});if(o.cancel=n,typeof t.timeout=="number"){let s=pi(o,{milliseconds:t.timeout});return s.cancel=()=>{n(),s.clear()},s}return o}function Pe(r,e,t){typeof t=="function"&&(t={filter:t}),t={...t,count:1,resolveImmediately:!1};let n=Ed(r,e,t),o=n.then(s=>s[0]);return o.cancel=n.cancel,o}var _t=class extends Error{static name="UnexpectedEOFError";name="UnexpectedEOFError"};var jn=class extends Error{static name="StreamClosedError";name="StreamClosedError"};function wd(r){return r.reason}async function nr(r,e,t){if(e==null)return r;let n=t?.translateError??wd;if(e.aborted)return r.catch(()=>{}),Promise.reject(n(e));let o;try{return await Promise.race([r,new Promise((s,i)=>{o=()=>{i(n(e))},e.addEventListener("abort",o)})])}finally{o!=null&&e.removeEventListener("abort",o)}}var vd=Math.pow(2,20)*4,Jn=class extends Ft{status;timeline;inactivityTimeout;maxReadBufferLength;maxWriteBufferLength;log;direction;maxMessageSize;readStatus;writeStatus;remoteReadStatus;remoteWriteStatus;writableNeedsDrain;readBuffer;writeBuffer;sendingData;onDrainPromise;constructor(e){super(),this.status="open",this.log=e.log,this.direction=e.direction??"outbound",this.inactivityTimeout=e.inactivityTimeout??12e4,this.maxReadBufferLength=e.maxReadBufferLength??vd,this.maxWriteBufferLength=e.maxWriteBufferLength,this.maxMessageSize=e.maxMessageSize,this.readBuffer=new H,this.writeBuffer=new H,this.readStatus="readable",this.remoteReadStatus="readable",this.writeStatus="writable",this.remoteWriteStatus="writable",this.sendingData=!1,this.writableNeedsDrain=!1,this.timeline={open:Date.now()},this.processSendQueue=this.processSendQueue.bind(this);let t=()=>{this.writableNeedsDrain&&(this.log.trace("drain event received, continue sending data"),this.writableNeedsDrain=!1,this.processSendQueue()),this.onDrainPromise?.resolve()};this.addEventListener("drain",t);let n=o=>{this.onDrainPromise?.reject(o.error??new jn)};this.addEventListener("close",n)}get readBufferLength(){return this.readBuffer.byteLength}get writeBufferLength(){return this.writeBuffer.byteLength}async onDrain(e){return this.writableNeedsDrain!==!0?Promise.resolve():(this.onDrainPromise==null&&(this.onDrainPromise=Promise.withResolvers()),nr(this.onDrainPromise.promise,e?.signal))}async*[Symbol.asyncIterator](){if(this.readStatus!=="readable"&&this.readStatus!=="paused")return;let e=dt(),t=s=>{e.push(s.data)};this.addEventListener("message",t);let n=s=>{e.end(s.error)};this.addEventListener("close",n);let o=()=>{e.end()};this.addEventListener("remoteCloseWrite",o);try{yield*e}finally{this.removeEventListener("message",t),this.removeEventListener("close",n),this.removeEventListener("remoteCloseWrite",o)}}isReadable(){return this.status==="open"}send(e){if(this.writeStatus==="closed"||this.writeStatus==="closing")throw new ct(`Cannot write to a stream that is ${this.writeStatus}`);return this.log.trace("append %d bytes to write buffer",e.byteLength),this.writeBuffer.append(e),this.processSendQueue()}abort(e){if(!(this.status==="aborted"||this.status==="reset"||this.status==="closed")){this.log.error("abort with error - %e",e),this.status="aborted",this.readBuffer.byteLength>0&&this.readBuffer.consume(this.readBuffer.byteLength),this.writeBuffer.byteLength>0&&(this.writeBuffer.consume(this.writeBuffer.byteLength),this.safeDispatchEvent("idle")),this.writeStatus="closed",this.remoteWriteStatus="closed",this.readStatus="closed",this.remoteReadStatus="closed",this.timeline.close=Date.now();try{this.sendReset(e)}catch(t){this.log("failed to send reset to remote - %e",t)}this.dispatchEvent(new ln(e))}}pause(){if(this.readStatus==="closed"||this.readStatus==="closing")throw new ct("Cannot pause a stream that is closing/closed");this.readStatus!=="paused"&&(this.readStatus="paused",this.sendPause())}resume(){if(this.readStatus==="closed"||this.readStatus==="closing")throw new ct("Cannot resume a stream that is closing/closed");this.readStatus!=="readable"&&(this.readStatus="readable",this.dispatchReadBuffer(),this.sendResume())}push(e){if(this.readStatus==="closed"||this.readStatus==="closing")throw new ct(`Cannot push data onto a stream that is ${this.readStatus}`);if(e.byteLength!==0){if(this.readBuffer.append(e),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}unshift(e){if(this.readStatus==="closed"||this.readStatus==="closing")throw new ct(`Cannot push data onto a stream that is ${this.readStatus}`);if(e.byteLength!==0){if(this.readBuffer.prepend(e),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}onData(e){if(e.byteLength!==0){if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("ignoring data - read status %s",this.readStatus);return}this.readBuffer.append(e),this.dispatchReadBuffer()}}addEventListener(...e){super.addEventListener.apply(this,e),e[0]==="message"&&this.readBuffer.byteLength>0&&queueMicrotask(()=>{this.dispatchReadBuffer()})}onRemoteReset(){this.log("remote reset"),this.status="reset",this.writeStatus="closed",this.remoteWriteStatus="closed",this.remoteReadStatus="closed",this.timeline.close=Date.now(),this.readBuffer.byteLength===0&&(this.readStatus="closed");let e=new on;this.dispatchEvent(new fn(e))}onTransportClosed(e){this.log("transport closed"),this.readStatus==="readable"&&this.readBuffer.byteLength===0&&(this.log("close readable end after transport closed and read buffer is empty"),this.readStatus="closed"),this.remoteReadStatus!=="closed"&&(this.remoteReadStatus="closed"),this.remoteWriteStatus!=="closed"&&(this.remoteWriteStatus="closed"),this.writeStatus!=="closed"&&(this.writeStatus="closed"),e!=null?this.abort(e):(this.status==="open"||this.status==="closing")&&(this.timeline.close=Date.now(),this.status="closed",this.writeStatus="closed",this.remoteWriteStatus="closed",this.remoteReadStatus="closed",this.dispatchEvent(new Gt))}onRemoteCloseWrite(){this.remoteWriteStatus!=="closed"&&(this.log.trace("on remote close write"),this.remoteWriteStatus="closed",this.safeDispatchEvent("remoteCloseWrite"),this.writeStatus==="closed"&&this.onTransportClosed())}onRemoteCloseRead(){this.log.trace("on remote close read"),this.remoteReadStatus="closed",this.writeBuffer.byteLength>0&&(this.writeBuffer.consume(this.writeBuffer.byteLength),this.safeDispatchEvent("idle"))}processSendQueue(){if(this.writableNeedsDrain)return this.log.trace("not processing send queue as drain is required"),this.checkWriteBufferLength(),!1;if(this.writeBuffer.byteLength===0)return this.log.trace("not processing send queue as no bytes to send"),!0;if(this.sendingData)return this.log.trace("not processing send queue as already sending data"),!0;this.sendingData=!0,this.log.trace("processing send queue with %d queued bytes",this.writeBuffer.byteLength);try{let e=!0,t=this.writeBuffer.byteLength,n=0;for(;this.writeBuffer.byteLength>0;){let o=Math.min(this.maxMessageSize??this.writeBuffer.byteLength,this.writeBuffer.byteLength);if(o===0){e=!1;break}let s=this.writeBuffer.sublist(0,o),i=new H(s);this.writeBuffer.consume(s.byteLength);let a=this.sendData(s);if(e=a.canSendMore,n+=a.sentBytes,a.sentBytes!==i.byteLength&&(i.consume(a.sentBytes),this.writeBuffer.prepend(i)),!e)break}return e||(this.log.trace("sent %d/%d bytes, pausing sending because underlying stream is full, %d bytes left in the write buffer",n,t,this.writeBuffer.byteLength),this.writableNeedsDrain=!0,this.checkWriteBufferLength()),this.writeBuffer.byteLength===0&&this.safeDispatchEvent("idle"),e}finally{this.sendingData=!1}}dispatchReadBuffer(){try{if(this.listenerCount("message")===0){this.log.trace("not dispatching pause buffer as there are no listeners for the message event");return}if(this.readBuffer.byteLength===0){this.log.trace("not dispatching pause buffer as there is no data to dispatch");return}if(this.readStatus==="paused"){this.log.trace("not dispatching pause buffer we are paused");return}if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("dropping %d bytes because the readable end is %s",this.readBuffer.byteLength,this.readStatus),this.readBuffer.consume(this.readBuffer.byteLength);return}let e=this.readBuffer.sublist();this.readBuffer.consume(e.byteLength),this.dispatchEvent(new un(e))}finally{this.readBuffer.byteLength===0&&this.remoteWriteStatus==="closed"&&(this.log("close readable end after dispatching read buffer and remote writable end is closed"),this.readStatus="closed"),this.checkReadBufferLength()}}checkReadBufferLength(){this.readBuffer.byteLength>this.maxReadBufferLength&&this.abort(new pr(`Read buffer length of ${this.readBuffer.byteLength} exceeded limit of ${this.maxReadBufferLength}, read status is ${this.readStatus}`))}checkWriteBufferLength(){this.maxWriteBufferLength!=null&&this.writeBuffer.byteLength>this.maxWriteBufferLength&&this.abort(new pr(`Write buffer length of ${this.writeBuffer.byteLength} exceeded limit of ${this.maxWriteBufferLength}, write status is ${this.writeStatus}`))}onMuxerNeedsDrain(){this.writableNeedsDrain=!0}onMuxerDrain(){this.safeDispatchEvent("drain")}};var eo=class extends Jn{remoteAddr;metricPrefix;metrics;constructor(e){super(e),this.metricPrefix=e.metricPrefix??"",this.metrics=e.metrics,this.remoteAddr=e.remoteAddr,this.addEventListener("close",t=>{this.metrics?.increment({[`${this.metricPrefix}end`]:!0}),t.error!=null?t.local?this.metrics?.increment({[`${this.metricPrefix}abort`]:!0}):this.metrics?.increment({[`${this.metricPrefix}reset`]:!0}):t.local?this.metrics?.increment({[`${this.metricPrefix}_local_close`]:!0}):this.metrics?.increment({[`${this.metricPrefix}_remote_close`]:!0})})}async close(e){this.status==="open"&&(this.status="closing",this.writeStatus="closing",this.remoteWriteStatus="closing",this.remoteReadStatus="closing",(this.sendingData||this.writeBuffer.byteLength>0)&&(this.log("waiting for write queue to become idle before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await Pe(this,"idle",{...e,rejectionEvents:["close"]})),this.writableNeedsDrain&&(this.log("waiting for write queue to drain before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await Pe(this,"drain",{...e,rejectionEvents:["close"]})),await this.sendClose(e),this.onTransportClosed())}};var Zc=Te(oe("node:os"),1);function Yc(r){return!!(r.startsWith("169.254.")||r.toLowerCase().startsWith("fe80"))}function mi(r,e,t){let n=[r.type,t??r.host];if(r.protocol!=null){let o=e??r.port;o!=null&&n.push(r.protocol,o)}return r.type==="ip6"&&r.zone!=null&&n.unshift("ip6zone",r.zone),r.cidr!=null&&n.push("ipcidr",r.cidr),Ye(`/${n.join("/")}`)}var Sd={4:"IPv4",6:"IPv6"};function Id(r){return["0.0.0.0","::"].includes(r)}function Ad(r){let e=[],t=Zc.default.networkInterfaces();for(let[,n]of Object.entries(t))if(n!=null)for(let o of n)Yc(o.address)||o.family===Sd[r]&&e.push(o.address);return e}function Xc(r,e){if(r==null)return[];let t=Xn(r);return(t.type==="ip4"||t.type==="ip6")&&Id(t.host)?Ad(t.type==="ip4"?4:6).map(n=>mi(t,e,n)):[mi(t,e)]}function Qc(r,e){if(typeof r!="string")throw new Z(`invalid ip provided: ${r}`);if(typeof e=="string"&&(e=parseInt(e)),isNaN(e))throw new Z(`invalid port provided: ${e}`);if((0,Oe.isIPv4)(r))return Ye(`/ip4/${r}/tcp/${e}`);if((0,Oe.isIPv6)(r))return Ye(`/ip6/${r}/tcp/${e}`);throw new Z(`invalid ip:port for creating a multiaddr: ${r}:${e}`)}var bi=class{readNext;haveNext;ended;nextResult;error;constructor(){this.ended=!1,this.readNext=nt(),this.haveNext=nt()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let e=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=nt(),e}async throw(e){return this.ended=!0,this.error=e,e!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(e)),{done:!0,value:void 0}}async return(){let e={done:!0,value:void 0};return this.ended=!0,this.nextResult=e,this.haveNext.resolve(),e}async push(e,t){await this._push(e,t)}async end(e,t){e!=null?await this.throw(e):await this._push(void 0,t)}async _push(e,t){if(e!=null&&this.ended)throw this.error??new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;e!=null?this.nextResult={done:!1,value:e}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=nt(),await nr(this.readNext.promise,t?.signal,t)}};function jc(){return new bi}function Ld(r){return r[Symbol.asyncIterator]!=null}async function Td(r,e,t){try{await Promise.all(r.map(async n=>{for await(let o of n)await e.push(o,{signal:t}),t.throwIfAborted()})),await e.end(void 0,{signal:t})}catch(n){await e.end(n,{signal:t}).catch(()=>{})}}async function*Dd(r){let e=new AbortController,t=jc();Td(r,t,e.signal).catch(()=>{});try{yield*t}finally{e.abort()}}function*Cd(r){for(let e of r)yield*e}function _d(...r){let e=[];for(let t of r)Ld(t)||e.push(t);return e.length===r.length?Cd(e):Dd(r)}var Jc=_d;function eu(r,...e){if(r==null)throw new Error("Empty pipeline");if(yi(r)){let n=r;r=()=>n.source}else if(ru(r)||tu(r)){let n=r;r=()=>n}let t=[r,...e];if(t.length>1&&yi(t[t.length-1])&&(t[t.length-1]=t[t.length-1].sink),t.length>2)for(let n=1;n<t.length-1;n++)yi(t[n])&&(t[n]=Od(t[n]));return Bd(...t)}var Bd=(...r)=>{let e;for(;r.length>0;)e=r.shift()(e);return e},tu=r=>r?.[Symbol.asyncIterator]!=null,ru=r=>r?.[Symbol.iterator]!=null,yi=r=>r==null?!1:r.sink!=null&&r.source!=null,Od=r=>e=>{let t=r.sink(e);if(t?.then!=null){let n=dt({objectMode:!0});t.then(()=>{n.end()},i=>{n.end(i)});let o,s=r.source;if(tu(s))o=async function*(){yield*s,n.end()};else if(ru(s))o=function*(){yield*s,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return Jc(n,o())}return r.source};var Pd=4194304,to=class extends Error{static name="UnwrappedError";name="UnwrappedError"},xi=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},Ei=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},wi=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function Rd(r){return typeof r?.closeRead=="function"}function Nd(r){return typeof r?.close=="function"}function gi(r){return Rd(r)?r.remoteWriteStatus!=="writable"&&r.readBufferLength===0:Nd(r)?r.status!=="open":!1}function kd(r){return r?.addEventListener!=null&&r?.removeEventListener!=null&&r?.send!=null&&r?.push!=null&&r?.log!=null}function Ud(r,e){let t=e?.maxBufferSize??Pd,n=new H,o,s=!1;if(!kd(r))throw new Z("Argument should be a Stream or a Multiaddr");let i=u=>{if(n.append(u.data),n.byteLength>t){let f=n.byteLength;n.consume(n.byteLength),o?.reject(new Error(`Read buffer overflow - ${f} > ${t}`))}o?.resolve()};r.addEventListener("message",i);let a=u=>{u.error!=null?o?.reject(u.error):o?.resolve()};r.addEventListener("close",a);let c=()=>{o?.resolve()};r.addEventListener("remoteCloseWrite",c);let l={readBuffer:n,async read(u){if(s===!0)throw new to("Stream was unwrapped");if(gi(r)){if(u?.bytes==null)return null;if(n.byteLength<u.bytes)throw r.log.error("closed after reading %d/%d bytes",n.byteLength,u.bytes),new _t(`Unexpected EOF - stream closed after reading ${n.byteLength}/${u.bytes} bytes`)}let f=u?.bytes??1;for(o=Promise.withResolvers();;){if(n.byteLength>=f){o.resolve();break}if(await nr(o.promise,u?.signal),gi(r)){if(n.byteLength===0&&u?.bytes==null)return null;break}o=Promise.withResolvers()}let p=u?.bytes??n.byteLength;if(n.byteLength<p){if(gi(r))throw r.log.error("closed while reading %d/%d bytes",n.byteLength,p),new _t(`Unexpected EOF - stream closed while reading ${n.byteLength}/${p} bytes`);return l.read(u)}let d=n.sublist(0,p);return n.consume(p),d},async write(u,f){if(s===!0)throw new to("Stream was unwrapped");r.send(u)||await Pe(r,"drain",{signal:f?.signal,rejectionEvents:["close"]})},unwrap(){return s||(s=!0,r.removeEventListener("message",i),r.removeEventListener("close",a),r.removeEventListener("remoteCloseWrite",c),n.byteLength>0&&(r.log("stream unwrapped with %d unread bytes",n.byteLength),r.push(n))),r}};return l}function Br(r,e={}){let t=Ud(r,e);e.maxDataLength!=null&&e.maxLengthLength==null&&(e.maxLengthLength=ae(e.maxDataLength));let n=e?.lengthDecoder??mt,o=e?.lengthEncoder??Nr;return{async read(i){let a=-1,c=new H;for(;;){let u=await t.read({...i,bytes:1});if(u==null)break;c.append(u);try{a=n(c)}catch(f){if(f instanceof RangeError)continue;throw f}if(a<0)throw new xi("Invalid message length");if(e?.maxLengthLength!=null&&c.byteLength>e.maxLengthLength)throw new wi(`Message length length too long - ${c.byteLength} > ${e.maxLengthLength}`);if(a>-1)break}if(e?.maxDataLength!=null&&a>e.maxDataLength)throw new Ei(`Message length too long - ${a} > ${e.maxDataLength}`);let l=await t.read({...i,bytes:a});if(l==null)throw r.log.error("tried to read %d bytes but the stream closed",a),new _t(`Unexpected EOF - tried to read ${a} bytes but the stream closed`);if(l.byteLength!==a)throw r.log.error("read %d/%d bytes before the stream closed",l.byteLength,a),new _t(`Unexpected EOF - read ${l.byteLength}/${a} bytes before the stream closed`);return l},async write(i,a){await t.write(new H(o(i.byteLength),i),a)},async writeV(i,a){let c=new H(...i.flatMap(l=>[o(l.byteLength),l]));await t.write(c,a)},unwrap(){return t.unwrap()}}}function vi(r,e){let t=Br(r,e),n={read:async(o,s)=>{let i=await t.read(s);return o.decode(i)},write:async(o,s,i)=>{await t.write(s.encode(o),i)},writeV:async(o,s,i)=>{await t.writeV(o.map(a=>s.encode(a)),i)},pb:o=>({read:async s=>n.read(o,s),write:async(s,i)=>n.write(s,o,i),writeV:async(s,i)=>n.writeV(s,o,i),unwrap:()=>n}),unwrap:()=>t.unwrap()};return n}function Md(r){return r?.addEventListener!=null}function Kd(r){let e=dt(),t,n=i=>{e.push(i.data)},o=()=>{e.end(),r.removeEventListener("message",n),r.removeEventListener("close",s),r.removeEventListener("remoteCloseWrite",o)},s=i=>{e.end(i.error),i.error!=null&&t?.reject(i.error),r.removeEventListener("message",n),r.removeEventListener("close",s),r.removeEventListener("remoteCloseWrite",o)};return r.addEventListener("message",n),r.addEventListener("close",s,{once:!0}),r.addEventListener("remoteCloseWrite",o,{once:!0}),{source:e,async sink(i){async function*a(){yield*i}let c=a();for(;;){t=Promise.withResolvers();let{done:l,value:u}=await Promise.race([c.next(),t.promise]);if(r.writeStatus==="closing"||r.writeStatus==="closed"||(u!=null&&(r.send(u)||await Promise.race([Pe(r,"drain",{rejectionEvents:["close"]})])),l===!0))break}await r.close()}}}function Si(...r){let e=r.map(t=>Md(t)?Kd(t):t);return eu(...e)}var ro=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},or=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},no=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"},Or=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};function oo(r){return r[Symbol.asyncIterator]!=null}function nu(r,e){if(r.byteLength>e)throw new or("Message length too long")}var io=r=>{let e=ae(r),t=Se(e);return Nr(r,t),io.bytes=e,t};io.bytes=0;function ao(r,e){e=e??{};let t=e.lengthEncoder??io,n=e?.maxDataLength??4194304;function*o(s){nu(s,n);let i=t(s.byteLength);i instanceof Uint8Array?yield i:yield*i,s instanceof Uint8Array?yield s:yield*s}return oo(r)?(async function*(){for await(let s of r)yield*o(s)})():(function*(){for(let s of r)yield*o(s)})()}ao.single=(r,e)=>{e=e??{};let t=e.lengthEncoder??io,n=e?.maxDataLength??4194304;return nu(r,n),new H(t(r.byteLength),r)};var Bt;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(Bt||(Bt={}));var Ai=r=>{let e=mt(r);return Ai.bytes=ae(e),e};Ai.bytes=0;function Ii(r,e){let t=new H,n=Bt.LENGTH,o=-1,s=e?.lengthDecoder??Ai,i=e?.maxLengthLength??8,a=e?.maxDataLength??4194304;function*c(){for(;t.byteLength>0;){if(n===Bt.LENGTH)try{if(o=s(t),o<0)throw new ro("Invalid message length");if(o>a)throw new or("Message length too long");let l=s.bytes;t.consume(l),e?.onLength!=null&&e.onLength(o),n=Bt.DATA}catch(l){if(l instanceof RangeError){if(t.byteLength>i)throw new no("Message length length too long");break}throw l}if(n===Bt.DATA){if(t.byteLength<o)break;let l=t.sublist(0,o);t.consume(o),e?.onData!=null&&e.onData(l),yield l,n=Bt.LENGTH}}}return oo(r)?(async function*(){for await(let l of r)t.append(l),yield*c();if(t.byteLength>0)throw new Or("Unexpected end of input")})():(function*(){for(let l of r)t.append(l),yield*c();if(t.byteLength>0)throw new Or("Unexpected end of input")})()}Ii.fromReader=(r,e)=>{let t=1,n=(async function*(){for(;;)try{let{done:s,value:i}=await r.next(t);if(s===!0)return;i!=null&&(yield i)}catch(s){if(s.code==="ERR_UNDER_READ")return{done:!0,value:null};throw s}finally{t=1}})();return Ii(n,{...e??{},onLength:s=>{t=s}})};var Li=class extends eo{socket;constructor(e){let t=e.remoteAddr;if(e.localAddr!=null&&Yn.matches(e.localAddr))t=e.localAddr;else if(t==null){if(e.socket.remoteAddress==null||e.socket.remotePort==null)throw new Z("Could not determine remote address or port");t=Qc(e.socket.remoteAddress,e.socket.remotePort)}super({...e,remoteAddr:t}),this.socket=e.socket,this.socket.on("data",n=>{this.onData(n)}),this.socket.on("error",n=>{this.log("tcp error",t,n),this.abort(n)}),this.socket.setTimeout(e.inactivityTimeout??120*1e3),this.socket.once("timeout",()=>{this.log("tcp timeout",t),this.abort(new Vt)}),this.socket.once("end",()=>{this.log("tcp end",t),this.onTransportClosed()}),this.socket.once("close",n=>{if(this.log("tcp close",t),n){this.abort(new Error("TCP transmission error"));return}this.onTransportClosed()}),this.socket.on("drain",()=>{this.log("tcp drain"),this.safeDispatchEvent("drain")})}sendData(e){let t=0,n=!0;for(let o of e)if(t+=o.byteLength,n=this.socket.write(o),!n)break;return{sentBytes:t,canSendMore:n}}async sendClose(e){this.socket.destroyed||(this.socket.destroySoon(),await Pe(this.socket,"close",e))}sendReset(){this.socket.resetAndDestroy()}sendPause(){this.socket.pause()}sendResume(){this.socket.resume()}},co=r=>new Li(r);var ou=Te(oe("os"),1),su=Te(oe("path"),1);function uo(r,e={}){if(Yn.exactMatch(r)){let s=r.getComponents().find(i=>i.code===400)?.value;if(s==null)throw new Z(`Multiaddr ${r} was not a Unix address`);return ou.default.platform()==="win32"?{path:su.default.join("\\\\.\\pipe\\",s)}:{path:s}}let t=Xn(r),n=t.host,o=t.port;return{host:n,port:o,ipv6Only:t.type==="ip6",...e}}var ue;(function(r){r[r.INACTIVE=0]="INACTIVE",r[r.ACTIVE=1]="ACTIVE",r[r.PAUSED=2]="PAUSED"})(ue||(ue={}));var lo=class extends Ft{context;server;sockets=new Set;status={code:ue.INACTIVE};metrics;addr;log;shutdownController;constructor(e){if(super(),this.context=e,e.keepAlive=e.keepAlive??!0,e.noDelay=e.noDelay??!0,e.allowHalfOpen=e.allowHalfOpen??!1,this.shutdownController=new AbortController,dn(1/0,this.shutdownController.signal),this.log=e.logger.forComponent("libp2p:tcp:listener"),this.addr="unknown",this.server=iu.default.createServer(e,this.onSocket.bind(this)),e.maxConnections!==void 0&&(this.server.maxConnections=e.maxConnections),e.closeServerOnMaxConnections!=null&&e.closeServerOnMaxConnections.closeAbove<e.closeServerOnMaxConnections.listenBelow)throw new Z("closeAbove must be >= listenBelow");e.metrics?.registerMetricGroup("libp2p_tcp_inbound_connections_total",{label:"address",help:"Current active connections in TCP listener",calculate:()=>({[this.addr]:this.sockets.size})}),this.metrics={status:e.metrics?.registerMetricGroup("libp2p_tcp_listener_status_info",{label:"address",help:"Current status of the TCP listener socket"}),errors:e.metrics?.registerMetricGroup("libp2p_tcp_listener_errors_total",{label:"address",help:"Total count of TCP listener errors by type"}),events:e.metrics?.registerMetricGroup("libp2p_tcp_listener_events_total",{label:"address",help:"Total count of TCP listener events by type"})},this.server.on("listening",()=>{let t=this.server.address();t==null?this.addr="unknown":typeof t=="string"?this.addr=t:this.addr=`${t.address}:${t.port}`,this.metrics.status?.update({[this.addr]:ue.ACTIVE}),this.safeDispatchEvent("listening")}).on("error",t=>{this.metrics.errors?.increment({[`${this.addr} listen_error`]:!0}),this.safeDispatchEvent("error",{detail:t})}).on("close",()=>{this.metrics.status?.update({[this.addr]:this.status.code}),this.status.code!==ue.PAUSED&&this.safeDispatchEvent("close")}).on("drop",()=>{this.metrics.events?.increment({[`${this.addr} drop`]:!0})})}onSocket(e){if(this.metrics.events?.increment({[`${this.addr} connection`]:!0}),this.status.code!==ue.ACTIVE)throw e.destroy(),new an("Server is not listening yet");let t;try{t=co({socket:e,inactivityTimeout:this.context.inactivityTimeout,metrics:this.metrics?.events,metricPrefix:`${this.addr} `,direction:"inbound",localAddr:this.status.listeningAddr,log:this.context.logger.forComponent("libp2p:tcp:connection")})}catch(n){this.log.error("inbound connection failed - %e",n),this.metrics.errors?.increment({[`${this.addr} inbound_to_connection`]:!0}),e.destroy();return}this.log("new inbound connection %s",t.remoteAddr),this.sockets.add(e),this.context.upgrader.upgradeInbound(t,{signal:this.shutdownController.signal}).then(()=>{this.log("inbound connection upgraded %s",t.remoteAddr),e.once("close",()=>{this.sockets.delete(e),this.context.closeServerOnMaxConnections!=null&&this.sockets.size<this.context.closeServerOnMaxConnections.listenBelow&&this.resume().catch(n=>{this.log.error("error attempting to listen server once connection count under limit - %e",n),this.context.closeServerOnMaxConnections?.onListenError?.(n)})}),this.context.closeServerOnMaxConnections!=null&&this.sockets.size>=this.context.closeServerOnMaxConnections.closeAbove&&(this.log("pausing incoming connections as limit is exceeded - %d/%d",this.sockets.size,this.context.closeServerOnMaxConnections.closeAbove),this.pause())}).catch(async n=>{this.log.error("inbound connection upgrade failed - %e",n),this.metrics.errors?.increment({[`${this.addr} inbound_upgrade`]:!0}),this.sockets.delete(e),t.abort(n)})}getAddrs(){if(this.status.code===ue.INACTIVE)return[];let e=this.server.address();return e==null?[]:typeof e=="string"?[Ye(`/unix/${encodeURIComponent(e)}`)]:Xc(this.status.listeningAddr,e.port)}updateAnnounceAddrs(){}async listen(e){if(this.status.code===ue.ACTIVE||this.status.code===ue.PAUSED)throw new cn("server is already listening");try{this.status={code:ue.ACTIVE,listeningAddr:e,netConfig:uo(e,this.context)},await this.resume()}catch(t){throw this.status={code:ue.INACTIVE},t}}async close(e){let t=[];this.server.listening&&t.push(Pe(this.server,"close",e)),this.pause(!0),this.shutdownController.abort(),this.sockets.forEach(n=>{n.readable&&(t.push(Pe(n,"close",e)),n.destroy())}),await Promise.all(t)}async resume(){if(this.server.listening||this.status.code===ue.INACTIVE)return;let e=this.status.netConfig;await new Promise((t,n)=>{this.server.once("error",n),this.server.listen(e,t)}),this.status={...this.status,code:ue.ACTIVE},this.log("listening on %s",this.server.address())}pause(e=!1){if(!this.server.listening&&this.status.code===ue.PAUSED&&e){this.status={code:ue.INACTIVE};return}!this.server.listening||this.status.code!==ue.ACTIVE||(this.log("%s server on %s",e?"closing":"pausing",this.server.address()),this.status=e?{code:ue.INACTIVE}:{...this.status,code:ue.PAUSED},this.server.close())}};var fo=class{opts;metrics;components;log;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:tcp"),this.opts=t,this.components=e,e.metrics!=null&&(this.metrics={events:e.metrics.registerCounterGroup("libp2p_tcp_dialer_events_total",{label:"event",help:"Total count of TCP dialer events by type"}),errors:e.metrics.registerCounterGroup("libp2p_tcp_dialer_errors_total",{label:"event",help:"Total count of TCP dialer events by type"})})}[ya]=!0;[Symbol.toStringTag]="@libp2p/tcp";[xa]=["@libp2p/transport"];async dial(e,t){t.keepAlive=t.keepAlive??!0,t.noDelay=t.noDelay??!0,t.allowHalfOpen=t.allowHalfOpen??!1;let n=await this._connect(e,t),o;try{o=co({socket:n,inactivityTimeout:this.opts.outboundSocketInactivityTimeout,metrics:this.metrics?.events,direction:"outbound",remoteAddr:e,log:this.log.newScope("connection")})}catch(s){throw this.metrics?.errors.increment({outbound_to_connection:!0}),n.destroy(s),s}try{return this.log("new outbound connection %s",o.remoteAddr),await t.upgrader.upgradeOutbound(o,t)}catch(s){throw this.metrics?.errors.increment({outbound_upgrade:!0}),this.log.error("error upgrading outbound connection - %e",s),o.abort(s),s}}async _connect(e,t){t.signal.throwIfAborted(),t.onProgress?.(new Zn("tcp:open-connection"));let n;return new Promise((o,s)=>{let i=Date.now(),a=uo(e,{...this.opts.dialOpts??{},...t});this.log("dialing %a with opts %o",e,a),n=au.default.connect(a);let c=d=>{this.log.error("dial to %a errored - %e",e,d);let g=a.path??`${a.host??""}:${a.port}`;d.message=`connection error ${g}: ${d.message}`,this.metrics?.events.increment({error:!0}),p(d)},l=()=>{this.log("connection timeout %a",e),this.metrics?.events.increment({timeout:!0});let d=new Vt(`Connection timeout after ${Date.now()-i}ms`);n.emit("error",d)},u=()=>{this.log("connection opened %a",e),this.metrics?.events.increment({connect:!0}),p()},f=()=>{this.log("connection aborted %a",e),this.metrics?.events.increment({abort:!0}),p(new rn)},p=d=>{if(n.removeListener("error",c),n.removeListener("timeout",l),n.removeListener("connect",u),t.signal!=null&&t.signal.removeEventListener("abort",f),d!=null){s(d);return}o(n)};n.on("error",c),n.on("timeout",l),n.on("connect",u),t.signal.addEventListener("abort",f)}).catch(o=>{throw n?.destroy(),o})}createListener(e){return new lo({...this.opts.listenOpts??{},...e,maxConnections:this.opts.maxConnections,backlog:this.opts.backlog,closeServerOnMaxConnections:this.opts.closeServerOnMaxConnections,inactivityTimeout:this.opts.inboundSocketInactivityTimeout,metrics:this.components.metrics,logger:this.components.logger})}listenFilter(e){return e.filter(t=>$c.exactMatch(t)||t.toString().startsWith("/unix/"))}dialFilter(e){return this.listenFilter(e)}};function cu(r={}){return e=>new fo(e,r)}function Vd(r){return r[Symbol.asyncIterator]!=null}function Gd(r){if(Vd(r))return(async()=>{for await(let e of r);})();for(let e of r);}var Ti=Gd;function Ae(r){return ee.encode({type:ee.Type.OK,peers:[],...r}).subarray()}function Ee(r){return ee.encode({type:ee.Type.ERROR,error:{msg:r.message},peers:[]}).subarray()}var ho=at("libp2p:daemon-server:dht"),po=class{dht;constructor(e){let{dht:t}=e;this.dht=t}async*provide(e){try{await Ti(this.dht.provide(e)),yield Ae()}catch(t){ho.error("failed to provide CID %s - %e",e,t),yield Ee(t)}}async*getClosestPeers(e){yield Ae({dht:{type:de.Type.BEGIN}});for await(let t of this.dht.getClosestPeers(e))t.name==="PEER_RESPONSE"&&(yield*t.closer.map(n=>de.encode({type:de.Type.VALUE,value:n.id.toMultihash().bytes})));yield de.encode({type:de.Type.END})}async*getPublicKey(e){yield Ee(new Error("FIX ME: not implemented"))}async*getValue(e){try{for await(let t of this.dht.get(e))t.name==="VALUE"&&(yield Ae({dht:{type:de.Type.VALUE,value:t.value}}))}catch(t){ho.error("error getting value for key %b - %e",e,t),yield Ee(t)}}async*putValue(e,t){try{await Ti(this.dht.put(e,t)),yield Ae()}catch(n){ho.error("error putting value %b for key %b - %e",t,e,n),yield Ee(n)}}async*findPeer(e){try{for await(let t of this.dht.findPeer(e))t.name==="FINAL_PEER"&&(yield Ae({dht:{type:de.Type.VALUE,peer:{id:t.peer.id.toMultihash().bytes,addrs:t.peer.multiaddrs.map(n=>n.bytes)}}}));throw new Error("Peer not found")}catch(t){ho.error("peer not found %p - %e",e,t),yield Ee(t)}}async*findProviders(e,t){yield Ae({dht:{type:de.Type.BEGIN}});try{let n=t,o=0;for await(let s of this.dht.findProviders(e))if(s.name==="PEER_RESPONSE"){for(let i of s.providers)o++,yield de.encode({type:de.Type.VALUE,peer:{id:i.id.toMultihash().bytes,addrs:(i.multiaddrs??[]).map(a=>a.bytes)}});if(n===o)break}}catch(n){yield Ee(n)}yield de.encode({type:de.Type.END})}};var mo=at("libp2p:daemon-server:pubsub"),bo=class{pubsub;constructor(e){let{pubsub:t}=e;this.pubsub=t}async*getTopics(){try{yield Ae({pubsub:{topics:this.pubsub.getTopics(),peerIDs:[]}})}catch(e){mo.error("failed to get pubsub topics - %e",e),yield Ee(e)}}async*subscribe(e){try{let t=dt();this.pubsub.subscribe(e),this.pubsub.addEventListener("message",n=>{let o=n.detail;o.topic===e&&(o.type==="signed"?t.push(dr.encode({from:o.from.toMultihash().bytes,data:o.data,seqno:o.sequenceNumber==null?void 0:ye(o.sequenceNumber.toString(16).padStart(16,"0"),"base16"),topicIDs:[o.topic],signature:o.signature,key:ut(o.key)}).subarray()):t.push(dr.encode({data:o.data,topicIDs:[o.topic]}).subarray()))}),yield Ae(),yield*t}catch(t){mo.error("failed to subscribe to topic %s - %e",e,t),yield Ee(t)}}async*publish(e,t){try{await this.pubsub.publish(e,t),yield Ae()}catch(n){mo.error("failed to publish message to topic %s - %e",e,n),yield Ee(n)}}async*listPeers(e){try{yield Ae({pubsub:{topics:[e],peerIDs:this.pubsub.getSubscribers(e).map(t=>t.toMultihash().bytes)}})}catch(t){mo.error("failed to list peers for topic %s - %e",e,t),yield Ee(t)}}};var uu=1<<22,ve=at("libp2p:daemon-server"),yo=class{multiaddr;libp2p;tcp;listener;dhtOperations;pubsubOperations;constructor(e){let{multiaddr:t,libp2pNode:n}=e;this.multiaddr=t,this.libp2p=n,this.tcp=cu()({logger:ma()}),this.listener=this.tcp.createListener({upgrader:new hr(this.handleConnection.bind(this))}),this._onExit=this._onExit.bind(this),n.services.dht!=null&&(this.dhtOperations=new po({dht:n.services.dht})),n.services.pubsub!=null&&(this.pubsubOperations=new bo({pubsub:n.services.pubsub}))}async connect(e){if(e.connect?.addrs==null)throw new Error("Invalid request");let t=e.connect.peer,n=e.connect.addrs.map(s=>Ye(s)),o=Qt(Xe(t));return ve("connect - adding multiaddrs %a to peer %p",n,o),await this.libp2p.peerStore.merge(o,{multiaddrs:n}),ve("connect - dial %p",o),this.libp2p.dial(o)}async openStream(e){if(e.streamOpen?.proto==null)throw new Error("Invalid request");let{peer:t,proto:n}=e.streamOpen,o=Qt(Xe(t));ve("openStream - dial %p",o);let s=await this.libp2p.dial(o);ve("openStream - open stream for protocol(s) %s",n);let i=await s.newStream(n,{runOnLimitedConnection:!0});return{streamInfo:{peer:o.toMultihash().bytes,addr:s.remoteAddr.bytes,proto:i.protocol??""},connection:i}}async registerStreamHandler(e){if(e.streamHandler?.proto==null)throw new Error("Invalid request");let t=e.streamHandler.proto,n=Ye(e.streamHandler.addr),o;ve("registerStreamHandler - handle %s at %a",t,n),await this.libp2p.handle(t,async(s,i)=>{try{ve("open stream for protocol %o to %a",t,n);let a=AbortSignal.timeout(1e4);o=await this.tcp.dial(n,{upgrader:new hr,signal:a});let c=Ht.encode({peer:i.remotePeer.toMultihash().bytes,addr:i.remoteAddr.bytes,proto:s.protocol??""}),l=ao.single(c);o.send(l)||await Pe(o,"drain",{rejectionEvents:["close"],signal:a}),await Si(s,o,s)}catch(a){ve.error("error handling stream handler - %e",a),o?.abort(a)}finally{try{await o?.close()}catch(a){o?.abort(a)}}},{runOnLimitedConnection:!0})}_listen(){process.on("SIGTERM",this._onExit),process.on("SIGINT",this._onExit),process.on("SIGHUP",this._onExit)}_onExit(){this.stop({exit:!0}).catch(e=>{ve.error("failed to stop daemon during exit - %e",e)})}async start(){this._listen(),await this.libp2p.start(),await this.listener.listen(this.multiaddr)}getMultiaddr(){let e=this.listener.getAddrs();if(e.length>0)return e[0];throw new Error("Not started")}async stop(e={exit:!1}){await this.libp2p.stop(),await this.listener.close(),e.exit&&ve("server closed, exiting"),process.removeListener("SIGTERM",this._onExit),process.removeListener("SIGINT",this._onExit),process.removeListener("SIGHUP",this._onExit)}async*handlePeerStoreRequest(e){try{switch(e.type){case xt.Type.GET_PROTOCOLS:if(e.id==null)throw new Error("Invalid request");let t=Qt(Xe(e.id)),o=(await this.libp2p.peerStore.get(t)).protocols;yield Ae({peerStore:{protos:o}});return;case xt.Type.GET_PEER_INFO:throw new Error("ERR_NOT_IMPLEMENTED");default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(t){ve.error("error handling peerstore request - %e",t),yield Ee(t)}}async*handlePubsubRequest(e){try{if(this.libp2p.services.pubsub==null||this.pubsubOperations==null)throw new Error("PubSub not configured");switch(e.type){case Qe.Type.GET_TOPICS:yield*this.pubsubOperations.getTopics();return;case Qe.Type.SUBSCRIBE:if(e.topic==null)throw new Error("Invalid request");yield*this.pubsubOperations.subscribe(e.topic);return;case Qe.Type.PUBLISH:if(e.topic==null||e.data==null)throw new Error("Invalid request");yield*this.pubsubOperations.publish(e.topic,e.data);return;case Qe.Type.LIST_PEERS:if(e.topic==null)throw new Error("Invalid request");yield*this.pubsubOperations.listPeers(e.topic);return;default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(t){ve.error("error handling pubsub request - %e",t),yield Ee(t)}}async*handleDHTRequest(e){try{if(this.libp2p.services.dht==null||this.dhtOperations==null)throw new Error("DHT not configured");switch(e.type){case ke.Type.FIND_PEER:if(e.peer==null)throw new Error("Invalid request");yield*this.dhtOperations.findPeer(Qt(Xe(e.peer)));return;case ke.Type.FIND_PROVIDERS:if(e.cid==null)throw new Error("Invalid request");yield*this.dhtOperations.findProviders(se.decode(e.cid),e.count??20);return;case ke.Type.PROVIDE:if(e.cid==null)throw new Error("Invalid request");yield*this.dhtOperations.provide(se.decode(e.cid));return;case ke.Type.GET_CLOSEST_PEERS:if(e.key==null)throw new Error("Invalid request");yield*this.dhtOperations.getClosestPeers(e.key);return;case ke.Type.GET_PUBLIC_KEY:if(e.peer==null)throw new Error("Invalid request");yield*this.dhtOperations.getPublicKey(Qt(Xe(e.peer)));return;case ke.Type.GET_VALUE:if(e.key==null)throw new Error("Invalid request");yield*this.dhtOperations.getValue(e.key);return;case ke.Type.PUT_VALUE:if(e.key==null||e.value==null)throw new Error("Invalid request");yield*this.dhtOperations.putValue(e.key,e.value);return;default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(t){ve.error("error handling DHT request - %e",t),yield Ee(t)}}handleConnection(e){Promise.resolve().then(async()=>{let t=this,n=vi(e,{maxDataLength:uu}),o=await n.read(Ne);ve("read",o);try{switch(o.type){case Ne.Type.CONNECT:{await t.connect(o),await n.write({type:ee.Type.OK},ee);break}case Ne.Type.IDENTIFY:{await n.write({type:ee.Type.OK,identify:{id:t.libp2p.peerId.toMultihash().bytes,addrs:t.libp2p.getMultiaddrs().map(s=>s.decapsulateCode(421)).map(s=>s.bytes)}},ee);break}case Ne.Type.LIST_PEERS:{let s=[],i=new Set;for(let a of t.libp2p.getConnections()){let c=a.remotePeer.toString();i.has(c)||(i.add(c),s.push({id:a.remotePeer.toMultihash().bytes,addrs:[a.remoteAddr.bytes]}))}await n.write({type:ee.Type.OK,peers:s},ee);break}case Ne.Type.STREAM_OPEN:{let s=await t.openStream(o);await n.write({type:ee.Type.OK,streamInfo:s.streamInfo},ee);let i=n.unwrap();await Si(i,s.connection,i);break}case Ne.Type.STREAM_HANDLER:{await t.registerStreamHandler(o),await n.write({type:ee.Type.OK},ee);break}case Ne.Type.PEERSTORE:{if(o.peerStore==null)throw new Error("ERR_INVALID_REQUEST");let s=n.unwrap(),i=Br(s);for await(let a of t.handlePeerStoreRequest(o.peerStore))await i.write(a);break}case Ne.Type.PUBSUB:{if(o.pubsub==null)throw new Error("ERR_INVALID_REQUEST");let s=n.unwrap(),i=Br(s);for await(let a of t.handlePubsubRequest(o.pubsub))await i.write(a);break}case Ne.Type.DHT:{if(o.dht==null)throw new Error("ERR_INVALID_REQUEST");let s=n.unwrap(),i=Br(s);for await(let a of t.handleDHTRequest(o.dht))await i.write(a);break}default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(s){ve.error("error handling incoming connection - %e",s);let i=n.unwrap();if(i.status!=="open")return;n=vi(i,{maxDataLength:uu}),await n.write({type:ee.Type.ERROR,error:{msg:s.message},peers:[]},ee)}finally{await n.unwrap().close()}}).catch(t=>{ve.error("error handling incoming connection - %e",t)})}},Fd=(r,e)=>new yo({multiaddr:r,libp2pNode:e});return mu(zd);})();
16
+ ${e}[Error list was empty]`,t.trim()}return fa(r,e)}Ie.formatters.e=r=>r==null?"undefined":ha(r);function Xl(r){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=r,e.destroy=()=>!0,e.extend=()=>e,e}function pa(r){return{forComponent(e){return at(e,r)}}}function at(r,e){let t=Xl(`${r}:trace`);return Ie.enabled(`${r}:trace`)&&Ie.names.map(n=>n.toString()).find(n=>n.includes(":trace"))!=null&&(t=Ie(`${r}:trace`,e)),Object.assign(Ie(r,e),{error:Ie(`${r}:error`,e),trace:t,newScope:n=>at(`${r}:${n}`,e)})}function da(r){if(r!=null&&(r=r.trim(),r.length!==0))return r}var rn=class extends Error{static name="AbortError";constructor(e="The operation was aborted"){super(e),this.name="AbortError"}};var Z=class extends Error{static name="InvalidParametersError";constructor(e="Invalid parameters"){super(e),this.name="InvalidParametersError"}},nn=class extends Error{static name="InvalidPublicKeyError";constructor(e="Invalid public key"){super(e),this.name="InvalidPublicKeyError"}};var on=class extends Error{static name="StreamResetError";constructor(e="The stream has been reset"){super(e),this.name="StreamResetError"}};var ct=class extends Error{static name="StreamStateError";constructor(e="The stream is in an invalid state"){super(e),this.name="StreamStateError"}},pr=class extends Error{static name="StreamBufferError";constructor(e="The stream buffer was full"){super(e),this.name="StreamBufferError"}};var sn=class extends Error{static name="InvalidMultihashError";constructor(e="Invalid Multihash"){super(e),this.name="InvalidMultihashError"}};var Vt=class extends Error{static name="TimeoutError";constructor(e="Timed out"){super(e),this.name="TimeoutError"}},an=class extends Error{static name="NotStartedError";constructor(e="Not started"){super(e),this.name="NotStartedError"}},cn=class extends Error{static name="AlreadyStartedError";constructor(e="Already started"){super(e),this.name="AlreadyStartedError"}};var mr=class extends Error{static name="UnsupportedKeyTypeError";constructor(e="Unsupported key type"){super(e),this.name="UnsupportedKeyTypeError"}};var un=class extends Event{data;constructor(e,t){super("message",t),this.data=e}},Gt=class extends Event{error;local;constructor(e,t,n){super("close",n),this.error=t,this.local=e}},ln=class extends Gt{constructor(e,t){super(!0,e,t)}},fn=class extends Gt{constructor(e,t){super(!1,e,t)}};var cs=Symbol.for("@libp2p/peer-id");var ba=Symbol.for("@libp2p/transport");var ma;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(ma||(ma={}));var ya=oe("node:events"),dn=(r,...e)=>{try{(0,ya.setMaxListeners)(r,...e)}catch{}};var Ft=class extends EventTarget{#e=new Map;constructor(){super(),dn(1/0,this)}listenerCount(e){let t=this.#e.get(e);return t==null?0:t.length}addEventListener(e,t,n){super.addEventListener(e,t,n);let o=this.#e.get(e);o==null&&(o=[],this.#e.set(e,o)),o.push({callback:t,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,t,n){super.removeEventListener(e.toString(),t??null,n);let o=this.#e.get(e);o!=null&&(o=o.filter(({callback:s})=>s!==t),this.#e.set(e,o))}dispatchEvent(e){let t=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:o})=>!o),this.#e.set(e.type,n)),t}safeDispatchEvent(e,t={}){return this.dispatchEvent(new CustomEvent(e,t))}};var ga=Symbol.for("@libp2p/service-capabilities"),qp=Symbol.for("@libp2p/service-dependencies");function Ce(r,e){if(r===e)return!0;if(r.byteLength!==e.byteLength)return!1;for(let t=0;t<r.byteLength;t++)if(r[t]!==e[t])return!1;return!0}var xa=oe("node:buffer");function We(r,e){return pt(xa.Buffer.concat(r,e))}var wa=Symbol.for("@achingbrain/uint8arraylist");function Ea(r,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let t=0;for(let n of r){let o=t+n.byteLength;if(e<o)return{buf:n,index:e-t};t=o}throw new RangeError("index is out of bounds")}function hn(r){return!!r?.[wa]}var H=class r{bufs;length;[wa]=!0;constructor(...e){this.bufs=[],this.length=0,e.length>0&&this.appendAll(e)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...e){this.appendAll(e)}appendAll(e){let t=0;for(let n of e)if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.push(n);else if(hn(n))t+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}prepend(...e){this.prependAll(e)}prependAll(e){let t=0;for(let n of e.reverse())if(n instanceof Uint8Array)t+=n.byteLength,this.bufs.unshift(n);else if(hn(n))t+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=t}get(e){let t=Ea(this.bufs,e);return t.buf[t.index]}set(e,t){let n=Ea(this.bufs,e);n.buf[n.index]=t}write(e,t=0){if(e instanceof Uint8Array)for(let n=0;n<e.length;n++)this.set(t+n,e[n]);else if(hn(e))for(let n=0;n<e.length;n++)this.set(t+n,e.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(e){if(e=Math.trunc(e),!(Number.isNaN(e)||e<=0)){if(e===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(e>=this.bufs[0].byteLength)e-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(e),this.length-=e;break}}}slice(e,t){let{bufs:n,length:o}=this._subList(e,t);return We(n,o)}subarray(e,t){let{bufs:n,length:o}=this._subList(e,t);return n.length===1?n[0]:We(n,o)}sublist(e,t){let{bufs:n,length:o}=this._subList(e,t),s=new r;return s.length=o,s.bufs=[...n],s}_subList(e,t){if(e=e??0,t=t??this.length,e<0&&(e=this.length+e),t<0&&(t=this.length+t),e<0||t>this.length)throw new RangeError("index is out of bounds");if(e===t)return{bufs:[],length:0};if(e===0&&t===this.length)return{bufs:this.bufs,length:this.length};let n=[],o=0;for(let s=0;s<this.bufs.length;s++){let i=this.bufs[s],a=o,c=a+i.byteLength;if(o=c,e>=c)continue;let l=e>=a&&e<c,u=t>a&&t<=c;if(l&&u){if(e===a&&t===c){n.push(i);break}let f=e-a;n.push(i.subarray(f,f+(t-e)));break}if(l){if(e===0){n.push(i);continue}n.push(i.subarray(e-a));continue}if(u){if(t===c){n.push(i);break}n.push(i.subarray(0,t-a));break}n.push(i)}return{bufs:n,length:t-e}}indexOf(e,t=0){if(!hn(e)&&!(e instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=e instanceof Uint8Array?e:e.subarray();if(t=Number(t??0),isNaN(t)&&(t=0),t<0&&(t=this.length+t),t<0&&(t=0),e.length===0)return t>this.length?this.length:t;let o=n.byteLength;if(o===0)throw new TypeError("search must be at least 1 byte long");let s=256,i=new Int32Array(s);for(let f=0;f<s;f++)i[f]=-1;for(let f=0;f<o;f++)i[n[f]]=f;let a=i,c=this.byteLength-n.byteLength,l=n.byteLength-1,u;for(let f=t;f<=c;f+=u){u=0;for(let d=l;d>=0;d--){let p=this.get(f+d);if(n[d]!==p){u=Math.max(1,d-a[p]);break}}if(u===0)return f}return-1}getInt8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getInt8(0)}setInt8(e,t){let n=Se(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,t),this.write(n,e)}getInt16(e,t){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,t)}setInt16(e,t,n){let o=Ze(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt16(0,t,n),this.write(o,e)}getInt32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,t)}setInt32(e,t,n){let o=Ze(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setInt32(0,t,n),this.write(o,e)}getBigInt64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,t)}setBigInt64(e,t,n){let o=Ze(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigInt64(0,t,n),this.write(o,e)}getUint8(e){let t=this.subarray(e,e+1);return new DataView(t.buffer,t.byteOffset,t.byteLength).getUint8(0)}setUint8(e,t){let n=Se(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,t),this.write(n,e)}getUint16(e,t){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,t)}setUint16(e,t,n){let o=Ze(2);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint16(0,t,n),this.write(o,e)}getUint32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,t)}setUint32(e,t,n){let o=Ze(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setUint32(0,t,n),this.write(o,e)}getBigUint64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,t)}setBigUint64(e,t,n){let o=Ze(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setBigUint64(0,t,n),this.write(o,e)}getFloat32(e,t){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,t)}setFloat32(e,t,n){let o=Ze(4);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat32(0,t,n),this.write(o,e)}getFloat64(e,t){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,t)}setFloat64(e,t,n){let o=Ze(8);new DataView(o.buffer,o.byteOffset,o.byteLength).setFloat64(0,t,n),this.write(o,e)}equals(e){if(e==null||!(e instanceof r)||e.bufs.length!==this.bufs.length)return!1;for(let t=0;t<this.bufs.length;t++)if(!Ce(this.bufs[t],e.bufs[t]))return!1;return!0}static fromUint8Arrays(e,t){let n=new r;return n.bufs=e,t==null&&(t=e.reduce((o,s)=>o+s.byteLength,0)),n.length=t,n}};var va=oe("node:buffer");function te(r,e="utf8"){let t=Kr[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return e==="utf8"||e==="utf-8"?va.Buffer.from(r.buffer,r.byteOffset,r.byteLength).toString("utf8"):t.encoder.encode(r).substring(1)}var Ql=parseInt("11111",2),us=parseInt("10000000",2),jl=parseInt("01111111",2),Sa={0:br,1:br,2:Jl,3:rf,4:nf,5:tf,6:ef,16:br,22:br,48:br};function ls(r,e={offset:0}){let t=r[e.offset]&Ql;if(e.offset++,Sa[t]!=null)return Sa[t](r,e);throw new Error("No decoder for tag "+t)}function yr(r,e){let t=0;if((r[e.offset]&us)===us){let n=r[e.offset]&jl,o="0x";e.offset++;for(let s=0;s<n;s++,e.offset++)o+=r[e.offset].toString(16).padStart(2,"0");t=parseInt(o,16)}else t=r[e.offset],e.offset++;return t}function br(r,e){yr(r,e);let t=[];for(;!(e.offset>=r.byteLength);){let n=ls(r,e);if(n===null)break;t.push(n)}return t}function Jl(r,e){let t=yr(r,e),n=e.offset,o=e.offset+t,s=[];for(let i=n;i<o;i++)i===n&&r[i]===0||s.push(r[i]);return e.offset+=t,Uint8Array.from(s)}function ef(r,e){let t=yr(r,e),n=e.offset+t,o=r[e.offset];e.offset++;let s=0,i=0;o<40?(s=0,i=o):o<80?(s=1,i=o-40):(s=2,i=o-80);let a=`${s}.${i}`,c=[];for(;e.offset<n;){let l=r[e.offset];if(e.offset++,c.push(l&127),l<128){c.reverse();let u=0;for(let f=0;f<c.length;f++)u+=c[f]<<f*7;a+=`.${u}`,c=[]}}return a}function tf(r,e){return e.offset++,null}function rf(r,e){let t=yr(r,e),n=r[e.offset];e.offset++;let o=r.subarray(e.offset,e.offset+t-1);if(e.offset+=t,n!==0)throw new Error("Unused bits in bit string is unimplemented");return o}function nf(r,e){let t=yr(r,e),n=r.subarray(e.offset,e.offset+t);return e.offset+=t,n}function of(r){let e=r.toString(16);e.length%2===1&&(e="0"+e);let t=new H;for(let n=0;n<e.length;n+=2)t.append(Uint8Array.from([parseInt(`${e[n]}${e[n+1]}`,16)]));return t}function fs(r){if(r.byteLength<128)return Uint8Array.from([r.byteLength]);let e=of(r.byteLength);return new H(Uint8Array.from([e.byteLength|us]),e)}function Ia(r){let e=new H,t=128;return(r.subarray()[0]&t)===t&&e.append(Uint8Array.from([0])),e.append(r),new H(Uint8Array.from([2]),fs(e),e)}function Aa(r){let e=Uint8Array.from([0]),t=new H(e,r);return new H(Uint8Array.from([3]),fs(t),t)}function pn(r,e=48){let t=new H;for(let n of r)t.append(n);return new H(Uint8Array.from([e]),fs(t),t)}async function La(r,e,t,n){let o=await crypto.subtle.importKey("jwk",r,{name:"ECDSA",namedCurve:r.crv??"P-256"},!1,["verify"]);n?.signal?.throwIfAborted();let s=await crypto.subtle.verify({name:"ECDSA",hash:{name:"SHA-256"}},o,e,t.subarray());return n?.signal?.throwIfAborted(),s}var sf=Uint8Array.from([6,8,42,134,72,206,61,3,1,7]),af=Uint8Array.from([6,5,43,129,4,0,34]),cf=Uint8Array.from([6,5,43,129,4,0,35]),uf={ext:!0,kty:"EC",crv:"P-256"},lf={ext:!0,kty:"EC",crv:"P-384"},ff={ext:!0,kty:"EC",crv:"P-521"},ds=32,hs=48,ps=66;function Ta(r){let e=ls(r);return Da(e)}function Da(r){let e=r[1][1][0],t=1,n,o;if(e.byteLength===ds*2+1)return n=te(e.subarray(t,t+ds),"base64url"),o=te(e.subarray(t+ds),"base64url"),new zt({...uf,key_ops:["verify"],x:n,y:o});if(e.byteLength===hs*2+1)return n=te(e.subarray(t,t+hs),"base64url"),o=te(e.subarray(t+hs),"base64url"),new zt({...lf,key_ops:["verify"],x:n,y:o});if(e.byteLength===ps*2+1)return n=te(e.subarray(t,t+ps),"base64url"),o=te(e.subarray(t+ps),"base64url"),new zt({...ff,key_ops:["verify"],x:n,y:o});throw new Z(`coordinates were wrong length, got ${e.byteLength}, expected 65, 97 or 133`)}function Ca(r){return pn([Ia(Uint8Array.from([1])),pn([df(r.crv)],160),pn([Aa(new H(Uint8Array.from([4]),ye(r.x??"","base64url"),ye(r.y??"","base64url")))],161)]).subarray()}function df(r){if(r==="P-256")return sf;if(r==="P-384")return af;if(r==="P-521")return cf;throw new Z(`Invalid curve ${r}`)}var zt=class{type="ECDSA";jwk;_raw;constructor(e){this.jwk=e}get raw(){return this._raw==null&&(this._raw=Ca(this.jwk)),this._raw}toMultihash(){return Ke.digest(ut(this))}toCID(){return se.createV1(114,this.toMultihash())}toString(){return J.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Ce(this.raw,e.raw)}async verify(e,t,n){return La(this.jwk,t,e,n)}};var mn=Te(oe("crypto"),1);var Jm=mn.default.generateKeyPairSync,gr=32;var hf=64;function _a(r,e,t){if(r.byteLength!==gr)throw new TypeError('"key" must be 32 bytes in length.');if(!(r instanceof Uint8Array))throw new TypeError('"key" must be a node.js Buffer, or Uint8Array.');if(e.byteLength!==hf)throw new TypeError('"sig" must be 64 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"sig" must be a node.js Buffer, or Uint8Array.');let n=mn.default.createPublicKey({format:"jwk",key:{crv:"Ed25519",x:te(r,"base64url"),kty:"OKP"}});return mn.default.verify(null,t instanceof Uint8Array?t:t.subarray(),n,e)}function Oa(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}var bn=class{type="Ed25519";raw;constructor(e){this.raw=ms(e,gr)}toMultihash(){return Ke.digest(ut(this))}toCID(){return se.createV1(114,this.toMultihash())}toString(){return J.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Ce(this.raw,e.raw)}verify(e,t,n){n?.signal?.throwIfAborted();let o=_a(this.raw,t,e);return Oa(o)?o.then(s=>(n?.signal?.throwIfAborted(),s)):o}};function Pa(r){return r=ms(r,gr),new bn(r)}function ms(r,e){if(r=Uint8Array.from(r??[]),r.length!==e)throw new Z(`Key must be a Uint8Array of length ${e}, got ${r.length}`);return r}var _e;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.secp256k1="secp256k1",r.ECDSA="ECDSA"})(_e||(_e={}));var bs;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.secp256k1=2]="secp256k1",r[r.ECDSA=3]="ECDSA"})(bs||(bs={}));(function(r){r.codec=()=>He(bs)})(_e||(_e={}));var xr;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),_e.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),o.lengthDelimited!==!1&&n.ldelim()},(t,n,o={})=>{let s={},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let a=t.uint32();switch(a>>>3){case 1:{s.Type=_e.codec().decode(t);break}case 2:{s.Data=t.bytes();break}default:{t.skipType(a&7);break}}}return s})),e),r.encode=t=>q(t,r.codec()),r.decode=(t,n)=>W(t,r.codec(),n)})(xr||(xr={}));var ys;(function(r){let e;r.codec=()=>(e==null&&(e=Y((t,n,o={})=>{o.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),_e.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),o.lengthDelimited!==!1&&n.ldelim()},(t,n,o={})=>{let s={},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let a=t.uint32();switch(a>>>3){case 1:{s.Type=_e.codec().decode(t);break}case 2:{s.Data=t.bytes();break}default:{t.skipType(a&7);break}}}return s})),e),r.encode=t=>q(t,r.codec()),r.decode=(t,n)=>W(t,r.codec(),n)})(ys||(ys={}));function Er(r){return r instanceof Uint8Array||ArrayBuffer.isView(r)&&r.constructor.name==="Uint8Array"}function qe(r,e=""){if(!Number.isSafeInteger(r)||r<0){let t=e&&`"${e}" `;throw new Error(`${t}expected integer >= 0, got ${r}`)}}function K(r,e,t=""){let n=Er(r),o=r?.length,s=e!==void 0;if(!n||s&&o!==e){let i=t&&`"${t}" `,a=s?` of length ${e}`:"",c=n?`length=${o}`:`type=${typeof r}`;throw new Error(i+"expected Uint8Array"+a+", got "+c)}return r}function yn(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash must wrapped by utils.createHasher");qe(r.outputLen),qe(r.blockLen)}function Wt(r,e=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(e&&r.finished)throw new Error("Hash#digest() has already been called")}function Na(r,e){K(r,void 0,"digestInto() output");let t=e.outputLen;if(r.length<t)throw new Error('"digestInto() output" expected to be of length >='+t)}function wt(...r){for(let e=0;e<r.length;e++)r[e].fill(0)}function gn(r){return new DataView(r.buffer,r.byteOffset,r.byteLength)}function $e(r,e){return r<<32-e|r>>>e}var ka=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",bf=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));function vt(r){if(K(r),ka)return r.toHex();let e="";for(let t=0;t<r.length;t++)e+=bf[r[t]];return e}var je={_0:48,_9:57,A:65,F:70,a:97,f:102};function Ra(r){if(r>=je._0&&r<=je._9)return r-je._0;if(r>=je.A&&r<=je.F)return r-(je.A-10);if(r>=je.a&&r<=je.f)return r-(je.a-10)}function St(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);if(ka)return Uint8Array.fromHex(r);let e=r.length,t=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);let n=new Uint8Array(t);for(let o=0,s=0;o<t;o++,s+=2){let i=Ra(r.charCodeAt(s)),a=Ra(r.charCodeAt(s+1));if(i===void 0||a===void 0){let c=r[s]+r[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}n[o]=i*16+a}return n}function Ve(...r){let e=0;for(let n=0;n<r.length;n++){let o=r[n];K(o),e+=o.length}let t=new Uint8Array(e);for(let n=0,o=0;n<r.length;n++){let s=r[n];t.set(s,o),o+=s.length}return t}function Ua(r,e={}){let t=(o,s)=>r(s).update(o).digest(),n=r(void 0);return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=o=>r(o),Object.assign(t,e),Object.freeze(t)}function xn(r=32){let e=typeof globalThis=="object"?globalThis.crypto:null;if(typeof e?.getRandomValues!="function")throw new Error("crypto.getRandomValues must be defined");return e.getRandomValues(new Uint8Array(r))}var Ma=r=>({oid:Uint8Array.from([6,9,96,134,72,1,101,3,4,2,r])});function Ka(r,e,t){return r&e^~r&t}function Ha(r,e,t){return r&e^r&t^e&t}var En=class{blockLen;outputLen;padOffset;isLE;buffer;view;finished=!1;length=0;pos=0;destroyed=!1;constructor(e,t,n,o){this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=o,this.buffer=new Uint8Array(e),this.view=gn(this.buffer)}update(e){Wt(this),K(e);let{view:t,buffer:n,blockLen:o}=this,s=e.length;for(let i=0;i<s;){let a=Math.min(o-this.pos,s-i);if(a===o){let c=gn(e);for(;o<=s-i;i+=o)this.process(c,i);continue}n.set(e.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===o&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Wt(this),Na(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:o,isLE:s}=this,{pos:i}=this;t[i++]=128,wt(this.buffer.subarray(i)),this.padOffset>o-i&&(this.process(n,0),i=0);for(let f=i;f<o;f++)t[f]=0;n.setBigUint64(o-8,BigInt(this.length*8),s),this.process(n,0);let a=gn(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen must be aligned to 32bit");let l=c/4,u=this.get();if(l>u.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f<l;f++)a.setUint32(4*f,u[f],s)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||=new this.constructor,e.set(...this.get());let{blockLen:t,buffer:n,length:o,finished:s,destroyed:i,pos:a}=this;return e.destroyed=i,e.finished=s,e.length=o,e.pos=a,o%t&&e.buffer.set(n),e}clone(){return this._cloneInto()}},Je=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]);var yf=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]),lt=new Uint32Array(64),gs=class extends En{constructor(e){super(64,e,8,!1)}get(){let{A:e,B:t,C:n,D:o,E:s,F:i,G:a,H:c}=this;return[e,t,n,o,s,i,a,c]}set(e,t,n,o,s,i,a,c){this.A=e|0,this.B=t|0,this.C=n|0,this.D=o|0,this.E=s|0,this.F=i|0,this.G=a|0,this.H=c|0}process(e,t){for(let f=0;f<16;f++,t+=4)lt[f]=e.getUint32(t,!1);for(let f=16;f<64;f++){let d=lt[f-15],p=lt[f-2],g=$e(d,7)^$e(d,18)^d>>>3,w=$e(p,17)^$e(p,19)^p>>>10;lt[f]=w+lt[f-7]+g+lt[f-16]|0}let{A:n,B:o,C:s,D:i,E:a,F:c,G:l,H:u}=this;for(let f=0;f<64;f++){let d=$e(a,6)^$e(a,11)^$e(a,25),p=u+d+Ka(a,c,l)+yf[f]+lt[f]|0,w=($e(n,2)^$e(n,13)^$e(n,22))+Ha(n,o,s)|0;u=l,l=c,c=a,a=i+p|0,i=s,s=o,o=n,n=p+w|0}n=n+this.A|0,o=o+this.B|0,s=s+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,l=l+this.G|0,u=u+this.H|0,this.set(n,o,s,i,a,c,l,u)}roundClean(){wt(lt)}destroy(){this.set(0,0,0,0,0,0,0,0),wt(this.buffer)}},xs=class extends gs{A=Je[0]|0;B=Je[1]|0;C=Je[2]|0;D=Je[3]|0;E=Je[4]|0;F=Je[5]|0;G=Je[6]|0;H=Je[7]|0;constructor(){super(32)}};var $a=Ua(()=>new xs,Ma(1));var yc=Te(oe("node:crypto"),1);var ws=BigInt(0),Es=BigInt(1);function wr(r,e=""){if(typeof r!="boolean"){let t=e&&`"${e}" `;throw new Error(t+"expected boolean, got type="+typeof r)}return r}function Va(r){if(typeof r=="bigint"){if(!wn(r))throw new Error("positive bigint expected, got "+r)}else qe(r);return r}function vr(r){let e=Va(r).toString(16);return e.length&1?"0"+e:e}function Ga(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return r===""?ws:BigInt("0x"+r)}function qt(r){return Ga(vt(r))}function vs(r){return Ga(vt(gf(K(r)).reverse()))}function vn(r,e){qe(e),r=Va(r);let t=St(r.toString(16).padStart(e*2,"0"));if(t.length!==e)throw new Error("number too large");return t}function Ss(r,e){return vn(r,e).reverse()}function gf(r){return Uint8Array.from(r)}var wn=r=>typeof r=="bigint"&&ws<=r;function xf(r,e,t){return wn(r)&&wn(e)&&wn(t)&&e<=r&&r<t}function Fa(r,e,t,n){if(!xf(e,t,n))throw new Error("expected valid "+r+": "+t+" <= n < "+n+", got "+e)}function Is(r){let e;for(e=0;r>ws;r>>=Es,e+=1);return e}var Sr=r=>(Es<<BigInt(r))-Es;function za(r,e,t){if(qe(r,"hashLen"),qe(e,"qByteLen"),typeof t!="function")throw new Error("hmacFn must be a function");let n=b=>new Uint8Array(b),o=Uint8Array.of(),s=Uint8Array.of(0),i=Uint8Array.of(1),a=1e3,c=n(r),l=n(r),u=0,f=()=>{c.fill(1),l.fill(0),u=0},d=(...b)=>t(l,Ve(c,...b)),p=(b=o)=>{l=d(s,b),c=d(),b.length!==0&&(l=d(i,b),c=d())},g=()=>{if(u++>=a)throw new Error("drbg: tried max amount of iterations");let b=0,E=[];for(;b<e;){c=d();let _=c.slice();E.push(_),b+=c.length}return Ve(...E)};return(b,E)=>{f(),p(b);let _;for(;!(_=E(g()));)p();return f(),_}}function Ir(r,e={},t={}){if(!r||typeof r!="object")throw new Error("expected valid options object");function n(s,i,a){let c=r[s];if(a&&c===void 0)return;let l=typeof c;if(l!==i||c===null)throw new Error(`param "${s}" is invalid: expected ${i}, got ${l}`)}let o=(s,i)=>Object.entries(s).forEach(([a,c])=>n(a,c,i));o(e,!1),o(t,!0)}function As(r){let e=new WeakMap;return(t,...n)=>{let o=e.get(t);if(o!==void 0)return o;let s=r(t,...n);return e.set(t,s),s}}var we=BigInt(0),ge=BigInt(1),It=BigInt(2),Ya=BigInt(3),Za=BigInt(4),Xa=BigInt(5),Ef=BigInt(7),Qa=BigInt(8),wf=BigInt(9),ja=BigInt(16);function Ge(r,e){let t=r%e;return t>=we?t:e+t}function Be(r,e,t){let n=r;for(;e-- >we;)n*=n,n%=t;return n}function Wa(r,e){if(r===we)throw new Error("invert: expected non-zero number");if(e<=we)throw new Error("invert: expected positive modulus, got "+e);let t=Ge(r,e),n=e,o=we,s=ge,i=ge,a=we;for(;t!==we;){let l=n/t,u=n%t,f=o-i*l,d=s-a*l;n=t,t=u,o=i,s=a,i=f,a=d}if(n!==ge)throw new Error("invert: does not exist");return Ge(o,e)}function Ts(r,e,t){if(!r.eql(r.sqr(e),t))throw new Error("Cannot find square root")}function Ja(r,e){let t=(r.ORDER+ge)/Za,n=r.pow(e,t);return Ts(r,n,e),n}function vf(r,e){let t=(r.ORDER-Xa)/Qa,n=r.mul(e,It),o=r.pow(n,t),s=r.mul(e,o),i=r.mul(r.mul(s,It),o),a=r.mul(s,r.sub(i,r.ONE));return Ts(r,a,e),a}function Sf(r){let e=Yt(r),t=ec(r),n=t(e,e.neg(e.ONE)),o=t(e,n),s=t(e,e.neg(n)),i=(r+Ef)/ja;return(a,c)=>{let l=a.pow(c,i),u=a.mul(l,n),f=a.mul(l,o),d=a.mul(l,s),p=a.eql(a.sqr(u),c),g=a.eql(a.sqr(f),c);l=a.cmov(l,u,p),u=a.cmov(d,f,g);let w=a.eql(a.sqr(u),c),b=a.cmov(l,u,w);return Ts(a,b,c),b}}function ec(r){if(r<Ya)throw new Error("sqrt is not defined for small field");let e=r-ge,t=0;for(;e%It===we;)e/=It,t++;let n=It,o=Yt(r);for(;qa(o,n)===1;)if(n++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(t===1)return Ja;let s=o.pow(n,e),i=(e+ge)/It;return function(c,l){if(c.is0(l))return l;if(qa(c,l)!==1)throw new Error("Cannot find square root");let u=t,f=c.mul(c.ONE,s),d=c.pow(l,e),p=c.pow(l,i);for(;!c.eql(d,c.ONE);){if(c.is0(d))return c.ZERO;let g=1,w=c.sqr(d);for(;!c.eql(w,c.ONE);)if(g++,w=c.sqr(w),g===u)throw new Error("Cannot find square root");let b=ge<<BigInt(u-g-1),E=c.pow(f,b);u=g,f=c.sqr(E),d=c.mul(d,f),p=c.mul(p,E)}return p}}function If(r){return r%Za===Ya?Ja:r%Qa===Xa?vf:r%ja===wf?Sf(r):ec(r)}var Af=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Ds(r){let e={ORDER:"bigint",BYTES:"number",BITS:"number"},t=Af.reduce((n,o)=>(n[o]="function",n),e);return Ir(r,t),r}function Lf(r,e,t){if(t<we)throw new Error("invalid exponent, negatives unsupported");if(t===we)return r.ONE;if(t===ge)return e;let n=r.ONE,o=e;for(;t>we;)t&ge&&(n=r.mul(n,o)),o=r.sqr(o),t>>=ge;return n}function Sn(r,e,t=!1){let n=new Array(e.length).fill(t?r.ZERO:void 0),o=e.reduce((i,a,c)=>r.is0(a)?i:(n[c]=i,r.mul(i,a)),r.ONE),s=r.inv(o);return e.reduceRight((i,a,c)=>r.is0(a)?i:(n[c]=r.mul(i,n[c]),r.mul(i,a)),s),n}function qa(r,e){let t=(r.ORDER-ge)/It,n=r.pow(e,t),o=r.eql(n,r.ONE),s=r.eql(n,r.ZERO),i=r.eql(n,r.neg(r.ONE));if(!o&&!s&&!i)throw new Error("invalid Legendre symbol result");return o?1:s?0:-1}function Tf(r,e){e!==void 0&&qe(e);let t=e!==void 0?e:r.toString(2).length,n=Math.ceil(t/8);return{nBitLength:t,nByteLength:n}}var Ls=class{ORDER;BITS;BYTES;isLE;ZERO=we;ONE=ge;_lengths;_sqrt;_mod;constructor(e,t={}){if(e<=we)throw new Error("invalid field: expected ORDER > 0, got "+e);let n;this.isLE=!1,t!=null&&typeof t=="object"&&(typeof t.BITS=="number"&&(n=t.BITS),typeof t.sqrt=="function"&&(this.sqrt=t.sqrt),typeof t.isLE=="boolean"&&(this.isLE=t.isLE),t.allowedLengths&&(this._lengths=t.allowedLengths?.slice()),typeof t.modFromBytes=="boolean"&&(this._mod=t.modFromBytes));let{nBitLength:o,nByteLength:s}=Tf(e,n);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");this.ORDER=e,this.BITS=o,this.BYTES=s,this._sqrt=void 0,Object.preventExtensions(this)}create(e){return Ge(e,this.ORDER)}isValid(e){if(typeof e!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof e);return we<=e&&e<this.ORDER}is0(e){return e===we}isValidNot0(e){return!this.is0(e)&&this.isValid(e)}isOdd(e){return(e&ge)===ge}neg(e){return Ge(-e,this.ORDER)}eql(e,t){return e===t}sqr(e){return Ge(e*e,this.ORDER)}add(e,t){return Ge(e+t,this.ORDER)}sub(e,t){return Ge(e-t,this.ORDER)}mul(e,t){return Ge(e*t,this.ORDER)}pow(e,t){return Lf(this,e,t)}div(e,t){return Ge(e*Wa(t,this.ORDER),this.ORDER)}sqrN(e){return e*e}addN(e,t){return e+t}subN(e,t){return e-t}mulN(e,t){return e*t}inv(e){return Wa(e,this.ORDER)}sqrt(e){return this._sqrt||(this._sqrt=If(this.ORDER)),this._sqrt(this,e)}toBytes(e){return this.isLE?Ss(e,this.BYTES):vn(e,this.BYTES)}fromBytes(e,t=!1){K(e);let{_lengths:n,BYTES:o,isLE:s,ORDER:i,_mod:a}=this;if(n){if(!n.includes(e.length)||e.length>o)throw new Error("Field.fromBytes: expected "+n+" bytes, got "+e.length);let l=new Uint8Array(o);l.set(e,s?0:l.length-e.length),e=l}if(e.length!==o)throw new Error("Field.fromBytes: expected "+o+" bytes, got "+e.length);let c=s?vs(e):qt(e);if(a&&(c=Ge(c,i)),!t&&!this.isValid(c))throw new Error("invalid field element: outside of range 0..ORDER");return c}invertBatch(e){return Sn(this,e)}cmov(e,t,n){return n?t:e}};function Yt(r,e={}){return new Ls(r,e)}function tc(r){if(typeof r!="bigint")throw new Error("field order must be bigint");let e=r.toString(2).length;return Math.ceil(e/8)}function Cs(r){let e=tc(r);return e+Math.ceil(e/2)}function _s(r,e,t=!1){K(r);let n=r.length,o=tc(e),s=Cs(e);if(n<16||n<s||n>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+n);let i=t?vs(r):qt(r),a=Ge(i,e-ge)+ge;return t?Ss(a,o):vn(a,o)}var Zt=BigInt(0),At=BigInt(1);function Ar(r,e){let t=e.negate();return r?t:e}function Rs(r,e){let t=Sn(r.Fp,e.map(n=>n.Z));return e.map((n,o)=>r.fromAffine(n.toAffine(t[o])))}function sc(r,e){if(!Number.isSafeInteger(r)||r<=0||r>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+r)}function Bs(r,e){sc(r,e);let t=Math.ceil(e/r)+1,n=2**(r-1),o=2**r,s=Sr(r),i=BigInt(r);return{windows:t,windowSize:n,mask:s,maxNumber:o,shiftBy:i}}function rc(r,e,t){let{windowSize:n,mask:o,maxNumber:s,shiftBy:i}=t,a=Number(r&o),c=r>>i;a>n&&(a-=s,c+=At);let l=e*n,u=l+Math.abs(a)-1,f=a===0,d=a<0,p=e%2!==0;return{nextN:c,offset:u,isZero:f,isNeg:d,isNegF:p,offsetF:l}}var Os=new WeakMap,ic=new WeakMap;function Ps(r){return ic.get(r)||1}function nc(r){if(r!==Zt)throw new Error("invalid wNAF")}var In=class{BASE;ZERO;Fn;bits;constructor(e,t){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=t}_unsafeLadder(e,t,n=this.ZERO){let o=e;for(;t>Zt;)t&At&&(n=n.add(o)),o=o.double(),t>>=At;return n}precomputeWindow(e,t){let{windows:n,windowSize:o}=Bs(t,this.bits),s=[],i=e,a=i;for(let c=0;c<n;c++){a=i,s.push(a);for(let l=1;l<o;l++)a=a.add(i),s.push(a);i=a.double()}return s}wNAF(e,t,n){if(!this.Fn.isValid(n))throw new Error("invalid scalar");let o=this.ZERO,s=this.BASE,i=Bs(e,this.bits);for(let a=0;a<i.windows;a++){let{nextN:c,offset:l,isZero:u,isNeg:f,isNegF:d,offsetF:p}=rc(n,a,i);n=c,u?s=s.add(Ar(d,t[p])):o=o.add(Ar(f,t[l]))}return nc(n),{p:o,f:s}}wNAFUnsafe(e,t,n,o=this.ZERO){let s=Bs(e,this.bits);for(let i=0;i<s.windows&&n!==Zt;i++){let{nextN:a,offset:c,isZero:l,isNeg:u}=rc(n,i,s);if(n=a,!l){let f=t[c];o=o.add(u?f.negate():f)}}return nc(n),o}getPrecomputes(e,t,n){let o=Os.get(t);return o||(o=this.precomputeWindow(t,e),e!==1&&(typeof n=="function"&&(o=n(o)),Os.set(t,o))),o}cached(e,t,n){let o=Ps(e);return this.wNAF(o,this.getPrecomputes(o,e,n),t)}unsafe(e,t,n,o){let s=Ps(e);return s===1?this._unsafeLadder(e,t,o):this.wNAFUnsafe(s,this.getPrecomputes(s,e,n),t,o)}createCache(e,t){sc(t,this.bits),ic.set(e,t),Os.delete(e)}hasCache(e){return Ps(e)!==1}};function ac(r,e,t,n){let o=e,s=r.ZERO,i=r.ZERO;for(;t>Zt||n>Zt;)t&At&&(s=s.add(o)),n&At&&(i=i.add(o)),o=o.double(),t>>=At,n>>=At;return{p1:s,p2:i}}function oc(r,e,t){if(e){if(e.ORDER!==r)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return Ds(e),e}else return Yt(r,{isLE:t})}function cc(r,e,t={},n){if(n===void 0&&(n=r==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${r} CURVE object`);for(let c of["p","n","h"]){let l=e[c];if(!(typeof l=="bigint"&&l>Zt))throw new Error(`CURVE.${c} must be positive bigint`)}let o=oc(e.p,t.Fp,n),s=oc(e.n,t.Fn,n),a=["Gx","Gy","a",r==="weierstrass"?"b":"d"];for(let c of a)if(!o.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:o,Fn:s}}function uc(r,e){return function(n){let o=r(n);return{secretKey:o,publicKey:e(o)}}}var An=class{oHash;iHash;blockLen;outputLen;finished=!1;destroyed=!1;constructor(e,t){if(yn(e),K(t,void 0,"key"),this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let n=this.blockLen,o=new Uint8Array(n);o.set(t.length>n?e.create().update(t).digest():t);for(let s=0;s<o.length;s++)o[s]^=54;this.iHash.update(o),this.oHash=e.create();for(let s=0;s<o.length;s++)o[s]^=106;this.oHash.update(o),wt(o)}update(e){return Wt(this),this.iHash.update(e),this}digestInto(e){Wt(this),K(e,this.outputLen,"output"),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||=Object.create(Object.getPrototypeOf(this),{});let{oHash:t,iHash:n,finished:o,destroyed:s,blockLen:i,outputLen:a}=this;return e=e,e.finished=o,e.destroyed=s,e.blockLen=i,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Ns=(r,e,t)=>new An(r,e).update(t).digest();Ns.create=(r,e)=>new An(r,e);var lc=(r,e)=>(r+(r>=0?e:-e)/fc)/e;function Df(r,e,t){let[[n,o],[s,i]]=e,a=lc(i*r,t),c=lc(-o*r,t),l=r-a*n-c*s,u=-a*o-c*i,f=l<et,d=u<et;f&&(l=-l),d&&(u=-u);let p=Sr(Math.ceil(Is(t)/2))+Xt;if(l<et||l>=p||u<et||u>=p)throw new Error("splitScalar (endomorphism): failed, k="+r);return{k1neg:f,k1:l,k2neg:d,k2:u}}function Us(r){if(!["compact","recovered","der"].includes(r))throw new Error('Signature format must be "compact", "recovered", or "der"');return r}function ks(r,e){let t={};for(let n of Object.keys(e))t[n]=r[n]===void 0?e[n]:r[n];return wr(t.lowS,"lowS"),wr(t.prehash,"prehash"),t.format!==void 0&&Us(t.format),t}var Ms=class extends Error{constructor(e=""){super(e)}},ft={Err:Ms,_tlv:{encode:(r,e)=>{let{Err:t}=ft;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length&1)throw new t("tlv.encode: unpadded data");let n=e.length/2,o=vr(n);if(o.length/2&128)throw new t("tlv.encode: long form length too big");let s=n>127?vr(o.length/2|128):"";return vr(r)+s+o+e},decode(r,e){let{Err:t}=ft,n=0;if(r<0||r>256)throw new t("tlv.encode: wrong tag");if(e.length<2||e[n++]!==r)throw new t("tlv.decode: wrong tlv");let o=e[n++],s=!!(o&128),i=0;if(!s)i=o;else{let c=o&127;if(!c)throw new t("tlv.decode(long): indefinite length not supported");if(c>4)throw new t("tlv.decode(long): byte length is too big");let l=e.subarray(n,n+c);if(l.length!==c)throw new t("tlv.decode: length bytes not complete");if(l[0]===0)throw new t("tlv.decode(long): zero leftmost byte");for(let u of l)i=i<<8|u;if(n+=c,i<128)throw new t("tlv.decode(long): not minimal encoding")}let a=e.subarray(n,n+i);if(a.length!==i)throw new t("tlv.decode: wrong value length");return{v:a,l:e.subarray(n+i)}}},_int:{encode(r){let{Err:e}=ft;if(r<et)throw new e("integer: negative integers are not allowed");let t=vr(r);if(Number.parseInt(t[0],16)&8&&(t="00"+t),t.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return t},decode(r){let{Err:e}=ft;if(r[0]&128)throw new e("invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return qt(r)}},toSig(r){let{Err:e,_int:t,_tlv:n}=ft,o=K(r,void 0,"signature"),{v:s,l:i}=n.decode(48,o);if(i.length)throw new e("invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,s),{v:l,l:u}=n.decode(2,c);if(u.length)throw new e("invalid signature: left bytes after parsing");return{r:t.decode(a),s:t.decode(l)}},hexFromSig(r){let{_tlv:e,_int:t}=ft,n=e.encode(2,t.encode(r.r)),o=e.encode(2,t.encode(r.s)),s=n+o;return e.encode(48,s)}},et=BigInt(0),Xt=BigInt(1),fc=BigInt(2),Ln=BigInt(3),Cf=BigInt(4);function dc(r,e={}){let t=cc("weierstrass",r,e),{Fp:n,Fn:o}=t,s=t.CURVE,{h:i,n:a}=s;Ir(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object"});let{endo:c}=e;if(c&&(!n.is0(s.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');let l=pc(n,o);function u(){if(!n.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function f(M,y,m){let{x:h,y:x}=y.toAffine(),S=n.toBytes(h);if(wr(m,"isCompressed"),m){u();let L=!n.isOdd(x);return Ve(hc(L),S)}else return Ve(Uint8Array.of(4),S,n.toBytes(x))}function d(M){K(M,void 0,"Point");let{publicKey:y,publicKeyUncompressed:m}=l,h=M.length,x=M[0],S=M.subarray(1);if(h===y&&(x===2||x===3)){let L=n.fromBytes(S);if(!n.isValid(L))throw new Error("bad point: is not on curve, wrong x");let A=w(L),v;try{v=n.sqrt(A)}catch(ne){let F=ne instanceof Error?": "+ne.message:"";throw new Error("bad point: is not on curve, sqrt error"+F)}u();let T=n.isOdd(v);return(x&1)===1!==T&&(v=n.neg(v)),{x:L,y:v}}else if(h===m&&x===4){let L=n.BYTES,A=n.fromBytes(S.subarray(0,L)),v=n.fromBytes(S.subarray(L,L*2));if(!b(A,v))throw new Error("bad point: is not on curve");return{x:A,y:v}}else throw new Error(`bad point: got length ${h}, expected compressed=${y} or uncompressed=${m}`)}let p=e.toBytes||f,g=e.fromBytes||d;function w(M){let y=n.sqr(M),m=n.mul(y,M);return n.add(n.add(m,n.mul(M,s.a)),s.b)}function b(M,y){let m=n.sqr(y),h=w(M);return n.eql(m,h)}if(!b(s.Gx,s.Gy))throw new Error("bad curve params: generator point");let E=n.mul(n.pow(s.a,Ln),Cf),_=n.mul(n.sqr(s.b),BigInt(27));if(n.is0(n.add(E,_)))throw new Error("bad curve params: a or b");function P(M,y,m=!1){if(!n.isValid(y)||m&&n.is0(y))throw new Error(`bad point coordinate ${M}`);return y}function N(M){if(!(M instanceof C))throw new Error("Weierstrass Point expected")}function $(M){if(!c||!c.basises)throw new Error("no endo");return Df(M,c.basises,o.ORDER)}let ie=As((M,y)=>{let{X:m,Y:h,Z:x}=M;if(n.eql(x,n.ONE))return{x:m,y:h};let S=M.is0();y==null&&(y=S?n.ONE:n.inv(x));let L=n.mul(m,y),A=n.mul(h,y),v=n.mul(x,y);if(S)return{x:n.ZERO,y:n.ZERO};if(!n.eql(v,n.ONE))throw new Error("invZ was invalid");return{x:L,y:A}}),re=As(M=>{if(M.is0()){if(e.allowInfinityPoint&&!n.is0(M.Y))return;throw new Error("bad point: ZERO")}let{x:y,y:m}=M.toAffine();if(!n.isValid(y)||!n.isValid(m))throw new Error("bad point: x or y not field elements");if(!b(y,m))throw new Error("bad point: equation left != right");if(!M.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function le(M,y,m,h,x){return m=new C(n.mul(m.X,M),m.Y,m.Z),y=Ar(h,y),m=Ar(x,m),y.add(m)}class C{static BASE=new C(s.Gx,s.Gy,n.ONE);static ZERO=new C(n.ZERO,n.ONE,n.ZERO);static Fp=n;static Fn=o;X;Y;Z;constructor(y,m,h){this.X=P("x",y),this.Y=P("y",m,!0),this.Z=P("z",h),Object.freeze(this)}static CURVE(){return s}static fromAffine(y){let{x:m,y:h}=y||{};if(!y||!n.isValid(m)||!n.isValid(h))throw new Error("invalid affine point");if(y instanceof C)throw new Error("projective point not allowed");return n.is0(m)&&n.is0(h)?C.ZERO:new C(m,h,n.ONE)}static fromBytes(y){let m=C.fromAffine(g(K(y,void 0,"point")));return m.assertValidity(),m}static fromHex(y){return C.fromBytes(St(y))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,m=!0){return ht.createCache(this,y),m||this.multiply(Ln),this}assertValidity(){re(this)}hasEvenY(){let{y}=this.toAffine();if(!n.isOdd)throw new Error("Field doesn't support isOdd");return!n.isOdd(y)}equals(y){N(y);let{X:m,Y:h,Z:x}=this,{X:S,Y:L,Z:A}=y,v=n.eql(n.mul(m,A),n.mul(S,x)),T=n.eql(n.mul(h,A),n.mul(L,x));return v&&T}negate(){return new C(this.X,n.neg(this.Y),this.Z)}double(){let{a:y,b:m}=s,h=n.mul(m,Ln),{X:x,Y:S,Z:L}=this,A=n.ZERO,v=n.ZERO,T=n.ZERO,D=n.mul(x,x),ne=n.mul(S,S),F=n.mul(L,L),O=n.mul(x,S);return O=n.add(O,O),T=n.mul(x,L),T=n.add(T,T),A=n.mul(y,T),v=n.mul(h,F),v=n.add(A,v),A=n.sub(ne,v),v=n.add(ne,v),v=n.mul(A,v),A=n.mul(O,A),T=n.mul(h,T),F=n.mul(y,F),O=n.sub(D,F),O=n.mul(y,O),O=n.add(O,T),T=n.add(D,D),D=n.add(T,D),D=n.add(D,F),D=n.mul(D,O),v=n.add(v,D),F=n.mul(S,L),F=n.add(F,F),D=n.mul(F,O),A=n.sub(A,D),T=n.mul(F,ne),T=n.add(T,T),T=n.add(T,T),new C(A,v,T)}add(y){N(y);let{X:m,Y:h,Z:x}=this,{X:S,Y:L,Z:A}=y,v=n.ZERO,T=n.ZERO,D=n.ZERO,ne=s.a,F=n.mul(s.b,Ln),O=n.mul(m,S),X=n.mul(h,L),fe=n.mul(x,A),Fe=n.add(m,h),Q=n.add(S,L);Fe=n.mul(Fe,Q),Q=n.add(O,X),Fe=n.sub(Fe,Q),Q=n.add(m,x);let pe=n.add(S,A);return Q=n.mul(Q,pe),pe=n.add(O,fe),Q=n.sub(Q,pe),pe=n.add(h,x),v=n.add(L,A),pe=n.mul(pe,v),v=n.add(X,fe),pe=n.sub(pe,v),D=n.mul(ne,Q),v=n.mul(F,fe),D=n.add(v,D),v=n.sub(X,D),D=n.add(X,D),T=n.mul(v,D),X=n.add(O,O),X=n.add(X,O),fe=n.mul(ne,fe),Q=n.mul(F,Q),X=n.add(X,fe),fe=n.sub(O,fe),fe=n.mul(ne,fe),Q=n.add(Q,fe),O=n.mul(X,Q),T=n.add(T,O),O=n.mul(pe,Q),v=n.mul(Fe,v),v=n.sub(v,O),O=n.mul(Fe,X),D=n.mul(pe,D),D=n.add(D,O),new C(v,T,D)}subtract(y){return this.add(y.negate())}is0(){return this.equals(C.ZERO)}multiply(y){let{endo:m}=e;if(!o.isValidNot0(y))throw new Error("invalid scalar: out of range");let h,x,S=L=>ht.cached(this,L,A=>Rs(C,A));if(m){let{k1neg:L,k1:A,k2neg:v,k2:T}=$(y),{p:D,f:ne}=S(A),{p:F,f:O}=S(T);x=ne.add(O),h=le(m.beta,D,F,L,v)}else{let{p:L,f:A}=S(y);h=L,x=A}return Rs(C,[h,x])[0]}multiplyUnsafe(y){let{endo:m}=e,h=this;if(!o.isValid(y))throw new Error("invalid scalar: out of range");if(y===et||h.is0())return C.ZERO;if(y===Xt)return h;if(ht.hasCache(this))return this.multiply(y);if(m){let{k1neg:x,k1:S,k2neg:L,k2:A}=$(y),{p1:v,p2:T}=ac(C,h,S,A);return le(m.beta,v,T,x,L)}else return ht.unsafe(h,y)}toAffine(y){return ie(this,y)}isTorsionFree(){let{isTorsionFree:y}=e;return i===Xt?!0:y?y(C,this):ht.unsafe(this,a).is0()}clearCofactor(){let{clearCofactor:y}=e;return i===Xt?this:y?y(C,this):this.multiplyUnsafe(i)}isSmallOrder(){return this.multiplyUnsafe(i).is0()}toBytes(y=!0){return wr(y,"isCompressed"),this.assertValidity(),p(C,this,y)}toHex(y=!0){return vt(this.toBytes(y))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}}let Ot=o.BITS,ht=new In(C,e.endo?Math.ceil(Ot/2):Ot);return C.BASE.precompute(8),C}function hc(r){return Uint8Array.of(r?2:3)}function pc(r,e){return{secretKey:e.BYTES,publicKey:1+r.BYTES,publicKeyUncompressed:1+2*r.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function _f(r,e={}){let{Fn:t}=r,n=e.randomBytes||xn,o=Object.assign(pc(r.Fp,t),{seed:Cs(t.ORDER)});function s(p){try{let g=t.fromBytes(p);return t.isValidNot0(g)}catch{return!1}}function i(p,g){let{publicKey:w,publicKeyUncompressed:b}=o;try{let E=p.length;return g===!0&&E!==w||g===!1&&E!==b?!1:!!r.fromBytes(p)}catch{return!1}}function a(p=n(o.seed)){return _s(K(p,o.seed,"seed"),t.ORDER)}function c(p,g=!0){return r.BASE.multiply(t.fromBytes(p)).toBytes(g)}function l(p){let{secretKey:g,publicKey:w,publicKeyUncompressed:b}=o;if(!Er(p)||"_lengths"in t&&t._lengths||g===w)return;let E=K(p,void 0,"key").length;return E===w||E===b}function u(p,g,w=!0){if(l(p)===!0)throw new Error("first arg must be private key");if(l(g)===!1)throw new Error("second arg must be public key");let b=t.fromBytes(p);return r.fromBytes(g).multiply(b).toBytes(w)}let f={isValidSecretKey:s,isValidPublicKey:i,randomSecretKey:a},d=uc(a,c);return Object.freeze({getPublicKey:c,getSharedSecret:u,keygen:d,Point:r,utils:f,lengths:o})}function mc(r,e,t={}){yn(e),Ir(t,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"}),t=Object.assign({},t);let n=t.randomBytes||xn,o=t.hmac||((m,h)=>Ns(e,m,h)),{Fp:s,Fn:i}=r,{ORDER:a,BITS:c}=i,{keygen:l,getPublicKey:u,getSharedSecret:f,utils:d,lengths:p}=_f(r,t),g={prehash:!0,lowS:typeof t.lowS=="boolean"?t.lowS:!0,format:"compact",extraEntropy:!1},w=a*fc<s.ORDER;function b(m){let h=a>>Xt;return m>h}function E(m,h){if(!i.isValidNot0(h))throw new Error(`invalid signature ${m}: out of range 1..Point.Fn.ORDER`);return h}function _(){if(w)throw new Error('"recovered" sig type is not supported for cofactor >2 curves')}function P(m,h){Us(h);let x=p.signature,S=h==="compact"?x:h==="recovered"?x+1:void 0;return K(m,S)}class N{r;s;recovery;constructor(h,x,S){if(this.r=E("r",h),this.s=E("s",x),S!=null){if(_(),![0,1,2,3].includes(S))throw new Error("invalid recovery id");this.recovery=S}Object.freeze(this)}static fromBytes(h,x=g.format){P(h,x);let S;if(x==="der"){let{r:T,s:D}=ft.toSig(K(h));return new N(T,D)}x==="recovered"&&(S=h[0],x="compact",h=h.subarray(1));let L=p.signature/2,A=h.subarray(0,L),v=h.subarray(L,L*2);return new N(i.fromBytes(A),i.fromBytes(v),S)}static fromHex(h,x){return this.fromBytes(St(h),x)}assertRecovery(){let{recovery:h}=this;if(h==null)throw new Error("invalid recovery id: must be present");return h}addRecoveryBit(h){return new N(this.r,this.s,h)}recoverPublicKey(h){let{r:x,s:S}=this,L=this.assertRecovery(),A=L===2||L===3?x+a:x;if(!s.isValid(A))throw new Error("invalid recovery id: sig.r+curve.n != R.x");let v=s.toBytes(A),T=r.fromBytes(Ve(hc((L&1)===0),v)),D=i.inv(A),ne=ie(K(h,void 0,"msgHash")),F=i.create(-ne*D),O=i.create(S*D),X=r.BASE.multiplyUnsafe(F).add(T.multiplyUnsafe(O));if(X.is0())throw new Error("invalid recovery: point at infinify");return X.assertValidity(),X}hasHighS(){return b(this.s)}toBytes(h=g.format){if(Us(h),h==="der")return St(ft.hexFromSig(this));let{r:x,s:S}=this,L=i.toBytes(x),A=i.toBytes(S);return h==="recovered"?(_(),Ve(Uint8Array.of(this.assertRecovery()),L,A)):Ve(L,A)}toHex(h){return vt(this.toBytes(h))}}let $=t.bits2int||function(h){if(h.length>8192)throw new Error("input is too large");let x=qt(h),S=h.length*8-c;return S>0?x>>BigInt(S):x},ie=t.bits2int_modN||function(h){return i.create($(h))},re=Sr(c);function le(m){return Fa("num < 2^"+c,m,et,re),i.toBytes(m)}function C(m,h){return K(m,void 0,"message"),h?K(e(m),void 0,"prehashed message"):m}function Ot(m,h,x){let{lowS:S,prehash:L,extraEntropy:A}=ks(x,g);m=C(m,L);let v=ie(m),T=i.fromBytes(h);if(!i.isValidNot0(T))throw new Error("invalid private key");let D=[le(T),le(v)];if(A!=null&&A!==!1){let X=A===!0?n(p.secretKey):A;D.push(K(X,void 0,"extraEntropy"))}let ne=Ve(...D),F=v;function O(X){let fe=$(X);if(!i.isValidNot0(fe))return;let Fe=i.inv(fe),Q=r.BASE.multiply(fe).toAffine(),pe=i.create(Q.x);if(pe===et)return;let Pr=i.create(Fe*i.create(F+pe*T));if(Pr===et)return;let Ti=(Q.x===pe?0:2)|Number(Q.y&Xt),Di=Pr;return S&&b(Pr)&&(Di=i.neg(Pr),Ti^=1),new N(pe,Di,w?void 0:Ti)}return{seed:ne,k2sig:O}}function ht(m,h,x={}){let{seed:S,k2sig:L}=Ot(m,h,x);return za(e.outputLen,i.BYTES,o)(S,L).toBytes(x.format)}function M(m,h,x,S={}){let{lowS:L,prehash:A,format:v}=ks(S,g);if(x=K(x,void 0,"publicKey"),h=C(h,A),!Er(m)){let T=m instanceof N?", use sig.toBytes()":"";throw new Error("verify expects Uint8Array signature"+T)}P(m,v);try{let T=N.fromBytes(m,v),D=r.fromBytes(x);if(L&&T.hasHighS())return!1;let{r:ne,s:F}=T,O=ie(h),X=i.inv(F),fe=i.create(O*X),Fe=i.create(ne*X),Q=r.BASE.multiplyUnsafe(fe).add(D.multiplyUnsafe(Fe));return Q.is0()?!1:i.create(Q.x)===ne}catch{return!1}}function y(m,h,x={}){let{prehash:S}=ks(x,g);return h=C(h,S),N.fromBytes(m,"recovered").recoverPublicKey(h).toBytes()}return Object.freeze({keygen:l,getPublicKey:u,getSharedSecret:f,utils:d,lengths:p,Point:r,sign:ht,verify:M,recoverPublicKey:y,Signature:N,hash:e})}var Hs={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},Bf={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]};var bc=BigInt(2);function Of(r){let e=Hs.p,t=BigInt(3),n=BigInt(6),o=BigInt(11),s=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),l=r*r*r%e,u=l*l*r%e,f=Be(u,t,e)*u%e,d=Be(f,t,e)*u%e,p=Be(d,bc,e)*l%e,g=Be(p,o,e)*p%e,w=Be(g,s,e)*g%e,b=Be(w,a,e)*w%e,E=Be(b,c,e)*b%e,_=Be(E,a,e)*w%e,P=Be(_,t,e)*u%e,N=Be(P,i,e)*g%e,$=Be(N,n,e)*l%e,ie=Be($,bc,e);if(!Ks.eql(Ks.sqr(ie),r))throw new Error("Cannot find square root");return ie}var Ks=Yt(Hs.p,{sqrt:Of}),Pf=dc(Hs,{Fp:Ks,endo:Bf}),Lr=mc(Pf,$a);var Tn=class extends Error{constructor(e="An error occurred while verifying a message"){super(e),this.name="VerificationError"}};function gc(r,e,t,n){n?.signal?.throwIfAborted();let o=yc.default.createHash("sha256");if(t instanceof Uint8Array)o.update(t);else for(let i of t)o.update(i);let s=o.digest();try{return Lr.verify(e,s,r,{prehash:!1,format:"der"})}catch(i){throw new Tn(String(i))}}var Dn=class{type="secp256k1";raw;_key;constructor(e){this._key=Ec(e),this.raw=xc(this._key)}toMultihash(){return Ke.digest(ut(this))}toCID(){return se.createV1(114,this.toMultihash())}toString(){return J.encode(this.toMultihash().bytes).substring(1)}equals(e){return e==null||!(e.raw instanceof Uint8Array)?!1:Ce(this.raw,e.raw)}verify(e,t,n){return gc(this._key,t,e,n)}};function wc(r){return new Dn(r)}function xc(r){return Lr.Point.fromBytes(r).toBytes()}function Ec(r){try{return Lr.Point.fromBytes(r),r}catch(e){throw new nn(String(e))}}function vc(r){let{Type:e,Data:t}=xr.decode(r.digest),n=t??new Uint8Array;switch(e){case _e.Ed25519:return Pa(n);case _e.secp256k1:return wc(n);case _e.ECDSA:return Ta(n);default:throw new mr}}function ut(r){return xr.encode({Type:_e[r.type],Data:r.raw})}var Sc=Symbol.for("nodejs.util.inspect.custom"),Rf=114,Tr=class{type;multihash;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[cs]=!0;toString(){return this.string==null&&(this.string=J.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return se.createV1(Rf,this.multihash)}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return Ce(this.multihash.bytes,e);if(typeof e=="string")return this.toString()===e;if(e?.toMultihash()?.bytes!=null)return Ce(this.multihash.bytes,e.toMultihash().bytes);throw new Error("not valid Id")}[Sc](){return`PeerId(${this.toString()})`}},Cn=class extends Tr{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},_n=class extends Tr{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.publicKey}},Bn=class extends Tr{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.publicKey}},Nf=2336,On=class{type="url";multihash;publicKey;url;constructor(e){this.url=e.toString(),this.multihash=Ke.digest(ye(this.url))}[Sc](){return`PeerId(${this.url})`}[cs]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return se.createV1(Nf,this.toMultihash())}toJSON(){return this.toString()}equals(e){return e==null?!1:(e instanceof Uint8Array&&(e=te(e)),e.toString()===this.toString())}};function Qt(r){if(Uf(r))return new Cn({multihash:r});if(kf(r))try{let e=vc(r);if(e.type==="Ed25519")return new _n({multihash:r,publicKey:e});if(e.type==="secp256k1")return new Bn({multihash:r,publicKey:e})}catch{let t=te(r.digest);return new On(new URL(t))}throw new sn("Supplied PeerID Multihash is invalid")}function kf(r){return r.code===Ke.code}function Uf(r){return r.code===Xo.code}var su=Te(oe("net"),1);var he=class extends Error{static name="InvalidMultiaddrError";name="InvalidMultiaddrError"},tt=class extends Error{static name="ValidationError";name="ValidationError"},Pn=class extends Error{static name="InvalidParametersError";name="InvalidParametersError"},Rn=class extends Error{static name="UnknownProtocolError";name="UnknownProtocolError"};var Oe=oe("node:net");function Vs(r){return e=>te(e,r)}function Gs(r){return e=>ye(e,r)}function jt(r){return new DataView(r.buffer).getUint16(r.byteOffset).toString()}function Lt(r){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,typeof r=="string"?parseInt(r):r),new Uint8Array(e)}function Ic(r){let e=r.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==16)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion address.`);let t=ye(e[0],"base32"),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=Lt(n);return We([t,o],t.length+o.length)}function Ac(r){let e=r.split(":");if(e.length!==2)throw new Error(`failed to parse onion addr: ["'${e.join('", "')}'"]' does not contain a port number`);if(e[0].length!==56)throw new Error(`failed to parse onion addr: ${e[0]} not a Tor onion3 address.`);let t=ze.decode(`b${e[0]}`),n=parseInt(e[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let o=Lt(n);return We([t,o],t.length+o.length)}function Fs(r){let e=r.subarray(0,r.length-2),t=r.subarray(r.length-2),n=te(e,"base32"),o=jt(t);return`${n}:${o}`}var zs=function(r){r=r.toString().trim();let e=new Uint8Array(4);return r.split(/\./g).forEach((t,n)=>{let o=parseInt(t,10);if(isNaN(o)||o<0||o>255)throw new he("Invalid byte value in IP address");e[n]=o}),e},Lc=function(r){let e=0;r=r.toString().trim();let t=r.split(":",8),n;for(n=0;n<t.length;n++){let s=(0,Oe.isIPv4)(t[n]),i;s&&(i=zs(t[n]),t[n]=te(i.subarray(0,2),"base16")),i!=null&&++n<8&&t.splice(n,0,te(i.subarray(2,4),"base16"))}if(t[0]==="")for(;t.length<8;)t.unshift("0");else if(t[t.length-1]==="")for(;t.length<8;)t.push("0");else if(t.length<8){for(n=0;n<t.length&&t[n]!=="";n++);let s=[n,1];for(n=9-t.length;n>0;n--)s.push("0");t.splice.apply(t,s)}let o=new Uint8Array(e+16);for(n=0;n<t.length;n++){t[n]===""&&(t[n]="0");let s=parseInt(t[n],16);if(isNaN(s)||s<0||s>65535)throw new he("Invalid byte value in IP address");o[e++]=s>>8&255,o[e++]=s&255}return o},Tc=function(r){if(r.byteLength!==4)throw new he("IPv4 address was incorrect length");let e=[];for(let t=0;t<r.byteLength;t++)e.push(r[t]);return e.join(".")},Dc=function(r){if(r.byteLength!==16)throw new he("IPv6 address was incorrect length");let e=[];for(let n=0;n<r.byteLength;n+=2){let o=r[n],s=r[n+1],i=`${o.toString(16).padStart(2,"0")}${s.toString(16).padStart(2,"0")}`;e.push(i)}let t=e.join(":");try{let n=new URL(`http://[${t}]`);return n.hostname.substring(1,n.hostname.length-1)}catch{throw new he(`Invalid IPv6 address "${t}"`)}};function Cc(r){try{let e=new URL(`http://[${r}]`);return e.hostname.substring(1,e.hostname.length-1)}catch{throw new he(`Invalid IPv6 address "${r}"`)}}var $s=Object.values(ur).map(r=>r.decoder),Mf=(function(){let r=$s[0].or($s[1]);return $s.slice(2).forEach(e=>r=r.or(e)),r})();function _c(r){return Mf.decode(r)}function Bc(r){return e=>r.encoder.encode(e)}function Kf(r){if(parseInt(r).toString()!==r)throw new tt("Value must be an integer")}function Hf(r){if(r<0)throw new tt("Value must be a positive integer, or zero")}function $f(r){return e=>{if(e>r)throw new tt(`Value must be smaller than or equal to ${r}`)}}function Vf(...r){return e=>{for(let t of r)t(e)}}var Dr=Vf(Kf,Hf,$f(65535));var ce=-1,Ws=class{protocolsByCode=new Map;protocolsByName=new Map;getProtocol(e){let t;if(typeof e=="string"?t=this.protocolsByName.get(e):t=this.protocolsByCode.get(e),t==null)throw new Rn(`Protocol ${e} was unknown`);return t}addProtocol(e){this.protocolsByCode.set(e.code,e),this.protocolsByName.set(e.name,e),e.aliases?.forEach(t=>{this.protocolsByName.set(t,e)})}removeProtocol(e){let t=this.protocolsByCode.get(e);t!=null&&(this.protocolsByCode.delete(t.code),this.protocolsByName.delete(t.name),t.aliases?.forEach(n=>{this.protocolsByName.delete(n)}))}},rt=new Ws,nd=[{code:4,name:"ip4",size:32,valueToBytes:zs,bytesToValue:Tc,validate:r=>{if(!(0,Oe.isIPv4)(r))throw new tt(`Invalid IPv4 address "${r}"`)}},{code:6,name:"tcp",size:16,valueToBytes:Lt,bytesToValue:jt,validate:Dr},{code:273,name:"udp",size:16,valueToBytes:Lt,bytesToValue:jt,validate:Dr},{code:33,name:"dccp",size:16,valueToBytes:Lt,bytesToValue:jt,validate:Dr},{code:41,name:"ip6",size:128,valueToBytes:Lc,bytesToValue:Dc,stringToValue:Cc,validate:r=>{if(!(0,Oe.isIPv6)(r))throw new tt(`Invalid IPv6 address "${r}"`)}},{code:42,name:"ip6zone",size:ce},{code:43,name:"ipcidr",size:8,bytesToValue:Vs("base10"),valueToBytes:Gs("base10")},{code:53,name:"dns",size:ce},{code:54,name:"dns4",size:ce},{code:55,name:"dns6",size:ce},{code:56,name:"dnsaddr",size:ce},{code:132,name:"sctp",size:16,valueToBytes:Lt,bytesToValue:jt,validate:Dr},{code:301,name:"udt"},{code:302,name:"utp"},{code:400,name:"unix",size:ce,stringToValue:r=>decodeURIComponent(r),valueToString:r=>encodeURIComponent(r)},{code:421,name:"p2p",aliases:["ipfs"],size:ce,bytesToValue:Vs("base58btc"),valueToBytes:r=>r.startsWith("Q")||r.startsWith("1")?Gs("base58btc")(r):se.parse(r).multihash.bytes},{code:444,name:"onion",size:96,bytesToValue:Fs,valueToBytes:Ic},{code:445,name:"onion3",size:296,bytesToValue:Fs,valueToBytes:Ac},{code:446,name:"garlic64",size:ce},{code:447,name:"garlic32",size:ce},{code:448,name:"tls"},{code:449,name:"sni",size:ce},{code:454,name:"noise"},{code:460,name:"quic"},{code:461,name:"quic-v1"},{code:465,name:"webtransport"},{code:466,name:"certhash",size:ce,bytesToValue:Bc($o),valueToBytes:_c},{code:480,name:"http"},{code:481,name:"http-path",size:ce,stringToValue:r=>`/${decodeURIComponent(r)}`,valueToString:r=>encodeURIComponent(r.substring(1))},{code:443,name:"https"},{code:477,name:"ws"},{code:478,name:"wss"},{code:479,name:"p2p-websocket-star"},{code:277,name:"p2p-stardust"},{code:275,name:"p2p-webrtc-star"},{code:276,name:"p2p-webrtc-direct"},{code:280,name:"webrtc-direct"},{code:281,name:"webrtc"},{code:290,name:"p2p-circuit"},{code:777,name:"memory",size:ce}];nd.forEach(r=>{rt.addProtocol(r)});function Oc(r){let e=[],t=0;for(;t<r.length;){let n=mt(r,t),o=rt.getProtocol(n),s=ae(n),i=od(o,r,t+s),a=0;i>0&&o.size===ce&&(a=ae(i));let c=s+a+i,l={code:n,name:o.name,bytes:r.subarray(t,t+c)};if(i>0){let u=t+s+a,f=r.subarray(u,u+i);l.value=o.bytesToValue?.(f)??te(f)}e.push(l),t+=c}return e}function Pc(r){let e=0,t=[];for(let n of r){if(n.bytes==null){let o=rt.getProtocol(n.code),s=ae(n.code),i,a=0,c=0;n.value!=null&&(i=o.valueToBytes?.(n.value)??ye(n.value),a=i.byteLength,o.size===ce&&(c=ae(a)));let l=new Uint8Array(s+c+a),u=0;Pt(n.code,l,u),u+=s,i!=null&&(o.size===ce&&(Pt(a,l,u),u+=c),l.set(i,u)),n.bytes=l}t.push(n.bytes),e+=n.bytes.byteLength}return We(t,e)}function Rc(r){if(r.charAt(0)!=="/")throw new he('String multiaddr must start with "/"');let e=[],t="protocol",n="",o="";for(let s=1;s<r.length;s++){let i=r.charAt(s);i!=="/"&&(t==="protocol"?o+=r.charAt(s):n+=r.charAt(s));let a=s===r.length-1;if(i==="/"||a){let c=rt.getProtocol(o);if(t==="protocol"){if(c.size==null||c.size===0){e.push({code:c.code,name:c.name}),n="",o="",t="protocol";continue}else if(a)throw new he(`Component ${o} was missing value`);t="value"}else if(t==="value"){let l={code:c.code,name:c.name};if(c.size!=null&&c.size!==0){if(n==="")throw new he(`Component ${o} was missing value`);l.value=c.stringToValue?.(n)??n}e.push(l),n="",o="",t="protocol"}}}if(o!==""&&n!=="")throw new he("Incomplete multiaddr");return e}function Nc(r){return`/${r.flatMap(e=>{if(e.value==null)return e.name;let t=rt.getProtocol(e.code);if(t==null)throw new he(`Unknown protocol code ${e.code}`);return[e.name,t.valueToString?.(e.value)??e.value]}).join("/")}`}function od(r,e,t){return r.size==null||r.size===0?0:r.size>0?r.size/8:mt(e,t)}var sd=Symbol.for("nodejs.util.inspect.custom"),si=Symbol.for("@multiformats/multiaddr");function id(r){if(r==null&&(r="/"),kc(r))return r.getComponents();if(r instanceof Uint8Array)return Oc(r);if(typeof r=="string")return r=r.replace(/\/(\/)+/,"/").replace(/(\/)+$/,""),r===""&&(r="/"),Rc(r);if(Array.isArray(r))return r;throw new he("Must be a string, Uint8Array, Component[], or another Multiaddr")}var Vn=class r{[si]=!0;#e;#t;#r;constructor(e="/",t={}){this.#e=id(e),t.validate!==!1&&ad(this)}get bytes(){return this.#r==null&&(this.#r=Pc(this.#e)),this.#r}toString(){return this.#t==null&&(this.#t=Nc(this.#e)),this.#t}toJSON(){return this.toString()}getComponents(){return[...this.#e.map(e=>({...e}))]}encapsulate(e){let t=new r(e);return new r([...this.#e,...t.getComponents()],{validate:!1})}decapsulate(e){let t=e.toString(),n=this.toString(),o=n.lastIndexOf(t);if(o<0)throw new Pn(`Address ${this.toString()} does not contain subaddress: ${t}`);return new r(n.slice(0,o),{validate:!1})}decapsulateCode(e){let t;for(let n=this.#e.length-1;n>-1;n--)if(this.#e[n].code===e){t=n;break}return new r(this.#e.slice(0,t),{validate:!1})}equals(e){return Ce(this.bytes,e.bytes)}[sd](){return`Multiaddr(${this.toString()})`}};function ad(r){r.getComponents().forEach(e=>{let t=rt.getProtocol(e.code);e.value!=null&&t.validate?.(e.value)})}function kc(r){return!!r?.[si]}function Ye(r){return new Vn(r)}var V=r=>({match:e=>{let t=e[0];return t==null||t.code!==r||t.value!=null?!1:e.slice(1)}}),I=(r,e)=>({match:t=>{let n=t[0];return n?.code!==r||n.value==null||e!=null&&n.value!==e?!1:t.slice(1)}}),Uc=r=>({match:e=>r.match(e)===!1?e:!1}),B=r=>({match:e=>{let t=r.match(e);return t===!1?e:t}}),xe=(...r)=>({match:e=>{let t;for(let n of r){let o=n.match(e);o!==!1&&(t==null||o.length<t.length)&&(t=o)}return t??!1}}),U=(...r)=>({match:e=>{for(let t of r){let n=t.match(e);if(n===!1)return!1;e=n}return e}});function G(...r){function e(o){if(o==null)return!1;let s=o.getComponents();for(let i of r){let a=i.match(s);if(a===!1)return!1;s=a}return s}function t(o){return e(o)!==!1}function n(o){let s=e(o);return s===!1?!1:s.length===0}return{matchers:r,matches:t,exactMatch:n}}var cd=I(421),Ry=G(cd),Fn=I(54),zn=I(55),Wn=I(56),ai=I(53),Ny=G(Fn,B(I(421))),ky=G(zn,B(I(421))),Uy=G(Wn,B(I(421))),My=G(xe(ai,Wn,Fn,zn),B(I(421))),Mc=U(I(4),B(I(43))),Kc=U(B(I(42)),I(41),B(I(43))),ci=xe(Mc,Kc),Ct=xe(ci,ai,Fn,zn,Wn),Ky=G(xe(ci,U(xe(ai,Wn,Fn,zn),B(I(421))))),Hy=G(Mc),$y=G(Kc),Vy=G(ci),ui=U(Ct,I(6)),_r=U(Ct,I(273)),Hc=G(U(ui,B(I(421)))),Gy=G(_r),li=U(_r,V(460),B(I(421))),qn=U(_r,V(461),B(I(421))),ud=xe(li,qn),Fy=G(li),zy=G(qn),ii=xe(Ct,ui,_r,li,qn),$c=xe(U(ii,V(477),B(I(421)))),Wy=G($c),Vc=xe(U(ii,V(478),B(I(421))),U(ii,V(448),B(I(449)),V(477),B(I(421)))),qy=G(Vc),Gc=U(_r,V(280),B(I(466)),B(I(466)),B(I(421))),Yy=G(Gc),Fc=U(qn,V(465),B(I(466)),B(I(466)),B(I(421))),Zy=G(Fc),Gn=xe($c,Vc,U(ui,B(I(421))),U(ud,B(I(421))),U(Ct,B(I(421))),Gc,Fc,I(421)),Xy=G(Gn),ld=U(B(Gn),V(290),Uc(V(281)),B(I(421))),Qy=G(ld),fd=xe(U(Gn,V(290),V(281),B(I(421))),U(Gn,V(281),B(I(421))),U(V(281),B(I(421)))),jy=G(fd),dd=xe(U(Ct,I(6),V(480),B(I(421))),U(Ct,V(480),B(I(421)))),Jy=G(dd),hd=U(Ct,xe(U(I(6,"443"),V(480)),U(I(6),V(443)),U(I(6),V(448),V(480)),U(V(448),V(480)),V(448),V(443)),B(I(421))),eg=G(hd),pd=xe(U(I(777),B(I(421)))),tg=G(pd),md=xe(U(I(400),B(I(421)))),Yn=G(md);var Zn=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};var ou=Te(oe("node:net"),1);function Xn(r){let e=r.getComponents(),t={},n=0;if(e[n]?.name==="ip6zone"&&(t.zone=`${e[n].value}`,n++),e[n].name==="ip4"||e[n].name==="ip6"||e[n].name==="dns"||e[n].name==="dns4"||e[n].name==="dns6"?(t.type=e[n].name,t.host=e[n].value,n++):e[n].name==="dnsaddr"&&(t.type=e[n].name,t.host=`_dnsaddr.${e[n].value}`,n++),(e[n]?.name==="tcp"||e[n]?.name==="udp")&&(t.protocol=e[n].name==="tcp"?"tcp":"udp",t.port=parseInt(`${e[n].value}`),n++),e[n]?.name==="ipcidr"&&(t.type==="ip4"?t.cidr=parseInt(`${e[n].value}`):t.type==="ip6"&&(t.cidr=`${e[n].value}`),n++),t.type==null||t.host==null)throw new Z(`Multiaddr ${r} was not an IPv4, IPv6, DNS, DNS4, DNS6 or DNSADDR address`);return e[n]?.name==="tls"&&e[n+1]?.name==="sni"&&(t.sni=e[n+1].value,n+=2),t}function nt(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var Qn=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||(e-1&e)!==0)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(e),this.mask=e-1,this.top=0,this.btm=0,this.next=null}push(e){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=e,this.top=this.top+1&this.mask,!0)}shift(){let e=this.buffer[this.btm];if(e!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,e}isEmpty(){return this.buffer[this.btm]===void 0}},rr=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new Qn(this.hwm),this.tail=this.head,this.size=0}calculateSize(e){return e?.byteLength!=null?e.byteLength:1}push(e){if(e?.value!=null&&(this.size+=this.calculateSize(e.value)),!this.head.push(e)){let t=this.head;this.head=t.next=new Qn(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let t=this.tail.next;this.tail.next=null,this.tail=t,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var fi=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function dt(r={}){return bd(t=>{let n=t.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function bd(r,e){e=e??{};let t=e.onEnd,n=new rr,o,s,i,a=nt(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((b,E)=>{s=_=>{s=null,n.push(_);try{b(r(n))}catch(P){E(P)}return o}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=nt()})}},l=b=>s!=null?s(b):(n.push(b),o),u=b=>(n=new rr,s!=null?s({error:b}):(n.push({error:b}),o)),f=b=>{if(i)return o;if(e?.objectMode!==!0&&b?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return l({done:!1,value:b})},d=b=>i?o:(i=!0,b!=null?u(b):l({done:!0})),p=()=>(n=new rr,d(),{done:!0}),g=b=>(d(b),{done:!0});if(o={[Symbol.asyncIterator](){return this},next:c,return:p,throw:g,push:f,end:d,get readableLength(){return n.size},onEmpty:async b=>{let E=b?.signal;if(E?.throwIfAborted(),n.isEmpty())return;let _,P;E!=null&&(_=new Promise((N,$)=>{P=()=>{$(new fi)},E.addEventListener("abort",P)}));try{await Promise.race([a.promise,_])}finally{P!=null&&E!=null&&E?.removeEventListener("abort",P)}}},t==null)return o;let w=o;return o={[Symbol.asyncIterator](){return this},next(){return w.next()},throw(b){return w.throw(b),t!=null&&(t(b),t=void 0),{done:!0}},return(){return w.return(),t!=null&&(t(),t=void 0),{done:!0}},push:f,end(b){return w.end(b),t!=null&&(t(b),t=void 0),o},get readableLength(){return w.readableLength},onEmpty:b=>w.onEmpty(b)},o}var di=class r extends Error{name="TimeoutError";constructor(e,t){super(e,t),Error.captureStackTrace?.(this,r)}},zc=r=>r.reason??new DOMException("This operation was aborted.","AbortError");function hi(r,e){let{milliseconds:t,fallback:n,message:o,customTimers:s={setTimeout,clearTimeout},signal:i}=e,a,c,u=new Promise((f,d)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(i?.aborted){d(zc(i));return}if(i&&(c=()=>{d(zc(i))},i.addEventListener("abort",c,{once:!0})),r.then(f,d),t===Number.POSITIVE_INFINITY)return;let p=new di;a=s.setTimeout.call(void 0,()=>{if(n){try{f(n())}catch(g){d(g)}return}typeof r.cancel=="function"&&r.cancel(),o===!1?f():o instanceof Error?d(o):(p.message=o??`Promise timed out after ${t} milliseconds`,d(p))},t)}).finally(()=>{u.clear(),c&&i&&i.removeEventListener("abort",c)});return u.clear=()=>{s.clearTimeout.call(void 0,a),a=void 0},u}var yd=r=>{let e=r.addEventListener||r.on||r.addListener,t=r.removeEventListener||r.off||r.removeListener;if(!e||!t)throw new TypeError("Emitter is not compatible");return{addListener:e.bind(r),removeListener:t.bind(r)}};function gd(r,e,t){let n,o=new Promise((s,i)=>{if(t={rejectionEvents:["error"],multiArgs:!1,rejectionMultiArgs:!1,resolveImmediately:!1,...t},!(t.count>=0&&(t.count===Number.POSITIVE_INFINITY||Number.isInteger(t.count))))throw new TypeError("The `count` option should be at least 0 or more");t.signal?.throwIfAborted();let a=[e].flat(),c=[],{addListener:l,removeListener:u}=yd(r),f=async(...p)=>{let g=t.multiArgs?p:p[0];if(t.filter)try{if(!await t.filter(g))return}catch(w){n(),i(w);return}c.push(g),t.count===c.length&&(n(),s(c))},d=(...p)=>{n(),i(t.rejectionMultiArgs?p:p[0])};n=()=>{for(let p of a)u(p,f);for(let p of t.rejectionEvents)a.includes(p)||u(p,d)};for(let p of a)l(p,f);for(let p of t.rejectionEvents)a.includes(p)||l(p,d);t.signal&&t.signal.addEventListener("abort",()=>{d(t.signal.reason)},{once:!0}),t.resolveImmediately&&s(c)});if(o.cancel=n,typeof t.timeout=="number"){let s=hi(o,{milliseconds:t.timeout});return s.cancel=()=>{n(),s.clear()},s}return o}function Pe(r,e,t){typeof t=="function"&&(t={filter:t}),t={...t,count:1,resolveImmediately:!1};let n=gd(r,e,t),o=n.then(s=>s[0]);return o.cancel=n.cancel,o}var _t=class extends Error{static name="UnexpectedEOFError";name="UnexpectedEOFError"};var jn=class extends Error{static name="StreamClosedError";name="StreamClosedError"};function xd(r){return r.reason}async function nr(r,e,t){if(e==null)return r;let n=t?.translateError??xd;if(e.aborted)return r.catch(()=>{}),Promise.reject(n(e));let o;try{return await Promise.race([r,new Promise((s,i)=>{o=()=>{i(n(e))},e.addEventListener("abort",o)})])}finally{o!=null&&e.removeEventListener("abort",o)}}var Ed=Math.pow(2,20)*4,Jn=class extends Ft{status;timeline;inactivityTimeout;maxReadBufferLength;maxWriteBufferLength;log;direction;maxMessageSize;readStatus;writeStatus;remoteReadStatus;remoteWriteStatus;writableNeedsDrain;readBuffer;writeBuffer;sendingData;onDrainPromise;constructor(e){super(),this.status="open",this.log=e.log,this.direction=e.direction??"outbound",this.inactivityTimeout=e.inactivityTimeout??12e4,this.maxReadBufferLength=e.maxReadBufferLength??Ed,this.maxWriteBufferLength=e.maxWriteBufferLength,this.maxMessageSize=e.maxMessageSize,this.readBuffer=new H,this.writeBuffer=new H,this.readStatus="readable",this.remoteReadStatus="readable",this.writeStatus="writable",this.remoteWriteStatus="writable",this.sendingData=!1,this.writableNeedsDrain=!1,this.timeline={open:Date.now()},this.processSendQueue=this.processSendQueue.bind(this);let t=()=>{this.writableNeedsDrain&&(this.log.trace("drain event received, continue sending data"),this.writableNeedsDrain=!1,this.processSendQueue()),this.onDrainPromise?.resolve()};this.addEventListener("drain",t);let n=o=>{this.onDrainPromise?.reject(o.error??new jn)};this.addEventListener("close",n)}get readBufferLength(){return this.readBuffer.byteLength}get writeBufferLength(){return this.writeBuffer.byteLength}async onDrain(e){return this.writableNeedsDrain!==!0?Promise.resolve():(this.onDrainPromise==null&&(this.onDrainPromise=Promise.withResolvers()),nr(this.onDrainPromise.promise,e?.signal))}async*[Symbol.asyncIterator](){if(this.readStatus!=="readable"&&this.readStatus!=="paused")return;let e=dt(),t=s=>{e.push(s.data)};this.addEventListener("message",t);let n=s=>{e.end(s.error)};this.addEventListener("close",n);let o=()=>{e.end()};this.addEventListener("remoteCloseWrite",o);try{yield*e}finally{this.removeEventListener("message",t),this.removeEventListener("close",n),this.removeEventListener("remoteCloseWrite",o)}}isReadable(){return this.status==="open"}send(e){if(this.writeStatus==="closed"||this.writeStatus==="closing")throw new ct(`Cannot write to a stream that is ${this.writeStatus}`);return this.log.trace("append %d bytes to write buffer",e.byteLength),this.writeBuffer.append(e),this.processSendQueue()}abort(e){if(!(this.status==="aborted"||this.status==="reset"||this.status==="closed")){this.log.error("abort with error - %e",e),this.status="aborted",this.readBuffer.byteLength>0&&this.readBuffer.consume(this.readBuffer.byteLength),this.writeBuffer.byteLength>0&&(this.writeBuffer.consume(this.writeBuffer.byteLength),this.safeDispatchEvent("idle")),this.writeStatus="closed",this.remoteWriteStatus="closed",this.readStatus="closed",this.remoteReadStatus="closed",this.timeline.close=Date.now();try{this.sendReset(e)}catch(t){this.log("failed to send reset to remote - %e",t)}this.dispatchEvent(new ln(e))}}pause(){if(this.readStatus==="closed"||this.readStatus==="closing")throw new ct("Cannot pause a stream that is closing/closed");this.readStatus!=="paused"&&(this.readStatus="paused",this.sendPause())}resume(){if(this.readStatus==="closed"||this.readStatus==="closing")throw new ct("Cannot resume a stream that is closing/closed");this.readStatus!=="readable"&&(this.readStatus="readable",this.dispatchReadBuffer(),this.sendResume())}push(e){if(this.readStatus==="closed"||this.readStatus==="closing")throw new ct(`Cannot push data onto a stream that is ${this.readStatus}`);if(e.byteLength!==0){if(this.readBuffer.append(e),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}unshift(e){if(this.readStatus==="closed"||this.readStatus==="closing")throw new ct(`Cannot push data onto a stream that is ${this.readStatus}`);if(e.byteLength!==0){if(this.readBuffer.prepend(e),this.readStatus==="paused"||this.listenerCount("message")===0){this.checkReadBufferLength();return}setTimeout(()=>{this.dispatchReadBuffer()},0)}}onData(e){if(e.byteLength!==0){if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("ignoring data - read status %s",this.readStatus);return}this.readBuffer.append(e),this.dispatchReadBuffer()}}addEventListener(...e){super.addEventListener.apply(this,e),e[0]==="message"&&this.readBuffer.byteLength>0&&queueMicrotask(()=>{this.dispatchReadBuffer()})}onRemoteReset(){this.log("remote reset"),this.status="reset",this.writeStatus="closed",this.remoteWriteStatus="closed",this.remoteReadStatus="closed",this.timeline.close=Date.now(),this.readBuffer.byteLength===0&&(this.readStatus="closed");let e=new on;this.dispatchEvent(new fn(e))}onTransportClosed(e){this.log("transport closed"),this.readStatus==="readable"&&this.readBuffer.byteLength===0&&(this.log("close readable end after transport closed and read buffer is empty"),this.readStatus="closed"),this.remoteReadStatus!=="closed"&&(this.remoteReadStatus="closed"),this.remoteWriteStatus!=="closed"&&(this.remoteWriteStatus="closed"),this.writeStatus!=="closed"&&(this.writeStatus="closed"),e!=null?this.abort(e):(this.status==="open"||this.status==="closing")&&(this.timeline.close=Date.now(),this.status="closed",this.writeStatus="closed",this.remoteWriteStatus="closed",this.remoteReadStatus="closed",this.dispatchEvent(new Gt))}onRemoteCloseWrite(){this.remoteWriteStatus!=="closed"&&(this.log.trace("on remote close write"),this.remoteWriteStatus="closed",this.safeDispatchEvent("remoteCloseWrite"),this.writeStatus==="closed"&&this.onTransportClosed())}onRemoteCloseRead(){this.log.trace("on remote close read"),this.remoteReadStatus="closed",this.writeBuffer.byteLength>0&&(this.writeBuffer.consume(this.writeBuffer.byteLength),this.safeDispatchEvent("idle"))}processSendQueue(){if(this.writableNeedsDrain)return this.log.trace("not processing send queue as drain is required"),this.checkWriteBufferLength(),!1;if(this.writeBuffer.byteLength===0)return this.log.trace("not processing send queue as no bytes to send"),!0;if(this.sendingData)return this.log.trace("not processing send queue as already sending data"),!0;this.sendingData=!0,this.log.trace("processing send queue with %d queued bytes",this.writeBuffer.byteLength);try{let e=!0,t=this.writeBuffer.byteLength,n=0;for(;this.writeBuffer.byteLength>0;){let o=Math.min(this.maxMessageSize??this.writeBuffer.byteLength,this.writeBuffer.byteLength);if(o===0){e=!1;break}let s=this.writeBuffer.sublist(0,o),i=new H(s);this.writeBuffer.consume(s.byteLength);let a=this.sendData(s);if(e=a.canSendMore,n+=a.sentBytes,a.sentBytes!==i.byteLength&&(i.consume(a.sentBytes),this.writeBuffer.prepend(i)),!e)break}return e||(this.log.trace("sent %d/%d bytes, pausing sending because underlying stream is full, %d bytes left in the write buffer",n,t,this.writeBuffer.byteLength),this.writableNeedsDrain=!0,this.checkWriteBufferLength()),this.writeBuffer.byteLength===0&&this.safeDispatchEvent("idle"),e}finally{this.sendingData=!1}}dispatchReadBuffer(){try{if(this.listenerCount("message")===0){this.log.trace("not dispatching pause buffer as there are no listeners for the message event");return}if(this.readBuffer.byteLength===0){this.log.trace("not dispatching pause buffer as there is no data to dispatch");return}if(this.readStatus==="paused"){this.log.trace("not dispatching pause buffer we are paused");return}if(this.readStatus==="closing"||this.readStatus==="closed"){this.log("dropping %d bytes because the readable end is %s",this.readBuffer.byteLength,this.readStatus),this.readBuffer.consume(this.readBuffer.byteLength);return}let e=this.readBuffer.sublist();this.readBuffer.consume(e.byteLength),this.dispatchEvent(new un(e))}finally{this.readBuffer.byteLength===0&&this.remoteWriteStatus==="closed"&&(this.log("close readable end after dispatching read buffer and remote writable end is closed"),this.readStatus="closed"),this.checkReadBufferLength()}}checkReadBufferLength(){this.readBuffer.byteLength>this.maxReadBufferLength&&this.abort(new pr(`Read buffer length of ${this.readBuffer.byteLength} exceeded limit of ${this.maxReadBufferLength}, read status is ${this.readStatus}`))}checkWriteBufferLength(){this.maxWriteBufferLength!=null&&this.writeBuffer.byteLength>this.maxWriteBufferLength&&this.abort(new pr(`Write buffer length of ${this.writeBuffer.byteLength} exceeded limit of ${this.maxWriteBufferLength}, write status is ${this.writeStatus}`))}onMuxerNeedsDrain(){this.writableNeedsDrain=!0}onMuxerDrain(){this.safeDispatchEvent("drain")}};var eo=class extends Jn{remoteAddr;metricPrefix;metrics;constructor(e){super(e),this.metricPrefix=e.metricPrefix??"",this.metrics=e.metrics,this.remoteAddr=e.remoteAddr,this.addEventListener("close",t=>{this.metrics?.increment({[`${this.metricPrefix}end`]:!0}),t.error!=null?t.local?this.metrics?.increment({[`${this.metricPrefix}abort`]:!0}):this.metrics?.increment({[`${this.metricPrefix}reset`]:!0}):t.local?this.metrics?.increment({[`${this.metricPrefix}_local_close`]:!0}):this.metrics?.increment({[`${this.metricPrefix}_remote_close`]:!0})})}async close(e){this.status==="open"&&(this.status="closing",this.writeStatus="closing",this.remoteWriteStatus="closing",this.remoteReadStatus="closing",(this.sendingData||this.writeBuffer.byteLength>0)&&(this.log("waiting for write queue to become idle before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await Pe(this,"idle",{...e,rejectionEvents:["close"]})),this.writableNeedsDrain&&(this.log("waiting for write queue to drain before closing writable end of stream, %d unsent bytes",this.writeBuffer.byteLength),await Pe(this,"drain",{...e,rejectionEvents:["close"]})),await this.sendClose(e),this.onTransportClosed())}};var qc=Te(oe("node:os"),1);function Wc(r){return!!(r.startsWith("169.254.")||r.toLowerCase().startsWith("fe80"))}function pi(r,e,t){let n=[r.type,t??r.host];if(r.protocol!=null){let o=e??r.port;o!=null&&n.push(r.protocol,o)}return r.type==="ip6"&&r.zone!=null&&n.unshift("ip6zone",r.zone),r.cidr!=null&&n.push("ipcidr",r.cidr),Ye(`/${n.join("/")}`)}var wd={4:"IPv4",6:"IPv6"};function vd(r){return["0.0.0.0","::"].includes(r)}function Sd(r){let e=[],t=qc.default.networkInterfaces();for(let[,n]of Object.entries(t))if(n!=null)for(let o of n)Wc(o.address)||o.family===wd[r]&&e.push(o.address);return e}function Yc(r,e){if(r==null)return[];let t=Xn(r);return(t.type==="ip4"||t.type==="ip6")&&vd(t.host)?Sd(t.type==="ip4"?4:6).map(n=>pi(t,e,n)):[pi(t,e)]}function Zc(r,e){if(typeof r!="string")throw new Z(`invalid ip provided: ${r}`);if(typeof e=="string"&&(e=parseInt(e)),isNaN(e))throw new Z(`invalid port provided: ${e}`);if((0,Oe.isIPv4)(r))return Ye(`/ip4/${r}/tcp/${e}`);if((0,Oe.isIPv6)(r))return Ye(`/ip6/${r}/tcp/${e}`);throw new Z(`invalid ip:port for creating a multiaddr: ${r}:${e}`)}var mi=class{readNext;haveNext;ended;nextResult;error;constructor(){this.ended=!1,this.readNext=nt(),this.haveNext=nt()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("HaveNext promise resolved but nextResult was undefined");let e=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=nt(),e}async throw(e){return this.ended=!0,this.error=e,e!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(e)),{done:!0,value:void 0}}async return(){let e={done:!0,value:void 0};return this.ended=!0,this.nextResult=e,this.haveNext.resolve(),e}async push(e,t){await this._push(e,t)}async end(e,t){e!=null?await this.throw(e):await this._push(void 0,t)}async _push(e,t){if(e!=null&&this.ended)throw this.error??new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;e!=null?this.nextResult={done:!1,value:e}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=nt(),await nr(this.readNext.promise,t?.signal,t)}};function Xc(){return new mi}function Id(r){return r[Symbol.asyncIterator]!=null}async function Ad(r,e,t){try{await Promise.all(r.map(async n=>{for await(let o of n)await e.push(o,{signal:t}),t.throwIfAborted()})),await e.end(void 0,{signal:t})}catch(n){await e.end(n,{signal:t}).catch(()=>{})}}async function*Ld(r){let e=new AbortController,t=Xc();Ad(r,t,e.signal).catch(()=>{});try{yield*t}finally{e.abort()}}function*Td(r){for(let e of r)yield*e}function Dd(...r){let e=[];for(let t of r)Id(t)||e.push(t);return e.length===r.length?Td(e):Ld(r)}var Qc=Dd;function jc(r,...e){if(r==null)throw new Error("Empty pipeline");if(bi(r)){let n=r;r=()=>n.source}else if(eu(r)||Jc(r)){let n=r;r=()=>n}let t=[r,...e];if(t.length>1&&bi(t[t.length-1])&&(t[t.length-1]=t[t.length-1].sink),t.length>2)for(let n=1;n<t.length-1;n++)bi(t[n])&&(t[n]=_d(t[n]));return Cd(...t)}var Cd=(...r)=>{let e;for(;r.length>0;)e=r.shift()(e);return e},Jc=r=>r?.[Symbol.asyncIterator]!=null,eu=r=>r?.[Symbol.iterator]!=null,bi=r=>r==null?!1:r.sink!=null&&r.source!=null,_d=r=>e=>{let t=r.sink(e);if(t?.then!=null){let n=dt({objectMode:!0});t.then(()=>{n.end()},i=>{n.end(i)});let o,s=r.source;if(Jc(s))o=async function*(){yield*s,n.end()};else if(eu(s))o=function*(){yield*s,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return Qc(n,o())}return r.source};var Bd=4194304,to=class extends Error{static name="UnwrappedError";name="UnwrappedError"},gi=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},xi=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Ei=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function Od(r){return typeof r?.closeRead=="function"}function Pd(r){return typeof r?.close=="function"}function yi(r){return Od(r)?r.remoteWriteStatus!=="writable"&&r.readBufferLength===0:Pd(r)?r.status!=="open":!1}function Rd(r){return r?.addEventListener!=null&&r?.removeEventListener!=null&&r?.send!=null&&r?.push!=null&&r?.log!=null}function Nd(r,e){let t=e?.maxBufferSize??Bd,n=new H,o,s=!1;if(!Rd(r))throw new Z("Argument should be a Stream or a Multiaddr");let i=u=>{if(n.append(u.data),n.byteLength>t){let f=n.byteLength;n.consume(n.byteLength),o?.reject(new Error(`Read buffer overflow - ${f} > ${t}`))}o?.resolve()};r.addEventListener("message",i);let a=u=>{u.error!=null?o?.reject(u.error):o?.resolve()};r.addEventListener("close",a);let c=()=>{o?.resolve()};r.addEventListener("remoteCloseWrite",c);let l={readBuffer:n,async read(u){if(s===!0)throw new to("Stream was unwrapped");if(yi(r)){if(n.byteLength===0&&u?.bytes==null)return null;if(u?.bytes!=null&&n.byteLength<u.bytes)throw r.log.error("closed after reading %d/%d bytes",n.byteLength,u.bytes),new _t(`Unexpected EOF - stream closed after reading ${n.byteLength}/${u.bytes} bytes`)}let f=u?.bytes??1;for(o=Promise.withResolvers();;){if(n.byteLength>=f){o.resolve();break}if(await nr(o.promise,u?.signal),yi(r)){if(n.byteLength===0&&u?.bytes==null)return null;break}o=Promise.withResolvers()}let d=u?.bytes??n.byteLength;if(n.byteLength<d){if(yi(r))throw r.log.error("closed while reading %d/%d bytes",n.byteLength,d),new _t(`Unexpected EOF - stream closed while reading ${n.byteLength}/${d} bytes`);return l.read(u)}let p=n.sublist(0,d);return n.consume(d),p},async write(u,f){if(s===!0)throw new to("Stream was unwrapped");r.send(u)||await Pe(r,"drain",{signal:f?.signal,rejectionEvents:["close"]})},unwrap(){return s||(s=!0,r.removeEventListener("message",i),r.removeEventListener("close",a),r.removeEventListener("remoteCloseWrite",c),n.byteLength>0&&(r.log("stream unwrapped with %d unread bytes",n.byteLength),r.push(n))),r}};return l}function Br(r,e={}){let t=Nd(r,e);e.maxDataLength!=null&&e.maxLengthLength==null&&(e.maxLengthLength=ae(e.maxDataLength));let n=e?.lengthDecoder??mt,o=e?.lengthEncoder??Nr;return{async read(i){let a=-1,c=new H;for(;;){let u=await t.read({...i,bytes:1});if(u==null)break;c.append(u);try{a=n(c)}catch(f){if(f instanceof RangeError)continue;throw f}if(a<0)throw new gi("Invalid message length");if(e?.maxLengthLength!=null&&c.byteLength>e.maxLengthLength)throw new Ei(`Message length length too long - ${c.byteLength} > ${e.maxLengthLength}`);if(a>-1)break}if(e?.maxDataLength!=null&&a>e.maxDataLength)throw new xi(`Message length too long - ${a} > ${e.maxDataLength}`);let l=await t.read({...i,bytes:a});if(l==null)throw r.log.error("tried to read %d bytes but the stream closed",a),new _t(`Unexpected EOF - tried to read ${a} bytes but the stream closed`);if(l.byteLength!==a)throw r.log.error("read %d/%d bytes before the stream closed",l.byteLength,a),new _t(`Unexpected EOF - read ${l.byteLength}/${a} bytes before the stream closed`);return l},async write(i,a){await t.write(new H(o(i.byteLength),i),a)},async writeV(i,a){let c=new H(...i.flatMap(l=>[o(l.byteLength),l]));await t.write(c,a)},unwrap(){return t.unwrap()}}}function wi(r,e){let t=Br(r,e),n={read:async(o,s)=>{let i=await t.read(s);return o.decode(i)},write:async(o,s,i)=>{await t.write(s.encode(o),i)},writeV:async(o,s,i)=>{await t.writeV(o.map(a=>s.encode(a)),i)},pb:o=>({read:async s=>n.read(o,s),write:async(s,i)=>n.write(s,o,i),writeV:async(s,i)=>n.writeV(s,o,i),unwrap:()=>n}),unwrap:()=>t.unwrap()};return n}function kd(r){return r?.addEventListener!=null}function Ud(r){let e=dt(),t,n=i=>{e.push(i.data)},o=()=>{e.end(),r.removeEventListener("message",n),r.removeEventListener("close",s),r.removeEventListener("remoteCloseWrite",o)},s=i=>{e.end(i.error),i.error!=null&&t?.reject(i.error),r.removeEventListener("message",n),r.removeEventListener("close",s),r.removeEventListener("remoteCloseWrite",o)};return r.addEventListener("message",n),r.addEventListener("close",s,{once:!0}),r.addEventListener("remoteCloseWrite",o,{once:!0}),{source:e,async sink(i){async function*a(){yield*i}let c=a();for(;;){t=Promise.withResolvers();let{done:l,value:u}=await Promise.race([c.next(),t.promise]);if(r.writeStatus==="closing"||r.writeStatus==="closed"||(u!=null&&(r.send(u)||await Promise.race([Pe(r,"drain",{rejectionEvents:["close"]})])),l===!0))break}await r.close()}}}function vi(...r){let e=r.map(t=>kd(t)?Ud(t):t);return jc(...e)}var ro=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},or=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},no=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"},Or=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};function oo(r){return r[Symbol.asyncIterator]!=null}function tu(r,e){if(r.byteLength>e)throw new or("Message length too long")}var io=r=>{let e=ae(r),t=Se(e);return Nr(r,t),io.bytes=e,t};io.bytes=0;function ao(r,e){e=e??{};let t=e.lengthEncoder??io,n=e?.maxDataLength??4194304;function*o(s){tu(s,n);let i=t(s.byteLength);i instanceof Uint8Array?yield i:yield*i,s instanceof Uint8Array?yield s:yield*s}return oo(r)?(async function*(){for await(let s of r)yield*o(s)})():(function*(){for(let s of r)yield*o(s)})()}ao.single=(r,e)=>{e=e??{};let t=e.lengthEncoder??io,n=e?.maxDataLength??4194304;return tu(r,n),new H(t(r.byteLength),r)};var Bt;(function(r){r[r.LENGTH=0]="LENGTH",r[r.DATA=1]="DATA"})(Bt||(Bt={}));var Ii=r=>{let e=mt(r);return Ii.bytes=ae(e),e};Ii.bytes=0;function Si(r,e){let t=new H,n=Bt.LENGTH,o=-1,s=e?.lengthDecoder??Ii,i=e?.maxLengthLength??8,a=e?.maxDataLength??4194304;function*c(){for(;t.byteLength>0;){if(n===Bt.LENGTH)try{if(o=s(t),o<0)throw new ro("Invalid message length");if(o>a)throw new or("Message length too long");let l=s.bytes;t.consume(l),e?.onLength!=null&&e.onLength(o),n=Bt.DATA}catch(l){if(l instanceof RangeError){if(t.byteLength>i)throw new no("Message length length too long");break}throw l}if(n===Bt.DATA){if(t.byteLength<o)break;let l=t.sublist(0,o);t.consume(o),e?.onData!=null&&e.onData(l),yield l,n=Bt.LENGTH}}}return oo(r)?(async function*(){for await(let l of r)t.append(l),yield*c();if(t.byteLength>0)throw new Or("Unexpected end of input")})():(function*(){for(let l of r)t.append(l),yield*c();if(t.byteLength>0)throw new Or("Unexpected end of input")})()}Si.fromReader=(r,e)=>{let t=1,n=(async function*(){for(;;)try{let{done:s,value:i}=await r.next(t);if(s===!0)return;i!=null&&(yield i)}catch(s){if(s.code==="ERR_UNDER_READ")return{done:!0,value:null};throw s}finally{t=1}})();return Si(n,{...e??{},onLength:s=>{t=s}})};var Ai=class extends eo{socket;constructor(e){let t=e.remoteAddr;if(e.localAddr!=null&&Yn.matches(e.localAddr))t=e.localAddr;else if(t==null){if(e.socket.remoteAddress==null||e.socket.remotePort==null)throw new Z("Could not determine remote address or port");t=Zc(e.socket.remoteAddress,e.socket.remotePort)}super({...e,remoteAddr:t}),this.socket=e.socket,this.socket.on("data",n=>{this.onData(n)}),this.socket.on("error",n=>{this.log("tcp error",t,n),this.abort(n)}),this.socket.setTimeout(e.inactivityTimeout??120*1e3),this.socket.once("timeout",()=>{this.log("tcp timeout",t),this.abort(new Vt)}),this.socket.once("end",()=>{this.log("tcp end",t),this.onTransportClosed()}),this.socket.once("close",n=>{if(this.log("tcp close",t),n){this.abort(new Error("TCP transmission error"));return}this.onTransportClosed()}),this.socket.on("drain",()=>{this.log("tcp drain"),this.safeDispatchEvent("drain")})}sendData(e){let t=0,n=!0;for(let o of e)if(t+=o.byteLength,n=this.socket.write(o),!n)break;return{sentBytes:t,canSendMore:n}}async sendClose(e){this.socket.destroyed||(this.socket.destroySoon(),await Pe(this.socket,"close",e))}sendReset(){this.socket.resetAndDestroy()}sendPause(){this.socket.pause()}sendResume(){this.socket.resume()}},co=r=>new Ai(r);var ru=Te(oe("os"),1),nu=Te(oe("path"),1);function uo(r,e={}){if(Yn.exactMatch(r)){let s=r.getComponents().find(i=>i.code===400)?.value;if(s==null)throw new Z(`Multiaddr ${r} was not a Unix address`);return ru.default.platform()==="win32"?{path:nu.default.join("\\\\.\\pipe\\",s)}:{path:s}}let t=Xn(r),n=t.host,o=t.port;return{host:n,port:o,ipv6Only:t.type==="ip6",...e}}var ue;(function(r){r[r.INACTIVE=0]="INACTIVE",r[r.ACTIVE=1]="ACTIVE",r[r.PAUSED=2]="PAUSED"})(ue||(ue={}));var lo=class extends Ft{context;server;sockets=new Set;status={code:ue.INACTIVE};metrics;addr;log;shutdownController;constructor(e){if(super(),this.context=e,e.keepAlive=e.keepAlive??!0,e.noDelay=e.noDelay??!0,e.allowHalfOpen=e.allowHalfOpen??!1,this.shutdownController=new AbortController,dn(1/0,this.shutdownController.signal),this.log=e.logger.forComponent("libp2p:tcp:listener"),this.addr="unknown",this.server=ou.default.createServer(e,this.onSocket.bind(this)),e.maxConnections!==void 0&&(this.server.maxConnections=e.maxConnections),e.closeServerOnMaxConnections!=null&&e.closeServerOnMaxConnections.closeAbove<e.closeServerOnMaxConnections.listenBelow)throw new Z("closeAbove must be >= listenBelow");e.metrics?.registerMetricGroup("libp2p_tcp_inbound_connections_total",{label:"address",help:"Current active connections in TCP listener",calculate:()=>({[this.addr]:this.sockets.size})}),this.metrics={status:e.metrics?.registerMetricGroup("libp2p_tcp_listener_status_info",{label:"address",help:"Current status of the TCP listener socket"}),errors:e.metrics?.registerMetricGroup("libp2p_tcp_listener_errors_total",{label:"address",help:"Total count of TCP listener errors by type"}),events:e.metrics?.registerMetricGroup("libp2p_tcp_listener_events_total",{label:"address",help:"Total count of TCP listener events by type"})},this.server.on("listening",()=>{let t=this.server.address();t==null?this.addr="unknown":typeof t=="string"?this.addr=t:this.addr=`${t.address}:${t.port}`,this.metrics.status?.update({[this.addr]:ue.ACTIVE}),this.safeDispatchEvent("listening")}).on("error",t=>{this.metrics.errors?.increment({[`${this.addr} listen_error`]:!0}),this.safeDispatchEvent("error",{detail:t})}).on("close",()=>{this.metrics.status?.update({[this.addr]:this.status.code}),this.status.code!==ue.PAUSED&&this.safeDispatchEvent("close")}).on("drop",()=>{this.metrics.events?.increment({[`${this.addr} drop`]:!0})})}onSocket(e){if(this.metrics.events?.increment({[`${this.addr} connection`]:!0}),this.status.code!==ue.ACTIVE)throw e.destroy(),new an("Server is not listening yet");let t;try{t=co({socket:e,inactivityTimeout:this.context.inactivityTimeout,metrics:this.metrics?.events,metricPrefix:`${this.addr} `,direction:"inbound",localAddr:this.status.listeningAddr,log:this.context.logger.forComponent("libp2p:tcp:connection")})}catch(n){this.log.error("inbound connection failed - %e",n),this.metrics.errors?.increment({[`${this.addr} inbound_to_connection`]:!0}),e.destroy();return}this.log("new inbound connection %s",t.remoteAddr),this.sockets.add(e),this.context.upgrader.upgradeInbound(t,{signal:this.shutdownController.signal}).then(()=>{this.log("inbound connection upgraded %s",t.remoteAddr),e.once("close",()=>{this.sockets.delete(e),this.context.closeServerOnMaxConnections!=null&&this.sockets.size<this.context.closeServerOnMaxConnections.listenBelow&&this.resume().catch(n=>{this.log.error("error attempting to listen server once connection count under limit - %e",n),this.context.closeServerOnMaxConnections?.onListenError?.(n)})}),this.context.closeServerOnMaxConnections!=null&&this.sockets.size>=this.context.closeServerOnMaxConnections.closeAbove&&(this.log("pausing incoming connections as limit is exceeded - %d/%d",this.sockets.size,this.context.closeServerOnMaxConnections.closeAbove),this.pause())}).catch(async n=>{this.log.error("inbound connection upgrade failed - %e",n),this.metrics.errors?.increment({[`${this.addr} inbound_upgrade`]:!0}),this.sockets.delete(e),t.abort(n)})}getAddrs(){if(this.status.code===ue.INACTIVE)return[];let e=this.server.address();return e==null?[]:typeof e=="string"?[Ye(`/unix/${encodeURIComponent(e)}`)]:Yc(this.status.listeningAddr,e.port)}updateAnnounceAddrs(){}async listen(e){if(this.status.code===ue.ACTIVE||this.status.code===ue.PAUSED)throw new cn("server is already listening");try{this.status={code:ue.ACTIVE,listeningAddr:e,netConfig:uo(e,this.context)},await this.resume()}catch(t){throw this.status={code:ue.INACTIVE},t}}async close(e){let t=[];this.server.listening&&t.push(Pe(this.server,"close",e)),this.pause(!0),this.shutdownController.abort(),this.sockets.forEach(n=>{n.readable&&(t.push(Pe(n,"close",e)),n.destroy())}),await Promise.all(t)}async resume(){if(this.server.listening||this.status.code===ue.INACTIVE)return;let e=this.status.netConfig;await new Promise((t,n)=>{this.server.once("error",n),this.server.listen(e,t)}),this.status={...this.status,code:ue.ACTIVE},this.log("listening on %s",this.server.address())}pause(e=!1){if(!this.server.listening&&this.status.code===ue.PAUSED&&e){this.status={code:ue.INACTIVE};return}!this.server.listening||this.status.code!==ue.ACTIVE||(this.log("%s server on %s",e?"closing":"pausing",this.server.address()),this.status=e?{code:ue.INACTIVE}:{...this.status,code:ue.PAUSED},this.server.close())}};var fo=class{opts;metrics;components;log;constructor(e,t={}){this.log=e.logger.forComponent("libp2p:tcp"),this.opts=t,this.components=e,e.metrics!=null&&(this.metrics={events:e.metrics.registerCounterGroup("libp2p_tcp_dialer_events_total",{label:"event",help:"Total count of TCP dialer events by type"}),errors:e.metrics.registerCounterGroup("libp2p_tcp_dialer_errors_total",{label:"event",help:"Total count of TCP dialer events by type"})})}[ba]=!0;[Symbol.toStringTag]="@libp2p/tcp";[ga]=["@libp2p/transport"];async dial(e,t){t.keepAlive=t.keepAlive??!0,t.noDelay=t.noDelay??!0,t.allowHalfOpen=t.allowHalfOpen??!1;let n=await this._connect(e,t),o;try{o=co({socket:n,inactivityTimeout:this.opts.outboundSocketInactivityTimeout,metrics:this.metrics?.events,direction:"outbound",remoteAddr:e,log:this.log.newScope("connection")})}catch(s){throw this.metrics?.errors.increment({outbound_to_connection:!0}),n.destroy(s),s}try{return this.log("new outbound connection %s",o.remoteAddr),await t.upgrader.upgradeOutbound(o,t)}catch(s){throw this.metrics?.errors.increment({outbound_upgrade:!0}),this.log.error("error upgrading outbound connection - %e",s),o.abort(s),s}}async _connect(e,t){t.signal.throwIfAborted(),t.onProgress?.(new Zn("tcp:open-connection"));let n;return new Promise((o,s)=>{let i=Date.now(),a=uo(e,{...this.opts.dialOpts??{},...t});this.log("dialing %a with opts %o",e,a),n=su.default.connect(a);let c=p=>{this.log.error("dial to %a errored - %e",e,p);let g=a.path??`${a.host??""}:${a.port}`;p.message=`connection error ${g}: ${p.message}`,this.metrics?.events.increment({error:!0}),d(p)},l=()=>{this.log("connection timeout %a",e),this.metrics?.events.increment({timeout:!0});let p=new Vt(`Connection timeout after ${Date.now()-i}ms`);n.emit("error",p)},u=()=>{this.log("connection opened %a",e),this.metrics?.events.increment({connect:!0}),d()},f=()=>{this.log("connection aborted %a",e),this.metrics?.events.increment({abort:!0}),d(new rn)},d=p=>{if(n.removeListener("error",c),n.removeListener("timeout",l),n.removeListener("connect",u),t.signal!=null&&t.signal.removeEventListener("abort",f),p!=null){s(p);return}o(n)};n.on("error",c),n.on("timeout",l),n.on("connect",u),t.signal.addEventListener("abort",f)}).catch(o=>{throw n?.destroy(),o})}createListener(e){return new lo({...this.opts.listenOpts??{},...e,maxConnections:this.opts.maxConnections,backlog:this.opts.backlog,closeServerOnMaxConnections:this.opts.closeServerOnMaxConnections,inactivityTimeout:this.opts.inboundSocketInactivityTimeout,metrics:this.components.metrics,logger:this.components.logger})}listenFilter(e){return e.filter(t=>Hc.exactMatch(t)||t.toString().startsWith("/unix/"))}dialFilter(e){return this.listenFilter(e)}};function iu(r={}){return e=>new fo(e,r)}function Hd(r){return r[Symbol.asyncIterator]!=null}function $d(r){if(Hd(r))return(async()=>{for await(let e of r);})();for(let e of r);}var Li=$d;function Ae(r){return ee.encode({type:ee.Type.OK,peers:[],...r}).subarray()}function Ee(r){return ee.encode({type:ee.Type.ERROR,error:{msg:r.message},peers:[]}).subarray()}var ho=at("libp2p:daemon-server:dht"),po=class{dht;constructor(e){let{dht:t}=e;this.dht=t}async*provide(e){try{await Li(this.dht.provide(e)),yield Ae()}catch(t){ho.error("failed to provide CID %s - %e",e,t),yield Ee(t)}}async*getClosestPeers(e){yield Ae({dht:{type:de.Type.BEGIN}});for await(let t of this.dht.getClosestPeers(e))t.name==="PEER_RESPONSE"&&(yield*t.closer.map(n=>de.encode({type:de.Type.VALUE,value:n.id.toMultihash().bytes})));yield de.encode({type:de.Type.END})}async*getPublicKey(e){yield Ee(new Error("FIX ME: not implemented"))}async*getValue(e){try{for await(let t of this.dht.get(e))t.name==="VALUE"&&(yield Ae({dht:{type:de.Type.VALUE,value:t.value}}))}catch(t){ho.error("error getting value for key %b - %e",e,t),yield Ee(t)}}async*putValue(e,t){try{await Li(this.dht.put(e,t)),yield Ae()}catch(n){ho.error("error putting value %b for key %b - %e",t,e,n),yield Ee(n)}}async*findPeer(e){try{for await(let t of this.dht.findPeer(e))t.name==="FINAL_PEER"&&(yield Ae({dht:{type:de.Type.VALUE,peer:{id:t.peer.id.toMultihash().bytes,addrs:t.peer.multiaddrs.map(n=>n.bytes)}}}));throw new Error("Peer not found")}catch(t){ho.error("peer not found %p - %e",e,t),yield Ee(t)}}async*findProviders(e,t){yield Ae({dht:{type:de.Type.BEGIN}});try{let n=t,o=0;for await(let s of this.dht.findProviders(e))if(s.name==="PEER_RESPONSE"){for(let i of s.providers)o++,yield de.encode({type:de.Type.VALUE,peer:{id:i.id.toMultihash().bytes,addrs:(i.multiaddrs??[]).map(a=>a.bytes)}});if(n===o)break}}catch(n){yield Ee(n)}yield de.encode({type:de.Type.END})}};var mo=at("libp2p:daemon-server:pubsub"),bo=class{pubsub;constructor(e){let{pubsub:t}=e;this.pubsub=t}async*getTopics(){try{yield Ae({pubsub:{topics:this.pubsub.getTopics(),peerIDs:[]}})}catch(e){mo.error("failed to get pubsub topics - %e",e),yield Ee(e)}}async*subscribe(e){try{let t=dt();this.pubsub.subscribe(e),this.pubsub.addEventListener("message",n=>{let o=n.detail;o.topic===e&&(o.type==="signed"?t.push(dr.encode({from:o.from.toMultihash().bytes,data:o.data,seqno:o.sequenceNumber==null?void 0:ye(o.sequenceNumber.toString(16).padStart(16,"0"),"base16"),topicIDs:[o.topic],signature:o.signature,key:ut(o.key)}).subarray()):t.push(dr.encode({data:o.data,topicIDs:[o.topic]}).subarray()))}),yield Ae(),yield*t}catch(t){mo.error("failed to subscribe to topic %s - %e",e,t),yield Ee(t)}}async*publish(e,t){try{await this.pubsub.publish(e,t),yield Ae()}catch(n){mo.error("failed to publish message to topic %s - %e",e,n),yield Ee(n)}}async*listPeers(e){try{yield Ae({pubsub:{topics:[e],peerIDs:this.pubsub.getSubscribers(e).map(t=>t.toMultihash().bytes)}})}catch(t){mo.error("failed to list peers for topic %s - %e",e,t),yield Ee(t)}}};var au=1<<22,ve=at("libp2p:daemon-server"),yo=class{multiaddr;libp2p;tcp;listener;dhtOperations;pubsubOperations;constructor(e){let{multiaddr:t,libp2pNode:n}=e;this.multiaddr=t,this.libp2p=n,this.tcp=iu()({logger:pa()}),this.listener=this.tcp.createListener({upgrader:new hr(this.handleConnection.bind(this))}),this._onExit=this._onExit.bind(this),n.services.dht!=null&&(this.dhtOperations=new po({dht:n.services.dht})),n.services.pubsub!=null&&(this.pubsubOperations=new bo({pubsub:n.services.pubsub}))}async connect(e){if(e.connect?.addrs==null)throw new Error("Invalid request");let t=e.connect.peer,n=e.connect.addrs.map(s=>Ye(s)),o=Qt(Xe(t));return ve("connect - adding multiaddrs %a to peer %p",n,o),await this.libp2p.peerStore.merge(o,{multiaddrs:n}),ve("connect - dial %p",o),this.libp2p.dial(o)}async openStream(e){if(e.streamOpen?.proto==null)throw new Error("Invalid request");let{peer:t,proto:n}=e.streamOpen,o=Qt(Xe(t));ve("openStream - dial %p",o);let s=await this.libp2p.dial(o);ve("openStream - open stream for protocol(s) %s",n);let i=await s.newStream(n,{runOnLimitedConnection:!0});return{streamInfo:{peer:o.toMultihash().bytes,addr:s.remoteAddr.bytes,proto:i.protocol??""},connection:i}}async registerStreamHandler(e){if(e.streamHandler?.proto==null)throw new Error("Invalid request");let t=e.streamHandler.proto,n=Ye(e.streamHandler.addr),o;ve("registerStreamHandler - handle %s at %a",t,n),await this.libp2p.handle(t,async(s,i)=>{try{ve("open stream for protocol %o to %a",t,n);let a=AbortSignal.timeout(1e4);o=await this.tcp.dial(n,{upgrader:new hr,signal:a});let c=Ht.encode({peer:i.remotePeer.toMultihash().bytes,addr:i.remoteAddr.bytes,proto:s.protocol??""}),l=ao.single(c);o.send(l)||await Pe(o,"drain",{rejectionEvents:["close"],signal:a}),await vi(s,o,s)}catch(a){ve.error("error handling stream handler - %e",a),o?.abort(a)}finally{try{await o?.close()}catch(a){o?.abort(a)}}},{runOnLimitedConnection:!0})}_listen(){process.on("SIGTERM",this._onExit),process.on("SIGINT",this._onExit),process.on("SIGHUP",this._onExit)}_onExit(){this.stop({exit:!0}).catch(e=>{ve.error("failed to stop daemon during exit - %e",e)})}async start(){this._listen(),await this.libp2p.start(),await this.listener.listen(this.multiaddr)}getMultiaddr(){let e=this.listener.getAddrs();if(e.length>0)return e[0];throw new Error("Not started")}async stop(e={exit:!1}){await this.libp2p.stop(),await this.listener.close(),e.exit&&ve("server closed, exiting"),process.removeListener("SIGTERM",this._onExit),process.removeListener("SIGINT",this._onExit),process.removeListener("SIGHUP",this._onExit)}async*handlePeerStoreRequest(e){try{switch(e.type){case xt.Type.GET_PROTOCOLS:if(e.id==null)throw new Error("Invalid request");let t=Qt(Xe(e.id)),o=(await this.libp2p.peerStore.get(t)).protocols;yield Ae({peerStore:{protos:o}});return;case xt.Type.GET_PEER_INFO:throw new Error("ERR_NOT_IMPLEMENTED");default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(t){ve.error("error handling peerstore request - %e",t),yield Ee(t)}}async*handlePubsubRequest(e){try{if(this.libp2p.services.pubsub==null||this.pubsubOperations==null)throw new Error("PubSub not configured");switch(e.type){case Qe.Type.GET_TOPICS:yield*this.pubsubOperations.getTopics();return;case Qe.Type.SUBSCRIBE:if(e.topic==null)throw new Error("Invalid request");yield*this.pubsubOperations.subscribe(e.topic);return;case Qe.Type.PUBLISH:if(e.topic==null||e.data==null)throw new Error("Invalid request");yield*this.pubsubOperations.publish(e.topic,e.data);return;case Qe.Type.LIST_PEERS:if(e.topic==null)throw new Error("Invalid request");yield*this.pubsubOperations.listPeers(e.topic);return;default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(t){ve.error("error handling pubsub request - %e",t),yield Ee(t)}}async*handleDHTRequest(e){try{if(this.libp2p.services.dht==null||this.dhtOperations==null)throw new Error("DHT not configured");switch(e.type){case ke.Type.FIND_PEER:if(e.peer==null)throw new Error("Invalid request");yield*this.dhtOperations.findPeer(Qt(Xe(e.peer)));return;case ke.Type.FIND_PROVIDERS:if(e.cid==null)throw new Error("Invalid request");yield*this.dhtOperations.findProviders(se.decode(e.cid),e.count??20);return;case ke.Type.PROVIDE:if(e.cid==null)throw new Error("Invalid request");yield*this.dhtOperations.provide(se.decode(e.cid));return;case ke.Type.GET_CLOSEST_PEERS:if(e.key==null)throw new Error("Invalid request");yield*this.dhtOperations.getClosestPeers(e.key);return;case ke.Type.GET_PUBLIC_KEY:if(e.peer==null)throw new Error("Invalid request");yield*this.dhtOperations.getPublicKey(Qt(Xe(e.peer)));return;case ke.Type.GET_VALUE:if(e.key==null)throw new Error("Invalid request");yield*this.dhtOperations.getValue(e.key);return;case ke.Type.PUT_VALUE:if(e.key==null||e.value==null)throw new Error("Invalid request");yield*this.dhtOperations.putValue(e.key,e.value);return;default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(t){ve.error("error handling DHT request - %e",t),yield Ee(t)}}handleConnection(e){Promise.resolve().then(async()=>{let t=this,n=wi(e,{maxDataLength:au}),o=await n.read(Ne);ve("read",o);try{switch(o.type){case Ne.Type.CONNECT:{await t.connect(o),await n.write({type:ee.Type.OK},ee);break}case Ne.Type.IDENTIFY:{await n.write({type:ee.Type.OK,identify:{id:t.libp2p.peerId.toMultihash().bytes,addrs:t.libp2p.getMultiaddrs().map(s=>s.decapsulateCode(421)).map(s=>s.bytes)}},ee);break}case Ne.Type.LIST_PEERS:{let s=[],i=new Set;for(let a of t.libp2p.getConnections()){let c=a.remotePeer.toString();i.has(c)||(i.add(c),s.push({id:a.remotePeer.toMultihash().bytes,addrs:[a.remoteAddr.bytes]}))}await n.write({type:ee.Type.OK,peers:s},ee);break}case Ne.Type.STREAM_OPEN:{let s=await t.openStream(o);await n.write({type:ee.Type.OK,streamInfo:s.streamInfo},ee);let i=n.unwrap();await vi(i,s.connection,i);break}case Ne.Type.STREAM_HANDLER:{await t.registerStreamHandler(o),await n.write({type:ee.Type.OK},ee);break}case Ne.Type.PEERSTORE:{if(o.peerStore==null)throw new Error("ERR_INVALID_REQUEST");let s=n.unwrap(),i=Br(s);for await(let a of t.handlePeerStoreRequest(o.peerStore))await i.write(a);break}case Ne.Type.PUBSUB:{if(o.pubsub==null)throw new Error("ERR_INVALID_REQUEST");let s=n.unwrap(),i=Br(s);for await(let a of t.handlePubsubRequest(o.pubsub))await i.write(a);break}case Ne.Type.DHT:{if(o.dht==null)throw new Error("ERR_INVALID_REQUEST");let s=n.unwrap(),i=Br(s);for await(let a of t.handleDHTRequest(o.dht))await i.write(a);break}default:throw new Error("ERR_INVALID_REQUEST_TYPE")}}catch(s){ve.error("error handling incoming connection - %e",s);let i=n.unwrap();if(i.status!=="open")return;n=wi(i,{maxDataLength:au}),await n.write({type:ee.Type.ERROR,error:{msg:s.message},peers:[]},ee)}finally{await n.unwrap().close()}}).catch(t=>{ve.error("error handling incoming connection - %e",t)})}},Vd=(r,e)=>new yo({multiaddr:r,libp2pNode:e});return hu(Gd);})();
17
17
  /*! Bundled license information:
18
18
 
19
19
  @noble/hashes/utils.js: