@libp2p/circuit-relay-v2 1.1.5 → 2.0.0-1210884ed
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.min.js +4 -5
- package/dist/src/constants.d.ts +0 -4
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +0 -4
- package/dist/src/constants.js.map +1 -1
- package/dist/src/errors.d.ts +13 -0
- package/dist/src/errors.d.ts.map +1 -0
- package/dist/src/errors.js +19 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/pb/index.d.ts.map +1 -1
- package/dist/src/pb/index.js +3 -3
- package/dist/src/pb/index.js.map +1 -1
- package/dist/src/server/index.d.ts +2 -1
- package/dist/src/server/index.d.ts.map +1 -1
- package/dist/src/server/index.js +9 -6
- package/dist/src/server/index.js.map +1 -1
- package/dist/src/server/reservation-voucher.js +2 -2
- package/dist/src/server/reservation-voucher.js.map +1 -1
- package/dist/src/transport/listener.js +2 -2
- package/dist/src/transport/listener.js.map +1 -1
- package/dist/src/transport/reservation-store.js +2 -2
- package/dist/src/transport/reservation-store.js.map +1 -1
- package/dist/src/transport/transport.d.ts.map +1 -1
- package/dist/src/transport/transport.js +21 -13
- package/dist/src/transport/transport.js.map +1 -1
- package/dist/src/utils.d.ts +9 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +50 -5
- package/dist/src/utils.js.map +1 -1
- package/package.json +8 -11
- package/src/constants.ts +0 -5
- package/src/errors.ts +19 -0
- package/src/pb/index.ts +3 -3
- package/src/server/index.ts +11 -7
- package/src/server/reservation-voucher.ts +2 -2
- package/src/transport/listener.ts +2 -2
- package/src/transport/reservation-store.ts +2 -2
- package/src/transport/transport.ts +23 -13
- package/src/utils.ts +66 -6
- package/dist/typedoc-urls.json +0 -12
package/dist/index.min.js
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2PCircuitRelayV2 = factory()}(typeof self !== 'undefined' ? self : this, function () {
|
2
|
-
"use strict";var Libp2PCircuitRelayV2=(()=>{var cf=Object.create;var Rn=Object.defineProperty;var lf=Object.getOwnPropertyDescriptor;var uf=Object.getOwnPropertyNames;var ff=Object.getPrototypeOf,hf=Object.prototype.hasOwnProperty;var bi=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ge=(r,e)=>{for(var t in e)Rn(r,t,{get:e[t],enumerable:!0})},Pa=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of uf(e))!hf.call(r,s)&&s!==t&&Rn(r,s,{get:()=>e[s],enumerable:!(n=lf(e,s))||n.enumerable});return r};var wi=(r,e,t)=>(t=r!=null?cf(ff(r)):{},Pa(e||!r||!r.__esModule?Rn(t,"default",{value:r,enumerable:!0}):t,r)),df=r=>Pa(Rn({},"__esModule",{value:!0}),r);var Yc=bi(Dr=>{"use strict";var jd="[object ArrayBuffer]",vt=class r{static isArrayBuffer(e){return Object.prototype.toString.call(e)===jd}static toArrayBuffer(e){return this.isArrayBuffer(e)?e:e.byteLength===e.buffer.byteLength||e.byteOffset===0&&e.byteLength===e.buffer.byteLength?e.buffer:this.toUint8Array(e.buffer).slice(e.byteOffset,e.byteOffset+e.byteLength).buffer}static toUint8Array(e){return this.toView(e,Uint8Array)}static toView(e,t){if(e.constructor===t)return e;if(this.isArrayBuffer(e))return new t(e);if(this.isArrayBufferView(e))return new t(e.buffer,e.byteOffset,e.byteLength);throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(e){return this.isArrayBufferView(e)||this.isArrayBuffer(e)}static isArrayBufferView(e){return ArrayBuffer.isView(e)||e&&this.isArrayBuffer(e.buffer)}static isEqual(e,t){let n=r.toUint8Array(e),s=r.toUint8Array(t);if(n.length!==s.byteLength)return!1;for(let i=0;i<n.length;i++)if(n[i]!==s[i])return!1;return!0}static concat(...e){let t;Array.isArray(e[0])&&!(e[1]instanceof Function)||Array.isArray(e[0])&&e[1]instanceof Function?t=e[0]:e[e.length-1]instanceof Function?t=e.slice(0,e.length-1):t=e;let n=0;for(let o of t)n+=o.byteLength;let s=new Uint8Array(n),i=0;for(let o of t){let a=this.toUint8Array(o);s.set(a,i),i+=a.length}return e[e.length-1]instanceof Function?this.toView(s,e[e.length-1]):s.buffer}},Ro="string",Wd=/^[0-9a-f]+$/i,Yd=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,Zd=/^[a-zA-Z0-9-_]+$/,Zn=class{static fromString(e){let t=unescape(encodeURIComponent(e)),n=new Uint8Array(t.length);for(let s=0;s<t.length;s++)n[s]=t.charCodeAt(s);return n.buffer}static toString(e){let t=vt.toUint8Array(e),n="";for(let i=0;i<t.length;i++)n+=String.fromCharCode(t[i]);return decodeURIComponent(escape(n))}},Ge=class{static toString(e,t=!1){let n=vt.toArrayBuffer(e),s=new DataView(n),i="";for(let o=0;o<n.byteLength;o+=2){let a=s.getUint16(o,t);i+=String.fromCharCode(a)}return i}static fromString(e,t=!1){let n=new ArrayBuffer(e.length*2),s=new DataView(n);for(let i=0;i<e.length;i++)s.setUint16(i*2,e.charCodeAt(i),t);return n}},Xn=class r{static isHex(e){return typeof e===Ro&&Wd.test(e)}static isBase64(e){return typeof e===Ro&&Yd.test(e)}static isBase64Url(e){return typeof e===Ro&&Zd.test(e)}static ToString(e,t="utf8"){let n=vt.toUint8Array(e);switch(t.toLowerCase()){case"utf8":return this.ToUtf8String(n);case"binary":return this.ToBinary(n);case"hex":return this.ToHex(n);case"base64":return this.ToBase64(n);case"base64url":return this.ToBase64Url(n);case"utf16le":return Ge.toString(n,!0);case"utf16":case"utf16be":return Ge.toString(n);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromString(e,t="utf8"){if(!e)return new ArrayBuffer(0);switch(t.toLowerCase()){case"utf8":return this.FromUtf8String(e);case"binary":return this.FromBinary(e);case"hex":return this.FromHex(e);case"base64":return this.FromBase64(e);case"base64url":return this.FromBase64Url(e);case"utf16le":return Ge.fromString(e,!0);case"utf16":case"utf16be":return Ge.fromString(e);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToBase64(e){let t=vt.toUint8Array(e);if(typeof btoa<"u"){let n=this.ToString(t,"binary");return btoa(n)}else return Buffer.from(t).toString("base64")}static FromBase64(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isBase64(t))throw new TypeError("Argument 'base64Text' is not Base64 encoded");return typeof atob<"u"?this.FromBinary(atob(t)):new Uint8Array(Buffer.from(t,"base64")).buffer}static FromBase64Url(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isBase64Url(t))throw new TypeError("Argument 'base64url' is not Base64Url encoded");return this.FromBase64(this.Base64Padding(t.replace(/\-/g,"+").replace(/\_/g,"/")))}static ToBase64Url(e){return this.ToBase64(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}static FromUtf8String(e,t=r.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.FromBinary(e);case"utf8":return Zn.fromString(e);case"utf16":case"utf16be":return Ge.fromString(e);case"utf16le":case"usc2":return Ge.fromString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static ToUtf8String(e,t=r.DEFAULT_UTF8_ENCODING){switch(t){case"ascii":return this.ToBinary(e);case"utf8":return Zn.toString(e);case"utf16":case"utf16be":return Ge.toString(e);case"utf16le":case"usc2":return Ge.toString(e,!0);default:throw new Error(`Unknown type of encoding '${t}'`)}}static FromBinary(e){let t=e.length,n=new Uint8Array(t);for(let s=0;s<t;s++)n[s]=e.charCodeAt(s);return n.buffer}static ToBinary(e){let t=vt.toUint8Array(e),n="";for(let s=0;s<t.length;s++)n+=String.fromCharCode(t[s]);return n}static ToHex(e){let t=vt.toUint8Array(e),n="",s=t.length;for(let i=0;i<s;i++){let o=t[i];o<16&&(n+="0"),n+=o.toString(16)}return n}static FromHex(e){let t=this.formatString(e);if(!t)return new ArrayBuffer(0);if(!r.isHex(t))throw new TypeError("Argument 'hexString' is not HEX encoded");t.length%2&&(t=`0${t}`);let n=new Uint8Array(t.length/2);for(let s=0;s<t.length;s=s+2){let i=t.slice(s,s+2);n[s/2]=parseInt(i,16)}return n.buffer}static ToUtf16String(e,t=!1){return Ge.toString(e,t)}static FromUtf16String(e,t=!1){return Ge.fromString(e,t)}static Base64Padding(e){let t=4-e.length%4;if(t<4)for(let n=0;n<t;n++)e+="=";return e}static formatString(e){return e?.replace(/[\n\r\t ]/g,"")||""}};Xn.DEFAULT_UTF8_ENCODING="utf8";function Xd(r,...e){let t=arguments[0];for(let n=1;n<arguments.length;n++){let s=arguments[n];for(let i in s)t[i]=s[i]}return t}function Jd(...r){let e=r.map(s=>s.byteLength).reduce((s,i)=>s+i),t=new Uint8Array(e),n=0;return r.map(s=>new Uint8Array(s)).forEach(s=>{for(let i of s)t[n++]=i}),t.buffer}function Qd(r,e){if(!(r&&e)||r.byteLength!==e.byteLength)return!1;let t=new Uint8Array(r),n=new Uint8Array(e);for(let s=0;s<r.byteLength;s++)if(t[s]!==n[s])return!1;return!0}Dr.BufferSourceConverter=vt;Dr.Convert=Xn;Dr.assign=Xd;Dr.combine=Jd;Dr.isEqual=Qd});var Du=bi((_n,Qs)=>{(function(r,e){"use strict";var t={version:"3.0.0",x86:{},x64:{},inputValidation:!0};function n(u){if(!Array.isArray(u)&&!ArrayBuffer.isView(u))return!1;for(var d=0;d<u.length;d++)if(!Number.isInteger(u[d])||u[d]<0||u[d]>255)return!1;return!0}function s(u,d){return(u&65535)*d+(((u>>>16)*d&65535)<<16)}function i(u,d){return u<<d|u>>>32-d}function o(u){return u^=u>>>16,u=s(u,2246822507),u^=u>>>13,u=s(u,3266489909),u^=u>>>16,u}function a(u,d){u=[u[0]>>>16,u[0]&65535,u[1]>>>16,u[1]&65535],d=[d[0]>>>16,d[0]&65535,d[1]>>>16,d[1]&65535];var p=[0,0,0,0];return p[3]+=u[3]+d[3],p[2]+=p[3]>>>16,p[3]&=65535,p[2]+=u[2]+d[2],p[1]+=p[2]>>>16,p[2]&=65535,p[1]+=u[1]+d[1],p[0]+=p[1]>>>16,p[1]&=65535,p[0]+=u[0]+d[0],p[0]&=65535,[p[0]<<16|p[1],p[2]<<16|p[3]]}function c(u,d){u=[u[0]>>>16,u[0]&65535,u[1]>>>16,u[1]&65535],d=[d[0]>>>16,d[0]&65535,d[1]>>>16,d[1]&65535];var p=[0,0,0,0];return p[3]+=u[3]*d[3],p[2]+=p[3]>>>16,p[3]&=65535,p[2]+=u[2]*d[3],p[1]+=p[2]>>>16,p[2]&=65535,p[2]+=u[3]*d[2],p[1]+=p[2]>>>16,p[2]&=65535,p[1]+=u[1]*d[3],p[0]+=p[1]>>>16,p[1]&=65535,p[1]+=u[2]*d[2],p[0]+=p[1]>>>16,p[1]&=65535,p[1]+=u[3]*d[1],p[0]+=p[1]>>>16,p[1]&=65535,p[0]+=u[0]*d[3]+u[1]*d[2]+u[2]*d[1]+u[3]*d[0],p[0]&=65535,[p[0]<<16|p[1],p[2]<<16|p[3]]}function h(u,d){return d%=64,d===32?[u[1],u[0]]:d<32?[u[0]<<d|u[1]>>>32-d,u[1]<<d|u[0]>>>32-d]:(d-=32,[u[1]<<d|u[0]>>>32-d,u[0]<<d|u[1]>>>32-d])}function f(u,d){return d%=64,d===0?u:d<32?[u[0]<<d|u[1]>>>32-d,u[1]<<d]:[u[1]<<d-32,0]}function l(u,d){return[u[0]^d[0],u[1]^d[1]]}function g(u){return u=l(u,[0,u[0]>>>1]),u=c(u,[4283543511,3981806797]),u=l(u,[0,u[0]>>>1]),u=c(u,[3301882366,444984403]),u=l(u,[0,u[0]>>>1]),u}t.x86.hash32=function(u,d){if(t.inputValidation&&!n(u))return e;d=d||0;for(var p=u.length%4,w=u.length-p,y=d,m=0,b=3432918353,A=461845907,S=0;S<w;S=S+4)m=u[S]|u[S+1]<<8|u[S+2]<<16|u[S+3]<<24,m=s(m,b),m=i(m,15),m=s(m,A),y^=m,y=i(y,13),y=s(y,5)+3864292196;switch(m=0,p){case 3:m^=u[S+2]<<16;case 2:m^=u[S+1]<<8;case 1:m^=u[S],m=s(m,b),m=i(m,15),m=s(m,A),y^=m}return y^=u.length,y=o(y),y>>>0},t.x86.hash128=function(u,d){if(t.inputValidation&&!n(u))return e;d=d||0;for(var p=u.length%16,w=u.length-p,y=d,m=d,b=d,A=d,S=0,B=0,v=0,_=0,$=597399067,H=2869860233,F=951274213,Q=2716044179,C=0;C<w;C=C+16)S=u[C]|u[C+1]<<8|u[C+2]<<16|u[C+3]<<24,B=u[C+4]|u[C+5]<<8|u[C+6]<<16|u[C+7]<<24,v=u[C+8]|u[C+9]<<8|u[C+10]<<16|u[C+11]<<24,_=u[C+12]|u[C+13]<<8|u[C+14]<<16|u[C+15]<<24,S=s(S,$),S=i(S,15),S=s(S,H),y^=S,y=i(y,19),y+=m,y=s(y,5)+1444728091,B=s(B,H),B=i(B,16),B=s(B,F),m^=B,m=i(m,17),m+=b,m=s(m,5)+197830471,v=s(v,F),v=i(v,17),v=s(v,Q),b^=v,b=i(b,15),b+=A,b=s(b,5)+2530024501,_=s(_,Q),_=i(_,18),_=s(_,$),A^=_,A=i(A,13),A+=y,A=s(A,5)+850148119;switch(S=0,B=0,v=0,_=0,p){case 15:_^=u[C+14]<<16;case 14:_^=u[C+13]<<8;case 13:_^=u[C+12],_=s(_,Q),_=i(_,18),_=s(_,$),A^=_;case 12:v^=u[C+11]<<24;case 11:v^=u[C+10]<<16;case 10:v^=u[C+9]<<8;case 9:v^=u[C+8],v=s(v,F),v=i(v,17),v=s(v,Q),b^=v;case 8:B^=u[C+7]<<24;case 7:B^=u[C+6]<<16;case 6:B^=u[C+5]<<8;case 5:B^=u[C+4],B=s(B,H),B=i(B,16),B=s(B,F),m^=B;case 4:S^=u[C+3]<<24;case 3:S^=u[C+2]<<16;case 2:S^=u[C+1]<<8;case 1:S^=u[C],S=s(S,$),S=i(S,15),S=s(S,H),y^=S}return y^=u.length,m^=u.length,b^=u.length,A^=u.length,y+=m,y+=b,y+=A,m+=y,b+=y,A+=y,y=o(y),m=o(m),b=o(b),A=o(A),y+=m,y+=b,y+=A,m+=y,b+=y,A+=y,("00000000"+(y>>>0).toString(16)).slice(-8)+("00000000"+(m>>>0).toString(16)).slice(-8)+("00000000"+(b>>>0).toString(16)).slice(-8)+("00000000"+(A>>>0).toString(16)).slice(-8)},t.x64.hash128=function(u,d){if(t.inputValidation&&!n(u))return e;d=d||0;for(var p=u.length%16,w=u.length-p,y=[0,d],m=[0,d],b=[0,0],A=[0,0],S=[2277735313,289559509],B=[1291169091,658871167],v=0;v<w;v=v+16)b=[u[v+4]|u[v+5]<<8|u[v+6]<<16|u[v+7]<<24,u[v]|u[v+1]<<8|u[v+2]<<16|u[v+3]<<24],A=[u[v+12]|u[v+13]<<8|u[v+14]<<16|u[v+15]<<24,u[v+8]|u[v+9]<<8|u[v+10]<<16|u[v+11]<<24],b=c(b,S),b=h(b,31),b=c(b,B),y=l(y,b),y=h(y,27),y=a(y,m),y=a(c(y,[0,5]),[0,1390208809]),A=c(A,B),A=h(A,33),A=c(A,S),m=l(m,A),m=h(m,31),m=a(m,y),m=a(c(m,[0,5]),[0,944331445]);switch(b=[0,0],A=[0,0],p){case 15:A=l(A,f([0,u[v+14]],48));case 14:A=l(A,f([0,u[v+13]],40));case 13:A=l(A,f([0,u[v+12]],32));case 12:A=l(A,f([0,u[v+11]],24));case 11:A=l(A,f([0,u[v+10]],16));case 10:A=l(A,f([0,u[v+9]],8));case 9:A=l(A,[0,u[v+8]]),A=c(A,B),A=h(A,33),A=c(A,S),m=l(m,A);case 8:b=l(b,f([0,u[v+7]],56));case 7:b=l(b,f([0,u[v+6]],48));case 6:b=l(b,f([0,u[v+5]],40));case 5:b=l(b,f([0,u[v+4]],32));case 4:b=l(b,f([0,u[v+3]],24));case 3:b=l(b,f([0,u[v+2]],16));case 2:b=l(b,f([0,u[v+1]],8));case 1:b=l(b,[0,u[v]]),b=c(b,S),b=h(b,31),b=c(b,B),y=l(y,b)}return y=l(y,[0,u.length]),m=l(m,[0,u.length]),y=a(y,m),m=a(m,y),y=g(y),m=g(m),y=a(y,m),m=a(m,y),("00000000"+(y[0]>>>0).toString(16)).slice(-8)+("00000000"+(y[1]>>>0).toString(16)).slice(-8)+("00000000"+(m[0]>>>0).toString(16)).slice(-8)+("00000000"+(m[1]>>>0).toString(16)).slice(-8)},typeof _n<"u"?(typeof Qs<"u"&&Qs.exports&&(_n=Qs.exports=t),_n.murmurHash3=t):typeof define=="function"&&define.amd?define([],function(){return t}):(t._murmurHash3=r.murmurHash3,t.noConflict=function(){return r.murmurHash3=t._murmurHash3,t._murmurHash3=e,t.noConflict=e,t},r.murmurHash3=t)})(_n)});var fa=bi((mx,Ou)=>{Ou.exports=Du()});var T0={};ge(T0,{RELAY_V2_HOP_CODEC:()=>je,RELAY_V2_STOP_CODEC:()=>ur,circuitRelayServer:()=>Fu,circuitRelayTransport:()=>Qu});var xi=Symbol.for("@libp2p/peer-id");var Va=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 Tt=class r extends Error{code;type;constructor(e="The operation was aborted"){super(e),this.name="AbortError",this.code=r.code,this.type=r.type}static code="ABORT_ERR";static type="aborted"},L=class extends Error{code;props;constructor(e,t,n){super(e),this.code=t,this.name=n?.name??"CodeError",this.props=n??{}}};var Ke=(r,...e)=>{try{[...e]}catch{}};var qe=class extends EventTarget{#e=new Map;constructor(){super(),Ke(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 s=this.#e.get(e);s==null&&(s=[],this.#e.set(e,s)),s.push({callback:t,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,t,n){super.removeEventListener(e.toString(),t??null,n);let s=this.#e.get(e);s!=null&&(s=s.filter(({callback:i})=>i!==t),this.#e.set(e,s))}dispatchEvent(e){let t=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:s})=>!s),this.#e.set(e.type,n)),t}safeDispatchEvent(e,t={}){return this.dispatchEvent(new pf(e,t))}},pf=globalThis.CustomEvent;function Ha(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function Fa(...r){let e=[];for(let t of r)Ha(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStart!=null&&await t.beforeStart()})),await Promise.all(e.map(async t=>{await t.start()})),await Promise.all(e.map(async t=>{t.afterStart!=null&&await t.afterStart()}))}async function Ka(...r){let e=[];for(let t of r)Ha(t)&&e.push(t);await Promise.all(e.map(async t=>{t.beforeStop!=null&&await t.beforeStop()})),await Promise.all(e.map(async t=>{await t.stop()})),await Promise.all(e.map(async t=>{t.afterStop!=null&&await t.afterStop()}))}var qa=Symbol.for("@libp2p/service-capabilities"),za=Symbol.for("@libp2p/service-dependencies");var Bi={};ge(Bi,{base58btc:()=>fe,base58flickr:()=>xf});var ag=new Uint8Array(0);function $a(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 ht(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 Ga(r){return new TextEncoder().encode(r)}function ja(r){return new TextDecoder().decode(r)}function gf(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 s=0;s<r.length;s++){var i=r.charAt(s),o=i.charCodeAt(0);if(t[o]!==255)throw new TypeError(i+" is ambiguous");t[o]=s}var a=r.length,c=r.charAt(0),h=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);function l(d){if(d instanceof Uint8Array||(ArrayBuffer.isView(d)?d=new Uint8Array(d.buffer,d.byteOffset,d.byteLength):Array.isArray(d)&&(d=Uint8Array.from(d))),!(d instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(d.length===0)return"";for(var p=0,w=0,y=0,m=d.length;y!==m&&d[y]===0;)y++,p++;for(var b=(m-y)*f+1>>>0,A=new Uint8Array(b);y!==m;){for(var S=d[y],B=0,v=b-1;(S!==0||B<w)&&v!==-1;v--,B++)S+=256*A[v]>>>0,A[v]=S%a>>>0,S=S/a>>>0;if(S!==0)throw new Error("Non-zero carry");w=B,y++}for(var _=b-w;_!==b&&A[_]===0;)_++;for(var $=c.repeat(p);_<b;++_)$+=r.charAt(A[_]);return $}function g(d){if(typeof d!="string")throw new TypeError("Expected String");if(d.length===0)return new Uint8Array;var p=0;if(d[p]!==" "){for(var w=0,y=0;d[p]===c;)w++,p++;for(var m=(d.length-p)*h+1>>>0,b=new Uint8Array(m);d[p];){var A=t[d.charCodeAt(p)];if(A===255)return;for(var S=0,B=m-1;(A!==0||S<y)&&B!==-1;B--,S++)A+=a*b[B]>>>0,b[B]=A%256>>>0,A=A/256>>>0;if(A!==0)throw new Error("Non-zero carry");y=S,p++}if(d[p]!==" "){for(var v=m-y;v!==m&&b[v]===0;)v++;for(var _=new Uint8Array(w+(m-v)),$=w;v!==m;)_[$++]=b[v++];return _}}}function u(d){var p=g(d);if(p)return p;throw new Error(`Non-${e} character`)}return{encode:l,decodeUnsafe:g,decode:u}}var mf=gf,yf=mf,Ya=yf;var vi=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")}},Ei=class{name;prefix;baseDecode;prefixCodePoint;constructor(e,t,n){if(this.name=e,this.prefix=t,t.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=t.codePointAt(0),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 Za(this,e)}},Ai=class{decoders;constructor(e){this.decoders=e}or(e){return Za(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 Za(r,e){return new Ai({...r.decoders??{[r.prefix]:r},...e.decoders??{[e.prefix]:e}})}var Si=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(e,t,n,s){this.name=e,this.prefix=t,this.baseEncode=n,this.baseDecode=s,this.encoder=new vi(e,t,n),this.decoder=new Ei(e,t,s)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}};function gr({name:r,prefix:e,encode:t,decode:n}){return new Si(r,e,t,n)}function Rt({name:r,prefix:e,alphabet:t}){let{encode:n,decode:s}=Ya(t,r);return gr({prefix:e,name:r,encode:n,decode:i=>ht(s(i))})}function bf(r,e,t,n){let s={};for(let f=0;f<e.length;++f)s[e[f]]=f;let i=r.length;for(;r[i-1]==="=";)--i;let o=new Uint8Array(i*t/8|0),a=0,c=0,h=0;for(let f=0;f<i;++f){let l=s[r[f]];if(l===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<t|l,a+=t,a>=8&&(a-=8,o[h++]=255&c>>a)}if(a>=t||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o}function wf(r,e,t){let n=e[e.length-1]==="=",s=(1<<t)-1,i="",o=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],o+=8;o>t;)o-=t,i+=e[s&a>>o];if(o!==0&&(i+=e[s&a<<t-o]),n)for(;i.length*t&7;)i+="=";return i}function ie({name:r,prefix:e,bitsPerChar:t,alphabet:n}){return gr({prefix:e,name:r,encode(s){return wf(s,n,t)},decode(s){return bf(s,n,t,r)}})}var fe=Rt({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),xf=Rt({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var _i={};ge(_i,{base10:()=>vf});var vf=Rt({prefix:"9",name:"base10",alphabet:"0123456789"});var Ii={};ge(Ii,{base16:()=>Ef,base16upper:()=>Af});var Ef=ie({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),Af=ie({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var ki={};ge(ki,{base2:()=>Sf});var Sf=ie({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Ti={};ge(Ti,{base256emoji:()=>Tf});var Xa=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}"),Bf=Xa.reduce((r,e,t)=>(r[t]=e,r),[]),_f=Xa.reduce((r,e,t)=>(r[e.codePointAt(0)]=t,r),[]);function If(r){return r.reduce((e,t)=>(e+=Bf[t],e),"")}function kf(r){let e=[];for(let t of r){let n=_f[t.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${t}`);e.push(n)}return new Uint8Array(e)}var Tf=gr({prefix:"\u{1F680}",name:"base256emoji",encode:If,decode:kf});var Ri={};ge(Ri,{base32:()=>dt,base32hex:()=>Lf,base32hexpad:()=>Df,base32hexpadupper:()=>Of,base32hexupper:()=>Uf,base32pad:()=>Nf,base32padupper:()=>Cf,base32upper:()=>Rf,base32z:()=>Pf});var dt=ie({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),Rf=ie({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),Nf=ie({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),Cf=ie({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),Lf=ie({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),Uf=ie({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),Df=ie({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Of=ie({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Pf=ie({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ni={};ge(Ni,{base36:()=>Mf,base36upper:()=>Vf});var Mf=Rt({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),Vf=Rt({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var Li={};ge(Li,{base64:()=>Ci,base64pad:()=>Hf,base64url:()=>Ff,base64urlpad:()=>Kf});var Ci=ie({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),Hf=ie({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),Ff=ie({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),Kf=ie({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var Ui={};ge(Ui,{base8:()=>qf});var qf=ie({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Di={};ge(Di,{identity:()=>zf});var zf=gr({prefix:"\0",name:"identity",encode:r=>ja(r),decode:r=>Ga(r)});var Ag=new TextEncoder,Sg=new TextDecoder;var Pi={};ge(Pi,{identity:()=>pt});var jf=ec,Ja=128,Wf=127,Yf=~Wf,Zf=Math.pow(2,31);function ec(r,e,t){e=e||[],t=t||0;for(var n=t;r>=Zf;)e[t++]=r&255|Ja,r/=128;for(;r&Yf;)e[t++]=r&255|Ja,r>>>=7;return e[t]=r|0,ec.bytes=t-n+1,e}var Xf=Oi,Jf=128,Qa=127;function Oi(r,n){var t=0,n=n||0,s=0,i=n,o,a=r.length;do{if(i>=a)throw Oi.bytes=0,new RangeError("Could not decode varint");o=r[i++],t+=s<28?(o&Qa)<<s:(o&Qa)*Math.pow(2,s),s+=7}while(o>=Jf);return Oi.bytes=i-n,t}var Qf=Math.pow(2,7),eh=Math.pow(2,14),th=Math.pow(2,21),rh=Math.pow(2,28),nh=Math.pow(2,35),sh=Math.pow(2,42),ih=Math.pow(2,49),oh=Math.pow(2,56),ah=Math.pow(2,63),ch=function(r){return r<Qf?1:r<eh?2:r<th?3:r<rh?4:r<nh?5:r<sh?6:r<ih?7:r<oh?8:r<ah?9:10},lh={encode:jf,decode:Xf,encodingLength:ch},uh=lh,Yr=uh;function Zr(r,e=0){return[Yr.decode(r,e),Yr.decode.bytes]}function mr(r,e,t=0){return Yr.encode(r,e,t),e}function yr(r){return Yr.encodingLength(r)}function st(r,e){let t=e.byteLength,n=yr(r),s=n+yr(t),i=new Uint8Array(s+t);return mr(r,i,0),mr(t,i,n),i.set(e,s),new br(r,t,e,i)}function Xt(r){let e=ht(r),[t,n]=Zr(e),[s,i]=Zr(e.subarray(n)),o=e.subarray(n+i);if(o.byteLength!==s)throw new Error("Incorrect length");return new br(t,s,o,e)}function tc(r,e){if(r===e)return!0;{let t=e;return r.code===t.code&&r.size===t.size&&t.bytes instanceof Uint8Array&&$a(r.bytes,t.bytes)}}var br=class{code;size;digest;bytes;constructor(e,t,n,s){this.code=e,this.size=t,this.digest=n,this.bytes=s}};var rc=0,fh="identity",nc=ht;function hh(r){return st(rc,nc(r))}var pt={code:rc,name:fh,encode:nc,digest:hh};var Hi={};ge(Hi,{sha256:()=>me,sha512:()=>dh});function Vi({name:r,code:e,encode:t}){return new Mi(r,e,t)}var Mi=class{name;code;encode;constructor(e,t,n){this.name=e,this.code=t,this.encode=n}digest(e){if(e instanceof Uint8Array){let t=this.encode(e);return t instanceof Uint8Array?st(this.code,t):t.then(n=>st(this.code,n))}else throw Error("Unknown type, must be binary type")}};function ic(r){return async e=>new Uint8Array(await crypto.subtle.digest(r,e))}var me=Vi({name:"sha2-256",code:18,encode:ic("SHA-256")}),dh=Vi({name:"sha2-512",code:19,encode:ic("SHA-512")});function oc(r,e){let{bytes:t,version:n}=r;switch(n){case 0:return gh(t,Fi(r),e??fe.encoder);default:return mh(t,Fi(r),e??dt.encoder)}}var ac=new WeakMap;function Fi(r){let e=ac.get(r);if(e==null){let t=new Map;return ac.set(r,t),t}return e}var Ue=class r{code;version;multihash;bytes;"/";constructor(e,t,n,s){this.code=t,this.version=e,this.multihash=n,this.bytes=s,this["/"]=s}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!==Xr)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(t.code!==yh)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=st(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&&tc(e.multihash,n.multihash)}toString(e){return oc(this,e)}toJSON(){return{"/":oc(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:s,multihash:i,bytes:o}=t;return new r(n,s,i,o??cc(n,s,i.bytes))}else if(t[bh]===!0){let{version:n,multihash:s,code:i}=t,o=Xt(s);return r.create(n,i,o)}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!==Xr)throw new Error(`Version 0 CID must use dag-pb (code: ${Xr}) block encoding`);return new r(e,t,n,n.bytes)}case 1:{let s=cc(e,t,n.bytes);return new r(e,t,n,s)}default:throw new Error("Invalid version")}}static createV0(e){return r.create(0,Xr,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,s=ht(e.subarray(n,n+t.multihashSize));if(s.byteLength!==t.multihashSize)throw new Error("Incorrect length");let i=s.subarray(t.multihashSize-t.digestSize),o=new br(t.multihashCode,t.digestSize,i,s);return[t.version===0?r.createV0(o):r.createV1(t.codec,o),e.subarray(t.size)]}static inspectBytes(e){let t=0,n=()=>{let[l,g]=Zr(e.subarray(t));return t+=g,l},s=n(),i=Xr;if(s===18?(s=0,t=0):i=n(),s!==0&&s!==1)throw new RangeError(`Invalid CID version ${s}`);let o=t,a=n(),c=n(),h=t+c,f=h-o;return{version:s,codec:i,multihashCode:a,digestSize:c,multihashSize:f,size:h}}static parse(e,t){let[n,s]=ph(e,t),i=r.decode(s);if(i.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Fi(i).set(n,e),i}};function ph(r,e){switch(r[0]){case"Q":{let t=e??fe;return[fe.prefix,t.decode(`${fe.prefix}${r}`)]}case fe.prefix:{let t=e??fe;return[fe.prefix,t.decode(r)]}case dt.prefix:{let t=e??dt;return[dt.prefix,t.decode(r)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],e.decode(r)]}}}function gh(r,e,t){let{prefix:n}=t;if(n!==fe.prefix)throw Error(`Cannot string encode V0 in ${t.name} encoding`);let s=e.get(n);if(s==null){let i=t.encode(r).slice(1);return e.set(n,i),i}else return s}function mh(r,e,t){let{prefix:n}=t,s=e.get(n);if(s==null){let i=t.encode(r);return e.set(n,i),i}else return s}var Xr=112,yh=18;function cc(r,e,t){let n=yr(r),s=n+yr(e),i=new Uint8Array(s+t.byteLength);return mr(r,i,0),mr(e,i,n),i.set(t,s),i}var bh=Symbol.for("@ipld/js-cid/CID");var Nt={...Di,...ki,...Ui,..._i,...Ii,...Ri,...Ni,...Bi,...Li,...Ti},$g={...Hi,...Pi};function oe(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 we(r=0){return new Uint8Array(r)}function Re(r=0){return new Uint8Array(r)}function uc(r,e,t,n){return{name:r,prefix:e,encoder:{name:r,prefix:e,encode:t},decoder:{decode:n}}}var lc=uc("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),Ki=uc("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=Re(r.length);for(let t=0;t<r.length;t++)e[t]=r.charCodeAt(t);return e}),wh={utf8:lc,"utf-8":lc,hex:Nt.base16,latin1:Ki,ascii:Ki,binary:Ki,...Nt},Cn=wh;function M(r,e="utf8"){let t=Cn[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.decoder.decode(`${t.prefix}${r}`)}function G(r,e="utf8"){let t=Cn[e];if(t==null)throw new Error(`Unsupported encoding "${e}"`);return t.encoder.encode(r).substring(1)}var hc=Symbol.for("nodejs.util.inspect.custom"),fc=Object.values(Nt).map(r=>r.decoder).reduce((r,e)=>r.or(e),Nt.identity.decoder),dc=114,$i=36,Gi=37,Jr=class{type;multihash;privateKey;publicKey;string;constructor(e){this.type=e.type,this.multihash=e.multihash,this.privateKey=e.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[xi]=!0;toString(){return this.string==null&&(this.string=fe.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Ue.createV1(dc,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e==null)return!1;if(e instanceof Uint8Array)return oe(this.multihash.bytes,e);if(typeof e=="string")return Ct(e).equals(this);if(e?.multihash?.bytes!=null)return oe(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[hc](){return`PeerId(${this.toString()})`}},wr=class extends Jr{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},xr=class extends Jr{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.multihash.digest}},vr=class extends Jr{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.multihash.digest}},qi=2336,zi=class{type="url";multihash;privateKey;publicKey;url;constructor(e){this.url=e.toString(),this.multihash=pt.digest(M(this.url))}[hc](){return`PeerId(${this.url})`}[xi]=!0;toString(){return this.toCID().toString()}toCID(){return Ue.createV1(qi,this.multihash)}toBytes(){return this.toCID().bytes}equals(e){return e==null?!1:(e instanceof Uint8Array&&(e=G(e)),e.toString()===this.toString())}};function Ct(r,e){if(e=e??fc,r.charAt(0)==="1"||r.charAt(0)==="Q"){let t=Xt(fe.decode(`z${r}`));return r.startsWith("12D")?new xr({multihash:t}):r.startsWith("16U")?new vr({multihash:t}):new wr({multihash:t})}return Qr(fc.decode(r))}function Qr(r){try{let e=Xt(r);if(e.code===pt.code){if(e.digest.length===$i)return new xr({multihash:e});if(e.digest.length===Gi)return new vr({multihash:e})}if(e.code===me.code)return new wr({multihash:e})}catch{return xh(Ue.decode(r))}throw new Error("Supplied PeerID CID is invalid")}function xh(r){if(r?.multihash==null||r.version==null||r.version===1&&r.code!==dc&&r.code!==qi)throw new Error("Supplied PeerID CID is invalid");if(r.code===qi){let t=G(r.multihash.digest);return new zi(new URL(t))}let e=r.multihash;if(e.code===me.code)return new wr({multihash:r.multihash});if(e.code===pt.code){if(e.digest.length===$i)return new xr({multihash:r.multihash});if(e.digest.length===Gi)return new vr({multihash:r.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function pc(r,e){return r.length===$i?new xr({multihash:st(pt.code,r),privateKey:e}):r.length===Gi?new vr({multihash:st(pt.code,r),privateKey:e}):new wr({multihash:await me.digest(r),publicKey:r,privateKey:e})}var ko={};ge(ko,{Ed25519PrivateKey:()=>or,Ed25519PublicKey:()=>cn,generateKeyPair:()=>zd,generateKeyPairFromSeed:()=>Wc,unmarshalEd25519PrivateKey:()=>Kd,unmarshalEd25519PublicKey:()=>qd});function _e(r,e){e==null&&(e=r.reduce((s,i)=>s+i.length,0));let t=Re(e),n=0;for(let s of r)t.set(s,n),n+=s.length;return t}function ze(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}function Er(r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`positive integer expected, not ${r}`)}function vh(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function Ar(r,...e){if(!vh(r))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(r.length))throw new Error(`Uint8Array expected of length ${e}, not of length=${r.length}`)}function Ln(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");Er(r.outputLen),Er(r.blockLen)}function Sr(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 gc(r,e){Ar(r);let t=e.outputLen;if(r.length<t)throw new Error(`digestInto() expects output buffer of length at least ${t}`)}var Un=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var _r=r=>new DataView(r.buffer,r.byteOffset,r.byteLength),Ze=(r,e)=>r<<32-e|r>>>e;var Sm=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;var Eh=async()=>{};async function mc(r,e,t){let n=Date.now();for(let s=0;s<r;s++){t(s);let i=Date.now()-n;i>=0&&i<e||(await Eh(),n+=i)}}function yc(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}function Lt(r){return typeof r=="string"&&(r=yc(r)),Ar(r),r}function ji(...r){let e=0;for(let n=0;n<r.length;n++){let s=r[n];Ar(s),e+=s.length}let t=new Uint8Array(e);for(let n=0,s=0;n<r.length;n++){let i=r[n];t.set(i,s),s+=i.length}return t}var Br=class{clone(){return this._cloneInto()}},Ah={}.toString;function bc(r,e){if(e!==void 0&&Ah.call(e)!=="[object Object]")throw new Error("Options should be object or undefined");return Object.assign(r,e)}function Dn(r){let e=n=>r().update(Lt(n)).digest(),t=r();return e.outputLen=t.outputLen,e.blockLen=t.blockLen,e.create=()=>r(),e}function Ir(r=32){if(Un&&typeof Un.getRandomValues=="function")return Un.getRandomValues(new Uint8Array(r));throw new Error("crypto.getRandomValues must be defined")}function Sh(r,e,t,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(e,t,n);let s=BigInt(32),i=BigInt(4294967295),o=Number(t>>s&i),a=Number(t&i),c=n?4:0,h=n?0:4;r.setUint32(e+c,o,n),r.setUint32(e+h,a,n)}var wc=(r,e,t)=>r&e^~r&t,xc=(r,e,t)=>r&e^r&t^e&t,kr=class extends Br{constructor(e,t,n,s){super(),this.blockLen=e,this.outputLen=t,this.padOffset=n,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=_r(this.buffer)}update(e){Sr(this);let{view:t,buffer:n,blockLen:s}=this;e=Lt(e);let i=e.length;for(let o=0;o<i;){let a=Math.min(s-this.pos,i-o);if(a===s){let c=_r(e);for(;s<=i-o;o+=s)this.process(c,o);continue}n.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===s&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Sr(this),gc(e,this),this.finished=!0;let{buffer:t,view:n,blockLen:s,isLE:i}=this,{pos:o}=this;t[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>s-o&&(this.process(n,0),o=0);for(let l=o;l<s;l++)t[l]=0;Sh(n,s-8,BigInt(this.length*8),i),this.process(n,0);let a=_r(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let h=c/4,f=this.get();if(h>f.length)throw new Error("_sha2: outputLen bigger than state");for(let l=0;l<h;l++)a.setUint32(4*l,f[l],i)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let n=e.slice(0,t);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:n,length:s,finished:i,destroyed:o,pos:a}=this;return e.length=s,e.pos=a,e.finished=i,e.destroyed=o,s%t&&e.buffer.set(n),e}};var On=BigInt(4294967295),Wi=BigInt(32);function vc(r,e=!1){return e?{h:Number(r&On),l:Number(r>>Wi&On)}:{h:Number(r>>Wi&On)|0,l:Number(r&On)|0}}function Bh(r,e=!1){let t=new Uint32Array(r.length),n=new Uint32Array(r.length);for(let s=0;s<r.length;s++){let{h:i,l:o}=vc(r[s],e);[t[s],n[s]]=[i,o]}return[t,n]}var _h=(r,e)=>BigInt(r>>>0)<<Wi|BigInt(e>>>0),Ih=(r,e,t)=>r>>>t,kh=(r,e,t)=>r<<32-t|e>>>t,Th=(r,e,t)=>r>>>t|e<<32-t,Rh=(r,e,t)=>r<<32-t|e>>>t,Nh=(r,e,t)=>r<<64-t|e>>>t-32,Ch=(r,e,t)=>r>>>t-32|e<<64-t,Lh=(r,e)=>e,Uh=(r,e)=>r,Dh=(r,e,t)=>r<<t|e>>>32-t,Oh=(r,e,t)=>e<<t|r>>>32-t,Ph=(r,e,t)=>e<<t-32|r>>>64-t,Mh=(r,e,t)=>r<<t-32|e>>>64-t;function Vh(r,e,t,n){let s=(e>>>0)+(n>>>0);return{h:r+t+(s/2**32|0)|0,l:s|0}}var Hh=(r,e,t)=>(r>>>0)+(e>>>0)+(t>>>0),Fh=(r,e,t,n)=>e+t+n+(r/2**32|0)|0,Kh=(r,e,t,n)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0),qh=(r,e,t,n,s)=>e+t+n+s+(r/2**32|0)|0,zh=(r,e,t,n,s)=>(r>>>0)+(e>>>0)+(t>>>0)+(n>>>0)+(s>>>0),$h=(r,e,t,n,s,i)=>e+t+n+s+i+(r/2**32|0)|0;var Gh={fromBig:vc,split:Bh,toBig:_h,shrSH:Ih,shrSL:kh,rotrSH:Th,rotrSL:Rh,rotrBH:Nh,rotrBL:Ch,rotr32H:Lh,rotr32L:Uh,rotlSH:Dh,rotlSL:Oh,rotlBH:Ph,rotlBL:Mh,add:Vh,add3L:Hh,add3H:Fh,add4L:Kh,add4H:qh,add5H:$h,add5L:zh},V=Gh;var[jh,Wh]=V.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(r=>BigInt(r))),Ut=new Uint32Array(80),Dt=new Uint32Array(80),Yi=class extends kr{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:e,Al:t,Bh:n,Bl:s,Ch:i,Cl:o,Dh:a,Dl:c,Eh:h,El:f,Fh:l,Fl:g,Gh:u,Gl:d,Hh:p,Hl:w}=this;return[e,t,n,s,i,o,a,c,h,f,l,g,u,d,p,w]}set(e,t,n,s,i,o,a,c,h,f,l,g,u,d,p,w){this.Ah=e|0,this.Al=t|0,this.Bh=n|0,this.Bl=s|0,this.Ch=i|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=h|0,this.El=f|0,this.Fh=l|0,this.Fl=g|0,this.Gh=u|0,this.Gl=d|0,this.Hh=p|0,this.Hl=w|0}process(e,t){for(let b=0;b<16;b++,t+=4)Ut[b]=e.getUint32(t),Dt[b]=e.getUint32(t+=4);for(let b=16;b<80;b++){let A=Ut[b-15]|0,S=Dt[b-15]|0,B=V.rotrSH(A,S,1)^V.rotrSH(A,S,8)^V.shrSH(A,S,7),v=V.rotrSL(A,S,1)^V.rotrSL(A,S,8)^V.shrSL(A,S,7),_=Ut[b-2]|0,$=Dt[b-2]|0,H=V.rotrSH(_,$,19)^V.rotrBH(_,$,61)^V.shrSH(_,$,6),F=V.rotrSL(_,$,19)^V.rotrBL(_,$,61)^V.shrSL(_,$,6),Q=V.add4L(v,F,Dt[b-7],Dt[b-16]),C=V.add4H(Q,B,H,Ut[b-7],Ut[b-16]);Ut[b]=C|0,Dt[b]=Q|0}let{Ah:n,Al:s,Bh:i,Bl:o,Ch:a,Cl:c,Dh:h,Dl:f,Eh:l,El:g,Fh:u,Fl:d,Gh:p,Gl:w,Hh:y,Hl:m}=this;for(let b=0;b<80;b++){let A=V.rotrSH(l,g,14)^V.rotrSH(l,g,18)^V.rotrBH(l,g,41),S=V.rotrSL(l,g,14)^V.rotrSL(l,g,18)^V.rotrBL(l,g,41),B=l&u^~l&p,v=g&d^~g&w,_=V.add5L(m,S,v,Wh[b],Dt[b]),$=V.add5H(_,y,A,B,jh[b],Ut[b]),H=_|0,F=V.rotrSH(n,s,28)^V.rotrBH(n,s,34)^V.rotrBH(n,s,39),Q=V.rotrSL(n,s,28)^V.rotrBL(n,s,34)^V.rotrBL(n,s,39),C=n&i^n&a^i&a,N=s&o^s&c^o&c;y=p|0,m=w|0,p=u|0,w=d|0,u=l|0,d=g|0,{h:l,l:g}=V.add(h|0,f|0,$|0,H|0),h=a|0,f=c|0,a=i|0,c=o|0,i=n|0,o=s|0;let E=V.add3L(H,Q,N);n=V.add3H(E,$,F,C),s=E|0}({h:n,l:s}=V.add(this.Ah|0,this.Al|0,n|0,s|0)),{h:i,l:o}=V.add(this.Bh|0,this.Bl|0,i|0,o|0),{h:a,l:c}=V.add(this.Ch|0,this.Cl|0,a|0,c|0),{h,l:f}=V.add(this.Dh|0,this.Dl|0,h|0,f|0),{h:l,l:g}=V.add(this.Eh|0,this.El|0,l|0,g|0),{h:u,l:d}=V.add(this.Fh|0,this.Fl|0,u|0,d|0),{h:p,l:w}=V.add(this.Gh|0,this.Gl|0,p|0,w|0),{h:y,l:m}=V.add(this.Hh|0,this.Hl|0,y|0,m|0),this.set(n,s,i,o,a,c,h,f,l,g,u,d,p,w,y,m)}roundClean(){Ut.fill(0),Dt.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var en=Dn(()=>new Yi);var Mn={};ge(Mn,{aInRange:()=>Ne,abool:()=>Xe,abytes:()=>Tr,bitGet:()=>td,bitLen:()=>ed,bitMask:()=>rn,bitSet:()=>rd,bytesToHex:()=>mt,bytesToNumberBE:()=>yt,bytesToNumberLE:()=>Pt,concatBytes:()=>bt,createHmacDrbg:()=>eo,ensureBytes:()=>ae,equalBytes:()=>Jh,hexToBytes:()=>Qt,hexToNumber:()=>Qi,inRange:()=>tn,isBytes:()=>Ot,memoized:()=>tr,notImplemented:()=>sd,numberToBytesBE:()=>Mt,numberToBytesLE:()=>er,numberToHexUnpadded:()=>Sc,numberToVarBytesBE:()=>Xh,utf8ToBytes:()=>Qh,validateObject:()=>it});var Ji=BigInt(0),Pn=BigInt(1),Yh=BigInt(2);function Ot(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function Tr(r){if(!Ot(r))throw new Error("Uint8Array expected")}function Xe(r,e){if(typeof e!="boolean")throw new Error(`${r} must be valid boolean, got "${e}".`)}var Zh=Array.from({length:256},(r,e)=>e.toString(16).padStart(2,"0"));function mt(r){Tr(r);let e="";for(let t=0;t<r.length;t++)e+=Zh[r[t]];return e}function Sc(r){let e=r.toString(16);return e.length&1?`0${e}`:e}function Qi(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return BigInt(r===""?"0":`0x${r}`)}var gt={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function Ec(r){if(r>=gt._0&&r<=gt._9)return r-gt._0;if(r>=gt._A&&r<=gt._F)return r-(gt._A-10);if(r>=gt._a&&r<=gt._f)return r-(gt._a-10)}function Qt(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);let e=r.length,t=e/2;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);let n=new Uint8Array(t);for(let s=0,i=0;s<t;s++,i+=2){let o=Ec(r.charCodeAt(i)),a=Ec(r.charCodeAt(i+1));if(o===void 0||a===void 0){let c=r[i]+r[i+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+i)}n[s]=o*16+a}return n}function yt(r){return Qi(mt(r))}function Pt(r){return Tr(r),Qi(mt(Uint8Array.from(r).reverse()))}function Mt(r,e){return Qt(r.toString(16).padStart(e*2,"0"))}function er(r,e){return Mt(r,e).reverse()}function Xh(r){return Qt(Sc(r))}function ae(r,e,t){let n;if(typeof e=="string")try{n=Qt(e)}catch(i){throw new Error(`${r} must be valid hex string, got "${e}". Cause: ${i}`)}else if(Ot(e))n=Uint8Array.from(e);else throw new Error(`${r} must be hex string or Uint8Array`);let s=n.length;if(typeof t=="number"&&s!==t)throw new Error(`${r} expected ${t} bytes, got ${s}`);return n}function bt(...r){let e=0;for(let n=0;n<r.length;n++){let s=r[n];Tr(s),e+=s.length}let t=new Uint8Array(e);for(let n=0,s=0;n<r.length;n++){let i=r[n];t.set(i,s),s+=i.length}return t}function Jh(r,e){if(r.length!==e.length)return!1;let t=0;for(let n=0;n<r.length;n++)t|=r[n]^e[n];return t===0}function Qh(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}var Zi=r=>typeof r=="bigint"&&Ji<=r;function tn(r,e,t){return Zi(r)&&Zi(e)&&Zi(t)&&e<=r&&r<t}function Ne(r,e,t,n){if(!tn(e,t,n))throw new Error(`expected valid ${r}: ${t} <= n < ${n}, got ${typeof e} ${e}`)}function ed(r){let e;for(e=0;r>Ji;r>>=Pn,e+=1);return e}function td(r,e){return r>>BigInt(e)&Pn}function rd(r,e,t){return r|(t?Pn:Ji)<<BigInt(e)}var rn=r=>(Yh<<BigInt(r-1))-Pn,Xi=r=>new Uint8Array(r),Ac=r=>Uint8Array.from(r);function eo(r,e,t){if(typeof r!="number"||r<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof t!="function")throw new Error("hmacFn must be a function");let n=Xi(r),s=Xi(r),i=0,o=()=>{n.fill(1),s.fill(0),i=0},a=(...l)=>t(s,n,...l),c=(l=Xi())=>{s=a(Ac([0]),l),n=a(),l.length!==0&&(s=a(Ac([1]),l),n=a())},h=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let l=0,g=[];for(;l<e;){n=a();let u=n.slice();g.push(u),l+=n.length}return bt(...g)};return(l,g)=>{o(),c(l);let u;for(;!(u=g(h()));)c();return o(),u}}var nd={bigint:r=>typeof r=="bigint",function:r=>typeof r=="function",boolean:r=>typeof r=="boolean",string:r=>typeof r=="string",stringOrUint8Array:r=>typeof r=="string"||Ot(r),isSafeInteger:r=>Number.isSafeInteger(r),array:r=>Array.isArray(r),field:(r,e)=>e.Fp.isValid(r),hash:r=>typeof r=="function"&&Number.isSafeInteger(r.outputLen)};function it(r,e,t={}){let n=(s,i,o)=>{let a=nd[i];if(typeof a!="function")throw new Error(`Invalid validator "${i}", expected function`);let c=r[s];if(!(o&&c===void 0)&&!a(c,r))throw new Error(`Invalid param ${String(s)}=${c} (${typeof c}), expected ${i}`)};for(let[s,i]of Object.entries(e))n(s,i,!1);for(let[s,i]of Object.entries(t))n(s,i,!0);return r}var sd=()=>{throw new Error("not implemented")};function tr(r){let e=new WeakMap;return(t,...n)=>{let s=e.get(t);if(s!==void 0)return s;let i=r(t,...n);return e.set(t,i),i}}var he=BigInt(0),ee=BigInt(1),rr=BigInt(2),id=BigInt(3),to=BigInt(4),Bc=BigInt(5),_c=BigInt(8),od=BigInt(9),ad=BigInt(16);function X(r,e){let t=r%e;return t>=he?t:e+t}function cd(r,e,t){if(t<=he||e<he)throw new Error("Expected power/modulo > 0");if(t===ee)return he;let n=ee;for(;e>he;)e&ee&&(n=n*r%t),r=r*r%t,e>>=ee;return n}function te(r,e,t){let n=r;for(;e-- >he;)n*=n,n%=t;return n}function Vn(r,e){if(r===he||e<=he)throw new Error(`invert: expected positive integers, got n=${r} mod=${e}`);let t=X(r,e),n=e,s=he,i=ee,o=ee,a=he;for(;t!==he;){let h=n/t,f=n%t,l=s-o*h,g=i-a*h;n=t,t=f,s=o,i=a,o=l,a=g}if(n!==ee)throw new Error("invert: does not exist");return X(s,e)}function ld(r){let e=(r-ee)/rr,t,n,s;for(t=r-ee,n=0;t%rr===he;t/=rr,n++);for(s=rr;s<r&&cd(s,e,r)!==r-ee;s++);if(n===1){let o=(r+ee)/to;return function(c,h){let f=c.pow(h,o);if(!c.eql(c.sqr(f),h))throw new Error("Cannot find square root");return f}}let i=(t+ee)/rr;return function(a,c){if(a.pow(c,e)===a.neg(a.ONE))throw new Error("Cannot find square root");let h=n,f=a.pow(a.mul(a.ONE,s),t),l=a.pow(c,i),g=a.pow(c,t);for(;!a.eql(g,a.ONE);){if(a.eql(g,a.ZERO))return a.ZERO;let u=1;for(let p=a.sqr(g);u<h&&!a.eql(p,a.ONE);u++)p=a.sqr(p);let d=a.pow(f,ee<<BigInt(h-u-1));f=a.sqr(d),l=a.mul(l,d),g=a.mul(g,f),h=u}return l}}function ud(r){if(r%to===id){let e=(r+ee)/to;return function(n,s){let i=n.pow(s,e);if(!n.eql(n.sqr(i),s))throw new Error("Cannot find square root");return i}}if(r%_c===Bc){let e=(r-Bc)/_c;return function(n,s){let i=n.mul(s,rr),o=n.pow(i,e),a=n.mul(s,o),c=n.mul(n.mul(a,rr),o),h=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(h),s))throw new Error("Cannot find square root");return h}}return r%ad,ld(r)}var Ic=(r,e)=>(X(r,e)&ee)===ee,fd=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ro(r){let e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},t=fd.reduce((n,s)=>(n[s]="function",n),e);return it(r,t)}function hd(r,e,t){if(t<he)throw new Error("Expected power > 0");if(t===he)return r.ONE;if(t===ee)return e;let n=r.ONE,s=e;for(;t>he;)t&ee&&(n=r.mul(n,s)),s=r.sqr(s),t>>=ee;return n}function dd(r,e){let t=new Array(e.length),n=e.reduce((i,o,a)=>r.is0(o)?i:(t[a]=i,r.mul(i,o)),r.ONE),s=r.inv(n);return e.reduceRight((i,o,a)=>r.is0(o)?i:(t[a]=r.mul(i,t[a]),r.mul(i,o)),s),t}function no(r,e){let t=e!==void 0?e:r.toString(2).length,n=Math.ceil(t/8);return{nBitLength:t,nByteLength:n}}function Hn(r,e,t=!1,n={}){if(r<=he)throw new Error(`Expected Field ORDER > 0, got ${r}`);let{nBitLength:s,nByteLength:i}=no(r,e);if(i>2048)throw new Error("Field lengths over 2048 bytes are not supported");let o=ud(r),a=Object.freeze({ORDER:r,BITS:s,BYTES:i,MASK:rn(s),ZERO:he,ONE:ee,create:c=>X(c,r),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return he<=c&&c<r},is0:c=>c===he,isOdd:c=>(c&ee)===ee,neg:c=>X(-c,r),eql:(c,h)=>c===h,sqr:c=>X(c*c,r),add:(c,h)=>X(c+h,r),sub:(c,h)=>X(c-h,r),mul:(c,h)=>X(c*h,r),pow:(c,h)=>hd(a,c,h),div:(c,h)=>X(c*Vn(h,r),r),sqrN:c=>c*c,addN:(c,h)=>c+h,subN:(c,h)=>c-h,mulN:(c,h)=>c*h,inv:c=>Vn(c,r),sqrt:n.sqrt||(c=>o(a,c)),invertBatch:c=>dd(a,c),cmov:(c,h,f)=>f?h:c,toBytes:c=>t?er(c,i):Mt(c,i),fromBytes:c=>{if(c.length!==i)throw new Error(`Fp.fromBytes: expected ${i}, got ${c.length}`);return t?Pt(c):yt(c)}});return Object.freeze(a)}function kc(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 so(r){let e=kc(r);return e+Math.ceil(e/2)}function Tc(r,e,t=!1){let n=r.length,s=kc(e),i=so(e);if(n<16||n<i||n>1024)throw new Error(`expected ${i}-1024 bytes of input, got ${n}`);let o=t?yt(r):Pt(r),a=X(o,e-ee)+ee;return t?er(a,s):Mt(a,s)}var gd=BigInt(0),io=BigInt(1),oo=new WeakMap,Rc=new WeakMap;function Fn(r,e){let t=(i,o)=>{let a=o.negate();return i?a:o},n=i=>{if(!Number.isSafeInteger(i)||i<=0||i>e)throw new Error(`Wrong window size=${i}, should be [1..${e}]`)},s=i=>{n(i);let o=Math.ceil(e/i)+1,a=2**(i-1);return{windows:o,windowSize:a}};return{constTimeNegate:t,unsafeLadder(i,o){let a=r.ZERO,c=i;for(;o>gd;)o&io&&(a=a.add(c)),c=c.double(),o>>=io;return a},precomputeWindow(i,o){let{windows:a,windowSize:c}=s(o),h=[],f=i,l=f;for(let g=0;g<a;g++){l=f,h.push(l);for(let u=1;u<c;u++)l=l.add(f),h.push(l);f=l.double()}return h},wNAF(i,o,a){let{windows:c,windowSize:h}=s(i),f=r.ZERO,l=r.BASE,g=BigInt(2**i-1),u=2**i,d=BigInt(i);for(let p=0;p<c;p++){let w=p*h,y=Number(a&g);a>>=d,y>h&&(y-=u,a+=io);let m=w,b=w+Math.abs(y)-1,A=p%2!==0,S=y<0;y===0?l=l.add(t(A,o[m])):f=f.add(t(S,o[b]))}return{p:f,f:l}},wNAFCached(i,o,a){let c=Rc.get(i)||1,h=oo.get(i);return h||(h=this.precomputeWindow(i,c),c!==1&&oo.set(i,a(h))),this.wNAF(c,h,o)},setWindowSize(i,o){n(o),Rc.set(i,o),oo.delete(i)}}}function nn(r){return ro(r.Fp),it(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...no(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}var Je=BigInt(0),Ce=BigInt(1),Kn=BigInt(2),md=BigInt(8),yd={zip215:!0};function bd(r){let e=nn(r);return it(r,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...e})}function Nc(r){let e=bd(r),{Fp:t,n,prehash:s,hash:i,randomBytes:o,nByteLength:a,h:c}=e,h=Kn<<BigInt(a*8)-Ce,f=t.create,l=e.uvRatio||((E,x)=>{try{return{isValid:!0,value:t.sqrt(E*t.inv(x))}}catch{return{isValid:!1,value:Je}}}),g=e.adjustScalarBytes||(E=>E),u=e.domain||((E,x,I)=>{if(Xe("phflag",I),x.length||I)throw new Error("Contexts/pre-hash are not supported");return E});function d(E,x){Ne("coordinate "+E,x,Je,h)}function p(E){if(!(E instanceof m))throw new Error("ExtendedPoint expected")}let w=tr((E,x)=>{let{ex:I,ey:T,ez:D}=E,O=E.is0();x==null&&(x=O?md:t.inv(D));let P=f(I*x),j=f(T*x),K=f(D*x);if(O)return{x:Je,y:Ce};if(K!==Ce)throw new Error("invZ was invalid");return{x:P,y:j}}),y=tr(E=>{let{a:x,d:I}=e;if(E.is0())throw new Error("bad point: ZERO");let{ex:T,ey:D,ez:O,et:P}=E,j=f(T*T),K=f(D*D),W=f(O*O),ne=f(W*W),se=f(j*x),Te=f(W*f(se+K)),de=f(ne+f(I*f(j*K)));if(Te!==de)throw new Error("bad point: equation left != right (1)");let ue=f(T*D),We=f(O*P);if(ue!==We)throw new Error("bad point: equation left != right (2)");return!0});class m{constructor(x,I,T,D){this.ex=x,this.ey=I,this.ez=T,this.et=D,d("x",x),d("y",I),d("z",T),d("t",D),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(x){if(x instanceof m)throw new Error("extended point not allowed");let{x:I,y:T}=x||{};return d("x",I),d("y",T),new m(I,T,Ce,f(I*T))}static normalizeZ(x){let I=t.invertBatch(x.map(T=>T.ez));return x.map((T,D)=>T.toAffine(I[D])).map(m.fromAffine)}_setWindowSize(x){S.setWindowSize(this,x)}assertValidity(){y(this)}equals(x){p(x);let{ex:I,ey:T,ez:D}=this,{ex:O,ey:P,ez:j}=x,K=f(I*j),W=f(O*D),ne=f(T*j),se=f(P*D);return K===W&&ne===se}is0(){return this.equals(m.ZERO)}negate(){return new m(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:x}=e,{ex:I,ey:T,ez:D}=this,O=f(I*I),P=f(T*T),j=f(Kn*f(D*D)),K=f(x*O),W=I+T,ne=f(f(W*W)-O-P),se=K+P,Te=se-j,de=K-P,ue=f(ne*Te),We=f(se*de),pe=f(ne*de),Ye=f(Te*se);return new m(ue,We,Ye,pe)}add(x){p(x);let{a:I,d:T}=e,{ex:D,ey:O,ez:P,et:j}=this,{ex:K,ey:W,ez:ne,et:se}=x;if(I===BigInt(-1)){let Ra=f((O-D)*(W+K)),Na=f((O+D)*(W-K)),yi=f(Na-Ra);if(yi===Je)return this.double();let Ca=f(P*Kn*se),La=f(j*Kn*ne),Ua=La+Ca,Da=Na+Ra,Oa=La-Ca,nf=f(Ua*yi),sf=f(Da*Oa),of=f(Ua*Oa),af=f(yi*Da);return new m(nf,sf,af,of)}let Te=f(D*K),de=f(O*W),ue=f(j*T*se),We=f(P*ne),pe=f((D+O)*(K+W)-Te-de),Ye=We-ue,Zt=We+ue,Wr=f(de-I*Te),Tn=f(pe*Ye),ef=f(Zt*Wr),tf=f(pe*Wr),rf=f(Ye*Zt);return new m(Tn,ef,rf,tf)}subtract(x){return this.add(x.negate())}wNAF(x){return S.wNAFCached(this,x,m.normalizeZ)}multiply(x){let I=x;Ne("scalar",I,Ce,n);let{p:T,f:D}=this.wNAF(I);return m.normalizeZ([T,D])[0]}multiplyUnsafe(x){let I=x;return Ne("scalar",I,Je,n),I===Je?A:this.equals(A)||I===Ce?this:this.equals(b)?this.wNAF(I).p:S.unsafeLadder(this,I)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return S.unsafeLadder(this,n).is0()}toAffine(x){return w(this,x)}clearCofactor(){let{h:x}=e;return x===Ce?this:this.multiplyUnsafe(x)}static fromHex(x,I=!1){let{d:T,a:D}=e,O=t.BYTES;x=ae("pointHex",x,O),Xe("zip215",I);let P=x.slice(),j=x[O-1];P[O-1]=j&-129;let K=Pt(P),W=I?h:t.ORDER;Ne("pointHex.y",K,Je,W);let ne=f(K*K),se=f(ne-Ce),Te=f(T*ne-D),{isValid:de,value:ue}=l(se,Te);if(!de)throw new Error("Point.fromHex: invalid y coordinate");let We=(ue&Ce)===Ce,pe=(j&128)!==0;if(!I&&ue===Je&&pe)throw new Error("Point.fromHex: x=0 and x_0=1");return pe!==We&&(ue=f(-ue)),m.fromAffine({x:ue,y:K})}static fromPrivateKey(x){return _(x).point}toRawBytes(){let{x,y:I}=this.toAffine(),T=er(I,t.BYTES);return T[T.length-1]|=x&Ce?128:0,T}toHex(){return mt(this.toRawBytes())}}m.BASE=new m(e.Gx,e.Gy,Ce,f(e.Gx*e.Gy)),m.ZERO=new m(Je,Ce,Ce,Je);let{BASE:b,ZERO:A}=m,S=Fn(m,a*8);function B(E){return X(E,n)}function v(E){return B(Pt(E))}function _(E){let x=a;E=ae("private key",E,x);let I=ae("hashed private key",i(E),2*x),T=g(I.slice(0,x)),D=I.slice(x,2*x),O=v(T),P=b.multiply(O),j=P.toRawBytes();return{head:T,prefix:D,scalar:O,point:P,pointBytes:j}}function $(E){return _(E).pointBytes}function H(E=new Uint8Array,...x){let I=bt(...x);return v(i(u(I,ae("context",E),!!s)))}function F(E,x,I={}){E=ae("message",E),s&&(E=s(E));let{prefix:T,scalar:D,pointBytes:O}=_(x),P=H(I.context,T,E),j=b.multiply(P).toRawBytes(),K=H(I.context,j,O,E),W=B(P+K*D);Ne("signature.s",W,Je,n);let ne=bt(j,er(W,t.BYTES));return ae("result",ne,a*2)}let Q=yd;function C(E,x,I,T=Q){let{context:D,zip215:O}=T,P=t.BYTES;E=ae("signature",E,2*P),x=ae("message",x),O!==void 0&&Xe("zip215",O),s&&(x=s(x));let j=Pt(E.slice(P,2*P)),K,W,ne;try{K=m.fromHex(I,O),W=m.fromHex(E.slice(0,P),O),ne=b.multiplyUnsafe(j)}catch{return!1}if(!O&&K.isSmallOrder())return!1;let se=H(D,W.toRawBytes(),K.toRawBytes(),x);return W.add(K.multiplyUnsafe(se)).subtract(ne).clearCofactor().equals(m.ZERO)}return b._setWindowSize(8),{CURVE:e,getPublicKey:$,sign:F,verify:C,ExtendedPoint:m,utils:{getExtendedPublicKey:_,randomPrivateKey:()=>o(t.BYTES),precompute(E=8,x=m.BASE){return x._setWindowSize(E),x.multiply(BigInt(3)),x}}}}var ao=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),Cc=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),jm=BigInt(0),wd=BigInt(1),Lc=BigInt(2),Wm=BigInt(3),xd=BigInt(5),vd=BigInt(8);function Ed(r){let e=BigInt(10),t=BigInt(20),n=BigInt(40),s=BigInt(80),i=ao,a=r*r%i*r%i,c=te(a,Lc,i)*a%i,h=te(c,wd,i)*r%i,f=te(h,xd,i)*h%i,l=te(f,e,i)*f%i,g=te(l,t,i)*l%i,u=te(g,n,i)*g%i,d=te(u,s,i)*u%i,p=te(d,s,i)*u%i,w=te(p,e,i)*f%i;return{pow_p_5_8:te(w,Lc,i)*r%i,b2:a}}function Ad(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}function Sd(r,e){let t=ao,n=X(e*e*e,t),s=X(n*n*e,t),i=Ed(r*s).pow_p_5_8,o=X(r*n*i,t),a=X(e*o*o,t),c=o,h=X(o*Cc,t),f=a===r,l=a===X(-r,t),g=a===X(-r*Cc,t);return f&&(o=c),(l||g)&&(o=h),Ic(o,t)&&(o=X(-o,t)),{isValid:f||l,value:o}}var Bd=Hn(ao,void 0,!0),_d={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:Bd,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:vd,Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:en,randomBytes:Ir,adjustScalarBytes:Ad,uvRatio:Sd},Rr=Nc(_d);var Nr=32,wt=64,qn=32;function Uc(){let r=Rr.utils.randomPrivateKey(),e=Rr.getPublicKey(r);return{privateKey:Mc(r,e),publicKey:e}}function Dc(r){if(r.length!==qn)throw new TypeError('"seed" must be 32 bytes in length.');if(!(r instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let e=r,t=Rr.getPublicKey(e);return{privateKey:Mc(e,t),publicKey:t}}function Oc(r,e){let t=r.subarray(0,qn);return Rr.sign(e instanceof Uint8Array?e:e.subarray(),t)}function Pc(r,e,t){return Rr.verify(e,t instanceof Uint8Array?t:t.subarray(),r)}function Mc(r,e){let t=new Uint8Array(wt);for(let n=0;n<qn;n++)t[n]=r[n],t[qn+n]=e[n];return t}var Ie={get(r=globalThis){let e=r.crypto;if(e?.subtle==null)throw Object.assign(new Error("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return e}};var co={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function Vc(r){let e=r?.algorithm??"AES-GCM",t=r?.keyLength??16,n=r?.nonceLength??12,s=r?.digest??"SHA-256",i=r?.saltLength??16,o=r?.iterations??32767,a=Ie.get();t*=8;async function c(l,g){let u=a.getRandomValues(new Uint8Array(i)),d=a.getRandomValues(new Uint8Array(n)),p={name:e,iv:d};typeof g=="string"&&(g=M(g));let w;if(g.length===0){w=await a.subtle.importKey("jwk",co,{name:"AES-GCM"},!0,["encrypt"]);try{let m={name:"PBKDF2",salt:u,iterations:o,hash:{name:s}},b=await a.subtle.importKey("raw",g,{name:"PBKDF2"},!1,["deriveKey"]);w=await a.subtle.deriveKey(m,b,{name:e,length:t},!0,["encrypt"])}catch{w=await a.subtle.importKey("jwk",co,{name:"AES-GCM"},!0,["encrypt"])}}else{let m={name:"PBKDF2",salt:u,iterations:o,hash:{name:s}},b=await a.subtle.importKey("raw",g,{name:"PBKDF2"},!1,["deriveKey"]);w=await a.subtle.deriveKey(m,b,{name:e,length:t},!0,["encrypt"])}let y=await a.subtle.encrypt(p,w,l);return _e([u,p.iv,new Uint8Array(y)])}async function h(l,g){let u=l.subarray(0,i),d=l.subarray(i,i+n),p=l.subarray(i+n),w={name:e,iv:d};typeof g=="string"&&(g=M(g));let y;if(g.length===0)try{let b={name:"PBKDF2",salt:u,iterations:o,hash:{name:s}},A=await a.subtle.importKey("raw",g,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(b,A,{name:e,length:t},!0,["decrypt"])}catch{y=await a.subtle.importKey("jwk",co,{name:"AES-GCM"},!0,["decrypt"])}else{let b={name:"PBKDF2",salt:u,iterations:o,hash:{name:s}},A=await a.subtle.importKey("raw",g,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(b,A,{name:e,length:t},!0,["decrypt"])}let m=await a.subtle.decrypt(w,y,p);return new Uint8Array(m)}return{encrypt:c,decrypt:h}}async function Cr(r,e){let n=await Vc().encrypt(r,e);return Ci.encode(n)}var Td=Math.pow(2,7),Rd=Math.pow(2,14),Nd=Math.pow(2,21),lo=Math.pow(2,28),uo=Math.pow(2,35),fo=Math.pow(2,42),ho=Math.pow(2,49),Y=128,Ee=127;function Ae(r){if(r<Td)return 1;if(r<Rd)return 2;if(r<Nd)return 3;if(r<lo)return 4;if(r<uo)return 5;if(r<fo)return 6;if(r<ho)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function po(r,e,t=0){switch(Ae(r)){case 8:e[t++]=r&255|Y,r/=128;case 7:e[t++]=r&255|Y,r/=128;case 6:e[t++]=r&255|Y,r/=128;case 5:e[t++]=r&255|Y,r/=128;case 4:e[t++]=r&255|Y,r>>>=7;case 3:e[t++]=r&255|Y,r>>>=7;case 2:e[t++]=r&255|Y,r>>>=7;case 1:{e[t++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return e}function Cd(r,e,t=0){switch(Ae(r)){case 8:e.set(t++,r&255|Y),r/=128;case 7:e.set(t++,r&255|Y),r/=128;case 6:e.set(t++,r&255|Y),r/=128;case 5:e.set(t++,r&255|Y),r/=128;case 4:e.set(t++,r&255|Y),r>>>=7;case 3:e.set(t++,r&255|Y),r>>>=7;case 2:e.set(t++,r&255|Y),r>>>=7;case 1:{e.set(t++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return e}function go(r,e){let t=r[e],n=0;if(n+=t&Ee,t<Y||(t=r[e+1],n+=(t&Ee)<<7,t<Y)||(t=r[e+2],n+=(t&Ee)<<14,t<Y)||(t=r[e+3],n+=(t&Ee)<<21,t<Y)||(t=r[e+4],n+=(t&Ee)*lo,t<Y)||(t=r[e+5],n+=(t&Ee)*uo,t<Y)||(t=r[e+6],n+=(t&Ee)*fo,t<Y)||(t=r[e+7],n+=(t&Ee)*ho,t<Y))return n;throw new RangeError("Could not decode varint")}function Ld(r,e){let t=r.get(e),n=0;if(n+=t&Ee,t<Y||(t=r.get(e+1),n+=(t&Ee)<<7,t<Y)||(t=r.get(e+2),n+=(t&Ee)<<14,t<Y)||(t=r.get(e+3),n+=(t&Ee)<<21,t<Y)||(t=r.get(e+4),n+=(t&Ee)*lo,t<Y)||(t=r.get(e+5),n+=(t&Ee)*uo,t<Y)||(t=r.get(e+6),n+=(t&Ee)*fo,t<Y)||(t=r.get(e+7),n+=(t&Ee)*ho,t<Y))return n;throw new RangeError("Could not decode varint")}function $e(r,e,t=0){return e==null&&(e=Re(Ae(r))),e instanceof Uint8Array?po(r,e,t):Cd(r,e,t)}function xt(r,e=0){return r instanceof Uint8Array?go(r,e):Ld(r,e)}var mo=new Float32Array([-0]),Vt=new Uint8Array(mo.buffer);function Hc(r,e,t){mo[0]=r,e[t]=Vt[0],e[t+1]=Vt[1],e[t+2]=Vt[2],e[t+3]=Vt[3]}function Fc(r,e){return Vt[0]=r[e],Vt[1]=r[e+1],Vt[2]=r[e+2],Vt[3]=r[e+3],mo[0]}var yo=new Float64Array([-0]),Se=new Uint8Array(yo.buffer);function Kc(r,e,t){yo[0]=r,e[t]=Se[0],e[t+1]=Se[1],e[t+2]=Se[2],e[t+3]=Se[3],e[t+4]=Se[4],e[t+5]=Se[5],e[t+6]=Se[6],e[t+7]=Se[7]}function qc(r,e){return Se[0]=r[e],Se[1]=r[e+1],Se[2]=r[e+2],Se[3]=r[e+3],Se[4]=r[e+4],Se[5]=r[e+5],Se[6]=r[e+6],Se[7]=r[e+7],yo[0]}var Ud=BigInt(Number.MAX_SAFE_INTEGER),Dd=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 nr;if(e<Ud&&e>Dd)return this.fromNumber(Number(e));let t=e<0n;t&&(e=-e);let n=e>>32n,s=e-(n<<32n);return t&&(n=~n|0n,s=~s|0n,++s>zc&&(s=0n,++n>zc&&(n=0n))),new r(Number(s),Number(n))}static fromNumber(e){if(e===0)return nr;let t=e<0;t&&(e=-e);let n=e>>>0,s=(e-n)/4294967296>>>0;return t&&(s=~s>>>0,n=~n>>>0,++n>4294967295&&(n=0,++s>4294967295&&(s=0))),new r(n,s)}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):nr}},nr=new De(0,0);nr.toBigInt=function(){return 0n};nr.zzEncode=nr.zzDecode=function(){return this};nr.length=function(){return 1};var zc=4294967296n;function $c(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 Gc(r,e,t){if(t-e<1)return"";let s,i=[],o=0,a;for(;e<t;)a=r[e++],a<128?i[o++]=a:a>191&&a<224?i[o++]=(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,i[o++]=55296+(a>>10),i[o++]=56320+(a&1023)):i[o++]=(a&15)<<12|(r[e++]&63)<<6|r[e++]&63,o>8191&&((s??(s=[])).push(String.fromCharCode.apply(String,i)),o=0);return s!=null?(o>0&&s.push(String.fromCharCode.apply(String,i.slice(0,o))),s.join("")):String.fromCharCode.apply(String,i.slice(0,o))}function bo(r,e,t){let n=t,s,i;for(let o=0;o<r.length;++o)s=r.charCodeAt(o),s<128?e[t++]=s:s<2048?(e[t++]=s>>6|192,e[t++]=s&63|128):(s&64512)===55296&&((i=r.charCodeAt(o+1))&64512)===56320?(s=65536+((s&1023)<<10)+(i&1023),++o,e[t++]=s>>18|240,e[t++]=s>>12&63|128,e[t++]=s>>6&63|128,e[t++]=s&63|128):(e[t++]=s>>12|224,e[t++]=s>>6&63|128,e[t++]=s&63|128);return t-n}function Qe(r,e){return RangeError(`index out of range: ${r.pos} + ${e??1} > ${r.len}`)}function $n(r,e){return(r[e-4]|r[e-3]<<8|r[e-2]<<16|r[e-1]<<24)>>>0}var wo=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,Qe(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 Qe(this,4);return $n(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Qe(this,4);return $n(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Qe(this,4);let e=Fc(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw Qe(this,4);let e=qc(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 Qe(this,e);return this.pos+=e,t===n?new Uint8Array(0):this.buf.subarray(t,n)}string(){let e=this.bytes();return Gc(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Qe(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Qe(this);while(this.buf[this.pos++]&128);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 Qe(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 Qe(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 Qe(this,8);let e=$n(this.buf,this.pos+=4),t=$n(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=go(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 xo(r){return new wo(r instanceof Uint8Array?r:r.subarray())}function Oe(r,e,t){let n=xo(r);return e.decode(n,void 0,t)}function vo(r){let e=r??8192,t=e>>>1,n,s=e;return function(o){if(o<1||o>t)return Re(o);s+o>e&&(n=Re(e),s=0);let a=n.subarray(s,s+=o);return s&7&&(s=(s|7)+1),a}}var sr=class{fn;len;next;val;constructor(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}};function Eo(){}var So=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},Od=vo();function Pd(r){return globalThis.Buffer!=null?Re(r):Od(r)}var on=class{len;head;tail;states;constructor(){this.len=0,this.head=new sr(Eo,0,0),this.tail=this.head,this.states=null}_push(e,t,n){return this.tail=this.tail.next=new sr(e,t,n),this.len+=t,this}uint32(e){return this.len+=(this.tail=this.tail.next=new Bo((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(Gn,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(Gn,t.length(),t)}uint64Number(e){return this._push(po,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(Gn,t.length(),t)}sint64Number(e){let t=De.fromNumber(e).zzEncode();return this._push(Gn,t.length(),t)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(Ao,1,e?1:0)}fixed32(e){return this._push(sn,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let t=De.fromBigInt(e);return this._push(sn,4,t.lo)._push(sn,4,t.hi)}fixed64Number(e){let t=De.fromNumber(e);return this._push(sn,4,t.lo)._push(sn,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(Hc,4,e)}double(e){return this._push(Kc,8,e)}bytes(e){let t=e.length>>>0;return t===0?this._push(Ao,1,0):this.uint32(t)._push(Vd,t,e)}string(e){let t=$c(e);return t!==0?this.uint32(t)._push(bo,t,e):this._push(Ao,1,0)}fork(){return this.states=new So(this),this.head=this.tail=new sr(Eo,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 sr(Eo,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=Pd(this.len),n=0;for(;e!=null;)e.fn(e.val,t,n),n+=e.len,e=e.next;return t}};function Ao(r,e,t){e[t]=r&255}function Md(r,e,t){for(;r>127;)e[t++]=r&127|128,r>>>=7;e[t]=r}var Bo=class extends sr{next;constructor(e,t){super(Md,e,t),this.next=void 0}};function Gn(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 sn(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 Vd(r,e,t){e.set(r,t)}globalThis.Buffer!=null&&(on.prototype.bytes=function(r){let e=r.length>>>0;return this.uint32(e),e>0&&this._push(Hd,e,r),this},on.prototype.string=function(r){let e=globalThis.Buffer.byteLength(r);return this.uint32(e),e>0&&this._push(Fd,e,r),this});function Hd(r,e,t){e.set(r,t)}function Fd(r,e,t){r.length<40?bo(r,e,t):e.utf8Write!=null?e.utf8Write(r,t):e.set(M(r),t)}function _o(){return new on}function Pe(r,e){let t=_o();return e.encode(r,t,{lengthDelimited:!1}),t.finish()}var Lr;(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"})(Lr||(Lr={}));function jn(r,e,t,n){return{name:r,type:e,encode:t,decode:n}}function ir(r){function e(s){if(r[s.toString()]==null)throw new Error("Invalid enum value");return r[s]}let t=function(i,o){let a=e(i);o.int32(a)},n=function(i){let o=i.int32();return e(o)};return jn("enum",Lr.VARINT,t,n)}function Me(r,e){return jn("message",Lr.LENGTH_DELIMITED,r,e)}var an=class extends Error{code;constructor(e,t){super(e),this.code=t}};var re;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.Secp256k1="Secp256k1"})(re||(re={}));var Io;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.Secp256k1=2]="Secp256k1"})(Io||(Io={}));(function(r){r.codec=()=>ir(Io)})(re||(re={}));var ot;(function(r){let e;r.codec=()=>(e==null&&(e=Me((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),re.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),s.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let s={},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let o=t.uint32();switch(o>>>3){case 1:s.Type=re.codec().decode(t);break;case 2:s.Data=t.bytes();break;default:t.skipType(o&7);break}}return s})),e),r.encode=t=>Pe(t,r.codec()),r.decode=t=>Oe(t,r.codec())})(ot||(ot={}));var at;(function(r){let e;r.codec=()=>(e==null&&(e=Me((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.Type!=null&&(n.uint32(8),re.codec().encode(t.Type,n)),t.Data!=null&&(n.uint32(18),n.bytes(t.Data)),s.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let s={},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let o=t.uint32();switch(o>>>3){case 1:s.Type=re.codec().decode(t);break;case 2:s.Data=t.bytes();break;default:t.skipType(o&7);break}}return s})),e),r.encode=t=>Pe(t,r.codec()),r.decode=t=>Oe(t,r.codec())})(at||(at={}));var cn=class{_key;constructor(e){this._key=Ur(e,Nr)}verify(e,t){return Pc(this._key,t,e)}marshal(){return this._key}get bytes(){return ot.encode({Type:re.Ed25519,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}hash(){let e=me.digest(this.bytes);return ze(e)?e.then(({bytes:t})=>t):e.bytes}},or=class{_key;_publicKey;constructor(e,t){this._key=Ur(e,wt),this._publicKey=Ur(t,Nr)}sign(e){return Oc(this._key,e)}get public(){return new cn(this._publicKey)}marshal(){return this._key}get bytes(){return at.encode({Type:re.Ed25519,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}async hash(){let e=me.digest(this.bytes),t;return ze(e)?{bytes:t}=await e:t=e.bytes,t}async id(){let e=pt.digest(this.public.bytes);return fe.encode(e.bytes).substring(1)}async export(e,t="libp2p-key"){if(t==="libp2p-key")return Cr(this.bytes,e);throw new L(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Kd(r){if(r.length>wt){r=Ur(r,wt+Nr);let n=r.subarray(0,wt),s=r.subarray(wt,r.length);return new or(n,s)}r=Ur(r,wt);let e=r.subarray(0,wt),t=r.subarray(Nr);return new or(e,t)}function qd(r){return r=Ur(r,Nr),new cn(r)}async function zd(){let{privateKey:r,publicKey:e}=Uc();return new or(r,e)}async function Wc(r){let{privateKey:e,publicKey:t}=Dc(r);return new or(e,t)}function Ur(r,e){if(r=Uint8Array.from(r??[]),r.length!==e)throw new L(`Key must be a Uint8Array of length ${e}, got ${r.length}`,"ERR_INVALID_KEY_TYPE");return r}var Mo={};ge(Mo,{MAX_RSA_KEY_SIZE:()=>xn,RsaPrivateKey:()=>Vr,RsaPublicKey:()=>wn,fromJwk:()=>yp,generateKeyPair:()=>bp,unmarshalRsaPrivateKey:()=>Oo,unmarshalRsaPublicKey:()=>mp});function ct(r){if(isNaN(r)||r<=0)throw new L("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return Ir(r)}var qt={};ge(qt,{exportToPem:()=>fp,importFromPem:()=>hp,jwkToPkcs1:()=>ap,jwkToPkix:()=>lp,pkcs1ToJwk:()=>op,pkixToJwk:()=>cp});var Yn=class extends Br{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,Ln(e);let n=Lt(t);if(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 s=this.blockLen,i=new Uint8Array(s);i.set(n.length>s?e.create().update(n).digest():n);for(let o=0;o<i.length;o++)i[o]^=54;this.iHash.update(i),this.oHash=e.create();for(let o=0;o<i.length;o++)i[o]^=106;this.oHash.update(i),i.fill(0)}update(e){return Sr(this),this.iHash.update(e),this}digestInto(e){Sr(this),Ar(e,this.outputLen),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||(e=Object.create(Object.getPrototypeOf(this),{}));let{oHash:t,iHash:n,finished:s,destroyed:i,blockLen:o,outputLen:a}=this;return e=e,e.finished=s,e.destroyed=i,e.blockLen=o,e.outputLen=a,e.oHash=t._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},ln=(r,e,t)=>new Yn(r,e).update(t).digest();ln.create=(r,e)=>new Yn(r,e);function $d(r,e,t,n){Ln(r);let s=bc({dkLen:32,asyncTick:10},n),{c:i,dkLen:o,asyncTick:a}=s;if(Er(i),Er(o),Er(a),i<1)throw new Error("PBKDF2: iterations (c) should be >= 1");let c=Lt(e),h=Lt(t),f=new Uint8Array(o),l=ln.create(r,c),g=l._cloneInto().update(h);return{c:i,dkLen:o,asyncTick:a,DK:f,PRF:l,PRFSalt:g}}function Gd(r,e,t,n,s){return r.destroy(),e.destroy(),n&&n.destroy(),s.fill(0),t}async function To(r,e,t,n){let{c:s,dkLen:i,asyncTick:o,DK:a,PRF:c,PRFSalt:h}=$d(r,e,t,n),f,l=new Uint8Array(4),g=_r(l),u=new Uint8Array(c.outputLen);for(let d=1,p=0;p<i;d++,p+=c.outputLen){let w=a.subarray(p,p+c.outputLen);g.setInt32(0,d,!1),(f=h._cloneInto(f)).update(l).digestInto(u),w.set(u.subarray(0,w.length)),await mc(s-1,o,()=>{c._cloneInto(f).update(u).digestInto(u);for(let y=0;y<w.length;y++)w[y]^=u[y]})}return Gd(c,h,a,f,u)}var z=wi(Yc());function ar(r,e){let t=0;if(r.length===1)return r[0];for(let n=r.length-1;n>=0;n--)t+=r[r.length-1-n]*Math.pow(2,e*n);return t}function Ht(r,e,t=-1){let n=t,s=r,i=0,o=Math.pow(2,e);for(let a=1;a<8;a++){if(r<o){let c;if(n<0)c=new ArrayBuffer(a),i=a;else{if(n<a)return new ArrayBuffer(0);c=new ArrayBuffer(n),i=n}let h=new Uint8Array(c);for(let f=a-1;f>=0;f--){let l=Math.pow(2,f*e);h[i-f-1]=Math.floor(s/l),s-=h[i-f-1]*l}return c}o*=Math.pow(2,e)}return new ArrayBuffer(0)}function Jn(...r){let e=0,t=0;for(let i of r)e+=i.length;let n=new ArrayBuffer(e),s=new Uint8Array(n);for(let i of r)s.set(i,t),t+=i.length;return s}function No(){let r=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){let a=r[0]===255&&r[1]&128,c=r[0]===0&&(r[1]&128)===0;(a||c)&&this.warnings.push("Needlessly long format")}let e=new ArrayBuffer(this.valueHex.byteLength),t=new Uint8Array(e);for(let a=0;a<this.valueHex.byteLength;a++)t[a]=0;t[0]=r[0]&128;let n=ar(t,8),s=new ArrayBuffer(this.valueHex.byteLength),i=new Uint8Array(s);for(let a=0;a<this.valueHex.byteLength;a++)i[a]=r[a];return i[0]&=127,ar(i,8)-n}function Zc(r){let e=r<0?r*-1:r,t=128;for(let n=1;n<8;n++){if(e<=t){if(r<0){let o=t-e,a=Ht(o,8,n),c=new Uint8Array(a);return c[0]|=128,a}let s=Ht(e,8,n),i=new Uint8Array(s);if(i[0]&128){let o=s.slice(0),a=new Uint8Array(o);s=new ArrayBuffer(s.byteLength+1),i=new Uint8Array(s);for(let c=0;c<o.byteLength;c++)i[c+1]=a[c];i[0]=0}return s}t*=Math.pow(2,8)}return new ArrayBuffer(0)}function Xc(r,e){if(r.byteLength!==e.byteLength)return!1;let t=new Uint8Array(r),n=new Uint8Array(e);for(let s=0;s<t.length;s++)if(t[s]!==n[s])return!1;return!0}function Le(r,e){let t=r.toString(10);if(e<t.length)return"";let n=e-t.length,s=new Array(n);for(let o=0;o<n;o++)s[o]="0";return s.join("").concat(t)}var eb=Math.log(2);function Qn(){if(typeof BigInt>"u")throw new Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function Co(r){let e=0,t=0;for(let s=0;s<r.length;s++){let i=r[s];e+=i.byteLength}let n=new Uint8Array(e);for(let s=0;s<r.length;s++){let i=r[s];n.set(new Uint8Array(i),t),t+=i.byteLength}return n.buffer}function Bt(r,e,t,n){return e instanceof Uint8Array?e.byteLength?t<0?(r.error="Wrong parameter: inputOffset less than zero",!1):n<0?(r.error="Wrong parameter: inputLength less than zero",!1):e.byteLength-t-n<0?(r.error="End of input reached before message was fully decoded (inconsistent offset and length values)",!1):!0:(r.error="Wrong parameter: inputBuffer has zero length",!1):(r.error="Wrong parameter: inputBuffer must be 'Uint8Array'",!1)}var fn=class{constructor(){this.items=[]}write(e){this.items.push(e)}final(){return Co(this.items)}},un=[new Uint8Array([1])],Jc="0123456789";var Pr="",tt=new ArrayBuffer(0),Lo=new Uint8Array(0),hn="EndOfContent",el="OCTET STRING",tl="BIT STRING";function _t(r){var e;return e=class extends r{constructor(...n){var s;super(...n);let i=n[0]||{};this.isHexOnly=(s=i.isHexOnly)!==null&&s!==void 0?s:!1,this.valueHexView=i.valueHex?z.BufferSourceConverter.toUint8Array(i.valueHex):Lo}get valueHex(){return this.valueHexView.slice().buffer}set valueHex(n){this.valueHexView=new Uint8Array(n)}fromBER(n,s,i){let o=n instanceof ArrayBuffer?new Uint8Array(n):n;if(!Bt(this,o,s,i))return-1;let a=s+i;return this.valueHexView=o.subarray(s,a),this.valueHexView.length?(this.blockLength=i,a):(this.warnings.push("Zero buffer length"),s)}toBER(n=!1){return this.isHexOnly?n?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.byteLength===this.valueHexView.buffer.byteLength?this.valueHexView.buffer:this.valueHexView.slice().buffer:(this.error="Flag 'isHexOnly' is not set, abort",tt)}toJSON(){return{...super.toJSON(),isHexOnly:this.isHexOnly,valueHex:z.Convert.ToHex(this.valueHexView)}}},e.NAME="hexBlock",e}var Et=class{constructor({blockLength:e=0,error:t=Pr,warnings:n=[],valueBeforeDecode:s=Lo}={}){this.blockLength=e,this.error=t,this.warnings=n,this.valueBeforeDecodeView=z.BufferSourceConverter.toUint8Array(s)}static blockName(){return this.NAME}get valueBeforeDecode(){return this.valueBeforeDecodeView.slice().buffer}set valueBeforeDecode(e){this.valueBeforeDecodeView=new Uint8Array(e)}toJSON(){return{blockName:this.constructor.NAME,blockLength:this.blockLength,error:this.error,warnings:this.warnings,valueBeforeDecode:z.Convert.ToHex(this.valueBeforeDecodeView)}}};Et.NAME="baseBlock";var Be=class extends Et{fromBER(e,t,n){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}toBER(e,t){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}};Be.NAME="valueBlock";var es=class extends _t(Et){constructor({idBlock:e={}}={}){var t,n,s,i;super(),e?(this.isHexOnly=(t=e.isHexOnly)!==null&&t!==void 0?t:!1,this.valueHexView=e.valueHex?z.BufferSourceConverter.toUint8Array(e.valueHex):Lo,this.tagClass=(n=e.tagClass)!==null&&n!==void 0?n:-1,this.tagNumber=(s=e.tagNumber)!==null&&s!==void 0?s:-1,this.isConstructed=(i=e.isConstructed)!==null&&i!==void 0?i:!1):(this.tagClass=-1,this.tagNumber=-1,this.isConstructed=!1)}toBER(e=!1){let t=0;switch(this.tagClass){case 1:t|=0;break;case 2:t|=64;break;case 3:t|=128;break;case 4:t|=192;break;default:return this.error="Unknown tag class",tt}if(this.isConstructed&&(t|=32),this.tagNumber<31&&!this.isHexOnly){let s=new Uint8Array(1);if(!e){let i=this.tagNumber;i&=31,t|=i,s[0]=t}return s.buffer}if(!this.isHexOnly){let s=Ht(this.tagNumber,7),i=new Uint8Array(s),o=s.byteLength,a=new Uint8Array(o+1);if(a[0]=t|31,!e){for(let c=0;c<o-1;c++)a[c+1]=i[c]|128;a[o]=i[o-1]}return a.buffer}let n=new Uint8Array(this.valueHexView.byteLength+1);if(n[0]=t|31,!e){let s=this.valueHexView;for(let i=0;i<s.length-1;i++)n[i+1]=s[i]|128;n[this.valueHexView.byteLength]=s[s.length-1]}return n.buffer}fromBER(e,t,n){let s=z.BufferSourceConverter.toUint8Array(e);if(!Bt(this,s,t,n))return-1;let i=s.subarray(t,t+n);if(i.length===0)return this.error="Zero buffer length",-1;switch(i[0]&192){case 0:this.tagClass=1;break;case 64:this.tagClass=2;break;case 128:this.tagClass=3;break;case 192:this.tagClass=4;break;default:return this.error="Unknown tag class",-1}this.isConstructed=(i[0]&32)===32,this.isHexOnly=!1;let a=i[0]&31;if(a!==31)this.tagNumber=a,this.blockLength=1;else{let c=1,h=this.valueHexView=new Uint8Array(255),f=255;for(;i[c]&128;){if(h[c-1]=i[c]&127,c++,c>=i.length)return this.error="End of input reached before message was fully decoded",-1;if(c===f){f+=255;let g=new Uint8Array(f);for(let u=0;u<h.length;u++)g[u]=h[u];h=this.valueHexView=new Uint8Array(f)}}this.blockLength=c+1,h[c-1]=i[c]&127;let l=new Uint8Array(c);for(let g=0;g<c;g++)l[g]=h[g];h=this.valueHexView=new Uint8Array(c),h.set(l),this.blockLength<=9?this.tagNumber=ar(h,7):(this.isHexOnly=!0,this.warnings.push("Tag too long, represented as hex-coded"))}if(this.tagClass===1&&this.isConstructed)switch(this.tagNumber){case 1:case 2:case 5:case 6:case 9:case 13:case 14:case 23:case 24:case 31:case 32:case 33:case 34:return this.error="Constructed encoding used for primitive type",-1}return t+this.blockLength}toJSON(){return{...super.toJSON(),tagClass:this.tagClass,tagNumber:this.tagNumber,isConstructed:this.isConstructed}}};es.NAME="identificationBlock";var ts=class extends Et{constructor({lenBlock:e={}}={}){var t,n,s;super(),this.isIndefiniteForm=(t=e.isIndefiniteForm)!==null&&t!==void 0?t:!1,this.longFormUsed=(n=e.longFormUsed)!==null&&n!==void 0?n:!1,this.length=(s=e.length)!==null&&s!==void 0?s:0}fromBER(e,t,n){let s=z.BufferSourceConverter.toUint8Array(e);if(!Bt(this,s,t,n))return-1;let i=s.subarray(t,t+n);if(i.length===0)return this.error="Zero buffer length",-1;if(i[0]===255)return this.error="Length block 0xFF is reserved by standard",-1;if(this.isIndefiniteForm=i[0]===128,this.isIndefiniteForm)return this.blockLength=1,t+this.blockLength;if(this.longFormUsed=!!(i[0]&128),this.longFormUsed===!1)return this.length=i[0],this.blockLength=1,t+this.blockLength;let o=i[0]&127;if(o>8)return this.error="Too big integer",-1;if(o+1>i.length)return this.error="End of input reached before message was fully decoded",-1;let a=t+1,c=s.subarray(a,a+o);return c[o-1]===0&&this.warnings.push("Needlessly long encoded length"),this.length=ar(c,8),this.longFormUsed&&this.length<=127&&this.warnings.push("Unnecessary usage of long length form"),this.blockLength=o+1,t+this.blockLength}toBER(e=!1){let t,n;if(this.length>127&&(this.longFormUsed=!0),this.isIndefiniteForm)return t=new ArrayBuffer(1),e===!1&&(n=new Uint8Array(t),n[0]=128),t;if(this.longFormUsed){let s=Ht(this.length,8);if(s.byteLength>127)return this.error="Too big length",tt;if(t=new ArrayBuffer(s.byteLength+1),e)return t;let i=new Uint8Array(s);n=new Uint8Array(t),n[0]=s.byteLength|128;for(let o=0;o<s.byteLength;o++)n[o+1]=i[o];return t}return t=new ArrayBuffer(1),e===!1&&(n=new Uint8Array(t),n[0]=this.length),t}toJSON(){return{...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,longFormUsed:this.longFormUsed,length:this.length}}};ts.NAME="lengthBlock";var R={},xe=class extends Et{constructor({name:e=Pr,optional:t=!1,primitiveSchema:n,...s}={},i){super(s),this.name=e,this.optional=t,n&&(this.primitiveSchema=n),this.idBlock=new es(s),this.lenBlock=new ts(s),this.valueBlock=i?new i(s):new Be(s)}fromBER(e,t,n){let s=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),s)}toBER(e,t){let n=t||new fn;t||rl(this);let s=this.idBlock.toBER(e);if(n.write(s),this.lenBlock.isIndefiniteForm)n.write(new Uint8Array([128]).buffer),this.valueBlock.toBER(e,n),n.write(new ArrayBuffer(2));else{let i=this.valueBlock.toBER(e);this.lenBlock.length=i.byteLength;let o=this.lenBlock.toBER(e);n.write(o),n.write(i)}return t?tt:n.final()}toJSON(){let e={...super.toJSON(),idBlock:this.idBlock.toJSON(),lenBlock:this.lenBlock.toJSON(),valueBlock:this.valueBlock.toJSON(),name:this.name,optional:this.optional};return this.primitiveSchema&&(e.primitiveSchema=this.primitiveSchema.toJSON()),e}toString(e="ascii"){return e==="ascii"?this.onAsciiEncoding():z.Convert.ToHex(this.toBER())}onAsciiEncoding(){return`${this.constructor.NAME} : ${z.Convert.ToHex(this.valueBlock.valueBeforeDecodeView)}`}isEqual(e){if(this===e)return!0;if(!(e instanceof this.constructor))return!1;let t=this.toBER(),n=e.toBER();return Xc(t,n)}};xe.NAME="BaseBlock";function rl(r){if(r instanceof R.Constructed)for(let e of r.valueBlock.value)rl(e)&&(r.lenBlock.isIndefiniteForm=!0);return!!r.lenBlock.isIndefiniteForm}var rs=class extends xe{constructor({value:e=Pr,...t}={},n){super(t,n),e&&this.fromString(e)}getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e}fromBER(e,t,n){let s=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(this.fromBuffer(this.valueBlock.valueHexView),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),s)}onAsciiEncoding(){return`${this.constructor.NAME} : '${this.valueBlock.value}'`}};rs.NAME="BaseStringBlock";var ns=class extends _t(Be){constructor({isHexOnly:e=!0,...t}={}){super(t),this.isHexOnly=e}};ns.NAME="PrimitiveValueBlock";var nl,ss=class extends xe{constructor(e={}){super(e,ns),this.idBlock.isConstructed=!1}};nl=ss;R.Primitive=nl;ss.NAME="PRIMITIVE";function tp(r,e){if(r instanceof e)return r;let t=new e;return t.idBlock=r.idBlock,t.lenBlock=r.lenBlock,t.warnings=r.warnings,t.valueBeforeDecodeView=r.valueBeforeDecodeView,t}function Ps(r,e=0,t=r.length){let n=e,s=new xe({},Be),i=new Et;if(!Bt(i,r,e,t))return s.error=i.error,{offset:-1,result:s};if(!r.subarray(e,e+t).length)return s.error="Zero buffer length",{offset:-1,result:s};let a=s.idBlock.fromBER(r,e,t);if(s.idBlock.warnings.length&&s.warnings.concat(s.idBlock.warnings),a===-1)return s.error=s.idBlock.error,{offset:-1,result:s};if(e=a,t-=s.idBlock.blockLength,a=s.lenBlock.fromBER(r,e,t),s.lenBlock.warnings.length&&s.warnings.concat(s.lenBlock.warnings),a===-1)return s.error=s.lenBlock.error,{offset:-1,result:s};if(e=a,t-=s.lenBlock.blockLength,!s.idBlock.isConstructed&&s.lenBlock.isIndefiniteForm)return s.error="Indefinite length form used for primitive encoding form",{offset:-1,result:s};let c=xe;switch(s.idBlock.tagClass){case 1:if(s.idBlock.tagNumber>=37&&s.idBlock.isHexOnly===!1)return s.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:s};switch(s.idBlock.tagNumber){case 0:if(s.idBlock.isConstructed&&s.lenBlock.length>0)return s.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:s};c=R.EndOfContent;break;case 1:c=R.Boolean;break;case 2:c=R.Integer;break;case 3:c=R.BitString;break;case 4:c=R.OctetString;break;case 5:c=R.Null;break;case 6:c=R.ObjectIdentifier;break;case 10:c=R.Enumerated;break;case 12:c=R.Utf8String;break;case 13:c=R.RelativeObjectIdentifier;break;case 14:c=R.TIME;break;case 15:return s.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:s};case 16:c=R.Sequence;break;case 17:c=R.Set;break;case 18:c=R.NumericString;break;case 19:c=R.PrintableString;break;case 20:c=R.TeletexString;break;case 21:c=R.VideotexString;break;case 22:c=R.IA5String;break;case 23:c=R.UTCTime;break;case 24:c=R.GeneralizedTime;break;case 25:c=R.GraphicString;break;case 26:c=R.VisibleString;break;case 27:c=R.GeneralString;break;case 28:c=R.UniversalString;break;case 29:c=R.CharacterString;break;case 30:c=R.BmpString;break;case 31:c=R.DATE;break;case 32:c=R.TimeOfDay;break;case 33:c=R.DateTime;break;case 34:c=R.Duration;break;default:{let h=s.idBlock.isConstructed?new R.Constructed:new R.Primitive;h.idBlock=s.idBlock,h.lenBlock=s.lenBlock,h.warnings=s.warnings,s=h}}break;case 2:case 3:case 4:default:c=s.idBlock.isConstructed?R.Constructed:R.Primitive}return s=tp(s,c),a=s.fromBER(r,e,s.lenBlock.isIndefiniteForm?t:s.lenBlock.length),s.valueBeforeDecodeView=r.subarray(n,n+s.blockLength),{offset:a,result:s}}function Mr(r){if(!r.byteLength){let e=new xe({},Be);return e.error="Input buffer has zero length",{offset:-1,result:e}}return Ps(z.BufferSourceConverter.toUint8Array(r).slice(),0,r.byteLength)}function rp(r,e){return r?1:e}var lt=class extends Be{constructor({value:e=[],isIndefiniteForm:t=!1,...n}={}){super(n),this.value=e,this.isIndefiniteForm=t}fromBER(e,t,n){let s=z.BufferSourceConverter.toUint8Array(e);if(!Bt(this,s,t,n))return-1;if(this.valueBeforeDecodeView=s.subarray(t,t+n),this.valueBeforeDecodeView.length===0)return this.warnings.push("Zero buffer length"),t;let i=t;for(;rp(this.isIndefiniteForm,n)>0;){let o=Ps(s,i,n);if(o.offset===-1)return this.error=o.result.error,this.warnings.concat(o.result.warnings),-1;if(i=o.offset,this.blockLength+=o.result.blockLength,n-=o.result.blockLength,this.value.push(o.result),this.isIndefiniteForm&&o.result.constructor.NAME===hn)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===hn?this.value.pop():this.warnings.push("No EndOfContent block encoded")),i}toBER(e,t){let n=t||new fn;for(let s=0;s<this.value.length;s++)this.value[s].toBER(e,n);return t?tt:n.final()}toJSON(){let e={...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,value:[]};for(let t of this.value)e.value.push(t.toJSON());return e}};lt.NAME="ConstructedValueBlock";var sl,Ft=class extends xe{constructor(e={}){super(e,lt),this.idBlock.isConstructed=!0}fromBER(e,t,n){this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm;let s=this.valueBlock.fromBER(e,t,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),s)}onAsciiEncoding(){let e=[];for(let n of this.valueBlock.value)e.push(n.toString("ascii").split(`
|
2
|
+
"use strict";var Libp2PCircuitRelayV2=(()=>{var nf=Object.create;var yn=Object.defineProperty;var sf=Object.getOwnPropertyDescriptor;var of=Object.getOwnPropertyNames;var af=Object.getPrototypeOf,cf=Object.prototype.hasOwnProperty;var bo=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),_t=(r,t)=>{for(var e in t)yn(r,e,{get:t[e],enumerable:!0})},La=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of of(t))!cf.call(r,s)&&s!==e&&yn(r,s,{get:()=>t[s],enumerable:!(n=sf(t,s))||n.enumerable});return r};var wo=(r,t,e)=>(e=r!=null?nf(af(r)):{},La(t||!r||!r.__esModule?yn(e,"default",{value:r,enumerable:!0}):e,r)),lf=r=>La(yn({},"__esModule",{value:!0}),r);var Pc=bo(xr=>{"use strict";var Ud="[object ArrayBuffer]",ge=class r{static isArrayBuffer(t){return Object.prototype.toString.call(t)===Ud}static toArrayBuffer(t){return this.isArrayBuffer(t)?t:t.byteLength===t.buffer.byteLength||t.byteOffset===0&&t.byteLength===t.buffer.byteLength?t.buffer:this.toUint8Array(t.buffer).slice(t.byteOffset,t.byteOffset+t.byteLength).buffer}static toUint8Array(t){return this.toView(t,Uint8Array)}static toView(t,e){if(t.constructor===e)return t;if(this.isArrayBuffer(t))return new e(t);if(this.isArrayBufferView(t))return new e(t.buffer,t.byteOffset,t.byteLength);throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'")}static isBufferSource(t){return this.isArrayBufferView(t)||this.isArrayBuffer(t)}static isArrayBufferView(t){return ArrayBuffer.isView(t)||t&&this.isArrayBuffer(t.buffer)}static isEqual(t,e){let n=r.toUint8Array(t),s=r.toUint8Array(e);if(n.length!==s.byteLength)return!1;for(let o=0;o<n.length;o++)if(n[o]!==s[o])return!1;return!0}static concat(...t){let e;Array.isArray(t[0])&&!(t[1]instanceof Function)||Array.isArray(t[0])&&t[1]instanceof Function?e=t[0]:t[t.length-1]instanceof Function?e=t.slice(0,t.length-1):e=t;let n=0;for(let i of e)n+=i.byteLength;let s=new Uint8Array(n),o=0;for(let i of e){let a=this.toUint8Array(i);s.set(a,o),o+=a.length}return t[t.length-1]instanceof Function?this.toView(s,t[t.length-1]):s.buffer}},_i="string",Dd=/^[0-9a-f]+$/i,Od=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,Md=/^[a-zA-Z0-9-_]+$/,Pn=class{static fromString(t){let e=unescape(encodeURIComponent(t)),n=new Uint8Array(e.length);for(let s=0;s<e.length;s++)n[s]=e.charCodeAt(s);return n.buffer}static toString(t){let e=ge.toUint8Array(t),n="";for(let o=0;o<e.length;o++)n+=String.fromCharCode(e[o]);return decodeURIComponent(escape(n))}},$t=class{static toString(t,e=!1){let n=ge.toArrayBuffer(t),s=new DataView(n),o="";for(let i=0;i<n.byteLength;i+=2){let a=s.getUint16(i,e);o+=String.fromCharCode(a)}return o}static fromString(t,e=!1){let n=new ArrayBuffer(t.length*2),s=new DataView(n);for(let o=0;o<t.length;o++)s.setUint16(o*2,t.charCodeAt(o),e);return n}},Vn=class r{static isHex(t){return typeof t===_i&&Dd.test(t)}static isBase64(t){return typeof t===_i&&Od.test(t)}static isBase64Url(t){return typeof t===_i&&Md.test(t)}static ToString(t,e="utf8"){let n=ge.toUint8Array(t);switch(e.toLowerCase()){case"utf8":return this.ToUtf8String(n);case"binary":return this.ToBinary(n);case"hex":return this.ToHex(n);case"base64":return this.ToBase64(n);case"base64url":return this.ToBase64Url(n);case"utf16le":return $t.toString(n,!0);case"utf16":case"utf16be":return $t.toString(n);default:throw new Error(`Unknown type of encoding '${e}'`)}}static FromString(t,e="utf8"){if(!t)return new ArrayBuffer(0);switch(e.toLowerCase()){case"utf8":return this.FromUtf8String(t);case"binary":return this.FromBinary(t);case"hex":return this.FromHex(t);case"base64":return this.FromBase64(t);case"base64url":return this.FromBase64Url(t);case"utf16le":return $t.fromString(t,!0);case"utf16":case"utf16be":return $t.fromString(t);default:throw new Error(`Unknown type of encoding '${e}'`)}}static ToBase64(t){let e=ge.toUint8Array(t);if(typeof btoa<"u"){let n=this.ToString(e,"binary");return btoa(n)}else return Buffer.from(e).toString("base64")}static FromBase64(t){let e=this.formatString(t);if(!e)return new ArrayBuffer(0);if(!r.isBase64(e))throw new TypeError("Argument 'base64Text' is not Base64 encoded");return typeof atob<"u"?this.FromBinary(atob(e)):new Uint8Array(Buffer.from(e,"base64")).buffer}static FromBase64Url(t){let e=this.formatString(t);if(!e)return new ArrayBuffer(0);if(!r.isBase64Url(e))throw new TypeError("Argument 'base64url' is not Base64Url encoded");return this.FromBase64(this.Base64Padding(e.replace(/\-/g,"+").replace(/\_/g,"/")))}static ToBase64Url(t){return this.ToBase64(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=/g,"")}static FromUtf8String(t,e=r.DEFAULT_UTF8_ENCODING){switch(e){case"ascii":return this.FromBinary(t);case"utf8":return Pn.fromString(t);case"utf16":case"utf16be":return $t.fromString(t);case"utf16le":case"usc2":return $t.fromString(t,!0);default:throw new Error(`Unknown type of encoding '${e}'`)}}static ToUtf8String(t,e=r.DEFAULT_UTF8_ENCODING){switch(e){case"ascii":return this.ToBinary(t);case"utf8":return Pn.toString(t);case"utf16":case"utf16be":return $t.toString(t);case"utf16le":case"usc2":return $t.toString(t,!0);default:throw new Error(`Unknown type of encoding '${e}'`)}}static FromBinary(t){let e=t.length,n=new Uint8Array(e);for(let s=0;s<e;s++)n[s]=t.charCodeAt(s);return n.buffer}static ToBinary(t){let e=ge.toUint8Array(t),n="";for(let s=0;s<e.length;s++)n+=String.fromCharCode(e[s]);return n}static ToHex(t){let e=ge.toUint8Array(t),n="",s=e.length;for(let o=0;o<s;o++){let i=e[o];i<16&&(n+="0"),n+=i.toString(16)}return n}static FromHex(t){let e=this.formatString(t);if(!e)return new ArrayBuffer(0);if(!r.isHex(e))throw new TypeError("Argument 'hexString' is not HEX encoded");e.length%2&&(e=`0${e}`);let n=new Uint8Array(e.length/2);for(let s=0;s<e.length;s=s+2){let o=e.slice(s,s+2);n[s/2]=parseInt(o,16)}return n.buffer}static ToUtf16String(t,e=!1){return $t.toString(t,e)}static FromUtf16String(t,e=!1){return $t.fromString(t,e)}static Base64Padding(t){let e=4-t.length%4;if(e<4)for(let n=0;n<e;n++)t+="=";return t}static formatString(t){return t?.replace(/[\n\r\t ]/g,"")||""}};Vn.DEFAULT_UTF8_ENCODING="utf8";function Pd(r,...t){let e=arguments[0];for(let n=1;n<arguments.length;n++){let s=arguments[n];for(let o in s)e[o]=s[o]}return e}function Vd(...r){let t=r.map(s=>s.byteLength).reduce((s,o)=>s+o),e=new Uint8Array(t),n=0;return r.map(s=>new Uint8Array(s)).forEach(s=>{for(let o of s)e[n++]=o}),e.buffer}function Hd(r,t){if(!(r&&t)||r.byteLength!==t.byteLength)return!1;let e=new Uint8Array(r),n=new Uint8Array(t);for(let s=0;s<r.byteLength;s++)if(e[s]!==n[s])return!1;return!0}xr.BufferSourceConverter=ge;xr.Convert=Vn;xr.assign=Pd;xr.combine=Vd;xr.isEqual=Hd});var Au=bo((pn,Js)=>{(function(r,t){"use strict";var e={version:"3.0.0",x86:{},x64:{},inputValidation:!0};function n(l){if(!Array.isArray(l)&&!ArrayBuffer.isView(l))return!1;for(var d=0;d<l.length;d++)if(!Number.isInteger(l[d])||l[d]<0||l[d]>255)return!1;return!0}function s(l,d){return(l&65535)*d+(((l>>>16)*d&65535)<<16)}function o(l,d){return l<<d|l>>>32-d}function i(l){return l^=l>>>16,l=s(l,2246822507),l^=l>>>13,l=s(l,3266489909),l^=l>>>16,l}function a(l,d){l=[l[0]>>>16,l[0]&65535,l[1]>>>16,l[1]&65535],d=[d[0]>>>16,d[0]&65535,d[1]>>>16,d[1]&65535];var g=[0,0,0,0];return g[3]+=l[3]+d[3],g[2]+=g[3]>>>16,g[3]&=65535,g[2]+=l[2]+d[2],g[1]+=g[2]>>>16,g[2]&=65535,g[1]+=l[1]+d[1],g[0]+=g[1]>>>16,g[1]&=65535,g[0]+=l[0]+d[0],g[0]&=65535,[g[0]<<16|g[1],g[2]<<16|g[3]]}function c(l,d){l=[l[0]>>>16,l[0]&65535,l[1]>>>16,l[1]&65535],d=[d[0]>>>16,d[0]&65535,d[1]>>>16,d[1]&65535];var g=[0,0,0,0];return g[3]+=l[3]*d[3],g[2]+=g[3]>>>16,g[3]&=65535,g[2]+=l[2]*d[3],g[1]+=g[2]>>>16,g[2]&=65535,g[2]+=l[3]*d[2],g[1]+=g[2]>>>16,g[2]&=65535,g[1]+=l[1]*d[3],g[0]+=g[1]>>>16,g[1]&=65535,g[1]+=l[2]*d[2],g[0]+=g[1]>>>16,g[1]&=65535,g[1]+=l[3]*d[1],g[0]+=g[1]>>>16,g[1]&=65535,g[0]+=l[0]*d[3]+l[1]*d[2]+l[2]*d[1]+l[3]*d[0],g[0]&=65535,[g[0]<<16|g[1],g[2]<<16|g[3]]}function h(l,d){return d%=64,d===32?[l[1],l[0]]:d<32?[l[0]<<d|l[1]>>>32-d,l[1]<<d|l[0]>>>32-d]:(d-=32,[l[1]<<d|l[0]>>>32-d,l[0]<<d|l[1]>>>32-d])}function f(l,d){return d%=64,d===0?l:d<32?[l[0]<<d|l[1]>>>32-d,l[1]<<d]:[l[1]<<d-32,0]}function u(l,d){return[l[0]^d[0],l[1]^d[1]]}function p(l){return l=u(l,[0,l[0]>>>1]),l=c(l,[4283543511,3981806797]),l=u(l,[0,l[0]>>>1]),l=c(l,[3301882366,444984403]),l=u(l,[0,l[0]>>>1]),l}e.x86.hash32=function(l,d){if(e.inputValidation&&!n(l))return t;d=d||0;for(var g=l.length%4,y=l.length-g,b=d,w=0,m=3432918353,v=461845907,A=0;A<y;A=A+4)w=l[A]|l[A+1]<<8|l[A+2]<<16|l[A+3]<<24,w=s(w,m),w=o(w,15),w=s(w,v),b^=w,b=o(b,13),b=s(b,5)+3864292196;switch(w=0,g){case 3:w^=l[A+2]<<16;case 2:w^=l[A+1]<<8;case 1:w^=l[A],w=s(w,m),w=o(w,15),w=s(w,v),b^=w}return b^=l.length,b=i(b),b>>>0},e.x86.hash128=function(l,d){if(e.inputValidation&&!n(l))return t;d=d||0;for(var g=l.length%16,y=l.length-g,b=d,w=d,m=d,v=d,A=0,_=0,x=0,B=0,C=597399067,et=2869860233,H=951274213,V=2716044179,U=0;U<y;U=U+16)A=l[U]|l[U+1]<<8|l[U+2]<<16|l[U+3]<<24,_=l[U+4]|l[U+5]<<8|l[U+6]<<16|l[U+7]<<24,x=l[U+8]|l[U+9]<<8|l[U+10]<<16|l[U+11]<<24,B=l[U+12]|l[U+13]<<8|l[U+14]<<16|l[U+15]<<24,A=s(A,C),A=o(A,15),A=s(A,et),b^=A,b=o(b,19),b+=w,b=s(b,5)+1444728091,_=s(_,et),_=o(_,16),_=s(_,H),w^=_,w=o(w,17),w+=m,w=s(w,5)+197830471,x=s(x,H),x=o(x,17),x=s(x,V),m^=x,m=o(m,15),m+=v,m=s(m,5)+2530024501,B=s(B,V),B=o(B,18),B=s(B,C),v^=B,v=o(v,13),v+=b,v=s(v,5)+850148119;switch(A=0,_=0,x=0,B=0,g){case 15:B^=l[U+14]<<16;case 14:B^=l[U+13]<<8;case 13:B^=l[U+12],B=s(B,V),B=o(B,18),B=s(B,C),v^=B;case 12:x^=l[U+11]<<24;case 11:x^=l[U+10]<<16;case 10:x^=l[U+9]<<8;case 9:x^=l[U+8],x=s(x,H),x=o(x,17),x=s(x,V),m^=x;case 8:_^=l[U+7]<<24;case 7:_^=l[U+6]<<16;case 6:_^=l[U+5]<<8;case 5:_^=l[U+4],_=s(_,et),_=o(_,16),_=s(_,H),w^=_;case 4:A^=l[U+3]<<24;case 3:A^=l[U+2]<<16;case 2:A^=l[U+1]<<8;case 1:A^=l[U],A=s(A,C),A=o(A,15),A=s(A,et),b^=A}return b^=l.length,w^=l.length,m^=l.length,v^=l.length,b+=w,b+=m,b+=v,w+=b,m+=b,v+=b,b=i(b),w=i(w),m=i(m),v=i(v),b+=w,b+=m,b+=v,w+=b,m+=b,v+=b,("00000000"+(b>>>0).toString(16)).slice(-8)+("00000000"+(w>>>0).toString(16)).slice(-8)+("00000000"+(m>>>0).toString(16)).slice(-8)+("00000000"+(v>>>0).toString(16)).slice(-8)},e.x64.hash128=function(l,d){if(e.inputValidation&&!n(l))return t;d=d||0;for(var g=l.length%16,y=l.length-g,b=[0,d],w=[0,d],m=[0,0],v=[0,0],A=[2277735313,289559509],_=[1291169091,658871167],x=0;x<y;x=x+16)m=[l[x+4]|l[x+5]<<8|l[x+6]<<16|l[x+7]<<24,l[x]|l[x+1]<<8|l[x+2]<<16|l[x+3]<<24],v=[l[x+12]|l[x+13]<<8|l[x+14]<<16|l[x+15]<<24,l[x+8]|l[x+9]<<8|l[x+10]<<16|l[x+11]<<24],m=c(m,A),m=h(m,31),m=c(m,_),b=u(b,m),b=h(b,27),b=a(b,w),b=a(c(b,[0,5]),[0,1390208809]),v=c(v,_),v=h(v,33),v=c(v,A),w=u(w,v),w=h(w,31),w=a(w,b),w=a(c(w,[0,5]),[0,944331445]);switch(m=[0,0],v=[0,0],g){case 15:v=u(v,f([0,l[x+14]],48));case 14:v=u(v,f([0,l[x+13]],40));case 13:v=u(v,f([0,l[x+12]],32));case 12:v=u(v,f([0,l[x+11]],24));case 11:v=u(v,f([0,l[x+10]],16));case 10:v=u(v,f([0,l[x+9]],8));case 9:v=u(v,[0,l[x+8]]),v=c(v,_),v=h(v,33),v=c(v,A),w=u(w,v);case 8:m=u(m,f([0,l[x+7]],56));case 7:m=u(m,f([0,l[x+6]],48));case 6:m=u(m,f([0,l[x+5]],40));case 5:m=u(m,f([0,l[x+4]],32));case 4:m=u(m,f([0,l[x+3]],24));case 3:m=u(m,f([0,l[x+2]],16));case 2:m=u(m,f([0,l[x+1]],8));case 1:m=u(m,[0,l[x]]),m=c(m,A),m=h(m,31),m=c(m,_),b=u(b,m)}return b=u(b,[0,l.length]),w=u(w,[0,l.length]),b=a(b,w),w=a(w,b),b=p(b),w=p(w),b=a(b,w),w=a(w,b),("00000000"+(b[0]>>>0).toString(16)).slice(-8)+("00000000"+(b[1]>>>0).toString(16)).slice(-8)+("00000000"+(w[0]>>>0).toString(16)).slice(-8)+("00000000"+(w[1]>>>0).toString(16)).slice(-8)},typeof pn<"u"?(typeof Js<"u"&&Js.exports&&(pn=Js.exports=e),pn.murmurHash3=e):typeof define=="function"&&define.amd?define([],function(){return e}):(e._murmurHash3=r.murmurHash3,e.noConflict=function(){return r.murmurHash3=e._murmurHash3,e._murmurHash3=t,e.noConflict=t,e},r.murmurHash3=e)})(pn)});var ia=bo((T1,Bu)=>{Bu.exports=Au()});var f0={};_t(f0,{RELAY_V2_HOP_CODEC:()=>Gt,RELAY_V2_STOP_CODEC:()=>Qe,circuitRelayServer:()=>Nu,circuitRelayTransport:()=>ju});var xo=Symbol.for("@libp2p/peer-id");var Da=Symbol.for("@libp2p/transport");var Ua;(function(r){r[r.FATAL_ALL=0]="FATAL_ALL",r[r.NO_FATAL=1]="NO_FATAL"})(Ua||(Ua={}));var ae=class extends Error{static name="AbortError";constructor(t="The operation was aborted"){super(t),this.name="AbortError"}};var pt=class extends Error{static name="InvalidParametersError";constructor(t="Invalid parameters"){super(t),this.name="InvalidParametersError"}},sr=class extends Error{static name="InvalidPublicKeyError";constructor(t="Invalid public key"){super(t),this.name="InvalidPublicKeyError"}};var bn=class extends Error{static name="InvalidMultihashError";constructor(t="Invalid Multihash"){super(t),this.name="InvalidMultihashError"}};var wn=class extends Error{static name="InvalidMessageError";constructor(t="Invalid message"){super(t),this.name="InvalidMessageError"}};var Mr=class extends Error{static name="DialError";constructor(t="Dial error"){super(t),this.name="DialError"}},xn=class extends Error{static name="ListenError";constructor(t="Listen error"){super(t),this.name="ListenError"}};var or=class extends Error{static name="UnsupportedKeyTypeError";constructor(t="Unsupported key type"){super(t),this.name="UnsupportedKeyTypeError"}};var Ft=(r,...t)=>{try{[...t]}catch{}};var qt=class extends EventTarget{#t=new Map;constructor(){super(),Ft(1/0,this)}listenerCount(t){let e=this.#t.get(t);return e==null?0:e.length}addEventListener(t,e,n){super.addEventListener(t,e,n);let s=this.#t.get(t);s==null&&(s=[],this.#t.set(t,s)),s.push({callback:e,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,e,n){super.removeEventListener(t.toString(),e??null,n);let s=this.#t.get(t);s!=null&&(s=s.filter(({callback:o})=>o!==e),this.#t.set(t,s))}dispatchEvent(t){let e=super.dispatchEvent(t),n=this.#t.get(t.type);return n==null||(n=n.filter(({once:s})=>!s),this.#t.set(t.type,n)),e}safeDispatchEvent(t,e={}){return this.dispatchEvent(new CustomEvent(t,e))}};function Oa(r){return r!=null&&typeof r.start=="function"&&typeof r.stop=="function"}async function Ma(...r){let t=[];for(let e of r)Oa(e)&&t.push(e);await Promise.all(t.map(async e=>{e.beforeStart!=null&&await e.beforeStart()})),await Promise.all(t.map(async e=>{await e.start()})),await Promise.all(t.map(async e=>{e.afterStart!=null&&await e.afterStart()}))}async function Pa(...r){let t=[];for(let e of r)Oa(e)&&t.push(e);await Promise.all(t.map(async e=>{e.beforeStop!=null&&await e.beforeStop()})),await Promise.all(t.map(async e=>{await e.stop()})),await Promise.all(t.map(async e=>{e.afterStop!=null&&await e.afterStop()}))}var Va=Symbol.for("@libp2p/service-capabilities"),Ha=Symbol.for("@libp2p/service-dependencies");var Bo={};_t(Bo,{base58btc:()=>tt,base58flickr:()=>mf});var K0=new Uint8Array(0);function Fa(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}function ce(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 qa(r){return new TextEncoder().encode(r)}function Ka(r){return new TextDecoder().decode(r)}function uf(r,t){if(r.length>=255)throw new TypeError("Alphabet too long");for(var e=new Uint8Array(256),n=0;n<e.length;n++)e[n]=255;for(var s=0;s<r.length;s++){var o=r.charAt(s),i=o.charCodeAt(0);if(e[i]!==255)throw new TypeError(o+" is ambiguous");e[i]=s}var a=r.length,c=r.charAt(0),h=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);function u(d){if(d instanceof Uint8Array||(ArrayBuffer.isView(d)?d=new Uint8Array(d.buffer,d.byteOffset,d.byteLength):Array.isArray(d)&&(d=Uint8Array.from(d))),!(d instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(d.length===0)return"";for(var g=0,y=0,b=0,w=d.length;b!==w&&d[b]===0;)b++,g++;for(var m=(w-b)*f+1>>>0,v=new Uint8Array(m);b!==w;){for(var A=d[b],_=0,x=m-1;(A!==0||_<y)&&x!==-1;x--,_++)A+=256*v[x]>>>0,v[x]=A%a>>>0,A=A/a>>>0;if(A!==0)throw new Error("Non-zero carry");y=_,b++}for(var B=m-y;B!==m&&v[B]===0;)B++;for(var C=c.repeat(g);B<m;++B)C+=r.charAt(v[B]);return C}function p(d){if(typeof d!="string")throw new TypeError("Expected String");if(d.length===0)return new Uint8Array;var g=0;if(d[g]!==" "){for(var y=0,b=0;d[g]===c;)y++,g++;for(var w=(d.length-g)*h+1>>>0,m=new Uint8Array(w);d[g];){var v=e[d.charCodeAt(g)];if(v===255)return;for(var A=0,_=w-1;(v!==0||A<b)&&_!==-1;_--,A++)v+=a*m[_]>>>0,m[_]=v%256>>>0,v=v/256>>>0;if(v!==0)throw new Error("Non-zero carry");b=A,g++}if(d[g]!==" "){for(var x=w-b;x!==w&&m[x]===0;)x++;for(var B=new Uint8Array(y+(w-x)),C=y;x!==w;)B[C++]=m[x++];return B}}}function l(d){var g=p(d);if(g)return g;throw new Error(`Non-${t} character`)}return{encode:u,decodeUnsafe:p,decode:l}}var ff=uf,hf=ff,$a=hf;var vo=class{name;prefix;baseEncode;constructor(t,e,n){this.name=t,this.prefix=e,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},Eo=class{name;prefix;baseDecode;prefixCodePoint;constructor(t,e,n){if(this.name=t,this.prefix=e,e.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=e.codePointAt(0),this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return Ga(this,t)}},So=class{decoders;constructor(t){this.decoders=t}or(t){return Ga(this,t)}decode(t){let e=t[0],n=this.decoders[e];if(n!=null)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}};function Ga(r,t){return new So({...r.decoders??{[r.prefix]:r},...t.decoders??{[t.prefix]:t}})}var Ao=class{name;prefix;baseEncode;baseDecode;encoder;decoder;constructor(t,e,n,s){this.name=t,this.prefix=e,this.baseEncode=n,this.baseDecode=s,this.encoder=new vo(t,e,n),this.decoder=new Eo(t,e,s)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}};function ir({name:r,prefix:t,encode:e,decode:n}){return new Ao(r,t,e,n)}function _e({name:r,prefix:t,alphabet:e}){let{encode:n,decode:s}=$a(e,r);return ir({prefix:t,name:r,encode:n,decode:o=>ce(s(o))})}function df(r,t,e,n){let s={};for(let f=0;f<t.length;++f)s[t[f]]=f;let o=r.length;for(;r[o-1]==="=";)--o;let i=new Uint8Array(o*e/8|0),a=0,c=0,h=0;for(let f=0;f<o;++f){let u=s[r[f]];if(u===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<e|u,a+=e,a>=8&&(a-=8,i[h++]=255&c>>a)}if(a>=e||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return i}function pf(r,t,e){let n=t[t.length-1]==="=",s=(1<<e)-1,o="",i=0,a=0;for(let c=0;c<r.length;++c)for(a=a<<8|r[c],i+=8;i>e;)i-=e,o+=t[s&a>>i];if(i!==0&&(o+=t[s&a<<e-i]),n)for(;o.length*e&7;)o+="=";return o}function st({name:r,prefix:t,bitsPerChar:e,alphabet:n}){return ir({prefix:t,name:r,encode(s){return pf(s,n,e)},decode(s){return df(s,n,e,r)}})}var tt=_e({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),mf=_e({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var _o={};_t(_o,{base32:()=>le,base32hex:()=>wf,base32hexpad:()=>vf,base32hexpadupper:()=>Ef,base32hexupper:()=>xf,base32pad:()=>yf,base32padupper:()=>bf,base32upper:()=>gf,base32z:()=>Sf});var le=st({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),gf=st({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),yf=st({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),bf=st({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),wf=st({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),xf=st({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),vf=st({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),Ef=st({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),Sf=st({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Af=Za,Wa=128,Bf=127,_f=~Bf,If=Math.pow(2,31);function Za(r,t,e){t=t||[],e=e||0;for(var n=e;r>=If;)t[e++]=r&255|Wa,r/=128;for(;r&_f;)t[e++]=r&255|Wa,r>>>=7;return t[e]=r|0,Za.bytes=e-n+1,t}var Tf=Io,kf=128,ja=127;function Io(r,n){var e=0,n=n||0,s=0,o=n,i,a=r.length;do{if(o>=a)throw Io.bytes=0,new RangeError("Could not decode varint");i=r[o++],e+=s<28?(i&ja)<<s:(i&ja)*Math.pow(2,s),s+=7}while(i>=kf);return Io.bytes=o-n,e}var Nf=Math.pow(2,7),Cf=Math.pow(2,14),Rf=Math.pow(2,21),Lf=Math.pow(2,28),Uf=Math.pow(2,35),Df=Math.pow(2,42),Of=Math.pow(2,49),Mf=Math.pow(2,56),Pf=Math.pow(2,63),Vf=function(r){return r<Nf?1:r<Cf?2:r<Rf?3:r<Lf?4:r<Uf?5:r<Df?6:r<Of?7:r<Mf?8:r<Pf?9:10},Hf={encode:Af,decode:Tf,encodingLength:Vf},Ff=Hf,Pr=Ff;function Vr(r,t=0){return[Pr.decode(r,t),Pr.decode.bytes]}function ar(r,t,e=0){return Pr.encode(r,t,e),t}function cr(r){return Pr.encodingLength(r)}function Wt(r,t){let e=t.byteLength,n=cr(r),s=n+cr(e),o=new Uint8Array(s+e);return ar(r,o,0),ar(e,o,n),o.set(t,s),new lr(r,e,t,o)}function Kt(r){let t=ce(r),[e,n]=Vr(t),[s,o]=Vr(t.subarray(n)),i=t.subarray(n+o);if(i.byteLength!==s)throw new Error("Incorrect length");return new lr(e,s,i,t)}function Xa(r,t){if(r===t)return!0;{let e=t;return r.code===e.code&&r.size===e.size&&e.bytes instanceof Uint8Array&&Fa(r.bytes,e.bytes)}}var lr=class{code;size;digest;bytes;constructor(t,e,n,s){this.code=t,this.size=e,this.digest=n,this.bytes=s}};function Ya(r,t){let{bytes:e,version:n}=r;switch(n){case 0:return Kf(e,To(r),t??tt.encoder);default:return zf(e,To(r),t??le.encoder)}}var Ja=new WeakMap;function To(r){let t=Ja.get(r);if(t==null){let e=new Map;return Ja.set(r,e),e}return t}var mt=class r{code;version;multihash;bytes;"/";constructor(t,e,n,s){this.code=e,this.version=t,this.multihash=n,this.bytes=s,this["/"]=s}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:t,multihash:e}=this;if(t!==Hr)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(e.code!==$f)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return r.createV0(e)}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:t,digest:e}=this.multihash,n=Wt(t,e);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(t){return r.equals(this,t)}static equals(t,e){let n=e;return n!=null&&t.code===n.code&&t.version===n.version&&Xa(t.multihash,n.multihash)}toString(t){return Ya(this,t)}toJSON(){return{"/":Ya(this)}}link(){return this}[Symbol.toStringTag]="CID";[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let e=t;if(e instanceof r)return e;if(e["/"]!=null&&e["/"]===e.bytes||e.asCID===e){let{version:n,code:s,multihash:o,bytes:i}=e;return new r(n,s,o,i??Qa(n,s,o.bytes))}else if(e[Gf]===!0){let{version:n,multihash:s,code:o}=e,i=Kt(s);return r.create(n,o,i)}else return null}static create(t,e,n){if(typeof e!="number")throw new Error("String codecs are no longer supported");if(!(n.bytes instanceof Uint8Array))throw new Error("Invalid digest");switch(t){case 0:{if(e!==Hr)throw new Error(`Version 0 CID must use dag-pb (code: ${Hr}) block encoding`);return new r(t,e,n,n.bytes)}case 1:{let s=Qa(t,e,n.bytes);return new r(t,e,n,s)}default:throw new Error("Invalid version")}}static createV0(t){return r.create(0,Hr,t)}static createV1(t,e){return r.create(1,t,e)}static decode(t){let[e,n]=r.decodeFirst(t);if(n.length!==0)throw new Error("Incorrect length");return e}static decodeFirst(t){let e=r.inspectBytes(t),n=e.size-e.multihashSize,s=ce(t.subarray(n,n+e.multihashSize));if(s.byteLength!==e.multihashSize)throw new Error("Incorrect length");let o=s.subarray(e.multihashSize-e.digestSize),i=new lr(e.multihashCode,e.digestSize,o,s);return[e.version===0?r.createV0(i):r.createV1(e.codec,i),t.subarray(e.size)]}static inspectBytes(t){let e=0,n=()=>{let[u,p]=Vr(t.subarray(e));return e+=p,u},s=n(),o=Hr;if(s===18?(s=0,e=0):o=n(),s!==0&&s!==1)throw new RangeError(`Invalid CID version ${s}`);let i=e,a=n(),c=n(),h=e+c,f=h-i;return{version:s,codec:o,multihashCode:a,digestSize:c,multihashSize:f,size:h}}static parse(t,e){let[n,s]=qf(t,e),o=r.decode(s);if(o.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return To(o).set(n,t),o}};function qf(r,t){switch(r[0]){case"Q":{let e=t??tt;return[tt.prefix,e.decode(`${tt.prefix}${r}`)]}case tt.prefix:{let e=t??tt;return[tt.prefix,e.decode(r)]}case le.prefix:{let e=t??le;return[le.prefix,e.decode(r)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[r[0],t.decode(r)]}}}function Kf(r,t,e){let{prefix:n}=e;if(n!==tt.prefix)throw Error(`Cannot string encode V0 in ${e.name} encoding`);let s=t.get(n);if(s==null){let o=e.encode(r).slice(1);return t.set(n,o),o}else return s}function zf(r,t,e){let{prefix:n}=e,s=t.get(n);if(s==null){let o=e.encode(r);return t.set(n,o),o}else return s}var Hr=112,$f=18;function Qa(r,t,e){let n=cr(r),s=n+cr(t),o=new Uint8Array(s+e.byteLength);return ar(r,o,0),ar(t,o,n),o.set(e,s),o}var Gf=Symbol.for("@ipld/js-cid/CID");var ko={};_t(ko,{identity:()=>ue});var tc=0,Wf="identity",ec=ce;function jf(r){return Wt(tc,ec(r))}var ue={code:tc,name:Wf,encode:ec,digest:jf};function ct(r,t){if(r===t)return!0;if(r.byteLength!==t.byteLength)return!1;for(let e=0;e<r.byteLength;e++)if(r[e]!==t[e])return!1;return!0}function rc(r){if(!Number.isSafeInteger(r)||r<0)throw new Error(`positive integer expected, not ${r}`)}function Zf(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function ur(r,...t){if(!Zf(r))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(r.length))throw new Error(`Uint8Array expected of length ${t}, not of length=${r.length}`)}function nc(r){if(typeof r!="function"||typeof r.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");rc(r.outputLen),rc(r.blockLen)}function fr(r,t=!0){if(r.destroyed)throw new Error("Hash instance has been destroyed");if(t&&r.finished)throw new Error("Hash#digest() has already been called")}function sc(r,t){ur(r);let e=t.outputLen;if(r.length<e)throw new Error(`digestInto() expects output buffer of length at least ${e}`)}var qe=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var En=r=>new DataView(r.buffer,r.byteOffset,r.byteLength),jt=(r,t)=>r<<32-t|r>>>t;var um=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function oc(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}function Fr(r){return typeof r=="string"&&(r=oc(r)),ur(r),r}function No(...r){let t=0;for(let n=0;n<r.length;n++){let s=r[n];ur(s),t+=s.length}let e=new Uint8Array(t);for(let n=0,s=0;n<r.length;n++){let o=r[n];e.set(o,s),s+=o.length}return e}var hr=class{clone(){return this._cloneInto()}},fm={}.toString;function Sn(r){let t=n=>r().update(Fr(n)).digest(),e=r();return t.outputLen=e.outputLen,t.blockLen=e.blockLen,t.create=()=>r(),t}function dr(r=32){if(qe&&typeof qe.getRandomValues=="function")return qe.getRandomValues(new Uint8Array(r));if(qe&&typeof qe.randomBytes=="function")return qe.randomBytes(r);throw new Error("crypto.getRandomValues must be defined")}function Xf(r,t,e,n){if(typeof r.setBigUint64=="function")return r.setBigUint64(t,e,n);let s=BigInt(32),o=BigInt(4294967295),i=Number(e>>s&o),a=Number(e&o),c=n?4:0,h=n?0:4;r.setUint32(t+c,i,n),r.setUint32(t+h,a,n)}var ic=(r,t,e)=>r&t^~r&e,ac=(r,t,e)=>r&t^r&e^t&e,pr=class extends hr{constructor(t,e,n,s){super(),this.blockLen=t,this.outputLen=e,this.padOffset=n,this.isLE=s,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(t),this.view=En(this.buffer)}update(t){fr(this);let{view:e,buffer:n,blockLen:s}=this;t=Fr(t);let o=t.length;for(let i=0;i<o;){let a=Math.min(s-this.pos,o-i);if(a===s){let c=En(t);for(;s<=o-i;i+=s)this.process(c,i);continue}n.set(t.subarray(i,i+a),this.pos),this.pos+=a,i+=a,this.pos===s&&(this.process(e,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){fr(this),sc(t,this),this.finished=!0;let{buffer:e,view:n,blockLen:s,isLE:o}=this,{pos:i}=this;e[i++]=128,this.buffer.subarray(i).fill(0),this.padOffset>s-i&&(this.process(n,0),i=0);for(let u=i;u<s;u++)e[u]=0;Xf(n,s-8,BigInt(this.length*8),o),this.process(n,0);let a=En(t),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let h=c/4,f=this.get();if(h>f.length)throw new Error("_sha2: outputLen bigger than state");for(let u=0;u<h;u++)a.setUint32(4*u,f[u],o)}digest(){let{buffer:t,outputLen:e}=this;this.digestInto(t);let n=t.slice(0,e);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:e,buffer:n,length:s,finished:o,destroyed:i,pos:a}=this;return t.length=s,t.pos=a,t.finished=o,t.destroyed=i,s%e&&t.buffer.set(n),t}};var An=BigInt(4294967295),Co=BigInt(32);function cc(r,t=!1){return t?{h:Number(r&An),l:Number(r>>Co&An)}:{h:Number(r>>Co&An)|0,l:Number(r&An)|0}}function Yf(r,t=!1){let e=new Uint32Array(r.length),n=new Uint32Array(r.length);for(let s=0;s<r.length;s++){let{h:o,l:i}=cc(r[s],t);[e[s],n[s]]=[o,i]}return[e,n]}var Jf=(r,t)=>BigInt(r>>>0)<<Co|BigInt(t>>>0),Qf=(r,t,e)=>r>>>e,th=(r,t,e)=>r<<32-e|t>>>e,eh=(r,t,e)=>r>>>e|t<<32-e,rh=(r,t,e)=>r<<32-e|t>>>e,nh=(r,t,e)=>r<<64-e|t>>>e-32,sh=(r,t,e)=>r>>>e-32|t<<64-e,oh=(r,t)=>t,ih=(r,t)=>r,ah=(r,t,e)=>r<<e|t>>>32-e,ch=(r,t,e)=>t<<e|r>>>32-e,lh=(r,t,e)=>t<<e-32|r>>>64-e,uh=(r,t,e)=>r<<e-32|t>>>64-e;function fh(r,t,e,n){let s=(t>>>0)+(n>>>0);return{h:r+e+(s/2**32|0)|0,l:s|0}}var hh=(r,t,e)=>(r>>>0)+(t>>>0)+(e>>>0),dh=(r,t,e,n)=>t+e+n+(r/2**32|0)|0,ph=(r,t,e,n)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0),mh=(r,t,e,n,s)=>t+e+n+s+(r/2**32|0)|0,gh=(r,t,e,n,s)=>(r>>>0)+(t>>>0)+(e>>>0)+(n>>>0)+(s>>>0),yh=(r,t,e,n,s,o)=>t+e+n+s+o+(r/2**32|0)|0;var bh={fromBig:cc,split:Yf,toBig:Jf,shrSH:Qf,shrSL:th,rotrSH:eh,rotrSL:rh,rotrBH:nh,rotrBL:sh,rotr32H:oh,rotr32L:ih,rotlSH:ah,rotlSL:ch,rotlBH:lh,rotlBL:uh,add:fh,add3L:hh,add3H:dh,add4L:ph,add4H:mh,add5H:yh,add5L:gh},P=bh;var[wh,xh]=P.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(r=>BigInt(r))),Ie=new Uint32Array(80),Te=new Uint32Array(80),Ro=class extends pr{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:t,Al:e,Bh:n,Bl:s,Ch:o,Cl:i,Dh:a,Dl:c,Eh:h,El:f,Fh:u,Fl:p,Gh:l,Gl:d,Hh:g,Hl:y}=this;return[t,e,n,s,o,i,a,c,h,f,u,p,l,d,g,y]}set(t,e,n,s,o,i,a,c,h,f,u,p,l,d,g,y){this.Ah=t|0,this.Al=e|0,this.Bh=n|0,this.Bl=s|0,this.Ch=o|0,this.Cl=i|0,this.Dh=a|0,this.Dl=c|0,this.Eh=h|0,this.El=f|0,this.Fh=u|0,this.Fl=p|0,this.Gh=l|0,this.Gl=d|0,this.Hh=g|0,this.Hl=y|0}process(t,e){for(let m=0;m<16;m++,e+=4)Ie[m]=t.getUint32(e),Te[m]=t.getUint32(e+=4);for(let m=16;m<80;m++){let v=Ie[m-15]|0,A=Te[m-15]|0,_=P.rotrSH(v,A,1)^P.rotrSH(v,A,8)^P.shrSH(v,A,7),x=P.rotrSL(v,A,1)^P.rotrSL(v,A,8)^P.shrSL(v,A,7),B=Ie[m-2]|0,C=Te[m-2]|0,et=P.rotrSH(B,C,19)^P.rotrBH(B,C,61)^P.shrSH(B,C,6),H=P.rotrSL(B,C,19)^P.rotrBL(B,C,61)^P.shrSL(B,C,6),V=P.add4L(x,H,Te[m-7],Te[m-16]),U=P.add4H(V,_,et,Ie[m-7],Ie[m-16]);Ie[m]=U|0,Te[m]=V|0}let{Ah:n,Al:s,Bh:o,Bl:i,Ch:a,Cl:c,Dh:h,Dl:f,Eh:u,El:p,Fh:l,Fl:d,Gh:g,Gl:y,Hh:b,Hl:w}=this;for(let m=0;m<80;m++){let v=P.rotrSH(u,p,14)^P.rotrSH(u,p,18)^P.rotrBH(u,p,41),A=P.rotrSL(u,p,14)^P.rotrSL(u,p,18)^P.rotrBL(u,p,41),_=u&l^~u&g,x=p&d^~p&y,B=P.add5L(w,A,x,xh[m],Te[m]),C=P.add5H(B,b,v,_,wh[m],Ie[m]),et=B|0,H=P.rotrSH(n,s,28)^P.rotrBH(n,s,34)^P.rotrBH(n,s,39),V=P.rotrSL(n,s,28)^P.rotrBL(n,s,34)^P.rotrBL(n,s,39),U=n&o^n&a^o&a,k=s&i^s&c^i&c;b=g|0,w=y|0,g=l|0,y=d|0,l=u|0,d=p|0,{h:u,l:p}=P.add(h|0,f|0,C|0,et|0),h=a|0,f=c|0,a=o|0,c=i|0,o=n|0,i=s|0;let R=P.add3L(et,V,k);n=P.add3H(R,C,H,U),s=R|0}({h:n,l:s}=P.add(this.Ah|0,this.Al|0,n|0,s|0)),{h:o,l:i}=P.add(this.Bh|0,this.Bl|0,o|0,i|0),{h:a,l:c}=P.add(this.Ch|0,this.Cl|0,a|0,c|0),{h,l:f}=P.add(this.Dh|0,this.Dl|0,h|0,f|0),{h:u,l:p}=P.add(this.Eh|0,this.El|0,u|0,p|0),{h:l,l:d}=P.add(this.Fh|0,this.Fl|0,l|0,d|0),{h:g,l:y}=P.add(this.Gh|0,this.Gl|0,g|0,y|0),{h:b,l:w}=P.add(this.Hh|0,this.Hl|0,b|0,w|0),this.set(n,s,o,i,a,c,h,f,u,p,l,d,g,y,b,w)}roundClean(){Ie.fill(0),Te.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var lc=Sn(()=>new Ro);var _n={};_t(_n,{aInRange:()=>kt,abool:()=>Zt,abytes:()=>mr,bitGet:()=>_h,bitLen:()=>Mo,bitMask:()=>Kr,bitSet:()=>Ih,bytesToHex:()=>he,bytesToNumberBE:()=>de,bytesToNumberLE:()=>Ne,concatBytes:()=>pe,createHmacDrbg:()=>Po,ensureBytes:()=>ot,equalBytes:()=>Ah,hexToBytes:()=>ze,hexToNumber:()=>Oo,inRange:()=>qr,isBytes:()=>ke,memoized:()=>Ge,notImplemented:()=>kh,numberToBytesBE:()=>Ce,numberToBytesLE:()=>$e,numberToHexUnpadded:()=>Ke,numberToVarBytesBE:()=>Sh,utf8ToBytes:()=>Bh,validateObject:()=>ee});var Do=BigInt(0),Bn=BigInt(1),vh=BigInt(2);function ke(r){return r instanceof Uint8Array||r!=null&&typeof r=="object"&&r.constructor.name==="Uint8Array"}function mr(r){if(!ke(r))throw new Error("Uint8Array expected")}function Zt(r,t){if(typeof t!="boolean")throw new Error(`${r} must be valid boolean, got "${t}".`)}var Eh=Array.from({length:256},(r,t)=>t.toString(16).padStart(2,"0"));function he(r){mr(r);let t="";for(let e=0;e<r.length;e++)t+=Eh[r[e]];return t}function Ke(r){let t=r.toString(16);return t.length&1?`0${t}`:t}function Oo(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);return BigInt(r===""?"0":`0x${r}`)}var fe={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function uc(r){if(r>=fe._0&&r<=fe._9)return r-fe._0;if(r>=fe._A&&r<=fe._F)return r-(fe._A-10);if(r>=fe._a&&r<=fe._f)return r-(fe._a-10)}function ze(r){if(typeof r!="string")throw new Error("hex string expected, got "+typeof r);let t=r.length,e=t/2;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);let n=new Uint8Array(e);for(let s=0,o=0;s<e;s++,o+=2){let i=uc(r.charCodeAt(o)),a=uc(r.charCodeAt(o+1));if(i===void 0||a===void 0){let c=r[o]+r[o+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+o)}n[s]=i*16+a}return n}function de(r){return Oo(he(r))}function Ne(r){return mr(r),Oo(he(Uint8Array.from(r).reverse()))}function Ce(r,t){return ze(r.toString(16).padStart(t*2,"0"))}function $e(r,t){return Ce(r,t).reverse()}function Sh(r){return ze(Ke(r))}function ot(r,t,e){let n;if(typeof t=="string")try{n=ze(t)}catch(o){throw new Error(`${r} must be valid hex string, got "${t}". Cause: ${o}`)}else if(ke(t))n=Uint8Array.from(t);else throw new Error(`${r} must be hex string or Uint8Array`);let s=n.length;if(typeof e=="number"&&s!==e)throw new Error(`${r} expected ${e} bytes, got ${s}`);return n}function pe(...r){let t=0;for(let n=0;n<r.length;n++){let s=r[n];mr(s),t+=s.length}let e=new Uint8Array(t);for(let n=0,s=0;n<r.length;n++){let o=r[n];e.set(o,s),s+=o.length}return e}function Ah(r,t){if(r.length!==t.length)return!1;let e=0;for(let n=0;n<r.length;n++)e|=r[n]^t[n];return e===0}function Bh(r){if(typeof r!="string")throw new Error(`utf8ToBytes expected string, got ${typeof r}`);return new Uint8Array(new TextEncoder().encode(r))}var Lo=r=>typeof r=="bigint"&&Do<=r;function qr(r,t,e){return Lo(r)&&Lo(t)&&Lo(e)&&t<=r&&r<e}function kt(r,t,e,n){if(!qr(t,e,n))throw new Error(`expected valid ${r}: ${e} <= n < ${n}, got ${typeof t} ${t}`)}function Mo(r){let t;for(t=0;r>Do;r>>=Bn,t+=1);return t}function _h(r,t){return r>>BigInt(t)&Bn}function Ih(r,t,e){return r|(e?Bn:Do)<<BigInt(t)}var Kr=r=>(vh<<BigInt(r-1))-Bn,Uo=r=>new Uint8Array(r),fc=r=>Uint8Array.from(r);function Po(r,t,e){if(typeof r!="number"||r<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof e!="function")throw new Error("hmacFn must be a function");let n=Uo(r),s=Uo(r),o=0,i=()=>{n.fill(1),s.fill(0),o=0},a=(...u)=>e(s,n,...u),c=(u=Uo())=>{s=a(fc([0]),u),n=a(),u.length!==0&&(s=a(fc([1]),u),n=a())},h=()=>{if(o++>=1e3)throw new Error("drbg: tried 1000 values");let u=0,p=[];for(;u<t;){n=a();let l=n.slice();p.push(l),u+=n.length}return pe(...p)};return(u,p)=>{i(),c(u);let l;for(;!(l=p(h()));)c();return i(),l}}var Th={bigint:r=>typeof r=="bigint",function:r=>typeof r=="function",boolean:r=>typeof r=="boolean",string:r=>typeof r=="string",stringOrUint8Array:r=>typeof r=="string"||ke(r),isSafeInteger:r=>Number.isSafeInteger(r),array:r=>Array.isArray(r),field:(r,t)=>t.Fp.isValid(r),hash:r=>typeof r=="function"&&Number.isSafeInteger(r.outputLen)};function ee(r,t,e={}){let n=(s,o,i)=>{let a=Th[o];if(typeof a!="function")throw new Error(`Invalid validator "${o}", expected function`);let c=r[s];if(!(i&&c===void 0)&&!a(c,r))throw new Error(`Invalid param ${String(s)}=${c} (${typeof c}), expected ${o}`)};for(let[s,o]of Object.entries(t))n(s,o,!1);for(let[s,o]of Object.entries(e))n(s,o,!0);return r}var kh=()=>{throw new Error("not implemented")};function Ge(r){let t=new WeakMap;return(e,...n)=>{let s=t.get(e);if(s!==void 0)return s;let o=r(e,...n);return t.set(e,o),o}}var ut=BigInt(0),rt=BigInt(1),We=BigInt(2),Nh=BigInt(3),Vo=BigInt(4),hc=BigInt(5),dc=BigInt(8),Ch=BigInt(9),Rh=BigInt(16);function Y(r,t){let e=r%t;return e>=ut?e:t+e}function Lh(r,t,e){if(e<=ut||t<ut)throw new Error("Expected power/modulo > 0");if(e===rt)return ut;let n=rt;for(;t>ut;)t&rt&&(n=n*r%e),r=r*r%e,t>>=rt;return n}function nt(r,t,e){let n=r;for(;t-- >ut;)n*=n,n%=e;return n}function In(r,t){if(r===ut||t<=ut)throw new Error(`invert: expected positive integers, got n=${r} mod=${t}`);let e=Y(r,t),n=t,s=ut,o=rt,i=rt,a=ut;for(;e!==ut;){let h=n/e,f=n%e,u=s-i*h,p=o-a*h;n=e,e=f,s=i,o=a,i=u,a=p}if(n!==rt)throw new Error("invert: does not exist");return Y(s,t)}function Uh(r){let t=(r-rt)/We,e,n,s;for(e=r-rt,n=0;e%We===ut;e/=We,n++);for(s=We;s<r&&Lh(s,t,r)!==r-rt;s++);if(n===1){let i=(r+rt)/Vo;return function(c,h){let f=c.pow(h,i);if(!c.eql(c.sqr(f),h))throw new Error("Cannot find square root");return f}}let o=(e+rt)/We;return function(a,c){if(a.pow(c,t)===a.neg(a.ONE))throw new Error("Cannot find square root");let h=n,f=a.pow(a.mul(a.ONE,s),e),u=a.pow(c,o),p=a.pow(c,e);for(;!a.eql(p,a.ONE);){if(a.eql(p,a.ZERO))return a.ZERO;let l=1;for(let g=a.sqr(p);l<h&&!a.eql(g,a.ONE);l++)g=a.sqr(g);let d=a.pow(f,rt<<BigInt(h-l-1));f=a.sqr(d),u=a.mul(u,d),p=a.mul(p,f),h=l}return u}}function Dh(r){if(r%Vo===Nh){let t=(r+rt)/Vo;return function(n,s){let o=n.pow(s,t);if(!n.eql(n.sqr(o),s))throw new Error("Cannot find square root");return o}}if(r%dc===hc){let t=(r-hc)/dc;return function(n,s){let o=n.mul(s,We),i=n.pow(o,t),a=n.mul(s,i),c=n.mul(n.mul(a,We),i),h=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(h),s))throw new Error("Cannot find square root");return h}}return r%Rh,Uh(r)}var pc=(r,t)=>(Y(r,t)&rt)===rt,Oh=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Ho(r){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},e=Oh.reduce((n,s)=>(n[s]="function",n),t);return ee(r,e)}function Mh(r,t,e){if(e<ut)throw new Error("Expected power > 0");if(e===ut)return r.ONE;if(e===rt)return t;let n=r.ONE,s=t;for(;e>ut;)e&rt&&(n=r.mul(n,s)),s=r.sqr(s),e>>=rt;return n}function Ph(r,t){let e=new Array(t.length),n=t.reduce((o,i,a)=>r.is0(i)?o:(e[a]=o,r.mul(o,i)),r.ONE),s=r.inv(n);return t.reduceRight((o,i,a)=>r.is0(i)?o:(e[a]=r.mul(o,e[a]),r.mul(o,i)),s),e}function Fo(r,t){let e=t!==void 0?t:r.toString(2).length,n=Math.ceil(e/8);return{nBitLength:e,nByteLength:n}}function Re(r,t,e=!1,n={}){if(r<=ut)throw new Error(`Expected Field ORDER > 0, got ${r}`);let{nBitLength:s,nByteLength:o}=Fo(r,t);if(o>2048)throw new Error("Field lengths over 2048 bytes are not supported");let i=Dh(r),a=Object.freeze({ORDER:r,BITS:s,BYTES:o,MASK:Kr(s),ZERO:ut,ONE:rt,create:c=>Y(c,r),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return ut<=c&&c<r},is0:c=>c===ut,isOdd:c=>(c&rt)===rt,neg:c=>Y(-c,r),eql:(c,h)=>c===h,sqr:c=>Y(c*c,r),add:(c,h)=>Y(c+h,r),sub:(c,h)=>Y(c-h,r),mul:(c,h)=>Y(c*h,r),pow:(c,h)=>Mh(a,c,h),div:(c,h)=>Y(c*In(h,r),r),sqrN:c=>c*c,addN:(c,h)=>c+h,subN:(c,h)=>c-h,mulN:(c,h)=>c*h,inv:c=>In(c,r),sqrt:n.sqrt||(c=>i(a,c)),invertBatch:c=>Ph(a,c),cmov:(c,h,f)=>f?h:c,toBytes:c=>e?$e(c,o):Ce(c,o),fromBytes:c=>{if(c.length!==o)throw new Error(`Fp.fromBytes: expected ${o}, got ${c.length}`);return e?Ne(c):de(c)}});return Object.freeze(a)}function mc(r){if(typeof r!="bigint")throw new Error("field order must be bigint");let t=r.toString(2).length;return Math.ceil(t/8)}function qo(r){let t=mc(r);return t+Math.ceil(t/2)}function gc(r,t,e=!1){let n=r.length,s=mc(t),o=qo(t);if(n<16||n<o||n>1024)throw new Error(`expected ${o}-1024 bytes of input, got ${n}`);let i=e?de(r):Ne(r),a=Y(i,t-rt)+rt;return e?$e(a,s):Ce(a,s)}var Hh=BigInt(0),Ko=BigInt(1),zo=new WeakMap,yc=new WeakMap;function Tn(r,t){let e=(o,i)=>{let a=i.negate();return o?a:i},n=o=>{if(!Number.isSafeInteger(o)||o<=0||o>t)throw new Error(`Wrong window size=${o}, should be [1..${t}]`)},s=o=>{n(o);let i=Math.ceil(t/o)+1,a=2**(o-1);return{windows:i,windowSize:a}};return{constTimeNegate:e,unsafeLadder(o,i){let a=r.ZERO,c=o;for(;i>Hh;)i&Ko&&(a=a.add(c)),c=c.double(),i>>=Ko;return a},precomputeWindow(o,i){let{windows:a,windowSize:c}=s(i),h=[],f=o,u=f;for(let p=0;p<a;p++){u=f,h.push(u);for(let l=1;l<c;l++)u=u.add(f),h.push(u);f=u.double()}return h},wNAF(o,i,a){let{windows:c,windowSize:h}=s(o),f=r.ZERO,u=r.BASE,p=BigInt(2**o-1),l=2**o,d=BigInt(o);for(let g=0;g<c;g++){let y=g*h,b=Number(a&p);a>>=d,b>h&&(b-=l,a+=Ko);let w=y,m=y+Math.abs(b)-1,v=g%2!==0,A=b<0;b===0?u=u.add(e(v,i[w])):f=f.add(e(A,i[m]))}return{p:f,f:u}},wNAFCached(o,i,a){let c=yc.get(o)||1,h=zo.get(o);return h||(h=this.precomputeWindow(o,c),c!==1&&zo.set(o,a(h))),this.wNAF(c,h,i)},setWindowSize(o,i){n(i),yc.set(o,i),zo.delete(o)}}}function kn(r,t,e,n){if(!Array.isArray(e)||!Array.isArray(n)||n.length!==e.length)throw new Error("arrays of points and scalars must have equal length");n.forEach((f,u)=>{if(!t.isValid(f))throw new Error(`wrong scalar at index ${u}`)}),e.forEach((f,u)=>{if(!(f instanceof r))throw new Error(`wrong point at index ${u}`)});let s=Mo(BigInt(e.length)),o=s>12?s-3:s>4?s-2:s?2:1,i=(1<<o)-1,a=new Array(i+1).fill(r.ZERO),c=Math.floor((t.BITS-1)/o)*o,h=r.ZERO;for(let f=c;f>=0;f-=o){a.fill(r.ZERO);for(let p=0;p<n.length;p++){let l=n[p],d=Number(l>>BigInt(f)&BigInt(i));a[d]=a[d].add(e[p])}let u=r.ZERO;for(let p=a.length-1,l=r.ZERO;p>0;p--)l=l.add(a[p]),u=u.add(l);if(h=h.add(u),f!==0)for(let p=0;p<o;p++)h=h.double()}return h}function zr(r){return Ho(r.Fp),ee(r,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Fo(r.n,r.nBitLength),...r,p:r.Fp.ORDER})}var Xt=BigInt(0),Nt=BigInt(1),Nn=BigInt(2),Fh=BigInt(8),qh={zip215:!0};function Kh(r){let t=zr(r);return ee(r,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function bc(r){let t=Kh(r),{Fp:e,n,prehash:s,hash:o,randomBytes:i,nByteLength:a,h:c}=t,h=Nn<<BigInt(a*8)-Nt,f=e.create,u=Re(t.n,t.nBitLength),p=t.uvRatio||((S,E)=>{try{return{isValid:!0,value:e.sqrt(S*e.inv(E))}}catch{return{isValid:!1,value:Xt}}}),l=t.adjustScalarBytes||(S=>S),d=t.domain||((S,E,I)=>{if(Zt("phflag",I),E.length||I)throw new Error("Contexts/pre-hash are not supported");return S});function g(S,E){kt("coordinate "+S,E,Xt,h)}function y(S){if(!(S instanceof m))throw new Error("ExtendedPoint expected")}let b=Ge((S,E)=>{let{ex:I,ey:L,ez:O}=S,M=S.is0();E==null&&(E=M?Fh:e.inv(O));let K=f(I*E),G=f(L*E),z=f(O*E);if(M)return{x:Xt,y:Nt};if(z!==Nt)throw new Error("invZ was invalid");return{x:K,y:G}}),w=Ge(S=>{let{a:E,d:I}=t;if(S.is0())throw new Error("bad point: ZERO");let{ex:L,ey:O,ez:M,et:K}=S,G=f(L*L),z=f(O*O),X=f(M*M),Q=f(X*X),ht=f(G*E),dt=f(X*f(ht+z)),yt=f(Q+f(I*f(G*z)));if(dt!==yt)throw new Error("bad point: equation left != right (1)");let Bt=f(L*O),lt=f(M*K);if(Bt!==lt)throw new Error("bad point: equation left != right (2)");return!0});class m{constructor(E,I,L,O){this.ex=E,this.ey=I,this.ez=L,this.et=O,g("x",E),g("y",I),g("z",L),g("t",O),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(E){if(E instanceof m)throw new Error("extended point not allowed");let{x:I,y:L}=E||{};return g("x",I),g("y",L),new m(I,L,Nt,f(I*L))}static normalizeZ(E){let I=e.invertBatch(E.map(L=>L.ez));return E.map((L,O)=>L.toAffine(I[O])).map(m.fromAffine)}static msm(E,I){return kn(m,u,E,I)}_setWindowSize(E){_.setWindowSize(this,E)}assertValidity(){w(this)}equals(E){y(E);let{ex:I,ey:L,ez:O}=this,{ex:M,ey:K,ez:G}=E,z=f(I*G),X=f(M*O),Q=f(L*G),ht=f(K*O);return z===X&&Q===ht}is0(){return this.equals(m.ZERO)}negate(){return new m(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){let{a:E}=t,{ex:I,ey:L,ez:O}=this,M=f(I*I),K=f(L*L),G=f(Nn*f(O*O)),z=f(E*M),X=I+L,Q=f(f(X*X)-M-K),ht=z+K,dt=ht-G,yt=z-K,Bt=f(Q*dt),lt=f(ht*yt),Tt=f(Q*yt),ie=f(dt*ht);return new m(Bt,lt,ie,Tt)}add(E){y(E);let{a:I,d:L}=t,{ex:O,ey:M,ez:K,et:G}=this,{ex:z,ey:X,ez:Q,et:ht}=E;if(I===BigInt(-1)){let _a=f((M-O)*(X+z)),Ia=f((M+O)*(X-z)),yo=f(Ia-_a);if(yo===Xt)return this.double();let Ta=f(K*Nn*ht),ka=f(G*Nn*Q),Na=ka+Ta,Ca=Ia+_a,Ra=ka-Ta,Qu=f(Na*yo),tf=f(Ca*Ra),ef=f(Na*Ra),rf=f(yo*Ca);return new m(Qu,tf,rf,ef)}let dt=f(O*z),yt=f(M*X),Bt=f(G*L*ht),lt=f(K*Q),Tt=f((O+M)*(z+X)-dt-yt),ie=lt-Bt,Dr=lt+Bt,Or=f(yt-I*dt),Zu=f(Tt*ie),Xu=f(Dr*Or),Yu=f(Tt*Or),Ju=f(ie*Dr);return new m(Zu,Xu,Ju,Yu)}subtract(E){return this.add(E.negate())}wNAF(E){return _.wNAFCached(this,E,m.normalizeZ)}multiply(E){let I=E;kt("scalar",I,Nt,n);let{p:L,f:O}=this.wNAF(I);return m.normalizeZ([L,O])[0]}multiplyUnsafe(E){let I=E;return kt("scalar",I,Xt,n),I===Xt?A:this.equals(A)||I===Nt?this:this.equals(v)?this.wNAF(I).p:_.unsafeLadder(this,I)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return _.unsafeLadder(this,n).is0()}toAffine(E){return b(this,E)}clearCofactor(){let{h:E}=t;return E===Nt?this:this.multiplyUnsafe(E)}static fromHex(E,I=!1){let{d:L,a:O}=t,M=e.BYTES;E=ot("pointHex",E,M),Zt("zip215",I);let K=E.slice(),G=E[M-1];K[M-1]=G&-129;let z=Ne(K),X=I?h:e.ORDER;kt("pointHex.y",z,Xt,X);let Q=f(z*z),ht=f(Q-Nt),dt=f(L*Q-O),{isValid:yt,value:Bt}=p(ht,dt);if(!yt)throw new Error("Point.fromHex: invalid y coordinate");let lt=(Bt&Nt)===Nt,Tt=(G&128)!==0;if(!I&&Bt===Xt&&Tt)throw new Error("Point.fromHex: x=0 and x_0=1");return Tt!==lt&&(Bt=f(-Bt)),m.fromAffine({x:Bt,y:z})}static fromPrivateKey(E){return C(E).point}toRawBytes(){let{x:E,y:I}=this.toAffine(),L=$e(I,e.BYTES);return L[L.length-1]|=E&Nt?128:0,L}toHex(){return he(this.toRawBytes())}}m.BASE=new m(t.Gx,t.Gy,Nt,f(t.Gx*t.Gy)),m.ZERO=new m(Xt,Nt,Nt,Xt);let{BASE:v,ZERO:A}=m,_=Tn(m,a*8);function x(S){return Y(S,n)}function B(S){return x(Ne(S))}function C(S){let E=a;S=ot("private key",S,E);let I=ot("hashed private key",o(S),2*E),L=l(I.slice(0,E)),O=I.slice(E,2*E),M=B(L),K=v.multiply(M),G=K.toRawBytes();return{head:L,prefix:O,scalar:M,point:K,pointBytes:G}}function et(S){return C(S).pointBytes}function H(S=new Uint8Array,...E){let I=pe(...E);return B(o(d(I,ot("context",S),!!s)))}function V(S,E,I={}){S=ot("message",S),s&&(S=s(S));let{prefix:L,scalar:O,pointBytes:M}=C(E),K=H(I.context,L,S),G=v.multiply(K).toRawBytes(),z=H(I.context,G,M,S),X=x(K+z*O);kt("signature.s",X,Xt,n);let Q=pe(G,$e(X,e.BYTES));return ot("result",Q,a*2)}let U=qh;function k(S,E,I,L=U){let{context:O,zip215:M}=L,K=e.BYTES;S=ot("signature",S,2*K),E=ot("message",E),M!==void 0&&Zt("zip215",M),s&&(E=s(E));let G=Ne(S.slice(K,2*K)),z,X,Q;try{z=m.fromHex(I,M),X=m.fromHex(S.slice(0,K),M),Q=v.multiplyUnsafe(G)}catch{return!1}if(!M&&z.isSmallOrder())return!1;let ht=H(O,X.toRawBytes(),z.toRawBytes(),E);return X.add(z.multiplyUnsafe(ht)).subtract(Q).clearCofactor().equals(m.ZERO)}return v._setWindowSize(8),{CURVE:t,getPublicKey:et,sign:V,verify:k,ExtendedPoint:m,utils:{getExtendedPublicKey:C,randomPrivateKey:()=>i(e.BYTES),precompute(S=8,E=m.BASE){return E._setWindowSize(S),E.multiply(BigInt(3)),E}}}}var $o=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),wc=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),Um=BigInt(0),zh=BigInt(1),xc=BigInt(2),Dm=BigInt(3),$h=BigInt(5),Gh=BigInt(8);function Wh(r){let t=BigInt(10),e=BigInt(20),n=BigInt(40),s=BigInt(80),o=$o,a=r*r%o*r%o,c=nt(a,xc,o)*a%o,h=nt(c,zh,o)*r%o,f=nt(h,$h,o)*h%o,u=nt(f,t,o)*f%o,p=nt(u,e,o)*u%o,l=nt(p,n,o)*p%o,d=nt(l,s,o)*l%o,g=nt(d,s,o)*l%o,y=nt(g,t,o)*f%o;return{pow_p_5_8:nt(y,xc,o)*r%o,b2:a}}function jh(r){return r[0]&=248,r[31]&=127,r[31]|=64,r}function Zh(r,t){let e=$o,n=Y(t*t*t,e),s=Y(n*n*t,e),o=Wh(r*s).pow_p_5_8,i=Y(r*n*o,e),a=Y(t*i*i,e),c=i,h=Y(i*wc,e),f=a===r,u=a===Y(-r,e),p=a===Y(-r*wc,e);return f&&(i=c),(u||p)&&(i=h),pc(i,e)&&(i=Y(-i,e)),{isValid:f||u,value:i}}var Xh=Re($o,void 0,!0),Yh={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:Xh,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:Gh,Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:lc,randomBytes:dr,adjustScalarBytes:jh,uvRatio:Zh},vc=bc(Yh);var Cn=32;function Ec(r,t,e){return vc.verify(t,e instanceof Uint8Array?e:e.subarray(),r)}var Rn=class{type="Ed25519";raw;constructor(t){this.raw=Go(t,Cn)}toMultihash(){return ue.digest(gr(this))}toCID(){return mt.createV1(114,this.toMultihash())}toString(){return tt.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ct(this.raw,t.raw)}verify(t,e){return Ec(this.raw,e,t)}};function Wo(r){return r=Go(r,Cn),new Rn(r)}function Go(r,t){if(r=Uint8Array.from(r??[]),r.length!==t)throw new pt(`Key must be a Uint8Array of length ${t}, got ${r.length}`);return r}function it(r=0){return new Uint8Array(r)}function Ct(r=0){return new Uint8Array(r)}var Qh=Math.pow(2,7),td=Math.pow(2,14),ed=Math.pow(2,21),jo=Math.pow(2,28),Zo=Math.pow(2,35),Xo=Math.pow(2,42),Yo=Math.pow(2,49),W=128,vt=127;function Et(r){if(r<Qh)return 1;if(r<td)return 2;if(r<ed)return 3;if(r<jo)return 4;if(r<Zo)return 5;if(r<Xo)return 6;if(r<Yo)return 7;if(Number.MAX_SAFE_INTEGER!=null&&r>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Jo(r,t,e=0){switch(Et(r)){case 8:t[e++]=r&255|W,r/=128;case 7:t[e++]=r&255|W,r/=128;case 6:t[e++]=r&255|W,r/=128;case 5:t[e++]=r&255|W,r/=128;case 4:t[e++]=r&255|W,r>>>=7;case 3:t[e++]=r&255|W,r>>>=7;case 2:t[e++]=r&255|W,r>>>=7;case 1:{t[e++]=r&255,r>>>=7;break}default:throw new Error("unreachable")}return t}function rd(r,t,e=0){switch(Et(r)){case 8:t.set(e++,r&255|W),r/=128;case 7:t.set(e++,r&255|W),r/=128;case 6:t.set(e++,r&255|W),r/=128;case 5:t.set(e++,r&255|W),r/=128;case 4:t.set(e++,r&255|W),r>>>=7;case 3:t.set(e++,r&255|W),r>>>=7;case 2:t.set(e++,r&255|W),r>>>=7;case 1:{t.set(e++,r&255),r>>>=7;break}default:throw new Error("unreachable")}return t}function Qo(r,t){let e=r[t],n=0;if(n+=e&vt,e<W||(e=r[t+1],n+=(e&vt)<<7,e<W)||(e=r[t+2],n+=(e&vt)<<14,e<W)||(e=r[t+3],n+=(e&vt)<<21,e<W)||(e=r[t+4],n+=(e&vt)*jo,e<W)||(e=r[t+5],n+=(e&vt)*Zo,e<W)||(e=r[t+6],n+=(e&vt)*Xo,e<W)||(e=r[t+7],n+=(e&vt)*Yo,e<W))return n;throw new RangeError("Could not decode varint")}function nd(r,t){let e=r.get(t),n=0;if(n+=e&vt,e<W||(e=r.get(t+1),n+=(e&vt)<<7,e<W)||(e=r.get(t+2),n+=(e&vt)<<14,e<W)||(e=r.get(t+3),n+=(e&vt)<<21,e<W)||(e=r.get(t+4),n+=(e&vt)*jo,e<W)||(e=r.get(t+5),n+=(e&vt)*Zo,e<W)||(e=r.get(t+6),n+=(e&vt)*Xo,e<W)||(e=r.get(t+7),n+=(e&vt)*Yo,e<W))return n;throw new RangeError("Could not decode varint")}function zt(r,t,e=0){return t==null&&(t=Ct(Et(r))),t instanceof Uint8Array?Jo(r,t,e):rd(r,t,e)}function me(r,t=0){return r instanceof Uint8Array?Qo(r,t):nd(r,t)}var ti=new Float32Array([-0]),Le=new Uint8Array(ti.buffer);function Ac(r,t,e){ti[0]=r,t[e]=Le[0],t[e+1]=Le[1],t[e+2]=Le[2],t[e+3]=Le[3]}function Bc(r,t){return Le[0]=r[t],Le[1]=r[t+1],Le[2]=r[t+2],Le[3]=r[t+3],ti[0]}var ei=new Float64Array([-0]),St=new Uint8Array(ei.buffer);function _c(r,t,e){ei[0]=r,t[e]=St[0],t[e+1]=St[1],t[e+2]=St[2],t[e+3]=St[3],t[e+4]=St[4],t[e+5]=St[5],t[e+6]=St[6],t[e+7]=St[7]}function Ic(r,t){return St[0]=r[t],St[1]=r[t+1],St[2]=r[t+2],St[3]=r[t+3],St[4]=r[t+4],St[5]=r[t+5],St[6]=r[t+6],St[7]=r[t+7],ei[0]}var sd=BigInt(Number.MAX_SAFE_INTEGER),od=BigInt(Number.MIN_SAFE_INTEGER),Lt=class r{lo;hi;constructor(t,e){this.lo=t|0,this.hi=e|0}toNumber(t=!1){if(!t&&this.hi>>>31>0){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(e+n*4294967296)}return this.lo+this.hi*4294967296}toBigInt(t=!1){if(t)return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n);if(this.hi>>>31){let e=~this.lo+1>>>0,n=~this.hi>>>0;return e===0&&(n=n+1>>>0),-(BigInt(e)+(BigInt(n)<<32n))}return BigInt(this.lo>>>0)+(BigInt(this.hi>>>0)<<32n)}toString(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,e=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?e===0?t<16384?t<128?1:2:t<2097152?3:4:e<16384?e<128?5:6:e<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return je;if(t<sd&&t>od)return this.fromNumber(Number(t));let e=t<0n;e&&(t=-t);let n=t>>32n,s=t-(n<<32n);return e&&(n=~n|0n,s=~s|0n,++s>Tc&&(s=0n,++n>Tc&&(n=0n))),new r(Number(s),Number(n))}static fromNumber(t){if(t===0)return je;let e=t<0;e&&(t=-t);let n=t>>>0,s=(t-n)/4294967296>>>0;return e&&(s=~s>>>0,n=~n>>>0,++n>4294967295&&(n=0,++s>4294967295&&(s=0))),new r(n,s)}static from(t){return typeof t=="number"?r.fromNumber(t):typeof t=="bigint"?r.fromBigInt(t):typeof t=="string"?r.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new r(t.low>>>0,t.high>>>0):je}},je=new Lt(0,0);je.toBigInt=function(){return 0n};je.zzEncode=je.zzDecode=function(){return this};je.length=function(){return 1};var Tc=4294967296n;function kc(r){let t=0,e=0;for(let n=0;n<r.length;++n)e=r.charCodeAt(n),e<128?t+=1:e<2048?t+=2:(e&64512)===55296&&(r.charCodeAt(n+1)&64512)===56320?(++n,t+=4):t+=3;return t}function Nc(r,t,e){if(e-t<1)return"";let s,o=[],i=0,a;for(;t<e;)a=r[t++],a<128?o[i++]=a:a>191&&a<224?o[i++]=(a&31)<<6|r[t++]&63:a>239&&a<365?(a=((a&7)<<18|(r[t++]&63)<<12|(r[t++]&63)<<6|r[t++]&63)-65536,o[i++]=55296+(a>>10),o[i++]=56320+(a&1023)):o[i++]=(a&15)<<12|(r[t++]&63)<<6|r[t++]&63,i>8191&&((s??(s=[])).push(String.fromCharCode.apply(String,o)),i=0);return s!=null?(i>0&&s.push(String.fromCharCode.apply(String,o.slice(0,i))),s.join("")):String.fromCharCode.apply(String,o.slice(0,i))}function ri(r,t,e){let n=e,s,o;for(let i=0;i<r.length;++i)s=r.charCodeAt(i),s<128?t[e++]=s:s<2048?(t[e++]=s>>6|192,t[e++]=s&63|128):(s&64512)===55296&&((o=r.charCodeAt(i+1))&64512)===56320?(s=65536+((s&1023)<<10)+(o&1023),++i,t[e++]=s>>18|240,t[e++]=s>>12&63|128,t[e++]=s>>6&63|128,t[e++]=s&63|128):(t[e++]=s>>12|224,t[e++]=s>>6&63|128,t[e++]=s&63|128);return e-n}function Yt(r,t){return RangeError(`index out of range: ${r.pos} + ${t??1} > ${r.len}`)}function Un(r,t){return(r[t-4]|r[t-3]<<8|r[t-2]<<16|r[t-1]<<24)>>>0}var ni=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Yt(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Yt(this,4);return Un(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Yt(this,4);return Un(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Yt(this,4);let t=Bc(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Yt(this,4);let t=Ic(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),e=this.pos,n=this.pos+t;if(n>this.len)throw Yt(this,t);return this.pos+=t,e===n?new Uint8Array(0):this.buf.subarray(e,n)}string(){let t=this.bytes();return Nc(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Yt(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Yt(this);while(this.buf[this.pos++]&128);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new Lt(0,0),e=0;if(this.len-this.pos>4){for(;e<4;++e)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<e*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;e=0}else{for(;e<3;++e){if(this.pos>=this.len)throw Yt(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<e*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<e*7)>>>0,t}if(this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw Yt(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<e*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Yt(this,8);let t=Un(this.buf,this.pos+=4),e=Un(this.buf,this.pos+=4);return new Lt(t,e)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){let t=Qo(this.buf,this.pos);return this.pos+=Et(t),t}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 si(r){return new ni(r instanceof Uint8Array?r:r.subarray())}function Ut(r,t,e){let n=si(r);return t.decode(n,void 0,e)}var oi={};_t(oi,{base10:()=>id});var id=_e({prefix:"9",name:"base10",alphabet:"0123456789"});var ii={};_t(ii,{base16:()=>ad,base16upper:()=>cd});var ad=st({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),cd=st({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var ai={};_t(ai,{base2:()=>ld});var ld=st({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var ci={};_t(ci,{base256emoji:()=>pd});var Rc=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}"),ud=Rc.reduce((r,t,e)=>(r[e]=t,r),[]),fd=Rc.reduce((r,t,e)=>(r[t.codePointAt(0)]=e,r),[]);function hd(r){return r.reduce((t,e)=>(t+=ud[e],t),"")}function dd(r){let t=[];for(let e of r){let n=fd[e.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${e}`);t.push(n)}return new Uint8Array(t)}var pd=ir({prefix:"\u{1F680}",name:"base256emoji",encode:hd,decode:dd});var li={};_t(li,{base36:()=>md,base36upper:()=>gd});var md=_e({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),gd=_e({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var ui={};_t(ui,{base64:()=>yd,base64pad:()=>bd,base64url:()=>wd,base64urlpad:()=>xd});var yd=st({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),bd=st({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),wd=st({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),xd=st({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var fi={};_t(fi,{base8:()=>vd});var vd=st({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var hi={};_t(hi,{identity:()=>Ed});var Ed=ir({prefix:"\0",name:"identity",encode:r=>Ka(r),decode:r=>qa(r)});var bg=new TextEncoder,wg=new TextDecoder;var mi={};_t(mi,{sha256:()=>yr,sha512:()=>Bd});function pi({name:r,code:t,encode:e}){return new di(r,t,e)}var di=class{name;code;encode;constructor(t,e,n){this.name=t,this.code=e,this.encode=n}digest(t){if(t instanceof Uint8Array){let e=this.encode(t);return e instanceof Uint8Array?Wt(this.code,e):e.then(n=>Wt(this.code,n))}else throw Error("Unknown type, must be binary type")}};function Uc(r){return async t=>new Uint8Array(await crypto.subtle.digest(r,t))}var yr=pi({name:"sha2-256",code:18,encode:Uc("SHA-256")}),Bd=pi({name:"sha2-512",code:19,encode:Uc("SHA-512")});var $r={...hi,...ai,...fi,...oi,...ii,..._o,...li,...Bo,...ui,...ci},Cg={...mi,...ko};function Oc(r,t,e,n){return{name:r,prefix:t,encoder:{name:r,prefix:t,encode:e},decoder:{decode:n}}}var Dc=Oc("utf8","u",r=>"u"+new TextDecoder("utf8").decode(r),r=>new TextEncoder().encode(r.substring(1))),gi=Oc("ascii","a",r=>{let t="a";for(let e=0;e<r.length;e++)t+=String.fromCharCode(r[e]);return t},r=>{r=r.substring(1);let t=Ct(r.length);for(let e=0;e<r.length;e++)t[e]=r.charCodeAt(e);return t}),_d={utf8:Dc,"utf-8":Dc,hex:$r.base16,latin1:gi,ascii:gi,binary:gi,...$r},Dn=_d;function F(r,t="utf8"){let e=Dn[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.decoder.decode(`${e.prefix}${r}`)}function yi(r){let t=r??8192,e=t>>>1,n,s=t;return function(i){if(i<1||i>e)return Ct(i);s+i>t&&(n=Ct(t),s=0);let a=n.subarray(s,s+=i);return s&7&&(s=(s|7)+1),a}}var Ze=class{fn;len;next;val;constructor(t,e,n){this.fn=t,this.len=e,this.next=void 0,this.val=n}};function bi(){}var xi=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},Id=yi();function Td(r){return globalThis.Buffer!=null?Ct(r):Id(r)}var Wr=class{len;head;tail;states;constructor(){this.len=0,this.head=new Ze(bi,0,0),this.tail=this.head,this.states=null}_push(t,e,n){return this.tail=this.tail.next=new Ze(t,e,n),this.len+=e,this}uint32(t){return this.len+=(this.tail=this.tail.next=new vi((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(On,10,Lt.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let e=Lt.fromBigInt(t);return this._push(On,e.length(),e)}uint64Number(t){return this._push(Jo,Et(t),t)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let e=Lt.fromBigInt(t).zzEncode();return this._push(On,e.length(),e)}sint64Number(t){let e=Lt.fromNumber(t).zzEncode();return this._push(On,e.length(),e)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(wi,1,t?1:0)}fixed32(t){return this._push(Gr,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let e=Lt.fromBigInt(t);return this._push(Gr,4,e.lo)._push(Gr,4,e.hi)}fixed64Number(t){let e=Lt.fromNumber(t);return this._push(Gr,4,e.lo)._push(Gr,4,e.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(Ac,4,t)}double(t){return this._push(_c,8,t)}bytes(t){let e=t.length>>>0;return e===0?this._push(wi,1,0):this.uint32(e)._push(Nd,e,t)}string(t){let e=kc(t);return e!==0?this.uint32(e)._push(ri,e,t):this._push(wi,1,0)}fork(){return this.states=new xi(this),this.head=this.tail=new Ze(bi,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 Ze(bi,0,0),this.len=0),this}ldelim(){let t=this.head,e=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=e,this.len+=n),this}finish(){let t=this.head.next,e=Td(this.len),n=0;for(;t!=null;)t.fn(t.val,e,n),n+=t.len,t=t.next;return e}};function wi(r,t,e){t[e]=r&255}function kd(r,t,e){for(;r>127;)t[e++]=r&127|128,r>>>=7;t[e]=r}var vi=class extends Ze{next;constructor(t,e){super(kd,t,e),this.next=void 0}};function On(r,t,e){for(;r.hi!==0;)t[e++]=r.lo&127|128,r.lo=(r.lo>>>7|r.hi<<25)>>>0,r.hi>>>=7;for(;r.lo>127;)t[e++]=r.lo&127|128,r.lo=r.lo>>>7;t[e++]=r.lo}function Gr(r,t,e){t[e]=r&255,t[e+1]=r>>>8&255,t[e+2]=r>>>16&255,t[e+3]=r>>>24}function Nd(r,t,e){t.set(r,e)}globalThis.Buffer!=null&&(Wr.prototype.bytes=function(r){let t=r.length>>>0;return this.uint32(t),t>0&&this._push(Cd,t,r),this},Wr.prototype.string=function(r){let t=globalThis.Buffer.byteLength(r);return this.uint32(t),t>0&&this._push(Rd,t,r),this});function Cd(r,t,e){t.set(r,e)}function Rd(r,t,e){r.length<40?ri(r,t,e):t.utf8Write!=null?t.utf8Write(r,e):t.set(F(r),e)}function Ei(){return new Wr}function Dt(r,t){let e=Ei();return t.encode(r,e,{lengthDelimited:!1}),e.finish()}var br;(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"})(br||(br={}));function Mn(r,t,e,n){return{name:r,type:t,encode:e,decode:n}}function Xe(r){function t(s){if(r[s.toString()]==null)throw new Error("Invalid enum value");return r[s]}let e=function(o,i){let a=t(o);i.int32(a)},n=function(o){let i=o.int32();return t(i)};return Mn("enum",br.VARINT,e,n)}function Ot(r,t){return Mn("message",br.LENGTH_DELIMITED,r,t)}var jr=class extends Error{code="ERR_MAX_LENGTH";name="MaxLengthError"};var ft;(function(r){r.RSA="RSA",r.Ed25519="Ed25519",r.secp256k1="secp256k1"})(ft||(ft={}));var Si;(function(r){r[r.RSA=0]="RSA",r[r.Ed25519=1]="Ed25519",r[r.secp256k1=2]="secp256k1"})(Si||(Si={}));(function(r){r.codec=()=>Xe(Si)})(ft||(ft={}));var re;(function(r){let t;r.codec=()=>(t==null&&(t=Ot((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),ft.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let o={},i=n==null?e.len:e.pos+n;for(;e.pos<i;){let a=e.uint32();switch(a>>>3){case 1:{o.Type=ft.codec().decode(e);break}case 2:{o.Data=e.bytes();break}default:{e.skipType(a&7);break}}}return o})),t),r.encode=e=>Dt(e,r.codec()),r.decode=(e,n)=>Ut(e,r.codec(),n)})(re||(re={}));var Ai;(function(r){let t;r.codec=()=>(t==null&&(t=Ot((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.Type!=null&&(n.uint32(8),ft.codec().encode(e.Type,n)),e.Data!=null&&(n.uint32(18),n.bytes(e.Data)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let o={},i=n==null?e.len:e.pos+n;for(;e.pos<i;){let a=e.uint32();switch(a>>>3){case 1:{o.Type=ft.codec().decode(e);break}case 2:{o.Data=e.bytes();break}default:{e.skipType(a&7);break}}}return o})),t),r.encode=e=>Dt(e,r.codec()),r.decode=(e,n)=>Ut(e,r.codec(),n)})(Ai||(Ai={}));var sn={};_t(sn,{MAX_RSA_KEY_SIZE:()=>ks,generateRSAKeyPair:()=>Ll,jwkToJWKKeyPair:()=>Ul,jwkToPkcs1:()=>jd,jwkToPkix:()=>Li,jwkToRSAPrivateKey:()=>Rl,pkcs1ToJwk:()=>kl,pkcs1ToRSAPrivateKey:()=>Cl,pkixToJwk:()=>Nl,pkixToRSAPublicKey:()=>Ui});var Ld=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),Ue=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),De=new Uint32Array(64),Bi=class extends pr{constructor(){super(64,32,8,!1),this.A=Ue[0]|0,this.B=Ue[1]|0,this.C=Ue[2]|0,this.D=Ue[3]|0,this.E=Ue[4]|0,this.F=Ue[5]|0,this.G=Ue[6]|0,this.H=Ue[7]|0}get(){let{A:t,B:e,C:n,D:s,E:o,F:i,G:a,H:c}=this;return[t,e,n,s,o,i,a,c]}set(t,e,n,s,o,i,a,c){this.A=t|0,this.B=e|0,this.C=n|0,this.D=s|0,this.E=o|0,this.F=i|0,this.G=a|0,this.H=c|0}process(t,e){for(let u=0;u<16;u++,e+=4)De[u]=t.getUint32(e,!1);for(let u=16;u<64;u++){let p=De[u-15],l=De[u-2],d=jt(p,7)^jt(p,18)^p>>>3,g=jt(l,17)^jt(l,19)^l>>>10;De[u]=g+De[u-7]+d+De[u-16]|0}let{A:n,B:s,C:o,D:i,E:a,F:c,G:h,H:f}=this;for(let u=0;u<64;u++){let p=jt(a,6)^jt(a,11)^jt(a,25),l=f+p+ic(a,c,h)+Ld[u]+De[u]|0,g=(jt(n,2)^jt(n,13)^jt(n,22))+ac(n,s,o)|0;f=h,h=c,c=a,a=i+l|0,i=o,o=s,s=n,n=l+g|0}n=n+this.A|0,s=s+this.B|0,o=o+this.C|0,i=i+this.D|0,a=a+this.E|0,c=c+this.F|0,h=h+this.G|0,f=f+this.H|0,this.set(n,s,o,i,a,c,h,f)}roundClean(){De.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var wr=Sn(()=>new Bi);var $=wo(Pc());function Ye(r,t){let e=0;if(r.length===1)return r[0];for(let n=r.length-1;n>=0;n--)e+=r[r.length-1-n]*Math.pow(2,t*n);return e}function Oe(r,t,e=-1){let n=e,s=r,o=0,i=Math.pow(2,t);for(let a=1;a<8;a++){if(r<i){let c;if(n<0)c=new ArrayBuffer(a),o=a;else{if(n<a)return new ArrayBuffer(0);c=new ArrayBuffer(n),o=n}let h=new Uint8Array(c);for(let f=a-1;f>=0;f--){let u=Math.pow(2,f*t);h[o-f-1]=Math.floor(s/u),s-=h[o-f-1]*u}return c}i*=Math.pow(2,t)}return new ArrayBuffer(0)}function Hn(...r){let t=0,e=0;for(let o of r)t+=o.length;let n=new ArrayBuffer(t),s=new Uint8Array(n);for(let o of r)s.set(o,e),e+=o.length;return s}function Ii(){let r=new Uint8Array(this.valueHex);if(this.valueHex.byteLength>=2){let a=r[0]===255&&r[1]&128,c=r[0]===0&&(r[1]&128)===0;(a||c)&&this.warnings.push("Needlessly long format")}let t=new ArrayBuffer(this.valueHex.byteLength),e=new Uint8Array(t);for(let a=0;a<this.valueHex.byteLength;a++)e[a]=0;e[0]=r[0]&128;let n=Ye(e,8),s=new ArrayBuffer(this.valueHex.byteLength),o=new Uint8Array(s);for(let a=0;a<this.valueHex.byteLength;a++)o[a]=r[a];return o[0]&=127,Ye(o,8)-n}function Vc(r){let t=r<0?r*-1:r,e=128;for(let n=1;n<8;n++){if(t<=e){if(r<0){let i=e-t,a=Oe(i,8,n),c=new Uint8Array(a);return c[0]|=128,a}let s=Oe(t,8,n),o=new Uint8Array(s);if(o[0]&128){let i=s.slice(0),a=new Uint8Array(i);s=new ArrayBuffer(s.byteLength+1),o=new Uint8Array(s);for(let c=0;c<i.byteLength;c++)o[c+1]=a[c];o[0]=0}return s}e*=Math.pow(2,8)}return new ArrayBuffer(0)}function Hc(r,t){if(r.byteLength!==t.byteLength)return!1;let e=new Uint8Array(r),n=new Uint8Array(t);for(let s=0;s<e.length;s++)if(e[s]!==n[s])return!1;return!0}function Rt(r,t){let e=r.toString(10);if(t<e.length)return"";let n=t-e.length,s=new Array(n);for(let i=0;i<n;i++)s[i]="0";return s.join("").concat(e)}var hy=Math.log(2);function Fn(){if(typeof BigInt>"u")throw new Error("BigInt is not defined. Your environment doesn't implement BigInt.")}function Ti(r){let t=0,e=0;for(let s=0;s<r.length;s++){let o=r[s];t+=o.byteLength}let n=new Uint8Array(t);for(let s=0;s<r.length;s++){let o=r[s];n.set(new Uint8Array(o),e),e+=o.byteLength}return n.buffer}function xe(r,t,e,n){return t instanceof Uint8Array?t.byteLength?e<0?(r.error="Wrong parameter: inputOffset less than zero",!1):n<0?(r.error="Wrong parameter: inputLength less than zero",!1):t.byteLength-e-n<0?(r.error="End of input reached before message was fully decoded (inconsistent offset and length values)",!1):!0:(r.error="Wrong parameter: inputBuffer has zero length",!1):(r.error="Wrong parameter: inputBuffer must be 'Uint8Array'",!1)}var Xr=class{constructor(){this.items=[]}write(t){this.items.push(t)}final(){return Ti(this.items)}},Zr=[new Uint8Array([1])],Fc="0123456789";var Ar="",Jt=new ArrayBuffer(0),ki=new Uint8Array(0),Yr="EndOfContent",Kc="OCTET STRING",zc="BIT STRING";function ve(r){var t;return t=class extends r{constructor(...n){var s;super(...n);let o=n[0]||{};this.isHexOnly=(s=o.isHexOnly)!==null&&s!==void 0?s:!1,this.valueHexView=o.valueHex?$.BufferSourceConverter.toUint8Array(o.valueHex):ki}get valueHex(){return this.valueHexView.slice().buffer}set valueHex(n){this.valueHexView=new Uint8Array(n)}fromBER(n,s,o){let i=n instanceof ArrayBuffer?new Uint8Array(n):n;if(!xe(this,i,s,o))return-1;let a=s+o;return this.valueHexView=i.subarray(s,a),this.valueHexView.length?(this.blockLength=o,a):(this.warnings.push("Zero buffer length"),s)}toBER(n=!1){return this.isHexOnly?n?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.byteLength===this.valueHexView.buffer.byteLength?this.valueHexView.buffer:this.valueHexView.slice().buffer:(this.error="Flag 'isHexOnly' is not set, abort",Jt)}toJSON(){return{...super.toJSON(),isHexOnly:this.isHexOnly,valueHex:$.Convert.ToHex(this.valueHexView)}}},t.NAME="hexBlock",t}var ye=class{constructor({blockLength:t=0,error:e=Ar,warnings:n=[],valueBeforeDecode:s=ki}={}){this.blockLength=t,this.error=e,this.warnings=n,this.valueBeforeDecodeView=$.BufferSourceConverter.toUint8Array(s)}static blockName(){return this.NAME}get valueBeforeDecode(){return this.valueBeforeDecodeView.slice().buffer}set valueBeforeDecode(t){this.valueBeforeDecodeView=new Uint8Array(t)}toJSON(){return{blockName:this.constructor.NAME,blockLength:this.blockLength,error:this.error,warnings:this.warnings,valueBeforeDecode:$.Convert.ToHex(this.valueBeforeDecodeView)}}};ye.NAME="baseBlock";var At=class extends ye{fromBER(t,e,n){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}toBER(t,e){throw TypeError("User need to make a specific function in a class which extends 'ValueBlock'")}};At.NAME="valueBlock";var qn=class extends ve(ye){constructor({idBlock:t={}}={}){var e,n,s,o;super(),t?(this.isHexOnly=(e=t.isHexOnly)!==null&&e!==void 0?e:!1,this.valueHexView=t.valueHex?$.BufferSourceConverter.toUint8Array(t.valueHex):ki,this.tagClass=(n=t.tagClass)!==null&&n!==void 0?n:-1,this.tagNumber=(s=t.tagNumber)!==null&&s!==void 0?s:-1,this.isConstructed=(o=t.isConstructed)!==null&&o!==void 0?o:!1):(this.tagClass=-1,this.tagNumber=-1,this.isConstructed=!1)}toBER(t=!1){let e=0;switch(this.tagClass){case 1:e|=0;break;case 2:e|=64;break;case 3:e|=128;break;case 4:e|=192;break;default:return this.error="Unknown tag class",Jt}if(this.isConstructed&&(e|=32),this.tagNumber<31&&!this.isHexOnly){let s=new Uint8Array(1);if(!t){let o=this.tagNumber;o&=31,e|=o,s[0]=e}return s.buffer}if(!this.isHexOnly){let s=Oe(this.tagNumber,7),o=new Uint8Array(s),i=s.byteLength,a=new Uint8Array(i+1);if(a[0]=e|31,!t){for(let c=0;c<i-1;c++)a[c+1]=o[c]|128;a[i]=o[i-1]}return a.buffer}let n=new Uint8Array(this.valueHexView.byteLength+1);if(n[0]=e|31,!t){let s=this.valueHexView;for(let o=0;o<s.length-1;o++)n[o+1]=s[o]|128;n[this.valueHexView.byteLength]=s[s.length-1]}return n.buffer}fromBER(t,e,n){let s=$.BufferSourceConverter.toUint8Array(t);if(!xe(this,s,e,n))return-1;let o=s.subarray(e,e+n);if(o.length===0)return this.error="Zero buffer length",-1;switch(o[0]&192){case 0:this.tagClass=1;break;case 64:this.tagClass=2;break;case 128:this.tagClass=3;break;case 192:this.tagClass=4;break;default:return this.error="Unknown tag class",-1}this.isConstructed=(o[0]&32)===32,this.isHexOnly=!1;let a=o[0]&31;if(a!==31)this.tagNumber=a,this.blockLength=1;else{let c=1,h=this.valueHexView=new Uint8Array(255),f=255;for(;o[c]&128;){if(h[c-1]=o[c]&127,c++,c>=o.length)return this.error="End of input reached before message was fully decoded",-1;if(c===f){f+=255;let p=new Uint8Array(f);for(let l=0;l<h.length;l++)p[l]=h[l];h=this.valueHexView=new Uint8Array(f)}}this.blockLength=c+1,h[c-1]=o[c]&127;let u=new Uint8Array(c);for(let p=0;p<c;p++)u[p]=h[p];h=this.valueHexView=new Uint8Array(c),h.set(u),this.blockLength<=9?this.tagNumber=Ye(h,7):(this.isHexOnly=!0,this.warnings.push("Tag too long, represented as hex-coded"))}if(this.tagClass===1&&this.isConstructed)switch(this.tagNumber){case 1:case 2:case 5:case 6:case 9:case 13:case 14:case 23:case 24:case 31:case 32:case 33:case 34:return this.error="Constructed encoding used for primitive type",-1}return e+this.blockLength}toJSON(){return{...super.toJSON(),tagClass:this.tagClass,tagNumber:this.tagNumber,isConstructed:this.isConstructed}}};qn.NAME="identificationBlock";var Kn=class extends ye{constructor({lenBlock:t={}}={}){var e,n,s;super(),this.isIndefiniteForm=(e=t.isIndefiniteForm)!==null&&e!==void 0?e:!1,this.longFormUsed=(n=t.longFormUsed)!==null&&n!==void 0?n:!1,this.length=(s=t.length)!==null&&s!==void 0?s:0}fromBER(t,e,n){let s=$.BufferSourceConverter.toUint8Array(t);if(!xe(this,s,e,n))return-1;let o=s.subarray(e,e+n);if(o.length===0)return this.error="Zero buffer length",-1;if(o[0]===255)return this.error="Length block 0xFF is reserved by standard",-1;if(this.isIndefiniteForm=o[0]===128,this.isIndefiniteForm)return this.blockLength=1,e+this.blockLength;if(this.longFormUsed=!!(o[0]&128),this.longFormUsed===!1)return this.length=o[0],this.blockLength=1,e+this.blockLength;let i=o[0]&127;if(i>8)return this.error="Too big integer",-1;if(i+1>o.length)return this.error="End of input reached before message was fully decoded",-1;let a=e+1,c=s.subarray(a,a+i);return c[i-1]===0&&this.warnings.push("Needlessly long encoded length"),this.length=Ye(c,8),this.longFormUsed&&this.length<=127&&this.warnings.push("Unnecessary usage of long length form"),this.blockLength=i+1,e+this.blockLength}toBER(t=!1){let e,n;if(this.length>127&&(this.longFormUsed=!0),this.isIndefiniteForm)return e=new ArrayBuffer(1),t===!1&&(n=new Uint8Array(e),n[0]=128),e;if(this.longFormUsed){let s=Oe(this.length,8);if(s.byteLength>127)return this.error="Too big length",Jt;if(e=new ArrayBuffer(s.byteLength+1),t)return e;let o=new Uint8Array(s);n=new Uint8Array(e),n[0]=s.byteLength|128;for(let i=0;i<s.byteLength;i++)n[i+1]=o[i];return e}return e=new ArrayBuffer(1),t===!1&&(n=new Uint8Array(e),n[0]=this.length),e}toJSON(){return{...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,longFormUsed:this.longFormUsed,length:this.length}}};Kn.NAME="lengthBlock";var N={},bt=class extends ye{constructor({name:t=Ar,optional:e=!1,primitiveSchema:n,...s}={},o){super(s),this.name=t,this.optional=e,n&&(this.primitiveSchema=n),this.idBlock=new qn(s),this.lenBlock=new Kn(s),this.valueBlock=o?new o(s):new At(s)}fromBER(t,e,n){let s=this.valueBlock.fromBER(t,e,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),s)}toBER(t,e){let n=e||new Xr;e||$c(this);let s=this.idBlock.toBER(t);if(n.write(s),this.lenBlock.isIndefiniteForm)n.write(new Uint8Array([128]).buffer),this.valueBlock.toBER(t,n),n.write(new ArrayBuffer(2));else{let o=this.valueBlock.toBER(t);this.lenBlock.length=o.byteLength;let i=this.lenBlock.toBER(t);n.write(i),n.write(o)}return e?Jt:n.final()}toJSON(){let t={...super.toJSON(),idBlock:this.idBlock.toJSON(),lenBlock:this.lenBlock.toJSON(),valueBlock:this.valueBlock.toJSON(),name:this.name,optional:this.optional};return this.primitiveSchema&&(t.primitiveSchema=this.primitiveSchema.toJSON()),t}toString(t="ascii"){return t==="ascii"?this.onAsciiEncoding():$.Convert.ToHex(this.toBER())}onAsciiEncoding(){return`${this.constructor.NAME} : ${$.Convert.ToHex(this.valueBlock.valueBeforeDecodeView)}`}isEqual(t){if(this===t)return!0;if(!(t instanceof this.constructor))return!1;let e=this.toBER(),n=t.toBER();return Hc(e,n)}};bt.NAME="BaseBlock";function $c(r){if(r instanceof N.Constructed)for(let t of r.valueBlock.value)$c(t)&&(r.lenBlock.isIndefiniteForm=!0);return!!r.lenBlock.isIndefiniteForm}var zn=class extends bt{constructor({value:t=Ar,...e}={},n){super(e,n),t&&this.fromString(t)}getValue(){return this.valueBlock.value}setValue(t){this.valueBlock.value=t}fromBER(t,e,n){let s=this.valueBlock.fromBER(t,e,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(this.fromBuffer(this.valueBlock.valueHexView),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),s)}onAsciiEncoding(){return`${this.constructor.NAME} : '${this.valueBlock.value}'`}};zn.NAME="BaseStringBlock";var $n=class extends ve(At){constructor({isHexOnly:t=!0,...e}={}){super(e),this.isHexOnly=t}};$n.NAME="PrimitiveValueBlock";var Gc,Gn=class extends bt{constructor(t={}){super(t,$n),this.idBlock.isConstructed=!1}};Gc=Gn;N.Primitive=Gc;Gn.NAME="PRIMITIVE";function qd(r,t){if(r instanceof t)return r;let e=new t;return e.idBlock=r.idBlock,e.lenBlock=r.lenBlock,e.warnings=r.warnings,e.valueBeforeDecodeView=r.valueBeforeDecodeView,e}function _s(r,t=0,e=r.length){let n=t,s=new bt({},At),o=new ye;if(!xe(o,r,t,e))return s.error=o.error,{offset:-1,result:s};if(!r.subarray(t,t+e).length)return s.error="Zero buffer length",{offset:-1,result:s};let a=s.idBlock.fromBER(r,t,e);if(s.idBlock.warnings.length&&s.warnings.concat(s.idBlock.warnings),a===-1)return s.error=s.idBlock.error,{offset:-1,result:s};if(t=a,e-=s.idBlock.blockLength,a=s.lenBlock.fromBER(r,t,e),s.lenBlock.warnings.length&&s.warnings.concat(s.lenBlock.warnings),a===-1)return s.error=s.lenBlock.error,{offset:-1,result:s};if(t=a,e-=s.lenBlock.blockLength,!s.idBlock.isConstructed&&s.lenBlock.isIndefiniteForm)return s.error="Indefinite length form used for primitive encoding form",{offset:-1,result:s};let c=bt;switch(s.idBlock.tagClass){case 1:if(s.idBlock.tagNumber>=37&&s.idBlock.isHexOnly===!1)return s.error="UNIVERSAL 37 and upper tags are reserved by ASN.1 standard",{offset:-1,result:s};switch(s.idBlock.tagNumber){case 0:if(s.idBlock.isConstructed&&s.lenBlock.length>0)return s.error="Type [UNIVERSAL 0] is reserved",{offset:-1,result:s};c=N.EndOfContent;break;case 1:c=N.Boolean;break;case 2:c=N.Integer;break;case 3:c=N.BitString;break;case 4:c=N.OctetString;break;case 5:c=N.Null;break;case 6:c=N.ObjectIdentifier;break;case 10:c=N.Enumerated;break;case 12:c=N.Utf8String;break;case 13:c=N.RelativeObjectIdentifier;break;case 14:c=N.TIME;break;case 15:return s.error="[UNIVERSAL 15] is reserved by ASN.1 standard",{offset:-1,result:s};case 16:c=N.Sequence;break;case 17:c=N.Set;break;case 18:c=N.NumericString;break;case 19:c=N.PrintableString;break;case 20:c=N.TeletexString;break;case 21:c=N.VideotexString;break;case 22:c=N.IA5String;break;case 23:c=N.UTCTime;break;case 24:c=N.GeneralizedTime;break;case 25:c=N.GraphicString;break;case 26:c=N.VisibleString;break;case 27:c=N.GeneralString;break;case 28:c=N.UniversalString;break;case 29:c=N.CharacterString;break;case 30:c=N.BmpString;break;case 31:c=N.DATE;break;case 32:c=N.TimeOfDay;break;case 33:c=N.DateTime;break;case 34:c=N.Duration;break;default:{let h=s.idBlock.isConstructed?new N.Constructed:new N.Primitive;h.idBlock=s.idBlock,h.lenBlock=s.lenBlock,h.warnings=s.warnings,s=h}}break;case 2:case 3:case 4:default:c=s.idBlock.isConstructed?N.Constructed:N.Primitive}return s=qd(s,c),a=s.fromBER(r,t,s.lenBlock.isIndefiniteForm?e:s.lenBlock.length),s.valueBeforeDecodeView=r.subarray(n,n+s.blockLength),{offset:a,result:s}}function Ni(r){if(!r.byteLength){let t=new bt({},At);return t.error="Input buffer has zero length",{offset:-1,result:t}}return _s($.BufferSourceConverter.toUint8Array(r).slice(),0,r.byteLength)}function Kd(r,t){return r?1:t}var ne=class extends At{constructor({value:t=[],isIndefiniteForm:e=!1,...n}={}){super(n),this.value=t,this.isIndefiniteForm=e}fromBER(t,e,n){let s=$.BufferSourceConverter.toUint8Array(t);if(!xe(this,s,e,n))return-1;if(this.valueBeforeDecodeView=s.subarray(e,e+n),this.valueBeforeDecodeView.length===0)return this.warnings.push("Zero buffer length"),e;let o=e;for(;Kd(this.isIndefiniteForm,n)>0;){let i=_s(s,o,n);if(i.offset===-1)return this.error=i.result.error,this.warnings.concat(i.result.warnings),-1;if(o=i.offset,this.blockLength+=i.result.blockLength,n-=i.result.blockLength,this.value.push(i.result),this.isIndefiniteForm&&i.result.constructor.NAME===Yr)break}return this.isIndefiniteForm&&(this.value[this.value.length-1].constructor.NAME===Yr?this.value.pop():this.warnings.push("No EndOfContent block encoded")),o}toBER(t,e){let n=e||new Xr;for(let s=0;s<this.value.length;s++)this.value[s].toBER(t,n);return e?Jt:n.final()}toJSON(){let t={...super.toJSON(),isIndefiniteForm:this.isIndefiniteForm,value:[]};for(let e of this.value)t.value.push(e.toJSON());return t}};ne.NAME="ConstructedValueBlock";var Wc,Me=class extends bt{constructor(t={}){super(t,ne),this.idBlock.isConstructed=!0}fromBER(t,e,n){this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm;let s=this.valueBlock.fromBER(t,e,this.lenBlock.isIndefiniteForm?n:this.lenBlock.length);return s===-1?(this.error=this.valueBlock.error,s):(this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.valueBlock.error.length||(this.blockLength+=this.valueBlock.blockLength),s)}onAsciiEncoding(){let t=[];for(let n of this.valueBlock.value)t.push(n.toString("ascii").split(`
|
3
3
|
`).map(s=>` ${s}`).join(`
|
4
|
-
`));let
|
5
|
-
${
|
6
|
-
`)}`:`${t} :`}};sl=Ft;R.Constructed=sl;Ft.NAME="CONSTRUCTED";var is=class extends Be{fromBER(e,t,n){return t}toBER(e){return tt}};is.override="EndOfContentValueBlock";var il,os=class extends xe{constructor(e={}){super(e,is),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};il=os;R.EndOfContent=il;os.NAME=hn;var ol,Kt=class extends xe{constructor(e={}){super(e,Be),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(e,t,n){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=n,t+n>e.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):t+n}toBER(e,t){let n=new ArrayBuffer(2);if(!e){let s=new Uint8Array(n);s[0]=5,s[1]=0}return t&&t.write(n),n}onAsciiEncoding(){return`${this.constructor.NAME}`}};ol=Kt;R.Null=ol;Kt.NAME="NULL";var as=class extends _t(Be){constructor({value:e,...t}={}){super(t),t.valueHex?this.valueHexView=z.BufferSourceConverter.toUint8Array(t.valueHex):this.valueHexView=new Uint8Array(1),e&&(this.value=e)}get value(){for(let e of this.valueHexView)if(e>0)return!0;return!1}set value(e){this.valueHexView[0]=e?255:0}fromBER(e,t,n){let s=z.BufferSourceConverter.toUint8Array(e);return Bt(this,s,t,n)?(this.valueHexView=s.subarray(t,t+n),n>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,No.call(this),this.blockLength=n,t+n):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};as.NAME="BooleanValueBlock";var al,cs=class extends xe{constructor(e={}){super(e,as),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}getValue(){return this.valueBlock.value}setValue(e){this.valueBlock.value=e}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};al=cs;R.Boolean=al;cs.NAME="BOOLEAN";var ls=class extends _t(lt){constructor({isConstructed:e=!1,...t}={}){super(t),this.isConstructed=e}fromBER(e,t,n){let s=0;if(this.isConstructed){if(this.isHexOnly=!1,s=lt.prototype.fromBER.call(this,e,t,n),s===-1)return s;for(let i=0;i<this.value.length;i++){let o=this.value[i].constructor.NAME;if(o===hn){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(o!==el)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,s=super.fromBER(e,t,n),this.blockLength=n;return s}toBER(e,t){return this.isConstructed?lt.prototype.toBER.call(this,e,t):e?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}};ls.NAME="OctetStringValueBlock";var cl,At=class r extends xe{constructor({idBlock:e={},lenBlock:t={},...n}={}){var s,i;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((i=n.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:n.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!n.isIndefiniteForm},...n},ls),this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(e,t,n){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,n===0)return this.idBlock.error.length===0&&(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length===0&&(this.blockLength+=this.lenBlock.blockLength),t;if(!this.valueBlock.isConstructed){let i=(e instanceof ArrayBuffer?new Uint8Array(e):e).subarray(t,t+n);try{if(i.byteLength){let o=Ps(i,0,i.byteLength);o.offset!==-1&&o.offset===n&&(this.valueBlock.value=[o.result])}}catch{}}return super.fromBER(e,t,n)}onAsciiEncoding(){return this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length?Ft.prototype.onAsciiEncoding.call(this):`${this.constructor.NAME} : ${z.Convert.ToHex(this.valueBlock.valueHexView)}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let e=[];for(let t of this.valueBlock.value)t instanceof r&&e.push(t.valueBlock.valueHexView);return z.BufferSourceConverter.concat(e)}};cl=At;R.OctetString=cl;At.NAME=el;var us=class extends _t(lt){constructor({unusedBits:e=0,isConstructed:t=!1,...n}={}){super(n),this.unusedBits=e,this.isConstructed=t,this.blockLength=this.valueHexView.byteLength}fromBER(e,t,n){if(!n)return t;let s=-1;if(this.isConstructed){if(s=lt.prototype.fromBER.call(this,e,t,n),s===-1)return s;for(let a of this.value){let c=a.constructor.NAME;if(c===hn){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(c!==tl)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let h=a.valueBlock;if(this.unusedBits>0&&h.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=h.unusedBits}return s}let i=z.BufferSourceConverter.toUint8Array(e);if(!Bt(this,i,t,n))return-1;let o=i.subarray(t,t+n);if(this.unusedBits=o[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=o.subarray(1);try{if(a.byteLength){let c=Ps(a,0,a.byteLength);c.offset!==-1&&c.offset===n-1&&(this.value=[c.result])}}catch{}}return this.valueHexView=o.subarray(1),this.blockLength=o.length,t+n}toBER(e,t){if(this.isConstructed)return lt.prototype.toBER.call(this,e,t);if(e)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return tt;let n=new Uint8Array(this.valueHexView.length+1);return n[0]=this.unusedBits,n.set(this.valueHexView,1),n.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}};us.NAME="BitStringValueBlock";var ll,Or=class extends xe{constructor({idBlock:e={},lenBlock:t={},...n}={}){var s,i;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((i=n.value)===null||i===void 0)&&i.length)),super({idBlock:{isConstructed:n.isConstructed,...e},lenBlock:{...t,isIndefiniteForm:!!n.isIndefiniteForm},...n},us),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(e,t,n){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(e,t,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return Ft.prototype.onAsciiEncoding.call(this);{let e=[],t=this.valueBlock.valueHexView;for(let s of t)e.push(s.toString(2).padStart(8,"0"));let n=e.join("");return`${this.constructor.NAME} : ${n.substring(0,n.length-this.valueBlock.unusedBits)}`}}};ll=Or;R.BitString=ll;Or.NAME=tl;var ul;function np(r,e){let t=new Uint8Array([0]),n=new Uint8Array(r),s=new Uint8Array(e),i=n.slice(0),o=i.length-1,a=s.slice(0),c=a.length-1,h=0,f=c<o?o:c,l=0;for(let g=f;g>=0;g--,l++){switch(!0){case l<a.length:h=i[o-l]+a[c-l]+t[0];break;default:h=i[o-l]+t[0]}switch(t[0]=h/10,!0){case l>=i.length:i=Jn(new Uint8Array([h%10]),i);break;default:i[o-l]=h%10}}return t[0]>0&&(i=Jn(t,i)),i}function Qc(r){if(r>=un.length)for(let e=un.length;e<=r;e++){let t=new Uint8Array([0]),n=un[e-1].slice(0);for(let s=n.length-1;s>=0;s--){let i=new Uint8Array([(n[s]<<1)+t[0]]);t[0]=i[0]/10,n[s]=i[0]%10}t[0]>0&&(n=Jn(t,n)),un.push(n)}return un[r]}function sp(r,e){let t=0,n=new Uint8Array(r),s=new Uint8Array(e),i=n.slice(0),o=i.length-1,a=s.slice(0),c=a.length-1,h,f=0;for(let l=c;l>=0;l--,f++)switch(h=i[o-f]-a[c-f]-t,!0){case h<0:t=1,i[o-f]=h+10;break;default:t=0,i[o-f]=h}if(t>0)for(let l=o-c+1;l>=0;l--,f++)if(h=i[o-f]-t,h<0)t=1,i[o-f]=h+10;else{t=0,i[o-f]=h;break}return i.slice()}var dn=class extends _t(Be){constructor({value:e,...t}={}){super(t),this._valueDec=0,t.valueHex&&this.setValueHex(),e!==void 0&&(this.valueDec=e)}setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=No.call(this)))}set valueDec(e){this._valueDec=e,this.isHexOnly=!1,this.valueHexView=new Uint8Array(Zc(e))}get valueDec(){return this._valueDec}fromDER(e,t,n,s=0){let i=this.fromBER(e,t,n);if(i===-1)return i;let o=this.valueHexView;return o[0]===0&&o[1]&128?this.valueHexView=o.subarray(1):s!==0&&o.length<s&&(s-o.length>1&&(s=o.length+1),this.valueHexView=o.subarray(s-o.length)),i}toDER(e=!1){let t=this.valueHexView;switch(!0){case(t[0]&128)!==0:{let n=new Uint8Array(this.valueHexView.length+1);n[0]=0,n.set(t,1),this.valueHexView=n}break;case(t[0]===0&&(t[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(e)}fromBER(e,t,n){let s=super.fromBER(e,t,n);return s===-1||this.setValueHex(),s}toBER(e){return e?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let e=this.valueHexView.length*8-1,t=new Uint8Array(this.valueHexView.length*8/3),n=0,s,i=this.valueHexView,o="",a=!1;for(let c=i.byteLength-1;c>=0;c--){s=i[c];for(let h=0;h<8;h++){if((s&1)===1)switch(n){case e:t=sp(Qc(n),t),o="-";break;default:t=np(t,Qc(n))}n++,s>>=1}}for(let c=0;c<t.length;c++)t[c]&&(a=!0),a&&(o+=Jc.charAt(t[c]));return a===!1&&(o+=Jc.charAt(0)),o}};ul=dn;dn.NAME="IntegerValueBlock";Object.defineProperty(ul.prototype,"valueHex",{set:function(r){this.valueHexView=new Uint8Array(r),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});var fl,le=class r extends xe{constructor(e={}){super(e,dn),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return Qn(),BigInt(this.valueBlock.toString())}static fromBigInt(e){Qn();let t=BigInt(e),n=new fn,s=t.toString(16).replace(/^-/,""),i=new Uint8Array(z.Convert.FromHex(s));if(t<0){let a=new Uint8Array(i.length+(i[0]&128?1:0));a[0]|=128;let h=BigInt(`0x${z.Convert.ToHex(a)}`)+t,f=z.BufferSourceConverter.toUint8Array(z.Convert.FromHex(h.toString(16)));f[0]|=128,n.write(f)}else i[0]&128&&n.write(new Uint8Array([0])),n.write(i);return new r({valueHex:n.final()})}convertToDER(){let e=new r({valueHex:this.valueBlock.valueHexView});return e.valueBlock.toDER(),e}convertFromDER(){return new r({valueHex:this.valueBlock.valueHexView[0]===0?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()}`}};fl=le;R.Integer=fl;le.NAME="INTEGER";var hl,fs=class extends le{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}};hl=fs;R.Enumerated=hl;fs.NAME="ENUMERATED";var pn=class extends _t(Be){constructor({valueDec:e=-1,isFirstSid:t=!1,...n}={}){super(n),this.valueDec=e,this.isFirstSid=t}fromBER(e,t,n){if(!n)return t;let s=z.BufferSourceConverter.toUint8Array(e);if(!Bt(this,s,t,n))return-1;let i=s.subarray(t,t+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=i[a]&127,this.blockLength++,!!(i[a]&128));a++);let o=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)o[a]=this.valueHexView[a];return this.valueHexView=o,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=ar(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}set valueBigInt(e){Qn();let t=BigInt(e).toString(2);for(;t.length%7;)t="0"+t;let n=new Uint8Array(t.length/7);for(let s=0;s<n.length;s++)n[s]=parseInt(t.slice(s*7,s*7+7),2)+(s+1<n.length?128:0);this.fromBER(n.buffer,0,n.length)}toBER(e){if(this.isHexOnly){if(e)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,i=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength-1;o++)i[o]=s[o]|128;return i[this.blockLength-1]=s[this.blockLength-1],i.buffer}let t=Ht(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",tt;let n=new Uint8Array(t.byteLength);if(!e){let s=new Uint8Array(t),i=t.byteLength-1;for(let o=0;o<i;o++)n[o]=s[o]|128;n[i]=s[i]}return n}toString(){let e="";if(this.isHexOnly)e=z.Convert.ToHex(this.valueHexView);else if(this.isFirstSid){let t=this.valueDec;this.valueDec<=39?e="0.":this.valueDec<=79?(e="1.",t-=40):(e="2.",t-=80),e+=t.toString()}else e=this.valueDec.toString();return e}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}};pn.NAME="sidBlock";var hs=class extends Be{constructor({value:e=Pr,...t}={}){super(t),this.value=[],e&&this.fromString(e)}fromBER(e,t,n){let s=t;for(;n>0;){let i=new pn;if(s=i.fromBER(e,s,n),s===-1)return this.blockLength=0,this.error=i.error,s;this.value.length===0&&(i.isFirstSid=!0),this.blockLength+=i.blockLength,n-=i.blockLength,this.value.push(i)}return s}toBER(e){let t=[];for(let n=0;n<this.value.length;n++){let s=this.value[n].toBER(e);if(s.byteLength===0)return this.error=this.value[n].error,tt;t.push(s)}return Co(t)}fromString(e){this.value=[];let t=0,n=0,s="",i=!1;do if(n=e.indexOf(".",t),n===-1?s=e.substring(t):s=e.substring(t,n),t=n+1,i){let o=this.value[0],a=0;switch(o.valueDec){case 0:break;case 1:a=40;break;case 2:a=80;break;default:this.value=[];return}let c=parseInt(s,10);if(isNaN(c))return;o.valueDec=c+a,i=!1}else{let o=new pn;if(s>Number.MAX_SAFE_INTEGER){Qn();let a=BigInt(s);o.valueBigInt=a}else if(o.valueDec=parseInt(s,10),isNaN(o.valueDec))return;this.value.length||(o.isFirstSid=!0,i=!0),this.value.push(o)}while(n!==-1)}toString(){let e="",t=!1;for(let n=0;n<this.value.length;n++){t=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(e=`${e}.`),t?(s=`{${s}}`,this.value[n].isFirstSid?e=`2.{${s} - 80}`:e+=s):e+=s}return e}toJSON(){let e={...super.toJSON(),value:this.toString(),sidArray:[]};for(let t=0;t<this.value.length;t++)e.sidArray.push(this.value[t].toJSON());return e}};hs.NAME="ObjectIdentifierValueBlock";var dl,et=class extends xe{constructor(e={}){super(e,hs),this.idBlock.tagClass=1,this.idBlock.tagNumber=6}getValue(){return this.valueBlock.toString()}setValue(e){this.valueBlock.fromString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};dl=et;R.ObjectIdentifier=dl;et.NAME="OBJECT IDENTIFIER";var gn=class extends _t(Et){constructor({valueDec:e=0,...t}={}){super(t),this.valueDec=e}fromBER(e,t,n){if(n===0)return t;let s=z.BufferSourceConverter.toUint8Array(e);if(!Bt(this,s,t,n))return-1;let i=s.subarray(t,t+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=i[a]&127,this.blockLength++,!!(i[a]&128));a++);let o=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)o[a]=this.valueHexView[a];return this.valueHexView=o,i[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=ar(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),t+this.blockLength)}toBER(e){if(this.isHexOnly){if(e)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,i=new Uint8Array(this.blockLength);for(let o=0;o<this.blockLength-1;o++)i[o]=s[o]|128;return i[this.blockLength-1]=s[this.blockLength-1],i.buffer}let t=Ht(this.valueDec,7);if(t.byteLength===0)return this.error="Error during encoding SID value",tt;let n=new Uint8Array(t.byteLength);if(!e){let s=new Uint8Array(t),i=t.byteLength-1;for(let o=0;o<i;o++)n[o]=s[o]|128;n[i]=s[i]}return n.buffer}toString(){let e="";return this.isHexOnly?e=z.Convert.ToHex(this.valueHexView):e=this.valueDec.toString(),e}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}};gn.NAME="relativeSidBlock";var ds=class extends Be{constructor({value:e=Pr,...t}={}){super(t),this.value=[],e&&this.fromString(e)}fromBER(e,t,n){let s=t;for(;n>0;){let i=new gn;if(s=i.fromBER(e,s,n),s===-1)return this.blockLength=0,this.error=i.error,s;this.blockLength+=i.blockLength,n-=i.blockLength,this.value.push(i)}return s}toBER(e,t){let n=[];for(let s=0;s<this.value.length;s++){let i=this.value[s].toBER(e);if(i.byteLength===0)return this.error=this.value[s].error,tt;n.push(i)}return Co(n)}fromString(e){this.value=[];let t=0,n=0,s="";do{n=e.indexOf(".",t),n===-1?s=e.substring(t):s=e.substring(t,n),t=n+1;let i=new gn;if(i.valueDec=parseInt(s,10),isNaN(i.valueDec))return!0;this.value.push(i)}while(n!==-1);return!0}toString(){let e="",t=!1;for(let n=0;n<this.value.length;n++){t=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(e=`${e}.`),t&&(s=`{${s}}`),e+=s}return e}toJSON(){let e={...super.toJSON(),value:this.toString(),sidArray:[]};for(let t=0;t<this.value.length;t++)e.sidArray.push(this.value[t].toJSON());return e}};ds.NAME="RelativeObjectIdentifierValueBlock";var pl,ps=class extends xe{constructor(e={}){super(e,ds),this.idBlock.tagClass=1,this.idBlock.tagNumber=13}getValue(){return this.valueBlock.toString()}setValue(e){this.valueBlock.fromString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};pl=ps;R.RelativeObjectIdentifier=pl;ps.NAME="RelativeObjectIdentifier";var gl,ye=class extends Ft{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}};gl=ye;R.Sequence=gl;ye.NAME="SEQUENCE";var ml,gs=class extends Ft{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}};ml=gs;R.Set=ml;gs.NAME="SET";var ms=class extends _t(Be){constructor({...e}={}){super(e),this.isHexOnly=!0,this.value=Pr}toJSON(){return{...super.toJSON(),value:this.value}}};ms.NAME="StringValueBlock";var ys=class extends ms{};ys.NAME="SimpleStringValueBlock";var ke=class extends rs{constructor({...e}={}){super(e,ys)}fromBuffer(e){this.valueBlock.value=String.fromCharCode.apply(null,z.BufferSourceConverter.toUint8Array(e))}fromString(e){let t=e.length,n=this.valueBlock.valueHexView=new Uint8Array(t);for(let s=0;s<t;s++)n[s]=e.charCodeAt(s);this.valueBlock.value=e}};ke.NAME="SIMPLE STRING";var bs=class extends ke{fromBuffer(e){this.valueBlock.valueHexView=z.BufferSourceConverter.toUint8Array(e);try{this.valueBlock.value=z.Convert.ToUtf8String(e)}catch(t){this.warnings.push(`Error during "decodeURIComponent": ${t}, using raw string`),this.valueBlock.value=z.Convert.ToBinary(e)}}fromString(e){this.valueBlock.valueHexView=new Uint8Array(z.Convert.FromUtf8String(e)),this.valueBlock.value=e}};bs.NAME="Utf8StringValueBlock";var yl,St=class extends bs{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}};yl=St;R.Utf8String=yl;St.NAME="UTF8String";var ws=class extends ke{fromBuffer(e){this.valueBlock.value=z.Convert.ToUtf16String(e),this.valueBlock.valueHexView=z.BufferSourceConverter.toUint8Array(e)}fromString(e){this.valueBlock.value=e,this.valueBlock.valueHexView=new Uint8Array(z.Convert.FromUtf16String(e))}};ws.NAME="BmpStringValueBlock";var bl,xs=class extends ws{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}};bl=xs;R.BmpString=bl;xs.NAME="BMPString";var vs=class extends ke{fromBuffer(e){let t=ArrayBuffer.isView(e)?e.slice().buffer:e.slice(0),n=new Uint8Array(t);for(let s=0;s<n.length;s+=4)n[s]=n[s+3],n[s+1]=n[s+2],n[s+2]=0,n[s+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(t))}fromString(e){let t=e.length,n=this.valueBlock.valueHexView=new Uint8Array(t*4);for(let s=0;s<t;s++){let i=Ht(e.charCodeAt(s),8),o=new Uint8Array(i);if(o.length>4)continue;let a=4-o.length;for(let c=o.length-1;c>=0;c--)n[s*4+c+a]=o[c]}this.valueBlock.value=e}};vs.NAME="UniversalStringValueBlock";var wl,Es=class extends vs{constructor({...e}={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};wl=Es;R.UniversalString=wl;Es.NAME="UniversalString";var xl,As=class extends ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};xl=As;R.NumericString=xl;As.NAME="NumericString";var vl,Ss=class extends ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};vl=Ss;R.PrintableString=vl;Ss.NAME="PrintableString";var El,Bs=class extends ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};El=Bs;R.TeletexString=El;Bs.NAME="TeletexString";var Al,_s=class extends ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};Al=_s;R.VideotexString=Al;_s.NAME="VideotexString";var Sl,Is=class extends ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};Sl=Is;R.IA5String=Sl;Is.NAME="IA5String";var Bl,ks=class extends ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};Bl=ks;R.GraphicString=Bl;ks.NAME="GraphicString";var _l,mn=class extends ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};_l=mn;R.VisibleString=_l;mn.NAME="VisibleString";var Il,Ts=class extends ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};Il=Ts;R.GeneralString=Il;Ts.NAME="GeneralString";var kl,Rs=class extends ke{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};kl=Rs;R.CharacterString=kl;Rs.NAME="CharacterString";var Tl,yn=class extends mn{constructor({value:e,valueDate:t,...n}={}){if(super(n),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,e){this.fromString(e),this.valueBlock.valueHexView=new Uint8Array(e.length);for(let s=0;s<e.length;s++)this.valueBlock.valueHexView[s]=e.charCodeAt(s)}t&&(this.fromDate(t),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(e){this.fromString(String.fromCharCode.apply(null,z.BufferSourceConverter.toUint8Array(e)))}toBuffer(){let e=this.toString(),t=new ArrayBuffer(e.length),n=new Uint8Array(t);for(let s=0;s<e.length;s++)n[s]=e.charCodeAt(s);return t}fromDate(e){this.year=e.getUTCFullYear(),this.month=e.getUTCMonth()+1,this.day=e.getUTCDate(),this.hour=e.getUTCHours(),this.minute=e.getUTCMinutes(),this.second=e.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(e){let n=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(e);if(n===null){this.error="Wrong input string for conversion";return}let s=parseInt(n[1],10);s>=50?this.year=1900+s:this.year=2e3+s,this.month=parseInt(n[2],10),this.day=parseInt(n[3],10),this.hour=parseInt(n[4],10),this.minute=parseInt(n[5],10),this.second=parseInt(n[6],10)}toString(e="iso"){if(e==="iso"){let t=new Array(7);return t[0]=Le(this.year<2e3?this.year-1900:this.year-2e3,2),t[1]=Le(this.month,2),t[2]=Le(this.day,2),t[3]=Le(this.hour,2),t[4]=Le(this.minute,2),t[5]=Le(this.second,2),t[6]="Z",t.join("")}return super.toString(e)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}};Tl=yn;R.UTCTime=Tl;yn.NAME="UTCTime";var Rl,Ns=class extends yn{constructor(e={}){var t;super(e),(t=this.millisecond)!==null&&t!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(e){super.fromDate(e),this.millisecond=e.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(e){let t=!1,n="",s="",i=0,o,a=0,c=0;if(e[e.length-1]==="Z")n=e.substring(0,e.length-1),t=!0;else{let l=new Number(e[e.length-1]);if(isNaN(l.valueOf()))throw new Error("Wrong input string for conversion");n=e}if(t){if(n.indexOf("+")!==-1)throw new Error("Wrong input string for conversion");if(n.indexOf("-")!==-1)throw new Error("Wrong input string for conversion")}else{let l=1,g=n.indexOf("+"),u="";if(g===-1&&(g=n.indexOf("-"),l=-1),g!==-1){if(u=n.substring(g+1),n=n.substring(0,g),u.length!==2&&u.length!==4)throw new Error("Wrong input string for conversion");let d=parseInt(u.substring(0,2),10);if(isNaN(d.valueOf()))throw new Error("Wrong input string for conversion");if(a=l*d,u.length===4){if(d=parseInt(u.substring(2,4),10),isNaN(d.valueOf()))throw new Error("Wrong input string for conversion");c=l*d}}}let h=n.indexOf(".");if(h===-1&&(h=n.indexOf(",")),h!==-1){let l=new Number(`0${n.substring(h)}`);if(isNaN(l.valueOf()))throw new Error("Wrong input string for conversion");i=l.valueOf(),s=n.substring(0,h)}else s=n;switch(!0){case s.length===8:if(o=/(\d{4})(\d{2})(\d{2})/ig,h!==-1)throw new Error("Wrong input string for conversion");break;case s.length===10:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,h!==-1){let l=60*i;this.minute=Math.floor(l),l=60*(l-this.minute),this.second=Math.floor(l),l=1e3*(l-this.second),this.millisecond=Math.floor(l)}break;case s.length===12:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,h!==-1){let l=60*i;this.second=Math.floor(l),l=1e3*(l-this.second),this.millisecond=Math.floor(l)}break;case s.length===14:if(o=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,h!==-1){let l=1e3*i;this.millisecond=Math.floor(l)}break;default:throw new Error("Wrong input string for conversion")}let f=o.exec(s);if(f===null)throw new Error("Wrong input string for conversion");for(let l=1;l<f.length;l++)switch(l){case 1:this.year=parseInt(f[l],10);break;case 2:this.month=parseInt(f[l],10);break;case 3:this.day=parseInt(f[l],10);break;case 4:this.hour=parseInt(f[l],10)+a;break;case 5:this.minute=parseInt(f[l],10)+c;break;case 6:this.second=parseInt(f[l],10);break;default:throw new Error("Wrong input string for conversion")}if(t===!1){let l=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=l.getUTCFullYear(),this.month=l.getUTCMonth(),this.day=l.getUTCDay(),this.hour=l.getUTCHours(),this.minute=l.getUTCMinutes(),this.second=l.getUTCSeconds(),this.millisecond=l.getUTCMilliseconds()}}toString(e="iso"){if(e==="iso"){let t=[];return t.push(Le(this.year,4)),t.push(Le(this.month,2)),t.push(Le(this.day,2)),t.push(Le(this.hour,2)),t.push(Le(this.minute,2)),t.push(Le(this.second,2)),this.millisecond!==0&&(t.push("."),t.push(Le(this.millisecond,3))),t.push("Z"),t.join("")}return super.toString(e)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}};Rl=Ns;R.GeneralizedTime=Rl;Ns.NAME="GeneralizedTime";var Nl,Cs=class extends St{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}};Nl=Cs;R.DATE=Nl;Cs.NAME="DATE";var Cl,Ls=class extends St{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}};Cl=Ls;R.TimeOfDay=Cl;Ls.NAME="TimeOfDay";var Ll,Us=class extends St{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}};Ll=Us;R.DateTime=Ll;Us.NAME="DateTime";var Ul,Ds=class extends St{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}};Ul=Ds;R.Duration=Ul;Ds.NAME="Duration";var Dl,Os=class extends St{constructor(e={}){super(e),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}};Dl=Os;R.TIME=Dl;Os.NAME="TIME";function op(r){let{result:e}=Mr(r),t=e.valueBlock.value;return{n:G(ut(t[1].toBigInt()),"base64url"),e:G(ut(t[2].toBigInt()),"base64url"),d:G(ut(t[3].toBigInt()),"base64url"),p:G(ut(t[4].toBigInt()),"base64url"),q:G(ut(t[5].toBigInt()),"base64url"),dp:G(ut(t[6].toBigInt()),"base64url"),dq:G(ut(t[7].toBigInt()),"base64url"),qi:G(ut(t[8].toBigInt()),"base64url"),kty:"RSA",alg:"RS256"}}function ap(r){if(r.n==null||r.e==null||r.d==null||r.p==null||r.q==null||r.dp==null||r.dq==null||r.qi==null)throw new L("JWK was missing components","ERR_INVALID_PARAMETERS");let t=new ye({value:[new le({value:0}),le.fromBigInt(ft(M(r.n,"base64url"))),le.fromBigInt(ft(M(r.e,"base64url"))),le.fromBigInt(ft(M(r.d,"base64url"))),le.fromBigInt(ft(M(r.p,"base64url"))),le.fromBigInt(ft(M(r.q,"base64url"))),le.fromBigInt(ft(M(r.dp,"base64url"))),le.fromBigInt(ft(M(r.dq,"base64url"))),le.fromBigInt(ft(M(r.qi,"base64url")))]}).toBER();return new Uint8Array(t,0,t.byteLength)}function cp(r){let{result:e}=Mr(r),t=e.valueBlock.value[1].valueBlock.value[0].valueBlock.value;return{kty:"RSA",n:G(ut(t[0].toBigInt()),"base64url"),e:G(ut(t[1].toBigInt()),"base64url")}}function lp(r){if(r.n==null||r.e==null)throw new L("JWK was missing components","ERR_INVALID_PARAMETERS");let t=new ye({value:[new ye({value:[new et({value:"1.2.840.113549.1.1.1"}),new Kt]}),new Or({valueHex:new ye({value:[le.fromBigInt(ft(M(r.n,"base64url"))),le.fromBigInt(ft(M(r.e,"base64url")))]}).toBER()})]}).toBER();return new Uint8Array(t,0,t.byteLength)}function ut(r){let e=r.toString(16);e.length%2>0&&(e=`0${e}`);let t=e.length/2,n=new Uint8Array(t),s=0,i=0;for(;s<t;)n[s]=parseInt(e.slice(i,i+2),16),s+=1,i+=2;return n}function ft(r){let e=[];return r.forEach(function(t){let n=t.toString(16);n.length%2>0&&(n=`0${n}`),e.push(n)}),BigInt("0x"+e.join(""))}var up=16,Uo=32,Do=1e4;async function fp(r,e){let t=Ie.get(),s=new ye({value:[new le({value:0}),new ye({value:[new et({value:"1.2.840.113549.1.1.1"}),new Kt]}),new At({valueHex:r.marshal()})]}).toBER(),i=new Uint8Array(s,0,s.byteLength),o=ct(up),a=await To(en,e,o,{c:Do,dkLen:Uo}),c=ct(16),h=await t.subtle.importKey("raw",a,"AES-CBC",!1,["encrypt"]),f=await t.subtle.encrypt({name:"AES-CBC",iv:c},h,i),l=new ye({value:[new At({valueHex:o}),new le({value:Do}),new le({value:Uo}),new ye({value:[new et({value:"1.2.840.113549.2.11"}),new Kt]})]}),g=new ye({value:[new et({value:"1.2.840.113549.1.5.13"}),new ye({value:[new ye({value:[new et({value:"1.2.840.113549.1.5.12"}),l]}),new ye({value:[new et({value:"2.16.840.1.101.3.4.1.42"}),new At({valueHex:c})]})]})]}),d=new ye({value:[g,new At({valueHex:f})]}).toBER(),p=new Uint8Array(d,0,d.byteLength);return["-----BEGIN ENCRYPTED PRIVATE KEY-----",...G(p,"base64pad").split(/(.{64})/).filter(Boolean),"-----END ENCRYPTED PRIVATE KEY-----"].join(`
|
7
|
-
`)}async function hp(r,e){let t=Ie.get(),n;if(r.includes("-----BEGIN ENCRYPTED PRIVATE KEY-----")){let s=M(r.replace("-----BEGIN ENCRYPTED PRIVATE KEY-----","").replace("-----END ENCRYPTED PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:i}=Mr(s),{iv:o,salt:a,iterations:c,keySize:h,cipherText:f}=dp(i),l=await To(en,e,a,{c,dkLen:h}),g=await t.subtle.importKey("raw",l,"AES-CBC",!1,["decrypt"]),u=bn(await t.subtle.decrypt({name:"AES-CBC",iv:o},g,f)),{result:d}=Mr(u);n=Ol(d)}else if(r.includes("-----BEGIN PRIVATE KEY-----")){let s=M(r.replace("-----BEGIN PRIVATE KEY-----","").replace("-----END PRIVATE KEY-----","").replace(/\n/g,"").trim(),"base64pad"),{result:i}=Mr(s);n=Ol(i)}else throw new L("Could not parse private key from PEM data","ERR_INVALID_PARAMETERS");return Oo(n)}function dp(r){let e=r.valueBlock.value[0];if(e.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.13")throw new L("Only pkcs5PBES2 encrypted private keys are supported","ERR_INVALID_PARAMS");let n=e.valueBlock.value[1].valueBlock.value[0];if(n.valueBlock.value[0].toString()!=="OBJECT IDENTIFIER : 1.2.840.113549.1.5.12")throw new L("Only pkcs5PBKDF2 key derivation functions are supported","ERR_INVALID_PARAMS");let i=n.valueBlock.value[1],o=bn(i.valueBlock.value[0].getValue()),a=Do,c=Uo;if(i.valueBlock.value.length===3)a=Number(i.valueBlock.value[1].toBigInt()),c=Number(i.valueBlock.value[2].toBigInt());else if(i.valueBlock.value.length===2)throw new L("Could not derive key size and iterations from PEM file - please use @libp2p/rsa to re-import your key","ERR_INVALID_PARAMS");let h=e.valueBlock.value[1].valueBlock.value[1],f=h.valueBlock.value[0].toString();if(f!=="OBJECT IDENTIFIER : 1.2.840.113549.3.7"){if(f!=="OBJECT IDENTIFIER : 1.3.14.3.2.7"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.2"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.22"){if(f!=="OBJECT IDENTIFIER : 2.16.840.1.101.3.4.1.42")throw new L("Only AES-CBC encryption schemes are supported","ERR_INVALID_PARAMS")}}}}let l=bn(h.valueBlock.value[1].getValue());return{cipherText:bn(r.valueBlock.value[1].getValue()),salt:o,iterations:a,keySize:c,iv:l}}function Ol(r){return bn(r.valueBlock.value[2].getValue())}function bn(r){return new Uint8Array(r,0,r.byteLength)}async function Pl(r){let e=await Ie.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),t=await Hl(e);return{privateKey:t[0],publicKey:t[1]}}async function Po(r){let t=[await Ie.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await pp(r)],n=await Hl({privateKey:t[0],publicKey:t[1]});return{privateKey:n[0],publicKey:n[1]}}async function Ml(r,e){let t=await Ie.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Ie.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},t,e instanceof Uint8Array?e:e.subarray());return new Uint8Array(n,0,n.byteLength)}async function Vl(r,e,t){let n=await Ie.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Ie.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,e,t instanceof Uint8Array?t:t.subarray())}async function Hl(r){if(r.privateKey==null||r.publicKey==null)throw new L("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([Ie.get().subtle.exportKey("jwk",r.privateKey),Ie.get().subtle.exportKey("jwk",r.publicKey)])}async function pp(r){return Ie.get().subtle.importKey("jwk",{kty:r.kty,n:r.n,e:r.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function Ms(r){if(r.kty!=="RSA")throw new L("invalid key type","ERR_INVALID_KEY_TYPE");if(r.n==null)throw new L("invalid key modulus","ERR_INVALID_KEY_MODULUS");return M(r.n,"base64url").length*8}var xn=8192,wn=class{_key;constructor(e){this._key=e}verify(e,t){return Vl(this._key,t,e)}marshal(){return qt.jwkToPkix(this._key)}get bytes(){return ot.encode({Type:re.RSA,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}hash(){let e=me.digest(this.bytes);return ze(e)?e.then(({bytes:t})=>t):e.bytes}},Vr=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t}genSecret(){return ct(16)}sign(e){return Ml(this._key,e)}get public(){if(this._publicKey==null)throw new L("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new wn(this._publicKey)}marshal(){return qt.jwkToPkcs1(this._key)}get bytes(){return at.encode({Type:re.RSA,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}hash(){let e=me.digest(this.bytes);return ze(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return G(e,"base58btc")}async export(e,t="pkcs-8"){if(t==="pkcs-8")return qt.exportToPem(this,e);if(t==="libp2p-key")return Cr(this.bytes,e);throw new L(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};async function Oo(r){let e=qt.pkcs1ToJwk(r);if(Ms(e)>xn)throw new L("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await Po(e);return new Vr(t.privateKey,t.publicKey)}function mp(r){let e=qt.pkixToJwk(r);if(Ms(e)>xn)throw new L("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new wn(e)}async function yp(r){if(Ms(r)>xn)throw new L("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await Po(r);return new Vr(e.privateKey,e.publicKey)}async function bp(r){if(r>xn)throw new L("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await Pl(r);return new Vr(e.privateKey,e.publicKey)}var qo={};ge(qo,{Secp256k1PrivateKey:()=>En,Secp256k1PublicKey:()=>vn,generateKeyPair:()=>Np,unmarshalSecp256k1PrivateKey:()=>Tp,unmarshalSecp256k1PublicKey:()=>Rp});var wp=new Uint32Array([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),zt=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),$t=new Uint32Array(64),Vo=class extends kr{constructor(){super(64,32,8,!1),this.A=zt[0]|0,this.B=zt[1]|0,this.C=zt[2]|0,this.D=zt[3]|0,this.E=zt[4]|0,this.F=zt[5]|0,this.G=zt[6]|0,this.H=zt[7]|0}get(){let{A:e,B:t,C:n,D:s,E:i,F:o,G:a,H:c}=this;return[e,t,n,s,i,o,a,c]}set(e,t,n,s,i,o,a,c){this.A=e|0,this.B=t|0,this.C=n|0,this.D=s|0,this.E=i|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,t){for(let l=0;l<16;l++,t+=4)$t[l]=e.getUint32(t,!1);for(let l=16;l<64;l++){let g=$t[l-15],u=$t[l-2],d=Ze(g,7)^Ze(g,18)^g>>>3,p=Ze(u,17)^Ze(u,19)^u>>>10;$t[l]=p+$t[l-7]+d+$t[l-16]|0}let{A:n,B:s,C:i,D:o,E:a,F:c,G:h,H:f}=this;for(let l=0;l<64;l++){let g=Ze(a,6)^Ze(a,11)^Ze(a,25),u=f+g+wc(a,c,h)+wp[l]+$t[l]|0,p=(Ze(n,2)^Ze(n,13)^Ze(n,22))+xc(n,s,i)|0;f=h,h=c,c=a,a=o+u|0,o=i,i=s,s=n,n=u+p|0}n=n+this.A|0,s=s+this.B|0,i=i+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,h=h+this.G|0,f=f+this.H|0,this.set(n,s,i,o,a,c,h,f)}roundClean(){$t.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Fl=Dn(()=>new Vo);function Kl(r){r.lowS!==void 0&&Xe("lowS",r.lowS),r.prehash!==void 0&&Xe("prehash",r.prehash)}function xp(r){let e=nn(r);it(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:t,Fp:n,a:s}=e;if(t){if(!n.eql(s,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof t!="object"||typeof t.beta!="bigint"||typeof t.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}var{bytesToNumberBE:vp,hexToBytes:Ep}=Mn,cr={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(r){let{Err:e}=cr;if(r.length<2||r[0]!==2)throw new e("Invalid signature integer tag");let t=r[1],n=r.subarray(2,t+2);if(!t||n.length!==t)throw new e("Invalid signature integer: wrong length");if(n[0]&128)throw new e("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new e("Invalid signature integer: unnecessary leading zero");return{d:vp(n),l:r.subarray(t+2)}},toSig(r){let{Err:e}=cr,t=typeof r=="string"?Ep(r):r;Tr(t);let n=t.length;if(n<2||t[0]!=48)throw new e("Invalid signature tag");if(t[1]!==n-2)throw new e("Invalid signature: incorrect length");let{d:s,l:i}=cr._parseInt(t.subarray(2)),{d:o,l:a}=cr._parseInt(i);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:s,s:o}},hexFromSig(r){let e=h=>Number.parseInt(h[0],16)&8?"00"+h:h,t=h=>{let f=h.toString(16);return f.length&1?`0${f}`:f},n=e(t(r.s)),s=e(t(r.r)),i=n.length/2,o=s.length/2,a=t(i),c=t(o);return`30${t(o+i+4)}02${c}${s}02${a}${n}`}},Gt=BigInt(0),be=BigInt(1),_b=BigInt(2),ql=BigInt(3),Ib=BigInt(4);function Ap(r){let e=xp(r),{Fp:t}=e,n=e.toBytes||((d,p,w)=>{let y=p.toAffine();return bt(Uint8Array.from([4]),t.toBytes(y.x),t.toBytes(y.y))}),s=e.fromBytes||(d=>{let p=d.subarray(1),w=t.fromBytes(p.subarray(0,t.BYTES)),y=t.fromBytes(p.subarray(t.BYTES,2*t.BYTES));return{x:w,y}});function i(d){let{a:p,b:w}=e,y=t.sqr(d),m=t.mul(y,d);return t.add(t.add(m,t.mul(d,p)),w)}if(!t.eql(t.sqr(e.Gy),i(e.Gx)))throw new Error("bad generator point: equation left != right");function o(d){return tn(d,be,e.n)}function a(d){let{allowedPrivateKeyLengths:p,nByteLength:w,wrapPrivateKey:y,n:m}=e;if(p&&typeof d!="bigint"){if(Ot(d)&&(d=mt(d)),typeof d!="string"||!p.includes(d.length))throw new Error("Invalid key");d=d.padStart(w*2,"0")}let b;try{b=typeof d=="bigint"?d:yt(ae("private key",d,w))}catch{throw new Error(`private key must be ${w} bytes, hex or bigint, not ${typeof d}`)}return y&&(b=X(b,m)),Ne("private key",b,be,m),b}function c(d){if(!(d instanceof l))throw new Error("ProjectivePoint expected")}let h=tr((d,p)=>{let{px:w,py:y,pz:m}=d;if(t.eql(m,t.ONE))return{x:w,y};let b=d.is0();p==null&&(p=b?t.ONE:t.inv(m));let A=t.mul(w,p),S=t.mul(y,p),B=t.mul(m,p);if(b)return{x:t.ZERO,y:t.ZERO};if(!t.eql(B,t.ONE))throw new Error("invZ was invalid");return{x:A,y:S}}),f=tr(d=>{if(d.is0()){if(e.allowInfinityPoint&&!t.is0(d.py))return;throw new Error("bad point: ZERO")}let{x:p,y:w}=d.toAffine();if(!t.isValid(p)||!t.isValid(w))throw new Error("bad point: x or y not FE");let y=t.sqr(w),m=i(p);if(!t.eql(y,m))throw new Error("bad point: equation left != right");if(!d.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class l{constructor(p,w,y){if(this.px=p,this.py=w,this.pz=y,p==null||!t.isValid(p))throw new Error("x required");if(w==null||!t.isValid(w))throw new Error("y required");if(y==null||!t.isValid(y))throw new Error("z required");Object.freeze(this)}static fromAffine(p){let{x:w,y}=p||{};if(!p||!t.isValid(w)||!t.isValid(y))throw new Error("invalid affine point");if(p instanceof l)throw new Error("projective point not allowed");let m=b=>t.eql(b,t.ZERO);return m(w)&&m(y)?l.ZERO:new l(w,y,t.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(p){let w=t.invertBatch(p.map(y=>y.pz));return p.map((y,m)=>y.toAffine(w[m])).map(l.fromAffine)}static fromHex(p){let w=l.fromAffine(s(ae("pointHex",p)));return w.assertValidity(),w}static fromPrivateKey(p){return l.BASE.multiply(a(p))}_setWindowSize(p){u.setWindowSize(this,p)}assertValidity(){f(this)}hasEvenY(){let{y:p}=this.toAffine();if(t.isOdd)return!t.isOdd(p);throw new Error("Field doesn't support isOdd")}equals(p){c(p);let{px:w,py:y,pz:m}=this,{px:b,py:A,pz:S}=p,B=t.eql(t.mul(w,S),t.mul(b,m)),v=t.eql(t.mul(y,S),t.mul(A,m));return B&&v}negate(){return new l(this.px,t.neg(this.py),this.pz)}double(){let{a:p,b:w}=e,y=t.mul(w,ql),{px:m,py:b,pz:A}=this,S=t.ZERO,B=t.ZERO,v=t.ZERO,_=t.mul(m,m),$=t.mul(b,b),H=t.mul(A,A),F=t.mul(m,b);return F=t.add(F,F),v=t.mul(m,A),v=t.add(v,v),S=t.mul(p,v),B=t.mul(y,H),B=t.add(S,B),S=t.sub($,B),B=t.add($,B),B=t.mul(S,B),S=t.mul(F,S),v=t.mul(y,v),H=t.mul(p,H),F=t.sub(_,H),F=t.mul(p,F),F=t.add(F,v),v=t.add(_,_),_=t.add(v,_),_=t.add(_,H),_=t.mul(_,F),B=t.add(B,_),H=t.mul(b,A),H=t.add(H,H),_=t.mul(H,F),S=t.sub(S,_),v=t.mul(H,$),v=t.add(v,v),v=t.add(v,v),new l(S,B,v)}add(p){c(p);let{px:w,py:y,pz:m}=this,{px:b,py:A,pz:S}=p,B=t.ZERO,v=t.ZERO,_=t.ZERO,$=e.a,H=t.mul(e.b,ql),F=t.mul(w,b),Q=t.mul(y,A),C=t.mul(m,S),N=t.add(w,y),E=t.add(b,A);N=t.mul(N,E),E=t.add(F,Q),N=t.sub(N,E),E=t.add(w,m);let x=t.add(b,S);return E=t.mul(E,x),x=t.add(F,C),E=t.sub(E,x),x=t.add(y,m),B=t.add(A,S),x=t.mul(x,B),B=t.add(Q,C),x=t.sub(x,B),_=t.mul($,E),B=t.mul(H,C),_=t.add(B,_),B=t.sub(Q,_),_=t.add(Q,_),v=t.mul(B,_),Q=t.add(F,F),Q=t.add(Q,F),C=t.mul($,C),E=t.mul(H,E),Q=t.add(Q,C),C=t.sub(F,C),C=t.mul($,C),E=t.add(E,C),F=t.mul(Q,E),v=t.add(v,F),F=t.mul(x,E),B=t.mul(N,B),B=t.sub(B,F),F=t.mul(N,Q),_=t.mul(x,_),_=t.add(_,F),new l(B,v,_)}subtract(p){return this.add(p.negate())}is0(){return this.equals(l.ZERO)}wNAF(p){return u.wNAFCached(this,p,l.normalizeZ)}multiplyUnsafe(p){Ne("scalar",p,Gt,e.n);let w=l.ZERO;if(p===Gt)return w;if(p===be)return this;let{endo:y}=e;if(!y)return u.unsafeLadder(this,p);let{k1neg:m,k1:b,k2neg:A,k2:S}=y.splitScalar(p),B=w,v=w,_=this;for(;b>Gt||S>Gt;)b&be&&(B=B.add(_)),S&be&&(v=v.add(_)),_=_.double(),b>>=be,S>>=be;return m&&(B=B.negate()),A&&(v=v.negate()),v=new l(t.mul(v.px,y.beta),v.py,v.pz),B.add(v)}multiply(p){let{endo:w,n:y}=e;Ne("scalar",p,be,y);let m,b;if(w){let{k1neg:A,k1:S,k2neg:B,k2:v}=w.splitScalar(p),{p:_,f:$}=this.wNAF(S),{p:H,f:F}=this.wNAF(v);_=u.constTimeNegate(A,_),H=u.constTimeNegate(B,H),H=new l(t.mul(H.px,w.beta),H.py,H.pz),m=_.add(H),b=$.add(F)}else{let{p:A,f:S}=this.wNAF(p);m=A,b=S}return l.normalizeZ([m,b])[0]}multiplyAndAddUnsafe(p,w,y){let m=l.BASE,b=(S,B)=>B===Gt||B===be||!S.equals(m)?S.multiplyUnsafe(B):S.multiply(B),A=b(this,w).add(b(p,y));return A.is0()?void 0:A}toAffine(p){return h(this,p)}isTorsionFree(){let{h:p,isTorsionFree:w}=e;if(p===be)return!0;if(w)return w(l,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:p,clearCofactor:w}=e;return p===be?this:w?w(l,this):this.multiplyUnsafe(e.h)}toRawBytes(p=!0){return Xe("isCompressed",p),this.assertValidity(),n(l,this,p)}toHex(p=!0){return Xe("isCompressed",p),mt(this.toRawBytes(p))}}l.BASE=new l(e.Gx,e.Gy,t.ONE),l.ZERO=new l(t.ZERO,t.ONE,t.ZERO);let g=e.nBitLength,u=Fn(l,e.endo?Math.ceil(g/2):g);return{CURVE:e,ProjectivePoint:l,normPrivateKeyToScalar:a,weierstrassEquation:i,isWithinCurveOrder:o}}function Sp(r){let e=nn(r);return it(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function zl(r){let e=Sp(r),{Fp:t,n}=e,s=t.BYTES+1,i=2*t.BYTES+1;function o(N){return X(N,n)}function a(N){return Vn(N,n)}let{ProjectivePoint:c,normPrivateKeyToScalar:h,weierstrassEquation:f,isWithinCurveOrder:l}=Ap({...e,toBytes(N,E,x){let I=E.toAffine(),T=t.toBytes(I.x),D=bt;return Xe("isCompressed",x),x?D(Uint8Array.from([E.hasEvenY()?2:3]),T):D(Uint8Array.from([4]),T,t.toBytes(I.y))},fromBytes(N){let E=N.length,x=N[0],I=N.subarray(1);if(E===s&&(x===2||x===3)){let T=yt(I);if(!tn(T,be,t.ORDER))throw new Error("Point is not on curve");let D=f(T),O;try{O=t.sqrt(D)}catch(K){let W=K instanceof Error?": "+K.message:"";throw new Error("Point is not on curve"+W)}let P=(O&be)===be;return(x&1)===1!==P&&(O=t.neg(O)),{x:T,y:O}}else if(E===i&&x===4){let T=t.fromBytes(I.subarray(0,t.BYTES)),D=t.fromBytes(I.subarray(t.BYTES,2*t.BYTES));return{x:T,y:D}}else throw new Error(`Point of length ${E} was invalid. Expected ${s} compressed bytes or ${i} uncompressed bytes`)}}),g=N=>mt(Mt(N,e.nByteLength));function u(N){let E=n>>be;return N>E}function d(N){return u(N)?o(-N):N}let p=(N,E,x)=>yt(N.slice(E,x));class w{constructor(E,x,I){this.r=E,this.s=x,this.recovery=I,this.assertValidity()}static fromCompact(E){let x=e.nByteLength;return E=ae("compactSignature",E,x*2),new w(p(E,0,x),p(E,x,2*x))}static fromDER(E){let{r:x,s:I}=cr.toSig(ae("DER",E));return new w(x,I)}assertValidity(){Ne("r",this.r,be,n),Ne("s",this.s,be,n)}addRecoveryBit(E){return new w(this.r,this.s,E)}recoverPublicKey(E){let{r:x,s:I,recovery:T}=this,D=B(ae("msgHash",E));if(T==null||![0,1,2,3].includes(T))throw new Error("recovery id invalid");let O=T===2||T===3?x+e.n:x;if(O>=t.ORDER)throw new Error("recovery id 2 or 3 invalid");let P=T&1?"03":"02",j=c.fromHex(P+g(O)),K=a(O),W=o(-D*K),ne=o(I*K),se=c.BASE.multiplyAndAddUnsafe(j,W,ne);if(!se)throw new Error("point at infinify");return se.assertValidity(),se}hasHighS(){return u(this.s)}normalizeS(){return this.hasHighS()?new w(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return Qt(this.toDERHex())}toDERHex(){return cr.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Qt(this.toCompactHex())}toCompactHex(){return g(this.r)+g(this.s)}}let y={isValidPrivateKey(N){try{return h(N),!0}catch{return!1}},normPrivateKeyToScalar:h,randomPrivateKey:()=>{let N=so(e.n);return Tc(e.randomBytes(N),e.n)},precompute(N=8,E=c.BASE){return E._setWindowSize(N),E.multiply(BigInt(3)),E}};function m(N,E=!0){return c.fromPrivateKey(N).toRawBytes(E)}function b(N){let E=Ot(N),x=typeof N=="string",I=(E||x)&&N.length;return E?I===s||I===i:x?I===2*s||I===2*i:N instanceof c}function A(N,E,x=!0){if(b(N))throw new Error("first arg must be private key");if(!b(E))throw new Error("second arg must be public key");return c.fromHex(E).multiply(h(N)).toRawBytes(x)}let S=e.bits2int||function(N){let E=yt(N),x=N.length*8-e.nBitLength;return x>0?E>>BigInt(x):E},B=e.bits2int_modN||function(N){return o(S(N))},v=rn(e.nBitLength);function _(N){return Ne(`num < 2^${e.nBitLength}`,N,Gt,v),Mt(N,e.nByteLength)}function $(N,E,x=H){if(["recovered","canonical"].some(de=>de in x))throw new Error("sign() legacy options not supported");let{hash:I,randomBytes:T}=e,{lowS:D,prehash:O,extraEntropy:P}=x;D==null&&(D=!0),N=ae("msgHash",N),Kl(x),O&&(N=ae("prehashed msgHash",I(N)));let j=B(N),K=h(E),W=[_(K),_(j)];if(P!=null&&P!==!1){let de=P===!0?T(t.BYTES):P;W.push(ae("extraEntropy",de))}let ne=bt(...W),se=j;function Te(de){let ue=S(de);if(!l(ue))return;let We=a(ue),pe=c.BASE.multiply(ue).toAffine(),Ye=o(pe.x);if(Ye===Gt)return;let Zt=o(We*o(se+Ye*K));if(Zt===Gt)return;let Wr=(pe.x===Ye?0:2)|Number(pe.y&be),Tn=Zt;return D&&u(Zt)&&(Tn=d(Zt),Wr^=1),new w(Ye,Tn,Wr)}return{seed:ne,k2sig:Te}}let H={lowS:e.lowS,prehash:!1},F={lowS:e.lowS,prehash:!1};function Q(N,E,x=H){let{seed:I,k2sig:T}=$(N,E,x),D=e;return eo(D.hash.outputLen,D.nByteLength,D.hmac)(I,T)}c.BASE._setWindowSize(8);function C(N,E,x,I=F){let T=N;if(E=ae("msgHash",E),x=ae("publicKey",x),"strict"in I)throw new Error("options.strict was renamed to lowS");Kl(I);let{lowS:D,prehash:O}=I,P,j;try{if(typeof T=="string"||Ot(T))try{P=w.fromDER(T)}catch(pe){if(!(pe instanceof cr.Err))throw pe;P=w.fromCompact(T)}else if(typeof T=="object"&&typeof T.r=="bigint"&&typeof T.s=="bigint"){let{r:pe,s:Ye}=T;P=new w(pe,Ye)}else throw new Error("PARSE");j=c.fromHex(x)}catch(pe){if(pe.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(D&&P.hasHighS())return!1;O&&(E=e.hash(E));let{r:K,s:W}=P,ne=B(E),se=a(W),Te=o(ne*se),de=o(K*se),ue=c.BASE.multiplyAndAddUnsafe(j,Te,de)?.toAffine();return ue?o(ue.x)===K:!1}return{CURVE:e,getPublicKey:m,getSharedSecret:A,sign:Q,verify:C,ProjectivePoint:c,Signature:w,utils:y}}function Bp(r){return{hash:r,hmac:(e,...t)=>ln(r,e,ji(...t)),randomBytes:Ir}}function $l(r,e){let t=n=>zl({...r,...Bp(n)});return Object.freeze({...t(e),create:t})}var Wl=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Gl=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),_p=BigInt(1),Ho=BigInt(2),jl=(r,e)=>(r+e/Ho)/e;function Ip(r){let e=Wl,t=BigInt(3),n=BigInt(6),s=BigInt(11),i=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),h=r*r*r%e,f=h*h*r%e,l=te(f,t,e)*f%e,g=te(l,t,e)*f%e,u=te(g,Ho,e)*h%e,d=te(u,s,e)*u%e,p=te(d,i,e)*d%e,w=te(p,a,e)*p%e,y=te(w,c,e)*w%e,m=te(y,a,e)*p%e,b=te(m,t,e)*f%e,A=te(b,o,e)*d%e,S=te(A,n,e)*h%e,B=te(S,Ho,e);if(!Fo.eql(Fo.sqr(B),r))throw new Error("Cannot find square root");return B}var Fo=Hn(Wl,void 0,void 0,{sqrt:Ip}),rt=$l({a:BigInt(0),b:BigInt(7),Fp:Fo,n:Gl,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let e=Gl,t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-_p*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=t,o=BigInt("0x100000000000000000000000000000000"),a=jl(i*r,e),c=jl(-n*r,e),h=X(r-a*t-c*s,e),f=X(-a*n-c*i,e),l=h>o,g=f>o;if(l&&(h=e-h),g&&(f=e-f),h>o||f>o)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:l,k1:h,k2neg:g,k2:f}}}},Fl),Ob=BigInt(0);var Pb=rt.ProjectivePoint;function Yl(){return rt.utils.randomPrivateKey()}function Zl(r,e){let t=me.digest(e instanceof Uint8Array?e:e.subarray());if(ze(t))return t.then(({digest:n})=>rt.sign(n,r).toDERRawBytes()).catch(n=>{throw new L(String(n),"ERR_INVALID_INPUT")});try{return rt.sign(t.digest,r).toDERRawBytes()}catch(n){throw new L(String(n),"ERR_INVALID_INPUT")}}function Xl(r,e,t){let n=me.digest(t instanceof Uint8Array?t:t.subarray());if(ze(n))return n.then(({digest:s})=>rt.verify(e,s,r)).catch(s=>{throw new L(String(s),"ERR_INVALID_INPUT")});try{return rt.verify(e,n.digest,r)}catch(s){throw new L(String(s),"ERR_INVALID_INPUT")}}function Jl(r){return rt.ProjectivePoint.fromHex(r).toRawBytes(!0)}function Ql(r){try{rt.getPublicKey(r,!0)}catch(e){throw new L(String(e),"ERR_INVALID_PRIVATE_KEY")}}function Ko(r){try{rt.ProjectivePoint.fromHex(r)}catch(e){throw new L(String(e),"ERR_INVALID_PUBLIC_KEY")}}function eu(r){try{return rt.getPublicKey(r,!0)}catch(e){throw new L(String(e),"ERR_INVALID_PRIVATE_KEY")}}var vn=class{_key;constructor(e){Ko(e),this._key=e}verify(e,t){return Xl(this._key,t,e)}marshal(){return Jl(this._key)}get bytes(){return ot.encode({Type:re.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}async hash(){let e=me.digest(this.bytes),t;return ze(e)?{bytes:t}=await e:t=e.bytes,t}},En=class{_key;_publicKey;constructor(e,t){this._key=e,this._publicKey=t??eu(e),Ql(this._key),Ko(this._publicKey)}sign(e){return Zl(this._key,e)}get public(){return new vn(this._publicKey)}marshal(){return this._key}get bytes(){return at.encode({Type:re.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return oe(this.bytes,e.bytes)}hash(){let e=me.digest(this.bytes);return ze(e)?e.then(({bytes:t})=>t):e.bytes}async id(){let e=await this.public.hash();return G(e,"base58btc")}async export(e,t="libp2p-key"){if(t==="libp2p-key")return Cr(this.bytes,e);throw new L(`export format '${t}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Tp(r){return new En(r)}function Rp(r){return new vn(r)}async function Np(){let r=Yl();return new En(r)}var lr={rsa:Mo,ed25519:ko,secp256k1:qo};function tu(r){let e=Object.keys(lr).join(" / ");return new L(`invalid or unsupported key type ${r}. Must be ${e}`,"ERR_UNSUPPORTED_KEY_TYPE")}function ru(r){let e=ot.decode(r),t=e.Data??new Uint8Array;switch(e.Type){case re.RSA:return lr.rsa.unmarshalRsaPublicKey(t);case re.Ed25519:return lr.ed25519.unmarshalEd25519PublicKey(t);case re.Secp256k1:return lr.secp256k1.unmarshalSecp256k1PublicKey(t);default:throw tu(e.Type??"unknown")}}async function nu(r){let e=at.decode(r),t=e.Data??new Uint8Array;switch(e.Type){case re.RSA:return lr.rsa.unmarshalRsaPrivateKey(t);case re.Ed25519:return lr.ed25519.unmarshalEd25519PrivateKey(t);case re.Secp256k1:return lr.secp256k1.unmarshalSecp256k1PrivateKey(t);default:throw tu(e.Type??"RSA")}}var iu=Symbol.for("@achingbrain/uint8arraylist");function su(r,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let t=0;for(let n of r){let s=t+n.byteLength;if(e<s)return{buf:n,index:e-t};t=s}throw new RangeError("index is out of bounds")}function Vs(r){return!!r?.[iu]}var Ve=class r{bufs;length;[iu]=!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(Vs(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(Vs(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=su(this.bufs,e);return t.buf[t.index]}set(e,t){let n=su(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(Vs(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:s}=this._subList(e,t);return _e(n,s)}subarray(e,t){let{bufs:n,length:s}=this._subList(e,t);return n.length===1?n[0]:_e(n,s)}sublist(e,t){let{bufs:n,length:s}=this._subList(e,t),i=new r;return i.length=s,i.bufs=[...n],i}_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=[],s=0;for(let i=0;i<this.bufs.length;i++){let o=this.bufs[i],a=s,c=a+o.byteLength;if(s=c,e>=c)continue;let h=e>=a&&e<c,f=t>a&&t<=c;if(h&&f){if(e===a&&t===c){n.push(o);break}let l=e-a;n.push(o.subarray(l,l+(t-e)));break}if(h){if(e===0){n.push(o);continue}n.push(o.subarray(e-a));continue}if(f){if(t===c){n.push(o);break}n.push(o.subarray(0,t-a));break}n.push(o)}return{bufs:n,length:t-e}}indexOf(e,t=0){if(!Vs(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 s=n.byteLength;if(s===0)throw new TypeError("search must be at least 1 byte long");let i=256,o=new Int32Array(i);for(let l=0;l<i;l++)o[l]=-1;for(let l=0;l<s;l++)o[n[l]]=l;let a=o,c=this.byteLength-n.byteLength,h=n.byteLength-1,f;for(let l=t;l<=c;l+=f){f=0;for(let g=h;g>=0;g--){let u=this.get(l+g);if(n[g]!==u){f=Math.max(1,g-a[u]);break}}if(f===0)return l}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=Re(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 s=we(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt16(0,t,n),this.write(s,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 s=we(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt32(0,t,n),this.write(s,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 s=we(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigInt64(0,t,n),this.write(s,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=Re(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 s=we(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint16(0,t,n),this.write(s,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 s=we(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint32(0,t,n),this.write(s,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 s=we(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigUint64(0,t,n),this.write(s,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 s=we(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat32(0,t,n),this.write(s,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 s=we(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat64(0,t,n),this.write(s,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(!oe(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((s,i)=>s+i.byteLength,0)),n.length=t,n}};var ou={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var An;(function(r){let e;r.codec=()=>(e==null&&(e=Me((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.publicKey!=null&&t.publicKey.byteLength>0&&(n.uint32(10),n.bytes(t.publicKey)),t.payloadType!=null&&t.payloadType.byteLength>0&&(n.uint32(18),n.bytes(t.payloadType)),t.payload!=null&&t.payload.byteLength>0&&(n.uint32(26),n.bytes(t.payload)),t.signature!=null&&t.signature.byteLength>0&&(n.uint32(42),n.bytes(t.signature)),s.lengthDelimited!==!1&&n.ldelim()},(t,n)=>{let s={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},i=n==null?t.len:t.pos+n;for(;t.pos<i;){let o=t.uint32();switch(o>>>3){case 1:s.publicKey=t.bytes();break;case 2:s.payloadType=t.bytes();break;case 3:s.payload=t.bytes();break;case 5:s.signature=t.bytes();break;default:t.skipType(o&7);break}}return s})),e),r.encode=t=>Pe(t,r.codec()),r.decode=t=>Oe(t,r.codec())})(An||(An={}));var Sn=class r{static createFromProtobuf=async e=>{let t=An.decode(e),n=await pc(t.publicKey);return new r({peerId:n,payloadType:t.payloadType,payload:t.payload,signature:t.signature})};static seal=async(e,t)=>{if(t.privateKey==null)throw new Error("Missing private key");let n=e.domain,s=e.codec,i=e.marshal(),o=au(n,s,i),c=await(await nu(t.privateKey)).sign(o.subarray());return new r({peerId:t,payloadType:s,payload:i,signature:c})};static openAndCertify=async(e,t)=>{let n=await r.createFromProtobuf(e);if(!await n.validate(t))throw new L("envelope signature is not valid for the given domain",ou.ERR_SIGNATURE_NOT_VALID);return n};peerId;payloadType;payload;signature;marshaled;constructor(e){let{peerId:t,payloadType:n,payload:s,signature:i}=e;this.peerId=t,this.payloadType=n,this.payload=s,this.signature=i}marshal(){if(this.peerId.publicKey==null)throw new Error("Missing public key");return this.marshaled==null&&(this.marshaled=An.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(e){return oe(this.marshal(),e.marshal())}async validate(e){let t=au(e,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return ru(this.peerId.publicKey).verify(t.subarray(),this.signature)}},au=(r,e,t)=>{let n=M(r),s=$e(n.byteLength),i=$e(e.length),o=$e(t.length);return new Ve(s,n,i,e,o,t)};var Hs=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let t=this.index,n=e();return n===void 0&&(this.index=t),n}parseWith(e){let t=e();if(this.index===this.input.length)return t}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(e){return this.readAtomically(()=>{let t=this.readChar();if(t===e)return t})}readSeparator(e,t,n){return this.readAtomically(()=>{if(!(t>0&&this.readGivenChar(e)===void 0))return n()})}readNumber(e,t,n,s){return this.readAtomically(()=>{let i=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",h=2**(8*s)-1;for(;;){let f=this.readAtomically(()=>{let l=this.readChar();if(l===void 0)return;let g=Number.parseInt(l,e);if(!Number.isNaN(g))return g});if(f===void 0)break;if(i*=e,i+=f,i>h||(o+=1,t!==void 0&&o>t))return}if(o!==0)return!n&&c&&o>1?void 0:i})}readIPv4Addr(){return this.readAtomically(()=>{let e=new Uint8Array(4);for(let t=0;t<e.length;t++){let n=this.readSeparator(".",t,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;e[t]=n}return e})}readIPv6Addr(){let e=t=>{for(let n=0;n<t.length/2;n++){let s=n*2;if(n<t.length-3){let o=this.readSeparator(":",n,()=>this.readIPv4Addr());if(o!==void 0)return t[s]=o[0],t[s+1]=o[1],t[s+2]=o[2],t[s+3]=o[3],[s+4,!0]}let i=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(i===void 0)return[s,!1];t[s]=i>>8,t[s+1]=i&255}return[t.length,!1]};return this.readAtomically(()=>{let t=new Uint8Array(16),[n,s]=e(t);if(n===16)return t;if(s||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let i=new Uint8Array(14),o=16-(n+2),[a]=e(i.subarray(0,o));return t.set(i.subarray(0,a),16-a),t})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var cu=45,Cp=15,Hr=new Hs;function zo(r){if(!(r.length>Cp))return Hr.new(r).parseWith(()=>Hr.readIPv4Addr())}function $o(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>cu))return Hr.new(r).parseWith(()=>Hr.readIPv6Addr())}function Fs(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>cu))return Hr.new(r).parseWith(()=>Hr.readIPAddr())}var Ew=parseInt("0xFFFF",16),Aw=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function fu(r){return!!zo(r)}function hu(r){return!!$o(r)}function Ks(r){return!!Fs(r)}var du=fu,Pp=hu,Go=function(r){let e=0;if(r=r.toString().trim(),du(r)){let t=new Uint8Array(e+4);return r.split(/\./g).forEach(n=>{t[e++]=parseInt(n,10)&255}),t}if(Pp(r)){let t=r.split(":",8),n;for(n=0;n<t.length;n++){let i=du(t[n]),o;i&&(o=Go(t[n]),t[n]=G(o.slice(0,2),"base16")),o!=null&&++n<8&&t.splice(n,0,G(o.slice(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 i=[n,1];for(n=9-t.length;n>0;n--)i.push("0");t.splice.apply(t,i)}let s=new Uint8Array(e+16);for(n=0;n<t.length;n++){let i=parseInt(t[n],16);s[e++]=i>>8&255,s[e++]=i&255}return s}throw new Error("invalid ip address")},pu=function(r,e=0,t){e=~~e,t=t??r.length-e;let n=new DataView(r.buffer);if(t===4){let s=[];for(let i=0;i<t;i++)s.push(r[e+i]);return s.join(".")}if(t===16){let s=[];for(let i=0;i<t;i+=2)s.push(n.getUint16(e+i).toString(16));return s.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var Fr={},jo={},Vp=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[481,-1,"http-path"],[777,-1,"memory"]];Vp.forEach(r=>{let e=Hp(...r);jo[e.code]=e,Fr[e.name]=e});function Hp(r,e,t,n,s){return{code:r,size:e,name:t,resolvable:!!n,path:!!s}}function J(r){if(typeof r=="number"){if(jo[r]!=null)return jo[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(Fr[r]!=null)return Fr[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var o1=J("ip4"),a1=J("ip6"),c1=J("ipcidr");function Xo(r,e){switch(J(r).code){case 4:case 41:return Kp(e);case 42:return Zo(e);case 6:case 273:case 33:case 132:return yu(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Zo(e);case 421:return Gp(e);case 444:return mu(e);case 445:return mu(e);case 466:return $p(e);case 481:return globalThis.encodeURIComponent(Zo(e));default:return G(e,"base16")}}function Jo(r,e){switch(J(r).code){case 4:return gu(e);case 41:return gu(e);case 42:return Yo(e);case 6:case 273:case 33:case 132:return Qo(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Yo(e);case 421:return qp(e);case 444:return jp(e);case 445:return Wp(e);case 466:return zp(e);case 481:return Yo(globalThis.decodeURIComponent(e));default:return M(e,"base16")}}var Wo=Object.values(Nt).map(r=>r.decoder),Fp=function(){let r=Wo[0].or(Wo[1]);return Wo.slice(2).forEach(e=>r=r.or(e)),r}();function gu(r){if(!Ks(r))throw new Error("invalid ip address");return Go(r)}function Kp(r){let e=pu(r,0,r.length);if(e==null)throw new Error("ipBuff is required");if(!Ks(e))throw new Error("invalid ip address");return e}function Qo(r){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,r),new Uint8Array(e)}function yu(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function Yo(r){let e=M(r),t=Uint8Array.from($e(e.length));return _e([t,e],t.length+e.length)}function Zo(r){let e=xt(r);if(r=r.slice(Ae(e)),r.length!==e)throw new Error("inconsistent lengths");return G(r)}function qp(r){let e;r[0]==="Q"||r[0]==="1"?e=Xt(fe.decode(`z${r}`)).bytes:e=Ue.parse(r).multihash.bytes;let t=Uint8Array.from($e(e.length));return _e([t,e],t.length+e.length)}function zp(r){let e=Fp.decode(r),t=Uint8Array.from($e(e.length));return _e([t,e],t.length+e.length)}function $p(r){let e=xt(r),t=r.slice(Ae(e));if(t.length!==e)throw new Error("inconsistent lengths");return"u"+G(t,"base64url")}function Gp(r){let e=xt(r),t=r.slice(Ae(e));if(t.length!==e)throw new Error("inconsistent lengths");return G(t,"base58btc")}function jp(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=dt.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 s=Qo(n);return _e([t,s],t.length+s.length)}function Wp(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=dt.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 s=Qo(n);return _e([t,s],t.length+s.length)}function mu(r){let e=r.slice(0,r.length-2),t=r.slice(r.length-2),n=G(e,"base32"),s=yu(t);return`${n}:${s}`}function bu(r){r=ea(r);let e=[],t=[],n=null,s=r.split("/").slice(1);if(s.length===1&&s[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let i=0;i<s.length;i++){let o=s[i],a=J(o);if(a.size===0){e.push([a.code]),t.push([a.code]);continue}if(i++,i>=s.length)throw xu("invalid address: "+r);if(a.path===!0){n=ea(s.slice(i).join("/")),e.push([a.code,Jo(a.code,n)]),t.push([a.code,n]);break}let c=Jo(a.code,s[i]);e.push([a.code,c]),t.push([a.code,Xo(a.code,c)])}return{string:wu(t),bytes:ra(e),tuples:e,stringTuples:t,path:n}}function ta(r){let e=[],t=[],n=null,s=0;for(;s<r.length;){let i=xt(r,s),o=Ae(i),a=J(i),c=Yp(a,r.slice(s+o));if(c===0){e.push([i]),t.push([i]),s+=o;continue}let h=r.slice(s+o,s+o+c);if(s+=c+o,s>r.length)throw xu("Invalid address Uint8Array: "+G(r,"base16"));e.push([i,h]);let f=Xo(i,h);if(t.push([i,f]),a.path===!0){n=f;break}}return{bytes:Uint8Array.from(r),string:wu(t),tuples:e,stringTuples:t,path:n}}function wu(r){let e=[];return r.map(t=>{let n=J(t[0]);return e.push(n.name),t.length>1&&t[1]!=null&&e.push(t[1]),null}),ea(e.join("/"))}function ra(r){return _e(r.map(e=>{let t=J(e[0]),n=Uint8Array.from($e(t.code));return e.length>1&&e[1]!=null&&(n=_e([n,e[1]])),n}))}function Yp(r,e){if(r.size>0)return r.size/8;if(r.size===0)return 0;{let t=xt(e instanceof Uint8Array?e:Uint8Array.from(e));return t+Ae(t)}}function ea(r){return"/"+r.trim().split("/").filter(e=>e).join("/")}function xu(r){return new Error("Error parsing address: "+r)}var Zp=Symbol.for("nodejs.util.inspect.custom"),na=Symbol.for("@multiformats/js-multiaddr/multiaddr"),Xp=[J("dns").code,J("dns4").code,J("dns6").code,J("dnsaddr").code],qs=class r{bytes;#e;#t;#r;#n;[na]=!0;constructor(e){e==null&&(e="");let t;if(e instanceof Uint8Array)t=ta(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);t=bu(e)}else if(Eu(e))t=ta(e.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=t.bytes,this.#e=t.string,this.#t=t.tuples,this.#r=t.stringTuples,this.#n=t.path}toString(){return this.#e}toJSON(){return this.toString()}toOptions(){let e,t,n,s,i="",o=J("tcp"),a=J("udp"),c=J("ip4"),h=J("ip6"),f=J("dns6"),l=J("ip6zone");for(let[u,d]of this.stringTuples())u===l.code&&(i=`%${d??""}`),Xp.includes(u)&&(t=o.name,s=443,n=`${d??""}${i}`,e=u===f.code?6:4),(u===o.code||u===a.code)&&(t=J(u).name,s=parseInt(d??"")),(u===c.code||u===h.code)&&(t=J(u).name,n=`${d??""}${i}`,e=u===h.code?6:4);if(e==null||t==null||n==null||s==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:e,host:n,transport:t,port:s}}protos(){return this.#t.map(([e])=>Object.assign({},J(e)))}protoCodes(){return this.#t.map(([e])=>e)}protoNames(){return this.#t.map(([e])=>J(e).name)}tuples(){return this.#t}stringTuples(){return this.#r}encapsulate(e){return e=new r(e),new r(this.toString()+e.toString())}decapsulate(e){let t=e.toString(),n=this.toString(),s=n.lastIndexOf(t);if(s<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new r(n.slice(0,s))}decapsulateCode(e){let t=this.tuples();for(let n=t.length-1;n>=0;n--)if(t[n][0]===e)return new r(ra(t.slice(0,n)));return this}getPeerId(){try{let e=[];this.stringTuples().forEach(([n,s])=>{n===Fr.p2p.code&&e.push([n,s]),n===Fr["p2p-circuit"].code&&(e=[])});let t=e.pop();if(t?.[1]!=null){let n=t[1];return n[0]==="Q"||n[0]==="1"?G(fe.decode(`z${n}`),"base58btc"):G(Ue.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(e){return oe(this.bytes,e.bytes)}async resolve(e){let t=this.protos().find(i=>i.resolvable);if(t==null)return[this];let n=vu.get(t.name);if(n==null)throw new L(`no available resolver for ${t.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(i=>ve(i))}nodeAddress(){let e=this.toOptions();if(e.transport!=="tcp"&&e.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${e.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:e.family,address:e.host,port:e.port}}isThinWaistAddress(e){let t=(e??this).protos();return!(t.length!==2||t[0].code!==4&&t[0].code!==41||t[1].code!==6&&t[1].code!==273)}[Zp](){return`Multiaddr(${this.#e})`}};var vu=new Map;function Eu(r){return!!r?.[na]}function ve(r){return new qs(r)}function He(){let r={};return r.promise=new Promise((e,t)=>{r.resolve=e,r.reject=t}),r}var zs=class extends Error{type;code;constructor(e,t,n){super(e??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=t??"ABORT_ERR"}};async function Kr(r,e,t){if(e==null)return r;if(e.aborted)return Promise.reject(new zs(t?.errorMessage,t?.errorCode,t?.errorName));let n,s=new zs(t?.errorMessage,t?.errorCode,t?.errorName);try{return await Promise.race([r,new Promise((i,o)=>{n=()=>{o(s)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var sa=class{readNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.readNext=He(),this.haveNext=He()}[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=He(),e}async throw(e){return this.ended=!0,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 await this._push(void 0),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 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=He(),await Kr(this.readNext.promise,t?.signal,t)}};function Au(){return new sa}var $s=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};var ia=class extends Error{code;constructor(e,t){super(e),this.code=t}},oa=class extends ia{type;constructor(e){super(e,"ABORT_ERR"),this.type="aborted",this.name="AbortError"}};function Su(r,e){let t=Au();r.sink(t).catch(async o=>{await t.end(o)}),r.sink=async o=>{for await(let a of o)await t.push(a);await t.end()};let n=r.source;r.source[Symbol.iterator]!=null?n=r.source[Symbol.iterator]():r.source[Symbol.asyncIterator]!=null&&(n=r.source[Symbol.asyncIterator]());let s=new Ve;return{read:async(o,a)=>{a?.signal?.throwIfAborted();let c,h=new Promise((f,l)=>{c=()=>{l(new oa("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(o==null){let{done:l,value:g}=await Promise.race([n.next(),h]);return l===!0?new Ve:g}for(;s.byteLength<o;){let{value:l,done:g}=await Promise.race([n.next(),h]);if(g===!0)throw new $s("unexpected end of input");s.append(l)}let f=s.sublist(0,o);return s.consume(o),f}finally{c!=null&&a?.signal?.removeEventListener("abort",c)}},write:async(o,a)=>{a?.signal?.throwIfAborted(),o instanceof Uint8Array?await t.push(o,a):await t.push(o.subarray(),a)},unwrap:()=>{if(s.byteLength>0){let o=r.source;r.source=async function*(){e?.yieldBytes===!1?yield s:yield*s,yield*o}()}return r}}}var Gs=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},js=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Ws=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function Bu(r,e={}){let t=Su(r,e);e.maxDataLength!=null&&e.maxLengthLength==null&&(e.maxLengthLength=Ae(e.maxDataLength));let n=e?.lengthDecoder??xt,s=e?.lengthEncoder??$e;return{read:async o=>{let a=-1,c=new Ve;for(;;){c.append(await t.read(1,o));try{a=n(c)}catch(h){if(h instanceof RangeError)continue;throw h}if(a<0)throw new Gs("Invalid message length");if(e?.maxLengthLength!=null&&c.byteLength>e.maxLengthLength)throw new Ws("message length length too long");if(a>-1)break}if(e?.maxDataLength!=null&&a>e.maxDataLength)throw new js("message length too long");return t.read(a,o)},write:async(o,a)=>{await t.write(new Ve(s(o.byteLength),o),a)},writeV:async(o,a)=>{let c=new Ve(...o.flatMap(h=>[s(h.byteLength),h]));await t.write(c,a)},unwrap:()=>t.unwrap()}}function jt(r,e){let t=Bu(r,e),n={read:async(s,i)=>{let o=await t.read(i);return s.decode(o)},write:async(s,i,o)=>{await t.write(i.encode(s),o)},writeV:async(s,i,o)=>{await t.writeV(s.map(a=>i.encode(a)),o)},pb:s=>({read:async i=>n.read(s,i),write:async(i,o)=>n.write(i,s,o),writeV:async(i,o)=>n.writeV(i,s,o),unwrap:()=>n}),unwrap:()=>t.unwrap()};return n}var _u="circuit-relay-source",Iu="circuit-relay-relay";var ku=BigInt(131072),je="/libp2p/circuit/relay/0.2.0/hop",ur="/libp2p/circuit/relay/0.2.0/stop",Tu=30*1e3,J1=30*1e3,Bn=300;var aa="ERR_RELAYED_DIAL",Ru="ERR_HOP_REQUEST_FAILED",Ys="ERR_TRANSFER_LIMIT_EXCEEDED",Nu=4096,Cu=.001;var Z;(function(r){let e;(function(s){s.RESERVE="RESERVE",s.CONNECT="CONNECT",s.STATUS="STATUS"})(e=r.Type||(r.Type={}));let t;(function(s){s[s.RESERVE=0]="RESERVE",s[s.CONNECT=1]="CONNECT",s[s.STATUS=2]="STATUS"})(t||(t={})),function(s){s.codec=()=>ir(t)}(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Me((s,i,o={})=>{o.lengthDelimited!==!1&&i.fork(),s.type!=null&&(i.uint32(8),r.Type.codec().encode(s.type,i)),s.peer!=null&&(i.uint32(18),qr.codec().encode(s.peer,i)),s.reservation!=null&&(i.uint32(26),Zs.codec().encode(s.reservation,i)),s.limit!=null&&(i.uint32(34),zr.codec().encode(s.limit,i)),s.status!=null&&(i.uint32(40),q.codec().encode(s.status,i)),o.lengthDelimited!==!1&&i.ldelim()},(s,i,o={})=>{let a={},c=i==null?s.len:s.pos+i;for(;s.pos<c;){let h=s.uint32();switch(h>>>3){case 1:{a.type=r.Type.codec().decode(s);break}case 2:{a.peer=qr.codec().decode(s,s.uint32(),{limits:o.limits?.peer});break}case 3:{a.reservation=Zs.codec().decode(s,s.uint32(),{limits:o.limits?.reservation});break}case 4:{a.limit=zr.codec().decode(s,s.uint32(),{limits:o.limits?.limit});break}case 5:{a.status=q.codec().decode(s);break}default:{s.skipType(h&7);break}}}return a})),n),r.encode=s=>Pe(s,r.codec()),r.decode=(s,i)=>Oe(s,r.codec(),i)})(Z||(Z={}));var Fe;(function(r){let e;(function(s){s.CONNECT="CONNECT",s.STATUS="STATUS"})(e=r.Type||(r.Type={}));let t;(function(s){s[s.CONNECT=0]="CONNECT",s[s.STATUS=1]="STATUS"})(t||(t={})),function(s){s.codec=()=>ir(t)}(e=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Me((s,i,o={})=>{o.lengthDelimited!==!1&&i.fork(),s.type!=null&&(i.uint32(8),r.Type.codec().encode(s.type,i)),s.peer!=null&&(i.uint32(18),qr.codec().encode(s.peer,i)),s.limit!=null&&(i.uint32(26),zr.codec().encode(s.limit,i)),s.status!=null&&(i.uint32(32),q.codec().encode(s.status,i)),o.lengthDelimited!==!1&&i.ldelim()},(s,i,o={})=>{let a={},c=i==null?s.len:s.pos+i;for(;s.pos<c;){let h=s.uint32();switch(h>>>3){case 1:{a.type=r.Type.codec().decode(s);break}case 2:{a.peer=qr.codec().decode(s,s.uint32(),{limits:o.limits?.peer});break}case 3:{a.limit=zr.codec().decode(s,s.uint32(),{limits:o.limits?.limit});break}case 4:{a.status=q.codec().decode(s);break}default:{s.skipType(h&7);break}}}return a})),n),r.encode=s=>Pe(s,r.codec()),r.decode=(s,i)=>Oe(s,r.codec(),i)})(Fe||(Fe={}));var qr;(function(r){let e;r.codec=()=>(e==null&&(e=Me((t,n,s={})=>{if(s.lengthDelimited!==!1&&n.fork(),t.id!=null&&t.id.byteLength>0&&(n.uint32(10),n.bytes(t.id)),t.addrs!=null)for(let i of t.addrs)n.uint32(18),n.bytes(i);s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let i={id:we(0),addrs:[]},o=n==null?t.len:t.pos+n;for(;t.pos<o;){let a=t.uint32();switch(a>>>3){case 1:{i.id=t.bytes();break}case 2:{if(s.limits?.addrs!=null&&i.addrs.length===s.limits.addrs)throw new an('decode error - map field "addrs" had too many elements',"ERR_MAX_LENGTH");i.addrs.push(t.bytes());break}default:{t.skipType(a&7);break}}}return i})),e),r.encode=t=>Pe(t,r.codec()),r.decode=(t,n)=>Oe(t,r.codec(),n)})(qr||(qr={}));var Zs;(function(r){let e;r.codec=()=>(e==null&&(e=Me((t,n,s={})=>{if(s.lengthDelimited!==!1&&n.fork(),t.expire!=null&&t.expire!==0n&&(n.uint32(8),n.uint64(t.expire)),t.addrs!=null)for(let i of t.addrs)n.uint32(18),n.bytes(i);t.voucher!=null&&(n.uint32(26),n.bytes(t.voucher)),s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let i={expire:0n,addrs:[]},o=n==null?t.len:t.pos+n;for(;t.pos<o;){let a=t.uint32();switch(a>>>3){case 1:{i.expire=t.uint64();break}case 2:{if(s.limits?.addrs!=null&&i.addrs.length===s.limits.addrs)throw new an('decode error - map field "addrs" had too many elements',"ERR_MAX_LENGTH");i.addrs.push(t.bytes());break}case 3:{i.voucher=t.bytes();break}default:{t.skipType(a&7);break}}}return i})),e),r.encode=t=>Pe(t,r.codec()),r.decode=(t,n)=>Oe(t,r.codec(),n)})(Zs||(Zs={}));var zr;(function(r){let e;r.codec=()=>(e==null&&(e=Me((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.duration!=null&&(n.uint32(8),n.uint32(t.duration)),t.data!=null&&(n.uint32(16),n.uint64(t.data)),s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let i={},o=n==null?t.len:t.pos+n;for(;t.pos<o;){let a=t.uint32();switch(a>>>3){case 1:{i.duration=t.uint32();break}case 2:{i.data=t.uint64();break}default:{t.skipType(a&7);break}}}return i})),e),r.encode=t=>Pe(t,r.codec()),r.decode=(t,n)=>Oe(t,r.codec(),n)})(zr||(zr={}));var q;(function(r){r.UNUSED="UNUSED",r.OK="OK",r.RESERVATION_REFUSED="RESERVATION_REFUSED",r.RESOURCE_LIMIT_EXCEEDED="RESOURCE_LIMIT_EXCEEDED",r.PERMISSION_DENIED="PERMISSION_DENIED",r.CONNECTION_FAILED="CONNECTION_FAILED",r.NO_RESERVATION="NO_RESERVATION",r.MALFORMED_MESSAGE="MALFORMED_MESSAGE",r.UNEXPECTED_MESSAGE="UNEXPECTED_MESSAGE"})(q||(q={}));var ca;(function(r){r[r.UNUSED=0]="UNUSED",r[r.OK=100]="OK",r[r.RESERVATION_REFUSED=200]="RESERVATION_REFUSED",r[r.RESOURCE_LIMIT_EXCEEDED=201]="RESOURCE_LIMIT_EXCEEDED",r[r.PERMISSION_DENIED=202]="PERMISSION_DENIED",r[r.CONNECTION_FAILED=203]="CONNECTION_FAILED",r[r.NO_RESERVATION=204]="NO_RESERVATION",r[r.MALFORMED_MESSAGE=400]="MALFORMED_MESSAGE",r[r.UNEXPECTED_MESSAGE=401]="UNEXPECTED_MESSAGE"})(ca||(ca={}));(function(r){r.codec=()=>ir(ca)})(q||(q={}));var Xs;(function(r){let e;r.codec=()=>(e==null&&(e=Me((t,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),t.relay!=null&&t.relay.byteLength>0&&(n.uint32(10),n.bytes(t.relay)),t.peer!=null&&t.peer.byteLength>0&&(n.uint32(18),n.bytes(t.peer)),t.expiration!=null&&t.expiration!==0n&&(n.uint32(24),n.uint64(t.expiration)),s.lengthDelimited!==!1&&n.ldelim()},(t,n,s={})=>{let i={relay:we(0),peer:we(0),expiration:0n},o=n==null?t.len:t.pos+n;for(;t.pos<o;){let a=t.uint32();switch(a>>>3){case 1:{i.relay=t.bytes();break}case 2:{i.peer=t.bytes();break}case 3:{i.expiration=t.uint64();break}default:{t.skipType(a&7);break}}}return i})),e),r.encode=t=>Pe(t,r.codec()),r.decode=(t,n)=>Oe(t,r.codec(),n)})(Xs||(Xs={}));function Js(r){let e=new globalThis.AbortController;function t(){e.abort();for(let i of r)i?.removeEventListener!=null&&i.removeEventListener("abort",t)}for(let i of r){if(i?.aborted===!0){t();break}i?.addEventListener!=null&&i.addEventListener("abort",t)}function n(){for(let i of r)i?.removeEventListener!=null&&i.removeEventListener("abort",t)}let s=e.signal;return s.clear=n,s}async function*Lu(r,e,t){let n=e.remaining;for await(let s of r){let i=BigInt(s.byteLength);if(e.remaining-i<0){let o=Number(e.remaining);e.remaining=0n;try{o!==0&&(yield s.subarray(0,o))}catch(a){t.log.error(a)}throw new L(`data limit of ${n} bytes exceeded`,Ys)}e.remaining-=i,yield s}}function Uu(r,e,t,n,s){function i(l){r.abort(l),e.abort(l)}let o=[t];n?.duration!=null&&o.push(AbortSignal.timeout(n.duration));let a=Js(o),c=!1,h=!1,f;n?.data!=null&&(f={remaining:n.data}),queueMicrotask(()=>{let l=()=>{e.abort(new L(`duration limit of ${n?.duration} ms exceeded`,Ys))};a.addEventListener("abort",l,{once:!0}),e.sink(f==null?r.source:Lu(r.source,f,s)).catch(g=>{s.log.error("error while relaying streams src -> dst",g),i(g)}).finally(()=>{c=!0,h&&(a.removeEventListener("abort",l),a.clear())})}),queueMicrotask(()=>{let l=()=>{r.abort(new L(`duration limit of ${n?.duration} ms exceeded`,Ys))};a.addEventListener("abort",l,{once:!0}),r.sink(f==null?e.source:Lu(e.source,f,s)).catch(g=>{s.log.error("error while relaying streams dst -> src",g),i(g)}).finally(()=>{h=!0,c&&(a.removeEventListener("abort",l),a.clear())})})}function la(r){let e=r*BigInt(1e3),t=new Date().getTime();return Number(e-BigInt(t))}function ua(r,e){let t={[Symbol.iterator]:()=>t,next:()=>{let n=r.next(),s=n.value;return n.done===!0||s==null?{done:!0,value:void 0}:{done:!1,value:e(s)}}};return t}var It=class{map;constructor(e){if(this.map=new Map,e!=null)for(let[t,n]of e.entries())this.map.set(t.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(e){return this.map.delete(e.toString())}entries(){return ua(this.map.entries(),e=>[Ct(e[0]),e[1]])}forEach(e){this.map.forEach((t,n)=>{e(t,Ct(n),this)})}get(e){return this.map.get(e.toString())}has(e){return this.map.has(e.toString())}set(e,t){this.map.set(e.toString(),t)}keys(){return ua(this.map.keys(),e=>Ct(e))}values(){return this.map.values()}get size(){return this.map.size}};var ha=wi(fa(),1);var Jp=Math.LN2*Math.LN2,ei=class{seeds;bits;buffer;constructor(e={}){e.seeds!=null?this.seeds=e.seeds:this.seeds=e0(e.hashes??8),this.bits=e.bits??1024,this.buffer=we(Math.ceil(this.bits/8))}add(e){typeof e=="string"&&(e=M(e));for(let t=0;t<this.seeds.length;t++){let s=ha.default.x86.hash32(e,this.seeds[t])%this.bits;this.setbit(s)}}has(e){typeof e=="string"&&(e=M(e));for(let t=0;t<this.seeds.length;t++){let s=ha.default.x86.hash32(e,this.seeds[t])%this.bits;if(!this.getbit(s))return!1}return!0}clear(){this.buffer.fill(0)}setbit(e){let t=0,n=e;for(;n>7;)t++,n-=8;let s=this.buffer[t];s|=1<<n,this.buffer[t]=s}getbit(e){let t=0,n=e;for(;n>7;)t++,n-=8;return(this.buffer[t]&1<<n)!==0}};function da(r,e=.005){let t=Qp(r,e);return new ei(t)}function Qp(r,e=.005){let t=Math.round(-1*r*Math.log(e)/Jp),n=Math.round(t/r*Math.LN2);return{bits:t,hashes:n}}function e0(r){let e,t,n=[];for(let s=0;s<r;s++)for(e=new Ve(ct(4)),n[s]=e.getUint32(0,!0),t=0;t<s;t++)if(n[s]===n[t]){s--;break}return n}var pa=64,nt=class{fp;h;seed;constructor(e,t,n,s=2){if(s>pa)throw new TypeError("Invalid Fingerprint Size");let i=t.hashV(e,n),o=we(s);for(let a=0;a<o.length;a++)o[a]=i[a];o.length===0&&(o[0]=7),this.fp=o,this.h=t,this.seed=n}hash(){return this.h.hash(this.fp,this.seed)}equals(e){return e?.fp instanceof Uint8Array?oe(this.fp,e.fp):!1}};function fr(r,e){return Math.floor(Math.random()*(e-r))+r}var hr=class{contents;constructor(e){this.contents=new Array(e).fill(null)}has(e){if(!(e instanceof nt))throw new TypeError("Invalid Fingerprint");return this.contents.some(t=>e.equals(t))}add(e){if(!(e instanceof nt))throw new TypeError("Invalid Fingerprint");for(let t=0;t<this.contents.length;t++)if(this.contents[t]==null)return this.contents[t]=e,!0;return!0}swap(e){if(!(e instanceof nt))throw new TypeError("Invalid Fingerprint");let t=fr(0,this.contents.length-1),n=this.contents[t];return this.contents[t]=e,n}remove(e){if(!(e instanceof nt))throw new TypeError("Invalid Fingerprint");let t=this.contents.findIndex(n=>e.equals(n));return t>-1?(this.contents[t]=null,!0):!1}};var ga={32:16777619n,64:1099511628211n,128:309485009821345068724781371n,256:374144419156711147060143317175368453031918731002211n,512:35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759n,1024:5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573n},Pu={32:2166136261n,64:14695981039346656037n,128:144066263297769815596495629667062367629n,256:100029257958052580907070968620625704837092796014241193945225284501741471925557n,512:9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785n,1024:14197795064947621068722070641403218320880622795441933960878474914617582723252296732303717722150864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915n},Mu=new globalThis.TextEncoder;function t0(r,e){let t=ga[e],n=Pu[e];for(let s=0;s<r.length;s++)n^=BigInt(r[s]),n=BigInt.asUintN(e,n*t);return n}function r0(r,e,t){if(t.length===0)throw new Error("The `utf8Buffer` option must have a length greater than zero");let n=ga[e],s=Pu[e],i=r;for(;i.length>0;){let o=Mu.encodeInto(i,t);i=i.slice(o.read);for(let a=0;a<o.written;a++)s^=BigInt(t[a]),s=BigInt.asUintN(e,s*n)}return s}function ma(r,{size:e=32,utf8Buffer:t}={}){if(!ga[e])throw new Error("The `size` option must be one of 32, 64, 128, 256, 512, or 1024");if(typeof r=="string"){if(t)return r0(r,e,t);r=Mu.encode(r)}return t0(r,e)}var n0=wi(fa(),1);var In={hash:r=>Number(ma(r,{size:32})),hashV:(r,e)=>s0(In.hash(r,e))};function s0(r){let e=r.toString(16);return e.length%2===1&&(e=`0${e}`),M(e,"base16")}var i0=500,kn=class{bucketSize;filterSize;fingerprintSize;buckets;count;hash;seed;constructor(e){this.filterSize=e.filterSize,this.bucketSize=e.bucketSize??4,this.fingerprintSize=e.fingerprintSize??2,this.count=0,this.buckets=[],this.hash=e.hash??In,this.seed=e.seed??fr(0,Math.pow(2,10))}add(e){typeof e=="string"&&(e=M(e));let t=new nt(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,s=(n^t.hash())%this.filterSize;if(this.buckets[n]==null&&(this.buckets[n]=new hr(this.bucketSize)),this.buckets[s]==null&&(this.buckets[s]=new hr(this.bucketSize)),this.buckets[n].add(t)||this.buckets[s].add(t))return this.count++,!0;let i=[n,s],o=i[fr(0,i.length-1)];this.buckets[o]==null&&(this.buckets[o]=new hr(this.bucketSize));for(let a=0;a<i0;a++){let c=this.buckets[o].swap(t);if(c!=null&&(o=(o^c.hash())%this.filterSize,this.buckets[o]==null&&(this.buckets[o]=new hr(this.bucketSize)),this.buckets[o].add(c)))return this.count++,!0}return!1}has(e){typeof e=="string"&&(e=M(e));let t=new nt(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,s=this.buckets[n]?.has(t)??!1;if(s)return s;let i=(n^t.hash())%this.filterSize;return this.buckets[i]?.has(t)??!1}remove(e){typeof e=="string"&&(e=M(e));let t=new nt(e,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(e,this.seed)%this.filterSize,s=this.buckets[n]?.remove(t)??!1;if(s)return this.count--,s;let i=(n^t.hash())%this.filterSize,o=this.buckets[i]?.remove(t)??!1;return o&&this.count--,o}get reliable(){return Math.floor(100*(this.count/this.filterSize))<=90}},o0={1:.5,2:.84,4:.95,8:.98};function a0(r=.001){return r>.002?2:r>1e-5?4:8}function Vu(r,e=.001){let t=a0(e),n=o0[t],s=Math.round(r/n),i=Math.min(Math.ceil(Math.log2(1/e)+Math.log2(2*t)),pa);return{filterSize:s,bucketSize:t,fingerprintSize:i}}var ti=class{filterSize;bucketSize;fingerprintSize;scale;filterSeries;hash;seed;constructor(e){this.bucketSize=e.bucketSize??4,this.filterSize=e.filterSize??(1<<18)/this.bucketSize,this.fingerprintSize=e.fingerprintSize??2,this.scale=e.scale??2,this.hash=e.hash??In,this.seed=e.seed??fr(0,Math.pow(2,10)),this.filterSeries=[new kn({filterSize:this.filterSize,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed})]}add(e){if(typeof e=="string"&&(e=M(e)),this.has(e))return!0;let t=this.filterSeries.find(n=>n.reliable);if(t==null){let n=this.filterSize*Math.pow(this.scale,this.filterSeries.length);t=new kn({filterSize:n,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed}),this.filterSeries.push(t)}return t.add(e)}has(e){typeof e=="string"&&(e=M(e));for(let t=0;t<this.filterSeries.length;t++)if(this.filterSeries[t].has(e))return!0;return!1}remove(e){typeof e=="string"&&(e=M(e));for(let t=0;t<this.filterSeries.length;t++)if(this.filterSeries[t].remove(e))return!0;return!1}get count(){return this.filterSeries.reduce((e,t)=>e+t.count,0)}};function ya(r,e=.001,t){return new ti({...Vu(r,e),...t??{}})}var ri=class{filter;constructor(e,t){this.filter=ya(e,t)}has(e){return this.filter.has(e.toBytes())}add(e){this.filter.add(e.toBytes())}remove(e){this.filter.remove?.(e.toBytes())}};function ba(r,e=.001){return new ri(r,e)}var ni=class{reservations=new It;_started=!1;interval;maxReservations;reservationClearInterval;applyDefaultLimit;reservationTtl;defaultDurationLimit;defaultDataLimit;constructor(e={}){this.maxReservations=e.maxReservations??15,this.reservationClearInterval=e.reservationClearInterval??3e5,this.applyDefaultLimit=e.applyDefaultLimit!==!1,this.reservationTtl=e.reservationTtl??72e5,this.defaultDurationLimit=e.defaultDurationLimit??12e4,this.defaultDataLimit=e.defaultDataLimit??ku}isStarted(){return this._started}start(){this._started||(this._started=!0,this.interval=setInterval(()=>{let e=new Date().getTime();this.reservations.forEach((t,n)=>{t.expire.getTime()<e&&this.reservations.delete(n)})},this.reservationClearInterval))}stop(){clearInterval(this.interval)}reserve(e,t,n){if(this.reservations.size>=this.maxReservations&&!this.reservations.has(e))return{status:q.RESERVATION_REFUSED};let s=new Date(Date.now()+this.reservationTtl),i;return this.applyDefaultLimit&&(i=n??{data:this.defaultDataLimit,duration:this.defaultDurationLimit}),this.reservations.set(e,{addr:t,expire:s,limit:i}),{status:q.OK,expire:Math.round(s.getTime()/1e3)}}removeReservation(e){this.reservations.delete(e)}hasReservation(e){return this.reservations.has(e)}get(e){return this.reservations.get(e)}};var si=class r{domain="libp2p-relay-rsvp";codec=new Uint8Array([3,2]);relay;peer;expiration;constructor({relay:e,peer:t,expiration:n}){this.relay=e,this.peer=t,this.expiration=n}marshal(){return Xs.encode({relay:this.relay.toBytes(),peer:this.peer.toBytes(),expiration:BigInt(this.expiration)})}equals(e){return!(!(e instanceof r)||!this.peer.equals(e.peer)||!this.relay.equals(e.relay)||this.expiration!==e.expiration)}};var Hu=r=>r.protoCodes().includes(290),h0={maxOutboundStopStreams:Bn},wa=class extends qe{registrar;peerStore;addressManager;peerId;connectionManager;connectionGater;reservationStore;started;hopTimeout;shutdownController;maxInboundHopStreams;maxOutboundHopStreams;maxOutboundStopStreams;log;constructor(e,t={}){super(),this.log=e.logger.forComponent("libp2p:circuit-relay:server"),this.registrar=e.registrar,this.peerStore=e.peerStore,this.addressManager=e.addressManager,this.peerId=e.peerId,this.connectionManager=e.connectionManager,this.connectionGater=e.connectionGater,this.started=!1,this.hopTimeout=t?.hopTimeout??Tu,this.maxInboundHopStreams=t.maxInboundHopStreams,this.maxOutboundHopStreams=t.maxOutboundHopStreams,this.maxOutboundStopStreams=t.maxOutboundStopStreams??h0.maxOutboundStopStreams,this.reservationStore=new ni(t.reservations),this.shutdownController=new AbortController,Ke(1/0,this.shutdownController.signal)}[Symbol.toStringTag]="@libp2p/circuit-relay-v2-server";isStarted(){return this.started}async start(){this.started||(await this.registrar.handle(je,e=>{this.onHop(e).catch(t=>{this.log.error(t)})},{maxInboundStreams:this.maxInboundHopStreams,maxOutboundStreams:this.maxOutboundHopStreams,runOnTransientConnection:!0}),this.reservationStore.start(),this.started=!0)}async stop(){this.reservationStore.stop(),this.shutdownController.abort(),await this.registrar.unhandle(je),this.started=!1}async onHop({connection:e,stream:t}){this.log("received circuit v2 hop protocol stream from %p",e.remotePeer);let n=He(),s=setTimeout(()=>{n.reject("timed out")},this.hopTimeout),i=jt(t);try{let o=await Promise.race([i.pb(Z).read(),n.promise]);if(o?.type==null)throw new Error("request was invalid, could not read from stream");this.log("received",o.type),await Promise.race([this.handleHopProtocol({connection:e,stream:i,request:o}),n.promise])}catch(o){this.log.error("error while handling hop",o),await i.pb(Z).write({type:Z.Type.STATUS,status:q.MALFORMED_MESSAGE}),t.abort(o)}finally{clearTimeout(s)}}async handleHopProtocol({stream:e,request:t,connection:n}){switch(this.log("received hop message"),t.type){case Z.Type.RESERVE:await this.handleReserve({stream:e,request:t,connection:n});break;case Z.Type.CONNECT:await this.handleConnect({stream:e,request:t,connection:n});break;default:this.log.error("invalid hop request type %s via peer %p",t.type,n.remotePeer),await e.pb(Z).write({type:Z.Type.STATUS,status:q.UNEXPECTED_MESSAGE})}}async handleReserve({stream:e,request:t,connection:n}){let s=e.pb(Z);if(this.log("hop reserve request from %p",n.remotePeer),Hu(n.remoteAddr)){this.log.error("relay reservation over circuit connection denied for peer: %p",n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}if(await this.connectionGater.denyInboundRelayReservation?.(n.remotePeer)===!0){this.log.error("reservation for %p denied by connection gater",n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}let i=this.reservationStore.reserve(n.remotePeer,n.remoteAddr);if(i.status!==q.OK){await s.write({type:Z.Type.STATUS,status:i.status});return}try{if(i.expire!=null){let o=i.expire*1e3-Date.now();await this.peerStore.merge(n.remotePeer,{tags:{[_u]:{value:1,ttl:o}}})}await s.write({type:Z.Type.STATUS,status:q.OK,reservation:await this.makeReservation(n.remotePeer,BigInt(i.expire??0)),limit:this.reservationStore.get(n.remotePeer)?.limit}),this.log("sent confirmation response to %s",n.remotePeer)}catch(o){this.log.error("failed to send confirmation response to %p",n.remotePeer,o),this.reservationStore.removeReservation(n.remotePeer)}}async makeReservation(e,t){let n=[];for(let i of this.addressManager.getAddresses())i.toString().includes("/p2p-circuit")||n.push(i.bytes);let s=await Sn.seal(new si({peer:e,relay:this.peerId,expiration:Number(t)}),this.peerId);return{addrs:n,expire:t,voucher:s.marshal()}}async handleConnect({stream:e,request:t,connection:n}){let s=e.pb(Z);if(Hu(n.remoteAddr)){this.log.error("relay reservation over circuit connection denied for peer: %p",n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}this.log("hop connect request from %p",n.remotePeer);let i;try{if(t.peer==null)throw this.log.error("no peer info in hop connect request"),new Error("no peer info in request");t.peer.addrs.forEach(ve),i=Qr(t.peer.id)}catch(l){this.log.error("invalid hop connect request via peer %p %s",n.remotePeer,l),await s.write({type:Z.Type.STATUS,status:q.MALFORMED_MESSAGE});return}if(!this.reservationStore.hasReservation(i)){this.log.error("hop connect denied for destination peer %p not having a reservation for %p with status %s",i,n.remotePeer,q.NO_RESERVATION),await s.write({type:Z.Type.STATUS,status:q.NO_RESERVATION});return}if(await this.connectionGater.denyOutboundRelayedConnection?.(n.remotePeer,i)===!0){this.log.error("hop connect for %p to %p denied by connection gater",n.remotePeer,i),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}let o=this.connectionManager.getConnections(i);if(o.length===0){this.log("hop connect denied for destination peer %p not having a connection for %p as there is no destination connection",i,n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.NO_RESERVATION});return}let a=this.reservationStore.get(i)?.limit,c=o[0],h=await this.stopHop({connection:c,request:{type:Fe.Type.CONNECT,peer:{id:n.remotePeer.toBytes(),addrs:[]},limit:a}});if(h==null){this.log.error("failed to open stream to destination peer %p",c?.remotePeer),await s.write({type:Z.Type.STATUS,status:q.CONNECTION_FAILED});return}await s.write({type:Z.Type.STATUS,status:q.OK,limit:a});let f=e.unwrap();this.log("connection from %p to %p established - merging streams",n.remotePeer,i),Uu(f,h,this.shutdownController.signal,a,{log:this.log})}async stopHop({connection:e,request:t}){this.log("starting circuit relay v2 stop request to %s",e.remotePeer);let n=await e.newStream([ur],{maxOutboundStreams:this.maxOutboundStopStreams,runOnTransientConnection:!0}),s=jt(n),i=s.pb(Fe);await i.write(t);let o;try{o=await i.read()}catch{this.log.error("error parsing stop message response from %p",e.remotePeer)}if(o==null){this.log.error("could not read response from %p",e.remotePeer),await n.close();return}if(o.status===q.OK)return this.log("stop request to %p was successful",e.remotePeer),s.unwrap();this.log("stop request failed with code %d",o.status),await n.close()}get reservations(){return this.reservationStore.reservations}};function Fu(r={}){return e=>new wa(e,r)}function va(r){let{stream:e,remoteAddr:t,logger:n}=r,s=n.forComponent("libp2p:stream:converter"),i=!1,o=!1,a=e.close.bind(e);e.close=async g=>{await a(g),l(!0)};let c=e.abort.bind(e);e.abort=g=>{c(g),l(!0)};let h=e.sink.bind(e);e.sink=async g=>{try{await h(g)}catch(u){u.type!=="aborted"&&s.error("%s error in sink",t,u)}finally{o=!0,l()}};let f={log:s,sink:e.sink,source:async function*(){try{for await(let g of e.source)g instanceof Uint8Array?yield g:yield*g}finally{i=!0,l()}}(),remoteAddr:t,timeline:{open:Date.now(),close:void 0},close:e.close,abort:e.abort};function l(g){g===!0&&(i=!0,o=!0),i&&o&&f.timeline.close==null&&(f.timeline.close=Date.now())}return f}var d0=k("dns4"),p0=k("dns6"),g0=k("dnsaddr"),dr=ce(k("dns"),g0,d0,p0),ai=ce(k("ip4"),k("ip6")),$r=ce(U(ai,k("tcp")),U(dr,k("tcp"))),ci=U(ai,k("udp")),m0=U(ci,k("utp")),y0=U(ci,k("quic")),b0=U(ci,k("quic-v1")),Ea=ce(U($r,k("ws")),U(dr,k("ws"))),ii=ce(U(Ea,k("p2p")),Ea),Aa=ce(U($r,k("wss")),U(dr,k("wss")),U($r,k("tls"),k("ws")),U(dr,k("tls"),k("ws"))),oi=ce(U(Aa,k("p2p")),Aa),Sa=ce(U($r,k("http")),U(ai,k("http")),U(dr,k("http"))),Ba=ce(U($r,k("https")),U(ai,k("https")),U(dr,k("https"))),Ku=U(ci,k("webrtc-direct"),k("certhash")),$u=ce(U(Ku,k("p2p")),Ku),qu=U(b0,k("webtransport"),k("certhash"),k("certhash")),Gu=ce(U(qu,k("p2p")),qu),ju=ce(U(ii,k("p2p-webrtc-star"),k("p2p")),U(oi,k("p2p-webrtc-star"),k("p2p")),U(ii,k("p2p-webrtc-star")),U(oi,k("p2p-webrtc-star"))),w2=ce(U(ii,k("p2p-websocket-star"),k("p2p")),U(oi,k("p2p-websocket-star"),k("p2p")),U(ii,k("p2p-websocket-star")),U(oi,k("p2p-websocket-star"))),Wu=ce(U(Sa,k("p2p-webrtc-direct"),k("p2p")),U(Ba,k("p2p-webrtc-direct"),k("p2p")),U(Sa,k("p2p-webrtc-direct")),U(Ba,k("p2p-webrtc-direct"))),pr=ce(Ea,Aa,Sa,Ba,ju,Wu,$r,m0,y0,dr,$u,Gu),x2=ce(U(pr,k("p2p-stardust"),k("p2p")),U(pr,k("p2p-stardust"))),Wt=ce(U(pr,k("p2p")),ju,Wu,$u,Gu,k("p2p")),zu=ce(U(Wt,k("p2p-circuit"),Wt),U(Wt,k("p2p-circuit")),U(k("p2p-circuit"),Wt),U(pr,k("p2p-circuit")),U(k("p2p-circuit"),pr),k("p2p-circuit")),Yu=()=>ce(U(zu,Yu),zu),kt=Yu(),v2=ce(U(kt,Wt,kt),U(Wt,kt),U(kt,Wt),kt,Wt);var E2=ce(U(kt,k("webrtc"),k("p2p")),U(kt,k("webrtc")),U(pr,k("webrtc"),k("p2p")),U(pr,k("webrtc")),k("webrtc"));function Zu(r){function e(t){let n;try{n=ve(t)}catch{return!1}let s=r(n.protoNames());return s===null?!1:s===!0||s===!1?s:s.length===0}return e}function U(...r){function e(t){if(t.length<r.length)return null;let n=t;return r.some(s=>(n=typeof s=="function"?s().partialMatch(t):s.partialMatch(t),Array.isArray(n)&&(t=n),n===null)),n}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:Zu(e),partialMatch:e}}function ce(...r){function e(n){let s=null;return r.some(i=>{let o=typeof i=="function"?i().partialMatch(n):i.partialMatch(n);return o!=null?(s=o,!0):!1}),s}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:Zu(e),partialMatch:e}}function k(r){let e=r;function t(s){let i;try{i=ve(s)}catch{return!1}let o=i.protoNames();return o.length===1&&o[0]===e}function n(s){return s.length===0?null:s[0]===e?s.slice(1):null}return{toString:function(){return e},matches:t,partialMatch:n}}var Yt=class extends Event{type;detail;constructor(e,t){super(e),this.type=e,this.detail=t}};var li=class{buffer;mask;top;btm;next;constructor(e){if(!(e>0)||e-1&e)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}},Gr=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new li(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 li(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 _a=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.code=t??"ABORT_ERR"}};function Xu(r={}){return x0(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 x0(r,e){e=e??{};let t=e.onEnd,n=new Gr,s,i,o,a=He(),c=async()=>{try{return n.isEmpty()?o?{done:!0}:await new Promise((w,y)=>{i=m=>{i=null,n.push(m);try{w(r(n))}catch(b){y(b)}return s}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=He()})}},h=w=>i!=null?i(w):(n.push(w),s),f=w=>(n=new Gr,i!=null?i({error:w}):(n.push({error:w}),s)),l=w=>{if(o)return s;if(e?.objectMode!==!0&&w?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return h({done:!1,value:w})},g=w=>o?s:(o=!0,w!=null?f(w):h({done:!0})),u=()=>(n=new Gr,g(),{done:!0}),d=w=>(g(w),{done:!0});if(s={[Symbol.asyncIterator](){return this},next:c,return:u,throw:d,push:l,end:g,get readableLength(){return n.size},onEmpty:async w=>{let y=w?.signal;if(y?.throwIfAborted(),n.isEmpty())return;let m,b;y!=null&&(m=new Promise((A,S)=>{b=()=>{S(new _a)},y.addEventListener("abort",b)}));try{await Promise.race([a.promise,m])}finally{b!=null&&y!=null&&y?.removeEventListener("abort",b)}}},t==null)return s;let p=s;return s={[Symbol.asyncIterator](){return this},next(){return p.next()},throw(w){return p.throw(w),t!=null&&(t(w),t=void 0),{done:!0}},return(){return p.return(),t!=null&&(t(),t=void 0),{done:!0}},push:l,end(w){return p.end(w),t!=null&&(t(w),t=void 0),s},get readableLength(){return p.readableLength},onEmpty:w=>p.onEmpty(w)},s}var Ia=class extends Error{type;code;constructor(e,t){super(e??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=t??"ABORT_ERR"}};async function ui(r,e,t,n){let s=new Ia(n?.errorMessage,n?.errorCode);return t?.aborted===!0?Promise.reject(s):new Promise((i,o)=>{function a(){t?.removeEventListener("abort",f),r.removeEventListener(e,c),n?.errorEvent!=null&&r.removeEventListener(n.errorEvent,h)}let c=l=>{try{if(n?.filter?.(l)===!1)return}catch(g){a(),o(g);return}a(),i(l)},h=l=>{a(),o(l.detail)},f=()=>{a(),o(s)};t?.addEventListener("abort",f),r.addEventListener(e,c),n?.errorEvent!=null&&r.addEventListener(n.errorEvent,h)})}var fi=class{deferred;signal;constructor(e){this.signal=e,this.deferred=He(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new Tt)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function v0(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var hi=class{id;fn;options;recipients;status;timeline;controller;constructor(e,t){this.id=v0(),this.status="queued",this.fn=e,this.options=t,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,Ke(1/0,this.controller.signal),this.onAbort=this.onAbort.bind(this)}abort(e){this.controller.abort(e)}onAbort(){this.recipients.reduce((t,n)=>t&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new Tt),this.cleanup())}async join(e={}){let t=new fi(e.signal);return this.recipients.push(t),e.signal?.addEventListener("abort",this.onAbort),t.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let e=await Kr(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(t=>{t.deferred.resolve(e)}),this.status="complete"}catch(e){this.recipients.forEach(t=>{t.deferred.reject(e)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(e=>{e.cleanup(),e.signal?.removeEventListener("abort",this.onAbort)})}};var di=class extends qe{concurrency;queue;pending;sort;constructor(e={}){super(),this.concurrency=e.concurrency??Number.POSITIVE_INFINITY,this.pending=0,e.metricName!=null&&e.metrics?.registerMetricGroup(e.metricName,{calculate:()=>({size:this.queue.length,running:this.pending,queued:this.queue.length-this.pending})}),this.sort=e.sort,this.queue=[]}tryToStartAnother(){if(this.size===0)return queueMicrotask(()=>{this.safeDispatchEvent("empty")}),this.running===0&&queueMicrotask(()=>{this.safeDispatchEvent("idle")}),!1;if(this.pending<this.concurrency){let e;for(let t of this.queue)if(t.status==="queued"){e=t;break}return e==null?!1:(this.safeDispatchEvent("active"),this.pending++,e.run().finally(()=>{for(let t=0;t<this.queue.length;t++)if(this.queue[t]===e){this.queue.splice(t,1);break}this.pending--,this.tryToStartAnother(),this.safeDispatchEvent("next")}),!0)}return!1}enqueue(e){this.queue.push(e),this.sort!=null&&this.queue.sort(this.sort)}async add(e,t){t?.signal?.throwIfAborted();let n=new hi(e,t);return this.enqueue(n),this.safeDispatchEvent("add"),this.tryToStartAnother(),n.join(t).then(s=>(this.safeDispatchEvent("completed",{detail:s}),this.safeDispatchEvent("success",{detail:{job:n,result:s}}),s)).catch(s=>{if(n.status==="queued"){for(let i=0;i<this.queue.length;i++)if(this.queue[i]===n){this.queue.splice(i,1);break}}throw this.safeDispatchEvent("error",{detail:s}),this.safeDispatchEvent("failure",{detail:{job:n,error:s}}),s})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(e=>{e.abort(new Tt)}),this.clear()}async onEmpty(e){this.size!==0&&await ui(this,"empty",e?.signal)}async onSizeLessThan(e,t){this.size<e||await ui(this,"next",t?.signal,{filter:()=>this.size<e})}async onIdle(e){this.pending===0&&this.size===0||await ui(this,"idle",e?.signal)}get size(){return this.queue.length}get queued(){return this.queue.length-this.pending}get running(){return this.pending}async*toGenerator(e){e?.signal?.throwIfAborted();let t=Xu({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),t.end(c)},s=c=>{c.detail!=null&&t.push(c.detail)},i=c=>{n(c.detail)},o=()=>{n()},a=()=>{n(new L("Queue aborted","ERR_QUEUE_ABORTED"))};this.addEventListener("completed",s),this.addEventListener("error",i),this.addEventListener("idle",o),e?.signal?.addEventListener("abort",a);try{yield*t}finally{this.removeEventListener("completed",s),this.removeEventListener("error",i),this.removeEventListener("idle",o),e?.signal?.removeEventListener("abort",a),n()}}};var jr=class extends di{has(e){return this.find(e)!=null}find(e){return this.queue.find(t=>e.equals(t.options.peerId))}};var pi=class extends qe{peerStore;registrar;connectionManager;randomWalk;started;running;topologyId;log;discoveryController;filter;constructor(e,t={}){super(),this.log=e.logger.forComponent("libp2p:circuit-relay:discover-relays"),this.started=!1,this.running=!1,this.peerStore=e.peerStore,this.registrar=e.registrar,this.connectionManager=e.connectionManager,this.randomWalk=e.randomWalk,this.filter=t.filter,this.discoveryController=new AbortController,Ke(1/0,this.discoveryController.signal)}isStarted(){return this.started}async start(){this.topologyId=await this.registrar.register(je,{filter:this.filter,onConnect:e=>{this.log("discovered relay %p",e),this.safeDispatchEvent("relay:discover",{detail:e})}}),this.started=!0}stop(){this.topologyId!=null&&this.registrar.unregister(this.topologyId),this.discoveryController?.abort(),this.started=!1}startDiscovery(){this.running||(this.log("start discovery"),this.running=!0,this.discoveryController=new AbortController,Ke(1/0,this.discoveryController.signal),Promise.resolve().then(async()=>{this.log("searching peer store for relays");let e=await this.peerStore.all({filters:[n=>n.protocols.includes(je)],orders:[()=>Math.random()<.5?1:-1]});for(let n of e)this.log.trace("found relay peer %p in peer store",n.id),this.safeDispatchEvent("relay:discover",{detail:n.id});this.log("found %d relay peers in peer store",e.length);let t=new jr({concurrency:5});this.log("start random walk");for await(let n of this.randomWalk.walk({signal:this.discoveryController.signal})){if(this.log.trace("found random peer %p",n.id),t.has(n.id)){this.log.trace("random peer %p was already in queue",n.id);continue}if(this.connectionManager.getConnections(n.id)?.length>0){this.log.trace("random peer %p was already connected",n.id);continue}if(!await this.connectionManager.isDialable(n.multiaddrs)){this.log.trace("random peer %p was not dialable",n.id,n.multiaddrs.map(s=>s.toString()));continue}this.log.trace("wait for space in queue for %p",n.id),await Kr(t.onSizeLessThan(10),this.discoveryController.signal),this.log("adding random peer %p to dial queue (length: %d)",n.id,t.size),t.add(async()=>{let s=Js([this.discoveryController.signal,AbortSignal.timeout(5e3)]);Ke(1/0,s);try{await this.connectionManager.openConnection(n.id,{signal:s})}finally{s.clear()}},{peerId:n.id,signal:this.discoveryController.signal}).catch(s=>{this.log.error("error opening connection to random peer %p",n.id,s)})}await t.onIdle()}).catch(e=>{this.discoveryController.signal.aborted||this.log.error("failed when finding relays on the network",e)}))}stopDiscovery(){this.log("stop discovery"),this.running=!1,this.discoveryController?.abort()}};var ka=class extends qe{connectionManager;relayStore;listeningAddrs;log;constructor(e){super(),this.log=e.logger.forComponent("libp2p:circuit-relay:transport:listener"),this.connectionManager=e.connectionManager,this.relayStore=e.relayStore,this.listeningAddrs=new It,this.relayStore.addEventListener("relay:removed",this._onRemoveRelayPeer)}_onRemoveRelayPeer=e=>{this.#e(e.detail)};async listen(e){this.log("listen on %a",e);let t=e.decapsulate("/p2p-circuit"),n=await this.connectionManager.openConnection(t);if(!this.relayStore.hasReservation(n.remotePeer)){this.log("making reservation on peer %p",n.remotePeer),await this.relayStore.addRelay(n.remotePeer,"configured");return}let s=this.relayStore.getReservation(n.remotePeer);if(s==null)throw new L("Did not have reservation after making reservation","ERR_NO_RESERVATION");if(this.listeningAddrs.has(n.remotePeer)){this.log("already listening on relay %p",n.remotePeer);return}this.listeningAddrs.set(n.remotePeer,s.addrs.map(i=>ve(i).encapsulate("/p2p-circuit"))),this.safeDispatchEvent("listening",{})}getAddrs(){return[...this.listeningAddrs.values()].flat()}async close(){}#e(e){let t=this.listeningAddrs.has(e);this.log("relay peer removed %p - had reservation",e,t),this.listeningAddrs.delete(e),t&&(this.log.trace("removing relay event listener for peer %p",e),this.relayStore.removeEventListener("relay:removed",this._onRemoveRelayPeer),this.safeDispatchEvent("close",{}))}};function Ju(r){return new ka(r)}var B0=60*1e3*10,_0=60*1e3*5,I0=30*1e3,gi=class extends qe{peerId;connectionManager;transportManager;peerStore;events;reserveQueue;reservations;maxDiscoveredRelays;maxReservationQueueLength;reservationCompletionTimeout;started;log;relayFilter;constructor(e,t){super(),this.log=e.logger.forComponent("libp2p:circuit-relay:transport:reservation-store"),this.peerId=e.peerId,this.connectionManager=e.connectionManager,this.transportManager=e.transportManager,this.peerStore=e.peerStore,this.events=e.events,this.reservations=new It,this.maxDiscoveredRelays=t?.discoverRelays??0,this.maxReservationQueueLength=t?.maxReservationQueueLength??100,this.reservationCompletionTimeout=t?.reservationCompletionTimeout??1e3,this.started=!1,this.relayFilter=da(100),this.reserveQueue=new jr({concurrency:t?.reservationConcurrency??1,metricName:"libp2p_relay_reservation_queue",metrics:e.metrics}),this.events.addEventListener("peer:disconnect",n=>{this.#t(n.detail)})}isStarted(){return this.started}start(){this.started=!0}afterStart(){this.reservations.size<this.maxDiscoveredRelays&&(this.log("not enough relays %d/%d",this.reservations.size,this.maxDiscoveredRelays),this.safeDispatchEvent("relay:not-enough-relays",{}))}stop(){this.reserveQueue.clear(),this.reservations.forEach(({timeout:e})=>{clearTimeout(e)}),this.reservations.clear(),this.started=!1}async addRelay(e,t){if(this.peerId.equals(e)){this.log("not trying to use self as relay");return}if(this.reserveQueue.size>this.maxReservationQueueLength){this.log("not adding potential relay peer %p as the queue is full",e);return}if(this.reserveQueue.has(e)){this.log("potential relay peer %p is already in the reservation queue",e);return}if(this.relayFilter.has(e.toBytes())){this.log("potential relay peer %p has failed previously, not trying again",e);return}this.log("try to reserve relay slot with %p",e),await this.reserveQueue.add(async()=>{let n=Date.now();try{let s=this.reservations.get(e);if(s!=null){if(la(s.reservation.expire)>B0){this.log("already have reservation on relay peer %p and it expires in more than 10 minutes",e);return}clearTimeout(s.timeout),this.reservations.delete(e)}if(t==="discovered"&&[...this.reservations.values()].reduce((l,g)=>(g.type==="discovered"&&l++,l),0)>=this.maxDiscoveredRelays){this.log("already have enough discovered relays");return}let i=AbortSignal.timeout(this.reservationCompletionTimeout);Ke(1/0,i);let o=await this.connectionManager.openConnection(e,{signal:i});if(o.remoteAddr.protoNames().includes("p2p-circuit")){this.log("not creating reservation over relayed connection");return}let a=await this.#e(o,{signal:i});this.log("created reservation on relay peer %p",e);let c=la(a.expire),h=Math.min(Math.max(c-_0,I0),Math.pow(2,31)-1),f=setTimeout(()=>{this.addRelay(e,t).catch(l=>{this.log.error("could not refresh reservation to relay %p",e,l)})},h);this.reservations.set(e,{timeout:f,reservation:a,type:t}),await this.peerStore.merge(e,{tags:{[Iu]:{value:1,ttl:c}}}),await this.transportManager.listen([ve(`/p2p/${e.toString()}/p2p-circuit`)]),this.safeDispatchEvent("relay:created-reservation",{detail:e})}catch(s){this.log.error("could not reserve slot on %p after %dms",e,Date.now()-n,s);let i=this.reservations.get(e);i!=null&&clearTimeout(i.timeout),this.reservations.delete(e),this.relayFilter.add(e.toBytes())}},{peerId:e})}hasReservation(e){return this.reservations.has(e)}getReservation(e){return this.reservations.get(e)?.reservation}reservationCount(){return this.reservations.size}async#e(e,t){t.signal?.throwIfAborted(),this.log("requesting reservation from %p",e.remotePeer);let n=await e.newStream(je,t),i=jt(n).pb(Z);await i.write({type:Z.Type.RESERVE},t);let o;try{o=await i.read(t)}catch(c){throw n.abort(c),c}finally{n.status!=="closed"&&await n.close(t)}if(o.status===q.OK&&o.reservation!=null){let c=!1,h=e.remoteAddr.bytes;for(let f of o.reservation.addrs)if(oe(h,f)){c=!0;break}return c||o.reservation.addrs.push(h),o.reservation}let a=`reservation failed with status ${o.status??"undefined"}`;throw this.log.error(a),new Error(a)}#t(e){let t=this.reservations.get(e);t!=null&&(this.log("connection to relay %p closed, removing reservation from local store",e),clearTimeout(t.timeout),this.reservations.delete(e),this.safeDispatchEvent("relay:removed",{detail:e}),this.reservations.size<this.maxDiscoveredRelays&&(this.log("not enough relays %d/%d",this.reservations.size,this.maxDiscoveredRelays),this.safeDispatchEvent("relay:not-enough-relays",{})))}};var k0=r=>{if(r.peer==null)return!1;try{r.peer.addrs.forEach(ve)}catch{return!1}return!0},Ta={maxInboundStopStreams:Bn,maxOutboundStopStreams:Bn,stopTimeout:3e4},mi=class{discovery;registrar;peerStore;connectionManager;transportManager;peerId;upgrader;addressManager;connectionGater;reservationStore;logger;maxInboundStopStreams;maxOutboundStopStreams;stopTimeout;started;log;constructor(e,t){this.log=e.logger.forComponent("libp2p:circuit-relay:transport"),this.registrar=e.registrar,this.peerStore=e.peerStore,this.connectionManager=e.connectionManager,this.transportManager=e.transportManager,this.logger=e.logger,this.peerId=e.peerId,this.upgrader=e.upgrader,this.addressManager=e.addressManager,this.connectionGater=e.connectionGater,this.maxInboundStopStreams=t.maxInboundStopStreams??Ta.maxInboundStopStreams,this.maxOutboundStopStreams=t.maxOutboundStopStreams??Ta.maxOutboundStopStreams,this.stopTimeout=t.stopTimeout??Ta.stopTimeout;let n=t.discoverRelays??0;n>0&&(this.discovery=new pi(e,{filter:t.discoveryFilter??ba(Nu,Cu)}),this.discovery.addEventListener("relay:discover",s=>{this.reservationStore.addRelay(s.detail,"discovered").catch(i=>{this.log.error("could not add discovered relay %p",s.detail,i)})})),this.reservationStore=new gi(e,t),this.reservationStore.addEventListener("relay:not-enough-relays",()=>{this.discovery?.startDiscovery()}),this.reservationStore.addEventListener("relay:created-reservation",()=>{this.reservationStore.reservationCount()>=n&&this.discovery?.stopDiscovery()}),this.started=!1}[Symbol.toStringTag]="@libp2p/circuit-relay-v2-transport";[qa]=["@libp2p/transport","@libp2p/circuit-relay-v2-transport"];get[za](){return this.discovery!=null?["@libp2p/identify"]:[]}[Va]=!0;isStarted(){return this.started}async start(){await this.registrar.handle(ur,e=>{this.onStop(e).catch(t=>{this.log.error("error while handling STOP protocol",t),e.stream.abort(t)})},{maxInboundStreams:this.maxInboundStopStreams,maxOutboundStreams:this.maxOutboundStopStreams,runOnTransientConnection:!0}),await Fa(this.discovery,this.reservationStore),this.started=!0}async stop(){await Ka(this.discovery,this.reservationStore),await this.registrar.unhandle(ur),this.started=!1}async dial(e,t){if(e.protoCodes().filter(d=>d===290).length!==1){let d="Invalid circuit relay address";throw this.log.error(d,e),new L(d,aa)}let n=e.toString().split("/p2p-circuit"),s=ve(n[0]),i=ve(n[n.length-1]),o=s.getPeerId(),a=i.getPeerId();if(o==null||a==null){let d=`Circuit relay dial to ${e.toString()} failed as address did not have peer ids`;throw this.log.error(d),new L(d,aa)}let c=Ct(o),h=Ct(a),f=!1,g=this.connectionManager.getConnections(c)[0];g==null?(await this.peerStore.merge(c,{multiaddrs:[s]}),t.onProgress?.(new Yt("circuit-relay:open-connection")),g=await this.connectionManager.openConnection(c,t),f=!0):t.onProgress?.(new Yt("circuit-relay:reuse-connection"));let u;try{return t.onProgress?.(new Yt("circuit-relay:open-hop-stream")),u=await g.newStream(je),await this.connectV2({stream:u,connection:g,destinationPeer:h,destinationAddr:i,relayAddr:s,ma:e,disconnectOnFailure:f,onProgress:t.onProgress})}catch(d){throw this.log.error("circuit relay dial to destination %p via relay %p failed",h,c,d),u?.abort(d),f&&await g.close(),d}}async connectV2({stream:e,connection:t,destinationPeer:n,destinationAddr:s,relayAddr:i,ma:o,disconnectOnFailure:a,onProgress:c}){try{let h=jt(e),f=h.pb(Z);c?.(new Yt("circuit-relay:write-connect-message")),await f.write({type:Z.Type.CONNECT,peer:{id:n.toBytes(),addrs:[ve(s).bytes]}}),c?.(new Yt("circuit-relay:read-connect-response"));let l=await f.read();if(l.status!==q.OK)throw new L(`failed to connect via relay with status ${l?.status?.toString()??"undefined"}`,Ru);let g=va({stream:h.unwrap(),remoteAddr:o,localAddr:i.encapsulate(`/p2p-circuit/p2p/${this.peerId.toString()}`),logger:this.logger});return this.log("new outbound relayed connection %a",g.remoteAddr),await this.upgrader.upgradeOutbound(g,{transient:l.limit!=null,onProgress:c})}catch(h){throw this.log.error(`Circuit relay dial to destination ${n.toString()} via relay ${t.remotePeer.toString()} failed`,h),a&&await t.close(),h}}createListener(e){return Ju({connectionManager:this.connectionManager,relayStore:this.reservationStore,logger:this.logger})}listenFilter(e){return e=Array.isArray(e)?e:[e],e.filter(t=>kt.matches(t))}dialFilter(e){return this.listenFilter(e)}async onStop({connection:e,stream:t}){if(!this.reservationStore.hasReservation(e.remotePeer))try{this.log("dialed via relay we did not have a reservation on, start listening on that relay address"),await this.transportManager.listen([e.remoteAddr.encapsulate("/p2p-circuit")])}catch(f){this.log.error("failed to listen on a relay peer we were dialed via but did not have a reservation on",f)}let n=AbortSignal.timeout(this.stopTimeout),s=jt(t).pb(Fe),i=await s.read({signal:n});if(this.log("new circuit relay v2 stop stream from %p with type %s",e.remotePeer,i.type),i?.type===void 0){this.log.error("type was missing from circuit v2 stop protocol request from %s",e.remotePeer),await s.write({type:Fe.Type.STATUS,status:q.MALFORMED_MESSAGE},{signal:n}),await t.close();return}if(i.type!==Fe.Type.CONNECT){this.log.error("invalid stop connect request via peer %p",e.remotePeer),await s.write({type:Fe.Type.STATUS,status:q.UNEXPECTED_MESSAGE},{signal:n}),await t.close();return}if(!k0(i)){this.log.error("invalid stop connect request via peer %p",e.remotePeer),await s.write({type:Fe.Type.STATUS,status:q.MALFORMED_MESSAGE},{signal:n}),await t.close();return}let o=Qr(i.peer.id);if(await this.connectionGater.denyInboundRelayedConnection?.(e.remotePeer,o)===!0){this.log.error("connection gater denied inbound relayed connection from %p",e.remotePeer),await s.write({type:Fe.Type.STATUS,status:q.PERMISSION_DENIED},{signal:n}),await t.close();return}this.log.trace("sending success response to %p",e.remotePeer),await s.write({type:Fe.Type.STATUS,status:q.OK},{signal:n});let a=e.remoteAddr.encapsulate(`/p2p-circuit/p2p/${o.toString()}`),c=this.addressManager.getAddresses()[0],h=va({stream:s.unwrap().unwrap(),remoteAddr:a,localAddr:c,logger:this.logger});this.log("new inbound relayed connection %a",h.remoteAddr),await this.upgrader.upgradeInbound(h,{transient:i.limit!=null}),this.log("%s connection %a upgraded","inbound",h.remoteAddr)}};function Qu(r={}){return e=>new mi(e,r)}return df(T0);})();
|
4
|
+
`));let e=this.idBlock.tagClass===3?`[${this.idBlock.tagNumber}]`:this.constructor.NAME;return t.length?`${e} :
|
5
|
+
${t.join(`
|
6
|
+
`)}`:`${e} :`}};Wc=Me;N.Constructed=Wc;Me.NAME="CONSTRUCTED";var Wn=class extends At{fromBER(t,e,n){return e}toBER(t){return Jt}};Wn.override="EndOfContentValueBlock";var jc,jn=class extends bt{constructor(t={}){super(t,Wn),this.idBlock.tagClass=1,this.idBlock.tagNumber=0}};jc=jn;N.EndOfContent=jc;jn.NAME=Yr;var Zc,vr=class extends bt{constructor(t={}){super(t,At),this.idBlock.tagClass=1,this.idBlock.tagNumber=5}fromBER(t,e,n){return this.lenBlock.length>0&&this.warnings.push("Non-zero length of value block for Null type"),this.idBlock.error.length||(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length||(this.blockLength+=this.lenBlock.blockLength),this.blockLength+=n,e+n>t.byteLength?(this.error="End of input reached before message was fully decoded (inconsistent offset and length values)",-1):e+n}toBER(t,e){let n=new ArrayBuffer(2);if(!t){let s=new Uint8Array(n);s[0]=5,s[1]=0}return e&&e.write(n),n}onAsciiEncoding(){return`${this.constructor.NAME}`}};Zc=vr;N.Null=Zc;vr.NAME="NULL";var Zn=class extends ve(At){constructor({value:t,...e}={}){super(e),e.valueHex?this.valueHexView=$.BufferSourceConverter.toUint8Array(e.valueHex):this.valueHexView=new Uint8Array(1),t&&(this.value=t)}get value(){for(let t of this.valueHexView)if(t>0)return!0;return!1}set value(t){this.valueHexView[0]=t?255:0}fromBER(t,e,n){let s=$.BufferSourceConverter.toUint8Array(t);return xe(this,s,e,n)?(this.valueHexView=s.subarray(e,e+n),n>1&&this.warnings.push("Boolean value encoded in more then 1 octet"),this.isHexOnly=!0,Ii.call(this),this.blockLength=n,e+n):-1}toBER(){return this.valueHexView.slice()}toJSON(){return{...super.toJSON(),value:this.value}}};Zn.NAME="BooleanValueBlock";var Xc,Xn=class extends bt{constructor(t={}){super(t,Zn),this.idBlock.tagClass=1,this.idBlock.tagNumber=1}getValue(){return this.valueBlock.value}setValue(t){this.valueBlock.value=t}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.getValue}`}};Xc=Xn;N.Boolean=Xc;Xn.NAME="BOOLEAN";var Yn=class extends ve(ne){constructor({isConstructed:t=!1,...e}={}){super(e),this.isConstructed=t}fromBER(t,e,n){let s=0;if(this.isConstructed){if(this.isHexOnly=!1,s=ne.prototype.fromBER.call(this,t,e,n),s===-1)return s;for(let o=0;o<this.value.length;o++){let i=this.value[o].constructor.NAME;if(i===Yr){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, OCTET STRING may consists of OCTET STRINGs only",-1}if(i!==Kc)return this.error="OCTET STRING may consists of OCTET STRINGs only",-1}}else this.isHexOnly=!0,s=super.fromBER(t,e,n),this.blockLength=n;return s}toBER(t,e){return this.isConstructed?ne.prototype.toBER.call(this,t,e):t?new ArrayBuffer(this.valueHexView.byteLength):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),isConstructed:this.isConstructed}}};Yn.NAME="OctetStringValueBlock";var Yc,Jn=class r extends bt{constructor({idBlock:t={},lenBlock:e={},...n}={}){var s,o;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((o=n.value)===null||o===void 0)&&o.length)),super({idBlock:{isConstructed:n.isConstructed,...t},lenBlock:{...e,isIndefiniteForm:!!n.isIndefiniteForm},...n},Yn),this.idBlock.tagClass=1,this.idBlock.tagNumber=4}fromBER(t,e,n){if(this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,n===0)return this.idBlock.error.length===0&&(this.blockLength+=this.idBlock.blockLength),this.lenBlock.error.length===0&&(this.blockLength+=this.lenBlock.blockLength),e;if(!this.valueBlock.isConstructed){let o=(t instanceof ArrayBuffer?new Uint8Array(t):t).subarray(e,e+n);try{if(o.byteLength){let i=_s(o,0,o.byteLength);i.offset!==-1&&i.offset===n&&(this.valueBlock.value=[i.result])}}catch{}}return super.fromBER(t,e,n)}onAsciiEncoding(){return this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length?Me.prototype.onAsciiEncoding.call(this):`${this.constructor.NAME} : ${$.Convert.ToHex(this.valueBlock.valueHexView)}`}getValue(){if(!this.idBlock.isConstructed)return this.valueBlock.valueHexView.slice().buffer;let t=[];for(let e of this.valueBlock.value)e instanceof r&&t.push(e.valueBlock.valueHexView);return $.BufferSourceConverter.concat(t)}};Yc=Jn;N.OctetString=Yc;Jn.NAME=Kc;var Qn=class extends ve(ne){constructor({unusedBits:t=0,isConstructed:e=!1,...n}={}){super(n),this.unusedBits=t,this.isConstructed=e,this.blockLength=this.valueHexView.byteLength}fromBER(t,e,n){if(!n)return e;let s=-1;if(this.isConstructed){if(s=ne.prototype.fromBER.call(this,t,e,n),s===-1)return s;for(let a of this.value){let c=a.constructor.NAME;if(c===Yr){if(this.isIndefiniteForm)break;return this.error="EndOfContent is unexpected, BIT STRING may consists of BIT STRINGs only",-1}if(c!==zc)return this.error="BIT STRING may consists of BIT STRINGs only",-1;let h=a.valueBlock;if(this.unusedBits>0&&h.unusedBits>0)return this.error='Using of "unused bits" inside constructive BIT STRING allowed for least one only',-1;this.unusedBits=h.unusedBits}return s}let o=$.BufferSourceConverter.toUint8Array(t);if(!xe(this,o,e,n))return-1;let i=o.subarray(e,e+n);if(this.unusedBits=i[0],this.unusedBits>7)return this.error="Unused bits for BitString must be in range 0-7",-1;if(!this.unusedBits){let a=i.subarray(1);try{if(a.byteLength){let c=_s(a,0,a.byteLength);c.offset!==-1&&c.offset===n-1&&(this.value=[c.result])}}catch{}}return this.valueHexView=i.subarray(1),this.blockLength=i.length,e+n}toBER(t,e){if(this.isConstructed)return ne.prototype.toBER.call(this,t,e);if(t)return new ArrayBuffer(this.valueHexView.byteLength+1);if(!this.valueHexView.byteLength)return Jt;let n=new Uint8Array(this.valueHexView.length+1);return n[0]=this.unusedBits,n.set(this.valueHexView,1),n.buffer}toJSON(){return{...super.toJSON(),unusedBits:this.unusedBits,isConstructed:this.isConstructed}}};Qn.NAME="BitStringValueBlock";var Jc,Er=class extends bt{constructor({idBlock:t={},lenBlock:e={},...n}={}){var s,o;(s=n.isConstructed)!==null&&s!==void 0||(n.isConstructed=!!(!((o=n.value)===null||o===void 0)&&o.length)),super({idBlock:{isConstructed:n.isConstructed,...t},lenBlock:{...e,isIndefiniteForm:!!n.isIndefiniteForm},...n},Qn),this.idBlock.tagClass=1,this.idBlock.tagNumber=3}fromBER(t,e,n){return this.valueBlock.isConstructed=this.idBlock.isConstructed,this.valueBlock.isIndefiniteForm=this.lenBlock.isIndefiniteForm,super.fromBER(t,e,n)}onAsciiEncoding(){if(this.valueBlock.isConstructed||this.valueBlock.value&&this.valueBlock.value.length)return Me.prototype.onAsciiEncoding.call(this);{let t=[],e=this.valueBlock.valueHexView;for(let s of e)t.push(s.toString(2).padStart(8,"0"));let n=t.join("");return`${this.constructor.NAME} : ${n.substring(0,n.length-this.valueBlock.unusedBits)}`}}};Jc=Er;N.BitString=Jc;Er.NAME=zc;var Qc;function zd(r,t){let e=new Uint8Array([0]),n=new Uint8Array(r),s=new Uint8Array(t),o=n.slice(0),i=o.length-1,a=s.slice(0),c=a.length-1,h=0,f=c<i?i:c,u=0;for(let p=f;p>=0;p--,u++){switch(!0){case u<a.length:h=o[i-u]+a[c-u]+e[0];break;default:h=o[i-u]+e[0]}switch(e[0]=h/10,!0){case u>=o.length:o=Hn(new Uint8Array([h%10]),o);break;default:o[i-u]=h%10}}return e[0]>0&&(o=Hn(e,o)),o}function qc(r){if(r>=Zr.length)for(let t=Zr.length;t<=r;t++){let e=new Uint8Array([0]),n=Zr[t-1].slice(0);for(let s=n.length-1;s>=0;s--){let o=new Uint8Array([(n[s]<<1)+e[0]]);e[0]=o[0]/10,n[s]=o[0]%10}e[0]>0&&(n=Hn(e,n)),Zr.push(n)}return Zr[r]}function $d(r,t){let e=0,n=new Uint8Array(r),s=new Uint8Array(t),o=n.slice(0),i=o.length-1,a=s.slice(0),c=a.length-1,h,f=0;for(let u=c;u>=0;u--,f++)switch(h=o[i-f]-a[c-f]-e,!0){case h<0:e=1,o[i-f]=h+10;break;default:e=0,o[i-f]=h}if(e>0)for(let u=i-c+1;u>=0;u--,f++)if(h=o[i-f]-e,h<0)e=1,o[i-f]=h+10;else{e=0,o[i-f]=h;break}return o.slice()}var Jr=class extends ve(At){constructor({value:t,...e}={}){super(e),this._valueDec=0,e.valueHex&&this.setValueHex(),t!==void 0&&(this.valueDec=t)}setValueHex(){this.valueHexView.length>=4?(this.warnings.push("Too big Integer for decoding, hex only"),this.isHexOnly=!0,this._valueDec=0):(this.isHexOnly=!1,this.valueHexView.length>0&&(this._valueDec=Ii.call(this)))}set valueDec(t){this._valueDec=t,this.isHexOnly=!1,this.valueHexView=new Uint8Array(Vc(t))}get valueDec(){return this._valueDec}fromDER(t,e,n,s=0){let o=this.fromBER(t,e,n);if(o===-1)return o;let i=this.valueHexView;return i[0]===0&&i[1]&128?this.valueHexView=i.subarray(1):s!==0&&i.length<s&&(s-i.length>1&&(s=i.length+1),this.valueHexView=i.subarray(s-i.length)),o}toDER(t=!1){let e=this.valueHexView;switch(!0){case(e[0]&128)!==0:{let n=new Uint8Array(this.valueHexView.length+1);n[0]=0,n.set(e,1),this.valueHexView=n}break;case(e[0]===0&&(e[1]&128)===0):this.valueHexView=this.valueHexView.subarray(1);break}return this.toBER(t)}fromBER(t,e,n){let s=super.fromBER(t,e,n);return s===-1||this.setValueHex(),s}toBER(t){return t?new ArrayBuffer(this.valueHexView.length):this.valueHexView.slice().buffer}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}toString(){let t=this.valueHexView.length*8-1,e=new Uint8Array(this.valueHexView.length*8/3),n=0,s,o=this.valueHexView,i="",a=!1;for(let c=o.byteLength-1;c>=0;c--){s=o[c];for(let h=0;h<8;h++){if((s&1)===1)switch(n){case t:e=$d(qc(n),e),i="-";break;default:e=zd(e,qc(n))}n++,s>>=1}}for(let c=0;c<e.length;c++)e[c]&&(a=!0),a&&(i+=Fc.charAt(e[c]));return a===!1&&(i+=Fc.charAt(0)),i}};Qc=Jr;Jr.NAME="IntegerValueBlock";Object.defineProperty(Qc.prototype,"valueHex",{set:function(r){this.valueHexView=new Uint8Array(r),this.setValueHex()},get:function(){return this.valueHexView.slice().buffer}});var tl,wt=class r extends bt{constructor(t={}){super(t,Jr),this.idBlock.tagClass=1,this.idBlock.tagNumber=2}toBigInt(){return Fn(),BigInt(this.valueBlock.toString())}static fromBigInt(t){Fn();let e=BigInt(t),n=new Xr,s=e.toString(16).replace(/^-/,""),o=new Uint8Array($.Convert.FromHex(s));if(e<0){let a=new Uint8Array(o.length+(o[0]&128?1:0));a[0]|=128;let h=BigInt(`0x${$.Convert.ToHex(a)}`)+e,f=$.BufferSourceConverter.toUint8Array($.Convert.FromHex(h.toString(16)));f[0]|=128,n.write(f)}else o[0]&128&&n.write(new Uint8Array([0])),n.write(o);return new r({valueHex:n.final()})}convertToDER(){let t=new r({valueHex:this.valueBlock.valueHexView});return t.valueBlock.toDER(),t}convertFromDER(){return new r({valueHex:this.valueBlock.valueHexView[0]===0?this.valueBlock.valueHexView.subarray(1):this.valueBlock.valueHexView})}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()}`}};tl=wt;N.Integer=tl;wt.NAME="INTEGER";var el,ts=class extends wt{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=10}};el=ts;N.Enumerated=el;ts.NAME="ENUMERATED";var Qr=class extends ve(At){constructor({valueDec:t=-1,isFirstSid:e=!1,...n}={}){super(n),this.valueDec=t,this.isFirstSid=e}fromBER(t,e,n){if(!n)return e;let s=$.BufferSourceConverter.toUint8Array(t);if(!xe(this,s,e,n))return-1;let o=s.subarray(e,e+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=o[a]&127,this.blockLength++,!!(o[a]&128));a++);let i=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)i[a]=this.valueHexView[a];return this.valueHexView=i,o[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=Ye(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),e+this.blockLength)}set valueBigInt(t){Fn();let e=BigInt(t).toString(2);for(;e.length%7;)e="0"+e;let n=new Uint8Array(e.length/7);for(let s=0;s<n.length;s++)n[s]=parseInt(e.slice(s*7,s*7+7),2)+(s+1<n.length?128:0);this.fromBER(n.buffer,0,n.length)}toBER(t){if(this.isHexOnly){if(t)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,o=new Uint8Array(this.blockLength);for(let i=0;i<this.blockLength-1;i++)o[i]=s[i]|128;return o[this.blockLength-1]=s[this.blockLength-1],o.buffer}let e=Oe(this.valueDec,7);if(e.byteLength===0)return this.error="Error during encoding SID value",Jt;let n=new Uint8Array(e.byteLength);if(!t){let s=new Uint8Array(e),o=e.byteLength-1;for(let i=0;i<o;i++)n[i]=s[i]|128;n[o]=s[o]}return n}toString(){let t="";if(this.isHexOnly)t=$.Convert.ToHex(this.valueHexView);else if(this.isFirstSid){let e=this.valueDec;this.valueDec<=39?t="0.":this.valueDec<=79?(t="1.",e-=40):(t="2.",e-=80),t+=e.toString()}else t=this.valueDec.toString();return t}toJSON(){return{...super.toJSON(),valueDec:this.valueDec,isFirstSid:this.isFirstSid}}};Qr.NAME="sidBlock";var es=class extends At{constructor({value:t=Ar,...e}={}){super(e),this.value=[],t&&this.fromString(t)}fromBER(t,e,n){let s=e;for(;n>0;){let o=new Qr;if(s=o.fromBER(t,s,n),s===-1)return this.blockLength=0,this.error=o.error,s;this.value.length===0&&(o.isFirstSid=!0),this.blockLength+=o.blockLength,n-=o.blockLength,this.value.push(o)}return s}toBER(t){let e=[];for(let n=0;n<this.value.length;n++){let s=this.value[n].toBER(t);if(s.byteLength===0)return this.error=this.value[n].error,Jt;e.push(s)}return Ti(e)}fromString(t){this.value=[];let e=0,n=0,s="",o=!1;do if(n=t.indexOf(".",e),n===-1?s=t.substring(e):s=t.substring(e,n),e=n+1,o){let i=this.value[0],a=0;switch(i.valueDec){case 0:break;case 1:a=40;break;case 2:a=80;break;default:this.value=[];return}let c=parseInt(s,10);if(isNaN(c))return;i.valueDec=c+a,o=!1}else{let i=new Qr;if(s>Number.MAX_SAFE_INTEGER){Fn();let a=BigInt(s);i.valueBigInt=a}else if(i.valueDec=parseInt(s,10),isNaN(i.valueDec))return;this.value.length||(i.isFirstSid=!0,o=!0),this.value.push(i)}while(n!==-1)}toString(){let t="",e=!1;for(let n=0;n<this.value.length;n++){e=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(t=`${t}.`),e?(s=`{${s}}`,this.value[n].isFirstSid?t=`2.{${s} - 80}`:t+=s):t+=s}return t}toJSON(){let t={...super.toJSON(),value:this.toString(),sidArray:[]};for(let e=0;e<this.value.length;e++)t.sidArray.push(this.value[e].toJSON());return t}};es.NAME="ObjectIdentifierValueBlock";var rl,Sr=class extends bt{constructor(t={}){super(t,es),this.idBlock.tagClass=1,this.idBlock.tagNumber=6}getValue(){return this.valueBlock.toString()}setValue(t){this.valueBlock.fromString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};rl=Sr;N.ObjectIdentifier=rl;Sr.NAME="OBJECT IDENTIFIER";var tn=class extends ve(ye){constructor({valueDec:t=0,...e}={}){super(e),this.valueDec=t}fromBER(t,e,n){if(n===0)return e;let s=$.BufferSourceConverter.toUint8Array(t);if(!xe(this,s,e,n))return-1;let o=s.subarray(e,e+n);this.valueHexView=new Uint8Array(n);for(let a=0;a<n&&(this.valueHexView[a]=o[a]&127,this.blockLength++,!!(o[a]&128));a++);let i=new Uint8Array(this.blockLength);for(let a=0;a<this.blockLength;a++)i[a]=this.valueHexView[a];return this.valueHexView=i,o[this.blockLength-1]&128?(this.error="End of input reached before message was fully decoded",-1):(this.valueHexView[0]===0&&this.warnings.push("Needlessly long format of SID encoding"),this.blockLength<=8?this.valueDec=Ye(this.valueHexView,7):(this.isHexOnly=!0,this.warnings.push("Too big SID for decoding, hex only")),e+this.blockLength)}toBER(t){if(this.isHexOnly){if(t)return new ArrayBuffer(this.valueHexView.byteLength);let s=this.valueHexView,o=new Uint8Array(this.blockLength);for(let i=0;i<this.blockLength-1;i++)o[i]=s[i]|128;return o[this.blockLength-1]=s[this.blockLength-1],o.buffer}let e=Oe(this.valueDec,7);if(e.byteLength===0)return this.error="Error during encoding SID value",Jt;let n=new Uint8Array(e.byteLength);if(!t){let s=new Uint8Array(e),o=e.byteLength-1;for(let i=0;i<o;i++)n[i]=s[i]|128;n[o]=s[o]}return n.buffer}toString(){let t="";return this.isHexOnly?t=$.Convert.ToHex(this.valueHexView):t=this.valueDec.toString(),t}toJSON(){return{...super.toJSON(),valueDec:this.valueDec}}};tn.NAME="relativeSidBlock";var rs=class extends At{constructor({value:t=Ar,...e}={}){super(e),this.value=[],t&&this.fromString(t)}fromBER(t,e,n){let s=e;for(;n>0;){let o=new tn;if(s=o.fromBER(t,s,n),s===-1)return this.blockLength=0,this.error=o.error,s;this.blockLength+=o.blockLength,n-=o.blockLength,this.value.push(o)}return s}toBER(t,e){let n=[];for(let s=0;s<this.value.length;s++){let o=this.value[s].toBER(t);if(o.byteLength===0)return this.error=this.value[s].error,Jt;n.push(o)}return Ti(n)}fromString(t){this.value=[];let e=0,n=0,s="";do{n=t.indexOf(".",e),n===-1?s=t.substring(e):s=t.substring(e,n),e=n+1;let o=new tn;if(o.valueDec=parseInt(s,10),isNaN(o.valueDec))return!0;this.value.push(o)}while(n!==-1);return!0}toString(){let t="",e=!1;for(let n=0;n<this.value.length;n++){e=this.value[n].isHexOnly;let s=this.value[n].toString();n!==0&&(t=`${t}.`),e&&(s=`{${s}}`),t+=s}return t}toJSON(){let t={...super.toJSON(),value:this.toString(),sidArray:[]};for(let e=0;e<this.value.length;e++)t.sidArray.push(this.value[e].toJSON());return t}};rs.NAME="RelativeObjectIdentifierValueBlock";var nl,ns=class extends bt{constructor(t={}){super(t,rs),this.idBlock.tagClass=1,this.idBlock.tagNumber=13}getValue(){return this.valueBlock.toString()}setValue(t){this.valueBlock.fromString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.valueBlock.toString()||"empty"}`}toJSON(){return{...super.toJSON(),value:this.getValue()}}};nl=ns;N.RelativeObjectIdentifier=nl;ns.NAME="RelativeObjectIdentifier";var sl,be=class extends Me{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=16}};sl=be;N.Sequence=sl;be.NAME="SEQUENCE";var ol,ss=class extends Me{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=17}};ol=ss;N.Set=ol;ss.NAME="SET";var os=class extends ve(At){constructor({...t}={}){super(t),this.isHexOnly=!0,this.value=Ar}toJSON(){return{...super.toJSON(),value:this.value}}};os.NAME="StringValueBlock";var is=class extends os{};is.NAME="SimpleStringValueBlock";var It=class extends zn{constructor({...t}={}){super(t,is)}fromBuffer(t){this.valueBlock.value=String.fromCharCode.apply(null,$.BufferSourceConverter.toUint8Array(t))}fromString(t){let e=t.length,n=this.valueBlock.valueHexView=new Uint8Array(e);for(let s=0;s<e;s++)n[s]=t.charCodeAt(s);this.valueBlock.value=t}};It.NAME="SIMPLE STRING";var as=class extends It{fromBuffer(t){this.valueBlock.valueHexView=$.BufferSourceConverter.toUint8Array(t);try{this.valueBlock.value=$.Convert.ToUtf8String(t)}catch(e){this.warnings.push(`Error during "decodeURIComponent": ${e}, using raw string`),this.valueBlock.value=$.Convert.ToBinary(t)}}fromString(t){this.valueBlock.valueHexView=new Uint8Array($.Convert.FromUtf8String(t)),this.valueBlock.value=t}};as.NAME="Utf8StringValueBlock";var il,we=class extends as{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=12}};il=we;N.Utf8String=il;we.NAME="UTF8String";var cs=class extends It{fromBuffer(t){this.valueBlock.value=$.Convert.ToUtf16String(t),this.valueBlock.valueHexView=$.BufferSourceConverter.toUint8Array(t)}fromString(t){this.valueBlock.value=t,this.valueBlock.valueHexView=new Uint8Array($.Convert.FromUtf16String(t))}};cs.NAME="BmpStringValueBlock";var al,ls=class extends cs{constructor({...t}={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=30}};al=ls;N.BmpString=al;ls.NAME="BMPString";var us=class extends It{fromBuffer(t){let e=ArrayBuffer.isView(t)?t.slice().buffer:t.slice(0),n=new Uint8Array(e);for(let s=0;s<n.length;s+=4)n[s]=n[s+3],n[s+1]=n[s+2],n[s+2]=0,n[s+3]=0;this.valueBlock.value=String.fromCharCode.apply(null,new Uint32Array(e))}fromString(t){let e=t.length,n=this.valueBlock.valueHexView=new Uint8Array(e*4);for(let s=0;s<e;s++){let o=Oe(t.charCodeAt(s),8),i=new Uint8Array(o);if(i.length>4)continue;let a=4-i.length;for(let c=i.length-1;c>=0;c--)n[s*4+c+a]=i[c]}this.valueBlock.value=t}};us.NAME="UniversalStringValueBlock";var cl,fs=class extends us{constructor({...t}={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=28}};cl=fs;N.UniversalString=cl;fs.NAME="UniversalString";var ll,hs=class extends It{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=18}};ll=hs;N.NumericString=ll;hs.NAME="NumericString";var ul,ds=class extends It{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=19}};ul=ds;N.PrintableString=ul;ds.NAME="PrintableString";var fl,ps=class extends It{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=20}};fl=ps;N.TeletexString=fl;ps.NAME="TeletexString";var hl,ms=class extends It{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=21}};hl=ms;N.VideotexString=hl;ms.NAME="VideotexString";var dl,gs=class extends It{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=22}};dl=gs;N.IA5String=dl;gs.NAME="IA5String";var pl,ys=class extends It{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=25}};pl=ys;N.GraphicString=pl;ys.NAME="GraphicString";var ml,en=class extends It{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=26}};ml=en;N.VisibleString=ml;en.NAME="VisibleString";var gl,bs=class extends It{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=27}};gl=bs;N.GeneralString=gl;bs.NAME="GeneralString";var yl,ws=class extends It{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=29}};yl=ws;N.CharacterString=yl;ws.NAME="CharacterString";var bl,rn=class extends en{constructor({value:t,valueDate:e,...n}={}){if(super(n),this.year=0,this.month=0,this.day=0,this.hour=0,this.minute=0,this.second=0,t){this.fromString(t),this.valueBlock.valueHexView=new Uint8Array(t.length);for(let s=0;s<t.length;s++)this.valueBlock.valueHexView[s]=t.charCodeAt(s)}e&&(this.fromDate(e),this.valueBlock.valueHexView=new Uint8Array(this.toBuffer())),this.idBlock.tagClass=1,this.idBlock.tagNumber=23}fromBuffer(t){this.fromString(String.fromCharCode.apply(null,$.BufferSourceConverter.toUint8Array(t)))}toBuffer(){let t=this.toString(),e=new ArrayBuffer(t.length),n=new Uint8Array(e);for(let s=0;s<t.length;s++)n[s]=t.charCodeAt(s);return e}fromDate(t){this.year=t.getUTCFullYear(),this.month=t.getUTCMonth()+1,this.day=t.getUTCDate(),this.hour=t.getUTCHours(),this.minute=t.getUTCMinutes(),this.second=t.getUTCSeconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second))}fromString(t){let n=/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})Z/ig.exec(t);if(n===null){this.error="Wrong input string for conversion";return}let s=parseInt(n[1],10);s>=50?this.year=1900+s:this.year=2e3+s,this.month=parseInt(n[2],10),this.day=parseInt(n[3],10),this.hour=parseInt(n[4],10),this.minute=parseInt(n[5],10),this.second=parseInt(n[6],10)}toString(t="iso"){if(t==="iso"){let e=new Array(7);return e[0]=Rt(this.year<2e3?this.year-1900:this.year-2e3,2),e[1]=Rt(this.month,2),e[2]=Rt(this.day,2),e[3]=Rt(this.hour,2),e[4]=Rt(this.minute,2),e[5]=Rt(this.second,2),e[6]="Z",e.join("")}return super.toString(t)}onAsciiEncoding(){return`${this.constructor.NAME} : ${this.toDate().toISOString()}`}toJSON(){return{...super.toJSON(),year:this.year,month:this.month,day:this.day,hour:this.hour,minute:this.minute,second:this.second}}};bl=rn;N.UTCTime=bl;rn.NAME="UTCTime";var wl,xs=class extends rn{constructor(t={}){var e;super(t),(e=this.millisecond)!==null&&e!==void 0||(this.millisecond=0),this.idBlock.tagClass=1,this.idBlock.tagNumber=24}fromDate(t){super.fromDate(t),this.millisecond=t.getUTCMilliseconds()}toDate(){return new Date(Date.UTC(this.year,this.month-1,this.day,this.hour,this.minute,this.second,this.millisecond))}fromString(t){let e=!1,n="",s="",o=0,i,a=0,c=0;if(t[t.length-1]==="Z")n=t.substring(0,t.length-1),e=!0;else{let u=new Number(t[t.length-1]);if(isNaN(u.valueOf()))throw new Error("Wrong input string for conversion");n=t}if(e){if(n.indexOf("+")!==-1)throw new Error("Wrong input string for conversion");if(n.indexOf("-")!==-1)throw new Error("Wrong input string for conversion")}else{let u=1,p=n.indexOf("+"),l="";if(p===-1&&(p=n.indexOf("-"),u=-1),p!==-1){if(l=n.substring(p+1),n=n.substring(0,p),l.length!==2&&l.length!==4)throw new Error("Wrong input string for conversion");let d=parseInt(l.substring(0,2),10);if(isNaN(d.valueOf()))throw new Error("Wrong input string for conversion");if(a=u*d,l.length===4){if(d=parseInt(l.substring(2,4),10),isNaN(d.valueOf()))throw new Error("Wrong input string for conversion");c=u*d}}}let h=n.indexOf(".");if(h===-1&&(h=n.indexOf(",")),h!==-1){let u=new Number(`0${n.substring(h)}`);if(isNaN(u.valueOf()))throw new Error("Wrong input string for conversion");o=u.valueOf(),s=n.substring(0,h)}else s=n;switch(!0){case s.length===8:if(i=/(\d{4})(\d{2})(\d{2})/ig,h!==-1)throw new Error("Wrong input string for conversion");break;case s.length===10:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})/ig,h!==-1){let u=60*o;this.minute=Math.floor(u),u=60*(u-this.minute),this.second=Math.floor(u),u=1e3*(u-this.second),this.millisecond=Math.floor(u)}break;case s.length===12:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})/ig,h!==-1){let u=60*o;this.second=Math.floor(u),u=1e3*(u-this.second),this.millisecond=Math.floor(u)}break;case s.length===14:if(i=/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/ig,h!==-1){let u=1e3*o;this.millisecond=Math.floor(u)}break;default:throw new Error("Wrong input string for conversion")}let f=i.exec(s);if(f===null)throw new Error("Wrong input string for conversion");for(let u=1;u<f.length;u++)switch(u){case 1:this.year=parseInt(f[u],10);break;case 2:this.month=parseInt(f[u],10);break;case 3:this.day=parseInt(f[u],10);break;case 4:this.hour=parseInt(f[u],10)+a;break;case 5:this.minute=parseInt(f[u],10)+c;break;case 6:this.second=parseInt(f[u],10);break;default:throw new Error("Wrong input string for conversion")}if(e===!1){let u=new Date(this.year,this.month,this.day,this.hour,this.minute,this.second,this.millisecond);this.year=u.getUTCFullYear(),this.month=u.getUTCMonth(),this.day=u.getUTCDay(),this.hour=u.getUTCHours(),this.minute=u.getUTCMinutes(),this.second=u.getUTCSeconds(),this.millisecond=u.getUTCMilliseconds()}}toString(t="iso"){if(t==="iso"){let e=[];return e.push(Rt(this.year,4)),e.push(Rt(this.month,2)),e.push(Rt(this.day,2)),e.push(Rt(this.hour,2)),e.push(Rt(this.minute,2)),e.push(Rt(this.second,2)),this.millisecond!==0&&(e.push("."),e.push(Rt(this.millisecond,3))),e.push("Z"),e.join("")}return super.toString(t)}toJSON(){return{...super.toJSON(),millisecond:this.millisecond}}};wl=xs;N.GeneralizedTime=wl;xs.NAME="GeneralizedTime";var xl,vs=class extends we{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=31}};xl=vs;N.DATE=xl;vs.NAME="DATE";var vl,Es=class extends we{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=32}};vl=Es;N.TimeOfDay=vl;Es.NAME="TimeOfDay";var El,Ss=class extends we{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=33}};El=Ss;N.DateTime=El;Ss.NAME="DateTime";var Sl,As=class extends we{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=34}};Sl=As;N.Duration=Sl;As.NAME="Duration";var Al,Bs=class extends we{constructor(t={}){super(t),this.idBlock.tagClass=1,this.idBlock.tagNumber=14}};Al=Bs;N.TIME=Al;Bs.NAME="TIME";function j(r,t="utf8"){let e=Dn[t];if(e==null)throw new Error(`Unsupported encoding "${t}"`);return e.encoder.encode(r).substring(1)}function Is(r){if(isNaN(r)||r<=0)throw new pt("random bytes length must be a Number bigger than 0");return dr(r)}var nn=class extends Error{constructor(t="An error occurred while verifying a message"){super(t),this.name="VerificationError"}},Ts=class extends Error{constructor(t="Missing Web Crypto API"){super(t),this.name="WebCryptoMissingError"}};var Bl={get(r=globalThis){let t=r.crypto;if(t?.subtle==null)throw new Ts("Missing Web Crypto API. The most likely cause of this error is that this page is being accessed from an insecure context (i.e. not HTTPS). For more information and possible resolutions see https://github.com/libp2p/js-libp2p/blob/main/packages/crypto/README.md#web-crypto-api");return t}};var Pe=Bl;async function _l(r){let t=await Pe.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:r,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),e=await Wd(t);return{privateKey:e[0],publicKey:e[1]}}async function Il(r,t){let e=await Pe.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await Pe.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},e,t instanceof Uint8Array?t:t.subarray());return new Uint8Array(n,0,n.byteLength)}async function Tl(r,t,e){let n=await Pe.get().subtle.importKey("jwk",r,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return Pe.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,e instanceof Uint8Array?e:e.subarray())}async function Wd(r){if(r.privateKey==null||r.publicKey==null)throw new pt("Private and public key are required");return Promise.all([Pe.get().subtle.exportKey("jwk",r.privateKey),Pe.get().subtle.exportKey("jwk",r.publicKey)])}function Ci(r){if(r.kty!=="RSA")throw new pt("invalid key type");if(r.n==null)throw new pt("invalid key modulus");return F(r.n,"base64url").length*8}var Br=class{type="RSA";_key;_raw;_multihash;constructor(t,e){this._key=t,this._multihash=e}get raw(){return this._raw==null&&(this._raw=sn.jwkToPkix(this._key)),this._raw}toMultihash(){return this._multihash}toCID(){return mt.createV1(114,this._multihash)}toString(){return tt.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ct(this.raw,t.raw)}verify(t,e){return Tl(this._key,e,t)}},on=class{type="RSA";_key;_raw;publicKey;constructor(t,e){this._key=t,this.publicKey=e}get raw(){return this._raw==null&&(this._raw=sn.jwkToPkcs1(this._key)),this._raw}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ct(this.raw,t.raw)}sign(t){return Il(this._key,t)}};var ks=8192,Ri=18;function kl(r){let{result:t}=Ni(r),e=t.valueBlock.value;return{n:j(se(e[1].toBigInt()),"base64url"),e:j(se(e[2].toBigInt()),"base64url"),d:j(se(e[3].toBigInt()),"base64url"),p:j(se(e[4].toBigInt()),"base64url"),q:j(se(e[5].toBigInt()),"base64url"),dp:j(se(e[6].toBigInt()),"base64url"),dq:j(se(e[7].toBigInt()),"base64url"),qi:j(se(e[8].toBigInt()),"base64url"),kty:"RSA",alg:"RS256"}}function jd(r){if(r.n==null||r.e==null||r.d==null||r.p==null||r.q==null||r.dp==null||r.dq==null||r.qi==null)throw new pt("JWK was missing components");let e=new be({value:[new wt({value:0}),wt.fromBigInt(oe(F(r.n,"base64url"))),wt.fromBigInt(oe(F(r.e,"base64url"))),wt.fromBigInt(oe(F(r.d,"base64url"))),wt.fromBigInt(oe(F(r.p,"base64url"))),wt.fromBigInt(oe(F(r.q,"base64url"))),wt.fromBigInt(oe(F(r.dp,"base64url"))),wt.fromBigInt(oe(F(r.dq,"base64url"))),wt.fromBigInt(oe(F(r.qi,"base64url")))]}).toBER();return new Uint8Array(e,0,e.byteLength)}function Nl(r){let{result:t}=Ni(r),e=t.valueBlock.value[1].valueBlock.value[0].valueBlock.value;return{kty:"RSA",n:j(se(e[0].toBigInt()),"base64url"),e:j(se(e[1].toBigInt()),"base64url")}}function Li(r){if(r.n==null||r.e==null)throw new pt("JWK was missing components");let e=new be({value:[new be({value:[new Sr({value:"1.2.840.113549.1.1.1"}),new vr]}),new Er({valueHex:new be({value:[wt.fromBigInt(oe(F(r.n,"base64url"))),wt.fromBigInt(oe(F(r.e,"base64url")))]}).toBER()})]}).toBER();return new Uint8Array(e,0,e.byteLength)}function se(r){let t=r.toString(16);t.length%2>0&&(t=`0${t}`);let e=t.length/2,n=new Uint8Array(e),s=0,o=0;for(;s<e;)n[s]=parseInt(t.slice(o,o+2),16),s+=1,o+=2;return n}function oe(r){let t=[];return r.forEach(function(e){let n=e.toString(16);n.length%2>0&&(n=`0${n}`),t.push(n)}),BigInt("0x"+t.join(""))}function Cl(r){let t=kl(r);return Rl(t)}function Ui(r){let t=Nl(r);if(Ci(t)>ks)throw new sr("Key size is too large");let e=wr(re.encode({Type:ft.RSA,Data:r})),n=Wt(Ri,e);return new Br(t,n)}function Rl(r){if(Ci(r)>ks)throw new pt("Key size is too large");let t=Ul(r),e=wr(re.encode({Type:ft.RSA,Data:Li(t.publicKey)})),n=Wt(Ri,e);return new on(t.privateKey,new Br(t.publicKey,n))}async function Ll(r){if(r>ks)throw new pt("Key size is too large");let t=await _l(r),e=wr(re.encode({Type:ft.RSA,Data:Li(t.publicKey)})),n=Wt(Ri,e);return new on(t.privateKey,new Br(t.publicKey,n))}function Ul(r){if(r==null)throw new pt("Missing key parameter");return{privateKey:r,publicKey:{kty:r.kty,n:r.n,e:r.e}}}var Ns=class extends hr{constructor(t,e){super(),this.finished=!1,this.destroyed=!1,nc(t);let n=Fr(e);if(this.iHash=t.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 s=this.blockLen,o=new Uint8Array(s);o.set(n.length>s?t.create().update(n).digest():n);for(let i=0;i<o.length;i++)o[i]^=54;this.iHash.update(o),this.oHash=t.create();for(let i=0;i<o.length;i++)o[i]^=106;this.oHash.update(o),o.fill(0)}update(t){return fr(this),this.iHash.update(t),this}digestInto(t){fr(this),ur(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:e,iHash:n,finished:s,destroyed:o,blockLen:i,outputLen:a}=this;return t=t,t.finished=s,t.destroyed=o,t.blockLen=i,t.outputLen=a,t.oHash=e._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Di=(r,t,e)=>new Ns(r,t).update(e).digest();Di.create=(r,t)=>new Ns(r,t);function Dl(r){r.lowS!==void 0&&Zt("lowS",r.lowS),r.prehash!==void 0&&Zt("prehash",r.prehash)}function Zd(r){let t=zr(r);ee(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:e,Fp:n,a:s}=t;if(e){if(!n.eql(s,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof e!="object"||typeof e.beta!="bigint"||typeof e.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}var{bytesToNumberBE:Xd,hexToBytes:Yd}=_n,Ee={Err:class extends Error{constructor(t=""){super(t)}},_tlv:{encode:(r,t)=>{let{Err:e}=Ee;if(r<0||r>256)throw new e("tlv.encode: wrong tag");if(t.length&1)throw new e("tlv.encode: unpadded data");let n=t.length/2,s=Ke(n);if(s.length/2&128)throw new e("tlv.encode: long form length too big");let o=n>127?Ke(s.length/2|128):"";return`${Ke(r)}${o}${s}${t}`},decode(r,t){let{Err:e}=Ee,n=0;if(r<0||r>256)throw new e("tlv.encode: wrong tag");if(t.length<2||t[n++]!==r)throw new e("tlv.decode: wrong tlv");let s=t[n++],o=!!(s&128),i=0;if(!o)i=s;else{let c=s&127;if(!c)throw new e("tlv.decode(long): indefinite length not supported");if(c>4)throw new e("tlv.decode(long): byte length is too big");let h=t.subarray(n,n+c);if(h.length!==c)throw new e("tlv.decode: length bytes not complete");if(h[0]===0)throw new e("tlv.decode(long): zero leftmost byte");for(let f of h)i=i<<8|f;if(n+=c,i<128)throw new e("tlv.decode(long): not minimal encoding")}let a=t.subarray(n,n+i);if(a.length!==i)throw new e("tlv.decode: wrong value length");return{v:a,l:t.subarray(n+i)}}},_int:{encode(r){let{Err:t}=Ee;if(r<Se)throw new t("integer: negative integers are not allowed");let e=Ke(r);if(Number.parseInt(e[0],16)&8&&(e="00"+e),e.length&1)throw new t("unexpected assertion");return e},decode(r){let{Err:t}=Ee;if(r[0]&128)throw new t("Invalid signature integer: negative");if(r[0]===0&&!(r[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return Xd(r)}},toSig(r){let{Err:t,_int:e,_tlv:n}=Ee,s=typeof r=="string"?Yd(r):r;mr(s);let{v:o,l:i}=n.decode(48,s);if(i.length)throw new t("Invalid signature: left bytes after parsing");let{v:a,l:c}=n.decode(2,o),{v:h,l:f}=n.decode(2,c);if(f.length)throw new t("Invalid signature: left bytes after parsing");return{r:e.decode(a),s:e.decode(h)}},hexFromSig(r){let{_tlv:t,_int:e}=Ee,n=`${t.encode(2,e.encode(r.r))}${t.encode(2,e.encode(r.s))}`;return t.encode(48,n)}},Se=BigInt(0),gt=BigInt(1),Wy=BigInt(2),Ol=BigInt(3),jy=BigInt(4);function Jd(r){let t=Zd(r),{Fp:e}=t,n=Re(t.n,t.nBitLength),s=t.toBytes||((g,y,b)=>{let w=y.toAffine();return pe(Uint8Array.from([4]),e.toBytes(w.x),e.toBytes(w.y))}),o=t.fromBytes||(g=>{let y=g.subarray(1),b=e.fromBytes(y.subarray(0,e.BYTES)),w=e.fromBytes(y.subarray(e.BYTES,2*e.BYTES));return{x:b,y:w}});function i(g){let{a:y,b}=t,w=e.sqr(g),m=e.mul(w,g);return e.add(e.add(m,e.mul(g,y)),b)}if(!e.eql(e.sqr(t.Gy),i(t.Gx)))throw new Error("bad generator point: equation left != right");function a(g){return qr(g,gt,t.n)}function c(g){let{allowedPrivateKeyLengths:y,nByteLength:b,wrapPrivateKey:w,n:m}=t;if(y&&typeof g!="bigint"){if(ke(g)&&(g=he(g)),typeof g!="string"||!y.includes(g.length))throw new Error("Invalid key");g=g.padStart(b*2,"0")}let v;try{v=typeof g=="bigint"?g:de(ot("private key",g,b))}catch{throw new Error(`private key must be ${b} bytes, hex or bigint, not ${typeof g}`)}return w&&(v=Y(v,m)),kt("private key",v,gt,m),v}function h(g){if(!(g instanceof p))throw new Error("ProjectivePoint expected")}let f=Ge((g,y)=>{let{px:b,py:w,pz:m}=g;if(e.eql(m,e.ONE))return{x:b,y:w};let v=g.is0();y==null&&(y=v?e.ONE:e.inv(m));let A=e.mul(b,y),_=e.mul(w,y),x=e.mul(m,y);if(v)return{x:e.ZERO,y:e.ZERO};if(!e.eql(x,e.ONE))throw new Error("invZ was invalid");return{x:A,y:_}}),u=Ge(g=>{if(g.is0()){if(t.allowInfinityPoint&&!e.is0(g.py))return;throw new Error("bad point: ZERO")}let{x:y,y:b}=g.toAffine();if(!e.isValid(y)||!e.isValid(b))throw new Error("bad point: x or y not FE");let w=e.sqr(b),m=i(y);if(!e.eql(w,m))throw new Error("bad point: equation left != right");if(!g.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class p{constructor(y,b,w){if(this.px=y,this.py=b,this.pz=w,y==null||!e.isValid(y))throw new Error("x required");if(b==null||!e.isValid(b))throw new Error("y required");if(w==null||!e.isValid(w))throw new Error("z required");Object.freeze(this)}static fromAffine(y){let{x:b,y:w}=y||{};if(!y||!e.isValid(b)||!e.isValid(w))throw new Error("invalid affine point");if(y instanceof p)throw new Error("projective point not allowed");let m=v=>e.eql(v,e.ZERO);return m(b)&&m(w)?p.ZERO:new p(b,w,e.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(y){let b=e.invertBatch(y.map(w=>w.pz));return y.map((w,m)=>w.toAffine(b[m])).map(p.fromAffine)}static fromHex(y){let b=p.fromAffine(o(ot("pointHex",y)));return b.assertValidity(),b}static fromPrivateKey(y){return p.BASE.multiply(c(y))}static msm(y,b){return kn(p,n,y,b)}_setWindowSize(y){d.setWindowSize(this,y)}assertValidity(){u(this)}hasEvenY(){let{y}=this.toAffine();if(e.isOdd)return!e.isOdd(y);throw new Error("Field doesn't support isOdd")}equals(y){h(y);let{px:b,py:w,pz:m}=this,{px:v,py:A,pz:_}=y,x=e.eql(e.mul(b,_),e.mul(v,m)),B=e.eql(e.mul(w,_),e.mul(A,m));return x&&B}negate(){return new p(this.px,e.neg(this.py),this.pz)}double(){let{a:y,b}=t,w=e.mul(b,Ol),{px:m,py:v,pz:A}=this,_=e.ZERO,x=e.ZERO,B=e.ZERO,C=e.mul(m,m),et=e.mul(v,v),H=e.mul(A,A),V=e.mul(m,v);return V=e.add(V,V),B=e.mul(m,A),B=e.add(B,B),_=e.mul(y,B),x=e.mul(w,H),x=e.add(_,x),_=e.sub(et,x),x=e.add(et,x),x=e.mul(_,x),_=e.mul(V,_),B=e.mul(w,B),H=e.mul(y,H),V=e.sub(C,H),V=e.mul(y,V),V=e.add(V,B),B=e.add(C,C),C=e.add(B,C),C=e.add(C,H),C=e.mul(C,V),x=e.add(x,C),H=e.mul(v,A),H=e.add(H,H),C=e.mul(H,V),_=e.sub(_,C),B=e.mul(H,et),B=e.add(B,B),B=e.add(B,B),new p(_,x,B)}add(y){h(y);let{px:b,py:w,pz:m}=this,{px:v,py:A,pz:_}=y,x=e.ZERO,B=e.ZERO,C=e.ZERO,et=t.a,H=e.mul(t.b,Ol),V=e.mul(b,v),U=e.mul(w,A),k=e.mul(m,_),R=e.add(b,w),S=e.add(v,A);R=e.mul(R,S),S=e.add(V,U),R=e.sub(R,S),S=e.add(b,m);let E=e.add(v,_);return S=e.mul(S,E),E=e.add(V,k),S=e.sub(S,E),E=e.add(w,m),x=e.add(A,_),E=e.mul(E,x),x=e.add(U,k),E=e.sub(E,x),C=e.mul(et,S),x=e.mul(H,k),C=e.add(x,C),x=e.sub(U,C),C=e.add(U,C),B=e.mul(x,C),U=e.add(V,V),U=e.add(U,V),k=e.mul(et,k),S=e.mul(H,S),U=e.add(U,k),k=e.sub(V,k),k=e.mul(et,k),S=e.add(S,k),V=e.mul(U,S),B=e.add(B,V),V=e.mul(E,S),x=e.mul(R,x),x=e.sub(x,V),V=e.mul(R,U),C=e.mul(E,C),C=e.add(C,V),new p(x,B,C)}subtract(y){return this.add(y.negate())}is0(){return this.equals(p.ZERO)}wNAF(y){return d.wNAFCached(this,y,p.normalizeZ)}multiplyUnsafe(y){kt("scalar",y,Se,t.n);let b=p.ZERO;if(y===Se)return b;if(y===gt)return this;let{endo:w}=t;if(!w)return d.unsafeLadder(this,y);let{k1neg:m,k1:v,k2neg:A,k2:_}=w.splitScalar(y),x=b,B=b,C=this;for(;v>Se||_>Se;)v>&&(x=x.add(C)),_>&&(B=B.add(C)),C=C.double(),v>>=gt,_>>=gt;return m&&(x=x.negate()),A&&(B=B.negate()),B=new p(e.mul(B.px,w.beta),B.py,B.pz),x.add(B)}multiply(y){let{endo:b,n:w}=t;kt("scalar",y,gt,w);let m,v;if(b){let{k1neg:A,k1:_,k2neg:x,k2:B}=b.splitScalar(y),{p:C,f:et}=this.wNAF(_),{p:H,f:V}=this.wNAF(B);C=d.constTimeNegate(A,C),H=d.constTimeNegate(x,H),H=new p(e.mul(H.px,b.beta),H.py,H.pz),m=C.add(H),v=et.add(V)}else{let{p:A,f:_}=this.wNAF(y);m=A,v=_}return p.normalizeZ([m,v])[0]}multiplyAndAddUnsafe(y,b,w){let m=p.BASE,v=(_,x)=>x===Se||x===gt||!_.equals(m)?_.multiplyUnsafe(x):_.multiply(x),A=v(this,b).add(v(y,w));return A.is0()?void 0:A}toAffine(y){return f(this,y)}isTorsionFree(){let{h:y,isTorsionFree:b}=t;if(y===gt)return!0;if(b)return b(p,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:y,clearCofactor:b}=t;return y===gt?this:b?b(p,this):this.multiplyUnsafe(t.h)}toRawBytes(y=!0){return Zt("isCompressed",y),this.assertValidity(),s(p,this,y)}toHex(y=!0){return Zt("isCompressed",y),he(this.toRawBytes(y))}}p.BASE=new p(t.Gx,t.Gy,e.ONE),p.ZERO=new p(e.ZERO,e.ONE,e.ZERO);let l=t.nBitLength,d=Tn(p,t.endo?Math.ceil(l/2):l);return{CURVE:t,ProjectivePoint:p,normPrivateKeyToScalar:c,weierstrassEquation:i,isWithinCurveOrder:a}}function Qd(r){let t=zr(r);return ee(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function Ml(r){let t=Qd(r),{Fp:e,n}=t,s=e.BYTES+1,o=2*e.BYTES+1;function i(k){return Y(k,n)}function a(k){return In(k,n)}let{ProjectivePoint:c,normPrivateKeyToScalar:h,weierstrassEquation:f,isWithinCurveOrder:u}=Jd({...t,toBytes(k,R,S){let E=R.toAffine(),I=e.toBytes(E.x),L=pe;return Zt("isCompressed",S),S?L(Uint8Array.from([R.hasEvenY()?2:3]),I):L(Uint8Array.from([4]),I,e.toBytes(E.y))},fromBytes(k){let R=k.length,S=k[0],E=k.subarray(1);if(R===s&&(S===2||S===3)){let I=de(E);if(!qr(I,gt,e.ORDER))throw new Error("Point is not on curve");let L=f(I),O;try{O=e.sqrt(L)}catch(G){let z=G instanceof Error?": "+G.message:"";throw new Error("Point is not on curve"+z)}let M=(O>)===gt;return(S&1)===1!==M&&(O=e.neg(O)),{x:I,y:O}}else if(R===o&&S===4){let I=e.fromBytes(E.subarray(0,e.BYTES)),L=e.fromBytes(E.subarray(e.BYTES,2*e.BYTES));return{x:I,y:L}}else throw new Error(`Point of length ${R} was invalid. Expected ${s} compressed bytes or ${o} uncompressed bytes`)}}),p=k=>he(Ce(k,t.nByteLength));function l(k){let R=n>>gt;return k>R}function d(k){return l(k)?i(-k):k}let g=(k,R,S)=>de(k.slice(R,S));class y{constructor(R,S,E){this.r=R,this.s=S,this.recovery=E,this.assertValidity()}static fromCompact(R){let S=t.nByteLength;return R=ot("compactSignature",R,S*2),new y(g(R,0,S),g(R,S,2*S))}static fromDER(R){let{r:S,s:E}=Ee.toSig(ot("DER",R));return new y(S,E)}assertValidity(){kt("r",this.r,gt,n),kt("s",this.s,gt,n)}addRecoveryBit(R){return new y(this.r,this.s,R)}recoverPublicKey(R){let{r:S,s:E,recovery:I}=this,L=_(ot("msgHash",R));if(I==null||![0,1,2,3].includes(I))throw new Error("recovery id invalid");let O=I===2||I===3?S+t.n:S;if(O>=e.ORDER)throw new Error("recovery id 2 or 3 invalid");let M=I&1?"03":"02",K=c.fromHex(M+p(O)),G=a(O),z=i(-L*G),X=i(E*G),Q=c.BASE.multiplyAndAddUnsafe(K,z,X);if(!Q)throw new Error("point at infinify");return Q.assertValidity(),Q}hasHighS(){return l(this.s)}normalizeS(){return this.hasHighS()?new y(this.r,i(-this.s),this.recovery):this}toDERRawBytes(){return ze(this.toDERHex())}toDERHex(){return Ee.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return ze(this.toCompactHex())}toCompactHex(){return p(this.r)+p(this.s)}}let b={isValidPrivateKey(k){try{return h(k),!0}catch{return!1}},normPrivateKeyToScalar:h,randomPrivateKey:()=>{let k=qo(t.n);return gc(t.randomBytes(k),t.n)},precompute(k=8,R=c.BASE){return R._setWindowSize(k),R.multiply(BigInt(3)),R}};function w(k,R=!0){return c.fromPrivateKey(k).toRawBytes(R)}function m(k){let R=ke(k),S=typeof k=="string",E=(R||S)&&k.length;return R?E===s||E===o:S?E===2*s||E===2*o:k instanceof c}function v(k,R,S=!0){if(m(k))throw new Error("first arg must be private key");if(!m(R))throw new Error("second arg must be public key");return c.fromHex(R).multiply(h(k)).toRawBytes(S)}let A=t.bits2int||function(k){let R=de(k),S=k.length*8-t.nBitLength;return S>0?R>>BigInt(S):R},_=t.bits2int_modN||function(k){return i(A(k))},x=Kr(t.nBitLength);function B(k){return kt(`num < 2^${t.nBitLength}`,k,Se,x),Ce(k,t.nByteLength)}function C(k,R,S=et){if(["recovered","canonical"].some(dt=>dt in S))throw new Error("sign() legacy options not supported");let{hash:E,randomBytes:I}=t,{lowS:L,prehash:O,extraEntropy:M}=S;L==null&&(L=!0),k=ot("msgHash",k),Dl(S),O&&(k=ot("prehashed msgHash",E(k)));let K=_(k),G=h(R),z=[B(G),B(K)];if(M!=null&&M!==!1){let dt=M===!0?I(e.BYTES):M;z.push(ot("extraEntropy",dt))}let X=pe(...z),Q=K;function ht(dt){let yt=A(dt);if(!u(yt))return;let Bt=a(yt),lt=c.BASE.multiply(yt).toAffine(),Tt=i(lt.x);if(Tt===Se)return;let ie=i(Bt*i(Q+Tt*G));if(ie===Se)return;let Dr=(lt.x===Tt?0:2)|Number(lt.y>),Or=ie;return L&&l(ie)&&(Or=d(ie),Dr^=1),new y(Tt,Or,Dr)}return{seed:X,k2sig:ht}}let et={lowS:t.lowS,prehash:!1},H={lowS:t.lowS,prehash:!1};function V(k,R,S=et){let{seed:E,k2sig:I}=C(k,R,S),L=t;return Po(L.hash.outputLen,L.nByteLength,L.hmac)(E,I)}c.BASE._setWindowSize(8);function U(k,R,S,E=H){let I=k;if(R=ot("msgHash",R),S=ot("publicKey",S),"strict"in E)throw new Error("options.strict was renamed to lowS");Dl(E);let{lowS:L,prehash:O}=E,M,K;try{if(typeof I=="string"||ke(I))try{M=y.fromDER(I)}catch(lt){if(!(lt instanceof Ee.Err))throw lt;M=y.fromCompact(I)}else if(typeof I=="object"&&typeof I.r=="bigint"&&typeof I.s=="bigint"){let{r:lt,s:Tt}=I;M=new y(lt,Tt)}else throw new Error("PARSE");K=c.fromHex(S)}catch(lt){if(lt.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(L&&M.hasHighS())return!1;O&&(R=t.hash(R));let{r:G,s:z}=M,X=_(R),Q=a(z),ht=i(X*Q),dt=i(G*Q),yt=c.BASE.multiplyAndAddUnsafe(K,ht,dt)?.toAffine();return yt?i(yt.x)===G:!1}return{CURVE:t,getPublicKey:w,getSharedSecret:v,sign:V,verify:U,ProjectivePoint:c,Signature:y,utils:b}}function tp(r){return{hash:r,hmac:(t,...e)=>Di(r,t,No(...e)),randomBytes:dr}}function Pl(r,t){let e=n=>Ml({...r,...tp(n)});return Object.freeze({...e(t),create:e})}var Fl=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),Vl=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),ep=BigInt(1),Oi=BigInt(2),Hl=(r,t)=>(r+t/Oi)/t;function rp(r){let t=Fl,e=BigInt(3),n=BigInt(6),s=BigInt(11),o=BigInt(22),i=BigInt(23),a=BigInt(44),c=BigInt(88),h=r*r*r%t,f=h*h*r%t,u=nt(f,e,t)*f%t,p=nt(u,e,t)*f%t,l=nt(p,Oi,t)*h%t,d=nt(l,s,t)*l%t,g=nt(d,o,t)*d%t,y=nt(g,a,t)*g%t,b=nt(y,c,t)*y%t,w=nt(b,a,t)*g%t,m=nt(w,e,t)*f%t,v=nt(m,i,t)*d%t,A=nt(v,n,t)*h%t,_=nt(A,Oi,t);if(!Mi.eql(Mi.sqr(_),r))throw new Error("Cannot find square root");return _}var Mi=Re(Fl,void 0,void 0,{sqrt:rp}),Je=Pl({a:BigInt(0),b:BigInt(7),Fp:Mi,n:Vl,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:r=>{let t=Vl,e=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-ep*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),o=e,i=BigInt("0x100000000000000000000000000000000"),a=Hl(o*r,t),c=Hl(-n*r,t),h=Y(r-a*e-c*s,t),f=Y(-a*n-c*o,t),u=h>i,p=f>i;if(u&&(h=t-h),p&&(f=t-f),h>i||f>i)throw new Error("splitScalar: Endomorphism failed, k="+r);return{k1neg:u,k1:h,k2neg:p,k2:f}}}},wr),nb=BigInt(0);var sb=Je.ProjectivePoint;function Mt(r,t){t==null&&(t=r.reduce((s,o)=>s+o.length,0));let e=Ct(t),n=0;for(let s of r)e.set(s,n),n+=s.length;return e}function ql(r){return r==null?!1:typeof r.then=="function"&&typeof r.catch=="function"&&typeof r.finally=="function"}function Kl(r,t,e){let n=yr.digest(e instanceof Uint8Array?e:e.subarray());if(ql(n))return n.then(({digest:s})=>Je.verify(t,s,r)).catch(s=>{throw new nn(String(s))});try{return Je.verify(t,n.digest,r)}catch(s){throw new nn(String(s))}}var Cs=class{type="secp256k1";raw;_key;constructor(t){this._key=$l(t),this.raw=zl(this._key)}toMultihash(){return ue.digest(gr(this))}toCID(){return mt.createV1(114,this.toMultihash())}toString(){return tt.encode(this.toMultihash().bytes).substring(1)}equals(t){return t==null||!(t.raw instanceof Uint8Array)?!1:ct(this.raw,t.raw)}verify(t,e){return Kl(this._key,e,t)}};function Pi(r){return new Cs(r)}function zl(r){return Je.ProjectivePoint.fromHex(r).toRawBytes(!0)}function $l(r){try{return Je.ProjectivePoint.fromHex(r),r}catch(t){throw new sr(String(t))}}function Gl(r){let{Type:t,Data:e}=re.decode(r),n=e??new Uint8Array;switch(t){case ft.RSA:return Ui(n);case ft.Ed25519:return Wo(n);case ft.secp256k1:return Pi(n);default:throw new or}}function Wl(r){let{Type:t,Data:e}=re.decode(r.digest),n=e??new Uint8Array;switch(t){case ft.Ed25519:return Wo(n);case ft.secp256k1:return Pi(n);default:throw new or}}function gr(r){return re.encode({Type:ft[r.type],Data:r.raw})}var jl=Symbol.for("nodejs.util.inspect.custom"),np=114,an=class{type;multihash;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[xo]=!0;toString(){return this.string==null&&(this.string=tt.encode(this.multihash.bytes).slice(1)),this.string}toMultihash(){return this.multihash}toCID(){return mt.createV1(np,this.multihash)}toJSON(){return this.toString()}equals(t){if(t==null)return!1;if(t instanceof Uint8Array)return ct(this.multihash.bytes,t);if(typeof t=="string")return this.toString()===t;if(t?.toMultihash()?.bytes!=null)return ct(this.multihash.bytes,t.toMultihash().bytes);throw new Error("not valid Id")}[jl](){return`PeerId(${this.toString()})`}},Rs=class extends an{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},Ls=class extends an{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.publicKey}},Us=class extends an{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.publicKey}},sp=2336,Ds=class{type="url";multihash;publicKey;url;constructor(t){this.url=t.toString(),this.multihash=ue.digest(F(this.url))}[jl](){return`PeerId(${this.url})`}[xo]=!0;toString(){return this.toCID().toString()}toMultihash(){return this.multihash}toCID(){return mt.createV1(sp,this.toMultihash())}toJSON(){return this.toString()}equals(t){return t==null?!1:(t instanceof Uint8Array&&(t=j(t)),t.toString()===this.toString())}};function Vi(r,t){let e;if(r.charAt(0)==="1"||r.charAt(0)==="Q")e=Kt(tt.decode(`z${r}`));else{if(t==null)throw new pt('Please pass a multibase decoder for strings that do not start with "1" or "Q"');e=Kt(t.decode(r))}return cn(e)}function cn(r){if(ip(r))return new Rs({multihash:r});if(op(r))try{let t=Wl(r);if(t.type==="Ed25519")return new Ls({multihash:r,publicKey:t});if(t.type==="secp256k1")return new Us({multihash:r,publicKey:t})}catch{let e=j(r.digest);return new Ds(new URL(e))}throw new bn("Supplied PeerID Multihash is invalid")}function op(r){return r.code===ue.code}function ip(r){return r.code===yr.code}var Xl=Symbol.for("@achingbrain/uint8arraylist");function Zl(r,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let e=0;for(let n of r){let s=e+n.byteLength;if(t<s)return{buf:n,index:t-e};e=s}throw new RangeError("index is out of bounds")}function Os(r){return!!r?.[Xl]}var Pt=class r{bufs;length;[Xl]=!0;constructor(...t){this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let e=0;for(let n of t)if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.push(n);else if(Os(n))e+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}prepend(...t){this.prependAll(t)}prependAll(t){let e=0;for(let n of t.reverse())if(n instanceof Uint8Array)e+=n.byteLength,this.bufs.unshift(n);else if(Os(n))e+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=e}get(t){let e=Zl(this.bufs,t);return e.buf[e.index]}set(t,e){let n=Zl(this.bufs,t);n.buf[n.index]=e}write(t,e=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(e+n,t[n]);else if(Os(t))for(let n=0;n<t.length;n++)this.set(e+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,e){let{bufs:n,length:s}=this._subList(t,e);return Mt(n,s)}subarray(t,e){let{bufs:n,length:s}=this._subList(t,e);return n.length===1?n[0]:Mt(n,s)}sublist(t,e){let{bufs:n,length:s}=this._subList(t,e),o=new r;return o.length=s,o.bufs=[...n],o}_subList(t,e){if(t=t??0,e=e??this.length,t<0&&(t=this.length+t),e<0&&(e=this.length+e),t<0||e>this.length)throw new RangeError("index is out of bounds");if(t===e)return{bufs:[],length:0};if(t===0&&e===this.length)return{bufs:this.bufs,length:this.length};let n=[],s=0;for(let o=0;o<this.bufs.length;o++){let i=this.bufs[o],a=s,c=a+i.byteLength;if(s=c,t>=c)continue;let h=t>=a&&t<c,f=e>a&&e<=c;if(h&&f){if(t===a&&e===c){n.push(i);break}let u=t-a;n.push(i.subarray(u,u+(e-t)));break}if(h){if(t===0){n.push(i);continue}n.push(i.subarray(t-a));continue}if(f){if(e===c){n.push(i);break}n.push(i.subarray(0,e-a));break}n.push(i)}return{bufs:n,length:e-t}}indexOf(t,e=0){if(!Os(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(e=Number(e??0),isNaN(e)&&(e=0),e<0&&(e=this.length+e),e<0&&(e=0),t.length===0)return e>this.length?this.length:e;let s=n.byteLength;if(s===0)throw new TypeError("search must be at least 1 byte long");let o=256,i=new Int32Array(o);for(let u=0;u<o;u++)i[u]=-1;for(let u=0;u<s;u++)i[n[u]]=u;let a=i,c=this.byteLength-n.byteLength,h=n.byteLength-1,f;for(let u=e;u<=c;u+=f){f=0;for(let p=h;p>=0;p--){let l=this.get(u+p);if(n[p]!==l){f=Math.max(1,p-a[l]);break}}if(f===0)return u}return-1}getInt8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getInt8(0)}setInt8(t,e){let n=Ct(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,e),this.write(n,t)}getInt16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,e)}setInt16(t,e,n){let s=it(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt16(0,e,n),this.write(s,t)}getInt32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,e)}setInt32(t,e,n){let s=it(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setInt32(0,e,n),this.write(s,t)}getBigInt64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,e)}setBigInt64(t,e,n){let s=it(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigInt64(0,e,n),this.write(s,t)}getUint8(t){let e=this.subarray(t,t+1);return new DataView(e.buffer,e.byteOffset,e.byteLength).getUint8(0)}setUint8(t,e){let n=Ct(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,e),this.write(n,t)}getUint16(t,e){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,e)}setUint16(t,e,n){let s=it(2);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint16(0,e,n),this.write(s,t)}getUint32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,e)}setUint32(t,e,n){let s=it(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setUint32(0,e,n),this.write(s,t)}getBigUint64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,e)}setBigUint64(t,e,n){let s=it(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setBigUint64(0,e,n),this.write(s,t)}getFloat32(t,e){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,e)}setFloat32(t,e,n){let s=it(4);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat32(0,e,n),this.write(s,t)}getFloat64(t,e){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,e)}setFloat64(t,e,n){let s=it(8);new DataView(s.buffer,s.byteOffset,s.byteLength).setFloat64(0,e,n),this.write(s,t)}equals(t){if(t==null||!(t instanceof r)||t.bufs.length!==this.bufs.length)return!1;for(let e=0;e<this.bufs.length;e++)if(!ct(this.bufs[e],t.bufs[e]))return!1;return!0}static fromUint8Arrays(t,e){let n=new r;return n.bufs=t,e==null&&(e=t.reduce((s,o)=>s+o.byteLength,0)),n.length=e,n}};var ln;(function(r){let t;r.codec=()=>(t==null&&(t=Ot((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.publicKey!=null&&e.publicKey.byteLength>0&&(n.uint32(10),n.bytes(e.publicKey)),e.payloadType!=null&&e.payloadType.byteLength>0&&(n.uint32(18),n.bytes(e.payloadType)),e.payload!=null&&e.payload.byteLength>0&&(n.uint32(26),n.bytes(e.payload)),e.signature!=null&&e.signature.byteLength>0&&(n.uint32(42),n.bytes(e.signature)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let o={publicKey:it(0),payloadType:it(0),payload:it(0),signature:it(0)},i=n==null?e.len:e.pos+n;for(;e.pos<i;){let a=e.uint32();switch(a>>>3){case 1:{o.publicKey=e.bytes();break}case 2:{o.payloadType=e.bytes();break}case 3:{o.payload=e.bytes();break}case 5:{o.signature=e.bytes();break}default:{e.skipType(a&7);break}}}return o})),t),r.encode=e=>Dt(e,r.codec()),r.decode=(e,n)=>Ut(e,r.codec(),n)})(ln||(ln={}));var Ms=class extends Error{constructor(t="Invalid signature"){super(t),this.name="InvalidSignatureError"}};var un=class r{static createFromProtobuf=async t=>{let e=ln.decode(t),n=Gl(e.publicKey);return new r({publicKey:n,payloadType:e.payloadType,payload:e.payload,signature:e.signature})};static seal=async(t,e)=>{if(e==null)throw new Error("Missing private key");let n=t.domain,s=t.codec,o=t.marshal(),i=Yl(n,s,o),a=await e.sign(i.subarray());return new r({publicKey:e.publicKey,payloadType:s,payload:o,signature:a})};static openAndCertify=async(t,e)=>{let n=await r.createFromProtobuf(t);if(!await n.validate(e))throw new Ms("Envelope signature is not valid for the given domain");return n};publicKey;payloadType;payload;signature;marshaled;constructor(t){let{publicKey:e,payloadType:n,payload:s,signature:o}=t;this.publicKey=e,this.payloadType=n,this.payload=s,this.signature=o}marshal(){return this.marshaled==null&&(this.marshaled=ln.encode({publicKey:gr(this.publicKey),payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(t){return ct(this.marshal(),t.marshal())}async validate(t){let e=Yl(t,this.payloadType,this.payload);return this.publicKey.verify(e.subarray(),this.signature)}},Yl=(r,t,e)=>{let n=F(r),s=zt(n.byteLength),o=zt(t.length),i=zt(e.length);return new Pt(s,n,o,t,i,e)};var Ps=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let e=this.index,n=t();return n===void 0&&(this.index=e),n}parseWith(t){let e=t();if(this.index===this.input.length)return e}peekChar(){if(!(this.index>=this.input.length))return this.input[this.index]}readChar(){if(!(this.index>=this.input.length))return this.input[this.index++]}readGivenChar(t){return this.readAtomically(()=>{let e=this.readChar();if(e===t)return e})}readSeparator(t,e,n){return this.readAtomically(()=>{if(!(e>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,e,n,s){return this.readAtomically(()=>{let o=0,i=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",h=2**(8*s)-1;for(;;){let f=this.readAtomically(()=>{let u=this.readChar();if(u===void 0)return;let p=Number.parseInt(u,t);if(!Number.isNaN(p))return p});if(f===void 0)break;if(o*=t,o+=f,o>h||(i+=1,e!==void 0&&i>e))return}if(i!==0)return!n&&c&&i>1?void 0:o})}readIPv4Addr(){return this.readAtomically(()=>{let t=new Uint8Array(4);for(let e=0;e<t.length;e++){let n=this.readSeparator(".",e,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[e]=n}return t})}readIPv6Addr(){let t=e=>{for(let n=0;n<e.length/2;n++){let s=n*2;if(n<e.length-3){let i=this.readSeparator(":",n,()=>this.readIPv4Addr());if(i!==void 0)return e[s]=i[0],e[s+1]=i[1],e[s+2]=i[2],e[s+3]=i[3],[s+4,!0]}let o=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(o===void 0)return[s,!1];e[s]=o>>8,e[s+1]=o&255}return[e.length,!1]};return this.readAtomically(()=>{let e=new Uint8Array(16),[n,s]=t(e);if(n===16)return e;if(s||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let o=new Uint8Array(14),i=16-(n+2),[a]=t(o.subarray(0,i));return e.set(o.subarray(0,a),16-a),e})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Jl=45,ap=15,_r=new Ps;function Hi(r){if(!(r.length>ap))return _r.new(r).parseWith(()=>_r.readIPv4Addr())}function Fi(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>Jl))return _r.new(r).parseWith(()=>_r.readIPv6Addr())}function Vs(r){if(r.includes("%")&&(r=r.split("%")[0]),!(r.length>Jl))return _r.new(r).parseWith(()=>_r.readIPAddr())}var Dw=parseInt("0xFFFF",16),Ow=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function eu(r){return!!Hi(r)}function ru(r){return!!Fi(r)}function Hs(r){return!!Vs(r)}var nu=eu,hp=ru,qi=function(r){let t=0;if(r=r.toString().trim(),nu(r)){let e=new Uint8Array(t+4);return r.split(/\./g).forEach(n=>{e[t++]=parseInt(n,10)&255}),e}if(hp(r)){let e=r.split(":",8),n;for(n=0;n<e.length;n++){let o=nu(e[n]),i;o&&(i=qi(e[n]),e[n]=j(i.slice(0,2),"base16")),i!=null&&++n<8&&e.splice(n,0,j(i.slice(2,4),"base16"))}if(e[0]==="")for(;e.length<8;)e.unshift("0");else if(e[e.length-1]==="")for(;e.length<8;)e.push("0");else if(e.length<8){for(n=0;n<e.length&&e[n]!=="";n++);let o=[n,1];for(n=9-e.length;n>0;n--)o.push("0");e.splice.apply(e,o)}let s=new Uint8Array(t+16);for(n=0;n<e.length;n++){let o=parseInt(e[n],16);s[t++]=o>>8&255,s[t++]=o&255}return s}throw new Error("invalid ip address")},su=function(r,t=0,e){t=~~t,e=e??r.length-t;let n=new DataView(r.buffer);if(e===4){let s=[];for(let o=0;o<e;o++)s.push(r[t+o]);return s.join(".")}if(e===16){let s=[];for(let o=0;o<e;o+=2)s.push(n.getUint16(t+o).toString(16));return s.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var Ir={},Ki={},pp=[[4,32,"ip4"],[6,16,"tcp"],[33,16,"dccp"],[41,128,"ip6"],[42,-1,"ip6zone"],[43,8,"ipcidr"],[53,-1,"dns",!0],[54,-1,"dns4",!0],[55,-1,"dns6",!0],[56,-1,"dnsaddr",!0],[132,16,"sctp"],[273,16,"udp"],[275,0,"p2p-webrtc-star"],[276,0,"p2p-webrtc-direct"],[277,0,"p2p-stardust"],[280,0,"webrtc-direct"],[281,0,"webrtc"],[290,0,"p2p-circuit"],[301,0,"udt"],[302,0,"utp"],[400,-1,"unix",!1,!0],[421,-1,"ipfs"],[421,-1,"p2p"],[443,0,"https"],[444,96,"onion"],[445,296,"onion3"],[446,-1,"garlic64"],[448,0,"tls"],[449,-1,"sni"],[460,0,"quic"],[461,0,"quic-v1"],[465,0,"webtransport"],[466,-1,"certhash"],[477,0,"ws"],[478,0,"wss"],[479,0,"p2p-websocket-star"],[480,0,"http"],[481,-1,"http-path"],[777,-1,"memory"]];pp.forEach(r=>{let t=mp(...r);Ki[t.code]=t,Ir[t.name]=t});function mp(r,t,e,n,s){return{code:r,size:t,name:e,resolvable:!!n,path:!!s}}function J(r){if(typeof r=="number"){if(Ki[r]!=null)return Ki[r];throw new Error(`no protocol with code: ${r}`)}else if(typeof r=="string"){if(Ir[r]!=null)return Ir[r];throw new Error(`no protocol with name: ${r}`)}throw new Error(`invalid protocol id type: ${typeof r}`)}var wx=J("ip4"),xx=J("ip6"),vx=J("ipcidr");function Wi(r,t){switch(J(r).code){case 4:case 41:return yp(t);case 42:return Gi(t);case 6:case 273:case 33:case 132:return au(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Gi(t);case 421:return vp(t);case 444:return iu(t);case 445:return iu(t);case 466:return xp(t);case 481:return globalThis.encodeURIComponent(Gi(t));default:return j(t,"base16")}}function ji(r,t){switch(J(r).code){case 4:return ou(t);case 41:return ou(t);case 42:return $i(t);case 6:case 273:case 33:case 132:return Zi(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return $i(t);case 421:return bp(t);case 444:return Ep(t);case 445:return Sp(t);case 466:return wp(t);case 481:return $i(globalThis.decodeURIComponent(t));default:return F(t,"base16")}}var zi=Object.values($r).map(r=>r.decoder),gp=function(){let r=zi[0].or(zi[1]);return zi.slice(2).forEach(t=>r=r.or(t)),r}();function ou(r){if(!Hs(r))throw new Error("invalid ip address");return qi(r)}function yp(r){let t=su(r,0,r.length);if(t==null)throw new Error("ipBuff is required");if(!Hs(t))throw new Error("invalid ip address");return t}function Zi(r){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,r),new Uint8Array(t)}function au(r){return new DataView(r.buffer).getUint16(r.byteOffset)}function $i(r){let t=F(r),e=Uint8Array.from(zt(t.length));return Mt([e,t],e.length+t.length)}function Gi(r){let t=me(r);if(r=r.slice(Et(t)),r.length!==t)throw new Error("inconsistent lengths");return j(r)}function bp(r){let t;r[0]==="Q"||r[0]==="1"?t=Kt(tt.decode(`z${r}`)).bytes:t=mt.parse(r).multihash.bytes;let e=Uint8Array.from(zt(t.length));return Mt([e,t],e.length+t.length)}function wp(r){let t=gp.decode(r),e=Uint8Array.from(zt(t.length));return Mt([e,t],e.length+t.length)}function xp(r){let t=me(r),e=r.slice(Et(t));if(e.length!==t)throw new Error("inconsistent lengths");return"u"+j(e,"base64url")}function vp(r){let t=me(r),e=r.slice(Et(t));if(e.length!==t)throw new Error("inconsistent lengths");return j(e,"base58btc")}function Ep(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let e=le.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let s=Zi(n);return Mt([e,s],e.length+s.length)}function Sp(r){let t=r.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let e=le.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let s=Zi(n);return Mt([e,s],e.length+s.length)}function iu(r){let t=r.slice(0,r.length-2),e=r.slice(r.length-2),n=j(t,"base32"),s=au(e);return`${n}:${s}`}function cu(r){r=Xi(r);let t=[],e=[],n=null,s=r.split("/").slice(1);if(s.length===1&&s[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let o=0;o<s.length;o++){let i=s[o],a=J(i);if(a.size===0){t.push([a.code]),e.push([a.code]);continue}if(o++,o>=s.length)throw uu("invalid address: "+r);if(a.path===!0){n=Xi(s.slice(o).join("/")),t.push([a.code,ji(a.code,n)]),e.push([a.code,n]);break}let c=ji(a.code,s[o]);t.push([a.code,c]),e.push([a.code,Wi(a.code,c)])}return{string:lu(e),bytes:Ji(t),tuples:t,stringTuples:e,path:n}}function Yi(r){let t=[],e=[],n=null,s=0;for(;s<r.length;){let o=me(r,s),i=Et(o),a=J(o),c=Ap(a,r.slice(s+i));if(c===0){t.push([o]),e.push([o]),s+=i;continue}let h=r.slice(s+i,s+i+c);if(s+=c+i,s>r.length)throw uu("Invalid address Uint8Array: "+j(r,"base16"));t.push([o,h]);let f=Wi(o,h);if(e.push([o,f]),a.path===!0){n=f;break}}return{bytes:Uint8Array.from(r),string:lu(e),tuples:t,stringTuples:e,path:n}}function lu(r){let t=[];return r.map(e=>{let n=J(e[0]);return t.push(n.name),e.length>1&&e[1]!=null&&t.push(e[1]),null}),Xi(t.join("/"))}function Ji(r){return Mt(r.map(t=>{let e=J(t[0]),n=Uint8Array.from(zt(e.code));return t.length>1&&t[1]!=null&&(n=Mt([n,t[1]])),n}))}function Ap(r,t){if(r.size>0)return r.size/8;if(r.size===0)return 0;{let e=me(t instanceof Uint8Array?t:Uint8Array.from(t));return e+Et(e)}}function Xi(r){return"/"+r.trim().split("/").filter(t=>t).join("/")}function uu(r){return new Error("Error parsing address: "+r)}var Bp=Symbol.for("nodejs.util.inspect.custom"),ta=Symbol.for("@multiformats/js-multiaddr/multiaddr"),_p=[J("dns").code,J("dns4").code,J("dns6").code,J("dnsaddr").code],Qi=class extends Error{constructor(t="No available resolver"){super(t),this.name="NoAvailableResolverError"}},Fs=class r{bytes;#t;#e;#r;#n;[ta]=!0;constructor(t){t==null&&(t="");let e;if(t instanceof Uint8Array)e=Yi(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);e=cu(t)}else if(hu(t))e=Yi(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=e.bytes,this.#t=e.string,this.#e=e.tuples,this.#r=e.stringTuples,this.#n=e.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,e,n,s,o="",i=J("tcp"),a=J("udp"),c=J("ip4"),h=J("ip6"),f=J("dns6"),u=J("ip6zone");for(let[l,d]of this.stringTuples())l===u.code&&(o=`%${d??""}`),_p.includes(l)&&(e=i.name,s=443,n=`${d??""}${o}`,t=l===f.code?6:4),(l===i.code||l===a.code)&&(e=J(l).name,s=parseInt(d??"")),(l===c.code||l===h.code)&&(e=J(l).name,n=`${d??""}${o}`,t=l===h.code?6:4);if(t==null||e==null||n==null||s==null)throw new Error('multiaddr must have a valid format: "/{ip4, ip6, dns4, dns6, dnsaddr}/{address}/{tcp, udp}/{port}".');return{family:t,host:n,transport:e,port:s}}protos(){return this.#e.map(([t])=>Object.assign({},J(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>J(t).name)}tuples(){return this.#e}stringTuples(){return this.#r}encapsulate(t){return t=new r(t),new r(this.toString()+t.toString())}decapsulate(t){let e=t.toString(),n=this.toString(),s=n.lastIndexOf(e);if(s<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new r(n.slice(0,s))}decapsulateCode(t){let e=this.tuples();for(let n=e.length-1;n>=0;n--)if(e[n][0]===t)return new r(Ji(e.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,s])=>{n===Ir.p2p.code&&t.push([n,s]),n===Ir["p2p-circuit"].code&&(t=[])});let e=t.pop();if(e?.[1]!=null){let n=e[1];return n[0]==="Q"||n[0]==="1"?j(tt.decode(`z${n}`),"base58btc"):j(mt.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(t){return ct(this.bytes,t.bytes)}async resolve(t){let e=this.protos().find(o=>o.resolvable);if(e==null)return[this];let n=fu.get(e.name);if(n==null)throw new Qi(`no available resolver for ${e.name}`);return(await n(this,t)).map(o=>xt(o))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let e=(t??this).protos();return!(e.length!==2||e[0].code!==4&&e[0].code!==41||e[1].code!==6&&e[1].code!==273)}[Bp](){return`Multiaddr(${this.#t})`}};var fu=new Map;function hu(r){return!!r?.[ta]}function xt(r){return new Fs(r)}function Vt(){let r={};return r.promise=new Promise((t,e)=>{r.resolve=t,r.reject=e}),r}var qs=class extends Error{type;code;constructor(t,e,n){super(t??"The operation was aborted"),this.type="aborted",this.name=n??"AbortError",this.code=e??"ABORT_ERR"}};async function Tr(r,t,e){if(t==null)return r;if(t.aborted)return Promise.reject(new qs(e?.errorMessage,e?.errorCode,e?.errorName));let n,s=new qs(e?.errorMessage,e?.errorCode,e?.errorName);try{return await Promise.race([r,new Promise((o,i)=>{n=()=>{i(s)},t.addEventListener("abort",n)})])}finally{n!=null&&t.removeEventListener("abort",n)}}var ea=class{readNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.readNext=Vt(),this.haveNext=Vt()}[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 t=this.nextResult;return this.nextResult=void 0,this.readNext.resolve(),this.readNext=Vt(),t}async throw(t){return this.ended=!0,t!=null&&(this.haveNext.promise.catch(()=>{}),this.haveNext.reject(t)),{done:!0,value:void 0}}async return(){let t={done:!0,value:void 0};return await this._push(void 0),t}async push(t,e){await this._push(t,e)}async end(t,e){t!=null?await this.throw(t):await this._push(void 0,e)}async _push(t,e){if(t!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");for(;this.nextResult!=null;)await this.readNext.promise;t!=null?this.nextResult={done:!1,value:t}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=Vt(),await Tr(this.readNext.promise,e?.signal,e)}};function du(){return new ea}var Ks=class extends Error{name="UnexpectedEOFError";code="ERR_UNEXPECTED_EOF"};var ra=class extends Error{code;constructor(t,e){super(t),this.code=e}},na=class extends ra{type;constructor(t){super(t,"ABORT_ERR"),this.type="aborted",this.name="AbortError"}};function pu(r,t){let e=du();r.sink(e).catch(async i=>{await e.end(i)}),r.sink=async i=>{for await(let a of i)await e.push(a);await e.end()};let n=r.source;r.source[Symbol.iterator]!=null?n=r.source[Symbol.iterator]():r.source[Symbol.asyncIterator]!=null&&(n=r.source[Symbol.asyncIterator]());let s=new Pt;return{read:async(i,a)=>{a?.signal?.throwIfAborted();let c,h=new Promise((f,u)=>{c=()=>{u(new na("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(i==null){let{done:u,value:p}=await Promise.race([n.next(),h]);return u===!0?new Pt:p}for(;s.byteLength<i;){let{value:u,done:p}=await Promise.race([n.next(),h]);if(p===!0)throw new Ks("unexpected end of input");s.append(u)}let f=s.sublist(0,i);return s.consume(i),f}finally{c!=null&&a?.signal?.removeEventListener("abort",c)}},write:async(i,a)=>{a?.signal?.throwIfAborted(),i instanceof Uint8Array?await e.push(i,a):await e.push(i.subarray(),a)},unwrap:()=>{if(s.byteLength>0){let i=r.source;r.source=async function*(){t?.yieldBytes===!1?yield s:yield*s,yield*i}()}return r}}}var zs=class extends Error{name="InvalidMessageLengthError";code="ERR_INVALID_MSG_LENGTH"},$s=class extends Error{name="InvalidDataLengthError";code="ERR_MSG_DATA_TOO_LONG"},Gs=class extends Error{name="InvalidDataLengthLengthError";code="ERR_MSG_LENGTH_TOO_LONG"};function mu(r,t={}){let e=pu(r,t);t.maxDataLength!=null&&t.maxLengthLength==null&&(t.maxLengthLength=Et(t.maxDataLength));let n=t?.lengthDecoder??me,s=t?.lengthEncoder??zt;return{read:async i=>{let a=-1,c=new Pt;for(;;){c.append(await e.read(1,i));try{a=n(c)}catch(h){if(h instanceof RangeError)continue;throw h}if(a<0)throw new zs("Invalid message length");if(t?.maxLengthLength!=null&&c.byteLength>t.maxLengthLength)throw new Gs("message length length too long");if(a>-1)break}if(t?.maxDataLength!=null&&a>t.maxDataLength)throw new $s("message length too long");return e.read(a,i)},write:async(i,a)=>{await e.write(new Pt(s(i.byteLength),i),a)},writeV:async(i,a)=>{let c=new Pt(...i.flatMap(h=>[s(h.byteLength),h]));await e.write(c,a)},unwrap:()=>e.unwrap()}}function Ve(r,t){let e=mu(r,t),n={read:async(s,o)=>{let i=await e.read(o);return s.decode(i)},write:async(s,o,i)=>{await e.write(o.encode(s),i)},writeV:async(s,o,i)=>{await e.writeV(s.map(a=>o.encode(a)),i)},pb:s=>({read:async o=>n.read(s,o),write:async(o,i)=>n.write(o,s,i),writeV:async(o,i)=>n.writeV(o,s,i),unwrap:()=>n}),unwrap:()=>e.unwrap()};return n}var gu="circuit-relay-source",yu="circuit-relay-relay";var bu=BigInt(131072),Gt="/libp2p/circuit/relay/0.2.0/hop",Qe="/libp2p/circuit/relay/0.2.0/stop",wu=30*1e3,u1=30*1e3,fn=300,xu=4096,vu=.001;var Z;(function(r){let t;(function(s){s.RESERVE="RESERVE",s.CONNECT="CONNECT",s.STATUS="STATUS"})(t=r.Type||(r.Type={}));let e;(function(s){s[s.RESERVE=0]="RESERVE",s[s.CONNECT=1]="CONNECT",s[s.STATUS=2]="STATUS"})(e||(e={})),function(s){s.codec=()=>Xe(e)}(t=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Ot((s,o,i={})=>{i.lengthDelimited!==!1&&o.fork(),s.type!=null&&(o.uint32(8),r.Type.codec().encode(s.type,o)),s.peer!=null&&(o.uint32(18),kr.codec().encode(s.peer,o)),s.reservation!=null&&(o.uint32(26),Ws.codec().encode(s.reservation,o)),s.limit!=null&&(o.uint32(34),Nr.codec().encode(s.limit,o)),s.status!=null&&(o.uint32(40),q.codec().encode(s.status,o)),i.lengthDelimited!==!1&&o.ldelim()},(s,o,i={})=>{let a={},c=o==null?s.len:s.pos+o;for(;s.pos<c;){let h=s.uint32();switch(h>>>3){case 1:{a.type=r.Type.codec().decode(s);break}case 2:{a.peer=kr.codec().decode(s,s.uint32(),{limits:i.limits?.peer});break}case 3:{a.reservation=Ws.codec().decode(s,s.uint32(),{limits:i.limits?.reservation});break}case 4:{a.limit=Nr.codec().decode(s,s.uint32(),{limits:i.limits?.limit});break}case 5:{a.status=q.codec().decode(s);break}default:{s.skipType(h&7);break}}}return a})),n),r.encode=s=>Dt(s,r.codec()),r.decode=(s,o)=>Ut(s,r.codec(),o)})(Z||(Z={}));var Ht;(function(r){let t;(function(s){s.CONNECT="CONNECT",s.STATUS="STATUS"})(t=r.Type||(r.Type={}));let e;(function(s){s[s.CONNECT=0]="CONNECT",s[s.STATUS=1]="STATUS"})(e||(e={})),function(s){s.codec=()=>Xe(e)}(t=r.Type||(r.Type={}));let n;r.codec=()=>(n==null&&(n=Ot((s,o,i={})=>{i.lengthDelimited!==!1&&o.fork(),s.type!=null&&(o.uint32(8),r.Type.codec().encode(s.type,o)),s.peer!=null&&(o.uint32(18),kr.codec().encode(s.peer,o)),s.limit!=null&&(o.uint32(26),Nr.codec().encode(s.limit,o)),s.status!=null&&(o.uint32(32),q.codec().encode(s.status,o)),i.lengthDelimited!==!1&&o.ldelim()},(s,o,i={})=>{let a={},c=o==null?s.len:s.pos+o;for(;s.pos<c;){let h=s.uint32();switch(h>>>3){case 1:{a.type=r.Type.codec().decode(s);break}case 2:{a.peer=kr.codec().decode(s,s.uint32(),{limits:i.limits?.peer});break}case 3:{a.limit=Nr.codec().decode(s,s.uint32(),{limits:i.limits?.limit});break}case 4:{a.status=q.codec().decode(s);break}default:{s.skipType(h&7);break}}}return a})),n),r.encode=s=>Dt(s,r.codec()),r.decode=(s,o)=>Ut(s,r.codec(),o)})(Ht||(Ht={}));var kr;(function(r){let t;r.codec=()=>(t==null&&(t=Ot((e,n,s={})=>{if(s.lengthDelimited!==!1&&n.fork(),e.id!=null&&e.id.byteLength>0&&(n.uint32(10),n.bytes(e.id)),e.addrs!=null)for(let o of e.addrs)n.uint32(18),n.bytes(o);s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let o={id:it(0),addrs:[]},i=n==null?e.len:e.pos+n;for(;e.pos<i;){let a=e.uint32();switch(a>>>3){case 1:{o.id=e.bytes();break}case 2:{if(s.limits?.addrs!=null&&o.addrs.length===s.limits.addrs)throw new jr('Decode error - map field "addrs" had too many elements');o.addrs.push(e.bytes());break}default:{e.skipType(a&7);break}}}return o})),t),r.encode=e=>Dt(e,r.codec()),r.decode=(e,n)=>Ut(e,r.codec(),n)})(kr||(kr={}));var Ws;(function(r){let t;r.codec=()=>(t==null&&(t=Ot((e,n,s={})=>{if(s.lengthDelimited!==!1&&n.fork(),e.expire!=null&&e.expire!==0n&&(n.uint32(8),n.uint64(e.expire)),e.addrs!=null)for(let o of e.addrs)n.uint32(18),n.bytes(o);e.voucher!=null&&(n.uint32(26),n.bytes(e.voucher)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let o={expire:0n,addrs:[]},i=n==null?e.len:e.pos+n;for(;e.pos<i;){let a=e.uint32();switch(a>>>3){case 1:{o.expire=e.uint64();break}case 2:{if(s.limits?.addrs!=null&&o.addrs.length===s.limits.addrs)throw new jr('Decode error - map field "addrs" had too many elements');o.addrs.push(e.bytes());break}case 3:{o.voucher=e.bytes();break}default:{e.skipType(a&7);break}}}return o})),t),r.encode=e=>Dt(e,r.codec()),r.decode=(e,n)=>Ut(e,r.codec(),n)})(Ws||(Ws={}));var Nr;(function(r){let t;r.codec=()=>(t==null&&(t=Ot((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.duration!=null&&(n.uint32(8),n.uint32(e.duration)),e.data!=null&&(n.uint32(16),n.uint64(e.data)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let o={},i=n==null?e.len:e.pos+n;for(;e.pos<i;){let a=e.uint32();switch(a>>>3){case 1:{o.duration=e.uint32();break}case 2:{o.data=e.uint64();break}default:{e.skipType(a&7);break}}}return o})),t),r.encode=e=>Dt(e,r.codec()),r.decode=(e,n)=>Ut(e,r.codec(),n)})(Nr||(Nr={}));var q;(function(r){r.UNUSED="UNUSED",r.OK="OK",r.RESERVATION_REFUSED="RESERVATION_REFUSED",r.RESOURCE_LIMIT_EXCEEDED="RESOURCE_LIMIT_EXCEEDED",r.PERMISSION_DENIED="PERMISSION_DENIED",r.CONNECTION_FAILED="CONNECTION_FAILED",r.NO_RESERVATION="NO_RESERVATION",r.MALFORMED_MESSAGE="MALFORMED_MESSAGE",r.UNEXPECTED_MESSAGE="UNEXPECTED_MESSAGE"})(q||(q={}));var sa;(function(r){r[r.UNUSED=0]="UNUSED",r[r.OK=100]="OK",r[r.RESERVATION_REFUSED=200]="RESERVATION_REFUSED",r[r.RESOURCE_LIMIT_EXCEEDED=201]="RESOURCE_LIMIT_EXCEEDED",r[r.PERMISSION_DENIED=202]="PERMISSION_DENIED",r[r.CONNECTION_FAILED=203]="CONNECTION_FAILED",r[r.NO_RESERVATION=204]="NO_RESERVATION",r[r.MALFORMED_MESSAGE=400]="MALFORMED_MESSAGE",r[r.UNEXPECTED_MESSAGE=401]="UNEXPECTED_MESSAGE"})(sa||(sa={}));(function(r){r.codec=()=>Xe(sa)})(q||(q={}));var js;(function(r){let t;r.codec=()=>(t==null&&(t=Ot((e,n,s={})=>{s.lengthDelimited!==!1&&n.fork(),e.relay!=null&&e.relay.byteLength>0&&(n.uint32(10),n.bytes(e.relay)),e.peer!=null&&e.peer.byteLength>0&&(n.uint32(18),n.bytes(e.peer)),e.expiration!=null&&e.expiration!==0n&&(n.uint32(24),n.uint64(e.expiration)),s.lengthDelimited!==!1&&n.ldelim()},(e,n,s={})=>{let o={relay:it(0),peer:it(0),expiration:0n},i=n==null?e.len:e.pos+n;for(;e.pos<i;){let a=e.uint32();switch(a>>>3){case 1:{o.relay=e.bytes();break}case 2:{o.peer=e.bytes();break}case 3:{o.expiration=e.uint64();break}default:{e.skipType(a&7);break}}}return o})),t),r.encode=e=>Dt(e,r.codec()),r.decode=(e,n)=>Ut(e,r.codec(),n)})(js||(js={}));function Zs(r){let t=new globalThis.AbortController;function e(){t.abort();for(let o of r)o?.removeEventListener!=null&&o.removeEventListener("abort",e)}for(let o of r){if(o?.aborted===!0){e();break}o?.addEventListener!=null&&o.addEventListener("abort",e)}function n(){for(let o of r)o?.removeEventListener!=null&&o.removeEventListener("abort",e)}let s=t.signal;return s.clear=n,s}var Xs=class extends Error{constructor(t="Transfer limit error"){super(t),this.name="TransferLimitError"}},hn=class extends Error{constructor(t="Duration limit error"){super(t),this.name="DurationLimitError"}};async function*Eu(r,t,e){let n=t.remaining;for await(let s of r){let o=BigInt(s.byteLength);if(t.remaining-o<0){let i=Number(t.remaining);t.remaining=0n;try{i!==0&&(yield s.subarray(0,i))}catch(a){e.log.error(a)}throw new Xs(`data limit of ${n} bytes exceeded`)}t.remaining-=o,yield s}}function Su(r,t,e,n,s){function o(u){r.abort(u),t.abort(u)}let i=[e];n?.duration!=null&&i.push(AbortSignal.timeout(n.duration));let a=Zs(i),c=!1,h=!1,f;n?.data!=null&&(f={remaining:n.data}),queueMicrotask(()=>{let u=()=>{t.abort(new hn(`duration limit of ${n?.duration} ms exceeded`))};a.addEventListener("abort",u,{once:!0}),t.sink(f==null?r.source:Eu(r.source,f,s)).catch(p=>{s.log.error("error while relaying streams src -> dst",p),o(p)}).finally(()=>{c=!0,h&&(a.removeEventListener("abort",u),a.clear())})}),queueMicrotask(()=>{let u=()=>{r.abort(new hn(`duration limit of ${n?.duration} ms exceeded`))};a.addEventListener("abort",u,{once:!0}),r.sink(f==null?t.source:Eu(t.source,f,s)).catch(p=>{s.log.error("error while relaying streams dst -> src",p),o(p)}).finally(()=>{h=!0,c&&(a.removeEventListener("abort",u),a.clear())})})}function oa(r){let t=r*BigInt(1e3),e=new Date().getTime();return Number(t-BigInt(e))}var dn=class{expires;bytes;constructor(t){t?.duration!=null&&t?.duration!==0&&(this.expires=Date.now()+t.duration*1e3),this.bytes=t?.data,this.bytes===0n&&(this.bytes=void 0),this.onData=this.onData.bind(this)}onData(t){this.bytes!=null&&(this.bytes-=BigInt(t.byteLength),this.bytes<0n&&(this.bytes=0n))}getLimits(){if(this.expires==null&&this.bytes==null)return;let t={};if(this.bytes!=null){let e=this;Object.defineProperty(t,"bytes",{get(){return e.bytes}})}if(this.expires!=null){let e=this;Object.defineProperty(t,"seconds",{get(){return Math.round(((e.expires??0)-Date.now())/1e3)}})}return t}};function Ys(r,t){let e={[Symbol.iterator]:()=>e,next:()=>{let n=r.next(),s=n.value;return n.done===!0||s==null?{done:!0,value:void 0}:{done:!1,value:t(s)}}};return e}var Ae=class{map;constructor(t){if(this.map=new Map,t!=null)for(let[e,n]of t.entries())this.map.set(e.toString(),{key:e,value:n})}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){return this.map.delete(t.toString())}entries(){return Ys(this.map.entries(),t=>[t[1].key,t[1].value])}forEach(t){this.map.forEach((e,n)=>{t(e.value,e.key,this)})}get(t){return this.map.get(t.toString())?.value}has(t){return this.map.has(t.toString())}set(t,e){this.map.set(t.toString(),{key:t,value:e})}keys(){return Ys(this.map.values(),t=>t.key)}values(){return Ys(this.map.values(),t=>t.value)}get size(){return this.map.size}};var aa=wo(ia(),1);var Ip=Math.LN2*Math.LN2,Qs=class{seeds;bits;buffer;constructor(t={}){t.seeds!=null?this.seeds=t.seeds:this.seeds=kp(t.hashes??8),this.bits=t.bits??1024,this.buffer=it(Math.ceil(this.bits/8))}add(t){typeof t=="string"&&(t=F(t));for(let e=0;e<this.seeds.length;e++){let s=aa.default.x86.hash32(t,this.seeds[e])%this.bits;this.setbit(s)}}has(t){typeof t=="string"&&(t=F(t));for(let e=0;e<this.seeds.length;e++){let s=aa.default.x86.hash32(t,this.seeds[e])%this.bits;if(!this.getbit(s))return!1}return!0}clear(){this.buffer.fill(0)}setbit(t){let e=Math.floor(t/8),n=t%8,s=this.buffer[e];s|=1<<n,this.buffer[e]=s}getbit(t){let e=Math.floor(t/8),n=t%8;return(this.buffer[e]&1<<n)!==0}};function ca(r,t=.005){let e=Tp(r,t);return new Qs(e)}function Tp(r,t=.005){let e=Math.round(-1*r*Math.log(t)/Ip),n=Math.round(e/r*Math.LN2);return{bits:e,hashes:n}}function kp(r){let t,e,n=[];for(let s=0;s<r;s++)for(t=new Pt(Is(4)),n[s]=t.getUint32(0,!0),e=0;e<s;e++)if(n[s]===n[e]){s--;break}return n}var la=64,Qt=class{fp;h;seed;constructor(t,e,n,s=2){if(s>la)throw new TypeError("Invalid Fingerprint Size");let o=e.hashV(t,n),i=it(s);for(let a=0;a<i.length;a++)i[a]=o[a];i.length===0&&(i[0]=7),this.fp=i,this.h=e,this.seed=n}hash(){return this.h.hash(this.fp,this.seed)}equals(t){return t?.fp instanceof Uint8Array?ct(this.fp,t.fp):!1}};function tr(r,t){return Math.floor(Math.random()*(t-r))+r}var er=class{contents;constructor(t){this.contents=new Array(t).fill(null)}has(t){if(!(t instanceof Qt))throw new TypeError("Invalid Fingerprint");return this.contents.some(e=>t.equals(e))}add(t){if(!(t instanceof Qt))throw new TypeError("Invalid Fingerprint");for(let e=0;e<this.contents.length;e++)if(this.contents[e]==null)return this.contents[e]=t,!0;return!0}swap(t){if(!(t instanceof Qt))throw new TypeError("Invalid Fingerprint");let e=tr(0,this.contents.length-1),n=this.contents[e];return this.contents[e]=t,n}remove(t){if(!(t instanceof Qt))throw new TypeError("Invalid Fingerprint");let e=this.contents.findIndex(n=>t.equals(n));return e>-1?(this.contents[e]=null,!0):!1}};var ua={32:16777619n,64:1099511628211n,128:309485009821345068724781371n,256:374144419156711147060143317175368453031918731002211n,512:35835915874844867368919076489095108449946327955754392558399825615420669938882575126094039892345713852759n,1024:5016456510113118655434598811035278955030765345404790744303017523831112055108147451509157692220295382716162651878526895249385292291816524375083746691371804094271873160484737966720260389217684476157468082573n},_u={32:2166136261n,64:14695981039346656037n,128:144066263297769815596495629667062367629n,256:100029257958052580907070968620625704837092796014241193945225284501741471925557n,512:9659303129496669498009435400716310466090418745672637896108374329434462657994582932197716438449813051892206539805784495328239340083876191928701583869517785n,1024:14197795064947621068722070641403218320880622795441933960878474914617582723252296732303717722150864096521202355549365628174669108571814760471015076148029755969804077320157692458563003215304957150157403644460363550505412711285966361610267868082893823963790439336411086884584107735010676915n},Iu=new globalThis.TextEncoder;function Np(r,t){let e=ua[t],n=_u[t];for(let s=0;s<r.length;s++)n^=BigInt(r[s]),n=BigInt.asUintN(t,n*e);return n}function Cp(r,t,e){if(e.length===0)throw new Error("The `utf8Buffer` option must have a length greater than zero");let n=ua[t],s=_u[t],o=r;for(;o.length>0;){let i=Iu.encodeInto(o,e);o=o.slice(i.read);for(let a=0;a<i.written;a++)s^=BigInt(e[a]),s=BigInt.asUintN(t,s*n)}return s}function fa(r,{size:t=32,utf8Buffer:e}={}){if(!ua[t])throw new Error("The `size` option must be one of 32, 64, 128, 256, 512, or 1024");if(typeof r=="string"){if(e)return Cp(r,t,e);r=Iu.encode(r)}return Np(r,t)}var Rp=wo(ia(),1);var mn={hash:r=>Number(fa(r,{size:32})),hashV:(r,t)=>Lp(mn.hash(r,t))};function Lp(r){let t=r.toString(16);return t.length%2===1&&(t=`0${t}`),F(t,"base16")}var Up=500,gn=class{bucketSize;filterSize;fingerprintSize;buckets;count;hash;seed;constructor(t){this.filterSize=t.filterSize,this.bucketSize=t.bucketSize??4,this.fingerprintSize=t.fingerprintSize??2,this.count=0,this.buckets=[],this.hash=t.hash??mn,this.seed=t.seed??tr(0,Math.pow(2,10))}add(t){typeof t=="string"&&(t=F(t));let e=new Qt(t,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(t,this.seed)%this.filterSize,s=(n^e.hash())%this.filterSize;if(this.buckets[n]==null&&(this.buckets[n]=new er(this.bucketSize)),this.buckets[s]==null&&(this.buckets[s]=new er(this.bucketSize)),this.buckets[n].add(e)||this.buckets[s].add(e))return this.count++,!0;let o=[n,s],i=o[tr(0,o.length-1)];this.buckets[i]==null&&(this.buckets[i]=new er(this.bucketSize));for(let a=0;a<Up;a++){let c=this.buckets[i].swap(e);if(c!=null&&(i=(i^c.hash())%this.filterSize,this.buckets[i]==null&&(this.buckets[i]=new er(this.bucketSize)),this.buckets[i].add(c)))return this.count++,!0}return!1}has(t){typeof t=="string"&&(t=F(t));let e=new Qt(t,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(t,this.seed)%this.filterSize,s=this.buckets[n]?.has(e)??!1;if(s)return s;let o=(n^e.hash())%this.filterSize;return this.buckets[o]?.has(e)??!1}remove(t){typeof t=="string"&&(t=F(t));let e=new Qt(t,this.hash,this.seed,this.fingerprintSize),n=this.hash.hash(t,this.seed)%this.filterSize,s=this.buckets[n]?.remove(e)??!1;if(s)return this.count--,s;let o=(n^e.hash())%this.filterSize,i=this.buckets[o]?.remove(e)??!1;return i&&this.count--,i}get reliable(){return Math.floor(100*(this.count/this.filterSize))<=90}},Dp={1:.5,2:.84,4:.95,8:.98};function Op(r=.001){return r>.002?2:r>1e-5?4:8}function Tu(r,t=.001){let e=Op(t),n=Dp[e],s=Math.round(r/n),o=Math.min(Math.ceil(Math.log2(1/t)+Math.log2(2*e)),la);return{filterSize:s,bucketSize:e,fingerprintSize:o}}var to=class{filterSize;bucketSize;fingerprintSize;scale;filterSeries;hash;seed;constructor(t){this.bucketSize=t.bucketSize??4,this.filterSize=t.filterSize??(1<<18)/this.bucketSize,this.fingerprintSize=t.fingerprintSize??2,this.scale=t.scale??2,this.hash=t.hash??mn,this.seed=t.seed??tr(0,Math.pow(2,10)),this.filterSeries=[new gn({filterSize:this.filterSize,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed})]}add(t){if(typeof t=="string"&&(t=F(t)),this.has(t))return!0;let e=this.filterSeries.find(n=>n.reliable);if(e==null){let n=this.filterSize*Math.pow(this.scale,this.filterSeries.length);e=new gn({filterSize:n,bucketSize:this.bucketSize,fingerprintSize:this.fingerprintSize,hash:this.hash,seed:this.seed}),this.filterSeries.push(e)}return e.add(t)}has(t){typeof t=="string"&&(t=F(t));for(let e=0;e<this.filterSeries.length;e++)if(this.filterSeries[e].has(t))return!0;return!1}remove(t){typeof t=="string"&&(t=F(t));for(let e=0;e<this.filterSeries.length;e++)if(this.filterSeries[e].remove(t))return!0;return!1}get count(){return this.filterSeries.reduce((t,e)=>t+e.count,0)}};function ha(r,t=.001,e){return new to({...Tu(r,t),...e??{}})}var eo=class{filter;constructor(t,e){this.filter=ha(t,e)}has(t){return this.filter.has(t.toMultihash().bytes)}add(t){this.filter.add(t.toMultihash().bytes)}remove(t){this.filter.remove?.(t.toMultihash().bytes)}};function da(r,t=.001){return new eo(r,t)}var ro=class{reservations=new Ae;_started=!1;interval;maxReservations;reservationClearInterval;applyDefaultLimit;reservationTtl;defaultDurationLimit;defaultDataLimit;constructor(t={}){this.maxReservations=t.maxReservations??15,this.reservationClearInterval=t.reservationClearInterval??3e5,this.applyDefaultLimit=t.applyDefaultLimit!==!1,this.reservationTtl=t.reservationTtl??72e5,this.defaultDurationLimit=t.defaultDurationLimit??12e4,this.defaultDataLimit=t.defaultDataLimit??bu}isStarted(){return this._started}start(){this._started||(this._started=!0,this.interval=setInterval(()=>{let t=new Date().getTime();this.reservations.forEach((e,n)=>{e.expire.getTime()<t&&this.reservations.delete(n)})},this.reservationClearInterval))}stop(){clearInterval(this.interval)}reserve(t,e,n){if(this.reservations.size>=this.maxReservations&&!this.reservations.has(t))return{status:q.RESERVATION_REFUSED};let s=new Date(Date.now()+this.reservationTtl),o;return this.applyDefaultLimit&&(o=n??{data:this.defaultDataLimit,duration:this.defaultDurationLimit}),this.reservations.set(t,{addr:e,expire:s,limit:o}),{status:q.OK,expire:Math.round(s.getTime()/1e3)}}removeReservation(t){this.reservations.delete(t)}hasReservation(t){return this.reservations.has(t)}get(t){return this.reservations.get(t)}};var no=class r{domain="libp2p-relay-rsvp";codec=new Uint8Array([3,2]);relay;peer;expiration;constructor({relay:t,peer:e,expiration:n}){this.relay=t,this.peer=e,this.expiration=n}marshal(){return js.encode({relay:this.relay.toMultihash().bytes,peer:this.peer.toMultihash().bytes,expiration:BigInt(this.expiration)})}equals(t){return!(!(t instanceof r)||!this.peer.equals(t.peer)||!this.relay.equals(t.relay)||this.expiration!==t.expiration)}};var ku=r=>r.protoCodes().includes(290),Fp={maxOutboundStopStreams:fn},pa=class extends qt{registrar;peerStore;addressManager;peerId;privateKey;connectionManager;connectionGater;reservationStore;started;hopTimeout;shutdownController;maxInboundHopStreams;maxOutboundHopStreams;maxOutboundStopStreams;log;constructor(t,e={}){super(),this.log=t.logger.forComponent("libp2p:circuit-relay:server"),this.registrar=t.registrar,this.peerStore=t.peerStore,this.addressManager=t.addressManager,this.peerId=t.peerId,this.privateKey=t.privateKey,this.connectionManager=t.connectionManager,this.connectionGater=t.connectionGater,this.started=!1,this.hopTimeout=e?.hopTimeout??wu,this.maxInboundHopStreams=e.maxInboundHopStreams,this.maxOutboundHopStreams=e.maxOutboundHopStreams,this.maxOutboundStopStreams=e.maxOutboundStopStreams??Fp.maxOutboundStopStreams,this.reservationStore=new ro(e.reservations),this.shutdownController=new AbortController,Ft(1/0,this.shutdownController.signal)}[Symbol.toStringTag]="@libp2p/circuit-relay-v2-server";isStarted(){return this.started}async start(){this.started||(await this.registrar.handle(Gt,t=>{this.onHop(t).catch(e=>{this.log.error(e)})},{maxInboundStreams:this.maxInboundHopStreams,maxOutboundStreams:this.maxOutboundHopStreams,runOnLimitedConnection:!0}),this.reservationStore.start(),this.started=!0)}async stop(){this.reservationStore.stop(),this.shutdownController.abort(),await this.registrar.unhandle(Gt),this.started=!1}async onHop({connection:t,stream:e}){this.log("received circuit v2 hop protocol stream from %p",t.remotePeer);let n=Vt(),s=setTimeout(()=>{n.reject("timed out")},this.hopTimeout),o=Ve(e);try{let i=await Promise.race([o.pb(Z).read(),n.promise]);if(i?.type==null)throw new Error("request was invalid, could not read from stream");this.log("received",i.type),await Promise.race([this.handleHopProtocol({connection:t,stream:o,request:i}),n.promise])}catch(i){this.log.error("error while handling hop",i),await o.pb(Z).write({type:Z.Type.STATUS,status:q.MALFORMED_MESSAGE}),e.abort(i)}finally{clearTimeout(s)}}async handleHopProtocol({stream:t,request:e,connection:n}){switch(this.log("received hop message"),e.type){case Z.Type.RESERVE:await this.handleReserve({stream:t,request:e,connection:n});break;case Z.Type.CONNECT:await this.handleConnect({stream:t,request:e,connection:n});break;default:this.log.error("invalid hop request type %s via peer %p",e.type,n.remotePeer),await t.pb(Z).write({type:Z.Type.STATUS,status:q.UNEXPECTED_MESSAGE})}}async handleReserve({stream:t,request:e,connection:n}){let s=t.pb(Z);if(this.log("hop reserve request from %p",n.remotePeer),ku(n.remoteAddr)){this.log.error("relay reservation over circuit connection denied for peer: %p",n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}if(await this.connectionGater.denyInboundRelayReservation?.(n.remotePeer)===!0){this.log.error("reservation for %p denied by connection gater",n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}let o=this.reservationStore.reserve(n.remotePeer,n.remoteAddr);if(o.status!==q.OK){await s.write({type:Z.Type.STATUS,status:o.status});return}try{if(o.expire!=null){let i=o.expire*1e3-Date.now();await this.peerStore.merge(n.remotePeer,{tags:{[gu]:{value:1,ttl:i}}})}await s.write({type:Z.Type.STATUS,status:q.OK,reservation:await this.makeReservation(n.remotePeer,BigInt(o.expire??0)),limit:this.reservationStore.get(n.remotePeer)?.limit}),this.log("sent confirmation response to %s",n.remotePeer)}catch(i){this.log.error("failed to send confirmation response to %p",n.remotePeer,i),this.reservationStore.removeReservation(n.remotePeer)}}async makeReservation(t,e){let n=[];for(let o of this.addressManager.getAddresses())o.toString().includes("/p2p-circuit")||n.push(o.bytes);let s=await un.seal(new no({peer:t,relay:this.peerId,expiration:Number(e)}),this.privateKey);return{addrs:n,expire:e,voucher:s.marshal()}}async handleConnect({stream:t,request:e,connection:n}){let s=t.pb(Z);if(ku(n.remoteAddr)){this.log.error("relay reservation over circuit connection denied for peer: %p",n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}this.log("hop connect request from %p",n.remotePeer);let o;try{if(e.peer==null)throw this.log.error("no peer info in hop connect request"),new Error("no peer info in request");e.peer.addrs.forEach(xt),o=cn(Kt(e.peer.id))}catch(u){this.log.error("invalid hop connect request via peer %p %s",n.remotePeer,u),await s.write({type:Z.Type.STATUS,status:q.MALFORMED_MESSAGE});return}if(!this.reservationStore.hasReservation(o)){this.log.error("hop connect denied for destination peer %p not having a reservation for %p with status %s",o,n.remotePeer,q.NO_RESERVATION),await s.write({type:Z.Type.STATUS,status:q.NO_RESERVATION});return}if(await this.connectionGater.denyOutboundRelayedConnection?.(n.remotePeer,o)===!0){this.log.error("hop connect for %p to %p denied by connection gater",n.remotePeer,o),await s.write({type:Z.Type.STATUS,status:q.PERMISSION_DENIED});return}let i=this.connectionManager.getConnections(o);if(i.length===0){this.log("hop connect denied for destination peer %p not having a connection for %p as there is no destination connection",o,n.remotePeer),await s.write({type:Z.Type.STATUS,status:q.NO_RESERVATION});return}let a=this.reservationStore.get(o)?.limit,c=i[0],h=await this.stopHop({connection:c,request:{type:Ht.Type.CONNECT,peer:{id:n.remotePeer.toMultihash().bytes,addrs:[]},limit:a}});if(h==null){this.log.error("failed to open stream to destination peer %p",c?.remotePeer),await s.write({type:Z.Type.STATUS,status:q.CONNECTION_FAILED});return}await s.write({type:Z.Type.STATUS,status:q.OK,limit:a});let f=t.unwrap();this.log("connection from %p to %p established - merging streams",n.remotePeer,o),Su(f,h,this.shutdownController.signal,a,{log:this.log})}async stopHop({connection:t,request:e}){this.log("starting circuit relay v2 stop request to %s",t.remotePeer);let n=await t.newStream([Qe],{maxOutboundStreams:this.maxOutboundStopStreams,runOnLimitedConnection:!0}),s=Ve(n),o=s.pb(Ht);await o.write(e);let i;try{i=await o.read()}catch{this.log.error("error parsing stop message response from %p",t.remotePeer)}if(i==null){this.log.error("could not read response from %p",t.remotePeer),await n.close();return}if(i.status===q.OK)return this.log("stop request to %p was successful",t.remotePeer),s.unwrap();this.log("stop request failed with code %d",i.status),await n.close()}get reservations(){return this.reservationStore.reservations}};function Nu(r={}){return t=>new pa(t,r)}function qp(r){let[t,e]=r[Symbol.asyncIterator]!=null?[r[Symbol.asyncIterator](),Symbol.asyncIterator]:[r[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>t.next(),push:s=>{n.push(s)},next:()=>n.length>0?{done:!1,value:n.shift()}:t.next(),[e](){return this}}}var Cu=qp;function Kp(r){return r[Symbol.asyncIterator]!=null}function Ru(r){return r?.then!=null}function zp(r,t){let e=0;if(Kp(r))return async function*(){for await(let c of r){let h=t(c,e++);Ru(h)&&await h,yield c}}();let n=Cu(r),{value:s,done:o}=n.next();if(o===!0)return function*(){}();if(typeof t(s,e++)?.then=="function")return async function*(){yield s;for await(let c of n){let h=t(c,e++);Ru(h)&&await h,yield c}}();let a=t;return function*(){yield s;for(let c of n)a(c,e++),yield c}()}var Lu=zp;var so=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},Cr=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new so(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let e=this.head;this.head=e.next=new so(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let e=this.tail.next;this.tail.next=null,this.tail=e,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var ga=class extends Error{type;code;constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.code=e??"ABORT_ERR"}};function Rr(r={}){return $p(e=>{let n=e.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},r)}function $p(r,t){t=t??{};let e=t.onEnd,n=new Cr,s,o,i,a=Vt(),c=async()=>{try{return n.isEmpty()?i?{done:!0}:await new Promise((y,b)=>{o=w=>{o=null,n.push(w);try{y(r(n))}catch(m){b(m)}return s}}):r(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=Vt()})}},h=y=>o!=null?o(y):(n.push(y),s),f=y=>(n=new Cr,o!=null?o({error:y}):(n.push({error:y}),s)),u=y=>{if(i)return s;if(t?.objectMode!==!0&&y?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return h({done:!1,value:y})},p=y=>i?s:(i=!0,y!=null?f(y):h({done:!0})),l=()=>(n=new Cr,p(),{done:!0}),d=y=>(p(y),{done:!0});if(s={[Symbol.asyncIterator](){return this},next:c,return:l,throw:d,push:u,end:p,get readableLength(){return n.size},onEmpty:async y=>{let b=y?.signal;if(b?.throwIfAborted(),n.isEmpty())return;let w,m;b!=null&&(w=new Promise((v,A)=>{m=()=>{A(new ga)},b.addEventListener("abort",m)}));try{await Promise.race([a.promise,w])}finally{m!=null&&b!=null&&b?.removeEventListener("abort",m)}}},e==null)return s;let g=s;return s={[Symbol.asyncIterator](){return this},next(){return g.next()},throw(y){return g.throw(y),e!=null&&(e(y),e=void 0),{done:!0}},return(){return g.return(),e!=null&&(e(),e=void 0),{done:!0}},push:u,end(y){return g.end(y),e!=null&&(e(y),e=void 0),s},get readableLength(){return g.readableLength},onEmpty:y=>g.onEmpty(y)},s}function Gp(r){return r[Symbol.asyncIterator]!=null}function Wp(...r){let t=[];for(let e of r)Gp(e)||t.push(e);return t.length===r.length?function*(){for(let e of t)yield*e}():async function*(){let e=Rr({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(r.map(async n=>{for await(let s of n)e.push(s)})),e.end()}catch(n){e.end(n)}}),yield*e}()}var Uu=Wp;function Du(r,...t){if(r==null)throw new Error("Empty pipeline");if(ya(r)){let n=r;r=()=>n.source}else if(Mu(r)||Ou(r)){let n=r;r=()=>n}let e=[r,...t];if(e.length>1&&ya(e[e.length-1])&&(e[e.length-1]=e[e.length-1].sink),e.length>2)for(let n=1;n<e.length-1;n++)ya(e[n])&&(e[n]=Zp(e[n]));return jp(...e)}var jp=(...r)=>{let t;for(;r.length>0;)t=r.shift()(t);return t},Ou=r=>r?.[Symbol.asyncIterator]!=null,Mu=r=>r?.[Symbol.iterator]!=null,ya=r=>r==null?!1:r.sink!=null&&r.source!=null,Zp=r=>t=>{let e=r.sink(t);if(e?.then!=null){let n=Rr({objectMode:!0});e.then(()=>{n.end()},i=>{n.end(i)});let s,o=r.source;if(Ou(o))s=async function*(){yield*o,n.end()};else if(Mu(o))s=function*(){yield*o,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return Uu(n,s())}return r.source};function ba(r){let{stream:t,remoteAddr:e,logger:n,onDataRead:s,onDataWrite:o}=r,i=n.forComponent("libp2p:stream:converter"),a=!1,c=!1,h=t.close.bind(t);t.close=async d=>{await h(d),l(!0)};let f=t.abort.bind(t);t.abort=d=>{f(d),l(!0)};let u=t.sink.bind(t);t.sink=async d=>{try{await u(Du(d,g=>Lu(g,y=>o?.(y))))}catch(g){g.type!=="aborted"&&i.error("%s error in sink",e,g)}finally{c=!0,l()}};let p={log:i,sink:t.sink,source:async function*(){try{for await(let d of t.source)s?.(d),yield d}finally{a=!0,l()}}(),remoteAddr:e,timeline:{open:Date.now(),close:void 0},close:t.close,abort:t.abort};function l(d){d===!0&&(a=!0,c=!0),a&&c&&p.timeline.close==null&&(p.timeline.close=Date.now())}return p}var Xp=T("dns4"),Yp=T("dns6"),Jp=T("dnsaddr"),rr=at(T("dns"),Jp,Xp,Yp),ao=at(T("ip4"),T("ip6")),Lr=at(D(ao,T("tcp")),D(rr,T("tcp"))),co=D(ao,T("udp")),Qp=D(co,T("utp")),t0=D(co,T("quic")),e0=D(co,T("quic-v1")),wa=at(D(Lr,T("ws")),D(rr,T("ws"))),oo=at(D(wa,T("p2p")),wa),xa=at(D(Lr,T("wss")),D(rr,T("wss")),D(Lr,T("tls"),T("ws")),D(rr,T("tls"),T("ws"))),io=at(D(xa,T("p2p")),xa),va=at(D(Lr,T("http")),D(ao,T("http")),D(rr,T("http"))),Ea=at(D(Lr,T("https")),D(ao,T("https")),D(rr,T("https"))),Pu=D(co,T("webrtc-direct"),T("certhash")),Fu=at(D(Pu,T("p2p")),Pu),Vu=D(e0,T("webtransport"),T("certhash"),T("certhash")),qu=at(D(Vu,T("p2p")),Vu),Ku=at(D(oo,T("p2p-webrtc-star"),T("p2p")),D(io,T("p2p-webrtc-star"),T("p2p")),D(oo,T("p2p-webrtc-star")),D(io,T("p2p-webrtc-star"))),$2=at(D(oo,T("p2p-websocket-star"),T("p2p")),D(io,T("p2p-websocket-star"),T("p2p")),D(oo,T("p2p-websocket-star")),D(io,T("p2p-websocket-star"))),zu=at(D(va,T("p2p-webrtc-direct"),T("p2p")),D(Ea,T("p2p-webrtc-direct"),T("p2p")),D(va,T("p2p-webrtc-direct")),D(Ea,T("p2p-webrtc-direct"))),nr=at(wa,xa,va,Ea,Ku,zu,Lr,Qp,t0,rr,Fu,qu),G2=at(D(nr,T("p2p-stardust"),T("p2p")),D(nr,T("p2p-stardust"))),He=at(D(nr,T("p2p")),Ku,zu,Fu,qu,T("p2p")),Hu=at(D(He,T("p2p-circuit"),He),D(He,T("p2p-circuit")),D(T("p2p-circuit"),He),D(nr,T("p2p-circuit")),D(T("p2p-circuit"),nr),T("p2p-circuit")),$u=()=>at(D(Hu,$u),Hu),Be=$u(),W2=at(D(Be,He,Be),D(He,Be),D(Be,He),Be,He);var j2=at(D(Be,T("webrtc"),T("p2p")),D(Be,T("webrtc")),D(nr,T("webrtc"),T("p2p")),D(nr,T("webrtc")),T("webrtc"));function Gu(r){function t(e){let n;try{n=xt(e)}catch{return!1}let s=r(n.protoNames());return s===null?!1:s===!0||s===!1?s:s.length===0}return t}function D(...r){function t(e){if(e.length<r.length)return null;let n=e;return r.some(s=>(n=typeof s=="function"?s().partialMatch(e):s.partialMatch(e),Array.isArray(n)&&(e=n),n===null)),n}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:Gu(t),partialMatch:t}}function at(...r){function t(n){let s=null;return r.some(o=>{let i=typeof o=="function"?o().partialMatch(n):o.partialMatch(n);return i!=null?(s=i,!0):!1}),s}return{toString:function(){return"{ "+r.join(" ")+" }"},input:r,matches:Gu(t),partialMatch:t}}function T(r){let t=r;function e(s){let o;try{o=xt(s)}catch{return!1}let i=o.protoNames();return i.length===1&&i[0]===t}function n(s){return s.length===0?null:s[0]===t?s.slice(1):null}return{toString:function(){return t},matches:e,partialMatch:n}}var Fe=class extends Event{type;detail;constructor(t,e){super(t),this.type=t,this.detail=e}};var Sa=class extends Error{type;code;constructor(t,e){super(t??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=e??"ABORT_ERR"}};async function lo(r,t,e,n){let s=new Sa(n?.errorMessage,n?.errorCode);return e?.aborted===!0?Promise.reject(s):new Promise((o,i)=>{function a(){e?.removeEventListener("abort",f),r.removeEventListener(t,c),n?.errorEvent!=null&&r.removeEventListener(n.errorEvent,h)}let c=u=>{try{if(n?.filter?.(u)===!1)return}catch(p){a(),i(p);return}a(),o(u)},h=u=>{a(),i(u.detail)},f=()=>{a(),i(s)};e?.addEventListener("abort",f),r.addEventListener(t,c),n?.errorEvent!=null&&r.addEventListener(n.errorEvent,h)})}var uo=class{deferred;signal;constructor(t){this.signal=t,this.deferred=Vt(),this.onAbort=this.onAbort.bind(this),this.signal?.addEventListener("abort",this.onAbort)}onAbort(){this.deferred.reject(this.signal?.reason??new ae)}cleanup(){this.signal?.removeEventListener("abort",this.onAbort)}};function n0(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var fo=class{id;fn;options;recipients;status;timeline;controller;constructor(t,e){this.id=n0(),this.status="queued",this.fn=t,this.options=e,this.recipients=[],this.timeline={created:Date.now()},this.controller=new AbortController,Ft(1/0,this.controller.signal),this.onAbort=this.onAbort.bind(this)}abort(t){this.controller.abort(t)}onAbort(){this.recipients.reduce((e,n)=>e&&n.signal?.aborted===!0,!0)&&(this.controller.abort(new ae),this.cleanup())}async join(t={}){let e=new uo(t.signal);return this.recipients.push(e),t.signal?.addEventListener("abort",this.onAbort),e.deferred.promise}async run(){this.status="running",this.timeline.started=Date.now();try{this.controller.signal.throwIfAborted();let t=await Tr(this.fn({...this.options??{},signal:this.controller.signal}),this.controller.signal);this.recipients.forEach(e=>{e.deferred.resolve(t)}),this.status="complete"}catch(t){this.recipients.forEach(e=>{e.deferred.reject(t)}),this.status="errored"}finally{this.timeline.finished=Date.now(),this.cleanup()}}cleanup(){this.recipients.forEach(t=>{t.cleanup(),t.signal?.removeEventListener("abort",this.onAbort)})}};var ho=class extends qt{concurrency;queue;pending;sort;constructor(t={}){super(),this.concurrency=t.concurrency??Number.POSITIVE_INFINITY,this.pending=0,t.metricName!=null&&t.metrics?.registerMetricGroup(t.metricName,{calculate:()=>({size:this.queue.length,running:this.pending,queued:this.queue.length-this.pending})}),this.sort=t.sort,this.queue=[]}tryToStartAnother(){if(this.size===0)return queueMicrotask(()=>{this.safeDispatchEvent("empty")}),this.running===0&&queueMicrotask(()=>{this.safeDispatchEvent("idle")}),!1;if(this.pending<this.concurrency){let t;for(let e of this.queue)if(e.status==="queued"){t=e;break}return t==null?!1:(this.safeDispatchEvent("active"),this.pending++,t.run().finally(()=>{for(let e=0;e<this.queue.length;e++)if(this.queue[e]===t){this.queue.splice(e,1);break}this.pending--,this.tryToStartAnother(),this.safeDispatchEvent("next")}),!0)}return!1}enqueue(t){this.queue.push(t),this.sort!=null&&this.queue.sort(this.sort)}async add(t,e){e?.signal?.throwIfAborted();let n=new fo(t,e);return this.enqueue(n),this.safeDispatchEvent("add"),this.tryToStartAnother(),n.join(e).then(s=>(this.safeDispatchEvent("completed",{detail:s}),this.safeDispatchEvent("success",{detail:{job:n,result:s}}),s)).catch(s=>{if(n.status==="queued"){for(let o=0;o<this.queue.length;o++)if(this.queue[o]===n){this.queue.splice(o,1);break}}throw this.safeDispatchEvent("error",{detail:s}),this.safeDispatchEvent("failure",{detail:{job:n,error:s}}),s})}clear(){this.queue.splice(0,this.queue.length)}abort(){this.queue.forEach(t=>{t.abort(new ae)}),this.clear()}async onEmpty(t){this.size!==0&&await lo(this,"empty",t?.signal)}async onSizeLessThan(t,e){this.size<t||await lo(this,"next",e?.signal,{filter:()=>this.size<t})}async onIdle(t){this.pending===0&&this.size===0||await lo(this,"idle",t?.signal)}get size(){return this.queue.length}get queued(){return this.queue.length-this.pending}get running(){return this.pending}async*toGenerator(t){t?.signal?.throwIfAborted();let e=Rr({objectMode:!0}),n=c=>{c!=null?this.abort():this.clear(),e.end(c)},s=c=>{c.detail!=null&&e.push(c.detail)},o=c=>{n(c.detail)},i=()=>{n()},a=()=>{n(new ae("Queue aborted"))};this.addEventListener("completed",s),this.addEventListener("error",o),this.addEventListener("idle",i),t?.signal?.addEventListener("abort",a);try{yield*e}finally{this.removeEventListener("completed",s),this.removeEventListener("error",o),this.removeEventListener("idle",i),t?.signal?.removeEventListener("abort",a),n()}}};var Ur=class extends ho{has(t){return this.find(t)!=null}find(t){return this.queue.find(e=>t.equals(e.options.peerId))}};var po=class extends qt{peerStore;registrar;connectionManager;randomWalk;started;running;topologyId;log;discoveryController;filter;constructor(t,e={}){super(),this.log=t.logger.forComponent("libp2p:circuit-relay:discover-relays"),this.started=!1,this.running=!1,this.peerStore=t.peerStore,this.registrar=t.registrar,this.connectionManager=t.connectionManager,this.randomWalk=t.randomWalk,this.filter=e.filter,this.discoveryController=new AbortController,Ft(1/0,this.discoveryController.signal)}isStarted(){return this.started}async start(){this.topologyId=await this.registrar.register(Gt,{filter:this.filter,onConnect:t=>{this.log("discovered relay %p",t),this.safeDispatchEvent("relay:discover",{detail:t})}}),this.started=!0}stop(){this.topologyId!=null&&this.registrar.unregister(this.topologyId),this.discoveryController?.abort(),this.started=!1}startDiscovery(){this.running||(this.log("start discovery"),this.running=!0,this.discoveryController=new AbortController,Ft(1/0,this.discoveryController.signal),Promise.resolve().then(async()=>{this.log("searching peer store for relays");let t=await this.peerStore.all({filters:[n=>n.protocols.includes(Gt)],orders:[()=>Math.random()<.5?1:-1]});for(let n of t)this.log.trace("found relay peer %p in peer store",n.id),this.safeDispatchEvent("relay:discover",{detail:n.id});this.log("found %d relay peers in peer store",t.length);let e=new Ur({concurrency:5});this.log("start random walk");for await(let n of this.randomWalk.walk({signal:this.discoveryController.signal})){if(this.log.trace("found random peer %p",n.id),e.has(n.id)){this.log.trace("random peer %p was already in queue",n.id);continue}if(this.connectionManager.getConnections(n.id)?.length>0){this.log.trace("random peer %p was already connected",n.id);continue}if(!await this.connectionManager.isDialable(n.multiaddrs)){this.log.trace("random peer %p was not dialable",n.id,n.multiaddrs.map(s=>s.toString()));continue}this.log.trace("wait for space in queue for %p",n.id),await Tr(e.onSizeLessThan(10),this.discoveryController.signal),this.log("adding random peer %p to dial queue (length: %d)",n.id,e.size),e.add(async()=>{let s=Zs([this.discoveryController.signal,AbortSignal.timeout(5e3)]);Ft(1/0,s);try{await this.connectionManager.openConnection(n.id,{signal:s})}finally{s.clear()}},{peerId:n.id,signal:this.discoveryController.signal}).catch(s=>{this.log.error("error opening connection to random peer %p",n.id,s)})}await e.onIdle()}).catch(t=>{this.discoveryController.signal.aborted||this.log.error("failed when finding relays on the network",t)}))}stopDiscovery(){this.log("stop discovery"),this.running=!1,this.discoveryController?.abort()}};var Aa=class extends qt{connectionManager;relayStore;listeningAddrs;log;constructor(t){super(),this.log=t.logger.forComponent("libp2p:circuit-relay:transport:listener"),this.connectionManager=t.connectionManager,this.relayStore=t.relayStore,this.listeningAddrs=new Ae,this.relayStore.addEventListener("relay:removed",this._onRemoveRelayPeer)}_onRemoveRelayPeer=t=>{this.#t(t.detail)};async listen(t){this.log("listen on %a",t);let e=t.decapsulate("/p2p-circuit"),n=await this.connectionManager.openConnection(e);if(!this.relayStore.hasReservation(n.remotePeer)){this.log("making reservation on peer %p",n.remotePeer),await this.relayStore.addRelay(n.remotePeer,"configured");return}let s=this.relayStore.getReservation(n.remotePeer);if(s==null)throw new xn("Did not have reservation after making reservation");if(this.listeningAddrs.has(n.remotePeer)){this.log("already listening on relay %p",n.remotePeer);return}this.listeningAddrs.set(n.remotePeer,s.addrs.map(o=>xt(o).encapsulate("/p2p-circuit"))),this.safeDispatchEvent("listening",{})}getAddrs(){return[...this.listeningAddrs.values()].flat()}async close(){}#t(t){let e=this.listeningAddrs.has(t);this.log("relay peer removed %p - had reservation",t,e),this.listeningAddrs.delete(t),e&&(this.log.trace("removing relay event listener for peer %p",t),this.relayStore.removeEventListener("relay:removed",this._onRemoveRelayPeer),this.safeDispatchEvent("close",{}))}};function Wu(r){return new Aa(r)}var a0=60*1e3*10,c0=60*1e3*5,l0=30*1e3,mo=class extends qt{peerId;connectionManager;transportManager;peerStore;events;reserveQueue;reservations;maxDiscoveredRelays;maxReservationQueueLength;reservationCompletionTimeout;started;log;relayFilter;constructor(t,e){super(),this.log=t.logger.forComponent("libp2p:circuit-relay:transport:reservation-store"),this.peerId=t.peerId,this.connectionManager=t.connectionManager,this.transportManager=t.transportManager,this.peerStore=t.peerStore,this.events=t.events,this.reservations=new Ae,this.maxDiscoveredRelays=e?.discoverRelays??0,this.maxReservationQueueLength=e?.maxReservationQueueLength??100,this.reservationCompletionTimeout=e?.reservationCompletionTimeout??1e3,this.started=!1,this.relayFilter=ca(100),this.reserveQueue=new Ur({concurrency:e?.reservationConcurrency??1,metricName:"libp2p_relay_reservation_queue",metrics:t.metrics}),this.events.addEventListener("peer:disconnect",n=>{this.#e(n.detail)})}isStarted(){return this.started}start(){this.started=!0}afterStart(){this.reservations.size<this.maxDiscoveredRelays&&(this.log("not enough relays %d/%d",this.reservations.size,this.maxDiscoveredRelays),this.safeDispatchEvent("relay:not-enough-relays",{}))}stop(){this.reserveQueue.clear(),this.reservations.forEach(({timeout:t})=>{clearTimeout(t)}),this.reservations.clear(),this.started=!1}async addRelay(t,e){if(this.peerId.equals(t)){this.log("not trying to use self as relay");return}if(this.reserveQueue.size>this.maxReservationQueueLength){this.log("not adding potential relay peer %p as the queue is full",t);return}if(this.reserveQueue.has(t)){this.log("potential relay peer %p is already in the reservation queue",t);return}if(this.relayFilter.has(t.toMultihash().bytes)){this.log("potential relay peer %p has failed previously, not trying again",t);return}this.log("try to reserve relay slot with %p",t),await this.reserveQueue.add(async()=>{let n=Date.now();try{let s=this.reservations.get(t);if(s!=null){if(oa(s.reservation.expire)>a0){this.log("already have reservation on relay peer %p and it expires in more than 10 minutes",t);return}clearTimeout(s.timeout),this.reservations.delete(t)}if(e==="discovered"&&[...this.reservations.values()].reduce((u,p)=>(p.type==="discovered"&&u++,u),0)>=this.maxDiscoveredRelays){this.log("already have enough discovered relays");return}let o=AbortSignal.timeout(this.reservationCompletionTimeout);Ft(1/0,o);let i=await this.connectionManager.openConnection(t,{signal:o});if(i.remoteAddr.protoNames().includes("p2p-circuit")){this.log("not creating reservation over relayed connection");return}let a=await this.#t(i,{signal:o});this.log("created reservation on relay peer %p",t);let c=oa(a.expire),h=Math.min(Math.max(c-c0,l0),Math.pow(2,31)-1),f=setTimeout(()=>{this.addRelay(t,e).catch(u=>{this.log.error("could not refresh reservation to relay %p",t,u)})},h);this.reservations.set(t,{timeout:f,reservation:a,type:e}),await this.peerStore.merge(t,{tags:{[yu]:{value:1,ttl:c}}}),await this.transportManager.listen([xt(`/p2p/${t.toString()}/p2p-circuit`)]),this.safeDispatchEvent("relay:created-reservation",{detail:t})}catch(s){this.log.error("could not reserve slot on %p after %dms",t,Date.now()-n,s);let o=this.reservations.get(t);o!=null&&clearTimeout(o.timeout),this.reservations.delete(t),this.relayFilter.add(t.toMultihash().bytes)}},{peerId:t})}hasReservation(t){return this.reservations.has(t)}getReservation(t){return this.reservations.get(t)?.reservation}reservationCount(){return this.reservations.size}async#t(t,e){e.signal?.throwIfAborted(),this.log("requesting reservation from %p",t.remotePeer);let n=await t.newStream(Gt,e),o=Ve(n).pb(Z);await o.write({type:Z.Type.RESERVE},e);let i;try{i=await o.read(e)}catch(c){throw n.abort(c),c}finally{n.status!=="closed"&&await n.close(e)}if(i.status===q.OK&&i.reservation!=null){let c=!1,h=t.remoteAddr.bytes;for(let f of i.reservation.addrs)if(ct(h,f)){c=!0;break}return c||i.reservation.addrs.push(h),i.reservation}let a=`reservation failed with status ${i.status??"undefined"}`;throw this.log.error(a),new Error(a)}#e(t){let e=this.reservations.get(t);e!=null&&(this.log("connection to relay %p closed, removing reservation from local store",t),clearTimeout(e.timeout),this.reservations.delete(t),this.safeDispatchEvent("relay:removed",{detail:t}),this.reservations.size<this.maxDiscoveredRelays&&(this.log("not enough relays %d/%d",this.reservations.size,this.maxDiscoveredRelays),this.safeDispatchEvent("relay:not-enough-relays",{})))}};var u0=r=>{if(r.peer==null)return!1;try{r.peer.addrs.forEach(xt)}catch{return!1}return!0},Ba={maxInboundStopStreams:fn,maxOutboundStopStreams:fn,stopTimeout:3e4},go=class{discovery;registrar;peerStore;connectionManager;transportManager;peerId;upgrader;addressManager;connectionGater;reservationStore;logger;maxInboundStopStreams;maxOutboundStopStreams;stopTimeout;started;log;constructor(t,e){this.log=t.logger.forComponent("libp2p:circuit-relay:transport"),this.registrar=t.registrar,this.peerStore=t.peerStore,this.connectionManager=t.connectionManager,this.transportManager=t.transportManager,this.logger=t.logger,this.peerId=t.peerId,this.upgrader=t.upgrader,this.addressManager=t.addressManager,this.connectionGater=t.connectionGater,this.maxInboundStopStreams=e.maxInboundStopStreams??Ba.maxInboundStopStreams,this.maxOutboundStopStreams=e.maxOutboundStopStreams??Ba.maxOutboundStopStreams,this.stopTimeout=e.stopTimeout??Ba.stopTimeout;let n=e.discoverRelays??0;n>0&&(this.discovery=new po(t,{filter:e.discoveryFilter??da(xu,vu)}),this.discovery.addEventListener("relay:discover",s=>{this.reservationStore.addRelay(s.detail,"discovered").catch(o=>{this.log.error("could not add discovered relay %p",s.detail,o)})})),this.reservationStore=new mo(t,e),this.reservationStore.addEventListener("relay:not-enough-relays",()=>{this.discovery?.startDiscovery()}),this.reservationStore.addEventListener("relay:created-reservation",()=>{this.reservationStore.reservationCount()>=n&&this.discovery?.stopDiscovery()}),this.started=!1}[Symbol.toStringTag]="@libp2p/circuit-relay-v2-transport";[Va]=["@libp2p/transport","@libp2p/circuit-relay-v2-transport"];get[Ha](){return this.discovery!=null?["@libp2p/identify"]:[]}[Da]=!0;isStarted(){return this.started}async start(){await this.registrar.handle(Qe,t=>{this.onStop(t).catch(e=>{this.log.error("error while handling STOP protocol",e),t.stream.abort(e)})},{maxInboundStreams:this.maxInboundStopStreams,maxOutboundStreams:this.maxOutboundStopStreams,runOnLimitedConnection:!0}),await Ma(this.discovery,this.reservationStore),this.started=!0}async stop(){await Pa(this.discovery,this.reservationStore),await this.registrar.unhandle(Qe),this.started=!1}async dial(t,e){if(t.protoCodes().filter(d=>d===290).length!==1){let d="Invalid circuit relay address";throw this.log.error(d,t),new Mr(d)}let n=t.toString().split("/p2p-circuit"),s=xt(n[0]),o=xt(n[n.length-1]),i=s.getPeerId(),a=o.getPeerId();if(i==null||a==null){let d=`Circuit relay dial to ${t.toString()} failed as address did not have peer ids`;throw this.log.error(d),new Mr(d)}let c=Vi(i),h=Vi(a),f=!1,p=this.connectionManager.getConnections(c)[0];p==null?(await this.peerStore.merge(c,{multiaddrs:[s]}),e.onProgress?.(new Fe("circuit-relay:open-connection")),p=await this.connectionManager.openConnection(c,e),f=!0):e.onProgress?.(new Fe("circuit-relay:reuse-connection"));let l;try{return e.onProgress?.(new Fe("circuit-relay:open-hop-stream")),l=await p.newStream(Gt),await this.connectV2({stream:l,connection:p,destinationPeer:h,destinationAddr:o,relayAddr:s,ma:t,disconnectOnFailure:f,onProgress:e.onProgress})}catch(d){throw this.log.error("circuit relay dial to destination %p via relay %p failed",h,c,d),l?.abort(d),f&&await p.close(),d}}async connectV2({stream:t,connection:e,destinationPeer:n,destinationAddr:s,relayAddr:o,ma:i,disconnectOnFailure:a,onProgress:c}){try{let h=Ve(t),f=h.pb(Z);c?.(new Fe("circuit-relay:write-connect-message")),await f.write({type:Z.Type.CONNECT,peer:{id:n.toMultihash().bytes,addrs:[xt(s).bytes]}}),c?.(new Fe("circuit-relay:read-connect-response"));let u=await f.read();if(u.status!==q.OK)throw new wn(`failed to connect via relay with status ${u?.status?.toString()??"undefined"}`);let p=new dn(u.limit),l=ba({stream:h.unwrap(),remoteAddr:i,localAddr:o.encapsulate(`/p2p-circuit/p2p/${this.peerId.toString()}`),logger:this.logger,onDataRead:p.onData,onDataWrite:p.onData});return this.log("new outbound relayed connection %a",l.remoteAddr),await this.upgrader.upgradeOutbound(l,{limits:p.getLimits(),onProgress:c})}catch(h){throw this.log.error(`Circuit relay dial to destination ${n.toString()} via relay ${e.remotePeer.toString()} failed`,h),a&&await e.close(),h}}createListener(t){return Wu({connectionManager:this.connectionManager,relayStore:this.reservationStore,logger:this.logger})}listenFilter(t){return t=Array.isArray(t)?t:[t],t.filter(e=>Be.matches(e))}dialFilter(t){return this.listenFilter(t)}async onStop({connection:t,stream:e}){if(!this.reservationStore.hasReservation(t.remotePeer))try{this.log("dialed via relay we did not have a reservation on, start listening on that relay address"),await this.transportManager.listen([t.remoteAddr.encapsulate("/p2p-circuit")])}catch(u){this.log.error("failed to listen on a relay peer we were dialed via but did not have a reservation on",u)}let n=AbortSignal.timeout(this.stopTimeout),s=Ve(e).pb(Ht),o=await s.read({signal:n});if(this.log("new circuit relay v2 stop stream from %p with type %s",t.remotePeer,o.type),o?.type===void 0){this.log.error("type was missing from circuit v2 stop protocol request from %s",t.remotePeer),await s.write({type:Ht.Type.STATUS,status:q.MALFORMED_MESSAGE},{signal:n}),await e.close();return}if(o.type!==Ht.Type.CONNECT){this.log.error("invalid stop connect request via peer %p",t.remotePeer),await s.write({type:Ht.Type.STATUS,status:q.UNEXPECTED_MESSAGE},{signal:n}),await e.close();return}if(!u0(o)){this.log.error("invalid stop connect request via peer %p",t.remotePeer),await s.write({type:Ht.Type.STATUS,status:q.MALFORMED_MESSAGE},{signal:n}),await e.close();return}let i=cn(Kt(o.peer.id));if(await this.connectionGater.denyInboundRelayedConnection?.(t.remotePeer,i)===!0){this.log.error("connection gater denied inbound relayed connection from %p",t.remotePeer),await s.write({type:Ht.Type.STATUS,status:q.PERMISSION_DENIED},{signal:n}),await e.close();return}this.log.trace("sending success response to %p",t.remotePeer),await s.write({type:Ht.Type.STATUS,status:q.OK},{signal:n});let a=new dn(o.limit),c=t.remoteAddr.encapsulate(`/p2p-circuit/p2p/${i.toString()}`),h=this.addressManager.getAddresses()[0],f=ba({stream:s.unwrap().unwrap(),remoteAddr:c,localAddr:h,logger:this.logger,onDataRead:a.onData,onDataWrite:a.onData});this.log("new inbound relayed connection %a",f.remoteAddr),await this.upgrader.upgradeInbound(f,{limits:a.getLimits()}),this.log("%s connection %a upgraded","inbound",f.remoteAddr)}};function ju(r={}){return t=>new go(t,r)}return lf(f0);})();
|
8
7
|
/*! Bundled license information:
|
9
8
|
|
10
9
|
pvtsutils/build/index.js:
|