libp2p 1.0.10 → 1.0.11-6fd681d09
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.min.js +35 -35
- package/dist/src/connection-manager/dial-queue.d.ts.map +1 -1
- package/dist/src/connection-manager/dial-queue.js +4 -6
- package/dist/src/connection-manager/dial-queue.js.map +1 -1
- package/dist/src/{content-routing/index.d.ts → content-routing.d.ts} +6 -3
- package/dist/src/content-routing.d.ts.map +1 -0
- package/dist/src/content-routing.js +113 -0
- package/dist/src/content-routing.js.map +1 -0
- package/dist/src/libp2p.d.ts.map +1 -1
- package/dist/src/libp2p.js +7 -3
- package/dist/src/libp2p.js.map +1 -1
- package/dist/src/peer-routing.d.ts +3 -3
- package/dist/src/peer-routing.d.ts.map +1 -1
- package/dist/src/peer-routing.js +57 -10
- package/dist/src/peer-routing.js.map +1 -1
- package/dist/src/upgrader.d.ts.map +1 -1
- package/dist/src/upgrader.js +4 -2
- package/dist/src/upgrader.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.d.ts.map +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/package.json +21 -27
- package/src/connection-manager/dial-queue.ts +8 -11
- package/src/{content-routing/index.ts → content-routing.ts} +66 -18
- package/src/libp2p.ts +7 -3
- package/src/peer-routing.ts +78 -35
- package/src/upgrader.ts +4 -2
- package/src/version.ts +1 -1
- package/dist/src/content-routing/index.d.ts.map +0 -1
- package/dist/src/content-routing/index.js +0 -67
- package/dist/src/content-routing/index.js.map +0 -1
- package/dist/src/content-routing/utils.d.ts +0 -15
- package/dist/src/content-routing/utils.d.ts.map +0 -1
- package/dist/src/content-routing/utils.js +0 -44
- package/dist/src/content-routing/utils.js.map +0 -1
- package/dist/typedoc-urls.json +0 -10
- package/src/content-routing/utils.ts +0 -55
package/dist/index.min.js
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
(function (root, factory) {(typeof module === 'object' && module.exports) ? module.exports = factory() : root.Libp2P = factory()}(typeof self !== 'undefined' ? self : this, function () {
|
|
2
|
-
"use strict";var Libp2P=(()=>{var
|
|
3
|
-
`)}return n};_a.decode=function(t,e){if(typeof t!="string")throw new TypeError('"input" must be a string.');if(typeof e!="string")throw new TypeError('"alphabet" must be a string.');var r=df[e];if(!r){r=df[e]=[];for(var n=0;n<e.length;++n)r[e.charCodeAt(n)]=n}t=t.replace(/\s/g,"");for(var i=e.length,s=e.charAt(0),o=[0],n=0;n<t.length;n++){var a=r[t.charCodeAt(n)];if(a===void 0)return;for(var c=0,u=a;c<o.length;++c)u+=o[c]*i,o[c]=u&255,u>>=8;for(;u>0;)o.push(u&255),u>>=8}for(var l=0;t[l]===s&&l<t.length-1;++l)o.push(0);return typeof Buffer<"u"?Buffer.from(o.reverse()):new Uint8Array(o.reverse())};function Dg(t,e){var r=0,n=e.length,i=e.charAt(0),s=[0];for(r=0;r<t.length();++r){for(var o=0,a=t.at(r);o<s.length;++o)a+=s[o]<<8,s[o]=a%n,a=a/n|0;for(;a>0;)s.push(a%n),a=a/n|0}var c="";for(r=0;t.at(r)===0&&r<t.length()-1;++r)c+=i;for(r=s.length-1;r>=0;--r)c+=e[s[r]];return c}});var Le=V((i_,bf)=>{var gf=he(),yf=mf(),w=bf.exports=gf.util=gf.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){w.nextTick=process.nextTick,typeof setImmediate=="function"?w.setImmediate=setImmediate:w.setImmediate=w.nextTick;return}if(typeof setImmediate=="function"){w.setImmediate=function(){return setImmediate.apply(void 0,arguments)},w.nextTick=function(a){return setImmediate(a)};return}if(w.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===t){c.stopPropagation();var u=e.slice();e.length=0,u.forEach(function(l){l()})}};var o=a,t="forge.setImmediate",e=[];w.setImmediate=function(c){e.push(c),e.length===1&&window.postMessage(t,"*")},window.addEventListener("message",a,!0)}if(typeof MutationObserver<"u"){var r=Date.now(),n=!0,i=document.createElement("div"),e=[];new MutationObserver(function(){var c=e.slice();e.length=0,c.forEach(function(u){u()})}).observe(i,{attributes:!0});var s=w.setImmediate;w.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),s(c)):(e.push(c),e.length===1&&i.setAttribute("a",n=!n))}}w.nextTick=w.setImmediate})();w.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;w.globalScope=function(){return w.isNodejs?globalThis:typeof self>"u"?window:self}();w.isArray=Array.isArray||function(t){return Object.prototype.toString.call(t)==="[object Array]"};w.isArrayBuffer=function(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer};w.isArrayBufferView=function(t){return t&&w.isArrayBuffer(t.buffer)&&t.byteLength!==void 0};function gi(t){if(!(t===8||t===16||t===24||t===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+t)}w.ByteBuffer=Sa;function Sa(t){if(this.data="",this.read=0,typeof t=="string")this.data=t;else if(w.isArrayBuffer(t)||w.isArrayBufferView(t))if(typeof Buffer<"u"&&t instanceof Buffer)this.data=t.toString("binary");else{var e=new Uint8Array(t);try{this.data=String.fromCharCode.apply(null,e)}catch{for(var r=0;r<e.length;++r)this.putByte(e[r])}}else(t instanceof Sa||typeof t=="object"&&typeof t.data=="string"&&typeof t.read=="number")&&(this.data=t.data,this.read=t.read);this._constructedStringLength=0}w.ByteStringBuffer=Sa;var Ng=4096;w.ByteStringBuffer.prototype._optimizeConstructedString=function(t){this._constructedStringLength+=t,this._constructedStringLength>Ng&&(this.data.substr(0,1),this._constructedStringLength=0)};w.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};w.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};w.ByteStringBuffer.prototype.putByte=function(t){return this.putBytes(String.fromCharCode(t))};w.ByteStringBuffer.prototype.fillWithByte=function(t,e){t=String.fromCharCode(t);for(var r=this.data;e>0;)e&1&&(r+=t),e>>>=1,e>0&&(t+=t);return this.data=r,this._optimizeConstructedString(e),this};w.ByteStringBuffer.prototype.putBytes=function(t){return this.data+=t,this._optimizeConstructedString(t.length),this};w.ByteStringBuffer.prototype.putString=function(t){return this.putBytes(w.encodeUtf8(t))};w.ByteStringBuffer.prototype.putInt16=function(t){return this.putBytes(String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};w.ByteStringBuffer.prototype.putInt24=function(t){return this.putBytes(String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};w.ByteStringBuffer.prototype.putInt32=function(t){return this.putBytes(String.fromCharCode(t>>24&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};w.ByteStringBuffer.prototype.putInt16Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255))};w.ByteStringBuffer.prototype.putInt24Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t>>16&255))};w.ByteStringBuffer.prototype.putInt32Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>24&255))};w.ByteStringBuffer.prototype.putInt=function(t,e){gi(e);var r="";do e-=8,r+=String.fromCharCode(t>>e&255);while(e>0);return this.putBytes(r)};w.ByteStringBuffer.prototype.putSignedInt=function(t,e){return t<0&&(t+=2<<e-1),this.putInt(t,e)};w.ByteStringBuffer.prototype.putBuffer=function(t){return this.putBytes(t.getBytes())};w.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};w.ByteStringBuffer.prototype.getInt16=function(){var t=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,t};w.ByteStringBuffer.prototype.getInt24=function(){var t=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,t};w.ByteStringBuffer.prototype.getInt32=function(){var t=this.data.charCodeAt(this.read)<<24^this.data.charCodeAt(this.read+1)<<16^this.data.charCodeAt(this.read+2)<<8^this.data.charCodeAt(this.read+3);return this.read+=4,t};w.ByteStringBuffer.prototype.getInt16Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,t};w.ByteStringBuffer.prototype.getInt24Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,t};w.ByteStringBuffer.prototype.getInt32Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16^this.data.charCodeAt(this.read+3)<<24;return this.read+=4,t};w.ByteStringBuffer.prototype.getInt=function(t){gi(t);var e=0;do e=(e<<8)+this.data.charCodeAt(this.read++),t-=8;while(t>0);return e};w.ByteStringBuffer.prototype.getSignedInt=function(t){var e=this.getInt(t),r=2<<t-2;return e>=r&&(e-=r<<1),e};w.ByteStringBuffer.prototype.getBytes=function(t){var e;return t?(t=Math.min(this.length(),t),e=this.data.slice(this.read,this.read+t),this.read+=t):t===0?e="":(e=this.read===0?this.data:this.data.slice(this.read),this.clear()),e};w.ByteStringBuffer.prototype.bytes=function(t){return typeof t>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+t)};w.ByteStringBuffer.prototype.at=function(t){return this.data.charCodeAt(this.read+t)};w.ByteStringBuffer.prototype.setAt=function(t,e){return this.data=this.data.substr(0,this.read+t)+String.fromCharCode(e)+this.data.substr(this.read+t+1),this};w.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};w.ByteStringBuffer.prototype.copy=function(){var t=w.createBuffer(this.data);return t.read=this.read,t};w.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};w.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};w.ByteStringBuffer.prototype.truncate=function(t){var e=Math.max(0,this.length()-t);return this.data=this.data.substr(this.read,e),this.read=0,this};w.ByteStringBuffer.prototype.toHex=function(){for(var t="",e=this.read;e<this.data.length;++e){var r=this.data.charCodeAt(e);r<16&&(t+="0"),t+=r.toString(16)}return t};w.ByteStringBuffer.prototype.toString=function(){return w.decodeUtf8(this.bytes())};function kg(t,e){e=e||{},this.read=e.readOffset||0,this.growSize=e.growSize||1024;var r=w.isArrayBuffer(t),n=w.isArrayBufferView(t);if(r||n){r?this.data=new DataView(t):this.data=new DataView(t.buffer,t.byteOffset,t.byteLength),this.write="writeOffset"in e?e.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,t!=null&&this.putBytes(t),"writeOffset"in e&&(this.write=e.writeOffset)}w.DataBuffer=kg;w.DataBuffer.prototype.length=function(){return this.write-this.read};w.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};w.DataBuffer.prototype.accommodate=function(t,e){if(this.length()>=t)return this;e=Math.max(e||this.growSize,t);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+e);return n.set(r),this.data=new DataView(n.buffer),this};w.DataBuffer.prototype.putByte=function(t){return this.accommodate(1),this.data.setUint8(this.write++,t),this};w.DataBuffer.prototype.fillWithByte=function(t,e){this.accommodate(e);for(var r=0;r<e;++r)this.data.setUint8(t);return this};w.DataBuffer.prototype.putBytes=function(t,e){if(w.isArrayBufferView(t)){var r=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),n=r.byteLength-r.byteOffset;this.accommodate(n);var i=new Uint8Array(this.data.buffer,this.write);return i.set(r),this.write+=n,this}if(w.isArrayBuffer(t)){var r=new Uint8Array(t);this.accommodate(r.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(r,this.write),this.write+=r.byteLength,this}if(t instanceof w.DataBuffer||typeof t=="object"&&typeof t.read=="number"&&typeof t.write=="number"&&w.isArrayBufferView(t.data)){var r=new Uint8Array(t.data.byteLength,t.read,t.length());this.accommodate(r.byteLength);var i=new Uint8Array(t.data.byteLength,this.write);return i.set(r),this.write+=r.byteLength,this}if(t instanceof w.ByteStringBuffer&&(t=t.data,e="binary"),e=e||"binary",typeof t=="string"){var s;if(e==="hex")return this.accommodate(Math.ceil(t.length/2)),s=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.hex.decode(t,s,this.write),this;if(e==="base64")return this.accommodate(Math.ceil(t.length/4)*3),s=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.base64.decode(t,s,this.write),this;if(e==="utf8"&&(t=w.encodeUtf8(t),e="binary"),e==="binary"||e==="raw")return this.accommodate(t.length),s=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.raw.decode(s),this;if(e==="utf16")return this.accommodate(t.length*2),s=new Uint16Array(this.data.buffer,this.write),this.write+=w.text.utf16.encode(s),this;throw new Error("Invalid encoding: "+e)}throw Error("Invalid parameter: "+t)};w.DataBuffer.prototype.putBuffer=function(t){return this.putBytes(t),t.clear(),this};w.DataBuffer.prototype.putString=function(t){return this.putBytes(t,"utf16")};w.DataBuffer.prototype.putInt16=function(t){return this.accommodate(2),this.data.setInt16(this.write,t),this.write+=2,this};w.DataBuffer.prototype.putInt24=function(t){return this.accommodate(3),this.data.setInt16(this.write,t>>8&65535),this.data.setInt8(this.write,t>>16&255),this.write+=3,this};w.DataBuffer.prototype.putInt32=function(t){return this.accommodate(4),this.data.setInt32(this.write,t),this.write+=4,this};w.DataBuffer.prototype.putInt16Le=function(t){return this.accommodate(2),this.data.setInt16(this.write,t,!0),this.write+=2,this};w.DataBuffer.prototype.putInt24Le=function(t){return this.accommodate(3),this.data.setInt8(this.write,t>>16&255),this.data.setInt16(this.write,t>>8&65535,!0),this.write+=3,this};w.DataBuffer.prototype.putInt32Le=function(t){return this.accommodate(4),this.data.setInt32(this.write,t,!0),this.write+=4,this};w.DataBuffer.prototype.putInt=function(t,e){gi(e),this.accommodate(e/8);do e-=8,this.data.setInt8(this.write++,t>>e&255);while(e>0);return this};w.DataBuffer.prototype.putSignedInt=function(t,e){return gi(e),this.accommodate(e/8),t<0&&(t+=2<<e-1),this.putInt(t,e)};w.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};w.DataBuffer.prototype.getInt16=function(){var t=this.data.getInt16(this.read);return this.read+=2,t};w.DataBuffer.prototype.getInt24=function(){var t=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,t};w.DataBuffer.prototype.getInt32=function(){var t=this.data.getInt32(this.read);return this.read+=4,t};w.DataBuffer.prototype.getInt16Le=function(){var t=this.data.getInt16(this.read,!0);return this.read+=2,t};w.DataBuffer.prototype.getInt24Le=function(){var t=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,t};w.DataBuffer.prototype.getInt32Le=function(){var t=this.data.getInt32(this.read,!0);return this.read+=4,t};w.DataBuffer.prototype.getInt=function(t){gi(t);var e=0;do e=(e<<8)+this.data.getInt8(this.read++),t-=8;while(t>0);return e};w.DataBuffer.prototype.getSignedInt=function(t){var e=this.getInt(t),r=2<<t-2;return e>=r&&(e-=r<<1),e};w.DataBuffer.prototype.getBytes=function(t){var e;return t?(t=Math.min(this.length(),t),e=this.data.slice(this.read,this.read+t),this.read+=t):t===0?e="":(e=this.read===0?this.data:this.data.slice(this.read),this.clear()),e};w.DataBuffer.prototype.bytes=function(t){return typeof t>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+t)};w.DataBuffer.prototype.at=function(t){return this.data.getUint8(this.read+t)};w.DataBuffer.prototype.setAt=function(t,e){return this.data.setUint8(t,e),this};w.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};w.DataBuffer.prototype.copy=function(){return new w.DataBuffer(this)};w.DataBuffer.prototype.compact=function(){if(this.read>0){var t=new Uint8Array(this.data.buffer,this.read),e=new Uint8Array(t.byteLength);e.set(t),this.data=new DataView(e),this.write-=this.read,this.read=0}return this};w.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};w.DataBuffer.prototype.truncate=function(t){return this.write=Math.max(0,this.length()-t),this.read=Math.min(this.read,this.write),this};w.DataBuffer.prototype.toHex=function(){for(var t="",e=this.read;e<this.data.byteLength;++e){var r=this.data.getUint8(e);r<16&&(t+="0"),t+=r.toString(16)}return t};w.DataBuffer.prototype.toString=function(t){var e=new Uint8Array(this.data,this.read,this.length());if(t=t||"utf8",t==="binary"||t==="raw")return w.binary.raw.encode(e);if(t==="hex")return w.binary.hex.encode(e);if(t==="base64")return w.binary.base64.encode(e);if(t==="utf8")return w.text.utf8.decode(e);if(t==="utf16")return w.text.utf16.decode(e);throw new Error("Invalid encoding: "+t)};w.createBuffer=function(t,e){return e=e||"raw",t!==void 0&&e==="utf8"&&(t=w.encodeUtf8(t)),new w.ByteBuffer(t)};w.fillString=function(t,e){for(var r="";e>0;)e&1&&(r+=t),e>>>=1,e>0&&(t+=t);return r};w.xorBytes=function(t,e,r){for(var n="",i="",s="",o=0,a=0;r>0;--r,++o)i=t.charCodeAt(o)^e.charCodeAt(o),a>=10&&(n+=s,s="",a=0),s+=String.fromCharCode(i),++a;return n+=s,n};w.hexToBytes=function(t){var e="",r=0;for(t.length&!0&&(r=1,e+=String.fromCharCode(parseInt(t[0],16)));r<t.length;r+=2)e+=String.fromCharCode(parseInt(t.substr(r,2),16));return e};w.bytesToHex=function(t){return w.createBuffer(t).toHex()};w.int32ToBytes=function(t){return String.fromCharCode(t>>24&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255)};var br="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",wr=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],xf="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";w.encode64=function(t,e){for(var r="",n="",i,s,o,a=0;a<t.length;)i=t.charCodeAt(a++),s=t.charCodeAt(a++),o=t.charCodeAt(a++),r+=br.charAt(i>>2),r+=br.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=br.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":br.charAt(o&63)),e&&r.length>e&&(n+=r.substr(0,e)+`\r
|
|
4
|
-
`,r=r.substr(e));return n+=r,n};w.decode64=function(t){t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var e="",r,n,i,s,o=0;o<t.length;)r=
|
|
5
|
-
`,r=r.substr(e));return n+=r,n};w.binary.base64.decode=function(t,e,r){var n=e;n||(n=new Uint8Array(Math.ceil(t.length/4)*3)),t=t.replace(/[^A-Za-z0-9\+\/\=]/g,""),r=r||0;for(var i,s,o,a,c=0,u=r;c<t.length;)i=wr[t.charCodeAt(c++)-43],s=wr[t.charCodeAt(c++)-43],o=wr[t.charCodeAt(c++)-43],a=wr[t.charCodeAt(c++)-43],n[u++]=i<<2|s>>4,o!==64&&(n[u++]=(s&15)<<4|o>>2,a!==64&&(n[u++]=(o&3)<<6|a));return e?u-r:n.subarray(0,u)};w.binary.base58.encode=function(t,e){return w.binary.baseN.encode(t,xf,e)};w.binary.base58.decode=function(t,e){return w.binary.baseN.decode(t,xf,e)};w.text={utf8:{},utf16:{}};w.text.utf8.encode=function(t,e,r){t=w.encodeUtf8(t);var n=e;n||(n=new Uint8Array(t.length)),r=r||0;for(var i=r,s=0;s<t.length;++s)n[i++]=t.charCodeAt(s);return e?i-r:n};w.text.utf8.decode=function(t){return w.decodeUtf8(String.fromCharCode.apply(null,t))};w.text.utf16.encode=function(t,e,r){var n=e;n||(n=new Uint8Array(t.length*2));var i=new Uint16Array(n.buffer);r=r||0;for(var s=r,o=r,a=0;a<t.length;++a)i[o++]=t.charCodeAt(a),s+=2;return e?s-r:n};w.text.utf16.decode=function(t){return String.fromCharCode.apply(null,new Uint16Array(t.buffer))};w.deflate=function(t,e,r){if(e=w.decode64(t.deflate(w.encode64(e)).rval),r){var n=2,i=e.charCodeAt(1);i&32&&(n=6),e=e.substring(n,e.length-4)}return e};w.inflate=function(t,e,r){var n=t.inflate(w.encode64(e)).rval;return n===null?null:w.decode64(n)};var Aa=function(t,e,r){if(!t)throw new Error("WebStorage not available.");var n;if(r===null?n=t.removeItem(e):(r=w.encode64(JSON.stringify(r)),n=t.setItem(e,r)),typeof n<"u"&&n.rval!==!0){var i=new Error(n.error.message);throw i.id=n.error.id,i.name=n.error.name,i}},Ia=function(t,e){if(!t)throw new Error("WebStorage not available.");var r=t.getItem(e);if(t.init)if(r.rval===null){if(r.error){var n=new Error(r.error.message);throw n.id=r.error.id,n.name=r.error.name,n}r=null}else r=r.rval;return r!==null&&(r=JSON.parse(w.decode64(r))),r},Og=function(t,e,r,n){var i=Ia(t,e);i===null&&(i={}),i[r]=n,Aa(t,e,i)},Mg=function(t,e,r){var n=Ia(t,e);return n!==null&&(n=r in n?n[r]:null),n},Ug=function(t,e,r){var n=Ia(t,e);if(n!==null&&r in n){delete n[r];var i=!0;for(var s in n){i=!1;break}i&&(n=null),Aa(t,e,n)}},Fg=function(t,e){Aa(t,e,null)},fs=function(t,e,r){var n=null;typeof r>"u"&&(r=["web","flash"]);var i,s=!1,o=null;for(var a in r){i=r[a];try{if(i==="flash"||i==="both"){if(e[0]===null)throw new Error("Flash local storage not available.");n=t.apply(this,e),s=i==="flash"}(i==="web"||i==="both")&&(e[0]=localStorage,n=t.apply(this,e),s=!0)}catch(c){o=c}if(s)break}if(!s)throw o;return n};w.setItem=function(t,e,r,n,i){fs(Og,arguments,i)};w.getItem=function(t,e,r,n){return fs(Mg,arguments,n)};w.removeItem=function(t,e,r,n){fs(Ug,arguments,n)};w.clearItems=function(t,e,r){fs(Fg,arguments,r)};w.isEmpty=function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0};w.format=function(t){for(var e=/%./g,r,n,i=0,s=[],o=0;r=e.exec(t);){n=t.substring(o,e.lastIndex-2),n.length>0&&s.push(n),o=e.lastIndex;var a=r[0][1];switch(a){case"s":case"o":i<arguments.length?s.push(arguments[i+++1]):s.push("<?>");break;case"%":s.push("%");break;default:s.push("<%"+a+"?>")}}return s.push(t.substring(o)),s.join("")};w.formatNumber=function(t,e,r,n){var i=t,s=isNaN(e=Math.abs(e))?2:e,o=r===void 0?",":r,a=n===void 0?".":n,c=i<0?"-":"",u=parseInt(i=Math.abs(+i||0).toFixed(s),10)+"",l=u.length>3?u.length%3:0;return c+(l?u.substr(0,l)+a:"")+u.substr(l).replace(/(\d{3})(?=\d)/g,"$1"+a)+(s?o+Math.abs(i-u).toFixed(s).slice(2):"")};w.formatSize=function(t){return t>=1073741824?t=w.formatNumber(t/1073741824,2,".","")+" GiB":t>=1048576?t=w.formatNumber(t/1048576,2,".","")+" MiB":t>=1024?t=w.formatNumber(t/1024,0)+" KiB":t=w.formatNumber(t,0)+" bytes",t};w.bytesFromIP=function(t){return t.indexOf(".")!==-1?w.bytesFromIPv4(t):t.indexOf(":")!==-1?w.bytesFromIPv6(t):null};w.bytesFromIPv4=function(t){if(t=t.split("."),t.length!==4)return null;for(var e=w.createBuffer(),r=0;r<t.length;++r){var n=parseInt(t[r],10);if(isNaN(n))return null;e.putByte(n)}return e.getBytes()};w.bytesFromIPv6=function(t){var e=0;t=t.split(":").filter(function(o){return o.length===0&&++e,!0});for(var r=(8-t.length+e)*2,n=w.createBuffer(),i=0;i<8;++i){if(!t[i]||t[i].length===0){n.fillWithByte(0,r),r=0;continue}var s=w.hexToBytes(t[i]);s.length<2&&n.putByte(0),n.putBytes(s)}return n.getBytes()};w.bytesToIP=function(t){return t.length===4?w.bytesToIPv4(t):t.length===16?w.bytesToIPv6(t):null};w.bytesToIPv4=function(t){if(t.length!==4)return null;for(var e=[],r=0;r<t.length;++r)e.push(t.charCodeAt(r));return e.join(".")};w.bytesToIPv6=function(t){if(t.length!==16)return null;for(var e=[],r=[],n=0,i=0;i<t.length;i+=2){for(var s=w.bytesToHex(t[i]+t[i+1]);s[0]==="0"&&s!=="0";)s=s.substr(1);if(s==="0"){var o=r[r.length-1],a=e.length;!o||a!==o.end+1?r.push({start:a,end:a}):(o.end=a,o.end-o.start>r[n].end-r[n].start&&(n=r.length-1))}e.push(s)}if(r.length>0){var c=r[n];c.end-c.start>0&&(e.splice(c.start,c.end-c.start+1,""),c.start===0&&e.unshift(""),c.end===7&&e.push(""))}return e.join(":")};w.estimateCores=function(t,e){if(typeof t=="function"&&(e=t,t={}),t=t||{},"cores"in w&&!t.update)return e(null,w.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return w.cores=navigator.hardwareConcurrency,e(null,w.cores);if(typeof Worker>"u")return w.cores=1,e(null,w.cores);if(typeof Blob>"u")return w.cores=2,e(null,w.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(o){for(var a=Date.now(),c=a+4;Date.now()<c;);self.postMessage({st:a,et:c})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(o,a,c){if(a===0){var u=Math.floor(o.reduce(function(l,f){return l+f},0)/o.length);return w.cores=Math.max(1,u),URL.revokeObjectURL(r),e(null,w.cores)}i(c,function(l,f){o.push(s(c,f)),n(o,a-1,c)})}function i(o,a){for(var c=[],u=[],l=0;l<o;++l){var f=new Worker(r);f.addEventListener("message",function(h){if(u.push(h.data),u.length===o){for(var p=0;p<o;++p)c[p].terminate();a(null,u)}}),c.push(f)}for(var l=0;l<o;++l)c[l].postMessage(l)}function s(o,a){for(var c=[],u=0;u<o;++u)for(var l=a[u],f=c[u]=[],h=0;h<o;++h)if(u!==h){var p=a[h];(l.st>p.st&&l.st<p.et||p.st>l.st&&p.st<l.et)&&f.push(h)}return c.reduce(function(d,m){return Math.max(d,m.length)},0)}}});var hs=V((s_,wf)=>{var yi=he();yi.pki=yi.pki||{};var Ra=wf.exports=yi.pki.oids=yi.oids=yi.oids||{};function B(t,e){Ra[t]=e,Ra[e]=t}function oe(t,e){Ra[t]=e}B("1.2.840.113549.1.1.1","rsaEncryption");B("1.2.840.113549.1.1.4","md5WithRSAEncryption");B("1.2.840.113549.1.1.5","sha1WithRSAEncryption");B("1.2.840.113549.1.1.7","RSAES-OAEP");B("1.2.840.113549.1.1.8","mgf1");B("1.2.840.113549.1.1.9","pSpecified");B("1.2.840.113549.1.1.10","RSASSA-PSS");B("1.2.840.113549.1.1.11","sha256WithRSAEncryption");B("1.2.840.113549.1.1.12","sha384WithRSAEncryption");B("1.2.840.113549.1.1.13","sha512WithRSAEncryption");B("1.3.101.112","EdDSA25519");B("1.2.840.10040.4.3","dsa-with-sha1");B("1.3.14.3.2.7","desCBC");B("1.3.14.3.2.26","sha1");B("1.3.14.3.2.29","sha1WithRSASignature");B("2.16.840.1.101.3.4.2.1","sha256");B("2.16.840.1.101.3.4.2.2","sha384");B("2.16.840.1.101.3.4.2.3","sha512");B("2.16.840.1.101.3.4.2.4","sha224");B("2.16.840.1.101.3.4.2.5","sha512-224");B("2.16.840.1.101.3.4.2.6","sha512-256");B("1.2.840.113549.2.2","md2");B("1.2.840.113549.2.5","md5");B("1.2.840.113549.1.7.1","data");B("1.2.840.113549.1.7.2","signedData");B("1.2.840.113549.1.7.3","envelopedData");B("1.2.840.113549.1.7.4","signedAndEnvelopedData");B("1.2.840.113549.1.7.5","digestedData");B("1.2.840.113549.1.7.6","encryptedData");B("1.2.840.113549.1.9.1","emailAddress");B("1.2.840.113549.1.9.2","unstructuredName");B("1.2.840.113549.1.9.3","contentType");B("1.2.840.113549.1.9.4","messageDigest");B("1.2.840.113549.1.9.5","signingTime");B("1.2.840.113549.1.9.6","counterSignature");B("1.2.840.113549.1.9.7","challengePassword");B("1.2.840.113549.1.9.8","unstructuredAddress");B("1.2.840.113549.1.9.14","extensionRequest");B("1.2.840.113549.1.9.20","friendlyName");B("1.2.840.113549.1.9.21","localKeyId");B("1.2.840.113549.1.9.22.1","x509Certificate");B("1.2.840.113549.1.12.10.1.1","keyBag");B("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");B("1.2.840.113549.1.12.10.1.3","certBag");B("1.2.840.113549.1.12.10.1.4","crlBag");B("1.2.840.113549.1.12.10.1.5","secretBag");B("1.2.840.113549.1.12.10.1.6","safeContentsBag");B("1.2.840.113549.1.5.13","pkcs5PBES2");B("1.2.840.113549.1.5.12","pkcs5PBKDF2");B("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");B("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");B("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");B("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");B("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");B("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");B("1.2.840.113549.2.7","hmacWithSHA1");B("1.2.840.113549.2.8","hmacWithSHA224");B("1.2.840.113549.2.9","hmacWithSHA256");B("1.2.840.113549.2.10","hmacWithSHA384");B("1.2.840.113549.2.11","hmacWithSHA512");B("1.2.840.113549.3.7","des-EDE3-CBC");B("2.16.840.1.101.3.4.1.2","aes128-CBC");B("2.16.840.1.101.3.4.1.22","aes192-CBC");B("2.16.840.1.101.3.4.1.42","aes256-CBC");B("2.5.4.3","commonName");B("2.5.4.4","surname");B("2.5.4.5","serialNumber");B("2.5.4.6","countryName");B("2.5.4.7","localityName");B("2.5.4.8","stateOrProvinceName");B("2.5.4.9","streetAddress");B("2.5.4.10","organizationName");B("2.5.4.11","organizationalUnitName");B("2.5.4.12","title");B("2.5.4.13","description");B("2.5.4.15","businessCategory");B("2.5.4.17","postalCode");B("2.5.4.42","givenName");B("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");B("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");B("2.16.840.1.113730.1.1","nsCertType");B("2.16.840.1.113730.1.13","nsComment");oe("2.5.29.1","authorityKeyIdentifier");oe("2.5.29.2","keyAttributes");oe("2.5.29.3","certificatePolicies");oe("2.5.29.4","keyUsageRestriction");oe("2.5.29.5","policyMapping");oe("2.5.29.6","subtreesConstraint");oe("2.5.29.7","subjectAltName");oe("2.5.29.8","issuerAltName");oe("2.5.29.9","subjectDirectoryAttributes");oe("2.5.29.10","basicConstraints");oe("2.5.29.11","nameConstraints");oe("2.5.29.12","policyConstraints");oe("2.5.29.13","basicConstraints");B("2.5.29.14","subjectKeyIdentifier");B("2.5.29.15","keyUsage");oe("2.5.29.16","privateKeyUsagePeriod");B("2.5.29.17","subjectAltName");B("2.5.29.18","issuerAltName");B("2.5.29.19","basicConstraints");oe("2.5.29.20","cRLNumber");oe("2.5.29.21","cRLReason");oe("2.5.29.22","expirationDate");oe("2.5.29.23","instructionCode");oe("2.5.29.24","invalidityDate");oe("2.5.29.25","cRLDistributionPoints");oe("2.5.29.26","issuingDistributionPoint");oe("2.5.29.27","deltaCRLIndicator");oe("2.5.29.28","issuingDistributionPoint");oe("2.5.29.29","certificateIssuer");oe("2.5.29.30","nameConstraints");B("2.5.29.31","cRLDistributionPoints");B("2.5.29.32","certificatePolicies");oe("2.5.29.33","policyMappings");oe("2.5.29.34","policyConstraints");B("2.5.29.35","authorityKeyIdentifier");oe("2.5.29.36","policyConstraints");B("2.5.29.37","extKeyUsage");oe("2.5.29.46","freshestCRL");oe("2.5.29.54","inhibitAnyPolicy");B("1.3.6.1.4.1.11129.2.4.2","timestampList");B("1.3.6.1.5.5.7.1.1","authorityInfoAccess");B("1.3.6.1.5.5.7.3.1","serverAuth");B("1.3.6.1.5.5.7.3.2","clientAuth");B("1.3.6.1.5.5.7.3.3","codeSigning");B("1.3.6.1.5.5.7.3.4","emailProtection");B("1.3.6.1.5.5.7.3.8","timeStamping")});var bi=V((o_,vf)=>{var me=he();Le();hs();var O=vf.exports=me.asn1=me.asn1||{};O.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};O.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30};O.create=function(t,e,r,n,i){if(me.util.isArray(n)){for(var s=[],o=0;o<n.length;++o)n[o]!==void 0&&s.push(n[o]);n=s}var a={tagClass:t,type:e,constructed:r,composed:r||me.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=O.copy(a)),a};O.copy=function(t,e){var r;if(me.util.isArray(t)){r=[];for(var n=0;n<t.length;++n)r.push(O.copy(t[n],e));return r}return typeof t=="string"?t:(r={tagClass:t.tagClass,type:t.type,constructed:t.constructed,composed:t.composed,value:O.copy(t.value,e)},e&&!e.excludeBitStringContents&&(r.bitStringContents=t.bitStringContents),r)};O.equals=function(t,e,r){if(me.util.isArray(t)){if(!me.util.isArray(e)||t.length!==e.length)return!1;for(var n=0;n<t.length;++n)if(!O.equals(t[n],e[n]))return!1;return!0}if(typeof t!=typeof e)return!1;if(typeof t=="string")return t===e;var i=t.tagClass===e.tagClass&&t.type===e.type&&t.constructed===e.constructed&&t.composed===e.composed&&O.equals(t.value,e.value);return r&&r.includeBitStringContents&&(i=i&&t.bitStringContents===e.bitStringContents),i};O.getBerValueLength=function(t){var e=t.getByte();if(e!==128){var r,n=e&128;return n?r=t.getInt((e&127)<<3):r=e,r}};function xi(t,e,r){if(r>e){var n=new Error("Too few bytes to parse DER.");throw n.available=t.length(),n.remaining=e,n.requested=r,n}}var Kg=function(t,e){var r=t.getByte();if(e--,r!==128){var n,i=r&128;if(!i)n=r;else{var s=r&127;xi(t,e,s),n=t.getInt(s<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};O.fromDer=function(t,e){e===void 0&&(e={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof e=="boolean"&&(e={strict:e,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in e||(e.strict=!0),"parseAllBytes"in e||(e.parseAllBytes=!0),"decodeBitStrings"in e||(e.decodeBitStrings=!0),typeof t=="string"&&(t=me.util.createBuffer(t));var r=t.length(),n=ds(t,t.length(),0,e);if(e.parseAllBytes&&t.length()!==0){var i=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=r,i.remaining=t.length(),i}return n};function ds(t,e,r,n){var i;xi(t,e,2);var s=t.getByte();e--;var o=s&192,a=s&31;i=t.length();var c=Kg(t,e);if(e-=i-t.length(),c!==void 0&&c>e){if(n.strict){var u=new Error("Too few bytes to read ASN.1 value.");throw u.available=t.length(),u.remaining=e,u.requested=c,u}c=e}var l,f,h=(s&32)===32;if(h)if(l=[],c===void 0)for(;;){if(xi(t,e,2),t.bytes(2)==="\0\0"){t.getBytes(2),e-=2;break}i=t.length(),l.push(ds(t,e,r+1,n)),e-=i-t.length()}else for(;c>0;)i=t.length(),l.push(ds(t,c,r+1,n)),e-=i-t.length(),c-=i-t.length();if(l===void 0&&o===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&(f=t.bytes(c)),l===void 0&&n.decodeBitStrings&&o===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&c>1){var p=t.read,d=e,m=0;if(a===O.Type.BITSTRING&&(xi(t,e,1),m=t.getByte(),e--),m===0)try{i=t.length();var g={strict:!0,decodeBitStrings:!0},y=ds(t,e,r+1,g),x=i-t.length();e-=x,a==O.Type.BITSTRING&&x++;var b=y.tagClass;x===c&&(b===O.Class.UNIVERSAL||b===O.Class.CONTEXT_SPECIFIC)&&(l=[y])}catch{}l===void 0&&(t.read=p,e=d)}if(l===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=e}if(a===O.Type.BMPSTRING)for(l="";c>0;c-=2)xi(t,e,2),l+=String.fromCharCode(t.getInt16()),e-=2;else l=t.getBytes(c),e-=c}var I=f===void 0?null:{bitStringContents:f};return O.create(o,a,h,l,I)}O.toDer=function(t){var e=me.util.createBuffer(),r=t.tagClass|t.type,n=me.util.createBuffer(),i=!1;if("bitStringContents"in t&&(i=!0,t.original&&(i=O.equals(t,t.original))),i)n.putBytes(t.bitStringContents);else if(t.composed){t.constructed?r|=32:n.putByte(0);for(var s=0;s<t.value.length;++s)t.value[s]!==void 0&&n.putBuffer(O.toDer(t.value[s]))}else if(t.type===O.Type.BMPSTRING)for(var s=0;s<t.value.length;++s)n.putInt16(t.value.charCodeAt(s));else t.type===O.Type.INTEGER&&t.value.length>1&&(t.value.charCodeAt(0)===0&&!(t.value.charCodeAt(1)&128)||t.value.charCodeAt(0)===255&&(t.value.charCodeAt(1)&128)===128)?n.putBytes(t.value.substr(1)):n.putBytes(t.value);if(e.putByte(r),n.length()<=127)e.putByte(n.length()&127);else{var o=n.length(),a="";do a+=String.fromCharCode(o&255),o=o>>>8;while(o>0);e.putByte(a.length|128);for(var s=a.length-1;s>=0;--s)e.putByte(a.charCodeAt(s))}return e.putBuffer(n),e};O.oidToDer=function(t){var e=t.split("."),r=me.util.createBuffer();r.putByte(40*parseInt(e[0],10)+parseInt(e[1],10));for(var n,i,s,o,a=2;a<e.length;++a){n=!0,i=[],s=parseInt(e[a],10);do o=s&127,s=s>>>7,n||(o|=128),i.push(o),n=!1;while(s>0);for(var c=i.length-1;c>=0;--c)r.putByte(i[c])}return r};O.derToOid=function(t){var e;typeof t=="string"&&(t=me.util.createBuffer(t));var r=t.getByte();e=Math.floor(r/40)+"."+r%40;for(var n=0;t.length()>0;)r=t.getByte(),n=n<<7,r&128?n+=r&127:(e+="."+(n+r),n=0);return e};O.utcTimeToDate=function(t){var e=new Date,r=parseInt(t.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(t.substr(2,2),10)-1,i=parseInt(t.substr(4,2),10),s=parseInt(t.substr(6,2),10),o=parseInt(t.substr(8,2),10),a=0;if(t.length>11){var c=t.charAt(10),u=10;c!=="+"&&c!=="-"&&(a=parseInt(t.substr(10,2),10),u+=2)}if(e.setUTCFullYear(r,n,i),e.setUTCHours(s,o,a,0),u&&(c=t.charAt(u),c==="+"||c==="-")){var l=parseInt(t.substr(u+1,2),10),f=parseInt(t.substr(u+4,2),10),h=l*60+f;h*=6e4,c==="+"?e.setTime(+e-h):e.setTime(+e+h)}return e};O.generalizedTimeToDate=function(t){var e=new Date,r=parseInt(t.substr(0,4),10),n=parseInt(t.substr(4,2),10)-1,i=parseInt(t.substr(6,2),10),s=parseInt(t.substr(8,2),10),o=parseInt(t.substr(10,2),10),a=parseInt(t.substr(12,2),10),c=0,u=0,l=!1;t.charAt(t.length-1)==="Z"&&(l=!0);var f=t.length-5,h=t.charAt(f);if(h==="+"||h==="-"){var p=parseInt(t.substr(f+1,2),10),d=parseInt(t.substr(f+4,2),10);u=p*60+d,u*=6e4,h==="+"&&(u*=-1),l=!0}return t.charAt(14)==="."&&(c=parseFloat(t.substr(14),10)*1e3),l?(e.setUTCFullYear(r,n,i),e.setUTCHours(s,o,a,c),e.setTime(+e+u)):(e.setFullYear(r,n,i),e.setHours(s,o,a,c)),e};O.dateToUtcTime=function(t){if(typeof t=="string")return t;var e="",r=[];r.push((""+t.getUTCFullYear()).substr(2)),r.push(""+(t.getUTCMonth()+1)),r.push(""+t.getUTCDate()),r.push(""+t.getUTCHours()),r.push(""+t.getUTCMinutes()),r.push(""+t.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(e+="0"),e+=r[n];return e+="Z",e};O.dateToGeneralizedTime=function(t){if(typeof t=="string")return t;var e="",r=[];r.push(""+t.getUTCFullYear()),r.push(""+(t.getUTCMonth()+1)),r.push(""+t.getUTCDate()),r.push(""+t.getUTCHours()),r.push(""+t.getUTCMinutes()),r.push(""+t.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(e+="0"),e+=r[n];return e+="Z",e};O.integerToDer=function(t){var e=me.util.createBuffer();if(t>=-128&&t<128)return e.putSignedInt(t,8);if(t>=-32768&&t<32768)return e.putSignedInt(t,16);if(t>=-8388608&&t<8388608)return e.putSignedInt(t,24);if(t>=-2147483648&&t<2147483648)return e.putSignedInt(t,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=t,r};O.derToInteger=function(t){typeof t=="string"&&(t=me.util.createBuffer(t));var e=t.length()*8;if(e>32)throw new Error("Integer too large; max is 32-bits.");return t.getSignedInt(e)};O.validate=function(t,e,r,n){var i=!1;if((t.tagClass===e.tagClass||typeof e.tagClass>"u")&&(t.type===e.type||typeof e.type>"u"))if(t.constructed===e.constructed||typeof e.constructed>"u"){if(i=!0,e.value&&me.util.isArray(e.value))for(var s=0,o=0;i&&o<e.value.length;++o)i=e.value[o].optional||!1,t.value[s]&&(i=O.validate(t.value[s],e.value[o],r,n),i?++s:e.value[o].optional&&(i=!0)),!i&&n&&n.push("["+e.name+'] Tag class "'+e.tagClass+'", type "'+e.type+'" expected value length "'+e.value.length+'", got "'+t.value.length+'"');if(i&&r&&(e.capture&&(r[e.capture]=t.value),e.captureAsn1&&(r[e.captureAsn1]=t),e.captureBitStringContents&&"bitStringContents"in t&&(r[e.captureBitStringContents]=t.bitStringContents),e.captureBitStringValue&&"bitStringContents"in t)){var a;if(t.bitStringContents.length<2)r[e.captureBitStringValue]="";else{var c=t.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");r[e.captureBitStringValue]=t.bitStringContents.slice(1)}}}else n&&n.push("["+e.name+'] Expected constructed "'+e.constructed+'", got "'+t.constructed+'"');else n&&(t.tagClass!==e.tagClass&&n.push("["+e.name+'] Expected tag class "'+e.tagClass+'", got "'+t.tagClass+'"'),t.type!==e.type&&n.push("["+e.name+'] Expected type "'+e.type+'", got "'+t.type+'"'));return i};var Ef=/[^\\u0000-\\u00ff]/;O.prettyPrint=function(t,e,r){var n="";e=e||0,r=r||2,e>0&&(n+=`
|
|
2
|
+
"use strict";var Libp2P=(()=>{var bg=Object.create;var is=Object.defineProperty;var wg=Object.getOwnPropertyDescriptor;var Eg=Object.getOwnPropertyNames;var vg=Object.getPrototypeOf,_g=Object.prototype.hasOwnProperty;var q=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),ke=(t,e)=>{for(var r in e)is(t,r,{get:e[r],enumerable:!0})},ef=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Eg(e))!_g.call(t,i)&&i!==r&&is(t,i,{get:()=>e[i],enumerable:!(n=wg(e,i))||n.enumerable});return t};var we=(t,e,r)=>(r=t!=null?bg(vg(t)):{},ef(e||!t||!t.__esModule?is(r,"default",{value:t,enumerable:!0}):r,t)),Sg=t=>ef(is({},"__esModule",{value:!0}),t);var le=q((Zv,tf)=>{tf.exports={options:{usePureJavaScript:!1}}});var sf=q((jv,nf)=>{var ma={};nf.exports=ma;var rf={};ma.encode=function(t,e,r){if(typeof e!="string")throw new TypeError('"alphabet" must be a string.');if(r!==void 0&&typeof r!="number")throw new TypeError('"maxline" must be a number.');var n="";if(!(t instanceof Uint8Array))n=Ag(t,e);else{var i=0,s=e.length,o=e.charAt(0),a=[0];for(i=0;i<t.length;++i){for(var c=0,u=t[i];c<a.length;++c)u+=a[c]<<8,a[c]=u%s,u=u/s|0;for(;u>0;)a.push(u%s),u=u/s|0}for(i=0;t[i]===0&&i<t.length-1;++i)n+=o;for(i=a.length-1;i>=0;--i)n+=e[a[i]]}if(r){var l=new RegExp(".{1,"+r+"}","g");n=n.match(l).join(`\r
|
|
3
|
+
`)}return n};ma.decode=function(t,e){if(typeof t!="string")throw new TypeError('"input" must be a string.');if(typeof e!="string")throw new TypeError('"alphabet" must be a string.');var r=rf[e];if(!r){r=rf[e]=[];for(var n=0;n<e.length;++n)r[e.charCodeAt(n)]=n}t=t.replace(/\s/g,"");for(var i=e.length,s=e.charAt(0),o=[0],n=0;n<t.length;n++){var a=r[t.charCodeAt(n)];if(a===void 0)return;for(var c=0,u=a;c<o.length;++c)u+=o[c]*i,o[c]=u&255,u>>=8;for(;u>0;)o.push(u&255),u>>=8}for(var l=0;t[l]===s&&l<t.length-1;++l)o.push(0);return typeof Buffer<"u"?Buffer.from(o.reverse()):new Uint8Array(o.reverse())};function Ag(t,e){var r=0,n=e.length,i=e.charAt(0),s=[0];for(r=0;r<t.length();++r){for(var o=0,a=t.at(r);o<s.length;++o)a+=s[o]<<8,s[o]=a%n,a=a/n|0;for(;a>0;)s.push(a%n),a=a/n|0}var c="";for(r=0;t.at(r)===0&&r<t.length()-1;++r)c+=i;for(r=s.length-1;r>=0;--r)c+=e[s[r]];return c}});var Re=q((Jv,uf)=>{var of=le(),af=sf(),w=uf.exports=of.util=of.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){w.nextTick=process.nextTick,typeof setImmediate=="function"?w.setImmediate=setImmediate:w.setImmediate=w.nextTick;return}if(typeof setImmediate=="function"){w.setImmediate=function(){return setImmediate.apply(void 0,arguments)},w.nextTick=function(a){return setImmediate(a)};return}if(w.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===t){c.stopPropagation();var u=e.slice();e.length=0,u.forEach(function(l){l()})}};var o=a,t="forge.setImmediate",e=[];w.setImmediate=function(c){e.push(c),e.length===1&&window.postMessage(t,"*")},window.addEventListener("message",a,!0)}if(typeof MutationObserver<"u"){var r=Date.now(),n=!0,i=document.createElement("div"),e=[];new MutationObserver(function(){var c=e.slice();e.length=0,c.forEach(function(u){u()})}).observe(i,{attributes:!0});var s=w.setImmediate;w.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),s(c)):(e.push(c),e.length===1&&i.setAttribute("a",n=!n))}}w.nextTick=w.setImmediate})();w.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;w.globalScope=function(){return w.isNodejs?globalThis:typeof self>"u"?window:self}();w.isArray=Array.isArray||function(t){return Object.prototype.toString.call(t)==="[object Array]"};w.isArrayBuffer=function(t){return typeof ArrayBuffer<"u"&&t instanceof ArrayBuffer};w.isArrayBufferView=function(t){return t&&w.isArrayBuffer(t.buffer)&&t.byteLength!==void 0};function di(t){if(!(t===8||t===16||t===24||t===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+t)}w.ByteBuffer=ga;function ga(t){if(this.data="",this.read=0,typeof t=="string")this.data=t;else if(w.isArrayBuffer(t)||w.isArrayBufferView(t))if(typeof Buffer<"u"&&t instanceof Buffer)this.data=t.toString("binary");else{var e=new Uint8Array(t);try{this.data=String.fromCharCode.apply(null,e)}catch{for(var r=0;r<e.length;++r)this.putByte(e[r])}}else(t instanceof ga||typeof t=="object"&&typeof t.data=="string"&&typeof t.read=="number")&&(this.data=t.data,this.read=t.read);this._constructedStringLength=0}w.ByteStringBuffer=ga;var Ig=4096;w.ByteStringBuffer.prototype._optimizeConstructedString=function(t){this._constructedStringLength+=t,this._constructedStringLength>Ig&&(this.data.substr(0,1),this._constructedStringLength=0)};w.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};w.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};w.ByteStringBuffer.prototype.putByte=function(t){return this.putBytes(String.fromCharCode(t))};w.ByteStringBuffer.prototype.fillWithByte=function(t,e){t=String.fromCharCode(t);for(var r=this.data;e>0;)e&1&&(r+=t),e>>>=1,e>0&&(t+=t);return this.data=r,this._optimizeConstructedString(e),this};w.ByteStringBuffer.prototype.putBytes=function(t){return this.data+=t,this._optimizeConstructedString(t.length),this};w.ByteStringBuffer.prototype.putString=function(t){return this.putBytes(w.encodeUtf8(t))};w.ByteStringBuffer.prototype.putInt16=function(t){return this.putBytes(String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};w.ByteStringBuffer.prototype.putInt24=function(t){return this.putBytes(String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};w.ByteStringBuffer.prototype.putInt32=function(t){return this.putBytes(String.fromCharCode(t>>24&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255))};w.ByteStringBuffer.prototype.putInt16Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255))};w.ByteStringBuffer.prototype.putInt24Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t>>16&255))};w.ByteStringBuffer.prototype.putInt32Le=function(t){return this.putBytes(String.fromCharCode(t&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>24&255))};w.ByteStringBuffer.prototype.putInt=function(t,e){di(e);var r="";do e-=8,r+=String.fromCharCode(t>>e&255);while(e>0);return this.putBytes(r)};w.ByteStringBuffer.prototype.putSignedInt=function(t,e){return t<0&&(t+=2<<e-1),this.putInt(t,e)};w.ByteStringBuffer.prototype.putBuffer=function(t){return this.putBytes(t.getBytes())};w.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};w.ByteStringBuffer.prototype.getInt16=function(){var t=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,t};w.ByteStringBuffer.prototype.getInt24=function(){var t=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,t};w.ByteStringBuffer.prototype.getInt32=function(){var t=this.data.charCodeAt(this.read)<<24^this.data.charCodeAt(this.read+1)<<16^this.data.charCodeAt(this.read+2)<<8^this.data.charCodeAt(this.read+3);return this.read+=4,t};w.ByteStringBuffer.prototype.getInt16Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,t};w.ByteStringBuffer.prototype.getInt24Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,t};w.ByteStringBuffer.prototype.getInt32Le=function(){var t=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16^this.data.charCodeAt(this.read+3)<<24;return this.read+=4,t};w.ByteStringBuffer.prototype.getInt=function(t){di(t);var e=0;do e=(e<<8)+this.data.charCodeAt(this.read++),t-=8;while(t>0);return e};w.ByteStringBuffer.prototype.getSignedInt=function(t){var e=this.getInt(t),r=2<<t-2;return e>=r&&(e-=r<<1),e};w.ByteStringBuffer.prototype.getBytes=function(t){var e;return t?(t=Math.min(this.length(),t),e=this.data.slice(this.read,this.read+t),this.read+=t):t===0?e="":(e=this.read===0?this.data:this.data.slice(this.read),this.clear()),e};w.ByteStringBuffer.prototype.bytes=function(t){return typeof t>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+t)};w.ByteStringBuffer.prototype.at=function(t){return this.data.charCodeAt(this.read+t)};w.ByteStringBuffer.prototype.setAt=function(t,e){return this.data=this.data.substr(0,this.read+t)+String.fromCharCode(e)+this.data.substr(this.read+t+1),this};w.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};w.ByteStringBuffer.prototype.copy=function(){var t=w.createBuffer(this.data);return t.read=this.read,t};w.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};w.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};w.ByteStringBuffer.prototype.truncate=function(t){var e=Math.max(0,this.length()-t);return this.data=this.data.substr(this.read,e),this.read=0,this};w.ByteStringBuffer.prototype.toHex=function(){for(var t="",e=this.read;e<this.data.length;++e){var r=this.data.charCodeAt(e);r<16&&(t+="0"),t+=r.toString(16)}return t};w.ByteStringBuffer.prototype.toString=function(){return w.decodeUtf8(this.bytes())};function Cg(t,e){e=e||{},this.read=e.readOffset||0,this.growSize=e.growSize||1024;var r=w.isArrayBuffer(t),n=w.isArrayBufferView(t);if(r||n){r?this.data=new DataView(t):this.data=new DataView(t.buffer,t.byteOffset,t.byteLength),this.write="writeOffset"in e?e.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,t!=null&&this.putBytes(t),"writeOffset"in e&&(this.write=e.writeOffset)}w.DataBuffer=Cg;w.DataBuffer.prototype.length=function(){return this.write-this.read};w.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};w.DataBuffer.prototype.accommodate=function(t,e){if(this.length()>=t)return this;e=Math.max(e||this.growSize,t);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+e);return n.set(r),this.data=new DataView(n.buffer),this};w.DataBuffer.prototype.putByte=function(t){return this.accommodate(1),this.data.setUint8(this.write++,t),this};w.DataBuffer.prototype.fillWithByte=function(t,e){this.accommodate(e);for(var r=0;r<e;++r)this.data.setUint8(t);return this};w.DataBuffer.prototype.putBytes=function(t,e){if(w.isArrayBufferView(t)){var r=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),n=r.byteLength-r.byteOffset;this.accommodate(n);var i=new Uint8Array(this.data.buffer,this.write);return i.set(r),this.write+=n,this}if(w.isArrayBuffer(t)){var r=new Uint8Array(t);this.accommodate(r.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(r,this.write),this.write+=r.byteLength,this}if(t instanceof w.DataBuffer||typeof t=="object"&&typeof t.read=="number"&&typeof t.write=="number"&&w.isArrayBufferView(t.data)){var r=new Uint8Array(t.data.byteLength,t.read,t.length());this.accommodate(r.byteLength);var i=new Uint8Array(t.data.byteLength,this.write);return i.set(r),this.write+=r.byteLength,this}if(t instanceof w.ByteStringBuffer&&(t=t.data,e="binary"),e=e||"binary",typeof t=="string"){var s;if(e==="hex")return this.accommodate(Math.ceil(t.length/2)),s=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.hex.decode(t,s,this.write),this;if(e==="base64")return this.accommodate(Math.ceil(t.length/4)*3),s=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.base64.decode(t,s,this.write),this;if(e==="utf8"&&(t=w.encodeUtf8(t),e="binary"),e==="binary"||e==="raw")return this.accommodate(t.length),s=new Uint8Array(this.data.buffer,this.write),this.write+=w.binary.raw.decode(s),this;if(e==="utf16")return this.accommodate(t.length*2),s=new Uint16Array(this.data.buffer,this.write),this.write+=w.text.utf16.encode(s),this;throw new Error("Invalid encoding: "+e)}throw Error("Invalid parameter: "+t)};w.DataBuffer.prototype.putBuffer=function(t){return this.putBytes(t),t.clear(),this};w.DataBuffer.prototype.putString=function(t){return this.putBytes(t,"utf16")};w.DataBuffer.prototype.putInt16=function(t){return this.accommodate(2),this.data.setInt16(this.write,t),this.write+=2,this};w.DataBuffer.prototype.putInt24=function(t){return this.accommodate(3),this.data.setInt16(this.write,t>>8&65535),this.data.setInt8(this.write,t>>16&255),this.write+=3,this};w.DataBuffer.prototype.putInt32=function(t){return this.accommodate(4),this.data.setInt32(this.write,t),this.write+=4,this};w.DataBuffer.prototype.putInt16Le=function(t){return this.accommodate(2),this.data.setInt16(this.write,t,!0),this.write+=2,this};w.DataBuffer.prototype.putInt24Le=function(t){return this.accommodate(3),this.data.setInt8(this.write,t>>16&255),this.data.setInt16(this.write,t>>8&65535,!0),this.write+=3,this};w.DataBuffer.prototype.putInt32Le=function(t){return this.accommodate(4),this.data.setInt32(this.write,t,!0),this.write+=4,this};w.DataBuffer.prototype.putInt=function(t,e){di(e),this.accommodate(e/8);do e-=8,this.data.setInt8(this.write++,t>>e&255);while(e>0);return this};w.DataBuffer.prototype.putSignedInt=function(t,e){return di(e),this.accommodate(e/8),t<0&&(t+=2<<e-1),this.putInt(t,e)};w.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};w.DataBuffer.prototype.getInt16=function(){var t=this.data.getInt16(this.read);return this.read+=2,t};w.DataBuffer.prototype.getInt24=function(){var t=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,t};w.DataBuffer.prototype.getInt32=function(){var t=this.data.getInt32(this.read);return this.read+=4,t};w.DataBuffer.prototype.getInt16Le=function(){var t=this.data.getInt16(this.read,!0);return this.read+=2,t};w.DataBuffer.prototype.getInt24Le=function(){var t=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,t};w.DataBuffer.prototype.getInt32Le=function(){var t=this.data.getInt32(this.read,!0);return this.read+=4,t};w.DataBuffer.prototype.getInt=function(t){di(t);var e=0;do e=(e<<8)+this.data.getInt8(this.read++),t-=8;while(t>0);return e};w.DataBuffer.prototype.getSignedInt=function(t){var e=this.getInt(t),r=2<<t-2;return e>=r&&(e-=r<<1),e};w.DataBuffer.prototype.getBytes=function(t){var e;return t?(t=Math.min(this.length(),t),e=this.data.slice(this.read,this.read+t),this.read+=t):t===0?e="":(e=this.read===0?this.data:this.data.slice(this.read),this.clear()),e};w.DataBuffer.prototype.bytes=function(t){return typeof t>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+t)};w.DataBuffer.prototype.at=function(t){return this.data.getUint8(this.read+t)};w.DataBuffer.prototype.setAt=function(t,e){return this.data.setUint8(t,e),this};w.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};w.DataBuffer.prototype.copy=function(){return new w.DataBuffer(this)};w.DataBuffer.prototype.compact=function(){if(this.read>0){var t=new Uint8Array(this.data.buffer,this.read),e=new Uint8Array(t.byteLength);e.set(t),this.data=new DataView(e),this.write-=this.read,this.read=0}return this};w.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};w.DataBuffer.prototype.truncate=function(t){return this.write=Math.max(0,this.length()-t),this.read=Math.min(this.read,this.write),this};w.DataBuffer.prototype.toHex=function(){for(var t="",e=this.read;e<this.data.byteLength;++e){var r=this.data.getUint8(e);r<16&&(t+="0"),t+=r.toString(16)}return t};w.DataBuffer.prototype.toString=function(t){var e=new Uint8Array(this.data,this.read,this.length());if(t=t||"utf8",t==="binary"||t==="raw")return w.binary.raw.encode(e);if(t==="hex")return w.binary.hex.encode(e);if(t==="base64")return w.binary.base64.encode(e);if(t==="utf8")return w.text.utf8.decode(e);if(t==="utf16")return w.text.utf16.decode(e);throw new Error("Invalid encoding: "+t)};w.createBuffer=function(t,e){return e=e||"raw",t!==void 0&&e==="utf8"&&(t=w.encodeUtf8(t)),new w.ByteBuffer(t)};w.fillString=function(t,e){for(var r="";e>0;)e&1&&(r+=t),e>>>=1,e>0&&(t+=t);return r};w.xorBytes=function(t,e,r){for(var n="",i="",s="",o=0,a=0;r>0;--r,++o)i=t.charCodeAt(o)^e.charCodeAt(o),a>=10&&(n+=s,s="",a=0),s+=String.fromCharCode(i),++a;return n+=s,n};w.hexToBytes=function(t){var e="",r=0;for(t.length&!0&&(r=1,e+=String.fromCharCode(parseInt(t[0],16)));r<t.length;r+=2)e+=String.fromCharCode(parseInt(t.substr(r,2),16));return e};w.bytesToHex=function(t){return w.createBuffer(t).toHex()};w.int32ToBytes=function(t){return String.fromCharCode(t>>24&255)+String.fromCharCode(t>>16&255)+String.fromCharCode(t>>8&255)+String.fromCharCode(t&255)};var yr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",xr=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],cf="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";w.encode64=function(t,e){for(var r="",n="",i,s,o,a=0;a<t.length;)i=t.charCodeAt(a++),s=t.charCodeAt(a++),o=t.charCodeAt(a++),r+=yr.charAt(i>>2),r+=yr.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=yr.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":yr.charAt(o&63)),e&&r.length>e&&(n+=r.substr(0,e)+`\r
|
|
4
|
+
`,r=r.substr(e));return n+=r,n};w.decode64=function(t){t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var e="",r,n,i,s,o=0;o<t.length;)r=xr[t.charCodeAt(o++)-43],n=xr[t.charCodeAt(o++)-43],i=xr[t.charCodeAt(o++)-43],s=xr[t.charCodeAt(o++)-43],e+=String.fromCharCode(r<<2|n>>4),i!==64&&(e+=String.fromCharCode((n&15)<<4|i>>2),s!==64&&(e+=String.fromCharCode((i&3)<<6|s)));return e};w.encodeUtf8=function(t){return unescape(encodeURIComponent(t))};w.decodeUtf8=function(t){return decodeURIComponent(escape(t))};w.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:af.encode,decode:af.decode}};w.binary.raw.encode=function(t){return String.fromCharCode.apply(null,t)};w.binary.raw.decode=function(t,e,r){var n=e;n||(n=new Uint8Array(t.length)),r=r||0;for(var i=r,s=0;s<t.length;++s)n[i++]=t.charCodeAt(s);return e?i-r:n};w.binary.hex.encode=w.bytesToHex;w.binary.hex.decode=function(t,e,r){var n=e;n||(n=new Uint8Array(Math.ceil(t.length/2))),r=r||0;var i=0,s=r;for(t.length&1&&(i=1,n[s++]=parseInt(t[0],16));i<t.length;i+=2)n[s++]=parseInt(t.substr(i,2),16);return e?s-r:n};w.binary.base64.encode=function(t,e){for(var r="",n="",i,s,o,a=0;a<t.byteLength;)i=t[a++],s=t[a++],o=t[a++],r+=yr.charAt(i>>2),r+=yr.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=yr.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":yr.charAt(o&63)),e&&r.length>e&&(n+=r.substr(0,e)+`\r
|
|
5
|
+
`,r=r.substr(e));return n+=r,n};w.binary.base64.decode=function(t,e,r){var n=e;n||(n=new Uint8Array(Math.ceil(t.length/4)*3)),t=t.replace(/[^A-Za-z0-9\+\/\=]/g,""),r=r||0;for(var i,s,o,a,c=0,u=r;c<t.length;)i=xr[t.charCodeAt(c++)-43],s=xr[t.charCodeAt(c++)-43],o=xr[t.charCodeAt(c++)-43],a=xr[t.charCodeAt(c++)-43],n[u++]=i<<2|s>>4,o!==64&&(n[u++]=(s&15)<<4|o>>2,a!==64&&(n[u++]=(o&3)<<6|a));return e?u-r:n.subarray(0,u)};w.binary.base58.encode=function(t,e){return w.binary.baseN.encode(t,cf,e)};w.binary.base58.decode=function(t,e){return w.binary.baseN.decode(t,cf,e)};w.text={utf8:{},utf16:{}};w.text.utf8.encode=function(t,e,r){t=w.encodeUtf8(t);var n=e;n||(n=new Uint8Array(t.length)),r=r||0;for(var i=r,s=0;s<t.length;++s)n[i++]=t.charCodeAt(s);return e?i-r:n};w.text.utf8.decode=function(t){return w.decodeUtf8(String.fromCharCode.apply(null,t))};w.text.utf16.encode=function(t,e,r){var n=e;n||(n=new Uint8Array(t.length*2));var i=new Uint16Array(n.buffer);r=r||0;for(var s=r,o=r,a=0;a<t.length;++a)i[o++]=t.charCodeAt(a),s+=2;return e?s-r:n};w.text.utf16.decode=function(t){return String.fromCharCode.apply(null,new Uint16Array(t.buffer))};w.deflate=function(t,e,r){if(e=w.decode64(t.deflate(w.encode64(e)).rval),r){var n=2,i=e.charCodeAt(1);i&32&&(n=6),e=e.substring(n,e.length-4)}return e};w.inflate=function(t,e,r){var n=t.inflate(w.encode64(e)).rval;return n===null?null:w.decode64(n)};var ya=function(t,e,r){if(!t)throw new Error("WebStorage not available.");var n;if(r===null?n=t.removeItem(e):(r=w.encode64(JSON.stringify(r)),n=t.setItem(e,r)),typeof n<"u"&&n.rval!==!0){var i=new Error(n.error.message);throw i.id=n.error.id,i.name=n.error.name,i}},xa=function(t,e){if(!t)throw new Error("WebStorage not available.");var r=t.getItem(e);if(t.init)if(r.rval===null){if(r.error){var n=new Error(r.error.message);throw n.id=r.error.id,n.name=r.error.name,n}r=null}else r=r.rval;return r!==null&&(r=JSON.parse(w.decode64(r))),r},Tg=function(t,e,r,n){var i=xa(t,e);i===null&&(i={}),i[r]=n,ya(t,e,i)},Rg=function(t,e,r){var n=xa(t,e);return n!==null&&(n=r in n?n[r]:null),n},Bg=function(t,e,r){var n=xa(t,e);if(n!==null&&r in n){delete n[r];var i=!0;for(var s in n){i=!1;break}i&&(n=null),ya(t,e,n)}},Lg=function(t,e){ya(t,e,null)},ss=function(t,e,r){var n=null;typeof r>"u"&&(r=["web","flash"]);var i,s=!1,o=null;for(var a in r){i=r[a];try{if(i==="flash"||i==="both"){if(e[0]===null)throw new Error("Flash local storage not available.");n=t.apply(this,e),s=i==="flash"}(i==="web"||i==="both")&&(e[0]=localStorage,n=t.apply(this,e),s=!0)}catch(c){o=c}if(s)break}if(!s)throw o;return n};w.setItem=function(t,e,r,n,i){ss(Tg,arguments,i)};w.getItem=function(t,e,r,n){return ss(Rg,arguments,n)};w.removeItem=function(t,e,r,n){ss(Bg,arguments,n)};w.clearItems=function(t,e,r){ss(Lg,arguments,r)};w.isEmpty=function(t){for(var e in t)if(t.hasOwnProperty(e))return!1;return!0};w.format=function(t){for(var e=/%./g,r,n,i=0,s=[],o=0;r=e.exec(t);){n=t.substring(o,e.lastIndex-2),n.length>0&&s.push(n),o=e.lastIndex;var a=r[0][1];switch(a){case"s":case"o":i<arguments.length?s.push(arguments[i+++1]):s.push("<?>");break;case"%":s.push("%");break;default:s.push("<%"+a+"?>")}}return s.push(t.substring(o)),s.join("")};w.formatNumber=function(t,e,r,n){var i=t,s=isNaN(e=Math.abs(e))?2:e,o=r===void 0?",":r,a=n===void 0?".":n,c=i<0?"-":"",u=parseInt(i=Math.abs(+i||0).toFixed(s),10)+"",l=u.length>3?u.length%3:0;return c+(l?u.substr(0,l)+a:"")+u.substr(l).replace(/(\d{3})(?=\d)/g,"$1"+a)+(s?o+Math.abs(i-u).toFixed(s).slice(2):"")};w.formatSize=function(t){return t>=1073741824?t=w.formatNumber(t/1073741824,2,".","")+" GiB":t>=1048576?t=w.formatNumber(t/1048576,2,".","")+" MiB":t>=1024?t=w.formatNumber(t/1024,0)+" KiB":t=w.formatNumber(t,0)+" bytes",t};w.bytesFromIP=function(t){return t.indexOf(".")!==-1?w.bytesFromIPv4(t):t.indexOf(":")!==-1?w.bytesFromIPv6(t):null};w.bytesFromIPv4=function(t){if(t=t.split("."),t.length!==4)return null;for(var e=w.createBuffer(),r=0;r<t.length;++r){var n=parseInt(t[r],10);if(isNaN(n))return null;e.putByte(n)}return e.getBytes()};w.bytesFromIPv6=function(t){var e=0;t=t.split(":").filter(function(o){return o.length===0&&++e,!0});for(var r=(8-t.length+e)*2,n=w.createBuffer(),i=0;i<8;++i){if(!t[i]||t[i].length===0){n.fillWithByte(0,r),r=0;continue}var s=w.hexToBytes(t[i]);s.length<2&&n.putByte(0),n.putBytes(s)}return n.getBytes()};w.bytesToIP=function(t){return t.length===4?w.bytesToIPv4(t):t.length===16?w.bytesToIPv6(t):null};w.bytesToIPv4=function(t){if(t.length!==4)return null;for(var e=[],r=0;r<t.length;++r)e.push(t.charCodeAt(r));return e.join(".")};w.bytesToIPv6=function(t){if(t.length!==16)return null;for(var e=[],r=[],n=0,i=0;i<t.length;i+=2){for(var s=w.bytesToHex(t[i]+t[i+1]);s[0]==="0"&&s!=="0";)s=s.substr(1);if(s==="0"){var o=r[r.length-1],a=e.length;!o||a!==o.end+1?r.push({start:a,end:a}):(o.end=a,o.end-o.start>r[n].end-r[n].start&&(n=r.length-1))}e.push(s)}if(r.length>0){var c=r[n];c.end-c.start>0&&(e.splice(c.start,c.end-c.start+1,""),c.start===0&&e.unshift(""),c.end===7&&e.push(""))}return e.join(":")};w.estimateCores=function(t,e){if(typeof t=="function"&&(e=t,t={}),t=t||{},"cores"in w&&!t.update)return e(null,w.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return w.cores=navigator.hardwareConcurrency,e(null,w.cores);if(typeof Worker>"u")return w.cores=1,e(null,w.cores);if(typeof Blob>"u")return w.cores=2,e(null,w.cores);var r=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(o){for(var a=Date.now(),c=a+4;Date.now()<c;);self.postMessage({st:a,et:c})})}.toString(),")()"],{type:"application/javascript"}));n([],5,16);function n(o,a,c){if(a===0){var u=Math.floor(o.reduce(function(l,f){return l+f},0)/o.length);return w.cores=Math.max(1,u),URL.revokeObjectURL(r),e(null,w.cores)}i(c,function(l,f){o.push(s(c,f)),n(o,a-1,c)})}function i(o,a){for(var c=[],u=[],l=0;l<o;++l){var f=new Worker(r);f.addEventListener("message",function(d){if(u.push(d.data),u.length===o){for(var p=0;p<o;++p)c[p].terminate();a(null,u)}}),c.push(f)}for(var l=0;l<o;++l)c[l].postMessage(l)}function s(o,a){for(var c=[],u=0;u<o;++u)for(var l=a[u],f=c[u]=[],d=0;d<o;++d)if(u!==d){var p=a[d];(l.st>p.st&&l.st<p.et||p.st>l.st&&p.st<l.et)&&f.push(d)}return c.reduce(function(h,m){return Math.max(h,m.length)},0)}}});var os=q((e_,lf)=>{var pi=le();pi.pki=pi.pki||{};var ba=lf.exports=pi.pki.oids=pi.oids=pi.oids||{};function B(t,e){ba[t]=e,ba[e]=t}function ie(t,e){ba[t]=e}B("1.2.840.113549.1.1.1","rsaEncryption");B("1.2.840.113549.1.1.4","md5WithRSAEncryption");B("1.2.840.113549.1.1.5","sha1WithRSAEncryption");B("1.2.840.113549.1.1.7","RSAES-OAEP");B("1.2.840.113549.1.1.8","mgf1");B("1.2.840.113549.1.1.9","pSpecified");B("1.2.840.113549.1.1.10","RSASSA-PSS");B("1.2.840.113549.1.1.11","sha256WithRSAEncryption");B("1.2.840.113549.1.1.12","sha384WithRSAEncryption");B("1.2.840.113549.1.1.13","sha512WithRSAEncryption");B("1.3.101.112","EdDSA25519");B("1.2.840.10040.4.3","dsa-with-sha1");B("1.3.14.3.2.7","desCBC");B("1.3.14.3.2.26","sha1");B("1.3.14.3.2.29","sha1WithRSASignature");B("2.16.840.1.101.3.4.2.1","sha256");B("2.16.840.1.101.3.4.2.2","sha384");B("2.16.840.1.101.3.4.2.3","sha512");B("2.16.840.1.101.3.4.2.4","sha224");B("2.16.840.1.101.3.4.2.5","sha512-224");B("2.16.840.1.101.3.4.2.6","sha512-256");B("1.2.840.113549.2.2","md2");B("1.2.840.113549.2.5","md5");B("1.2.840.113549.1.7.1","data");B("1.2.840.113549.1.7.2","signedData");B("1.2.840.113549.1.7.3","envelopedData");B("1.2.840.113549.1.7.4","signedAndEnvelopedData");B("1.2.840.113549.1.7.5","digestedData");B("1.2.840.113549.1.7.6","encryptedData");B("1.2.840.113549.1.9.1","emailAddress");B("1.2.840.113549.1.9.2","unstructuredName");B("1.2.840.113549.1.9.3","contentType");B("1.2.840.113549.1.9.4","messageDigest");B("1.2.840.113549.1.9.5","signingTime");B("1.2.840.113549.1.9.6","counterSignature");B("1.2.840.113549.1.9.7","challengePassword");B("1.2.840.113549.1.9.8","unstructuredAddress");B("1.2.840.113549.1.9.14","extensionRequest");B("1.2.840.113549.1.9.20","friendlyName");B("1.2.840.113549.1.9.21","localKeyId");B("1.2.840.113549.1.9.22.1","x509Certificate");B("1.2.840.113549.1.12.10.1.1","keyBag");B("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");B("1.2.840.113549.1.12.10.1.3","certBag");B("1.2.840.113549.1.12.10.1.4","crlBag");B("1.2.840.113549.1.12.10.1.5","secretBag");B("1.2.840.113549.1.12.10.1.6","safeContentsBag");B("1.2.840.113549.1.5.13","pkcs5PBES2");B("1.2.840.113549.1.5.12","pkcs5PBKDF2");B("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");B("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");B("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");B("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");B("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");B("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");B("1.2.840.113549.2.7","hmacWithSHA1");B("1.2.840.113549.2.8","hmacWithSHA224");B("1.2.840.113549.2.9","hmacWithSHA256");B("1.2.840.113549.2.10","hmacWithSHA384");B("1.2.840.113549.2.11","hmacWithSHA512");B("1.2.840.113549.3.7","des-EDE3-CBC");B("2.16.840.1.101.3.4.1.2","aes128-CBC");B("2.16.840.1.101.3.4.1.22","aes192-CBC");B("2.16.840.1.101.3.4.1.42","aes256-CBC");B("2.5.4.3","commonName");B("2.5.4.4","surname");B("2.5.4.5","serialNumber");B("2.5.4.6","countryName");B("2.5.4.7","localityName");B("2.5.4.8","stateOrProvinceName");B("2.5.4.9","streetAddress");B("2.5.4.10","organizationName");B("2.5.4.11","organizationalUnitName");B("2.5.4.12","title");B("2.5.4.13","description");B("2.5.4.15","businessCategory");B("2.5.4.17","postalCode");B("2.5.4.42","givenName");B("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");B("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");B("2.16.840.1.113730.1.1","nsCertType");B("2.16.840.1.113730.1.13","nsComment");ie("2.5.29.1","authorityKeyIdentifier");ie("2.5.29.2","keyAttributes");ie("2.5.29.3","certificatePolicies");ie("2.5.29.4","keyUsageRestriction");ie("2.5.29.5","policyMapping");ie("2.5.29.6","subtreesConstraint");ie("2.5.29.7","subjectAltName");ie("2.5.29.8","issuerAltName");ie("2.5.29.9","subjectDirectoryAttributes");ie("2.5.29.10","basicConstraints");ie("2.5.29.11","nameConstraints");ie("2.5.29.12","policyConstraints");ie("2.5.29.13","basicConstraints");B("2.5.29.14","subjectKeyIdentifier");B("2.5.29.15","keyUsage");ie("2.5.29.16","privateKeyUsagePeriod");B("2.5.29.17","subjectAltName");B("2.5.29.18","issuerAltName");B("2.5.29.19","basicConstraints");ie("2.5.29.20","cRLNumber");ie("2.5.29.21","cRLReason");ie("2.5.29.22","expirationDate");ie("2.5.29.23","instructionCode");ie("2.5.29.24","invalidityDate");ie("2.5.29.25","cRLDistributionPoints");ie("2.5.29.26","issuingDistributionPoint");ie("2.5.29.27","deltaCRLIndicator");ie("2.5.29.28","issuingDistributionPoint");ie("2.5.29.29","certificateIssuer");ie("2.5.29.30","nameConstraints");B("2.5.29.31","cRLDistributionPoints");B("2.5.29.32","certificatePolicies");ie("2.5.29.33","policyMappings");ie("2.5.29.34","policyConstraints");B("2.5.29.35","authorityKeyIdentifier");ie("2.5.29.36","policyConstraints");B("2.5.29.37","extKeyUsage");ie("2.5.29.46","freshestCRL");ie("2.5.29.54","inhibitAnyPolicy");B("1.3.6.1.4.1.11129.2.4.2","timestampList");B("1.3.6.1.5.5.7.1.1","authorityInfoAccess");B("1.3.6.1.5.5.7.3.1","serverAuth");B("1.3.6.1.5.5.7.3.2","clientAuth");B("1.3.6.1.5.5.7.3.3","codeSigning");B("1.3.6.1.5.5.7.3.4","emailProtection");B("1.3.6.1.5.5.7.3.8","timeStamping")});var gi=q((t_,hf)=>{var pe=le();Re();os();var O=hf.exports=pe.asn1=pe.asn1||{};O.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};O.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30};O.create=function(t,e,r,n,i){if(pe.util.isArray(n)){for(var s=[],o=0;o<n.length;++o)n[o]!==void 0&&s.push(n[o]);n=s}var a={tagClass:t,type:e,constructed:r,composed:r||pe.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=O.copy(a)),a};O.copy=function(t,e){var r;if(pe.util.isArray(t)){r=[];for(var n=0;n<t.length;++n)r.push(O.copy(t[n],e));return r}return typeof t=="string"?t:(r={tagClass:t.tagClass,type:t.type,constructed:t.constructed,composed:t.composed,value:O.copy(t.value,e)},e&&!e.excludeBitStringContents&&(r.bitStringContents=t.bitStringContents),r)};O.equals=function(t,e,r){if(pe.util.isArray(t)){if(!pe.util.isArray(e)||t.length!==e.length)return!1;for(var n=0;n<t.length;++n)if(!O.equals(t[n],e[n]))return!1;return!0}if(typeof t!=typeof e)return!1;if(typeof t=="string")return t===e;var i=t.tagClass===e.tagClass&&t.type===e.type&&t.constructed===e.constructed&&t.composed===e.composed&&O.equals(t.value,e.value);return r&&r.includeBitStringContents&&(i=i&&t.bitStringContents===e.bitStringContents),i};O.getBerValueLength=function(t){var e=t.getByte();if(e!==128){var r,n=e&128;return n?r=t.getInt((e&127)<<3):r=e,r}};function mi(t,e,r){if(r>e){var n=new Error("Too few bytes to parse DER.");throw n.available=t.length(),n.remaining=e,n.requested=r,n}}var Pg=function(t,e){var r=t.getByte();if(e--,r!==128){var n,i=r&128;if(!i)n=r;else{var s=r&127;mi(t,e,s),n=t.getInt(s<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};O.fromDer=function(t,e){e===void 0&&(e={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof e=="boolean"&&(e={strict:e,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in e||(e.strict=!0),"parseAllBytes"in e||(e.parseAllBytes=!0),"decodeBitStrings"in e||(e.decodeBitStrings=!0),typeof t=="string"&&(t=pe.util.createBuffer(t));var r=t.length(),n=as(t,t.length(),0,e);if(e.parseAllBytes&&t.length()!==0){var i=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=r,i.remaining=t.length(),i}return n};function as(t,e,r,n){var i;mi(t,e,2);var s=t.getByte();e--;var o=s&192,a=s&31;i=t.length();var c=Pg(t,e);if(e-=i-t.length(),c!==void 0&&c>e){if(n.strict){var u=new Error("Too few bytes to read ASN.1 value.");throw u.available=t.length(),u.remaining=e,u.requested=c,u}c=e}var l,f,d=(s&32)===32;if(d)if(l=[],c===void 0)for(;;){if(mi(t,e,2),t.bytes(2)==="\0\0"){t.getBytes(2),e-=2;break}i=t.length(),l.push(as(t,e,r+1,n)),e-=i-t.length()}else for(;c>0;)i=t.length(),l.push(as(t,c,r+1,n)),e-=i-t.length(),c-=i-t.length();if(l===void 0&&o===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&(f=t.bytes(c)),l===void 0&&n.decodeBitStrings&&o===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&c>1){var p=t.read,h=e,m=0;if(a===O.Type.BITSTRING&&(mi(t,e,1),m=t.getByte(),e--),m===0)try{i=t.length();var g={strict:!0,decodeBitStrings:!0},y=as(t,e,r+1,g),x=i-t.length();e-=x,a==O.Type.BITSTRING&&x++;var b=y.tagClass;x===c&&(b===O.Class.UNIVERSAL||b===O.Class.CONTEXT_SPECIFIC)&&(l=[y])}catch{}l===void 0&&(t.read=p,e=h)}if(l===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=e}if(a===O.Type.BMPSTRING)for(l="";c>0;c-=2)mi(t,e,2),l+=String.fromCharCode(t.getInt16()),e-=2;else l=t.getBytes(c),e-=c}var I=f===void 0?null:{bitStringContents:f};return O.create(o,a,d,l,I)}O.toDer=function(t){var e=pe.util.createBuffer(),r=t.tagClass|t.type,n=pe.util.createBuffer(),i=!1;if("bitStringContents"in t&&(i=!0,t.original&&(i=O.equals(t,t.original))),i)n.putBytes(t.bitStringContents);else if(t.composed){t.constructed?r|=32:n.putByte(0);for(var s=0;s<t.value.length;++s)t.value[s]!==void 0&&n.putBuffer(O.toDer(t.value[s]))}else if(t.type===O.Type.BMPSTRING)for(var s=0;s<t.value.length;++s)n.putInt16(t.value.charCodeAt(s));else t.type===O.Type.INTEGER&&t.value.length>1&&(t.value.charCodeAt(0)===0&&!(t.value.charCodeAt(1)&128)||t.value.charCodeAt(0)===255&&(t.value.charCodeAt(1)&128)===128)?n.putBytes(t.value.substr(1)):n.putBytes(t.value);if(e.putByte(r),n.length()<=127)e.putByte(n.length()&127);else{var o=n.length(),a="";do a+=String.fromCharCode(o&255),o=o>>>8;while(o>0);e.putByte(a.length|128);for(var s=a.length-1;s>=0;--s)e.putByte(a.charCodeAt(s))}return e.putBuffer(n),e};O.oidToDer=function(t){var e=t.split("."),r=pe.util.createBuffer();r.putByte(40*parseInt(e[0],10)+parseInt(e[1],10));for(var n,i,s,o,a=2;a<e.length;++a){n=!0,i=[],s=parseInt(e[a],10);do o=s&127,s=s>>>7,n||(o|=128),i.push(o),n=!1;while(s>0);for(var c=i.length-1;c>=0;--c)r.putByte(i[c])}return r};O.derToOid=function(t){var e;typeof t=="string"&&(t=pe.util.createBuffer(t));var r=t.getByte();e=Math.floor(r/40)+"."+r%40;for(var n=0;t.length()>0;)r=t.getByte(),n=n<<7,r&128?n+=r&127:(e+="."+(n+r),n=0);return e};O.utcTimeToDate=function(t){var e=new Date,r=parseInt(t.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(t.substr(2,2),10)-1,i=parseInt(t.substr(4,2),10),s=parseInt(t.substr(6,2),10),o=parseInt(t.substr(8,2),10),a=0;if(t.length>11){var c=t.charAt(10),u=10;c!=="+"&&c!=="-"&&(a=parseInt(t.substr(10,2),10),u+=2)}if(e.setUTCFullYear(r,n,i),e.setUTCHours(s,o,a,0),u&&(c=t.charAt(u),c==="+"||c==="-")){var l=parseInt(t.substr(u+1,2),10),f=parseInt(t.substr(u+4,2),10),d=l*60+f;d*=6e4,c==="+"?e.setTime(+e-d):e.setTime(+e+d)}return e};O.generalizedTimeToDate=function(t){var e=new Date,r=parseInt(t.substr(0,4),10),n=parseInt(t.substr(4,2),10)-1,i=parseInt(t.substr(6,2),10),s=parseInt(t.substr(8,2),10),o=parseInt(t.substr(10,2),10),a=parseInt(t.substr(12,2),10),c=0,u=0,l=!1;t.charAt(t.length-1)==="Z"&&(l=!0);var f=t.length-5,d=t.charAt(f);if(d==="+"||d==="-"){var p=parseInt(t.substr(f+1,2),10),h=parseInt(t.substr(f+4,2),10);u=p*60+h,u*=6e4,d==="+"&&(u*=-1),l=!0}return t.charAt(14)==="."&&(c=parseFloat(t.substr(14),10)*1e3),l?(e.setUTCFullYear(r,n,i),e.setUTCHours(s,o,a,c),e.setTime(+e+u)):(e.setFullYear(r,n,i),e.setHours(s,o,a,c)),e};O.dateToUtcTime=function(t){if(typeof t=="string")return t;var e="",r=[];r.push((""+t.getUTCFullYear()).substr(2)),r.push(""+(t.getUTCMonth()+1)),r.push(""+t.getUTCDate()),r.push(""+t.getUTCHours()),r.push(""+t.getUTCMinutes()),r.push(""+t.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(e+="0"),e+=r[n];return e+="Z",e};O.dateToGeneralizedTime=function(t){if(typeof t=="string")return t;var e="",r=[];r.push(""+t.getUTCFullYear()),r.push(""+(t.getUTCMonth()+1)),r.push(""+t.getUTCDate()),r.push(""+t.getUTCHours()),r.push(""+t.getUTCMinutes()),r.push(""+t.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(e+="0"),e+=r[n];return e+="Z",e};O.integerToDer=function(t){var e=pe.util.createBuffer();if(t>=-128&&t<128)return e.putSignedInt(t,8);if(t>=-32768&&t<32768)return e.putSignedInt(t,16);if(t>=-8388608&&t<8388608)return e.putSignedInt(t,24);if(t>=-2147483648&&t<2147483648)return e.putSignedInt(t,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=t,r};O.derToInteger=function(t){typeof t=="string"&&(t=pe.util.createBuffer(t));var e=t.length()*8;if(e>32)throw new Error("Integer too large; max is 32-bits.");return t.getSignedInt(e)};O.validate=function(t,e,r,n){var i=!1;if((t.tagClass===e.tagClass||typeof e.tagClass>"u")&&(t.type===e.type||typeof e.type>"u"))if(t.constructed===e.constructed||typeof e.constructed>"u"){if(i=!0,e.value&&pe.util.isArray(e.value))for(var s=0,o=0;i&&o<e.value.length;++o)i=e.value[o].optional||!1,t.value[s]&&(i=O.validate(t.value[s],e.value[o],r,n),i?++s:e.value[o].optional&&(i=!0)),!i&&n&&n.push("["+e.name+'] Tag class "'+e.tagClass+'", type "'+e.type+'" expected value length "'+e.value.length+'", got "'+t.value.length+'"');if(i&&r&&(e.capture&&(r[e.capture]=t.value),e.captureAsn1&&(r[e.captureAsn1]=t),e.captureBitStringContents&&"bitStringContents"in t&&(r[e.captureBitStringContents]=t.bitStringContents),e.captureBitStringValue&&"bitStringContents"in t)){var a;if(t.bitStringContents.length<2)r[e.captureBitStringValue]="";else{var c=t.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");r[e.captureBitStringValue]=t.bitStringContents.slice(1)}}}else n&&n.push("["+e.name+'] Expected constructed "'+e.constructed+'", got "'+t.constructed+'"');else n&&(t.tagClass!==e.tagClass&&n.push("["+e.name+'] Expected tag class "'+e.tagClass+'", got "'+t.tagClass+'"'),t.type!==e.type&&n.push("["+e.name+'] Expected type "'+e.type+'", got "'+t.type+'"'));return i};var ff=/[^\\u0000-\\u00ff]/;O.prettyPrint=function(t,e,r){var n="";e=e||0,r=r||2,e>0&&(n+=`
|
|
6
6
|
`);for(var i="",s=0;s<e*r;++s)i+=" ";switch(n+=i+"Tag: ",t.tagClass){case O.Class.UNIVERSAL:n+="Universal:";break;case O.Class.APPLICATION:n+="Application:";break;case O.Class.CONTEXT_SPECIFIC:n+="Context-Specific:";break;case O.Class.PRIVATE:n+="Private:";break}if(t.tagClass===O.Class.UNIVERSAL)switch(n+=t.type,t.type){case O.Type.NONE:n+=" (None)";break;case O.Type.BOOLEAN:n+=" (Boolean)";break;case O.Type.INTEGER:n+=" (Integer)";break;case O.Type.BITSTRING:n+=" (Bit string)";break;case O.Type.OCTETSTRING:n+=" (Octet string)";break;case O.Type.NULL:n+=" (Null)";break;case O.Type.OID:n+=" (Object Identifier)";break;case O.Type.ODESC:n+=" (Object Descriptor)";break;case O.Type.EXTERNAL:n+=" (External or Instance of)";break;case O.Type.REAL:n+=" (Real)";break;case O.Type.ENUMERATED:n+=" (Enumerated)";break;case O.Type.EMBEDDED:n+=" (Embedded PDV)";break;case O.Type.UTF8:n+=" (UTF8)";break;case O.Type.ROID:n+=" (Relative Object Identifier)";break;case O.Type.SEQUENCE:n+=" (Sequence)";break;case O.Type.SET:n+=" (Set)";break;case O.Type.PRINTABLESTRING:n+=" (Printable String)";break;case O.Type.IA5String:n+=" (IA5String (ASCII))";break;case O.Type.UTCTIME:n+=" (UTC time)";break;case O.Type.GENERALIZEDTIME:n+=" (Generalized time)";break;case O.Type.BMPSTRING:n+=" (BMP String)";break}else n+=t.type;if(n+=`
|
|
7
7
|
`,n+=i+"Constructed: "+t.constructed+`
|
|
8
|
-
`,t.composed){for(var o=0,a="",s=0;s<t.value.length;++s)t.value[s]!==void 0&&(o+=1,a+=O.prettyPrint(t.value[s],e+1,r),s+1<t.value.length&&(a+=","));n+=i+"Sub values: "+o+a}else{if(n+=i+"Value: ",t.type===O.Type.OID){var c=O.derToOid(t.value);n+=c,me.pki&&me.pki.oids&&c in me.pki.oids&&(n+=" ("+me.pki.oids[c]+") ")}if(t.type===O.Type.INTEGER)try{n+=O.derToInteger(t.value)}catch{n+="0x"+me.util.bytesToHex(t.value)}else if(t.type===O.Type.BITSTRING){if(t.value.length>1?n+="0x"+me.util.bytesToHex(t.value.slice(1)):n+="(none)",t.value.length>0){var u=t.value.charCodeAt(0);u==1?n+=" (1 unused bit shown)":u>1&&(n+=" ("+u+" unused bits shown)")}}else if(t.type===O.Type.OCTETSTRING)Ef.test(t.value)||(n+="("+t.value+") "),n+="0x"+me.util.bytesToHex(t.value);else if(t.type===O.Type.UTF8)try{n+=me.util.decodeUtf8(t.value)}catch(l){if(l.message==="URI malformed")n+="0x"+me.util.bytesToHex(t.value)+" (malformed UTF8)";else throw l}else t.type===O.Type.PRINTABLESTRING||t.type===O.Type.IA5String?n+=t.value:Ef.test(t.value)?n+="0x"+me.util.bytesToHex(t.value):t.value.length===0?n+="[null]":n+=t.value}return n}});var Ta=V((a_,_f)=>{var Ke=he();Le();_f.exports=Ke.cipher=Ke.cipher||{};Ke.cipher.algorithms=Ke.cipher.algorithms||{};Ke.cipher.createCipher=function(t,e){var r=t;if(typeof r=="string"&&(r=Ke.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+t);return new Ke.cipher.BlockCipher({algorithm:r,key:e,decrypt:!1})};Ke.cipher.createDecipher=function(t,e){var r=t;if(typeof r=="string"&&(r=Ke.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+t);return new Ke.cipher.BlockCipher({algorithm:r,key:e,decrypt:!0})};Ke.cipher.registerAlgorithm=function(t,e){t=t.toUpperCase(),Ke.cipher.algorithms[t]=e};Ke.cipher.getAlgorithm=function(t){return t=t.toUpperCase(),t in Ke.cipher.algorithms?Ke.cipher.algorithms[t]:null};var Ca=Ke.cipher.BlockCipher=function(t){this.algorithm=t.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=t.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=t.decrypt,this.algorithm.initialize(t)};Ca.prototype.start=function(t){t=t||{};var e={};for(var r in t)e[r]=t[r];e.decrypt=this._decrypt,this._finish=!1,this._input=Ke.util.createBuffer(),this.output=t.output||Ke.util.createBuffer(),this.mode.start(e)};Ca.prototype.update=function(t){for(t&&this._input.putBuffer(t);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};Ca.prototype.finish=function(t){t&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(r){return t(this.blockSize,r,!1)},this.mode.unpad=function(r){return t(this.blockSize,r,!0)});var e={};return e.decrypt=this._decrypt,e.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,e)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,e))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,e))}});var La=V((c_,Sf)=>{var qe=he();Le();qe.cipher=qe.cipher||{};var J=Sf.exports=qe.cipher.modes=qe.cipher.modes||{};J.ecb=function(t){t=t||{},this.name="ECB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};J.ecb.prototype.start=function(t){};J.ecb.prototype.encrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n])};J.ecb.prototype.decrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n])};J.ecb.prototype.pad=function(t,e){var r=t.length()===this.blockSize?this.blockSize:this.blockSize-t.length();return t.fillWithByte(r,r),!0};J.ecb.prototype.unpad=function(t,e){if(e.overflow>0)return!1;var r=t.length(),n=t.at(r-1);return n>this.blockSize<<2?!1:(t.truncate(n),!0)};J.cbc=function(t){t=t||{},this.name="CBC",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};J.cbc.prototype.start=function(t){if(t.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in t)this._iv=ps(t.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};J.cbc.prototype.encrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=this._prev[n]^t.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n]);this._prev=this._outBlock};J.cbc.prototype.decrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};J.cbc.prototype.pad=function(t,e){var r=t.length()===this.blockSize?this.blockSize:this.blockSize-t.length();return t.fillWithByte(r,r),!0};J.cbc.prototype.unpad=function(t,e){if(e.overflow>0)return!1;var r=t.length(),n=t.at(r-1);return n>this.blockSize<<2?!1:(t.truncate(n),!0)};J.cfb=function(t){t=t||{},this.name="CFB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=qe.util.createBuffer(),this._partialBytes=0};J.cfb.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=ps(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};J.cfb.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=t.getInt32()^this._outBlock[i],e.putInt32(this._inBlock[i]);return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=t.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};J.cfb.prototype.decrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=t.getInt32(),e.putInt32(this._inBlock[i]^this._outBlock[i]);return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=t.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};J.ofb=function(t){t=t||{},this.name="OFB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=qe.util.createBuffer(),this._partialBytes=0};J.ofb.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=ps(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};J.ofb.prototype.encrypt=function(t,e,r){var n=t.length();if(t.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)e.putInt32(t.getInt32()^this._outBlock[i]),this._inBlock[i]=this._outBlock[i];return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._outBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};J.ofb.prototype.decrypt=J.ofb.prototype.encrypt;J.ctr=function(t){t=t||{},this.name="CTR",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=qe.util.createBuffer(),this._partialBytes=0};J.ctr.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=ps(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};J.ctr.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize)for(var i=0;i<this._ints;++i)e.putInt32(t.getInt32()^this._outBlock[i]);else{var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s>0&&(t.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}ms(this._inBlock)};J.ctr.prototype.decrypt=J.ctr.prototype.encrypt;J.gcm=function(t){t=t||{},this.name="GCM",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=qe.util.createBuffer(),this._partialBytes=0,this._R=3774873600};J.gcm.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");var e=qe.util.createBuffer(t.iv);this._cipherLength=0;var r;if("additionalData"in t?r=qe.util.createBuffer(t.additionalData):r=qe.util.createBuffer(),"tagLength"in t?this._tagLength=t.tagLength:this._tagLength=128,this._tag=null,t.decrypt&&(this._tag=qe.util.createBuffer(t.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var n=e.length();if(n===12)this._j0=[e.getInt32(),e.getInt32(),e.getInt32(),1];else{for(this._j0=[0,0,0,0];e.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[e.getInt32(),e.getInt32(),e.getInt32(),e.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(Ba(n*8)))}this._inBlock=this._j0.slice(0),ms(this._inBlock),this._partialBytes=0,r=qe.util.createBuffer(r),this._aDataLength=Ba(r.length()*8);var i=r.length()%this.blockSize;for(i&&r.fillWithByte(0,this.blockSize-i),this._s=[0,0,0,0];r.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[r.getInt32(),r.getInt32(),r.getInt32(),r.getInt32()])};J.gcm.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)e.putInt32(this._outBlock[i]^=t.getInt32());this._cipherLength+=this.blockSize}else{var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s<=0||r){if(r){var o=n%this.blockSize;this._cipherLength+=o,this._partialOutput.truncate(this.blockSize-o)}else this._cipherLength+=this.blockSize;for(var i=0;i<this._ints;++i)this._outBlock[i]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return t.read-=this.blockSize,e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),ms(this._inBlock)};J.gcm.prototype.decrypt=function(t,e,r){var n=t.length();if(n<this.blockSize&&!(r&&n>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),ms(this._inBlock),this._hashBlock[0]=t.getInt32(),this._hashBlock[1]=t.getInt32(),this._hashBlock[2]=t.getInt32(),this._hashBlock[3]=t.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var i=0;i<this._ints;++i)e.putInt32(this._outBlock[i]^this._hashBlock[i]);n<this.blockSize?this._cipherLength+=n%this.blockSize:this._cipherLength+=this.blockSize};J.gcm.prototype.afterFinish=function(t,e){var r=!0;e.decrypt&&e.overflow&&t.truncate(this.blockSize-e.overflow),this.tag=qe.util.createBuffer();var n=this._aDataLength.concat(Ba(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,n);var i=[];this.cipher.encrypt(this._j0,i);for(var s=0;s<this._ints;++s)this.tag.putInt32(this._s[s]^i[s]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),e.decrypt&&this.tag.bytes()!==this._tag&&(r=!1),r};J.gcm.prototype.multiply=function(t,e){for(var r=[0,0,0,0],n=e.slice(0),i=0;i<128;++i){var s=t[i/32|0]&1<<31-i%32;s&&(r[0]^=n[0],r[1]^=n[1],r[2]^=n[2],r[3]^=n[3]),this.pow(n,n)}return r};J.gcm.prototype.pow=function(t,e){for(var r=t[3]&1,n=3;n>0;--n)e[n]=t[n]>>>1|(t[n-1]&1)<<31;e[0]=t[0]>>>1,r&&(e[0]^=this._R)};J.gcm.prototype.tableMultiply=function(t){for(var e=[0,0,0,0],r=0;r<32;++r){var n=r/8|0,i=t[n]>>>(7-r%8)*4&15,s=this._m[r][i];e[0]^=s[0],e[1]^=s[1],e[2]^=s[2],e[3]^=s[3]}return e};J.gcm.prototype.ghash=function(t,e,r){return e[0]^=r[0],e[1]^=r[1],e[2]^=r[2],e[3]^=r[3],this.tableMultiply(e)};J.gcm.prototype.generateHashTable=function(t,e){for(var r=8/e,n=4*r,i=16*r,s=new Array(i),o=0;o<i;++o){var a=[0,0,0,0],c=o/n|0,u=(n-1-o%n)*e;a[c]=1<<e-1<<u,s[o]=this.generateSubHashTable(this.multiply(a,t),e)}return s};J.gcm.prototype.generateSubHashTable=function(t,e){var r=1<<e,n=r>>>1,i=new Array(r);i[n]=t.slice(0);for(var s=n>>>1;s>0;)this.pow(i[2*s],i[s]=[]),s>>=1;for(s=2;s<n;){for(var o=1;o<s;++o){var a=i[s],c=i[o];i[s+o]=[a[0]^c[0],a[1]^c[1],a[2]^c[2],a[3]^c[3]]}s*=2}for(i[0]=[0,0,0,0],s=n+1;s<r;++s){var u=i[s^n];i[s]=[t[0]^u[0],t[1]^u[1],t[2]^u[2],t[3]^u[3]]}return i};function ps(t,e){if(typeof t=="string"&&(t=qe.util.createBuffer(t)),qe.util.isArray(t)&&t.length>4){var r=t;t=qe.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(t.length()<e)throw new Error("Invalid IV length; got "+t.length()+" bytes and expected "+e+" bytes.");if(!qe.util.isArray(t)){for(var i=[],s=e/4,n=0;n<s;++n)i.push(t.getInt32());t=i}return t}function ms(t){t[t.length-1]=t[t.length-1]+1&4294967295}function Ba(t){return[t/4294967296|0,t&4294967295]}});var ka=V((u_,Cf)=>{var pe=he();Ta();La();Le();Cf.exports=pe.aes=pe.aes||{};pe.aes.startEncrypting=function(t,e,r,n){var i=gs({key:t,output:r,decrypt:!1,mode:n});return i.start(e),i};pe.aes.createEncryptionCipher=function(t,e){return gs({key:t,output:null,decrypt:!1,mode:e})};pe.aes.startDecrypting=function(t,e,r,n){var i=gs({key:t,output:r,decrypt:!0,mode:n});return i.start(e),i};pe.aes.createDecryptionCipher=function(t,e){return gs({key:t,output:null,decrypt:!0,mode:e})};pe.aes.Algorithm=function(t,e){Na||If();var r=this;r.name=t,r.mode=new e({blockSize:16,cipher:{encrypt:function(n,i){return Da(r._w,n,i,!1)},decrypt:function(n,i){return Da(r._w,n,i,!0)}}}),r._init=!1};pe.aes.Algorithm.prototype.initialize=function(t){if(!this._init){var e=t.key,r;if(typeof e=="string"&&(e.length===16||e.length===24||e.length===32))e=pe.util.createBuffer(e);else if(pe.util.isArray(e)&&(e.length===16||e.length===24||e.length===32)){r=e,e=pe.util.createBuffer();for(var n=0;n<r.length;++n)e.putByte(r[n])}if(!pe.util.isArray(e)){r=e,e=[];var i=r.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)e.push(r.getInt32())}}if(!pe.util.isArray(e)||!(e.length===4||e.length===6||e.length===8))throw new Error("Invalid key parameter.");var s=this.mode.name,o=["CFB","OFB","CTR","GCM"].indexOf(s)!==-1;this._w=Rf(e,t.decrypt&&!o),this._init=!0}};pe.aes._expandKey=function(t,e){return Na||If(),Rf(t,e)};pe.aes._updateBlock=Da;Rn("AES-ECB",pe.cipher.modes.ecb);Rn("AES-CBC",pe.cipher.modes.cbc);Rn("AES-CFB",pe.cipher.modes.cfb);Rn("AES-OFB",pe.cipher.modes.ofb);Rn("AES-CTR",pe.cipher.modes.ctr);Rn("AES-GCM",pe.cipher.modes.gcm);function Rn(t,e){var r=function(){return new pe.aes.Algorithm(t,e)};pe.cipher.registerAlgorithm(t,r)}var Na=!1,In=4,it,Pa,Af,Hr,Bt;function If(){Na=!0,Af=[0,1,2,4,8,16,32,64,128,27,54];for(var t=new Array(256),e=0;e<128;++e)t[e]=e<<1,t[e+128]=e+128<<1^283;it=new Array(256),Pa=new Array(256),Hr=new Array(4),Bt=new Array(4);for(var e=0;e<4;++e)Hr[e]=new Array(256),Bt[e]=new Array(256);for(var r=0,n=0,i,s,o,a,c,u,l,e=0;e<256;++e){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,it[r]=a,Pa[a]=r,c=t[a],i=t[r],s=t[i],o=t[s],u=c<<24^a<<16^a<<8^(a^c),l=(i^s^o)<<24^(r^o)<<16^(r^s^o)<<8^(r^i^o);for(var f=0;f<4;++f)Hr[f][r]=u,Bt[f][a]=l,u=u<<24|u>>>8,l=l<<24|l>>>8;r===0?r=n=1:(r=i^t[t[t[i^o]]],n^=t[t[n]])}}function Rf(t,e){for(var r=t.slice(0),n,i=1,s=r.length,o=s+6+1,a=In*o,c=s;c<a;++c)n=r[c-1],c%s===0?(n=it[n>>>16&255]<<24^it[n>>>8&255]<<16^it[n&255]<<8^it[n>>>24]^Af[i]<<24,i++):s>6&&c%s===4&&(n=it[n>>>24]<<24^it[n>>>16&255]<<16^it[n>>>8&255]<<8^it[n&255]),r[c]=r[c-s]^n;if(e){var u,l=Bt[0],f=Bt[1],h=Bt[2],p=Bt[3],d=r.slice(0);a=r.length;for(var c=0,m=a-In;c<a;c+=In,m-=In)if(c===0||c===a-In)d[c]=r[m],d[c+1]=r[m+3],d[c+2]=r[m+2],d[c+3]=r[m+1];else for(var g=0;g<In;++g)u=r[m+g],d[c+(3&-g)]=l[it[u>>>24]]^f[it[u>>>16&255]]^h[it[u>>>8&255]]^p[it[u&255]];r=d}return r}function Da(t,e,r,n){var i=t.length/4-1,s,o,a,c,u;n?(s=Bt[0],o=Bt[1],a=Bt[2],c=Bt[3],u=Pa):(s=Hr[0],o=Hr[1],a=Hr[2],c=Hr[3],u=it);var l,f,h,p,d,m,g;l=e[0]^t[0],f=e[n?3:1]^t[1],h=e[2]^t[2],p=e[n?1:3]^t[3];for(var y=3,x=1;x<i;++x)d=s[l>>>24]^o[f>>>16&255]^a[h>>>8&255]^c[p&255]^t[++y],m=s[f>>>24]^o[h>>>16&255]^a[p>>>8&255]^c[l&255]^t[++y],g=s[h>>>24]^o[p>>>16&255]^a[l>>>8&255]^c[f&255]^t[++y],p=s[p>>>24]^o[l>>>16&255]^a[f>>>8&255]^c[h&255]^t[++y],l=d,f=m,h=g;r[0]=u[l>>>24]<<24^u[f>>>16&255]<<16^u[h>>>8&255]<<8^u[p&255]^t[++y],r[n?3:1]=u[f>>>24]<<24^u[h>>>16&255]<<16^u[p>>>8&255]<<8^u[l&255]^t[++y],r[2]=u[h>>>24]<<24^u[p>>>16&255]<<16^u[l>>>8&255]<<8^u[f&255]^t[++y],r[n?1:3]=u[p>>>24]<<24^u[l>>>16&255]<<16^u[f>>>8&255]<<8^u[h&255]^t[++y]}function gs(t){t=t||{};var e=(t.mode||"CBC").toUpperCase(),r="AES-"+e,n;t.decrypt?n=pe.cipher.createDecipher(r,t.key):n=pe.cipher.createCipher(r,t.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof pe.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var Lf=V((l_,Bf)=>{var ye=he();Ta();La();Le();Bf.exports=ye.des=ye.des||{};ye.des.startEncrypting=function(t,e,r,n){var i=ys({key:t,output:r,decrypt:!1,mode:n||(e===null?"ECB":"CBC")});return i.start(e),i};ye.des.createEncryptionCipher=function(t,e){return ys({key:t,output:null,decrypt:!1,mode:e})};ye.des.startDecrypting=function(t,e,r,n){var i=ys({key:t,output:r,decrypt:!0,mode:n||(e===null?"ECB":"CBC")});return i.start(e),i};ye.des.createDecryptionCipher=function(t,e){return ys({key:t,output:null,decrypt:!0,mode:e})};ye.des.Algorithm=function(t,e){var r=this;r.name=t,r.mode=new e({blockSize:8,cipher:{encrypt:function(n,i){return Tf(r._keys,n,i,!1)},decrypt:function(n,i){return Tf(r._keys,n,i,!0)}}}),r._init=!1};ye.des.Algorithm.prototype.initialize=function(t){if(!this._init){var e=ye.util.createBuffer(t.key);if(this.name.indexOf("3DES")===0&&e.length()!==24)throw new Error("Invalid Triple-DES key size: "+e.length()*8);this._keys=Qg(e),this._init=!0}};Vt("DES-ECB",ye.cipher.modes.ecb);Vt("DES-CBC",ye.cipher.modes.cbc);Vt("DES-CFB",ye.cipher.modes.cfb);Vt("DES-OFB",ye.cipher.modes.ofb);Vt("DES-CTR",ye.cipher.modes.ctr);Vt("3DES-ECB",ye.cipher.modes.ecb);Vt("3DES-CBC",ye.cipher.modes.cbc);Vt("3DES-CFB",ye.cipher.modes.cfb);Vt("3DES-OFB",ye.cipher.modes.ofb);Vt("3DES-CTR",ye.cipher.modes.ctr);function Vt(t,e){var r=function(){return new ye.des.Algorithm(t,e)};ye.cipher.registerAlgorithm(t,r)}var qg=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],Vg=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],$g=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],zg=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],Hg=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],Gg=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],Wg=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],Yg=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];function Qg(t){for(var e=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],r=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],s=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],o=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],a=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],u=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],l=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],f=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],h=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],p=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],d=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],m=t.length()>8?3:1,g=[],y=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,b,I=0;I<m;I++){var v=t.getInt32(),_=t.getInt32();b=(v>>>4^_)&252645135,_^=b,v^=b<<4,b=(_>>>-16^v)&65535,v^=b,_^=b<<-16,b=(v>>>2^_)&858993459,_^=b,v^=b<<2,b=(_>>>-16^v)&65535,v^=b,_^=b<<-16,b=(v>>>1^_)&1431655765,_^=b,v^=b<<1,b=(_>>>8^v)&16711935,v^=b,_^=b<<8,b=(v>>>1^_)&1431655765,_^=b,v^=b<<1,b=v<<8|_>>>20&240,v=_<<24|_<<8&16711680|_>>>8&65280|_>>>24&240,_=b;for(var P=0;P<y.length;++P){y[P]?(v=v<<2|v>>>26,_=_<<2|_>>>26):(v=v<<1|v>>>27,_=_<<1|_>>>27),v&=-15,_&=-15;var D=e[v>>>28]|r[v>>>24&15]|n[v>>>20&15]|i[v>>>16&15]|s[v>>>12&15]|o[v>>>8&15]|a[v>>>4&15],G=c[_>>>28]|u[_>>>24&15]|l[_>>>20&15]|f[_>>>16&15]|h[_>>>12&15]|p[_>>>8&15]|d[_>>>4&15];b=(G>>>16^D)&65535,g[x++]=D^b,g[x++]=G^b<<16}}return g}function Tf(t,e,r,n){var i=t.length===32?3:9,s;i===3?s=n?[30,-2,-2]:[0,32,2]:s=n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var o,a=e[0],c=e[1];o=(a>>>4^c)&252645135,c^=o,a^=o<<4,o=(a>>>16^c)&65535,c^=o,a^=o<<16,o=(c>>>2^a)&858993459,a^=o,c^=o<<2,o=(c>>>8^a)&16711935,a^=o,c^=o<<8,o=(a>>>1^c)&1431655765,c^=o,a^=o<<1,a=a<<1|a>>>31,c=c<<1|c>>>31;for(var u=0;u<i;u+=3){for(var l=s[u+1],f=s[u+2],h=s[u];h!=l;h+=f){var p=c^t[h],d=(c>>>4|c<<28)^t[h+1];o=a,a=c,c=o^(Vg[p>>>24&63]|zg[p>>>16&63]|Gg[p>>>8&63]|Yg[p&63]|qg[d>>>24&63]|$g[d>>>16&63]|Hg[d>>>8&63]|Wg[d&63])}o=a,a=c,c=o}a=a>>>1|a<<31,c=c>>>1|c<<31,o=(a>>>1^c)&1431655765,c^=o,a^=o<<1,o=(c>>>8^a)&16711935,a^=o,c^=o<<8,o=(c>>>2^a)&858993459,a^=o,c^=o<<2,o=(a>>>16^c)&65535,c^=o,a^=o<<16,o=(a>>>4^c)&252645135,c^=o,a^=o<<4,r[0]=a,r[1]=c}function ys(t){t=t||{};var e=(t.mode||"CBC").toUpperCase(),r="DES-"+e,n;t.decrypt?n=ye.cipher.createDecipher(r,t.key):n=ye.cipher.createCipher(r,t.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof ye.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var Gr=V((f_,Pf)=>{var xs=he();Pf.exports=xs.md=xs.md||{};xs.md.algorithms=xs.md.algorithms||{}});var Nf=V((h_,Df)=>{var tr=he();Gr();Le();var Xg=Df.exports=tr.hmac=tr.hmac||{};Xg.create=function(){var t=null,e=null,r=null,n=null,i={};return i.start=function(s,o){if(s!==null)if(typeof s=="string")if(s=s.toLowerCase(),s in tr.md.algorithms)e=tr.md.algorithms[s].create();else throw new Error('Unknown hash algorithm "'+s+'"');else e=s;if(o===null)o=t;else{if(typeof o=="string")o=tr.util.createBuffer(o);else if(tr.util.isArray(o)){var a=o;o=tr.util.createBuffer();for(var c=0;c<a.length;++c)o.putByte(a[c])}var u=o.length();u>e.blockLength&&(e.start(),e.update(o.bytes()),o=e.digest()),r=tr.util.createBuffer(),n=tr.util.createBuffer(),u=o.length();for(var c=0;c<u;++c){var a=o.at(c);r.putByte(54^a),n.putByte(92^a)}if(u<e.blockLength)for(var a=e.blockLength-u,c=0;c<a;++c)r.putByte(54),n.putByte(92);t=o,r=r.bytes(),n=n.bytes()}e.start(),e.update(r)},i.update=function(s){e.update(s)},i.getMac=function(){var s=e.digest().bytes();return e.start(),e.update(n),e.update(s),e.digest()},i.digest=i.getMac,i}});var wi=V(()=>{});var Of=V((m_,kf)=>{var st=he();Nf();Gr();Le();var Zg=st.pkcs5=st.pkcs5||{},rr;st.util.isNodejs&&!st.options.usePureJavaScript&&(rr=wi());kf.exports=st.pbkdf2=Zg.pbkdf2=function(t,e,r,n,i,s){if(typeof i=="function"&&(s=i,i=null),st.util.isNodejs&&!st.options.usePureJavaScript&&rr.pbkdf2&&(i===null||typeof i!="object")&&(rr.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),t=Buffer.from(t,"binary"),e=Buffer.from(e,"binary"),s?rr.pbkdf2Sync.length===4?rr.pbkdf2(t,e,r,n,function(b,I){if(b)return s(b);s(null,I.toString("binary"))}):rr.pbkdf2(t,e,r,n,i,function(b,I){if(b)return s(b);s(null,I.toString("binary"))}):rr.pbkdf2Sync.length===4?rr.pbkdf2Sync(t,e,r,n).toString("binary"):rr.pbkdf2Sync(t,e,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in st.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=st.md[i].create()}var o=i.digestLength;if(n>4294967295*o){var a=new Error("Derived key is too long.");if(s)return s(a);throw a}var c=Math.ceil(n/o),u=n-(c-1)*o,l=st.hmac.create();l.start(i,t);var f="",h,p,d;if(!s){for(var m=1;m<=c;++m){l.start(null,null),l.update(e),l.update(st.util.int32ToBytes(m)),h=d=l.digest().getBytes();for(var g=2;g<=r;++g)l.start(null,null),l.update(d),p=l.digest().getBytes(),h=st.util.xorBytes(h,p,o),d=p;f+=m<c?h:h.substr(0,u)}return f}var m=1,g;function y(){if(m>c)return s(null,f);l.start(null,null),l.update(e),l.update(st.util.int32ToBytes(m)),h=d=l.digest().getBytes(),g=2,x()}function x(){if(g<=r)return l.start(null,null),l.update(d),p=l.digest().getBytes(),h=st.util.xorBytes(h,p,o),d=p,++g,st.util.setImmediate(x);f+=m<c?h:h.substr(0,u),++m,y()}y()}});var Ff=V((g_,Uf)=>{var ws=he();Le();var Mf=Uf.exports=ws.pem=ws.pem||{};Mf.encode=function(t,e){e=e||{};var r="-----BEGIN "+t.type+`-----\r
|
|
9
|
-
`,n;if(t.procType&&(n={name:"Proc-Type",values:[String(t.procType.version),t.procType.type]},r+=
|
|
10
|
-
`),r+=
|
|
8
|
+
`,t.composed){for(var o=0,a="",s=0;s<t.value.length;++s)t.value[s]!==void 0&&(o+=1,a+=O.prettyPrint(t.value[s],e+1,r),s+1<t.value.length&&(a+=","));n+=i+"Sub values: "+o+a}else{if(n+=i+"Value: ",t.type===O.Type.OID){var c=O.derToOid(t.value);n+=c,pe.pki&&pe.pki.oids&&c in pe.pki.oids&&(n+=" ("+pe.pki.oids[c]+") ")}if(t.type===O.Type.INTEGER)try{n+=O.derToInteger(t.value)}catch{n+="0x"+pe.util.bytesToHex(t.value)}else if(t.type===O.Type.BITSTRING){if(t.value.length>1?n+="0x"+pe.util.bytesToHex(t.value.slice(1)):n+="(none)",t.value.length>0){var u=t.value.charCodeAt(0);u==1?n+=" (1 unused bit shown)":u>1&&(n+=" ("+u+" unused bits shown)")}}else if(t.type===O.Type.OCTETSTRING)ff.test(t.value)||(n+="("+t.value+") "),n+="0x"+pe.util.bytesToHex(t.value);else if(t.type===O.Type.UTF8)try{n+=pe.util.decodeUtf8(t.value)}catch(l){if(l.message==="URI malformed")n+="0x"+pe.util.bytesToHex(t.value)+" (malformed UTF8)";else throw l}else t.type===O.Type.PRINTABLESTRING||t.type===O.Type.IA5String?n+=t.value:ff.test(t.value)?n+="0x"+pe.util.bytesToHex(t.value):t.value.length===0?n+="[null]":n+=t.value}return n}});var Ea=q((r_,df)=>{var Oe=le();Re();df.exports=Oe.cipher=Oe.cipher||{};Oe.cipher.algorithms=Oe.cipher.algorithms||{};Oe.cipher.createCipher=function(t,e){var r=t;if(typeof r=="string"&&(r=Oe.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+t);return new Oe.cipher.BlockCipher({algorithm:r,key:e,decrypt:!1})};Oe.cipher.createDecipher=function(t,e){var r=t;if(typeof r=="string"&&(r=Oe.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+t);return new Oe.cipher.BlockCipher({algorithm:r,key:e,decrypt:!0})};Oe.cipher.registerAlgorithm=function(t,e){t=t.toUpperCase(),Oe.cipher.algorithms[t]=e};Oe.cipher.getAlgorithm=function(t){return t=t.toUpperCase(),t in Oe.cipher.algorithms?Oe.cipher.algorithms[t]:null};var wa=Oe.cipher.BlockCipher=function(t){this.algorithm=t.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=t.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=t.decrypt,this.algorithm.initialize(t)};wa.prototype.start=function(t){t=t||{};var e={};for(var r in t)e[r]=t[r];e.decrypt=this._decrypt,this._finish=!1,this._input=Oe.util.createBuffer(),this.output=t.output||Oe.util.createBuffer(),this.mode.start(e)};wa.prototype.update=function(t){for(t&&this._input.putBuffer(t);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};wa.prototype.finish=function(t){t&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(r){return t(this.blockSize,r,!1)},this.mode.unpad=function(r){return t(this.blockSize,r,!0)});var e={};return e.decrypt=this._decrypt,e.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,e)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,e))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,e))}});var _a=q((n_,pf)=>{var Me=le();Re();Me.cipher=Me.cipher||{};var Z=pf.exports=Me.cipher.modes=Me.cipher.modes||{};Z.ecb=function(t){t=t||{},this.name="ECB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};Z.ecb.prototype.start=function(t){};Z.ecb.prototype.encrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n])};Z.ecb.prototype.decrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n])};Z.ecb.prototype.pad=function(t,e){var r=t.length()===this.blockSize?this.blockSize:this.blockSize-t.length();return t.fillWithByte(r,r),!0};Z.ecb.prototype.unpad=function(t,e){if(e.overflow>0)return!1;var r=t.length(),n=t.at(r-1);return n>this.blockSize<<2?!1:(t.truncate(n),!0)};Z.cbc=function(t){t=t||{},this.name="CBC",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};Z.cbc.prototype.start=function(t){if(t.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in t)this._iv=cs(t.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};Z.cbc.prototype.encrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=this._prev[n]^t.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._outBlock[n]);this._prev=this._outBlock};Z.cbc.prototype.decrypt=function(t,e,r){if(t.length()<this.blockSize&&!(r&&t.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=t.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)e.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};Z.cbc.prototype.pad=function(t,e){var r=t.length()===this.blockSize?this.blockSize:this.blockSize-t.length();return t.fillWithByte(r,r),!0};Z.cbc.prototype.unpad=function(t,e){if(e.overflow>0)return!1;var r=t.length(),n=t.at(r-1);return n>this.blockSize<<2?!1:(t.truncate(n),!0)};Z.cfb=function(t){t=t||{},this.name="CFB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=Me.util.createBuffer(),this._partialBytes=0};Z.cfb.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=cs(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Z.cfb.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=t.getInt32()^this._outBlock[i],e.putInt32(this._inBlock[i]);return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=t.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};Z.cfb.prototype.decrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)this._inBlock[i]=t.getInt32(),e.putInt32(this._inBlock[i]^this._outBlock[i]);return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialBlock[i]=t.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._partialBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};Z.ofb=function(t){t=t||{},this.name="OFB",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Me.util.createBuffer(),this._partialBytes=0};Z.ofb.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=cs(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Z.ofb.prototype.encrypt=function(t,e,r){var n=t.length();if(t.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)e.putInt32(t.getInt32()^this._outBlock[i]),this._inBlock[i]=this._outBlock[i];return}var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s>0)t.read-=this.blockSize;else for(var i=0;i<this._ints;++i)this._inBlock[i]=this._outBlock[i];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};Z.ofb.prototype.decrypt=Z.ofb.prototype.encrypt;Z.ctr=function(t){t=t||{},this.name="CTR",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Me.util.createBuffer(),this._partialBytes=0};Z.ctr.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");this._iv=cs(t.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};Z.ctr.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize)for(var i=0;i<this._ints;++i)e.putInt32(t.getInt32()^this._outBlock[i]);else{var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s>0&&(t.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}us(this._inBlock)};Z.ctr.prototype.decrypt=Z.ctr.prototype.encrypt;Z.gcm=function(t){t=t||{},this.name="GCM",this.cipher=t.cipher,this.blockSize=t.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=Me.util.createBuffer(),this._partialBytes=0,this._R=3774873600};Z.gcm.prototype.start=function(t){if(!("iv"in t))throw new Error("Invalid IV parameter.");var e=Me.util.createBuffer(t.iv);this._cipherLength=0;var r;if("additionalData"in t?r=Me.util.createBuffer(t.additionalData):r=Me.util.createBuffer(),"tagLength"in t?this._tagLength=t.tagLength:this._tagLength=128,this._tag=null,t.decrypt&&(this._tag=Me.util.createBuffer(t.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var n=e.length();if(n===12)this._j0=[e.getInt32(),e.getInt32(),e.getInt32(),1];else{for(this._j0=[0,0,0,0];e.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[e.getInt32(),e.getInt32(),e.getInt32(),e.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(va(n*8)))}this._inBlock=this._j0.slice(0),us(this._inBlock),this._partialBytes=0,r=Me.util.createBuffer(r),this._aDataLength=va(r.length()*8);var i=r.length()%this.blockSize;for(i&&r.fillWithByte(0,this.blockSize-i),this._s=[0,0,0,0];r.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[r.getInt32(),r.getInt32(),r.getInt32(),r.getInt32()])};Z.gcm.prototype.encrypt=function(t,e,r){var n=t.length();if(n===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&n>=this.blockSize){for(var i=0;i<this._ints;++i)e.putInt32(this._outBlock[i]^=t.getInt32());this._cipherLength+=this.blockSize}else{var s=(this.blockSize-n)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var i=0;i<this._ints;++i)this._partialOutput.putInt32(t.getInt32()^this._outBlock[i]);if(s<=0||r){if(r){var o=n%this.blockSize;this._cipherLength+=o,this._partialOutput.truncate(this.blockSize-o)}else this._cipherLength+=this.blockSize;for(var i=0;i<this._ints;++i)this._outBlock[i]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return t.read-=this.blockSize,e.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;e.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),us(this._inBlock)};Z.gcm.prototype.decrypt=function(t,e,r){var n=t.length();if(n<this.blockSize&&!(r&&n>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),us(this._inBlock),this._hashBlock[0]=t.getInt32(),this._hashBlock[1]=t.getInt32(),this._hashBlock[2]=t.getInt32(),this._hashBlock[3]=t.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var i=0;i<this._ints;++i)e.putInt32(this._outBlock[i]^this._hashBlock[i]);n<this.blockSize?this._cipherLength+=n%this.blockSize:this._cipherLength+=this.blockSize};Z.gcm.prototype.afterFinish=function(t,e){var r=!0;e.decrypt&&e.overflow&&t.truncate(this.blockSize-e.overflow),this.tag=Me.util.createBuffer();var n=this._aDataLength.concat(va(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,n);var i=[];this.cipher.encrypt(this._j0,i);for(var s=0;s<this._ints;++s)this.tag.putInt32(this._s[s]^i[s]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),e.decrypt&&this.tag.bytes()!==this._tag&&(r=!1),r};Z.gcm.prototype.multiply=function(t,e){for(var r=[0,0,0,0],n=e.slice(0),i=0;i<128;++i){var s=t[i/32|0]&1<<31-i%32;s&&(r[0]^=n[0],r[1]^=n[1],r[2]^=n[2],r[3]^=n[3]),this.pow(n,n)}return r};Z.gcm.prototype.pow=function(t,e){for(var r=t[3]&1,n=3;n>0;--n)e[n]=t[n]>>>1|(t[n-1]&1)<<31;e[0]=t[0]>>>1,r&&(e[0]^=this._R)};Z.gcm.prototype.tableMultiply=function(t){for(var e=[0,0,0,0],r=0;r<32;++r){var n=r/8|0,i=t[n]>>>(7-r%8)*4&15,s=this._m[r][i];e[0]^=s[0],e[1]^=s[1],e[2]^=s[2],e[3]^=s[3]}return e};Z.gcm.prototype.ghash=function(t,e,r){return e[0]^=r[0],e[1]^=r[1],e[2]^=r[2],e[3]^=r[3],this.tableMultiply(e)};Z.gcm.prototype.generateHashTable=function(t,e){for(var r=8/e,n=4*r,i=16*r,s=new Array(i),o=0;o<i;++o){var a=[0,0,0,0],c=o/n|0,u=(n-1-o%n)*e;a[c]=1<<e-1<<u,s[o]=this.generateSubHashTable(this.multiply(a,t),e)}return s};Z.gcm.prototype.generateSubHashTable=function(t,e){var r=1<<e,n=r>>>1,i=new Array(r);i[n]=t.slice(0);for(var s=n>>>1;s>0;)this.pow(i[2*s],i[s]=[]),s>>=1;for(s=2;s<n;){for(var o=1;o<s;++o){var a=i[s],c=i[o];i[s+o]=[a[0]^c[0],a[1]^c[1],a[2]^c[2],a[3]^c[3]]}s*=2}for(i[0]=[0,0,0,0],s=n+1;s<r;++s){var u=i[s^n];i[s]=[t[0]^u[0],t[1]^u[1],t[2]^u[2],t[3]^u[3]]}return i};function cs(t,e){if(typeof t=="string"&&(t=Me.util.createBuffer(t)),Me.util.isArray(t)&&t.length>4){var r=t;t=Me.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(t.length()<e)throw new Error("Invalid IV length; got "+t.length()+" bytes and expected "+e+" bytes.");if(!Me.util.isArray(t)){for(var i=[],s=e/4,n=0;n<s;++n)i.push(t.getInt32());t=i}return t}function us(t){t[t.length-1]=t[t.length-1]+1&4294967295}function va(t){return[t/4294967296|0,t&4294967295]}});var Ca=q((i_,xf)=>{var he=le();Ea();_a();Re();xf.exports=he.aes=he.aes||{};he.aes.startEncrypting=function(t,e,r,n){var i=ls({key:t,output:r,decrypt:!1,mode:n});return i.start(e),i};he.aes.createEncryptionCipher=function(t,e){return ls({key:t,output:null,decrypt:!1,mode:e})};he.aes.startDecrypting=function(t,e,r,n){var i=ls({key:t,output:r,decrypt:!0,mode:n});return i.start(e),i};he.aes.createDecryptionCipher=function(t,e){return ls({key:t,output:null,decrypt:!0,mode:e})};he.aes.Algorithm=function(t,e){Ia||gf();var r=this;r.name=t,r.mode=new e({blockSize:16,cipher:{encrypt:function(n,i){return Aa(r._w,n,i,!1)},decrypt:function(n,i){return Aa(r._w,n,i,!0)}}}),r._init=!1};he.aes.Algorithm.prototype.initialize=function(t){if(!this._init){var e=t.key,r;if(typeof e=="string"&&(e.length===16||e.length===24||e.length===32))e=he.util.createBuffer(e);else if(he.util.isArray(e)&&(e.length===16||e.length===24||e.length===32)){r=e,e=he.util.createBuffer();for(var n=0;n<r.length;++n)e.putByte(r[n])}if(!he.util.isArray(e)){r=e,e=[];var i=r.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)e.push(r.getInt32())}}if(!he.util.isArray(e)||!(e.length===4||e.length===6||e.length===8))throw new Error("Invalid key parameter.");var s=this.mode.name,o=["CFB","OFB","CTR","GCM"].indexOf(s)!==-1;this._w=yf(e,t.decrypt&&!o),this._init=!0}};he.aes._expandKey=function(t,e){return Ia||gf(),yf(t,e)};he.aes._updateBlock=Aa;Sn("AES-ECB",he.cipher.modes.ecb);Sn("AES-CBC",he.cipher.modes.cbc);Sn("AES-CFB",he.cipher.modes.cfb);Sn("AES-OFB",he.cipher.modes.ofb);Sn("AES-CTR",he.cipher.modes.ctr);Sn("AES-GCM",he.cipher.modes.gcm);function Sn(t,e){var r=function(){return new he.aes.Algorithm(t,e)};he.cipher.registerAlgorithm(t,r)}var Ia=!1,_n=4,nt,Sa,mf,Fr,Tt;function gf(){Ia=!0,mf=[0,1,2,4,8,16,32,64,128,27,54];for(var t=new Array(256),e=0;e<128;++e)t[e]=e<<1,t[e+128]=e+128<<1^283;nt=new Array(256),Sa=new Array(256),Fr=new Array(4),Tt=new Array(4);for(var e=0;e<4;++e)Fr[e]=new Array(256),Tt[e]=new Array(256);for(var r=0,n=0,i,s,o,a,c,u,l,e=0;e<256;++e){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,nt[r]=a,Sa[a]=r,c=t[a],i=t[r],s=t[i],o=t[s],u=c<<24^a<<16^a<<8^(a^c),l=(i^s^o)<<24^(r^o)<<16^(r^s^o)<<8^(r^i^o);for(var f=0;f<4;++f)Fr[f][r]=u,Tt[f][a]=l,u=u<<24|u>>>8,l=l<<24|l>>>8;r===0?r=n=1:(r=i^t[t[t[i^o]]],n^=t[t[n]])}}function yf(t,e){for(var r=t.slice(0),n,i=1,s=r.length,o=s+6+1,a=_n*o,c=s;c<a;++c)n=r[c-1],c%s===0?(n=nt[n>>>16&255]<<24^nt[n>>>8&255]<<16^nt[n&255]<<8^nt[n>>>24]^mf[i]<<24,i++):s>6&&c%s===4&&(n=nt[n>>>24]<<24^nt[n>>>16&255]<<16^nt[n>>>8&255]<<8^nt[n&255]),r[c]=r[c-s]^n;if(e){var u,l=Tt[0],f=Tt[1],d=Tt[2],p=Tt[3],h=r.slice(0);a=r.length;for(var c=0,m=a-_n;c<a;c+=_n,m-=_n)if(c===0||c===a-_n)h[c]=r[m],h[c+1]=r[m+3],h[c+2]=r[m+2],h[c+3]=r[m+1];else for(var g=0;g<_n;++g)u=r[m+g],h[c+(3&-g)]=l[nt[u>>>24]]^f[nt[u>>>16&255]]^d[nt[u>>>8&255]]^p[nt[u&255]];r=h}return r}function Aa(t,e,r,n){var i=t.length/4-1,s,o,a,c,u;n?(s=Tt[0],o=Tt[1],a=Tt[2],c=Tt[3],u=Sa):(s=Fr[0],o=Fr[1],a=Fr[2],c=Fr[3],u=nt);var l,f,d,p,h,m,g;l=e[0]^t[0],f=e[n?3:1]^t[1],d=e[2]^t[2],p=e[n?1:3]^t[3];for(var y=3,x=1;x<i;++x)h=s[l>>>24]^o[f>>>16&255]^a[d>>>8&255]^c[p&255]^t[++y],m=s[f>>>24]^o[d>>>16&255]^a[p>>>8&255]^c[l&255]^t[++y],g=s[d>>>24]^o[p>>>16&255]^a[l>>>8&255]^c[f&255]^t[++y],p=s[p>>>24]^o[l>>>16&255]^a[f>>>8&255]^c[d&255]^t[++y],l=h,f=m,d=g;r[0]=u[l>>>24]<<24^u[f>>>16&255]<<16^u[d>>>8&255]<<8^u[p&255]^t[++y],r[n?3:1]=u[f>>>24]<<24^u[d>>>16&255]<<16^u[p>>>8&255]<<8^u[l&255]^t[++y],r[2]=u[d>>>24]<<24^u[p>>>16&255]<<16^u[l>>>8&255]<<8^u[f&255]^t[++y],r[n?1:3]=u[p>>>24]<<24^u[l>>>16&255]<<16^u[f>>>8&255]<<8^u[d&255]^t[++y]}function ls(t){t=t||{};var e=(t.mode||"CBC").toUpperCase(),r="AES-"+e,n;t.decrypt?n=he.cipher.createDecipher(r,t.key):n=he.cipher.createCipher(r,t.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof he.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var Ef=q((s_,wf)=>{var ge=le();Ea();_a();Re();wf.exports=ge.des=ge.des||{};ge.des.startEncrypting=function(t,e,r,n){var i=fs({key:t,output:r,decrypt:!1,mode:n||(e===null?"ECB":"CBC")});return i.start(e),i};ge.des.createEncryptionCipher=function(t,e){return fs({key:t,output:null,decrypt:!1,mode:e})};ge.des.startDecrypting=function(t,e,r,n){var i=fs({key:t,output:r,decrypt:!0,mode:n||(e===null?"ECB":"CBC")});return i.start(e),i};ge.des.createDecryptionCipher=function(t,e){return fs({key:t,output:null,decrypt:!0,mode:e})};ge.des.Algorithm=function(t,e){var r=this;r.name=t,r.mode=new e({blockSize:8,cipher:{encrypt:function(n,i){return bf(r._keys,n,i,!1)},decrypt:function(n,i){return bf(r._keys,n,i,!0)}}}),r._init=!1};ge.des.Algorithm.prototype.initialize=function(t){if(!this._init){var e=ge.util.createBuffer(t.key);if(this.name.indexOf("3DES")===0&&e.length()!==24)throw new Error("Invalid Triple-DES key size: "+e.length()*8);this._keys=qg(e),this._init=!0}};Ft("DES-ECB",ge.cipher.modes.ecb);Ft("DES-CBC",ge.cipher.modes.cbc);Ft("DES-CFB",ge.cipher.modes.cfb);Ft("DES-OFB",ge.cipher.modes.ofb);Ft("DES-CTR",ge.cipher.modes.ctr);Ft("3DES-ECB",ge.cipher.modes.ecb);Ft("3DES-CBC",ge.cipher.modes.cbc);Ft("3DES-CFB",ge.cipher.modes.cfb);Ft("3DES-OFB",ge.cipher.modes.ofb);Ft("3DES-CTR",ge.cipher.modes.ctr);function Ft(t,e){var r=function(){return new ge.des.Algorithm(t,e)};ge.cipher.registerAlgorithm(t,r)}var Dg=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],Ng=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],kg=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],Og=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],Mg=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],Ug=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],Fg=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],Kg=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];function qg(t){for(var e=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],r=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],n=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],i=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],s=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],o=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],a=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],c=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],u=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],l=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],f=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],d=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],p=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],h=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],m=t.length()>8?3:1,g=[],y=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,b,I=0;I<m;I++){var v=t.getInt32(),_=t.getInt32();b=(v>>>4^_)&252645135,_^=b,v^=b<<4,b=(_>>>-16^v)&65535,v^=b,_^=b<<-16,b=(v>>>2^_)&858993459,_^=b,v^=b<<2,b=(_>>>-16^v)&65535,v^=b,_^=b<<-16,b=(v>>>1^_)&1431655765,_^=b,v^=b<<1,b=(_>>>8^v)&16711935,v^=b,_^=b<<8,b=(v>>>1^_)&1431655765,_^=b,v^=b<<1,b=v<<8|_>>>20&240,v=_<<24|_<<8&16711680|_>>>8&65280|_>>>24&240,_=b;for(var P=0;P<y.length;++P){y[P]?(v=v<<2|v>>>26,_=_<<2|_>>>26):(v=v<<1|v>>>27,_=_<<1|_>>>27),v&=-15,_&=-15;var D=e[v>>>28]|r[v>>>24&15]|n[v>>>20&15]|i[v>>>16&15]|s[v>>>12&15]|o[v>>>8&15]|a[v>>>4&15],H=c[_>>>28]|u[_>>>24&15]|l[_>>>20&15]|f[_>>>16&15]|d[_>>>12&15]|p[_>>>8&15]|h[_>>>4&15];b=(H>>>16^D)&65535,g[x++]=D^b,g[x++]=H^b<<16}}return g}function bf(t,e,r,n){var i=t.length===32?3:9,s;i===3?s=n?[30,-2,-2]:[0,32,2]:s=n?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var o,a=e[0],c=e[1];o=(a>>>4^c)&252645135,c^=o,a^=o<<4,o=(a>>>16^c)&65535,c^=o,a^=o<<16,o=(c>>>2^a)&858993459,a^=o,c^=o<<2,o=(c>>>8^a)&16711935,a^=o,c^=o<<8,o=(a>>>1^c)&1431655765,c^=o,a^=o<<1,a=a<<1|a>>>31,c=c<<1|c>>>31;for(var u=0;u<i;u+=3){for(var l=s[u+1],f=s[u+2],d=s[u];d!=l;d+=f){var p=c^t[d],h=(c>>>4|c<<28)^t[d+1];o=a,a=c,c=o^(Ng[p>>>24&63]|Og[p>>>16&63]|Ug[p>>>8&63]|Kg[p&63]|Dg[h>>>24&63]|kg[h>>>16&63]|Mg[h>>>8&63]|Fg[h&63])}o=a,a=c,c=o}a=a>>>1|a<<31,c=c>>>1|c<<31,o=(a>>>1^c)&1431655765,c^=o,a^=o<<1,o=(c>>>8^a)&16711935,a^=o,c^=o<<8,o=(c>>>2^a)&858993459,a^=o,c^=o<<2,o=(a>>>16^c)&65535,c^=o,a^=o<<16,o=(a>>>4^c)&252645135,c^=o,a^=o<<4,r[0]=a,r[1]=c}function fs(t){t=t||{};var e=(t.mode||"CBC").toUpperCase(),r="DES-"+e,n;t.decrypt?n=ge.cipher.createDecipher(r,t.key):n=ge.cipher.createCipher(r,t.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof ge.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var Kr=q((o_,vf)=>{var hs=le();vf.exports=hs.md=hs.md||{};hs.md.algorithms=hs.md.algorithms||{}});var Sf=q((a_,_f)=>{var Jt=le();Kr();Re();var Vg=_f.exports=Jt.hmac=Jt.hmac||{};Vg.create=function(){var t=null,e=null,r=null,n=null,i={};return i.start=function(s,o){if(s!==null)if(typeof s=="string")if(s=s.toLowerCase(),s in Jt.md.algorithms)e=Jt.md.algorithms[s].create();else throw new Error('Unknown hash algorithm "'+s+'"');else e=s;if(o===null)o=t;else{if(typeof o=="string")o=Jt.util.createBuffer(o);else if(Jt.util.isArray(o)){var a=o;o=Jt.util.createBuffer();for(var c=0;c<a.length;++c)o.putByte(a[c])}var u=o.length();u>e.blockLength&&(e.start(),e.update(o.bytes()),o=e.digest()),r=Jt.util.createBuffer(),n=Jt.util.createBuffer(),u=o.length();for(var c=0;c<u;++c){var a=o.at(c);r.putByte(54^a),n.putByte(92^a)}if(u<e.blockLength)for(var a=e.blockLength-u,c=0;c<a;++c)r.putByte(54),n.putByte(92);t=o,r=r.bytes(),n=n.bytes()}e.start(),e.update(r)},i.update=function(s){e.update(s)},i.getMac=function(){var s=e.digest().bytes();return e.start(),e.update(n),e.update(s),e.digest()},i.digest=i.getMac,i}});var yi=q(()=>{});var If=q((l_,Af)=>{var it=le();Sf();Kr();Re();var $g=it.pkcs5=it.pkcs5||{},er;it.util.isNodejs&&!it.options.usePureJavaScript&&(er=yi());Af.exports=it.pbkdf2=$g.pbkdf2=function(t,e,r,n,i,s){if(typeof i=="function"&&(s=i,i=null),it.util.isNodejs&&!it.options.usePureJavaScript&&er.pbkdf2&&(i===null||typeof i!="object")&&(er.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),t=Buffer.from(t,"binary"),e=Buffer.from(e,"binary"),s?er.pbkdf2Sync.length===4?er.pbkdf2(t,e,r,n,function(b,I){if(b)return s(b);s(null,I.toString("binary"))}):er.pbkdf2(t,e,r,n,i,function(b,I){if(b)return s(b);s(null,I.toString("binary"))}):er.pbkdf2Sync.length===4?er.pbkdf2Sync(t,e,r,n).toString("binary"):er.pbkdf2Sync(t,e,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in it.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=it.md[i].create()}var o=i.digestLength;if(n>4294967295*o){var a=new Error("Derived key is too long.");if(s)return s(a);throw a}var c=Math.ceil(n/o),u=n-(c-1)*o,l=it.hmac.create();l.start(i,t);var f="",d,p,h;if(!s){for(var m=1;m<=c;++m){l.start(null,null),l.update(e),l.update(it.util.int32ToBytes(m)),d=h=l.digest().getBytes();for(var g=2;g<=r;++g)l.start(null,null),l.update(h),p=l.digest().getBytes(),d=it.util.xorBytes(d,p,o),h=p;f+=m<c?d:d.substr(0,u)}return f}var m=1,g;function y(){if(m>c)return s(null,f);l.start(null,null),l.update(e),l.update(it.util.int32ToBytes(m)),d=h=l.digest().getBytes(),g=2,x()}function x(){if(g<=r)return l.start(null,null),l.update(h),p=l.digest().getBytes(),d=it.util.xorBytes(d,p,o),h=p,++g,it.util.setImmediate(x);f+=m<c?d:d.substr(0,u),++m,y()}y()}});var Rf=q((f_,Tf)=>{var ps=le();Re();var Cf=Tf.exports=ps.pem=ps.pem||{};Cf.encode=function(t,e){e=e||{};var r="-----BEGIN "+t.type+`-----\r
|
|
9
|
+
`,n;if(t.procType&&(n={name:"Proc-Type",values:[String(t.procType.version),t.procType.type]},r+=ds(n)),t.contentDomain&&(n={name:"Content-Domain",values:[t.contentDomain]},r+=ds(n)),t.dekInfo&&(n={name:"DEK-Info",values:[t.dekInfo.algorithm]},t.dekInfo.parameters&&n.values.push(t.dekInfo.parameters),r+=ds(n)),t.headers)for(var i=0;i<t.headers.length;++i)r+=ds(t.headers[i]);return t.procType&&(r+=`\r
|
|
10
|
+
`),r+=ps.util.encode64(t.body,e.maxline||64)+`\r
|
|
11
11
|
`,r+="-----END "+t.type+`-----\r
|
|
12
|
-
`,r};
|
|
12
|
+
`,r};Cf.decode=function(t){for(var e=[],r=/\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g,n=/([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/,i=/\r?\n/,s;s=r.exec(t),!!s;){var o=s[1];o==="NEW CERTIFICATE REQUEST"&&(o="CERTIFICATE REQUEST");var a={type:o,procType:null,contentDomain:null,dekInfo:null,headers:[],body:ps.util.decode64(s[3])};if(e.push(a),!!s[2]){for(var c=s[2].split(i),u=0;s&&u<c.length;){for(var l=c[u].replace(/\s+$/,""),f=u+1;f<c.length;++f){var d=c[f];if(!/\s/.test(d[0]))break;l+=d,u=f}if(s=l.match(n),s){for(var p={name:s[1],values:[]},h=s[2].split(","),m=0;m<h.length;++m)p.values.push(zg(h[m]));if(a.procType)if(!a.contentDomain&&p.name==="Content-Domain")a.contentDomain=h[0]||"";else if(!a.dekInfo&&p.name==="DEK-Info"){if(p.values.length===0)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.');a.dekInfo={algorithm:h[0],parameters:h[1]||null}}else a.headers.push(p);else{if(p.name!=="Proc-Type")throw new Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".');if(p.values.length!==2)throw new Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.');a.procType={version:h[0],type:h[1]}}}++u}if(a.procType==="ENCRYPTED"&&!a.dekInfo)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".')}}if(e.length===0)throw new Error("Invalid PEM formatted message.");return e};function ds(t){for(var e=t.name+": ",r=[],n=function(c,u){return" "+u},i=0;i<t.values.length;++i)r.push(t.values[i].replace(/^(\S+\r\n)/,n));e+=r.join(",")+`\r
|
|
13
13
|
`;for(var s=0,o=-1,i=0;i<e.length;++i,++s)if(s>65&&o!==-1){var a=e[o];a===","?(++o,e=e.substr(0,o)+`\r
|
|
14
14
|
`+e.substr(o)):e=e.substr(0,o)+`\r
|
|
15
|
-
`+a+e.substr(o+1),s=i-o-1,o=-1,++i}else(e[i]===" "||e[i]===" "||e[i]===",")&&(o=i);return e}function jg(t){return t.replace(/^\s+/,"")}});var Hf=V((y_,zf)=>{var $t=he();Gr();Le();var qf=zf.exports=$t.sha256=$t.sha256||{};$t.md.sha256=$t.md.algorithms.sha256=qf;qf.create=function(){Vf||Jg();var t=null,e=$t.util.createBuffer(),r=new Array(64),n={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return e=$t.util.createBuffer(),t={h0:1779033703,h1:3144134277,h2:1013904242,h3:2773480762,h4:1359893119,h5:2600822924,h6:528734635,h7:1541459225},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=$t.util.encodeUtf8(i));var o=i.length;n.messageLength+=o,o=[o/4294967296>>>0,o>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=o[1],o[1]=o[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,o[0]=o[1]/4294967296>>>0;return e.putBytes(i),Kf(t,r,e),(e.read>2048||e.length()===0)&&e.compact(),n},n.digest=function(){var i=$t.util.createBuffer();i.putBytes(e.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(Oa.substr(0,n.blockLength-o));for(var a,c,u=n.fullMessageLength[0]*8,l=0;l<n.fullMessageLength.length-1;++l)a=n.fullMessageLength[l+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var f={h0:t.h0,h1:t.h1,h2:t.h2,h3:t.h3,h4:t.h4,h5:t.h5,h6:t.h6,h7:t.h7};Kf(f,r,i);var h=$t.util.createBuffer();return h.putInt32(f.h0),h.putInt32(f.h1),h.putInt32(f.h2),h.putInt32(f.h3),h.putInt32(f.h4),h.putInt32(f.h5),h.putInt32(f.h6),h.putInt32(f.h7),h},n};var Oa=null,Vf=!1,$f=null;function Jg(){Oa="\x80",Oa+=$t.util.fillString("\0",64),$f=[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],Vf=!0}function Kf(t,e,r){for(var n,i,s,o,a,c,u,l,f,h,p,d,m,g,y,x=r.length();x>=64;){for(u=0;u<16;++u)e[u]=r.getInt32();for(;u<64;++u)n=e[u-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=e[u-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,e[u]=n+e[u-7]+i+e[u-16]|0;for(l=t.h0,f=t.h1,h=t.h2,p=t.h3,d=t.h4,m=t.h5,g=t.h6,y=t.h7,u=0;u<64;++u)o=(d>>>6|d<<26)^(d>>>11|d<<21)^(d>>>25|d<<7),a=g^d&(m^g),s=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),c=l&f|h&(l^f),n=y+o+a+$f[u]+e[u],i=s+c,y=g,g=m,m=d,d=p+n>>>0,p=h,h=f,f=l,l=n+i>>>0;t.h0=t.h0+l|0,t.h1=t.h1+f|0,t.h2=t.h2+h|0,t.h3=t.h3+p|0,t.h4=t.h4+d|0,t.h5=t.h5+m|0,t.h6=t.h6+g|0,t.h7=t.h7+y|0,x-=64}}});var Wf=V((x_,Gf)=>{var zt=he();Le();var Es=null;zt.util.isNodejs&&!zt.options.usePureJavaScript&&!process.versions["node-webkit"]&&(Es=wi());var ey=Gf.exports=zt.prng=zt.prng||{};ey.create=function(t){for(var e={plugin:t,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=t.md,n=new Array(32),i=0;i<32;++i)n[i]=r.create();e.pools=n,e.pool=0,e.generate=function(u,l){if(!l)return e.generateSync(u);var f=e.plugin.cipher,h=e.plugin.increment,p=e.plugin.formatKey,d=e.plugin.formatSeed,m=zt.util.createBuffer();e.key=null,g();function g(y){if(y)return l(y);if(m.length()>=u)return l(null,m.getBytes(u));if(e.generated>1048575&&(e.key=null),e.key===null)return zt.util.nextTick(function(){s(g)});var x=f(e.key,e.seed);e.generated+=x.length,m.putBytes(x),e.key=p(f(e.key,h(e.seed))),e.seed=d(f(e.key,e.seed)),zt.util.setImmediate(g)}},e.generateSync=function(u){var l=e.plugin.cipher,f=e.plugin.increment,h=e.plugin.formatKey,p=e.plugin.formatSeed;e.key=null;for(var d=zt.util.createBuffer();d.length()<u;){e.generated>1048575&&(e.key=null),e.key===null&&o();var m=l(e.key,e.seed);e.generated+=m.length,d.putBytes(m),e.key=h(l(e.key,f(e.seed))),e.seed=p(l(e.key,e.seed))}return d.getBytes(u)};function s(u){if(e.pools[0].messageLength>=32)return a(),u();var l=32-e.pools[0].messageLength<<5;e.seedFile(l,function(f,h){if(f)return u(f);e.collect(h),a(),u()})}function o(){if(e.pools[0].messageLength>=32)return a();var u=32-e.pools[0].messageLength<<5;e.collect(e.seedFileSync(u)),a()}function a(){e.reseeds=e.reseeds===4294967295?0:e.reseeds+1;var u=e.plugin.md.create();u.update(e.keyBytes);for(var l=1,f=0;f<32;++f)e.reseeds%l===0&&(u.update(e.pools[f].digest().getBytes()),e.pools[f].start()),l=l<<1;e.keyBytes=u.digest().getBytes(),u.start(),u.update(e.keyBytes);var h=u.digest().getBytes();e.key=e.plugin.formatKey(e.keyBytes),e.seed=e.plugin.formatSeed(h),e.generated=0}function c(u){var l=null,f=zt.util.globalScope,h=f.crypto||f.msCrypto;h&&h.getRandomValues&&(l=function(v){return h.getRandomValues(v)});var p=zt.util.createBuffer();if(l)for(;p.length()<u;){var d=Math.max(1,Math.min(u-p.length(),65536)/4),m=new Uint32Array(Math.floor(d));try{l(m);for(var g=0;g<m.length;++g)p.putInt32(m[g])}catch(v){if(!(typeof QuotaExceededError<"u"&&v instanceof QuotaExceededError))throw v}}if(p.length()<u)for(var y,x,b,I=Math.floor(Math.random()*65536);p.length()<u;){x=16807*(I&65535),y=16807*(I>>16),x+=(y&32767)<<16,x+=y>>15,x=(x&2147483647)+(x>>31),I=x&4294967295;for(var g=0;g<3;++g)b=I>>>(g<<3),b^=Math.floor(Math.random()*256),p.putByte(b&255)}return p.getBytes(u)}return Es?(e.seedFile=function(u,l){Es.randomBytes(u,function(f,h){if(f)return l(f);l(null,h.toString())})},e.seedFileSync=function(u){return Es.randomBytes(u).toString()}):(e.seedFile=function(u,l){try{l(null,c(u))}catch(f){l(f)}},e.seedFileSync=c),e.collect=function(u){for(var l=u.length,f=0;f<l;++f)e.pools[e.pool].update(u.substr(f,1)),e.pool=e.pool===31?0:e.pool+1},e.collectInt=function(u,l){for(var f="",h=0;h<l;h+=8)f+=String.fromCharCode(u>>h&255);e.collect(f)},e.registerWorker=function(u){if(u===self)e.seedFile=function(f,h){function p(d){var m=d.data;m.forge&&m.forge.prng&&(self.removeEventListener("message",p),h(m.forge.prng.err,m.forge.prng.bytes))}self.addEventListener("message",p),self.postMessage({forge:{prng:{needed:f}}})};else{var l=function(f){var h=f.data;h.forge&&h.forge.prng&&e.seedFile(h.forge.prng.needed,function(p,d){u.postMessage({forge:{prng:{err:p,bytes:d}}})})};u.addEventListener("message",l)}},e}});var Ei=V((b_,Ma)=>{var Ve=he();ka();Hf();Wf();Le();(function(){if(Ve.random&&Ve.random.getBytes){Ma.exports=Ve.random;return}(function(t){var e={},r=new Array(4),n=Ve.util.createBuffer();e.formatKey=function(f){var h=Ve.util.createBuffer(f);return f=new Array(4),f[0]=h.getInt32(),f[1]=h.getInt32(),f[2]=h.getInt32(),f[3]=h.getInt32(),Ve.aes._expandKey(f,!1)},e.formatSeed=function(f){var h=Ve.util.createBuffer(f);return f=new Array(4),f[0]=h.getInt32(),f[1]=h.getInt32(),f[2]=h.getInt32(),f[3]=h.getInt32(),f},e.cipher=function(f,h){return Ve.aes._updateBlock(f,h,r,!1),n.putInt32(r[0]),n.putInt32(r[1]),n.putInt32(r[2]),n.putInt32(r[3]),n.getBytes()},e.increment=function(f){return++f[3],f},e.md=Ve.md.sha256;function i(){var f=Ve.prng.create(e);return f.getBytes=function(h,p){return f.generate(h,p)},f.getBytesSync=function(h){return f.generate(h)},f}var s=i(),o=null,a=Ve.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(o=function(f){return c.getRandomValues(f)}),Ve.options.usePureJavaScript||!Ve.util.isNodejs&&!o){if(typeof window>"u"||window.document,s.collectInt(+new Date,32),typeof navigator<"u"){var u="";for(var l in navigator)try{typeof navigator[l]=="string"&&(u+=navigator[l])}catch{}s.collect(u),u=null}t&&(t().mousemove(function(f){s.collectInt(f.clientX,16),s.collectInt(f.clientY,16)}),t().keypress(function(f){s.collectInt(f.charCode,8)}))}if(!Ve.random)Ve.random=s;else for(var l in s)Ve.random[l]=s[l];Ve.random.createInstance=i,Ma.exports=Ve.random})(typeof jQuery<"u"?jQuery:null)})()});var Zf=V((w_,Xf)=>{var ct=he();Le();var Ua=[217,120,249,196,25,221,181,237,40,233,253,121,74,160,216,157,198,126,55,131,43,118,83,142,98,76,100,136,68,139,251,162,23,154,89,245,135,179,79,19,97,69,109,141,9,129,125,50,189,143,64,235,134,183,123,11,240,149,33,34,92,107,78,130,84,214,101,147,206,96,178,28,115,86,192,20,167,140,241,220,18,117,202,31,59,190,228,209,66,61,212,48,163,60,182,38,111,191,14,218,70,105,7,87,39,242,29,155,188,148,67,3,248,17,199,246,144,239,62,231,6,195,213,47,200,102,30,215,8,232,234,222,128,82,238,247,132,170,114,172,53,77,106,42,150,26,210,113,90,21,73,116,75,159,208,94,4,24,164,236,194,224,65,110,15,81,203,204,36,145,175,80,161,244,112,57,153,124,58,133,35,184,180,122,252,2,54,91,37,85,151,49,45,93,250,152,227,138,146,174,5,223,41,16,103,108,186,201,211,0,230,207,225,158,168,44,99,22,1,63,88,226,137,169,13,56,52,27,171,51,255,176,187,72,12,95,185,177,205,46,197,243,219,71,229,165,156,119,10,166,32,104,254,127,193,173],Yf=[1,2,3,5],ty=function(t,e){return t<<e&65535|(t&65535)>>16-e},ry=function(t,e){return(t&65535)>>e|t<<16-e&65535};Xf.exports=ct.rc2=ct.rc2||{};ct.rc2.expandKey=function(t,e){typeof t=="string"&&(t=ct.util.createBuffer(t)),e=e||128;var r=t,n=t.length(),i=e,s=Math.ceil(i/8),o=255>>(i&7),a;for(a=n;a<128;a++)r.putByte(Ua[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-s,Ua[r.at(128-s)&o]),a=127-s;a>=0;a--)r.setAt(a,Ua[r.at(a+1)^r.at(a+s)]);return r};var Qf=function(t,e,r){var n=!1,i=null,s=null,o=null,a,c,u,l,f=[];for(t=ct.rc2.expandKey(t,e),u=0;u<64;u++)f.push(t.getInt16Le());r?(a=function(d){for(u=0;u<4;u++)d[u]+=f[l]+(d[(u+3)%4]&d[(u+2)%4])+(~d[(u+3)%4]&d[(u+1)%4]),d[u]=ty(d[u],Yf[u]),l++},c=function(d){for(u=0;u<4;u++)d[u]+=f[d[(u+3)%4]&63]}):(a=function(d){for(u=3;u>=0;u--)d[u]=ry(d[u],Yf[u]),d[u]-=f[l]+(d[(u+3)%4]&d[(u+2)%4])+(~d[(u+3)%4]&d[(u+1)%4]),l--},c=function(d){for(u=3;u>=0;u--)d[u]-=f[d[(u+3)%4]&63]});var h=function(d){var m=[];for(u=0;u<4;u++){var g=i.getInt16Le();o!==null&&(r?g^=o.getInt16Le():o.putInt16Le(g)),m.push(g&65535)}l=r?0:63;for(var y=0;y<d.length;y++)for(var x=0;x<d[y][0];x++)d[y][1](m);for(u=0;u<4;u++)o!==null&&(r?o.putInt16Le(m[u]):m[u]^=o.getInt16Le()),s.putInt16Le(m[u])},p=null;return p={start:function(d,m){d&&typeof d=="string"&&(d=ct.util.createBuffer(d)),n=!1,i=ct.util.createBuffer(),s=m||new ct.util.createBuffer,o=d,p.output=s},update:function(d){for(n||i.putBuffer(d);i.length()>=8;)h([[5,a],[1,c],[6,a],[1,c],[5,a]])},finish:function(d){var m=!0;if(r)if(d)m=d(8,i,!r);else{var g=i.length()===8?8:8-i.length();i.fillWithByte(g,g)}if(m&&(n=!0,p.update()),!r&&(m=i.length()===0,m))if(d)m=d(8,s,!r);else{var y=s.length(),x=s.at(y-1);x>y?m=!1:s.truncate(x)}return m}},p};ct.rc2.startEncrypting=function(t,e,r){var n=ct.rc2.createEncryptionCipher(t,128);return n.start(e,r),n};ct.rc2.createEncryptionCipher=function(t,e){return Qf(t,e,!0)};ct.rc2.startDecrypting=function(t,e,r){var n=ct.rc2.createDecryptionCipher(t,128);return n.start(e,r),n};ct.rc2.createDecryptionCipher=function(t,e){return Qf(t,e,!1)}});var Ss=V((E_,s0)=>{var Fa=he();s0.exports=Fa.jsbn=Fa.jsbn||{};var nr,ny=0xdeadbeefcafe,jf=(ny&16777215)==15715070;function C(t,e,r){this.data=[],t!=null&&(typeof t=="number"?this.fromNumber(t,e,r):e==null&&typeof t!="string"?this.fromString(t,256):this.fromString(t,e))}Fa.jsbn.BigInteger=C;function ie(){return new C(null)}function iy(t,e,r,n,i,s){for(;--s>=0;){var o=e*this.data[t++]+r.data[n]+i;i=Math.floor(o/67108864),r.data[n++]=o&67108863}return i}function sy(t,e,r,n,i,s){for(var o=e&32767,a=e>>15;--s>=0;){var c=this.data[t]&32767,u=this.data[t++]>>15,l=a*c+u*o;c=o*c+((l&32767)<<15)+r.data[n]+(i&1073741823),i=(c>>>30)+(l>>>15)+a*u+(i>>>30),r.data[n++]=c&1073741823}return i}function Jf(t,e,r,n,i,s){for(var o=e&16383,a=e>>14;--s>=0;){var c=this.data[t]&16383,u=this.data[t++]>>14,l=a*c+u*o;c=o*c+((l&16383)<<14)+r.data[n]+i,i=(c>>28)+(l>>14)+a*u,r.data[n++]=c&268435455}return i}typeof navigator>"u"?(C.prototype.am=Jf,nr=28):jf&&navigator.appName=="Microsoft Internet Explorer"?(C.prototype.am=sy,nr=30):jf&&navigator.appName!="Netscape"?(C.prototype.am=iy,nr=26):(C.prototype.am=Jf,nr=28);C.prototype.DB=nr;C.prototype.DM=(1<<nr)-1;C.prototype.DV=1<<nr;var Ka=52;C.prototype.FV=Math.pow(2,Ka);C.prototype.F1=Ka-nr;C.prototype.F2=2*nr-Ka;var oy="0123456789abcdefghijklmnopqrstuvwxyz",vs=new Array,Cn,St;Cn=48;for(St=0;St<=9;++St)vs[Cn++]=St;Cn=97;for(St=10;St<36;++St)vs[Cn++]=St;Cn=65;for(St=10;St<36;++St)vs[Cn++]=St;function e0(t){return oy.charAt(t)}function t0(t,e){var r=vs[t.charCodeAt(e)];return r??-1}function ay(t){for(var e=this.t-1;e>=0;--e)t.data[e]=this.data[e];t.t=this.t,t.s=this.s}function cy(t){this.t=1,this.s=t<0?-1:0,t>0?this.data[0]=t:t<-1?this.data[0]=t+this.DV:this.t=0}function Er(t){var e=ie();return e.fromInt(t),e}function uy(t,e){var r;if(e==16)r=4;else if(e==8)r=3;else if(e==256)r=8;else if(e==2)r=1;else if(e==32)r=5;else if(e==4)r=2;else{this.fromRadix(t,e);return}this.t=0,this.s=0;for(var n=t.length,i=!1,s=0;--n>=0;){var o=r==8?t[n]&255:t0(t,n);if(o<0){t.charAt(n)=="-"&&(i=!0);continue}i=!1,s==0?this.data[this.t++]=o:s+r>this.DB?(this.data[this.t-1]|=(o&(1<<this.DB-s)-1)<<s,this.data[this.t++]=o>>this.DB-s):this.data[this.t-1]|=o<<s,s+=r,s>=this.DB&&(s-=this.DB)}r==8&&t[0]&128&&(this.s=-1,s>0&&(this.data[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),i&&C.ZERO.subTo(this,this)}function ly(){for(var t=this.s&this.DM;this.t>0&&this.data[this.t-1]==t;)--this.t}function fy(t){if(this.s<0)return"-"+this.negate().toString(t);var e;if(t==16)e=4;else if(t==8)e=3;else if(t==2)e=1;else if(t==32)e=5;else if(t==4)e=2;else return this.toRadix(t);var r=(1<<e)-1,n,i=!1,s="",o=this.t,a=this.DB-o*this.DB%e;if(o-- >0)for(a<this.DB&&(n=this.data[o]>>a)>0&&(i=!0,s=e0(n));o>=0;)a<e?(n=(this.data[o]&(1<<a)-1)<<e-a,n|=this.data[--o]>>(a+=this.DB-e)):(n=this.data[o]>>(a-=e)&r,a<=0&&(a+=this.DB,--o)),n>0&&(i=!0),i&&(s+=e0(n));return i?s:"0"}function hy(){var t=ie();return C.ZERO.subTo(this,t),t}function dy(){return this.s<0?this.negate():this}function py(t){var e=this.s-t.s;if(e!=0)return e;var r=this.t;if(e=r-t.t,e!=0)return this.s<0?-e:e;for(;--r>=0;)if((e=this.data[r]-t.data[r])!=0)return e;return 0}function _s(t){var e=1,r;return(r=t>>>16)!=0&&(t=r,e+=16),(r=t>>8)!=0&&(t=r,e+=8),(r=t>>4)!=0&&(t=r,e+=4),(r=t>>2)!=0&&(t=r,e+=2),(r=t>>1)!=0&&(t=r,e+=1),e}function my(){return this.t<=0?0:this.DB*(this.t-1)+_s(this.data[this.t-1]^this.s&this.DM)}function gy(t,e){var r;for(r=this.t-1;r>=0;--r)e.data[r+t]=this.data[r];for(r=t-1;r>=0;--r)e.data[r]=0;e.t=this.t+t,e.s=this.s}function yy(t,e){for(var r=t;r<this.t;++r)e.data[r-t]=this.data[r];e.t=Math.max(this.t-t,0),e.s=this.s}function xy(t,e){var r=t%this.DB,n=this.DB-r,i=(1<<n)-1,s=Math.floor(t/this.DB),o=this.s<<r&this.DM,a;for(a=this.t-1;a>=0;--a)e.data[a+s+1]=this.data[a]>>n|o,o=(this.data[a]&i)<<r;for(a=s-1;a>=0;--a)e.data[a]=0;e.data[s]=o,e.t=this.t+s+1,e.s=this.s,e.clamp()}function by(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t){e.t=0;return}var n=t%this.DB,i=this.DB-n,s=(1<<n)-1;e.data[0]=this.data[r]>>n;for(var o=r+1;o<this.t;++o)e.data[o-r-1]|=(this.data[o]&s)<<i,e.data[o-r]=this.data[o]>>n;n>0&&(e.data[this.t-r-1]|=(this.s&s)<<i),e.t=this.t-r,e.clamp()}function wy(t,e){for(var r=0,n=0,i=Math.min(t.t,this.t);r<i;)n+=this.data[r]-t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n-=t.s;r<this.t;)n+=this.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<t.t;)n-=t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e.data[r++]=this.DV+n:n>0&&(e.data[r++]=n),e.t=r,e.clamp()}function Ey(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e.data[i]=0;for(i=0;i<n.t;++i)e.data[i+r.t]=r.am(0,n.data[i],e,i,0,r.t);e.s=0,e.clamp(),this.s!=t.s&&C.ZERO.subTo(e,e)}function vy(t){for(var e=this.abs(),r=t.t=2*e.t;--r>=0;)t.data[r]=0;for(r=0;r<e.t-1;++r){var n=e.am(r,e.data[r],t,2*r,0,1);(t.data[r+e.t]+=e.am(r+1,2*e.data[r],t,2*r+1,n,e.t-r-1))>=e.DV&&(t.data[r+e.t]-=e.DV,t.data[r+e.t+1]=1)}t.t>0&&(t.data[t.t-1]+=e.am(r,e.data[r],t,2*r,0,1)),t.s=0,t.clamp()}function _y(t,e,r){var n=t.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){e?.fromInt(0),r!=null&&this.copyTo(r);return}r==null&&(r=ie());var s=ie(),o=this.s,a=t.s,c=this.DB-_s(n.data[n.t-1]);c>0?(n.lShiftTo(c,s),i.lShiftTo(c,r)):(n.copyTo(s),i.copyTo(r));var u=s.t,l=s.data[u-1];if(l!=0){var f=l*(1<<this.F1)+(u>1?s.data[u-2]>>this.F2:0),h=this.FV/f,p=(1<<this.F1)/f,d=1<<this.F2,m=r.t,g=m-u,y=e??ie();for(s.dlShiftTo(g,y),r.compareTo(y)>=0&&(r.data[r.t++]=1,r.subTo(y,r)),C.ONE.dlShiftTo(u,y),y.subTo(s,s);s.t<u;)s.data[s.t++]=0;for(;--g>=0;){var x=r.data[--m]==l?this.DM:Math.floor(r.data[m]*h+(r.data[m-1]+d)*p);if((r.data[m]+=s.am(0,x,r,g,0,u))<x)for(s.dlShiftTo(g,y),r.subTo(y,r);r.data[m]<--x;)r.subTo(y,r)}e!=null&&(r.drShiftTo(u,e),o!=a&&C.ZERO.subTo(e,e)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),o<0&&C.ZERO.subTo(r,r)}}}function Sy(t){var e=ie();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(C.ZERO)>0&&t.subTo(e,e),e}function Wr(t){this.m=t}function Ay(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t}function Iy(t){return t}function Ry(t){t.divRemTo(this.m,null,t)}function Cy(t,e,r){t.multiplyTo(e,r),this.reduce(r)}function Ty(t,e){t.squareTo(e),this.reduce(e)}Wr.prototype.convert=Ay;Wr.prototype.revert=Iy;Wr.prototype.reduce=Ry;Wr.prototype.mulTo=Cy;Wr.prototype.sqrTo=Ty;function By(){if(this.t<1)return 0;var t=this.data[0];if(!(t&1))return 0;var e=t&3;return e=e*(2-(t&15)*e)&15,e=e*(2-(t&255)*e)&255,e=e*(2-((t&65535)*e&65535))&65535,e=e*(2-t*e%this.DV)%this.DV,e>0?this.DV-e:-e}function Yr(t){this.m=t,this.mp=t.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<t.DB-15)-1,this.mt2=2*t.t}function Ly(t){var e=ie();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(C.ZERO)>0&&this.m.subTo(e,e),e}function Py(t){var e=ie();return t.copyTo(e),this.reduce(e),e}function Dy(t){for(;t.t<=this.mt2;)t.data[t.t++]=0;for(var e=0;e<this.m.t;++e){var r=t.data[e]&32767,n=r*this.mpl+((r*this.mph+(t.data[e]>>15)*this.mpl&this.um)<<15)&t.DM;for(r=e+this.m.t,t.data[r]+=this.m.am(0,n,t,e,0,this.m.t);t.data[r]>=t.DV;)t.data[r]-=t.DV,t.data[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)}function Ny(t,e){t.squareTo(e),this.reduce(e)}function ky(t,e,r){t.multiplyTo(e,r),this.reduce(r)}Yr.prototype.convert=Ly;Yr.prototype.revert=Py;Yr.prototype.reduce=Dy;Yr.prototype.mulTo=ky;Yr.prototype.sqrTo=Ny;function Oy(){return(this.t>0?this.data[0]&1:this.s)==0}function My(t,e){if(t>4294967295||t<1)return C.ONE;var r=ie(),n=ie(),i=e.convert(this),s=_s(t)-1;for(i.copyTo(r);--s>=0;)if(e.sqrTo(r,n),(t&1<<s)>0)e.mulTo(n,i,r);else{var o=r;r=n,n=o}return e.revert(r)}function Uy(t,e){var r;return t<256||e.isEven()?r=new Wr(e):r=new Yr(e),this.exp(t,r)}C.prototype.copyTo=ay;C.prototype.fromInt=cy;C.prototype.fromString=uy;C.prototype.clamp=ly;C.prototype.dlShiftTo=gy;C.prototype.drShiftTo=yy;C.prototype.lShiftTo=xy;C.prototype.rShiftTo=by;C.prototype.subTo=wy;C.prototype.multiplyTo=Ey;C.prototype.squareTo=vy;C.prototype.divRemTo=_y;C.prototype.invDigit=By;C.prototype.isEven=Oy;C.prototype.exp=My;C.prototype.toString=fy;C.prototype.negate=hy;C.prototype.abs=dy;C.prototype.compareTo=py;C.prototype.bitLength=my;C.prototype.mod=Sy;C.prototype.modPowInt=Uy;C.ZERO=Er(0);C.ONE=Er(1);function Fy(){var t=ie();return this.copyTo(t),t}function Ky(){if(this.s<0){if(this.t==1)return this.data[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this.data[0];if(this.t==0)return 0}return(this.data[1]&(1<<32-this.DB)-1)<<this.DB|this.data[0]}function qy(){return this.t==0?this.s:this.data[0]<<24>>24}function Vy(){return this.t==0?this.s:this.data[0]<<16>>16}function $y(t){return Math.floor(Math.LN2*this.DB/Math.log(t))}function zy(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function Hy(t){if(t==null&&(t=10),this.signum()==0||t<2||t>36)return"0";var e=this.chunkSize(t),r=Math.pow(t,e),n=Er(r),i=ie(),s=ie(),o="";for(this.divRemTo(n,i,s);i.signum()>0;)o=(r+s.intValue()).toString(t).substr(1)+o,i.divRemTo(n,i,s);return s.intValue().toString(t)+o}function Gy(t,e){this.fromInt(0),e==null&&(e=10);for(var r=this.chunkSize(e),n=Math.pow(e,r),i=!1,s=0,o=0,a=0;a<t.length;++a){var c=t0(t,a);if(c<0){t.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}o=e*o+c,++s>=r&&(this.dMultiply(n),this.dAddOffset(o,0),s=0,o=0)}s>0&&(this.dMultiply(Math.pow(e,s)),this.dAddOffset(o,0)),i&&C.ZERO.subTo(this,this)}function Wy(t,e,r){if(typeof e=="number")if(t<2)this.fromInt(1);else for(this.fromNumber(t,r),this.testBit(t-1)||this.bitwiseTo(C.ONE.shiftLeft(t-1),qa,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(C.ONE.shiftLeft(t-1),this);else{var n=new Array,i=t&7;n.length=(t>>3)+1,e.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function Yy(){var t=this.t,e=new Array;e[0]=this.s;var r=this.DB-t*this.DB%8,n,i=0;if(t-- >0)for(r<this.DB&&(n=this.data[t]>>r)!=(this.s&this.DM)>>r&&(e[i++]=n|this.s<<this.DB-r);t>=0;)r<8?(n=(this.data[t]&(1<<r)-1)<<8-r,n|=this.data[--t]>>(r+=this.DB-8)):(n=this.data[t]>>(r-=8)&255,r<=0&&(r+=this.DB,--t)),n&128&&(n|=-256),i==0&&(this.s&128)!=(n&128)&&++i,(i>0||n!=this.s)&&(e[i++]=n);return e}function Qy(t){return this.compareTo(t)==0}function Xy(t){return this.compareTo(t)<0?this:t}function Zy(t){return this.compareTo(t)>0?this:t}function jy(t,e,r){var n,i,s=Math.min(t.t,this.t);for(n=0;n<s;++n)r.data[n]=e(this.data[n],t.data[n]);if(t.t<this.t){for(i=t.s&this.DM,n=s;n<this.t;++n)r.data[n]=e(this.data[n],i);r.t=this.t}else{for(i=this.s&this.DM,n=s;n<t.t;++n)r.data[n]=e(i,t.data[n]);r.t=t.t}r.s=e(this.s,t.s),r.clamp()}function Jy(t,e){return t&e}function ex(t){var e=ie();return this.bitwiseTo(t,Jy,e),e}function qa(t,e){return t|e}function tx(t){var e=ie();return this.bitwiseTo(t,qa,e),e}function r0(t,e){return t^e}function rx(t){var e=ie();return this.bitwiseTo(t,r0,e),e}function n0(t,e){return t&~e}function nx(t){var e=ie();return this.bitwiseTo(t,n0,e),e}function ix(){for(var t=ie(),e=0;e<this.t;++e)t.data[e]=this.DM&~this.data[e];return t.t=this.t,t.s=~this.s,t}function sx(t){var e=ie();return t<0?this.rShiftTo(-t,e):this.lShiftTo(t,e),e}function ox(t){var e=ie();return t<0?this.lShiftTo(-t,e):this.rShiftTo(t,e),e}function ax(t){if(t==0)return-1;var e=0;return t&65535||(t>>=16,e+=16),t&255||(t>>=8,e+=8),t&15||(t>>=4,e+=4),t&3||(t>>=2,e+=2),t&1||++e,e}function cx(){for(var t=0;t<this.t;++t)if(this.data[t]!=0)return t*this.DB+ax(this.data[t]);return this.s<0?this.t*this.DB:-1}function ux(t){for(var e=0;t!=0;)t&=t-1,++e;return e}function lx(){for(var t=0,e=this.s&this.DM,r=0;r<this.t;++r)t+=ux(this.data[r]^e);return t}function fx(t){var e=Math.floor(t/this.DB);return e>=this.t?this.s!=0:(this.data[e]&1<<t%this.DB)!=0}function hx(t,e){var r=C.ONE.shiftLeft(t);return this.bitwiseTo(r,e,r),r}function dx(t){return this.changeBit(t,qa)}function px(t){return this.changeBit(t,n0)}function mx(t){return this.changeBit(t,r0)}function gx(t,e){for(var r=0,n=0,i=Math.min(t.t,this.t);r<i;)n+=this.data[r]+t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n+=t.s;r<this.t;)n+=this.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<t.t;)n+=t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e.data[r++]=n:n<-1&&(e.data[r++]=this.DV+n),e.t=r,e.clamp()}function yx(t){var e=ie();return this.addTo(t,e),e}function xx(t){var e=ie();return this.subTo(t,e),e}function bx(t){var e=ie();return this.multiplyTo(t,e),e}function wx(t){var e=ie();return this.divRemTo(t,e,null),e}function Ex(t){var e=ie();return this.divRemTo(t,null,e),e}function vx(t){var e=ie(),r=ie();return this.divRemTo(t,e,r),new Array(e,r)}function _x(t){this.data[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()}function Sx(t,e){if(t!=0){for(;this.t<=e;)this.data[this.t++]=0;for(this.data[e]+=t;this.data[e]>=this.DV;)this.data[e]-=this.DV,++e>=this.t&&(this.data[this.t++]=0),++this.data[e]}}function vi(){}function i0(t){return t}function Ax(t,e,r){t.multiplyTo(e,r)}function Ix(t,e){t.squareTo(e)}vi.prototype.convert=i0;vi.prototype.revert=i0;vi.prototype.mulTo=Ax;vi.prototype.sqrTo=Ix;function Rx(t){return this.exp(t,new vi)}function Cx(t,e,r){var n=Math.min(this.t+t.t,e);for(r.s=0,r.t=n;n>0;)r.data[--n]=0;var i;for(i=r.t-this.t;n<i;++n)r.data[n+this.t]=this.am(0,t.data[n],r,n,0,this.t);for(i=Math.min(t.t,e);n<i;++n)this.am(0,t.data[n],r,n,0,e-n);r.clamp()}function Tx(t,e,r){--e;var n=r.t=this.t+t.t-e;for(r.s=0;--n>=0;)r.data[n]=0;for(n=Math.max(e-this.t,0);n<t.t;++n)r.data[this.t+n-e]=this.am(e-n,t.data[n],r,0,0,this.t+n-e);r.clamp(),r.drShiftTo(1,r)}function Tn(t){this.r2=ie(),this.q3=ie(),C.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}function Bx(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=ie();return t.copyTo(e),this.reduce(e),e}function Lx(t){return t}function Px(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)}function Dx(t,e){t.squareTo(e),this.reduce(e)}function Nx(t,e,r){t.multiplyTo(e,r),this.reduce(r)}Tn.prototype.convert=Bx;Tn.prototype.revert=Lx;Tn.prototype.reduce=Px;Tn.prototype.mulTo=Nx;Tn.prototype.sqrTo=Dx;function kx(t,e){var r=t.bitLength(),n,i=Er(1),s;if(r<=0)return i;r<18?n=1:r<48?n=3:r<144?n=4:r<768?n=5:n=6,r<8?s=new Wr(e):e.isEven()?s=new Tn(e):s=new Yr(e);var o=new Array,a=3,c=n-1,u=(1<<n)-1;if(o[1]=s.convert(this),n>1){var l=ie();for(s.sqrTo(o[1],l);a<=u;)o[a]=ie(),s.mulTo(l,o[a-2],o[a]),a+=2}var f=t.t-1,h,p=!0,d=ie(),m;for(r=_s(t.data[f])-1;f>=0;){for(r>=c?h=t.data[f]>>r-c&u:(h=(t.data[f]&(1<<r+1)-1)<<c-r,f>0&&(h|=t.data[f-1]>>this.DB+r-c)),a=n;!(h&1);)h>>=1,--a;if((r-=a)<0&&(r+=this.DB,--f),p)o[h].copyTo(i),p=!1;else{for(;a>1;)s.sqrTo(i,d),s.sqrTo(d,i),a-=2;a>0?s.sqrTo(i,d):(m=i,i=d,d=m),s.mulTo(d,o[h],i)}for(;f>=0&&!(t.data[f]&1<<r);)s.sqrTo(i,d),m=i,i=d,d=m,--r<0&&(r=this.DB-1,--f)}return s.revert(i)}function Ox(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var n=e;e=r,r=n}var i=e.getLowestSetBit(),s=r.getLowestSetBit();if(s<0)return e;for(i<s&&(s=i),s>0&&(e.rShiftTo(s,e),r.rShiftTo(s,r));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return s>0&&r.lShiftTo(s,r),r}function Mx(t){if(t<=0)return 0;var e=this.DV%t,r=this.s<0?t-1:0;if(this.t>0)if(e==0)r=this.data[0]%t;else for(var n=this.t-1;n>=0;--n)r=(e*r+this.data[n])%t;return r}function Ux(t){var e=t.isEven();if(this.isEven()&&e||t.signum()==0)return C.ZERO;for(var r=t.clone(),n=this.clone(),i=Er(1),s=Er(0),o=Er(0),a=Er(1);r.signum()!=0;){for(;r.isEven();)r.rShiftTo(1,r),e?((!i.isEven()||!s.isEven())&&(i.addTo(this,i),s.subTo(t,s)),i.rShiftTo(1,i)):s.isEven()||s.subTo(t,s),s.rShiftTo(1,s);for(;n.isEven();)n.rShiftTo(1,n),e?((!o.isEven()||!a.isEven())&&(o.addTo(this,o),a.subTo(t,a)),o.rShiftTo(1,o)):a.isEven()||a.subTo(t,a),a.rShiftTo(1,a);r.compareTo(n)>=0?(r.subTo(n,r),e&&i.subTo(o,i),s.subTo(a,s)):(n.subTo(r,n),e&&o.subTo(i,o),a.subTo(s,a))}if(n.compareTo(C.ONE)!=0)return C.ZERO;if(a.compareTo(t)>=0)return a.subtract(t);if(a.signum()<0)a.addTo(t,a);else return a;return a.signum()<0?a.add(t):a}var Lt=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509],Fx=(1<<26)/Lt[Lt.length-1];function Kx(t){var e,r=this.abs();if(r.t==1&&r.data[0]<=Lt[Lt.length-1]){for(e=0;e<Lt.length;++e)if(r.data[0]==Lt[e])return!0;return!1}if(r.isEven())return!1;for(e=1;e<Lt.length;){for(var n=Lt[e],i=e+1;i<Lt.length&&n<Fx;)n*=Lt[i++];for(n=r.modInt(n);e<i;)if(n%Lt[e++]==0)return!1}return r.millerRabin(t)}function qx(t){var e=this.subtract(C.ONE),r=e.getLowestSetBit();if(r<=0)return!1;for(var n=e.shiftRight(r),i=Vx(),s,o=0;o<t;++o){do s=new C(this.bitLength(),i);while(s.compareTo(C.ONE)<=0||s.compareTo(e)>=0);var a=s.modPow(n,this);if(a.compareTo(C.ONE)!=0&&a.compareTo(e)!=0){for(var c=1;c++<r&&a.compareTo(e)!=0;)if(a=a.modPowInt(2,this),a.compareTo(C.ONE)==0)return!1;if(a.compareTo(e)!=0)return!1}}return!0}function Vx(){return{nextBytes:function(t){for(var e=0;e<t.length;++e)t[e]=Math.floor(Math.random()*256)}}}C.prototype.chunkSize=$y;C.prototype.toRadix=Hy;C.prototype.fromRadix=Gy;C.prototype.fromNumber=Wy;C.prototype.bitwiseTo=jy;C.prototype.changeBit=hx;C.prototype.addTo=gx;C.prototype.dMultiply=_x;C.prototype.dAddOffset=Sx;C.prototype.multiplyLowerTo=Cx;C.prototype.multiplyUpperTo=Tx;C.prototype.modInt=Mx;C.prototype.millerRabin=qx;C.prototype.clone=Fy;C.prototype.intValue=Ky;C.prototype.byteValue=qy;C.prototype.shortValue=Vy;C.prototype.signum=zy;C.prototype.toByteArray=Yy;C.prototype.equals=Qy;C.prototype.min=Xy;C.prototype.max=Zy;C.prototype.and=ex;C.prototype.or=tx;C.prototype.xor=rx;C.prototype.andNot=nx;C.prototype.not=ix;C.prototype.shiftLeft=sx;C.prototype.shiftRight=ox;C.prototype.getLowestSetBit=cx;C.prototype.bitCount=lx;C.prototype.testBit=fx;C.prototype.setBit=dx;C.prototype.clearBit=px;C.prototype.flipBit=mx;C.prototype.add=yx;C.prototype.subtract=xx;C.prototype.multiply=bx;C.prototype.divide=wx;C.prototype.remainder=Ex;C.prototype.divideAndRemainder=vx;C.prototype.modPow=kx;C.prototype.modInverse=Ux;C.prototype.pow=Rx;C.prototype.gcd=Ox;C.prototype.isProbablePrime=Kx});var l0=V((v_,u0)=>{var Ht=he();Gr();Le();var a0=u0.exports=Ht.sha1=Ht.sha1||{};Ht.md.sha1=Ht.md.algorithms.sha1=a0;a0.create=function(){c0||$x();var t=null,e=Ht.util.createBuffer(),r=new Array(80),n={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return e=Ht.util.createBuffer(),t={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=Ht.util.encodeUtf8(i));var o=i.length;n.messageLength+=o,o=[o/4294967296>>>0,o>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=o[1],o[1]=o[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,o[0]=o[1]/4294967296>>>0;return e.putBytes(i),o0(t,r,e),(e.read>2048||e.length()===0)&&e.compact(),n},n.digest=function(){var i=Ht.util.createBuffer();i.putBytes(e.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(Va.substr(0,n.blockLength-o));for(var a,c,u=n.fullMessageLength[0]*8,l=0;l<n.fullMessageLength.length-1;++l)a=n.fullMessageLength[l+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var f={h0:t.h0,h1:t.h1,h2:t.h2,h3:t.h3,h4:t.h4};o0(f,r,i);var h=Ht.util.createBuffer();return h.putInt32(f.h0),h.putInt32(f.h1),h.putInt32(f.h2),h.putInt32(f.h3),h.putInt32(f.h4),h},n};var Va=null,c0=!1;function $x(){Va="\x80",Va+=Ht.util.fillString("\0",64),c0=!0}function o0(t,e,r){for(var n,i,s,o,a,c,u,l,f=r.length();f>=64;){for(i=t.h0,s=t.h1,o=t.h2,a=t.h3,c=t.h4,l=0;l<16;++l)n=r.getInt32(),e[l]=n,u=a^s&(o^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<20;++l)n=e[l-3]^e[l-8]^e[l-14]^e[l-16],n=n<<1|n>>>31,e[l]=n,u=a^s&(o^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<32;++l)n=e[l-3]^e[l-8]^e[l-14]^e[l-16],n=n<<1|n>>>31,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<40;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<60;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s&o|a&(s^o),n=(i<<5|i>>>27)+u+c+2400959708+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<80;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+3395469782+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;t.h0=t.h0+i|0,t.h1=t.h1+s|0,t.h2=t.h2+o|0,t.h3=t.h3+a|0,t.h4=t.h4+c|0,f-=64}}});var d0=V((__,h0)=>{var Gt=he();Le();Ei();l0();var f0=h0.exports=Gt.pkcs1=Gt.pkcs1||{};f0.encode_rsa_oaep=function(t,e,r){var n,i,s,o;typeof r=="string"?(n=r,i=arguments[3]||void 0,s=arguments[4]||void 0):r&&(n=r.label||void 0,i=r.seed||void 0,s=r.md||void 0,r.mgf1&&r.mgf1.md&&(o=r.mgf1.md)),s?s.start():s=Gt.md.sha1.create(),o||(o=s);var a=Math.ceil(t.n.bitLength()/8),c=a-2*s.digestLength-2;if(e.length>c){var u=new Error("RSAES-OAEP input message length is too long.");throw u.length=e.length,u.maxLength=c,u}n||(n=""),s.update(n,"raw");for(var l=s.digest(),f="",h=c-e.length,p=0;p<h;p++)f+="\0";var d=l.getBytes()+f+""+e;if(!i)i=Gt.random.getBytes(s.digestLength);else if(i.length!==s.digestLength){var u=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw u.seedLength=i.length,u.digestLength=s.digestLength,u}var m=As(i,a-s.digestLength-1,o),g=Gt.util.xorBytes(d,m,d.length),y=As(g,s.digestLength,o),x=Gt.util.xorBytes(i,y,i.length);return"\0"+x+g};f0.decode_rsa_oaep=function(t,e,r){var n,i,s;typeof r=="string"?(n=r,i=arguments[3]||void 0):r&&(n=r.label||void 0,i=r.md||void 0,r.mgf1&&r.mgf1.md&&(s=r.mgf1.md));var o=Math.ceil(t.n.bitLength()/8);if(e.length!==o){var g=new Error("RSAES-OAEP encoded message length is invalid.");throw g.length=e.length,g.expectedLength=o,g}if(i===void 0?i=Gt.md.sha1.create():i.start(),s||(s=i),o<2*i.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");n||(n=""),i.update(n,"raw");for(var a=i.digest().getBytes(),c=e.charAt(0),u=e.substring(1,i.digestLength+1),l=e.substring(1+i.digestLength),f=As(l,i.digestLength,s),h=Gt.util.xorBytes(u,f,u.length),p=As(h,o-i.digestLength-1,s),d=Gt.util.xorBytes(l,p,l.length),m=d.substring(0,i.digestLength),g=c!=="\0",y=0;y<i.digestLength;++y)g|=a.charAt(y)!==m.charAt(y);for(var x=1,b=i.digestLength,I=i.digestLength;I<d.length;I++){var v=d.charCodeAt(I),_=v&1^1,P=x?65534:0;g|=v&P,x=x&_,b+=x}if(g||d.charCodeAt(b)!==1)throw new Error("Invalid RSAES-OAEP padding.");return d.substring(b+1)};function As(t,e,r){r||(r=Gt.md.sha1.create());for(var n="",i=Math.ceil(e/r.digestLength),s=0;s<i;++s){var o=String.fromCharCode(s>>24&255,s>>16&255,s>>8&255,s&255);r.start(),r.update(t+o),n+=r.digest().getBytes()}return n.substring(0,e)}});var p0=V((S_,$a)=>{var vr=he();Le();Ss();Ei();(function(){if(vr.prime){$a.exports=vr.prime;return}var t=$a.exports=vr.prime=vr.prime||{},e=vr.jsbn.BigInteger,r=[6,4,2,4,2,4,6,2],n=new e(null);n.fromInt(30);var i=function(f,h){return f|h};t.generateProbablePrime=function(f,h,p){typeof h=="function"&&(p=h,h={}),h=h||{};var d=h.algorithm||"PRIMEINC";typeof d=="string"&&(d={name:d}),d.options=d.options||{};var m=h.prng||vr.random,g={nextBytes:function(y){for(var x=m.getBytesSync(y.length),b=0;b<y.length;++b)y[b]=x.charCodeAt(b)}};if(d.name==="PRIMEINC")return s(f,g,d.options,p);throw new Error("Invalid prime generation algorithm: "+d.name)};function s(f,h,p,d){return"workers"in p?c(f,h,p,d):o(f,h,p,d)}function o(f,h,p,d){var m=u(f,h),g=0,y=l(m.bitLength());"millerRabinTests"in p&&(y=p.millerRabinTests);var x=10;"maxBlockTime"in p&&(x=p.maxBlockTime),a(m,f,h,g,y,x,d)}function a(f,h,p,d,m,g,y){var x=+new Date;do{if(f.bitLength()>h&&(f=u(h,p)),f.isProbablePrime(m))return y(null,f);f.dAddOffset(r[d++%8],0)}while(g<0||+new Date-x<g);vr.util.setImmediate(function(){a(f,h,p,d,m,g,y)})}function c(f,h,p,d){if(typeof Worker>"u")return o(f,h,p,d);var m=u(f,h),g=p.workers,y=p.workLoad||100,x=y*30/8,b=p.workerScript||"forge/prime.worker.js";if(g===-1)return vr.util.estimateCores(function(v,_){v&&(_=2),g=_-1,I()});I();function I(){g=Math.max(1,g);for(var v=[],_=0;_<g;++_)v[_]=new Worker(b);for(var P=g,_=0;_<g;++_)v[_].addEventListener("message",G);var D=!1;function G(W){if(!D){--P;var z=W.data;if(z.found){for(var ee=0;ee<v.length;++ee)v[ee].terminate();return D=!0,d(null,new e(z.prime,16))}m.bitLength()>f&&(m=u(f,h));var fe=m.toString(16);W.target.postMessage({hex:fe,workLoad:y}),m.dAddOffset(x,0)}}}}function u(f,h){var p=new e(f,h),d=f-1;return p.testBit(d)||p.bitwiseTo(e.ONE.shiftLeft(d),i,p),p.dAddOffset(31-p.mod(n).byteValue(),0),p}function l(f){return f<=100?27:f<=150?18:f<=200?15:f<=250?12:f<=300?9:f<=350?8:f<=400?7:f<=500?6:f<=600?5:f<=800?4:f<=1250?3:2}})()});var Rs=V((A_,E0)=>{var $=he();bi();Ss();hs();d0();p0();Ei();Le();typeof ne>"u"&&(ne=$.jsbn.BigInteger);var ne,za=$.util.isNodejs?wi():null,E=$.asn1,At=$.util;$.pki=$.pki||{};E0.exports=$.pki.rsa=$.rsa=$.rsa||{};var Y=$.pki,zx=[6,4,2,4,2,4,6,2],Hx={name:"PrivateKeyInfo",tagClass:E.Class.UNIVERSAL,type:E.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:E.Class.UNIVERSAL,type:E.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:E.Class.UNIVERSAL,type:E.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:E.Class.UNIVERSAL,type:E.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},Gx={name:"RSAPrivateKey",tagClass:E.Class.UNIVERSAL,type:E.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},Wx={name:"RSAPublicKey",tagClass:E.Class.UNIVERSAL,type:E.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},Yx=$.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:E.Class.UNIVERSAL,type:E.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:E.Class.UNIVERSAL,type:E.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:E.Class.UNIVERSAL,type:E.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:E.Class.UNIVERSAL,type:E.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:E.Class.UNIVERSAL,type:E.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},Qx={name:"DigestInfo",tagClass:E.Class.UNIVERSAL,type:E.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:E.Class.UNIVERSAL,type:E.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:E.Class.UNIVERSAL,type:E.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:E.Class.UNIVERSAL,type:E.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:E.Class.UNIVERSAL,type:E.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},Xx=function(t){var e;if(t.algorithm in Y.oids)e=Y.oids[t.algorithm];else{var r=new Error("Unknown message digest algorithm.");throw r.algorithm=t.algorithm,r}var n=E.oidToDer(e).getBytes(),i=E.create(E.Class.UNIVERSAL,E.Type.SEQUENCE,!0,[]),s=E.create(E.Class.UNIVERSAL,E.Type.SEQUENCE,!0,[]);s.value.push(E.create(E.Class.UNIVERSAL,E.Type.OID,!1,n)),s.value.push(E.create(E.Class.UNIVERSAL,E.Type.NULL,!1,""));var o=E.create(E.Class.UNIVERSAL,E.Type.OCTETSTRING,!1,t.digest().getBytes());return i.value.push(s),i.value.push(o),E.toDer(i).getBytes()},b0=function(t,e,r){if(r)return t.modPow(e.e,e.n);if(!e.p||!e.q)return t.modPow(e.d,e.n);e.dP||(e.dP=e.d.mod(e.p.subtract(ne.ONE))),e.dQ||(e.dQ=e.d.mod(e.q.subtract(ne.ONE))),e.qInv||(e.qInv=e.q.modInverse(e.p));var n;do n=new ne($.util.bytesToHex($.random.getBytes(e.n.bitLength()/8)),16);while(n.compareTo(e.n)>=0||!n.gcd(e.n).equals(ne.ONE));t=t.multiply(n.modPow(e.e,e.n)).mod(e.n);for(var i=t.mod(e.p).modPow(e.dP,e.p),s=t.mod(e.q).modPow(e.dQ,e.q);i.compareTo(s)<0;)i=i.add(e.p);var o=i.subtract(s).multiply(e.qInv).mod(e.p).multiply(e.q).add(s);return o=o.multiply(n.modInverse(e.n)).mod(e.n),o};Y.rsa.encrypt=function(t,e,r){var n=r,i,s=Math.ceil(e.n.bitLength()/8);r!==!1&&r!==!0?(n=r===2,i=w0(t,e,r)):(i=$.util.createBuffer(),i.putBytes(t));for(var o=new ne(i.toHex(),16),a=b0(o,e,n),c=a.toString(16),u=$.util.createBuffer(),l=s-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes($.util.hexToBytes(c)),u.getBytes()};Y.rsa.decrypt=function(t,e,r,n){var i=Math.ceil(e.n.bitLength()/8);if(t.length!==i){var s=new Error("Encrypted message length is invalid.");throw s.length=t.length,s.expected=i,s}var o=new ne($.util.createBuffer(t).toHex(),16);if(o.compareTo(e.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=b0(o,e,r),c=a.toString(16),u=$.util.createBuffer(),l=i-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes($.util.hexToBytes(c)),n!==!1?Is(u.getBytes(),e,r):u.getBytes()};Y.rsa.createKeyPairGenerationState=function(t,e,r){typeof t=="string"&&(t=parseInt(t,10)),t=t||2048,r=r||{};var n=r.prng||$.random,i={nextBytes:function(a){for(var c=n.getBytesSync(a.length),u=0;u<a.length;++u)a[u]=c.charCodeAt(u)}},s=r.algorithm||"PRIMEINC",o;if(s==="PRIMEINC")o={algorithm:s,state:0,bits:t,rng:i,eInt:e||65537,e:new ne(null),p:null,q:null,qBits:t>>1,pBits:t-(t>>1),pqState:0,num:null,keys:null},o.e.fromInt(o.eInt);else throw new Error("Invalid key generation algorithm: "+s);return o};Y.rsa.stepKeyPairGenerationState=function(t,e){"algorithm"in t||(t.algorithm="PRIMEINC");var r=new ne(null);r.fromInt(30);for(var n=0,i=function(f,h){return f|h},s=+new Date,o,a=0;t.keys===null&&(e<=0||a<e);){if(t.state===0){var c=t.p===null?t.pBits:t.qBits,u=c-1;t.pqState===0?(t.num=new ne(c,t.rng),t.num.testBit(u)||t.num.bitwiseTo(ne.ONE.shiftLeft(u),i,t.num),t.num.dAddOffset(31-t.num.mod(r).byteValue(),0),n=0,++t.pqState):t.pqState===1?t.num.bitLength()>c?t.pqState=0:t.num.isProbablePrime(jx(t.num.bitLength()))?++t.pqState:t.num.dAddOffset(zx[n++%8],0):t.pqState===2?t.pqState=t.num.subtract(ne.ONE).gcd(t.e).compareTo(ne.ONE)===0?3:0:t.pqState===3&&(t.pqState=0,t.p===null?t.p=t.num:t.q=t.num,t.p!==null&&t.q!==null&&++t.state,t.num=null)}else if(t.state===1)t.p.compareTo(t.q)<0&&(t.num=t.p,t.p=t.q,t.q=t.num),++t.state;else if(t.state===2)t.p1=t.p.subtract(ne.ONE),t.q1=t.q.subtract(ne.ONE),t.phi=t.p1.multiply(t.q1),++t.state;else if(t.state===3)t.phi.gcd(t.e).compareTo(ne.ONE)===0?++t.state:(t.p=null,t.q=null,t.state=0);else if(t.state===4)t.n=t.p.multiply(t.q),t.n.bitLength()===t.bits?++t.state:(t.q=null,t.state=0);else if(t.state===5){var l=t.e.modInverse(t.phi);t.keys={privateKey:Y.rsa.setPrivateKey(t.n,t.e,l,t.p,t.q,l.mod(t.p1),l.mod(t.q1),t.q.modInverse(t.p)),publicKey:Y.rsa.setPublicKey(t.n,t.e)}}o=+new Date,a+=o-s,s=o}return t.keys!==null};Y.rsa.generateKeyPair=function(t,e,r,n){if(arguments.length===1?typeof t=="object"?(r=t,t=void 0):typeof t=="function"&&(n=t,t=void 0):arguments.length===2?typeof t=="number"?typeof e=="function"?(n=e,e=void 0):typeof e!="number"&&(r=e,e=void 0):(r=t,n=e,t=void 0,e=void 0):arguments.length===3&&(typeof e=="number"?typeof r=="function"&&(n=r,r=void 0):(n=r,r=e,e=void 0)),r=r||{},t===void 0&&(t=r.bits||2048),e===void 0&&(e=r.e||65537),!$.options.usePureJavaScript&&!r.prng&&t>=256&&t<=16384&&(e===65537||e===3)){if(n){if(m0("generateKeyPair"))return za.generateKeyPair("rsa",{modulusLength:t,publicExponent:e,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,u){if(a)return n(a);n(null,{privateKey:Y.privateKeyFromPem(u),publicKey:Y.publicKeyFromPem(c)})});if(g0("generateKey")&&g0("exportKey"))return At.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:x0(e),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return At.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=Y.privateKeyFromAsn1(E.fromDer($.util.createBuffer(a)));n(null,{privateKey:c,publicKey:Y.setRsaPublicKey(c.n,c.e)})}});if(y0("generateKey")&&y0("exportKey")){var i=At.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:x0(e),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=At.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(l){var f=l.target.result,h=Y.privateKeyFromAsn1(E.fromDer($.util.createBuffer(f)));n(null,{privateKey:h,publicKey:Y.setRsaPublicKey(h.n,h.e)})},u.onerror=function(l){n(l)}},i.onerror=function(a){n(a)};return}}else if(m0("generateKeyPairSync")){var s=za.generateKeyPairSync("rsa",{modulusLength:t,publicExponent:e,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:Y.privateKeyFromPem(s.privateKey),publicKey:Y.publicKeyFromPem(s.publicKey)}}}var o=Y.rsa.createKeyPairGenerationState(t,e,r);if(!n)return Y.rsa.stepKeyPairGenerationState(o,0),o.keys;Zx(o,r,n)};Y.setRsaPublicKey=Y.rsa.setPublicKey=function(t,e){var r={n:t,e};return r.encrypt=function(n,i,s){if(typeof i=="string"?i=i.toUpperCase():i===void 0&&(i="RSAES-PKCS1-V1_5"),i==="RSAES-PKCS1-V1_5")i={encode:function(a,c,u){return w0(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return $.pkcs1.encode_rsa_oaep(c,a,s)}};else if(["RAW","NONE","NULL",null].indexOf(i)!==-1)i={encode:function(a){return a}};else if(typeof i=="string")throw new Error('Unsupported encryption scheme: "'+i+'".');var o=i.encode(n,r,!0);return Y.rsa.encrypt(o,r,!0)},r.verify=function(n,i,s,o){typeof s=="string"?s=s.toUpperCase():s===void 0&&(s="RSASSA-PKCS1-V1_5"),o===void 0&&(o={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in o||(o._parseAllDigestBytes=!0),s==="RSASSA-PKCS1-V1_5"?s={verify:function(c,u){u=Is(u,r,!0);var l=E.fromDer(u,{parseAllBytes:o._parseAllDigestBytes}),f={},h=[];if(!E.validate(l,Qx,f,h)){var p=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw p.errors=h,p}var d=E.derToOid(f.algorithmIdentifier);if(!(d===$.oids.md2||d===$.oids.md5||d===$.oids.sha1||d===$.oids.sha224||d===$.oids.sha256||d===$.oids.sha384||d===$.oids.sha512||d===$.oids["sha512-224"]||d===$.oids["sha512-256"])){var p=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw p.oid=d,p}if((d===$.oids.md2||d===$.oids.md5)&&!("parameters"in f))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return c===f.digest}}:(s==="NONE"||s==="NULL"||s===null)&&(s={verify:function(c,u){return u=Is(u,r,!0),c===u}});var a=Y.rsa.decrypt(i,r,!0,!1);return s.verify(n,a,r.n.bitLength())},r};Y.setRsaPrivateKey=Y.rsa.setPrivateKey=function(t,e,r,n,i,s,o,a){var c={n:t,e,d:r,p:n,q:i,dP:s,dQ:o,qInv:a};return c.decrypt=function(u,l,f){typeof l=="string"?l=l.toUpperCase():l===void 0&&(l="RSAES-PKCS1-V1_5");var h=Y.rsa.decrypt(u,c,!1,!1);if(l==="RSAES-PKCS1-V1_5")l={decode:Is};else if(l==="RSA-OAEP"||l==="RSAES-OAEP")l={decode:function(p,d){return $.pkcs1.decode_rsa_oaep(d,p,f)}};else if(["RAW","NONE","NULL",null].indexOf(l)!==-1)l={decode:function(p){return p}};else throw new Error('Unsupported encryption scheme: "'+l+'".');return l.decode(h,c,!1)},c.sign=function(u,l){var f=!1;typeof l=="string"&&(l=l.toUpperCase()),l===void 0||l==="RSASSA-PKCS1-V1_5"?(l={encode:Xx},f=1):(l==="NONE"||l==="NULL"||l===null)&&(l={encode:function(){return u}},f=1);var h=l.encode(u,c.n.bitLength());return Y.rsa.encrypt(h,c,f)},c};Y.wrapRsaPrivateKey=function(t){return E.create(E.Class.UNIVERSAL,E.Type.SEQUENCE,!0,[E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,E.integerToDer(0).getBytes()),E.create(E.Class.UNIVERSAL,E.Type.SEQUENCE,!0,[E.create(E.Class.UNIVERSAL,E.Type.OID,!1,E.oidToDer(Y.oids.rsaEncryption).getBytes()),E.create(E.Class.UNIVERSAL,E.Type.NULL,!1,"")]),E.create(E.Class.UNIVERSAL,E.Type.OCTETSTRING,!1,E.toDer(t).getBytes())])};Y.privateKeyFromAsn1=function(t){var e={},r=[];if(E.validate(t,Hx,e,r)&&(t=E.fromDer($.util.createBuffer(e.privateKey))),e={},r=[],!E.validate(t,Gx,e,r)){var n=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw n.errors=r,n}var i,s,o,a,c,u,l,f;return i=$.util.createBuffer(e.privateKeyModulus).toHex(),s=$.util.createBuffer(e.privateKeyPublicExponent).toHex(),o=$.util.createBuffer(e.privateKeyPrivateExponent).toHex(),a=$.util.createBuffer(e.privateKeyPrime1).toHex(),c=$.util.createBuffer(e.privateKeyPrime2).toHex(),u=$.util.createBuffer(e.privateKeyExponent1).toHex(),l=$.util.createBuffer(e.privateKeyExponent2).toHex(),f=$.util.createBuffer(e.privateKeyCoefficient).toHex(),Y.setRsaPrivateKey(new ne(i,16),new ne(s,16),new ne(o,16),new ne(a,16),new ne(c,16),new ne(u,16),new ne(l,16),new ne(f,16))};Y.privateKeyToAsn1=Y.privateKeyToRSAPrivateKey=function(t){return E.create(E.Class.UNIVERSAL,E.Type.SEQUENCE,!0,[E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,E.integerToDer(0).getBytes()),E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,Wt(t.n)),E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,Wt(t.e)),E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,Wt(t.d)),E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,Wt(t.p)),E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,Wt(t.q)),E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,Wt(t.dP)),E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,Wt(t.dQ)),E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,Wt(t.qInv))])};Y.publicKeyFromAsn1=function(t){var e={},r=[];if(E.validate(t,Yx,e,r)){var n=E.derToOid(e.publicKeyOid);if(n!==Y.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}t=e.rsaPublicKey}if(r=[],!E.validate(t,Wx,e,r)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=r,i}var s=$.util.createBuffer(e.publicKeyModulus).toHex(),o=$.util.createBuffer(e.publicKeyExponent).toHex();return Y.setRsaPublicKey(new ne(s,16),new ne(o,16))};Y.publicKeyToAsn1=Y.publicKeyToSubjectPublicKeyInfo=function(t){return E.create(E.Class.UNIVERSAL,E.Type.SEQUENCE,!0,[E.create(E.Class.UNIVERSAL,E.Type.SEQUENCE,!0,[E.create(E.Class.UNIVERSAL,E.Type.OID,!1,E.oidToDer(Y.oids.rsaEncryption).getBytes()),E.create(E.Class.UNIVERSAL,E.Type.NULL,!1,"")]),E.create(E.Class.UNIVERSAL,E.Type.BITSTRING,!1,[Y.publicKeyToRSAPublicKey(t)])])};Y.publicKeyToRSAPublicKey=function(t){return E.create(E.Class.UNIVERSAL,E.Type.SEQUENCE,!0,[E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,Wt(t.n)),E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,Wt(t.e))])};function w0(t,e,r){var n=$.util.createBuffer(),i=Math.ceil(e.n.bitLength()/8);if(t.length>i-11){var s=new Error("Message is too long for PKCS#1 v1.5 padding.");throw s.length=t.length,s.max=i-11,s}n.putByte(0),n.putByte(r);var o=i-3-t.length,a;if(r===0||r===1){a=r===0?0:255;for(var c=0;c<o;++c)n.putByte(a)}else for(;o>0;){for(var u=0,l=$.random.getBytes(o),c=0;c<o;++c)a=l.charCodeAt(c),a===0?++u:n.putByte(a);o=u}return n.putByte(0),n.putBytes(t),n}function Is(t,e,r,n){var i=Math.ceil(e.n.bitLength()/8),s=$.util.createBuffer(t),o=s.getByte(),a=s.getByte();if(o!==0||r&&a!==0&&a!==1||!r&&a!=2||r&&a===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(a===0){c=i-3-n;for(var u=0;u<c;++u)if(s.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(a===1)for(c=0;s.length()>1;){if(s.getByte()!==255){--s.read;break}++c}else if(a===2)for(c=0;s.length()>1;){if(s.getByte()===0){--s.read;break}++c}var l=s.getByte();if(l!==0||c!==i-3-s.length())throw new Error("Encryption block is invalid.");return s.getBytes()}function Zx(t,e,r){typeof e=="function"&&(r=e,e={}),e=e||{};var n={algorithm:{name:e.algorithm||"PRIMEINC",options:{workers:e.workers||2,workLoad:e.workLoad||100,workerScript:e.workerScript}}};"prng"in e&&(n.prng=e.prng),i();function i(){s(t.pBits,function(a,c){if(a)return r(a);if(t.p=c,t.q!==null)return o(a,t.q);s(t.qBits,o)})}function s(a,c){$.prime.generateProbablePrime(a,n,c)}function o(a,c){if(a)return r(a);if(t.q=c,t.p.compareTo(t.q)<0){var u=t.p;t.p=t.q,t.q=u}if(t.p.subtract(ne.ONE).gcd(t.e).compareTo(ne.ONE)!==0){t.p=null,i();return}if(t.q.subtract(ne.ONE).gcd(t.e).compareTo(ne.ONE)!==0){t.q=null,s(t.qBits,o);return}if(t.p1=t.p.subtract(ne.ONE),t.q1=t.q.subtract(ne.ONE),t.phi=t.p1.multiply(t.q1),t.phi.gcd(t.e).compareTo(ne.ONE)!==0){t.p=t.q=null,i();return}if(t.n=t.p.multiply(t.q),t.n.bitLength()!==t.bits){t.q=null,s(t.qBits,o);return}var l=t.e.modInverse(t.phi);t.keys={privateKey:Y.rsa.setPrivateKey(t.n,t.e,l,t.p,t.q,l.mod(t.p1),l.mod(t.q1),t.q.modInverse(t.p)),publicKey:Y.rsa.setPublicKey(t.n,t.e)},r(null,t.keys)}}function Wt(t){var e=t.toString(16);e[0]>="8"&&(e="00"+e);var r=$.util.hexToBytes(e);return r.length>1&&(r.charCodeAt(0)===0&&!(r.charCodeAt(1)&128)||r.charCodeAt(0)===255&&(r.charCodeAt(1)&128)===128)?r.substr(1):r}function jx(t){return t<=100?27:t<=150?18:t<=200?15:t<=250?12:t<=300?9:t<=350?8:t<=400?7:t<=500?6:t<=600?5:t<=800?4:t<=1250?3:2}function m0(t){return $.util.isNodejs&&typeof za[t]=="function"}function g0(t){return typeof At.globalScope<"u"&&typeof At.globalScope.crypto=="object"&&typeof At.globalScope.crypto.subtle=="object"&&typeof At.globalScope.crypto.subtle[t]=="function"}function y0(t){return typeof At.globalScope<"u"&&typeof At.globalScope.msCrypto=="object"&&typeof At.globalScope.msCrypto.subtle=="object"&&typeof At.globalScope.msCrypto.subtle[t]=="function"}function x0(t){for(var e=$.util.hexToBytes(t.toString(16)),r=new Uint8Array(e.length),n=0;n<e.length;++n)r[n]=e.charCodeAt(n);return r}});var R0=V((I_,I0)=>{var M=he();ka();bi();Lf();Gr();hs();Of();Ff();Ei();Zf();Rs();Le();typeof v0>"u"&&(v0=M.jsbn.BigInteger);var v0,A=M.asn1,Q=M.pki=M.pki||{};I0.exports=Q.pbe=M.pbe=M.pbe||{};var Qr=Q.oids,Jx={name:"EncryptedPrivateKeyInfo",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},e1={name:"PBES2Algorithms",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},t1={name:"pkcs-12PbeParams",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,capture:"iterations"}]};Q.encryptPrivateKeyInfo=function(t,e,r){r=r||{},r.saltSize=r.saltSize||8,r.count=r.count||2048,r.algorithm=r.algorithm||"aes128",r.prfAlgorithm=r.prfAlgorithm||"sha1";var n=M.random.getBytesSync(r.saltSize),i=r.count,s=A.integerToDer(i),o,a,c;if(r.algorithm.indexOf("aes")===0||r.algorithm==="des"){var u,l,f;switch(r.algorithm){case"aes128":o=16,u=16,l=Qr["aes128-CBC"],f=M.aes.createEncryptionCipher;break;case"aes192":o=24,u=16,l=Qr["aes192-CBC"],f=M.aes.createEncryptionCipher;break;case"aes256":o=32,u=16,l=Qr["aes256-CBC"],f=M.aes.createEncryptionCipher;break;case"des":o=8,u=8,l=Qr.desCBC,f=M.des.createEncryptionCipher;break;default:var h=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw h.algorithm=r.algorithm,h}var p="hmacWith"+r.prfAlgorithm.toUpperCase(),d=A0(p),m=M.pkcs5.pbkdf2(e,n,i,o,d),g=M.random.getBytesSync(u),y=f(m);y.start(g),y.update(A.toDer(t)),y.finish(),c=y.output.getBytes();var x=r1(n,s,o,p);a=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(Qr.pkcs5PBES2).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(Qr.pkcs5PBKDF2).getBytes()),x]),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(l).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,g)])])])}else if(r.algorithm==="3des"){o=24;var b=new M.util.ByteBuffer(n),m=Q.pbe.generatePkcs12Key(e,b,1,i,o),g=Q.pbe.generatePkcs12Key(e,b,2,i,o),y=M.des.createEncryptionCipher(m);y.start(g),y.update(A.toDer(t)),y.finish(),c=y.output.getBytes(),a=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(Qr["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,n),A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,s.getBytes())])])}else{var h=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw h.algorithm=r.algorithm,h}var I=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[a,A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,c)]);return I};Q.decryptPrivateKeyInfo=function(t,e){var r=null,n={},i=[];if(!A.validate(t,Jx,n,i)){var s=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}var o=A.derToOid(n.encryptionOid),a=Q.pbe.getCipher(o,n.encryptionParams,e),c=M.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(r=A.fromDer(a.output)),r};Q.encryptedPrivateKeyToPem=function(t,e){var r={type:"ENCRYPTED PRIVATE KEY",body:A.toDer(t).getBytes()};return M.pem.encode(r,{maxline:e})};Q.encryptedPrivateKeyFromPem=function(t){var e=M.pem.decode(t)[0];if(e.type!=="ENCRYPTED PRIVATE KEY"){var r=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw r.headerType=e.type,r}if(e.procType&&e.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return A.fromDer(e.body)};Q.encryptRsaPrivateKey=function(t,e,r){if(r=r||{},!r.legacy){var n=Q.wrapRsaPrivateKey(Q.privateKeyToAsn1(t));return n=Q.encryptPrivateKeyInfo(n,e,r),Q.encryptedPrivateKeyToPem(n)}var i,s,o,a;switch(r.algorithm){case"aes128":i="AES-128-CBC",o=16,s=M.random.getBytesSync(16),a=M.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",o=24,s=M.random.getBytesSync(16),a=M.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",o=32,s=M.random.getBytesSync(16),a=M.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",o=24,s=M.random.getBytesSync(8),a=M.des.createEncryptionCipher;break;case"des":i="DES-CBC",o=8,s=M.random.getBytesSync(8),a=M.des.createEncryptionCipher;break;default:var c=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+r.algorithm+'".');throw c.algorithm=r.algorithm,c}var u=M.pbe.opensslDeriveBytes(e,s.substr(0,8),o),l=a(u);l.start(s),l.update(A.toDer(Q.privateKeyToAsn1(t))),l.finish();var f={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:M.util.bytesToHex(s).toUpperCase()},body:l.output.getBytes()};return M.pem.encode(f)};Q.decryptRsaPrivateKey=function(t,e){var r=null,n=M.pem.decode(t)[0];if(n.type!=="ENCRYPTED PRIVATE KEY"&&n.type!=="PRIVATE KEY"&&n.type!=="RSA PRIVATE KEY"){var i=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw i.headerType=i,i}if(n.procType&&n.procType.type==="ENCRYPTED"){var s,o;switch(n.dekInfo.algorithm){case"DES-CBC":s=8,o=M.des.createDecryptionCipher;break;case"DES-EDE3-CBC":s=24,o=M.des.createDecryptionCipher;break;case"AES-128-CBC":s=16,o=M.aes.createDecryptionCipher;break;case"AES-192-CBC":s=24,o=M.aes.createDecryptionCipher;break;case"AES-256-CBC":s=32,o=M.aes.createDecryptionCipher;break;case"RC2-40-CBC":s=5,o=function(f){return M.rc2.createDecryptionCipher(f,40)};break;case"RC2-64-CBC":s=8,o=function(f){return M.rc2.createDecryptionCipher(f,64)};break;case"RC2-128-CBC":s=16,o=function(f){return M.rc2.createDecryptionCipher(f,128)};break;default:var i=new Error('Could not decrypt private key; unsupported encryption algorithm "'+n.dekInfo.algorithm+'".');throw i.algorithm=n.dekInfo.algorithm,i}var a=M.util.hexToBytes(n.dekInfo.parameters),c=M.pbe.opensslDeriveBytes(e,a.substr(0,8),s),u=o(c);if(u.start(a),u.update(M.util.createBuffer(n.body)),u.finish())r=u.output.getBytes();else return r}else r=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?r=Q.decryptPrivateKeyInfo(A.fromDer(r),e):r=A.fromDer(r),r!==null&&(r=Q.privateKeyFromAsn1(r)),r};Q.pbe.generatePkcs12Key=function(t,e,r,n,i,s){var o,a;if(typeof s>"u"||s===null){if(!("sha1"in M.md))throw new Error('"sha1" hash algorithm unavailable.');s=M.md.sha1.create()}var c=s.digestLength,u=s.blockLength,l=new M.util.ByteBuffer,f=new M.util.ByteBuffer;if(t!=null){for(a=0;a<t.length;a++)f.putInt16(t.charCodeAt(a));f.putInt16(0)}var h=f.length(),p=e.length(),d=new M.util.ByteBuffer;d.fillWithByte(r,u);var m=u*Math.ceil(p/u),g=new M.util.ByteBuffer;for(a=0;a<m;a++)g.putByte(e.at(a%p));var y=u*Math.ceil(h/u),x=new M.util.ByteBuffer;for(a=0;a<y;a++)x.putByte(f.at(a%h));var b=g;b.putBuffer(x);for(var I=Math.ceil(i/c),v=1;v<=I;v++){var _=new M.util.ByteBuffer;_.putBytes(d.bytes()),_.putBytes(b.bytes());for(var P=0;P<n;P++)s.start(),s.update(_.getBytes()),_=s.digest();var D=new M.util.ByteBuffer;for(a=0;a<u;a++)D.putByte(_.at(a%c));var G=Math.ceil(p/u)+Math.ceil(h/u),W=new M.util.ByteBuffer;for(o=0;o<G;o++){var z=new M.util.ByteBuffer(b.getBytes(u)),ee=511;for(a=D.length()-1;a>=0;a--)ee=ee>>8,ee+=D.at(a)+z.at(a),z.setAt(a,ee&255);W.putBuffer(z)}b=W,l.putBuffer(_)}return l.truncate(l.length()-i),l};Q.pbe.getCipher=function(t,e,r){switch(t){case Q.oids.pkcs5PBES2:return Q.pbe.getCipherForPBES2(t,e,r);case Q.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case Q.oids["pbewithSHAAnd40BitRC2-CBC"]:return Q.pbe.getCipherForPKCS12PBE(t,e,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=t,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};Q.pbe.getCipherForPBES2=function(t,e,r){var n={},i=[];if(!A.validate(e,e1,n,i)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}if(t=A.derToOid(n.kdfOid),t!==Q.oids.pkcs5PBKDF2){var s=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw s.oid=t,s.supportedOids=["pkcs5PBKDF2"],s}if(t=A.derToOid(n.encOid),t!==Q.oids["aes128-CBC"]&&t!==Q.oids["aes192-CBC"]&&t!==Q.oids["aes256-CBC"]&&t!==Q.oids["des-EDE3-CBC"]&&t!==Q.oids.desCBC){var s=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw s.oid=t,s.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],s}var o=n.kdfSalt,a=M.util.createBuffer(n.kdfIterationCount);a=a.getInt(a.length()<<3);var c,u;switch(Q.oids[t]){case"aes128-CBC":c=16,u=M.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,u=M.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,u=M.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,u=M.des.createDecryptionCipher;break;case"desCBC":c=8,u=M.des.createDecryptionCipher;break}var l=S0(n.prfOid),f=M.pkcs5.pbkdf2(r,o,a,c,l),h=n.encIv,p=u(f);return p.start(h),p};Q.pbe.getCipherForPKCS12PBE=function(t,e,r){var n={},i=[];if(!A.validate(e,t1,n,i)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}var o=M.util.createBuffer(n.salt),a=M.util.createBuffer(n.iterations);a=a.getInt(a.length()<<3);var c,u,l;switch(t){case Q.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,l=M.des.startDecrypting;break;case Q.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,u=8,l=function(m,g){var y=M.rc2.createDecryptionCipher(m,40);return y.start(g,null),y};break;default:var s=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw s.oid=t,s}var f=S0(n.prfOid),h=Q.pbe.generatePkcs12Key(r,o,1,a,c,f);f.start();var p=Q.pbe.generatePkcs12Key(r,o,2,a,u,f);return l(h,p)};Q.pbe.opensslDeriveBytes=function(t,e,r,n){if(typeof n>"u"||n===null){if(!("md5"in M.md))throw new Error('"md5" hash algorithm unavailable.');n=M.md.md5.create()}e===null&&(e="");for(var i=[_0(n,t+e)],s=16,o=1;s<r;++o,s+=16)i.push(_0(n,i[o-1]+t+e));return i.join("").substr(0,r)};function _0(t,e){return t.start().update(e).digest().getBytes()}function S0(t){var e;if(!t)e="hmacWithSHA1";else if(e=Q.oids[A.derToOid(t)],!e){var r=new Error("Unsupported PRF OID.");throw r.oid=t,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}return A0(e)}function A0(t){var e=M.md;switch(t){case"hmacWithSHA224":e=M.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":t=t.substr(8).toLowerCase();break;default:var r=new Error("Unsupported PRF algorithm.");throw r.algorithm=t,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}if(!e||!(t in e))throw new Error("Unknown hash algorithm: "+t);return e[t].create()}function r1(t,e,r,n){var i=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,t),A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,e.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,M.util.hexToBytes(r.toString(16))),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(Q.oids[n]).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.NULL,!1,"")])),i}});var Vh=V((E4,qh)=>{var ge=he();Gr();Le();var Ni=qh.exports=ge.sha512=ge.sha512||{};ge.md.sha512=ge.md.algorithms.sha512=Ni;var Fh=ge.sha384=ge.sha512.sha384=ge.sha512.sha384||{};Fh.create=function(){return Ni.create("SHA-384")};ge.md.sha384=ge.md.algorithms.sha384=Fh;ge.sha512.sha256=ge.sha512.sha256||{create:function(){return Ni.create("SHA-512/256")}};ge.md["sha512/256"]=ge.md.algorithms["sha512/256"]=ge.sha512.sha256;ge.sha512.sha224=ge.sha512.sha224||{create:function(){return Ni.create("SHA-512/224")}};ge.md["sha512/224"]=ge.md.algorithms["sha512/224"]=ge.sha512.sha224;Ni.create=function(t){if(Kh||Ib(),typeof t>"u"&&(t="SHA-512"),!(t in an))throw new Error("Invalid SHA-512 algorithm: "+t);for(var e=an[t],r=null,n=ge.util.createBuffer(),i=new Array(80),s=0;s<80;++s)i[s]=new Array(2);var o=64;switch(t){case"SHA-384":o=48;break;case"SHA-512/256":o=32;break;case"SHA-512/224":o=28;break}var a={algorithm:t.replace("-","").toLowerCase(),blockLength:128,digestLength:o,messageLength:0,fullMessageLength:null,messageLengthSize:16};return a.start=function(){a.messageLength=0,a.fullMessageLength=a.messageLength128=[];for(var c=a.messageLengthSize/4,u=0;u<c;++u)a.fullMessageLength.push(0);n=ge.util.createBuffer(),r=new Array(e.length);for(var u=0;u<e.length;++u)r[u]=e[u].slice(0);return a},a.start(),a.update=function(c,u){u==="utf8"&&(c=ge.util.encodeUtf8(c));var l=c.length;a.messageLength+=l,l=[l/4294967296>>>0,l>>>0];for(var f=a.fullMessageLength.length-1;f>=0;--f)a.fullMessageLength[f]+=l[1],l[1]=l[0]+(a.fullMessageLength[f]/4294967296>>>0),a.fullMessageLength[f]=a.fullMessageLength[f]>>>0,l[0]=l[1]/4294967296>>>0;return n.putBytes(c),Uh(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=ge.util.createBuffer();c.putBytes(n.bytes());var u=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,l=u&a.blockLength-1;c.putBytes(jc.substr(0,a.blockLength-l));for(var f,h,p=a.fullMessageLength[0]*8,d=0;d<a.fullMessageLength.length-1;++d)f=a.fullMessageLength[d+1]*8,h=f/4294967296>>>0,p+=h,c.putInt32(p>>>0),p=f>>>0;c.putInt32(p);for(var m=new Array(r.length),d=0;d<r.length;++d)m[d]=r[d].slice(0);Uh(m,i,c);var g=ge.util.createBuffer(),y;t==="SHA-512"?y=m.length:t==="SHA-384"?y=m.length-2:y=m.length-4;for(var d=0;d<y;++d)g.putInt32(m[d][0]),(d!==y-1||t!=="SHA-512/224")&&g.putInt32(m[d][1]);return g},a};var jc=null,Kh=!1,Jc=null,an=null;function Ib(){jc="\x80",jc+=ge.util.fillString("\0",128),Jc=[[1116352408,3609767458],[1899447441,602891725],[3049323471,3964484399],[3921009573,2173295548],[961987163,4081628472],[1508970993,3053834265],[2453635748,2937671579],[2870763221,3664609560],[3624381080,2734883394],[310598401,1164996542],[607225278,1323610764],[1426881987,3590304994],[1925078388,4068182383],[2162078206,991336113],[2614888103,633803317],[3248222580,3479774868],[3835390401,2666613458],[4022224774,944711139],[264347078,2341262773],[604807628,2007800933],[770255983,1495990901],[1249150122,1856431235],[1555081692,3175218132],[1996064986,2198950837],[2554220882,3999719339],[2821834349,766784016],[2952996808,2566594879],[3210313671,3203337956],[3336571891,1034457026],[3584528711,2466948901],[113926993,3758326383],[338241895,168717936],[666307205,1188179964],[773529912,1546045734],[1294757372,1522805485],[1396182291,2643833823],[1695183700,2343527390],[1986661051,1014477480],[2177026350,1206759142],[2456956037,344077627],[2730485921,1290863460],[2820302411,3158454273],[3259730800,3505952657],[3345764771,106217008],[3516065817,3606008344],[3600352804,1432725776],[4094571909,1467031594],[275423344,851169720],[430227734,3100823752],[506948616,1363258195],[659060556,3750685593],[883997877,3785050280],[958139571,3318307427],[1322822218,3812723403],[1537002063,2003034995],[1747873779,3602036899],[1955562222,1575990012],[2024104815,1125592928],[2227730452,2716904306],[2361852424,442776044],[2428436474,593698344],[2756734187,3733110249],[3204031479,2999351573],[3329325298,3815920427],[3391569614,3928383900],[3515267271,566280711],[3940187606,3454069534],[4118630271,4000239992],[116418474,1914138554],[174292421,2731055270],[289380356,3203993006],[460393269,320620315],[685471733,587496836],[852142971,1086792851],[1017036298,365543100],[1126000580,2618297676],[1288033470,3409855158],[1501505948,4234509866],[1607167915,987167468],[1816402316,1246189591]],an={},an["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],an["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],an["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],an["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],Kh=!0}function Uh(t,e,r){for(var n,i,s,o,a,c,u,l,f,h,p,d,m,g,y,x,b,I,v,_,P,D,G,W,z,ee,fe,ze,T,k,L,N,R,U,q,H=r.length();H>=128;){for(T=0;T<16;++T)e[T][0]=r.getInt32()>>>0,e[T][1]=r.getInt32()>>>0;for(;T<80;++T)N=e[T-2],k=N[0],L=N[1],n=((k>>>19|L<<13)^(L>>>29|k<<3)^k>>>6)>>>0,i=((k<<13|L>>>19)^(L<<3|k>>>29)^(k<<26|L>>>6))>>>0,U=e[T-15],k=U[0],L=U[1],s=((k>>>1|L<<31)^(k>>>8|L<<24)^k>>>7)>>>0,o=((k<<31|L>>>1)^(k<<24|L>>>8)^(k<<25|L>>>7))>>>0,R=e[T-7],q=e[T-16],L=i+R[1]+o+q[1],e[T][0]=n+R[0]+s+q[0]+(L/4294967296>>>0)>>>0,e[T][1]=L>>>0;for(m=t[0][0],g=t[0][1],y=t[1][0],x=t[1][1],b=t[2][0],I=t[2][1],v=t[3][0],_=t[3][1],P=t[4][0],D=t[4][1],G=t[5][0],W=t[5][1],z=t[6][0],ee=t[6][1],fe=t[7][0],ze=t[7][1],T=0;T<80;++T)u=((P>>>14|D<<18)^(P>>>18|D<<14)^(D>>>9|P<<23))>>>0,l=((P<<18|D>>>14)^(P<<14|D>>>18)^(D<<23|P>>>9))>>>0,f=(z^P&(G^z))>>>0,h=(ee^D&(W^ee))>>>0,a=((m>>>28|g<<4)^(g>>>2|m<<30)^(g>>>7|m<<25))>>>0,c=((m<<4|g>>>28)^(g<<30|m>>>2)^(g<<25|m>>>7))>>>0,p=(m&y|b&(m^y))>>>0,d=(g&x|I&(g^x))>>>0,L=ze+l+h+Jc[T][1]+e[T][1],n=fe+u+f+Jc[T][0]+e[T][0]+(L/4294967296>>>0)>>>0,i=L>>>0,L=c+d,s=a+p+(L/4294967296>>>0)>>>0,o=L>>>0,fe=z,ze=ee,z=G,ee=W,G=P,W=D,L=_+i,P=v+n+(L/4294967296>>>0)>>>0,D=L>>>0,v=b,_=I,b=y,I=x,y=m,x=g,L=i+o,m=n+s+(L/4294967296>>>0)>>>0,g=L>>>0;L=t[0][1]+g,t[0][0]=t[0][0]+m+(L/4294967296>>>0)>>>0,t[0][1]=L>>>0,L=t[1][1]+x,t[1][0]=t[1][0]+y+(L/4294967296>>>0)>>>0,t[1][1]=L>>>0,L=t[2][1]+I,t[2][0]=t[2][0]+b+(L/4294967296>>>0)>>>0,t[2][1]=L>>>0,L=t[3][1]+_,t[3][0]=t[3][0]+v+(L/4294967296>>>0)>>>0,t[3][1]=L>>>0,L=t[4][1]+D,t[4][0]=t[4][0]+P+(L/4294967296>>>0)>>>0,t[4][1]=L>>>0,L=t[5][1]+W,t[5][0]=t[5][0]+G+(L/4294967296>>>0)>>>0,t[5][1]=L>>>0,L=t[6][1]+ee,t[6][0]=t[6][0]+z+(L/4294967296>>>0)>>>0,t[6][1]=L>>>0,L=t[7][1]+ze,t[7][0]=t[7][0]+fe+(L/4294967296>>>0)>>>0,t[7][1]=L>>>0,H-=128}}});var hu=V((O8,md)=>{var Gn=1e3,Wn=Gn*60,Yn=Wn*60,ln=Yn*24,Jb=ln*7,ew=ln*365.25;md.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return tw(t);if(r==="number"&&isFinite(t))return e.long?nw(t):rw(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function tw(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*ew;case"weeks":case"week":case"w":return r*Jb;case"days":case"day":case"d":return r*ln;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Yn;case"minutes":case"minute":case"mins":case"min":case"m":return r*Wn;case"seconds":case"second":case"secs":case"sec":case"s":return r*Gn;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function rw(t){var e=Math.abs(t);return e>=ln?Math.round(t/ln)+"d":e>=Yn?Math.round(t/Yn)+"h":e>=Wn?Math.round(t/Wn)+"m":e>=Gn?Math.round(t/Gn)+"s":t+"ms"}function nw(t){var e=Math.abs(t);return e>=ln?eo(t,e,ln,"day"):e>=Yn?eo(t,e,Yn,"hour"):e>=Wn?eo(t,e,Wn,"minute"):e>=Gn?eo(t,e,Gn,"second"):t+" ms"}function eo(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}});var yd=V((M8,gd)=>{function iw(t){r.debug=r,r.default=r,r.coerce=c,r.disable=s,r.enable=i,r.enabled=o,r.humanize=hu(),r.destroy=u,Object.keys(t).forEach(l=>{r[l]=t[l]}),r.names=[],r.skips=[],r.formatters={};function e(l){let f=0;for(let h=0;h<l.length;h++)f=(f<<5)-f+l.charCodeAt(h),f|=0;return r.colors[Math.abs(f)%r.colors.length]}r.selectColor=e;function r(l){let f,h=null,p,d;function m(...g){if(!m.enabled)return;let y=m,x=Number(new Date),b=x-(f||x);y.diff=b,y.prev=f,y.curr=x,f=x,g[0]=r.coerce(g[0]),typeof g[0]!="string"&&g.unshift("%O");let I=0;g[0]=g[0].replace(/%([a-zA-Z%])/g,(_,P)=>{if(_==="%%")return"%";I++;let D=r.formatters[P];if(typeof D=="function"){let G=g[I];_=D.call(y,G),g.splice(I,1),I--}return _}),r.formatArgs.call(y,g),(y.log||r.log).apply(y,g)}return m.namespace=l,m.useColors=r.useColors(),m.color=r.selectColor(l),m.extend=n,m.destroy=r.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>h!==null?h:(p!==r.namespaces&&(p=r.namespaces,d=r.enabled(l)),d),set:g=>{h=g}}),typeof r.init=="function"&&r.init(m),m}function n(l,f){let h=r(this.namespace+(typeof f>"u"?":":f)+l);return h.log=this.log,h}function i(l){r.save(l),r.namespaces=l,r.names=[],r.skips=[];let f,h=(typeof l=="string"?l:"").split(/[\s,]+/),p=h.length;for(f=0;f<p;f++)h[f]&&(l=h[f].replace(/\*/g,".*?"),l[0]==="-"?r.skips.push(new RegExp("^"+l.slice(1)+"$")):r.names.push(new RegExp("^"+l+"$")))}function s(){let l=[...r.names.map(a),...r.skips.map(a).map(f=>"-"+f)].join(",");return r.enable(""),l}function o(l){if(l[l.length-1]==="*")return!0;let f,h;for(f=0,h=r.skips.length;f<h;f++)if(r.skips[f].test(l))return!1;for(f=0,h=r.names.length;f<h;f++)if(r.names[f].test(l))return!0;return!1}function a(l){return l.toString().substring(2,l.toString().length-2).replace(/\.\*\?$/,"*")}function c(l){return l instanceof Error?l.stack||l.message:l}function u(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}gd.exports=iw});var du=V((bt,to)=>{bt.formatArgs=ow;bt.save=aw;bt.load=cw;bt.useColors=sw;bt.storage=uw();bt.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();bt.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function sw(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function ow(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+to.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),t.splice(n,0,e)}bt.log=console.debug||console.log||(()=>{});function aw(t){try{t?bt.storage.setItem("debug",t):bt.storage.removeItem("debug")}catch{}}function cw(){let t;try{t=bt.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function uw(){try{return localStorage}catch{}}to.exports=yd()(bt);var{formatters:lw}=to.exports;lw.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Qd=V((i3,Ou)=>{"use strict";var Gw=Object.prototype.hasOwnProperty,ot="~";function Wi(){}Object.create&&(Wi.prototype=Object.create(null),new Wi().__proto__||(ot=!1));function Ww(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function Yd(t,e,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var s=new Ww(r,n||t,i),o=ot?ot+e:e;return t._events[o]?t._events[o].fn?t._events[o]=[t._events[o],s]:t._events[o].push(s):(t._events[o]=s,t._eventsCount++),t}function mo(t,e){--t._eventsCount===0?t._events=new Wi:delete t._events[e]}function nt(){this._events=new Wi,this._eventsCount=0}nt.prototype.eventNames=function(){var e=[],r,n;if(this._eventsCount===0)return e;for(n in r=this._events)Gw.call(r,n)&&e.push(ot?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(r)):e};nt.prototype.listeners=function(e){var r=ot?ot+e:e,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,s=n.length,o=new Array(s);i<s;i++)o[i]=n[i].fn;return o};nt.prototype.listenerCount=function(e){var r=ot?ot+e:e,n=this._events[r];return n?n.fn?1:n.length:0};nt.prototype.emit=function(e,r,n,i,s,o){var a=ot?ot+e:e;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,l,f;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,r),!0;case 3:return c.fn.call(c.context,r,n),!0;case 4:return c.fn.call(c.context,r,n,i),!0;case 5:return c.fn.call(c.context,r,n,i,s),!0;case 6:return c.fn.call(c.context,r,n,i,s,o),!0}for(f=1,l=new Array(u-1);f<u;f++)l[f-1]=arguments[f];c.fn.apply(c.context,l)}else{var h=c.length,p;for(f=0;f<h;f++)switch(c[f].once&&this.removeListener(e,c[f].fn,void 0,!0),u){case 1:c[f].fn.call(c[f].context);break;case 2:c[f].fn.call(c[f].context,r);break;case 3:c[f].fn.call(c[f].context,r,n);break;case 4:c[f].fn.call(c[f].context,r,n,i);break;default:if(!l)for(p=1,l=new Array(u-1);p<u;p++)l[p-1]=arguments[p];c[f].fn.apply(c[f].context,l)}}return!0};nt.prototype.on=function(e,r,n){return Yd(this,e,r,n,!1)};nt.prototype.once=function(e,r,n){return Yd(this,e,r,n,!0)};nt.prototype.removeListener=function(e,r,n,i){var s=ot?ot+e:e;if(!this._events[s])return this;if(!r)return mo(this,s),this;var o=this._events[s];if(o.fn)o.fn===r&&(!i||o.once)&&(!n||o.context===n)&&mo(this,s);else{for(var a=0,c=[],u=o.length;a<u;a++)(o[a].fn!==r||i&&!o[a].once||n&&o[a].context!==n)&&c.push(o[a]);c.length?this._events[s]=c.length===1?c[0]:c:mo(this,s)}return this};nt.prototype.removeAllListeners=function(e){var r;return e?(r=ot?ot+e:e,this._events[r]&&mo(this,r)):(this._events=new Wi,this._eventsCount=0),this};nt.prototype.off=nt.prototype.removeListener;nt.prototype.addListener=nt.prototype.on;nt.prefixed=ot;nt.EventEmitter=nt;typeof Ou<"u"&&(Ou.exports=nt)});var al=V((SB,yp)=>{"use strict";function gp(t,e){for(let r in e)Object.defineProperty(t,r,{value:e[r],enumerable:!0,configurable:!0});return t}function lE(t,e,r){if(!t||typeof t=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof e=="object"&&(r=e,e=""),e&&(r.code=e);try{return gp(t,r)}catch{r.message=t.message,r.stack=t.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(t)),gp(new i,r)}}yp.exports=lE});var vp=V(es=>{(function(){var t,e,r,n,i,s,o,a;a=function(c){var u,l,f,h;return u=(c&255<<24)>>>24,l=(c&255<<16)>>>16,f=(c&65280)>>>8,h=c&255,[u,l,f,h].join(".")},o=function(c){var u,l,f,h,p,d;for(u=[],f=h=0;h<=3&&c.length!==0;f=++h){if(f>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}d=e(c),p=d[0],l=d[1],c=c.substring(l),u.push(p)}if(c.length!==0)throw new Error("Invalid IP");switch(u.length){case 1:if(u[0]>4294967295)throw new Error("Invalid IP");return u[0]>>>0;case 2:if(u[0]>255||u[1]>16777215)throw new Error("Invalid IP");return(u[0]<<24|u[1])>>>0;case 3:if(u[0]>255||u[1]>255||u[2]>65535)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2])>>>0;case 4:if(u[0]>255||u[1]>255||u[2]>255||u[3]>255)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2]<<8|u[3])>>>0;default:throw new Error("Invalid IP")}},r=function(c){return c.charCodeAt(0)},n=r("0"),s=r("a"),i=r("A"),e=function(c){var u,l,f,h,p;for(h=0,u=10,l="9",f=0,c.length>1&&c[f]==="0"&&(c[f+1]==="x"||c[f+1]==="X"?(f+=2,u=16):"0"<=c[f+1]&&c[f+1]<="9"&&(f++,u=8,l="7")),p=f;f<c.length;){if("0"<=c[f]&&c[f]<=l)h=h*u+(r(c[f])-n)>>>0;else if(u===16)if("a"<=c[f]&&c[f]<="f")h=h*u+(10+r(c[f])-s)>>>0;else if("A"<=c[f]&&c[f]<="F")h=h*u+(10+r(c[f])-i)>>>0;else break;else break;if(h>4294967295)throw new Error("too large");f++}if(f===p)throw new Error("empty octet");return[h,f]},t=function(){function c(u,l){var f,h,p,d;if(typeof u!="string")throw new Error("Missing `net' parameter");if(l||(d=u.split("/",2),u=d[0],l=d[1]),l||(l=32),typeof l=="string"&&l.indexOf(".")>-1){try{this.maskLong=o(l)}catch(m){throw f=m,new Error("Invalid mask: "+l)}for(h=p=32;p>=0;h=--p)if(this.maskLong===4294967295<<32-h>>>0){this.bitmask=h;break}}else if(l||l===0)this.bitmask=parseInt(l,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(o(u)&this.maskLong)>>>0}catch(m){throw f=m,new Error("Invalid net address: "+u)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+l);this.size=Math.pow(2,32-this.bitmask),this.base=a(this.netLong),this.mask=a(this.maskLong),this.hostmask=a(~this.maskLong),this.first=this.bitmask<=30?a(this.netLong+1):this.base,this.last=this.bitmask<=30?a(this.netLong+this.size-2):a(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?a(this.netLong+this.size-1):void 0}return c.prototype.contains=function(u){return typeof u=="string"&&(u.indexOf("/")>0||u.split(".").length!==4)&&(u=new c(u)),u instanceof c?this.contains(u.base)&&this.contains(u.broadcast||u.last):(o(u)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(u){return u==null&&(u=1),new c(a(this.netLong+this.size*u),this.mask)},c.prototype.forEach=function(u){var l,f,h;for(h=o(this.first),f=o(this.last),l=0;h<=f;)u(a(h),h,l),l++,h++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),es.ip2long=o,es.long2ip=a,es.Netmask=t}).call(es)});var Ip=V((Ap,Mo)=>{(function(t){"use strict";let e="(0?\\d+|0x[a-f0-9]+)",r={fourOctet:new RegExp(`^${e}\\.${e}\\.${e}\\.${e}$`,"i"),threeOctet:new RegExp(`^${e}\\.${e}\\.${e}$`,"i"),twoOctet:new RegExp(`^${e}\\.${e}$`,"i"),longValue:new RegExp(`^${e}$`,"i")},n=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),s="%[0-9a-z]{1,}",o="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(s,"i"),native:new RegExp(`^(::)?(${o})?([0-9a-f]+)?(::)?(${s})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${e}\\.${e}\\.${e}\\.${e}(${s})?)$`,"i"),transitional:new RegExp(`^((?:${o})|(?:::)(?:${o})?)${e}\\.${e}\\.${e}\\.${e}(${s})?$`,"i")};function c(p,d){if(p.indexOf("::")!==p.lastIndexOf("::"))return null;let m=0,g=-1,y=(p.match(a.zoneIndex)||[])[0],x,b;for(y&&(y=y.substring(1),p=p.replace(/%.+$/,""));(g=p.indexOf(":",g+1))>=0;)m++;if(p.substr(0,2)==="::"&&m--,p.substr(-2,2)==="::"&&m--,m>d)return null;for(b=d-m,x=":";b--;)x+="0:";return p=p.replace("::",x),p[0]===":"&&(p=p.slice(1)),p[p.length-1]===":"&&(p=p.slice(0,-1)),d=function(){let I=p.split(":"),v=[];for(let _=0;_<I.length;_++)v.push(parseInt(I[_],16));return v}(),{parts:d,zoneId:y}}function u(p,d,m,g){if(p.length!==d.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let y=0,x;for(;g>0;){if(x=m-g,x<0&&(x=0),p[y]>>x!==d[y]>>x)return!1;g-=m,y+=1}return!0}function l(p){if(i.test(p))return parseInt(p,16);if(p[0]==="0"&&!isNaN(parseInt(p[1],10))){if(n.test(p))return parseInt(p,8);throw new Error(`ipaddr: cannot parse ${p} as octal`)}return parseInt(p,10)}function f(p,d){for(;p.length<d;)p=`0${p}`;return p}let h={};h.IPv4=function(){function p(d){if(d.length!==4)throw new Error("ipaddr: ipv4 octet count should be 4");let m,g;for(m=0;m<d.length;m++)if(g=d[m],!(0<=g&&g<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=d}return p.prototype.SpecialRanges={unspecified:[[new p([0,0,0,0]),8]],broadcast:[[new p([255,255,255,255]),32]],multicast:[[new p([224,0,0,0]),4]],linkLocal:[[new p([169,254,0,0]),16]],loopback:[[new p([127,0,0,0]),8]],carrierGradeNat:[[new p([100,64,0,0]),10]],private:[[new p([10,0,0,0]),8],[new p([172,16,0,0]),12],[new p([192,168,0,0]),16]],reserved:[[new p([192,0,0,0]),24],[new p([192,0,2,0]),24],[new p([192,88,99,0]),24],[new p([198,18,0,0]),15],[new p([198,51,100,0]),24],[new p([203,0,113,0]),24],[new p([240,0,0,0]),4]]},p.prototype.kind=function(){return"ipv4"},p.prototype.match=function(d,m){let g;if(m===void 0&&(g=d,d=g[0],m=g[1]),d.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,d.octets,8,m)},p.prototype.prefixLengthFromSubnetMask=function(){let d=0,m=!1,g={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},y,x,b;for(y=3;y>=0;y-=1)if(x=this.octets[y],x in g){if(b=g[x],m&&b!==0)return null;b!==8&&(m=!0),d+=b}else return null;return 32-d},p.prototype.range=function(){return h.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){return this.octets.slice(0)},p.prototype.toIPv4MappedAddress=function(){return h.IPv6.parse(`::ffff:${this.toString()}`)},p.prototype.toNormalizedString=function(){return this.toString()},p.prototype.toString=function(){return this.octets.join(".")},p}(),h.IPv4.broadcastAddressFromCIDR=function(p){try{let d=this.parseCIDR(p),m=d[0].toByteArray(),g=this.subnetMaskFromPrefixLength(d[1]).toByteArray(),y=[],x=0;for(;x<4;)y.push(parseInt(m[x],10)|parseInt(g[x],10)^255),x++;return new this(y)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},h.IPv4.isIPv4=function(p){return this.parser(p)!==null},h.IPv4.isValid=function(p){try{return new this(this.parser(p)),!0}catch{return!1}},h.IPv4.isValidFourPartDecimal=function(p){return!!(h.IPv4.isValid(p)&&p.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},h.IPv4.networkAddressFromCIDR=function(p){let d,m,g,y,x;try{for(d=this.parseCIDR(p),g=d[0].toByteArray(),x=this.subnetMaskFromPrefixLength(d[1]).toByteArray(),y=[],m=0;m<4;)y.push(parseInt(g[m],10)&parseInt(x[m],10)),m++;return new this(y)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},h.IPv4.parse=function(p){let d=this.parser(p);if(d===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(d)},h.IPv4.parseCIDR=function(p){let d;if(d=p.match(/^(.+)\/(\d+)$/)){let m=parseInt(d[2]);if(m>=0&&m<=32){let g=[this.parse(d[1]),m];return Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},h.IPv4.parser=function(p){let d,m,g;if(d=p.match(r.fourOctet))return function(){let y=d.slice(1,6),x=[];for(let b=0;b<y.length;b++)m=y[b],x.push(l(m));return x}();if(d=p.match(r.longValue)){if(g=l(d[1]),g>4294967295||g<0)throw new Error("ipaddr: address outside defined range");return function(){let y=[],x;for(x=0;x<=24;x+=8)y.push(g>>x&255);return y}().reverse()}else return(d=p.match(r.twoOctet))?function(){let y=d.slice(1,4),x=[];if(g=l(y[1]),g>16777215||g<0)throw new Error("ipaddr: address outside defined range");return x.push(l(y[0])),x.push(g>>16&255),x.push(g>>8&255),x.push(g&255),x}():(d=p.match(r.threeOctet))?function(){let y=d.slice(1,5),x=[];if(g=l(y[2]),g>65535||g<0)throw new Error("ipaddr: address outside defined range");return x.push(l(y[0])),x.push(l(y[1])),x.push(g>>8&255),x.push(g&255),x}():null},h.IPv4.subnetMaskFromPrefixLength=function(p){if(p=parseInt(p),p<0||p>32)throw new Error("ipaddr: invalid IPv4 prefix length");let d=[0,0,0,0],m=0,g=Math.floor(p/8);for(;m<g;)d[m]=255,m++;return g<4&&(d[g]=Math.pow(2,p%8)-1<<8-p%8),new this(d)},h.IPv6=function(){function p(d,m){let g,y;if(d.length===16)for(this.parts=[],g=0;g<=14;g+=2)this.parts.push(d[g]<<8|d[g+1]);else if(d.length===8)this.parts=d;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(g=0;g<this.parts.length;g++)if(y=this.parts[g],!(0<=y&&y<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");m&&(this.zoneId=m)}return p.prototype.SpecialRanges={unspecified:[new p([0,0,0,0,0,0,0,0]),128],linkLocal:[new p([65152,0,0,0,0,0,0,0]),10],multicast:[new p([65280,0,0,0,0,0,0,0]),8],loopback:[new p([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new p([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new p([0,0,0,0,0,65535,0,0]),96],rfc6145:[new p([0,0,0,0,65535,0,0,0]),96],rfc6052:[new p([100,65435,0,0,0,0,0,0]),96],"6to4":[new p([8194,0,0,0,0,0,0,0]),16],teredo:[new p([8193,0,0,0,0,0,0,0]),32],reserved:[[new p([8193,3512,0,0,0,0,0,0]),32]],benchmarking:[new p([8193,2,0,0,0,0,0,0]),48],amt:[new p([8193,3,0,0,0,0,0,0]),32],as112v6:[new p([8193,4,274,0,0,0,0,0]),48],deprecated:[new p([8193,16,0,0,0,0,0,0]),28],orchid2:[new p([8193,32,0,0,0,0,0,0]),28]},p.prototype.isIPv4MappedAddress=function(){return this.range()==="ipv4Mapped"},p.prototype.kind=function(){return"ipv6"},p.prototype.match=function(d,m){let g;if(m===void 0&&(g=d,d=g[0],m=g[1]),d.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,d.parts,16,m)},p.prototype.prefixLengthFromSubnetMask=function(){let d=0,m=!1,g={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},y,x;for(let b=7;b>=0;b-=1)if(y=this.parts[b],y in g){if(x=g[y],m&&x!==0)return null;x!==16&&(m=!0),d+=x}else return null;return 128-d},p.prototype.range=function(){return h.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){let d,m=[],g=this.parts;for(let y=0;y<g.length;y++)d=g[y],m.push(d>>8),m.push(d&255);return m},p.prototype.toFixedLengthString=function(){let d=function(){let g=[];for(let y=0;y<this.parts.length;y++)g.push(f(this.parts[y].toString(16),4));return g}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),d+m},p.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");let d=this.parts.slice(-2),m=d[0],g=d[1];return new h.IPv4([m>>8,m&255,g>>8,g&255])},p.prototype.toNormalizedString=function(){let d=function(){let g=[];for(let y=0;y<this.parts.length;y++)g.push(this.parts[y].toString(16));return g}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),d+m},p.prototype.toRFC5952String=function(){let d=/((^|:)(0(:|$)){2,})/g,m=this.toNormalizedString(),g=0,y=-1,x;for(;x=d.exec(m);)x[0].length>y&&(g=x.index,y=x[0].length);return y<0?m:`${m.substring(0,g)}::${m.substring(g+y)}`},p.prototype.toString=function(){return this.toRFC5952String()},p}(),h.IPv6.broadcastAddressFromCIDR=function(p){try{let d=this.parseCIDR(p),m=d[0].toByteArray(),g=this.subnetMaskFromPrefixLength(d[1]).toByteArray(),y=[],x=0;for(;x<16;)y.push(parseInt(m[x],10)|parseInt(g[x],10)^255),x++;return new this(y)}catch(d){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${d})`)}},h.IPv6.isIPv6=function(p){return this.parser(p)!==null},h.IPv6.isValid=function(p){if(typeof p=="string"&&p.indexOf(":")===-1)return!1;try{let d=this.parser(p);return new this(d.parts,d.zoneId),!0}catch{return!1}},h.IPv6.networkAddressFromCIDR=function(p){let d,m,g,y,x;try{for(d=this.parseCIDR(p),g=d[0].toByteArray(),x=this.subnetMaskFromPrefixLength(d[1]).toByteArray(),y=[],m=0;m<16;)y.push(parseInt(g[m],10)&parseInt(x[m],10)),m++;return new this(y)}catch(b){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${b})`)}},h.IPv6.parse=function(p){let d=this.parser(p);if(d.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(d.parts,d.zoneId)},h.IPv6.parseCIDR=function(p){let d,m,g;if((m=p.match(/^(.+)\/(\d+)$/))&&(d=parseInt(m[2]),d>=0&&d<=128))return g=[this.parse(m[1]),d],Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},h.IPv6.parser=function(p){let d,m,g,y,x,b;if(g=p.match(a.deprecatedTransitional))return this.parser(`::ffff:${g[1]}`);if(a.native.test(p))return c(p,8);if((g=p.match(a.transitional))&&(b=g[6]||"",d=c(g[1].slice(0,-1)+b,6),d.parts)){for(x=[parseInt(g[2]),parseInt(g[3]),parseInt(g[4]),parseInt(g[5])],m=0;m<x.length;m++)if(y=x[m],!(0<=y&&y<=255))return null;return d.parts.push(x[0]<<8|x[1]),d.parts.push(x[2]<<8|x[3]),{parts:d.parts,zoneId:d.zoneId}}return null},h.IPv6.subnetMaskFromPrefixLength=function(p){if(p=parseInt(p),p<0||p>128)throw new Error("ipaddr: invalid IPv6 prefix length");let d=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],m=0,g=Math.floor(p/8);for(;m<g;)d[m]=255,m++;return g<16&&(d[g]=Math.pow(2,p%8)-1<<8-p%8),new this(d)},h.fromByteArray=function(p){let d=p.length;if(d===4)return new h.IPv4(p);if(d===16)return new h.IPv6(p);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},h.isValid=function(p){return h.IPv6.isValid(p)||h.IPv4.isValid(p)},h.parse=function(p){if(h.IPv6.isValid(p))return h.IPv6.parse(p);if(h.IPv4.isValid(p))return h.IPv4.parse(p);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},h.parseCIDR=function(p){try{return h.IPv6.parseCIDR(p)}catch{try{return h.IPv4.parseCIDR(p)}catch{throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},h.process=function(p){let d=this.parse(p);return d.kind()==="ipv6"&&d.isIPv4MappedAddress()?d.toIPv4Address():d},h.subnetMatch=function(p,d,m){let g,y,x,b;m==null&&(m="unicast");for(y in d)if(Object.prototype.hasOwnProperty.call(d,y)){for(x=d[y],x[0]&&!(x[0]instanceof Array)&&(x=[x]),g=0;g<x.length;g++)if(b=x[g],p.kind()===b[0].kind()&&p.match.apply(p,b))return y}return m},typeof Mo<"u"&&Mo.exports?Mo.exports=h:t.ipaddr=h})(Ap)});var $p=V((w6,Vp)=>{"use strict";Vp.exports=qp;var LE=hu(),Vr=qp.prototype,PE=new Date%1e9;function DE(){return(Math.random()*1e9>>>0)+PE++}function qp(t){t=t||{},this.id=t.id||DE(),this.max=t.max||1/0,this.items=t.items||[],this._lookup={},this.size=this.items.length,this.lastModified=new Date(t.lastModified||new Date);for(var e,r,n=this.items.length;n--;)e=this.items[n],r=new Date(e.expires)-new Date,this._lookup[e.key]=e,r>0?this.expire(e.key,r):r<=0&&this.delete(e.key)}Vr.has=function(t){return t in this._lookup};Vr.get=function(t){if(!this.has(t))return null;var e=this._lookup[t];return e.refresh&&this.expire(t,e.refresh),this.items.splice(this.items.indexOf(e),1),this.items.push(e),e.value};Vr.meta=function(t){if(!this.has(t))return null;var e=this._lookup[t];return"meta"in e?e.meta:null};Vr.set=function(t,e,r){var n=this._lookup[t],i=this._lookup[t]={key:t,value:e};return this.lastModified=new Date,n?(clearTimeout(n.timeout),this.items.splice(this.items.indexOf(n),1,i)):(this.size>=this.max&&this.delete(this.items[0].key),this.items.push(i),this.size++),r&&("ttl"in r&&this.expire(t,r.ttl),"meta"in r&&(i.meta=r.meta),r.refresh&&(i.refresh=r.ttl)),this};Vr.delete=function(t){var e=this._lookup[t];return e?(this.lastModified=new Date,this.items.splice(this.items.indexOf(e),1),clearTimeout(e.timeout),delete this._lookup[t],this.size--,this):!1};Vr.expire=function(t,e){var r=e||0,n=this._lookup[t];if(!n)return this;if(typeof r=="string"&&(r=LE(e)),typeof r!="number")throw new TypeError("Expiration time must be a string or number.");return clearTimeout(n.timeout),n.timeout=setTimeout(this.delete.bind(this,n.key),r),n.expires=Number(new Date)+r,this};Vr.clear=function(){for(var t=this.items.length;t--;)this.delete(this.items[t].key);return this};Vr.toJSON=function(){for(var t=new Array(this.items.length),e,r=t.length;r--;)e=this.items[r],t[r]={key:e.key,meta:e.meta,value:e.value,expires:e.expires,refresh:e.refresh};return{id:this.id,max:isFinite(this.max)?this.max:void 0,lastModified:this.lastModified,items:t}}});var Yp=V((R6,Wp)=>{"use strict";Wp.exports=t=>{if(Object.prototype.toString.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.prototype}});var em=V((jp,Jp)=>{"use strict";var Ho=Yp(),{hasOwnProperty:Xp}=Object.prototype,{propertyIsEnumerable:OE}=Object,ai=(t,e,r)=>Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0}),ME=jp,Qp={concatArrays:!1,ignoreUndefined:!1},Go=t=>{let e=[];for(let r in t)Xp.call(t,r)&&e.push(r);if(Object.getOwnPropertySymbols){let r=Object.getOwnPropertySymbols(t);for(let n of r)OE.call(t,n)&&e.push(n)}return e};function ci(t){return Array.isArray(t)?UE(t):Ho(t)?FE(t):t}function UE(t){let e=t.slice(0,0);return Go(t).forEach(r=>{ai(e,r,ci(t[r]))}),e}function FE(t){let e=Object.getPrototypeOf(t)===null?Object.create(null):{};return Go(t).forEach(r=>{ai(e,r,ci(t[r]))}),e}var Zp=(t,e,r,n)=>(r.forEach(i=>{typeof e[i]>"u"&&n.ignoreUndefined||(i in t&&t[i]!==Object.getPrototypeOf(t)?ai(t,i,vl(t[i],e[i],n)):ai(t,i,ci(e[i])))}),t),KE=(t,e,r)=>{let n=t.slice(0,0),i=0;return[t,e].forEach(s=>{let o=[];for(let a=0;a<s.length;a++)Xp.call(s,a)&&(o.push(String(a)),s===t?ai(n,i++,s[a]):ai(n,i++,ci(s[a])));n=Zp(n,s,Go(s).filter(a=>!o.includes(a)),r)}),n};function vl(t,e,r){return r.concatArrays&&Array.isArray(t)&&Array.isArray(e)?KE(t,e,r):!Ho(e)||!Ho(t)?ci(e):Zp(t,e,Go(e),r)}Jp.exports=function(...t){let e=vl(ci(Qp),this!==ME&&this||{},Qp),r={_:{}};for(let n of t)if(n!==void 0){if(!Ho(n))throw new TypeError("`"+n+"` is not an Option Object");r=vl(r,{_:n},e)}return r._}});var is=V((M6,nm)=>{nm.exports=class{constructor(e={}){this.points=e.points,this.duration=e.duration,this.blockDuration=e.blockDuration,this.execEvenly=e.execEvenly,this.execEvenlyMinDelayMs=e.execEvenlyMinDelayMs,this.keyPrefix=e.keyPrefix}get points(){return this._points}set points(e){this._points=e>=0?e:4}get duration(){return this._duration}set duration(e){this._duration=typeof e>"u"?1:e}get msDuration(){return this.duration*1e3}get blockDuration(){return this._blockDuration}set blockDuration(e){this._blockDuration=typeof e>"u"?0:e}get msBlockDuration(){return this.blockDuration*1e3}get execEvenly(){return this._execEvenly}set execEvenly(e){this._execEvenly=typeof e>"u"?!1:!!e}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(e){this._execEvenlyMinDelayMs=typeof e>"u"?Math.ceil(this.msDuration/this.points):e}get keyPrefix(){return this._keyPrefix}set keyPrefix(e){if(typeof e>"u"&&(e="rlflx"),typeof e!="string")throw new Error("keyPrefix must be string");this._keyPrefix=e}_getKeySecDuration(e={}){return e&&e.customDuration>=0?e.customDuration:this.duration}getKey(e){return this.keyPrefix.length>0?`${this.keyPrefix}:${e}`:e}parseKey(e){return e.substring(this.keyPrefix.length)}consume(){throw new Error("You have to implement the method 'consume'!")}penalty(){throw new Error("You have to implement the method 'penalty'!")}reward(){throw new Error("You have to implement the method 'reward'!")}get(){throw new Error("You have to implement the method 'get'!")}set(){throw new Error("You have to implement the method 'set'!")}block(){throw new Error("You have to implement the method 'block'!")}delete(){throw new Error("You have to implement the method 'delete'!")}}});var sm=V((F6,im)=>{im.exports=class{constructor(){this._keys={},this._addedKeysAmount=0}collectExpired(){let e=Date.now();Object.keys(this._keys).forEach(r=>{this._keys[r]<=e&&delete this._keys[r]}),this._addedKeysAmount=Object.keys(this._keys).length}add(e,r){this.addMs(e,r*1e3)}addMs(e,r){this._keys[e]=Date.now()+r,this._addedKeysAmount++,this._addedKeysAmount>999&&this.collectExpired()}msBeforeExpire(e){let r=this._keys[e];if(r&&r>=Date.now()){this.collectExpired();let n=Date.now();return r>=n?r-n:0}return 0}delete(e){e?delete this._keys[e]:Object.keys(this._keys).forEach(r=>{delete this._keys[r]})}}});var am=V((K6,om)=>{var VE=sm();om.exports=VE});var _t=V((V6,cm)=>{cm.exports=class{constructor(e,r,n,i){this.remainingPoints=typeof e>"u"?0:e,this.msBeforeNext=typeof r>"u"?0:r,this.consumedPoints=typeof n>"u"?0:n,this.isFirstInDuration=typeof i>"u"?!1:i}get msBeforeNext(){return this._msBeforeNext}set msBeforeNext(e){return this._msBeforeNext=e,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(e){return this._remainingPoints=e,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(e){return this._consumedPoints=e,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(e){this._isFirstInDuration=!!e}_getDecoratedProperties(){return{remainingPoints:this.remainingPoints,msBeforeNext:this.msBeforeNext,consumedPoints:this.consumedPoints,isFirstInDuration:this.isFirstInDuration}}[Symbol.for("nodejs.util.inspect.custom")](){return this._getDecoratedProperties()}toString(){return JSON.stringify(this._getDecoratedProperties())}toJSON(){return this._getDecoratedProperties()}}});var ui=V((z6,lm)=>{var _l=is(),$E=am(),um=_t();lm.exports=class extends _l{constructor(e={}){super(e),this.inMemoryBlockOnConsumed=e.inMemoryBlockOnConsumed,this.inMemoryBlockDuration=e.inMemoryBlockDuration,this.insuranceLimiter=e.insuranceLimiter,this._inMemoryBlockedKeys=new $E}get client(){return this._client}set client(e){if(typeof e>"u")throw new Error("storeClient is not set");this._client=e}_afterConsume(e,r,n,i,s,o={}){let a=this._getRateLimiterRes(n,i,s);if(this.inMemoryBlockOnConsumed>0&&!(this.inMemoryBlockDuration>0)&&a.consumedPoints>=this.inMemoryBlockOnConsumed)return this._inMemoryBlockedKeys.addMs(n,a.msBeforeNext),a.consumedPoints>this.points?r(a):e(a);if(a.consumedPoints>this.points){let c=Promise.resolve();this.blockDuration>0&&a.consumedPoints<=this.points+i&&(a.msBeforeNext=this.msBlockDuration,c=this._block(n,a.consumedPoints,this.msBlockDuration,o)),this.inMemoryBlockOnConsumed>0&&a.consumedPoints>=this.inMemoryBlockOnConsumed&&(this._inMemoryBlockedKeys.add(n,this.inMemoryBlockDuration),a.msBeforeNext=this.msInMemoryBlockDuration),c.then(()=>{r(a)}).catch(u=>{r(u)})}else if(this.execEvenly&&a.msBeforeNext>0&&!a.isFirstInDuration){let c=Math.ceil(a.msBeforeNext/(a.remainingPoints+2));c<this.execEvenlyMinDelayMs&&(c=a.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(e,c,a)}else e(a)}_handleError(e,r,n,i,s,o=!1,a={}){this.insuranceLimiter instanceof _l?this.insuranceLimiter[r](s,o,a).then(c=>{n(c)}).catch(c=>{i(c)}):i(e)}getInMemoryBlockMsBeforeExpire(e){return this.inMemoryBlockOnConsumed>0?this._inMemoryBlockedKeys.msBeforeExpire(e):0}get inMemoryBlockOnConsumed(){return this._inMemoryBlockOnConsumed}set inMemoryBlockOnConsumed(e){if(this._inMemoryBlockOnConsumed=e?parseInt(e):0,this.inMemoryBlockOnConsumed>0&&this.points>this.inMemoryBlockOnConsumed)throw new Error('inMemoryBlockOnConsumed option must be greater or equal "points" option')}get inMemoryBlockDuration(){return this._inMemoryBlockDuration}set inMemoryBlockDuration(e){if(this._inMemoryBlockDuration=e?parseInt(e):0,this.inMemoryBlockDuration>0&&this.inMemoryBlockOnConsumed===0)throw new Error("inMemoryBlockOnConsumed option must be set up")}get msInMemoryBlockDuration(){return this._inMemoryBlockDuration*1e3}get insuranceLimiter(){return this._insuranceLimiter}set insuranceLimiter(e){if(typeof e<"u"&&!(e instanceof _l))throw new Error("insuranceLimiter must be instance of RateLimiterAbstract");this._insuranceLimiter=e,this._insuranceLimiter&&(this._insuranceLimiter.blockDuration=this.blockDuration,this._insuranceLimiter.execEvenly=this.execEvenly)}block(e,r,n={}){let i=r*1e3;return this._block(this.getKey(e),this.points+1,i,n)}set(e,r,n,i={}){let s=(n>=0?n:this.duration)*1e3;return this._block(this.getKey(e),r,s,i)}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(e),a=this.getInMemoryBlockMsBeforeExpire(o);if(a>0)return s(new um(0,a));this._upsert(o,r,this._getKeySecDuration(n)*1e3,!1,n).then(c=>{this._afterConsume(i,s,o,r,c)}).catch(c=>{this._handleError(c,"consume",i,s,e,r,n)})})}penalty(e,r=1,n={}){let i=this.getKey(e);return new Promise((s,o)=>{this._upsert(i,r,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{s(this._getRateLimiterRes(i,r,a))}).catch(a=>{this._handleError(a,"penalty",s,o,e,r,n)})})}reward(e,r=1,n={}){let i=this.getKey(e);return new Promise((s,o)=>{this._upsert(i,-r,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{s(this._getRateLimiterRes(i,-r,a))}).catch(a=>{this._handleError(a,"reward",s,o,e,r,n)})})}get(e,r={}){let n=this.getKey(e);return new Promise((i,s)=>{this._get(n,r).then(o=>{i(o===null||typeof o>"u"?null:this._getRateLimiterRes(n,0,o))}).catch(o=>{this._handleError(o,"get",i,s,e,r)})})}delete(e,r={}){let n=this.getKey(e);return new Promise((i,s)=>{this._delete(n,r).then(o=>{this._inMemoryBlockedKeys.delete(n),i(o)}).catch(o=>{this._handleError(o,"delete",i,s,e,r)})})}deleteInMemoryBlockedAll(){this._inMemoryBlockedKeys.delete()}_getRateLimiterRes(e,r,n){throw new Error("You have to implement the method '_getRateLimiterRes'!")}_block(e,r,n,i={}){return new Promise((s,o)=>{this._upsert(e,r,n,!0,i).then(()=>{s(new um(0,n>0?n:-1,r))}).catch(a=>{this._handleError(a,"block",s,o,this.parseKey(e),n/1e3,i)})})}_get(e,r={}){throw new Error("You have to implement the method '_get'!")}_delete(e,r={}){throw new Error("You have to implement the method '_delete'!")}_upsert(e,r,n,i=!1,s={}){throw new Error("You have to implement the method '_upsert'!")}}});var hm=V((H6,fm)=>{var zE=ui(),HE=_t(),Sl="redis.call('set', KEYS[1], 0, 'EX', ARGV[2], 'NX') local consumed = redis.call('incrby', KEYS[1], ARGV[1]) local ttl = redis.call('pttl', KEYS[1]) if ttl == -1 then redis.call('expire', KEYS[1], ARGV[2]) ttl = 1000 * ARGV[2] end return {consumed, ttl} ",Al=class extends zE{constructor(e){super(e),this.client=e.storeClient,this._rejectIfRedisNotReady=!!e.rejectIfRedisNotReady,this.useRedisPackage=e.useRedisPackage||this.client.constructor.name==="Commander"||!1,this.useRedis3AndLowerPackage=e.useRedis3AndLowerPackage,typeof this.client.defineCommand=="function"&&this.client.defineCommand("rlflxIncr",{numberOfKeys:1,lua:Sl})}_isRedisReady(){return this._rejectIfRedisNotReady?!(this.client.status&&this.client.status!=="ready"||typeof this.client.isReady=="function"&&!this.client.isReady()):!0}_getRateLimiterRes(e,r,n){let[i,s]=n;Array.isArray(i)&&([,i]=i,[,s]=s);let o=new HE;return o.consumedPoints=parseInt(i),o.isFirstInDuration=o.consumedPoints===r,o.remainingPoints=Math.max(this.points-o.consumedPoints,0),o.msBeforeNext=s,o}async _upsert(e,r,n,i=!1){if(!this._isRedisReady())throw new Error("Redis connection is not ready");let s=Math.floor(n/1e3),o=this.client.multi();return i?(s>0?!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.set(e,r,"EX",s):o.set(e,r,{EX:s}):o.set(e,r),!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.pttl(e).exec(!0):o.pTTL(e).exec(!0)):s>0?!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.rlflxIncr([e].concat([String(r),String(s)])):this.useRedis3AndLowerPackage?new Promise((a,c)=>{let u=function(l,f){return l?c(l):a(f)};typeof this.client.rlflxIncr=="function"?this.client.rlflxIncr(e,r,s,u):this.client.eval(Sl,1,e,r,s,u)}):this.client.eval(Sl,{keys:[e],arguments:[String(r),String(s)]}):!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.incrby(e,r).pttl(e).exec(!0):o.incrBy(e,r).pTTL(e).exec(!0)}async _get(e){if(!this._isRedisReady())throw new Error("Redis connection is not ready");return!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.multi().get(e).pttl(e).exec().then(r=>{let[[,n]]=r;return n===null?null:r}):this.client.multi().get(e).pTTL(e).exec(!0).then(r=>{let[n]=r;return n===null?null:r})}_delete(e){return this.client.del(e).then(r=>r>0)}};fm.exports=Al});var mm=V((G6,pm)=>{var GE=ui(),WE=_t();function dm(t){try{let e=t.client?t.client:t,{version:r}=e.topology.s.options.metadata.driver,n=r.split(".").map(i=>parseInt(i));return{major:n[0],feature:n[1],patch:n[2]}}catch{return{major:0,feature:0,patch:0}}}var Il=class t extends GE{constructor(e){super(e),this.dbName=e.dbName,this.tableName=e.tableName,this.indexKeyPrefix=e.indexKeyPrefix,e.mongo?this.client=e.mongo:this.client=e.storeClient,typeof this.client.then=="function"?this.client.then(r=>{this.client=r,this._initCollection(),this._driverVersion=dm(this.client)}):(this._initCollection(),this._driverVersion=dm(this.client))}get dbName(){return this._dbName}set dbName(e){this._dbName=typeof e>"u"?t.getDbName():e}static getDbName(){return"node-rate-limiter-flexible"}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get client(){return this._client}set client(e){if(typeof e>"u")throw new Error("mongo is not set");this._client=e}get indexKeyPrefix(){return this._indexKeyPrefix}set indexKeyPrefix(e){this._indexKeyPrefix=e||{}}_initCollection(){let r=(typeof this.client.db=="function"?this.client.db(this.dbName):this.client).collection(this.tableName);r.createIndex({expire:-1},{expireAfterSeconds:0}),r.createIndex(Object.assign({},this.indexKeyPrefix,{key:1}),{unique:!0}),this._collection=r}_getRateLimiterRes(e,r,n){let i=new WE,s;return typeof n.value>"u"?s=n:s=n.value,i.isFirstInDuration=s.points===r,i.consumedPoints=s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire!==null?Math.max(new Date(s.expire).getTime()-Date.now(),0):-1,i}_upsert(e,r,n,i=!1,s={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let o=s.attrs||{},a,c;i?(a={key:e},a=Object.assign(a,o),c={$set:{key:e,points:r,expire:n>0?new Date(Date.now()+n):null}},c.$set=Object.assign(c.$set,o)):(a={$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}],key:e},a=Object.assign(a,o),c={$setOnInsert:{key:e,expire:n>0?new Date(Date.now()+n):null},$inc:{points:r}},c.$setOnInsert=Object.assign(c.$setOnInsert,o));let u={upsert:!0};return this._driverVersion.major>=4||this._driverVersion.major===3&&this._driverVersion.feature>=7||this._driverVersion.feature>=6&&this._driverVersion.patch>=7?u.returnDocument="after":u.returnOriginal=!1,new Promise((l,f)=>{this._collection.findOneAndUpdate(a,c,u).then(h=>{l(h)}).catch(h=>{if(h&&h.code===11e3){let p=Object.assign({$or:[{expire:{$lte:new Date}},{expire:{$eq:null}}],key:e},o),d={$set:Object.assign({key:e,points:r,expire:n>0?new Date(Date.now()+n):null},o)};this._collection.findOneAndUpdate(p,d,u).then(m=>{l(m)}).catch(m=>{m&&m.code===11e3?this._upsert(e,r,n,i).then(g=>l(g)).catch(g=>f(g)):f(m)})}else f(h)})})}_get(e,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:e,$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}]},n);return this._collection.findOne(i)}_delete(e,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:e},n);return this._collection.deleteOne(i).then(s=>s.deletedCount>0)}};pm.exports=Il});var ym=V((W6,gm)=>{var YE=ui(),QE=_t(),Rl=class extends YE{constructor(e,r=null){super(e),this.client=e.storeClient,this.clientType=e.storeType,this.dbName=e.dbName,this.tableName=e.tableName,this.clearExpiredByTimeout=e.clearExpiredByTimeout,this.tableCreated=e.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()):this._createDbAndTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()}).catch(n=>{if(typeof r=="function")r(n);else throw n})}clearExpired(e){return new Promise(r=>{this._getConnection().then(n=>{n.query("DELETE FROM ??.?? WHERE expire < ?",[this.dbName,this.tableName,e],()=>{this._releaseConnection(n),r()})}).catch(()=>{r()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return new Promise((e,r)=>{this.client.getConnection((n,i)=>{if(n)return r(n);e(i)})});case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();default:return Promise.resolve(this.client)}}_releaseConnection(e){switch(this.clientType){case"pool":return e.release();case"sequelize":return this.client.connectionManager.releaseConnection(e);case"knex":return this.client.client.releaseConnection(e);default:return!0}}_createDbAndTable(){return new Promise((e,r)=>{this._getConnection().then(n=>{n.query(`CREATE DATABASE IF NOT EXISTS \`${this.dbName}\`;`,i=>{if(i)return this._releaseConnection(n),r(i);n.query(this._getCreateTableStmt(),s=>{if(s)return this._releaseConnection(n),r(s);this._releaseConnection(n),e()})})}).catch(n=>{r(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS \`${this.dbName}\`.\`${this.tableName}\` (\`key\` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\`points\` INT(9) NOT NULL default 0,\`expire\` BIGINT UNSIGNED,PRIMARY KEY (\`key\`)) ENGINE = INNODB;`}get clientType(){return this._clientType}set clientType(e){if(typeof e>"u")if(this.client.constructor.name==="Connection")e="connection";else if(this.client.constructor.name==="Pool")e="pool";else if(this.client.constructor.name==="Sequelize")e="sequelize";else throw new Error("storeType is not defined");this._clientType=e.toLowerCase()}get dbName(){return this._dbName}set dbName(e){this._dbName=typeof e>"u"?"rtlmtrflx":e}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated=typeof e>"u"?!1:!!e}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(e){this._clearExpiredByTimeout=typeof e>"u"?!0:!!e}_getRateLimiterRes(e,r,n){let i=new QE,[s]=n;return i.isFirstInDuration=r===s.points,i.consumedPoints=i.isFirstInDuration?r:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_upsertTransaction(e,r,n,i,s){return new Promise((o,a)=>{e.query("BEGIN",c=>{if(c)return e.rollback(),a(c);let u=Date.now(),l=i>0?u+i:null,f,h;s?(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
|
|
15
|
+
`+a+e.substr(o+1),s=i-o-1,o=-1,++i}else(e[i]===" "||e[i]===" "||e[i]===",")&&(o=i);return e}function zg(t){return t.replace(/^\s+/,"")}});var kf=q((h_,Nf)=>{var Kt=le();Kr();Re();var Lf=Nf.exports=Kt.sha256=Kt.sha256||{};Kt.md.sha256=Kt.md.algorithms.sha256=Lf;Lf.create=function(){Pf||Hg();var t=null,e=Kt.util.createBuffer(),r=new Array(64),n={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return e=Kt.util.createBuffer(),t={h0:1779033703,h1:3144134277,h2:1013904242,h3:2773480762,h4:1359893119,h5:2600822924,h6:528734635,h7:1541459225},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=Kt.util.encodeUtf8(i));var o=i.length;n.messageLength+=o,o=[o/4294967296>>>0,o>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=o[1],o[1]=o[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,o[0]=o[1]/4294967296>>>0;return e.putBytes(i),Bf(t,r,e),(e.read>2048||e.length()===0)&&e.compact(),n},n.digest=function(){var i=Kt.util.createBuffer();i.putBytes(e.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(Ta.substr(0,n.blockLength-o));for(var a,c,u=n.fullMessageLength[0]*8,l=0;l<n.fullMessageLength.length-1;++l)a=n.fullMessageLength[l+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var f={h0:t.h0,h1:t.h1,h2:t.h2,h3:t.h3,h4:t.h4,h5:t.h5,h6:t.h6,h7:t.h7};Bf(f,r,i);var d=Kt.util.createBuffer();return d.putInt32(f.h0),d.putInt32(f.h1),d.putInt32(f.h2),d.putInt32(f.h3),d.putInt32(f.h4),d.putInt32(f.h5),d.putInt32(f.h6),d.putInt32(f.h7),d},n};var Ta=null,Pf=!1,Df=null;function Hg(){Ta="\x80",Ta+=Kt.util.fillString("\0",64),Df=[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],Pf=!0}function Bf(t,e,r){for(var n,i,s,o,a,c,u,l,f,d,p,h,m,g,y,x=r.length();x>=64;){for(u=0;u<16;++u)e[u]=r.getInt32();for(;u<64;++u)n=e[u-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=e[u-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,e[u]=n+e[u-7]+i+e[u-16]|0;for(l=t.h0,f=t.h1,d=t.h2,p=t.h3,h=t.h4,m=t.h5,g=t.h6,y=t.h7,u=0;u<64;++u)o=(h>>>6|h<<26)^(h>>>11|h<<21)^(h>>>25|h<<7),a=g^h&(m^g),s=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),c=l&f|d&(l^f),n=y+o+a+Df[u]+e[u],i=s+c,y=g,g=m,m=h,h=p+n>>>0,p=d,d=f,f=l,l=n+i>>>0;t.h0=t.h0+l|0,t.h1=t.h1+f|0,t.h2=t.h2+d|0,t.h3=t.h3+p|0,t.h4=t.h4+h|0,t.h5=t.h5+m|0,t.h6=t.h6+g|0,t.h7=t.h7+y|0,x-=64}}});var Mf=q((d_,Of)=>{var qt=le();Re();var ms=null;qt.util.isNodejs&&!qt.options.usePureJavaScript&&!process.versions["node-webkit"]&&(ms=yi());var Gg=Of.exports=qt.prng=qt.prng||{};Gg.create=function(t){for(var e={plugin:t,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=t.md,n=new Array(32),i=0;i<32;++i)n[i]=r.create();e.pools=n,e.pool=0,e.generate=function(u,l){if(!l)return e.generateSync(u);var f=e.plugin.cipher,d=e.plugin.increment,p=e.plugin.formatKey,h=e.plugin.formatSeed,m=qt.util.createBuffer();e.key=null,g();function g(y){if(y)return l(y);if(m.length()>=u)return l(null,m.getBytes(u));if(e.generated>1048575&&(e.key=null),e.key===null)return qt.util.nextTick(function(){s(g)});var x=f(e.key,e.seed);e.generated+=x.length,m.putBytes(x),e.key=p(f(e.key,d(e.seed))),e.seed=h(f(e.key,e.seed)),qt.util.setImmediate(g)}},e.generateSync=function(u){var l=e.plugin.cipher,f=e.plugin.increment,d=e.plugin.formatKey,p=e.plugin.formatSeed;e.key=null;for(var h=qt.util.createBuffer();h.length()<u;){e.generated>1048575&&(e.key=null),e.key===null&&o();var m=l(e.key,e.seed);e.generated+=m.length,h.putBytes(m),e.key=d(l(e.key,f(e.seed))),e.seed=p(l(e.key,e.seed))}return h.getBytes(u)};function s(u){if(e.pools[0].messageLength>=32)return a(),u();var l=32-e.pools[0].messageLength<<5;e.seedFile(l,function(f,d){if(f)return u(f);e.collect(d),a(),u()})}function o(){if(e.pools[0].messageLength>=32)return a();var u=32-e.pools[0].messageLength<<5;e.collect(e.seedFileSync(u)),a()}function a(){e.reseeds=e.reseeds===4294967295?0:e.reseeds+1;var u=e.plugin.md.create();u.update(e.keyBytes);for(var l=1,f=0;f<32;++f)e.reseeds%l===0&&(u.update(e.pools[f].digest().getBytes()),e.pools[f].start()),l=l<<1;e.keyBytes=u.digest().getBytes(),u.start(),u.update(e.keyBytes);var d=u.digest().getBytes();e.key=e.plugin.formatKey(e.keyBytes),e.seed=e.plugin.formatSeed(d),e.generated=0}function c(u){var l=null,f=qt.util.globalScope,d=f.crypto||f.msCrypto;d&&d.getRandomValues&&(l=function(v){return d.getRandomValues(v)});var p=qt.util.createBuffer();if(l)for(;p.length()<u;){var h=Math.max(1,Math.min(u-p.length(),65536)/4),m=new Uint32Array(Math.floor(h));try{l(m);for(var g=0;g<m.length;++g)p.putInt32(m[g])}catch(v){if(!(typeof QuotaExceededError<"u"&&v instanceof QuotaExceededError))throw v}}if(p.length()<u)for(var y,x,b,I=Math.floor(Math.random()*65536);p.length()<u;){x=16807*(I&65535),y=16807*(I>>16),x+=(y&32767)<<16,x+=y>>15,x=(x&2147483647)+(x>>31),I=x&4294967295;for(var g=0;g<3;++g)b=I>>>(g<<3),b^=Math.floor(Math.random()*256),p.putByte(b&255)}return p.getBytes(u)}return ms?(e.seedFile=function(u,l){ms.randomBytes(u,function(f,d){if(f)return l(f);l(null,d.toString())})},e.seedFileSync=function(u){return ms.randomBytes(u).toString()}):(e.seedFile=function(u,l){try{l(null,c(u))}catch(f){l(f)}},e.seedFileSync=c),e.collect=function(u){for(var l=u.length,f=0;f<l;++f)e.pools[e.pool].update(u.substr(f,1)),e.pool=e.pool===31?0:e.pool+1},e.collectInt=function(u,l){for(var f="",d=0;d<l;d+=8)f+=String.fromCharCode(u>>d&255);e.collect(f)},e.registerWorker=function(u){if(u===self)e.seedFile=function(f,d){function p(h){var m=h.data;m.forge&&m.forge.prng&&(self.removeEventListener("message",p),d(m.forge.prng.err,m.forge.prng.bytes))}self.addEventListener("message",p),self.postMessage({forge:{prng:{needed:f}}})};else{var l=function(f){var d=f.data;d.forge&&d.forge.prng&&e.seedFile(d.forge.prng.needed,function(p,h){u.postMessage({forge:{prng:{err:p,bytes:h}}})})};u.addEventListener("message",l)}},e}});var xi=q((p_,Ra)=>{var Ue=le();Ca();kf();Mf();Re();(function(){if(Ue.random&&Ue.random.getBytes){Ra.exports=Ue.random;return}(function(t){var e={},r=new Array(4),n=Ue.util.createBuffer();e.formatKey=function(f){var d=Ue.util.createBuffer(f);return f=new Array(4),f[0]=d.getInt32(),f[1]=d.getInt32(),f[2]=d.getInt32(),f[3]=d.getInt32(),Ue.aes._expandKey(f,!1)},e.formatSeed=function(f){var d=Ue.util.createBuffer(f);return f=new Array(4),f[0]=d.getInt32(),f[1]=d.getInt32(),f[2]=d.getInt32(),f[3]=d.getInt32(),f},e.cipher=function(f,d){return Ue.aes._updateBlock(f,d,r,!1),n.putInt32(r[0]),n.putInt32(r[1]),n.putInt32(r[2]),n.putInt32(r[3]),n.getBytes()},e.increment=function(f){return++f[3],f},e.md=Ue.md.sha256;function i(){var f=Ue.prng.create(e);return f.getBytes=function(d,p){return f.generate(d,p)},f.getBytesSync=function(d){return f.generate(d)},f}var s=i(),o=null,a=Ue.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(o=function(f){return c.getRandomValues(f)}),Ue.options.usePureJavaScript||!Ue.util.isNodejs&&!o){if(typeof window>"u"||window.document,s.collectInt(+new Date,32),typeof navigator<"u"){var u="";for(var l in navigator)try{typeof navigator[l]=="string"&&(u+=navigator[l])}catch{}s.collect(u),u=null}t&&(t().mousemove(function(f){s.collectInt(f.clientX,16),s.collectInt(f.clientY,16)}),t().keypress(function(f){s.collectInt(f.charCode,8)}))}if(!Ue.random)Ue.random=s;else for(var l in s)Ue.random[l]=s[l];Ue.random.createInstance=i,Ra.exports=Ue.random})(typeof jQuery<"u"?jQuery:null)})()});var qf=q((m_,Kf)=>{var ot=le();Re();var Ba=[217,120,249,196,25,221,181,237,40,233,253,121,74,160,216,157,198,126,55,131,43,118,83,142,98,76,100,136,68,139,251,162,23,154,89,245,135,179,79,19,97,69,109,141,9,129,125,50,189,143,64,235,134,183,123,11,240,149,33,34,92,107,78,130,84,214,101,147,206,96,178,28,115,86,192,20,167,140,241,220,18,117,202,31,59,190,228,209,66,61,212,48,163,60,182,38,111,191,14,218,70,105,7,87,39,242,29,155,188,148,67,3,248,17,199,246,144,239,62,231,6,195,213,47,200,102,30,215,8,232,234,222,128,82,238,247,132,170,114,172,53,77,106,42,150,26,210,113,90,21,73,116,75,159,208,94,4,24,164,236,194,224,65,110,15,81,203,204,36,145,175,80,161,244,112,57,153,124,58,133,35,184,180,122,252,2,54,91,37,85,151,49,45,93,250,152,227,138,146,174,5,223,41,16,103,108,186,201,211,0,230,207,225,158,168,44,99,22,1,63,88,226,137,169,13,56,52,27,171,51,255,176,187,72,12,95,185,177,205,46,197,243,219,71,229,165,156,119,10,166,32,104,254,127,193,173],Uf=[1,2,3,5],Wg=function(t,e){return t<<e&65535|(t&65535)>>16-e},Yg=function(t,e){return(t&65535)>>e|t<<16-e&65535};Kf.exports=ot.rc2=ot.rc2||{};ot.rc2.expandKey=function(t,e){typeof t=="string"&&(t=ot.util.createBuffer(t)),e=e||128;var r=t,n=t.length(),i=e,s=Math.ceil(i/8),o=255>>(i&7),a;for(a=n;a<128;a++)r.putByte(Ba[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-s,Ba[r.at(128-s)&o]),a=127-s;a>=0;a--)r.setAt(a,Ba[r.at(a+1)^r.at(a+s)]);return r};var Ff=function(t,e,r){var n=!1,i=null,s=null,o=null,a,c,u,l,f=[];for(t=ot.rc2.expandKey(t,e),u=0;u<64;u++)f.push(t.getInt16Le());r?(a=function(h){for(u=0;u<4;u++)h[u]+=f[l]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),h[u]=Wg(h[u],Uf[u]),l++},c=function(h){for(u=0;u<4;u++)h[u]+=f[h[(u+3)%4]&63]}):(a=function(h){for(u=3;u>=0;u--)h[u]=Yg(h[u],Uf[u]),h[u]-=f[l]+(h[(u+3)%4]&h[(u+2)%4])+(~h[(u+3)%4]&h[(u+1)%4]),l--},c=function(h){for(u=3;u>=0;u--)h[u]-=f[h[(u+3)%4]&63]});var d=function(h){var m=[];for(u=0;u<4;u++){var g=i.getInt16Le();o!==null&&(r?g^=o.getInt16Le():o.putInt16Le(g)),m.push(g&65535)}l=r?0:63;for(var y=0;y<h.length;y++)for(var x=0;x<h[y][0];x++)h[y][1](m);for(u=0;u<4;u++)o!==null&&(r?o.putInt16Le(m[u]):m[u]^=o.getInt16Le()),s.putInt16Le(m[u])},p=null;return p={start:function(h,m){h&&typeof h=="string"&&(h=ot.util.createBuffer(h)),n=!1,i=ot.util.createBuffer(),s=m||new ot.util.createBuffer,o=h,p.output=s},update:function(h){for(n||i.putBuffer(h);i.length()>=8;)d([[5,a],[1,c],[6,a],[1,c],[5,a]])},finish:function(h){var m=!0;if(r)if(h)m=h(8,i,!r);else{var g=i.length()===8?8:8-i.length();i.fillWithByte(g,g)}if(m&&(n=!0,p.update()),!r&&(m=i.length()===0,m))if(h)m=h(8,s,!r);else{var y=s.length(),x=s.at(y-1);x>y?m=!1:s.truncate(x)}return m}},p};ot.rc2.startEncrypting=function(t,e,r){var n=ot.rc2.createEncryptionCipher(t,128);return n.start(e,r),n};ot.rc2.createEncryptionCipher=function(t,e){return Ff(t,e,!0)};ot.rc2.startDecrypting=function(t,e,r){var n=ot.rc2.createDecryptionCipher(t,128);return n.start(e,r),n};ot.rc2.createDecryptionCipher=function(t,e){return Ff(t,e,!1)}});var xs=q((g_,Qf)=>{var La=le();Qf.exports=La.jsbn=La.jsbn||{};var tr,Qg=0xdeadbeefcafe,Vf=(Qg&16777215)==15715070;function T(t,e,r){this.data=[],t!=null&&(typeof t=="number"?this.fromNumber(t,e,r):e==null&&typeof t!="string"?this.fromString(t,256):this.fromString(t,e))}La.jsbn.BigInteger=T;function re(){return new T(null)}function Xg(t,e,r,n,i,s){for(;--s>=0;){var o=e*this.data[t++]+r.data[n]+i;i=Math.floor(o/67108864),r.data[n++]=o&67108863}return i}function Zg(t,e,r,n,i,s){for(var o=e&32767,a=e>>15;--s>=0;){var c=this.data[t]&32767,u=this.data[t++]>>15,l=a*c+u*o;c=o*c+((l&32767)<<15)+r.data[n]+(i&1073741823),i=(c>>>30)+(l>>>15)+a*u+(i>>>30),r.data[n++]=c&1073741823}return i}function $f(t,e,r,n,i,s){for(var o=e&16383,a=e>>14;--s>=0;){var c=this.data[t]&16383,u=this.data[t++]>>14,l=a*c+u*o;c=o*c+((l&16383)<<14)+r.data[n]+i,i=(c>>28)+(l>>14)+a*u,r.data[n++]=c&268435455}return i}typeof navigator>"u"?(T.prototype.am=$f,tr=28):Vf&&navigator.appName=="Microsoft Internet Explorer"?(T.prototype.am=Zg,tr=30):Vf&&navigator.appName!="Netscape"?(T.prototype.am=Xg,tr=26):(T.prototype.am=$f,tr=28);T.prototype.DB=tr;T.prototype.DM=(1<<tr)-1;T.prototype.DV=1<<tr;var Pa=52;T.prototype.FV=Math.pow(2,Pa);T.prototype.F1=Pa-tr;T.prototype.F2=2*tr-Pa;var jg="0123456789abcdefghijklmnopqrstuvwxyz",gs=new Array,An,wt;An=48;for(wt=0;wt<=9;++wt)gs[An++]=wt;An=97;for(wt=10;wt<36;++wt)gs[An++]=wt;An=65;for(wt=10;wt<36;++wt)gs[An++]=wt;function zf(t){return jg.charAt(t)}function Hf(t,e){var r=gs[t.charCodeAt(e)];return r??-1}function Jg(t){for(var e=this.t-1;e>=0;--e)t.data[e]=this.data[e];t.t=this.t,t.s=this.s}function ey(t){this.t=1,this.s=t<0?-1:0,t>0?this.data[0]=t:t<-1?this.data[0]=t+this.DV:this.t=0}function br(t){var e=re();return e.fromInt(t),e}function ty(t,e){var r;if(e==16)r=4;else if(e==8)r=3;else if(e==256)r=8;else if(e==2)r=1;else if(e==32)r=5;else if(e==4)r=2;else{this.fromRadix(t,e);return}this.t=0,this.s=0;for(var n=t.length,i=!1,s=0;--n>=0;){var o=r==8?t[n]&255:Hf(t,n);if(o<0){t.charAt(n)=="-"&&(i=!0);continue}i=!1,s==0?this.data[this.t++]=o:s+r>this.DB?(this.data[this.t-1]|=(o&(1<<this.DB-s)-1)<<s,this.data[this.t++]=o>>this.DB-s):this.data[this.t-1]|=o<<s,s+=r,s>=this.DB&&(s-=this.DB)}r==8&&t[0]&128&&(this.s=-1,s>0&&(this.data[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),i&&T.ZERO.subTo(this,this)}function ry(){for(var t=this.s&this.DM;this.t>0&&this.data[this.t-1]==t;)--this.t}function ny(t){if(this.s<0)return"-"+this.negate().toString(t);var e;if(t==16)e=4;else if(t==8)e=3;else if(t==2)e=1;else if(t==32)e=5;else if(t==4)e=2;else return this.toRadix(t);var r=(1<<e)-1,n,i=!1,s="",o=this.t,a=this.DB-o*this.DB%e;if(o-- >0)for(a<this.DB&&(n=this.data[o]>>a)>0&&(i=!0,s=zf(n));o>=0;)a<e?(n=(this.data[o]&(1<<a)-1)<<e-a,n|=this.data[--o]>>(a+=this.DB-e)):(n=this.data[o]>>(a-=e)&r,a<=0&&(a+=this.DB,--o)),n>0&&(i=!0),i&&(s+=zf(n));return i?s:"0"}function iy(){var t=re();return T.ZERO.subTo(this,t),t}function sy(){return this.s<0?this.negate():this}function oy(t){var e=this.s-t.s;if(e!=0)return e;var r=this.t;if(e=r-t.t,e!=0)return this.s<0?-e:e;for(;--r>=0;)if((e=this.data[r]-t.data[r])!=0)return e;return 0}function ys(t){var e=1,r;return(r=t>>>16)!=0&&(t=r,e+=16),(r=t>>8)!=0&&(t=r,e+=8),(r=t>>4)!=0&&(t=r,e+=4),(r=t>>2)!=0&&(t=r,e+=2),(r=t>>1)!=0&&(t=r,e+=1),e}function ay(){return this.t<=0?0:this.DB*(this.t-1)+ys(this.data[this.t-1]^this.s&this.DM)}function cy(t,e){var r;for(r=this.t-1;r>=0;--r)e.data[r+t]=this.data[r];for(r=t-1;r>=0;--r)e.data[r]=0;e.t=this.t+t,e.s=this.s}function uy(t,e){for(var r=t;r<this.t;++r)e.data[r-t]=this.data[r];e.t=Math.max(this.t-t,0),e.s=this.s}function ly(t,e){var r=t%this.DB,n=this.DB-r,i=(1<<n)-1,s=Math.floor(t/this.DB),o=this.s<<r&this.DM,a;for(a=this.t-1;a>=0;--a)e.data[a+s+1]=this.data[a]>>n|o,o=(this.data[a]&i)<<r;for(a=s-1;a>=0;--a)e.data[a]=0;e.data[s]=o,e.t=this.t+s+1,e.s=this.s,e.clamp()}function fy(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t){e.t=0;return}var n=t%this.DB,i=this.DB-n,s=(1<<n)-1;e.data[0]=this.data[r]>>n;for(var o=r+1;o<this.t;++o)e.data[o-r-1]|=(this.data[o]&s)<<i,e.data[o-r]=this.data[o]>>n;n>0&&(e.data[this.t-r-1]|=(this.s&s)<<i),e.t=this.t-r,e.clamp()}function hy(t,e){for(var r=0,n=0,i=Math.min(t.t,this.t);r<i;)n+=this.data[r]-t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n-=t.s;r<this.t;)n+=this.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<t.t;)n-=t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e.data[r++]=this.DV+n:n>0&&(e.data[r++]=n),e.t=r,e.clamp()}function dy(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e.data[i]=0;for(i=0;i<n.t;++i)e.data[i+r.t]=r.am(0,n.data[i],e,i,0,r.t);e.s=0,e.clamp(),this.s!=t.s&&T.ZERO.subTo(e,e)}function py(t){for(var e=this.abs(),r=t.t=2*e.t;--r>=0;)t.data[r]=0;for(r=0;r<e.t-1;++r){var n=e.am(r,e.data[r],t,2*r,0,1);(t.data[r+e.t]+=e.am(r+1,2*e.data[r],t,2*r+1,n,e.t-r-1))>=e.DV&&(t.data[r+e.t]-=e.DV,t.data[r+e.t+1]=1)}t.t>0&&(t.data[t.t-1]+=e.am(r,e.data[r],t,2*r,0,1)),t.s=0,t.clamp()}function my(t,e,r){var n=t.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){e?.fromInt(0),r!=null&&this.copyTo(r);return}r==null&&(r=re());var s=re(),o=this.s,a=t.s,c=this.DB-ys(n.data[n.t-1]);c>0?(n.lShiftTo(c,s),i.lShiftTo(c,r)):(n.copyTo(s),i.copyTo(r));var u=s.t,l=s.data[u-1];if(l!=0){var f=l*(1<<this.F1)+(u>1?s.data[u-2]>>this.F2:0),d=this.FV/f,p=(1<<this.F1)/f,h=1<<this.F2,m=r.t,g=m-u,y=e??re();for(s.dlShiftTo(g,y),r.compareTo(y)>=0&&(r.data[r.t++]=1,r.subTo(y,r)),T.ONE.dlShiftTo(u,y),y.subTo(s,s);s.t<u;)s.data[s.t++]=0;for(;--g>=0;){var x=r.data[--m]==l?this.DM:Math.floor(r.data[m]*d+(r.data[m-1]+h)*p);if((r.data[m]+=s.am(0,x,r,g,0,u))<x)for(s.dlShiftTo(g,y),r.subTo(y,r);r.data[m]<--x;)r.subTo(y,r)}e!=null&&(r.drShiftTo(u,e),o!=a&&T.ZERO.subTo(e,e)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),o<0&&T.ZERO.subTo(r,r)}}}function gy(t){var e=re();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(T.ZERO)>0&&t.subTo(e,e),e}function qr(t){this.m=t}function yy(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t}function xy(t){return t}function by(t){t.divRemTo(this.m,null,t)}function wy(t,e,r){t.multiplyTo(e,r),this.reduce(r)}function Ey(t,e){t.squareTo(e),this.reduce(e)}qr.prototype.convert=yy;qr.prototype.revert=xy;qr.prototype.reduce=by;qr.prototype.mulTo=wy;qr.prototype.sqrTo=Ey;function vy(){if(this.t<1)return 0;var t=this.data[0];if(!(t&1))return 0;var e=t&3;return e=e*(2-(t&15)*e)&15,e=e*(2-(t&255)*e)&255,e=e*(2-((t&65535)*e&65535))&65535,e=e*(2-t*e%this.DV)%this.DV,e>0?this.DV-e:-e}function Vr(t){this.m=t,this.mp=t.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<t.DB-15)-1,this.mt2=2*t.t}function _y(t){var e=re();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(T.ZERO)>0&&this.m.subTo(e,e),e}function Sy(t){var e=re();return t.copyTo(e),this.reduce(e),e}function Ay(t){for(;t.t<=this.mt2;)t.data[t.t++]=0;for(var e=0;e<this.m.t;++e){var r=t.data[e]&32767,n=r*this.mpl+((r*this.mph+(t.data[e]>>15)*this.mpl&this.um)<<15)&t.DM;for(r=e+this.m.t,t.data[r]+=this.m.am(0,n,t,e,0,this.m.t);t.data[r]>=t.DV;)t.data[r]-=t.DV,t.data[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)}function Iy(t,e){t.squareTo(e),this.reduce(e)}function Cy(t,e,r){t.multiplyTo(e,r),this.reduce(r)}Vr.prototype.convert=_y;Vr.prototype.revert=Sy;Vr.prototype.reduce=Ay;Vr.prototype.mulTo=Cy;Vr.prototype.sqrTo=Iy;function Ty(){return(this.t>0?this.data[0]&1:this.s)==0}function Ry(t,e){if(t>4294967295||t<1)return T.ONE;var r=re(),n=re(),i=e.convert(this),s=ys(t)-1;for(i.copyTo(r);--s>=0;)if(e.sqrTo(r,n),(t&1<<s)>0)e.mulTo(n,i,r);else{var o=r;r=n,n=o}return e.revert(r)}function By(t,e){var r;return t<256||e.isEven()?r=new qr(e):r=new Vr(e),this.exp(t,r)}T.prototype.copyTo=Jg;T.prototype.fromInt=ey;T.prototype.fromString=ty;T.prototype.clamp=ry;T.prototype.dlShiftTo=cy;T.prototype.drShiftTo=uy;T.prototype.lShiftTo=ly;T.prototype.rShiftTo=fy;T.prototype.subTo=hy;T.prototype.multiplyTo=dy;T.prototype.squareTo=py;T.prototype.divRemTo=my;T.prototype.invDigit=vy;T.prototype.isEven=Ty;T.prototype.exp=Ry;T.prototype.toString=ny;T.prototype.negate=iy;T.prototype.abs=sy;T.prototype.compareTo=oy;T.prototype.bitLength=ay;T.prototype.mod=gy;T.prototype.modPowInt=By;T.ZERO=br(0);T.ONE=br(1);function Ly(){var t=re();return this.copyTo(t),t}function Py(){if(this.s<0){if(this.t==1)return this.data[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this.data[0];if(this.t==0)return 0}return(this.data[1]&(1<<32-this.DB)-1)<<this.DB|this.data[0]}function Dy(){return this.t==0?this.s:this.data[0]<<24>>24}function Ny(){return this.t==0?this.s:this.data[0]<<16>>16}function ky(t){return Math.floor(Math.LN2*this.DB/Math.log(t))}function Oy(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function My(t){if(t==null&&(t=10),this.signum()==0||t<2||t>36)return"0";var e=this.chunkSize(t),r=Math.pow(t,e),n=br(r),i=re(),s=re(),o="";for(this.divRemTo(n,i,s);i.signum()>0;)o=(r+s.intValue()).toString(t).substr(1)+o,i.divRemTo(n,i,s);return s.intValue().toString(t)+o}function Uy(t,e){this.fromInt(0),e==null&&(e=10);for(var r=this.chunkSize(e),n=Math.pow(e,r),i=!1,s=0,o=0,a=0;a<t.length;++a){var c=Hf(t,a);if(c<0){t.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}o=e*o+c,++s>=r&&(this.dMultiply(n),this.dAddOffset(o,0),s=0,o=0)}s>0&&(this.dMultiply(Math.pow(e,s)),this.dAddOffset(o,0)),i&&T.ZERO.subTo(this,this)}function Fy(t,e,r){if(typeof e=="number")if(t<2)this.fromInt(1);else for(this.fromNumber(t,r),this.testBit(t-1)||this.bitwiseTo(T.ONE.shiftLeft(t-1),Da,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(T.ONE.shiftLeft(t-1),this);else{var n=new Array,i=t&7;n.length=(t>>3)+1,e.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function Ky(){var t=this.t,e=new Array;e[0]=this.s;var r=this.DB-t*this.DB%8,n,i=0;if(t-- >0)for(r<this.DB&&(n=this.data[t]>>r)!=(this.s&this.DM)>>r&&(e[i++]=n|this.s<<this.DB-r);t>=0;)r<8?(n=(this.data[t]&(1<<r)-1)<<8-r,n|=this.data[--t]>>(r+=this.DB-8)):(n=this.data[t]>>(r-=8)&255,r<=0&&(r+=this.DB,--t)),n&128&&(n|=-256),i==0&&(this.s&128)!=(n&128)&&++i,(i>0||n!=this.s)&&(e[i++]=n);return e}function qy(t){return this.compareTo(t)==0}function Vy(t){return this.compareTo(t)<0?this:t}function $y(t){return this.compareTo(t)>0?this:t}function zy(t,e,r){var n,i,s=Math.min(t.t,this.t);for(n=0;n<s;++n)r.data[n]=e(this.data[n],t.data[n]);if(t.t<this.t){for(i=t.s&this.DM,n=s;n<this.t;++n)r.data[n]=e(this.data[n],i);r.t=this.t}else{for(i=this.s&this.DM,n=s;n<t.t;++n)r.data[n]=e(i,t.data[n]);r.t=t.t}r.s=e(this.s,t.s),r.clamp()}function Hy(t,e){return t&e}function Gy(t){var e=re();return this.bitwiseTo(t,Hy,e),e}function Da(t,e){return t|e}function Wy(t){var e=re();return this.bitwiseTo(t,Da,e),e}function Gf(t,e){return t^e}function Yy(t){var e=re();return this.bitwiseTo(t,Gf,e),e}function Wf(t,e){return t&~e}function Qy(t){var e=re();return this.bitwiseTo(t,Wf,e),e}function Xy(){for(var t=re(),e=0;e<this.t;++e)t.data[e]=this.DM&~this.data[e];return t.t=this.t,t.s=~this.s,t}function Zy(t){var e=re();return t<0?this.rShiftTo(-t,e):this.lShiftTo(t,e),e}function jy(t){var e=re();return t<0?this.lShiftTo(-t,e):this.rShiftTo(t,e),e}function Jy(t){if(t==0)return-1;var e=0;return t&65535||(t>>=16,e+=16),t&255||(t>>=8,e+=8),t&15||(t>>=4,e+=4),t&3||(t>>=2,e+=2),t&1||++e,e}function ex(){for(var t=0;t<this.t;++t)if(this.data[t]!=0)return t*this.DB+Jy(this.data[t]);return this.s<0?this.t*this.DB:-1}function tx(t){for(var e=0;t!=0;)t&=t-1,++e;return e}function rx(){for(var t=0,e=this.s&this.DM,r=0;r<this.t;++r)t+=tx(this.data[r]^e);return t}function nx(t){var e=Math.floor(t/this.DB);return e>=this.t?this.s!=0:(this.data[e]&1<<t%this.DB)!=0}function ix(t,e){var r=T.ONE.shiftLeft(t);return this.bitwiseTo(r,e,r),r}function sx(t){return this.changeBit(t,Da)}function ox(t){return this.changeBit(t,Wf)}function ax(t){return this.changeBit(t,Gf)}function cx(t,e){for(var r=0,n=0,i=Math.min(t.t,this.t);r<i;)n+=this.data[r]+t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;if(t.t<this.t){for(n+=t.s;r<this.t;)n+=this.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<t.t;)n+=t.data[r],e.data[r++]=n&this.DM,n>>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e.data[r++]=n:n<-1&&(e.data[r++]=this.DV+n),e.t=r,e.clamp()}function ux(t){var e=re();return this.addTo(t,e),e}function lx(t){var e=re();return this.subTo(t,e),e}function fx(t){var e=re();return this.multiplyTo(t,e),e}function hx(t){var e=re();return this.divRemTo(t,e,null),e}function dx(t){var e=re();return this.divRemTo(t,null,e),e}function px(t){var e=re(),r=re();return this.divRemTo(t,e,r),new Array(e,r)}function mx(t){this.data[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()}function gx(t,e){if(t!=0){for(;this.t<=e;)this.data[this.t++]=0;for(this.data[e]+=t;this.data[e]>=this.DV;)this.data[e]-=this.DV,++e>=this.t&&(this.data[this.t++]=0),++this.data[e]}}function bi(){}function Yf(t){return t}function yx(t,e,r){t.multiplyTo(e,r)}function xx(t,e){t.squareTo(e)}bi.prototype.convert=Yf;bi.prototype.revert=Yf;bi.prototype.mulTo=yx;bi.prototype.sqrTo=xx;function bx(t){return this.exp(t,new bi)}function wx(t,e,r){var n=Math.min(this.t+t.t,e);for(r.s=0,r.t=n;n>0;)r.data[--n]=0;var i;for(i=r.t-this.t;n<i;++n)r.data[n+this.t]=this.am(0,t.data[n],r,n,0,this.t);for(i=Math.min(t.t,e);n<i;++n)this.am(0,t.data[n],r,n,0,e-n);r.clamp()}function Ex(t,e,r){--e;var n=r.t=this.t+t.t-e;for(r.s=0;--n>=0;)r.data[n]=0;for(n=Math.max(e-this.t,0);n<t.t;++n)r.data[this.t+n-e]=this.am(e-n,t.data[n],r,0,0,this.t+n-e);r.clamp(),r.drShiftTo(1,r)}function In(t){this.r2=re(),this.q3=re(),T.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}function vx(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=re();return t.copyTo(e),this.reduce(e),e}function _x(t){return t}function Sx(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)}function Ax(t,e){t.squareTo(e),this.reduce(e)}function Ix(t,e,r){t.multiplyTo(e,r),this.reduce(r)}In.prototype.convert=vx;In.prototype.revert=_x;In.prototype.reduce=Sx;In.prototype.mulTo=Ix;In.prototype.sqrTo=Ax;function Cx(t,e){var r=t.bitLength(),n,i=br(1),s;if(r<=0)return i;r<18?n=1:r<48?n=3:r<144?n=4:r<768?n=5:n=6,r<8?s=new qr(e):e.isEven()?s=new In(e):s=new Vr(e);var o=new Array,a=3,c=n-1,u=(1<<n)-1;if(o[1]=s.convert(this),n>1){var l=re();for(s.sqrTo(o[1],l);a<=u;)o[a]=re(),s.mulTo(l,o[a-2],o[a]),a+=2}var f=t.t-1,d,p=!0,h=re(),m;for(r=ys(t.data[f])-1;f>=0;){for(r>=c?d=t.data[f]>>r-c&u:(d=(t.data[f]&(1<<r+1)-1)<<c-r,f>0&&(d|=t.data[f-1]>>this.DB+r-c)),a=n;!(d&1);)d>>=1,--a;if((r-=a)<0&&(r+=this.DB,--f),p)o[d].copyTo(i),p=!1;else{for(;a>1;)s.sqrTo(i,h),s.sqrTo(h,i),a-=2;a>0?s.sqrTo(i,h):(m=i,i=h,h=m),s.mulTo(h,o[d],i)}for(;f>=0&&!(t.data[f]&1<<r);)s.sqrTo(i,h),m=i,i=h,h=m,--r<0&&(r=this.DB-1,--f)}return s.revert(i)}function Tx(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var n=e;e=r,r=n}var i=e.getLowestSetBit(),s=r.getLowestSetBit();if(s<0)return e;for(i<s&&(s=i),s>0&&(e.rShiftTo(s,e),r.rShiftTo(s,r));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return s>0&&r.lShiftTo(s,r),r}function Rx(t){if(t<=0)return 0;var e=this.DV%t,r=this.s<0?t-1:0;if(this.t>0)if(e==0)r=this.data[0]%t;else for(var n=this.t-1;n>=0;--n)r=(e*r+this.data[n])%t;return r}function Bx(t){var e=t.isEven();if(this.isEven()&&e||t.signum()==0)return T.ZERO;for(var r=t.clone(),n=this.clone(),i=br(1),s=br(0),o=br(0),a=br(1);r.signum()!=0;){for(;r.isEven();)r.rShiftTo(1,r),e?((!i.isEven()||!s.isEven())&&(i.addTo(this,i),s.subTo(t,s)),i.rShiftTo(1,i)):s.isEven()||s.subTo(t,s),s.rShiftTo(1,s);for(;n.isEven();)n.rShiftTo(1,n),e?((!o.isEven()||!a.isEven())&&(o.addTo(this,o),a.subTo(t,a)),o.rShiftTo(1,o)):a.isEven()||a.subTo(t,a),a.rShiftTo(1,a);r.compareTo(n)>=0?(r.subTo(n,r),e&&i.subTo(o,i),s.subTo(a,s)):(n.subTo(r,n),e&&o.subTo(i,o),a.subTo(s,a))}if(n.compareTo(T.ONE)!=0)return T.ZERO;if(a.compareTo(t)>=0)return a.subtract(t);if(a.signum()<0)a.addTo(t,a);else return a;return a.signum()<0?a.add(t):a}var Rt=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509],Lx=(1<<26)/Rt[Rt.length-1];function Px(t){var e,r=this.abs();if(r.t==1&&r.data[0]<=Rt[Rt.length-1]){for(e=0;e<Rt.length;++e)if(r.data[0]==Rt[e])return!0;return!1}if(r.isEven())return!1;for(e=1;e<Rt.length;){for(var n=Rt[e],i=e+1;i<Rt.length&&n<Lx;)n*=Rt[i++];for(n=r.modInt(n);e<i;)if(n%Rt[e++]==0)return!1}return r.millerRabin(t)}function Dx(t){var e=this.subtract(T.ONE),r=e.getLowestSetBit();if(r<=0)return!1;for(var n=e.shiftRight(r),i=Nx(),s,o=0;o<t;++o){do s=new T(this.bitLength(),i);while(s.compareTo(T.ONE)<=0||s.compareTo(e)>=0);var a=s.modPow(n,this);if(a.compareTo(T.ONE)!=0&&a.compareTo(e)!=0){for(var c=1;c++<r&&a.compareTo(e)!=0;)if(a=a.modPowInt(2,this),a.compareTo(T.ONE)==0)return!1;if(a.compareTo(e)!=0)return!1}}return!0}function Nx(){return{nextBytes:function(t){for(var e=0;e<t.length;++e)t[e]=Math.floor(Math.random()*256)}}}T.prototype.chunkSize=ky;T.prototype.toRadix=My;T.prototype.fromRadix=Uy;T.prototype.fromNumber=Fy;T.prototype.bitwiseTo=zy;T.prototype.changeBit=ix;T.prototype.addTo=cx;T.prototype.dMultiply=mx;T.prototype.dAddOffset=gx;T.prototype.multiplyLowerTo=wx;T.prototype.multiplyUpperTo=Ex;T.prototype.modInt=Rx;T.prototype.millerRabin=Dx;T.prototype.clone=Ly;T.prototype.intValue=Py;T.prototype.byteValue=Dy;T.prototype.shortValue=Ny;T.prototype.signum=Oy;T.prototype.toByteArray=Ky;T.prototype.equals=qy;T.prototype.min=Vy;T.prototype.max=$y;T.prototype.and=Gy;T.prototype.or=Wy;T.prototype.xor=Yy;T.prototype.andNot=Qy;T.prototype.not=Xy;T.prototype.shiftLeft=Zy;T.prototype.shiftRight=jy;T.prototype.getLowestSetBit=ex;T.prototype.bitCount=rx;T.prototype.testBit=nx;T.prototype.setBit=sx;T.prototype.clearBit=ox;T.prototype.flipBit=ax;T.prototype.add=ux;T.prototype.subtract=lx;T.prototype.multiply=fx;T.prototype.divide=hx;T.prototype.remainder=dx;T.prototype.divideAndRemainder=px;T.prototype.modPow=Cx;T.prototype.modInverse=Bx;T.prototype.pow=bx;T.prototype.gcd=Tx;T.prototype.isProbablePrime=Px});var eh=q((y_,Jf)=>{var Vt=le();Kr();Re();var Zf=Jf.exports=Vt.sha1=Vt.sha1||{};Vt.md.sha1=Vt.md.algorithms.sha1=Zf;Zf.create=function(){jf||kx();var t=null,e=Vt.util.createBuffer(),r=new Array(80),n={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return n.start=function(){n.messageLength=0,n.fullMessageLength=n.messageLength64=[];for(var i=n.messageLengthSize/4,s=0;s<i;++s)n.fullMessageLength.push(0);return e=Vt.util.createBuffer(),t={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=Vt.util.encodeUtf8(i));var o=i.length;n.messageLength+=o,o=[o/4294967296>>>0,o>>>0];for(var a=n.fullMessageLength.length-1;a>=0;--a)n.fullMessageLength[a]+=o[1],o[1]=o[0]+(n.fullMessageLength[a]/4294967296>>>0),n.fullMessageLength[a]=n.fullMessageLength[a]>>>0,o[0]=o[1]/4294967296>>>0;return e.putBytes(i),Xf(t,r,e),(e.read>2048||e.length()===0)&&e.compact(),n},n.digest=function(){var i=Vt.util.createBuffer();i.putBytes(e.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(Na.substr(0,n.blockLength-o));for(var a,c,u=n.fullMessageLength[0]*8,l=0;l<n.fullMessageLength.length-1;++l)a=n.fullMessageLength[l+1]*8,c=a/4294967296>>>0,u+=c,i.putInt32(u>>>0),u=a>>>0;i.putInt32(u);var f={h0:t.h0,h1:t.h1,h2:t.h2,h3:t.h3,h4:t.h4};Xf(f,r,i);var d=Vt.util.createBuffer();return d.putInt32(f.h0),d.putInt32(f.h1),d.putInt32(f.h2),d.putInt32(f.h3),d.putInt32(f.h4),d},n};var Na=null,jf=!1;function kx(){Na="\x80",Na+=Vt.util.fillString("\0",64),jf=!0}function Xf(t,e,r){for(var n,i,s,o,a,c,u,l,f=r.length();f>=64;){for(i=t.h0,s=t.h1,o=t.h2,a=t.h3,c=t.h4,l=0;l<16;++l)n=r.getInt32(),e[l]=n,u=a^s&(o^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<20;++l)n=e[l-3]^e[l-8]^e[l-14]^e[l-16],n=n<<1|n>>>31,e[l]=n,u=a^s&(o^a),n=(i<<5|i>>>27)+u+c+1518500249+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<32;++l)n=e[l-3]^e[l-8]^e[l-14]^e[l-16],n=n<<1|n>>>31,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<40;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+1859775393+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<60;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s&o|a&(s^o),n=(i<<5|i>>>27)+u+c+2400959708+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;for(;l<80;++l)n=e[l-6]^e[l-16]^e[l-28]^e[l-32],n=n<<2|n>>>30,e[l]=n,u=s^o^a,n=(i<<5|i>>>27)+u+c+3395469782+n,c=a,a=o,o=(s<<30|s>>>2)>>>0,s=i,i=n;t.h0=t.h0+i|0,t.h1=t.h1+s|0,t.h2=t.h2+o|0,t.h3=t.h3+a|0,t.h4=t.h4+c|0,f-=64}}});var nh=q((x_,rh)=>{var $t=le();Re();xi();eh();var th=rh.exports=$t.pkcs1=$t.pkcs1||{};th.encode_rsa_oaep=function(t,e,r){var n,i,s,o;typeof r=="string"?(n=r,i=arguments[3]||void 0,s=arguments[4]||void 0):r&&(n=r.label||void 0,i=r.seed||void 0,s=r.md||void 0,r.mgf1&&r.mgf1.md&&(o=r.mgf1.md)),s?s.start():s=$t.md.sha1.create(),o||(o=s);var a=Math.ceil(t.n.bitLength()/8),c=a-2*s.digestLength-2;if(e.length>c){var u=new Error("RSAES-OAEP input message length is too long.");throw u.length=e.length,u.maxLength=c,u}n||(n=""),s.update(n,"raw");for(var l=s.digest(),f="",d=c-e.length,p=0;p<d;p++)f+="\0";var h=l.getBytes()+f+""+e;if(!i)i=$t.random.getBytes(s.digestLength);else if(i.length!==s.digestLength){var u=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw u.seedLength=i.length,u.digestLength=s.digestLength,u}var m=bs(i,a-s.digestLength-1,o),g=$t.util.xorBytes(h,m,h.length),y=bs(g,s.digestLength,o),x=$t.util.xorBytes(i,y,i.length);return"\0"+x+g};th.decode_rsa_oaep=function(t,e,r){var n,i,s;typeof r=="string"?(n=r,i=arguments[3]||void 0):r&&(n=r.label||void 0,i=r.md||void 0,r.mgf1&&r.mgf1.md&&(s=r.mgf1.md));var o=Math.ceil(t.n.bitLength()/8);if(e.length!==o){var g=new Error("RSAES-OAEP encoded message length is invalid.");throw g.length=e.length,g.expectedLength=o,g}if(i===void 0?i=$t.md.sha1.create():i.start(),s||(s=i),o<2*i.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");n||(n=""),i.update(n,"raw");for(var a=i.digest().getBytes(),c=e.charAt(0),u=e.substring(1,i.digestLength+1),l=e.substring(1+i.digestLength),f=bs(l,i.digestLength,s),d=$t.util.xorBytes(u,f,u.length),p=bs(d,o-i.digestLength-1,s),h=$t.util.xorBytes(l,p,l.length),m=h.substring(0,i.digestLength),g=c!=="\0",y=0;y<i.digestLength;++y)g|=a.charAt(y)!==m.charAt(y);for(var x=1,b=i.digestLength,I=i.digestLength;I<h.length;I++){var v=h.charCodeAt(I),_=v&1^1,P=x?65534:0;g|=v&P,x=x&_,b+=x}if(g||h.charCodeAt(b)!==1)throw new Error("Invalid RSAES-OAEP padding.");return h.substring(b+1)};function bs(t,e,r){r||(r=$t.md.sha1.create());for(var n="",i=Math.ceil(e/r.digestLength),s=0;s<i;++s){var o=String.fromCharCode(s>>24&255,s>>16&255,s>>8&255,s&255);r.start(),r.update(t+o),n+=r.digest().getBytes()}return n.substring(0,e)}});var ih=q((b_,ka)=>{var wr=le();Re();xs();xi();(function(){if(wr.prime){ka.exports=wr.prime;return}var t=ka.exports=wr.prime=wr.prime||{},e=wr.jsbn.BigInteger,r=[6,4,2,4,2,4,6,2],n=new e(null);n.fromInt(30);var i=function(f,d){return f|d};t.generateProbablePrime=function(f,d,p){typeof d=="function"&&(p=d,d={}),d=d||{};var h=d.algorithm||"PRIMEINC";typeof h=="string"&&(h={name:h}),h.options=h.options||{};var m=d.prng||wr.random,g={nextBytes:function(y){for(var x=m.getBytesSync(y.length),b=0;b<y.length;++b)y[b]=x.charCodeAt(b)}};if(h.name==="PRIMEINC")return s(f,g,h.options,p);throw new Error("Invalid prime generation algorithm: "+h.name)};function s(f,d,p,h){return"workers"in p?c(f,d,p,h):o(f,d,p,h)}function o(f,d,p,h){var m=u(f,d),g=0,y=l(m.bitLength());"millerRabinTests"in p&&(y=p.millerRabinTests);var x=10;"maxBlockTime"in p&&(x=p.maxBlockTime),a(m,f,d,g,y,x,h)}function a(f,d,p,h,m,g,y){var x=+new Date;do{if(f.bitLength()>d&&(f=u(d,p)),f.isProbablePrime(m))return y(null,f);f.dAddOffset(r[h++%8],0)}while(g<0||+new Date-x<g);wr.util.setImmediate(function(){a(f,d,p,h,m,g,y)})}function c(f,d,p,h){if(typeof Worker>"u")return o(f,d,p,h);var m=u(f,d),g=p.workers,y=p.workLoad||100,x=y*30/8,b=p.workerScript||"forge/prime.worker.js";if(g===-1)return wr.util.estimateCores(function(v,_){v&&(_=2),g=_-1,I()});I();function I(){g=Math.max(1,g);for(var v=[],_=0;_<g;++_)v[_]=new Worker(b);for(var P=g,_=0;_<g;++_)v[_].addEventListener("message",H);var D=!1;function H(G){if(!D){--P;var $=G.data;if($.found){for(var j=0;j<v.length;++j)v[j].terminate();return D=!0,h(null,new e($.prime,16))}m.bitLength()>f&&(m=u(f,d));var ue=m.toString(16);G.target.postMessage({hex:ue,workLoad:y}),m.dAddOffset(x,0)}}}}function u(f,d){var p=new e(f,d),h=f-1;return p.testBit(h)||p.bitwiseTo(e.ONE.shiftLeft(h),i,p),p.dAddOffset(31-p.mod(n).byteValue(),0),p}function l(f){return f<=100?27:f<=150?18:f<=200?15:f<=250?12:f<=300?9:f<=350?8:f<=400?7:f<=500?6:f<=600?5:f<=800?4:f<=1250?3:2}})()});var Es=q((w_,fh)=>{var V=le();gi();xs();os();nh();ih();xi();Re();typeof te>"u"&&(te=V.jsbn.BigInteger);var te,Oa=V.util.isNodejs?yi():null,E=V.asn1,Et=V.util;V.pki=V.pki||{};fh.exports=V.pki.rsa=V.rsa=V.rsa||{};var W=V.pki,Ox=[6,4,2,4,2,4,6,2],Mx={name:"PrivateKeyInfo",tagClass:E.Class.UNIVERSAL,type:E.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:E.Class.UNIVERSAL,type:E.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:E.Class.UNIVERSAL,type:E.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:E.Class.UNIVERSAL,type:E.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},Ux={name:"RSAPrivateKey",tagClass:E.Class.UNIVERSAL,type:E.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},Fx={name:"RSAPublicKey",tagClass:E.Class.UNIVERSAL,type:E.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:E.Class.UNIVERSAL,type:E.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},Kx=V.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:E.Class.UNIVERSAL,type:E.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:E.Class.UNIVERSAL,type:E.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:E.Class.UNIVERSAL,type:E.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:E.Class.UNIVERSAL,type:E.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:E.Class.UNIVERSAL,type:E.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},qx={name:"DigestInfo",tagClass:E.Class.UNIVERSAL,type:E.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:E.Class.UNIVERSAL,type:E.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:E.Class.UNIVERSAL,type:E.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:E.Class.UNIVERSAL,type:E.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:E.Class.UNIVERSAL,type:E.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},Vx=function(t){var e;if(t.algorithm in W.oids)e=W.oids[t.algorithm];else{var r=new Error("Unknown message digest algorithm.");throw r.algorithm=t.algorithm,r}var n=E.oidToDer(e).getBytes(),i=E.create(E.Class.UNIVERSAL,E.Type.SEQUENCE,!0,[]),s=E.create(E.Class.UNIVERSAL,E.Type.SEQUENCE,!0,[]);s.value.push(E.create(E.Class.UNIVERSAL,E.Type.OID,!1,n)),s.value.push(E.create(E.Class.UNIVERSAL,E.Type.NULL,!1,""));var o=E.create(E.Class.UNIVERSAL,E.Type.OCTETSTRING,!1,t.digest().getBytes());return i.value.push(s),i.value.push(o),E.toDer(i).getBytes()},uh=function(t,e,r){if(r)return t.modPow(e.e,e.n);if(!e.p||!e.q)return t.modPow(e.d,e.n);e.dP||(e.dP=e.d.mod(e.p.subtract(te.ONE))),e.dQ||(e.dQ=e.d.mod(e.q.subtract(te.ONE))),e.qInv||(e.qInv=e.q.modInverse(e.p));var n;do n=new te(V.util.bytesToHex(V.random.getBytes(e.n.bitLength()/8)),16);while(n.compareTo(e.n)>=0||!n.gcd(e.n).equals(te.ONE));t=t.multiply(n.modPow(e.e,e.n)).mod(e.n);for(var i=t.mod(e.p).modPow(e.dP,e.p),s=t.mod(e.q).modPow(e.dQ,e.q);i.compareTo(s)<0;)i=i.add(e.p);var o=i.subtract(s).multiply(e.qInv).mod(e.p).multiply(e.q).add(s);return o=o.multiply(n.modInverse(e.n)).mod(e.n),o};W.rsa.encrypt=function(t,e,r){var n=r,i,s=Math.ceil(e.n.bitLength()/8);r!==!1&&r!==!0?(n=r===2,i=lh(t,e,r)):(i=V.util.createBuffer(),i.putBytes(t));for(var o=new te(i.toHex(),16),a=uh(o,e,n),c=a.toString(16),u=V.util.createBuffer(),l=s-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes(V.util.hexToBytes(c)),u.getBytes()};W.rsa.decrypt=function(t,e,r,n){var i=Math.ceil(e.n.bitLength()/8);if(t.length!==i){var s=new Error("Encrypted message length is invalid.");throw s.length=t.length,s.expected=i,s}var o=new te(V.util.createBuffer(t).toHex(),16);if(o.compareTo(e.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=uh(o,e,r),c=a.toString(16),u=V.util.createBuffer(),l=i-Math.ceil(c.length/2);l>0;)u.putByte(0),--l;return u.putBytes(V.util.hexToBytes(c)),n!==!1?ws(u.getBytes(),e,r):u.getBytes()};W.rsa.createKeyPairGenerationState=function(t,e,r){typeof t=="string"&&(t=parseInt(t,10)),t=t||2048,r=r||{};var n=r.prng||V.random,i={nextBytes:function(a){for(var c=n.getBytesSync(a.length),u=0;u<a.length;++u)a[u]=c.charCodeAt(u)}},s=r.algorithm||"PRIMEINC",o;if(s==="PRIMEINC")o={algorithm:s,state:0,bits:t,rng:i,eInt:e||65537,e:new te(null),p:null,q:null,qBits:t>>1,pBits:t-(t>>1),pqState:0,num:null,keys:null},o.e.fromInt(o.eInt);else throw new Error("Invalid key generation algorithm: "+s);return o};W.rsa.stepKeyPairGenerationState=function(t,e){"algorithm"in t||(t.algorithm="PRIMEINC");var r=new te(null);r.fromInt(30);for(var n=0,i=function(f,d){return f|d},s=+new Date,o,a=0;t.keys===null&&(e<=0||a<e);){if(t.state===0){var c=t.p===null?t.pBits:t.qBits,u=c-1;t.pqState===0?(t.num=new te(c,t.rng),t.num.testBit(u)||t.num.bitwiseTo(te.ONE.shiftLeft(u),i,t.num),t.num.dAddOffset(31-t.num.mod(r).byteValue(),0),n=0,++t.pqState):t.pqState===1?t.num.bitLength()>c?t.pqState=0:t.num.isProbablePrime(zx(t.num.bitLength()))?++t.pqState:t.num.dAddOffset(Ox[n++%8],0):t.pqState===2?t.pqState=t.num.subtract(te.ONE).gcd(t.e).compareTo(te.ONE)===0?3:0:t.pqState===3&&(t.pqState=0,t.p===null?t.p=t.num:t.q=t.num,t.p!==null&&t.q!==null&&++t.state,t.num=null)}else if(t.state===1)t.p.compareTo(t.q)<0&&(t.num=t.p,t.p=t.q,t.q=t.num),++t.state;else if(t.state===2)t.p1=t.p.subtract(te.ONE),t.q1=t.q.subtract(te.ONE),t.phi=t.p1.multiply(t.q1),++t.state;else if(t.state===3)t.phi.gcd(t.e).compareTo(te.ONE)===0?++t.state:(t.p=null,t.q=null,t.state=0);else if(t.state===4)t.n=t.p.multiply(t.q),t.n.bitLength()===t.bits?++t.state:(t.q=null,t.state=0);else if(t.state===5){var l=t.e.modInverse(t.phi);t.keys={privateKey:W.rsa.setPrivateKey(t.n,t.e,l,t.p,t.q,l.mod(t.p1),l.mod(t.q1),t.q.modInverse(t.p)),publicKey:W.rsa.setPublicKey(t.n,t.e)}}o=+new Date,a+=o-s,s=o}return t.keys!==null};W.rsa.generateKeyPair=function(t,e,r,n){if(arguments.length===1?typeof t=="object"?(r=t,t=void 0):typeof t=="function"&&(n=t,t=void 0):arguments.length===2?typeof t=="number"?typeof e=="function"?(n=e,e=void 0):typeof e!="number"&&(r=e,e=void 0):(r=t,n=e,t=void 0,e=void 0):arguments.length===3&&(typeof e=="number"?typeof r=="function"&&(n=r,r=void 0):(n=r,r=e,e=void 0)),r=r||{},t===void 0&&(t=r.bits||2048),e===void 0&&(e=r.e||65537),!V.options.usePureJavaScript&&!r.prng&&t>=256&&t<=16384&&(e===65537||e===3)){if(n){if(sh("generateKeyPair"))return Oa.generateKeyPair("rsa",{modulusLength:t,publicExponent:e,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,u){if(a)return n(a);n(null,{privateKey:W.privateKeyFromPem(u),publicKey:W.publicKeyFromPem(c)})});if(oh("generateKey")&&oh("exportKey"))return Et.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:ch(e),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return Et.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=W.privateKeyFromAsn1(E.fromDer(V.util.createBuffer(a)));n(null,{privateKey:c,publicKey:W.setRsaPublicKey(c.n,c.e)})}});if(ah("generateKey")&&ah("exportKey")){var i=Et.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:ch(e),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=Et.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(l){var f=l.target.result,d=W.privateKeyFromAsn1(E.fromDer(V.util.createBuffer(f)));n(null,{privateKey:d,publicKey:W.setRsaPublicKey(d.n,d.e)})},u.onerror=function(l){n(l)}},i.onerror=function(a){n(a)};return}}else if(sh("generateKeyPairSync")){var s=Oa.generateKeyPairSync("rsa",{modulusLength:t,publicExponent:e,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:W.privateKeyFromPem(s.privateKey),publicKey:W.publicKeyFromPem(s.publicKey)}}}var o=W.rsa.createKeyPairGenerationState(t,e,r);if(!n)return W.rsa.stepKeyPairGenerationState(o,0),o.keys;$x(o,r,n)};W.setRsaPublicKey=W.rsa.setPublicKey=function(t,e){var r={n:t,e};return r.encrypt=function(n,i,s){if(typeof i=="string"?i=i.toUpperCase():i===void 0&&(i="RSAES-PKCS1-V1_5"),i==="RSAES-PKCS1-V1_5")i={encode:function(a,c,u){return lh(a,c,2).getBytes()}};else if(i==="RSA-OAEP"||i==="RSAES-OAEP")i={encode:function(a,c){return V.pkcs1.encode_rsa_oaep(c,a,s)}};else if(["RAW","NONE","NULL",null].indexOf(i)!==-1)i={encode:function(a){return a}};else if(typeof i=="string")throw new Error('Unsupported encryption scheme: "'+i+'".');var o=i.encode(n,r,!0);return W.rsa.encrypt(o,r,!0)},r.verify=function(n,i,s,o){typeof s=="string"?s=s.toUpperCase():s===void 0&&(s="RSASSA-PKCS1-V1_5"),o===void 0&&(o={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in o||(o._parseAllDigestBytes=!0),s==="RSASSA-PKCS1-V1_5"?s={verify:function(c,u){u=ws(u,r,!0);var l=E.fromDer(u,{parseAllBytes:o._parseAllDigestBytes}),f={},d=[];if(!E.validate(l,qx,f,d)){var p=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw p.errors=d,p}var h=E.derToOid(f.algorithmIdentifier);if(!(h===V.oids.md2||h===V.oids.md5||h===V.oids.sha1||h===V.oids.sha224||h===V.oids.sha256||h===V.oids.sha384||h===V.oids.sha512||h===V.oids["sha512-224"]||h===V.oids["sha512-256"])){var p=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw p.oid=h,p}if((h===V.oids.md2||h===V.oids.md5)&&!("parameters"in f))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return c===f.digest}}:(s==="NONE"||s==="NULL"||s===null)&&(s={verify:function(c,u){return u=ws(u,r,!0),c===u}});var a=W.rsa.decrypt(i,r,!0,!1);return s.verify(n,a,r.n.bitLength())},r};W.setRsaPrivateKey=W.rsa.setPrivateKey=function(t,e,r,n,i,s,o,a){var c={n:t,e,d:r,p:n,q:i,dP:s,dQ:o,qInv:a};return c.decrypt=function(u,l,f){typeof l=="string"?l=l.toUpperCase():l===void 0&&(l="RSAES-PKCS1-V1_5");var d=W.rsa.decrypt(u,c,!1,!1);if(l==="RSAES-PKCS1-V1_5")l={decode:ws};else if(l==="RSA-OAEP"||l==="RSAES-OAEP")l={decode:function(p,h){return V.pkcs1.decode_rsa_oaep(h,p,f)}};else if(["RAW","NONE","NULL",null].indexOf(l)!==-1)l={decode:function(p){return p}};else throw new Error('Unsupported encryption scheme: "'+l+'".');return l.decode(d,c,!1)},c.sign=function(u,l){var f=!1;typeof l=="string"&&(l=l.toUpperCase()),l===void 0||l==="RSASSA-PKCS1-V1_5"?(l={encode:Vx},f=1):(l==="NONE"||l==="NULL"||l===null)&&(l={encode:function(){return u}},f=1);var d=l.encode(u,c.n.bitLength());return W.rsa.encrypt(d,c,f)},c};W.wrapRsaPrivateKey=function(t){return E.create(E.Class.UNIVERSAL,E.Type.SEQUENCE,!0,[E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,E.integerToDer(0).getBytes()),E.create(E.Class.UNIVERSAL,E.Type.SEQUENCE,!0,[E.create(E.Class.UNIVERSAL,E.Type.OID,!1,E.oidToDer(W.oids.rsaEncryption).getBytes()),E.create(E.Class.UNIVERSAL,E.Type.NULL,!1,"")]),E.create(E.Class.UNIVERSAL,E.Type.OCTETSTRING,!1,E.toDer(t).getBytes())])};W.privateKeyFromAsn1=function(t){var e={},r=[];if(E.validate(t,Mx,e,r)&&(t=E.fromDer(V.util.createBuffer(e.privateKey))),e={},r=[],!E.validate(t,Ux,e,r)){var n=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw n.errors=r,n}var i,s,o,a,c,u,l,f;return i=V.util.createBuffer(e.privateKeyModulus).toHex(),s=V.util.createBuffer(e.privateKeyPublicExponent).toHex(),o=V.util.createBuffer(e.privateKeyPrivateExponent).toHex(),a=V.util.createBuffer(e.privateKeyPrime1).toHex(),c=V.util.createBuffer(e.privateKeyPrime2).toHex(),u=V.util.createBuffer(e.privateKeyExponent1).toHex(),l=V.util.createBuffer(e.privateKeyExponent2).toHex(),f=V.util.createBuffer(e.privateKeyCoefficient).toHex(),W.setRsaPrivateKey(new te(i,16),new te(s,16),new te(o,16),new te(a,16),new te(c,16),new te(u,16),new te(l,16),new te(f,16))};W.privateKeyToAsn1=W.privateKeyToRSAPrivateKey=function(t){return E.create(E.Class.UNIVERSAL,E.Type.SEQUENCE,!0,[E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,E.integerToDer(0).getBytes()),E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,zt(t.n)),E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,zt(t.e)),E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,zt(t.d)),E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,zt(t.p)),E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,zt(t.q)),E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,zt(t.dP)),E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,zt(t.dQ)),E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,zt(t.qInv))])};W.publicKeyFromAsn1=function(t){var e={},r=[];if(E.validate(t,Kx,e,r)){var n=E.derToOid(e.publicKeyOid);if(n!==W.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}t=e.rsaPublicKey}if(r=[],!E.validate(t,Fx,e,r)){var i=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw i.errors=r,i}var s=V.util.createBuffer(e.publicKeyModulus).toHex(),o=V.util.createBuffer(e.publicKeyExponent).toHex();return W.setRsaPublicKey(new te(s,16),new te(o,16))};W.publicKeyToAsn1=W.publicKeyToSubjectPublicKeyInfo=function(t){return E.create(E.Class.UNIVERSAL,E.Type.SEQUENCE,!0,[E.create(E.Class.UNIVERSAL,E.Type.SEQUENCE,!0,[E.create(E.Class.UNIVERSAL,E.Type.OID,!1,E.oidToDer(W.oids.rsaEncryption).getBytes()),E.create(E.Class.UNIVERSAL,E.Type.NULL,!1,"")]),E.create(E.Class.UNIVERSAL,E.Type.BITSTRING,!1,[W.publicKeyToRSAPublicKey(t)])])};W.publicKeyToRSAPublicKey=function(t){return E.create(E.Class.UNIVERSAL,E.Type.SEQUENCE,!0,[E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,zt(t.n)),E.create(E.Class.UNIVERSAL,E.Type.INTEGER,!1,zt(t.e))])};function lh(t,e,r){var n=V.util.createBuffer(),i=Math.ceil(e.n.bitLength()/8);if(t.length>i-11){var s=new Error("Message is too long for PKCS#1 v1.5 padding.");throw s.length=t.length,s.max=i-11,s}n.putByte(0),n.putByte(r);var o=i-3-t.length,a;if(r===0||r===1){a=r===0?0:255;for(var c=0;c<o;++c)n.putByte(a)}else for(;o>0;){for(var u=0,l=V.random.getBytes(o),c=0;c<o;++c)a=l.charCodeAt(c),a===0?++u:n.putByte(a);o=u}return n.putByte(0),n.putBytes(t),n}function ws(t,e,r,n){var i=Math.ceil(e.n.bitLength()/8),s=V.util.createBuffer(t),o=s.getByte(),a=s.getByte();if(o!==0||r&&a!==0&&a!==1||!r&&a!=2||r&&a===0&&typeof n>"u")throw new Error("Encryption block is invalid.");var c=0;if(a===0){c=i-3-n;for(var u=0;u<c;++u)if(s.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(a===1)for(c=0;s.length()>1;){if(s.getByte()!==255){--s.read;break}++c}else if(a===2)for(c=0;s.length()>1;){if(s.getByte()===0){--s.read;break}++c}var l=s.getByte();if(l!==0||c!==i-3-s.length())throw new Error("Encryption block is invalid.");return s.getBytes()}function $x(t,e,r){typeof e=="function"&&(r=e,e={}),e=e||{};var n={algorithm:{name:e.algorithm||"PRIMEINC",options:{workers:e.workers||2,workLoad:e.workLoad||100,workerScript:e.workerScript}}};"prng"in e&&(n.prng=e.prng),i();function i(){s(t.pBits,function(a,c){if(a)return r(a);if(t.p=c,t.q!==null)return o(a,t.q);s(t.qBits,o)})}function s(a,c){V.prime.generateProbablePrime(a,n,c)}function o(a,c){if(a)return r(a);if(t.q=c,t.p.compareTo(t.q)<0){var u=t.p;t.p=t.q,t.q=u}if(t.p.subtract(te.ONE).gcd(t.e).compareTo(te.ONE)!==0){t.p=null,i();return}if(t.q.subtract(te.ONE).gcd(t.e).compareTo(te.ONE)!==0){t.q=null,s(t.qBits,o);return}if(t.p1=t.p.subtract(te.ONE),t.q1=t.q.subtract(te.ONE),t.phi=t.p1.multiply(t.q1),t.phi.gcd(t.e).compareTo(te.ONE)!==0){t.p=t.q=null,i();return}if(t.n=t.p.multiply(t.q),t.n.bitLength()!==t.bits){t.q=null,s(t.qBits,o);return}var l=t.e.modInverse(t.phi);t.keys={privateKey:W.rsa.setPrivateKey(t.n,t.e,l,t.p,t.q,l.mod(t.p1),l.mod(t.q1),t.q.modInverse(t.p)),publicKey:W.rsa.setPublicKey(t.n,t.e)},r(null,t.keys)}}function zt(t){var e=t.toString(16);e[0]>="8"&&(e="00"+e);var r=V.util.hexToBytes(e);return r.length>1&&(r.charCodeAt(0)===0&&!(r.charCodeAt(1)&128)||r.charCodeAt(0)===255&&(r.charCodeAt(1)&128)===128)?r.substr(1):r}function zx(t){return t<=100?27:t<=150?18:t<=200?15:t<=250?12:t<=300?9:t<=350?8:t<=400?7:t<=500?6:t<=600?5:t<=800?4:t<=1250?3:2}function sh(t){return V.util.isNodejs&&typeof Oa[t]=="function"}function oh(t){return typeof Et.globalScope<"u"&&typeof Et.globalScope.crypto=="object"&&typeof Et.globalScope.crypto.subtle=="object"&&typeof Et.globalScope.crypto.subtle[t]=="function"}function ah(t){return typeof Et.globalScope<"u"&&typeof Et.globalScope.msCrypto=="object"&&typeof Et.globalScope.msCrypto.subtle=="object"&&typeof Et.globalScope.msCrypto.subtle[t]=="function"}function ch(t){for(var e=V.util.hexToBytes(t.toString(16)),r=new Uint8Array(e.length),n=0;n<e.length;++n)r[n]=e.charCodeAt(n);return r}});var yh=q((E_,gh)=>{var M=le();Ca();gi();Ef();Kr();os();If();Rf();xi();qf();Es();Re();typeof hh>"u"&&(hh=M.jsbn.BigInteger);var hh,A=M.asn1,Y=M.pki=M.pki||{};gh.exports=Y.pbe=M.pbe=M.pbe||{};var $r=Y.oids,Hx={name:"EncryptedPrivateKeyInfo",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},Gx={name:"PBES2Algorithms",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},Wx={name:"pkcs-12PbeParams",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,capture:"iterations"}]};Y.encryptPrivateKeyInfo=function(t,e,r){r=r||{},r.saltSize=r.saltSize||8,r.count=r.count||2048,r.algorithm=r.algorithm||"aes128",r.prfAlgorithm=r.prfAlgorithm||"sha1";var n=M.random.getBytesSync(r.saltSize),i=r.count,s=A.integerToDer(i),o,a,c;if(r.algorithm.indexOf("aes")===0||r.algorithm==="des"){var u,l,f;switch(r.algorithm){case"aes128":o=16,u=16,l=$r["aes128-CBC"],f=M.aes.createEncryptionCipher;break;case"aes192":o=24,u=16,l=$r["aes192-CBC"],f=M.aes.createEncryptionCipher;break;case"aes256":o=32,u=16,l=$r["aes256-CBC"],f=M.aes.createEncryptionCipher;break;case"des":o=8,u=8,l=$r.desCBC,f=M.des.createEncryptionCipher;break;default:var d=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw d.algorithm=r.algorithm,d}var p="hmacWith"+r.prfAlgorithm.toUpperCase(),h=mh(p),m=M.pkcs5.pbkdf2(e,n,i,o,h),g=M.random.getBytesSync(u),y=f(m);y.start(g),y.update(A.toDer(t)),y.finish(),c=y.output.getBytes();var x=Yx(n,s,o,p);a=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer($r.pkcs5PBES2).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer($r.pkcs5PBKDF2).getBytes()),x]),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(l).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,g)])])])}else if(r.algorithm==="3des"){o=24;var b=new M.util.ByteBuffer(n),m=Y.pbe.generatePkcs12Key(e,b,1,i,o),g=Y.pbe.generatePkcs12Key(e,b,2,i,o),y=M.des.createEncryptionCipher(m);y.start(g),y.update(A.toDer(t)),y.finish(),c=y.output.getBytes(),a=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer($r["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,n),A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,s.getBytes())])])}else{var d=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw d.algorithm=r.algorithm,d}var I=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[a,A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,c)]);return I};Y.decryptPrivateKeyInfo=function(t,e){var r=null,n={},i=[];if(!A.validate(t,Hx,n,i)){var s=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}var o=A.derToOid(n.encryptionOid),a=Y.pbe.getCipher(o,n.encryptionParams,e),c=M.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(r=A.fromDer(a.output)),r};Y.encryptedPrivateKeyToPem=function(t,e){var r={type:"ENCRYPTED PRIVATE KEY",body:A.toDer(t).getBytes()};return M.pem.encode(r,{maxline:e})};Y.encryptedPrivateKeyFromPem=function(t){var e=M.pem.decode(t)[0];if(e.type!=="ENCRYPTED PRIVATE KEY"){var r=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw r.headerType=e.type,r}if(e.procType&&e.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return A.fromDer(e.body)};Y.encryptRsaPrivateKey=function(t,e,r){if(r=r||{},!r.legacy){var n=Y.wrapRsaPrivateKey(Y.privateKeyToAsn1(t));return n=Y.encryptPrivateKeyInfo(n,e,r),Y.encryptedPrivateKeyToPem(n)}var i,s,o,a;switch(r.algorithm){case"aes128":i="AES-128-CBC",o=16,s=M.random.getBytesSync(16),a=M.aes.createEncryptionCipher;break;case"aes192":i="AES-192-CBC",o=24,s=M.random.getBytesSync(16),a=M.aes.createEncryptionCipher;break;case"aes256":i="AES-256-CBC",o=32,s=M.random.getBytesSync(16),a=M.aes.createEncryptionCipher;break;case"3des":i="DES-EDE3-CBC",o=24,s=M.random.getBytesSync(8),a=M.des.createEncryptionCipher;break;case"des":i="DES-CBC",o=8,s=M.random.getBytesSync(8),a=M.des.createEncryptionCipher;break;default:var c=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+r.algorithm+'".');throw c.algorithm=r.algorithm,c}var u=M.pbe.opensslDeriveBytes(e,s.substr(0,8),o),l=a(u);l.start(s),l.update(A.toDer(Y.privateKeyToAsn1(t))),l.finish();var f={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:i,parameters:M.util.bytesToHex(s).toUpperCase()},body:l.output.getBytes()};return M.pem.encode(f)};Y.decryptRsaPrivateKey=function(t,e){var r=null,n=M.pem.decode(t)[0];if(n.type!=="ENCRYPTED PRIVATE KEY"&&n.type!=="PRIVATE KEY"&&n.type!=="RSA PRIVATE KEY"){var i=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw i.headerType=i,i}if(n.procType&&n.procType.type==="ENCRYPTED"){var s,o;switch(n.dekInfo.algorithm){case"DES-CBC":s=8,o=M.des.createDecryptionCipher;break;case"DES-EDE3-CBC":s=24,o=M.des.createDecryptionCipher;break;case"AES-128-CBC":s=16,o=M.aes.createDecryptionCipher;break;case"AES-192-CBC":s=24,o=M.aes.createDecryptionCipher;break;case"AES-256-CBC":s=32,o=M.aes.createDecryptionCipher;break;case"RC2-40-CBC":s=5,o=function(f){return M.rc2.createDecryptionCipher(f,40)};break;case"RC2-64-CBC":s=8,o=function(f){return M.rc2.createDecryptionCipher(f,64)};break;case"RC2-128-CBC":s=16,o=function(f){return M.rc2.createDecryptionCipher(f,128)};break;default:var i=new Error('Could not decrypt private key; unsupported encryption algorithm "'+n.dekInfo.algorithm+'".');throw i.algorithm=n.dekInfo.algorithm,i}var a=M.util.hexToBytes(n.dekInfo.parameters),c=M.pbe.opensslDeriveBytes(e,a.substr(0,8),s),u=o(c);if(u.start(a),u.update(M.util.createBuffer(n.body)),u.finish())r=u.output.getBytes();else return r}else r=n.body;return n.type==="ENCRYPTED PRIVATE KEY"?r=Y.decryptPrivateKeyInfo(A.fromDer(r),e):r=A.fromDer(r),r!==null&&(r=Y.privateKeyFromAsn1(r)),r};Y.pbe.generatePkcs12Key=function(t,e,r,n,i,s){var o,a;if(typeof s>"u"||s===null){if(!("sha1"in M.md))throw new Error('"sha1" hash algorithm unavailable.');s=M.md.sha1.create()}var c=s.digestLength,u=s.blockLength,l=new M.util.ByteBuffer,f=new M.util.ByteBuffer;if(t!=null){for(a=0;a<t.length;a++)f.putInt16(t.charCodeAt(a));f.putInt16(0)}var d=f.length(),p=e.length(),h=new M.util.ByteBuffer;h.fillWithByte(r,u);var m=u*Math.ceil(p/u),g=new M.util.ByteBuffer;for(a=0;a<m;a++)g.putByte(e.at(a%p));var y=u*Math.ceil(d/u),x=new M.util.ByteBuffer;for(a=0;a<y;a++)x.putByte(f.at(a%d));var b=g;b.putBuffer(x);for(var I=Math.ceil(i/c),v=1;v<=I;v++){var _=new M.util.ByteBuffer;_.putBytes(h.bytes()),_.putBytes(b.bytes());for(var P=0;P<n;P++)s.start(),s.update(_.getBytes()),_=s.digest();var D=new M.util.ByteBuffer;for(a=0;a<u;a++)D.putByte(_.at(a%c));var H=Math.ceil(p/u)+Math.ceil(d/u),G=new M.util.ByteBuffer;for(o=0;o<H;o++){var $=new M.util.ByteBuffer(b.getBytes(u)),j=511;for(a=D.length()-1;a>=0;a--)j=j>>8,j+=D.at(a)+$.at(a),$.setAt(a,j&255);G.putBuffer($)}b=G,l.putBuffer(_)}return l.truncate(l.length()-i),l};Y.pbe.getCipher=function(t,e,r){switch(t){case Y.oids.pkcs5PBES2:return Y.pbe.getCipherForPBES2(t,e,r);case Y.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case Y.oids["pbewithSHAAnd40BitRC2-CBC"]:return Y.pbe.getCipherForPKCS12PBE(t,e,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=t,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};Y.pbe.getCipherForPBES2=function(t,e,r){var n={},i=[];if(!A.validate(e,Gx,n,i)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}if(t=A.derToOid(n.kdfOid),t!==Y.oids.pkcs5PBKDF2){var s=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw s.oid=t,s.supportedOids=["pkcs5PBKDF2"],s}if(t=A.derToOid(n.encOid),t!==Y.oids["aes128-CBC"]&&t!==Y.oids["aes192-CBC"]&&t!==Y.oids["aes256-CBC"]&&t!==Y.oids["des-EDE3-CBC"]&&t!==Y.oids.desCBC){var s=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw s.oid=t,s.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],s}var o=n.kdfSalt,a=M.util.createBuffer(n.kdfIterationCount);a=a.getInt(a.length()<<3);var c,u;switch(Y.oids[t]){case"aes128-CBC":c=16,u=M.aes.createDecryptionCipher;break;case"aes192-CBC":c=24,u=M.aes.createDecryptionCipher;break;case"aes256-CBC":c=32,u=M.aes.createDecryptionCipher;break;case"des-EDE3-CBC":c=24,u=M.des.createDecryptionCipher;break;case"desCBC":c=8,u=M.des.createDecryptionCipher;break}var l=ph(n.prfOid),f=M.pkcs5.pbkdf2(r,o,a,c,l),d=n.encIv,p=u(f);return p.start(d),p};Y.pbe.getCipherForPKCS12PBE=function(t,e,r){var n={},i=[];if(!A.validate(e,Wx,n,i)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=i,s}var o=M.util.createBuffer(n.salt),a=M.util.createBuffer(n.iterations);a=a.getInt(a.length()<<3);var c,u,l;switch(t){case Y.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,l=M.des.startDecrypting;break;case Y.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,u=8,l=function(m,g){var y=M.rc2.createDecryptionCipher(m,40);return y.start(g,null),y};break;default:var s=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw s.oid=t,s}var f=ph(n.prfOid),d=Y.pbe.generatePkcs12Key(r,o,1,a,c,f);f.start();var p=Y.pbe.generatePkcs12Key(r,o,2,a,u,f);return l(d,p)};Y.pbe.opensslDeriveBytes=function(t,e,r,n){if(typeof n>"u"||n===null){if(!("md5"in M.md))throw new Error('"md5" hash algorithm unavailable.');n=M.md.md5.create()}e===null&&(e="");for(var i=[dh(n,t+e)],s=16,o=1;s<r;++o,s+=16)i.push(dh(n,i[o-1]+t+e));return i.join("").substr(0,r)};function dh(t,e){return t.start().update(e).digest().getBytes()}function ph(t){var e;if(!t)e="hmacWithSHA1";else if(e=Y.oids[A.derToOid(t)],!e){var r=new Error("Unsupported PRF OID.");throw r.oid=t,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}return mh(e)}function mh(t){var e=M.md;switch(t){case"hmacWithSHA224":e=M.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":t=t.substr(8).toLowerCase();break;default:var r=new Error("Unsupported PRF algorithm.");throw r.algorithm=t,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}if(!e||!(t in e))throw new Error("Unknown hash algorithm: "+t);return e[t].create()}function Yx(t,e,r,n){var i=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,t),A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,e.getBytes())]);return n!=="hmacWithSHA1"&&i.value.push(A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,M.util.hexToBytes(r.toString(16))),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(Y.oids[n]).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.NULL,!1,"")])),i}});var B0=q((g4,R0)=>{var me=le();Kr();Re();var Pi=R0.exports=me.sha512=me.sha512||{};me.md.sha512=me.md.algorithms.sha512=Pi;var C0=me.sha384=me.sha512.sha384=me.sha512.sha384||{};C0.create=function(){return Pi.create("SHA-384")};me.md.sha384=me.md.algorithms.sha384=C0;me.sha512.sha256=me.sha512.sha256||{create:function(){return Pi.create("SHA-512/256")}};me.md["sha512/256"]=me.md.algorithms["sha512/256"]=me.sha512.sha256;me.sha512.sha224=me.sha512.sha224||{create:function(){return Pi.create("SHA-512/224")}};me.md["sha512/224"]=me.md.algorithms["sha512/224"]=me.sha512.sha224;Pi.create=function(t){if(T0||b2(),typeof t>"u"&&(t="SHA-512"),!(t in tn))throw new Error("Invalid SHA-512 algorithm: "+t);for(var e=tn[t],r=null,n=me.util.createBuffer(),i=new Array(80),s=0;s<80;++s)i[s]=new Array(2);var o=64;switch(t){case"SHA-384":o=48;break;case"SHA-512/256":o=32;break;case"SHA-512/224":o=28;break}var a={algorithm:t.replace("-","").toLowerCase(),blockLength:128,digestLength:o,messageLength:0,fullMessageLength:null,messageLengthSize:16};return a.start=function(){a.messageLength=0,a.fullMessageLength=a.messageLength128=[];for(var c=a.messageLengthSize/4,u=0;u<c;++u)a.fullMessageLength.push(0);n=me.util.createBuffer(),r=new Array(e.length);for(var u=0;u<e.length;++u)r[u]=e[u].slice(0);return a},a.start(),a.update=function(c,u){u==="utf8"&&(c=me.util.encodeUtf8(c));var l=c.length;a.messageLength+=l,l=[l/4294967296>>>0,l>>>0];for(var f=a.fullMessageLength.length-1;f>=0;--f)a.fullMessageLength[f]+=l[1],l[1]=l[0]+(a.fullMessageLength[f]/4294967296>>>0),a.fullMessageLength[f]=a.fullMessageLength[f]>>>0,l[0]=l[1]/4294967296>>>0;return n.putBytes(c),I0(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=me.util.createBuffer();c.putBytes(n.bytes());var u=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,l=u&a.blockLength-1;c.putBytes(Hc.substr(0,a.blockLength-l));for(var f,d,p=a.fullMessageLength[0]*8,h=0;h<a.fullMessageLength.length-1;++h)f=a.fullMessageLength[h+1]*8,d=f/4294967296>>>0,p+=d,c.putInt32(p>>>0),p=f>>>0;c.putInt32(p);for(var m=new Array(r.length),h=0;h<r.length;++h)m[h]=r[h].slice(0);I0(m,i,c);var g=me.util.createBuffer(),y;t==="SHA-512"?y=m.length:t==="SHA-384"?y=m.length-2:y=m.length-4;for(var h=0;h<y;++h)g.putInt32(m[h][0]),(h!==y-1||t!=="SHA-512/224")&&g.putInt32(m[h][1]);return g},a};var Hc=null,T0=!1,Gc=null,tn=null;function b2(){Hc="\x80",Hc+=me.util.fillString("\0",128),Gc=[[1116352408,3609767458],[1899447441,602891725],[3049323471,3964484399],[3921009573,2173295548],[961987163,4081628472],[1508970993,3053834265],[2453635748,2937671579],[2870763221,3664609560],[3624381080,2734883394],[310598401,1164996542],[607225278,1323610764],[1426881987,3590304994],[1925078388,4068182383],[2162078206,991336113],[2614888103,633803317],[3248222580,3479774868],[3835390401,2666613458],[4022224774,944711139],[264347078,2341262773],[604807628,2007800933],[770255983,1495990901],[1249150122,1856431235],[1555081692,3175218132],[1996064986,2198950837],[2554220882,3999719339],[2821834349,766784016],[2952996808,2566594879],[3210313671,3203337956],[3336571891,1034457026],[3584528711,2466948901],[113926993,3758326383],[338241895,168717936],[666307205,1188179964],[773529912,1546045734],[1294757372,1522805485],[1396182291,2643833823],[1695183700,2343527390],[1986661051,1014477480],[2177026350,1206759142],[2456956037,344077627],[2730485921,1290863460],[2820302411,3158454273],[3259730800,3505952657],[3345764771,106217008],[3516065817,3606008344],[3600352804,1432725776],[4094571909,1467031594],[275423344,851169720],[430227734,3100823752],[506948616,1363258195],[659060556,3750685593],[883997877,3785050280],[958139571,3318307427],[1322822218,3812723403],[1537002063,2003034995],[1747873779,3602036899],[1955562222,1575990012],[2024104815,1125592928],[2227730452,2716904306],[2361852424,442776044],[2428436474,593698344],[2756734187,3733110249],[3204031479,2999351573],[3329325298,3815920427],[3391569614,3928383900],[3515267271,566280711],[3940187606,3454069534],[4118630271,4000239992],[116418474,1914138554],[174292421,2731055270],[289380356,3203993006],[460393269,320620315],[685471733,587496836],[852142971,1086792851],[1017036298,365543100],[1126000580,2618297676],[1288033470,3409855158],[1501505948,4234509866],[1607167915,987167468],[1816402316,1246189591]],tn={},tn["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],tn["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],tn["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],tn["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],T0=!0}function I0(t,e,r){for(var n,i,s,o,a,c,u,l,f,d,p,h,m,g,y,x,b,I,v,_,P,D,H,G,$,j,ue,Ke,R,k,L,N,C,U,K,z=r.length();z>=128;){for(R=0;R<16;++R)e[R][0]=r.getInt32()>>>0,e[R][1]=r.getInt32()>>>0;for(;R<80;++R)N=e[R-2],k=N[0],L=N[1],n=((k>>>19|L<<13)^(L>>>29|k<<3)^k>>>6)>>>0,i=((k<<13|L>>>19)^(L<<3|k>>>29)^(k<<26|L>>>6))>>>0,U=e[R-15],k=U[0],L=U[1],s=((k>>>1|L<<31)^(k>>>8|L<<24)^k>>>7)>>>0,o=((k<<31|L>>>1)^(k<<24|L>>>8)^(k<<25|L>>>7))>>>0,C=e[R-7],K=e[R-16],L=i+C[1]+o+K[1],e[R][0]=n+C[0]+s+K[0]+(L/4294967296>>>0)>>>0,e[R][1]=L>>>0;for(m=t[0][0],g=t[0][1],y=t[1][0],x=t[1][1],b=t[2][0],I=t[2][1],v=t[3][0],_=t[3][1],P=t[4][0],D=t[4][1],H=t[5][0],G=t[5][1],$=t[6][0],j=t[6][1],ue=t[7][0],Ke=t[7][1],R=0;R<80;++R)u=((P>>>14|D<<18)^(P>>>18|D<<14)^(D>>>9|P<<23))>>>0,l=((P<<18|D>>>14)^(P<<14|D>>>18)^(D<<23|P>>>9))>>>0,f=($^P&(H^$))>>>0,d=(j^D&(G^j))>>>0,a=((m>>>28|g<<4)^(g>>>2|m<<30)^(g>>>7|m<<25))>>>0,c=((m<<4|g>>>28)^(g<<30|m>>>2)^(g<<25|m>>>7))>>>0,p=(m&y|b&(m^y))>>>0,h=(g&x|I&(g^x))>>>0,L=Ke+l+d+Gc[R][1]+e[R][1],n=ue+u+f+Gc[R][0]+e[R][0]+(L/4294967296>>>0)>>>0,i=L>>>0,L=c+h,s=a+p+(L/4294967296>>>0)>>>0,o=L>>>0,ue=$,Ke=j,$=H,j=G,H=P,G=D,L=_+i,P=v+n+(L/4294967296>>>0)>>>0,D=L>>>0,v=b,_=I,b=y,I=x,y=m,x=g,L=i+o,m=n+s+(L/4294967296>>>0)>>>0,g=L>>>0;L=t[0][1]+g,t[0][0]=t[0][0]+m+(L/4294967296>>>0)>>>0,t[0][1]=L>>>0,L=t[1][1]+x,t[1][0]=t[1][0]+y+(L/4294967296>>>0)>>>0,t[1][1]=L>>>0,L=t[2][1]+I,t[2][0]=t[2][0]+b+(L/4294967296>>>0)>>>0,t[2][1]=L>>>0,L=t[3][1]+_,t[3][0]=t[3][0]+v+(L/4294967296>>>0)>>>0,t[3][1]=L>>>0,L=t[4][1]+D,t[4][0]=t[4][0]+P+(L/4294967296>>>0)>>>0,t[4][1]=L>>>0,L=t[5][1]+G,t[5][0]=t[5][0]+H+(L/4294967296>>>0)>>>0,t[5][1]=L>>>0,L=t[6][1]+j,t[6][0]=t[6][0]+$+(L/4294967296>>>0)>>>0,t[6][1]=L>>>0,L=t[7][1]+Ke,t[7][0]=t[7][0]+ue+(L/4294967296>>>0)>>>0,t[7][1]=L>>>0,z-=128}}});var su=q((L8,nd)=>{var $n=1e3,zn=$n*60,Hn=zn*60,sn=Hn*24,G2=sn*7,W2=sn*365.25;nd.exports=function(t,e){e=e||{};var r=typeof t;if(r==="string"&&t.length>0)return Y2(t);if(r==="number"&&isFinite(t))return e.long?X2(t):Q2(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))};function Y2(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var r=parseFloat(e[1]),n=(e[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*W2;case"weeks":case"week":case"w":return r*G2;case"days":case"day":case"d":return r*sn;case"hours":case"hour":case"hrs":case"hr":case"h":return r*Hn;case"minutes":case"minute":case"mins":case"min":case"m":return r*zn;case"seconds":case"second":case"secs":case"sec":case"s":return r*$n;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function Q2(t){var e=Math.abs(t);return e>=sn?Math.round(t/sn)+"d":e>=Hn?Math.round(t/Hn)+"h":e>=zn?Math.round(t/zn)+"m":e>=$n?Math.round(t/$n)+"s":t+"ms"}function X2(t){var e=Math.abs(t);return e>=sn?Ws(t,e,sn,"day"):e>=Hn?Ws(t,e,Hn,"hour"):e>=zn?Ws(t,e,zn,"minute"):e>=$n?Ws(t,e,$n,"second"):t+" ms"}function Ws(t,e,r,n){var i=e>=r*1.5;return Math.round(t/r)+" "+n+(i?"s":"")}});var sd=q((P8,id)=>{function Z2(t){r.debug=r,r.default=r,r.coerce=c,r.disable=s,r.enable=i,r.enabled=o,r.humanize=su(),r.destroy=u,Object.keys(t).forEach(l=>{r[l]=t[l]}),r.names=[],r.skips=[],r.formatters={};function e(l){let f=0;for(let d=0;d<l.length;d++)f=(f<<5)-f+l.charCodeAt(d),f|=0;return r.colors[Math.abs(f)%r.colors.length]}r.selectColor=e;function r(l){let f,d=null,p,h;function m(...g){if(!m.enabled)return;let y=m,x=Number(new Date),b=x-(f||x);y.diff=b,y.prev=f,y.curr=x,f=x,g[0]=r.coerce(g[0]),typeof g[0]!="string"&&g.unshift("%O");let I=0;g[0]=g[0].replace(/%([a-zA-Z%])/g,(_,P)=>{if(_==="%%")return"%";I++;let D=r.formatters[P];if(typeof D=="function"){let H=g[I];_=D.call(y,H),g.splice(I,1),I--}return _}),r.formatArgs.call(y,g),(y.log||r.log).apply(y,g)}return m.namespace=l,m.useColors=r.useColors(),m.color=r.selectColor(l),m.extend=n,m.destroy=r.destroy,Object.defineProperty(m,"enabled",{enumerable:!0,configurable:!1,get:()=>d!==null?d:(p!==r.namespaces&&(p=r.namespaces,h=r.enabled(l)),h),set:g=>{d=g}}),typeof r.init=="function"&&r.init(m),m}function n(l,f){let d=r(this.namespace+(typeof f>"u"?":":f)+l);return d.log=this.log,d}function i(l){r.save(l),r.namespaces=l,r.names=[],r.skips=[];let f,d=(typeof l=="string"?l:"").split(/[\s,]+/),p=d.length;for(f=0;f<p;f++)d[f]&&(l=d[f].replace(/\*/g,".*?"),l[0]==="-"?r.skips.push(new RegExp("^"+l.slice(1)+"$")):r.names.push(new RegExp("^"+l+"$")))}function s(){let l=[...r.names.map(a),...r.skips.map(a).map(f=>"-"+f)].join(",");return r.enable(""),l}function o(l){if(l[l.length-1]==="*")return!0;let f,d;for(f=0,d=r.skips.length;f<d;f++)if(r.skips[f].test(l))return!1;for(f=0,d=r.names.length;f<d;f++)if(r.names[f].test(l))return!0;return!1}function a(l){return l.toString().substring(2,l.toString().length-2).replace(/\.\*\?$/,"*")}function c(l){return l instanceof Error?l.stack||l.message:l}function u(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return r.enable(r.load()),r}id.exports=Z2});var ou=q((xt,Ys)=>{xt.formatArgs=J2;xt.save=ew;xt.load=tw;xt.useColors=j2;xt.storage=rw();xt.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})();xt.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function j2(){return typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function J2(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+Ys.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;t.splice(1,0,e,"color: inherit");let r=0,n=0;t[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),t.splice(n,0,e)}xt.log=console.debug||console.log||(()=>{});function ew(t){try{t?xt.storage.setItem("debug",t):xt.storage.removeItem("debug")}catch{}}function tw(){let t;try{t=xt.storage.getItem("debug")}catch{}return!t&&typeof process<"u"&&"env"in process&&(t=process.env.DEBUG),t}function rw(){try{return localStorage}catch{}}Ys.exports=sd()(xt);var{formatters:nw}=Ys.exports;nw.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var Kd=q((n3,Bu)=>{"use strict";var Fw=Object.prototype.hasOwnProperty,st="~";function $i(){}Object.create&&($i.prototype=Object.create(null),new $i().__proto__||(st=!1));function Kw(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function Fd(t,e,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var s=new Kw(r,n||t,i),o=st?st+e:e;return t._events[o]?t._events[o].fn?t._events[o]=[t._events[o],s]:t._events[o].push(s):(t._events[o]=s,t._eventsCount++),t}function ao(t,e){--t._eventsCount===0?t._events=new $i:delete t._events[e]}function tt(){this._events=new $i,this._eventsCount=0}tt.prototype.eventNames=function(){var e=[],r,n;if(this._eventsCount===0)return e;for(n in r=this._events)Fw.call(r,n)&&e.push(st?n.slice(1):n);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(r)):e};tt.prototype.listeners=function(e){var r=st?st+e:e,n=this._events[r];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,s=n.length,o=new Array(s);i<s;i++)o[i]=n[i].fn;return o};tt.prototype.listenerCount=function(e){var r=st?st+e:e,n=this._events[r];return n?n.fn?1:n.length:0};tt.prototype.emit=function(e,r,n,i,s,o){var a=st?st+e:e;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,l,f;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),u){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,r),!0;case 3:return c.fn.call(c.context,r,n),!0;case 4:return c.fn.call(c.context,r,n,i),!0;case 5:return c.fn.call(c.context,r,n,i,s),!0;case 6:return c.fn.call(c.context,r,n,i,s,o),!0}for(f=1,l=new Array(u-1);f<u;f++)l[f-1]=arguments[f];c.fn.apply(c.context,l)}else{var d=c.length,p;for(f=0;f<d;f++)switch(c[f].once&&this.removeListener(e,c[f].fn,void 0,!0),u){case 1:c[f].fn.call(c[f].context);break;case 2:c[f].fn.call(c[f].context,r);break;case 3:c[f].fn.call(c[f].context,r,n);break;case 4:c[f].fn.call(c[f].context,r,n,i);break;default:if(!l)for(p=1,l=new Array(u-1);p<u;p++)l[p-1]=arguments[p];c[f].fn.apply(c[f].context,l)}}return!0};tt.prototype.on=function(e,r,n){return Fd(this,e,r,n,!1)};tt.prototype.once=function(e,r,n){return Fd(this,e,r,n,!0)};tt.prototype.removeListener=function(e,r,n,i){var s=st?st+e:e;if(!this._events[s])return this;if(!r)return ao(this,s),this;var o=this._events[s];if(o.fn)o.fn===r&&(!i||o.once)&&(!n||o.context===n)&&ao(this,s);else{for(var a=0,c=[],u=o.length;a<u;a++)(o[a].fn!==r||i&&!o[a].once||n&&o[a].context!==n)&&c.push(o[a]);c.length?this._events[s]=c.length===1?c[0]:c:ao(this,s)}return this};tt.prototype.removeAllListeners=function(e){var r;return e?(r=st?st+e:e,this._events[r]&&ao(this,r)):(this._events=new $i,this._eventsCount=0),this};tt.prototype.off=tt.prototype.removeListener;tt.prototype.addListener=tt.prototype.on;tt.prefixed=st;tt.EventEmitter=tt;typeof Bu<"u"&&(Bu.exports=tt)});var Wu=q((NB,sp)=>{"use strict";function ip(t,e){for(let r in e)Object.defineProperty(t,r,{value:e[r],enumerable:!0,configurable:!0});return t}function iE(t,e,r){if(!t||typeof t=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof e=="object"&&(r=e,e=""),e&&(r.code=e);try{return ip(t,r)}catch{r.message=t.message,r.stack=t.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(t)),ip(new i,r)}}sp.exports=iE});var dp=q(Hi=>{(function(){var t,e,r,n,i,s,o,a;a=function(c){var u,l,f,d;return u=(c&255<<24)>>>24,l=(c&255<<16)>>>16,f=(c&65280)>>>8,d=c&255,[u,l,f,d].join(".")},o=function(c){var u,l,f,d,p,h;for(u=[],f=d=0;d<=3&&c.length!==0;f=++d){if(f>0){if(c[0]!==".")throw new Error("Invalid IP");c=c.substring(1)}h=e(c),p=h[0],l=h[1],c=c.substring(l),u.push(p)}if(c.length!==0)throw new Error("Invalid IP");switch(u.length){case 1:if(u[0]>4294967295)throw new Error("Invalid IP");return u[0]>>>0;case 2:if(u[0]>255||u[1]>16777215)throw new Error("Invalid IP");return(u[0]<<24|u[1])>>>0;case 3:if(u[0]>255||u[1]>255||u[2]>65535)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2])>>>0;case 4:if(u[0]>255||u[1]>255||u[2]>255||u[3]>255)throw new Error("Invalid IP");return(u[0]<<24|u[1]<<16|u[2]<<8|u[3])>>>0;default:throw new Error("Invalid IP")}},r=function(c){return c.charCodeAt(0)},n=r("0"),s=r("a"),i=r("A"),e=function(c){var u,l,f,d,p;for(d=0,u=10,l="9",f=0,c.length>1&&c[f]==="0"&&(c[f+1]==="x"||c[f+1]==="X"?(f+=2,u=16):"0"<=c[f+1]&&c[f+1]<="9"&&(f++,u=8,l="7")),p=f;f<c.length;){if("0"<=c[f]&&c[f]<=l)d=d*u+(r(c[f])-n)>>>0;else if(u===16)if("a"<=c[f]&&c[f]<="f")d=d*u+(10+r(c[f])-s)>>>0;else if("A"<=c[f]&&c[f]<="F")d=d*u+(10+r(c[f])-i)>>>0;else break;else break;if(d>4294967295)throw new Error("too large");f++}if(f===p)throw new Error("empty octet");return[d,f]},t=function(){function c(u,l){var f,d,p,h;if(typeof u!="string")throw new Error("Missing `net' parameter");if(l||(h=u.split("/",2),u=h[0],l=h[1]),l||(l=32),typeof l=="string"&&l.indexOf(".")>-1){try{this.maskLong=o(l)}catch(m){throw f=m,new Error("Invalid mask: "+l)}for(d=p=32;p>=0;d=--p)if(this.maskLong===4294967295<<32-d>>>0){this.bitmask=d;break}}else if(l||l===0)this.bitmask=parseInt(l,10),this.maskLong=0,this.bitmask>0&&(this.maskLong=4294967295<<32-this.bitmask>>>0);else throw new Error("Invalid mask: empty");try{this.netLong=(o(u)&this.maskLong)>>>0}catch(m){throw f=m,new Error("Invalid net address: "+u)}if(!(this.bitmask<=32))throw new Error("Invalid mask for ip4: "+l);this.size=Math.pow(2,32-this.bitmask),this.base=a(this.netLong),this.mask=a(this.maskLong),this.hostmask=a(~this.maskLong),this.first=this.bitmask<=30?a(this.netLong+1):this.base,this.last=this.bitmask<=30?a(this.netLong+this.size-2):a(this.netLong+this.size-1),this.broadcast=this.bitmask<=30?a(this.netLong+this.size-1):void 0}return c.prototype.contains=function(u){return typeof u=="string"&&(u.indexOf("/")>0||u.split(".").length!==4)&&(u=new c(u)),u instanceof c?this.contains(u.base)&&this.contains(u.broadcast||u.last):(o(u)&this.maskLong)>>>0===(this.netLong&this.maskLong)>>>0},c.prototype.next=function(u){return u==null&&(u=1),new c(a(this.netLong+this.size*u),this.mask)},c.prototype.forEach=function(u){var l,f,d;for(d=o(this.first),f=o(this.last),l=0;d<=f;)u(a(d),d,l),l++,d++},c.prototype.toString=function(){return this.base+"/"+this.bitmask},c}(),Hi.ip2long=o,Hi.long2ip=a,Hi.Netmask=t}).call(Hi)});var yp=q((gp,Co)=>{(function(t){"use strict";let e="(0?\\d+|0x[a-f0-9]+)",r={fourOctet:new RegExp(`^${e}\\.${e}\\.${e}\\.${e}$`,"i"),threeOctet:new RegExp(`^${e}\\.${e}\\.${e}$`,"i"),twoOctet:new RegExp(`^${e}\\.${e}$`,"i"),longValue:new RegExp(`^${e}$`,"i")},n=new RegExp("^0[0-7]+$","i"),i=new RegExp("^0x[a-f0-9]+$","i"),s="%[0-9a-z]{1,}",o="(?:[0-9a-f]+::?)+",a={zoneIndex:new RegExp(s,"i"),native:new RegExp(`^(::)?(${o})?([0-9a-f]+)?(::)?(${s})?$`,"i"),deprecatedTransitional:new RegExp(`^(?:::)(${e}\\.${e}\\.${e}\\.${e}(${s})?)$`,"i"),transitional:new RegExp(`^((?:${o})|(?:::)(?:${o})?)${e}\\.${e}\\.${e}\\.${e}(${s})?$`,"i")};function c(p,h){if(p.indexOf("::")!==p.lastIndexOf("::"))return null;let m=0,g=-1,y=(p.match(a.zoneIndex)||[])[0],x,b;for(y&&(y=y.substring(1),p=p.replace(/%.+$/,""));(g=p.indexOf(":",g+1))>=0;)m++;if(p.substr(0,2)==="::"&&m--,p.substr(-2,2)==="::"&&m--,m>h)return null;for(b=h-m,x=":";b--;)x+="0:";return p=p.replace("::",x),p[0]===":"&&(p=p.slice(1)),p[p.length-1]===":"&&(p=p.slice(0,-1)),h=function(){let I=p.split(":"),v=[];for(let _=0;_<I.length;_++)v.push(parseInt(I[_],16));return v}(),{parts:h,zoneId:y}}function u(p,h,m,g){if(p.length!==h.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let y=0,x;for(;g>0;){if(x=m-g,x<0&&(x=0),p[y]>>x!==h[y]>>x)return!1;g-=m,y+=1}return!0}function l(p){if(i.test(p))return parseInt(p,16);if(p[0]==="0"&&!isNaN(parseInt(p[1],10))){if(n.test(p))return parseInt(p,8);throw new Error(`ipaddr: cannot parse ${p} as octal`)}return parseInt(p,10)}function f(p,h){for(;p.length<h;)p=`0${p}`;return p}let d={};d.IPv4=function(){function p(h){if(h.length!==4)throw new Error("ipaddr: ipv4 octet count should be 4");let m,g;for(m=0;m<h.length;m++)if(g=h[m],!(0<=g&&g<=255))throw new Error("ipaddr: ipv4 octet should fit in 8 bits");this.octets=h}return p.prototype.SpecialRanges={unspecified:[[new p([0,0,0,0]),8]],broadcast:[[new p([255,255,255,255]),32]],multicast:[[new p([224,0,0,0]),4]],linkLocal:[[new p([169,254,0,0]),16]],loopback:[[new p([127,0,0,0]),8]],carrierGradeNat:[[new p([100,64,0,0]),10]],private:[[new p([10,0,0,0]),8],[new p([172,16,0,0]),12],[new p([192,168,0,0]),16]],reserved:[[new p([192,0,0,0]),24],[new p([192,0,2,0]),24],[new p([192,88,99,0]),24],[new p([198,18,0,0]),15],[new p([198,51,100,0]),24],[new p([203,0,113,0]),24],[new p([240,0,0,0]),4]]},p.prototype.kind=function(){return"ipv4"},p.prototype.match=function(h,m){let g;if(m===void 0&&(g=h,h=g[0],m=g[1]),h.kind()!=="ipv4")throw new Error("ipaddr: cannot match ipv4 address with non-ipv4 one");return u(this.octets,h.octets,8,m)},p.prototype.prefixLengthFromSubnetMask=function(){let h=0,m=!1,g={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},y,x,b;for(y=3;y>=0;y-=1)if(x=this.octets[y],x in g){if(b=g[x],m&&b!==0)return null;b!==8&&(m=!0),h+=b}else return null;return 32-h},p.prototype.range=function(){return d.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){return this.octets.slice(0)},p.prototype.toIPv4MappedAddress=function(){return d.IPv6.parse(`::ffff:${this.toString()}`)},p.prototype.toNormalizedString=function(){return this.toString()},p.prototype.toString=function(){return this.octets.join(".")},p}(),d.IPv4.broadcastAddressFromCIDR=function(p){try{let h=this.parseCIDR(p),m=h[0].toByteArray(),g=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),y=[],x=0;for(;x<4;)y.push(parseInt(m[x],10)|parseInt(g[x],10)^255),x++;return new this(y)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},d.IPv4.isIPv4=function(p){return this.parser(p)!==null},d.IPv4.isValid=function(p){try{return new this(this.parser(p)),!0}catch{return!1}},d.IPv4.isValidFourPartDecimal=function(p){return!!(d.IPv4.isValid(p)&&p.match(/^(0|[1-9]\d*)(\.(0|[1-9]\d*)){3}$/))},d.IPv4.networkAddressFromCIDR=function(p){let h,m,g,y,x;try{for(h=this.parseCIDR(p),g=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),y=[],m=0;m<4;)y.push(parseInt(g[m],10)&parseInt(x[m],10)),m++;return new this(y)}catch{throw new Error("ipaddr: the address does not have IPv4 CIDR format")}},d.IPv4.parse=function(p){let h=this.parser(p);if(h===null)throw new Error("ipaddr: string is not formatted like an IPv4 Address");return new this(h)},d.IPv4.parseCIDR=function(p){let h;if(h=p.match(/^(.+)\/(\d+)$/)){let m=parseInt(h[2]);if(m>=0&&m<=32){let g=[this.parse(h[1]),m];return Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},d.IPv4.parser=function(p){let h,m,g;if(h=p.match(r.fourOctet))return function(){let y=h.slice(1,6),x=[];for(let b=0;b<y.length;b++)m=y[b],x.push(l(m));return x}();if(h=p.match(r.longValue)){if(g=l(h[1]),g>4294967295||g<0)throw new Error("ipaddr: address outside defined range");return function(){let y=[],x;for(x=0;x<=24;x+=8)y.push(g>>x&255);return y}().reverse()}else return(h=p.match(r.twoOctet))?function(){let y=h.slice(1,4),x=[];if(g=l(y[1]),g>16777215||g<0)throw new Error("ipaddr: address outside defined range");return x.push(l(y[0])),x.push(g>>16&255),x.push(g>>8&255),x.push(g&255),x}():(h=p.match(r.threeOctet))?function(){let y=h.slice(1,5),x=[];if(g=l(y[2]),g>65535||g<0)throw new Error("ipaddr: address outside defined range");return x.push(l(y[0])),x.push(l(y[1])),x.push(g>>8&255),x.push(g&255),x}():null},d.IPv4.subnetMaskFromPrefixLength=function(p){if(p=parseInt(p),p<0||p>32)throw new Error("ipaddr: invalid IPv4 prefix length");let h=[0,0,0,0],m=0,g=Math.floor(p/8);for(;m<g;)h[m]=255,m++;return g<4&&(h[g]=Math.pow(2,p%8)-1<<8-p%8),new this(h)},d.IPv6=function(){function p(h,m){let g,y;if(h.length===16)for(this.parts=[],g=0;g<=14;g+=2)this.parts.push(h[g]<<8|h[g+1]);else if(h.length===8)this.parts=h;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(g=0;g<this.parts.length;g++)if(y=this.parts[g],!(0<=y&&y<=65535))throw new Error("ipaddr: ipv6 part should fit in 16 bits");m&&(this.zoneId=m)}return p.prototype.SpecialRanges={unspecified:[new p([0,0,0,0,0,0,0,0]),128],linkLocal:[new p([65152,0,0,0,0,0,0,0]),10],multicast:[new p([65280,0,0,0,0,0,0,0]),8],loopback:[new p([0,0,0,0,0,0,0,1]),128],uniqueLocal:[new p([64512,0,0,0,0,0,0,0]),7],ipv4Mapped:[new p([0,0,0,0,0,65535,0,0]),96],rfc6145:[new p([0,0,0,0,65535,0,0,0]),96],rfc6052:[new p([100,65435,0,0,0,0,0,0]),96],"6to4":[new p([8194,0,0,0,0,0,0,0]),16],teredo:[new p([8193,0,0,0,0,0,0,0]),32],reserved:[[new p([8193,3512,0,0,0,0,0,0]),32]],benchmarking:[new p([8193,2,0,0,0,0,0,0]),48],amt:[new p([8193,3,0,0,0,0,0,0]),32],as112v6:[new p([8193,4,274,0,0,0,0,0]),48],deprecated:[new p([8193,16,0,0,0,0,0,0]),28],orchid2:[new p([8193,32,0,0,0,0,0,0]),28]},p.prototype.isIPv4MappedAddress=function(){return this.range()==="ipv4Mapped"},p.prototype.kind=function(){return"ipv6"},p.prototype.match=function(h,m){let g;if(m===void 0&&(g=h,h=g[0],m=g[1]),h.kind()!=="ipv6")throw new Error("ipaddr: cannot match ipv6 address with non-ipv6 one");return u(this.parts,h.parts,16,m)},p.prototype.prefixLengthFromSubnetMask=function(){let h=0,m=!1,g={0:16,32768:15,49152:14,57344:13,61440:12,63488:11,64512:10,65024:9,65280:8,65408:7,65472:6,65504:5,65520:4,65528:3,65532:2,65534:1,65535:0},y,x;for(let b=7;b>=0;b-=1)if(y=this.parts[b],y in g){if(x=g[y],m&&x!==0)return null;x!==16&&(m=!0),h+=x}else return null;return 128-h},p.prototype.range=function(){return d.subnetMatch(this,this.SpecialRanges)},p.prototype.toByteArray=function(){let h,m=[],g=this.parts;for(let y=0;y<g.length;y++)h=g[y],m.push(h>>8),m.push(h&255);return m},p.prototype.toFixedLengthString=function(){let h=function(){let g=[];for(let y=0;y<this.parts.length;y++)g.push(f(this.parts[y].toString(16),4));return g}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),h+m},p.prototype.toIPv4Address=function(){if(!this.isIPv4MappedAddress())throw new Error("ipaddr: trying to convert a generic ipv6 address to ipv4");let h=this.parts.slice(-2),m=h[0],g=h[1];return new d.IPv4([m>>8,m&255,g>>8,g&255])},p.prototype.toNormalizedString=function(){let h=function(){let g=[];for(let y=0;y<this.parts.length;y++)g.push(this.parts[y].toString(16));return g}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),h+m},p.prototype.toRFC5952String=function(){let h=/((^|:)(0(:|$)){2,})/g,m=this.toNormalizedString(),g=0,y=-1,x;for(;x=h.exec(m);)x[0].length>y&&(g=x.index,y=x[0].length);return y<0?m:`${m.substring(0,g)}::${m.substring(g+y)}`},p.prototype.toString=function(){return this.toRFC5952String()},p}(),d.IPv6.broadcastAddressFromCIDR=function(p){try{let h=this.parseCIDR(p),m=h[0].toByteArray(),g=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),y=[],x=0;for(;x<16;)y.push(parseInt(m[x],10)|parseInt(g[x],10)^255),x++;return new this(y)}catch(h){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${h})`)}},d.IPv6.isIPv6=function(p){return this.parser(p)!==null},d.IPv6.isValid=function(p){if(typeof p=="string"&&p.indexOf(":")===-1)return!1;try{let h=this.parser(p);return new this(h.parts,h.zoneId),!0}catch{return!1}},d.IPv6.networkAddressFromCIDR=function(p){let h,m,g,y,x;try{for(h=this.parseCIDR(p),g=h[0].toByteArray(),x=this.subnetMaskFromPrefixLength(h[1]).toByteArray(),y=[],m=0;m<16;)y.push(parseInt(g[m],10)&parseInt(x[m],10)),m++;return new this(y)}catch(b){throw new Error(`ipaddr: the address does not have IPv6 CIDR format (${b})`)}},d.IPv6.parse=function(p){let h=this.parser(p);if(h.parts===null)throw new Error("ipaddr: string is not formatted like an IPv6 Address");return new this(h.parts,h.zoneId)},d.IPv6.parseCIDR=function(p){let h,m,g;if((m=p.match(/^(.+)\/(\d+)$/))&&(h=parseInt(m[2]),h>=0&&h<=128))return g=[this.parse(m[1]),h],Object.defineProperty(g,"toString",{value:function(){return this.join("/")}}),g;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},d.IPv6.parser=function(p){let h,m,g,y,x,b;if(g=p.match(a.deprecatedTransitional))return this.parser(`::ffff:${g[1]}`);if(a.native.test(p))return c(p,8);if((g=p.match(a.transitional))&&(b=g[6]||"",h=c(g[1].slice(0,-1)+b,6),h.parts)){for(x=[parseInt(g[2]),parseInt(g[3]),parseInt(g[4]),parseInt(g[5])],m=0;m<x.length;m++)if(y=x[m],!(0<=y&&y<=255))return null;return h.parts.push(x[0]<<8|x[1]),h.parts.push(x[2]<<8|x[3]),{parts:h.parts,zoneId:h.zoneId}}return null},d.IPv6.subnetMaskFromPrefixLength=function(p){if(p=parseInt(p),p<0||p>128)throw new Error("ipaddr: invalid IPv6 prefix length");let h=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],m=0,g=Math.floor(p/8);for(;m<g;)h[m]=255,m++;return g<16&&(h[g]=Math.pow(2,p%8)-1<<8-p%8),new this(h)},d.fromByteArray=function(p){let h=p.length;if(h===4)return new d.IPv4(p);if(h===16)return new d.IPv6(p);throw new Error("ipaddr: the binary input is neither an IPv6 nor IPv4 address")},d.isValid=function(p){return d.IPv6.isValid(p)||d.IPv4.isValid(p)},d.parse=function(p){if(d.IPv6.isValid(p))return d.IPv6.parse(p);if(d.IPv4.isValid(p))return d.IPv4.parse(p);throw new Error("ipaddr: the address has neither IPv6 nor IPv4 format")},d.parseCIDR=function(p){try{return d.IPv6.parseCIDR(p)}catch{try{return d.IPv4.parseCIDR(p)}catch{throw new Error("ipaddr: the address has neither IPv6 nor IPv4 CIDR format")}}},d.process=function(p){let h=this.parse(p);return h.kind()==="ipv6"&&h.isIPv4MappedAddress()?h.toIPv4Address():h},d.subnetMatch=function(p,h,m){let g,y,x,b;m==null&&(m="unicast");for(y in h)if(Object.prototype.hasOwnProperty.call(h,y)){for(x=h[y],x[0]&&!(x[0]instanceof Array)&&(x=[x]),g=0;g<x.length;g++)if(b=x[g],p.kind()===b[0].kind()&&p.match.apply(p,b))return y}return m},typeof Co<"u"&&Co.exports?Co.exports=d:t.ipaddr=d})(gp)});var Np=q((VL,Dp)=>{"use strict";Dp.exports=Pp;var IE=su(),Or=Pp.prototype,CE=new Date%1e9;function TE(){return(Math.random()*1e9>>>0)+CE++}function Pp(t){t=t||{},this.id=t.id||TE(),this.max=t.max||1/0,this.items=t.items||[],this._lookup={},this.size=this.items.length,this.lastModified=new Date(t.lastModified||new Date);for(var e,r,n=this.items.length;n--;)e=this.items[n],r=new Date(e.expires)-new Date,this._lookup[e.key]=e,r>0?this.expire(e.key,r):r<=0&&this.delete(e.key)}Or.has=function(t){return t in this._lookup};Or.get=function(t){if(!this.has(t))return null;var e=this._lookup[t];return e.refresh&&this.expire(t,e.refresh),this.items.splice(this.items.indexOf(e),1),this.items.push(e),e.value};Or.meta=function(t){if(!this.has(t))return null;var e=this._lookup[t];return"meta"in e?e.meta:null};Or.set=function(t,e,r){var n=this._lookup[t],i=this._lookup[t]={key:t,value:e};return this.lastModified=new Date,n?(clearTimeout(n.timeout),this.items.splice(this.items.indexOf(n),1,i)):(this.size>=this.max&&this.delete(this.items[0].key),this.items.push(i),this.size++),r&&("ttl"in r&&this.expire(t,r.ttl),"meta"in r&&(i.meta=r.meta),r.refresh&&(i.refresh=r.ttl)),this};Or.delete=function(t){var e=this._lookup[t];return e?(this.lastModified=new Date,this.items.splice(this.items.indexOf(e),1),clearTimeout(e.timeout),delete this._lookup[t],this.size--,this):!1};Or.expire=function(t,e){var r=e||0,n=this._lookup[t];if(!n)return this;if(typeof r=="string"&&(r=IE(e)),typeof r!="number")throw new TypeError("Expiration time must be a string or number.");return clearTimeout(n.timeout),n.timeout=setTimeout(this.delete.bind(this,n.key),r),n.expires=Number(new Date)+r,this};Or.clear=function(){for(var t=this.items.length;t--;)this.delete(this.items[t].key);return this};Or.toJSON=function(){for(var t=new Array(this.items.length),e,r=t.length;r--;)e=this.items[r],t[r]={key:e.key,meta:e.meta,value:e.value,expires:e.expires,refresh:e.refresh};return{id:this.id,max:isFinite(this.max)?this.max:void 0,lastModified:this.lastModified,items:t}}});var Fp=q((QL,Up)=>{"use strict";Up.exports=t=>{if(Object.prototype.toString.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.prototype}});var Hp=q(($p,zp)=>{"use strict";var ko=Fp(),{hasOwnProperty:qp}=Object.prototype,{propertyIsEnumerable:LE}=Object,ii=(t,e,r)=>Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0}),PE=$p,Kp={concatArrays:!1,ignoreUndefined:!1},Oo=t=>{let e=[];for(let r in t)qp.call(t,r)&&e.push(r);if(Object.getOwnPropertySymbols){let r=Object.getOwnPropertySymbols(t);for(let n of r)LE.call(t,n)&&e.push(n)}return e};function si(t){return Array.isArray(t)?DE(t):ko(t)?NE(t):t}function DE(t){let e=t.slice(0,0);return Oo(t).forEach(r=>{ii(e,r,si(t[r]))}),e}function NE(t){let e=Object.getPrototypeOf(t)===null?Object.create(null):{};return Oo(t).forEach(r=>{ii(e,r,si(t[r]))}),e}var Vp=(t,e,r,n)=>(r.forEach(i=>{typeof e[i]>"u"&&n.ignoreUndefined||(i in t&&t[i]!==Object.getPrototypeOf(t)?ii(t,i,ul(t[i],e[i],n)):ii(t,i,si(e[i])))}),t),kE=(t,e,r)=>{let n=t.slice(0,0),i=0;return[t,e].forEach(s=>{let o=[];for(let a=0;a<s.length;a++)qp.call(s,a)&&(o.push(String(a)),s===t?ii(n,i++,s[a]):ii(n,i++,si(s[a])));n=Vp(n,s,Oo(s).filter(a=>!o.includes(a)),r)}),n};function ul(t,e,r){return r.concatArrays&&Array.isArray(t)&&Array.isArray(e)?kE(t,e,r):!ko(e)||!ko(t)?si(e):Vp(t,e,Oo(e),r)}zp.exports=function(...t){let e=ul(si(Kp),this!==PE&&this||{},Kp),r={_:{}};for(let n of t)if(n!==void 0){if(!ko(n))throw new TypeError("`"+n+"` is not an Option Object");r=ul(r,{_:n},e)}return r._}});var Qi=q((s6,Yp)=>{Yp.exports=class{constructor(e={}){this.points=e.points,this.duration=e.duration,this.blockDuration=e.blockDuration,this.execEvenly=e.execEvenly,this.execEvenlyMinDelayMs=e.execEvenlyMinDelayMs,this.keyPrefix=e.keyPrefix}get points(){return this._points}set points(e){this._points=e>=0?e:4}get duration(){return this._duration}set duration(e){this._duration=typeof e>"u"?1:e}get msDuration(){return this.duration*1e3}get blockDuration(){return this._blockDuration}set blockDuration(e){this._blockDuration=typeof e>"u"?0:e}get msBlockDuration(){return this.blockDuration*1e3}get execEvenly(){return this._execEvenly}set execEvenly(e){this._execEvenly=typeof e>"u"?!1:!!e}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(e){this._execEvenlyMinDelayMs=typeof e>"u"?Math.ceil(this.msDuration/this.points):e}get keyPrefix(){return this._keyPrefix}set keyPrefix(e){if(typeof e>"u"&&(e="rlflx"),typeof e!="string")throw new Error("keyPrefix must be string");this._keyPrefix=e}_getKeySecDuration(e={}){return e&&e.customDuration>=0?e.customDuration:this.duration}getKey(e){return this.keyPrefix.length>0?`${this.keyPrefix}:${e}`:e}parseKey(e){return e.substring(this.keyPrefix.length)}consume(){throw new Error("You have to implement the method 'consume'!")}penalty(){throw new Error("You have to implement the method 'penalty'!")}reward(){throw new Error("You have to implement the method 'reward'!")}get(){throw new Error("You have to implement the method 'get'!")}set(){throw new Error("You have to implement the method 'set'!")}block(){throw new Error("You have to implement the method 'block'!")}delete(){throw new Error("You have to implement the method 'delete'!")}}});var Xp=q((a6,Qp)=>{Qp.exports=class{constructor(){this._keys={},this._addedKeysAmount=0}collectExpired(){let e=Date.now();Object.keys(this._keys).forEach(r=>{this._keys[r]<=e&&delete this._keys[r]}),this._addedKeysAmount=Object.keys(this._keys).length}add(e,r){this.addMs(e,r*1e3)}addMs(e,r){this._keys[e]=Date.now()+r,this._addedKeysAmount++,this._addedKeysAmount>999&&this.collectExpired()}msBeforeExpire(e){let r=this._keys[e];if(r&&r>=Date.now()){this.collectExpired();let n=Date.now();return r>=n?r-n:0}return 0}delete(e){e?delete this._keys[e]:Object.keys(this._keys).forEach(r=>{delete this._keys[r]})}}});var jp=q((c6,Zp)=>{var ME=Xp();Zp.exports=ME});var ft=q((l6,Jp)=>{Jp.exports=class{constructor(e,r,n,i){this.remainingPoints=typeof e>"u"?0:e,this.msBeforeNext=typeof r>"u"?0:r,this.consumedPoints=typeof n>"u"?0:n,this.isFirstInDuration=typeof i>"u"?!1:i}get msBeforeNext(){return this._msBeforeNext}set msBeforeNext(e){return this._msBeforeNext=e,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(e){return this._remainingPoints=e,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(e){return this._consumedPoints=e,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(e){this._isFirstInDuration=!!e}_getDecoratedProperties(){return{remainingPoints:this.remainingPoints,msBeforeNext:this.msBeforeNext,consumedPoints:this.consumedPoints,isFirstInDuration:this.isFirstInDuration}}[Symbol.for("nodejs.util.inspect.custom")](){return this._getDecoratedProperties()}toString(){return JSON.stringify(this._getDecoratedProperties())}toJSON(){return this._getDecoratedProperties()}}});var yn=q((h6,tm)=>{var ll=Qi(),UE=jp(),em=ft();tm.exports=class extends ll{constructor(e={}){super(e),this.inMemoryBlockOnConsumed=e.inMemoryBlockOnConsumed,this.inMemoryBlockDuration=e.inMemoryBlockDuration,this.insuranceLimiter=e.insuranceLimiter,this._inMemoryBlockedKeys=new UE}get client(){return this._client}set client(e){if(typeof e>"u")throw new Error("storeClient is not set");this._client=e}_afterConsume(e,r,n,i,s,o={}){let a=this._getRateLimiterRes(n,i,s);if(this.inMemoryBlockOnConsumed>0&&!(this.inMemoryBlockDuration>0)&&a.consumedPoints>=this.inMemoryBlockOnConsumed)return this._inMemoryBlockedKeys.addMs(n,a.msBeforeNext),a.consumedPoints>this.points?r(a):e(a);if(a.consumedPoints>this.points){let c=Promise.resolve();this.blockDuration>0&&a.consumedPoints<=this.points+i&&(a.msBeforeNext=this.msBlockDuration,c=this._block(n,a.consumedPoints,this.msBlockDuration,o)),this.inMemoryBlockOnConsumed>0&&a.consumedPoints>=this.inMemoryBlockOnConsumed&&(this._inMemoryBlockedKeys.add(n,this.inMemoryBlockDuration),a.msBeforeNext=this.msInMemoryBlockDuration),c.then(()=>{r(a)}).catch(u=>{r(u)})}else if(this.execEvenly&&a.msBeforeNext>0&&!a.isFirstInDuration){let c=Math.ceil(a.msBeforeNext/(a.remainingPoints+2));c<this.execEvenlyMinDelayMs&&(c=a.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(e,c,a)}else e(a)}_handleError(e,r,n,i,s,o=!1,a={}){this.insuranceLimiter instanceof ll?this.insuranceLimiter[r](s,o,a).then(c=>{n(c)}).catch(c=>{i(c)}):i(e)}getInMemoryBlockMsBeforeExpire(e){return this.inMemoryBlockOnConsumed>0?this._inMemoryBlockedKeys.msBeforeExpire(e):0}get inMemoryBlockOnConsumed(){return this._inMemoryBlockOnConsumed}set inMemoryBlockOnConsumed(e){if(this._inMemoryBlockOnConsumed=e?parseInt(e):0,this.inMemoryBlockOnConsumed>0&&this.points>this.inMemoryBlockOnConsumed)throw new Error('inMemoryBlockOnConsumed option must be greater or equal "points" option')}get inMemoryBlockDuration(){return this._inMemoryBlockDuration}set inMemoryBlockDuration(e){if(this._inMemoryBlockDuration=e?parseInt(e):0,this.inMemoryBlockDuration>0&&this.inMemoryBlockOnConsumed===0)throw new Error("inMemoryBlockOnConsumed option must be set up")}get msInMemoryBlockDuration(){return this._inMemoryBlockDuration*1e3}get insuranceLimiter(){return this._insuranceLimiter}set insuranceLimiter(e){if(typeof e<"u"&&!(e instanceof ll))throw new Error("insuranceLimiter must be instance of RateLimiterAbstract");this._insuranceLimiter=e,this._insuranceLimiter&&(this._insuranceLimiter.blockDuration=this.blockDuration,this._insuranceLimiter.execEvenly=this.execEvenly)}block(e,r,n={}){let i=r*1e3;return this._block(this.getKey(e),this.points+1,i,n)}set(e,r,n,i={}){let s=(n>=0?n:this.duration)*1e3;return this._block(this.getKey(e),r,s,i)}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(e),a=this.getInMemoryBlockMsBeforeExpire(o);if(a>0)return s(new em(0,a));this._upsert(o,r,this._getKeySecDuration(n)*1e3,!1,n).then(c=>{this._afterConsume(i,s,o,r,c)}).catch(c=>{this._handleError(c,"consume",i,s,e,r,n)})})}penalty(e,r=1,n={}){let i=this.getKey(e);return new Promise((s,o)=>{this._upsert(i,r,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{s(this._getRateLimiterRes(i,r,a))}).catch(a=>{this._handleError(a,"penalty",s,o,e,r,n)})})}reward(e,r=1,n={}){let i=this.getKey(e);return new Promise((s,o)=>{this._upsert(i,-r,this._getKeySecDuration(n)*1e3,!1,n).then(a=>{s(this._getRateLimiterRes(i,-r,a))}).catch(a=>{this._handleError(a,"reward",s,o,e,r,n)})})}get(e,r={}){let n=this.getKey(e);return new Promise((i,s)=>{this._get(n,r).then(o=>{i(o===null||typeof o>"u"?null:this._getRateLimiterRes(n,0,o))}).catch(o=>{this._handleError(o,"get",i,s,e,r)})})}delete(e,r={}){let n=this.getKey(e);return new Promise((i,s)=>{this._delete(n,r).then(o=>{this._inMemoryBlockedKeys.delete(n),i(o)}).catch(o=>{this._handleError(o,"delete",i,s,e,r)})})}deleteInMemoryBlockedAll(){this._inMemoryBlockedKeys.delete()}_getRateLimiterRes(e,r,n){throw new Error("You have to implement the method '_getRateLimiterRes'!")}_block(e,r,n,i={}){return new Promise((s,o)=>{this._upsert(e,r,n,!0,i).then(()=>{s(new em(0,n>0?n:-1,r))}).catch(a=>{this._handleError(a,"block",s,o,this.parseKey(e),n/1e3,i)})})}_get(e,r={}){throw new Error("You have to implement the method '_get'!")}_delete(e,r={}){throw new Error("You have to implement the method '_delete'!")}_upsert(e,r,n,i=!1,s={}){throw new Error("You have to implement the method '_upsert'!")}}});var nm=q((d6,rm)=>{var FE=yn(),KE=ft(),fl="redis.call('set', KEYS[1], 0, 'EX', ARGV[2], 'NX') local consumed = redis.call('incrby', KEYS[1], ARGV[1]) local ttl = redis.call('pttl', KEYS[1]) if ttl == -1 then redis.call('expire', KEYS[1], ARGV[2]) ttl = 1000 * ARGV[2] end return {consumed, ttl} ",hl=class extends FE{constructor(e){super(e),this.client=e.storeClient,this._rejectIfRedisNotReady=!!e.rejectIfRedisNotReady,this.useRedisPackage=e.useRedisPackage||this.client.constructor.name==="Commander"||!1,this.useRedis3AndLowerPackage=e.useRedis3AndLowerPackage,typeof this.client.defineCommand=="function"&&this.client.defineCommand("rlflxIncr",{numberOfKeys:1,lua:fl})}_isRedisReady(){return this._rejectIfRedisNotReady?!(this.client.status&&this.client.status!=="ready"||typeof this.client.isReady=="function"&&!this.client.isReady()):!0}_getRateLimiterRes(e,r,n){let[i,s]=n;Array.isArray(i)&&([,i]=i,[,s]=s);let o=new KE;return o.consumedPoints=parseInt(i),o.isFirstInDuration=o.consumedPoints===r,o.remainingPoints=Math.max(this.points-o.consumedPoints,0),o.msBeforeNext=s,o}async _upsert(e,r,n,i=!1){if(!this._isRedisReady())throw new Error("Redis connection is not ready");let s=Math.floor(n/1e3),o=this.client.multi();return i?(s>0?!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.set(e,r,"EX",s):o.set(e,r,{EX:s}):o.set(e,r),!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.pttl(e).exec(!0):o.pTTL(e).exec(!0)):s>0?!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.rlflxIncr([e].concat([String(r),String(s)])):this.useRedis3AndLowerPackage?new Promise((a,c)=>{let u=function(l,f){return l?c(l):a(f)};typeof this.client.rlflxIncr=="function"?this.client.rlflxIncr(e,r,s,u):this.client.eval(fl,1,e,r,s,u)}):this.client.eval(fl,{keys:[e],arguments:[String(r),String(s)]}):!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.incrby(e,r).pttl(e).exec(!0):o.incrBy(e,r).pTTL(e).exec(!0)}async _get(e){if(!this._isRedisReady())throw new Error("Redis connection is not ready");return!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.multi().get(e).pttl(e).exec().then(r=>{let[[,n]]=r;return n===null?null:r}):this.client.multi().get(e).pTTL(e).exec(!0).then(r=>{let[n]=r;return n===null?null:r})}_delete(e){return this.client.del(e).then(r=>r>0)}};rm.exports=hl});var om=q((p6,sm)=>{var qE=yn(),VE=ft();function im(t){try{let e=t.client?t.client:t,{version:r}=e.topology.s.options.metadata.driver,n=r.split(".").map(i=>parseInt(i));return{major:n[0],feature:n[1],patch:n[2]}}catch{return{major:0,feature:0,patch:0}}}var dl=class t extends qE{constructor(e){super(e),this.dbName=e.dbName,this.tableName=e.tableName,this.indexKeyPrefix=e.indexKeyPrefix,e.mongo?this.client=e.mongo:this.client=e.storeClient,typeof this.client.then=="function"?this.client.then(r=>{this.client=r,this._initCollection(),this._driverVersion=im(this.client)}):(this._initCollection(),this._driverVersion=im(this.client))}get dbName(){return this._dbName}set dbName(e){this._dbName=typeof e>"u"?t.getDbName():e}static getDbName(){return"node-rate-limiter-flexible"}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get client(){return this._client}set client(e){if(typeof e>"u")throw new Error("mongo is not set");this._client=e}get indexKeyPrefix(){return this._indexKeyPrefix}set indexKeyPrefix(e){this._indexKeyPrefix=e||{}}_initCollection(){let r=(typeof this.client.db=="function"?this.client.db(this.dbName):this.client).collection(this.tableName);r.createIndex({expire:-1},{expireAfterSeconds:0}),r.createIndex(Object.assign({},this.indexKeyPrefix,{key:1}),{unique:!0}),this._collection=r}_getRateLimiterRes(e,r,n){let i=new VE,s;return typeof n.value>"u"?s=n:s=n.value,i.isFirstInDuration=s.points===r,i.consumedPoints=s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire!==null?Math.max(new Date(s.expire).getTime()-Date.now(),0):-1,i}_upsert(e,r,n,i=!1,s={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let o=s.attrs||{},a,c;i?(a={key:e},a=Object.assign(a,o),c={$set:{key:e,points:r,expire:n>0?new Date(Date.now()+n):null}},c.$set=Object.assign(c.$set,o)):(a={$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}],key:e},a=Object.assign(a,o),c={$setOnInsert:{key:e,expire:n>0?new Date(Date.now()+n):null},$inc:{points:r}},c.$setOnInsert=Object.assign(c.$setOnInsert,o));let u={upsert:!0};return this._driverVersion.major>=4||this._driverVersion.major===3&&this._driverVersion.feature>=7||this._driverVersion.feature>=6&&this._driverVersion.patch>=7?u.returnDocument="after":u.returnOriginal=!1,new Promise((l,f)=>{this._collection.findOneAndUpdate(a,c,u).then(d=>{l(d)}).catch(d=>{if(d&&d.code===11e3){let p=Object.assign({$or:[{expire:{$lte:new Date}},{expire:{$eq:null}}],key:e},o),h={$set:Object.assign({key:e,points:r,expire:n>0?new Date(Date.now()+n):null},o)};this._collection.findOneAndUpdate(p,h,u).then(m=>{l(m)}).catch(m=>{m&&m.code===11e3?this._upsert(e,r,n,i).then(g=>l(g)).catch(g=>f(g)):f(m)})}else f(d)})})}_get(e,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:e,$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}]},n);return this._collection.findOne(i)}_delete(e,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:e},n);return this._collection.deleteOne(i).then(s=>s.deletedCount>0)}};sm.exports=dl});var cm=q((m6,am)=>{var $E=yn(),zE=ft(),pl=class extends $E{constructor(e,r=null){super(e),this.client=e.storeClient,this.clientType=e.storeType,this.dbName=e.dbName,this.tableName=e.tableName,this.clearExpiredByTimeout=e.clearExpiredByTimeout,this.tableCreated=e.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()):this._createDbAndTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()}).catch(n=>{if(typeof r=="function")r(n);else throw n})}clearExpired(e){return new Promise(r=>{this._getConnection().then(n=>{n.query("DELETE FROM ??.?? WHERE expire < ?",[this.dbName,this.tableName,e],()=>{this._releaseConnection(n),r()})}).catch(()=>{r()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return new Promise((e,r)=>{this.client.getConnection((n,i)=>{if(n)return r(n);e(i)})});case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();default:return Promise.resolve(this.client)}}_releaseConnection(e){switch(this.clientType){case"pool":return e.release();case"sequelize":return this.client.connectionManager.releaseConnection(e);case"knex":return this.client.client.releaseConnection(e);default:return!0}}_createDbAndTable(){return new Promise((e,r)=>{this._getConnection().then(n=>{n.query(`CREATE DATABASE IF NOT EXISTS \`${this.dbName}\`;`,i=>{if(i)return this._releaseConnection(n),r(i);n.query(this._getCreateTableStmt(),s=>{if(s)return this._releaseConnection(n),r(s);this._releaseConnection(n),e()})})}).catch(n=>{r(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS \`${this.dbName}\`.\`${this.tableName}\` (\`key\` VARCHAR(255) CHARACTER SET utf8 NOT NULL,\`points\` INT(9) NOT NULL default 0,\`expire\` BIGINT UNSIGNED,PRIMARY KEY (\`key\`)) ENGINE = INNODB;`}get clientType(){return this._clientType}set clientType(e){if(typeof e>"u")if(this.client.constructor.name==="Connection")e="connection";else if(this.client.constructor.name==="Pool")e="pool";else if(this.client.constructor.name==="Sequelize")e="sequelize";else throw new Error("storeType is not defined");this._clientType=e.toLowerCase()}get dbName(){return this._dbName}set dbName(e){this._dbName=typeof e>"u"?"rtlmtrflx":e}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated=typeof e>"u"?!1:!!e}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(e){this._clearExpiredByTimeout=typeof e>"u"?!0:!!e}_getRateLimiterRes(e,r,n){let i=new zE,[s]=n;return i.isFirstInDuration=r===s.points,i.consumedPoints=i.isFirstInDuration?r:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_upsertTransaction(e,r,n,i,s){return new Promise((o,a)=>{e.query("BEGIN",c=>{if(c)return e.rollback(),a(c);let u=Date.now(),l=i>0?u+i:null,f,d;s?(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
|
|
16
16
|
ON DUPLICATE KEY UPDATE
|
|
17
17
|
points = ?,
|
|
18
|
-
expire = ?;`,
|
|
18
|
+
expire = ?;`,d=[this.dbName,this.tableName,r,n,l,n,l]):(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
|
|
19
19
|
ON DUPLICATE KEY UPDATE
|
|
20
20
|
points = IF(expire <= ?, ?, points + (?)),
|
|
21
|
-
expire = IF(expire <= ?, ?, expire);`,
|
|
21
|
+
expire = IF(expire <= ?, ?, expire);`,d=[this.dbName,this.tableName,r,n,l,u,n,n,u,l]),e.query(f,d,p=>{if(p)return e.rollback(),a(p);e.query("SELECT points, expire FROM ??.?? WHERE `key` = ?;",[this.dbName,this.tableName,r],(h,m)=>{if(h)return e.rollback(),a(h);e.query("COMMIT",g=>{if(g)return e.rollback(),a(g);o(m)})})})})})}_upsert(e,r,n,i=!1){return this.tableCreated?new Promise((s,o)=>{this._getConnection().then(a=>{this._upsertTransaction(a,e,r,n,i).then(c=>{s(c),this._releaseConnection(a)}).catch(c=>{o(c),this._releaseConnection(a)})}).catch(a=>{o(a)})}):Promise.reject(Error("Table is not created yet"))}_get(e){return this.tableCreated?new Promise((r,n)=>{this._getConnection().then(i=>{i.query("SELECT points, expire FROM ??.?? WHERE `key` = ? AND (`expire` > ? OR `expire` IS NULL)",[this.dbName,this.tableName,e,Date.now()],(s,o)=>{s?n(s):o.length===0?r(null):r(o),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(e){return this.tableCreated?new Promise((r,n)=>{this._getConnection().then(i=>{i.query("DELETE FROM ??.?? WHERE `key` = ?",[this.dbName,this.tableName,e],(s,o)=>{s?n(s):r(o.affectedRows>0),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}};am.exports=pl});var lm=q((g6,um)=>{var HE=yn(),GE=ft(),ml=class extends HE{constructor(e,r=null){super(e),this.client=e.storeClient,this.clientType=e.storeType,this.tableName=e.tableName,this.schemaName=e.schemaName,this.clearExpiredByTimeout=e.clearExpiredByTimeout,this.tableCreated=e.tableCreated,this.tableCreated?(this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()):this._createTable().then(()=>{this.tableCreated=!0,this.clearExpiredByTimeout&&this._clearExpiredHourAgo(),typeof r=="function"&&r()}).catch(n=>{if(typeof r=="function")r(n);else throw n})}_getTableIdentifier(){return this.schemaName?`"${this.schemaName}"."${this.tableName}"`:`"${this.tableName}"`}clearExpired(e){return new Promise(r=>{let n={name:"rlflx-clear-expired",text:`DELETE FROM ${this._getTableIdentifier()} WHERE expire < $1`,values:[e]};this._query(n).then(()=>{r()}).catch(()=>{r()})})}_clearExpiredHourAgo(){this._clearExpiredTimeoutId&&clearTimeout(this._clearExpiredTimeoutId),this._clearExpiredTimeoutId=setTimeout(()=>{this.clearExpired(Date.now()-36e5).then(()=>{this._clearExpiredHourAgo()})},3e5),this._clearExpiredTimeoutId.unref()}_getConnection(){switch(this.clientType){case"pool":return Promise.resolve(this.client);case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();case"typeorm":return Promise.resolve(this.client.driver.master);default:return Promise.resolve(this.client)}}_releaseConnection(e){switch(this.clientType){case"pool":return!0;case"sequelize":return this.client.connectionManager.releaseConnection(e);case"knex":return this.client.client.releaseConnection(e);case"typeorm":return!0;default:return!0}}_createTable(){return new Promise((e,r)=>{this._query({text:this._getCreateTableStmt()}).then(()=>{e()}).catch(n=>{n.code==="23505"?e():r(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS ${this._getTableIdentifier()} (
|
|
22
22
|
key varchar(255) PRIMARY KEY,
|
|
23
23
|
points integer NOT NULL DEFAULT 0,
|
|
24
24
|
expire bigint
|
|
25
|
-
);`}get clientType(){return this._clientType}set clientType(e){let r=this.client.constructor.name;if(typeof e>"u")if(r==="Client")e="client";else if(r==="Pool"||r==="BoundPool")e="pool";else if(r==="Sequelize")e="sequelize";else throw new Error("storeType is not defined");this._clientType=e.toLowerCase()}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get schemaName(){return this._schemaName}set schemaName(e){this._schemaName=e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated=typeof e>"u"?!1:!!e}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(e){this._clearExpiredByTimeout=typeof e>"u"?!0:!!e}_getRateLimiterRes(e,r,n){let i=new
|
|
25
|
+
);`}get clientType(){return this._clientType}set clientType(e){let r=this.client.constructor.name;if(typeof e>"u")if(r==="Client")e="client";else if(r==="Pool"||r==="BoundPool")e="pool";else if(r==="Sequelize")e="sequelize";else throw new Error("storeType is not defined");this._clientType=e.toLowerCase()}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?this.keyPrefix:e}get schemaName(){return this._schemaName}set schemaName(e){this._schemaName=e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated=typeof e>"u"?!1:!!e}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(e){this._clearExpiredByTimeout=typeof e>"u"?!0:!!e}_getRateLimiterRes(e,r,n){let i=new GE,s=n.rows[0];return i.isFirstInDuration=r===s.points,i.consumedPoints=i.isFirstInDuration?r:s.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=s.expire?Math.max(s.expire-Date.now(),0):-1,i}_query(e){let n={name:`${this.tableName.toLowerCase()}:${e.name}`,text:e.text,values:e.values};return new Promise((i,s)=>{this._getConnection().then(o=>{o.query(n).then(a=>{i(a),this._releaseConnection(o)}).catch(a=>{s(a),this._releaseConnection(o)})}).catch(o=>{s(o)})})}_upsert(e,r,n,i=!1){if(!this.tableCreated)return Promise.reject(Error("Table is not created yet"));let s=n>0?Date.now()+n:null,o=i?" $3 ":` CASE
|
|
26
26
|
WHEN ${this._getTableIdentifier()}.expire <= $4 THEN $3
|
|
27
27
|
ELSE ${this._getTableIdentifier()}.expire
|
|
28
28
|
END `;return this._query({name:i?"rlflx-upsert-force":"rlflx-upsert",text:`
|
|
@@ -34,31 +34,31 @@
|
|
|
34
34
|
END,
|
|
35
35
|
expire = ${o}
|
|
36
36
|
RETURNING points, expire;`,values:[e,r,s,Date.now()]})}_get(e){return this.tableCreated?new Promise((r,n)=>{this._query({name:"rlflx-get",text:`
|
|
37
|
-
SELECT points, expire FROM ${this._getTableIdentifier()} WHERE key = $1 AND (expire > $2 OR expire IS NULL);`,values:[e,Date.now()]}).then(i=>{i.rowCount===0&&(i=null),r(i)}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(e){return this.tableCreated?this._query({name:"rlflx-delete",text:`DELETE FROM ${this._getTableIdentifier()} WHERE key = $1`,values:[e]}).then(r=>r.rowCount>0):Promise.reject(Error("Table is not created yet"))}};xm.exports=Cl});var wm=V(()=>{});var vm=V((j6,Em)=>{Em.exports=class{constructor(e,r,n=null){this.value=e,this.expiresAt=r,this.timeoutId=n}get value(){return this._value}set value(e){this._value=parseInt(e)}get expiresAt(){return this._expiresAt}set expiresAt(e){!(e instanceof Date)&&Number.isInteger(e)&&(e=new Date(e)),this._expiresAt=e}get timeoutId(){return this._timeoutId}set timeoutId(e){this._timeoutId=e}}});var Sm=V((eL,_m)=>{var jE=vm(),Tl=_t();_m.exports=class{constructor(){this._storage={}}incrby(e,r,n){if(this._storage[e]){let i=this._storage[e].expiresAt?this._storage[e].expiresAt.getTime()-new Date().getTime():-1;return!this._storage[e].expiresAt||i>0?(this._storage[e].value=this._storage[e].value+r,new Tl(0,i,this._storage[e].value,!1)):this.set(e,r,n)}return this.set(e,r,n)}set(e,r,n){let i=n*1e3;return this._storage[e]&&this._storage[e].timeoutId&&clearTimeout(this._storage[e].timeoutId),this._storage[e]=new jE(r,i>0?new Date(Date.now()+i):null),i>0&&(this._storage[e].timeoutId=setTimeout(()=>{delete this._storage[e]},i),this._storage[e].timeoutId.unref&&this._storage[e].timeoutId.unref()),new Tl(0,i===0?-1:i,this._storage[e].value,!0)}get(e){if(this._storage[e]){let r=this._storage[e].expiresAt?this._storage[e].expiresAt.getTime()-new Date().getTime():-1;return new Tl(0,r,this._storage[e].value,!1)}return null}delete(e){return this._storage[e]?(this._storage[e].timeoutId&&clearTimeout(this._storage[e].timeoutId),delete this._storage[e],!0):!1}}});var Ll=V((tL,Im)=>{var JE=is(),ev=Sm(),Am=_t(),Bl=class extends JE{constructor(e={}){super(e),this._memoryStorage=new ev}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(e),a=this._getKeySecDuration(n),c=this._memoryStorage.incrby(o,r,a);if(c.remainingPoints=Math.max(this.points-c.consumedPoints,0),c.consumedPoints>this.points)this.blockDuration>0&&c.consumedPoints<=this.points+r&&(c=this._memoryStorage.set(o,c.consumedPoints,this.blockDuration)),s(c);else if(this.execEvenly&&c.msBeforeNext>0&&!c.isFirstInDuration){let u=Math.ceil(c.msBeforeNext/(c.remainingPoints+2));u<this.execEvenlyMinDelayMs&&(u=c.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(i,u,c)}else i(c)})}penalty(e,r=1,n={}){let i=this.getKey(e);return new Promise(s=>{let o=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,r,o);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}reward(e,r=1,n={}){let i=this.getKey(e);return new Promise(s=>{let o=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,-r,o);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}block(e,r){let n=r*1e3,i=this.points+1;return this._memoryStorage.set(this.getKey(e),i,r),Promise.resolve(new Am(0,n===0?-1:n,i))}set(e,r,n){let i=(n>=0?n:this.duration)*1e3;return this._memoryStorage.set(this.getKey(e),r,n),Promise.resolve(new Am(0,i===0?-1:i,r))}get(e){let r=this._memoryStorage.get(this.getKey(e));return r!==null&&(r.remainingPoints=Math.max(this.points-r.consumedPoints,0)),Promise.resolve(r)}delete(e){return Promise.resolve(this._memoryStorage.delete(this.getKey(e)))}};Im.exports=Bl});var Dm=V((rL,Pm)=>{var Rm=wm(),tv=wi(),rv=is(),Tm=Ll(),nv=_t(),Tt="rate_limiter_flexible",hi=null,Cm=function(t,e,r,n){let i;n===null||n===!0||n===!1?i=n:i={remainingPoints:n.remainingPoints,msBeforeNext:n.msBeforeNext,consumedPoints:n.consumedPoints,isFirstInDuration:n.isFirstInDuration},t.send({channel:Tt,keyPrefix:e.keyPrefix,promiseId:e.promiseId,type:r,data:i})},Bm=function(t){setTimeout(()=>{this._initiated?process.send(t):typeof this._promises[t.promiseId]<"u"&&Bm.call(this,t)},30)},li=function(t,e,r,n,i){let s={channel:Tt,keyPrefix:this.keyPrefix,func:t,promiseId:e,data:{key:r,arg:n,opts:i}};this._initiated?process.send(s):Bm.call(this,s)},Lm=function(t,e){if(!e||e.channel!==Tt||typeof this._rateLimiters[e.keyPrefix]>"u")return!1;let r;switch(e.func){case"consume":r=this._rateLimiters[e.keyPrefix].consume(e.data.key,e.data.arg,e.data.opts);break;case"penalty":r=this._rateLimiters[e.keyPrefix].penalty(e.data.key,e.data.arg,e.data.opts);break;case"reward":r=this._rateLimiters[e.keyPrefix].reward(e.data.key,e.data.arg,e.data.opts);break;case"block":r=this._rateLimiters[e.keyPrefix].block(e.data.key,e.data.arg,e.data.opts);break;case"get":r=this._rateLimiters[e.keyPrefix].get(e.data.key,e.data.opts);break;case"delete":r=this._rateLimiters[e.keyPrefix].delete(e.data.key,e.data.opts);break;default:return!1}r&&r.then(n=>{Cm(t,e,"resolve",n)}).catch(n=>{Cm(t,e,"reject",n)})},iv=function(t){if(!t||t.channel!==Tt||t.keyPrefix!==this.keyPrefix)return!1;if(this._promises[t.promiseId]){clearTimeout(this._promises[t.promiseId].timeoutId);let e;switch(t.data===null||t.data===!0||t.data===!1?e=t.data:e=new nv(t.data.remainingPoints,t.data.msBeforeNext,t.data.consumedPoints,t.data.isFirstInDuration),t.type){case"resolve":this._promises[t.promiseId].resolve(e);break;case"reject":this._promises[t.promiseId].reject(e);break;default:throw new Error(`RateLimiterCluster: no such message type '${t.type}'`)}delete this._promises[t.promiseId]}},sv=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},fi=function(t,e){let r=process.hrtime(),n=r[0].toString()+r[1].toString();return typeof this._promises[n]<"u"&&(n+=tv.randomBytes(12).toString("base64")),this._promises[n]={resolve:t,reject:e,timeoutId:setTimeout(()=>{delete this._promises[n],e(new Error("RateLimiterCluster timeout: no answer from master in time"))},this.timeoutMs)},n},Pl=class{constructor(){if(hi)return hi;this._rateLimiters={},Rm.setMaxListeners(0),Rm.on("message",(e,r)=>{r&&r.channel===Tt&&r.type==="init"?(typeof this._rateLimiters[r.opts.keyPrefix]>"u"&&(this._rateLimiters[r.opts.keyPrefix]=new Tm(r.opts)),e.send({channel:Tt,type:"init",keyPrefix:r.opts.keyPrefix})):Lm.call(this,e,r)}),hi=this}},Dl=class{constructor(e){if(hi)return hi;this._rateLimiters={},e.launchBus((r,n)=>{n.on("process:msg",i=>{let s=i.raw;if(s&&s.channel===Tt&&s.type==="init")typeof this._rateLimiters[s.opts.keyPrefix]>"u"&&(this._rateLimiters[s.opts.keyPrefix]=new Tm(s.opts)),e.sendDataToProcessId(i.process.pm_id,{data:{},topic:Tt,channel:Tt,type:"init",keyPrefix:s.opts.keyPrefix},(o,a)=>{o&&console.log(o,a)});else{let o={send:a=>{let c=a;c.topic=Tt,typeof c.data>"u"&&(c.data={}),e.sendDataToProcessId(i.process.pm_id,c,(u,l)=>{u&&console.log(u,l)})}};Lm.call(this,o,s)}})}),hi=this}},Nl=class extends rv{get timeoutMs(){return this._timeoutMs}set timeoutMs(e){this._timeoutMs=typeof e>"u"?5e3:Math.abs(parseInt(e))}constructor(e={}){super(e),process.setMaxListeners(0),this.timeoutMs=e.timeoutMs,this._initiated=!1,process.on("message",r=>{r&&r.channel===Tt&&r.type==="init"&&r.keyPrefix===this.keyPrefix?this._initiated=!0:iv.call(this,r)}),process.send({channel:Tt,type:"init",opts:sv.call(this)}),this._promises={}}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=fi.call(this,i,s);li.call(this,"consume",o,e,r,n)})}penalty(e,r=1,n={}){return new Promise((i,s)=>{let o=fi.call(this,i,s);li.call(this,"penalty",o,e,r,n)})}reward(e,r=1,n={}){return new Promise((i,s)=>{let o=fi.call(this,i,s);li.call(this,"reward",o,e,r,n)})}block(e,r,n={}){return new Promise((i,s)=>{let o=fi.call(this,i,s);li.call(this,"block",o,e,r,n)})}get(e,r={}){return new Promise((n,i)=>{let s=fi.call(this,n,i);li.call(this,"get",s,e,r)})}delete(e,r={}){return new Promise((n,i)=>{let s=fi.call(this,n,i);li.call(this,"delete",s,e,r)})}};Pm.exports={RateLimiterClusterMaster:Pl,RateLimiterClusterMasterPM2:Dl,RateLimiterCluster:Nl}});var km=V((nL,Nm)=>{var ov=ui(),av=_t(),kl=class extends ov{constructor(e){super(e),this.client=e.storeClient}_getRateLimiterRes(e,r,n){let i=new av;return i.consumedPoints=parseInt(n.consumedPoints),i.isFirstInDuration=n.consumedPoints===r,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=n.msBeforeNext,i}_upsert(e,r,n,i=!1,s={}){return new Promise((o,a)=>{let c=Date.now(),u=Math.floor(n/1e3);i?this.client.set(e,r,u,l=>{l?a(l):this.client.set(`${e}_expire`,u>0?c+u*1e3:-1,u,()=>{let f={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(f)})}):this.client.incr(e,r,(l,f)=>{l||f===!1?this.client.add(e,r,u,(h,p)=>{if(h||!p)if(typeof s.attemptNumber>"u"||s.attemptNumber<3){let d=Object.assign({},s);d.attemptNumber=d.attemptNumber?d.attemptNumber+1:1,this._upsert(e,r,n,i,d).then(m=>o(m)).catch(m=>a(m))}else a(new Error("Can not add key"));else this.client.add(`${e}_expire`,u>0?c+u*1e3:-1,u,()=>{let d={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(d)})}):this.client.get(`${e}_expire`,(h,p)=>{if(h)a(h);else{let d=p===!1?0:p,m={consumedPoints:f,msBeforeNext:d>=0?Math.max(d-c,0):-1};o(m)}})})})}_get(e){return new Promise((r,n)=>{let i=Date.now();this.client.get(e,(s,o)=>{o?this.client.get(`${e}_expire`,(a,c)=>{if(a)n(a);else{let u=c===!1?0:c,l={consumedPoints:o,msBeforeNext:u>=0?Math.max(u-i,0):-1};r(l)}}):r(null)})})}_delete(e){return new Promise((r,n)=>{this.client.del(e,(i,s)=>{i?n(i):s===!1?r(s):this.client.del(`${e}_expire`,o=>{o?n(o):r(s)})})})}};Nm.exports=kl});var Um=V((sL,Mm)=>{var Om=_t();Mm.exports=class{constructor(e={}){this.limiter=e.limiter,this.blackList=e.blackList,this.whiteList=e.whiteList,this.isBlackListed=e.isBlackListed,this.isWhiteListed=e.isWhiteListed,this.runActionAnyway=e.runActionAnyway}get limiter(){return this._limiter}set limiter(e){if(typeof e>"u")throw new Error("limiter is not set");this._limiter=e}get runActionAnyway(){return this._runActionAnyway}set runActionAnyway(e){this._runActionAnyway=typeof e>"u"?!1:e}get blackList(){return this._blackList}set blackList(e){this._blackList=Array.isArray(e)?e:[]}get isBlackListed(){return this._isBlackListed}set isBlackListed(e){if(typeof e>"u"&&(e=()=>!1),typeof e!="function")throw new Error("isBlackListed must be function");this._isBlackListed=e}get whiteList(){return this._whiteList}set whiteList(e){this._whiteList=Array.isArray(e)?e:[]}get isWhiteListed(){return this._isWhiteListed}set isWhiteListed(e){if(typeof e>"u"&&(e=()=>!1),typeof e!="function")throw new Error("isWhiteListed must be function");this._isWhiteListed=e}isBlackListedSomewhere(e){return this.blackList.indexOf(e)>=0||this.isBlackListed(e)}isWhiteListedSomewhere(e){return this.whiteList.indexOf(e)>=0||this.isWhiteListed(e)}getBlackRes(){return new Om(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new Om(Number.MAX_SAFE_INTEGER,0,0,!1)}rejectBlack(){return Promise.reject(this.getBlackRes())}resolveBlack(){return Promise.resolve(this.getBlackRes())}resolveWhite(){return Promise.resolve(this.getWhiteRes())}consume(e,r=1){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.rejectBlack()),typeof n>"u"?this.limiter.consume(e,r):(this.runActionAnyway&&this.limiter.consume(e,r).catch(()=>{}),n)}block(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.block(e,r):(this.runActionAnyway&&this.limiter.block(e,r).catch(()=>{}),n)}penalty(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.penalty(e,r):(this.runActionAnyway&&this.limiter.penalty(e,r).catch(()=>{}),n)}reward(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.reward(e,r):(this.runActionAnyway&&this.limiter.reward(e,r).catch(()=>{}),n)}get(e){let r;return this.isWhiteListedSomewhere(e)?r=this.resolveWhite():this.isBlackListedSomewhere(e)&&(r=this.resolveBlack()),typeof r>"u"||this.runActionAnyway?this.limiter.get(e):r}delete(e){return this.limiter.delete(e)}}});var Km=V((aL,Fm)=>{var cv=is();Fm.exports=class{constructor(...e){if(e.length<1)throw new Error("RateLimiterUnion: at least one limiter have to be passed");e.forEach(r=>{if(!(r instanceof cv))throw new Error("RateLimiterUnion: all limiters have to be instance of RateLimiterAbstract")}),this._limiters=e}consume(e,r=1){return new Promise((n,i)=>{let s=[];this._limiters.forEach(o=>{s.push(o.consume(e,r).catch(a=>({rejected:!0,rej:a})))}),Promise.all(s).then(o=>{let a={},c=!1;o.forEach(u=>{u.rejected===!0&&(c=!0)});for(let u=0;u<o.length;u++)c&&o[u].rejected===!0?a[this._limiters[u].keyPrefix]=o[u].rej:c||(a[this._limiters[u].keyPrefix]=o[u]);c?i(a):n(a)})})}}});var Vm=V((uL,qm)=>{qm.exports=class extends Error{constructor(e,r){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=e,r&&(this.extra=r)}}});var Gm=V((fL,Hm)=>{var $m=Vm(),zm=4294967295,Ol="limiter";Hm.exports=class{constructor(e,r={maxQueueSize:zm}){this._queueLimiters={KEY_DEFAULT:new Yo(e,r)},this._limiterFlexible=e,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(e=Ol){return this._queueLimiters[e]?this._queueLimiters[e].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(e,r=Ol){return this._queueLimiters[r]||(this._queueLimiters[r]=new Yo(this._limiterFlexible,{key:r,maxQueueSize:this._maxQueueSize})),this._queueLimiters[r].removeTokens(e)}};var Yo=class{constructor(e,r={maxQueueSize:zm,key:Ol}){this._key=r.key,this._waitTimeout=null,this._queue=[],this._limiterFlexible=e,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(){return this._limiterFlexible.get(this._key).then(e=>e!==null?e.remainingPoints:this._limiterFlexible.points)}removeTokens(e){let r=this;return new Promise((n,i)=>{if(e>r._limiterFlexible.points){i(new $m(`Requested tokens ${e} exceeds maximum ${r._limiterFlexible.points} tokens per interval`));return}r._queue.length>0?r._queueRequest.call(r,n,i,e):r._limiterFlexible.consume(r._key,e).then(s=>{n(s.remainingPoints)}).catch(s=>{s instanceof Error?i(s):(r._queueRequest.call(r,n,i,e),r._waitTimeout===null&&(r._waitTimeout=setTimeout(r._processFIFO.bind(r),s.msBeforeNext)))})})}_queueRequest(e,r,n){let i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:e,reject:r,tokens:n}):r(new $m(`Number of requests reached it's maximum ${i._maxQueueSize}`))}_processFIFO(){let e=this;if(e._waitTimeout!==null&&(clearTimeout(e._waitTimeout),e._waitTimeout=null),e._queue.length===0)return;let r=e._queue.shift();e._limiterFlexible.consume(e._key,r.tokens).then(n=>{r.resolve(n.remainingPoints),e._processFIFO.call(e)}).catch(n=>{n instanceof Error?(r.reject(n),e._processFIFO.call(e)):(e._queue.unshift(r),e._waitTimeout===null&&(e._waitTimeout=setTimeout(e._processFIFO.bind(e),n.msBeforeNext)))})}}});var Ym=V((dL,Wm)=>{var Ml=_t();Wm.exports=class{constructor(e,r){this._rateLimiter=e,this._burstLimiter=r}_combineRes(e,r){return e?new Ml(e.remainingPoints,Math.min(e.msBeforeNext,r?r.msBeforeNext:0),e.consumedPoints,e.isFirstInDuration):null}consume(e,r=1,n={}){return this._rateLimiter.consume(e,r,n).catch(i=>i instanceof Ml?this._burstLimiter.consume(e,r,n).then(s=>Promise.resolve(this._combineRes(i,s))).catch(s=>s instanceof Ml?Promise.reject(this._combineRes(i,s)):Promise.reject(s)):Promise.reject(i))}get(e){return Promise.all([this._rateLimiter.get(e),this._burstLimiter.get(e)]).then(([r,n])=>this._combineRes(r,n))}get points(){return this._rateLimiter.points}}});var Xm=V((pL,Qm)=>{var uv=hm(),lv=mm(),fv=ym(),hv=bm(),{RateLimiterClusterMaster:dv,RateLimiterClusterMasterPM2:pv,RateLimiterCluster:mv}=Dm(),gv=Ll(),yv=km(),xv=Um(),bv=Km(),wv=Gm(),Ev=Ym(),vv=_t();Qm.exports={RateLimiterRedis:uv,RateLimiterMongo:lv,RateLimiterMySQL:fv,RateLimiterPostgres:hv,RateLimiterMemory:gv,RateLimiterMemcache:yv,RateLimiterClusterMaster:dv,RateLimiterClusterMasterPM2:pv,RateLimiterCluster:mv,RLWrapperBlackAndWhite:xv,RateLimiterUnion:bv,RateLimiterQueue:wv,BurstyRateLimiter:Ev,RateLimiterRes:vv}});var e_={};Fe(e_,{createLibp2p:()=>Jv});var C8=Ee(bi(),1),T8=Ee(R0(),1);var C0=Symbol.for("@libp2p/connection");var Ha=Symbol.for("@libp2p/content-routing");var Ga=Symbol.for("@libp2p/peer-discovery");var Wa=Symbol.for("@libp2p/peer-id");function Cs(t){return t!=null&&!!t[Wa]}var Ya=Symbol.for("@libp2p/peer-routing");var T0="keep-alive";var B0;(function(t){t.Accept="accept",t.Ignore="ignore",t.Reject="reject"})(B0||(B0={}));var k_=Symbol.for("@libp2p/transport");var _r;(function(t){t[t.FATAL_ALL=0]="FATAL_ALL",t[t.NO_FATAL=1]="NO_FATAL"})(_r||(_r={}));var Bn=class t extends Error{code;type;constructor(e="The operation was aborted"){super(e),this.code=t.code,this.type=t.type}static code="ABORT_ERR";static type="aborted"},S=class extends Error{code;props;constructor(e,r,n){super(e),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var Ts="ERR_TIMEOUT",L0="ERR_INVALID_PARAMETERS";var _i=class extends EventTarget{#e=new Map;listenerCount(e){let r=this.#e.get(e);return r==null?0:r.length}addEventListener(e,r,n){super.addEventListener(e,r,n);let i=this.#e.get(e);i==null&&(i=[],this.#e.set(e,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,r,n){super.removeEventListener(e.toString(),r??null,n);let i=this.#e.get(e);i!=null&&(i=i.filter(({callback:s})=>s!==r),this.#e.set(e,i))}dispatchEvent(e){let r=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:i})=>!i),this.#e.set(e.type,n)),r}safeDispatchEvent(e,r){return this.dispatchEvent(new Xa(e,r))}},Qa=class extends Event{detail;constructor(e,r){super(e,r),this.detail=r?.detail}},Xa=globalThis.CustomEvent??Qa;var mt=(t,...e)=>{try{[...e]}catch{}};function P0(t){return t!=null&&typeof t.start=="function"&&typeof t.stop=="function"}var jb=Ee(he(),1);function Xr(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}var tc={};Fe(tc,{base10:()=>c1});function n1(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<t.length;i++){var s=t.charAt(i),o=s.charCodeAt(0);if(r[o]!==255)throw new TypeError(s+" is ambiguous");r[o]=i}var a=t.length,c=t.charAt(0),u=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function f(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 m=0,g=0,y=0,x=d.length;y!==x&&d[y]===0;)y++,m++;for(var b=(x-y)*l+1>>>0,I=new Uint8Array(b);y!==x;){for(var v=d[y],_=0,P=b-1;(v!==0||_<g)&&P!==-1;P--,_++)v+=256*I[P]>>>0,I[P]=v%a>>>0,v=v/a>>>0;if(v!==0)throw new Error("Non-zero carry");g=_,y++}for(var D=b-g;D!==b&&I[D]===0;)D++;for(var G=c.repeat(m);D<b;++D)G+=t.charAt(I[D]);return G}function h(d){if(typeof d!="string")throw new TypeError("Expected String");if(d.length===0)return new Uint8Array;var m=0;if(d[m]!==" "){for(var g=0,y=0;d[m]===c;)g++,m++;for(var x=(d.length-m)*u+1>>>0,b=new Uint8Array(x);d[m];){var I=r[d.charCodeAt(m)];if(I===255)return;for(var v=0,_=x-1;(I!==0||v<y)&&_!==-1;_--,v++)I+=a*b[_]>>>0,b[_]=I%256>>>0,I=I/256>>>0;if(I!==0)throw new Error("Non-zero carry");y=v,m++}if(d[m]!==" "){for(var P=x-y;P!==x&&b[P]===0;)P++;for(var D=new Uint8Array(g+(x-P)),G=g;P!==x;)D[G++]=b[P++];return D}}}function p(d){var m=h(d);if(m)return m;throw new Error(`Non-${e} character`)}return{encode:f,decodeUnsafe:h,decode:p}}var i1=n1,s1=i1,D0=s1;var mS=new Uint8Array(0);var N0=(t,e)=>{if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0},ir=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")};var k0=t=>new TextEncoder().encode(t),O0=t=>new TextDecoder().decode(t);var Za=class{constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},ja=class{constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.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 U0(this,e)}},Ja=class{constructor(e){this.decoders=e}or(e){return U0(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},U0=(t,e)=>new Ja({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),ec=class{constructor(e,r,n,i){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new Za(e,r,n),this.decoder=new ja(e,r,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},Ln=({name:t,prefix:e,encode:r,decode:n})=>new ec(t,e,r,n),Sr=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:i}=D0(r,e);return Ln({prefix:t,name:e,encode:n,decode:s=>ir(i(s))})},o1=(t,e,r,n)=>{let i={};for(let l=0;l<e.length;++l)i[e[l]]=l;let s=t.length;for(;t[s-1]==="=";)--s;let o=new Uint8Array(s*r/8|0),a=0,c=0,u=0;for(let l=0;l<s;++l){let f=i[t[l]];if(f===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|f,a+=r,a>=8&&(a-=8,o[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o},a1=(t,e,r)=>{let n=e[e.length-1]==="=",i=(1<<r)-1,s="",o=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],o+=8;o>r;)o-=r,s+=e[i&a>>o];if(o&&(s+=e[i&a<<r-o]),n)for(;s.length*r&7;)s+="=";return s},Ae=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>Ln({prefix:e,name:t,encode(i){return a1(i,n,r)},decode(i){return o1(i,n,r,t)}});var c1=Sr({prefix:"9",name:"base10",alphabet:"0123456789"});var rc={};Fe(rc,{base16:()=>u1,base16upper:()=>l1});var u1=Ae({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),l1=Ae({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var nc={};Fe(nc,{base2:()=>f1});var f1=Ae({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var ic={};Fe(ic,{base256emoji:()=>g1});var F0=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}"),h1=F0.reduce((t,e,r)=>(t[r]=e,t),[]),d1=F0.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function p1(t){return t.reduce((e,r)=>(e+=h1[r],e),"")}function m1(t){let e=[];for(let r of t){let n=d1[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var g1=Ln({prefix:"\u{1F680}",name:"base256emoji",encode:p1,decode:m1});var sc={};Fe(sc,{base32:()=>gt,base32hex:()=>w1,base32hexpad:()=>v1,base32hexpadupper:()=>_1,base32hexupper:()=>E1,base32pad:()=>x1,base32padupper:()=>b1,base32upper:()=>y1,base32z:()=>S1});var gt=Ae({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),y1=Ae({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),x1=Ae({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),b1=Ae({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),w1=Ae({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),E1=Ae({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),v1=Ae({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),_1=Ae({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),S1=Ae({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var oc={};Fe(oc,{base36:()=>A1,base36upper:()=>I1});var A1=Sr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),I1=Sr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var ac={};Fe(ac,{base58btc:()=>ve,base58flickr:()=>R1});var ve=Sr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),R1=Sr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var uc={};Fe(uc,{base64:()=>Pn,base64pad:()=>C1,base64url:()=>cc,base64urlpad:()=>T1});var Pn=Ae({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),C1=Ae({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),cc=Ae({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),T1=Ae({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var lc={};Fe(lc,{base8:()=>B1});var B1=Ae({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var fc={};Fe(fc,{identity:()=>L1});var L1=Ln({prefix:"\0",name:"identity",encode:t=>O0(t),decode:t=>k0(t)});var BS=new TextEncoder,LS=new TextDecoder;var dc={};Fe(dc,{identity:()=>Ar});var N1=V0,K0=128,k1=127,O1=~k1,M1=Math.pow(2,31);function V0(t,e,r){e=e||[],r=r||0;for(var n=r;t>=M1;)e[r++]=t&255|K0,t/=128;for(;t&O1;)e[r++]=t&255|K0,t>>>=7;return e[r]=t|0,V0.bytes=r-n+1,e}var U1=hc,F1=128,q0=127;function hc(t,n){var r=0,n=n||0,i=0,s=n,o,a=t.length;do{if(s>=a)throw hc.bytes=0,new RangeError("Could not decode varint");o=t[s++],r+=i<28?(o&q0)<<i:(o&q0)*Math.pow(2,i),i+=7}while(o>=F1);return hc.bytes=s-n,r}var K1=Math.pow(2,7),q1=Math.pow(2,14),V1=Math.pow(2,21),$1=Math.pow(2,28),z1=Math.pow(2,35),H1=Math.pow(2,42),G1=Math.pow(2,49),W1=Math.pow(2,56),Y1=Math.pow(2,63),Q1=function(t){return t<K1?1:t<q1?2:t<V1?3:t<$1?4:t<z1?5:t<H1?6:t<G1?7:t<W1?8:t<Y1?9:10},X1={encode:N1,decode:U1,encodingLength:Q1},Z1=X1,Si=Z1;var Ai=(t,e=0)=>[Si.decode(t,e),Si.decode.bytes],Dn=(t,e,r=0)=>(Si.encode(t,e,r),e),Nn=t=>Si.encodingLength(t);var Yt=(t,e)=>{let r=e.byteLength,n=Nn(t),i=n+Nn(r),s=new Uint8Array(i+r);return Dn(t,s,0),Dn(r,s,n),s.set(e,i),new kn(t,r,e,s)},Zr=t=>{let e=ir(t),[r,n]=Ai(e),[i,s]=Ai(e.subarray(n)),o=e.subarray(n+s);if(o.byteLength!==i)throw new Error("Incorrect length");return new kn(r,i,o,e)},$0=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&N0(t.bytes,r.bytes)}},kn=class{constructor(e,r,n,i){this.code=e,this.size=r,this.digest=n,this.bytes=i}};var z0=0,j1="identity",H0=ir,J1=t=>Yt(z0,H0(t)),Ar={code:z0,name:j1,encode:H0,digest:J1};var gc={};Fe(gc,{sha256:()=>We,sha512:()=>e2});var mc=({name:t,code:e,encode:r})=>new pc(t,e,r),pc=class{constructor(e,r,n){this.name=e,this.code=r,this.encode=n}digest(e){if(e instanceof Uint8Array){let r=this.encode(e);return r instanceof Uint8Array?Yt(this.code,r):r.then(n=>Yt(this.code,n))}else throw Error("Unknown type, must be binary type")}};var W0=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),We=mc({name:"sha2-256",code:18,encode:W0("SHA-256")}),e2=mc({name:"sha2-512",code:19,encode:W0("SHA-512")});var Y0=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return r2(r,yc(t),e||ve.encoder);default:return n2(r,yc(t),e||gt.encoder)}};var Q0=new WeakMap,yc=t=>{let e=Q0.get(t);if(e==null){let r=new Map;return Q0.set(t,r),r}return e},Pt=class t{constructor(e,r,n,i){this.code=r,this.version=e,this.multihash=n,this.bytes=i,this["/"]=i}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:r}=this;if(e!==Ii)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==i2)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return t.createV0(r)}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:r}=this.multihash,n=Yt(e,r);return t.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 t.equals(this,e)}static equals(e,r){let n=r;return n&&e.code===n.code&&e.version===n.version&&$0(e.multihash,n.multihash)}toString(e){return Y0(this,e)}toJSON(){return{"/":Y0(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let r=e;if(r instanceof t)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:s,bytes:o}=r;return new t(n,i,s,o||X0(n,i,s.bytes))}else if(r[s2]===!0){let{version:n,multihash:i,code:s}=r,o=Zr(i);return t.create(n,s,o)}else return null}static create(e,r,n){if(typeof r!="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(r!==Ii)throw new Error(`Version 0 CID must use dag-pb (code: ${Ii}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let i=X0(e,r,n.bytes);return new t(e,r,n,i)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,Ii,e)}static createV1(e,r){return t.create(1,e,r)}static decode(e){let[r,n]=t.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=t.inspectBytes(e),n=r.size-r.multihashSize,i=ir(e.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let s=i.subarray(r.multihashSize-r.digestSize),o=new kn(r.multihashCode,r.digestSize,s,i);return[r.version===0?t.createV0(o):t.createV1(r.codec,o),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[f,h]=Ai(e.subarray(r));return r+=h,f},i=n(),s=Ii;if(i===18?(i=0,r=0):s=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let o=r,a=n(),c=n(),u=r+c,l=u-o;return{version:i,codec:s,multihashCode:a,digestSize:c,multihashSize:l,size:u}}static parse(e,r){let[n,i]=t2(e,r),s=t.decode(i);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return yc(s).set(n,e),s}},t2=(t,e)=>{switch(t[0]){case"Q":{let r=e||ve;return[ve.prefix,r.decode(`${ve.prefix}${t}`)]}case ve.prefix:{let r=e||ve;return[ve.prefix,r.decode(t)]}case gt.prefix:{let r=e||gt;return[gt.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}},r2=(t,e,r)=>{let{prefix:n}=r;if(n!==ve.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=e.get(n);if(i==null){let s=r.encode(t).slice(1);return e.set(n,s),s}else return i},n2=(t,e,r)=>{let{prefix:n}=r,i=e.get(n);if(i==null){let s=r.encode(t);return e.set(n,s),s}else return i},Ii=112,i2=18,X0=(t,e,r)=>{let n=Nn(t),i=n+Nn(e),s=new Uint8Array(i+r.byteLength);return Dn(t,s,0),Dn(e,s,n),s.set(r,i),s},s2=Symbol.for("@ipld/js-cid/CID");var ut={...fc,...nc,...lc,...tc,...rc,...sc,...oc,...ac,...uc,...ic},WS={...gc,...dc};function Ls(t=0){return globalThis.Buffer?.allocUnsafe!=null?Xr(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function j0(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var Z0=j0("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),xc=j0("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=Ls(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),o2={utf8:Z0,"utf-8":Z0,hex:ut.base16,latin1:xc,ascii:xc,binary:xc,...ut},Ps=o2;function j(t,e="utf8"){let r=Ps[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Xr(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}var Zc={};Fe(Zc,{Ed25519PrivateKey:()=>on,Ed25519PublicKey:()=>Di,generateKeyPair:()=>vb,generateKeyPairFromSeed:()=>Mh,unmarshalEd25519PrivateKey:()=>wb,unmarshalEd25519PublicKey:()=>Eb});function Ne(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}var uA=Ee(Le(),1),lA=Ee(Ss(),1),J0=Ee(he(),1);function sr(t,e){if(globalThis.Buffer!=null)return Xr(globalThis.Buffer.concat(t,e));e==null&&(e=t.reduce((i,s)=>i+s.length,0));let r=Ls(e),n=0;for(let i of t)r.set(i,n),n+=i.length;return Xr(r)}function ke(t,e="utf8"){let r=Ps[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):r.encoder.encode(t).substring(1)}function Dt(t,e){let r=Uint8Array.from(t.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,e!=null){if(r.length>e)throw new Error("byte array longer than desired length");r=sr([new Uint8Array(e-r.length),r])}return ke(r,"base64url")}function yt(t){let e=eh(t);return new J0.default.jsbn.BigInteger(ke(e,"base16"),16)}function eh(t,e){let r=j(t,"base64urlpad");if(e!=null){if(r.length>e)throw new Error("byte array longer than desired length");r=sr([new Uint8Array(e-r.length),r])}return r}function It(t){return t==null?!1:typeof t.then=="function"&&typeof t.catch=="function"&&typeof t.finally=="function"}function th(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`Wrong positive integer: ${t}`)}function bc(t,...e){if(!(t instanceof Uint8Array))throw new Error("Expected Uint8Array");if(e.length>0&&!e.includes(t.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${t.length}`)}function rh(t){if(typeof t!="function"||typeof t.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");th(t.outputLen),th(t.blockLen)}function On(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function nh(t,e){bc(t);let r=e.outputLen;if(t.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var Ds=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var ih=t=>t instanceof Uint8Array;var Ns=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),Nt=(t,e)=>t<<32-e|t>>>e,a2=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!a2)throw new Error("Non little-endian hardware is not supported");function wc(t){if(typeof t!="string")throw new Error(`utf8ToBytes expected string, got ${typeof t}`);return new Uint8Array(new TextEncoder().encode(t))}function Ri(t){if(typeof t=="string"&&(t=wc(t)),!ih(t))throw new Error(`expected Uint8Array, got ${typeof t}`);return t}function ks(...t){let e=new Uint8Array(t.reduce((n,i)=>n+i.length,0)),r=0;return t.forEach(n=>{if(!ih(n))throw new Error("Uint8Array expected");e.set(n,r),r+=n.length}),e}var Mn=class{clone(){return this._cloneInto()}},xA={}.toString;function Os(t){let e=n=>t().update(Ri(n)).digest(),r=t();return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=()=>t(),e}function Un(t=32){if(Ds&&typeof Ds.getRandomValues=="function")return Ds.getRandomValues(new Uint8Array(t));throw new Error("crypto.getRandomValues must be defined")}function c2(t,e,r,n){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,r,n);let i=BigInt(32),s=BigInt(4294967295),o=Number(r>>i&s),a=Number(r&s),c=n?4:0,u=n?0:4;t.setUint32(e+c,o,n),t.setUint32(e+u,a,n)}var Fn=class extends Mn{constructor(e,r,n,i){super(),this.blockLen=e,this.outputLen=r,this.padOffset=n,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Ns(this.buffer)}update(e){On(this);let{view:r,buffer:n,blockLen:i}=this;e=Ri(e);let s=e.length;for(let o=0;o<s;){let a=Math.min(i-this.pos,s-o);if(a===i){let c=Ns(e);for(;i<=s-o;o+=i)this.process(c,o);continue}n.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){On(this),nh(e,this),this.finished=!0;let{buffer:r,view:n,blockLen:i,isLE:s}=this,{pos:o}=this;r[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>i-o&&(this.process(n,0),o=0);for(let f=o;f<i;f++)r[f]=0;c2(n,i-8,BigInt(this.length*8),s),this.process(n,0);let a=Ns(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,l=this.get();if(u>l.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f<u;f++)a.setUint32(4*f,l[f],s)}digest(){let{buffer:e,outputLen:r}=this;this.digestInto(e);let n=e.slice(0,r);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:r,buffer:n,length:i,finished:s,destroyed:o,pos:a}=this;return e.length=i,e.pos=a,e.finished=s,e.destroyed=o,i%r&&e.buffer.set(n),e}};var Ms=BigInt(4294967295),Ec=BigInt(32);function sh(t,e=!1){return e?{h:Number(t&Ms),l:Number(t>>Ec&Ms)}:{h:Number(t>>Ec&Ms)|0,l:Number(t&Ms)|0}}function u2(t,e=!1){let r=new Uint32Array(t.length),n=new Uint32Array(t.length);for(let i=0;i<t.length;i++){let{h:s,l:o}=sh(t[i],e);[r[i],n[i]]=[s,o]}return[r,n]}var l2=(t,e)=>BigInt(t>>>0)<<Ec|BigInt(e>>>0),f2=(t,e,r)=>t>>>r,h2=(t,e,r)=>t<<32-r|e>>>r,d2=(t,e,r)=>t>>>r|e<<32-r,p2=(t,e,r)=>t<<32-r|e>>>r,m2=(t,e,r)=>t<<64-r|e>>>r-32,g2=(t,e,r)=>t>>>r-32|e<<64-r,y2=(t,e)=>e,x2=(t,e)=>t,b2=(t,e,r)=>t<<r|e>>>32-r,w2=(t,e,r)=>e<<r|t>>>32-r,E2=(t,e,r)=>e<<r-32|t>>>64-r,v2=(t,e,r)=>t<<r-32|e>>>64-r;function _2(t,e,r,n){let i=(e>>>0)+(n>>>0);return{h:t+r+(i/2**32|0)|0,l:i|0}}var S2=(t,e,r)=>(t>>>0)+(e>>>0)+(r>>>0),A2=(t,e,r,n)=>e+r+n+(t/2**32|0)|0,I2=(t,e,r,n)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0),R2=(t,e,r,n,i)=>e+r+n+i+(t/2**32|0)|0,C2=(t,e,r,n,i)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0)+(i>>>0),T2=(t,e,r,n,i,s)=>e+r+n+i+s+(t/2**32|0)|0;var B2={fromBig:sh,split:u2,toBig:l2,shrSH:f2,shrSL:h2,rotrSH:d2,rotrSL:p2,rotrBH:m2,rotrBL:g2,rotr32H:y2,rotr32L:x2,rotlSH:b2,rotlSL:w2,rotlBH:E2,rotlBL:v2,add:_2,add3L:S2,add3H:A2,add4L:I2,add4H:R2,add5H:T2,add5L:C2},X=B2;var[L2,P2]=X.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(t=>BigInt(t))),Ir=new Uint32Array(80),Rr=new Uint32Array(80),vc=class extends Fn{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:r,Bh:n,Bl:i,Ch:s,Cl:o,Dh:a,Dl:c,Eh:u,El:l,Fh:f,Fl:h,Gh:p,Gl:d,Hh:m,Hl:g}=this;return[e,r,n,i,s,o,a,c,u,l,f,h,p,d,m,g]}set(e,r,n,i,s,o,a,c,u,l,f,h,p,d,m,g){this.Ah=e|0,this.Al=r|0,this.Bh=n|0,this.Bl=i|0,this.Ch=s|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=l|0,this.Fh=f|0,this.Fl=h|0,this.Gh=p|0,this.Gl=d|0,this.Hh=m|0,this.Hl=g|0}process(e,r){for(let b=0;b<16;b++,r+=4)Ir[b]=e.getUint32(r),Rr[b]=e.getUint32(r+=4);for(let b=16;b<80;b++){let I=Ir[b-15]|0,v=Rr[b-15]|0,_=X.rotrSH(I,v,1)^X.rotrSH(I,v,8)^X.shrSH(I,v,7),P=X.rotrSL(I,v,1)^X.rotrSL(I,v,8)^X.shrSL(I,v,7),D=Ir[b-2]|0,G=Rr[b-2]|0,W=X.rotrSH(D,G,19)^X.rotrBH(D,G,61)^X.shrSH(D,G,6),z=X.rotrSL(D,G,19)^X.rotrBL(D,G,61)^X.shrSL(D,G,6),ee=X.add4L(P,z,Rr[b-7],Rr[b-16]),fe=X.add4H(ee,_,W,Ir[b-7],Ir[b-16]);Ir[b]=fe|0,Rr[b]=ee|0}let{Ah:n,Al:i,Bh:s,Bl:o,Ch:a,Cl:c,Dh:u,Dl:l,Eh:f,El:h,Fh:p,Fl:d,Gh:m,Gl:g,Hh:y,Hl:x}=this;for(let b=0;b<80;b++){let I=X.rotrSH(f,h,14)^X.rotrSH(f,h,18)^X.rotrBH(f,h,41),v=X.rotrSL(f,h,14)^X.rotrSL(f,h,18)^X.rotrBL(f,h,41),_=f&p^~f&m,P=h&d^~h&g,D=X.add5L(x,v,P,P2[b],Rr[b]),G=X.add5H(D,y,I,_,L2[b],Ir[b]),W=D|0,z=X.rotrSH(n,i,28)^X.rotrBH(n,i,34)^X.rotrBH(n,i,39),ee=X.rotrSL(n,i,28)^X.rotrBL(n,i,34)^X.rotrBL(n,i,39),fe=n&s^n&a^s&a,ze=i&o^i&c^o&c;y=m|0,x=g|0,m=p|0,g=d|0,p=f|0,d=h|0,{h:f,l:h}=X.add(u|0,l|0,G|0,W|0),u=a|0,l=c|0,a=s|0,c=o|0,s=n|0,o=i|0;let T=X.add3L(W,ee,ze);n=X.add3H(T,G,z,fe),i=T|0}({h:n,l:i}=X.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:s,l:o}=X.add(this.Bh|0,this.Bl|0,s|0,o|0),{h:a,l:c}=X.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l}=X.add(this.Dh|0,this.Dl|0,u|0,l|0),{h:f,l:h}=X.add(this.Eh|0,this.El|0,f|0,h|0),{h:p,l:d}=X.add(this.Fh|0,this.Fl|0,p|0,d|0),{h:m,l:g}=X.add(this.Gh|0,this.Gl|0,m|0,g|0),{h:y,l:x}=X.add(this.Hh|0,this.Hl|0,y|0,x|0),this.set(n,i,s,o,a,c,u,l,f,h,p,d,m,g,y,x)}roundClean(){Ir.fill(0),Rr.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 _c=Os(()=>new vc);var Ks={};Fe(Ks,{bitGet:()=>F2,bitLen:()=>U2,bitMask:()=>Ci,bitSet:()=>K2,bytesToHex:()=>or,bytesToNumberBE:()=>ar,bytesToNumberLE:()=>Cr,concatBytes:()=>cr,createHmacDrbg:()=>Ic,ensureBytes:()=>Ie,equalBytes:()=>O2,hexToBytes:()=>Jr,hexToNumber:()=>Ac,numberToBytesBE:()=>Tr,numberToBytesLE:()=>en,numberToHexUnpadded:()=>ch,numberToVarBytesBE:()=>k2,utf8ToBytes:()=>M2,validateObject:()=>Qt});var ah=BigInt(0),Us=BigInt(1),D2=BigInt(2),Fs=t=>t instanceof Uint8Array,N2=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function or(t){if(!Fs(t))throw new Error("Uint8Array expected");let e="";for(let r=0;r<t.length;r++)e+=N2[t[r]];return e}function ch(t){let e=t.toString(16);return e.length&1?`0${e}`:e}function Ac(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);return BigInt(t===""?"0":`0x${t}`)}function Jr(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);let e=t.length;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);let r=new Uint8Array(e/2);for(let n=0;n<r.length;n++){let i=n*2,s=t.slice(i,i+2),o=Number.parseInt(s,16);if(Number.isNaN(o)||o<0)throw new Error("Invalid byte sequence");r[n]=o}return r}function ar(t){return Ac(or(t))}function Cr(t){if(!Fs(t))throw new Error("Uint8Array expected");return Ac(or(Uint8Array.from(t).reverse()))}function Tr(t,e){return Jr(t.toString(16).padStart(e*2,"0"))}function en(t,e){return Tr(t,e).reverse()}function k2(t){return Jr(ch(t))}function Ie(t,e,r){let n;if(typeof e=="string")try{n=Jr(e)}catch(s){throw new Error(`${t} must be valid hex string, got "${e}". Cause: ${s}`)}else if(Fs(e))n=Uint8Array.from(e);else throw new Error(`${t} must be hex string or Uint8Array`);let i=n.length;if(typeof r=="number"&&i!==r)throw new Error(`${t} expected ${r} bytes, got ${i}`);return n}function cr(...t){let e=new Uint8Array(t.reduce((n,i)=>n+i.length,0)),r=0;return t.forEach(n=>{if(!Fs(n))throw new Error("Uint8Array expected");e.set(n,r),r+=n.length}),e}function O2(t,e){if(t.length!==e.length)return!1;for(let r=0;r<t.length;r++)if(t[r]!==e[r])return!1;return!0}function M2(t){if(typeof t!="string")throw new Error(`utf8ToBytes expected string, got ${typeof t}`);return new Uint8Array(new TextEncoder().encode(t))}function U2(t){let e;for(e=0;t>ah;t>>=Us,e+=1);return e}function F2(t,e){return t>>BigInt(e)&Us}var K2=(t,e,r)=>t|(r?Us:ah)<<BigInt(e),Ci=t=>(D2<<BigInt(t-1))-Us,Sc=t=>new Uint8Array(t),oh=t=>Uint8Array.from(t);function Ic(t,e,r){if(typeof t!="number"||t<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 r!="function")throw new Error("hmacFn must be a function");let n=Sc(t),i=Sc(t),s=0,o=()=>{n.fill(1),i.fill(0),s=0},a=(...f)=>r(i,n,...f),c=(f=Sc())=>{i=a(oh([0]),f),n=a(),f.length!==0&&(i=a(oh([1]),f),n=a())},u=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let f=0,h=[];for(;f<e;){n=a();let p=n.slice();h.push(p),f+=n.length}return cr(...h)};return(f,h)=>{o(),c(f);let p;for(;!(p=h(u()));)c();return o(),p}}var q2={bigint:t=>typeof t=="bigint",function:t=>typeof t=="function",boolean:t=>typeof t=="boolean",string:t=>typeof t=="string",stringOrUint8Array:t=>typeof t=="string"||t instanceof Uint8Array,isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>typeof t=="function"&&Number.isSafeInteger(t.outputLen)};function Qt(t,e,r={}){let n=(i,s,o)=>{let a=q2[s];if(typeof a!="function")throw new Error(`Invalid validator "${s}", expected function`);let c=t[i];if(!(o&&c===void 0)&&!a(c,t))throw new Error(`Invalid param ${String(i)}=${c} (${typeof c}), expected ${s}`)};for(let[i,s]of Object.entries(e))n(i,s,!1);for(let[i,s]of Object.entries(r))n(i,s,!0);return t}var Oe=BigInt(0),xe=BigInt(1),tn=BigInt(2),V2=BigInt(3),Rc=BigInt(4),uh=BigInt(5),lh=BigInt(8),$2=BigInt(9),z2=BigInt(16);function de(t,e){let r=t%e;return r>=Oe?r:e+r}function H2(t,e,r){if(r<=Oe||e<Oe)throw new Error("Expected power/modulo > 0");if(r===xe)return Oe;let n=xe;for(;e>Oe;)e&xe&&(n=n*t%r),t=t*t%r,e>>=xe;return n}function be(t,e,r){let n=t;for(;e-- >Oe;)n*=n,n%=r;return n}function qs(t,e){if(t===Oe||e<=Oe)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let r=de(t,e),n=e,i=Oe,s=xe,o=xe,a=Oe;for(;r!==Oe;){let u=n/r,l=n%r,f=i-o*u,h=s-a*u;n=r,r=l,i=o,s=a,o=f,a=h}if(n!==xe)throw new Error("invert: does not exist");return de(i,e)}function G2(t){let e=(t-xe)/tn,r,n,i;for(r=t-xe,n=0;r%tn===Oe;r/=tn,n++);for(i=tn;i<t&&H2(i,e,t)!==t-xe;i++);if(n===1){let o=(t+xe)/Rc;return function(c,u){let l=c.pow(u,o);if(!c.eql(c.sqr(l),u))throw new Error("Cannot find square root");return l}}let s=(r+xe)/tn;return function(a,c){if(a.pow(c,e)===a.neg(a.ONE))throw new Error("Cannot find square root");let u=n,l=a.pow(a.mul(a.ONE,i),r),f=a.pow(c,s),h=a.pow(c,r);for(;!a.eql(h,a.ONE);){if(a.eql(h,a.ZERO))return a.ZERO;let p=1;for(let m=a.sqr(h);p<u&&!a.eql(m,a.ONE);p++)m=a.sqr(m);let d=a.pow(l,xe<<BigInt(u-p-1));l=a.sqr(d),f=a.mul(f,d),h=a.mul(h,l),u=p}return f}}function W2(t){if(t%Rc===V2){let e=(t+xe)/Rc;return function(n,i){let s=n.pow(i,e);if(!n.eql(n.sqr(s),i))throw new Error("Cannot find square root");return s}}if(t%lh===uh){let e=(t-uh)/lh;return function(n,i){let s=n.mul(i,tn),o=n.pow(s,e),a=n.mul(i,o),c=n.mul(n.mul(a,tn),o),u=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(u),i))throw new Error("Cannot find square root");return u}}return t%z2,G2(t)}var fh=(t,e)=>(de(t,e)&xe)===xe,Y2=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Cc(t){let e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=Y2.reduce((n,i)=>(n[i]="function",n),e);return Qt(t,r)}function Q2(t,e,r){if(r<Oe)throw new Error("Expected power > 0");if(r===Oe)return t.ONE;if(r===xe)return e;let n=t.ONE,i=e;for(;r>Oe;)r&xe&&(n=t.mul(n,i)),i=t.sqr(i),r>>=xe;return n}function X2(t,e){let r=new Array(e.length),n=e.reduce((s,o,a)=>t.is0(o)?s:(r[a]=s,t.mul(s,o)),t.ONE),i=t.inv(n);return e.reduceRight((s,o,a)=>t.is0(o)?s:(r[a]=t.mul(s,r[a]),t.mul(s,o)),i),r}function Tc(t,e){let r=e!==void 0?e:t.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function Vs(t,e,r=!1,n={}){if(t<=Oe)throw new Error(`Expected Field ORDER > 0, got ${t}`);let{nBitLength:i,nByteLength:s}=Tc(t,e);if(s>2048)throw new Error("Field lengths over 2048 bytes are not supported");let o=W2(t),a=Object.freeze({ORDER:t,BITS:i,BYTES:s,MASK:Ci(i),ZERO:Oe,ONE:xe,create:c=>de(c,t),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return Oe<=c&&c<t},is0:c=>c===Oe,isOdd:c=>(c&xe)===xe,neg:c=>de(-c,t),eql:(c,u)=>c===u,sqr:c=>de(c*c,t),add:(c,u)=>de(c+u,t),sub:(c,u)=>de(c-u,t),mul:(c,u)=>de(c*u,t),pow:(c,u)=>Q2(a,c,u),div:(c,u)=>de(c*qs(u,t),t),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>qs(c,t),sqrt:n.sqrt||(c=>o(a,c)),invertBatch:c=>X2(a,c),cmov:(c,u,l)=>l?u:c,toBytes:c=>r?en(c,s):Tr(c,s),fromBytes:c=>{if(c.length!==s)throw new Error(`Fp.fromBytes: expected ${s}, got ${c.length}`);return r?Cr(c):ar(c)}});return Object.freeze(a)}function hh(t,e){if(!t.isOdd)throw new Error("Field doesn't have isOdd");let r=t.sqrt(e);return t.isOdd(r)?t.neg(r):r}function dh(t){if(typeof t!="bigint")throw new Error("field order must be bigint");let e=t.toString(2).length;return Math.ceil(e/8)}function Bc(t){let e=dh(t);return e+Math.ceil(e/2)}function ph(t,e,r=!1){let n=t.length,i=dh(e),s=Bc(e);if(n<16||n<s||n>1024)throw new Error(`expected ${s}-1024 bytes of input, got ${n}`);let o=r?ar(t):Cr(t),a=de(o,e-xe)+xe;return r?en(a,i):Tr(a,i)}var j2=BigInt(0),Lc=BigInt(1);function $s(t,e){let r=(i,s)=>{let o=s.negate();return i?o:s},n=i=>{let s=Math.ceil(e/i)+1,o=2**(i-1);return{windows:s,windowSize:o}};return{constTimeNegate:r,unsafeLadder(i,s){let o=t.ZERO,a=i;for(;s>j2;)s&Lc&&(o=o.add(a)),a=a.double(),s>>=Lc;return o},precomputeWindow(i,s){let{windows:o,windowSize:a}=n(s),c=[],u=i,l=u;for(let f=0;f<o;f++){l=u,c.push(l);for(let h=1;h<a;h++)l=l.add(u),c.push(l);u=l.double()}return c},wNAF(i,s,o){let{windows:a,windowSize:c}=n(i),u=t.ZERO,l=t.BASE,f=BigInt(2**i-1),h=2**i,p=BigInt(i);for(let d=0;d<a;d++){let m=d*c,g=Number(o&f);o>>=p,g>c&&(g-=h,o+=Lc);let y=m,x=m+Math.abs(g)-1,b=d%2!==0,I=g<0;g===0?l=l.add(r(b,s[y])):u=u.add(r(I,s[x]))}return{p:u,f:l}},wNAFCached(i,s,o,a){let c=i._WINDOW_SIZE||1,u=s.get(i);return u||(u=this.precomputeWindow(i,c),c!==1&&s.set(i,a(u))),this.wNAF(c,u,o)}}}function Ti(t){return Cc(t.Fp),Qt(t,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Tc(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}var kt=BigInt(0),xt=BigInt(1),zs=BigInt(2),J2=BigInt(8),eb={zip215:!0};function tb(t){let e=Ti(t);return Qt(t,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...e})}function Hs(t){let e=tb(t),{Fp:r,n,prehash:i,hash:s,randomBytes:o,nByteLength:a,h:c}=e,u=zs<<BigInt(a*8)-xt,l=r.create,f=e.uvRatio||((N,R)=>{try{return{isValid:!0,value:r.sqrt(N*r.inv(R))}}catch{return{isValid:!1,value:kt}}}),h=e.adjustScalarBytes||(N=>N),p=e.domain||((N,R,U)=>{if(R.length||U)throw new Error("Contexts/pre-hash are not supported");return N}),d=N=>typeof N=="bigint"&&kt<N,m=(N,R)=>d(N)&&d(R)&&N<R,g=N=>N===kt||m(N,u);function y(N,R){if(m(N,R))return N;throw new Error(`Expected valid scalar < ${R}, got ${typeof N} ${N}`)}function x(N){return N===kt?N:y(N,n)}let b=new Map;function I(N){if(!(N instanceof v))throw new Error("ExtendedPoint expected")}class v{constructor(R,U,q,H){if(this.ex=R,this.ey=U,this.ez=q,this.et=H,!g(R))throw new Error("x required");if(!g(U))throw new Error("y required");if(!g(q))throw new Error("z required");if(!g(H))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(R){if(R instanceof v)throw new Error("extended point not allowed");let{x:U,y:q}=R||{};if(!g(U)||!g(q))throw new Error("invalid affine point");return new v(U,q,xt,l(U*q))}static normalizeZ(R){let U=r.invertBatch(R.map(q=>q.ez));return R.map((q,H)=>q.toAffine(U[H])).map(v.fromAffine)}_setWindowSize(R){this._WINDOW_SIZE=R,b.delete(this)}assertValidity(){let{a:R,d:U}=e;if(this.is0())throw new Error("bad point: ZERO");let{ex:q,ey:H,ez:Z,et:te}=this,ue=l(q*q),re=l(H*H),se=l(Z*Z),Be=l(se*se),Se=l(ue*R),He=l(se*l(Se+re)),Ge=l(Be+l(U*l(ue*re)));if(He!==Ge)throw new Error("bad point: equation left != right (1)");let De=l(q*H),Je=l(Z*te);if(De!==Je)throw new Error("bad point: equation left != right (2)")}equals(R){I(R);let{ex:U,ey:q,ez:H}=this,{ex:Z,ey:te,ez:ue}=R,re=l(U*ue),se=l(Z*H),Be=l(q*ue),Se=l(te*H);return re===se&&Be===Se}is0(){return this.equals(v.ZERO)}negate(){return new v(l(-this.ex),this.ey,this.ez,l(-this.et))}double(){let{a:R}=e,{ex:U,ey:q,ez:H}=this,Z=l(U*U),te=l(q*q),ue=l(zs*l(H*H)),re=l(R*Z),se=U+q,Be=l(l(se*se)-Z-te),Se=re+te,He=Se-ue,Ge=re-te,De=l(Be*He),Je=l(Se*Ge),er=l(Be*Ge),zr=l(He*Se);return new v(De,Je,zr,er)}add(R){I(R);let{a:U,d:q}=e,{ex:H,ey:Z,ez:te,et:ue}=this,{ex:re,ey:se,ez:Be,et:Se}=R;if(U===BigInt(-1)){let nf=l((Z-H)*(se+re)),sf=l((Z+H)*(se-re)),va=l(sf-nf);if(va===kt)return this.double();let of=l(te*zs*Se),af=l(ue*zs*Be),cf=af+of,uf=sf+nf,lf=af-of,_g=l(cf*va),Sg=l(uf*lf),Ag=l(cf*lf),Ig=l(va*uf);return new v(_g,Sg,Ig,Ag)}let He=l(H*re),Ge=l(Z*se),De=l(ue*q*Se),Je=l(te*Be),er=l((H+Z)*(re+se)-He-Ge),zr=Je-De,mi=Je+De,rf=l(Ge-U*He),bg=l(er*zr),wg=l(mi*rf),Eg=l(er*rf),vg=l(zr*mi);return new v(bg,wg,vg,Eg)}subtract(R){return this.add(R.negate())}wNAF(R){return D.wNAFCached(this,b,R,v.normalizeZ)}multiply(R){let{p:U,f:q}=this.wNAF(y(R,n));return v.normalizeZ([U,q])[0]}multiplyUnsafe(R){let U=x(R);return U===kt?P:this.equals(P)||U===xt?this:this.equals(_)?this.wNAF(U).p:D.unsafeLadder(this,U)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return D.unsafeLadder(this,n).is0()}toAffine(R){let{ex:U,ey:q,ez:H}=this,Z=this.is0();R==null&&(R=Z?J2:r.inv(H));let te=l(U*R),ue=l(q*R),re=l(H*R);if(Z)return{x:kt,y:xt};if(re!==xt)throw new Error("invZ was invalid");return{x:te,y:ue}}clearCofactor(){let{h:R}=e;return R===xt?this:this.multiplyUnsafe(R)}static fromHex(R,U=!1){let{d:q,a:H}=e,Z=r.BYTES;R=Ie("pointHex",R,Z);let te=R.slice(),ue=R[Z-1];te[Z-1]=ue&-129;let re=Cr(te);re===kt||(U?y(re,u):y(re,r.ORDER));let se=l(re*re),Be=l(se-xt),Se=l(q*se-H),{isValid:He,value:Ge}=f(Be,Se);if(!He)throw new Error("Point.fromHex: invalid y coordinate");let De=(Ge&xt)===xt,Je=(ue&128)!==0;if(!U&&Ge===kt&&Je)throw new Error("Point.fromHex: x=0 and x_0=1");return Je!==De&&(Ge=l(-Ge)),v.fromAffine({x:Ge,y:re})}static fromPrivateKey(R){return z(R).point}toRawBytes(){let{x:R,y:U}=this.toAffine(),q=en(U,r.BYTES);return q[q.length-1]|=R&xt?128:0,q}toHex(){return or(this.toRawBytes())}}v.BASE=new v(e.Gx,e.Gy,xt,l(e.Gx*e.Gy)),v.ZERO=new v(kt,xt,xt,kt);let{BASE:_,ZERO:P}=v,D=$s(v,a*8);function G(N){return de(N,n)}function W(N){return G(Cr(N))}function z(N){let R=a;N=Ie("private key",N,R);let U=Ie("hashed private key",s(N),2*R),q=h(U.slice(0,R)),H=U.slice(R,2*R),Z=W(q),te=_.multiply(Z),ue=te.toRawBytes();return{head:q,prefix:H,scalar:Z,point:te,pointBytes:ue}}function ee(N){return z(N).pointBytes}function fe(N=new Uint8Array,...R){let U=cr(...R);return W(s(p(U,Ie("context",N),!!i)))}function ze(N,R,U={}){N=Ie("message",N),i&&(N=i(N));let{prefix:q,scalar:H,pointBytes:Z}=z(R),te=fe(U.context,q,N),ue=_.multiply(te).toRawBytes(),re=fe(U.context,ue,Z,N),se=G(te+re*H);x(se);let Be=cr(ue,en(se,r.BYTES));return Ie("result",Be,a*2)}let T=eb;function k(N,R,U,q=T){let{context:H,zip215:Z}=q,te=r.BYTES;N=Ie("signature",N,2*te),R=Ie("message",R),i&&(R=i(R));let ue=Cr(N.slice(te,2*te)),re,se,Be;try{re=v.fromHex(U,Z),se=v.fromHex(N.slice(0,te),Z),Be=_.multiplyUnsafe(ue)}catch{return!1}if(!Z&&re.isSmallOrder())return!1;let Se=fe(H,se.toRawBytes(),re.toRawBytes(),R);return se.add(re.multiplyUnsafe(Se)).subtract(Be).clearCofactor().equals(v.ZERO)}return _._setWindowSize(8),{CURVE:e,getPublicKey:ee,sign:ze,verify:k,ExtendedPoint:v,utils:{getExtendedPublicKey:z,randomPrivateKey:()=>o(r.BYTES),precompute(N=8,R=v.BASE){return R._setWindowSize(N),R.multiply(BigInt(3)),R}}}}var Dc=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),mh=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),KA=BigInt(0),rb=BigInt(1),Pc=BigInt(2),nb=BigInt(5),gh=BigInt(10),ib=BigInt(20),sb=BigInt(40),yh=BigInt(80);function ob(t){let e=Dc,n=t*t%e*t%e,i=be(n,Pc,e)*n%e,s=be(i,rb,e)*t%e,o=be(s,nb,e)*s%e,a=be(o,gh,e)*o%e,c=be(a,ib,e)*a%e,u=be(c,sb,e)*c%e,l=be(u,yh,e)*u%e,f=be(l,yh,e)*u%e,h=be(f,gh,e)*o%e;return{pow_p_5_8:be(h,Pc,e)*t%e,b2:n}}function ab(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}function cb(t,e){let r=Dc,n=de(e*e*e,r),i=de(n*n*e,r),s=ob(t*i).pow_p_5_8,o=de(t*n*s,r),a=de(e*o*o,r),c=o,u=de(o*mh,r),l=a===t,f=a===de(-t,r),h=a===de(-t*mh,r);return l&&(o=c),(f||h)&&(o=u),fh(o,r)&&(o=de(-o,r)),{isValid:l||f,value:o}}var ur=Vs(Dc,void 0,!0),Nc={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:ur,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:_c,randomBytes:Un,adjustScalarBytes:ab,uvRatio:cb},Kn=Hs(Nc);function xh(t,e,r){if(e.length>255)throw new Error("Context is too big");return ks(wc("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,e.length]),e,t)}var qA=Hs({...Nc,domain:xh}),VA=Hs({...Nc,domain:xh,prehash:_c});var ub=(ur.ORDER+BigInt(3))/BigInt(8),$A=ur.pow(Pc,ub),zA=ur.sqrt(ur.neg(ur.ONE)),HA=(ur.ORDER-BigInt(5))/BigInt(8),GA=BigInt(486662);var WA=hh(ur,ur.neg(BigInt(486664)));var YA=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),QA=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),XA=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),ZA=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var jA=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var qn=32,lr=64,Gs=32;function bh(){let t=Kn.utils.randomPrivateKey(),e=Kn.getPublicKey(t);return{privateKey:_h(t,e),publicKey:e}}function wh(t){if(t.length!==Gs)throw new TypeError('"seed" must be 32 bytes in length.');if(!(t instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let e=t,r=Kn.getPublicKey(e);return{privateKey:_h(e,r),publicKey:r}}function Eh(t,e){let r=t.subarray(0,Gs);return Kn.sign(e instanceof Uint8Array?e:e.subarray(),r)}function vh(t,e,r){return Kn.verify(e,r instanceof Uint8Array?r:r.subarray(),t)}function _h(t,e){let r=new Uint8Array(lr);for(let n=0;n<Gs;n++)r[n]=t[n],r[Gs+n]=e[n];return r}var lt={get(t=globalThis){let e=t.crypto;if(e==null||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 kc={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function Oc(t){let e=t?.algorithm??"AES-GCM",r=t?.keyLength??16,n=t?.nonceLength??12,i=t?.digest??"SHA-256",s=t?.saltLength??16,o=t?.iterations??32767,a=lt.get();r*=8;async function c(f,h){let p=a.getRandomValues(new Uint8Array(s)),d=a.getRandomValues(new Uint8Array(n)),m={name:e,iv:d};typeof h=="string"&&(h=j(h));let g;if(h.length===0){g=await a.subtle.importKey("jwk",kc,{name:"AES-GCM"},!0,["encrypt"]);try{let x={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},b=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(x,b,{name:e,length:r},!0,["encrypt"])}catch{g=await a.subtle.importKey("jwk",kc,{name:"AES-GCM"},!0,["encrypt"])}}else{let x={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},b=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(x,b,{name:e,length:r},!0,["encrypt"])}let y=await a.subtle.encrypt(m,g,f);return sr([p,m.iv,new Uint8Array(y)])}async function u(f,h){let p=f.subarray(0,s),d=f.subarray(s,s+n),m=f.subarray(s+n),g={name:e,iv:d};typeof h=="string"&&(h=j(h));let y;if(h.length===0)try{let b={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},I=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(b,I,{name:e,length:r},!0,["decrypt"])}catch{y=await a.subtle.importKey("jwk",kc,{name:"AES-GCM"},!0,["decrypt"])}else{let b={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},I=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(b,I,{name:e,length:r},!0,["decrypt"])}let x=await a.subtle.decrypt(g,y,m);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function Vn(t,e){let n=await Oc().encrypt(t,e);return Pn.encode(n)}var Mc=new Float32Array([-0]),Br=new Uint8Array(Mc.buffer);function Ah(t,e,r){Mc[0]=t,e[r]=Br[0],e[r+1]=Br[1],e[r+2]=Br[2],e[r+3]=Br[3]}function Ih(t,e){return Br[0]=t[e],Br[1]=t[e+1],Br[2]=t[e+2],Br[3]=t[e+3],Mc[0]}var Uc=new Float64Array([-0]),et=new Uint8Array(Uc.buffer);function Rh(t,e,r){Uc[0]=t,e[r]=et[0],e[r+1]=et[1],e[r+2]=et[2],e[r+3]=et[3],e[r+4]=et[4],e[r+5]=et[5],e[r+6]=et[6],e[r+7]=et[7]}function Ch(t,e){return et[0]=t[e],et[1]=t[e+1],et[2]=t[e+2],et[3]=t[e+3],et[4]=t[e+4],et[5]=t[e+5],et[6]=t[e+6],et[7]=t[e+7],Uc[0]}var fb=BigInt(Number.MAX_SAFE_INTEGER),hb=BigInt(Number.MIN_SAFE_INTEGER),ft=class t{lo;hi;constructor(e,r){this.lo=e|0,this.hi=r|0}toNumber(e=!1){if(!e&&this.hi>>>31>0){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(r+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 r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(BigInt(r)+(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,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?e<16384?e<128?1:2:e<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(e){if(e===0n)return rn;if(e<fb&&e>hb)return this.fromNumber(Number(e));let r=e<0n;r&&(e=-e);let n=e>>32n,i=e-(n<<32n);return r&&(n=~n|0n,i=~i|0n,++i>Th&&(i=0n,++n>Th&&(n=0n))),new t(Number(i),Number(n))}static fromNumber(e){if(e===0)return rn;let r=e<0;r&&(e=-e);let n=e>>>0,i=(e-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new t(n,i)}static from(e){return typeof e=="number"?t.fromNumber(e):typeof e=="bigint"?t.fromBigInt(e):typeof e=="string"?t.fromBigInt(BigInt(e)):e.low!=null||e.high!=null?new t(e.low>>>0,e.high>>>0):rn}},rn=new ft(0,0);rn.toBigInt=function(){return 0n};rn.zzEncode=rn.zzDecode=function(){return this};rn.length=function(){return 1};var Th=4294967296n;function Bh(t){let e=0,r=0;for(let n=0;n<t.length;++n)r=t.charCodeAt(n),r<128?e+=1:r<2048?e+=2:(r&64512)===55296&&(t.charCodeAt(n+1)&64512)===56320?(++n,e+=4):e+=3;return e}function Lh(t,e,r){if(r-e<1)return"";let i,s=[],o=0,a;for(;e<r;)a=t[e++],a<128?s[o++]=a:a>191&&a<224?s[o++]=(a&31)<<6|t[e++]&63:a>239&&a<365?(a=((a&7)<<18|(t[e++]&63)<<12|(t[e++]&63)<<6|t[e++]&63)-65536,s[o++]=55296+(a>>10),s[o++]=56320+(a&1023)):s[o++]=(a&15)<<12|(t[e++]&63)<<6|t[e++]&63,o>8191&&((i??(i=[])).push(String.fromCharCode.apply(String,s)),o=0);return i!=null?(o>0&&i.push(String.fromCharCode.apply(String,s.slice(0,o))),i.join("")):String.fromCharCode.apply(String,s.slice(0,o))}function Fc(t,e,r){let n=r,i,s;for(let o=0;o<t.length;++o)i=t.charCodeAt(o),i<128?e[r++]=i:i<2048?(e[r++]=i>>6|192,e[r++]=i&63|128):(i&64512)===55296&&((s=t.charCodeAt(o+1))&64512)===56320?(i=65536+((i&1023)<<10)+(s&1023),++o,e[r++]=i>>18|240,e[r++]=i>>12&63|128,e[r++]=i>>6&63|128,e[r++]=i&63|128):(e[r++]=i>>12|224,e[r++]=i>>6&63|128,e[r++]=i&63|128);return r-n}function Ot(t,e){return RangeError(`index out of range: ${t.pos} + ${e??1} > ${t.len}`)}function Ws(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}var Kc=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,Ot(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 Ot(this,4);return Ws(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Ot(this,4);return Ws(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Ot(this,4);let e=Ih(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw Ot(this,4);let e=Ch(this.buf,this.pos);return this.pos+=8,e}bytes(){let e=this.uint32(),r=this.pos,n=this.pos+e;if(n>this.len)throw Ot(this,e);return this.pos+=e,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let e=this.bytes();return Lh(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw Ot(this,e);this.pos+=e}else do if(this.pos>=this.len)throw Ot(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 ft(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<r*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;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw Ot(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,e}if(this.len-this.pos>4){for(;r<5;++r)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;r<5;++r){if(this.pos>=this.len)throw Ot(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Ot(this,8);let e=Ws(this.buf,this.pos+=4),r=Ws(this.buf,this.pos+=4);return new ft(e,r)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){return this.readLongVarint().toNumber(!0)}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 qc(t){return new Kc(t instanceof Uint8Array?t:t.subarray())}function Ye(t,e){let r=qc(t);return e.decode(r)}function Ys(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function nn(t=0){return globalThis.Buffer?.allocUnsafe!=null?Ys(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function Nh(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var Dh=Nh("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),Vc=Nh("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=nn(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),db={utf8:Dh,"utf-8":Dh,hex:ut.base16,latin1:Vc,ascii:Vc,binary:Vc,...ut},kh=db;function Oh(t,e="utf8"){let r=kh[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Ys(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}function $c(t){let e=t??8192,r=e>>>1,n,i=e;return function(o){if(o<1||o>r)return nn(o);i+o>e&&(n=nn(e),i=0);let a=n.subarray(i,i+=o);return i&7&&(i=(i|7)+1),a}}var sn=class{fn;len;next;val;constructor(e,r,n){this.fn=e,this.len=r,this.next=void 0,this.val=n}};function zc(){}var Gc=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},pb=$c();function mb(t){return globalThis.Buffer!=null?nn(t):pb(t)}var Pi=class{len;head;tail;states;constructor(){this.len=0,this.head=new sn(zc,0,0),this.tail=this.head,this.states=null}_push(e,r,n){return this.tail=this.tail.next=new sn(e,r,n),this.len+=r,this}uint32(e){return this.len+=(this.tail=this.tail.next=new Wc((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(Bi,10,ft.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let r=ft.fromBigInt(e);return this._push(Bi,r.length(),r)}uint64Number(e){let r=ft.fromNumber(e);return this._push(Bi,r.length(),r)}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 r=ft.fromBigInt(e).zzEncode();return this._push(Bi,r.length(),r)}sint64Number(e){let r=ft.fromNumber(e).zzEncode();return this._push(Bi,r.length(),r)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(Hc,1,e?1:0)}fixed32(e){return this._push(Li,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let r=ft.fromBigInt(e);return this._push(Li,4,r.lo)._push(Li,4,r.hi)}fixed64Number(e){let r=ft.fromNumber(e);return this._push(Li,4,r.lo)._push(Li,4,r.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(Ah,4,e)}double(e){return this._push(Rh,8,e)}bytes(e){let r=e.length>>>0;return r===0?this._push(Hc,1,0):this.uint32(r)._push(yb,r,e)}string(e){let r=Bh(e);return r!==0?this.uint32(r)._push(Fc,r,e):this._push(Hc,1,0)}fork(){return this.states=new Gc(this),this.head=this.tail=new sn(zc,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 sn(zc,0,0),this.len=0),this}ldelim(){let e=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=e.next,this.tail=r,this.len+=n),this}finish(){let e=this.head.next,r=mb(this.len),n=0;for(;e!=null;)e.fn(e.val,r,n),n+=e.len,e=e.next;return r}};function Hc(t,e,r){e[r]=t&255}function gb(t,e,r){for(;t>127;)e[r++]=t&127|128,t>>>=7;e[r]=t}var Wc=class extends sn{next;constructor(e,r){super(gb,e,r),this.next=void 0}};function Bi(t,e,r){for(;t.hi!==0;)e[r++]=t.lo&127|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)e[r++]=t.lo&127|128,t.lo=t.lo>>>7;e[r++]=t.lo}function Li(t,e,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}function yb(t,e,r){e.set(t,r)}globalThis.Buffer!=null&&(Pi.prototype.bytes=function(t){let e=t.length>>>0;return this.uint32(e),e>0&&this._push(xb,e,t),this},Pi.prototype.string=function(t){let e=globalThis.Buffer.byteLength(t);return this.uint32(e),e>0&&this._push(bb,e,t),this});function xb(t,e,r){e.set(t,r)}function bb(t,e,r){t.length<40?Fc(t,e,r):e.utf8Write!=null?e.utf8Write(t,r):e.set(Oh(t),r)}function Yc(){return new Pi}function Qe(t,e){let r=Yc();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}var $n;(function(t){t[t.VARINT=0]="VARINT",t[t.BIT64=1]="BIT64",t[t.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",t[t.START_GROUP=3]="START_GROUP",t[t.END_GROUP=4]="END_GROUP",t[t.BIT32=5]="BIT32"})($n||($n={}));function Qs(t,e,r,n){return{name:t,type:e,encode:r,decode:n}}function Qc(t){function e(i){if(t[i.toString()]==null)throw new Error("Invalid enum value");return t[i]}let r=function(s,o){let a=e(s);o.int32(a)},n=function(s){let o=s.int32();return e(o)};return Qs("enum",$n.VARINT,r,n)}function Xe(t,e){return Qs("message",$n.LENGTH_DELIMITED,t,e)}var we;(function(t){t.RSA="RSA",t.Ed25519="Ed25519",t.Secp256k1="Secp256k1"})(we||(we={}));var Xc;(function(t){t[t.RSA=0]="RSA",t[t.Ed25519=1]="Ed25519",t[t.Secp256k1=2]="Secp256k1"})(Xc||(Xc={}));(function(t){t.codec=()=>Qc(Xc)})(we||(we={}));var Xt;(function(t){let e;t.codec=()=>(e==null&&(e=Xe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),we.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.Type=we.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Qe(r,t.codec()),t.decode=r=>Ye(r,t.codec())})(Xt||(Xt={}));var Zt;(function(t){let e;t.codec=()=>(e==null&&(e=Xe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),we.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.Type=we.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Qe(r,t.codec()),t.decode=r=>Ye(r,t.codec())})(Zt||(Zt={}));var Di=class{_key;constructor(e){this._key=zn(e,qn)}verify(e,r){return vh(this._key,r,e)}marshal(){return this._key}get bytes(){return Xt.encode({Type:we.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Ne(this.bytes,e.bytes)}hash(){let e=We.digest(this.bytes);return It(e)?e.then(({bytes:r})=>r):e.bytes}},on=class{_key;_publicKey;constructor(e,r){this._key=zn(e,lr),this._publicKey=zn(r,qn)}sign(e){return Eh(this._key,e)}get public(){return new Di(this._publicKey)}marshal(){return this._key}get bytes(){return Zt.encode({Type:we.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Ne(this.bytes,e.bytes)}async hash(){let e=We.digest(this.bytes),r;return It(e)?{bytes:r}=await e:r=e.bytes,r}async id(){let e=Ar.digest(this.public.bytes);return ve.encode(e.bytes).substring(1)}async export(e,r="libp2p-key"){if(r==="libp2p-key")return Vn(this.bytes,e);throw new S(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function wb(t){if(t.length>lr){t=zn(t,lr+qn);let n=t.subarray(0,lr),i=t.subarray(lr,t.length);return new on(n,i)}t=zn(t,lr);let e=t.subarray(0,lr),r=t.subarray(qn);return new on(e,r)}function Eb(t){return t=zn(t,qn),new Di(t)}async function vb(){let{privateKey:t,publicKey:e}=bh();return new on(t,e)}async function Mh(t){let{privateKey:e,publicKey:r}=wh(t);return new on(e,r)}function zn(t,e){if(t=Uint8Array.from(t??[]),t.length!==e)throw new S(`Key must be a Uint8Array of length ${e}, got ${t.length}`,"ERR_INVALID_KEY_TYPE");return t}var _b={"P-256":256,"P-384":384,"P-521":521},Sb=Object.keys(_b),s4=Sb.join(" / ");var ru={};Fe(ru,{MAX_KEY_SIZE:()=>Mi,RsaPrivateKey:()=>Hn,RsaPublicKey:()=>Oi,fromJwk:()=>kb,generateKeyPair:()=>Ob,unmarshalRsaPrivateKey:()=>Db,unmarshalRsaPublicKey:()=>Nb});var ki=Ee(he(),1);var $4=Ee(Vh(),1);function Zs(t){if(isNaN(t)||t<=0)throw new S("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return Un(t)}var A4=Ee(Rs(),1),eu=Ee(he(),1);function $h(t,e){return e.map(r=>yt(t[r]))}function zh(t){return eu.default.pki.setRsaPrivateKey(...$h(t,["n","e","d","p","q","dp","dq","qi"]))}function Hh(t){return eu.default.pki.setRsaPublicKey(...$h(t,["n","e"]))}var cn={};Fe(cn,{jwkToPkcs1:()=>Cb,jwkToPkix:()=>Bb,pkcs1ToJwk:()=>Rb,pkixToJwk:()=>Tb});var C4=Ee(bi(),1),T4=Ee(Rs(),1);var fr=Ee(he(),1);function Rb(t){let e=fr.default.asn1.fromDer(ke(t,"ascii")),r=fr.default.pki.privateKeyFromAsn1(e);return{kty:"RSA",n:Dt(r.n),e:Dt(r.e),d:Dt(r.d),p:Dt(r.p),q:Dt(r.q),dp:Dt(r.dP),dq:Dt(r.dQ),qi:Dt(r.qInv),alg:"RS256"}}function Cb(t){if(t.n==null||t.e==null||t.d==null||t.p==null||t.q==null||t.dp==null||t.dq==null||t.qi==null)throw new S("JWK was missing components","ERR_INVALID_PARAMETERS");let e=fr.default.pki.privateKeyToAsn1({n:yt(t.n),e:yt(t.e),d:yt(t.d),p:yt(t.p),q:yt(t.q),dP:yt(t.dp),dQ:yt(t.dq),qInv:yt(t.qi)});return j(fr.default.asn1.toDer(e).getBytes(),"ascii")}function Tb(t){let e=fr.default.asn1.fromDer(ke(t,"ascii")),r=fr.default.pki.publicKeyFromAsn1(e);return{kty:"RSA",n:Dt(r.n),e:Dt(r.e)}}function Bb(t){if(t.n==null||t.e==null)throw new S("JWK was missing components","ERR_INVALID_PARAMETERS");let e=fr.default.pki.publicKeyToAsn1({n:yt(t.n),e:yt(t.e)});return j(fr.default.asn1.toDer(e).getBytes(),"ascii")}async function Gh(t){let e=await lt.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await Qh(e);return{privateKey:r[0],publicKey:r[1]}}async function tu(t){let r=[await lt.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await Lb(t)],n=await Qh({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function Wh(t,e){let r=await lt.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await lt.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,e instanceof Uint8Array?e:e.subarray());return new Uint8Array(n,0,n.byteLength)}async function Yh(t,e,r){let n=await lt.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return lt.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,e,r instanceof Uint8Array?r:r.subarray())}async function Qh(t){if(t.privateKey==null||t.publicKey==null)throw new S("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([lt.get().subtle.exportKey("jwk",t.privateKey),lt.get().subtle.exportKey("jwk",t.publicKey)])}async function Lb(t){return lt.get().subtle.importKey("jwk",{kty:t.kty,n:t.n,e:t.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function Xh(t,e,r,n){let i=e?Hh(t):zh(t),s=ke(r instanceof Uint8Array?r:r.subarray(),"ascii"),o=n(s,i);return j(o,"ascii")}function Zh(t,e){return Xh(t,!0,e,(r,n)=>n.encrypt(r))}function jh(t,e){return Xh(t,!1,e,(r,n)=>n.decrypt(r))}function js(t){if(t.kty!=="RSA")throw new S("invalid key type","ERR_INVALID_KEY_TYPE");if(t.n==null)throw new S("invalid key modulus","ERR_INVALID_KEY_MODULUS");return j(t.n,"base64url").length*8}var Mi=8192,Oi=class{_key;constructor(e){this._key=e}verify(e,r){return Yh(this._key,r,e)}marshal(){return cn.jwkToPkix(this._key)}get bytes(){return Xt.encode({Type:we.RSA,Data:this.marshal()}).subarray()}encrypt(e){return Zh(this._key,e)}equals(e){return Ne(this.bytes,e.bytes)}hash(){let e=We.digest(this.bytes);return It(e)?e.then(({bytes:r})=>r):e.bytes}},Hn=class{_key;_publicKey;constructor(e,r){this._key=e,this._publicKey=r}genSecret(){return Zs(16)}sign(e){return Wh(this._key,e)}get public(){if(this._publicKey==null)throw new S("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Oi(this._publicKey)}decrypt(e){return jh(this._key,e)}marshal(){return cn.jwkToPkcs1(this._key)}get bytes(){return Zt.encode({Type:we.RSA,Data:this.marshal()}).subarray()}equals(e){return Ne(this.bytes,e.bytes)}hash(){let e=We.digest(this.bytes);return It(e)?e.then(({bytes:r})=>r):e.bytes}async id(){let e=await this.public.hash();return ke(e,"base58btc")}async export(e,r="pkcs-8"){if(r==="pkcs-8"){let n=new ki.default.util.ByteBuffer(this.marshal()),i=ki.default.asn1.fromDer(n),s=ki.default.pki.privateKeyFromAsn1(i),o={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return ki.default.pki.encryptRsaPrivateKey(s,e,o)}else{if(r==="libp2p-key")return Vn(this.bytes,e);throw new S(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function Db(t){let e=cn.pkcs1ToJwk(t);if(js(e)>Mi)throw new S("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await tu(e);return new Hn(r.privateKey,r.publicKey)}function Nb(t){let e=cn.pkixToJwk(t);if(js(e)>Mi)throw new S("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new Oi(e)}async function kb(t){if(js(t)>Mi)throw new S("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await tu(t);return new Hn(e.privateKey,e.publicKey)}async function Ob(t){if(t>Mi)throw new S("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await Gh(t);return new Hn(e.privateKey,e.publicKey)}var cu={};Fe(cu,{Secp256k1PrivateKey:()=>Fi,Secp256k1PublicKey:()=>Ui,generateKeyPair:()=>Zb,unmarshalSecp256k1PrivateKey:()=>Qb,unmarshalSecp256k1PublicKey:()=>Xb});var Mb=(t,e,r)=>t&e^~t&r,Ub=(t,e,r)=>t&e^t&r^e&r,Fb=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]),Lr=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Pr=new Uint32Array(64),nu=class extends Fn{constructor(){super(64,32,8,!1),this.A=Lr[0]|0,this.B=Lr[1]|0,this.C=Lr[2]|0,this.D=Lr[3]|0,this.E=Lr[4]|0,this.F=Lr[5]|0,this.G=Lr[6]|0,this.H=Lr[7]|0}get(){let{A:e,B:r,C:n,D:i,E:s,F:o,G:a,H:c}=this;return[e,r,n,i,s,o,a,c]}set(e,r,n,i,s,o,a,c){this.A=e|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=s|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,r){for(let f=0;f<16;f++,r+=4)Pr[f]=e.getUint32(r,!1);for(let f=16;f<64;f++){let h=Pr[f-15],p=Pr[f-2],d=Nt(h,7)^Nt(h,18)^h>>>3,m=Nt(p,17)^Nt(p,19)^p>>>10;Pr[f]=m+Pr[f-7]+d+Pr[f-16]|0}let{A:n,B:i,C:s,D:o,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){let h=Nt(a,6)^Nt(a,11)^Nt(a,25),p=l+h+Mb(a,c,u)+Fb[f]+Pr[f]|0,m=(Nt(n,2)^Nt(n,13)^Nt(n,22))+Ub(n,i,s)|0;l=u,u=c,c=a,a=o+p|0,o=s,s=i,i=n,n=p+m|0}n=n+this.A|0,i=i+this.B|0,s=s+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(n,i,s,o,a,c,u,l)}roundClean(){Pr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var Jh=Os(()=>new nu);function Kb(t){let e=Ti(t);Qt(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:r,Fp:n,a:i}=e;if(r){if(!n.eql(i,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof r!="object"||typeof r.beta!="bigint"||typeof r.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}var{bytesToNumberBE:qb,hexToBytes:Vb}=Ks,un={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(t){let{Err:e}=un;if(t.length<2||t[0]!==2)throw new e("Invalid signature integer tag");let r=t[1],n=t.subarray(2,r+2);if(!r||n.length!==r)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:qb(n),l:t.subarray(r+2)}},toSig(t){let{Err:e}=un,r=typeof t=="string"?Vb(t):t;if(!(r instanceof Uint8Array))throw new Error("ui8a expected");let n=r.length;if(n<2||r[0]!=48)throw new e("Invalid signature tag");if(r[1]!==n-2)throw new e("Invalid signature: incorrect length");let{d:i,l:s}=un._parseInt(r.subarray(2)),{d:o,l:a}=un._parseInt(s);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:i,s:o}},hexFromSig(t){let e=u=>Number.parseInt(u[0],16)&8?"00"+u:u,r=u=>{let l=u.toString(16);return l.length&1?`0${l}`:l},n=e(r(t.s)),i=e(r(t.r)),s=n.length/2,o=i.length/2,a=r(s),c=r(o);return`30${r(o+s+4)}02${c}${i}02${a}${n}`}},hr=BigInt(0),Rt=BigInt(1),J4=BigInt(2),ed=BigInt(3),e8=BigInt(4);function $b(t){let e=Kb(t),{Fp:r}=e,n=e.toBytes||((d,m,g)=>{let y=m.toAffine();return cr(Uint8Array.from([4]),r.toBytes(y.x),r.toBytes(y.y))}),i=e.fromBytes||(d=>{let m=d.subarray(1),g=r.fromBytes(m.subarray(0,r.BYTES)),y=r.fromBytes(m.subarray(r.BYTES,2*r.BYTES));return{x:g,y}});function s(d){let{a:m,b:g}=e,y=r.sqr(d),x=r.mul(y,d);return r.add(r.add(x,r.mul(d,m)),g)}if(!r.eql(r.sqr(e.Gy),s(e.Gx)))throw new Error("bad generator point: equation left != right");function o(d){return typeof d=="bigint"&&hr<d&&d<e.n}function a(d){if(!o(d))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(d){let{allowedPrivateKeyLengths:m,nByteLength:g,wrapPrivateKey:y,n:x}=e;if(m&&typeof d!="bigint"){if(d instanceof Uint8Array&&(d=or(d)),typeof d!="string"||!m.includes(d.length))throw new Error("Invalid key");d=d.padStart(g*2,"0")}let b;try{b=typeof d=="bigint"?d:ar(Ie("private key",d,g))}catch{throw new Error(`private key must be ${g} bytes, hex or bigint, not ${typeof d}`)}return y&&(b=de(b,x)),a(b),b}let u=new Map;function l(d){if(!(d instanceof f))throw new Error("ProjectivePoint expected")}class f{constructor(m,g,y){if(this.px=m,this.py=g,this.pz=y,m==null||!r.isValid(m))throw new Error("x required");if(g==null||!r.isValid(g))throw new Error("y required");if(y==null||!r.isValid(y))throw new Error("z required")}static fromAffine(m){let{x:g,y}=m||{};if(!m||!r.isValid(g)||!r.isValid(y))throw new Error("invalid affine point");if(m instanceof f)throw new Error("projective point not allowed");let x=b=>r.eql(b,r.ZERO);return x(g)&&x(y)?f.ZERO:new f(g,y,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(m){let g=r.invertBatch(m.map(y=>y.pz));return m.map((y,x)=>y.toAffine(g[x])).map(f.fromAffine)}static fromHex(m){let g=f.fromAffine(i(Ie("pointHex",m)));return g.assertValidity(),g}static fromPrivateKey(m){return f.BASE.multiply(c(m))}_setWindowSize(m){this._WINDOW_SIZE=m,u.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:m,y:g}=this.toAffine();if(!r.isValid(m)||!r.isValid(g))throw new Error("bad point: x or y not FE");let y=r.sqr(g),x=s(m);if(!r.eql(y,x))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:m}=this.toAffine();if(r.isOdd)return!r.isOdd(m);throw new Error("Field doesn't support isOdd")}equals(m){l(m);let{px:g,py:y,pz:x}=this,{px:b,py:I,pz:v}=m,_=r.eql(r.mul(g,v),r.mul(b,x)),P=r.eql(r.mul(y,v),r.mul(I,x));return _&&P}negate(){return new f(this.px,r.neg(this.py),this.pz)}double(){let{a:m,b:g}=e,y=r.mul(g,ed),{px:x,py:b,pz:I}=this,v=r.ZERO,_=r.ZERO,P=r.ZERO,D=r.mul(x,x),G=r.mul(b,b),W=r.mul(I,I),z=r.mul(x,b);return z=r.add(z,z),P=r.mul(x,I),P=r.add(P,P),v=r.mul(m,P),_=r.mul(y,W),_=r.add(v,_),v=r.sub(G,_),_=r.add(G,_),_=r.mul(v,_),v=r.mul(z,v),P=r.mul(y,P),W=r.mul(m,W),z=r.sub(D,W),z=r.mul(m,z),z=r.add(z,P),P=r.add(D,D),D=r.add(P,D),D=r.add(D,W),D=r.mul(D,z),_=r.add(_,D),W=r.mul(b,I),W=r.add(W,W),D=r.mul(W,z),v=r.sub(v,D),P=r.mul(W,G),P=r.add(P,P),P=r.add(P,P),new f(v,_,P)}add(m){l(m);let{px:g,py:y,pz:x}=this,{px:b,py:I,pz:v}=m,_=r.ZERO,P=r.ZERO,D=r.ZERO,G=e.a,W=r.mul(e.b,ed),z=r.mul(g,b),ee=r.mul(y,I),fe=r.mul(x,v),ze=r.add(g,y),T=r.add(b,I);ze=r.mul(ze,T),T=r.add(z,ee),ze=r.sub(ze,T),T=r.add(g,x);let k=r.add(b,v);return T=r.mul(T,k),k=r.add(z,fe),T=r.sub(T,k),k=r.add(y,x),_=r.add(I,v),k=r.mul(k,_),_=r.add(ee,fe),k=r.sub(k,_),D=r.mul(G,T),_=r.mul(W,fe),D=r.add(_,D),_=r.sub(ee,D),D=r.add(ee,D),P=r.mul(_,D),ee=r.add(z,z),ee=r.add(ee,z),fe=r.mul(G,fe),T=r.mul(W,T),ee=r.add(ee,fe),fe=r.sub(z,fe),fe=r.mul(G,fe),T=r.add(T,fe),z=r.mul(ee,T),P=r.add(P,z),z=r.mul(k,T),_=r.mul(ze,_),_=r.sub(_,z),z=r.mul(ze,ee),D=r.mul(k,D),D=r.add(D,z),new f(_,P,D)}subtract(m){return this.add(m.negate())}is0(){return this.equals(f.ZERO)}wNAF(m){return p.wNAFCached(this,u,m,g=>{let y=r.invertBatch(g.map(x=>x.pz));return g.map((x,b)=>x.toAffine(y[b])).map(f.fromAffine)})}multiplyUnsafe(m){let g=f.ZERO;if(m===hr)return g;if(a(m),m===Rt)return this;let{endo:y}=e;if(!y)return p.unsafeLadder(this,m);let{k1neg:x,k1:b,k2neg:I,k2:v}=y.splitScalar(m),_=g,P=g,D=this;for(;b>hr||v>hr;)b&Rt&&(_=_.add(D)),v&Rt&&(P=P.add(D)),D=D.double(),b>>=Rt,v>>=Rt;return x&&(_=_.negate()),I&&(P=P.negate()),P=new f(r.mul(P.px,y.beta),P.py,P.pz),_.add(P)}multiply(m){a(m);let g=m,y,x,{endo:b}=e;if(b){let{k1neg:I,k1:v,k2neg:_,k2:P}=b.splitScalar(g),{p:D,f:G}=this.wNAF(v),{p:W,f:z}=this.wNAF(P);D=p.constTimeNegate(I,D),W=p.constTimeNegate(_,W),W=new f(r.mul(W.px,b.beta),W.py,W.pz),y=D.add(W),x=G.add(z)}else{let{p:I,f:v}=this.wNAF(g);y=I,x=v}return f.normalizeZ([y,x])[0]}multiplyAndAddUnsafe(m,g,y){let x=f.BASE,b=(v,_)=>_===hr||_===Rt||!v.equals(x)?v.multiplyUnsafe(_):v.multiply(_),I=b(this,g).add(b(m,y));return I.is0()?void 0:I}toAffine(m){let{px:g,py:y,pz:x}=this,b=this.is0();m==null&&(m=b?r.ONE:r.inv(x));let I=r.mul(g,m),v=r.mul(y,m),_=r.mul(x,m);if(b)return{x:r.ZERO,y:r.ZERO};if(!r.eql(_,r.ONE))throw new Error("invZ was invalid");return{x:I,y:v}}isTorsionFree(){let{h:m,isTorsionFree:g}=e;if(m===Rt)return!0;if(g)return g(f,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:m,clearCofactor:g}=e;return m===Rt?this:g?g(f,this):this.multiplyUnsafe(e.h)}toRawBytes(m=!0){return this.assertValidity(),n(f,this,m)}toHex(m=!0){return or(this.toRawBytes(m))}}f.BASE=new f(e.Gx,e.Gy,r.ONE),f.ZERO=new f(r.ZERO,r.ONE,r.ZERO);let h=e.nBitLength,p=$s(f,e.endo?Math.ceil(h/2):h);return{CURVE:e,ProjectivePoint:f,normPrivateKeyToScalar:c,weierstrassEquation:s,isWithinCurveOrder:o}}function zb(t){let e=Ti(t);return Qt(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function td(t){let e=zb(t),{Fp:r,n}=e,i=r.BYTES+1,s=2*r.BYTES+1;function o(T){return hr<T&&T<r.ORDER}function a(T){return de(T,n)}function c(T){return qs(T,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:l,weierstrassEquation:f,isWithinCurveOrder:h}=$b({...e,toBytes(T,k,L){let N=k.toAffine(),R=r.toBytes(N.x),U=cr;return L?U(Uint8Array.from([k.hasEvenY()?2:3]),R):U(Uint8Array.from([4]),R,r.toBytes(N.y))},fromBytes(T){let k=T.length,L=T[0],N=T.subarray(1);if(k===i&&(L===2||L===3)){let R=ar(N);if(!o(R))throw new Error("Point is not on curve");let U=f(R),q=r.sqrt(U),H=(q&Rt)===Rt;return(L&1)===1!==H&&(q=r.neg(q)),{x:R,y:q}}else if(k===s&&L===4){let R=r.fromBytes(N.subarray(0,r.BYTES)),U=r.fromBytes(N.subarray(r.BYTES,2*r.BYTES));return{x:R,y:U}}else throw new Error(`Point of length ${k} was invalid. Expected ${i} compressed bytes or ${s} uncompressed bytes`)}}),p=T=>or(Tr(T,e.nByteLength));function d(T){let k=n>>Rt;return T>k}function m(T){return d(T)?a(-T):T}let g=(T,k,L)=>ar(T.slice(k,L));class y{constructor(k,L,N){this.r=k,this.s=L,this.recovery=N,this.assertValidity()}static fromCompact(k){let L=e.nByteLength;return k=Ie("compactSignature",k,L*2),new y(g(k,0,L),g(k,L,2*L))}static fromDER(k){let{r:L,s:N}=un.toSig(Ie("DER",k));return new y(L,N)}assertValidity(){if(!h(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!h(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(k){return new y(this.r,this.s,k)}recoverPublicKey(k){let{r:L,s:N,recovery:R}=this,U=P(Ie("msgHash",k));if(R==null||![0,1,2,3].includes(R))throw new Error("recovery id invalid");let q=R===2||R===3?L+e.n:L;if(q>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let H=R&1?"03":"02",Z=u.fromHex(H+p(q)),te=c(q),ue=a(-U*te),re=a(N*te),se=u.BASE.multiplyAndAddUnsafe(Z,ue,re);if(!se)throw new Error("point at infinify");return se.assertValidity(),se}hasHighS(){return d(this.s)}normalizeS(){return this.hasHighS()?new y(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return Jr(this.toDERHex())}toDERHex(){return un.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Jr(this.toCompactHex())}toCompactHex(){return p(this.r)+p(this.s)}}let x={isValidPrivateKey(T){try{return l(T),!0}catch{return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{let T=Bc(e.n);return ph(e.randomBytes(T),e.n)},precompute(T=8,k=u.BASE){return k._setWindowSize(T),k.multiply(BigInt(3)),k}};function b(T,k=!0){return u.fromPrivateKey(T).toRawBytes(k)}function I(T){let k=T instanceof Uint8Array,L=typeof T=="string",N=(k||L)&&T.length;return k?N===i||N===s:L?N===2*i||N===2*s:T instanceof u}function v(T,k,L=!0){if(I(T))throw new Error("first arg must be private key");if(!I(k))throw new Error("second arg must be public key");return u.fromHex(k).multiply(l(T)).toRawBytes(L)}let _=e.bits2int||function(T){let k=ar(T),L=T.length*8-e.nBitLength;return L>0?k>>BigInt(L):k},P=e.bits2int_modN||function(T){return a(_(T))},D=Ci(e.nBitLength);function G(T){if(typeof T!="bigint")throw new Error("bigint expected");if(!(hr<=T&&T<D))throw new Error(`bigint expected < 2^${e.nBitLength}`);return Tr(T,e.nByteLength)}function W(T,k,L=z){if(["recovered","canonical"].some(Se=>Se in L))throw new Error("sign() legacy options not supported");let{hash:N,randomBytes:R}=e,{lowS:U,prehash:q,extraEntropy:H}=L;U==null&&(U=!0),T=Ie("msgHash",T),q&&(T=Ie("prehashed msgHash",N(T)));let Z=P(T),te=l(k),ue=[G(te),G(Z)];if(H!=null){let Se=H===!0?R(r.BYTES):H;ue.push(Ie("extraEntropy",Se))}let re=cr(...ue),se=Z;function Be(Se){let He=_(Se);if(!h(He))return;let Ge=c(He),De=u.BASE.multiply(He).toAffine(),Je=a(De.x);if(Je===hr)return;let er=a(Ge*a(se+Je*te));if(er===hr)return;let zr=(De.x===Je?0:2)|Number(De.y&Rt),mi=er;return U&&d(er)&&(mi=m(er),zr^=1),new y(Je,mi,zr)}return{seed:re,k2sig:Be}}let z={lowS:e.lowS,prehash:!1},ee={lowS:e.lowS,prehash:!1};function fe(T,k,L=z){let{seed:N,k2sig:R}=W(T,k,L),U=e;return Ic(U.hash.outputLen,U.nByteLength,U.hmac)(N,R)}u.BASE._setWindowSize(8);function ze(T,k,L,N=ee){let R=T;if(k=Ie("msgHash",k),L=Ie("publicKey",L),"strict"in N)throw new Error("options.strict was renamed to lowS");let{lowS:U,prehash:q}=N,H,Z;try{if(typeof R=="string"||R instanceof Uint8Array)try{H=y.fromDER(R)}catch(De){if(!(De instanceof un.Err))throw De;H=y.fromCompact(R)}else if(typeof R=="object"&&typeof R.r=="bigint"&&typeof R.s=="bigint"){let{r:De,s:Je}=R;H=new y(De,Je)}else throw new Error("PARSE");Z=u.fromHex(L)}catch(De){if(De.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(U&&H.hasHighS())return!1;q&&(k=e.hash(k));let{r:te,s:ue}=H,re=P(k),se=c(ue),Be=a(re*se),Se=a(te*se),He=u.BASE.multiplyAndAddUnsafe(Z,Be,Se)?.toAffine();return He?a(He.x)===te:!1}return{CURVE:e,getPublicKey:b,getSharedSecret:v,sign:fe,verify:ze,ProjectivePoint:u,Signature:y,utils:x}}var Js=class extends Mn{constructor(e,r){super(),this.finished=!1,this.destroyed=!1,rh(e);let n=Ri(r);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 i=this.blockLen,s=new Uint8Array(i);s.set(n.length>i?e.create().update(n).digest():n);for(let o=0;o<s.length;o++)s[o]^=54;this.iHash.update(s),this.oHash=e.create();for(let o=0;o<s.length;o++)s[o]^=106;this.oHash.update(s),s.fill(0)}update(e){return On(this),this.iHash.update(e),this}digestInto(e){On(this),bc(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:r,iHash:n,finished:i,destroyed:s,blockLen:o,outputLen:a}=this;return e=e,e.finished=i,e.destroyed=s,e.blockLen=o,e.outputLen=a,e.oHash=r._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},iu=(t,e,r)=>new Js(t,e).update(r).digest();iu.create=(t,e)=>new Js(t,e);function Hb(t){return{hash:t,hmac:(e,...r)=>iu(t,e,ks(...r)),randomBytes:Un}}function rd(t,e){let r=n=>td({...t,...Hb(n)});return Object.freeze({...r(e),create:r})}var sd=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),nd=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),Gb=BigInt(1),su=BigInt(2),id=(t,e)=>(t+e/su)/e;function Wb(t){let e=sd,r=BigInt(3),n=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),u=t*t*t%e,l=u*u*t%e,f=be(l,r,e)*l%e,h=be(f,r,e)*l%e,p=be(h,su,e)*u%e,d=be(p,i,e)*p%e,m=be(d,s,e)*d%e,g=be(m,a,e)*m%e,y=be(g,c,e)*g%e,x=be(y,a,e)*m%e,b=be(x,r,e)*l%e,I=be(b,o,e)*d%e,v=be(I,n,e)*u%e,_=be(v,su,e);if(!ou.eql(ou.sqr(_),t))throw new Error("Cannot find square root");return _}var ou=Vs(sd,void 0,void 0,{sqrt:Wb}),Mt=rd({a:BigInt(0),b:BigInt(7),Fp:ou,n:nd,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:t=>{let e=nd,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-Gb*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=r,o=BigInt("0x100000000000000000000000000000000"),a=id(s*t,e),c=id(-n*t,e),u=de(t-a*r-c*i,e),l=de(-a*n-c*s,e),f=u>o,h=l>o;if(f&&(u=e-u),h&&(l=e-l),u>o||l>o)throw new Error("splitScalar: Endomorphism failed, k="+t);return{k1neg:f,k1:u,k2neg:h,k2:l}}}},Jh),h8=BigInt(0);var d8=Mt.ProjectivePoint;function od(){return Mt.utils.randomPrivateKey()}function ad(t,e){let r=We.digest(e instanceof Uint8Array?e:e.subarray());if(It(r))return r.then(({digest:n})=>Mt.sign(n,t).toDERRawBytes()).catch(n=>{throw new S(String(n),"ERR_INVALID_INPUT")});try{return Mt.sign(r.digest,t).toDERRawBytes()}catch(n){throw new S(String(n),"ERR_INVALID_INPUT")}}function cd(t,e,r){let n=We.digest(r instanceof Uint8Array?r:r.subarray());if(It(n))return n.then(({digest:i})=>Mt.verify(e,i,t)).catch(i=>{throw new S(String(i),"ERR_INVALID_INPUT")});try{return Mt.verify(e,n.digest,t)}catch(i){throw new S(String(i),"ERR_INVALID_INPUT")}}function ud(t){return Mt.ProjectivePoint.fromHex(t).toRawBytes(!0)}function ld(t){try{Mt.getPublicKey(t,!0)}catch(e){throw new S(String(e),"ERR_INVALID_PRIVATE_KEY")}}function au(t){try{Mt.ProjectivePoint.fromHex(t)}catch(e){throw new S(String(e),"ERR_INVALID_PUBLIC_KEY")}}function fd(t){try{return Mt.getPublicKey(t,!0)}catch(e){throw new S(String(e),"ERR_INVALID_PRIVATE_KEY")}}var Ui=class{_key;constructor(e){au(e),this._key=e}verify(e,r){return cd(this._key,r,e)}marshal(){return ud(this._key)}get bytes(){return Xt.encode({Type:we.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Ne(this.bytes,e.bytes)}async hash(){let e=We.digest(this.bytes),r;return It(e)?{bytes:r}=await e:r=e.bytes,r}},Fi=class{_key;_publicKey;constructor(e,r){this._key=e,this._publicKey=r??fd(e),ld(this._key),au(this._publicKey)}sign(e){return ad(this._key,e)}get public(){return new Ui(this._publicKey)}marshal(){return this._key}get bytes(){return Zt.encode({Type:we.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Ne(this.bytes,e.bytes)}hash(){let e=We.digest(this.bytes);return It(e)?e.then(({bytes:r})=>r):e.bytes}async id(){let e=await this.public.hash();return ke(e,"base58btc")}async export(e,r="libp2p-key"){if(r==="libp2p-key")return Vn(this.bytes,e);throw new S(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function Qb(t){return new Fi(t)}function Xb(t){return new Ui(t)}async function Zb(){let t=od();return new Fi(t)}var Dr={rsa:ru,ed25519:Zc,secp256k1:cu};function uu(t){let e=Object.keys(Dr).join(" / ");return new S(`invalid or unsupported key type ${t}. Must be ${e}`,"ERR_UNSUPPORTED_KEY_TYPE")}function lu(t){if(t=t.toLowerCase(),t==="rsa"||t==="ed25519"||t==="secp256k1")return Dr[t];throw uu(t)}async function hd(t,e){return lu(t).generateKeyPair(e??2048)}function Ki(t){let e=Xt.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case we.RSA:return Dr.rsa.unmarshalRsaPublicKey(r);case we.Ed25519:return Dr.ed25519.unmarshalEd25519PublicKey(r);case we.Secp256k1:return Dr.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw uu(e.Type??"unknown")}}function dd(t,e){return e=(e??"rsa").toLowerCase(),lu(e),t.bytes}async function fu(t){let e=Zt.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case we.RSA:return Dr.rsa.unmarshalRsaPrivateKey(r);case we.Ed25519:return Dr.ed25519.unmarshalEd25519PrivateKey(r);case we.Secp256k1:return Dr.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw uu(e.Type??"RSA")}}function pd(t,e){return e=(e??"rsa").toLowerCase(),lu(e),t.bytes}var wt=Ee(du(),1);wt.default.formatters.b=t=>t==null?"undefined":ve.baseEncode(t);wt.default.formatters.t=t=>t==null?"undefined":gt.baseEncode(t);wt.default.formatters.m=t=>t==null?"undefined":Pn.baseEncode(t);wt.default.formatters.p=t=>t==null?"undefined":t.toString();wt.default.formatters.c=t=>t==null?"undefined":t.toString();wt.default.formatters.k=t=>t==null?"undefined":t.toString();wt.default.formatters.a=t=>t==null?"undefined":t.toString();function fw(t){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=t,e.destroy=()=>!0,e.extend=()=>e,e}function ro(){return{forComponent(t){return hw(t)}}}function hw(t){let e=fw(`${t}:trace`);return wt.default.enabled(`${t}:trace`)&&wt.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(e=(0,wt.default)(`${t}:trace`)),Object.assign((0,wt.default)(t),{error:(0,wt.default)(`${t}:error`),trace:e})}var dw=Symbol.for("nodejs.util.inspect.custom"),xd=Object.values(ut).map(t=>t.decoder).reduce((t,e)=>t.or(e),ut.identity.decoder),bd=114,pu=36,mu=37,qi=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()})`}[Wa]=!0;toString(){return this.string==null&&(this.string=ve.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Pt.createV1(bd,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e instanceof Uint8Array)return Ne(this.multihash.bytes,e);if(typeof e=="string")return ae(e).equals(this);if(e?.multihash?.bytes!=null)return Ne(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[dw](){return`PeerId(${this.toString()})`}},fn=class extends qi{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},hn=class extends qi{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.multihash.digest}},dn=class extends qi{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.multihash.digest}};function wd(t){if(t.type==="RSA")return new fn(t);if(t.type==="Ed25519")return new hn(t);if(t.type==="secp256k1")return new dn(t);throw new S("Not a PeerId","ERR_INVALID_PARAMETERS")}function ae(t,e){if(e=e??xd,t.charAt(0)==="1"||t.charAt(0)==="Q"){let r=Zr(ve.decode(`z${t}`));return t.startsWith("12D")?new hn({multihash:r}):t.startsWith("16U")?new dn({multihash:r}):new fn({multihash:r})}return Qn(xd.decode(t))}function Qn(t){try{let e=Zr(t);if(e.code===Ar.code){if(e.digest.length===pu)return new hn({multihash:e});if(e.digest.length===mu)return new dn({multihash:e})}if(e.code===We.code)return new fn({multihash:e})}catch{return pw(Pt.decode(t))}throw new Error("Supplied PeerID CID is invalid")}function pw(t){if(t==null||t.multihash==null||t.version==null||t.version===1&&t.code!==bd)throw new Error("Supplied PeerID CID is invalid");let e=t.multihash;if(e.code===We.code)return new fn({multihash:t.multihash});if(e.code===Ar.code){if(e.digest.length===pu)return new hn({multihash:t.multihash});if(e.digest.length===mu)return new dn({multihash:t.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function no(t,e){return t.length===pu?new hn({multihash:Yt(Ar.code,t),privateKey:e}):t.length===mu?new dn({multihash:Yt(Ar.code,t),privateKey:e}):new fn({multihash:await We.digest(t),publicKey:t,privateKey:e})}function dr(t,e){let r={[Symbol.iterator]:()=>r,next:()=>{let n=t.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:e(i)}}};return r}var ht=class{map;constructor(e){if(this.map=new Map,e!=null)for(let[r,n]of e.entries())this.map.set(r.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(e){return this.map.delete(e.toString())}entries(){return dr(this.map.entries(),e=>[ae(e[0]),e[1]])}forEach(e){this.map.forEach((r,n)=>{e(r,ae(n),this)})}get(e){return this.map.get(e.toString())}has(e){return this.map.has(e.toString())}set(e,r){this.map.set(e.toString(),r)}keys(){return dr(this.map.keys(),e=>ae(e))}values(){return this.map.values()}get size(){return this.map.size}};var Nr=class t{set;constructor(e){if(this.set=new Set,e!=null)for(let r of e)this.set.add(r.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(e){this.set.add(e.toString())}clear(){this.set.clear()}delete(e){this.set.delete(e.toString())}entries(){return dr(this.set.entries(),e=>{let r=ae(e[0]);return[r,r]})}forEach(e){this.set.forEach(r=>{let n=ae(r);e(n,n,this)})}has(e){return this.set.has(e.toString())}values(){return dr(this.set.values(),e=>ae(e))}intersection(e){let r=new t;for(let n of e)this.has(n)&&r.add(n);return r}difference(e){let r=new t;for(let n of this)e.has(n)||r.add(n);return r}union(e){let r=new t;for(let n of e)r.add(n);for(let n of this)r.add(n);return r}};var io=class t{list;constructor(e){if(this.list=[],e!=null)for(let r of e)this.list.push(r.toString())}[Symbol.iterator](){return dr(this.list.entries(),e=>ae(e[1]))}concat(e){let r=new t(this);for(let n of e)r.push(n);return r}entries(){return dr(this.list.entries(),e=>[e[0],ae(e[1])])}every(e){return this.list.every((r,n)=>e(ae(r),n,this))}filter(e){let r=new t;return this.list.forEach((n,i)=>{let s=ae(n);e(s,i,this)&&r.push(s)}),r}find(e){let r=this.list.find((n,i)=>e(ae(n),i,this));if(r!=null)return ae(r)}findIndex(e){return this.list.findIndex((r,n)=>e(ae(r),n,this))}forEach(e){this.list.forEach((r,n)=>{e(ae(r),n,this)})}includes(e){return this.list.includes(e.toString())}indexOf(e){return this.list.indexOf(e.toString())}pop(){let e=this.list.pop();if(e!=null)return ae(e)}push(...e){for(let r of e)this.list.push(r.toString())}shift(){let e=this.list.shift();if(e!=null)return ae(e)}unshift(...e){let r=this.list.length;for(let n=e.length-1;n>-1;n--)r=this.list.unshift(e[n].toString());return r}clear(){this.list=[]}get length(){return this.list.length}};var gu;(function(t){let e;t.codec=()=>(e==null&&(e=Xe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.id!=null&&(n.uint32(10),n.bytes(r.id)),r.pubKey!=null&&(n.uint32(18),n.bytes(r.pubKey)),r.privKey!=null&&(n.uint32(26),n.bytes(r.privKey)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.id=r.bytes();break;case 2:i.pubKey=r.bytes();break;case 3:i.privKey=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Qe(r,t.codec()),t.decode=r=>Ye(r,t.codec())})(gu||(gu={}));var Ed=async()=>{let t=await hd("Ed25519"),e=await mw(t);if(e.type==="Ed25519")return e;throw new Error(`Generated unexpected PeerId type "${e.type}"`)};async function mw(t){return no(dd(t.public),pd(t))}function vd(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function _d(t=0){return globalThis.Buffer?.allocUnsafe!=null?vd(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}var gw=Math.pow(2,7),yw=Math.pow(2,14),xw=Math.pow(2,21),yu=Math.pow(2,28),xu=Math.pow(2,35),bu=Math.pow(2,42),wu=Math.pow(2,49),ce=128,tt=127;function rt(t){if(t<gw)return 1;if(t<yw)return 2;if(t<xw)return 3;if(t<yu)return 4;if(t<xu)return 5;if(t<bu)return 6;if(t<wu)return 7;if(Number.MAX_SAFE_INTEGER!=null&&t>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function bw(t,e,r=0){switch(rt(t)){case 8:e[r++]=t&255|ce,t/=128;case 7:e[r++]=t&255|ce,t/=128;case 6:e[r++]=t&255|ce,t/=128;case 5:e[r++]=t&255|ce,t/=128;case 4:e[r++]=t&255|ce,t>>>=7;case 3:e[r++]=t&255|ce,t>>>=7;case 2:e[r++]=t&255|ce,t>>>=7;case 1:{e[r++]=t&255,t>>>=7;break}default:throw new Error("unreachable")}return e}function ww(t,e,r=0){switch(rt(t)){case 8:e.set(r++,t&255|ce),t/=128;case 7:e.set(r++,t&255|ce),t/=128;case 6:e.set(r++,t&255|ce),t/=128;case 5:e.set(r++,t&255|ce),t/=128;case 4:e.set(r++,t&255|ce),t>>>=7;case 3:e.set(r++,t&255|ce),t>>>=7;case 2:e.set(r++,t&255|ce),t>>>=7;case 1:{e.set(r++,t&255),t>>>=7;break}default:throw new Error("unreachable")}return e}function Ew(t,e){let r=t[e],n=0;if(n+=r&tt,r<ce||(r=t[e+1],n+=(r&tt)<<7,r<ce)||(r=t[e+2],n+=(r&tt)<<14,r<ce)||(r=t[e+3],n+=(r&tt)<<21,r<ce)||(r=t[e+4],n+=(r&tt)*yu,r<ce)||(r=t[e+5],n+=(r&tt)*xu,r<ce)||(r=t[e+6],n+=(r&tt)*bu,r<ce)||(r=t[e+7],n+=(r&tt)*wu,r<ce))return n;throw new RangeError("Could not decode varint")}function vw(t,e){let r=t.get(e),n=0;if(n+=r&tt,r<ce||(r=t.get(e+1),n+=(r&tt)<<7,r<ce)||(r=t.get(e+2),n+=(r&tt)<<14,r<ce)||(r=t.get(e+3),n+=(r&tt)<<21,r<ce)||(r=t.get(e+4),n+=(r&tt)*yu,r<ce)||(r=t.get(e+5),n+=(r&tt)*xu,r<ce)||(r=t.get(e+6),n+=(r&tt)*bu,r<ce)||(r=t.get(e+7),n+=(r&tt)*wu,r<ce))return n;throw new RangeError("Could not decode varint")}function dt(t,e,r=0){return e==null&&(e=_d(rt(t))),e instanceof Uint8Array?bw(t,e,r):ww(t,e,r)}function Ut(t,e=0){return t instanceof Uint8Array?Ew(t,e):vw(t,e)}function Vi(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function pr(t=0){return globalThis.Buffer?.alloc!=null?Vi(globalThis.Buffer.alloc(t)):new Uint8Array(t)}function $i(t=0){return globalThis.Buffer?.allocUnsafe!=null?Vi(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function Eu(t,e){e==null&&(e=t.reduce((i,s)=>i+s.length,0));let r=$i(e),n=0;for(let i of t)r.set(i,n),n+=i.length;return Vi(r)}function Sd(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}var Id=Symbol.for("@achingbrain/uint8arraylist");function Ad(t,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let r=0;for(let n of t){let i=r+n.byteLength;if(e<i)return{buf:n,index:e-r};r=i}throw new RangeError("index is out of bounds")}function so(t){return!!t?.[Id]}var $e=class t{bufs;length;[Id]=!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 r=0;for(let n of e)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(so(n))r+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}prepend(...e){this.prependAll(e)}prependAll(e){let r=0;for(let n of e.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(so(n))r+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}get(e){let r=Ad(this.bufs,e);return r.buf[r.index]}set(e,r){let n=Ad(this.bufs,e);n.buf[n.index]=r}write(e,r=0){if(e instanceof Uint8Array)for(let n=0;n<e.length;n++)this.set(r+n,e[n]);else if(so(e))for(let n=0;n<e.length;n++)this.set(r+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,r){let{bufs:n,length:i}=this._subList(e,r);return Eu(n,i)}subarray(e,r){let{bufs:n,length:i}=this._subList(e,r);return n.length===1?n[0]:Eu(n,i)}sublist(e,r){let{bufs:n,length:i}=this._subList(e,r),s=new t;return s.length=i,s.bufs=[...n],s}_subList(e,r){if(e=e??0,r=r??this.length,e<0&&(e=this.length+e),r<0&&(r=this.length+r),e<0||r>this.length)throw new RangeError("index is out of bounds");if(e===r)return{bufs:[],length:0};if(e===0&&r===this.length)return{bufs:this.bufs,length:this.length};let n=[],i=0;for(let s=0;s<this.bufs.length;s++){let o=this.bufs[s],a=i,c=a+o.byteLength;if(i=c,e>=c)continue;let u=e>=a&&e<c,l=r>a&&r<=c;if(u&&l){if(e===a&&r===c){n.push(o);break}let f=e-a;n.push(o.subarray(f,f+(r-e)));break}if(u){if(e===0){n.push(o);continue}n.push(o.subarray(e-a));continue}if(l){if(r===c){n.push(o);break}n.push(o.subarray(0,r-a));break}n.push(o)}return{bufs:n,length:r-e}}indexOf(e,r=0){if(!so(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(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),e.length===0)return r>this.length?this.length:r;let i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let s=256,o=new Int32Array(s);for(let f=0;f<s;f++)o[f]=-1;for(let f=0;f<i;f++)o[n[f]]=f;let a=o,c=this.byteLength-n.byteLength,u=n.byteLength-1,l;for(let f=r;f<=c;f+=l){l=0;for(let h=u;h>=0;h--){let p=this.get(f+h);if(n[h]!==p){l=Math.max(1,h-a[p]);break}}if(l===0)return f}return-1}getInt8(e){let r=this.subarray(e,e+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(e,r){let n=$i(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,e)}getInt16(e,r){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(e,r,n){let i=pr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,r,n),this.write(i,e)}getInt32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(e,r,n){let i=pr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,r,n),this.write(i,e)}getBigInt64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(e,r,n){let i=pr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,e)}getUint8(e){let r=this.subarray(e,e+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(e,r){let n=$i(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,e)}getUint16(e,r){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(e,r,n){let i=pr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,r,n),this.write(i,e)}getUint32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(e,r,n){let i=pr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,r,n),this.write(i,e)}getBigUint64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(e,r,n){let i=pr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,r,n),this.write(i,e)}getFloat32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(e,r,n){let i=pr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,r,n),this.write(i,e)}getFloat64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(e,r,n){let i=pr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,e)}equals(e){if(e==null||!(e instanceof t)||e.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!Sd(this.bufs[r],e.bufs[r]))return!1;return!0}static fromUint8Arrays(e,r){let n=new t;return n.bufs=e,r==null&&(r=e.reduce((i,s)=>i+s.byteLength,0)),n.length=r,n}};var Rd={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var zi;(function(t){let e;t.codec=()=>(e==null&&(e=Xe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.publicKey!=null&&r.publicKey.byteLength>0&&(n.uint32(10),n.bytes(r.publicKey)),r.payloadType!=null&&r.payloadType.byteLength>0&&(n.uint32(18),n.bytes(r.payloadType)),r.payload!=null&&r.payload.byteLength>0&&(n.uint32(26),n.bytes(r.payload)),r.signature!=null&&r.signature.byteLength>0&&(n.uint32(42),n.bytes(r.signature)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.publicKey=r.bytes();break;case 2:i.payloadType=r.bytes();break;case 3:i.payload=r.bytes();break;case 5:i.signature=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Qe(r,t.codec()),t.decode=r=>Ye(r,t.codec())})(zi||(zi={}));var Xn=class t{static createFromProtobuf=async e=>{let r=zi.decode(e),n=await no(r.publicKey);return new t({peerId:n,payloadType:r.payloadType,payload:r.payload,signature:r.signature})};static seal=async(e,r)=>{if(r.privateKey==null)throw new Error("Missing private key");let n=e.domain,i=e.codec,s=e.marshal(),o=Cd(n,i,s),c=await(await fu(r.privateKey)).sign(o.subarray());return new t({peerId:r,payloadType:i,payload:s,signature:c})};static openAndCertify=async(e,r)=>{let n=await t.createFromProtobuf(e);if(!await n.validate(r))throw new S("envelope signature is not valid for the given domain",Rd.ERR_SIGNATURE_NOT_VALID);return n};peerId;payloadType;payload;signature;marshaled;constructor(e){let{peerId:r,payloadType:n,payload:i,signature:s}=e;this.peerId=r,this.payloadType=n,this.payload=i,this.signature=s}marshal(){if(this.peerId.publicKey==null)throw new Error("Missing public key");return this.marshaled==null&&(this.marshaled=zi.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(e){return Ne(this.marshal(),e.marshal())}async validate(e){let r=Cd(e,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return Ki(this.peerId.publicKey).verify(r.subarray(),this.signature)}},Cd=(t,e,r)=>{let n=j(t),i=dt(n.byteLength),s=dt(e.length),o=dt(r.length);return new $e(i,n,s,e,o,r)};function Td(t,e){let r=(n,i)=>n.toString().localeCompare(i.toString());return t.length!==e.length?!1:(e.sort(r),t.sort(r).every((n,i)=>e[i].equals(n)))}function Bd(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}function Zn(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function oo(t=0){return globalThis.Buffer?.allocUnsafe!=null?Zn(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function Pd(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var Ld=Pd("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),vu=Pd("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=oo(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),_w={utf8:Ld,"utf-8":Ld,hex:ut.base16,latin1:vu,ascii:vu,binary:vu,...ut},ao=_w;function pt(t,e="utf8"){let r=ao[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):r.encoder.encode(t).substring(1)}function mr(t,e){e==null&&(e=t.reduce((i,s)=>i+s.length,0));let r=oo(e),n=0;for(let i of t)r.set(i,n),n+=i.length;return Zn(r)}var co=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let r=this.index,n=e();return n===void 0&&(this.index=r),n}parseWith(e){let r=e();if(this.index===this.input.length)return r}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 r=this.readChar();if(r===e)return r})}readSeparator(e,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(e)===void 0))return n()})}readNumber(e,r,n,i){return this.readAtomically(()=>{let s=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",u=2**(8*i)-1;for(;;){let l=this.readAtomically(()=>{let f=this.readChar();if(f===void 0)return;let h=Number.parseInt(f,e);if(!Number.isNaN(h))return h});if(l===void 0)break;if(s*=e,s+=l,s>u||(o+=1,r!==void 0&&o>r))return}if(o!==0)return!n&&c&&o>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let e=new Uint8Array(4);for(let r=0;r<e.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;e[r]=n}return e})}readIPv6Addr(){let e=r=>{for(let n=0;n<r.length/2;n++){let i=n*2;if(n<r.length-3){let o=this.readSeparator(":",n,()=>this.readIPv4Addr());if(o!==void 0)return r[i]=o[0],r[i+1]=o[1],r[i+2]=o[2],r[i+3]=o[3],[i+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[i,!1];r[i]=s>>8,r[i+1]=s&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,i]=e(r);if(n===16)return r;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),o=16-(n+2),[a]=e(s.subarray(0,o));return r.set(s.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Dd=45,Sw=15,jn=new co;function _u(t){if(!(t.length>Sw))return jn.new(t).parseWith(()=>jn.readIPv4Addr())}function Su(t){if(t.includes("%")&&(t=t.split("%")[0]),!(t.length>Dd))return jn.new(t).parseWith(()=>jn.readIPv6Addr())}function uo(t){if(t.includes("%")&&(t=t.split("%")[0]),!(t.length>Dd))return jn.new(t).parseWith(()=>jn.readIPAddr())}var LC=parseInt("0xFFFF",16),PC=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function Au(t,e="utf8"){let r=ao[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Zn(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}function lo(t){return!!_u(t)}function fo(t){return!!Su(t)}function Jn(t){return!!uo(t)}var Od=lo,Tw=fo,Iu=function(t){let e=0;if(t=t.toString().trim(),Od(t)){let r=new Uint8Array(e+4);return t.split(/\./g).forEach(n=>{r[e++]=parseInt(n,10)&255}),r}if(Tw(t)){let r=t.split(":",8),n;for(n=0;n<r.length;n++){let s=Od(r[n]),o;s&&(o=Iu(r[n]),r[n]=pt(o.slice(0,2),"base16")),o!=null&&++n<8&&r.splice(n,0,pt(o.slice(2,4),"base16"))}if(r[0]==="")for(;r.length<8;)r.unshift("0");else if(r[r.length-1]==="")for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&r[n]!=="";n++);let s=[n,1];for(n=9-r.length;n>0;n--)s.push("0");r.splice.apply(r,s)}let i=new Uint8Array(e+16);for(n=0;n<r.length;n++){let s=parseInt(r[n],16);i[e++]=s>>8&255,i[e++]=s&255}return i}throw new Error("invalid ip address")},Md=function(t,e=0,r){e=~~e,r=r??t.length-e;let n=new DataView(t.buffer);if(r===4){let i=[];for(let s=0;s<r;s++)i.push(t[e+s]);return i.join(".")}if(r===16){let i=[];for(let s=0;s<r;s+=2)i.push(n.getUint16(e+s).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var ei={},Ru={},Lw=[[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"],[777,-1,"memory"]];Lw.forEach(t=>{let e=Pw(...t);Ru[e.code]=e,ei[e.name]=e});function Pw(t,e,r,n,i){return{code:t,size:e,name:r,resolvable:!!n,path:!!i}}function le(t){if(typeof t=="number"){if(Ru[t]!=null)return Ru[t];throw new Error(`no protocol with code: ${t}`)}else if(typeof t=="string"){if(ei[t]!=null)return ei[t];throw new Error(`no protocol with name: ${t}`)}throw new Error(`invalid protocol id type: ${typeof t}`)}var xT=le("ip4"),bT=le("ip6"),wT=le("ipcidr");function Tu(t,e){switch(le(t).code){case 4:case 41:return Nw(e);case 42:return Kd(e);case 6:case 273:case 33:case 132:return Vd(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Kd(e);case 421:return Uw(e);case 444:return qd(e);case 445:return qd(e);case 466:return Mw(e);default:return pt(e,"base16")}}function Bu(t,e){switch(le(t).code){case 4:return Ud(e);case 41:return Ud(e);case 42:return Fd(e);case 6:case 273:case 33:case 132:return Lu(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Fd(e);case 421:return kw(e);case 444:return Fw(e);case 445:return Kw(e);case 466:return Ow(e);default:return Au(e,"base16")}}var Cu=Object.values(ut).map(t=>t.decoder),Dw=function(){let t=Cu[0].or(Cu[1]);return Cu.slice(2).forEach(e=>t=t.or(e)),t}();function Ud(t){if(!Jn(t))throw new Error("invalid ip address");return Iu(t)}function Nw(t){let e=Md(t,0,t.length);if(e==null)throw new Error("ipBuff is required");if(!Jn(e))throw new Error("invalid ip address");return e}function Lu(t){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,t),new Uint8Array(e)}function Vd(t){return new DataView(t.buffer).getUint16(t.byteOffset)}function Fd(t){let e=Au(t),r=Uint8Array.from(dt(e.length));return mr([r,e],r.length+e.length)}function Kd(t){let e=Ut(t);if(t=t.slice(rt(e)),t.length!==e)throw new Error("inconsistent lengths");return pt(t)}function kw(t){let e;t[0]==="Q"||t[0]==="1"?e=Zr(ve.decode(`z${t}`)).bytes:e=Pt.parse(t).multihash.bytes;let r=Uint8Array.from(dt(e.length));return mr([r,e],r.length+e.length)}function Ow(t){let e=Dw.decode(t),r=Uint8Array.from(dt(e.length));return mr([r,e],r.length+e.length)}function Mw(t){let e=Ut(t),r=t.slice(rt(e));if(r.length!==e)throw new Error("inconsistent lengths");return"u"+pt(r,"base64url")}function Uw(t){let e=Ut(t),r=t.slice(rt(e));if(r.length!==e)throw new Error("inconsistent lengths");return pt(r,"base58btc")}function Fw(t){let e=t.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 r=gt.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 i=Lu(n);return mr([r,i],r.length+i.length)}function Kw(t){let e=t.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 r=gt.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 i=Lu(n);return mr([r,i],r.length+i.length)}function qd(t){let e=t.slice(0,t.length-2),r=t.slice(t.length-2),n=pt(e,"base32"),i=Vd(r);return`${n}:${i}`}function $d(t){t=Pu(t);let e=[],r=[],n=null,i=t.split("/").slice(1);if(i.length===1&&i[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let s=0;s<i.length;s++){let o=i[s],a=le(o);if(a.size===0){e.push([a.code]),r.push([a.code]);continue}if(s++,s>=i.length)throw Hd("invalid address: "+t);if(a.path===!0){n=Pu(i.slice(s).join("/")),e.push([a.code,Bu(a.code,n)]),r.push([a.code,n]);break}let c=Bu(a.code,i[s]);e.push([a.code,c]),r.push([a.code,Tu(a.code,c)])}return{string:zd(r),bytes:Nu(e),tuples:e,stringTuples:r,path:n}}function Du(t){let e=[],r=[],n=null,i=0;for(;i<t.length;){let s=Ut(t,i),o=rt(s),a=le(s),c=qw(a,t.slice(i+o));if(c===0){e.push([s]),r.push([s]),i+=o;continue}let u=t.slice(i+o,i+o+c);if(i+=c+o,i>t.length)throw Hd("Invalid address Uint8Array: "+pt(t,"base16"));e.push([s,u]);let l=Tu(s,u);if(r.push([s,l]),a.path===!0){n=l;break}}return{bytes:Uint8Array.from(t),string:zd(r),tuples:e,stringTuples:r,path:n}}function zd(t){let e=[];return t.map(r=>{let n=le(r[0]);return e.push(n.name),r.length>1&&r[1]!=null&&e.push(r[1]),null}),Pu(e.join("/"))}function Nu(t){return mr(t.map(e=>{let r=le(e[0]),n=Uint8Array.from(dt(r.code));return e.length>1&&e[1]!=null&&(n=mr([n,e[1]])),n}))}function qw(t,e){if(t.size>0)return t.size/8;if(t.size===0)return 0;{let r=Ut(e instanceof Uint8Array?e:Uint8Array.from(e));return r+rt(r)}}function Pu(t){return"/"+t.trim().split("/").filter(e=>e).join("/")}function Hd(t){return new Error("Error parsing address: "+t)}var Vw=Symbol.for("nodejs.util.inspect.custom"),ku=Symbol.for("@multiformats/js-multiaddr/multiaddr"),$w=[le("dns").code,le("dns4").code,le("dns6").code,le("dnsaddr").code],ho=class t{bytes;#e;#t;#r;#n;[ku]=!0;constructor(e){e==null&&(e="");let r;if(e instanceof Uint8Array)r=Du(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);r=$d(e)}else if(kr(e))r=Du(e.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#e=r.string,this.#t=r.tuples,this.#r=r.stringTuples,this.#n=r.path}toString(){return this.#e}toJSON(){return this.toString()}toOptions(){let e,r,n,i,s="",o=le("tcp"),a=le("udp"),c=le("ip4"),u=le("ip6"),l=le("dns6"),f=le("ip6zone");for(let[p,d]of this.stringTuples())p===f.code&&(s=`%${d??""}`),$w.includes(p)&&(r=o.name,i=443,n=`${d??""}${s}`,e=p===l.code?6:4),(p===o.code||p===a.code)&&(r=le(p).name,i=parseInt(d??"")),(p===c.code||p===u.code)&&(r=le(p).name,n=`${d??""}${s}`,e=p===u.code?6:4);if(e==null||r==null||n==null||i==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:r,port:i}}protos(){return this.#t.map(([e])=>Object.assign({},le(e)))}protoCodes(){return this.#t.map(([e])=>e)}protoNames(){return this.#t.map(([e])=>le(e).name)}tuples(){return this.#t}stringTuples(){return this.#r}encapsulate(e){return e=new t(e),new t(this.toString()+e.toString())}decapsulate(e){let r=e.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new t(n.slice(0,i))}decapsulateCode(e){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===e)return new t(Nu(r.slice(0,n)));return this}getPeerId(){try{let e=[];this.stringTuples().forEach(([n,i])=>{n===ei.p2p.code&&e.push([n,i]),n===ei["p2p-circuit"].code&&(e=[])});let r=e.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?pt(ve.decode(`z${n}`),"base58btc"):pt(Pt.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(e){return Bd(this.bytes,e.bytes)}async resolve(e){let r=this.protos().find(s=>s.resolvable);if(r==null)return[this];let n=po.get(r.name);if(n==null)throw new S(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(s=>new t(s))}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 r=(e??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[Vw](){return`Multiaddr(${this.#e})`}};var po=new Map;function kr(t){return!!t?.[ku]}function Me(t){return new ho(t)}var Gd="libp2p-peer-record",Wd=Uint8Array.from([3,1]);var Hi;(function(t){let e;(function(n){let i;n.codec=()=>(i==null&&(i=Xe((s,o,a={})=>{a.lengthDelimited!==!1&&o.fork(),s.multiaddr!=null&&s.multiaddr.byteLength>0&&(o.uint32(10),o.bytes(s.multiaddr)),a.lengthDelimited!==!1&&o.ldelim()},(s,o)=>{let a={multiaddr:new Uint8Array(0)},c=o==null?s.len:s.pos+o;for(;s.pos<c;){let u=s.uint32();switch(u>>>3){case 1:a.multiaddr=s.bytes();break;default:s.skipType(u&7);break}}return a})),i),n.encode=s=>Qe(s,n.codec()),n.decode=s=>Ye(s,n.codec())})(e=t.AddressInfo||(t.AddressInfo={}));let r;t.codec=()=>(r==null&&(r=Xe((n,i,s={})=>{if(s.lengthDelimited!==!1&&i.fork(),n.peerId!=null&&n.peerId.byteLength>0&&(i.uint32(10),i.bytes(n.peerId)),n.seq!=null&&n.seq!==0n&&(i.uint32(16),i.uint64(n.seq)),n.addresses!=null)for(let o of n.addresses)i.uint32(26),t.AddressInfo.codec().encode(o,i);s.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let s={peerId:new Uint8Array(0),seq:0n,addresses:[]},o=i==null?n.len:n.pos+i;for(;n.pos<o;){let a=n.uint32();switch(a>>>3){case 1:s.peerId=n.bytes();break;case 2:s.seq=n.uint64();break;case 3:s.addresses.push(t.AddressInfo.codec().decode(n,n.uint32()));break;default:n.skipType(a&7);break}}return s})),r),t.encode=n=>Qe(n,t.codec()),t.decode=n=>Ye(n,t.codec())})(Hi||(Hi={}));var mn=class t{static createFromProtobuf=e=>{let r=Hi.decode(e),n=Qn(r.peerId),i=(r.addresses??[]).map(o=>Me(o.multiaddr)),s=r.seq;return new t({peerId:n,multiaddrs:i,seqNumber:s})};static DOMAIN=Gd;static CODEC=Wd;peerId;multiaddrs;seqNumber;domain=t.DOMAIN;codec=t.CODEC;marshaled;constructor(e){let{peerId:r,multiaddrs:n,seqNumber:i}=e;this.peerId=r,this.multiaddrs=n??[],this.seqNumber=i??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=Hi.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(e=>({multiaddr:e.bytes}))})),this.marshaled}equals(e){return!(!(e instanceof t)||!this.peerId.equals(e.peerId)||this.seqNumber!==e.seqNumber||!Td(this.multiaddrs,e.multiaddrs))}};function zw(t){return t[Symbol.asyncIterator]!=null}function Hw(t){if(zw(t))return(async()=>{let r=[];for await(let n of t)r.push(n);return r})();let e=[];for(let r of t)e.push(r);return e}var Gi=Hw;var Mu=Ee(Qd(),1);var Yi=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Uu=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},Xd=t=>globalThis.DOMException===void 0?new Uu(t):new DOMException(t),Zd=t=>{let e=t.reason===void 0?Xd("This operation was aborted."):t.reason;return e instanceof Error?e:Xd(e)};function Fu(t,e,r,n){let i,s=new Promise((o,a)=>{if(typeof e!="number"||Math.sign(e)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${e}\``);if(e===Number.POSITIVE_INFINITY){o(t);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&a(Zd(c)),c.addEventListener("abort",()=>{a(Zd(c))})}i=n.customTimers.setTimeout.call(void 0,()=>{if(typeof r=="function"){try{o(r())}catch(l){a(l)}return}let c=typeof r=="string"?r:`Promise timed out after ${e} milliseconds`,u=r instanceof Error?r:new Yi(c);typeof t.cancel=="function"&&t.cancel(),a(u)},e),(async()=>{try{o(await t)}catch(c){a(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return s.clear=()=>{clearTimeout(i),i=void 0},s}function Ku(t,e,r){let n=0,i=t.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(t[o],e)<=0?(n=++o,i-=s+1):i=s}return n}var gn=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},gr,qu=class{constructor(){gr.set(this,[])}enqueue(e,r){r={priority:0,...r};let n={priority:r.priority,run:e};if(this.size&&gn(this,gr,"f")[this.size-1].priority>=r.priority){gn(this,gr,"f").push(n);return}let i=Ku(gn(this,gr,"f"),n,(s,o)=>o.priority-s.priority);gn(this,gr,"f").splice(i,0,n)}dequeue(){let e=gn(this,gr,"f").shift();return e?.run}filter(e){return gn(this,gr,"f").filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return gn(this,gr,"f").length}};gr=new WeakMap;var jd=qu;var _e=function(t,e,r,n,i){if(n==="m")throw new TypeError("Private method is not writable");if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a setter");if(typeof e=="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(t,r):i?i.value=r:e.set(t,r),r},K=function(t,e,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof e=="function"?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(t):n?n.value:e.get(t)},Re,Xi,Zi,Mr,Eo,ji,go,Ft,Qi,Et,yo,vt,Ji,Or,xo,Jd,ep,np,tp,rp,bo,Vu,$u,vo,ip,wo,_o=class extends Error{},zu=class extends Mu.default{constructor(e){var r,n,i,s;if(super(),Re.add(this),Xi.set(this,void 0),Zi.set(this,void 0),Mr.set(this,0),Eo.set(this,void 0),ji.set(this,void 0),go.set(this,0),Ft.set(this,void 0),Qi.set(this,void 0),Et.set(this,void 0),yo.set(this,void 0),vt.set(this,0),Ji.set(this,void 0),Or.set(this,void 0),xo.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:jd,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(r=e.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&n!==void 0?n:""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(s=(i=e.interval)===null||i===void 0?void 0:i.toString())!==null&&s!==void 0?s:""}\` (${typeof e.interval})`);_e(this,Xi,e.carryoverConcurrencyCount,"f"),_e(this,Zi,e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,"f"),_e(this,Eo,e.intervalCap,"f"),_e(this,ji,e.interval,"f"),_e(this,Et,new e.queueClass,"f"),_e(this,yo,e.queueClass,"f"),this.concurrency=e.concurrency,this.timeout=e.timeout,_e(this,xo,e.throwOnTimeout===!0,"f"),_e(this,Or,e.autoStart===!1,"f")}get concurrency(){return K(this,Ji,"f")}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);_e(this,Ji,e,"f"),K(this,Re,"m",vo).call(this)}async add(e,r={}){return r={timeout:this.timeout,throwOnTimeout:K(this,xo,"f"),...r},new Promise((n,i)=>{K(this,Et,"f").enqueue(async()=>{var s,o,a;_e(this,vt,(o=K(this,vt,"f"),o++,o),"f"),_e(this,Mr,(a=K(this,Mr,"f"),a++,a),"f");try{if(!((s=r.signal)===null||s===void 0)&&s.aborted)throw new _o("The task was aborted.");let c=e({signal:r.signal});r.timeout&&(c=Fu(Promise.resolve(c),r.timeout)),r.signal&&(c=Promise.race([c,K(this,Re,"m",ip).call(this,r.signal)]));let u=await c;n(u),this.emit("completed",u)}catch(c){if(c instanceof Yi&&!r.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{K(this,Re,"m",np).call(this)}},r),this.emit("add"),K(this,Re,"m",bo).call(this)})}async addAll(e,r){return Promise.all(e.map(async n=>this.add(n,r)))}start(){return K(this,Or,"f")?(_e(this,Or,!1,"f"),K(this,Re,"m",vo).call(this),this):this}pause(){_e(this,Or,!0,"f")}clear(){_e(this,Et,new(K(this,yo,"f")),"f")}async onEmpty(){K(this,Et,"f").size!==0&&await K(this,Re,"m",wo).call(this,"empty")}async onSizeLessThan(e){K(this,Et,"f").size<e||await K(this,Re,"m",wo).call(this,"next",()=>K(this,Et,"f").size<e)}async onIdle(){K(this,vt,"f")===0&&K(this,Et,"f").size===0||await K(this,Re,"m",wo).call(this,"idle")}get size(){return K(this,Et,"f").size}sizeBy(e){return K(this,Et,"f").filter(e).length}get pending(){return K(this,vt,"f")}get isPaused(){return K(this,Or,"f")}};Xi=new WeakMap,Zi=new WeakMap,Mr=new WeakMap,Eo=new WeakMap,ji=new WeakMap,go=new WeakMap,Ft=new WeakMap,Qi=new WeakMap,Et=new WeakMap,yo=new WeakMap,vt=new WeakMap,Ji=new WeakMap,Or=new WeakMap,xo=new WeakMap,Re=new WeakSet,Jd=function(){return K(this,Zi,"f")||K(this,Mr,"f")<K(this,Eo,"f")},ep=function(){return K(this,vt,"f")<K(this,Ji,"f")},np=function(){var e;_e(this,vt,(e=K(this,vt,"f"),e--,e),"f"),K(this,Re,"m",bo).call(this),this.emit("next")},tp=function(){K(this,Re,"m",$u).call(this),K(this,Re,"m",Vu).call(this),_e(this,Qi,void 0,"f")},rp=function(){let e=Date.now();if(K(this,Ft,"f")===void 0){let r=K(this,go,"f")-e;if(r<0)_e(this,Mr,K(this,Xi,"f")?K(this,vt,"f"):0,"f");else return K(this,Qi,"f")===void 0&&_e(this,Qi,setTimeout(()=>{K(this,Re,"m",tp).call(this)},r),"f"),!0}return!1},bo=function(){if(K(this,Et,"f").size===0)return K(this,Ft,"f")&&clearInterval(K(this,Ft,"f")),_e(this,Ft,void 0,"f"),this.emit("empty"),K(this,vt,"f")===0&&this.emit("idle"),!1;if(!K(this,Or,"f")){let e=!K(this,Re,"a",rp);if(K(this,Re,"a",Jd)&&K(this,Re,"a",ep)){let r=K(this,Et,"f").dequeue();return r?(this.emit("active"),r(),e&&K(this,Re,"m",Vu).call(this),!0):!1}}return!1},Vu=function(){K(this,Zi,"f")||K(this,Ft,"f")!==void 0||(_e(this,Ft,setInterval(()=>{K(this,Re,"m",$u).call(this)},K(this,ji,"f")),"f"),_e(this,go,Date.now()+K(this,ji,"f"),"f"))},$u=function(){K(this,Mr,"f")===0&&K(this,vt,"f")===0&&K(this,Ft,"f")&&(clearInterval(K(this,Ft,"f")),_e(this,Ft,void 0,"f")),_e(this,Mr,K(this,Xi,"f")?K(this,vt,"f"):0,"f"),K(this,Re,"m",vo).call(this)},vo=function(){for(;K(this,Re,"m",bo).call(this););},ip=async function(e){return new Promise((r,n)=>{e.addEventListener("abort",()=>{n(new _o("The task was aborted."))},{once:!0})})},wo=async function(e,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(e,i),n())};this.on(e,i)})};var Ur=zu;var Hu=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Gu=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},sp=t=>globalThis.DOMException===void 0?new Gu(t):new DOMException(t),op=t=>{let e=t.reason===void 0?sp("This operation was aborted."):t.reason;return e instanceof Error?e:sp(e)};function Wu(t,e){let{milliseconds:r,fallback:n,message:i,customTimers:s={setTimeout,clearTimeout}}=e,o,c=new Promise((u,l)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(e.signal){let{signal:h}=e;h.aborted&&l(op(h)),h.addEventListener("abort",()=>{l(op(h))})}if(r===Number.POSITIVE_INFINITY){t.then(u,l);return}let f=new Hu;o=s.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(h){l(h)}return}typeof t.cancel=="function"&&t.cancel(),i===!1?u():i instanceof Error?l(i):(f.message=i??`Promise timed out after ${r} milliseconds`,l(f))},r),(async()=>{try{u(await t)}catch(h){l(h)}})()}).finally(()=>{c.clear()});return c.clear=()=>{s.clearTimeout.call(void 0,o),o=void 0},c}var Fr={},ti=t=>{t.addEventListener("message",e=>{ti.dispatchEvent("message",t,e)}),t.port!=null&&t.port.addEventListener("message",e=>{ti.dispatchEvent("message",t,e)})};ti.addEventListener=(t,e)=>{Fr[t]==null&&(Fr[t]=[]),Fr[t].push(e)};ti.removeEventListener=(t,e)=>{Fr[t]!=null&&(Fr[t]=Fr[t].filter(r=>r===e))};ti.dispatchEvent=function(t,e,r){Fr[t]!=null&&Fr[t].forEach(n=>n(e,r))};var Yu=ti;var Qu="lock:worker:request-read",Xu="lock:worker:release-read",Zu="lock:master:grant-read",ju="lock:worker:request-write",Ju="lock:worker:release-write",el="lock:master:grant-write";var ap=(t=21)=>Math.random().toString().substring(2);var cp=(t,e,r,n,i)=>(s,o)=>{if(o.data.type!==r)return;let a={type:o.data.type,name:o.data.name,identifier:o.data.identifier};t.dispatchEvent(new MessageEvent(e,{data:{name:a.name,handler:async()=>{s.postMessage({type:i,name:a.name,identifier:a.identifier}),await new Promise(c=>{let u=l=>{if(l==null||l.data==null)return;let f={type:l.data.type,name:l.data.name,identifier:l.data.identifier};f.type===n&&f.identifier===a.identifier&&(s.removeEventListener("message",u),c())};s.addEventListener("message",u)})}}}))},up=(t,e,r,n)=>async()=>{let i=ap();return globalThis.postMessage({type:e,identifier:i,name:t}),new Promise(s=>{let o=a=>{if(a==null||a.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===r&&c.identifier===i&&(globalThis.removeEventListener("message",o),s(()=>{globalThis.postMessage({type:n,identifier:i,name:t})}))};globalThis.addEventListener("message",o)})},Yw={singleProcess:!1},lp=t=>{if(t=Object.assign({},Yw,t),!!globalThis.document||t.singleProcess){let r=new EventTarget;return Yu.addEventListener("message",cp(r,"requestReadLock",Qu,Xu,Zu)),Yu.addEventListener("message",cp(r,"requestWriteLock",ju,Ju,el)),r}return{isWorker:!0,readLock:r=>up(r,Qu,Zu,Xu),writeLock:r=>up(r,ju,el,Ju)}};var yn={},Kr;async function tl(t,e){let r,n=new Promise(i=>{r=i});return t.add(async()=>Wu((async()=>{await new Promise(i=>{r(()=>{i()})})})(),{milliseconds:e.timeout})),n}var Qw=(t,e)=>{if(Kr.isWorker===!0)return{readLock:Kr.readLock(t,e),writeLock:Kr.writeLock(t,e)};let r=new Ur({concurrency:1}),n;return{async readLock(){if(n!=null)return tl(n,e);n=new Ur({concurrency:e.concurrency,autoStart:!1});let i=n,s=tl(n,e);return r.add(async()=>{i.start(),await i.onIdle().then(()=>{n===i&&(n=null)})}),s},async writeLock(){return n=null,tl(r,e)}}},Xw={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function rl(t){let e=Object.assign({},Xw,t);return Kr==null&&(Kr=lp(e),Kr.isWorker!==!0&&(Kr.addEventListener("requestReadLock",r=>{yn[r.data.name]!=null&&yn[r.data.name].readLock().then(async n=>r.data.handler().finally(()=>{n()}))}),Kr.addEventListener("requestWriteLock",async r=>{yn[r.data.name]!=null&&yn[r.data.name].writeLock().then(async n=>r.data.handler().finally(()=>{n()}))}))),yn[e.name]==null&&(yn[e.name]=Qw(e.name,e)),yn[e.name]}var Ze={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS"};var ri;(function(t){let e;(function(i){let s;i.codec=()=>(s==null&&(s=Xe((o,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),o.key!=null&&o.key!==""&&(a.uint32(10),a.string(o.key)),o.value!=null&&o.value.byteLength>0&&(a.uint32(18),a.bytes(o.value)),c.lengthDelimited!==!1&&a.ldelim()},(o,a)=>{let c={key:"",value:new Uint8Array(0)},u=a==null?o.len:o.pos+a;for(;o.pos<u;){let l=o.uint32();switch(l>>>3){case 1:c.key=o.string();break;case 2:c.value=o.bytes();break;default:o.skipType(l&7);break}}return c})),s),i.encode=o=>Qe(o,i.codec()),i.decode=o=>Ye(o,i.codec())})(e=t.Peer$metadataEntry||(t.Peer$metadataEntry={}));let r;(function(i){let s;i.codec=()=>(s==null&&(s=Xe((o,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),o.key!=null&&o.key!==""&&(a.uint32(10),a.string(o.key)),o.value!=null&&(a.uint32(18),Ao.codec().encode(o.value,a)),c.lengthDelimited!==!1&&a.ldelim()},(o,a)=>{let c={key:""},u=a==null?o.len:o.pos+a;for(;o.pos<u;){let l=o.uint32();switch(l>>>3){case 1:c.key=o.string();break;case 2:c.value=Ao.codec().decode(o,o.uint32());break;default:o.skipType(l&7);break}}return c})),s),i.encode=o=>Qe(o,i.codec()),i.decode=o=>Ye(o,i.codec())})(r=t.Peer$tagsEntry||(t.Peer$tagsEntry={}));let n;t.codec=()=>(n==null&&(n=Xe((i,s,o={})=>{if(o.lengthDelimited!==!1&&s.fork(),i.addresses!=null)for(let a of i.addresses)s.uint32(10),So.codec().encode(a,s);if(i.protocols!=null)for(let a of i.protocols)s.uint32(18),s.string(a);if(i.publicKey!=null&&(s.uint32(34),s.bytes(i.publicKey)),i.peerRecordEnvelope!=null&&(s.uint32(42),s.bytes(i.peerRecordEnvelope)),i.metadata!=null&&i.metadata.size!==0)for(let[a,c]of i.metadata.entries())s.uint32(50),t.Peer$metadataEntry.codec().encode({key:a,value:c},s);if(i.tags!=null&&i.tags.size!==0)for(let[a,c]of i.tags.entries())s.uint32(58),t.Peer$tagsEntry.codec().encode({key:a,value:c},s);o.lengthDelimited!==!1&&s.ldelim()},(i,s)=>{let o={addresses:[],protocols:[],metadata:new Map,tags:new Map},a=s==null?i.len:i.pos+s;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:o.addresses.push(So.codec().decode(i,i.uint32()));break;case 2:o.protocols.push(i.string());break;case 4:o.publicKey=i.bytes();break;case 5:o.peerRecordEnvelope=i.bytes();break;case 6:{let u=t.Peer$metadataEntry.codec().decode(i,i.uint32());o.metadata.set(u.key,u.value);break}case 7:{let u=t.Peer$tagsEntry.codec().decode(i,i.uint32());o.tags.set(u.key,u.value);break}default:i.skipType(c&7);break}}return o})),n),t.encode=i=>Qe(i,t.codec()),t.decode=i=>Ye(i,t.codec())})(ri||(ri={}));var So;(function(t){let e;t.codec=()=>(e==null&&(e=Xe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.multiaddr!=null&&r.multiaddr.byteLength>0&&(n.uint32(10),n.bytes(r.multiaddr)),r.isCertified!=null&&(n.uint32(16),n.bool(r.isCertified)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={multiaddr:new Uint8Array(0)},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.multiaddr=r.bytes();break;case 2:i.isCertified=r.bool();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Qe(r,t.codec()),t.decode=r=>Ye(r,t.codec())})(So||(So={}));var Ao;(function(t){let e;t.codec=()=>(e==null&&(e=Xe((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.value!=null&&r.value!==0&&(n.uint32(8),n.uint32(r.value)),r.expiry!=null&&(n.uint32(16),n.uint64(r.expiry)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={value:0},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.value=r.uint32();break;case 2:i.expiry=r.uint64();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>Qe(r,t.codec()),t.decode=r=>Ye(r,t.codec())})(Ao||(Ao={}));function ni(t,e){let r=ri.decode(e);r.publicKey!=null&&t.publicKey==null&&(t=wd({...t,publicKey:t.publicKey}));let n=new Map,i=BigInt(Date.now());for(let[s,o]of r.tags.entries())o.expiry!=null&&o.expiry<i||n.set(s,o);return{...r,id:t,addresses:r.addresses.map(({multiaddr:s,isCertified:o})=>({multiaddr:Me(s),isCertified:o??!1})),metadata:r.metadata,peerRecordEnvelope:r.peerRecordEnvelope??void 0,tags:n}}var yr="/",fp=new TextEncoder().encode(yr),Io=fp[0],xn=class t{_buf;constructor(e,r){if(typeof e=="string")this._buf=j(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(r==null&&(r=!0),r&&this.clean(),this._buf.byteLength===0||this._buf[0]!==Io)throw new Error("Invalid key")}toString(e="utf8"){return ke(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new t(e.join(yr))}static random(){return new t(Math.random().toString().substring(2))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new t(e):typeof e.uint8Array=="function"?new t(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=fp),this._buf[0]!==Io){let e=new Uint8Array(this._buf.byteLength+1);e.fill(Io,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Io;)this._buf=this._buf.subarray(0,-1)}less(e){let r=this.list(),n=e.list();for(let i=0;i<r.length;i++){if(n.length<i+1)return!1;let s=r[i],o=n[i];if(s<o)return!0;if(s>o)return!1}return r.length<n.length}reverse(){return t.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(yr).slice(1)}type(){return Zw(this.baseNamespace())}name(){return jw(this.baseNamespace())}instance(e){return new t(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(yr)||(e+=yr),e+=this.type(),new t(e)}parent(){let e=this.list();return e.length===1?new t(yr):new t(e.slice(0,-1).join(yr))}child(e){return this.toString()===yr?e:e.toString()===yr?this:new t(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return t.withNamespaces([...this.namespaces(),...Jw(e.map(r=>r.namespaces()))])}};function Zw(t){let e=t.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function jw(t){let e=t.split(":");return e[e.length-1]}function Jw(t){return[].concat(...t)}var nl="/peers/";function ii(t){if(!Cs(t)||t.type==null)throw new S("Invalid PeerId",Ze.ERR_INVALID_PARAMETERS);let e=t.toCID().toString();return new xn(`${nl}${e}`)}async function hp(t,e,r){let n=new Map;for(let i of r){if(i==null)continue;if(i.multiaddr instanceof Uint8Array&&(i.multiaddr=Me(i.multiaddr)),!kr(i.multiaddr))throw new S("Multiaddr was invalid",Ze.ERR_INVALID_PARAMETERS);if(!await e(t,i.multiaddr))continue;let s=i.isCertified??!1,o=i.multiaddr.toString(),a=n.get(o);a!=null?i.isCertified=a.isCertified||s:n.set(o,{multiaddr:i.multiaddr,isCertified:s})}return[...n.values()].sort((i,s)=>i.multiaddr.toString().localeCompare(s.multiaddr.toString())).map(({isCertified:i,multiaddr:s})=>({isCertified:i,multiaddr:s.bytes}))}async function Co(t,e,r,n){if(e==null)throw new S("Invalid PeerData",Ze.ERR_INVALID_PARAMETERS);if(e.publicKey!=null&&t.publicKey!=null&&!Ne(e.publicKey,t.publicKey))throw new S("publicKey bytes do not match peer id publicKey bytes",Ze.ERR_INVALID_PARAMETERS);let i=n.existingPeer;if(i!=null&&!t.equals(i.id))throw new S("peer id did not match existing peer id",Ze.ERR_INVALID_PARAMETERS);let s=i?.addresses??[],o=new Set(i?.protocols??[]),a=i?.metadata??new Map,c=i?.tags??new Map,u=i?.peerRecordEnvelope;if(r==="patch"){if((e.multiaddrs!=null||e.addresses!=null)&&(s=[],e.multiaddrs!=null&&s.push(...e.multiaddrs.map(f=>({isCertified:!1,multiaddr:f}))),e.addresses!=null&&s.push(...e.addresses)),e.protocols!=null&&(o=new Set(e.protocols)),e.metadata!=null){let f=e.metadata instanceof Map?[...e.metadata.entries()]:Object.entries(e.metadata);a=Ro(f,{validate:dp})}if(e.tags!=null){let f=e.tags instanceof Map?[...e.tags.entries()]:Object.entries(e.tags);c=Ro(f,{validate:pp,map:mp})}e.peerRecordEnvelope!=null&&(u=e.peerRecordEnvelope)}if(r==="merge"){if(e.multiaddrs!=null&&s.push(...e.multiaddrs.map(f=>({isCertified:!1,multiaddr:f}))),e.addresses!=null&&s.push(...e.addresses),e.protocols!=null&&(o=new Set([...o,...e.protocols])),e.metadata!=null){let f=e.metadata instanceof Map?[...e.metadata.entries()]:Object.entries(e.metadata);for(let[h,p]of f)p==null?a.delete(h):a.set(h,p);a=Ro([...a.entries()],{validate:dp})}if(e.tags!=null){let f=e.tags instanceof Map?[...e.tags.entries()]:Object.entries(e.tags),h=new Map(c);for(let[p,d]of f)d==null?h.delete(p):h.set(p,d);c=Ro([...h.entries()],{validate:pp,map:mp})}e.peerRecordEnvelope!=null&&(u=e.peerRecordEnvelope)}let l={addresses:await hp(t,n.addressFilter??(async()=>!0),s),protocols:[...o.values()].sort((f,h)=>f.localeCompare(h)),metadata:a,tags:c,publicKey:i?.id.publicKey??e.publicKey??t.publicKey,peerRecordEnvelope:u};return t.type!=="RSA"&&delete l.publicKey,l}function Ro(t,e){let r=new Map;for(let[n,i]of t)i!=null&&e.validate(n,i);for(let[n,i]of t.sort(([s],[o])=>s.localeCompare(o)))i!=null&&r.set(n,e.map?.(n,i)??i);return r}function dp(t,e){if(typeof t!="string")throw new S("Metadata key must be a string",Ze.ERR_INVALID_PARAMETERS);if(!(e instanceof Uint8Array))throw new S("Metadata value must be a Uint8Array",Ze.ERR_INVALID_PARAMETERS)}function pp(t,e){if(typeof t!="string")throw new S("Tag name must be a string",Ze.ERR_INVALID_PARAMETERS);if(e.value!=null){if(parseInt(`${e.value}`,10)!==e.value)throw new S("Tag value must be an integer",Ze.ERR_INVALID_PARAMETERS);if(e.value<0||e.value>100)throw new S("Tag value must be between 0-100",Ze.ERR_INVALID_PARAMETERS)}if(e.ttl!=null){if(parseInt(`${e.ttl}`,10)!==e.ttl)throw new S("Tag ttl must be an integer",Ze.ERR_INVALID_PARAMETERS);if(e.ttl<0)throw new S("Tag ttl must be between greater than 0",Ze.ERR_INVALID_PARAMETERS)}}function mp(t,e){let r;return e.expiry!=null&&(r=e.expiry),e.ttl!=null&&(r=BigInt(Date.now()+Number(e.ttl))),{value:e.value??0,expiry:r}}function To(t,e,r){let n=t.toString().split("/")[2],i=gt.decode(n),s=Qn(i),o=r.get(s);if(o!=null)return o;let a=ni(s,e);return r.set(s,a),a}function eE(t,e){return t==null?{}:{prefix:nl,filters:(t.filters??[]).map(r=>({key:n,value:i})=>r(To(n,i,e))),orders:(t.orders??[]).map(r=>(n,i)=>r(To(n.key,n.value,e),To(i.key,i.value,e)))}}var Bo=class{peerId;datastore;lock;addressFilter;constructor(e,r={}){this.peerId=e.peerId,this.datastore=e.datastore,this.addressFilter=r.addressFilter,this.lock=rl({name:"peer-store",singleProcess:!0})}async has(e){return this.datastore.has(ii(e))}async delete(e){if(this.peerId.equals(e))throw new S("Cannot delete self peer",Ze.ERR_INVALID_PARAMETERS);await this.datastore.delete(ii(e))}async load(e){let r=await this.datastore.get(ii(e));return ni(e,r)}async save(e,r){let{existingBuf:n,existingPeer:i}=await this.#e(e),s=await Co(e,r,"patch",{addressFilter:this.addressFilter});return this.#t(e,s,n,i)}async patch(e,r){let{existingBuf:n,existingPeer:i}=await this.#e(e),s=await Co(e,r,"patch",{addressFilter:this.addressFilter,existingPeer:i});return this.#t(e,s,n,i)}async merge(e,r){let{existingBuf:n,existingPeer:i}=await this.#e(e),s=await Co(e,r,"merge",{addressFilter:this.addressFilter,existingPeer:i});return this.#t(e,s,n,i)}async*all(e){let r=new ht;for await(let{key:n,value:i}of this.datastore.query(eE(e??{},r))){let s=To(n,i,r);s.id.equals(this.peerId)||(yield s)}}async#e(e){try{let r=await this.datastore.get(ii(e)),n=ni(e,r);return{existingBuf:r,existingPeer:n}}catch(r){if(r.code!=="ERR_NOT_FOUND")throw r}return{}}async#t(e,r,n,i){let s=ri.encode(r);return n!=null&&Ne(s,n)?{peer:ni(e,s),previous:i,updated:!1}:(await this.datastore.put(ii(e),s),{peer:ni(e,s),previous:i,updated:!0})}};var Lo=class{store;events;peerId;log;constructor(e,r={}){this.log=e.logger.forComponent("libp2p:peer-store"),this.events=e.events,this.peerId=e.peerId,this.store=new Bo(e,r)}async forEach(e,r){this.log.trace("forEach await read lock");let n=await this.store.lock.readLock();this.log.trace("forEach got read lock");try{for await(let i of this.store.all(r))e(i)}finally{this.log.trace("forEach release read lock"),n()}}async all(e){this.log.trace("all await read lock");let r=await this.store.lock.readLock();this.log.trace("all got read lock");try{return await Gi(this.store.all(e))}finally{this.log.trace("all release read lock"),r()}}async delete(e){this.log.trace("delete await write lock");let r=await this.store.lock.writeLock();this.log.trace("delete got write lock");try{await this.store.delete(e)}finally{this.log.trace("delete release write lock"),r()}}async has(e){this.log.trace("has await read lock");let r=await this.store.lock.readLock();this.log.trace("has got read lock");try{return await this.store.has(e)}finally{this.log.trace("has release read lock"),r()}}async get(e){this.log.trace("get await read lock");let r=await this.store.lock.readLock();this.log.trace("get got read lock");try{return await this.store.load(e)}finally{this.log.trace("get release read lock"),r()}}async save(e,r){this.log.trace("save await write lock");let n=await this.store.lock.writeLock();this.log.trace("save got write lock");try{let i=await this.store.save(e,r);return this.#e(e,i),i.peer}finally{this.log.trace("save release write lock"),n()}}async patch(e,r){this.log.trace("patch await write lock");let n=await this.store.lock.writeLock();this.log.trace("patch got write lock");try{let i=await this.store.patch(e,r);return this.#e(e,i),i.peer}finally{this.log.trace("patch release write lock"),n()}}async merge(e,r){this.log.trace("merge await write lock");let n=await this.store.lock.writeLock();this.log.trace("merge got write lock");try{let i=await this.store.merge(e,r);return this.#e(e,i),i.peer}finally{this.log.trace("merge release write lock"),n()}}async consumePeerRecord(e,r){let n=await Xn.openAndCertify(e,mn.DOMAIN);if(r?.equals(n.peerId)===!1)return this.log("envelope peer id was not the expected peer id - expected: %p received: %p",r,n.peerId),!1;let i=mn.createFromProtobuf(n.payload),s;try{s=await this.get(n.peerId)}catch(o){if(o.code!=="ERR_NOT_FOUND")throw o}if(s?.peerRecordEnvelope!=null){let o=await Xn.createFromProtobuf(s.peerRecordEnvelope),a=mn.createFromProtobuf(o.payload);if(a.seqNumber>=i.seqNumber)return this.log("sequence number was lower or equal to existing sequence number - stored: %d received: %d",a.seqNumber,i.seqNumber),!1}return await this.patch(i.peerId,{peerRecordEnvelope:e,addresses:i.multiaddrs.map(o=>({isCertified:!0,multiaddr:o}))}),!0}#e(e,r){r.updated&&(this.peerId.equals(e)?this.events.safeDispatchEvent("self:peer:update",{detail:r}):this.events.safeDispatchEvent("peer:update",{detail:r}))}};function tE(t){return t[Symbol.asyncIterator]!=null}function rE(t){if(tE(t))return(async()=>{for await(let e of t);})();for(let e of t);}var il=rE;function nE(t){let[e,r]=t[Symbol.asyncIterator]!=null?[t[Symbol.asyncIterator](),Symbol.asyncIterator]:[t[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:i=>{n.push(i)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[r](){return this}}}var Po=nE;function iE(t){return t[Symbol.asyncIterator]!=null}function sE(t,e){if(iE(t))return async function*(){for await(let a of t)await e(a)&&(yield a)}();let r=Po(t),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let s=e(n);if(typeof s.then=="function")return async function*(){await s&&(yield n);for await(let a of r)await e(a)&&(yield a)}();let o=e;return function*(){s===!0&&(yield n);for(let a of r)o(a)&&(yield a)}()}var Kt=sE;function oE(t){return t[Symbol.asyncIterator]!=null}function aE(t,e){return oE(t)?async function*(){yield*(await Gi(t)).sort(e)}():function*(){yield*Gi(t).sort(e)}()}var sl=aE;function cE(t){return t[Symbol.asyncIterator]!=null}function uE(t,e){return cE(t)?async function*(){let r=0;if(!(e<1)){for await(let n of t)if(yield n,r++,r===e)return}}():function*(){let r=0;if(!(e<1)){for(let n of t)if(yield n,r++,r===e)return}}()}var ol=uE;var Do=class{put(e,r,n){return Promise.reject(new Error(".put is not implemented"))}get(e,r){return Promise.reject(new Error(".get is not implemented"))}has(e,r){return Promise.reject(new Error(".has is not implemented"))}delete(e,r){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(e,r={}){for await(let{key:n,value:i}of e)await this.put(n,i,r),yield n}async*getMany(e,r={}){for await(let n of e)yield{key:n,value:await this.get(n,r)}}async*deleteMany(e,r={}){for await(let n of e)await this.delete(n,r),yield n}batch(){let e=[],r=[];return{put(n,i){e.push({key:n,value:i})},delete(n){r.push(n)},commit:async n=>{await il(this.putMany(e,n)),e=[],await il(this.deleteMany(r,n)),r=[]}}}async*_all(e,r){throw new Error("._all is not implemented")}async*_allKeys(e,r){throw new Error("._allKeys is not implemented")}query(e,r){let n=this._all(e,r);if(e.prefix!=null){let i=e.prefix;n=Kt(n,s=>s.key.toString().startsWith(i))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((i,s)=>Kt(i,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,s)=>sl(i,s),n)),e.offset!=null){let i=0,s=e.offset;n=Kt(n,()=>i++>=s)}return e.limit!=null&&(n=ol(n,e.limit)),n}queryKeys(e,r){let n=this._allKeys(e,r);if(e.prefix!=null){let i=e.prefix;n=Kt(n,s=>s.toString().startsWith(i))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((i,s)=>Kt(i,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,s)=>sl(i,s),n)),e.offset!=null){let i=e.offset,s=0;n=Kt(n,()=>s++>=i)}return e.limit!=null&&(n=ol(n,e.limit)),n}};var xp=Ee(al(),1);function bp(t){return t=t??new Error("Not Found"),(0,xp.default)(t,"ERR_NOT_FOUND")}var No=class extends Do{data;constructor(){super(),this.data=new Map}put(e,r){return this.data.set(e.toString(),r),e}get(e){let r=this.data.get(e.toString());if(r==null)throw bp();return r}has(e){return this.data.has(e.toString())}delete(e){this.data.delete(e.toString())}*_all(){for(let[e,r]of this.data.entries())yield{key:new xn(e),value:r}}*_allKeys(){for(let e of this.data.keys())yield new xn(e)}};function wp(t,e){let r;return function(){let n=function(){r=void 0,t()};clearTimeout(r),r=setTimeout(n,e)}}var hE=t=>t;function cl(t,e){let r=t.getPeerId();return r!=null&&ae(r).equals(e)&&(t=t.decapsulate(Me(`/p2p/${e.toString()}`))),t}var ko=class{log;components;listen;announce;observed;announceFilter;constructor(e,r={}){let{listen:n=[],announce:i=[]}=r;this.components=e,this.log=e.logger.forComponent("libp2p:address-manager"),this.listen=n.map(s=>s.toString()),this.announce=new Set(i.map(s=>s.toString())),this.observed=new Map,this.announceFilter=r.announceFilter??hE,this._updatePeerStoreAddresses=wp(this._updatePeerStoreAddresses.bind(this),1e3),e.events.addEventListener("transport:listening",()=>{this._updatePeerStoreAddresses()}),e.events.addEventListener("transport:close",()=>{this._updatePeerStoreAddresses()})}_updatePeerStoreAddresses(){let e=this.getAnnounceAddrs().concat(this.components.transportManager.getAddrs()).concat([...this.observed.entries()].filter(([r,n])=>n.confident).map(([r])=>Me(r))).map(r=>r.getPeerId()===this.components.peerId.toString()?r.decapsulate(`/p2p/${this.components.peerId.toString()}`):r);this.components.peerStore.patch(this.components.peerId,{multiaddrs:e}).catch(r=>{this.log.error("error updating addresses",r)})}getListenAddrs(){return Array.from(this.listen).map(e=>Me(e))}getAnnounceAddrs(){return Array.from(this.announce).map(e=>Me(e))}getObservedAddrs(){return Array.from(this.observed).map(([e])=>Me(e))}addObservedAddr(e){e=cl(e,this.components.peerId);let r=e.toString();this.observed.has(r)||this.observed.set(r,{confident:!1})}confirmObservedAddr(e){e=cl(e,this.components.peerId);let r=e.toString(),i=(this.observed.get(r)??{confident:!1}).confident;this.observed.set(r,{confident:!0}),i||this._updatePeerStoreAddresses()}removeObservedAddr(e){e=cl(e,this.components.peerId);let r=e.toString();this.observed.delete(r)}getAddresses(){let e=this.getAnnounceAddrs().map(n=>n.toString());e.length===0&&(e=this.components.transportManager.getAddrs().map(n=>n.toString())),e=e.concat(Array.from(this.observed).filter(([n,i])=>i.confident).map(([n])=>n));let r=new Set(e);return this.announceFilter(Array.from(r).map(n=>Me(n))).map(n=>n.protos().pop()?.path===!0||n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};var ul=class{components={};_started=!1;constructor(e={}){this.components={};for(let[r,n]of Object.entries(e))this.components[r]=n;this.components.logger==null&&(this.components.logger=ro())}isStarted(){return this._started}async _invokeStartableMethod(e){await Promise.all(Object.values(this.components).filter(r=>P0(r)).map(async r=>{await r[e]?.()}))}async beforeStart(){await this._invokeStartableMethod("beforeStart")}async start(){await this._invokeStartableMethod("start"),this._started=!0}async afterStart(){await this._invokeStartableMethod("afterStart")}async beforeStop(){await this._invokeStartableMethod("beforeStop")}async stop(){await this._invokeStartableMethod("stop"),this._started=!1}async afterStop(){await this._invokeStartableMethod("afterStop")}},dE=["metrics","connectionProtector"],pE=["components","isStarted","beforeStart","start","afterStart","beforeStop","stop","afterStop","then","_invokeStartableMethod"];function Ep(t={}){let e=new ul(t);return new Proxy(e,{get(n,i,s){if(typeof i=="string"&&!pE.includes(i)){let o=e.components[i];if(o==null&&!dE.includes(i))throw new S(`${i} not set`,"ERR_SERVICE_MISSING");return o}return Reflect.get(n,i,s)},set(n,i,s){return typeof i=="string"?e.components[i]=s:Reflect.set(n,i,s),!0}})}var Cp=Ee(vp(),1);var _p="[a-fA-F\\d:]",qr=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${_p})|(?<=${_p})(?=\\s|$))`:"",qt="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",Pe="[a-fA-F\\d]{1,4}",Oo=`
|
|
37
|
+
SELECT points, expire FROM ${this._getTableIdentifier()} WHERE key = $1 AND (expire > $2 OR expire IS NULL);`,values:[e,Date.now()]}).then(i=>{i.rowCount===0&&(i=null),r(i)}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(e){return this.tableCreated?this._query({name:"rlflx-delete",text:`DELETE FROM ${this._getTableIdentifier()} WHERE key = $1`,values:[e]}).then(r=>r.rowCount>0):Promise.reject(Error("Table is not created yet"))}};um.exports=ml});var fm=q(()=>{});var dm=q((w6,hm)=>{hm.exports=class{constructor(e,r,n=null){this.value=e,this.expiresAt=r,this.timeoutId=n}get value(){return this._value}set value(e){this._value=parseInt(e)}get expiresAt(){return this._expiresAt}set expiresAt(e){!(e instanceof Date)&&Number.isInteger(e)&&(e=new Date(e)),this._expiresAt=e}get timeoutId(){return this._timeoutId}set timeoutId(e){this._timeoutId=e}}});var mm=q((v6,pm)=>{var WE=dm(),gl=ft();pm.exports=class{constructor(){this._storage={}}incrby(e,r,n){if(this._storage[e]){let i=this._storage[e].expiresAt?this._storage[e].expiresAt.getTime()-new Date().getTime():-1;return!this._storage[e].expiresAt||i>0?(this._storage[e].value=this._storage[e].value+r,new gl(0,i,this._storage[e].value,!1)):this.set(e,r,n)}return this.set(e,r,n)}set(e,r,n){let i=n*1e3;return this._storage[e]&&this._storage[e].timeoutId&&clearTimeout(this._storage[e].timeoutId),this._storage[e]=new WE(r,i>0?new Date(Date.now()+i):null),i>0&&(this._storage[e].timeoutId=setTimeout(()=>{delete this._storage[e]},i),this._storage[e].timeoutId.unref&&this._storage[e].timeoutId.unref()),new gl(0,i===0?-1:i,this._storage[e].value,!0)}get(e){if(this._storage[e]){let r=this._storage[e].expiresAt?this._storage[e].expiresAt.getTime()-new Date().getTime():-1;return new gl(0,r,this._storage[e].value,!1)}return null}delete(e){return this._storage[e]?(this._storage[e].timeoutId&&clearTimeout(this._storage[e].timeoutId),delete this._storage[e],!0):!1}}});var xl=q((_6,ym)=>{var YE=Qi(),QE=mm(),gm=ft(),yl=class extends YE{constructor(e={}){super(e),this._memoryStorage=new QE}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(e),a=this._getKeySecDuration(n),c=this._memoryStorage.incrby(o,r,a);if(c.remainingPoints=Math.max(this.points-c.consumedPoints,0),c.consumedPoints>this.points)this.blockDuration>0&&c.consumedPoints<=this.points+r&&(c=this._memoryStorage.set(o,c.consumedPoints,this.blockDuration)),s(c);else if(this.execEvenly&&c.msBeforeNext>0&&!c.isFirstInDuration){let u=Math.ceil(c.msBeforeNext/(c.remainingPoints+2));u<this.execEvenlyMinDelayMs&&(u=c.consumedPoints*this.execEvenlyMinDelayMs),setTimeout(i,u,c)}else i(c)})}penalty(e,r=1,n={}){let i=this.getKey(e);return new Promise(s=>{let o=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,r,o);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}reward(e,r=1,n={}){let i=this.getKey(e);return new Promise(s=>{let o=this._getKeySecDuration(n),a=this._memoryStorage.incrby(i,-r,o);a.remainingPoints=Math.max(this.points-a.consumedPoints,0),s(a)})}block(e,r){let n=r*1e3,i=this.points+1;return this._memoryStorage.set(this.getKey(e),i,r),Promise.resolve(new gm(0,n===0?-1:n,i))}set(e,r,n){let i=(n>=0?n:this.duration)*1e3;return this._memoryStorage.set(this.getKey(e),r,n),Promise.resolve(new gm(0,i===0?-1:i,r))}get(e){let r=this._memoryStorage.get(this.getKey(e));return r!==null&&(r.remainingPoints=Math.max(this.points-r.consumedPoints,0)),Promise.resolve(r)}delete(e){return Promise.resolve(this._memoryStorage.delete(this.getKey(e)))}};ym.exports=yl});var Sm=q((S6,_m)=>{var xm=fm(),XE=yi(),ZE=Qi(),wm=xl(),jE=ft(),Ct="rate_limiter_flexible",ci=null,bm=function(t,e,r,n){let i;n===null||n===!0||n===!1?i=n:i={remainingPoints:n.remainingPoints,msBeforeNext:n.msBeforeNext,consumedPoints:n.consumedPoints,isFirstInDuration:n.isFirstInDuration},t.send({channel:Ct,keyPrefix:e.keyPrefix,promiseId:e.promiseId,type:r,data:i})},Em=function(t){setTimeout(()=>{this._initiated?process.send(t):typeof this._promises[t.promiseId]<"u"&&Em.call(this,t)},30)},oi=function(t,e,r,n,i){let s={channel:Ct,keyPrefix:this.keyPrefix,func:t,promiseId:e,data:{key:r,arg:n,opts:i}};this._initiated?process.send(s):Em.call(this,s)},vm=function(t,e){if(!e||e.channel!==Ct||typeof this._rateLimiters[e.keyPrefix]>"u")return!1;let r;switch(e.func){case"consume":r=this._rateLimiters[e.keyPrefix].consume(e.data.key,e.data.arg,e.data.opts);break;case"penalty":r=this._rateLimiters[e.keyPrefix].penalty(e.data.key,e.data.arg,e.data.opts);break;case"reward":r=this._rateLimiters[e.keyPrefix].reward(e.data.key,e.data.arg,e.data.opts);break;case"block":r=this._rateLimiters[e.keyPrefix].block(e.data.key,e.data.arg,e.data.opts);break;case"get":r=this._rateLimiters[e.keyPrefix].get(e.data.key,e.data.opts);break;case"delete":r=this._rateLimiters[e.keyPrefix].delete(e.data.key,e.data.opts);break;default:return!1}r&&r.then(n=>{bm(t,e,"resolve",n)}).catch(n=>{bm(t,e,"reject",n)})},JE=function(t){if(!t||t.channel!==Ct||t.keyPrefix!==this.keyPrefix)return!1;if(this._promises[t.promiseId]){clearTimeout(this._promises[t.promiseId].timeoutId);let e;switch(t.data===null||t.data===!0||t.data===!1?e=t.data:e=new jE(t.data.remainingPoints,t.data.msBeforeNext,t.data.consumedPoints,t.data.isFirstInDuration),t.type){case"resolve":this._promises[t.promiseId].resolve(e);break;case"reject":this._promises[t.promiseId].reject(e);break;default:throw new Error(`RateLimiterCluster: no such message type '${t.type}'`)}delete this._promises[t.promiseId]}},ev=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},ai=function(t,e){let r=process.hrtime(),n=r[0].toString()+r[1].toString();return typeof this._promises[n]<"u"&&(n+=XE.randomBytes(12).toString("base64")),this._promises[n]={resolve:t,reject:e,timeoutId:setTimeout(()=>{delete this._promises[n],e(new Error("RateLimiterCluster timeout: no answer from master in time"))},this.timeoutMs)},n},bl=class{constructor(){if(ci)return ci;this._rateLimiters={},xm.setMaxListeners(0),xm.on("message",(e,r)=>{r&&r.channel===Ct&&r.type==="init"?(typeof this._rateLimiters[r.opts.keyPrefix]>"u"&&(this._rateLimiters[r.opts.keyPrefix]=new wm(r.opts)),e.send({channel:Ct,type:"init",keyPrefix:r.opts.keyPrefix})):vm.call(this,e,r)}),ci=this}},wl=class{constructor(e){if(ci)return ci;this._rateLimiters={},e.launchBus((r,n)=>{n.on("process:msg",i=>{let s=i.raw;if(s&&s.channel===Ct&&s.type==="init")typeof this._rateLimiters[s.opts.keyPrefix]>"u"&&(this._rateLimiters[s.opts.keyPrefix]=new wm(s.opts)),e.sendDataToProcessId(i.process.pm_id,{data:{},topic:Ct,channel:Ct,type:"init",keyPrefix:s.opts.keyPrefix},(o,a)=>{o&&console.log(o,a)});else{let o={send:a=>{let c=a;c.topic=Ct,typeof c.data>"u"&&(c.data={}),e.sendDataToProcessId(i.process.pm_id,c,(u,l)=>{u&&console.log(u,l)})}};vm.call(this,o,s)}})}),ci=this}},El=class extends ZE{get timeoutMs(){return this._timeoutMs}set timeoutMs(e){this._timeoutMs=typeof e>"u"?5e3:Math.abs(parseInt(e))}constructor(e={}){super(e),process.setMaxListeners(0),this.timeoutMs=e.timeoutMs,this._initiated=!1,process.on("message",r=>{r&&r.channel===Ct&&r.type==="init"&&r.keyPrefix===this.keyPrefix?this._initiated=!0:JE.call(this,r)}),process.send({channel:Ct,type:"init",opts:ev.call(this)}),this._promises={}}consume(e,r=1,n={}){return new Promise((i,s)=>{let o=ai.call(this,i,s);oi.call(this,"consume",o,e,r,n)})}penalty(e,r=1,n={}){return new Promise((i,s)=>{let o=ai.call(this,i,s);oi.call(this,"penalty",o,e,r,n)})}reward(e,r=1,n={}){return new Promise((i,s)=>{let o=ai.call(this,i,s);oi.call(this,"reward",o,e,r,n)})}block(e,r,n={}){return new Promise((i,s)=>{let o=ai.call(this,i,s);oi.call(this,"block",o,e,r,n)})}get(e,r={}){return new Promise((n,i)=>{let s=ai.call(this,n,i);oi.call(this,"get",s,e,r)})}delete(e,r={}){return new Promise((n,i)=>{let s=ai.call(this,n,i);oi.call(this,"delete",s,e,r)})}};_m.exports={RateLimiterClusterMaster:bl,RateLimiterClusterMasterPM2:wl,RateLimiterCluster:El}});var Im=q((A6,Am)=>{var tv=yn(),rv=ft(),vl=class extends tv{constructor(e){super(e),this.client=e.storeClient}_getRateLimiterRes(e,r,n){let i=new rv;return i.consumedPoints=parseInt(n.consumedPoints),i.isFirstInDuration=n.consumedPoints===r,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=n.msBeforeNext,i}_upsert(e,r,n,i=!1,s={}){return new Promise((o,a)=>{let c=Date.now(),u=Math.floor(n/1e3);i?this.client.set(e,r,u,l=>{l?a(l):this.client.set(`${e}_expire`,u>0?c+u*1e3:-1,u,()=>{let f={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(f)})}):this.client.incr(e,r,(l,f)=>{l||f===!1?this.client.add(e,r,u,(d,p)=>{if(d||!p)if(typeof s.attemptNumber>"u"||s.attemptNumber<3){let h=Object.assign({},s);h.attemptNumber=h.attemptNumber?h.attemptNumber+1:1,this._upsert(e,r,n,i,h).then(m=>o(m)).catch(m=>a(m))}else a(new Error("Can not add key"));else this.client.add(`${e}_expire`,u>0?c+u*1e3:-1,u,()=>{let h={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(h)})}):this.client.get(`${e}_expire`,(d,p)=>{if(d)a(d);else{let h=p===!1?0:p,m={consumedPoints:f,msBeforeNext:h>=0?Math.max(h-c,0):-1};o(m)}})})})}_get(e){return new Promise((r,n)=>{let i=Date.now();this.client.get(e,(s,o)=>{o?this.client.get(`${e}_expire`,(a,c)=>{if(a)n(a);else{let u=c===!1?0:c,l={consumedPoints:o,msBeforeNext:u>=0?Math.max(u-i,0):-1};r(l)}}):r(null)})})}_delete(e){return new Promise((r,n)=>{this.client.del(e,(i,s)=>{i?n(i):s===!1?r(s):this.client.del(`${e}_expire`,o=>{o?n(o):r(s)})})})}};Am.exports=vl});var Rm=q((C6,Tm)=>{var Cm=ft();Tm.exports=class{constructor(e={}){this.limiter=e.limiter,this.blackList=e.blackList,this.whiteList=e.whiteList,this.isBlackListed=e.isBlackListed,this.isWhiteListed=e.isWhiteListed,this.runActionAnyway=e.runActionAnyway}get limiter(){return this._limiter}set limiter(e){if(typeof e>"u")throw new Error("limiter is not set");this._limiter=e}get runActionAnyway(){return this._runActionAnyway}set runActionAnyway(e){this._runActionAnyway=typeof e>"u"?!1:e}get blackList(){return this._blackList}set blackList(e){this._blackList=Array.isArray(e)?e:[]}get isBlackListed(){return this._isBlackListed}set isBlackListed(e){if(typeof e>"u"&&(e=()=>!1),typeof e!="function")throw new Error("isBlackListed must be function");this._isBlackListed=e}get whiteList(){return this._whiteList}set whiteList(e){this._whiteList=Array.isArray(e)?e:[]}get isWhiteListed(){return this._isWhiteListed}set isWhiteListed(e){if(typeof e>"u"&&(e=()=>!1),typeof e!="function")throw new Error("isWhiteListed must be function");this._isWhiteListed=e}isBlackListedSomewhere(e){return this.blackList.indexOf(e)>=0||this.isBlackListed(e)}isWhiteListedSomewhere(e){return this.whiteList.indexOf(e)>=0||this.isWhiteListed(e)}getBlackRes(){return new Cm(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new Cm(Number.MAX_SAFE_INTEGER,0,0,!1)}rejectBlack(){return Promise.reject(this.getBlackRes())}resolveBlack(){return Promise.resolve(this.getBlackRes())}resolveWhite(){return Promise.resolve(this.getWhiteRes())}consume(e,r=1){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.rejectBlack()),typeof n>"u"?this.limiter.consume(e,r):(this.runActionAnyway&&this.limiter.consume(e,r).catch(()=>{}),n)}block(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.block(e,r):(this.runActionAnyway&&this.limiter.block(e,r).catch(()=>{}),n)}penalty(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.penalty(e,r):(this.runActionAnyway&&this.limiter.penalty(e,r).catch(()=>{}),n)}reward(e,r){let n;return this.isWhiteListedSomewhere(e)?n=this.resolveWhite():this.isBlackListedSomewhere(e)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.reward(e,r):(this.runActionAnyway&&this.limiter.reward(e,r).catch(()=>{}),n)}get(e){let r;return this.isWhiteListedSomewhere(e)?r=this.resolveWhite():this.isBlackListedSomewhere(e)&&(r=this.resolveBlack()),typeof r>"u"||this.runActionAnyway?this.limiter.get(e):r}delete(e){return this.limiter.delete(e)}}});var Lm=q((R6,Bm)=>{var nv=Qi();Bm.exports=class{constructor(...e){if(e.length<1)throw new Error("RateLimiterUnion: at least one limiter have to be passed");e.forEach(r=>{if(!(r instanceof nv))throw new Error("RateLimiterUnion: all limiters have to be instance of RateLimiterAbstract")}),this._limiters=e}consume(e,r=1){return new Promise((n,i)=>{let s=[];this._limiters.forEach(o=>{s.push(o.consume(e,r).catch(a=>({rejected:!0,rej:a})))}),Promise.all(s).then(o=>{let a={},c=!1;o.forEach(u=>{u.rejected===!0&&(c=!0)});for(let u=0;u<o.length;u++)c&&o[u].rejected===!0?a[this._limiters[u].keyPrefix]=o[u].rej:c||(a[this._limiters[u].keyPrefix]=o[u]);c?i(a):n(a)})})}}});var Dm=q((L6,Pm)=>{Pm.exports=class extends Error{constructor(e,r){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=e,r&&(this.extra=r)}}});var Mm=q((D6,Om)=>{var Nm=Dm(),km=4294967295,_l="limiter";Om.exports=class{constructor(e,r={maxQueueSize:km}){this._queueLimiters={KEY_DEFAULT:new Uo(e,r)},this._limiterFlexible=e,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(e=_l){return this._queueLimiters[e]?this._queueLimiters[e].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(e,r=_l){return this._queueLimiters[r]||(this._queueLimiters[r]=new Uo(this._limiterFlexible,{key:r,maxQueueSize:this._maxQueueSize})),this._queueLimiters[r].removeTokens(e)}};var Uo=class{constructor(e,r={maxQueueSize:km,key:_l}){this._key=r.key,this._waitTimeout=null,this._queue=[],this._limiterFlexible=e,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(){return this._limiterFlexible.get(this._key).then(e=>e!==null?e.remainingPoints:this._limiterFlexible.points)}removeTokens(e){let r=this;return new Promise((n,i)=>{if(e>r._limiterFlexible.points){i(new Nm(`Requested tokens ${e} exceeds maximum ${r._limiterFlexible.points} tokens per interval`));return}r._queue.length>0?r._queueRequest.call(r,n,i,e):r._limiterFlexible.consume(r._key,e).then(s=>{n(s.remainingPoints)}).catch(s=>{s instanceof Error?i(s):(r._queueRequest.call(r,n,i,e),r._waitTimeout===null&&(r._waitTimeout=setTimeout(r._processFIFO.bind(r),s.msBeforeNext)))})})}_queueRequest(e,r,n){let i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:e,reject:r,tokens:n}):r(new Nm(`Number of requests reached it's maximum ${i._maxQueueSize}`))}_processFIFO(){let e=this;if(e._waitTimeout!==null&&(clearTimeout(e._waitTimeout),e._waitTimeout=null),e._queue.length===0)return;let r=e._queue.shift();e._limiterFlexible.consume(e._key,r.tokens).then(n=>{r.resolve(n.remainingPoints),e._processFIFO.call(e)}).catch(n=>{n instanceof Error?(r.reject(n),e._processFIFO.call(e)):(e._queue.unshift(r),e._waitTimeout===null&&(e._waitTimeout=setTimeout(e._processFIFO.bind(e),n.msBeforeNext)))})}}});var Fm=q((k6,Um)=>{var Sl=ft();Um.exports=class{constructor(e,r){this._rateLimiter=e,this._burstLimiter=r}_combineRes(e,r){return e?new Sl(e.remainingPoints,Math.min(e.msBeforeNext,r?r.msBeforeNext:0),e.consumedPoints,e.isFirstInDuration):null}consume(e,r=1,n={}){return this._rateLimiter.consume(e,r,n).catch(i=>i instanceof Sl?this._burstLimiter.consume(e,r,n).then(s=>Promise.resolve(this._combineRes(i,s))).catch(s=>s instanceof Sl?Promise.reject(this._combineRes(i,s)):Promise.reject(s)):Promise.reject(i))}get(e){return Promise.all([this._rateLimiter.get(e),this._burstLimiter.get(e)]).then(([r,n])=>this._combineRes(r,n))}get points(){return this._rateLimiter.points}}});var qm=q((O6,Km)=>{var iv=ft(),sv=yn(),Fo=class{constructor(e,r,n){this.key=e,this.points=r,this.expire=n}},ov=25,av=25,Al=class extends sv{constructor(e,r=null){super(e),this.client=e.storeClient,this.tableName=e.tableName,this.tableCreated=e.tableCreated,this.tableCreated?this._setTTL().finally(()=>{typeof r=="function"&&r()}):this._createTable(e.dynamoTableOpts).then(n=>{this.tableCreated=!0,this._setTTL().finally(()=>{typeof r=="function"&&r()})}).catch(n=>{if(typeof r=="function")r(n);else throw n})}get tableName(){return this._tableName}set tableName(e){this._tableName=typeof e>"u"?"node-rate-limiter-flexible":e}get tableCreated(){return this._tableCreated}set tableCreated(e){this._tableCreated=typeof e>"u"?!1:!!e}async _createTable(e){let r={TableName:this.tableName,AttributeDefinitions:[{AttributeName:"key",AttributeType:"S"}],KeySchema:[{AttributeName:"key",KeyType:"HASH"}],ProvisionedThroughput:{ReadCapacityUnits:e&&e.readCapacityUnits?e.readCapacityUnits:ov,WriteCapacityUnits:e&&e.writeCapacityUnits?e.writeCapacityUnits:av}};try{return await this.client.createTable(r)}catch(n){if(n.__type&&n.__type.includes("ResourceInUseException"))return null;throw n}}async _get(e){if(!this.tableCreated)throw new Error("Table is not created yet");let r={TableName:this.tableName,Key:{key:{S:e}}},n=await this.client.getItem(r);return n.Item?new Fo(n.Item.key.S,Number(n.Item.points.N),Number(n.Item.expire.N)):null}async _delete(e){if(!this.tableCreated)throw new Error("Table is not created yet");let r={TableName:this.tableName,Key:{key:{S:e}},ConditionExpression:"attribute_exists(#k)",ExpressionAttributeNames:{"#k":"key"}};try{return(await this._client.deleteItem(r)).$metadata.httpStatusCode===200}catch(n){if(n.__type&&n.__type.includes("ConditionalCheckFailedException"))return!1;throw n}}async _upsert(e,r,n,i=!1,s={}){if(!this.tableCreated)throw new Error("Table is not created yet");let o=Date.now(),a=o/1e3,c=n>0?(o+n)/1e3:-1;if(i)return await this._baseUpsert({TableName:this.tableName,Key:{key:{S:e}},UpdateExpression:"SET points = :points, expire = :expire",ExpressionAttributeValues:{":points":{N:r.toString()},":expire":{N:c.toString()}},ReturnValues:"ALL_NEW"});try{return await this._baseUpsert({TableName:this.tableName,Key:{key:{S:e}},UpdateExpression:"SET points = :new_points, expire = :new_expire",ExpressionAttributeValues:{":new_points":{N:r.toString()},":new_expire":{N:c.toString()},":where_expire":{N:a.toString()}},ConditionExpression:"expire <= :where_expire OR attribute_not_exists(points)",ReturnValues:"ALL_NEW"})}catch{return await this._baseUpsert({TableName:this.tableName,Key:{key:{S:e}},UpdateExpression:"SET points = points + :new_points",ExpressionAttributeValues:{":new_points":{N:r.toString()},":where_expire":{N:a.toString()}},ConditionExpression:"expire > :where_expire",ReturnValues:"ALL_NEW"})}}async _baseUpsert(e){if(!this.tableCreated)throw new Error("Table is not created yet");try{let r=await this.client.updateItem(e);return new Fo(r.Attributes.key.S,Number(r.Attributes.points.N),Number(r.Attributes.expire.N))}catch(r){throw r}}async _setTTL(){if(!this.tableCreated)throw new Error("Table is not created yet");try{if(await this._isTTLSet())return;let r={TableName:this.tableName,TimeToLiveSpecification:{AttributeName:"expire",Enabled:!0}};return await this.client.updateTimeToLive(r)}catch(e){throw e}}async _isTTLSet(){if(!this.tableCreated)throw new Error("Table is not created yet");try{let e=await this.client.describeTimeToLive({TableName:this.tableName});return e.$metadata.httpStatusCode==200&&e.TimeToLiveDescription.TimeToLiveStatus==="ENABLED"&&e.TimeToLiveDescription.AttributeName==="expire"}catch(e){throw e}}_getRateLimiterRes(e,r,n){let i=new iv;return i.isFirstInDuration=r===n.points,i.consumedPoints=i.isFirstInDuration?r:n.points,i.remainingPoints=Math.max(this.points-i.consumedPoints,0),i.msBeforeNext=n.expire!=-1?Math.max(n.expire*1e3-Date.now(),0):-1,i}};Km.exports=Al});var $m=q((M6,Vm)=>{var cv=nm(),uv=om(),lv=cm(),fv=lm(),{RateLimiterClusterMaster:hv,RateLimiterClusterMasterPM2:dv,RateLimiterCluster:pv}=Sm(),mv=xl(),gv=Im(),yv=Rm(),xv=Lm(),bv=Mm(),wv=Fm(),Ev=ft(),vv=qm();Vm.exports={RateLimiterRedis:cv,RateLimiterMongo:uv,RateLimiterMySQL:lv,RateLimiterPostgres:fv,RateLimiterMemory:mv,RateLimiterMemcache:gv,RateLimiterClusterMaster:hv,RateLimiterClusterMasterPM2:dv,RateLimiterCluster:pv,RLWrapperBlackAndWhite:yv,RateLimiterUnion:xv,RateLimiterQueue:bv,BurstyRateLimiter:wv,RateLimiterRes:Ev,RateLimiterDynamo:vv}});var Qv={};ke(Qv,{createLibp2p:()=>Yv});var _8=we(gi(),1),S8=we(yh(),1);var xh=Symbol.for("@libp2p/connection");var Ma=Symbol.for("@libp2p/content-routing");var Ua=Symbol.for("@libp2p/peer-discovery");var Fa=Symbol.for("@libp2p/peer-id");function vs(t){return t!=null&&!!t[Fa]}var Ka=Symbol.for("@libp2p/peer-routing");var bh="keep-alive";var wh;(function(t){t.Accept="accept",t.Ignore="ignore",t.Reject="reject"})(wh||(wh={}));var B_=Symbol.for("@libp2p/transport");var Er;(function(t){t[t.FATAL_ALL=0]="FATAL_ALL",t[t.NO_FATAL=1]="NO_FATAL"})(Er||(Er={}));var Cn=class t extends Error{code;type;constructor(e="The operation was aborted"){super(e),this.code=t.code,this.type=t.type}static code="ABORT_ERR";static type="aborted"},S=class extends Error{code;props;constructor(e,r,n){super(e),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var _s="ERR_TIMEOUT",qa="ERR_INVALID_PARAMETERS";var wi=class extends EventTarget{#e=new Map;listenerCount(e){let r=this.#e.get(e);return r==null?0:r.length}addEventListener(e,r,n){super.addEventListener(e,r,n);let i=this.#e.get(e);i==null&&(i=[],this.#e.set(e,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(e,r,n){super.removeEventListener(e.toString(),r??null,n);let i=this.#e.get(e);i!=null&&(i=i.filter(({callback:s})=>s!==r),this.#e.set(e,i))}dispatchEvent(e){let r=super.dispatchEvent(e),n=this.#e.get(e.type);return n==null||(n=n.filter(({once:i})=>!i),this.#e.set(e.type,n)),r}safeDispatchEvent(e,r){return this.dispatchEvent(new $a(e,r))}},Va=class extends Event{detail;constructor(e,r){super(e,r),this.detail=r?.detail}},$a=globalThis.CustomEvent??Va;var ht=(t,...e)=>{try{[...e]}catch{}};function Eh(t){return t!=null&&typeof t.start=="function"&&typeof t.stop=="function"}var H2=we(le(),1);function zr(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}var Ya={};ke(Ya,{base10:()=>e1});function Qx(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var r=new Uint8Array(256),n=0;n<r.length;n++)r[n]=255;for(var i=0;i<t.length;i++){var s=t.charAt(i),o=s.charCodeAt(0);if(r[o]!==255)throw new TypeError(s+" is ambiguous");r[o]=i}var a=t.length,c=t.charAt(0),u=Math.log(a)/Math.log(256),l=Math.log(256)/Math.log(a);function f(h){if(h instanceof Uint8Array||(ArrayBuffer.isView(h)?h=new Uint8Array(h.buffer,h.byteOffset,h.byteLength):Array.isArray(h)&&(h=Uint8Array.from(h))),!(h instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(h.length===0)return"";for(var m=0,g=0,y=0,x=h.length;y!==x&&h[y]===0;)y++,m++;for(var b=(x-y)*l+1>>>0,I=new Uint8Array(b);y!==x;){for(var v=h[y],_=0,P=b-1;(v!==0||_<g)&&P!==-1;P--,_++)v+=256*I[P]>>>0,I[P]=v%a>>>0,v=v/a>>>0;if(v!==0)throw new Error("Non-zero carry");g=_,y++}for(var D=b-g;D!==b&&I[D]===0;)D++;for(var H=c.repeat(m);D<b;++D)H+=t.charAt(I[D]);return H}function d(h){if(typeof h!="string")throw new TypeError("Expected String");if(h.length===0)return new Uint8Array;var m=0;if(h[m]!==" "){for(var g=0,y=0;h[m]===c;)g++,m++;for(var x=(h.length-m)*u+1>>>0,b=new Uint8Array(x);h[m];){var I=r[h.charCodeAt(m)];if(I===255)return;for(var v=0,_=x-1;(I!==0||v<y)&&_!==-1;_--,v++)I+=a*b[_]>>>0,b[_]=I%256>>>0,I=I/256>>>0;if(I!==0)throw new Error("Non-zero carry");y=v,m++}if(h[m]!==" "){for(var P=x-y;P!==x&&b[P]===0;)P++;for(var D=new Uint8Array(g+(x-P)),H=g;P!==x;)D[H++]=b[P++];return D}}}function p(h){var m=d(h);if(m)return m;throw new Error(`Non-${e} character`)}return{encode:f,decodeUnsafe:d,decode:p}}var Xx=Qx,Zx=Xx,vh=Zx;var lS=new Uint8Array(0);var _h=(t,e)=>{if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0},rr=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")};var Sh=t=>new TextEncoder().encode(t),Ah=t=>new TextDecoder().decode(t);var za=class{constructor(e,r,n){this.name=e,this.prefix=r,this.baseEncode=n}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}},Ha=class{constructor(e,r,n){if(this.name=e,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.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 Ch(this,e)}},Ga=class{constructor(e){this.decoders=e}or(e){return Ch(this,e)}decode(e){let r=e[0],n=this.decoders[r];if(n)return n.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},Ch=(t,e)=>new Ga({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}}),Wa=class{constructor(e,r,n,i){this.name=e,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new za(e,r,n),this.decoder=new Ha(e,r,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}},Tn=({name:t,prefix:e,encode:r,decode:n})=>new Wa(t,e,r,n),vr=({prefix:t,name:e,alphabet:r})=>{let{encode:n,decode:i}=vh(r,e);return Tn({prefix:t,name:e,encode:n,decode:s=>rr(i(s))})},jx=(t,e,r,n)=>{let i={};for(let l=0;l<e.length;++l)i[e[l]]=l;let s=t.length;for(;t[s-1]==="=";)--s;let o=new Uint8Array(s*r/8|0),a=0,c=0,u=0;for(let l=0;l<s;++l){let f=i[t[l]];if(f===void 0)throw new SyntaxError(`Non-${n} character`);c=c<<r|f,a+=r,a>=8&&(a-=8,o[u++]=255&c>>a)}if(a>=r||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o},Jx=(t,e,r)=>{let n=e[e.length-1]==="=",i=(1<<r)-1,s="",o=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],o+=8;o>r;)o-=r,s+=e[i&a>>o];if(o&&(s+=e[i&a<<r-o]),n)for(;s.length*r&7;)s+="=";return s},_e=({name:t,prefix:e,bitsPerChar:r,alphabet:n})=>Tn({prefix:e,name:t,encode(i){return Jx(i,n,r)},decode(i){return jx(i,n,r,t)}});var e1=vr({prefix:"9",name:"base10",alphabet:"0123456789"});var Qa={};ke(Qa,{base16:()=>t1,base16upper:()=>r1});var t1=_e({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),r1=_e({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var Xa={};ke(Xa,{base2:()=>n1});var n1=_e({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var Za={};ke(Za,{base256emoji:()=>c1});var Th=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}"),i1=Th.reduce((t,e,r)=>(t[r]=e,t),[]),s1=Th.reduce((t,e,r)=>(t[e.codePointAt(0)]=r,t),[]);function o1(t){return t.reduce((e,r)=>(e+=i1[r],e),"")}function a1(t){let e=[];for(let r of t){let n=s1[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);e.push(n)}return new Uint8Array(e)}var c1=Tn({prefix:"\u{1F680}",name:"base256emoji",encode:o1,decode:a1});var ja={};ke(ja,{base32:()=>dt,base32hex:()=>h1,base32hexpad:()=>p1,base32hexpadupper:()=>m1,base32hexupper:()=>d1,base32pad:()=>l1,base32padupper:()=>f1,base32upper:()=>u1,base32z:()=>g1});var dt=_e({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),u1=_e({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),l1=_e({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),f1=_e({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),h1=_e({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),d1=_e({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),p1=_e({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),m1=_e({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),g1=_e({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var Ja={};ke(Ja,{base36:()=>y1,base36upper:()=>x1});var y1=vr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),x1=vr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var ec={};ke(ec,{base58btc:()=>Ee,base58flickr:()=>b1});var Ee=vr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),b1=vr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var rc={};ke(rc,{base64:()=>Rn,base64pad:()=>w1,base64url:()=>tc,base64urlpad:()=>E1});var Rn=_e({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),w1=_e({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),tc=_e({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),E1=_e({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var nc={};ke(nc,{base8:()=>v1});var v1=_e({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var ic={};ke(ic,{identity:()=>_1});var _1=Tn({prefix:"\0",name:"identity",encode:t=>Ah(t),decode:t=>Sh(t)});var AS=new TextEncoder,IS=new TextDecoder;var oc={};ke(oc,{identity:()=>_r});var I1=Lh,Rh=128,C1=127,T1=~C1,R1=Math.pow(2,31);function Lh(t,e,r){e=e||[],r=r||0;for(var n=r;t>=R1;)e[r++]=t&255|Rh,t/=128;for(;t&T1;)e[r++]=t&255|Rh,t>>>=7;return e[r]=t|0,Lh.bytes=r-n+1,e}var B1=sc,L1=128,Bh=127;function sc(t,n){var r=0,n=n||0,i=0,s=n,o,a=t.length;do{if(s>=a)throw sc.bytes=0,new RangeError("Could not decode varint");o=t[s++],r+=i<28?(o&Bh)<<i:(o&Bh)*Math.pow(2,i),i+=7}while(o>=L1);return sc.bytes=s-n,r}var P1=Math.pow(2,7),D1=Math.pow(2,14),N1=Math.pow(2,21),k1=Math.pow(2,28),O1=Math.pow(2,35),M1=Math.pow(2,42),U1=Math.pow(2,49),F1=Math.pow(2,56),K1=Math.pow(2,63),q1=function(t){return t<P1?1:t<D1?2:t<N1?3:t<k1?4:t<O1?5:t<M1?6:t<U1?7:t<F1?8:t<K1?9:10},V1={encode:I1,decode:B1,encodingLength:q1},$1=V1,Ei=$1;var vi=(t,e=0)=>[Ei.decode(t,e),Ei.decode.bytes],Bn=(t,e,r=0)=>(Ei.encode(t,e,r),e),Ln=t=>Ei.encodingLength(t);var Ht=(t,e)=>{let r=e.byteLength,n=Ln(t),i=n+Ln(r),s=new Uint8Array(i+r);return Bn(t,s,0),Bn(r,s,n),s.set(e,i),new Pn(t,r,e,s)},Hr=t=>{let e=rr(t),[r,n]=vi(e),[i,s]=vi(e.subarray(n)),o=e.subarray(n+s);if(o.byteLength!==i)throw new Error("Incorrect length");return new Pn(r,i,o,e)},Ph=(t,e)=>{if(t===e)return!0;{let r=e;return t.code===r.code&&t.size===r.size&&r.bytes instanceof Uint8Array&&_h(t.bytes,r.bytes)}},Pn=class{constructor(e,r,n,i){this.code=e,this.size=r,this.digest=n,this.bytes=i}};var Dh=0,z1="identity",Nh=rr,H1=t=>Ht(Dh,Nh(t)),_r={code:Dh,name:z1,encode:Nh,digest:H1};var uc={};ke(uc,{sha256:()=>$e,sha512:()=>G1});var cc=({name:t,code:e,encode:r})=>new ac(t,e,r),ac=class{constructor(e,r,n){this.name=e,this.code=r,this.encode=n}digest(e){if(e instanceof Uint8Array){let r=this.encode(e);return r instanceof Uint8Array?Ht(this.code,r):r.then(n=>Ht(this.code,n))}else throw Error("Unknown type, must be binary type")}};var Oh=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),$e=cc({name:"sha2-256",code:18,encode:Oh("SHA-256")}),G1=cc({name:"sha2-512",code:19,encode:Oh("SHA-512")});var Mh=(t,e)=>{let{bytes:r,version:n}=t;switch(n){case 0:return Y1(r,lc(t),e||Ee.encoder);default:return Q1(r,lc(t),e||dt.encoder)}};var Uh=new WeakMap,lc=t=>{let e=Uh.get(t);if(e==null){let r=new Map;return Uh.set(t,r),r}return e},Bt=class t{constructor(e,r,n,i){this.code=r,this.version=e,this.multihash=n,this.bytes=i,this["/"]=i}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:r}=this;if(e!==_i)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==X1)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return t.createV0(r)}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:r}=this.multihash,n=Ht(e,r);return t.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 t.equals(this,e)}static equals(e,r){let n=r;return n&&e.code===n.code&&e.version===n.version&&Ph(e.multihash,n.multihash)}toString(e){return Mh(this,e)}toJSON(){return{"/":Mh(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(e){if(e==null)return null;let r=e;if(r instanceof t)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:s,bytes:o}=r;return new t(n,i,s,o||Fh(n,i,s.bytes))}else if(r[Z1]===!0){let{version:n,multihash:i,code:s}=r,o=Hr(i);return t.create(n,s,o)}else return null}static create(e,r,n){if(typeof r!="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(r!==_i)throw new Error(`Version 0 CID must use dag-pb (code: ${_i}) block encoding`);return new t(e,r,n,n.bytes)}case 1:{let i=Fh(e,r,n.bytes);return new t(e,r,n,i)}default:throw new Error("Invalid version")}}static createV0(e){return t.create(0,_i,e)}static createV1(e,r){return t.create(1,e,r)}static decode(e){let[r,n]=t.decodeFirst(e);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(e){let r=t.inspectBytes(e),n=r.size-r.multihashSize,i=rr(e.subarray(n,n+r.multihashSize));if(i.byteLength!==r.multihashSize)throw new Error("Incorrect length");let s=i.subarray(r.multihashSize-r.digestSize),o=new Pn(r.multihashCode,r.digestSize,s,i);return[r.version===0?t.createV0(o):t.createV1(r.codec,o),e.subarray(r.size)]}static inspectBytes(e){let r=0,n=()=>{let[f,d]=vi(e.subarray(r));return r+=d,f},i=n(),s=_i;if(i===18?(i=0,r=0):s=n(),i!==0&&i!==1)throw new RangeError(`Invalid CID version ${i}`);let o=r,a=n(),c=n(),u=r+c,l=u-o;return{version:i,codec:s,multihashCode:a,digestSize:c,multihashSize:l,size:u}}static parse(e,r){let[n,i]=W1(e,r),s=t.decode(i);if(s.version===0&&e[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return lc(s).set(n,e),s}},W1=(t,e)=>{switch(t[0]){case"Q":{let r=e||Ee;return[Ee.prefix,r.decode(`${Ee.prefix}${t}`)]}case Ee.prefix:{let r=e||Ee;return[Ee.prefix,r.decode(t)]}case dt.prefix:{let r=e||dt;return[dt.prefix,r.decode(t)]}default:{if(e==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[t[0],e.decode(t)]}}},Y1=(t,e,r)=>{let{prefix:n}=r;if(n!==Ee.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=e.get(n);if(i==null){let s=r.encode(t).slice(1);return e.set(n,s),s}else return i},Q1=(t,e,r)=>{let{prefix:n}=r,i=e.get(n);if(i==null){let s=r.encode(t);return e.set(n,s),s}else return i},_i=112,X1=18,Fh=(t,e,r)=>{let n=Ln(t),i=n+Ln(e),s=new Uint8Array(i+r.byteLength);return Bn(t,s,0),Bn(e,s,n),s.set(r,i),s},Z1=Symbol.for("@ipld/js-cid/CID");var de={...ic,...Xa,...nc,...Ya,...Qa,...ja,...Ja,...ec,...rc,...Za},VS={...uc,...oc};function As(t=0){return globalThis.Buffer?.allocUnsafe!=null?zr(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function qh(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var Kh=qh("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),fc=qh("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=As(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),j1={utf8:Kh,"utf-8":Kh,hex:de.base16,latin1:fc,ascii:fc,binary:fc,...de},Is=j1;function pt(t,e="utf8"){let r=Is[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?zr(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}var zc={};ke(zc,{Ed25519PrivateKey:()=>en,Ed25519PublicKey:()=>Li,generateKeyPair:()=>m2,generateKeyPairFromSeed:()=>A0,unmarshalEd25519PrivateKey:()=>d2,unmarshalEd25519PublicKey:()=>p2});function Gt(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}var iA=we(Re(),1),sA=we(xs(),1),Vh=we(le(),1);function Wr(t,e){if(globalThis.Buffer!=null)return zr(globalThis.Buffer.concat(t,e));e==null&&(e=t.reduce((i,s)=>i+s.length,0));let r=As(e),n=0;for(let i of t)r.set(i,n),n+=i.length;return zr(r)}function mt(t,e="utf8"){let r=Is[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):r.encoder.encode(t).substring(1)}function Lt(t,e){let r=Uint8Array.from(t.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,e!=null){if(r.length>e)throw new Error("byte array longer than desired length");r=Wr([new Uint8Array(e-r.length),r])}return mt(r,"base64url")}function gt(t){let e=$h(t);return new Vh.default.jsbn.BigInteger(mt(e,"base16"),16)}function $h(t,e){let r=pt(t,"base64urlpad");if(e!=null){if(r.length>e)throw new Error("byte array longer than desired length");r=Wr([new Uint8Array(e-r.length),r])}return r}function vt(t){return t==null?!1:typeof t.then=="function"&&typeof t.catch=="function"&&typeof t.finally=="function"}function zh(t){if(!Number.isSafeInteger(t)||t<0)throw new Error(`Wrong positive integer: ${t}`)}function J1(t){return t instanceof Uint8Array||t!=null&&typeof t=="object"&&t.constructor.name==="Uint8Array"}function hc(t,...e){if(!J1(t))throw new Error("Expected Uint8Array");if(e.length>0&&!e.includes(t.length))throw new Error(`Expected Uint8Array of length ${e}, not of length=${t.length}`)}function Hh(t){if(typeof t!="function"||typeof t.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");zh(t.outputLen),zh(t.blockLen)}function Dn(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function Gh(t,e){hc(t);let r=e.outputLen;if(t.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var Cs=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;function Wh(t){return t instanceof Uint8Array||t!=null&&typeof t=="object"&&t.constructor.name==="Uint8Array"}var Ts=t=>new DataView(t.buffer,t.byteOffset,t.byteLength),Pt=(t,e)=>t<<32-e|t>>>e,eb=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!eb)throw new Error("Non little-endian hardware is not supported");function dc(t){if(typeof t!="string")throw new Error(`utf8ToBytes expected string, got ${typeof t}`);return new Uint8Array(new TextEncoder().encode(t))}function Si(t){if(typeof t=="string"&&(t=dc(t)),!Wh(t))throw new Error(`expected Uint8Array, got ${typeof t}`);return t}function Rs(...t){let e=0;for(let n=0;n<t.length;n++){let i=t[n];if(!Wh(i))throw new Error("Uint8Array expected");e+=i.length}let r=new Uint8Array(e);for(let n=0,i=0;n<t.length;n++){let s=t[n];r.set(s,i),i+=s.length}return r}var Nn=class{clone(){return this._cloneInto()}},dA={}.toString;function Bs(t){let e=n=>t().update(Si(n)).digest(),r=t();return e.outputLen=r.outputLen,e.blockLen=r.blockLen,e.create=()=>t(),e}function kn(t=32){if(Cs&&typeof Cs.getRandomValues=="function")return Cs.getRandomValues(new Uint8Array(t));throw new Error("crypto.getRandomValues must be defined")}function tb(t,e,r,n){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,r,n);let i=BigInt(32),s=BigInt(4294967295),o=Number(r>>i&s),a=Number(r&s),c=n?4:0,u=n?0:4;t.setUint32(e+c,o,n),t.setUint32(e+u,a,n)}var On=class extends Nn{constructor(e,r,n,i){super(),this.blockLen=e,this.outputLen=r,this.padOffset=n,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=Ts(this.buffer)}update(e){Dn(this);let{view:r,buffer:n,blockLen:i}=this;e=Si(e);let s=e.length;for(let o=0;o<s;){let a=Math.min(i-this.pos,s-o);if(a===i){let c=Ts(e);for(;i<=s-o;o+=i)this.process(c,o);continue}n.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Dn(this),Gh(e,this),this.finished=!0;let{buffer:r,view:n,blockLen:i,isLE:s}=this,{pos:o}=this;r[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>i-o&&(this.process(n,0),o=0);for(let f=o;f<i;f++)r[f]=0;tb(n,i-8,BigInt(this.length*8),s),this.process(n,0);let a=Ts(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");let u=c/4,l=this.get();if(u>l.length)throw new Error("_sha2: outputLen bigger than state");for(let f=0;f<u;f++)a.setUint32(4*f,l[f],s)}digest(){let{buffer:e,outputLen:r}=this;this.digestInto(e);let n=e.slice(0,r);return this.destroy(),n}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:r,buffer:n,length:i,finished:s,destroyed:o,pos:a}=this;return e.length=i,e.pos=a,e.finished=s,e.destroyed=o,i%r&&e.buffer.set(n),e}};var Ls=BigInt(4294967295),pc=BigInt(32);function Yh(t,e=!1){return e?{h:Number(t&Ls),l:Number(t>>pc&Ls)}:{h:Number(t>>pc&Ls)|0,l:Number(t&Ls)|0}}function rb(t,e=!1){let r=new Uint32Array(t.length),n=new Uint32Array(t.length);for(let i=0;i<t.length;i++){let{h:s,l:o}=Yh(t[i],e);[r[i],n[i]]=[s,o]}return[r,n]}var nb=(t,e)=>BigInt(t>>>0)<<pc|BigInt(e>>>0),ib=(t,e,r)=>t>>>r,sb=(t,e,r)=>t<<32-r|e>>>r,ob=(t,e,r)=>t>>>r|e<<32-r,ab=(t,e,r)=>t<<32-r|e>>>r,cb=(t,e,r)=>t<<64-r|e>>>r-32,ub=(t,e,r)=>t>>>r-32|e<<64-r,lb=(t,e)=>e,fb=(t,e)=>t,hb=(t,e,r)=>t<<r|e>>>32-r,db=(t,e,r)=>e<<r|t>>>32-r,pb=(t,e,r)=>e<<r-32|t>>>64-r,mb=(t,e,r)=>t<<r-32|e>>>64-r;function gb(t,e,r,n){let i=(e>>>0)+(n>>>0);return{h:t+r+(i/2**32|0)|0,l:i|0}}var yb=(t,e,r)=>(t>>>0)+(e>>>0)+(r>>>0),xb=(t,e,r,n)=>e+r+n+(t/2**32|0)|0,bb=(t,e,r,n)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0),wb=(t,e,r,n,i)=>e+r+n+i+(t/2**32|0)|0,Eb=(t,e,r,n,i)=>(t>>>0)+(e>>>0)+(r>>>0)+(n>>>0)+(i>>>0),vb=(t,e,r,n,i,s)=>e+r+n+i+s+(t/2**32|0)|0;var _b={fromBig:Yh,split:rb,toBig:nb,shrSH:ib,shrSL:sb,rotrSH:ob,rotrSL:ab,rotrBH:cb,rotrBL:ub,rotr32H:lb,rotr32L:fb,rotlSH:hb,rotlSL:db,rotlBH:pb,rotlBL:mb,add:gb,add3L:yb,add3H:xb,add4L:bb,add4H:wb,add5H:vb,add5L:Eb},Q=_b;var[Sb,Ab]=Q.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(t=>BigInt(t))),Sr=new Uint32Array(80),Ar=new Uint32Array(80),mc=class extends On{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:r,Bh:n,Bl:i,Ch:s,Cl:o,Dh:a,Dl:c,Eh:u,El:l,Fh:f,Fl:d,Gh:p,Gl:h,Hh:m,Hl:g}=this;return[e,r,n,i,s,o,a,c,u,l,f,d,p,h,m,g]}set(e,r,n,i,s,o,a,c,u,l,f,d,p,h,m,g){this.Ah=e|0,this.Al=r|0,this.Bh=n|0,this.Bl=i|0,this.Ch=s|0,this.Cl=o|0,this.Dh=a|0,this.Dl=c|0,this.Eh=u|0,this.El=l|0,this.Fh=f|0,this.Fl=d|0,this.Gh=p|0,this.Gl=h|0,this.Hh=m|0,this.Hl=g|0}process(e,r){for(let b=0;b<16;b++,r+=4)Sr[b]=e.getUint32(r),Ar[b]=e.getUint32(r+=4);for(let b=16;b<80;b++){let I=Sr[b-15]|0,v=Ar[b-15]|0,_=Q.rotrSH(I,v,1)^Q.rotrSH(I,v,8)^Q.shrSH(I,v,7),P=Q.rotrSL(I,v,1)^Q.rotrSL(I,v,8)^Q.shrSL(I,v,7),D=Sr[b-2]|0,H=Ar[b-2]|0,G=Q.rotrSH(D,H,19)^Q.rotrBH(D,H,61)^Q.shrSH(D,H,6),$=Q.rotrSL(D,H,19)^Q.rotrBL(D,H,61)^Q.shrSL(D,H,6),j=Q.add4L(P,$,Ar[b-7],Ar[b-16]),ue=Q.add4H(j,_,G,Sr[b-7],Sr[b-16]);Sr[b]=ue|0,Ar[b]=j|0}let{Ah:n,Al:i,Bh:s,Bl:o,Ch:a,Cl:c,Dh:u,Dl:l,Eh:f,El:d,Fh:p,Fl:h,Gh:m,Gl:g,Hh:y,Hl:x}=this;for(let b=0;b<80;b++){let I=Q.rotrSH(f,d,14)^Q.rotrSH(f,d,18)^Q.rotrBH(f,d,41),v=Q.rotrSL(f,d,14)^Q.rotrSL(f,d,18)^Q.rotrBL(f,d,41),_=f&p^~f&m,P=d&h^~d&g,D=Q.add5L(x,v,P,Ab[b],Ar[b]),H=Q.add5H(D,y,I,_,Sb[b],Sr[b]),G=D|0,$=Q.rotrSH(n,i,28)^Q.rotrBH(n,i,34)^Q.rotrBH(n,i,39),j=Q.rotrSL(n,i,28)^Q.rotrBL(n,i,34)^Q.rotrBL(n,i,39),ue=n&s^n&a^s&a,Ke=i&o^i&c^o&c;y=m|0,x=g|0,m=p|0,g=h|0,p=f|0,h=d|0,{h:f,l:d}=Q.add(u|0,l|0,H|0,G|0),u=a|0,l=c|0,a=s|0,c=o|0,s=n|0,o=i|0;let R=Q.add3L(G,j,Ke);n=Q.add3H(R,H,$,ue),i=R|0}({h:n,l:i}=Q.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:s,l:o}=Q.add(this.Bh|0,this.Bl|0,s|0,o|0),{h:a,l:c}=Q.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l}=Q.add(this.Dh|0,this.Dl|0,u|0,l|0),{h:f,l:d}=Q.add(this.Eh|0,this.El|0,f|0,d|0),{h:p,l:h}=Q.add(this.Fh|0,this.Fl|0,p|0,h|0),{h:m,l:g}=Q.add(this.Gh|0,this.Gl|0,m|0,g|0),{h:y,l:x}=Q.add(this.Hh|0,this.Hl|0,y|0,x|0),this.set(n,i,s,o,a,c,u,l,f,d,p,h,m,g,y,x)}roundClean(){Sr.fill(0),Ar.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 gc=Bs(()=>new mc);var Ds={};ke(Ds,{bitGet:()=>Pb,bitLen:()=>Lb,bitMask:()=>Ai,bitSet:()=>Db,bytesToHex:()=>ir,bytesToNumberBE:()=>sr,bytesToNumberLE:()=>Ir,concatBytes:()=>or,createHmacDrbg:()=>bc,ensureBytes:()=>Se,equalBytes:()=>Rb,hexToBytes:()=>Yr,hexToNumber:()=>xc,isBytes:()=>Dt,numberToBytesBE:()=>Cr,numberToBytesLE:()=>Qr,numberToHexUnpadded:()=>jh,numberToVarBytesBE:()=>Tb,utf8ToBytes:()=>Bb,validateObject:()=>Wt});var Zh=BigInt(0),Ps=BigInt(1),Ib=BigInt(2);function Dt(t){return t instanceof Uint8Array||t!=null&&typeof t=="object"&&t.constructor.name==="Uint8Array"}var Cb=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function ir(t){if(!Dt(t))throw new Error("Uint8Array expected");let e="";for(let r=0;r<t.length;r++)e+=Cb[t[r]];return e}function jh(t){let e=t.toString(16);return e.length&1?`0${e}`:e}function xc(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);return BigInt(t===""?"0":`0x${t}`)}var nr={_0:48,_9:57,_A:65,_F:70,_a:97,_f:102};function Qh(t){if(t>=nr._0&&t<=nr._9)return t-nr._0;if(t>=nr._A&&t<=nr._F)return t-(nr._A-10);if(t>=nr._a&&t<=nr._f)return t-(nr._a-10)}function Yr(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);let e=t.length,r=e/2;if(e%2)throw new Error("padded hex string expected, got unpadded hex of length "+e);let n=new Uint8Array(r);for(let i=0,s=0;i<r;i++,s+=2){let o=Qh(t.charCodeAt(s)),a=Qh(t.charCodeAt(s+1));if(o===void 0||a===void 0){let c=t[s]+t[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}n[i]=o*16+a}return n}function sr(t){return xc(ir(t))}function Ir(t){if(!Dt(t))throw new Error("Uint8Array expected");return xc(ir(Uint8Array.from(t).reverse()))}function Cr(t,e){return Yr(t.toString(16).padStart(e*2,"0"))}function Qr(t,e){return Cr(t,e).reverse()}function Tb(t){return Yr(jh(t))}function Se(t,e,r){let n;if(typeof e=="string")try{n=Yr(e)}catch(s){throw new Error(`${t} must be valid hex string, got "${e}". Cause: ${s}`)}else if(Dt(e))n=Uint8Array.from(e);else throw new Error(`${t} must be hex string or Uint8Array`);let i=n.length;if(typeof r=="number"&&i!==r)throw new Error(`${t} expected ${r} bytes, got ${i}`);return n}function or(...t){let e=0;for(let i=0;i<t.length;i++){let s=t[i];if(!Dt(s))throw new Error("Uint8Array expected");e+=s.length}let r=new Uint8Array(e),n=0;for(let i=0;i<t.length;i++){let s=t[i];r.set(s,n),n+=s.length}return r}function Rb(t,e){if(t.length!==e.length)return!1;let r=0;for(let n=0;n<t.length;n++)r|=t[n]^e[n];return r===0}function Bb(t){if(typeof t!="string")throw new Error(`utf8ToBytes expected string, got ${typeof t}`);return new Uint8Array(new TextEncoder().encode(t))}function Lb(t){let e;for(e=0;t>Zh;t>>=Ps,e+=1);return e}function Pb(t,e){return t>>BigInt(e)&Ps}var Db=(t,e,r)=>t|(r?Ps:Zh)<<BigInt(e),Ai=t=>(Ib<<BigInt(t-1))-Ps,yc=t=>new Uint8Array(t),Xh=t=>Uint8Array.from(t);function bc(t,e,r){if(typeof t!="number"||t<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 r!="function")throw new Error("hmacFn must be a function");let n=yc(t),i=yc(t),s=0,o=()=>{n.fill(1),i.fill(0),s=0},a=(...f)=>r(i,n,...f),c=(f=yc())=>{i=a(Xh([0]),f),n=a(),f.length!==0&&(i=a(Xh([1]),f),n=a())},u=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let f=0,d=[];for(;f<e;){n=a();let p=n.slice();d.push(p),f+=n.length}return or(...d)};return(f,d)=>{o(),c(f);let p;for(;!(p=d(u()));)c();return o(),p}}var Nb={bigint:t=>typeof t=="bigint",function:t=>typeof t=="function",boolean:t=>typeof t=="boolean",string:t=>typeof t=="string",stringOrUint8Array:t=>typeof t=="string"||Dt(t),isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>typeof t=="function"&&Number.isSafeInteger(t.outputLen)};function Wt(t,e,r={}){let n=(i,s,o)=>{let a=Nb[s];if(typeof a!="function")throw new Error(`Invalid validator "${s}", expected function`);let c=t[i];if(!(o&&c===void 0)&&!a(c,t))throw new Error(`Invalid param ${String(i)}=${c} (${typeof c}), expected ${s}`)};for(let[i,s]of Object.entries(e))n(i,s,!1);for(let[i,s]of Object.entries(r))n(i,s,!0);return t}var Pe=BigInt(0),ye=BigInt(1),Xr=BigInt(2),kb=BigInt(3),wc=BigInt(4),Jh=BigInt(5),e0=BigInt(8),Ob=BigInt(9),Mb=BigInt(16);function fe(t,e){let r=t%e;return r>=Pe?r:e+r}function Ub(t,e,r){if(r<=Pe||e<Pe)throw new Error("Expected power/modulo > 0");if(r===ye)return Pe;let n=ye;for(;e>Pe;)e&ye&&(n=n*t%r),t=t*t%r,e>>=ye;return n}function xe(t,e,r){let n=t;for(;e-- >Pe;)n*=n,n%=r;return n}function Ns(t,e){if(t===Pe||e<=Pe)throw new Error(`invert: expected positive integers, got n=${t} mod=${e}`);let r=fe(t,e),n=e,i=Pe,s=ye,o=ye,a=Pe;for(;r!==Pe;){let u=n/r,l=n%r,f=i-o*u,d=s-a*u;n=r,r=l,i=o,s=a,o=f,a=d}if(n!==ye)throw new Error("invert: does not exist");return fe(i,e)}function Fb(t){let e=(t-ye)/Xr,r,n,i;for(r=t-ye,n=0;r%Xr===Pe;r/=Xr,n++);for(i=Xr;i<t&&Ub(i,e,t)!==t-ye;i++);if(n===1){let o=(t+ye)/wc;return function(c,u){let l=c.pow(u,o);if(!c.eql(c.sqr(l),u))throw new Error("Cannot find square root");return l}}let s=(r+ye)/Xr;return function(a,c){if(a.pow(c,e)===a.neg(a.ONE))throw new Error("Cannot find square root");let u=n,l=a.pow(a.mul(a.ONE,i),r),f=a.pow(c,s),d=a.pow(c,r);for(;!a.eql(d,a.ONE);){if(a.eql(d,a.ZERO))return a.ZERO;let p=1;for(let m=a.sqr(d);p<u&&!a.eql(m,a.ONE);p++)m=a.sqr(m);let h=a.pow(l,ye<<BigInt(u-p-1));l=a.sqr(h),f=a.mul(f,h),d=a.mul(d,l),u=p}return f}}function Kb(t){if(t%wc===kb){let e=(t+ye)/wc;return function(n,i){let s=n.pow(i,e);if(!n.eql(n.sqr(s),i))throw new Error("Cannot find square root");return s}}if(t%e0===Jh){let e=(t-Jh)/e0;return function(n,i){let s=n.mul(i,Xr),o=n.pow(s,e),a=n.mul(i,o),c=n.mul(n.mul(a,Xr),o),u=n.mul(a,n.sub(c,n.ONE));if(!n.eql(n.sqr(u),i))throw new Error("Cannot find square root");return u}}return t%Mb,Fb(t)}var t0=(t,e)=>(fe(t,e)&ye)===ye,qb=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Ec(t){let e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=qb.reduce((n,i)=>(n[i]="function",n),e);return Wt(t,r)}function Vb(t,e,r){if(r<Pe)throw new Error("Expected power > 0");if(r===Pe)return t.ONE;if(r===ye)return e;let n=t.ONE,i=e;for(;r>Pe;)r&ye&&(n=t.mul(n,i)),i=t.sqr(i),r>>=ye;return n}function $b(t,e){let r=new Array(e.length),n=e.reduce((s,o,a)=>t.is0(o)?s:(r[a]=s,t.mul(s,o)),t.ONE),i=t.inv(n);return e.reduceRight((s,o,a)=>t.is0(o)?s:(r[a]=t.mul(s,r[a]),t.mul(s,o)),i),r}function vc(t,e){let r=e!==void 0?e:t.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function ks(t,e,r=!1,n={}){if(t<=Pe)throw new Error(`Expected Field ORDER > 0, got ${t}`);let{nBitLength:i,nByteLength:s}=vc(t,e);if(s>2048)throw new Error("Field lengths over 2048 bytes are not supported");let o=Kb(t),a=Object.freeze({ORDER:t,BITS:i,BYTES:s,MASK:Ai(i),ZERO:Pe,ONE:ye,create:c=>fe(c,t),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return Pe<=c&&c<t},is0:c=>c===Pe,isOdd:c=>(c&ye)===ye,neg:c=>fe(-c,t),eql:(c,u)=>c===u,sqr:c=>fe(c*c,t),add:(c,u)=>fe(c+u,t),sub:(c,u)=>fe(c-u,t),mul:(c,u)=>fe(c*u,t),pow:(c,u)=>Vb(a,c,u),div:(c,u)=>fe(c*Ns(u,t),t),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>Ns(c,t),sqrt:n.sqrt||(c=>o(a,c)),invertBatch:c=>$b(a,c),cmov:(c,u,l)=>l?u:c,toBytes:c=>r?Qr(c,s):Cr(c,s),fromBytes:c=>{if(c.length!==s)throw new Error(`Fp.fromBytes: expected ${s}, got ${c.length}`);return r?Ir(c):sr(c)}});return Object.freeze(a)}function r0(t,e){if(!t.isOdd)throw new Error("Field doesn't have isOdd");let r=t.sqrt(e);return t.isOdd(r)?t.neg(r):r}function n0(t){if(typeof t!="bigint")throw new Error("field order must be bigint");let e=t.toString(2).length;return Math.ceil(e/8)}function _c(t){let e=n0(t);return e+Math.ceil(e/2)}function i0(t,e,r=!1){let n=t.length,i=n0(e),s=_c(e);if(n<16||n<s||n>1024)throw new Error(`expected ${s}-1024 bytes of input, got ${n}`);let o=r?sr(t):Ir(t),a=fe(o,e-ye)+ye;return r?Qr(a,i):Cr(a,i)}var Hb=BigInt(0),Sc=BigInt(1);function Os(t,e){let r=(i,s)=>{let o=s.negate();return i?o:s},n=i=>{let s=Math.ceil(e/i)+1,o=2**(i-1);return{windows:s,windowSize:o}};return{constTimeNegate:r,unsafeLadder(i,s){let o=t.ZERO,a=i;for(;s>Hb;)s&Sc&&(o=o.add(a)),a=a.double(),s>>=Sc;return o},precomputeWindow(i,s){let{windows:o,windowSize:a}=n(s),c=[],u=i,l=u;for(let f=0;f<o;f++){l=u,c.push(l);for(let d=1;d<a;d++)l=l.add(u),c.push(l);u=l.double()}return c},wNAF(i,s,o){let{windows:a,windowSize:c}=n(i),u=t.ZERO,l=t.BASE,f=BigInt(2**i-1),d=2**i,p=BigInt(i);for(let h=0;h<a;h++){let m=h*c,g=Number(o&f);o>>=p,g>c&&(g-=d,o+=Sc);let y=m,x=m+Math.abs(g)-1,b=h%2!==0,I=g<0;g===0?l=l.add(r(b,s[y])):u=u.add(r(I,s[x]))}return{p:u,f:l}},wNAFCached(i,s,o,a){let c=i._WINDOW_SIZE||1,u=s.get(i);return u||(u=this.precomputeWindow(i,c),c!==1&&s.set(i,a(u))),this.wNAF(c,u,o)}}}function Ii(t){return Ec(t.Fp),Wt(t,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...vc(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}var Nt=BigInt(0),yt=BigInt(1),Ms=BigInt(2),Gb=BigInt(8),Wb={zip215:!0};function Yb(t){let e=Ii(t);return Wt(t,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...e})}function Us(t){let e=Yb(t),{Fp:r,n,prehash:i,hash:s,randomBytes:o,nByteLength:a,h:c}=e,u=Ms<<BigInt(a*8)-yt,l=r.create,f=e.uvRatio||((N,C)=>{try{return{isValid:!0,value:r.sqrt(N*r.inv(C))}}catch{return{isValid:!1,value:Nt}}}),d=e.adjustScalarBytes||(N=>N),p=e.domain||((N,C,U)=>{if(C.length||U)throw new Error("Contexts/pre-hash are not supported");return N}),h=N=>typeof N=="bigint"&&Nt<N,m=(N,C)=>h(N)&&h(C)&&N<C,g=N=>N===Nt||m(N,u);function y(N,C){if(m(N,C))return N;throw new Error(`Expected valid scalar < ${C}, got ${typeof N} ${N}`)}function x(N){return N===Nt?N:y(N,n)}let b=new Map;function I(N){if(!(N instanceof v))throw new Error("ExtendedPoint expected")}class v{constructor(C,U,K,z){if(this.ex=C,this.ey=U,this.ez=K,this.et=z,!g(C))throw new Error("x required");if(!g(U))throw new Error("y required");if(!g(K))throw new Error("z required");if(!g(z))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(C){if(C instanceof v)throw new Error("extended point not allowed");let{x:U,y:K}=C||{};if(!g(U)||!g(K))throw new Error("invalid affine point");return new v(U,K,yt,l(U*K))}static normalizeZ(C){let U=r.invertBatch(C.map(K=>K.ez));return C.map((K,z)=>K.toAffine(U[z])).map(v.fromAffine)}_setWindowSize(C){this._WINDOW_SIZE=C,b.delete(this)}assertValidity(){let{a:C,d:U}=e;if(this.is0())throw new Error("bad point: ZERO");let{ex:K,ey:z,ez:X,et:J}=this,ae=l(K*K),ee=l(z*z),ne=l(X*X),Te=l(ne*ne),ve=l(ae*C),qe=l(ne*l(ve+ee)),Ve=l(Te+l(U*l(ae*ee)));if(qe!==Ve)throw new Error("bad point: equation left != right (1)");let Le=l(K*z),Qe=l(X*J);if(Le!==Qe)throw new Error("bad point: equation left != right (2)")}equals(C){I(C);let{ex:U,ey:K,ez:z}=this,{ex:X,ey:J,ez:ae}=C,ee=l(U*ae),ne=l(X*z),Te=l(K*ae),ve=l(J*z);return ee===ne&&Te===ve}is0(){return this.equals(v.ZERO)}negate(){return new v(l(-this.ex),this.ey,this.ez,l(-this.et))}double(){let{a:C}=e,{ex:U,ey:K,ez:z}=this,X=l(U*U),J=l(K*K),ae=l(Ms*l(z*z)),ee=l(C*X),ne=U+K,Te=l(l(ne*ne)-X-J),ve=ee+J,qe=ve-ae,Ve=ee-J,Le=l(Te*qe),Qe=l(ve*Ve),jt=l(Te*Ve),Ur=l(qe*ve);return new v(Le,Qe,Ur,jt)}add(C){I(C);let{a:U,d:K}=e,{ex:z,ey:X,ez:J,et:ae}=this,{ex:ee,ey:ne,ez:Te,et:ve}=C;if(U===BigInt(-1)){let Wl=l((X-z)*(ne+ee)),Yl=l((X+z)*(ne-ee)),pa=l(Yl-Wl);if(pa===Nt)return this.double();let Ql=l(J*Ms*ve),Xl=l(ae*Ms*Te),Zl=Xl+Ql,jl=Yl+Wl,Jl=Xl-Ql,mg=l(Zl*pa),gg=l(jl*Jl),yg=l(Zl*Jl),xg=l(pa*jl);return new v(mg,gg,xg,yg)}let qe=l(z*ee),Ve=l(X*ne),Le=l(ae*K*ve),Qe=l(J*Te),jt=l((z+X)*(ee+ne)-qe-Ve),Ur=Qe-Le,hi=Qe+Le,Gl=l(Ve-U*qe),fg=l(jt*Ur),hg=l(hi*Gl),dg=l(jt*Gl),pg=l(Ur*hi);return new v(fg,hg,pg,dg)}subtract(C){return this.add(C.negate())}wNAF(C){return D.wNAFCached(this,b,C,v.normalizeZ)}multiply(C){let{p:U,f:K}=this.wNAF(y(C,n));return v.normalizeZ([U,K])[0]}multiplyUnsafe(C){let U=x(C);return U===Nt?P:this.equals(P)||U===yt?this:this.equals(_)?this.wNAF(U).p:D.unsafeLadder(this,U)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return D.unsafeLadder(this,n).is0()}toAffine(C){let{ex:U,ey:K,ez:z}=this,X=this.is0();C==null&&(C=X?Gb:r.inv(z));let J=l(U*C),ae=l(K*C),ee=l(z*C);if(X)return{x:Nt,y:yt};if(ee!==yt)throw new Error("invZ was invalid");return{x:J,y:ae}}clearCofactor(){let{h:C}=e;return C===yt?this:this.multiplyUnsafe(C)}static fromHex(C,U=!1){let{d:K,a:z}=e,X=r.BYTES;C=Se("pointHex",C,X);let J=C.slice(),ae=C[X-1];J[X-1]=ae&-129;let ee=Ir(J);ee===Nt||(U?y(ee,u):y(ee,r.ORDER));let ne=l(ee*ee),Te=l(ne-yt),ve=l(K*ne-z),{isValid:qe,value:Ve}=f(Te,ve);if(!qe)throw new Error("Point.fromHex: invalid y coordinate");let Le=(Ve&yt)===yt,Qe=(ae&128)!==0;if(!U&&Ve===Nt&&Qe)throw new Error("Point.fromHex: x=0 and x_0=1");return Qe!==Le&&(Ve=l(-Ve)),v.fromAffine({x:Ve,y:ee})}static fromPrivateKey(C){return $(C).point}toRawBytes(){let{x:C,y:U}=this.toAffine(),K=Qr(U,r.BYTES);return K[K.length-1]|=C&yt?128:0,K}toHex(){return ir(this.toRawBytes())}}v.BASE=new v(e.Gx,e.Gy,yt,l(e.Gx*e.Gy)),v.ZERO=new v(Nt,yt,yt,Nt);let{BASE:_,ZERO:P}=v,D=Os(v,a*8);function H(N){return fe(N,n)}function G(N){return H(Ir(N))}function $(N){let C=a;N=Se("private key",N,C);let U=Se("hashed private key",s(N),2*C),K=d(U.slice(0,C)),z=U.slice(C,2*C),X=G(K),J=_.multiply(X),ae=J.toRawBytes();return{head:K,prefix:z,scalar:X,point:J,pointBytes:ae}}function j(N){return $(N).pointBytes}function ue(N=new Uint8Array,...C){let U=or(...C);return G(s(p(U,Se("context",N),!!i)))}function Ke(N,C,U={}){N=Se("message",N),i&&(N=i(N));let{prefix:K,scalar:z,pointBytes:X}=$(C),J=ue(U.context,K,N),ae=_.multiply(J).toRawBytes(),ee=ue(U.context,ae,X,N),ne=H(J+ee*z);x(ne);let Te=or(ae,Qr(ne,r.BYTES));return Se("result",Te,a*2)}let R=Wb;function k(N,C,U,K=R){let{context:z,zip215:X}=K,J=r.BYTES;N=Se("signature",N,2*J),C=Se("message",C),i&&(C=i(C));let ae=Ir(N.slice(J,2*J)),ee,ne,Te;try{ee=v.fromHex(U,X),ne=v.fromHex(N.slice(0,J),X),Te=_.multiplyUnsafe(ae)}catch{return!1}if(!X&&ee.isSmallOrder())return!1;let ve=ue(z,ne.toRawBytes(),ee.toRawBytes(),C);return ne.add(ee.multiplyUnsafe(ve)).subtract(Te).clearCofactor().equals(v.ZERO)}return _._setWindowSize(8),{CURVE:e,getPublicKey:j,sign:Ke,verify:k,ExtendedPoint:v,utils:{getExtendedPublicKey:$,randomPrivateKey:()=>o(r.BYTES),precompute(N=8,C=v.BASE){return C._setWindowSize(N),C.multiply(BigInt(3)),C}}}}var Ic=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),s0=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),kA=BigInt(0),Qb=BigInt(1),Ac=BigInt(2),Xb=BigInt(5),o0=BigInt(10),Zb=BigInt(20),jb=BigInt(40),a0=BigInt(80);function Jb(t){let e=Ic,n=t*t%e*t%e,i=xe(n,Ac,e)*n%e,s=xe(i,Qb,e)*t%e,o=xe(s,Xb,e)*s%e,a=xe(o,o0,e)*o%e,c=xe(a,Zb,e)*a%e,u=xe(c,jb,e)*c%e,l=xe(u,a0,e)*u%e,f=xe(l,a0,e)*u%e,d=xe(f,o0,e)*o%e;return{pow_p_5_8:xe(d,Ac,e)*t%e,b2:n}}function e2(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}function t2(t,e){let r=Ic,n=fe(e*e*e,r),i=fe(n*n*e,r),s=Jb(t*i).pow_p_5_8,o=fe(t*n*s,r),a=fe(e*o*o,r),c=o,u=fe(o*s0,r),l=a===t,f=a===fe(-t,r),d=a===fe(-t*s0,r);return l&&(o=c),(f||d)&&(o=u),t0(o,r)&&(o=fe(-o,r)),{isValid:l||f,value:o}}var ar=ks(Ic,void 0,!0),Cc={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:ar,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:gc,randomBytes:kn,adjustScalarBytes:e2,uvRatio:t2},Mn=Us(Cc);function c0(t,e,r){if(e.length>255)throw new Error("Context is too big");return Rs(dc("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,e.length]),e,t)}var OA=Us({...Cc,domain:c0}),MA=Us({...Cc,domain:c0,prehash:gc});var r2=(ar.ORDER+BigInt(3))/BigInt(8),UA=ar.pow(Ac,r2),FA=ar.sqrt(ar.neg(ar.ONE)),KA=(ar.ORDER-BigInt(5))/BigInt(8),qA=BigInt(486662);var VA=r0(ar,ar.neg(BigInt(486664)));var $A=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),zA=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),HA=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),GA=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var WA=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var Un=32,cr=64,Fs=32;function u0(){let t=Mn.utils.randomPrivateKey(),e=Mn.getPublicKey(t);return{privateKey:d0(t,e),publicKey:e}}function l0(t){if(t.length!==Fs)throw new TypeError('"seed" must be 32 bytes in length.');if(!(t instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let e=t,r=Mn.getPublicKey(e);return{privateKey:d0(e,r),publicKey:r}}function f0(t,e){let r=t.subarray(0,Fs);return Mn.sign(e instanceof Uint8Array?e:e.subarray(),r)}function h0(t,e,r){return Mn.verify(e,r instanceof Uint8Array?r:r.subarray(),t)}function d0(t,e){let r=new Uint8Array(cr);for(let n=0;n<Fs;n++)r[n]=t[n],r[Fs+n]=e[n];return r}var at={get(t=globalThis){let e=t.crypto;if(e==null||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 Tc={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function Rc(t){let e=t?.algorithm??"AES-GCM",r=t?.keyLength??16,n=t?.nonceLength??12,i=t?.digest??"SHA-256",s=t?.saltLength??16,o=t?.iterations??32767,a=at.get();r*=8;async function c(f,d){let p=a.getRandomValues(new Uint8Array(s)),h=a.getRandomValues(new Uint8Array(n)),m={name:e,iv:h};typeof d=="string"&&(d=pt(d));let g;if(d.length===0){g=await a.subtle.importKey("jwk",Tc,{name:"AES-GCM"},!0,["encrypt"]);try{let x={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},b=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(x,b,{name:e,length:r},!0,["encrypt"])}catch{g=await a.subtle.importKey("jwk",Tc,{name:"AES-GCM"},!0,["encrypt"])}}else{let x={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},b=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(x,b,{name:e,length:r},!0,["encrypt"])}let y=await a.subtle.encrypt(m,g,f);return Wr([p,m.iv,new Uint8Array(y)])}async function u(f,d){let p=f.subarray(0,s),h=f.subarray(s,s+n),m=f.subarray(s+n),g={name:e,iv:h};typeof d=="string"&&(d=pt(d));let y;if(d.length===0)try{let b={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},I=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(b,I,{name:e,length:r},!0,["decrypt"])}catch{y=await a.subtle.importKey("jwk",Tc,{name:"AES-GCM"},!0,["decrypt"])}else{let b={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},I=await a.subtle.importKey("raw",d,{name:"PBKDF2"},!1,["deriveKey"]);y=await a.subtle.deriveKey(b,I,{name:e,length:r},!0,["decrypt"])}let x=await a.subtle.decrypt(g,y,m);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function Fn(t,e){let n=await Rc().encrypt(t,e);return Rn.encode(n)}var Bc=new Float32Array([-0]),Tr=new Uint8Array(Bc.buffer);function m0(t,e,r){Bc[0]=t,e[r]=Tr[0],e[r+1]=Tr[1],e[r+2]=Tr[2],e[r+3]=Tr[3]}function g0(t,e){return Tr[0]=t[e],Tr[1]=t[e+1],Tr[2]=t[e+2],Tr[3]=t[e+3],Bc[0]}var Lc=new Float64Array([-0]),Xe=new Uint8Array(Lc.buffer);function y0(t,e,r){Lc[0]=t,e[r]=Xe[0],e[r+1]=Xe[1],e[r+2]=Xe[2],e[r+3]=Xe[3],e[r+4]=Xe[4],e[r+5]=Xe[5],e[r+6]=Xe[6],e[r+7]=Xe[7]}function x0(t,e){return Xe[0]=t[e],Xe[1]=t[e+1],Xe[2]=t[e+2],Xe[3]=t[e+3],Xe[4]=t[e+4],Xe[5]=t[e+5],Xe[6]=t[e+6],Xe[7]=t[e+7],Lc[0]}var i2=BigInt(Number.MAX_SAFE_INTEGER),s2=BigInt(Number.MIN_SAFE_INTEGER),ct=class t{lo;hi;constructor(e,r){this.lo=e|0,this.hi=r|0}toNumber(e=!1){if(!e&&this.hi>>>31>0){let r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(r+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 r=~this.lo+1>>>0,n=~this.hi>>>0;return r===0&&(n=n+1>>>0),-(BigInt(r)+(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,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?e<16384?e<128?1:2:e<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(e){if(e===0n)return Zr;if(e<i2&&e>s2)return this.fromNumber(Number(e));let r=e<0n;r&&(e=-e);let n=e>>32n,i=e-(n<<32n);return r&&(n=~n|0n,i=~i|0n,++i>b0&&(i=0n,++n>b0&&(n=0n))),new t(Number(i),Number(n))}static fromNumber(e){if(e===0)return Zr;let r=e<0;r&&(e=-e);let n=e>>>0,i=(e-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new t(n,i)}static from(e){return typeof e=="number"?t.fromNumber(e):typeof e=="bigint"?t.fromBigInt(e):typeof e=="string"?t.fromBigInt(BigInt(e)):e.low!=null||e.high!=null?new t(e.low>>>0,e.high>>>0):Zr}},Zr=new ct(0,0);Zr.toBigInt=function(){return 0n};Zr.zzEncode=Zr.zzDecode=function(){return this};Zr.length=function(){return 1};var b0=4294967296n;function w0(t){let e=0,r=0;for(let n=0;n<t.length;++n)r=t.charCodeAt(n),r<128?e+=1:r<2048?e+=2:(r&64512)===55296&&(t.charCodeAt(n+1)&64512)===56320?(++n,e+=4):e+=3;return e}function E0(t,e,r){if(r-e<1)return"";let i,s=[],o=0,a;for(;e<r;)a=t[e++],a<128?s[o++]=a:a>191&&a<224?s[o++]=(a&31)<<6|t[e++]&63:a>239&&a<365?(a=((a&7)<<18|(t[e++]&63)<<12|(t[e++]&63)<<6|t[e++]&63)-65536,s[o++]=55296+(a>>10),s[o++]=56320+(a&1023)):s[o++]=(a&15)<<12|(t[e++]&63)<<6|t[e++]&63,o>8191&&((i??(i=[])).push(String.fromCharCode.apply(String,s)),o=0);return i!=null?(o>0&&i.push(String.fromCharCode.apply(String,s.slice(0,o))),i.join("")):String.fromCharCode.apply(String,s.slice(0,o))}function Pc(t,e,r){let n=r,i,s;for(let o=0;o<t.length;++o)i=t.charCodeAt(o),i<128?e[r++]=i:i<2048?(e[r++]=i>>6|192,e[r++]=i&63|128):(i&64512)===55296&&((s=t.charCodeAt(o+1))&64512)===56320?(i=65536+((i&1023)<<10)+(s&1023),++o,e[r++]=i>>18|240,e[r++]=i>>12&63|128,e[r++]=i>>6&63|128,e[r++]=i&63|128):(e[r++]=i>>12|224,e[r++]=i>>6&63|128,e[r++]=i&63|128);return r-n}function kt(t,e){return RangeError(`index out of range: ${t.pos} + ${e??1} > ${t.len}`)}function Ks(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}var Dc=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,kt(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 kt(this,4);return Ks(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw kt(this,4);return Ks(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw kt(this,4);let e=g0(this.buf,this.pos);return this.pos+=4,e}double(){if(this.pos+8>this.len)throw kt(this,4);let e=x0(this.buf,this.pos);return this.pos+=8,e}bytes(){let e=this.uint32(),r=this.pos,n=this.pos+e;if(n>this.len)throw kt(this,e);return this.pos+=e,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let e=this.bytes();return E0(e,0,e.length)}skip(e){if(typeof e=="number"){if(this.pos+e>this.len)throw kt(this,e);this.pos+=e}else do if(this.pos>=this.len)throw kt(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 ct(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(e.lo=(e.lo|(this.buf[this.pos]&127)<<r*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;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw kt(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,e}if(this.len-this.pos>4){for(;r<5;++r)if(e.hi=(e.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return e}else for(;r<5;++r){if(this.pos>=this.len)throw kt(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw kt(this,8);let e=Ks(this.buf,this.pos+=4),r=Ks(this.buf,this.pos+=4);return new ct(e,r)}int64(){return this.readLongVarint().toBigInt()}int64Number(){return this.readLongVarint().toNumber()}int64String(){return this.readLongVarint().toString()}uint64(){return this.readLongVarint().toBigInt(!0)}uint64Number(){return this.readLongVarint().toNumber(!0)}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 Nc(t){return new Dc(t instanceof Uint8Array?t:t.subarray())}function ze(t,e){let r=Nc(t);return e.decode(r)}function jr(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function ur(t=0){return globalThis.Buffer?.alloc!=null?jr(globalThis.Buffer.alloc(t)):new Uint8Array(t)}function Ze(t=0){return globalThis.Buffer?.allocUnsafe!=null?jr(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function S0(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var _0=S0("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),kc=S0("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=Ze(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),o2={utf8:_0,"utf-8":_0,hex:de.base16,latin1:kc,ascii:kc,binary:kc,...de},qs=o2;function Ci(t,e="utf8"){let r=qs[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?jr(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}function Oc(t){let e=t??8192,r=e>>>1,n,i=e;return function(o){if(o<1||o>r)return Ze(o);i+o>e&&(n=Ze(e),i=0);let a=n.subarray(i,i+=o);return i&7&&(i=(i|7)+1),a}}var Jr=class{fn;len;next;val;constructor(e,r,n){this.fn=e,this.len=r,this.next=void 0,this.val=n}};function Mc(){}var Fc=class{head;tail;len;next;constructor(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}},a2=Oc();function c2(t){return globalThis.Buffer!=null?Ze(t):a2(t)}var Bi=class{len;head;tail;states;constructor(){this.len=0,this.head=new Jr(Mc,0,0),this.tail=this.head,this.states=null}_push(e,r,n){return this.tail=this.tail.next=new Jr(e,r,n),this.len+=r,this}uint32(e){return this.len+=(this.tail=this.tail.next=new Kc((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(Ti,10,ct.fromNumber(e)):this.uint32(e)}sint32(e){return this.uint32((e<<1^e>>31)>>>0)}uint64(e){let r=ct.fromBigInt(e);return this._push(Ti,r.length(),r)}uint64Number(e){let r=ct.fromNumber(e);return this._push(Ti,r.length(),r)}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 r=ct.fromBigInt(e).zzEncode();return this._push(Ti,r.length(),r)}sint64Number(e){let r=ct.fromNumber(e).zzEncode();return this._push(Ti,r.length(),r)}sint64String(e){return this.sint64(BigInt(e))}bool(e){return this._push(Uc,1,e?1:0)}fixed32(e){return this._push(Ri,4,e>>>0)}sfixed32(e){return this.fixed32(e)}fixed64(e){let r=ct.fromBigInt(e);return this._push(Ri,4,r.lo)._push(Ri,4,r.hi)}fixed64Number(e){let r=ct.fromNumber(e);return this._push(Ri,4,r.lo)._push(Ri,4,r.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(m0,4,e)}double(e){return this._push(y0,8,e)}bytes(e){let r=e.length>>>0;return r===0?this._push(Uc,1,0):this.uint32(r)._push(l2,r,e)}string(e){let r=w0(e);return r!==0?this.uint32(r)._push(Pc,r,e):this._push(Uc,1,0)}fork(){return this.states=new Fc(this),this.head=this.tail=new Jr(Mc,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 Jr(Mc,0,0),this.len=0),this}ldelim(){let e=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=e.next,this.tail=r,this.len+=n),this}finish(){let e=this.head.next,r=c2(this.len),n=0;for(;e!=null;)e.fn(e.val,r,n),n+=e.len,e=e.next;return r}};function Uc(t,e,r){e[r]=t&255}function u2(t,e,r){for(;t>127;)e[r++]=t&127|128,t>>>=7;e[r]=t}var Kc=class extends Jr{next;constructor(e,r){super(u2,e,r),this.next=void 0}};function Ti(t,e,r){for(;t.hi!==0;)e[r++]=t.lo&127|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)e[r++]=t.lo&127|128,t.lo=t.lo>>>7;e[r++]=t.lo}function Ri(t,e,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}function l2(t,e,r){e.set(t,r)}globalThis.Buffer!=null&&(Bi.prototype.bytes=function(t){let e=t.length>>>0;return this.uint32(e),e>0&&this._push(f2,e,t),this},Bi.prototype.string=function(t){let e=globalThis.Buffer.byteLength(t);return this.uint32(e),e>0&&this._push(h2,e,t),this});function f2(t,e,r){e.set(t,r)}function h2(t,e,r){t.length<40?Pc(t,e,r):e.utf8Write!=null?e.utf8Write(t,r):e.set(Ci(t),r)}function qc(){return new Bi}function He(t,e){let r=qc();return e.encode(t,r,{lengthDelimited:!1}),r.finish()}var Kn;(function(t){t[t.VARINT=0]="VARINT",t[t.BIT64=1]="BIT64",t[t.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",t[t.START_GROUP=3]="START_GROUP",t[t.END_GROUP=4]="END_GROUP",t[t.BIT32=5]="BIT32"})(Kn||(Kn={}));function Vs(t,e,r,n){return{name:t,type:e,encode:r,decode:n}}function Vc(t){function e(i){if(t[i.toString()]==null)throw new Error("Invalid enum value");return t[i]}let r=function(s,o){let a=e(s);o.int32(a)},n=function(s){let o=s.int32();return e(o)};return Vs("enum",Kn.VARINT,r,n)}function Ge(t,e){return Vs("message",Kn.LENGTH_DELIMITED,t,e)}var be;(function(t){t.RSA="RSA",t.Ed25519="Ed25519",t.Secp256k1="Secp256k1"})(be||(be={}));var $c;(function(t){t[t.RSA=0]="RSA",t[t.Ed25519=1]="Ed25519",t[t.Secp256k1=2]="Secp256k1"})($c||($c={}));(function(t){t.codec=()=>Vc($c)})(be||(be={}));var Yt;(function(t){let e;t.codec=()=>(e==null&&(e=Ge((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),be.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.Type=be.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>He(r,t.codec()),t.decode=r=>ze(r,t.codec())})(Yt||(Yt={}));var Qt;(function(t){let e;t.codec=()=>(e==null&&(e=Ge((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),be.codec().encode(r.Type,n)),r.Data!=null&&(n.uint32(18),n.bytes(r.Data)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.Type=be.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>He(r,t.codec()),t.decode=r=>ze(r,t.codec())})(Qt||(Qt={}));var Li=class{_key;constructor(e){this._key=qn(e,Un)}verify(e,r){return h0(this._key,r,e)}marshal(){return this._key}get bytes(){return Yt.encode({Type:be.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Gt(this.bytes,e.bytes)}hash(){let e=$e.digest(this.bytes);return vt(e)?e.then(({bytes:r})=>r):e.bytes}},en=class{_key;_publicKey;constructor(e,r){this._key=qn(e,cr),this._publicKey=qn(r,Un)}sign(e){return f0(this._key,e)}get public(){return new Li(this._publicKey)}marshal(){return this._key}get bytes(){return Qt.encode({Type:be.Ed25519,Data:this.marshal()}).subarray()}equals(e){return Gt(this.bytes,e.bytes)}async hash(){let e=$e.digest(this.bytes),r;return vt(e)?{bytes:r}=await e:r=e.bytes,r}async id(){let e=_r.digest(this.public.bytes);return Ee.encode(e.bytes).substring(1)}async export(e,r="libp2p-key"){if(r==="libp2p-key")return Fn(this.bytes,e);throw new S(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function d2(t){if(t.length>cr){t=qn(t,cr+Un);let n=t.subarray(0,cr),i=t.subarray(cr,t.length);return new en(n,i)}t=qn(t,cr);let e=t.subarray(0,cr),r=t.subarray(Un);return new en(e,r)}function p2(t){return t=qn(t,Un),new Li(t)}async function m2(){let{privateKey:t,publicKey:e}=u0();return new en(t,e)}async function A0(t){let{privateKey:e,publicKey:r}=l0(t);return new en(e,r)}function qn(t,e){if(t=Uint8Array.from(t??[]),t.length!==e)throw new S(`Key must be a Uint8Array of length ${e}, got ${t.length}`,"ERR_INVALID_KEY_TYPE");return t}var g2={"P-256":256,"P-384":384,"P-521":521},y2=Object.keys(g2),e4=y2.join(" / ");var Qc={};ke(Qc,{MAX_KEY_SIZE:()=>ki,RsaPrivateKey:()=>Vn,RsaPublicKey:()=>Ni,fromJwk:()=>T2,generateKeyPair:()=>R2,unmarshalRsaPrivateKey:()=>I2,unmarshalRsaPublicKey:()=>C2});var Di=we(le(),1);var U4=we(B0(),1);function zs(t){if(isNaN(t)||t<=0)throw new S("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return kn(t)}var w4=we(Es(),1),Wc=we(le(),1);function L0(t,e){return e.map(r=>gt(t[r]))}function P0(t){return Wc.default.pki.setRsaPrivateKey(...L0(t,["n","e","d","p","q","dp","dq","qi"]))}function D0(t){return Wc.default.pki.setRsaPublicKey(...L0(t,["n","e"]))}var rn={};ke(rn,{jwkToPkcs1:()=>E2,jwkToPkix:()=>_2,pkcs1ToJwk:()=>w2,pkixToJwk:()=>v2});var _4=we(gi(),1),S4=we(Es(),1);var lr=we(le(),1);function w2(t){let e=lr.default.asn1.fromDer(mt(t,"ascii")),r=lr.default.pki.privateKeyFromAsn1(e);return{kty:"RSA",n:Lt(r.n),e:Lt(r.e),d:Lt(r.d),p:Lt(r.p),q:Lt(r.q),dp:Lt(r.dP),dq:Lt(r.dQ),qi:Lt(r.qInv),alg:"RS256"}}function E2(t){if(t.n==null||t.e==null||t.d==null||t.p==null||t.q==null||t.dp==null||t.dq==null||t.qi==null)throw new S("JWK was missing components","ERR_INVALID_PARAMETERS");let e=lr.default.pki.privateKeyToAsn1({n:gt(t.n),e:gt(t.e),d:gt(t.d),p:gt(t.p),q:gt(t.q),dP:gt(t.dp),dQ:gt(t.dq),qInv:gt(t.qi)});return pt(lr.default.asn1.toDer(e).getBytes(),"ascii")}function v2(t){let e=lr.default.asn1.fromDer(mt(t,"ascii")),r=lr.default.pki.publicKeyFromAsn1(e);return{kty:"RSA",n:Lt(r.n),e:Lt(r.e)}}function _2(t){if(t.n==null||t.e==null)throw new S("JWK was missing components","ERR_INVALID_PARAMETERS");let e=lr.default.pki.publicKeyToAsn1({n:gt(t.n),e:gt(t.e)});return pt(lr.default.asn1.toDer(e).getBytes(),"ascii")}async function N0(t){let e=await at.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:t,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await M0(e);return{privateKey:r[0],publicKey:r[1]}}async function Yc(t){let r=[await at.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await S2(t)],n=await M0({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function k0(t,e){let r=await at.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await at.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,e instanceof Uint8Array?e:e.subarray());return new Uint8Array(n,0,n.byteLength)}async function O0(t,e,r){let n=await at.get().subtle.importKey("jwk",t,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return at.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,e,r instanceof Uint8Array?r:r.subarray())}async function M0(t){if(t.privateKey==null||t.publicKey==null)throw new S("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([at.get().subtle.exportKey("jwk",t.privateKey),at.get().subtle.exportKey("jwk",t.publicKey)])}async function S2(t){return at.get().subtle.importKey("jwk",{kty:t.kty,n:t.n,e:t.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function U0(t,e,r,n){let i=e?D0(t):P0(t),s=mt(r instanceof Uint8Array?r:r.subarray(),"ascii"),o=n(s,i);return pt(o,"ascii")}function F0(t,e){return U0(t,!0,e,(r,n)=>n.encrypt(r))}function K0(t,e){return U0(t,!1,e,(r,n)=>n.decrypt(r))}function Hs(t){if(t.kty!=="RSA")throw new S("invalid key type","ERR_INVALID_KEY_TYPE");if(t.n==null)throw new S("invalid key modulus","ERR_INVALID_KEY_MODULUS");return pt(t.n,"base64url").length*8}var ki=8192,Ni=class{_key;constructor(e){this._key=e}verify(e,r){return O0(this._key,r,e)}marshal(){return rn.jwkToPkix(this._key)}get bytes(){return Yt.encode({Type:be.RSA,Data:this.marshal()}).subarray()}encrypt(e){return F0(this._key,e)}equals(e){return Gt(this.bytes,e.bytes)}hash(){let e=$e.digest(this.bytes);return vt(e)?e.then(({bytes:r})=>r):e.bytes}},Vn=class{_key;_publicKey;constructor(e,r){this._key=e,this._publicKey=r}genSecret(){return zs(16)}sign(e){return k0(this._key,e)}get public(){if(this._publicKey==null)throw new S("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new Ni(this._publicKey)}decrypt(e){return K0(this._key,e)}marshal(){return rn.jwkToPkcs1(this._key)}get bytes(){return Qt.encode({Type:be.RSA,Data:this.marshal()}).subarray()}equals(e){return Gt(this.bytes,e.bytes)}hash(){let e=$e.digest(this.bytes);return vt(e)?e.then(({bytes:r})=>r):e.bytes}async id(){let e=await this.public.hash();return mt(e,"base58btc")}async export(e,r="pkcs-8"){if(r==="pkcs-8"){let n=new Di.default.util.ByteBuffer(this.marshal()),i=Di.default.asn1.fromDer(n),s=Di.default.pki.privateKeyFromAsn1(i),o={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return Di.default.pki.encryptRsaPrivateKey(s,e,o)}else{if(r==="libp2p-key")return Fn(this.bytes,e);throw new S(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function I2(t){let e=rn.pkcs1ToJwk(t);if(Hs(e)>ki)throw new S("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await Yc(e);return new Vn(r.privateKey,r.publicKey)}function C2(t){let e=rn.pkixToJwk(t);if(Hs(e)>ki)throw new S("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new Ni(e)}async function T2(t){if(Hs(t)>ki)throw new S("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await Yc(t);return new Vn(e.privateKey,e.publicKey)}async function R2(t){if(t>ki)throw new S("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let e=await N0(t);return new Vn(e.privateKey,e.publicKey)}var tu={};ke(tu,{Secp256k1PrivateKey:()=>Mi,Secp256k1PublicKey:()=>Oi,generateKeyPair:()=>z2,unmarshalSecp256k1PrivateKey:()=>V2,unmarshalSecp256k1PublicKey:()=>$2});var B2=(t,e,r)=>t&e^~t&r,L2=(t,e,r)=>t&e^t&r^e&r,P2=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]),Rr=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Br=new Uint32Array(64),Xc=class extends On{constructor(){super(64,32,8,!1),this.A=Rr[0]|0,this.B=Rr[1]|0,this.C=Rr[2]|0,this.D=Rr[3]|0,this.E=Rr[4]|0,this.F=Rr[5]|0,this.G=Rr[6]|0,this.H=Rr[7]|0}get(){let{A:e,B:r,C:n,D:i,E:s,F:o,G:a,H:c}=this;return[e,r,n,i,s,o,a,c]}set(e,r,n,i,s,o,a,c){this.A=e|0,this.B=r|0,this.C=n|0,this.D=i|0,this.E=s|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,r){for(let f=0;f<16;f++,r+=4)Br[f]=e.getUint32(r,!1);for(let f=16;f<64;f++){let d=Br[f-15],p=Br[f-2],h=Pt(d,7)^Pt(d,18)^d>>>3,m=Pt(p,17)^Pt(p,19)^p>>>10;Br[f]=m+Br[f-7]+h+Br[f-16]|0}let{A:n,B:i,C:s,D:o,E:a,F:c,G:u,H:l}=this;for(let f=0;f<64;f++){let d=Pt(a,6)^Pt(a,11)^Pt(a,25),p=l+d+B2(a,c,u)+P2[f]+Br[f]|0,m=(Pt(n,2)^Pt(n,13)^Pt(n,22))+L2(n,i,s)|0;l=u,u=c,c=a,a=o+p|0,o=s,s=i,i=n,n=p+m|0}n=n+this.A|0,i=i+this.B|0,s=s+this.C|0,o=o+this.D|0,a=a+this.E|0,c=c+this.F|0,u=u+this.G|0,l=l+this.H|0,this.set(n,i,s,o,a,c,u,l)}roundClean(){Br.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var q0=Bs(()=>new Xc);function D2(t){let e=Ii(t);Wt(e,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:r,Fp:n,a:i}=e;if(r){if(!n.eql(i,n.ZERO))throw new Error("Endomorphism can only be defined for Koblitz curves that have a=0");if(typeof r!="object"||typeof r.beta!="bigint"||typeof r.splitScalar!="function")throw new Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...e})}var{bytesToNumberBE:N2,hexToBytes:k2}=Ds,nn={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(t){let{Err:e}=nn;if(t.length<2||t[0]!==2)throw new e("Invalid signature integer tag");let r=t[1],n=t.subarray(2,r+2);if(!r||n.length!==r)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:N2(n),l:t.subarray(r+2)}},toSig(t){let{Err:e}=nn,r=typeof t=="string"?k2(t):t;if(!Dt(r))throw new Error("ui8a expected");let n=r.length;if(n<2||r[0]!=48)throw new e("Invalid signature tag");if(r[1]!==n-2)throw new e("Invalid signature: incorrect length");let{d:i,l:s}=nn._parseInt(r.subarray(2)),{d:o,l:a}=nn._parseInt(s);if(a.length)throw new e("Invalid signature: left bytes after parsing");return{r:i,s:o}},hexFromSig(t){let e=u=>Number.parseInt(u[0],16)&8?"00"+u:u,r=u=>{let l=u.toString(16);return l.length&1?`0${l}`:l},n=e(r(t.s)),i=e(r(t.r)),s=n.length/2,o=i.length/2,a=r(s),c=r(o);return`30${r(o+s+4)}02${c}${i}02${a}${n}`}},fr=BigInt(0),_t=BigInt(1),Y4=BigInt(2),V0=BigInt(3),Q4=BigInt(4);function O2(t){let e=D2(t),{Fp:r}=e,n=e.toBytes||((h,m,g)=>{let y=m.toAffine();return or(Uint8Array.from([4]),r.toBytes(y.x),r.toBytes(y.y))}),i=e.fromBytes||(h=>{let m=h.subarray(1),g=r.fromBytes(m.subarray(0,r.BYTES)),y=r.fromBytes(m.subarray(r.BYTES,2*r.BYTES));return{x:g,y}});function s(h){let{a:m,b:g}=e,y=r.sqr(h),x=r.mul(y,h);return r.add(r.add(x,r.mul(h,m)),g)}if(!r.eql(r.sqr(e.Gy),s(e.Gx)))throw new Error("bad generator point: equation left != right");function o(h){return typeof h=="bigint"&&fr<h&&h<e.n}function a(h){if(!o(h))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(h){let{allowedPrivateKeyLengths:m,nByteLength:g,wrapPrivateKey:y,n:x}=e;if(m&&typeof h!="bigint"){if(Dt(h)&&(h=ir(h)),typeof h!="string"||!m.includes(h.length))throw new Error("Invalid key");h=h.padStart(g*2,"0")}let b;try{b=typeof h=="bigint"?h:sr(Se("private key",h,g))}catch{throw new Error(`private key must be ${g} bytes, hex or bigint, not ${typeof h}`)}return y&&(b=fe(b,x)),a(b),b}let u=new Map;function l(h){if(!(h instanceof f))throw new Error("ProjectivePoint expected")}class f{constructor(m,g,y){if(this.px=m,this.py=g,this.pz=y,m==null||!r.isValid(m))throw new Error("x required");if(g==null||!r.isValid(g))throw new Error("y required");if(y==null||!r.isValid(y))throw new Error("z required")}static fromAffine(m){let{x:g,y}=m||{};if(!m||!r.isValid(g)||!r.isValid(y))throw new Error("invalid affine point");if(m instanceof f)throw new Error("projective point not allowed");let x=b=>r.eql(b,r.ZERO);return x(g)&&x(y)?f.ZERO:new f(g,y,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(m){let g=r.invertBatch(m.map(y=>y.pz));return m.map((y,x)=>y.toAffine(g[x])).map(f.fromAffine)}static fromHex(m){let g=f.fromAffine(i(Se("pointHex",m)));return g.assertValidity(),g}static fromPrivateKey(m){return f.BASE.multiply(c(m))}_setWindowSize(m){this._WINDOW_SIZE=m,u.delete(this)}assertValidity(){if(this.is0()){if(e.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:m,y:g}=this.toAffine();if(!r.isValid(m)||!r.isValid(g))throw new Error("bad point: x or y not FE");let y=r.sqr(g),x=s(m);if(!r.eql(y,x))throw new Error("bad point: equation left != right");if(!this.isTorsionFree())throw new Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:m}=this.toAffine();if(r.isOdd)return!r.isOdd(m);throw new Error("Field doesn't support isOdd")}equals(m){l(m);let{px:g,py:y,pz:x}=this,{px:b,py:I,pz:v}=m,_=r.eql(r.mul(g,v),r.mul(b,x)),P=r.eql(r.mul(y,v),r.mul(I,x));return _&&P}negate(){return new f(this.px,r.neg(this.py),this.pz)}double(){let{a:m,b:g}=e,y=r.mul(g,V0),{px:x,py:b,pz:I}=this,v=r.ZERO,_=r.ZERO,P=r.ZERO,D=r.mul(x,x),H=r.mul(b,b),G=r.mul(I,I),$=r.mul(x,b);return $=r.add($,$),P=r.mul(x,I),P=r.add(P,P),v=r.mul(m,P),_=r.mul(y,G),_=r.add(v,_),v=r.sub(H,_),_=r.add(H,_),_=r.mul(v,_),v=r.mul($,v),P=r.mul(y,P),G=r.mul(m,G),$=r.sub(D,G),$=r.mul(m,$),$=r.add($,P),P=r.add(D,D),D=r.add(P,D),D=r.add(D,G),D=r.mul(D,$),_=r.add(_,D),G=r.mul(b,I),G=r.add(G,G),D=r.mul(G,$),v=r.sub(v,D),P=r.mul(G,H),P=r.add(P,P),P=r.add(P,P),new f(v,_,P)}add(m){l(m);let{px:g,py:y,pz:x}=this,{px:b,py:I,pz:v}=m,_=r.ZERO,P=r.ZERO,D=r.ZERO,H=e.a,G=r.mul(e.b,V0),$=r.mul(g,b),j=r.mul(y,I),ue=r.mul(x,v),Ke=r.add(g,y),R=r.add(b,I);Ke=r.mul(Ke,R),R=r.add($,j),Ke=r.sub(Ke,R),R=r.add(g,x);let k=r.add(b,v);return R=r.mul(R,k),k=r.add($,ue),R=r.sub(R,k),k=r.add(y,x),_=r.add(I,v),k=r.mul(k,_),_=r.add(j,ue),k=r.sub(k,_),D=r.mul(H,R),_=r.mul(G,ue),D=r.add(_,D),_=r.sub(j,D),D=r.add(j,D),P=r.mul(_,D),j=r.add($,$),j=r.add(j,$),ue=r.mul(H,ue),R=r.mul(G,R),j=r.add(j,ue),ue=r.sub($,ue),ue=r.mul(H,ue),R=r.add(R,ue),$=r.mul(j,R),P=r.add(P,$),$=r.mul(k,R),_=r.mul(Ke,_),_=r.sub(_,$),$=r.mul(Ke,j),D=r.mul(k,D),D=r.add(D,$),new f(_,P,D)}subtract(m){return this.add(m.negate())}is0(){return this.equals(f.ZERO)}wNAF(m){return p.wNAFCached(this,u,m,g=>{let y=r.invertBatch(g.map(x=>x.pz));return g.map((x,b)=>x.toAffine(y[b])).map(f.fromAffine)})}multiplyUnsafe(m){let g=f.ZERO;if(m===fr)return g;if(a(m),m===_t)return this;let{endo:y}=e;if(!y)return p.unsafeLadder(this,m);let{k1neg:x,k1:b,k2neg:I,k2:v}=y.splitScalar(m),_=g,P=g,D=this;for(;b>fr||v>fr;)b&_t&&(_=_.add(D)),v&_t&&(P=P.add(D)),D=D.double(),b>>=_t,v>>=_t;return x&&(_=_.negate()),I&&(P=P.negate()),P=new f(r.mul(P.px,y.beta),P.py,P.pz),_.add(P)}multiply(m){a(m);let g=m,y,x,{endo:b}=e;if(b){let{k1neg:I,k1:v,k2neg:_,k2:P}=b.splitScalar(g),{p:D,f:H}=this.wNAF(v),{p:G,f:$}=this.wNAF(P);D=p.constTimeNegate(I,D),G=p.constTimeNegate(_,G),G=new f(r.mul(G.px,b.beta),G.py,G.pz),y=D.add(G),x=H.add($)}else{let{p:I,f:v}=this.wNAF(g);y=I,x=v}return f.normalizeZ([y,x])[0]}multiplyAndAddUnsafe(m,g,y){let x=f.BASE,b=(v,_)=>_===fr||_===_t||!v.equals(x)?v.multiplyUnsafe(_):v.multiply(_),I=b(this,g).add(b(m,y));return I.is0()?void 0:I}toAffine(m){let{px:g,py:y,pz:x}=this,b=this.is0();m==null&&(m=b?r.ONE:r.inv(x));let I=r.mul(g,m),v=r.mul(y,m),_=r.mul(x,m);if(b)return{x:r.ZERO,y:r.ZERO};if(!r.eql(_,r.ONE))throw new Error("invZ was invalid");return{x:I,y:v}}isTorsionFree(){let{h:m,isTorsionFree:g}=e;if(m===_t)return!0;if(g)return g(f,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:m,clearCofactor:g}=e;return m===_t?this:g?g(f,this):this.multiplyUnsafe(e.h)}toRawBytes(m=!0){return this.assertValidity(),n(f,this,m)}toHex(m=!0){return ir(this.toRawBytes(m))}}f.BASE=new f(e.Gx,e.Gy,r.ONE),f.ZERO=new f(r.ZERO,r.ONE,r.ZERO);let d=e.nBitLength,p=Os(f,e.endo?Math.ceil(d/2):d);return{CURVE:e,ProjectivePoint:f,normPrivateKeyToScalar:c,weierstrassEquation:s,isWithinCurveOrder:o}}function M2(t){let e=Ii(t);return Wt(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function $0(t){let e=M2(t),{Fp:r,n}=e,i=r.BYTES+1,s=2*r.BYTES+1;function o(R){return fr<R&&R<r.ORDER}function a(R){return fe(R,n)}function c(R){return Ns(R,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:l,weierstrassEquation:f,isWithinCurveOrder:d}=O2({...e,toBytes(R,k,L){let N=k.toAffine(),C=r.toBytes(N.x),U=or;return L?U(Uint8Array.from([k.hasEvenY()?2:3]),C):U(Uint8Array.from([4]),C,r.toBytes(N.y))},fromBytes(R){let k=R.length,L=R[0],N=R.subarray(1);if(k===i&&(L===2||L===3)){let C=sr(N);if(!o(C))throw new Error("Point is not on curve");let U=f(C),K=r.sqrt(U),z=(K&_t)===_t;return(L&1)===1!==z&&(K=r.neg(K)),{x:C,y:K}}else if(k===s&&L===4){let C=r.fromBytes(N.subarray(0,r.BYTES)),U=r.fromBytes(N.subarray(r.BYTES,2*r.BYTES));return{x:C,y:U}}else throw new Error(`Point of length ${k} was invalid. Expected ${i} compressed bytes or ${s} uncompressed bytes`)}}),p=R=>ir(Cr(R,e.nByteLength));function h(R){let k=n>>_t;return R>k}function m(R){return h(R)?a(-R):R}let g=(R,k,L)=>sr(R.slice(k,L));class y{constructor(k,L,N){this.r=k,this.s=L,this.recovery=N,this.assertValidity()}static fromCompact(k){let L=e.nByteLength;return k=Se("compactSignature",k,L*2),new y(g(k,0,L),g(k,L,2*L))}static fromDER(k){let{r:L,s:N}=nn.toSig(Se("DER",k));return new y(L,N)}assertValidity(){if(!d(this.r))throw new Error("r must be 0 < r < CURVE.n");if(!d(this.s))throw new Error("s must be 0 < s < CURVE.n")}addRecoveryBit(k){return new y(this.r,this.s,k)}recoverPublicKey(k){let{r:L,s:N,recovery:C}=this,U=P(Se("msgHash",k));if(C==null||![0,1,2,3].includes(C))throw new Error("recovery id invalid");let K=C===2||C===3?L+e.n:L;if(K>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let z=C&1?"03":"02",X=u.fromHex(z+p(K)),J=c(K),ae=a(-U*J),ee=a(N*J),ne=u.BASE.multiplyAndAddUnsafe(X,ae,ee);if(!ne)throw new Error("point at infinify");return ne.assertValidity(),ne}hasHighS(){return h(this.s)}normalizeS(){return this.hasHighS()?new y(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return Yr(this.toDERHex())}toDERHex(){return nn.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return Yr(this.toCompactHex())}toCompactHex(){return p(this.r)+p(this.s)}}let x={isValidPrivateKey(R){try{return l(R),!0}catch{return!1}},normPrivateKeyToScalar:l,randomPrivateKey:()=>{let R=_c(e.n);return i0(e.randomBytes(R),e.n)},precompute(R=8,k=u.BASE){return k._setWindowSize(R),k.multiply(BigInt(3)),k}};function b(R,k=!0){return u.fromPrivateKey(R).toRawBytes(k)}function I(R){let k=Dt(R),L=typeof R=="string",N=(k||L)&&R.length;return k?N===i||N===s:L?N===2*i||N===2*s:R instanceof u}function v(R,k,L=!0){if(I(R))throw new Error("first arg must be private key");if(!I(k))throw new Error("second arg must be public key");return u.fromHex(k).multiply(l(R)).toRawBytes(L)}let _=e.bits2int||function(R){let k=sr(R),L=R.length*8-e.nBitLength;return L>0?k>>BigInt(L):k},P=e.bits2int_modN||function(R){return a(_(R))},D=Ai(e.nBitLength);function H(R){if(typeof R!="bigint")throw new Error("bigint expected");if(!(fr<=R&&R<D))throw new Error(`bigint expected < 2^${e.nBitLength}`);return Cr(R,e.nByteLength)}function G(R,k,L=$){if(["recovered","canonical"].some(ve=>ve in L))throw new Error("sign() legacy options not supported");let{hash:N,randomBytes:C}=e,{lowS:U,prehash:K,extraEntropy:z}=L;U==null&&(U=!0),R=Se("msgHash",R),K&&(R=Se("prehashed msgHash",N(R)));let X=P(R),J=l(k),ae=[H(J),H(X)];if(z!=null){let ve=z===!0?C(r.BYTES):z;ae.push(Se("extraEntropy",ve))}let ee=or(...ae),ne=X;function Te(ve){let qe=_(ve);if(!d(qe))return;let Ve=c(qe),Le=u.BASE.multiply(qe).toAffine(),Qe=a(Le.x);if(Qe===fr)return;let jt=a(Ve*a(ne+Qe*J));if(jt===fr)return;let Ur=(Le.x===Qe?0:2)|Number(Le.y&_t),hi=jt;return U&&h(jt)&&(hi=m(jt),Ur^=1),new y(Qe,hi,Ur)}return{seed:ee,k2sig:Te}}let $={lowS:e.lowS,prehash:!1},j={lowS:e.lowS,prehash:!1};function ue(R,k,L=$){let{seed:N,k2sig:C}=G(R,k,L),U=e;return bc(U.hash.outputLen,U.nByteLength,U.hmac)(N,C)}u.BASE._setWindowSize(8);function Ke(R,k,L,N=j){let C=R;if(k=Se("msgHash",k),L=Se("publicKey",L),"strict"in N)throw new Error("options.strict was renamed to lowS");let{lowS:U,prehash:K}=N,z,X;try{if(typeof C=="string"||Dt(C))try{z=y.fromDER(C)}catch(Le){if(!(Le instanceof nn.Err))throw Le;z=y.fromCompact(C)}else if(typeof C=="object"&&typeof C.r=="bigint"&&typeof C.s=="bigint"){let{r:Le,s:Qe}=C;z=new y(Le,Qe)}else throw new Error("PARSE");X=u.fromHex(L)}catch(Le){if(Le.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(U&&z.hasHighS())return!1;K&&(k=e.hash(k));let{r:J,s:ae}=z,ee=P(k),ne=c(ae),Te=a(ee*ne),ve=a(J*ne),qe=u.BASE.multiplyAndAddUnsafe(X,Te,ve)?.toAffine();return qe?a(qe.x)===J:!1}return{CURVE:e,getPublicKey:b,getSharedSecret:v,sign:ue,verify:Ke,ProjectivePoint:u,Signature:y,utils:x}}var Gs=class extends Nn{constructor(e,r){super(),this.finished=!1,this.destroyed=!1,Hh(e);let n=Si(r);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 i=this.blockLen,s=new Uint8Array(i);s.set(n.length>i?e.create().update(n).digest():n);for(let o=0;o<s.length;o++)s[o]^=54;this.iHash.update(s),this.oHash=e.create();for(let o=0;o<s.length;o++)s[o]^=106;this.oHash.update(s),s.fill(0)}update(e){return Dn(this),this.iHash.update(e),this}digestInto(e){Dn(this),hc(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:r,iHash:n,finished:i,destroyed:s,blockLen:o,outputLen:a}=this;return e=e,e.finished=i,e.destroyed=s,e.blockLen=o,e.outputLen=a,e.oHash=r._cloneInto(e.oHash),e.iHash=n._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},Zc=(t,e,r)=>new Gs(t,e).update(r).digest();Zc.create=(t,e)=>new Gs(t,e);function U2(t){return{hash:t,hmac:(e,...r)=>Zc(t,e,Rs(...r)),randomBytes:kn}}function z0(t,e){let r=n=>$0({...t,...U2(n)});return Object.freeze({...r(e),create:r})}var W0=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),H0=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),F2=BigInt(1),jc=BigInt(2),G0=(t,e)=>(t+e/jc)/e;function K2(t){let e=W0,r=BigInt(3),n=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),u=t*t*t%e,l=u*u*t%e,f=xe(l,r,e)*l%e,d=xe(f,r,e)*l%e,p=xe(d,jc,e)*u%e,h=xe(p,i,e)*p%e,m=xe(h,s,e)*h%e,g=xe(m,a,e)*m%e,y=xe(g,c,e)*g%e,x=xe(y,a,e)*m%e,b=xe(x,r,e)*l%e,I=xe(b,o,e)*h%e,v=xe(I,n,e)*u%e,_=xe(v,jc,e);if(!Jc.eql(Jc.sqr(_),t))throw new Error("Cannot find square root");return _}var Jc=ks(W0,void 0,void 0,{sqrt:K2}),Ot=z0({a:BigInt(0),b:BigInt(7),Fp:Jc,n:H0,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:t=>{let e=H0,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-F2*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=r,o=BigInt("0x100000000000000000000000000000000"),a=G0(s*t,e),c=G0(-n*t,e),u=fe(t-a*r-c*i,e),l=fe(-a*n-c*s,e),f=u>o,d=l>o;if(f&&(u=e-u),d&&(l=e-l),u>o||l>o)throw new Error("splitScalar: Endomorphism failed, k="+t);return{k1neg:f,k1:u,k2neg:d,k2:l}}}},q0),a8=BigInt(0);var c8=Ot.ProjectivePoint;function Y0(){return Ot.utils.randomPrivateKey()}function Q0(t,e){let r=$e.digest(e instanceof Uint8Array?e:e.subarray());if(vt(r))return r.then(({digest:n})=>Ot.sign(n,t).toDERRawBytes()).catch(n=>{throw new S(String(n),"ERR_INVALID_INPUT")});try{return Ot.sign(r.digest,t).toDERRawBytes()}catch(n){throw new S(String(n),"ERR_INVALID_INPUT")}}function X0(t,e,r){let n=$e.digest(r instanceof Uint8Array?r:r.subarray());if(vt(n))return n.then(({digest:i})=>Ot.verify(e,i,t)).catch(i=>{throw new S(String(i),"ERR_INVALID_INPUT")});try{return Ot.verify(e,n.digest,t)}catch(i){throw new S(String(i),"ERR_INVALID_INPUT")}}function Z0(t){return Ot.ProjectivePoint.fromHex(t).toRawBytes(!0)}function j0(t){try{Ot.getPublicKey(t,!0)}catch(e){throw new S(String(e),"ERR_INVALID_PRIVATE_KEY")}}function eu(t){try{Ot.ProjectivePoint.fromHex(t)}catch(e){throw new S(String(e),"ERR_INVALID_PUBLIC_KEY")}}function J0(t){try{return Ot.getPublicKey(t,!0)}catch(e){throw new S(String(e),"ERR_INVALID_PRIVATE_KEY")}}var Oi=class{_key;constructor(e){eu(e),this._key=e}verify(e,r){return X0(this._key,r,e)}marshal(){return Z0(this._key)}get bytes(){return Yt.encode({Type:be.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Gt(this.bytes,e.bytes)}async hash(){let e=$e.digest(this.bytes),r;return vt(e)?{bytes:r}=await e:r=e.bytes,r}},Mi=class{_key;_publicKey;constructor(e,r){this._key=e,this._publicKey=r??J0(e),j0(this._key),eu(this._publicKey)}sign(e){return Q0(this._key,e)}get public(){return new Oi(this._publicKey)}marshal(){return this._key}get bytes(){return Qt.encode({Type:be.Secp256k1,Data:this.marshal()}).subarray()}equals(e){return Gt(this.bytes,e.bytes)}hash(){let e=$e.digest(this.bytes);return vt(e)?e.then(({bytes:r})=>r):e.bytes}async id(){let e=await this.public.hash();return mt(e,"base58btc")}async export(e,r="libp2p-key"){if(r==="libp2p-key")return Fn(this.bytes,e);throw new S(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function V2(t){return new Mi(t)}function $2(t){return new Oi(t)}async function z2(){let t=Y0();return new Mi(t)}var Lr={rsa:Qc,ed25519:zc,secp256k1:tu};function ru(t){let e=Object.keys(Lr).join(" / ");return new S(`invalid or unsupported key type ${t}. Must be ${e}`,"ERR_UNSUPPORTED_KEY_TYPE")}function nu(t){if(t=t.toLowerCase(),t==="rsa"||t==="ed25519"||t==="secp256k1")return Lr[t];throw ru(t)}async function ed(t,e){return nu(t).generateKeyPair(e??2048)}function Ui(t){let e=Yt.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case be.RSA:return Lr.rsa.unmarshalRsaPublicKey(r);case be.Ed25519:return Lr.ed25519.unmarshalEd25519PublicKey(r);case be.Secp256k1:return Lr.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw ru(e.Type??"unknown")}}function td(t,e){return e=(e??"rsa").toLowerCase(),nu(e),t.bytes}async function iu(t){let e=Qt.decode(t),r=e.Data??new Uint8Array;switch(e.Type){case be.RSA:return Lr.rsa.unmarshalRsaPrivateKey(r);case be.Ed25519:return Lr.ed25519.unmarshalEd25519PrivateKey(r);case be.Secp256k1:return Lr.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw ru(e.Type??"RSA")}}function rd(t,e){return e=(e??"rsa").toLowerCase(),nu(e),t.bytes}var bt=we(ou(),1);bt.default.formatters.b=t=>t==null?"undefined":Ee.baseEncode(t);bt.default.formatters.t=t=>t==null?"undefined":dt.baseEncode(t);bt.default.formatters.m=t=>t==null?"undefined":Rn.baseEncode(t);bt.default.formatters.p=t=>t==null?"undefined":t.toString();bt.default.formatters.c=t=>t==null?"undefined":t.toString();bt.default.formatters.k=t=>t==null?"undefined":t.toString();bt.default.formatters.a=t=>t==null?"undefined":t.toString();function iw(t){let e=()=>{};return e.enabled=!1,e.color="",e.diff=0,e.log=()=>{},e.namespace=t,e.destroy=()=>!0,e.extend=()=>e,e}function Qs(){return{forComponent(t){return sw(t)}}}function sw(t){let e=iw(`${t}:trace`);return bt.default.enabled(`${t}:trace`)&&bt.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(e=(0,bt.default)(`${t}:trace`)),Object.assign((0,bt.default)(t),{error:(0,bt.default)(`${t}:error`),trace:e})}function au(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}var ow=Symbol.for("nodejs.util.inspect.custom"),od=Object.values(de).map(t=>t.decoder).reduce((t,e)=>t.or(e),de.identity.decoder),ad=114,cu=36,uu=37,Fi=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()})`}[Fa]=!0;toString(){return this.string==null&&(this.string=Ee.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Bt.createV1(ad,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(e){if(e instanceof Uint8Array)return au(this.multihash.bytes,e);if(typeof e=="string")return se(e).equals(this);if(e?.multihash?.bytes!=null)return au(this.multihash.bytes,e.multihash.bytes);throw new Error("not valid Id")}[ow](){return`PeerId(${this.toString()})`}},on=class extends Fi{type="RSA";publicKey;constructor(e){super({...e,type:"RSA"}),this.publicKey=e.publicKey}},an=class extends Fi{type="Ed25519";publicKey;constructor(e){super({...e,type:"Ed25519"}),this.publicKey=e.multihash.digest}},cn=class extends Fi{type="secp256k1";publicKey;constructor(e){super({...e,type:"secp256k1"}),this.publicKey=e.multihash.digest}};function cd(t){if(t.type==="RSA")return new on(t);if(t.type==="Ed25519")return new an(t);if(t.type==="secp256k1")return new cn(t);throw new S("Not a PeerId","ERR_INVALID_PARAMETERS")}function se(t,e){if(e=e??od,t.charAt(0)==="1"||t.charAt(0)==="Q"){let r=Hr(Ee.decode(`z${t}`));return t.startsWith("12D")?new an({multihash:r}):t.startsWith("16U")?new cn({multihash:r}):new on({multihash:r})}return Gn(od.decode(t))}function Gn(t){try{let e=Hr(t);if(e.code===_r.code){if(e.digest.length===cu)return new an({multihash:e});if(e.digest.length===uu)return new cn({multihash:e})}if(e.code===$e.code)return new on({multihash:e})}catch{return aw(Bt.decode(t))}throw new Error("Supplied PeerID CID is invalid")}function aw(t){if(t==null||t.multihash==null||t.version==null||t.version===1&&t.code!==ad)throw new Error("Supplied PeerID CID is invalid");let e=t.multihash;if(e.code===$e.code)return new on({multihash:t.multihash});if(e.code===_r.code){if(e.digest.length===cu)return new an({multihash:t.multihash});if(e.digest.length===uu)return new cn({multihash:t.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function Xs(t,e){return t.length===cu?new an({multihash:Ht(_r.code,t),privateKey:e}):t.length===uu?new cn({multihash:Ht(_r.code,t),privateKey:e}):new on({multihash:await $e.digest(t),publicKey:t,privateKey:e})}function hr(t,e){let r={[Symbol.iterator]:()=>r,next:()=>{let n=t.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:e(i)}}};return r}var je=class{map;constructor(e){if(this.map=new Map,e!=null)for(let[r,n]of e.entries())this.map.set(r.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(e){return this.map.delete(e.toString())}entries(){return hr(this.map.entries(),e=>[se(e[0]),e[1]])}forEach(e){this.map.forEach((r,n)=>{e(r,se(n),this)})}get(e){return this.map.get(e.toString())}has(e){return this.map.has(e.toString())}set(e,r){this.map.set(e.toString(),r)}keys(){return hr(this.map.keys(),e=>se(e))}values(){return this.map.values()}get size(){return this.map.size}};var St=class t{set;constructor(e){if(this.set=new Set,e!=null)for(let r of e)this.set.add(r.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(e){this.set.add(e.toString())}clear(){this.set.clear()}delete(e){this.set.delete(e.toString())}entries(){return hr(this.set.entries(),e=>{let r=se(e[0]);return[r,r]})}forEach(e){this.set.forEach(r=>{let n=se(r);e(n,n,this)})}has(e){return this.set.has(e.toString())}values(){return hr(this.set.values(),e=>se(e))}intersection(e){let r=new t;for(let n of e)this.has(n)&&r.add(n);return r}difference(e){let r=new t;for(let n of this)e.has(n)||r.add(n);return r}union(e){let r=new t;for(let n of e)r.add(n);for(let n of this)r.add(n);return r}};var Zs=class t{list;constructor(e){if(this.list=[],e!=null)for(let r of e)this.list.push(r.toString())}[Symbol.iterator](){return hr(this.list.entries(),e=>se(e[1]))}concat(e){let r=new t(this);for(let n of e)r.push(n);return r}entries(){return hr(this.list.entries(),e=>[e[0],se(e[1])])}every(e){return this.list.every((r,n)=>e(se(r),n,this))}filter(e){let r=new t;return this.list.forEach((n,i)=>{let s=se(n);e(s,i,this)&&r.push(s)}),r}find(e){let r=this.list.find((n,i)=>e(se(n),i,this));if(r!=null)return se(r)}findIndex(e){return this.list.findIndex((r,n)=>e(se(r),n,this))}forEach(e){this.list.forEach((r,n)=>{e(se(r),n,this)})}includes(e){return this.list.includes(e.toString())}indexOf(e){return this.list.indexOf(e.toString())}pop(){let e=this.list.pop();if(e!=null)return se(e)}push(...e){for(let r of e)this.list.push(r.toString())}shift(){let e=this.list.shift();if(e!=null)return se(e)}unshift(...e){let r=this.list.length;for(let n=e.length-1;n>-1;n--)r=this.list.unshift(e[n].toString());return r}clear(){this.list=[]}get length(){return this.list.length}};function lu(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function ud(t=0){return globalThis.Buffer?.allocUnsafe!=null?lu(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function fd(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var ld=fd("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),fu=fd("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=ud(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),BC={utf8:ld,"utf-8":ld,hex:de.base16,latin1:fu,ascii:fu,binary:fu,...de};var hu;(function(t){let e;t.codec=()=>(e==null&&(e=Ge((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.id!=null&&(n.uint32(10),n.bytes(r.id)),r.pubKey!=null&&(n.uint32(18),n.bytes(r.pubKey)),r.privKey!=null&&(n.uint32(26),n.bytes(r.privKey)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.id=r.bytes();break;case 2:i.pubKey=r.bytes();break;case 3:i.privKey=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>He(r,t.codec()),t.decode=r=>ze(r,t.codec())})(hu||(hu={}));var hd=async()=>{let t=await ed("Ed25519"),e=await cw(t);if(e.type==="Ed25519")return e;throw new Error(`Generated unexpected PeerId type "${e.type}"`)};async function cw(t){return Xs(td(t.public),rd(t))}var uw=Math.pow(2,7),lw=Math.pow(2,14),fw=Math.pow(2,21),du=Math.pow(2,28),pu=Math.pow(2,35),mu=Math.pow(2,42),gu=Math.pow(2,49),oe=128,Je=127;function et(t){if(t<uw)return 1;if(t<lw)return 2;if(t<fw)return 3;if(t<du)return 4;if(t<pu)return 5;if(t<mu)return 6;if(t<gu)return 7;if(Number.MAX_SAFE_INTEGER!=null&&t>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function hw(t,e,r=0){switch(et(t)){case 8:e[r++]=t&255|oe,t/=128;case 7:e[r++]=t&255|oe,t/=128;case 6:e[r++]=t&255|oe,t/=128;case 5:e[r++]=t&255|oe,t/=128;case 4:e[r++]=t&255|oe,t>>>=7;case 3:e[r++]=t&255|oe,t>>>=7;case 2:e[r++]=t&255|oe,t>>>=7;case 1:{e[r++]=t&255,t>>>=7;break}default:throw new Error("unreachable")}return e}function dw(t,e,r=0){switch(et(t)){case 8:e.set(r++,t&255|oe),t/=128;case 7:e.set(r++,t&255|oe),t/=128;case 6:e.set(r++,t&255|oe),t/=128;case 5:e.set(r++,t&255|oe),t/=128;case 4:e.set(r++,t&255|oe),t>>>=7;case 3:e.set(r++,t&255|oe),t>>>=7;case 2:e.set(r++,t&255|oe),t>>>=7;case 1:{e.set(r++,t&255),t>>>=7;break}default:throw new Error("unreachable")}return e}function pw(t,e){let r=t[e],n=0;if(n+=r&Je,r<oe||(r=t[e+1],n+=(r&Je)<<7,r<oe)||(r=t[e+2],n+=(r&Je)<<14,r<oe)||(r=t[e+3],n+=(r&Je)<<21,r<oe)||(r=t[e+4],n+=(r&Je)*du,r<oe)||(r=t[e+5],n+=(r&Je)*pu,r<oe)||(r=t[e+6],n+=(r&Je)*mu,r<oe)||(r=t[e+7],n+=(r&Je)*gu,r<oe))return n;throw new RangeError("Could not decode varint")}function mw(t,e){let r=t.get(e),n=0;if(n+=r&Je,r<oe||(r=t.get(e+1),n+=(r&Je)<<7,r<oe)||(r=t.get(e+2),n+=(r&Je)<<14,r<oe)||(r=t.get(e+3),n+=(r&Je)<<21,r<oe)||(r=t.get(e+4),n+=(r&Je)*du,r<oe)||(r=t.get(e+5),n+=(r&Je)*pu,r<oe)||(r=t.get(e+6),n+=(r&Je)*mu,r<oe)||(r=t.get(e+7),n+=(r&Je)*gu,r<oe))return n;throw new RangeError("Could not decode varint")}function ut(t,e,r=0){return e==null&&(e=Ze(et(t))),e instanceof Uint8Array?hw(t,e,r):dw(t,e,r)}function Mt(t,e=0){return t instanceof Uint8Array?pw(t,e):mw(t,e)}function At(t,e){e==null&&(e=t.reduce((i,s)=>i+s.length,0));let r=Ze(e),n=0;for(let i of t)r.set(i,n),n+=i.length;return jr(r)}function js(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}var pd=Symbol.for("@achingbrain/uint8arraylist");function dd(t,e){if(e==null||e<0)throw new RangeError("index is out of bounds");let r=0;for(let n of t){let i=r+n.byteLength;if(e<i)return{buf:n,index:e-r};r=i}throw new RangeError("index is out of bounds")}function Js(t){return!!t?.[pd]}var Fe=class t{bufs;length;[pd]=!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 r=0;for(let n of e)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(Js(n))r+=n.byteLength,this.bufs.push(...n.bufs);else throw new Error("Could not append value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}prepend(...e){this.prependAll(e)}prependAll(e){let r=0;for(let n of e.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(Js(n))r+=n.byteLength,this.bufs.unshift(...n.bufs);else throw new Error("Could not prepend value, must be an Uint8Array or a Uint8ArrayList");this.length+=r}get(e){let r=dd(this.bufs,e);return r.buf[r.index]}set(e,r){let n=dd(this.bufs,e);n.buf[n.index]=r}write(e,r=0){if(e instanceof Uint8Array)for(let n=0;n<e.length;n++)this.set(r+n,e[n]);else if(Js(e))for(let n=0;n<e.length;n++)this.set(r+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,r){let{bufs:n,length:i}=this._subList(e,r);return At(n,i)}subarray(e,r){let{bufs:n,length:i}=this._subList(e,r);return n.length===1?n[0]:At(n,i)}sublist(e,r){let{bufs:n,length:i}=this._subList(e,r),s=new t;return s.length=i,s.bufs=[...n],s}_subList(e,r){if(e=e??0,r=r??this.length,e<0&&(e=this.length+e),r<0&&(r=this.length+r),e<0||r>this.length)throw new RangeError("index is out of bounds");if(e===r)return{bufs:[],length:0};if(e===0&&r===this.length)return{bufs:this.bufs,length:this.length};let n=[],i=0;for(let s=0;s<this.bufs.length;s++){let o=this.bufs[s],a=i,c=a+o.byteLength;if(i=c,e>=c)continue;let u=e>=a&&e<c,l=r>a&&r<=c;if(u&&l){if(e===a&&r===c){n.push(o);break}let f=e-a;n.push(o.subarray(f,f+(r-e)));break}if(u){if(e===0){n.push(o);continue}n.push(o.subarray(e-a));continue}if(l){if(r===c){n.push(o);break}n.push(o.subarray(0,r-a));break}n.push(o)}return{bufs:n,length:r-e}}indexOf(e,r=0){if(!Js(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(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),e.length===0)return r>this.length?this.length:r;let i=n.byteLength;if(i===0)throw new TypeError("search must be at least 1 byte long");let s=256,o=new Int32Array(s);for(let f=0;f<s;f++)o[f]=-1;for(let f=0;f<i;f++)o[n[f]]=f;let a=o,c=this.byteLength-n.byteLength,u=n.byteLength-1,l;for(let f=r;f<=c;f+=l){l=0;for(let d=u;d>=0;d--){let p=this.get(f+d);if(n[d]!==p){l=Math.max(1,d-a[p]);break}}if(l===0)return f}return-1}getInt8(e){let r=this.subarray(e,e+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(e,r){let n=Ze(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,e)}getInt16(e,r){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(e,r,n){let i=ur(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,r,n),this.write(i,e)}getInt32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(e,r,n){let i=ur(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,r,n),this.write(i,e)}getBigInt64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(e,r,n){let i=ur(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,e)}getUint8(e){let r=this.subarray(e,e+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(e,r){let n=Ze(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,e)}getUint16(e,r){let n=this.subarray(e,e+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(e,r,n){let i=ur(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,r,n),this.write(i,e)}getUint32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(e,r,n){let i=ur(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,r,n),this.write(i,e)}getBigUint64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(e,r,n){let i=ur(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,r,n),this.write(i,e)}getFloat32(e,r){let n=this.subarray(e,e+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(e,r,n){let i=ur(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,r,n),this.write(i,e)}getFloat64(e,r){let n=this.subarray(e,e+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(e,r,n){let i=ur(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,e)}equals(e){if(e==null||!(e instanceof t)||e.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!js(this.bufs[r],e.bufs[r]))return!1;return!0}static fromUint8Arrays(e,r){let n=new t;return n.bufs=e,r==null&&(r=e.reduce((i,s)=>i+s.byteLength,0)),n.length=r,n}};function md(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}function eo(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function gd(t=0){return globalThis.Buffer?.allocUnsafe!=null?eo(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function xd(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var yd=xd("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),yu=xd("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=gd(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),gw={utf8:yd,"utf-8":yd,hex:de.base16,latin1:yu,ascii:yu,binary:yu,...de},bd=gw;function wd(t,e="utf8"){let r=bd[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?eo(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}var Ed={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var Ki;(function(t){let e;t.codec=()=>(e==null&&(e=Ge((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.publicKey!=null&&r.publicKey.byteLength>0&&(n.uint32(10),n.bytes(r.publicKey)),r.payloadType!=null&&r.payloadType.byteLength>0&&(n.uint32(18),n.bytes(r.payloadType)),r.payload!=null&&r.payload.byteLength>0&&(n.uint32(26),n.bytes(r.payload)),r.signature!=null&&r.signature.byteLength>0&&(n.uint32(42),n.bytes(r.signature)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={publicKey:new Uint8Array(0),payloadType:new Uint8Array(0),payload:new Uint8Array(0),signature:new Uint8Array(0)},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.publicKey=r.bytes();break;case 2:i.payloadType=r.bytes();break;case 3:i.payload=r.bytes();break;case 5:i.signature=r.bytes();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>He(r,t.codec()),t.decode=r=>ze(r,t.codec())})(Ki||(Ki={}));var Wn=class t{static createFromProtobuf=async e=>{let r=Ki.decode(e),n=await Xs(r.publicKey);return new t({peerId:n,payloadType:r.payloadType,payload:r.payload,signature:r.signature})};static seal=async(e,r)=>{if(r.privateKey==null)throw new Error("Missing private key");let n=e.domain,i=e.codec,s=e.marshal(),o=vd(n,i,s),c=await(await iu(r.privateKey)).sign(o.subarray());return new t({peerId:r,payloadType:i,payload:s,signature:c})};static openAndCertify=async(e,r)=>{let n=await t.createFromProtobuf(e);if(!await n.validate(r))throw new S("envelope signature is not valid for the given domain",Ed.ERR_SIGNATURE_NOT_VALID);return n};peerId;payloadType;payload;signature;marshaled;constructor(e){let{peerId:r,payloadType:n,payload:i,signature:s}=e;this.peerId=r,this.payloadType=n,this.payload=i,this.signature=s}marshal(){if(this.peerId.publicKey==null)throw new Error("Missing public key");return this.marshaled==null&&(this.marshaled=Ki.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(e){return md(this.marshal(),e.marshal())}async validate(e){let r=vd(e,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return Ui(this.peerId.publicKey).verify(r.subarray(),this.signature)}},vd=(t,e,r)=>{let n=wd(t),i=ut(n.byteLength),s=ut(e.length),o=ut(r.length);return new Fe(i,n,s,e,o,r)};function _d(t,e){let r=(n,i)=>n.toString().localeCompare(i.toString());return t.length!==e.length?!1:(e.sort(r),t.sort(r).every((n,i)=>e[i].equals(n)))}function lt(t,e="utf8"){let r=qs[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):r.encoder.encode(t).substring(1)}var to=class{index=0;input="";new(e){return this.index=0,this.input=e,this}readAtomically(e){let r=this.index,n=e();return n===void 0&&(this.index=r),n}parseWith(e){let r=e();if(this.index===this.input.length)return r}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 r=this.readChar();if(r===e)return r})}readSeparator(e,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(e)===void 0))return n()})}readNumber(e,r,n,i){return this.readAtomically(()=>{let s=0,o=0,a=this.peekChar();if(a===void 0)return;let c=a==="0",u=2**(8*i)-1;for(;;){let l=this.readAtomically(()=>{let f=this.readChar();if(f===void 0)return;let d=Number.parseInt(f,e);if(!Number.isNaN(d))return d});if(l===void 0)break;if(s*=e,s+=l,s>u||(o+=1,r!==void 0&&o>r))return}if(o!==0)return!n&&c&&o>1?void 0:s})}readIPv4Addr(){return this.readAtomically(()=>{let e=new Uint8Array(4);for(let r=0;r<e.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;e[r]=n}return e})}readIPv6Addr(){let e=r=>{for(let n=0;n<r.length/2;n++){let i=n*2;if(n<r.length-3){let o=this.readSeparator(":",n,()=>this.readIPv4Addr());if(o!==void 0)return r[i]=o[0],r[i+1]=o[1],r[i+2]=o[2],r[i+3]=o[3],[i+4,!0]}let s=this.readSeparator(":",n,()=>this.readNumber(16,4,!0,2));if(s===void 0)return[i,!1];r[i]=s>>8,r[i+1]=s&255}return[r.length,!1]};return this.readAtomically(()=>{let r=new Uint8Array(16),[n,i]=e(r);if(n===16)return r;if(i||this.readGivenChar(":")===void 0||this.readGivenChar(":")===void 0)return;let s=new Uint8Array(14),o=16-(n+2),[a]=e(s.subarray(0,o));return r.set(s.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Sd=45,yw=15,Yn=new to;function xu(t){if(!(t.length>yw))return Yn.new(t).parseWith(()=>Yn.readIPv4Addr())}function bu(t){if(t.includes("%")&&(t=t.split("%")[0]),!(t.length>Sd))return Yn.new(t).parseWith(()=>Yn.readIPv6Addr())}function ro(t){if(t.includes("%")&&(t=t.split("%")[0]),!(t.length>Sd))return Yn.new(t).parseWith(()=>Yn.readIPAddr())}var DT=parseInt("0xFFFF",16),NT=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function no(t){return!!xu(t)}function io(t){return!!bu(t)}function Qn(t){return!!ro(t)}var Cd=no,vw=io,wu=function(t){let e=0;if(t=t.toString().trim(),Cd(t)){let r=new Uint8Array(e+4);return t.split(/\./g).forEach(n=>{r[e++]=parseInt(n,10)&255}),r}if(vw(t)){let r=t.split(":",8),n;for(n=0;n<r.length;n++){let s=Cd(r[n]),o;s&&(o=wu(r[n]),r[n]=lt(o.slice(0,2),"base16")),o!=null&&++n<8&&r.splice(n,0,lt(o.slice(2,4),"base16"))}if(r[0]==="")for(;r.length<8;)r.unshift("0");else if(r[r.length-1]==="")for(;r.length<8;)r.push("0");else if(r.length<8){for(n=0;n<r.length&&r[n]!=="";n++);let s=[n,1];for(n=9-r.length;n>0;n--)s.push("0");r.splice.apply(r,s)}let i=new Uint8Array(e+16);for(n=0;n<r.length;n++){let s=parseInt(r[n],16);i[e++]=s>>8&255,i[e++]=s&255}return i}throw new Error("invalid ip address")},Td=function(t,e=0,r){e=~~e,r=r??t.length-e;let n=new DataView(t.buffer);if(r===4){let i=[];for(let s=0;s<r;s++)i.push(t[e+s]);return i.join(".")}if(r===16){let i=[];for(let s=0;s<r;s+=2)i.push(n.getUint16(e+s).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var Xn={},Eu={},Sw=[[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"],[777,-1,"memory"]];Sw.forEach(t=>{let e=Aw(...t);Eu[e.code]=e,Xn[e.name]=e});function Aw(t,e,r,n,i){return{code:t,size:e,name:r,resolvable:!!n,path:!!i}}function ce(t){if(typeof t=="number"){if(Eu[t]!=null)return Eu[t];throw new Error(`no protocol with code: ${t}`)}else if(typeof t=="string"){if(Xn[t]!=null)return Xn[t];throw new Error(`no protocol with name: ${t}`)}throw new Error(`invalid protocol id type: ${typeof t}`)}var yR=ce("ip4"),xR=ce("ip6"),bR=ce("ipcidr");function _u(t,e){switch(ce(t).code){case 4:case 41:return Cw(e);case 42:return Ld(e);case 6:case 273:case 33:case 132:return Dd(e).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Ld(e);case 421:return Lw(e);case 444:return Pd(e);case 445:return Pd(e);case 466:return Bw(e);default:return lt(e,"base16")}}function Su(t,e){switch(ce(t).code){case 4:return Rd(e);case 41:return Rd(e);case 42:return Bd(e);case 6:case 273:case 33:case 132:return Au(parseInt(e,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return Bd(e);case 421:return Tw(e);case 444:return Pw(e);case 445:return Dw(e);case 466:return Rw(e);default:return Ci(e,"base16")}}var vu=Object.values(de).map(t=>t.decoder),Iw=function(){let t=vu[0].or(vu[1]);return vu.slice(2).forEach(e=>t=t.or(e)),t}();function Rd(t){if(!Qn(t))throw new Error("invalid ip address");return wu(t)}function Cw(t){let e=Td(t,0,t.length);if(e==null)throw new Error("ipBuff is required");if(!Qn(e))throw new Error("invalid ip address");return e}function Au(t){let e=new ArrayBuffer(2);return new DataView(e).setUint16(0,t),new Uint8Array(e)}function Dd(t){return new DataView(t.buffer).getUint16(t.byteOffset)}function Bd(t){let e=Ci(t),r=Uint8Array.from(ut(e.length));return At([r,e],r.length+e.length)}function Ld(t){let e=Mt(t);if(t=t.slice(et(e)),t.length!==e)throw new Error("inconsistent lengths");return lt(t)}function Tw(t){let e;t[0]==="Q"||t[0]==="1"?e=Hr(Ee.decode(`z${t}`)).bytes:e=Bt.parse(t).multihash.bytes;let r=Uint8Array.from(ut(e.length));return At([r,e],r.length+e.length)}function Rw(t){let e=Iw.decode(t),r=Uint8Array.from(ut(e.length));return At([r,e],r.length+e.length)}function Bw(t){let e=Mt(t),r=t.slice(et(e));if(r.length!==e)throw new Error("inconsistent lengths");return"u"+lt(r,"base64url")}function Lw(t){let e=Mt(t),r=t.slice(et(e));if(r.length!==e)throw new Error("inconsistent lengths");return lt(r,"base58btc")}function Pw(t){let e=t.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 r=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 i=Au(n);return At([r,i],r.length+i.length)}function Dw(t){let e=t.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 r=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 i=Au(n);return At([r,i],r.length+i.length)}function Pd(t){let e=t.slice(0,t.length-2),r=t.slice(t.length-2),n=lt(e,"base32"),i=Dd(r);return`${n}:${i}`}function Nd(t){t=Iu(t);let e=[],r=[],n=null,i=t.split("/").slice(1);if(i.length===1&&i[0]==="")return{bytes:new Uint8Array,string:"/",tuples:[],stringTuples:[],path:null};for(let s=0;s<i.length;s++){let o=i[s],a=ce(o);if(a.size===0){e.push([a.code]),r.push([a.code]);continue}if(s++,s>=i.length)throw Od("invalid address: "+t);if(a.path===!0){n=Iu(i.slice(s).join("/")),e.push([a.code,Su(a.code,n)]),r.push([a.code,n]);break}let c=Su(a.code,i[s]);e.push([a.code,c]),r.push([a.code,_u(a.code,c)])}return{string:kd(r),bytes:Tu(e),tuples:e,stringTuples:r,path:n}}function Cu(t){let e=[],r=[],n=null,i=0;for(;i<t.length;){let s=Mt(t,i),o=et(s),a=ce(s),c=Nw(a,t.slice(i+o));if(c===0){e.push([s]),r.push([s]),i+=o;continue}let u=t.slice(i+o,i+o+c);if(i+=c+o,i>t.length)throw Od("Invalid address Uint8Array: "+lt(t,"base16"));e.push([s,u]);let l=_u(s,u);if(r.push([s,l]),a.path===!0){n=l;break}}return{bytes:Uint8Array.from(t),string:kd(r),tuples:e,stringTuples:r,path:n}}function kd(t){let e=[];return t.map(r=>{let n=ce(r[0]);return e.push(n.name),r.length>1&&r[1]!=null&&e.push(r[1]),null}),Iu(e.join("/"))}function Tu(t){return At(t.map(e=>{let r=ce(e[0]),n=Uint8Array.from(ut(r.code));return e.length>1&&e[1]!=null&&(n=At([n,e[1]])),n}))}function Nw(t,e){if(t.size>0)return t.size/8;if(t.size===0)return 0;{let r=Mt(e instanceof Uint8Array?e:Uint8Array.from(e));return r+et(r)}}function Iu(t){return"/"+t.trim().split("/").filter(e=>e).join("/")}function Od(t){return new Error("Error parsing address: "+t)}var kw=Symbol.for("nodejs.util.inspect.custom"),Ru=Symbol.for("@multiformats/js-multiaddr/multiaddr"),Ow=[ce("dns").code,ce("dns4").code,ce("dns6").code,ce("dnsaddr").code],so=class t{bytes;#e;#i;#s;#a;[Ru]=!0;constructor(e){e==null&&(e="");let r;if(e instanceof Uint8Array)r=Cu(e);else if(typeof e=="string"){if(e.length>0&&e.charAt(0)!=="/")throw new Error(`multiaddr "${e}" must start with a "/"`);r=Nd(e)}else if(Pr(e))r=Cu(e.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#e=r.string,this.#i=r.tuples,this.#s=r.stringTuples,this.#a=r.path}toString(){return this.#e}toJSON(){return this.toString()}toOptions(){let e,r,n,i,s="",o=ce("tcp"),a=ce("udp"),c=ce("ip4"),u=ce("ip6"),l=ce("dns6"),f=ce("ip6zone");for(let[p,h]of this.stringTuples())p===f.code&&(s=`%${h??""}`),Ow.includes(p)&&(r=o.name,i=443,n=`${h??""}${s}`,e=p===l.code?6:4),(p===o.code||p===a.code)&&(r=ce(p).name,i=parseInt(h??"")),(p===c.code||p===u.code)&&(r=ce(p).name,n=`${h??""}${s}`,e=p===u.code?6:4);if(e==null||r==null||n==null||i==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:r,port:i}}protos(){return this.#i.map(([e])=>Object.assign({},ce(e)))}protoCodes(){return this.#i.map(([e])=>e)}protoNames(){return this.#i.map(([e])=>ce(e).name)}tuples(){return this.#i}stringTuples(){return this.#s}encapsulate(e){return e=new t(e),new t(this.toString()+e.toString())}decapsulate(e){let r=e.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${e.toString()}`);return new t(n.slice(0,i))}decapsulateCode(e){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===e)return new t(Tu(r.slice(0,n)));return this}getPeerId(){try{let e=[];this.stringTuples().forEach(([n,i])=>{n===Xn.p2p.code&&e.push([n,i]),n===Xn["p2p-circuit"].code&&(e=[])});let r=e.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?lt(Ee.decode(`z${n}`),"base58btc"):lt(Bt.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#a}equals(e){return js(this.bytes,e.bytes)}async resolve(e){let r=this.protos().find(s=>s.resolvable);if(r==null)return[this];let n=oo.get(r.name);if(n==null)throw new S(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,e)).map(s=>new t(s))}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 r=(e??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[kw](){return`Multiaddr(${this.#e})`}};var oo=new Map;function Pr(t){return!!t?.[Ru]}function De(t){return new so(t)}var Md="libp2p-peer-record",Ud=Uint8Array.from([3,1]);var qi;(function(t){let e;(function(n){let i;n.codec=()=>(i==null&&(i=Ge((s,o,a={})=>{a.lengthDelimited!==!1&&o.fork(),s.multiaddr!=null&&s.multiaddr.byteLength>0&&(o.uint32(10),o.bytes(s.multiaddr)),a.lengthDelimited!==!1&&o.ldelim()},(s,o)=>{let a={multiaddr:new Uint8Array(0)},c=o==null?s.len:s.pos+o;for(;s.pos<c;){let u=s.uint32();switch(u>>>3){case 1:a.multiaddr=s.bytes();break;default:s.skipType(u&7);break}}return a})),i),n.encode=s=>He(s,n.codec()),n.decode=s=>ze(s,n.codec())})(e=t.AddressInfo||(t.AddressInfo={}));let r;t.codec=()=>(r==null&&(r=Ge((n,i,s={})=>{if(s.lengthDelimited!==!1&&i.fork(),n.peerId!=null&&n.peerId.byteLength>0&&(i.uint32(10),i.bytes(n.peerId)),n.seq!=null&&n.seq!==0n&&(i.uint32(16),i.uint64(n.seq)),n.addresses!=null)for(let o of n.addresses)i.uint32(26),t.AddressInfo.codec().encode(o,i);s.lengthDelimited!==!1&&i.ldelim()},(n,i)=>{let s={peerId:new Uint8Array(0),seq:0n,addresses:[]},o=i==null?n.len:n.pos+i;for(;n.pos<o;){let a=n.uint32();switch(a>>>3){case 1:s.peerId=n.bytes();break;case 2:s.seq=n.uint64();break;case 3:s.addresses.push(t.AddressInfo.codec().decode(n,n.uint32()));break;default:n.skipType(a&7);break}}return s})),r),t.encode=n=>He(n,t.codec()),t.decode=n=>ze(n,t.codec())})(qi||(qi={}));var ln=class t{static createFromProtobuf=e=>{let r=qi.decode(e),n=Gn(r.peerId),i=(r.addresses??[]).map(o=>De(o.multiaddr)),s=r.seq;return new t({peerId:n,multiaddrs:i,seqNumber:s})};static DOMAIN=Md;static CODEC=Ud;peerId;multiaddrs;seqNumber;domain=t.DOMAIN;codec=t.CODEC;marshaled;constructor(e){let{peerId:r,multiaddrs:n,seqNumber:i}=e;this.peerId=r,this.multiaddrs=n??[],this.seqNumber=i??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=qi.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(e=>({multiaddr:e.bytes}))})),this.marshaled}equals(e){return!(!(e instanceof t)||!this.peerId.equals(e.peerId)||this.seqNumber!==e.seqNumber||!_d(this.multiaddrs,e.multiaddrs))}};function Mw(t){return t[Symbol.asyncIterator]!=null}function Uw(t){if(Mw(t))return(async()=>{let r=[];for await(let n of t)r.push(n);return r})();let e=[];for(let r of t)e.push(r);return e}var Vi=Uw;var fn=we(Kd(),1);var dr=class extends Error{constructor(e){super(e),this.name="TimeoutError"}},Lu=class extends Error{constructor(e){super(),this.name="AbortError",this.message=e}},qd=t=>globalThis.DOMException===void 0?new Lu(t):new DOMException(t),Vd=t=>{let e=t.reason===void 0?qd("This operation was aborted."):t.reason;return e instanceof Error?e:qd(e)};function pr(t,e){let{milliseconds:r,fallback:n,message:i,customTimers:s={setTimeout,clearTimeout}}=e,o,c=new Promise((u,l)=>{if(typeof r!="number"||Math.sign(r)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${r}\``);if(e.signal){let{signal:d}=e;d.aborted&&l(Vd(d)),d.addEventListener("abort",()=>{l(Vd(d))})}if(r===Number.POSITIVE_INFINITY){t.then(u,l);return}let f=new dr;o=s.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(d){l(d)}return}typeof t.cancel=="function"&&t.cancel(),i===!1?u():i instanceof Error?l(i):(f.message=i??`Promise timed out after ${r} milliseconds`,l(f))},r),(async()=>{try{u(await t)}catch(d){l(d)}})()}).finally(()=>{c.clear()});return c.clear=()=>{s.clearTimeout.call(void 0,o),o=void 0},c}function Pu(t,e,r){let n=0,i=t.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(t[o],e)<=0?(n=++o,i-=s+1):i=s}return n}var zi=class{#e=[];enqueue(e,r){r={priority:0,...r};let n={priority:r.priority,run:e};if(this.size&&this.#e[this.size-1].priority>=r.priority){this.#e.push(n);return}let i=Pu(this.#e,n,(s,o)=>o.priority-s.priority);this.#e.splice(i,0,n)}dequeue(){return this.#e.shift()?.run}filter(e){return this.#e.filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return this.#e.length}};var Zn=class extends fn.default{#e;#i;#s=0;#a;#c;#p=0;#r;#u;#t;#m;#n=0;#l;#o;#g;timeout;constructor(e){if(super(),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:zi,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);this.#e=e.carryoverConcurrencyCount,this.#i=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#a=e.intervalCap,this.#c=e.interval,this.#t=new e.queueClass,this.#m=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#g=e.throwOnTimeout===!0,this.#o=e.autoStart===!1}get#b(){return this.#i||this.#s<this.#a}get#w(){return this.#n<this.#l}#E(){this.#n--,this.#f(),this.emit("next")}#v(){this.#x(),this.#y(),this.#u=void 0}get#_(){let e=Date.now();if(this.#r===void 0){let r=this.#p-e;if(r<0)this.#s=this.#e?this.#n:0;else return this.#u===void 0&&(this.#u=setTimeout(()=>{this.#v()},r)),!0}return!1}#f(){if(this.#t.size===0)return this.#r&&clearInterval(this.#r),this.#r=void 0,this.emit("empty"),this.#n===0&&this.emit("idle"),!1;if(!this.#o){let e=!this.#_;if(this.#b&&this.#w){let r=this.#t.dequeue();return r?(this.emit("active"),r(),e&&this.#y(),!0):!1}}return!1}#y(){this.#i||this.#r!==void 0||(this.#r=setInterval(()=>{this.#x()},this.#c),this.#p=Date.now()+this.#c)}#x(){this.#s===0&&this.#n===0&&this.#r&&(clearInterval(this.#r),this.#r=void 0),this.#s=this.#e?this.#n:0,this.#h()}#h(){for(;this.#f(););}get concurrency(){return this.#l}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#l=e,this.#h()}async#S(e){return new Promise((r,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}async add(e,r={}){return r={timeout:this.timeout,throwOnTimeout:this.#g,...r},new Promise((n,i)=>{this.#t.enqueue(async()=>{this.#n++,this.#s++;try{r.signal?.throwIfAborted();let s=e({signal:r.signal});r.timeout&&(s=pr(Promise.resolve(s),{milliseconds:r.timeout})),r.signal&&(s=Promise.race([s,this.#S(r.signal)]));let o=await s;n(o),this.emit("completed",o)}catch(s){if(s instanceof dr&&!r.throwOnTimeout){n();return}i(s),this.emit("error",s)}finally{this.#E()}},r),this.emit("add"),this.#f()})}async addAll(e,r){return Promise.all(e.map(async n=>this.add(n,r)))}start(){return this.#o?(this.#o=!1,this.#h(),this):this}pause(){this.#o=!0}clear(){this.#t=new this.#m}async onEmpty(){this.#t.size!==0&&await this.#d("empty")}async onSizeLessThan(e){this.#t.size<e||await this.#d("next",()=>this.#t.size<e)}async onIdle(){this.#n===0&&this.#t.size===0||await this.#d("idle")}async#d(e,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(e,i),n())};this.on(e,i)})}get size(){return this.#t.size}sizeBy(e){return this.#t.filter(e).length}get pending(){return this.#n}get isPaused(){return this.#o}};var Dr={},jn=t=>{t.addEventListener("message",e=>{jn.dispatchEvent("message",t,e)}),t.port!=null&&t.port.addEventListener("message",e=>{jn.dispatchEvent("message",t,e)})};jn.addEventListener=(t,e)=>{Dr[t]==null&&(Dr[t]=[]),Dr[t].push(e)};jn.removeEventListener=(t,e)=>{Dr[t]!=null&&(Dr[t]=Dr[t].filter(r=>r===e))};jn.dispatchEvent=function(t,e,r){Dr[t]!=null&&Dr[t].forEach(n=>n(e,r))};var Du=jn;var Nu="lock:worker:request-read",ku="lock:worker:release-read",Ou="lock:master:grant-read",Mu="lock:worker:request-write",Uu="lock:worker:release-write",Fu="lock:master:grant-write";var $d=(t=21)=>Math.random().toString().substring(2);var zd=(t,e,r,n,i)=>(s,o)=>{if(o.data.type!==r)return;let a={type:o.data.type,name:o.data.name,identifier:o.data.identifier};t.dispatchEvent(new MessageEvent(e,{data:{name:a.name,handler:async()=>{s.postMessage({type:i,name:a.name,identifier:a.identifier}),await new Promise(c=>{let u=l=>{if(l==null||l.data==null)return;let f={type:l.data.type,name:l.data.name,identifier:l.data.identifier};f.type===n&&f.identifier===a.identifier&&(s.removeEventListener("message",u),c())};s.addEventListener("message",u)})}}}))},Hd=(t,e,r,n)=>async()=>{let i=$d();return globalThis.postMessage({type:e,identifier:i,name:t}),new Promise(s=>{let o=a=>{if(a==null||a.data==null)return;let c={type:a.data.type,identifier:a.data.identifier};c.type===r&&c.identifier===i&&(globalThis.removeEventListener("message",o),s(()=>{globalThis.postMessage({type:n,identifier:i,name:t})}))};globalThis.addEventListener("message",o)})},qw={singleProcess:!1},Gd=t=>{if(t=Object.assign({},qw,t),!!globalThis.document||t.singleProcess){let r=new EventTarget;return Du.addEventListener("message",zd(r,"requestReadLock",Nu,ku,Ou)),Du.addEventListener("message",zd(r,"requestWriteLock",Mu,Uu,Fu)),r}return{isWorker:!0,readLock:r=>Hd(r,Nu,Ou,ku),writeLock:r=>Hd(r,Mu,Fu,Uu)}};var hn={},Nr;async function Ku(t,e){let r,n=new Promise(i=>{r=i});return t.add(async()=>pr((async()=>{await new Promise(i=>{r(()=>{i()})})})(),{milliseconds:e.timeout})),n}var Vw=(t,e)=>{if(Nr.isWorker===!0)return{readLock:Nr.readLock(t,e),writeLock:Nr.writeLock(t,e)};let r=new Zn({concurrency:1}),n;return{async readLock(){if(n!=null)return Ku(n,e);n=new Zn({concurrency:e.concurrency,autoStart:!1});let i=n,s=Ku(n,e);return r.add(async()=>{i.start(),await i.onIdle().then(()=>{n===i&&(n=null)})}),s},async writeLock(){return n=null,Ku(r,e)}}},$w={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function qu(t){let e=Object.assign({},$w,t);return Nr==null&&(Nr=Gd(e),Nr.isWorker!==!0&&(Nr.addEventListener("requestReadLock",r=>{hn[r.data.name]!=null&&hn[r.data.name].readLock().then(async n=>r.data.handler().finally(()=>{n()}))}),Nr.addEventListener("requestWriteLock",async r=>{hn[r.data.name]!=null&&hn[r.data.name].writeLock().then(async n=>r.data.handler().finally(()=>{n()}))}))),hn[e.name]==null&&(hn[e.name]=Vw(e.name,e)),hn[e.name]}function co(t,e){if(t===e)return!0;if(t.byteLength!==e.byteLength)return!1;for(let r=0;r<t.byteLength;r++)if(t[r]!==e[r])return!1;return!0}var We={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS"};var Jn;(function(t){let e;(function(i){let s;i.codec=()=>(s==null&&(s=Ge((o,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),o.key!=null&&o.key!==""&&(a.uint32(10),a.string(o.key)),o.value!=null&&o.value.byteLength>0&&(a.uint32(18),a.bytes(o.value)),c.lengthDelimited!==!1&&a.ldelim()},(o,a)=>{let c={key:"",value:new Uint8Array(0)},u=a==null?o.len:o.pos+a;for(;o.pos<u;){let l=o.uint32();switch(l>>>3){case 1:c.key=o.string();break;case 2:c.value=o.bytes();break;default:o.skipType(l&7);break}}return c})),s),i.encode=o=>He(o,i.codec()),i.decode=o=>ze(o,i.codec())})(e=t.Peer$metadataEntry||(t.Peer$metadataEntry={}));let r;(function(i){let s;i.codec=()=>(s==null&&(s=Ge((o,a,c={})=>{c.lengthDelimited!==!1&&a.fork(),o.key!=null&&o.key!==""&&(a.uint32(10),a.string(o.key)),o.value!=null&&(a.uint32(18),lo.codec().encode(o.value,a)),c.lengthDelimited!==!1&&a.ldelim()},(o,a)=>{let c={key:""},u=a==null?o.len:o.pos+a;for(;o.pos<u;){let l=o.uint32();switch(l>>>3){case 1:c.key=o.string();break;case 2:c.value=lo.codec().decode(o,o.uint32());break;default:o.skipType(l&7);break}}return c})),s),i.encode=o=>He(o,i.codec()),i.decode=o=>ze(o,i.codec())})(r=t.Peer$tagsEntry||(t.Peer$tagsEntry={}));let n;t.codec=()=>(n==null&&(n=Ge((i,s,o={})=>{if(o.lengthDelimited!==!1&&s.fork(),i.addresses!=null)for(let a of i.addresses)s.uint32(10),uo.codec().encode(a,s);if(i.protocols!=null)for(let a of i.protocols)s.uint32(18),s.string(a);if(i.publicKey!=null&&(s.uint32(34),s.bytes(i.publicKey)),i.peerRecordEnvelope!=null&&(s.uint32(42),s.bytes(i.peerRecordEnvelope)),i.metadata!=null&&i.metadata.size!==0)for(let[a,c]of i.metadata.entries())s.uint32(50),t.Peer$metadataEntry.codec().encode({key:a,value:c},s);if(i.tags!=null&&i.tags.size!==0)for(let[a,c]of i.tags.entries())s.uint32(58),t.Peer$tagsEntry.codec().encode({key:a,value:c},s);o.lengthDelimited!==!1&&s.ldelim()},(i,s)=>{let o={addresses:[],protocols:[],metadata:new Map,tags:new Map},a=s==null?i.len:i.pos+s;for(;i.pos<a;){let c=i.uint32();switch(c>>>3){case 1:o.addresses.push(uo.codec().decode(i,i.uint32()));break;case 2:o.protocols.push(i.string());break;case 4:o.publicKey=i.bytes();break;case 5:o.peerRecordEnvelope=i.bytes();break;case 6:{let u=t.Peer$metadataEntry.codec().decode(i,i.uint32());o.metadata.set(u.key,u.value);break}case 7:{let u=t.Peer$tagsEntry.codec().decode(i,i.uint32());o.tags.set(u.key,u.value);break}default:i.skipType(c&7);break}}return o})),n),t.encode=i=>He(i,t.codec()),t.decode=i=>ze(i,t.codec())})(Jn||(Jn={}));var uo;(function(t){let e;t.codec=()=>(e==null&&(e=Ge((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.multiaddr!=null&&r.multiaddr.byteLength>0&&(n.uint32(10),n.bytes(r.multiaddr)),r.isCertified!=null&&(n.uint32(16),n.bool(r.isCertified)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={multiaddr:new Uint8Array(0)},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.multiaddr=r.bytes();break;case 2:i.isCertified=r.bool();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>He(r,t.codec()),t.decode=r=>ze(r,t.codec())})(uo||(uo={}));var lo;(function(t){let e;t.codec=()=>(e==null&&(e=Ge((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.value!=null&&r.value!==0&&(n.uint32(8),n.uint32(r.value)),r.expiry!=null&&(n.uint32(16),n.uint64(r.expiry)),i.lengthDelimited!==!1&&n.ldelim()},(r,n)=>{let i={value:0},s=n==null?r.len:r.pos+n;for(;r.pos<s;){let o=r.uint32();switch(o>>>3){case 1:i.value=r.uint32();break;case 2:i.expiry=r.uint64();break;default:r.skipType(o&7);break}}return i})),e),t.encode=r=>He(r,t.codec()),t.decode=r=>ze(r,t.codec())})(lo||(lo={}));function ei(t,e){let r=Jn.decode(e);r.publicKey!=null&&t.publicKey==null&&(t=cd({...t,publicKey:t.publicKey}));let n=new Map,i=BigInt(Date.now());for(let[s,o]of r.tags.entries())o.expiry!=null&&o.expiry<i||n.set(s,o);return{...r,id:t,addresses:r.addresses.map(({multiaddr:s,isCertified:o})=>({multiaddr:De(s),isCertified:o??!1})),metadata:r.metadata,peerRecordEnvelope:r.peerRecordEnvelope??void 0,tags:n}}function fo(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function Wd(t=0){return globalThis.Buffer?.allocUnsafe!=null?fo(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function Qd(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var Yd=Qd("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),Vu=Qd("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=Wd(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),zw={utf8:Yd,"utf-8":Yd,hex:de.base16,latin1:Vu,ascii:Vu,binary:Vu,...de},ho=zw;function Xd(t,e="utf8"){let r=ho[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?fo(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}function Zd(t,e="utf8"){let r=ho[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):r.encoder.encode(t).substring(1)}var mr="/",jd=new TextEncoder().encode(mr),po=jd[0],dn=class t{_buf;constructor(e,r){if(typeof e=="string")this._buf=Xd(e);else if(e instanceof Uint8Array)this._buf=e;else throw new Error("Invalid key, should be String of Uint8Array");if(r==null&&(r=!0),r&&this.clean(),this._buf.byteLength===0||this._buf[0]!==po)throw new Error("Invalid key")}toString(e="utf8"){return Zd(this._buf,e)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(e){return new t(e.join(mr))}static random(){return new t(Math.random().toString().substring(2))}static asKey(e){return e instanceof Uint8Array||typeof e=="string"?new t(e):typeof e.uint8Array=="function"?new t(e.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=jd),this._buf[0]!==po){let e=new Uint8Array(this._buf.byteLength+1);e.fill(po,0,1),e.set(this._buf,1),this._buf=e}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===po;)this._buf=this._buf.subarray(0,-1)}less(e){let r=this.list(),n=e.list();for(let i=0;i<r.length;i++){if(n.length<i+1)return!1;let s=r[i],o=n[i];if(s<o)return!0;if(s>o)return!1}return r.length<n.length}reverse(){return t.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let e=this.namespaces();return e[e.length-1]}list(){return this.toString().split(mr).slice(1)}type(){return Hw(this.baseNamespace())}name(){return Gw(this.baseNamespace())}instance(e){return new t(this.toString()+":"+e)}path(){let e=this.parent().toString();return e.endsWith(mr)||(e+=mr),e+=this.type(),new t(e)}parent(){let e=this.list();return e.length===1?new t(mr):new t(e.slice(0,-1).join(mr))}child(e){return this.toString()===mr?e:e.toString()===mr?this:new t(this.toString()+e.toString(),!1)}isAncestorOf(e){return e.toString()===this.toString()?!1:e.toString().startsWith(this.toString())}isDecendantOf(e){return e.toString()===this.toString()?!1:this.toString().startsWith(e.toString())}isTopLevel(){return this.list().length===1}concat(...e){return t.withNamespaces([...this.namespaces(),...Ww(e.map(r=>r.namespaces()))])}};function Hw(t){let e=t.split(":");return e.length<2?"":e.slice(0,-1).join(":")}function Gw(t){let e=t.split(":");return e[e.length-1]}function Ww(t){return[].concat(...t)}var $u="/peers/";function ti(t){if(!vs(t)||t.type==null)throw new S("Invalid PeerId",We.ERR_INVALID_PARAMETERS);let e=t.toCID().toString();return new dn(`${$u}${e}`)}async function Jd(t,e,r){let n=new Map;for(let i of r){if(i==null)continue;if(i.multiaddr instanceof Uint8Array&&(i.multiaddr=De(i.multiaddr)),!Pr(i.multiaddr))throw new S("Multiaddr was invalid",We.ERR_INVALID_PARAMETERS);if(!await e(t,i.multiaddr))continue;let s=i.isCertified??!1,o=i.multiaddr.toString(),a=n.get(o);a!=null?i.isCertified=a.isCertified||s:n.set(o,{multiaddr:i.multiaddr,isCertified:s})}return[...n.values()].sort((i,s)=>i.multiaddr.toString().localeCompare(s.multiaddr.toString())).map(({isCertified:i,multiaddr:s})=>({isCertified:i,multiaddr:s.bytes}))}async function go(t,e,r,n){if(e==null)throw new S("Invalid PeerData",We.ERR_INVALID_PARAMETERS);if(e.publicKey!=null&&t.publicKey!=null&&!co(e.publicKey,t.publicKey))throw new S("publicKey bytes do not match peer id publicKey bytes",We.ERR_INVALID_PARAMETERS);let i=n.existingPeer;if(i!=null&&!t.equals(i.id))throw new S("peer id did not match existing peer id",We.ERR_INVALID_PARAMETERS);let s=i?.addresses??[],o=new Set(i?.protocols??[]),a=i?.metadata??new Map,c=i?.tags??new Map,u=i?.peerRecordEnvelope;if(r==="patch"){if((e.multiaddrs!=null||e.addresses!=null)&&(s=[],e.multiaddrs!=null&&s.push(...e.multiaddrs.map(f=>({isCertified:!1,multiaddr:f}))),e.addresses!=null&&s.push(...e.addresses)),e.protocols!=null&&(o=new Set(e.protocols)),e.metadata!=null){let f=e.metadata instanceof Map?[...e.metadata.entries()]:Object.entries(e.metadata);a=mo(f,{validate:ep})}if(e.tags!=null){let f=e.tags instanceof Map?[...e.tags.entries()]:Object.entries(e.tags);c=mo(f,{validate:tp,map:rp})}e.peerRecordEnvelope!=null&&(u=e.peerRecordEnvelope)}if(r==="merge"){if(e.multiaddrs!=null&&s.push(...e.multiaddrs.map(f=>({isCertified:!1,multiaddr:f}))),e.addresses!=null&&s.push(...e.addresses),e.protocols!=null&&(o=new Set([...o,...e.protocols])),e.metadata!=null){let f=e.metadata instanceof Map?[...e.metadata.entries()]:Object.entries(e.metadata);for(let[d,p]of f)p==null?a.delete(d):a.set(d,p);a=mo([...a.entries()],{validate:ep})}if(e.tags!=null){let f=e.tags instanceof Map?[...e.tags.entries()]:Object.entries(e.tags),d=new Map(c);for(let[p,h]of f)h==null?d.delete(p):d.set(p,h);c=mo([...d.entries()],{validate:tp,map:rp})}e.peerRecordEnvelope!=null&&(u=e.peerRecordEnvelope)}let l={addresses:await Jd(t,n.addressFilter??(async()=>!0),s),protocols:[...o.values()].sort((f,d)=>f.localeCompare(d)),metadata:a,tags:c,publicKey:i?.id.publicKey??e.publicKey??t.publicKey,peerRecordEnvelope:u};return t.type!=="RSA"&&delete l.publicKey,l}function mo(t,e){let r=new Map;for(let[n,i]of t)i!=null&&e.validate(n,i);for(let[n,i]of t.sort(([s],[o])=>s.localeCompare(o)))i!=null&&r.set(n,e.map?.(n,i)??i);return r}function ep(t,e){if(typeof t!="string")throw new S("Metadata key must be a string",We.ERR_INVALID_PARAMETERS);if(!(e instanceof Uint8Array))throw new S("Metadata value must be a Uint8Array",We.ERR_INVALID_PARAMETERS)}function tp(t,e){if(typeof t!="string")throw new S("Tag name must be a string",We.ERR_INVALID_PARAMETERS);if(e.value!=null){if(parseInt(`${e.value}`,10)!==e.value)throw new S("Tag value must be an integer",We.ERR_INVALID_PARAMETERS);if(e.value<0||e.value>100)throw new S("Tag value must be between 0-100",We.ERR_INVALID_PARAMETERS)}if(e.ttl!=null){if(parseInt(`${e.ttl}`,10)!==e.ttl)throw new S("Tag ttl must be an integer",We.ERR_INVALID_PARAMETERS);if(e.ttl<0)throw new S("Tag ttl must be between greater than 0",We.ERR_INVALID_PARAMETERS)}}function rp(t,e){let r;return e.expiry!=null&&(r=e.expiry),e.ttl!=null&&(r=BigInt(Date.now()+Number(e.ttl))),{value:e.value??0,expiry:r}}function yo(t,e,r){let n=t.toString().split("/")[2],i=dt.decode(n),s=Gn(i),o=r.get(s);if(o!=null)return o;let a=ei(s,e);return r.set(s,a),a}function Yw(t,e){return t==null?{}:{prefix:$u,filters:(t.filters??[]).map(r=>({key:n,value:i})=>r(yo(n,i,e))),orders:(t.orders??[]).map(r=>(n,i)=>r(yo(n.key,n.value,e),yo(i.key,i.value,e)))}}var xo=class{peerId;datastore;lock;addressFilter;constructor(e,r={}){this.peerId=e.peerId,this.datastore=e.datastore,this.addressFilter=r.addressFilter,this.lock=qu({name:"peer-store",singleProcess:!0})}async has(e){return this.datastore.has(ti(e))}async delete(e){if(this.peerId.equals(e))throw new S("Cannot delete self peer",We.ERR_INVALID_PARAMETERS);await this.datastore.delete(ti(e))}async load(e){let r=await this.datastore.get(ti(e));return ei(e,r)}async save(e,r){let{existingBuf:n,existingPeer:i}=await this.#e(e),s=await go(e,r,"patch",{addressFilter:this.addressFilter});return this.#i(e,s,n,i)}async patch(e,r){let{existingBuf:n,existingPeer:i}=await this.#e(e),s=await go(e,r,"patch",{addressFilter:this.addressFilter,existingPeer:i});return this.#i(e,s,n,i)}async merge(e,r){let{existingBuf:n,existingPeer:i}=await this.#e(e),s=await go(e,r,"merge",{addressFilter:this.addressFilter,existingPeer:i});return this.#i(e,s,n,i)}async*all(e){let r=new je;for await(let{key:n,value:i}of this.datastore.query(Yw(e??{},r))){let s=yo(n,i,r);s.id.equals(this.peerId)||(yield s)}}async#e(e){try{let r=await this.datastore.get(ti(e)),n=ei(e,r);return{existingBuf:r,existingPeer:n}}catch(r){if(r.code!=="ERR_NOT_FOUND")throw r}return{}}async#i(e,r,n,i){let s=Jn.encode(r);return n!=null&&co(s,n)?{peer:ei(e,s),previous:i,updated:!1}:(await this.datastore.put(ti(e),s),{peer:ei(e,s),previous:i,updated:!0})}};var bo=class{store;events;peerId;log;constructor(e,r={}){this.log=e.logger.forComponent("libp2p:peer-store"),this.events=e.events,this.peerId=e.peerId,this.store=new xo(e,r)}async forEach(e,r){this.log.trace("forEach await read lock");let n=await this.store.lock.readLock();this.log.trace("forEach got read lock");try{for await(let i of this.store.all(r))e(i)}finally{this.log.trace("forEach release read lock"),n()}}async all(e){this.log.trace("all await read lock");let r=await this.store.lock.readLock();this.log.trace("all got read lock");try{return await Vi(this.store.all(e))}finally{this.log.trace("all release read lock"),r()}}async delete(e){this.log.trace("delete await write lock");let r=await this.store.lock.writeLock();this.log.trace("delete got write lock");try{await this.store.delete(e)}finally{this.log.trace("delete release write lock"),r()}}async has(e){this.log.trace("has await read lock");let r=await this.store.lock.readLock();this.log.trace("has got read lock");try{return await this.store.has(e)}finally{this.log.trace("has release read lock"),r()}}async get(e){this.log.trace("get await read lock");let r=await this.store.lock.readLock();this.log.trace("get got read lock");try{return await this.store.load(e)}finally{this.log.trace("get release read lock"),r()}}async save(e,r){this.log.trace("save await write lock");let n=await this.store.lock.writeLock();this.log.trace("save got write lock");try{let i=await this.store.save(e,r);return this.#e(e,i),i.peer}finally{this.log.trace("save release write lock"),n()}}async patch(e,r){this.log.trace("patch await write lock");let n=await this.store.lock.writeLock();this.log.trace("patch got write lock");try{let i=await this.store.patch(e,r);return this.#e(e,i),i.peer}finally{this.log.trace("patch release write lock"),n()}}async merge(e,r){this.log.trace("merge await write lock");let n=await this.store.lock.writeLock();this.log.trace("merge got write lock");try{let i=await this.store.merge(e,r);return this.#e(e,i),i.peer}finally{this.log.trace("merge release write lock"),n()}}async consumePeerRecord(e,r){let n=await Wn.openAndCertify(e,ln.DOMAIN);if(r?.equals(n.peerId)===!1)return this.log("envelope peer id was not the expected peer id - expected: %p received: %p",r,n.peerId),!1;let i=ln.createFromProtobuf(n.payload),s;try{s=await this.get(n.peerId)}catch(o){if(o.code!=="ERR_NOT_FOUND")throw o}if(s?.peerRecordEnvelope!=null){let o=await Wn.createFromProtobuf(s.peerRecordEnvelope),a=ln.createFromProtobuf(o.payload);if(a.seqNumber>=i.seqNumber)return this.log("sequence number was lower or equal to existing sequence number - stored: %d received: %d",a.seqNumber,i.seqNumber),!1}return await this.patch(i.peerId,{peerRecordEnvelope:e,addresses:i.multiaddrs.map(o=>({isCertified:!0,multiaddr:o}))}),!0}#e(e,r){r.updated&&(this.peerId.equals(e)?this.events.safeDispatchEvent("self:peer:update",{detail:r}):this.events.safeDispatchEvent("peer:update",{detail:r}))}};function Qw(t){return t[Symbol.asyncIterator]!=null}function Xw(t){if(Qw(t))return(async()=>{for await(let e of t);})();for(let e of t);}var zu=Xw;function Zw(t){let[e,r]=t[Symbol.asyncIterator]!=null?[t[Symbol.asyncIterator](),Symbol.asyncIterator]:[t[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>e.next(),push:i=>{n.push(i)},next:()=>n.length>0?{done:!1,value:n.shift()}:e.next(),[r](){return this}}}var np=Zw;function jw(t){return t[Symbol.asyncIterator]!=null}function Jw(t,e){if(jw(t))return async function*(){for await(let a of t)await e(a)&&(yield a)}();let r=np(t),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let s=e(n);if(typeof s.then=="function")return async function*(){await s&&(yield n);for await(let a of r)await e(a)&&(yield a)}();let o=e;return function*(){s===!0&&(yield n);for(let a of r)o(a)&&(yield a)}()}var pn=Jw;function eE(t){return t[Symbol.asyncIterator]!=null}function tE(t,e){return eE(t)?async function*(){yield*(await Vi(t)).sort(e)}():function*(){yield*Vi(t).sort(e)}()}var Hu=tE;function rE(t){return t[Symbol.asyncIterator]!=null}function nE(t,e){return rE(t)?async function*(){let r=0;if(!(e<1)){for await(let n of t)if(yield n,r++,r===e)return}}():function*(){let r=0;if(!(e<1)){for(let n of t)if(yield n,r++,r===e)return}}()}var Gu=nE;var wo=class{put(e,r,n){return Promise.reject(new Error(".put is not implemented"))}get(e,r){return Promise.reject(new Error(".get is not implemented"))}has(e,r){return Promise.reject(new Error(".has is not implemented"))}delete(e,r){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(e,r={}){for await(let{key:n,value:i}of e)await this.put(n,i,r),yield n}async*getMany(e,r={}){for await(let n of e)yield{key:n,value:await this.get(n,r)}}async*deleteMany(e,r={}){for await(let n of e)await this.delete(n,r),yield n}batch(){let e=[],r=[];return{put(n,i){e.push({key:n,value:i})},delete(n){r.push(n)},commit:async n=>{await zu(this.putMany(e,n)),e=[],await zu(this.deleteMany(r,n)),r=[]}}}async*_all(e,r){throw new Error("._all is not implemented")}async*_allKeys(e,r){throw new Error("._allKeys is not implemented")}query(e,r){let n=this._all(e,r);if(e.prefix!=null){let i=e.prefix;n=pn(n,s=>s.key.toString().startsWith(i))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((i,s)=>pn(i,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,s)=>Hu(i,s),n)),e.offset!=null){let i=0,s=e.offset;n=pn(n,()=>i++>=s)}return e.limit!=null&&(n=Gu(n,e.limit)),n}queryKeys(e,r){let n=this._allKeys(e,r);if(e.prefix!=null){let i=e.prefix;n=pn(n,s=>s.toString().startsWith(i))}if(Array.isArray(e.filters)&&(n=e.filters.reduce((i,s)=>pn(i,s),n)),Array.isArray(e.orders)&&(n=e.orders.reduce((i,s)=>Hu(i,s),n)),e.offset!=null){let i=e.offset,s=0;n=pn(n,()=>s++>=i)}return e.limit!=null&&(n=Gu(n,e.limit)),n}};var op=we(Wu(),1);function ap(t){return t=t??new Error("Not Found"),(0,op.default)(t,"ERR_NOT_FOUND")}var Eo=class extends wo{data;constructor(){super(),this.data=new Map}put(e,r){return this.data.set(e.toString(),r),e}get(e){let r=this.data.get(e.toString());if(r==null)throw ap();return r}has(e){return this.data.has(e.toString())}delete(e){this.data.delete(e.toString())}*_all(){for(let[e,r]of this.data.entries())yield{key:new dn(e),value:r}}*_allKeys(){for(let e of this.data.keys())yield new dn(e)}};function mn(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function vo(t=0){return globalThis.Buffer?.allocUnsafe!=null?mn(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function cp(t,e){if(globalThis.Buffer!=null)return mn(globalThis.Buffer.concat(t,e));e==null&&(e=t.reduce((i,s)=>i+s.length,0));let r=vo(e),n=0;for(let i of t)r.set(i,n),n+=i.length;return mn(r)}function lp(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var up=lp("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),Yu=lp("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=vo(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),oE={utf8:up,"utf-8":up,hex:de.base16,latin1:Yu,ascii:Yu,binary:Yu,...de},_o=oE;function So(t,e="utf8"){let r=_o[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?mn(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}function fp(t,e){let r;return function(){let n=function(){r=void 0,t()};clearTimeout(r),r=setTimeout(n,e)}}var aE=t=>t;function Qu(t,e){let r=t.getPeerId();return r!=null&&se(r).equals(e)&&(t=t.decapsulate(De(`/p2p/${e.toString()}`))),t}var Ao=class{log;components;listen;announce;observed;announceFilter;constructor(e,r={}){let{listen:n=[],announce:i=[]}=r;this.components=e,this.log=e.logger.forComponent("libp2p:address-manager"),this.listen=n.map(s=>s.toString()),this.announce=new Set(i.map(s=>s.toString())),this.observed=new Map,this.announceFilter=r.announceFilter??aE,this._updatePeerStoreAddresses=fp(this._updatePeerStoreAddresses.bind(this),1e3),e.events.addEventListener("transport:listening",()=>{this._updatePeerStoreAddresses()}),e.events.addEventListener("transport:close",()=>{this._updatePeerStoreAddresses()})}_updatePeerStoreAddresses(){let e=this.getAnnounceAddrs().concat(this.components.transportManager.getAddrs()).concat([...this.observed.entries()].filter(([r,n])=>n.confident).map(([r])=>De(r))).map(r=>r.getPeerId()===this.components.peerId.toString()?r.decapsulate(`/p2p/${this.components.peerId.toString()}`):r);this.components.peerStore.patch(this.components.peerId,{multiaddrs:e}).catch(r=>{this.log.error("error updating addresses",r)})}getListenAddrs(){return Array.from(this.listen).map(e=>De(e))}getAnnounceAddrs(){return Array.from(this.announce).map(e=>De(e))}getObservedAddrs(){return Array.from(this.observed).map(([e])=>De(e))}addObservedAddr(e){e=Qu(e,this.components.peerId);let r=e.toString();this.observed.has(r)||this.observed.set(r,{confident:!1})}confirmObservedAddr(e){e=Qu(e,this.components.peerId);let r=e.toString(),i=(this.observed.get(r)??{confident:!1}).confident;this.observed.set(r,{confident:!0}),i||this._updatePeerStoreAddresses()}removeObservedAddr(e){e=Qu(e,this.components.peerId);let r=e.toString();this.observed.delete(r)}getAddresses(){let e=this.getAnnounceAddrs().map(n=>n.toString());e.length===0&&(e=this.components.transportManager.getAddrs().map(n=>n.toString())),e=e.concat(Array.from(this.observed).filter(([n,i])=>i.confident).map(([n])=>n));let r=new Set(e);return this.announceFilter(Array.from(r).map(n=>De(n))).map(n=>n.protos().pop()?.path===!0||n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};var Xu=class{components={};_started=!1;constructor(e={}){this.components={};for(let[r,n]of Object.entries(e))this.components[r]=n;this.components.logger==null&&(this.components.logger=Qs())}isStarted(){return this._started}async _invokeStartableMethod(e){await Promise.all(Object.values(this.components).filter(r=>Eh(r)).map(async r=>{await r[e]?.()}))}async beforeStart(){await this._invokeStartableMethod("beforeStart")}async start(){await this._invokeStartableMethod("start"),this._started=!0}async afterStart(){await this._invokeStartableMethod("afterStart")}async beforeStop(){await this._invokeStartableMethod("beforeStop")}async stop(){await this._invokeStartableMethod("stop"),this._started=!1}async afterStop(){await this._invokeStartableMethod("afterStop")}},cE=["metrics","connectionProtector"],uE=["components","isStarted","beforeStart","start","afterStart","beforeStop","stop","afterStop","then","_invokeStartableMethod"];function hp(t={}){let e=new Xu(t);return new Proxy(e,{get(n,i,s){if(typeof i=="string"&&!uE.includes(i)){let o=e.components[i];if(o==null&&!cE.includes(i))throw new S(`${i} not set`,"ERR_SERVICE_MISSING");return o}return Reflect.get(n,i,s)},set(n,i,s){return typeof i=="string"?e.components[i]=s:Reflect.set(n,i,s),!0}})}var bp=we(dp(),1);var pp="[a-fA-F\\d:]",kr=t=>t&&t.includeBoundaries?`(?:(?<=\\s|^)(?=${pp})|(?<=${pp})(?=\\s|$))`:"",Ut="(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}",Be="[a-fA-F\\d]{1,4}",Io=`
|
|
38
38
|
(?:
|
|
39
|
-
(?:${
|
|
40
|
-
(?:${
|
|
41
|
-
(?:${
|
|
42
|
-
(?:${
|
|
43
|
-
(?:${
|
|
44
|
-
(?:${
|
|
45
|
-
(?:${
|
|
46
|
-
(?::(?:(?::${
|
|
39
|
+
(?:${Be}:){7}(?:${Be}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
|
|
40
|
+
(?:${Be}:){6}(?:${Ut}|:${Be}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4
|
|
41
|
+
(?:${Be}:){5}(?::${Ut}|(?::${Be}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4
|
|
42
|
+
(?:${Be}:){4}(?:(?::${Be}){0,1}:${Ut}|(?::${Be}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4
|
|
43
|
+
(?:${Be}:){3}(?:(?::${Be}){0,2}:${Ut}|(?::${Be}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4
|
|
44
|
+
(?:${Be}:){2}(?:(?::${Be}){0,3}:${Ut}|(?::${Be}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4
|
|
45
|
+
(?:${Be}:){1}(?:(?::${Be}){0,4}:${Ut}|(?::${Be}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
|
|
46
|
+
(?::(?:(?::${Be}){0,5}:${Ut}|(?::${Be}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
|
|
47
47
|
)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1
|
|
48
|
-
`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),mE=new RegExp(`(?:^${qt}$)|(?:^${Oo}$)`),gE=new RegExp(`^${qt}$`),yE=new RegExp(`^${Oo}$`),ll=t=>t&&t.exact?mE:new RegExp(`(?:${qr(t)}${qt}${qr(t)})|(?:${qr(t)}${Oo}${qr(t)})`,"g");ll.v4=t=>t&&t.exact?gE:new RegExp(`${qr(t)}${qt}${qr(t)}`,"g");ll.v6=t=>t&&t.exact?yE:new RegExp(`${qr(t)}${Oo}${qr(t)}`,"g");var Sp=ll;var Tp=Ee(Ip(),1),{isValid:xE,parse:bE}=Tp.default,wE=["0.0.0.0/8","10.0.0.0/8","100.64.0.0/10","127.0.0.0/8","169.254.0.0/16","172.16.0.0/12","192.0.0.0/24","192.0.0.0/29","192.0.0.8/32","192.0.0.9/32","192.0.0.10/32","192.0.0.170/32","192.0.0.171/32","192.0.2.0/24","192.31.196.0/24","192.52.193.0/24","192.88.99.0/24","192.168.0.0/16","192.175.48.0/24","198.18.0.0/15","198.51.100.0/24","203.0.113.0/24","240.0.0.0/4","255.255.255.255/32"],EE=wE.map(t=>new Cp.Netmask(t));function vE(t){for(let e of EE)if(e.contains(t))return!0;return!1}function Rp(t){return/^::$/.test(t)||/^::1$/.test(t)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(t)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(t)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(t)||/^100::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(t)||/^2001::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(t)||/^2001:2[0-9a-fA-F]:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(t)||/^2001:db8:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(t)||/^2002:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(t)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(t)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(t)||/^ff([0-9a-fA-F]{2,2}):/i.test(t)}var Bp=t=>{if(xE(t)){let e=bE(t);if(e.kind()==="ipv4")return vE(e.toNormalizedString());if(e.kind()==="ipv6")return Rp(t)}else if(Jn(t)&&Sp.v6().test(t))return Rp(t)};var Uo=Bp;function Lp(t={}){return{denyDialPeer:async()=>!1,denyDialMultiaddr:async e=>{let r=e.stringTuples();return r[0][0]===4||r[0][0]===41?!!Uo(`${r[0][1]}`):!1},denyInboundConnection:async()=>!1,denyOutboundConnection:async()=>!1,denyInboundEncryptedConnection:async()=>!1,denyOutboundEncryptedConnection:async()=>!1,denyInboundUpgradedConnection:async()=>!1,denyOutboundUpgradedConnection:async()=>!1,filterMultiaddrForPeer:async()=>!0,...t}}var _E=t=>t.toString().split("/").slice(1),ts=t=>({match:e=>e.length<1?!1:t(e[0])?e.slice(1):!1,pattern:"fn"}),Ce=t=>({match:e=>ts(r=>r===t).match(e),pattern:t}),qo=()=>({match:t=>ts(e=>typeof e=="string").match(t),pattern:"{string}"}),Pp=()=>({match:t=>ts(e=>!isNaN(parseInt(e))).match(t),pattern:"{number}"}),Ct=()=>({match:t=>{if(t.length<2||t[0]!=="p2p"&&t[0]!=="ipfs")return!1;if(t[1].startsWith("Q")||t[1].startsWith("1"))try{ve.decode(`z${t[1]}`)}catch{return!1}else return!1;return t.slice(2)},pattern:"/p2p/{peerid}"}),Fo=()=>({match:t=>{if(t.length<2||t[0]!=="certhash")return!1;try{cc.decode(t[1])}catch{return!1}return t.slice(2)},pattern:"/certhash/{certhash}"}),jt=t=>({match:e=>{let r=t.match(e);return r===!1?e:r},pattern:`optional(${t.pattern})`}),Jt=(...t)=>({match:e=>{let r;for(let n of t){let i=n.match(e);i!==!1&&(r==null||i.length<r.length)&&(r=i)}return r??!1},pattern:`or(${t.map(e=>e.pattern).join(", ")})`}),Te=(...t)=>({match:e=>{for(let r of t){let n=r.match(e);if(n===!1)return!1;e=n}return e},pattern:`and(${t.map(e=>e.pattern).join(", ")})`});function Ue(...t){function e(i){let s=_E(i);for(let o of t){let a=o.match(s);if(a===!1)return!1;s=a}return s}function r(i){return e(i)!==!1}function n(i){let s=e(i);return s===!1?!1:s.length===0}return{matches:r,exactMatch:n}}var hl=Te(Ce("dns4"),qo()),dl=Te(Ce("dns6"),qo()),pl=Te(Ce("dnsaddr"),qo()),Dp=Te(Ce("dns"),qo()),XB=Ue(hl),ZB=Ue(dl),jB=Ue(pl),JB=Ue(Jt(Dp,pl,hl,dl)),Np=Te(Ce("ip4"),ts(lo)),kp=Te(Ce("ip6"),ts(fo)),Op=Jt(Np,kp),rs=Jt(Op,Dp,hl,dl,pl),e6=Ue(rs),t6=Ue(Np),r6=Ue(kp),n6=Ue(Op),Vo=Te(rs,Ce("tcp"),Pp()),ns=Te(rs,Ce("udp"),Pp()),SE=Jt(Vo,ns),i6=Ue(Vo),s6=Ue(ns),ml=Te(ns,Ce("quic")),$o=Te(ns,Ce("quic-v1")),AE=Jt(ml,$o),o6=Ue(ml),a6=Ue($o),fl=Jt(rs,Vo,ns,ml,$o),Mp=Jt(Te(fl,Ce("ws"),jt(Ct()))),c6=Ue(Mp),Up=Jt(Te(fl,Ce("wss"),jt(Ct())),Te(fl,Ce("tls"),Ce("ws"),jt(Ct()))),u6=Ue(Up),Fp=Te(SE,Ce("webrtc-direct"),Fo(),jt(Fo()),jt(Ct())),l6=Ue(Fp),Kp=Te($o,Ce("webtransport"),Fo(),Fo(),jt(Ct())),f6=Ue(Kp),Ko=Jt(Mp,Up,Te(Vo,jt(Ct())),Te(AE,jt(Ct())),Te(rs,jt(Ct())),Fp,Kp,Ct()),h6=Ue(Ko),IE=Te(Ko,Ce("p2p-circuit"),Ct()),gl=Ue(IE),RE=Jt(Te(Ko,Ce("p2p-circuit"),Ce("webrtc"),Ct()),Te(Ko,Ce("webrtc"),jt(Ct())),Ce("webrtc")),d6=Ue(RE);function yl(t){try{let{address:e}=t.nodeAddress();return!!Uo(e)}catch{return!0}}function CE(t,e){let r=yl(t.multiaddr),n=yl(e.multiaddr);return r&&!n?1:!r&&n?-1:0}function TE(t,e){return t.isCertified&&!e.isCertified?-1:!t.isCertified&&e.isCertified?1:0}function BE(t,e){let r=gl.exactMatch(t.multiaddr),n=gl.exactMatch(e.multiaddr);return r&&!n?1:!r&&n?-1:0}function si(t,e){let r=CE(t,e);if(r!==0)return r;let n=BE(t,e);return n!==0?n:TE(t,e)}var bl=Ee(du(),1),wl=Ee($p(),1);function zo(t,e,r){return`${t}?name=${e}&type=${r}`}async function zp(t,e){return await(await fetch(t,{headers:new Headers({accept:"application/dns-json"}),signal:e})).json()}function bn(t,e){return`${e}_${t}`}var xl=Object.assign((0,bl.default)("dns-over-http-resolver"),{error:(0,bl.default)("dns-over-http-resolver:error")}),El=class{_cache;_TXTcache;_servers;_request;_abortControllers;constructor(e={}){this._cache=new wl.default({max:e?.maxCache??100}),this._TXTcache=new wl.default({max:e?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=e.request??zp,this._abortControllers=[]}cancel(){this._abortControllers.forEach(e=>{e.abort()})}getServers(){return this._servers}_getShuffledServers(){let e=[...this._servers];for(let r=e.length-1;r>0;r--){let n=Math.floor(Math.random()*r),i=e[r];e[r]=e[n],e[n]=i}return e}setServers(e){this._servers=e}async resolve(e,r="A"){switch(r){case"A":return this.resolve4(e);case"AAAA":return this.resolve6(e);case"TXT":return this.resolveTxt(e);default:throw new Error(`${r} is not supported`)}}async resolve4(e){let r="A",n=this._cache.get(bn(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(zo(s,e,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(bn(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),xl.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryA ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}async resolve6(e){let r="AAAA",n=this._cache.get(bn(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(zo(s,e,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(bn(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),xl.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryAaaa ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}async resolveTxt(e){let r="TXT",n=this._TXTcache.get(bn(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(zo(s,e,r),o.signal),c=a.Answer.map(l=>[l.data.replace(/['"]+/g,"")]),u=Math.min(...a.Answer.map(l=>l.TTL));return this._TXTcache.set(bn(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),xl.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryTxt ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}clearCache(){this._cache.clear(),this._TXTcache.clear()}},Hp=El;var Gp=Hp;var{code:kE}=le("dnsaddr");async function oi(t,e={}){let r=new Gp;e.signal!=null&&e.signal.addEventListener("abort",()=>{r.cancel()});let n=t.getPeerId(),[,i]=t.stringTuples().find(([a])=>a===kE)??[];if(i==null)throw new Error("No hostname found in multiaddr");let o=(await r.resolveTxt(`_dnsaddr.${i}`)).flat().map(a=>a.split("=")[1]).filter(Boolean);return n!=null&&(o=o.filter(a=>a.includes(n))),o}var tm=Ee(em(),1),Wo=tm.default;var xr;(function(t){t.NOT_STARTED_YET="The libp2p node is not started yet",t.ERR_PROTECTOR_REQUIRED="Private network is enforced, but no protector was provided",t.NOT_FOUND="Not found"})(xr||(xr={}));var F;(function(t){t.ERR_PROTECTOR_REQUIRED="ERR_PROTECTOR_REQUIRED",t.ERR_PEER_DIAL_INTERCEPTED="ERR_PEER_DIAL_INTERCEPTED",t.ERR_CONNECTION_INTERCEPTED="ERR_CONNECTION_INTERCEPTED",t.ERR_INVALID_PROTOCOLS_FOR_STREAM="ERR_INVALID_PROTOCOLS_FOR_STREAM",t.ERR_CONNECTION_ENDED="ERR_CONNECTION_ENDED",t.ERR_CONNECTION_FAILED="ERR_CONNECTION_FAILED",t.ERR_NODE_NOT_STARTED="ERR_NODE_NOT_STARTED",t.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",t.ERR_TOO_MANY_ADDRESSES="ERR_TOO_MANY_ADDRESSES",t.ERR_NO_VALID_ADDRESSES="ERR_NO_VALID_ADDRESSES",t.ERR_RELAYED_DIAL="ERR_RELAYED_DIAL",t.ERR_DIALED_SELF="ERR_DIALED_SELF",t.ERR_DISCOVERED_SELF="ERR_DISCOVERED_SELF",t.ERR_DUPLICATE_TRANSPORT="ERR_DUPLICATE_TRANSPORT",t.ERR_ENCRYPTION_FAILED="ERR_ENCRYPTION_FAILED",t.ERR_HOP_REQUEST_FAILED="ERR_HOP_REQUEST_FAILED",t.ERR_INVALID_KEY="ERR_INVALID_KEY",t.ERR_INVALID_MESSAGE="ERR_INVALID_MESSAGE",t.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",t.ERR_INVALID_PEER="ERR_INVALID_PEER",t.ERR_MUXER_UNAVAILABLE="ERR_MUXER_UNAVAILABLE",t.ERR_NOT_FOUND="ERR_NOT_FOUND",t.ERR_TRANSPORT_UNAVAILABLE="ERR_TRANSPORT_UNAVAILABLE",t.ERR_TRANSPORT_DIAL_FAILED="ERR_TRANSPORT_DIAL_FAILED",t.ERR_UNSUPPORTED_PROTOCOL="ERR_UNSUPPORTED_PROTOCOL",t.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED="ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED",t.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",t.ERR_SIGNATURE_NOT_VALID="ERR_SIGNATURE_NOT_VALID",t.ERR_FIND_SELF="ERR_FIND_SELF",t.ERR_NO_ROUTERS_AVAILABLE="ERR_NO_ROUTERS_AVAILABLE",t.ERR_CONNECTION_NOT_MULTIPLEXED="ERR_CONNECTION_NOT_MULTIPLEXED",t.ERR_NO_DIAL_TOKENS="ERR_NO_DIAL_TOKENS",t.ERR_INVALID_CMS="ERR_INVALID_CMS",t.ERR_MISSING_KEYS="ERR_MISSING_KEYS",t.ERR_NO_KEY="ERR_NO_KEY",t.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",t.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",t.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",t.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",t.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",t.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",t.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",t.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",t.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",t.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",t.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",t.ERR_MISSING_PUBLIC_KEY="ERR_MISSING_PUBLIC_KEY",t.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",t.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",t.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH",t.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",t.ERR_WRONG_PING_ACK="ERR_WRONG_PING_ACK",t.ERR_INVALID_RECORD="ERR_INVALID_RECORD",t.ERR_ALREADY_SUCCEEDED="ERR_ALREADY_SUCCEEDED",t.ERR_NO_HANDLER_FOR_PROTOCOL="ERR_NO_HANDLER_FOR_PROTOCOL",t.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",t.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",t.ERR_CONNECTION_DENIED="ERR_CONNECTION_DENIED",t.ERR_TRANSFER_LIMIT_EXCEEDED="ERR_TRANSFER_LIMIT_EXCEEDED"})(F||(F={}));var qE={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:t=>t},connectionManager:{resolvers:{dnsaddr:oi},addressSorter:si},transportManager:{faultTolerance:_r.FATAL_ALL}};function rm(t){let e=Wo(qE,t);if(e.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw new S(xr.ERR_PROTECTOR_REQUIRED,F.ERR_PROTECTOR_REQUIRED);return e}var eg=Ee(Xm(),1);function Qo(t){if(Cs(t))return{peerId:t,multiaddrs:[]};Array.isArray(t)||(t=[t]);let e;if(t.length>0){let r=t[0].getPeerId();e=r==null?void 0:ae(r),t.forEach(n=>{if(!kr(n))throw new S("Invalid Multiaddr",F.ERR_INVALID_MULTIADDR);let i=n.getPeerId();if(i==null){if(e!=null)throw new S("Multiaddrs must all have the same peer id or have no peer id",F.ERR_INVALID_PARAMETERS)}else{let s=ae(i);if(e==null||!e.equals(s))throw new S("Multiaddrs must all have the same peer id or have no peer id",F.ERR_INVALID_PARAMETERS)}})}return{peerId:e,multiaddrs:t}}function _v(t,e,r){let n=0,i=t.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(t[o],e)<=0?(n=++o,i-=s+1):i=s}return n}var Ul=class{#e=[];enqueue(e,r){let n=r?.peerId,i=r?.priority??0;if(n==null)throw new S("missing peer id",L0);let s={priority:i,peerId:n,run:e};if(this.size>0&&this.#e[this.size-1].priority>=i){this.#e.push(s);return}let o=_v(this.#e,s,(a,c)=>c.priority-a.priority);this.#e.splice(o,0,s)}dequeue(){return this.#e.shift()?.run}filter(e){if(e.peerId!=null){let r=e.peerId;return this.#e.filter(n=>r.equals(n.peerId)).map(n=>n.run)}return this.#e.filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return this.#e.length}},Xo=class extends Ur{constructor(e={}){super({...e,queueClass:Ul})}hasJob(e){return this.sizeBy({peerId:e})>0}};var Zo="last-dial-failure";var jo=5,Jo=100,ea=50,Zm=1e3*60*7;var wn={minConnections:jo,maxQueueLength:100,autoDialConcurrency:25,autoDialPriority:0,autoDialInterval:5e3,autoDialPeerRetryThreshold:Zm,autoDialDiscoveredPeersDebounce:10},ta=class{connectionManager;peerStore;queue;minConnections;autoDialPriority;autoDialIntervalMs;autoDialMaxQueueLength;autoDialPeerRetryThresholdMs;autoDialDiscoveredPeersDebounce;autoDialInterval;started;running;log;constructor(e,r){this.connectionManager=e.connectionManager,this.peerStore=e.peerStore,this.minConnections=r.minConnections??wn.minConnections,this.autoDialPriority=r.autoDialPriority??wn.autoDialPriority,this.autoDialIntervalMs=r.autoDialInterval??wn.autoDialInterval,this.autoDialMaxQueueLength=r.maxQueueLength??wn.maxQueueLength,this.autoDialPeerRetryThresholdMs=r.autoDialPeerRetryThreshold??wn.autoDialPeerRetryThreshold,this.autoDialDiscoveredPeersDebounce=r.autoDialDiscoveredPeersDebounce??wn.autoDialDiscoveredPeersDebounce,this.log=e.logger.forComponent("libp2p:connection-manager:auto-dial"),this.started=!1,this.running=!1,this.queue=new Xo({concurrency:r.autoDialConcurrency??wn.autoDialConcurrency}),this.queue.addListener("error",i=>{this.log.error("error during auto-dial",i)}),e.events.addEventListener("connection:close",()=>{this.autoDial().catch(i=>{this.log.error(i)})});let n;e.events.addEventListener("peer:discovery",()=>{clearTimeout(n),n=setTimeout(()=>{this.autoDial().catch(i=>{this.log.error(i)})},this.autoDialDiscoveredPeersDebounce)})}isStarted(){return this.started}start(){this.started=!0}afterStart(){this.autoDial().catch(e=>{this.log.error("error while autodialing",e)})}stop(){this.queue.clear(),clearTimeout(this.autoDialInterval),this.started=!1,this.running=!1}async autoDial(){if(!this.started||this.running)return;let e=this.connectionManager.getConnectionsMap(),r=e.size;if(r>=this.minConnections){this.minConnections>0&&this.log.trace("have enough connections %d/%d",r,this.minConnections);return}if(this.queue.size>this.autoDialMaxQueueLength){this.log("not enough connections %d/%d but auto dial queue is full",r,this.minConnections),this.sheduleNextAutodial();return}this.running=!0,this.log("not enough connections %d/%d - will dial peers to increase the number of connections",r,this.minConnections);let n=new Nr(this.connectionManager.getDialQueue().map(u=>u.peerId).filter(Boolean)),i=await this.peerStore.all({filters:[u=>u.addresses.length===0?(this.log.trace("not autodialing %p because they have no addresses",u.id),!1):e.has(u.id)?(this.log.trace("not autodialing %p because they are already connected",u.id),!1):n.has(u.id)?(this.log.trace("not autodialing %p because they are already being dialed",u.id),!1):this.queue.hasJob(u.id)?(this.log.trace("not autodialing %p because they are already being autodialed",u.id),!1):!0]}),s=i.sort(()=>Math.random()>.5?1:-1),o=new ht;for(let u of s)o.has(u.id)||o.set(u.id,[...u.tags.values()].reduce((l,f)=>l+f.value,0));let c=s.sort((u,l)=>{let f=o.get(u.id)??0,h=o.get(l.id)??0;return f>h?-1:f<h?1:0}).filter(u=>{let l=u.metadata.get(Zo);if(l==null)return!0;let f=parseInt(ke(l));return isNaN(f)?!0:Date.now()-f>this.autoDialPeerRetryThresholdMs});this.log("selected %d/%d peers to dial",c.length,i.length);for(let u of c)this.queue.add(async()=>{let l=this.connectionManager.getConnectionsMap().size;if(l>=this.minConnections){this.log("got enough connections now %d/%d",l,this.minConnections),this.queue.clear();return}this.log("connecting to a peerStore stored peer %p",u.id),await this.connectionManager.openConnection(u.id,{priority:this.autoDialPriority})},{peerId:u.id}).catch(l=>{this.log.error("could not connect to peerStore stored peer",l)});this.running=!1,this.sheduleNextAutodial()}sheduleNextAutodial(){this.started&&(this.autoDialInterval=setTimeout(()=>{this.autoDial().catch(e=>{this.log.error("error while autodialing",e)})},this.autoDialIntervalMs))}};var jm={maxConnections:Jo,allow:[]},ra=class{maxConnections;connectionManager;peerStore;allow;events;log;constructor(e,r={}){this.maxConnections=r.maxConnections??jm.maxConnections,this.allow=r.allow??jm.allow,this.connectionManager=e.connectionManager,this.peerStore=e.peerStore,this.events=e.events,this.log=e.logger.forComponent("libp2p:connection-manager:connection-pruner"),e.events.addEventListener("connection:open",()=>{this.maybePruneConnections().catch(n=>{this.log.error(n)})})}async maybePruneConnections(){let e=this.connectionManager.getConnections(),r=e.length,n=Math.max(r-this.maxConnections,0);if(this.log("checking max connections limit %d/%d",r,this.maxConnections),r<=this.maxConnections)return;this.log("max connections limit exceeded %d/%d, pruning %d connection(s)",r,this.maxConnections,n);let i=new ht;for(let a of e){let c=a.remotePeer;if(!i.has(c)){i.set(c,0);try{let u=await this.peerStore.get(c);i.set(c,[...u.tags.values()].reduce((l,f)=>l+f.value,0))}catch(u){u.code!=="ERR_NOT_FOUND"&&this.log.error("error loading peer tags",u)}}}let s=e.sort((a,c)=>{let u=i.get(a.remotePeer)??0,l=i.get(c.remotePeer)??0;if(u>l)return 1;if(u<l)return-1;let f=a.timeline.open,h=c.timeline.open;return f<h?1:f>h?-1:0}),o=[];for(let a of s)if(this.log("too many connections open - closing a connection to %p",a.remotePeer),this.allow.some(u=>a.remoteAddr.toString().startsWith(u.toString()))||o.push(a),o.length===n)break;await Promise.all(o.map(async a=>{try{await a.close()}catch(c){this.log.error(c)}})),this.events.safeDispatchEvent("connection:prune",{detail:o})}};function na(t){let e=new globalThis.AbortController;function r(){e.abort();for(let s of t)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}for(let s of t){if(s?.aborted===!0){r();break}s?.addEventListener!=null&&s.addEventListener("abort",r)}function n(){for(let s of t)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}let i=e.signal;return i.clear=n,i}function at(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}async function Vl(t,e){if(!t.protoNames().includes("dnsaddr"))return[t];let n=await Iv(t,e),o=(await Promise.all(n.map(async a=>Vl(a,e)))).flat().reduce((a,c)=>(a.find(u=>u.equals(c))==null&&a.push(c),a),[]);return e.log("resolved %s to",t,o.map(a=>a.toString())),o}async function Iv(t,e){try{return t=Me(t.toString()),await t.resolve(e)}catch(r){return e.log.error(`multiaddr ${t.toString()} could not be resolved`,r),[]}}function Jm(...t){let e=[];for(let n of t)n!=null&&(mt(1/0,n),e.push(n));let r=na(e);return mt(1/0,r),r}var ia={addressSorter:si,maxParallelDials:ea,maxPeerAddrsToDial:25,dialTimeout:3e4,resolvers:{dnsaddr:oi}},sa=class{pendingDials;queue;peerId;peerStore;connectionGater;transportManager;addressSorter;maxPeerAddrsToDial;dialTimeout;inProgressDialCount;pendingDialCount;shutDownController;connections;log;constructor(e,r={}){this.addressSorter=r.addressSorter??ia.addressSorter,this.maxPeerAddrsToDial=r.maxPeerAddrsToDial??ia.maxPeerAddrsToDial,this.dialTimeout=r.dialTimeout??ia.dialTimeout,this.connections=r.connections??new ht,this.log=e.logger.forComponent("libp2p:connection-manager:dial-queue"),this.peerId=e.peerId,this.peerStore=e.peerStore,this.connectionGater=e.connectionGater,this.transportManager=e.transportManager,this.shutDownController=new AbortController,mt(1/0,this.shutDownController.signal),this.pendingDialCount=e.metrics?.registerMetric("libp2p_dial_queue_pending_dials"),this.inProgressDialCount=e.metrics?.registerMetric("libp2p_dial_queue_in_progress_dials"),this.pendingDials=[];for(let[n,i]of Object.entries(r.resolvers??{}))po.set(n,i);this.queue=new Ur({concurrency:r.maxParallelDials??ia.maxParallelDials}),this.queue.on("add",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("active",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("completed",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("error",n=>{this.log.error("error in dial queue",n),this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("empty",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("idle",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)})}stop(){this.shutDownController.abort()}async dial(e,r={}){let{peerId:n,multiaddrs:i}=Qo(e),s=i.map(h=>({multiaddr:h,isCertified:!1})),o=this.createDialAbortControllers(r.signal),a;try{a=await this.calculateMultiaddrs(n,s,{...r,signal:o})}catch(h){throw o.clear(),h}let c=Array.from(this.connections.values()).flat().find(h=>r.force===!0?!1:a.find(p=>p.multiaddr.equals(h.remoteAddr)));if(c!=null)return this.log("already connected to %a",c.remoteAddr),c;let u=this.pendingDials.find(h=>!!(h.peerId!=null&&n!=null&&h.peerId.equals(n)||a.map(({multiaddr:p})=>p.toString()).join()===h.multiaddrs.map(p=>p.toString()).join()));if(u!=null)return this.log("joining existing dial target for %p",n),o.clear(),u.promise;this.log("creating dial target for",a.map(({multiaddr:h})=>h.toString()));let l={id:Rv(),status:"queued",peerId:n,multiaddrs:a.map(({multiaddr:h})=>h)};l.promise=this.performDial(l,{...r,signal:o}).finally(()=>{this.pendingDials=this.pendingDials.filter(h=>h.id!==l.id),o.clear()}).catch(async h=>{if(this.log.error("dial failed to %s",l.multiaddrs.map(p=>p.toString()).join(", "),h),n!=null)try{await this.peerStore.patch(n,{metadata:{[Zo]:j(Date.now().toString())}})}catch(p){this.log.error("could not update last dial failure key for %p",n,p)}throw o.aborted?new S(h.message,Ts):h}),this.pendingDials.push(l);let f=await l.promise;return c=Array.from(this.connections.values()).flat().find(h=>r.force===!0?!1:h.id!==f.id&&h.remoteAddr.equals(f.remoteAddr)),c!=null?(this.log("already connected to %a",c.remoteAddr),await f.close(),c):(this.log("connection opened to %a",f.remoteAddr),f)}createDialAbortControllers(e){let r=na([AbortSignal.timeout(this.dialTimeout),this.shutDownController.signal,e]);try{mt?.(1/0,r)}catch{}return r}async calculateMultiaddrs(e,r=[],n={}){if(e!=null){if(this.peerId.equals(e))throw new S("Tried to dial self",F.ERR_DIALED_SELF);if(await this.connectionGater.denyDialPeer?.(e)===!0)throw new S("The dial request is blocked by gater.allowDialPeer",F.ERR_PEER_DIAL_INTERCEPTED);if(r.length===0){this.log("loading multiaddrs for %p",e);try{let l=await this.peerStore.get(e);r.push(...l.addresses),this.log("loaded multiaddrs for %p",e,r.map(({multiaddr:f})=>f.toString()))}catch(l){if(l.code!==F.ERR_NOT_FOUND)throw l}}}let i=(await Promise.all(r.map(async l=>{let f=await Vl(l.multiaddr,{...n,log:this.log});return f.length===1&&f[0].equals(l.multiaddr)?l:f.map(h=>({multiaddr:h,isCertified:!1}))}))).flat();if(e!=null){let l=`/p2p/${e.toString()}`;i=i.map(f=>f.multiaddr.protos().pop()?.path===!0?f:f.multiaddr.getPeerId()==null?{multiaddr:f.multiaddr.encapsulate(l),isCertified:f.isCertified}:f)}let s=i.filter(l=>{if(this.transportManager.transportForMultiaddr(l.multiaddr)==null)return!1;let f=l.multiaddr.getPeerId();return e!=null&&f!=null?e.equals(f):!0}),o=new Map;for(let l of s){let f=l.multiaddr.toString(),h=o.get(f);if(h!=null){h.isCertified=h.isCertified||l.isCertified||!1;continue}o.set(f,l)}let a=[...o.values()];if((a.length===0||a.length>this.maxPeerAddrsToDial)&&(this.log("addresses for %p before filtering",e??"unknown peer",i.map(({multiaddr:l})=>l.toString())),this.log("addresses for %p after filtering",e??"unknown peer",a.map(({multiaddr:l})=>l.toString()))),a.length===0)throw new S("The dial request has no valid addresses",F.ERR_NO_VALID_ADDRESSES);if(a.length>this.maxPeerAddrsToDial)throw new S("dial with more addresses than allowed",F.ERR_TOO_MANY_ADDRESSES);let c=[];for(let l of a)this.connectionGater.denyDialMultiaddr!=null&&await this.connectionGater.denyDialMultiaddr(l.multiaddr)||c.push(l);let u=c.sort(this.addressSorter);if(u.length===0)throw new S("The connection gater denied all addresses in the dial request",F.ERR_NO_VALID_ADDRESSES);return u}async performDial(e,r={}){let n=e.multiaddrs.map(()=>new AbortController);try{let i=new Ur({concurrency:1});i.on("error",o=>{this.log.error("error dialing %s %o",e.multiaddrs,o)});let s=await Promise.any(e.multiaddrs.map(async(o,a)=>{let c=n[a];if(c==null)throw new S("dialAction did not come with an AbortController",F.ERR_INVALID_PARAMETERS);let u=Jm(c.signal,r.signal);u.addEventListener("abort",()=>{this.log("dial to %a aborted",o)});let l=at();return await i.add(async()=>{if(u.aborted){this.log("dial to %a was aborted before reaching the head of the peer dial queue",o),l.reject(new Bn);return}await this.queue.add(async()=>{try{if(u.aborted){this.log("dial to %a was aborted before reaching the head of the dial queue",o),l.reject(new Bn);return}e.status="active";let f=await this.transportManager.dial(o,{...r,signal:u});if(c.signal.aborted){this.log("multiple dials succeeded, closing superfluous connection"),f.close().catch(h=>{this.log.error("error closing superfluous connection",h)}),l.reject(new Bn);return}n[a]=void 0,n.forEach(h=>{h!==void 0&&h.abort()}),this.log("dial to %a succeeded",o),l.resolve(f)}catch(f){this.log.error("error during dial of %a",o,f),l.reject(f)}},{...r,signal:u}).catch(f=>{l.reject(f)})},{signal:u}).catch(f=>{l.reject(f)}).finally(()=>{u.clear()}),l.promise}));if(s==null)throw new S("successful dial led to empty object returned from peer dial queue",F.ERR_TRANSPORT_DIAL_FAILED);return e.status="success",s}catch(i){throw e.status="error",e.multiaddrs.length===1&&i.name==="AggregateError"?i.errors[0]:i}}};function Rv(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Bv=50,En={minConnections:jo,maxConnections:Jo,inboundConnectionThreshold:5,maxIncomingPendingConnections:10,autoDialConcurrency:25,autoDialPriority:0,autoDialMaxQueueLength:100},oa=class{started;connections;allow;deny;maxIncomingPendingConnections;incomingPendingConnections;maxConnections;dialQueue;autoDial;connectionPruner;inboundConnectionRateLimiter;peerStore;metrics;events;log;constructor(e,r={}){this.maxConnections=r.maxConnections??En.maxConnections;let n=r.minConnections??En.minConnections;if(this.maxConnections<n)throw new S("Connection Manager maxConnections must be greater than minConnections",F.ERR_INVALID_PARAMETERS);this.connections=new ht,this.started=!1,this.peerStore=e.peerStore,this.metrics=e.metrics,this.events=e.events,this.log=e.logger.forComponent("libp2p:connection-manager"),this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.events.addEventListener("connection:open",this.onConnect),this.events.addEventListener("connection:close",this.onDisconnect),this.allow=(r.allow??[]).map(i=>Me(i)),this.deny=(r.deny??[]).map(i=>Me(i)),this.incomingPendingConnections=0,this.maxIncomingPendingConnections=r.maxIncomingPendingConnections??En.maxIncomingPendingConnections,this.inboundConnectionRateLimiter=new eg.RateLimiterMemory({points:r.inboundConnectionThreshold??En.inboundConnectionThreshold,duration:1}),this.autoDial=new ta({connectionManager:this,peerStore:e.peerStore,events:e.events,logger:e.logger},{minConnections:n,autoDialConcurrency:r.autoDialConcurrency??En.autoDialConcurrency,autoDialPriority:r.autoDialPriority??En.autoDialPriority,maxQueueLength:r.autoDialMaxQueueLength??En.autoDialMaxQueueLength}),this.connectionPruner=new ra({connectionManager:this,peerStore:e.peerStore,events:e.events,logger:e.logger},{maxConnections:this.maxConnections,allow:this.allow}),this.dialQueue=new sa({peerId:e.peerId,metrics:e.metrics,peerStore:e.peerStore,transportManager:e.transportManager,connectionGater:e.connectionGater,logger:e.logger},{addressSorter:r.addressSorter??si,maxParallelDials:r.maxParallelDials??ea,maxPeerAddrsToDial:r.maxPeerAddrsToDial??25,dialTimeout:r.dialTimeout??3e4,resolvers:r.resolvers??{dnsaddr:oi},connections:this.connections})}isStarted(){return this.started}async start(){this.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let e={inbound:0,outbound:0};for(let r of this.connections.values())for(let n of r)n.direction==="inbound"?e.inbound++:e.outbound++;return e}}),this.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let e={};for(let r of this.connections.values())for(let n of r)for(let i of n.streams){let s=`${i.direction} ${i.protocol??"unnegotiated"}`;e[s]=(e[s]??0)+1}return e}}),this.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let e={};for(let n of this.connections.values())for(let i of n){let s={};for(let o of i.streams){let a=`${o.direction} ${o.protocol??"unnegotiated"}`;s[a]=(s[a]??0)+1}for(let[o,a]of Object.entries(s))e[o]=e[o]??[],e[o].push(a)}let r={};for(let[n,i]of Object.entries(e)){i=i.sort((o,a)=>o-a);let s=Math.floor(i.length*.9);r[n]=i[s]}return r}}),this.autoDial.start(),this.started=!0,this.log("started")}async afterStart(){Promise.resolve().then(async()=>{let e=await this.peerStore.all({filters:[r=>r.tags.has(T0)]});await Promise.all(e.map(async r=>{await this.openConnection(r.id).catch(n=>{this.log.error(n)})}))}).catch(e=>{this.log.error(e)}),this.autoDial.afterStart()}async stop(){this.dialQueue.stop(),this.autoDial.stop();let e=[];for(let r of this.connections.values())for(let n of r)e.push((async()=>{try{await n.close()}catch(i){this.log.error(i)}})());this.log("closing %d connections",e.length),await Promise.all(e),this.connections.clear(),this.log("stopped")}onConnect(e){this._onConnect(e).catch(r=>{this.log.error(r)})}async _onConnect(e){let{detail:r}=e;if(!this.started){await r.close();return}let n=r.remotePeer,i=this.connections.get(n),s=!1;i!=null?i.push(r):(s=!0,this.connections.set(n,[r])),n.publicKey!=null&&n.type==="RSA"&&await this.peerStore.patch(n,{publicKey:n.publicKey}),s&&this.events.safeDispatchEvent("peer:connect",{detail:r.remotePeer})}onDisconnect(e){let{detail:r}=e;if(!this.started)return;let n=r.remotePeer,i=this.connections.get(n);i!=null&&i.length>1?(i=i.filter(s=>s.id!==r.id),this.connections.set(n,i)):i!=null&&(this.connections.delete(n),this.events.safeDispatchEvent("peer:disconnect",{detail:r.remotePeer}))}getConnections(e){if(e!=null)return this.connections.get(e)??[];let r=[];for(let n of this.connections.values())r=r.concat(n);return r}getConnectionsMap(){return this.connections}async openConnection(e,r={}){if(!this.isStarted())throw new S("Not started",F.ERR_NODE_NOT_STARTED);r.signal?.throwIfAborted();let{peerId:n}=Qo(e);if(n!=null&&r.force!==!0){this.log("dial %p",n);let a=this.getConnections(n).find(c=>!c.transient);if(a!=null)return this.log("had an existing non-transient connection to %p",n),a}let i=await this.dialQueue.dial(e,{...r,priority:r.priority??Bv}),s=this.connections.get(i.remotePeer);s==null&&(s=[],this.connections.set(i.remotePeer,s));let o=!1;for(let a of s)a.id===i.id&&(o=!0);return o||s.push(i),i}async closeConnections(e,r={}){let n=this.connections.get(e)??[];await Promise.all(n.map(async i=>{try{await i.close(r)}catch(s){i.abort(s)}}))}async acceptIncomingConnection(e){if(this.deny.some(i=>e.remoteAddr.toString().startsWith(i.toString())))return this.log("connection from %a refused - connection remote address was in deny list",e.remoteAddr),!1;if(this.allow.some(i=>e.remoteAddr.toString().startsWith(i.toString())))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.maxIncomingPendingConnections)return this.log("connection from %a refused - incomingPendingConnections exceeded by host",e.remoteAddr),!1;if(e.remoteAddr.isThinWaistAddress()){let i=e.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(i,1)}catch{return this.log("connection from %a refused - inboundConnectionThreshold exceeded by host %s",e.remoteAddr,i),!1}}return this.getConnections().length<this.maxConnections?(this.incomingPendingConnections++,!0):(this.log("connection from %a refused - maxConnections exceeded",e.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}getDialQueue(){return this.dialQueue.pendingDials}};var aa=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}},di=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new aa(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 r=this.head;this.head=r.next=new aa(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var Hl=class extends Error{type;code;constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function ca(t={}){return Lv(r=>{let n=r.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},t)}function Lv(t,e){e=e??{};let r=e.onEnd,n=new di,i,s,o,a=at(),c=async()=>{try{return n.isEmpty()?o?{done:!0}:await new Promise((g,y)=>{s=x=>{s=null,n.push(x);try{g(t(n))}catch(b){y(b)}return i}}):t(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=at()})}},u=g=>s!=null?s(g):(n.push(g),i),l=g=>(n=new di,s!=null?s({error:g}):(n.push({error:g}),i)),f=g=>{if(o)return i;if(e?.objectMode!==!0&&g?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:g})},h=g=>o?i:(o=!0,g!=null?l(g):u({done:!0})),p=()=>(n=new di,h(),{done:!0}),d=g=>(h(g),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:p,throw:d,push:f,end:h,get readableLength(){return n.size},onEmpty:async g=>{let y=g?.signal;if(y?.throwIfAborted(),n.isEmpty())return;let x,b;y!=null&&(x=new Promise((I,v)=>{b=()=>{v(new Hl)},y.addEventListener("abort",b)}));try{await Promise.race([a.promise,x])}finally{b!=null&&y!=null&&y?.removeEventListener("abort",b)}}},r==null)return i;let m=i;return i={[Symbol.asyncIterator](){return this},next(){return m.next()},throw(g){return m.throw(g),r!=null&&(r(g),r=void 0),{done:!0}},return(){return m.return(),r!=null&&(r(),r=void 0),{done:!0}},push:f,end(g){return m.end(g),r!=null&&(r(g),r=void 0),i},get readableLength(){return m.readableLength},onEmpty:g=>m.onEmpty(g)},i}function Pv(t){return t[Symbol.asyncIterator]!=null}function Dv(...t){let e=[];for(let r of t)Pv(r)||e.push(r);return e.length===t.length?function*(){for(let r of e)yield*r}():async function*(){let r=ca({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(t.map(async n=>{for await(let i of n)r.push(i)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var vn=Dv;function ss(t,...e){if(t==null)throw new Error("Empty pipeline");if(Gl(t)){let n=t;t=()=>n.source}else if(rg(t)||tg(t)){let n=t;t=()=>n}let r=[t,...e];if(r.length>1&&Gl(r[r.length-1])&&(r[r.length-1]=r[r.length-1].sink),r.length>2)for(let n=1;n<r.length-1;n++)Gl(r[n])&&(r[n]=kv(r[n]));return Nv(...r)}var Nv=(...t)=>{let e;for(;t.length>0;)e=t.shift()(e);return e},tg=t=>t?.[Symbol.asyncIterator]!=null,rg=t=>t?.[Symbol.iterator]!=null,Gl=t=>t==null?!1:t.sink!=null&&t.source!=null,kv=t=>e=>{let r=t.sink(e);if(r?.then!=null){let n=ca({objectMode:!0});r.then(()=>{n.end()},o=>{n.end(o)});let i,s=t.source;if(tg(s))i=async function*(){yield*s,n.end()};else if(rg(s))i=function*(){yield*s,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return vn(n,i())}return t.source};function Ov(t){return t[Symbol.asyncIterator]!=null}function Mv(t,e){if(Ov(t))return async function*(){for await(let a of t)yield e(a)}();let r=Po(t),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let s=e(n);if(typeof s.then=="function")return async function*(){yield await s;for await(let a of r)yield e(a)}();let o=e;return function*(){yield s;for(let a of r)yield o(a)}()}var ng=Mv;async function*os(t,e){yield*ng(t,async r=>(await e.merge(r.id,{multiaddrs:r.multiaddrs}),r))}function ua(t){let e=new Set;return Kt(t,r=>e.has(r.id.toString())?!1:(e.add(r.id.toString()),!0))}async function*la(t,e=1){let r=0;for await(let n of t)r++,yield n;if(r<e)throw new S(`more peers required, seen: ${r} min: ${e}`,"NOT_FOUND")}var fa=class{routers;started;components;constructor(e,r){this.routers=r.routers??[],this.started=!1,this.components=e}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(e,r={}){if(this.routers.length===0)throw new S("No content routers available",F.ERR_NO_ROUTERS_AVAILABLE);yield*ss(vn(...this.routers.map(n=>n.findProviders(e,r))),n=>os(n,this.components.peerStore),n=>ua(n),n=>la(n))}async provide(e,r={}){if(this.routers.length===0)throw new S("No content routers available",F.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map(async n=>{await n.provide(e,r)}))}async put(e,r,n){if(!this.isStarted())throw new S(xr.NOT_STARTED_YET,F.ERR_NODE_NOT_STARTED);await Promise.all(this.routers.map(async i=>{await i.put(e,r,n)}))}async get(e,r){if(!this.isStarted())throw new S(xr.NOT_STARTED_YET,F.ERR_NODE_NOT_STARTED);return Promise.any(this.routers.map(async n=>n.get(e,r)))}};function Uv(t){return t[Symbol.asyncIterator]!=null}function Fv(t){if(Uv(t))return(async()=>{for await(let e of t)return e})();for(let e of t)return e}var ig=Fv;var ha=class{log;peerId;peerStore;routers;constructor(e,r){this.log=e.logger.forComponent("libp2p:peer-routing"),this.peerId=e.peerId,this.peerStore=e.peerStore,this.routers=r.routers??[]}async findPeer(e,r){if(this.routers.length===0)throw new S("No peer routers available",F.ERR_NO_ROUTERS_AVAILABLE);if(e.toString()===this.peerId.toString())throw new S("Should not try to find self",F.ERR_FIND_SELF);let n=this,i=await ss(vn(...this.routers.map(s=>async function*(){try{yield await s.findPeer(e,r)}catch(o){n.log.error(o)}}())),s=>Kt(s,Boolean),s=>os(s,this.peerStore),async s=>ig(s));if(i!=null)return i;throw new S(xr.NOT_FOUND,F.ERR_NOT_FOUND)}async*getClosestPeers(e,r){if(this.routers.length===0)throw new S("No peer routers available",F.ERR_NO_ROUTERS_AVAILABLE);yield*ss(vn(...this.routers.map(n=>n.getClosestPeers(e,r))),n=>os(n,this.peerStore),n=>ua(n),n=>la(n))}};var Wl=32,Yl=64,da=class{log;topologies;handlers;components;constructor(e){this.log=e.logger.forComponent("libp2p:registrar"),this.topologies=new Map,this.handlers=new Map,this.components=e,this._onDisconnect=this._onDisconnect.bind(this),this._onPeerUpdate=this._onPeerUpdate.bind(this),this._onPeerIdentify=this._onPeerIdentify.bind(this),this.components.events.addEventListener("peer:disconnect",this._onDisconnect),this.components.events.addEventListener("peer:update",this._onPeerUpdate),this.components.events.addEventListener("peer:identify",this._onPeerIdentify)}getProtocols(){return Array.from(new Set([...this.handlers.keys()])).sort()}getHandler(e){let r=this.handlers.get(e);if(r==null)throw new S(`No handler registered for protocol ${e}`,F.ERR_NO_HANDLER_FOR_PROTOCOL);return r}getTopologies(e){let r=this.topologies.get(e);return r==null?[]:[...r.values()]}async handle(e,r,n){if(this.handlers.has(e))throw new S(`Handler already registered for protocol ${e}`,F.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let i=Wo.bind({ignoreUndefined:!0})({maxInboundStreams:Wl,maxOutboundStreams:Yl},n);this.handlers.set(e,{handler:r,options:i}),await this.components.peerStore.merge(this.components.peerId,{protocols:[e]})}async unhandle(e){(Array.isArray(e)?e:[e]).forEach(n=>{this.handlers.delete(n)}),await this.components.peerStore.patch(this.components.peerId,{protocols:this.getProtocols()})}async register(e,r){if(r==null)throw new S("invalid topology",F.ERR_INVALID_PARAMETERS);let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,i=this.topologies.get(e);return i==null&&(i=new Map,this.topologies.set(e,i)),i.set(n,r),n}unregister(e){for(let[r,n]of this.topologies.entries())n.has(e)&&(n.delete(e),n.size===0&&this.topologies.delete(r))}_onDisconnect(e){let r=e.detail;this.components.peerStore.get(r).then(n=>{for(let i of n.protocols){let s=this.topologies.get(i);if(s!=null)for(let o of s.values())o.onDisconnect?.(r)}}).catch(n=>{n.code!==F.ERR_NOT_FOUND&&this.log.error("could not inform topologies of disconnecting peer %p",r,n)})}_onPeerUpdate(e){let{peer:r,previous:n}=e.detail,i=(n?.protocols??[]).filter(s=>!r.protocols.includes(s));for(let s of i){let o=this.topologies.get(s);if(o!=null)for(let a of o.values())a.onDisconnect?.(r.id)}}_onPeerIdentify(e){let r=e.detail.protocols,n=e.detail.connection,i=e.detail.peerId;for(let s of r){let o=this.topologies.get(s);if(o!=null)for(let a of o.values())n.transient&&a.notifyOnTransient!==!0||a.onConnect?.(i,n)}}};var Ql=class extends Map{metric;constructor(e){super();let{name:r,metrics:n}=e;this.metric=n.registerMetric(r),this.updateComponentMetric()}set(e,r){return super.set(e,r),this.updateComponentMetric(),this}delete(e){let r=super.delete(e);return this.updateComponentMetric(),r}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function sg(t){let{name:e,metrics:r}=t,n;return r!=null?n=new Ql({name:e,metrics:r}):n=new Map,n}var pa=class{log;components;transports;listeners;faultTolerance;started;constructor(e,r={}){this.log=e.logger.forComponent("libp2p:transports"),this.components=e,this.started=!1,this.transports=new Map,this.listeners=sg({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=r.faultTolerance??_r.FATAL_ALL}add(e){let r=e[Symbol.toStringTag];if(r==null)throw new S("Transport must have a valid tag",F.ERR_INVALID_KEY);if(this.transports.has(r))throw new S(`There is already a transport with the tag ${r}`,F.ERR_DUPLICATE_TRANSPORT);this.log("adding transport %s",r),this.transports.set(r,e),this.listeners.has(r)||this.listeners.set(r,[])}isStarted(){return this.started}start(){this.started=!0}async afterStart(){let e=this.components.addressManager.getListenAddrs();await this.listen(e)}async stop(){let e=[];for(let[r,n]of this.listeners)for(this.log("closing listeners for %s",r);n.length>0;){let i=n.pop();i!=null&&e.push(i.close())}await Promise.all(e),this.log("all listeners closed");for(let r of this.listeners.keys())this.listeners.set(r,[]);this.started=!1}async dial(e,r){let n=this.transportForMultiaddr(e);if(n==null)throw new S(`No transport available for address ${String(e)}`,F.ERR_TRANSPORT_UNAVAILABLE);try{return await n.dial(e,{...r,upgrader:this.components.upgrader})}catch(i){throw i.code==null&&(i.code=F.ERR_TRANSPORT_DIAL_FAILED),i}}getAddrs(){let e=[];for(let r of this.listeners.values())for(let n of r)e=[...e,...n.getAddrs()];return e}getTransports(){return Array.of(...this.transports.values())}getListeners(){return Array.of(...this.listeners.values()).flat()}transportForMultiaddr(e){for(let r of this.transports.values())if(r.filter([e]).length>0)return r}async listen(e){if(!this.isStarted())throw new S("Not started",F.ERR_NODE_NOT_STARTED);if(e==null||e.length===0){this.log("no addresses were provided for listening, this node is dial only");return}let r=[];for(let[n,i]of this.transports.entries()){let s=i.filter(e),o=[];for(let u of s){this.log("creating listener for %s on %a",n,u);let l=i.createListener({upgrader:this.components.upgrader}),f=this.listeners.get(n)??[];f==null&&(f=[],this.listeners.set(n,f)),f.push(l),l.addEventListener("listening",()=>{this.components.events.safeDispatchEvent("transport:listening",{detail:l})}),l.addEventListener("close",()=>{let h=f.findIndex(p=>p===l);f.splice(h,1),this.components.events.safeDispatchEvent("transport:close",{detail:l})}),o.push(l.listen(u))}if(o.length===0){r.push(n);continue}if((await Promise.allSettled(o)).find(u=>u.status==="fulfilled")==null&&this.faultTolerance!==_r.NO_FATAL)throw new S(`Transport (${n}) could not listen on any available address`,F.ERR_NO_VALID_ADDRESSES)}if(r.length===this.transports.size){let n=`no valid addresses were provided for transports [${r.join(", ")}]`;if(this.faultTolerance===_r.FATAL_ALL)throw new S(n,F.ERR_NO_VALID_ADDRESSES);this.log(`libp2p in dial mode only: ${n}`)}}async remove(e){let r=this.listeners.get(e)??[];this.log.trace("removing transport %s",e);let n=[];for(this.log.trace("closing listeners for %s",e);r.length>0;){let i=r.pop();i!=null&&n.push(i.close())}await Promise.all(n),this.transports.delete(e),this.listeners.delete(e)}async removeAll(){let e=[];for(let r of this.transports.keys())e.push(this.remove(r));await Promise.all(e)}};var je="/multistream/1.0.0";var ma=class extends Error{type;code;constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=r??"ABORT_ERR"}};async function og(t,e,r){if(e==null)return t;if(e.aborted)return Promise.reject(new ma(r?.errorMessage,r?.errorCode));let n,i=new ma(r?.errorMessage,r?.errorCode);try{return await Promise.race([t,new Promise((s,o)=>{n=()=>{o(i)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var Xl=class{needNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.needNext=at(),this.haveNext=at()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("Have next but next was undefined");let e=this.nextResult;return this.nextResult=void 0,this.needNext.resolve(),this.needNext=at(),e}async throw(e){return this.ended=!0,e!=null&&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,r){await this._push(e,r)}async end(e,r){e!=null?await this.throw(e):await this._push(void 0,r)}async _push(e,r){if(e!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");this.nextResult!=null&&await this.needNext.promise,e!=null?this.nextResult={done:!1,value:e}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=at(),await og(this.needNext.promise,r?.signal,r)}};function ag(){return new Xl}var ga=class extends Error{code;constructor(e,r){super(e),this.code=r}},Zl=class extends ga{type;constructor(e){super(e,"ABORT_ERR"),this.type="aborted"}};function cg(t,e){let r=ag();t.sink(r).catch(async o=>{await r.end(o)}),t.sink=async o=>{for await(let a of o)await r.push(a);await r.end()};let n=t.source;t.source[Symbol.iterator]!=null?n=t.source[Symbol.iterator]():t.source[Symbol.asyncIterator]!=null&&(n=t.source[Symbol.asyncIterator]());let i=new $e;return{read:async(o,a)=>{a?.signal?.throwIfAborted();let c,u=new Promise((l,f)=>{c=()=>{f(new Zl("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(o==null){let{done:f,value:h}=await Promise.race([n.next(),u]);return f===!0?new $e:h}for(;i.byteLength<o;){let{value:f,done:h}=await Promise.race([n.next(),u]);if(h===!0)throw new ga("unexpected end of input","ERR_UNEXPECTED_EOF");i.append(f)}let l=i.sublist(0,o);return i.consume(o),l}finally{c!=null&&a?.signal?.removeEventListener("abort",c)}},write:async(o,a)=>{a?.signal?.throwIfAborted(),o instanceof Uint8Array?await r.push(o,a):await r.push(o.subarray(),a)},unwrap:()=>{if(i.byteLength>0){let o=t.source;t.source=async function*(){e?.yieldBytes===!1?yield i:yield*i,yield*o}()}return t}}}function ug(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function lg(t=0){return globalThis.Buffer?.allocUnsafe!=null?ug(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function ya(t){return t[Symbol.asyncIterator]!=null}var xa=t=>{let e=rt(t),r=lg(e);return dt(t,r),xa.bytes=e,r};xa.bytes=0;function _n(t,e){e=e??{};let r=e.lengthEncoder??xa;function*n(i){let s=r(i.byteLength);s instanceof Uint8Array?yield s:yield*s,i instanceof Uint8Array?yield i:yield*i}return ya(t)?async function*(){for await(let i of t)yield*n(i)}():function*(){for(let i of t)yield*n(i)}()}_n.single=(t,e)=>{e=e??{};let r=e.lengthEncoder??xa;return new $e(r(t.byteLength),t)};var pi=Ee(al(),1);var Kv=8,qv=1024*1024*4,Sn;(function(t){t[t.LENGTH=0]="LENGTH",t[t.DATA=1]="DATA"})(Sn||(Sn={}));var Jl=t=>{let e=Ut(t);return Jl.bytes=rt(e),e};Jl.bytes=0;function jl(t,e){let r=new $e,n=Sn.LENGTH,i=-1,s=e?.lengthDecoder??Jl,o=e?.maxLengthLength??Kv,a=e?.maxDataLength??qv;function*c(){for(;r.byteLength>0;){if(n===Sn.LENGTH)try{if(i=s(r),i<0)throw(0,pi.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>a)throw(0,pi.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=s.bytes;r.consume(u),e?.onLength!=null&&e.onLength(i),n=Sn.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>o)throw(0,pi.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===Sn.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),e?.onData!=null&&e.onData(u),yield u,n=Sn.LENGTH}}}return ya(t)?async function*(){for await(let u of t)r.append(u),yield*c();if(r.byteLength>0)throw(0,pi.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let u of t)r.append(u),yield*c();if(r.byteLength>0)throw(0,pi.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}jl.fromReader=(t,e)=>{let r=1,n=async function*(){for(;;)try{let{done:s,value:o}=await t.next(r);if(s===!0)return;o!=null&&(yield o)}catch(s){if(s.code==="ERR_UNDER_READ")return{done:!0,value:null};throw s}finally{r=1}}();return jl(n,{...e??{},onLength:s=>{r=s}})};var ba=class extends Error{code;constructor(e,r){super(e),this.code=r}},fg=t=>Ut(t);fg.bytes=0;function as(t,e={}){let r=cg(t,e);return e.maxDataLength!=null&&e.maxLengthLength==null&&(e.maxLengthLength=rt(e.maxDataLength)),{read:async i=>{let s=-1,o=new $e,a=e?.lengthDecoder??fg;for(;;){o.append(await r.read(1,i));try{s=a(o)}catch(c){if(c instanceof RangeError)continue;throw c}if(e?.maxLengthLength!=null&&o.byteLength>e.maxLengthLength)throw new ba("message length length too long","ERR_MSG_LENGTH_TOO_LONG");if(s>-1)break}if(e?.maxDataLength!=null&&s>e.maxDataLength)throw new ba("message length too long","ERR_MSG_DATA_TOO_LONG");return r.read(s,i)},write:async(i,s)=>{await r.write(_n.single(i,e),s)},writeV:async(i,s)=>{let o=new $e(...i.map(a=>_n.single(a,e)));await r.write(o,s)},unwrap:()=>r.unwrap()}}var $v=j(`
|
|
49
|
-
`);async function
|
|
50
|
-
`),o=
|
|
51
|
-
`);await
|
|
52
|
-
`),r),r.log.trace("select: reading protocol response");let u=await
|
|
53
|
-
`;yield new
|
|
54
|
-
`),
|
|
55
|
-
`),
|
|
56
|
-
`)]),r.log.trace('optimistic: wrote ["%s", "%s", data] in source',
|
|
57
|
-
`),r),r.log.trace('handle: responded with "%s" for "%s"',
|
|
58
|
-
`),r),r.log.trace('handle: responded with "%s" for "%s"',i,i),{stream:n.unwrap(),protocol:i};if(i==="ls"){let s=new
|
|
59
|
-
`))),
|
|
60
|
-
`));r.log.trace('handle: respond with "%s" for %s',e,i),await
|
|
61
|
-
`),r),r.log('handle: responded with "na" for "%s"',i)}}var Wv=500,ef=class{id;remoteAddr;remotePeer;direction;timeline;multiplexer;encryption;status;transient;log;tags;_newStream;_close;_abort;_getStreams;constructor(e){let{remoteAddr:r,remotePeer:n,newStream:i,close:s,abort:o,getStreams:a}=e;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=r,this.remotePeer=n,this.direction=e.direction,this.status="open",this.timeline=e.timeline,this.multiplexer=e.multiplexer,this.encryption=e.encryption,this.transient=e.transient??!1,this.log=e.logger.forComponent(`libp2p:connection:${this.direction}:${this.id}`),this.remoteAddr.getPeerId()==null&&(this.remoteAddr=this.remoteAddr.encapsulate(`/p2p/${this.remotePeer}`)),this._newStream=i,this._close=s,this._abort=o,this._getStreams=a,this.tags=[]}[Symbol.toStringTag]="Connection";[C0]=!0;get streams(){return this._getStreams()}async newStream(e,r){if(this.status==="closing")throw new S("the connection is being closed","ERR_CONNECTION_BEING_CLOSED");if(this.status==="closed")throw new S("the connection is closed","ERR_CONNECTION_CLOSED");if(Array.isArray(e)||(e=[e]),this.transient&&r?.runOnTransientConnection!==!0)throw new S("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");let n=await this._newStream(e,r);return n.direction="outbound",n}async close(e={}){if(!(this.status==="closed"||this.status==="closing")){if(this.log("closing connection to %a",this.remoteAddr),this.status="closing",e.signal==null){let r=AbortSignal.timeout(Wv);mt(1/0,r),e={...e,signal:r}}try{this.log.trace("closing all streams"),await Promise.all(this.streams.map(async r=>r.close(e))),this.log.trace("closing underlying transport"),await this._close(e),this.log.trace("updating timeline with close time"),this.status="closed",this.timeline.close=Date.now()}catch(r){this.log.error("error encountered during graceful close of connection to %a",this.remoteAddr,r),this.abort(r)}}}abort(e){this.log.error("aborting connection to %a due to error",this.remoteAddr,e),this.status="closing",this.streams.forEach(r=>{r.abort(e)}),this.log.error("all streams aborted",this.streams.length),this._abort(e),this.timeline.close=Date.now(),this.status="closed"}};function pg(t){return new ef(t)}var Qv=3e4;function Xv(t,e){try{let{options:r}=e.getHandler(t);return r.maxInboundStreams}catch(r){if(r.code!==F.ERR_NO_HANDLER_FOR_PROTOCOL)throw r}return Wl}function Zv(t,e,r={}){try{let{options:n}=e.getHandler(t);if(n.maxOutboundStreams!=null)return n.maxOutboundStreams}catch(n){if(n.code!==F.ERR_NO_HANDLER_FOR_PROTOCOL)throw n}return r.maxOutboundStreams??Yl}function mg(t,e,r){let n=0;return r.streams.forEach(i=>{i.direction===e&&i.protocol===t&&n++}),n}var Ea=class{components;connectionEncryption;muxers;inboundUpgradeTimeout;events;constructor(e,r){this.components=e,this.connectionEncryption=new Map,r.connectionEncryption.forEach(n=>{this.connectionEncryption.set(n.protocol,n)}),this.muxers=new Map,r.muxers.forEach(n=>{this.muxers.set(n.protocol,n)}),this.inboundUpgradeTimeout=r.inboundUpgradeTimeout??3e4,this.events=e.events}async shouldBlockConnection(e,r,n){let i=this.components.connectionGater[n];if(i!==void 0&&await i(e,r))throw new S(`The multiaddr connection is blocked by gater.${n}`,F.ERR_CONNECTION_INTERCEPTED)}async upgradeInbound(e,r){if(!await this.components.connectionManager.acceptIncomingConnection(e))throw new S("connection denied",F.ERR_CONNECTION_DENIED);let i,s,o,a,c,u=AbortSignal.timeout(this.inboundUpgradeTimeout),l=()=>{e.abort(new S("inbound upgrade timeout",Ts))};u.addEventListener("abort",l,{once:!0}),mt(1/0,u);try{if(await this.components.connectionGater.denyInboundConnection?.(e)===!0)throw new S("The multiaddr connection is blocked by gater.acceptConnection",F.ERR_CONNECTION_INTERCEPTED);this.components.metrics?.trackMultiaddrConnection(e),e.log("starting the inbound connection upgrade");let f=e;if(r?.skipProtection!==!0){let h=this.components.connectionProtector;h!=null&&(e.log("protecting the inbound connection"),f=await h.protect(e))}try{if(i=f,r?.skipEncryption!==!0){({conn:i,remotePeer:s,protocol:c}=await this._encryptInbound(f));let h={...f,...i};await this.shouldBlockConnection(s,h,"denyInboundEncryptedConnection")}else{let h=e.remoteAddr.getPeerId();if(h==null)throw new S("inbound connection that skipped encryption must have a peer id",F.ERR_INVALID_MULTIADDR);let p=ae(h);c="native",s=p}if(o=i,r?.muxerFactory!=null)a=r.muxerFactory;else if(this.muxers.size>0){let h=await this._multiplexInbound({...f,...i},this.muxers);a=h.muxerFactory,o=h.stream}}catch(h){throw e.log.error("failed to upgrade inbound connection",h),h}return await this.shouldBlockConnection(s,e,"denyInboundUpgradedConnection"),e.log("successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:c,direction:"inbound",maConn:e,upgradedConn:o,muxerFactory:a,remotePeer:s,transient:r?.transient})}finally{u.removeEventListener("abort",l),this.components.connectionManager.afterUpgradeInbound()}}async upgradeOutbound(e,r){let n=e.remoteAddr.getPeerId(),i;n!=null&&(i=ae(n),await this.shouldBlockConnection(i,e,"denyOutboundConnection"));let s,o,a,c,u;this.components.metrics?.trackMultiaddrConnection(e),e.log("starting the outbound connection upgrade");let l=e;if(r?.skipProtection!==!0){let f=this.components.connectionProtector;f!=null&&(l=await f.protect(e))}try{if(s=l,r?.skipEncryption!==!0){({conn:s,remotePeer:o,protocol:c}=await this._encryptOutbound(l,i));let f={...l,...s};await this.shouldBlockConnection(o,f,"denyOutboundEncryptedConnection")}else{if(i==null)throw new S("Encryption was skipped but no peer id was passed",F.ERR_INVALID_PEER);c="native",o=i}if(a=s,r?.muxerFactory!=null)u=r.muxerFactory;else if(this.muxers.size>0){let f=await this._multiplexOutbound({...l,...s},this.muxers);u=f.muxerFactory,a=f.stream}}catch(f){throw e.log.error("failed to upgrade outbound connection",f),await e.close(f),f}return await this.shouldBlockConnection(o,e,"denyOutboundUpgradedConnection"),e.log("successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:e,upgradedConn:a,muxerFactory:u,remotePeer:o,transient:r?.transient})}_createConnection(e){let{cryptoProtocol:r,direction:n,maConn:i,upgradedConn:s,remotePeer:o,muxerFactory:a,transient:c}=e,u,l,f;a!=null&&(u=a.createStreamMuxer({direction:n,onIncomingStream:d=>{f!=null&&Promise.resolve().then(async()=>{let m=this.components.registrar.getProtocols(),{stream:g,protocol:y}=await us(d,m,{log:d.log,yieldBytes:!1});if(f==null)return;f.log("incoming stream opened on %s",y);let x=Xv(y,this.components.registrar);if(mg(y,"inbound",f)===x){let I=new S(`Too many inbound protocol streams for protocol "${y}" - limit ${x}`,F.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS);throw d.abort(I),I}d.source=g.source,d.sink=g.sink,d.protocol=y,g.closeWrite!=null&&(d.closeWrite=g.closeWrite),g.closeRead!=null&&(d.closeRead=g.closeRead),g.close!=null&&(d.close=g.close),await this.components.peerStore.merge(o,{protocols:[y]}),this.components.metrics?.trackProtocolStream(d,f),this._onStream({connection:f,stream:d,protocol:y})}).catch(async m=>{f.log.error("error handling incoming stream id %s",d.id,m.message,m.code,m.stack),d.timeline.close==null&&await d.close()})}}),l=async(d,m={})=>{if(u==null)throw new S("Stream is not multiplexed",F.ERR_MUXER_UNAVAILABLE);f.log("starting new stream for protocols %s",d);let g=await u.newStream();f.log.trace("started new stream %s for protocols %s",g.id,d);try{if(m.signal==null){g.log("no abort signal was passed while trying to negotiate protocols %s falling back to default timeout",d);let v=AbortSignal.timeout(Qv);mt(1/0,v),m={...m,signal:v}}g.log.trace("selecting protocol from protocols %s",d);let{stream:y,protocol:x}=await cs(g,d,{...m,log:g.log,yieldBytes:!0});g.log("selected protocol %s",x);let b=Zv(x,this.components.registrar,m);if(mg(x,"outbound",f)>=b){let v=new S(`Too many outbound protocol streams for protocol "${x}" - limit ${b}`,F.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw g.abort(v),v}return await this.components.peerStore.merge(o,{protocols:[x]}),g.source=y.source,g.sink=y.sink,g.protocol=x,y.closeWrite!=null&&(g.closeWrite=y.closeWrite),y.closeRead!=null&&(g.closeRead=y.closeRead),y.close!=null&&(g.close=y.close),this.components.metrics?.trackProtocolStream(g,f),g}catch(y){throw f.log.error("could not create new stream for protocols %s",d,y),g.timeline.close==null&&g.abort(y),y.code!=null?y:new S(String(y),F.ERR_UNSUPPORTED_PROTOCOL)}},Promise.all([u.sink(s.source),s.sink(u.source)]).catch(d=>{f.log.error("error piping data through muxer",d)}));let h=i.timeline;i.timeline=new Proxy(h,{set:(...d)=>(f!=null&&d[1]==="close"&&d[2]!=null&&h.close==null&&(async()=>{try{f.status==="open"&&await f.close()}catch(m){f.log.error("error closing connection after timeline close",m)}finally{this.events.safeDispatchEvent("connection:close",{detail:f})}})().catch(m=>{f.log.error("error thrown while dispatching connection:close event",m)}),Reflect.set(...d))}),i.timeline.upgraded=Date.now();let p=()=>{throw new S("connection is not multiplexed",F.ERR_CONNECTION_NOT_MULTIPLEXED)};return f=pg({remoteAddr:i.remoteAddr,remotePeer:o,status:"open",direction:n,timeline:i.timeline,multiplexer:u?.protocol,encryption:r,transient:c,logger:this.components.logger,newStream:l??p,getStreams:()=>u!=null?u.streams:[],close:async d=>{u!=null&&(f.log.trace("close muxer"),await u.close(d)),f.log.trace("close maconn"),await i.close(d),f.log.trace("closed maconn")},abort:d=>{i.abort(d),u?.abort(d)}}),this.events.safeDispatchEvent("connection:open",{detail:f}),f}_onStream(e){let{connection:r,stream:n,protocol:i}=e,{handler:s,options:o}=this.components.registrar.getHandler(i);if(r.transient&&o.runOnTransientConnection!==!0)throw new S("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");s({connection:r,stream:n})}async _encryptInbound(e){let r=Array.from(this.connectionEncryption.keys());e.log("handling inbound crypto protocol selection",r);try{let{stream:n,protocol:i}=await us(e,r,{log:e.log}),s=this.connectionEncryption.get(i);if(s==null)throw new Error(`no crypto module found for ${i}`);return e.log("encrypting inbound connection using",i),{...await s.secureInbound(this.components.peerId,n),protocol:i}}catch(n){throw new S(String(n),F.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(e,r){let n=Array.from(this.connectionEncryption.keys());e.log("selecting outbound crypto protocol",n);try{e.log.trace("selecting encrypter from %s",n);let{stream:i,protocol:s}=await cs(e,n,{log:e.log,yieldBytes:!0}),o=this.connectionEncryption.get(s);if(o==null)throw new Error(`no crypto module found for ${s}`);return e.log("encrypting outbound connection to %p using %p",r),{...await o.secureOutbound(this.components.peerId,i,r),protocol:s}}catch(i){throw new S(String(i),F.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(e,r){let n=Array.from(r.keys());e.log("outbound selecting muxer %s",n);try{e.log.trace("selecting stream muxer from %s",n);let{stream:i,protocol:s}=await cs(e,n,{log:e.log,yieldBytes:!0});e.log("selected %s as muxer protocol",s);let o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw e.log.error("error multiplexing outbound connection",i),new S(String(i),F.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(e,r){let n=Array.from(r.keys());e.log("inbound handling muxers %s",n);try{let{stream:i,protocol:s}=await us(e,n,{log:e.log}),o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw e.log.error("error multiplexing inbound connection",i),new S(String(i),F.ERR_MUXER_UNAVAILABLE)}}};var gg="1.0.10",yg="libp2p";var tf=class extends _i{peerId;peerStore;contentRouting;peerRouting;metrics;services;logger;status;components;log;constructor(e){super(),this.status="stopped";let r=new _i,n=r.dispatchEvent.bind(r);r.dispatchEvent=a=>{let c=n(a),u=this.dispatchEvent(new Xa(a.type,{detail:a.detail}));return c||u},mt(1/0,r),this.peerId=e.peerId,this.logger=e.logger??ro(),this.log=this.logger.forComponent("libp2p"),this.services={};let i=this.components=Ep({peerId:e.peerId,nodeInfo:e.nodeInfo??{name:yg,version:gg},logger:this.logger,events:r,datastore:e.datastore??new No,connectionGater:Lp(e.connectionGater)});this.peerStore=this.configureComponent("peerStore",new Lo(i,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...e.peerStore})),e.metrics!=null&&(this.metrics=this.configureComponent("metrics",e.metrics(this.components))),i.events.addEventListener("peer:update",a=>{if(a.detail.previous==null){let c={id:a.detail.peer.id,multiaddrs:a.detail.peer.addresses.map(u=>u.multiaddr)};i.events.safeDispatchEvent("peer:discovery",{detail:c})}}),e.connectionProtector!=null&&this.configureComponent("connectionProtector",e.connectionProtector(i)),this.components.upgrader=new Ea(this.components,{connectionEncryption:(e.connectionEncryption??[]).map((a,c)=>this.configureComponent(`connection-encryption-${c}`,a(this.components))),muxers:(e.streamMuxers??[]).map((a,c)=>this.configureComponent(`stream-muxers-${c}`,a(this.components))),inboundUpgradeTimeout:e.connectionManager.inboundUpgradeTimeout}),this.configureComponent("transportManager",new pa(this.components,e.transportManager)),this.configureComponent("connectionManager",new oa(this.components,e.connectionManager)),this.configureComponent("registrar",new da(this.components)),this.configureComponent("addressManager",new ko(this.components,e.addresses));let s=(e.peerRouters??[]).map((a,c)=>this.configureComponent(`peer-router-${c}`,a(this.components)));this.peerRouting=this.components.peerRouting=this.configureComponent("peerRouting",new ha(this.components,{routers:s}));let o=(e.contentRouters??[]).map((a,c)=>this.configureComponent(`content-router-${c}`,a(this.components)));if(this.contentRouting=this.components.contentRouting=this.configureComponent("contentRouting",new fa(this.components,{routers:o})),(e.peerDiscovery??[]).forEach((a,c)=>{this.configureComponent(`peer-discovery-${c}`,a(this.components)).addEventListener("peer",l=>{this.#e(l)})}),e.transports?.forEach((a,c)=>{this.components.transportManager.add(this.configureComponent(`transport-${c}`,a(this.components)))}),e.services!=null)for(let a of Object.keys(e.services)){let c=e.services[a],u=c(this.components);if(u==null){this.log.error("service factory %s returned null or undefined instance",a);continue}this.services[a]=u,this.configureComponent(a,u),u[Ha]!=null&&(this.log("registering service %s for content routing",a),o.push(u[Ha])),u[Ya]!=null&&(this.log("registering service %s for peer routing",a),s.push(u[Ya])),u[Ga]!=null&&(this.log("registering service %s for peer discovery",a),u[Ga].addEventListener("peer",l=>{this.#e(l)}))}}configureComponent(e,r){return r==null&&this.log.error("component %s was null or undefined",e),this.components[e]=r,r}async start(){if(this.status==="stopped"){this.status="starting",this.log("libp2p is starting");try{await this.components.beforeStart?.(),await this.components.start(),await this.components.afterStart?.(),this.status="started",this.safeDispatchEvent("start",{detail:this}),this.log("libp2p has started")}catch(e){throw this.log.error("An error occurred starting libp2p",e),this.status="started",await this.stop(),e}}}async stop(){this.status==="started"&&(this.log("libp2p is stopping"),this.status="stopping",await this.components.beforeStop?.(),await this.components.stop(),await this.components.afterStop?.(),this.status="stopped",this.safeDispatchEvent("stop",{detail:this}),this.log("libp2p has stopped"))}getConnections(e){return this.components.connectionManager.getConnections(e)}getDialQueue(){return this.components.connectionManager.getDialQueue()}getPeers(){let e=new Nr;for(let r of this.components.connectionManager.getConnections())e.add(r.remotePeer);return Array.from(e)}async dial(e,r={}){return this.components.connectionManager.openConnection(e,r)}async dialProtocol(e,r,n={}){if(r==null)throw new S("no protocols were provided to open a stream",F.ERR_INVALID_PROTOCOLS_FOR_STREAM);if(r=Array.isArray(r)?r:[r],r.length===0)throw new S("no protocols were provided to open a stream",F.ERR_INVALID_PROTOCOLS_FOR_STREAM);return(await this.dial(e,n)).newStream(r,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(e,r={}){kr(e)&&(e=ae(e.getPeerId()??"")),await this.components.connectionManager.closeConnections(e,r)}async getPublicKey(e,r={}){if(this.log("getPublicKey %p",e),e.publicKey!=null)return e.publicKey;let n=await this.peerStore.get(e);if(n.id.publicKey!=null)return n.id.publicKey;let i=sr([j("/pk/"),e.multihash.digest]),s=await this.contentRouting.get(i,r);return Ki(s),await this.peerStore.patch(e,{publicKey:s}),s}async handle(e,r,n){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async i=>{await this.components.registrar.handle(i,r,n)}))}async unhandle(e){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async r=>{await this.components.registrar.unhandle(r)}))}async register(e,r){return this.components.registrar.register(e,r)}unregister(e){this.components.registrar.unregister(e)}#e(e){let{detail:r}=e;if(r.id.toString()===this.peerId.toString()){this.log.error(new Error(F.ERR_DISCOVERED_SELF));return}this.components.peerStore.merge(r.id,{multiaddrs:r.multiaddrs}).catch(n=>{this.log.error(n)})}};async function xg(t={}){return t.peerId??=await Ed(),new tf(rm(t))}async function Jv(t={}){let e=await xg(t);return t.start!==!1&&await e.start(),e}return Pg(e_);})();
|
|
48
|
+
`.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),lE=new RegExp(`(?:^${Ut}$)|(?:^${Io}$)`),fE=new RegExp(`^${Ut}$`),hE=new RegExp(`^${Io}$`),Zu=t=>t&&t.exact?lE:new RegExp(`(?:${kr(t)}${Ut}${kr(t)})|(?:${kr(t)}${Io}${kr(t)})`,"g");Zu.v4=t=>t&&t.exact?fE:new RegExp(`${kr(t)}${Ut}${kr(t)}`,"g");Zu.v6=t=>t&&t.exact?hE:new RegExp(`${kr(t)}${Io}${kr(t)}`,"g");var mp=Zu;var wp=we(yp(),1),{isValid:dE,parse:pE}=wp.default,mE=["0.0.0.0/8","10.0.0.0/8","100.64.0.0/10","127.0.0.0/8","169.254.0.0/16","172.16.0.0/12","192.0.0.0/24","192.0.0.0/29","192.0.0.8/32","192.0.0.9/32","192.0.0.10/32","192.0.0.170/32","192.0.0.171/32","192.0.2.0/24","192.31.196.0/24","192.52.193.0/24","192.88.99.0/24","192.168.0.0/16","192.175.48.0/24","198.18.0.0/15","198.51.100.0/24","203.0.113.0/24","240.0.0.0/4","255.255.255.255/32"],gE=mE.map(t=>new bp.Netmask(t));function yE(t){for(let e of gE)if(e.contains(t))return!0;return!1}function xp(t){return/^::$/.test(t)||/^::1$/.test(t)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(t)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(t)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(t)||/^100::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(t)||/^2001::([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(t)||/^2001:2[0-9a-fA-F]:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(t)||/^2001:db8:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(t)||/^2002:([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4}):?([0-9a-fA-F]{0,4})$/.test(t)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(t)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(t)||/^ff([0-9a-fA-F]{2,2}):/i.test(t)}var Ep=t=>{if(dE(t)){let e=pE(t);if(e.kind()==="ipv4")return yE(e.toNormalizedString());if(e.kind()==="ipv6")return xp(t)}else if(Qn(t)&&mp.v6().test(t))return xp(t)};var To=Ep;function vp(t={}){return{denyDialPeer:async()=>!1,denyDialMultiaddr:async e=>{let r=e.stringTuples();return r[0][0]===4||r[0][0]===41?!!To(`${r[0][1]}`):!1},denyInboundConnection:async()=>!1,denyOutboundConnection:async()=>!1,denyInboundEncryptedConnection:async()=>!1,denyOutboundEncryptedConnection:async()=>!1,denyInboundUpgradedConnection:async()=>!1,denyOutboundUpgradedConnection:async()=>!1,filterMultiaddrForPeer:async()=>!0,...t}}var xE=t=>t.toString().split("/").slice(1),Gi=t=>({match:e=>e.length<1?!1:t(e[0])?e.slice(1):!1,pattern:"fn"}),Ie=t=>({match:e=>Gi(r=>r===t).match(e),pattern:t}),Lo=()=>({match:t=>Gi(e=>typeof e=="string").match(t),pattern:"{string}"}),_p=()=>({match:t=>Gi(e=>!isNaN(parseInt(e))).match(t),pattern:"{number}"}),It=()=>({match:t=>{if(t.length<2||t[0]!=="p2p"&&t[0]!=="ipfs")return!1;if(t[1].startsWith("Q")||t[1].startsWith("1"))try{Ee.decode(`z${t[1]}`)}catch{return!1}else return!1;return t.slice(2)},pattern:"/p2p/{peerid}"}),Ro=()=>({match:t=>{if(t.length<2||t[0]!=="certhash")return!1;try{tc.decode(t[1])}catch{return!1}return t.slice(2)},pattern:"/certhash/{certhash}"}),Xt=t=>({match:e=>{let r=t.match(e);return r===!1?e:r},pattern:`optional(${t.pattern})`}),Zt=(...t)=>({match:e=>{let r;for(let n of t){let i=n.match(e);i!==!1&&(r==null||i.length<r.length)&&(r=i)}return r??!1},pattern:`or(${t.map(e=>e.pattern).join(", ")})`}),Ce=(...t)=>({match:e=>{for(let r of t){let n=r.match(e);if(n===!1)return!1;e=n}return e},pattern:`and(${t.map(e=>e.pattern).join(", ")})`});function Ne(...t){function e(i){let s=xE(i);for(let o of t){let a=o.match(s);if(a===!1)return!1;s=a}return s}function r(i){return e(i)!==!1}function n(i){let s=e(i);return s===!1?!1:s.length===0}return{matches:r,exactMatch:n}}var Ju=Ce(Ie("dns4"),Lo()),el=Ce(Ie("dns6"),Lo()),tl=Ce(Ie("dnsaddr"),Lo()),Sp=Ce(Ie("dns"),Lo()),xL=Ne(Ju),bL=Ne(el),wL=Ne(tl),EL=Ne(Zt(Sp,tl,Ju,el)),Ap=Ce(Ie("ip4"),Gi(no)),Ip=Ce(Ie("ip6"),Gi(io)),Cp=Zt(Ap,Ip),Wi=Zt(Cp,Sp,Ju,el,tl),vL=Ne(Wi),_L=Ne(Ap),SL=Ne(Ip),AL=Ne(Cp),Po=Ce(Wi,Ie("tcp"),_p()),Yi=Ce(Wi,Ie("udp"),_p()),bE=Zt(Po,Yi),IL=Ne(Po),CL=Ne(Yi),rl=Ce(Yi,Ie("quic")),Do=Ce(Yi,Ie("quic-v1")),wE=Zt(rl,Do),TL=Ne(rl),RL=Ne(Do),ju=Zt(Wi,Po,Yi,rl,Do),Tp=Zt(Ce(ju,Ie("ws"),Xt(It()))),BL=Ne(Tp),Rp=Zt(Ce(ju,Ie("wss"),Xt(It())),Ce(ju,Ie("tls"),Ie("ws"),Xt(It()))),LL=Ne(Rp),Bp=Ce(bE,Ie("webrtc-direct"),Ro(),Xt(Ro()),Xt(It())),PL=Ne(Bp),Lp=Ce(Do,Ie("webtransport"),Ro(),Ro(),Xt(It())),DL=Ne(Lp),Bo=Zt(Tp,Rp,Ce(Po,Xt(It())),Ce(wE,Xt(It())),Ce(Wi,Xt(It())),Bp,Lp,It()),NL=Ne(Bo),EE=Ce(Bo,Ie("p2p-circuit"),It()),nl=Ne(EE),vE=Zt(Ce(Bo,Ie("p2p-circuit"),Ie("webrtc"),It()),Ce(Bo,Ie("webrtc"),Xt(It())),Ie("webrtc")),kL=Ne(vE);function il(t){try{let{address:e}=t.nodeAddress();return!!To(e)}catch{return!0}}function _E(t,e){let r=il(t.multiaddr),n=il(e.multiaddr);return r&&!n?1:!r&&n?-1:0}function SE(t,e){return t.isCertified&&!e.isCertified?-1:!t.isCertified&&e.isCertified?1:0}function AE(t,e){let r=nl.exactMatch(t.multiaddr),n=nl.exactMatch(e.multiaddr);return r&&!n?1:!r&&n?-1:0}function ri(t,e){let r=_E(t,e);if(r!==0)return r;let n=AE(t,e);return n!==0?n:SE(t,e)}var ol=we(ou(),1),al=we(Np(),1);function No(t,e,r){return`${t}?name=${e}&type=${r}`}async function kp(t,e){return await(await fetch(t,{headers:new Headers({accept:"application/dns-json"}),signal:e})).json()}function gn(t,e){return`${e}_${t}`}var sl=Object.assign((0,ol.default)("dns-over-http-resolver"),{error:(0,ol.default)("dns-over-http-resolver:error")}),cl=class{_cache;_TXTcache;_servers;_request;_abortControllers;constructor(e={}){this._cache=new al.default({max:e?.maxCache??100}),this._TXTcache=new al.default({max:e?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=e.request??kp,this._abortControllers=[]}cancel(){this._abortControllers.forEach(e=>{e.abort()})}getServers(){return this._servers}_getShuffledServers(){let e=[...this._servers];for(let r=e.length-1;r>0;r--){let n=Math.floor(Math.random()*r),i=e[r];e[r]=e[n],e[n]=i}return e}setServers(e){this._servers=e}async resolve(e,r="A"){switch(r){case"A":return this.resolve4(e);case"AAAA":return this.resolve6(e);case"TXT":return this.resolveTxt(e);default:throw new Error(`${r} is not supported`)}}async resolve4(e){let r="A",n=this._cache.get(gn(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(No(s,e,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(gn(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),sl.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryA ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}async resolve6(e){let r="AAAA",n=this._cache.get(gn(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(No(s,e,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(gn(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),sl.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryAaaa ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}async resolveTxt(e){let r="TXT",n=this._TXTcache.get(gn(e,r));if(n!=null)return n;let i=!1;for(let s of this._getShuffledServers()){let o=new AbortController;this._abortControllers.push(o);try{let a=await this._request(No(s,e,r),o.signal),c=a.Answer.map(l=>[l.data.replace(/['"]+/g,"")]),u=Math.min(...a.Answer.map(l=>l.TTL));return this._TXTcache.set(gn(e,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),sl.error(`${s} could not resolve ${e} record ${r}`)}finally{this._abortControllers=this._abortControllers.filter(a=>a!==o)}}throw i?Object.assign(new Error("queryTxt ECANCELLED"),{code:"ECANCELLED"}):new Error(`Could not resolve ${e} record ${r}`)}clearCache(){this._cache.clear(),this._TXTcache.clear()}},Op=cl;var Mp=Op;var{code:BE}=ce("dnsaddr");async function ni(t,e={}){let r=new Mp;e.signal!=null&&e.signal.addEventListener("abort",()=>{r.cancel()});let n=t.getPeerId(),[,i]=t.stringTuples().find(([a])=>a===BE)??[];if(i==null)throw new Error("No hostname found in multiaddr");let o=(await r.resolveTxt(`_dnsaddr.${i}`)).flat().map(a=>a.split("=")[1]).filter(Boolean);return n!=null&&(o=o.filter(a=>a.includes(n))),o}var Gp=we(Hp(),1),Mo=Gp.default;var gr;(function(t){t.NOT_STARTED_YET="The libp2p node is not started yet",t.ERR_PROTECTOR_REQUIRED="Private network is enforced, but no protector was provided",t.NOT_FOUND="Not found"})(gr||(gr={}));var F;(function(t){t.ERR_PROTECTOR_REQUIRED="ERR_PROTECTOR_REQUIRED",t.ERR_PEER_DIAL_INTERCEPTED="ERR_PEER_DIAL_INTERCEPTED",t.ERR_CONNECTION_INTERCEPTED="ERR_CONNECTION_INTERCEPTED",t.ERR_INVALID_PROTOCOLS_FOR_STREAM="ERR_INVALID_PROTOCOLS_FOR_STREAM",t.ERR_CONNECTION_ENDED="ERR_CONNECTION_ENDED",t.ERR_CONNECTION_FAILED="ERR_CONNECTION_FAILED",t.ERR_NODE_NOT_STARTED="ERR_NODE_NOT_STARTED",t.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",t.ERR_TOO_MANY_ADDRESSES="ERR_TOO_MANY_ADDRESSES",t.ERR_NO_VALID_ADDRESSES="ERR_NO_VALID_ADDRESSES",t.ERR_RELAYED_DIAL="ERR_RELAYED_DIAL",t.ERR_DIALED_SELF="ERR_DIALED_SELF",t.ERR_DISCOVERED_SELF="ERR_DISCOVERED_SELF",t.ERR_DUPLICATE_TRANSPORT="ERR_DUPLICATE_TRANSPORT",t.ERR_ENCRYPTION_FAILED="ERR_ENCRYPTION_FAILED",t.ERR_HOP_REQUEST_FAILED="ERR_HOP_REQUEST_FAILED",t.ERR_INVALID_KEY="ERR_INVALID_KEY",t.ERR_INVALID_MESSAGE="ERR_INVALID_MESSAGE",t.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",t.ERR_INVALID_PEER="ERR_INVALID_PEER",t.ERR_MUXER_UNAVAILABLE="ERR_MUXER_UNAVAILABLE",t.ERR_NOT_FOUND="ERR_NOT_FOUND",t.ERR_TRANSPORT_UNAVAILABLE="ERR_TRANSPORT_UNAVAILABLE",t.ERR_TRANSPORT_DIAL_FAILED="ERR_TRANSPORT_DIAL_FAILED",t.ERR_UNSUPPORTED_PROTOCOL="ERR_UNSUPPORTED_PROTOCOL",t.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED="ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED",t.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",t.ERR_SIGNATURE_NOT_VALID="ERR_SIGNATURE_NOT_VALID",t.ERR_FIND_SELF="ERR_FIND_SELF",t.ERR_NO_ROUTERS_AVAILABLE="ERR_NO_ROUTERS_AVAILABLE",t.ERR_CONNECTION_NOT_MULTIPLEXED="ERR_CONNECTION_NOT_MULTIPLEXED",t.ERR_NO_DIAL_TOKENS="ERR_NO_DIAL_TOKENS",t.ERR_INVALID_CMS="ERR_INVALID_CMS",t.ERR_MISSING_KEYS="ERR_MISSING_KEYS",t.ERR_NO_KEY="ERR_NO_KEY",t.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",t.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",t.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",t.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",t.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",t.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",t.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",t.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",t.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",t.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",t.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",t.ERR_MISSING_PUBLIC_KEY="ERR_MISSING_PUBLIC_KEY",t.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",t.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",t.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH",t.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",t.ERR_WRONG_PING_ACK="ERR_WRONG_PING_ACK",t.ERR_INVALID_RECORD="ERR_INVALID_RECORD",t.ERR_ALREADY_SUCCEEDED="ERR_ALREADY_SUCCEEDED",t.ERR_NO_HANDLER_FOR_PROTOCOL="ERR_NO_HANDLER_FOR_PROTOCOL",t.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",t.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",t.ERR_CONNECTION_DENIED="ERR_CONNECTION_DENIED",t.ERR_TRANSFER_LIMIT_EXCEEDED="ERR_TRANSFER_LIMIT_EXCEEDED"})(F||(F={}));var OE={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:t=>t},connectionManager:{resolvers:{dnsaddr:ni},addressSorter:ri},transportManager:{faultTolerance:Er.FATAL_ALL}};function Wp(t){let e=Mo(OE,t);if(e.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw new S(gr.ERR_PROTECTOR_REQUIRED,F.ERR_PROTECTOR_REQUIRED);return e}var Ym=we($m(),1);function Ko(t){if(vs(t))return{peerId:t,multiaddrs:[]};Array.isArray(t)||(t=[t]);let e;if(t.length>0){let r=t[0].getPeerId();e=r==null?void 0:se(r),t.forEach(n=>{if(!Pr(n))throw new S("Invalid Multiaddr",F.ERR_INVALID_MULTIADDR);let i=n.getPeerId();if(i==null){if(e!=null)throw new S("Multiaddrs must all have the same peer id or have no peer id",F.ERR_INVALID_PARAMETERS)}else{let s=se(i);if(e==null||!e.equals(s))throw new S("Multiaddrs must all have the same peer id or have no peer id",F.ERR_INVALID_PARAMETERS)}})}return{peerId:e,multiaddrs:t}}function Ae(){let t={};return t.promise=new Promise((e,r)=>{t.resolve=e,t.reject=r}),t}function Il(t,e,r){let n=0,i=t.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(t[o],e)<=0?(n=++o,i-=s+1):i=s}return n}var Xi=class{#e=[];enqueue(e,r){r={priority:0,...r};let n={priority:r.priority,run:e};if(this.size&&this.#e[this.size-1].priority>=r.priority){this.#e.push(n);return}let i=Il(this.#e,n,(s,o)=>o.priority-s.priority);this.#e.splice(i,0,n)}dequeue(){return this.#e.shift()?.run}filter(e){return this.#e.filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return this.#e.length}};var Zi=class extends fn.default{#e;#i;#s=0;#a;#c;#p=0;#r;#u;#t;#m;#n=0;#l;#o;#g;timeout;constructor(e){if(super(),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:Xi,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);this.#e=e.carryoverConcurrencyCount,this.#i=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#a=e.intervalCap,this.#c=e.interval,this.#t=new e.queueClass,this.#m=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#g=e.throwOnTimeout===!0,this.#o=e.autoStart===!1}get#b(){return this.#i||this.#s<this.#a}get#w(){return this.#n<this.#l}#E(){this.#n--,this.#f(),this.emit("next")}#v(){this.#x(),this.#y(),this.#u=void 0}get#_(){let e=Date.now();if(this.#r===void 0){let r=this.#p-e;if(r<0)this.#s=this.#e?this.#n:0;else return this.#u===void 0&&(this.#u=setTimeout(()=>{this.#v()},r)),!0}return!1}#f(){if(this.#t.size===0)return this.#r&&clearInterval(this.#r),this.#r=void 0,this.emit("empty"),this.#n===0&&this.emit("idle"),!1;if(!this.#o){let e=!this.#_;if(this.#b&&this.#w){let r=this.#t.dequeue();return r?(this.emit("active"),r(),e&&this.#y(),!0):!1}}return!1}#y(){this.#i||this.#r!==void 0||(this.#r=setInterval(()=>{this.#x()},this.#c),this.#p=Date.now()+this.#c)}#x(){this.#s===0&&this.#n===0&&this.#r&&(clearInterval(this.#r),this.#r=void 0),this.#s=this.#e?this.#n:0,this.#h()}#h(){for(;this.#f(););}get concurrency(){return this.#l}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#l=e,this.#h()}async#S(e){return new Promise((r,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}async add(e,r={}){return r={timeout:this.timeout,throwOnTimeout:this.#g,...r},new Promise((n,i)=>{this.#t.enqueue(async()=>{this.#n++,this.#s++;try{r.signal?.throwIfAborted();let s=e({signal:r.signal});r.timeout&&(s=pr(Promise.resolve(s),{milliseconds:r.timeout})),r.signal&&(s=Promise.race([s,this.#S(r.signal)]));let o=await s;n(o),this.emit("completed",o)}catch(s){if(s instanceof dr&&!r.throwOnTimeout){n();return}i(s),this.emit("error",s)}finally{this.#E()}},r),this.emit("add"),this.#f()})}async addAll(e,r){return Promise.all(e.map(async n=>this.add(n,r)))}start(){return this.#o?(this.#o=!1,this.#h(),this):this}pause(){this.#o=!0}clear(){this.#t=new this.#m}async onEmpty(){this.#t.size!==0&&await this.#d("empty")}async onSizeLessThan(e){this.#t.size<e||await this.#d("next",()=>this.#t.size<e)}async onIdle(){this.#n===0&&this.#t.size===0||await this.#d("idle")}async#d(e,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(e,i),n())};this.on(e,i)})}get size(){return this.#t.size}sizeBy(e){return this.#t.filter(e).length}get pending(){return this.#n}get isPaused(){return this.#o}};function _v(t,e,r){let n=0,i=t.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(t[o],e)<=0?(n=++o,i-=s+1):i=s}return n}var Cl=class{#e=[];enqueue(e,r){let n=r?.peerId,i=r?.priority??0;if(n==null)throw new S("missing peer id",qa);let s={priority:i,peerId:n,run:e};if(this.size>0&&this.#e[this.size-1].priority>=i){this.#e.push(s);return}let o=_v(this.#e,s,(a,c)=>c.priority-a.priority);this.#e.splice(o,0,s)}dequeue(){return this.#e.shift()?.run}filter(e){if(e.peerId!=null){let r=e.peerId;return this.#e.filter(n=>r.equals(n.peerId)).map(n=>n.run)}return this.#e.filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return this.#e.length}},qo=class extends Zi{results;constructor(e={}){super({...e,queueClass:Cl}),this.results=new je}hasJob(e){return this.sizeBy({peerId:e})>0}async joinJob(e){let r=this.results.get(e);if(r==null)throw new S("No job found for peer id","ERR_NO_JOB_FOR_PEER_ID");return r===!0&&(r=Ae(),this.results.set(e,r)),r.promise}async add(e,r){let n=r?.peerId;if(n==null)throw new S("missing peer id",qa);return this.results.set(r.peerId,!0),super.add(async i=>{try{let s=await e(i),o=this.results.get(n);return o!=null&&o!==!0&&o.resolve(s),s}catch(s){let o=this.results.get(n);throw o!=null&&o!==!0&&o.reject(s),s}finally{this.results.delete(n)}},r)}clear(){this.results.clear(),super.clear()}};function zm(t,e="utf8"){let r=_o[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):r.encoder.encode(t).substring(1)}var Vo="last-dial-failure";var $o=5,zo=100,Ho=50,Hm=1e3*60*7;var xn={minConnections:$o,maxQueueLength:100,autoDialConcurrency:25,autoDialPriority:0,autoDialInterval:5e3,autoDialPeerRetryThreshold:Hm,autoDialDiscoveredPeersDebounce:10},Go=class{connectionManager;peerStore;queue;minConnections;autoDialPriority;autoDialIntervalMs;autoDialMaxQueueLength;autoDialPeerRetryThresholdMs;autoDialDiscoveredPeersDebounce;autoDialInterval;started;running;log;constructor(e,r){this.connectionManager=e.connectionManager,this.peerStore=e.peerStore,this.minConnections=r.minConnections??xn.minConnections,this.autoDialPriority=r.autoDialPriority??xn.autoDialPriority,this.autoDialIntervalMs=r.autoDialInterval??xn.autoDialInterval,this.autoDialMaxQueueLength=r.maxQueueLength??xn.maxQueueLength,this.autoDialPeerRetryThresholdMs=r.autoDialPeerRetryThreshold??xn.autoDialPeerRetryThreshold,this.autoDialDiscoveredPeersDebounce=r.autoDialDiscoveredPeersDebounce??xn.autoDialDiscoveredPeersDebounce,this.log=e.logger.forComponent("libp2p:connection-manager:auto-dial"),this.started=!1,this.running=!1,this.queue=new qo({concurrency:r.autoDialConcurrency??xn.autoDialConcurrency}),this.queue.addListener("error",i=>{this.log.error("error during auto-dial",i)}),e.events.addEventListener("connection:close",()=>{this.autoDial().catch(i=>{this.log.error(i)})});let n;e.events.addEventListener("peer:discovery",()=>{clearTimeout(n),n=setTimeout(()=>{this.autoDial().catch(i=>{this.log.error(i)})},this.autoDialDiscoveredPeersDebounce)})}isStarted(){return this.started}start(){this.started=!0}afterStart(){this.autoDial().catch(e=>{this.log.error("error while autodialing",e)})}stop(){this.queue.clear(),clearTimeout(this.autoDialInterval),this.started=!1,this.running=!1}async autoDial(){if(!this.started||this.running)return;let e=this.connectionManager.getConnectionsMap(),r=e.size;if(r>=this.minConnections){this.minConnections>0&&this.log.trace("have enough connections %d/%d",r,this.minConnections);return}if(this.queue.size>this.autoDialMaxQueueLength){this.log("not enough connections %d/%d but auto dial queue is full",r,this.minConnections),this.sheduleNextAutodial();return}this.running=!0,this.log("not enough connections %d/%d - will dial peers to increase the number of connections",r,this.minConnections);let n=new St(this.connectionManager.getDialQueue().map(u=>u.peerId).filter(Boolean)),i=await this.peerStore.all({filters:[u=>u.addresses.length===0?(this.log.trace("not autodialing %p because they have no addresses",u.id),!1):e.has(u.id)?(this.log.trace("not autodialing %p because they are already connected",u.id),!1):n.has(u.id)?(this.log.trace("not autodialing %p because they are already being dialed",u.id),!1):this.queue.hasJob(u.id)?(this.log.trace("not autodialing %p because they are already being autodialed",u.id),!1):!0]}),s=i.sort(()=>Math.random()>.5?1:-1),o=new je;for(let u of s)o.has(u.id)||o.set(u.id,[...u.tags.values()].reduce((l,f)=>l+f.value,0));let c=s.sort((u,l)=>{let f=o.get(u.id)??0,d=o.get(l.id)??0;return f>d?-1:f<d?1:0}).filter(u=>{let l=u.metadata.get(Vo);if(l==null)return!0;let f=parseInt(zm(l));return isNaN(f)?!0:Date.now()-f>this.autoDialPeerRetryThresholdMs});this.log("selected %d/%d peers to dial",c.length,i.length);for(let u of c)this.queue.add(async()=>{let l=this.connectionManager.getConnectionsMap().size;if(l>=this.minConnections){this.log("got enough connections now %d/%d",l,this.minConnections),this.queue.clear();return}this.log("connecting to a peerStore stored peer %p",u.id),await this.connectionManager.openConnection(u.id,{priority:this.autoDialPriority})},{peerId:u.id}).catch(l=>{this.log.error("could not connect to peerStore stored peer",l)});this.running=!1,this.sheduleNextAutodial()}sheduleNextAutodial(){this.started&&(this.autoDialInterval=setTimeout(()=>{this.autoDial().catch(e=>{this.log.error("error while autodialing",e)})},this.autoDialIntervalMs))}};var Gm={maxConnections:zo,allow:[]},Wo=class{maxConnections;connectionManager;peerStore;allow;events;log;constructor(e,r={}){this.maxConnections=r.maxConnections??Gm.maxConnections,this.allow=r.allow??Gm.allow,this.connectionManager=e.connectionManager,this.peerStore=e.peerStore,this.events=e.events,this.log=e.logger.forComponent("libp2p:connection-manager:connection-pruner"),e.events.addEventListener("connection:open",()=>{this.maybePruneConnections().catch(n=>{this.log.error(n)})})}async maybePruneConnections(){let e=this.connectionManager.getConnections(),r=e.length,n=Math.max(r-this.maxConnections,0);if(this.log("checking max connections limit %d/%d",r,this.maxConnections),r<=this.maxConnections)return;this.log("max connections limit exceeded %d/%d, pruning %d connection(s)",r,this.maxConnections,n);let i=new je;for(let a of e){let c=a.remotePeer;if(!i.has(c)){i.set(c,0);try{let u=await this.peerStore.get(c);i.set(c,[...u.tags.values()].reduce((l,f)=>l+f.value,0))}catch(u){u.code!=="ERR_NOT_FOUND"&&this.log.error("error loading peer tags",u)}}}let s=e.sort((a,c)=>{let u=i.get(a.remotePeer)??0,l=i.get(c.remotePeer)??0;if(u>l)return 1;if(u<l)return-1;let f=a.timeline.open,d=c.timeline.open;return f<d?1:f>d?-1:0}),o=[];for(let a of s)if(this.log("too many connections open - closing a connection to %p",a.remotePeer),this.allow.some(u=>a.remoteAddr.toString().startsWith(u.toString()))||o.push(a),o.length===n)break;await Promise.all(o.map(async a=>{try{await a.close()}catch(c){this.log.error(c)}})),this.events.safeDispatchEvent("connection:prune",{detail:o})}};function Yo(t){let e=new globalThis.AbortController;function r(){e.abort();for(let s of t)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}for(let s of t){if(s?.aborted===!0){r();break}s?.addEventListener!=null&&s.addEventListener("abort",r)}function n(){for(let s of t)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}let i=e.signal;return i.clear=n,i}function Ll(t,e,r){let n=0,i=t.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(t[o],e)<=0?(n=++o,i-=s+1):i=s}return n}var ji=class{#e=[];enqueue(e,r){r={priority:0,...r};let n={priority:r.priority,run:e};if(this.size&&this.#e[this.size-1].priority>=r.priority){this.#e.push(n);return}let i=Ll(this.#e,n,(s,o)=>o.priority-s.priority);this.#e.splice(i,0,n)}dequeue(){return this.#e.shift()?.run}filter(e){return this.#e.filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return this.#e.length}};var ui=class extends fn.default{#e;#i;#s=0;#a;#c;#p=0;#r;#u;#t;#m;#n=0;#l;#o;#g;timeout;constructor(e){if(super(),e={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:ji,...e},!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${e.intervalCap?.toString()??""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${e.interval?.toString()??""}\` (${typeof e.interval})`);this.#e=e.carryoverConcurrencyCount,this.#i=e.intervalCap===Number.POSITIVE_INFINITY||e.interval===0,this.#a=e.intervalCap,this.#c=e.interval,this.#t=new e.queueClass,this.#m=e.queueClass,this.concurrency=e.concurrency,this.timeout=e.timeout,this.#g=e.throwOnTimeout===!0,this.#o=e.autoStart===!1}get#b(){return this.#i||this.#s<this.#a}get#w(){return this.#n<this.#l}#E(){this.#n--,this.#f(),this.emit("next")}#v(){this.#x(),this.#y(),this.#u=void 0}get#_(){let e=Date.now();if(this.#r===void 0){let r=this.#p-e;if(r<0)this.#s=this.#e?this.#n:0;else return this.#u===void 0&&(this.#u=setTimeout(()=>{this.#v()},r)),!0}return!1}#f(){if(this.#t.size===0)return this.#r&&clearInterval(this.#r),this.#r=void 0,this.emit("empty"),this.#n===0&&this.emit("idle"),!1;if(!this.#o){let e=!this.#_;if(this.#b&&this.#w){let r=this.#t.dequeue();return r?(this.emit("active"),r(),e&&this.#y(),!0):!1}}return!1}#y(){this.#i||this.#r!==void 0||(this.#r=setInterval(()=>{this.#x()},this.#c),this.#p=Date.now()+this.#c)}#x(){this.#s===0&&this.#n===0&&this.#r&&(clearInterval(this.#r),this.#r=void 0),this.#s=this.#e?this.#n:0,this.#h()}#h(){for(;this.#f(););}get concurrency(){return this.#l}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this.#l=e,this.#h()}async#S(e){return new Promise((r,n)=>{e.addEventListener("abort",()=>{n(e.reason)},{once:!0})})}async add(e,r={}){return r={timeout:this.timeout,throwOnTimeout:this.#g,...r},new Promise((n,i)=>{this.#t.enqueue(async()=>{this.#n++,this.#s++;try{r.signal?.throwIfAborted();let s=e({signal:r.signal});r.timeout&&(s=pr(Promise.resolve(s),{milliseconds:r.timeout})),r.signal&&(s=Promise.race([s,this.#S(r.signal)]));let o=await s;n(o),this.emit("completed",o)}catch(s){if(s instanceof dr&&!r.throwOnTimeout){n();return}i(s),this.emit("error",s)}finally{this.#E()}},r),this.emit("add"),this.#f()})}async addAll(e,r){return Promise.all(e.map(async n=>this.add(n,r)))}start(){return this.#o?(this.#o=!1,this.#h(),this):this}pause(){this.#o=!0}clear(){this.#t=new this.#m}async onEmpty(){this.#t.size!==0&&await this.#d("empty")}async onSizeLessThan(e){this.#t.size<e||await this.#d("next",()=>this.#t.size<e)}async onIdle(){this.#n===0&&this.#t.size===0||await this.#d("idle")}async#d(e,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(e,i),n())};this.on(e,i)})}get size(){return this.#t.size}sizeBy(e){return this.#t.filter(e).length}get pending(){return this.#n}get isPaused(){return this.#o}};async function Pl(t,e){if(!t.protoNames().includes("dnsaddr"))return[t];let n=await Iv(t,e),o=(await Promise.all(n.map(async a=>Pl(a,e)))).flat().reduce((a,c)=>(a.find(u=>u.equals(c))==null&&a.push(c),a),[]);return e.log("resolved %s to",t,o.map(a=>a.toString())),o}async function Iv(t,e){try{return t=De(t.toString()),await t.resolve(e)}catch(r){return e.log.error(`multiaddr ${t.toString()} could not be resolved`,r),[]}}function Wm(...t){let e=[];for(let n of t)n!=null&&(ht(1/0,n),e.push(n));let r=Yo(e);return ht(1/0,r),r}var Qo={addressSorter:ri,maxParallelDials:Ho,maxPeerAddrsToDial:25,dialTimeout:3e4,resolvers:{dnsaddr:ni}},Xo=class{pendingDials;queue;peerId;peerStore;connectionGater;transportManager;addressSorter;maxPeerAddrsToDial;dialTimeout;inProgressDialCount;pendingDialCount;shutDownController;connections;log;constructor(e,r={}){this.addressSorter=r.addressSorter??Qo.addressSorter,this.maxPeerAddrsToDial=r.maxPeerAddrsToDial??Qo.maxPeerAddrsToDial,this.dialTimeout=r.dialTimeout??Qo.dialTimeout,this.connections=r.connections??new je,this.log=e.logger.forComponent("libp2p:connection-manager:dial-queue"),this.peerId=e.peerId,this.peerStore=e.peerStore,this.connectionGater=e.connectionGater,this.transportManager=e.transportManager,this.shutDownController=new AbortController,ht(1/0,this.shutDownController.signal),this.pendingDialCount=e.metrics?.registerMetric("libp2p_dial_queue_pending_dials"),this.inProgressDialCount=e.metrics?.registerMetric("libp2p_dial_queue_in_progress_dials"),this.pendingDials=[];for(let[n,i]of Object.entries(r.resolvers??{}))oo.set(n,i);this.queue=new ui({concurrency:r.maxParallelDials??Qo.maxParallelDials}),this.queue.on("add",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("active",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("completed",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("error",n=>{this.log.error("error in dial queue",n),this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("empty",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)}),this.queue.on("idle",()=>{this.pendingDialCount?.update(this.queue.size),this.inProgressDialCount?.update(this.queue.pending)})}stop(){this.shutDownController.abort()}async dial(e,r={}){let{peerId:n,multiaddrs:i}=Ko(e),s=i.map(d=>({multiaddr:d,isCertified:!1})),o=this.createDialAbortControllers(r.signal),a;try{a=await this.calculateMultiaddrs(n,s,{...r,signal:o})}catch(d){throw o.clear(),d}let c=Array.from(this.connections.values()).flat().find(d=>r.force===!0?!1:a.find(p=>p.multiaddr.equals(d.remoteAddr)));if(c!=null)return this.log("already connected to %a",c.remoteAddr),c;let u=this.pendingDials.find(d=>!!(d.peerId!=null&&n!=null&&d.peerId.equals(n)||a.map(({multiaddr:p})=>p.toString()).join()===d.multiaddrs.map(p=>p.toString()).join()));if(u!=null)return this.log("joining existing dial target for %p",n),o.clear(),u.promise;this.log("creating dial target for",a.map(({multiaddr:d})=>d.toString()));let l={id:Cv(),status:"queued",peerId:n,multiaddrs:a.map(({multiaddr:d})=>d)};l.promise=this.performDial(l,{...r,signal:o}).finally(()=>{this.pendingDials=this.pendingDials.filter(d=>d.id!==l.id),o.clear()}).catch(async d=>{if(this.log.error("dial failed to %s",l.multiaddrs.map(p=>p.toString()).join(", "),d),n!=null)try{await this.peerStore.patch(n,{metadata:{[Vo]:So(Date.now().toString())}})}catch(p){this.log.error("could not update last dial failure key for %p",n,p)}throw o.aborted?new S(d.message,_s):d}),this.pendingDials.push(l);let f=await l.promise;return c=Array.from(this.connections.values()).flat().find(d=>r.force===!0?!1:d.id!==f.id&&d.remoteAddr.equals(f.remoteAddr)),c!=null?(this.log("already connected to %a",c.remoteAddr),await f.close(),c):(this.log("connection opened to %a",f.remoteAddr),f)}createDialAbortControllers(e){let r=Yo([AbortSignal.timeout(this.dialTimeout),this.shutDownController.signal,e]);return ht(1/0,r),r}async calculateMultiaddrs(e,r=[],n={}){if(e!=null){if(this.peerId.equals(e))throw new S("Tried to dial self",F.ERR_DIALED_SELF);if(await this.connectionGater.denyDialPeer?.(e)===!0)throw new S("The dial request is blocked by gater.allowDialPeer",F.ERR_PEER_DIAL_INTERCEPTED);if(r.length===0){this.log("loading multiaddrs for %p",e);try{let l=await this.peerStore.get(e);r.push(...l.addresses),this.log("loaded multiaddrs for %p",e,r.map(({multiaddr:f})=>f.toString()))}catch(l){if(l.code!==F.ERR_NOT_FOUND)throw l}}}let i=(await Promise.all(r.map(async l=>{let f=await Pl(l.multiaddr,{...n,log:this.log});return f.length===1&&f[0].equals(l.multiaddr)?l:f.map(d=>({multiaddr:d,isCertified:!1}))}))).flat();if(e!=null){let l=`/p2p/${e.toString()}`;i=i.map(f=>f.multiaddr.protos().pop()?.path===!0?f:f.multiaddr.getPeerId()==null?{multiaddr:f.multiaddr.encapsulate(l),isCertified:f.isCertified}:f)}let s=i.filter(l=>{if(this.transportManager.transportForMultiaddr(l.multiaddr)==null)return!1;let f=l.multiaddr.getPeerId();return e!=null&&f!=null?e.equals(f):!0}),o=new Map;for(let l of s){let f=l.multiaddr.toString(),d=o.get(f);if(d!=null){d.isCertified=d.isCertified||l.isCertified||!1;continue}o.set(f,l)}let a=[...o.values()];if((a.length===0||a.length>this.maxPeerAddrsToDial)&&(this.log("addresses for %p before filtering",e??"unknown peer",i.map(({multiaddr:l})=>l.toString())),this.log("addresses for %p after filtering",e??"unknown peer",a.map(({multiaddr:l})=>l.toString()))),a.length===0)throw new S("The dial request has no valid addresses",F.ERR_NO_VALID_ADDRESSES);if(a.length>this.maxPeerAddrsToDial)throw new S("dial with more addresses than allowed",F.ERR_TOO_MANY_ADDRESSES);let c=[];for(let l of a)this.connectionGater.denyDialMultiaddr!=null&&await this.connectionGater.denyDialMultiaddr(l.multiaddr)||c.push(l);let u=c.sort(this.addressSorter);if(u.length===0)throw new S("The connection gater denied all addresses in the dial request",F.ERR_NO_VALID_ADDRESSES);return u}async performDial(e,r={}){let n=e.multiaddrs.map(()=>new AbortController);try{let i=new ui({concurrency:1});i.on("error",o=>{this.log.error("error dialing %s %o",e.multiaddrs,o)});let s=await Promise.any(e.multiaddrs.map(async(o,a)=>{let c=n[a];if(c==null)throw new S("dialAction did not come with an AbortController",F.ERR_INVALID_PARAMETERS);let u=Wm(c.signal,r.signal);u.addEventListener("abort",()=>{this.log("dial to %a aborted",o)});let l=Ae();return await i.add(async()=>{if(u.aborted){this.log("dial to %a was aborted before reaching the head of the peer dial queue",o),l.reject(new Cn);return}await this.queue.add(async()=>{try{if(u.aborted){this.log("dial to %a was aborted before reaching the head of the dial queue",o),l.reject(new Cn);return}e.status="active";let f=await this.transportManager.dial(o,{...r,signal:u});if(c.signal.aborted){this.log("multiple dials succeeded, closing superfluous connection"),f.close().catch(d=>{this.log.error("error closing superfluous connection",d)}),l.reject(new Cn);return}n[a]=void 0,n.forEach(d=>{d!==void 0&&d.abort()}),this.log("dial to %a succeeded",o),l.resolve(f)}catch(f){this.log.error("error during dial of %a",o,f),l.reject(f)}},{...r,signal:u}).catch(f=>{l.reject(f)})},{signal:u}).catch(f=>{l.reject(f)}).finally(()=>{u.clear()}),l.promise}));if(s==null)throw new S("successful dial led to empty object returned from peer dial queue",F.ERR_TRANSPORT_DIAL_FAILED);return e.status="success",s}catch(i){throw e.status="error",e.multiaddrs.length===1&&i.name==="AggregateError"?i.errors[0]:i}}};function Cv(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Bv=50,bn={minConnections:$o,maxConnections:zo,inboundConnectionThreshold:5,maxIncomingPendingConnections:10,autoDialConcurrency:25,autoDialPriority:0,autoDialMaxQueueLength:100},Zo=class{started;connections;allow;deny;maxIncomingPendingConnections;incomingPendingConnections;maxConnections;dialQueue;autoDial;connectionPruner;inboundConnectionRateLimiter;peerStore;metrics;events;log;constructor(e,r={}){this.maxConnections=r.maxConnections??bn.maxConnections;let n=r.minConnections??bn.minConnections;if(this.maxConnections<n)throw new S("Connection Manager maxConnections must be greater than minConnections",F.ERR_INVALID_PARAMETERS);this.connections=new je,this.started=!1,this.peerStore=e.peerStore,this.metrics=e.metrics,this.events=e.events,this.log=e.logger.forComponent("libp2p:connection-manager"),this.onConnect=this.onConnect.bind(this),this.onDisconnect=this.onDisconnect.bind(this),this.events.addEventListener("connection:open",this.onConnect),this.events.addEventListener("connection:close",this.onDisconnect),this.allow=(r.allow??[]).map(i=>De(i)),this.deny=(r.deny??[]).map(i=>De(i)),this.incomingPendingConnections=0,this.maxIncomingPendingConnections=r.maxIncomingPendingConnections??bn.maxIncomingPendingConnections,this.inboundConnectionRateLimiter=new Ym.RateLimiterMemory({points:r.inboundConnectionThreshold??bn.inboundConnectionThreshold,duration:1}),this.autoDial=new Go({connectionManager:this,peerStore:e.peerStore,events:e.events,logger:e.logger},{minConnections:n,autoDialConcurrency:r.autoDialConcurrency??bn.autoDialConcurrency,autoDialPriority:r.autoDialPriority??bn.autoDialPriority,maxQueueLength:r.autoDialMaxQueueLength??bn.autoDialMaxQueueLength}),this.connectionPruner=new Wo({connectionManager:this,peerStore:e.peerStore,events:e.events,logger:e.logger},{maxConnections:this.maxConnections,allow:this.allow}),this.dialQueue=new Xo({peerId:e.peerId,metrics:e.metrics,peerStore:e.peerStore,transportManager:e.transportManager,connectionGater:e.connectionGater,logger:e.logger},{addressSorter:r.addressSorter??ri,maxParallelDials:r.maxParallelDials??Ho,maxPeerAddrsToDial:r.maxPeerAddrsToDial??25,dialTimeout:r.dialTimeout??3e4,resolvers:r.resolvers??{dnsaddr:ni},connections:this.connections})}isStarted(){return this.started}async start(){this.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let e={inbound:0,outbound:0};for(let r of this.connections.values())for(let n of r)n.direction==="inbound"?e.inbound++:e.outbound++;return e}}),this.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let e={};for(let r of this.connections.values())for(let n of r)for(let i of n.streams){let s=`${i.direction} ${i.protocol??"unnegotiated"}`;e[s]=(e[s]??0)+1}return e}}),this.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let e={};for(let n of this.connections.values())for(let i of n){let s={};for(let o of i.streams){let a=`${o.direction} ${o.protocol??"unnegotiated"}`;s[a]=(s[a]??0)+1}for(let[o,a]of Object.entries(s))e[o]=e[o]??[],e[o].push(a)}let r={};for(let[n,i]of Object.entries(e)){i=i.sort((o,a)=>o-a);let s=Math.floor(i.length*.9);r[n]=i[s]}return r}}),this.autoDial.start(),this.started=!0,this.log("started")}async afterStart(){Promise.resolve().then(async()=>{let e=await this.peerStore.all({filters:[r=>r.tags.has(bh)]});await Promise.all(e.map(async r=>{await this.openConnection(r.id).catch(n=>{this.log.error(n)})}))}).catch(e=>{this.log.error(e)}),this.autoDial.afterStart()}async stop(){this.dialQueue.stop(),this.autoDial.stop();let e=[];for(let r of this.connections.values())for(let n of r)e.push((async()=>{try{await n.close()}catch(i){this.log.error(i)}})());this.log("closing %d connections",e.length),await Promise.all(e),this.connections.clear(),this.log("stopped")}onConnect(e){this._onConnect(e).catch(r=>{this.log.error(r)})}async _onConnect(e){let{detail:r}=e;if(!this.started){await r.close();return}let n=r.remotePeer,i=this.connections.get(n),s=!1;i!=null?i.push(r):(s=!0,this.connections.set(n,[r])),n.publicKey!=null&&n.type==="RSA"&&await this.peerStore.patch(n,{publicKey:n.publicKey}),s&&this.events.safeDispatchEvent("peer:connect",{detail:r.remotePeer})}onDisconnect(e){let{detail:r}=e;if(!this.started)return;let n=r.remotePeer,i=this.connections.get(n);i!=null&&i.length>1?(i=i.filter(s=>s.id!==r.id),this.connections.set(n,i)):i!=null&&(this.connections.delete(n),this.events.safeDispatchEvent("peer:disconnect",{detail:r.remotePeer}))}getConnections(e){if(e!=null)return this.connections.get(e)??[];let r=[];for(let n of this.connections.values())r=r.concat(n);return r}getConnectionsMap(){return this.connections}async openConnection(e,r={}){if(!this.isStarted())throw new S("Not started",F.ERR_NODE_NOT_STARTED);r.signal?.throwIfAborted();let{peerId:n}=Ko(e);if(n!=null&&r.force!==!0){this.log("dial %p",n);let a=this.getConnections(n).find(c=>!c.transient);if(a!=null)return this.log("had an existing non-transient connection to %p",n),a}let i=await this.dialQueue.dial(e,{...r,priority:r.priority??Bv}),s=this.connections.get(i.remotePeer);s==null&&(s=[],this.connections.set(i.remotePeer,s));let o=!1;for(let a of s)a.id===i.id&&(o=!0);return o||s.push(i),i}async closeConnections(e,r={}){let n=this.connections.get(e)??[];await Promise.all(n.map(async i=>{try{await i.close(r)}catch(s){i.abort(s)}}))}async acceptIncomingConnection(e){if(this.deny.some(i=>e.remoteAddr.toString().startsWith(i.toString())))return this.log("connection from %a refused - connection remote address was in deny list",e.remoteAddr),!1;if(this.allow.some(i=>e.remoteAddr.toString().startsWith(i.toString())))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.maxIncomingPendingConnections)return this.log("connection from %a refused - incomingPendingConnections exceeded by host",e.remoteAddr),!1;if(e.remoteAddr.isThinWaistAddress()){let i=e.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(i,1)}catch{return this.log("connection from %a refused - inboundConnectionThreshold exceeded by host %s",e.remoteAddr,i),!1}}return this.getConnections().length<this.maxConnections?(this.incomingPendingConnections++,!0):(this.log("connection from %a refused - maxConnections exceeded",e.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}getDialQueue(){return this.dialQueue.pendingDials}};var jo=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}},li=class{size;hwm;head;tail;constructor(e={}){this.hwm=e.splitLimit??16,this.head=new jo(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 r=this.head;this.head=r.next=new jo(2*this.head.buffer.length),this.head.push(e)}}shift(){let e=this.tail.shift();if(e===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,e=this.tail.shift()}return e?.value!=null&&(this.size-=this.calculateSize(e.value)),e}isEmpty(){return this.head.isEmpty()}};var kl=class extends Error{type;code;constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Qm(t={}){return Lv(r=>{let n=r.shift();if(n==null)return{done:!0};if(n.error!=null)throw n.error;return{done:n.done===!0,value:n.value}},t)}function Lv(t,e){e=e??{};let r=e.onEnd,n=new li,i,s,o,a=Ae(),c=async()=>{try{return n.isEmpty()?o?{done:!0}:await new Promise((g,y)=>{s=x=>{s=null,n.push(x);try{g(t(n))}catch(b){y(b)}return i}}):t(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=Ae()})}},u=g=>s!=null?s(g):(n.push(g),i),l=g=>(n=new li,s!=null?s({error:g}):(n.push({error:g}),i)),f=g=>{if(o)return i;if(e?.objectMode!==!0&&g?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:g})},d=g=>o?i:(o=!0,g!=null?l(g):u({done:!0})),p=()=>(n=new li,d(),{done:!0}),h=g=>(d(g),{done:!0});if(i={[Symbol.asyncIterator](){return this},next:c,return:p,throw:h,push:f,end:d,get readableLength(){return n.size},onEmpty:async g=>{let y=g?.signal;if(y?.throwIfAborted(),n.isEmpty())return;let x,b;y!=null&&(x=new Promise((I,v)=>{b=()=>{v(new kl)},y.addEventListener("abort",b)}));try{await Promise.race([a.promise,x])}finally{b!=null&&y!=null&&y?.removeEventListener("abort",b)}}},r==null)return i;let m=i;return i={[Symbol.asyncIterator](){return this},next(){return m.next()},throw(g){return m.throw(g),r!=null&&(r(g),r=void 0),{done:!0}},return(){return m.return(),r!=null&&(r(),r=void 0),{done:!0}},push:f,end(g){return m.end(g),r!=null&&(r(g),r=void 0),i},get readableLength(){return m.readableLength},onEmpty:g=>m.onEmpty(g)},i}function Pv(t){return t[Symbol.asyncIterator]!=null}function Dv(...t){let e=[];for(let r of t)Pv(r)||e.push(r);return e.length===t.length?function*(){for(let r of e)yield*r}():async function*(){let r=Qm({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(t.map(async n=>{for await(let i of n)r.push(i)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var Ji=Dv;var Jo=globalThis.CustomEvent??Event;async function*es(t,e={}){let r=e.concurrency??1/0;r<1&&(r=1/0);let n=e.ordered==null?!1:e.ordered,i=new EventTarget,s=[],o=Ae(),a=Ae(),c=!1,u,l=!1;i.addEventListener("task-complete",()=>{a.resolve()}),Promise.resolve().then(async()=>{try{for await(let h of t){if(s.length===r&&(o=Ae(),await o.promise),l)break;let m={done:!1};s.push(m),h().then(g=>{m.done=!0,m.ok=!0,m.value=g,i.dispatchEvent(new Jo("task-complete"))},g=>{m.done=!0,m.err=g,i.dispatchEvent(new Jo("task-complete"))})}c=!0,i.dispatchEvent(new Jo("task-complete"))}catch(h){u=h,i.dispatchEvent(new Jo("task-complete"))}});function f(){return n?s[0]?.done:!!s.find(h=>h.done)}function*d(){for(;s.length>0&&s[0].done;){let h=s[0];if(s.shift(),h.ok)yield h.value;else throw l=!0,o.resolve(),h.err;o.resolve()}}function*p(){for(;f();)for(let h=0;h<s.length;h++)if(s[h].done){let m=s[h];if(s.splice(h,1),h--,m.ok)yield m.value;else throw l=!0,o.resolve(),m.err;o.resolve()}}for(;;){if(f()||(a=Ae(),await a.promise),u!=null)throw u;if(n?yield*d():yield*p(),c&&s.length===0)break}}var ea=class{log;routers;started;components;constructor(e,r){this.log=e.logger.forComponent("libp2p:content-routing"),this.routers=r.routers??[],this.started=!1,this.components=e}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(e,r={}){if(this.routers.length===0)throw new S("No content routers available",F.ERR_NO_ROUTERS_AVAILABLE);let n=this,i=new St;for await(let s of es(async function*(){let o=Ji(...n.routers.map(a=>a.findProviders(e,r)));for await(let a of o)yield async()=>{if(a.multiaddrs.length===0)try{a=await n.components.peerRouting.findPeer(a.id,{...r,useCache:!1})}catch(c){n.log.error("could not find peer multiaddrs",c);return}return a}}()))s!=null&&s.multiaddrs.length!==0&&(await this.components.peerStore.merge(s.id,{multiaddrs:s.multiaddrs}),!i.has(s.id)&&(i.add(s.id),yield s))}async provide(e,r={}){if(this.routers.length===0)throw new S("No content routers available",F.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map(async n=>{await n.provide(e,r)}))}async put(e,r,n){if(!this.isStarted())throw new S(gr.NOT_STARTED_YET,F.ERR_NODE_NOT_STARTED);await Promise.all(this.routers.map(async i=>{await i.put(e,r,n)}))}async get(e,r){if(!this.isStarted())throw new S(gr.NOT_STARTED_YET,F.ERR_NODE_NOT_STARTED);return Promise.any(this.routers.map(async n=>n.get(e,r)))}};var ta=class{log;peerId;peerStore;routers;constructor(e,r){this.log=e.logger.forComponent("libp2p:peer-routing"),this.peerId=e.peerId,this.peerStore=e.peerStore,this.routers=r.routers??[]}async findPeer(e,r){if(this.routers.length===0)throw new S("No peer routers available",F.ERR_NO_ROUTERS_AVAILABLE);if(e.toString()===this.peerId.toString())throw new S("Should not try to find self",F.ERR_FIND_SELF);let n=this,i=Ji(...this.routers.map(s=>async function*(){try{yield await s.findPeer(e,r)}catch(o){n.log.error(o)}}()));for await(let s of i)if(s!=null)return await this.peerStore.merge(s.id,{multiaddrs:s.multiaddrs}),s;throw new S(gr.NOT_FOUND,F.ERR_NOT_FOUND)}async*getClosestPeers(e,r={}){if(this.routers.length===0)throw new S("No peer routers available",F.ERR_NO_ROUTERS_AVAILABLE);let n=this,i=new St;for await(let s of es(async function*(){let o=Ji(...n.routers.map(a=>a.getClosestPeers(e,r)));for await(let a of o)yield async()=>{if(a.multiaddrs.length===0)try{a=await n.findPeer(a.id,{...r,useCache:!1})}catch(c){n.log.error("could not find peer multiaddrs",c);return}return a}}()))s!=null&&s.multiaddrs.length!==0&&(await this.peerStore.merge(s.id,{multiaddrs:s.multiaddrs}),!i.has(s.id)&&(i.add(s.id),yield s))}};var Ol=32,Ml=64,ra=class{log;topologies;handlers;components;constructor(e){this.log=e.logger.forComponent("libp2p:registrar"),this.topologies=new Map,this.handlers=new Map,this.components=e,this._onDisconnect=this._onDisconnect.bind(this),this._onPeerUpdate=this._onPeerUpdate.bind(this),this._onPeerIdentify=this._onPeerIdentify.bind(this),this.components.events.addEventListener("peer:disconnect",this._onDisconnect),this.components.events.addEventListener("peer:update",this._onPeerUpdate),this.components.events.addEventListener("peer:identify",this._onPeerIdentify)}getProtocols(){return Array.from(new Set([...this.handlers.keys()])).sort()}getHandler(e){let r=this.handlers.get(e);if(r==null)throw new S(`No handler registered for protocol ${e}`,F.ERR_NO_HANDLER_FOR_PROTOCOL);return r}getTopologies(e){let r=this.topologies.get(e);return r==null?[]:[...r.values()]}async handle(e,r,n){if(this.handlers.has(e))throw new S(`Handler already registered for protocol ${e}`,F.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let i=Mo.bind({ignoreUndefined:!0})({maxInboundStreams:Ol,maxOutboundStreams:Ml},n);this.handlers.set(e,{handler:r,options:i}),await this.components.peerStore.merge(this.components.peerId,{protocols:[e]})}async unhandle(e){(Array.isArray(e)?e:[e]).forEach(n=>{this.handlers.delete(n)}),await this.components.peerStore.patch(this.components.peerId,{protocols:this.getProtocols()})}async register(e,r){if(r==null)throw new S("invalid topology",F.ERR_INVALID_PARAMETERS);let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,i=this.topologies.get(e);return i==null&&(i=new Map,this.topologies.set(e,i)),i.set(n,r),n}unregister(e){for(let[r,n]of this.topologies.entries())n.has(e)&&(n.delete(e),n.size===0&&this.topologies.delete(r))}_onDisconnect(e){let r=e.detail;this.components.peerStore.get(r).then(n=>{for(let i of n.protocols){let s=this.topologies.get(i);if(s!=null)for(let o of s.values())o.onDisconnect?.(r)}}).catch(n=>{n.code!==F.ERR_NOT_FOUND&&this.log.error("could not inform topologies of disconnecting peer %p",r,n)})}_onPeerUpdate(e){let{peer:r,previous:n}=e.detail,i=(n?.protocols??[]).filter(s=>!r.protocols.includes(s));for(let s of i){let o=this.topologies.get(s);if(o!=null)for(let a of o.values())a.onDisconnect?.(r.id)}}_onPeerIdentify(e){let r=e.detail.protocols,n=e.detail.connection,i=e.detail.peerId;for(let s of r){let o=this.topologies.get(s);if(o!=null)for(let a of o.values())n.transient&&a.notifyOnTransient!==!0||a.onConnect?.(i,n)}}};var Ul=class extends Map{metric;constructor(e){super();let{name:r,metrics:n}=e;this.metric=n.registerMetric(r),this.updateComponentMetric()}set(e,r){return super.set(e,r),this.updateComponentMetric(),this}delete(e){let r=super.delete(e);return this.updateComponentMetric(),r}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function Xm(t){let{name:e,metrics:r}=t,n;return r!=null?n=new Ul({name:e,metrics:r}):n=new Map,n}var na=class{log;components;transports;listeners;faultTolerance;started;constructor(e,r={}){this.log=e.logger.forComponent("libp2p:transports"),this.components=e,this.started=!1,this.transports=new Map,this.listeners=Xm({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=r.faultTolerance??Er.FATAL_ALL}add(e){let r=e[Symbol.toStringTag];if(r==null)throw new S("Transport must have a valid tag",F.ERR_INVALID_KEY);if(this.transports.has(r))throw new S(`There is already a transport with the tag ${r}`,F.ERR_DUPLICATE_TRANSPORT);this.log("adding transport %s",r),this.transports.set(r,e),this.listeners.has(r)||this.listeners.set(r,[])}isStarted(){return this.started}start(){this.started=!0}async afterStart(){let e=this.components.addressManager.getListenAddrs();await this.listen(e)}async stop(){let e=[];for(let[r,n]of this.listeners)for(this.log("closing listeners for %s",r);n.length>0;){let i=n.pop();i!=null&&e.push(i.close())}await Promise.all(e),this.log("all listeners closed");for(let r of this.listeners.keys())this.listeners.set(r,[]);this.started=!1}async dial(e,r){let n=this.transportForMultiaddr(e);if(n==null)throw new S(`No transport available for address ${String(e)}`,F.ERR_TRANSPORT_UNAVAILABLE);try{return await n.dial(e,{...r,upgrader:this.components.upgrader})}catch(i){throw i.code==null&&(i.code=F.ERR_TRANSPORT_DIAL_FAILED),i}}getAddrs(){let e=[];for(let r of this.listeners.values())for(let n of r)e=[...e,...n.getAddrs()];return e}getTransports(){return Array.of(...this.transports.values())}getListeners(){return Array.of(...this.listeners.values()).flat()}transportForMultiaddr(e){for(let r of this.transports.values())if(r.filter([e]).length>0)return r}async listen(e){if(!this.isStarted())throw new S("Not started",F.ERR_NODE_NOT_STARTED);if(e==null||e.length===0){this.log("no addresses were provided for listening, this node is dial only");return}let r=[];for(let[n,i]of this.transports.entries()){let s=i.filter(e),o=[];for(let u of s){this.log("creating listener for %s on %a",n,u);let l=i.createListener({upgrader:this.components.upgrader}),f=this.listeners.get(n)??[];f==null&&(f=[],this.listeners.set(n,f)),f.push(l),l.addEventListener("listening",()=>{this.components.events.safeDispatchEvent("transport:listening",{detail:l})}),l.addEventListener("close",()=>{let d=f.findIndex(p=>p===l);f.splice(d,1),this.components.events.safeDispatchEvent("transport:close",{detail:l})}),o.push(l.listen(u))}if(o.length===0){r.push(n);continue}if((await Promise.allSettled(o)).find(u=>u.status==="fulfilled")==null&&this.faultTolerance!==Er.NO_FATAL)throw new S(`Transport (${n}) could not listen on any available address`,F.ERR_NO_VALID_ADDRESSES)}if(r.length===this.transports.size){let n=`no valid addresses were provided for transports [${r.join(", ")}]`;if(this.faultTolerance===Er.FATAL_ALL)throw new S(n,F.ERR_NO_VALID_ADDRESSES);this.log(`libp2p in dial mode only: ${n}`)}}async remove(e){let r=this.listeners.get(e)??[];this.log.trace("removing transport %s",e);let n=[];for(this.log.trace("closing listeners for %s",e);r.length>0;){let i=r.pop();i!=null&&n.push(i.close())}await Promise.all(n),this.transports.delete(e),this.listeners.delete(e)}async removeAll(){let e=[];for(let r of this.transports.keys())e.push(this.remove(r));await Promise.all(e)}};var Ye="/multistream/1.0.0";var ia=class extends Error{type;code;constructor(e,r){super(e??"The operation was aborted"),this.type="aborted",this.name="AbortError",this.code=r??"ABORT_ERR"}};async function sa(t,e,r){if(e==null)return t;if(e.aborted)return Promise.reject(new ia(r?.errorMessage,r?.errorCode));let n,i=new ia(r?.errorMessage,r?.errorCode);try{return await Promise.race([t,new Promise((s,o)=>{n=()=>{o(i)},e.addEventListener("abort",n)})])}finally{n!=null&&e.removeEventListener("abort",n)}}var Fl=class{needNext;haveNext;ended;nextResult;constructor(){this.ended=!1,this.needNext=Ae(),this.haveNext=Ae()}[Symbol.asyncIterator](){return this}async next(){if(this.nextResult==null&&await this.haveNext.promise,this.nextResult==null)throw new Error("Have next but next was undefined");let e=this.nextResult;return this.nextResult=void 0,this.needNext.resolve(),this.needNext=Ae(),e}async throw(e){return this.ended=!0,e!=null&&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,r){await this._push(e,r)}async end(e,r){e!=null?await this.throw(e):await this._push(void 0,r)}async _push(e,r){if(e!=null&&this.ended)throw new Error("Cannot push value onto an ended pushable");this.nextResult!=null&&await this.needNext.promise,e!=null?this.nextResult={done:!1,value:e}:(this.ended=!0,this.nextResult={done:!0,value:void 0}),this.haveNext.resolve(),this.haveNext=Ae(),await sa(this.needNext.promise,r?.signal,r)}};function Zm(){return new Fl}var oa=class extends Error{code;constructor(e,r){super(e),this.code=r}},Kl=class extends oa{type;constructor(e){super(e,"ABORT_ERR"),this.type="aborted"}};function jm(t,e){let r=Zm();t.sink(r).catch(async o=>{await r.end(o)}),t.sink=async o=>{for await(let a of o)await r.push(a);await r.end()};let n=t.source;t.source[Symbol.iterator]!=null?n=t.source[Symbol.iterator]():t.source[Symbol.asyncIterator]!=null&&(n=t.source[Symbol.asyncIterator]());let i=new Fe;return{read:async(o,a)=>{a?.signal?.throwIfAborted();let c,u=new Promise((l,f)=>{c=()=>{f(new Kl("Read aborted"))},a?.signal?.addEventListener("abort",c)});try{if(o==null){let{done:f,value:d}=await Promise.race([n.next(),u]);return f===!0?new Fe:d}for(;i.byteLength<o;){let{value:f,done:d}=await Promise.race([n.next(),u]);if(d===!0)throw new oa("unexpected end of input","ERR_UNEXPECTED_EOF");i.append(f)}let l=i.sublist(0,o);return i.consume(o),l}finally{c!=null&&a?.signal?.removeEventListener("abort",c)}},write:async(o,a)=>{a?.signal?.throwIfAborted(),o instanceof Uint8Array?await r.push(o,a):await r.push(o.subarray(),a)},unwrap:()=>{if(i.byteLength>0){let o=t.source;t.source=async function*(){e?.yieldBytes===!1?yield i:yield*i,yield*o}()}return t}}}function aa(t){return t[Symbol.asyncIterator]!=null}var ca=t=>{let e=et(t),r=Ze(e);return ut(t,r),ca.bytes=e,r};ca.bytes=0;function wn(t,e){e=e??{};let r=e.lengthEncoder??ca;function*n(i){let s=r(i.byteLength);s instanceof Uint8Array?yield s:yield*s,i instanceof Uint8Array?yield i:yield*i}return aa(t)?async function*(){for await(let i of t)yield*n(i)}():function*(){for(let i of t)yield*n(i)}()}wn.single=(t,e)=>{e=e??{};let r=e.lengthEncoder??ca;return new Fe(r(t.byteLength),t)};var fi=we(Wu(),1);var Nv=8,kv=1024*1024*4,En;(function(t){t[t.LENGTH=0]="LENGTH",t[t.DATA=1]="DATA"})(En||(En={}));var Vl=t=>{let e=Mt(t);return Vl.bytes=et(e),e};Vl.bytes=0;function ql(t,e){let r=new Fe,n=En.LENGTH,i=-1,s=e?.lengthDecoder??Vl,o=e?.maxLengthLength??Nv,a=e?.maxDataLength??kv;function*c(){for(;r.byteLength>0;){if(n===En.LENGTH)try{if(i=s(r),i<0)throw(0,fi.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>a)throw(0,fi.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=s.bytes;r.consume(u),e?.onLength!=null&&e.onLength(i),n=En.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>o)throw(0,fi.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===En.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),e?.onData!=null&&e.onData(u),yield u,n=En.LENGTH}}}return aa(t)?async function*(){for await(let u of t)r.append(u),yield*c();if(r.byteLength>0)throw(0,fi.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let u of t)r.append(u),yield*c();if(r.byteLength>0)throw(0,fi.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}ql.fromReader=(t,e)=>{let r=1,n=async function*(){for(;;)try{let{done:s,value:o}=await t.next(r);if(s===!0)return;o!=null&&(yield o)}catch(s){if(s.code==="ERR_UNDER_READ")return{done:!0,value:null};throw s}finally{r=1}}();return ql(n,{...e??{},onLength:s=>{r=s}})};var ua=class extends Error{code;constructor(e,r){super(e),this.code=r}},Jm=t=>Mt(t);Jm.bytes=0;function ts(t,e={}){let r=jm(t,e);return e.maxDataLength!=null&&e.maxLengthLength==null&&(e.maxLengthLength=et(e.maxDataLength)),{read:async i=>{let s=-1,o=new Fe,a=e?.lengthDecoder??Jm;for(;;){o.append(await r.read(1,i));try{s=a(o)}catch(c){if(c instanceof RangeError)continue;throw c}if(e?.maxLengthLength!=null&&o.byteLength>e.maxLengthLength)throw new ua("message length length too long","ERR_MSG_LENGTH_TOO_LONG");if(s>-1)break}if(e?.maxDataLength!=null&&s>e.maxDataLength)throw new ua("message length too long","ERR_MSG_DATA_TOO_LONG");return r.read(s,i)},write:async(i,s)=>{await r.write(wn.single(i,e),s)},writeV:async(i,s)=>{let o=new Fe(...i.map(a=>wn.single(a,e)));await r.write(o,s)},unwrap:()=>r.unwrap()}}function la(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function eg(t=0){return globalThis.Buffer?.allocUnsafe!=null?la(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function rg(t,e,r,n){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:r},decoder:{decode:n}}}var tg=rg("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),$l=rg("ascii","a",t=>{let e="a";for(let r=0;r<t.length;r++)e+=String.fromCharCode(t[r]);return e},t=>{t=t.substring(1);let e=eg(t.length);for(let r=0;r<t.length;r++)e[r]=t.charCodeAt(r);return e}),Mv={utf8:tg,"utf-8":tg,hex:de.base16,latin1:$l,ascii:$l,binary:$l,...de},fa=Mv;function rt(t,e="utf8"){let r=fa[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?la(globalThis.Buffer.from(t,"utf-8")):r.decoder.decode(`${r.prefix}${t}`)}function ng(t,e="utf8"){let r=fa[e];if(r==null)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):r.encoder.encode(t).substring(1)}var Uv=rt(`
|
|
49
|
+
`);async function vn(t,e,r){await t.write(e,r)}async function ig(t,e,r){await t.writeV(e,r)}async function Fv(t,e){let r=await t.read(e);if(r.byteLength===0||r.get(r.byteLength-1)!==Uv[0])throw e.log.error("Invalid mss message - missing newline",r),new S("missing newline","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return r.sublist(0,-1)}async function Mr(t,e){let r=await Fv(t,e);return ng(r.subarray())}async function rs(t,e,r){if(e=Array.isArray(e)?[...e]:[e],e.length===1)return Kv(t,e[0],r);let n=ts(t,{...r,maxDataLength:1024}),i=e.shift();if(i==null)throw new Error("At least one protocol must be specified");r.log.trace('select: write ["%s", "%s"]',Ye,i);let s=rt(`${Ye}
|
|
50
|
+
`),o=rt(`${i}
|
|
51
|
+
`);await ig(n,[s,o],r),r.log.trace("select: reading multistream-select header");let a=await Mr(n,r);if(r.log.trace('select: read "%s"',a),a===Ye&&(r.log.trace("select: reading protocol response"),a=await Mr(n,r),r.log.trace('select: read "%s"',a)),a===i)return{stream:n.unwrap(),protocol:i};for(let c of e){r.log.trace('select: write "%s"',c),await vn(n,rt(`${c}
|
|
52
|
+
`),r),r.log.trace("select: reading protocol response");let u=await Mr(n,r);if(r.log.trace('select: read "%s" for "%s"',u,c),u===c)return{stream:n.unwrap(),protocol:c}}throw new S("protocol selection failed","ERR_UNSUPPORTED_PROTOCOL")}function Kv(t,e,r){let n=t.sink.bind(t),i=t.source,s=!1,o=!1,a=Ae(),c=!1,u=!1,l=Ae(),f=!1,d=!1,p=Ae(),h=ts({sink:n,source:i},{...r,maxDataLength:1024});t.sink=async x=>{let{sink:b}=h.unwrap();await b(async function*(){let I=!1;for await(let v of x){if(u&&await l.promise,c)yield v;else{u=!0,r.log.trace('optimistic: write ["%s", "%s", data(%d)] in sink',Ye,e,v.byteLength);let _=`${e}
|
|
53
|
+
`;yield new Fe(Uint8Array.from([19]),rt(`${Ye}
|
|
54
|
+
`),ut(_.length),rt(_),v).subarray(),r.log.trace('optimistic: wrote ["%s", "%s", data(%d)] in sink',Ye,e,v.byteLength),c=!0,u=!1,l.resolve(),m().catch(P=>{r.log.error("could not finish optimistic protocol negotiation of %s",e,P)})}I=!0}I||await m()}())};async function m(){if(o){r.log.trace("optimistic: already negotiating %s stream",e),await a.promise;return}o=!0;try{c||(r.log.trace("optimistic: doing send protocol for %s stream",e),await g()),f||(r.log.trace("optimistic: doing read protocol for %s stream",e),await y())}finally{o=!1,s=!0,a.resolve()}}async function g(){if(u){await l.promise;return}u=!0;try{r.log.trace('optimistic: write ["%s", "%s", data] in source',Ye,e),await h.writeV([rt(`${Ye}
|
|
55
|
+
`),rt(`${e}
|
|
56
|
+
`)]),r.log.trace('optimistic: wrote ["%s", "%s", data] in source',Ye,e)}finally{c=!0,u=!1,l.resolve()}}async function y(){if(d){await p.promise;return}d=!0;try{r.log.trace("optimistic: reading multistream select header");let x=await Mr(h,r);if(r.log.trace('optimistic: read multistream select header "%s"',x),x===Ye&&(x=await Mr(h,r)),r.log.trace('optimistic: read protocol "%s", expecting "%s"',x,e),x!==e)throw new S("protocol selection failed","ERR_UNSUPPORTED_PROTOCOL")}finally{f=!0,d=!1,p.resolve()}}if(t.source=async function*(){await m(),r.log.trace('optimistic: reading data from "%s" stream',e),yield*h.unwrap().source}(),t.closeRead!=null){let x=t.closeRead.bind(t);t.closeRead=async b=>{s||await m().catch(I=>{r.log.error("could not negotiate protocol before close read",I)}),await x(b)}}if(t.closeWrite!=null){let x=t.closeWrite.bind(t);t.closeWrite=async b=>{s||await m().catch(I=>{r.log.error("could not negotiate protocol before close write",I)}),await x(b)}}if(t.close!=null){let x=t.close.bind(t);t.close=async b=>{let I=[];u&&I.push(l.promise),d&&I.push(p.promise),I.length>0?await sa(Promise.all(I),b?.signal):(s=!0,o=!1,a.resolve()),await x(b)}}return{stream:t,protocol:e}}async function ns(t,e,r){e=Array.isArray(e)?e:[e],r.log.trace("handle: available protocols %s",e);let n=ts(t,{...r,maxDataLength:1024,maxLengthLength:2});for(;;){r.log.trace("handle: reading incoming string");let i=await Mr(n,r);if(r.log.trace('handle: read "%s"',i),i===Ye){r.log.trace('handle: respond with "%s" for "%s"',Ye,i),await vn(n,rt(`${Ye}
|
|
57
|
+
`),r),r.log.trace('handle: responded with "%s" for "%s"',Ye,i);continue}if(e.includes(i))return r.log.trace('handle: respond with "%s" for "%s"',i,i),await vn(n,rt(`${i}
|
|
58
|
+
`),r),r.log.trace('handle: responded with "%s" for "%s"',i,i),{stream:n.unwrap(),protocol:i};if(i==="ls"){let s=new Fe(...e.map(o=>wn.single(rt(`${o}
|
|
59
|
+
`))),rt(`
|
|
60
|
+
`));r.log.trace('handle: respond with "%s" for %s',e,i),await vn(n,s,r),r.log.trace('handle: responded with "%s" for %s',e,i);continue}r.log('handle: respond with "na" for "%s"',i),await vn(n,rt(`na
|
|
61
|
+
`),r),r.log('handle: responded with "na" for "%s"',i)}}var Vv=500,zl=class{id;remoteAddr;remotePeer;direction;timeline;multiplexer;encryption;status;transient;log;tags;_newStream;_close;_abort;_getStreams;constructor(e){let{remoteAddr:r,remotePeer:n,newStream:i,close:s,abort:o,getStreams:a}=e;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=r,this.remotePeer=n,this.direction=e.direction,this.status="open",this.timeline=e.timeline,this.multiplexer=e.multiplexer,this.encryption=e.encryption,this.transient=e.transient??!1,this.log=e.logger.forComponent(`libp2p:connection:${this.direction}:${this.id}`),this.remoteAddr.getPeerId()==null&&(this.remoteAddr=this.remoteAddr.encapsulate(`/p2p/${this.remotePeer}`)),this._newStream=i,this._close=s,this._abort=o,this._getStreams=a,this.tags=[]}[Symbol.toStringTag]="Connection";[xh]=!0;get streams(){return this._getStreams()}async newStream(e,r){if(this.status==="closing")throw new S("the connection is being closed","ERR_CONNECTION_BEING_CLOSED");if(this.status==="closed")throw new S("the connection is closed","ERR_CONNECTION_CLOSED");if(Array.isArray(e)||(e=[e]),this.transient&&r?.runOnTransientConnection!==!0)throw new S("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");let n=await this._newStream(e,r);return n.direction="outbound",n}async close(e={}){if(!(this.status==="closed"||this.status==="closing")){if(this.log("closing connection to %a",this.remoteAddr),this.status="closing",e.signal==null){let r=AbortSignal.timeout(Vv);ht(1/0,r),e={...e,signal:r}}try{this.log.trace("closing all streams"),await Promise.all(this.streams.map(async r=>r.close(e))),this.log.trace("closing underlying transport"),await this._close(e),this.log.trace("updating timeline with close time"),this.status="closed",this.timeline.close=Date.now()}catch(r){this.log.error("error encountered during graceful close of connection to %a",this.remoteAddr,r),this.abort(r)}}}abort(e){this.log.error("aborting connection to %a due to error",this.remoteAddr,e),this.status="closing",this.streams.forEach(r=>{r.abort(e)}),this.log.error("all streams aborted",this.streams.length),this._abort(e),this.timeline.close=Date.now(),this.status="closed"}};function og(t){return new zl(t)}var zv=3e4;function Hv(t,e){try{let{options:r}=e.getHandler(t);return r.maxInboundStreams}catch(r){if(r.code!==F.ERR_NO_HANDLER_FOR_PROTOCOL)throw r}return Ol}function Gv(t,e,r={}){try{let{options:n}=e.getHandler(t);if(n.maxOutboundStreams!=null)return n.maxOutboundStreams}catch(n){if(n.code!==F.ERR_NO_HANDLER_FOR_PROTOCOL)throw n}return r.maxOutboundStreams??Ml}function ag(t,e,r){let n=0;return r.streams.forEach(i=>{i.direction===e&&i.protocol===t&&n++}),n}var da=class{components;connectionEncryption;muxers;inboundUpgradeTimeout;events;constructor(e,r){this.components=e,this.connectionEncryption=new Map,r.connectionEncryption.forEach(n=>{this.connectionEncryption.set(n.protocol,n)}),this.muxers=new Map,r.muxers.forEach(n=>{this.muxers.set(n.protocol,n)}),this.inboundUpgradeTimeout=r.inboundUpgradeTimeout??3e4,this.events=e.events}async shouldBlockConnection(e,r,n){let i=this.components.connectionGater[n];if(i!==void 0&&await i(e,r))throw new S(`The multiaddr connection is blocked by gater.${n}`,F.ERR_CONNECTION_INTERCEPTED)}async upgradeInbound(e,r){if(!await this.components.connectionManager.acceptIncomingConnection(e))throw new S("connection denied",F.ERR_CONNECTION_DENIED);let i,s,o,a,c,u=AbortSignal.timeout(this.inboundUpgradeTimeout),l=()=>{e.abort(new S("inbound upgrade timeout",_s))};u.addEventListener("abort",l,{once:!0}),ht(1/0,u);try{if(await this.components.connectionGater.denyInboundConnection?.(e)===!0)throw new S("The multiaddr connection is blocked by gater.acceptConnection",F.ERR_CONNECTION_INTERCEPTED);this.components.metrics?.trackMultiaddrConnection(e),e.log("starting the inbound connection upgrade");let f=e;if(r?.skipProtection!==!0){let d=this.components.connectionProtector;d!=null&&(e.log("protecting the inbound connection"),f=await d.protect(e))}try{if(i=f,r?.skipEncryption!==!0){({conn:i,remotePeer:s,protocol:c}=await this._encryptInbound(f));let d={...f,...i};await this.shouldBlockConnection(s,d,"denyInboundEncryptedConnection")}else{let d=e.remoteAddr.getPeerId();if(d==null)throw new S("inbound connection that skipped encryption must have a peer id",F.ERR_INVALID_MULTIADDR);let p=se(d);c="native",s=p}if(o=i,r?.muxerFactory!=null)a=r.muxerFactory;else if(this.muxers.size>0){let d=await this._multiplexInbound({...f,...i},this.muxers);a=d.muxerFactory,o=d.stream}}catch(d){throw e.log.error("failed to upgrade inbound connection",d),d}return await this.shouldBlockConnection(s,e,"denyInboundUpgradedConnection"),e.log("successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:c,direction:"inbound",maConn:e,upgradedConn:o,muxerFactory:a,remotePeer:s,transient:r?.transient})}finally{u.removeEventListener("abort",l),this.components.connectionManager.afterUpgradeInbound()}}async upgradeOutbound(e,r){let n=e.remoteAddr.getPeerId(),i;n!=null&&(i=se(n),await this.shouldBlockConnection(i,e,"denyOutboundConnection"));let s,o,a,c,u;this.components.metrics?.trackMultiaddrConnection(e),e.log("starting the outbound connection upgrade");let l=e;if(r?.skipProtection!==!0){let f=this.components.connectionProtector;f!=null&&(l=await f.protect(e))}try{if(s=l,r?.skipEncryption!==!0){({conn:s,remotePeer:o,protocol:c}=await this._encryptOutbound(l,i));let f={...l,...s};await this.shouldBlockConnection(o,f,"denyOutboundEncryptedConnection")}else{if(i==null)throw new S("Encryption was skipped but no peer id was passed",F.ERR_INVALID_PEER);c="native",o=i}if(a=s,r?.muxerFactory!=null)u=r.muxerFactory;else if(this.muxers.size>0){let f=await this._multiplexOutbound({...l,...s},this.muxers);u=f.muxerFactory,a=f.stream}}catch(f){throw e.log.error("failed to upgrade outbound connection",f),await e.close(f),f}return await this.shouldBlockConnection(o,e,"denyOutboundUpgradedConnection"),e.log("successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:e,upgradedConn:a,muxerFactory:u,remotePeer:o,transient:r?.transient})}_createConnection(e){let{cryptoProtocol:r,direction:n,maConn:i,upgradedConn:s,remotePeer:o,muxerFactory:a,transient:c}=e,u,l,f;a!=null&&(u=a.createStreamMuxer({direction:n,onIncomingStream:h=>{f!=null&&Promise.resolve().then(async()=>{let m=this.components.registrar.getProtocols(),{stream:g,protocol:y}=await ns(h,m,{log:h.log,yieldBytes:!1});if(f==null)return;f.log("incoming stream opened on %s",y);let x=Hv(y,this.components.registrar);if(ag(y,"inbound",f)===x){let I=new S(`Too many inbound protocol streams for protocol "${y}" - limit ${x}`,F.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS);throw h.abort(I),I}h.source=g.source,h.sink=g.sink,h.protocol=y,g.closeWrite!=null&&(h.closeWrite=g.closeWrite),g.closeRead!=null&&(h.closeRead=g.closeRead),g.close!=null&&(h.close=g.close),await this.components.peerStore.merge(o,{protocols:[y]}),this.components.metrics?.trackProtocolStream(h,f),this._onStream({connection:f,stream:h,protocol:y})}).catch(async m=>{f.log.error("error handling incoming stream id %s",h.id,m.message,m.code,m.stack),h.timeline.close==null&&await h.close()})}}),l=async(h,m={})=>{if(u==null)throw new S("Stream is not multiplexed",F.ERR_MUXER_UNAVAILABLE);f.log("starting new stream for protocols %s",h);let g=await u.newStream();f.log.trace("started new stream %s for protocols %s",g.id,h);try{if(m.signal==null){g.log("no abort signal was passed while trying to negotiate protocols %s falling back to default timeout",h);let v=AbortSignal.timeout(zv);ht(1/0,v),m={...m,signal:v}}g.log.trace("selecting protocol from protocols %s",h);let{stream:y,protocol:x}=await rs(g,h,{...m,log:g.log,yieldBytes:!0});g.log("selected protocol %s",x);let b=Gv(x,this.components.registrar,m);if(ag(x,"outbound",f)>=b){let v=new S(`Too many outbound protocol streams for protocol "${x}" - limit ${b}`,F.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw g.abort(v),v}return await this.components.peerStore.merge(o,{protocols:[x]}),g.source=y.source,g.sink=y.sink,g.protocol=x,y.closeWrite!=null&&(g.closeWrite=y.closeWrite),y.closeRead!=null&&(g.closeRead=y.closeRead),y.close!=null&&(g.close=y.close),this.components.metrics?.trackProtocolStream(g,f),g}catch(y){throw f.log.error("could not create new stream for protocols %s",h,y),g.timeline.close==null&&g.abort(y),y.code!=null?y:new S(String(y),F.ERR_UNSUPPORTED_PROTOCOL)}},Promise.all([u.sink(s.source),s.sink(u.source)]).catch(h=>{f.log.error("error piping data through muxer",h)}));let d=i.timeline;i.timeline=new Proxy(d,{set:(...h)=>(f!=null&&h[1]==="close"&&h[2]!=null&&d.close==null&&(async()=>{try{f.status==="open"&&await f.close()}catch(m){f.log.error("error closing connection after timeline close",m)}finally{this.events.safeDispatchEvent("connection:close",{detail:f})}})().catch(m=>{f.log.error("error thrown while dispatching connection:close event",m)}),Reflect.set(...h))}),i.timeline.upgraded=Date.now();let p=()=>{throw new S("connection is not multiplexed",F.ERR_CONNECTION_NOT_MULTIPLEXED)};return f=og({remoteAddr:i.remoteAddr,remotePeer:o,status:"open",direction:n,timeline:i.timeline,multiplexer:u?.protocol,encryption:r,transient:c,logger:this.components.logger,newStream:l??p,getStreams:()=>u!=null?u.streams:[],close:async h=>{u!=null&&(f.log.trace("close muxer"),await u.close(h)),f.log.trace("close maconn"),await i.close(h),f.log.trace("closed maconn")},abort:h=>{i.abort(h),u?.abort(h)}}),this.events.safeDispatchEvent("connection:open",{detail:f}),f}_onStream(e){let{connection:r,stream:n,protocol:i}=e,{handler:s,options:o}=this.components.registrar.getHandler(i);if(r.transient&&o.runOnTransientConnection!==!0)throw new S("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");s({connection:r,stream:n})}async _encryptInbound(e){let r=Array.from(this.connectionEncryption.keys());e.log("handling inbound crypto protocol selection",r);try{let{stream:n,protocol:i}=await ns(e,r,{log:e.log}),s=this.connectionEncryption.get(i);if(s==null)throw new Error(`no crypto module found for ${i}`);return e.log("encrypting inbound connection using",i),{...await s.secureInbound(this.components.peerId,n),protocol:i}}catch(n){throw e.log.error("encrypting inbound connection to %p failed",n),new S(n.message,F.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(e,r){let n=Array.from(this.connectionEncryption.keys());e.log("selecting outbound crypto protocol",n);try{e.log.trace("selecting encrypter from %s",n);let{stream:i,protocol:s}=await rs(e,n,{log:e.log,yieldBytes:!0}),o=this.connectionEncryption.get(s);if(o==null)throw new Error(`no crypto module found for ${s}`);return e.log("encrypting outbound connection to %p using %p",r),{...await o.secureOutbound(this.components.peerId,i,r),protocol:s}}catch(i){throw e.log.error("encrypting outbound connection to %p failed",i),new S(i.message,F.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(e,r){let n=Array.from(r.keys());e.log("outbound selecting muxer %s",n);try{e.log.trace("selecting stream muxer from %s",n);let{stream:i,protocol:s}=await rs(e,n,{log:e.log,yieldBytes:!0});e.log("selected %s as muxer protocol",s);let o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw e.log.error("error multiplexing outbound connection",i),new S(String(i),F.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(e,r){let n=Array.from(r.keys());e.log("inbound handling muxers %s",n);try{let{stream:i,protocol:s}=await ns(e,n,{log:e.log}),o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw e.log.error("error multiplexing inbound connection",i),new S(String(i),F.ERR_MUXER_UNAVAILABLE)}}};var cg="1.0.11-6fd681d09",ug="libp2p";var Hl=class extends wi{peerId;peerStore;contentRouting;peerRouting;metrics;services;logger;status;components;log;constructor(e){super(),this.status="stopped";let r=new wi,n=r.dispatchEvent.bind(r);r.dispatchEvent=a=>{let c=n(a),u=this.dispatchEvent(new $a(a.type,{detail:a.detail}));return c||u},ht(1/0,r),this.peerId=e.peerId,this.logger=e.logger??Qs(),this.log=this.logger.forComponent("libp2p"),this.services={};let i=this.components=hp({peerId:e.peerId,nodeInfo:e.nodeInfo??{name:ug,version:cg},logger:this.logger,events:r,datastore:e.datastore??new Eo,connectionGater:vp(e.connectionGater)});this.peerStore=this.configureComponent("peerStore",new bo(i,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...e.peerStore})),e.metrics!=null&&(this.metrics=this.configureComponent("metrics",e.metrics(this.components))),i.events.addEventListener("peer:update",a=>{if(a.detail.previous==null){let c={id:a.detail.peer.id,multiaddrs:a.detail.peer.addresses.map(u=>u.multiaddr)};i.events.safeDispatchEvent("peer:discovery",{detail:c})}}),e.connectionProtector!=null&&this.configureComponent("connectionProtector",e.connectionProtector(i)),this.components.upgrader=new da(this.components,{connectionEncryption:(e.connectionEncryption??[]).map((a,c)=>this.configureComponent(`connection-encryption-${c}`,a(this.components))),muxers:(e.streamMuxers??[]).map((a,c)=>this.configureComponent(`stream-muxers-${c}`,a(this.components))),inboundUpgradeTimeout:e.connectionManager.inboundUpgradeTimeout}),this.configureComponent("transportManager",new na(this.components,e.transportManager)),this.configureComponent("connectionManager",new Zo(this.components,e.connectionManager)),this.configureComponent("registrar",new ra(this.components)),this.configureComponent("addressManager",new Ao(this.components,e.addresses));let s=(e.peerRouters??[]).map((a,c)=>this.configureComponent(`peer-router-${c}`,a(this.components)));this.peerRouting=this.components.peerRouting=this.configureComponent("peerRouting",new ta(this.components,{routers:s}));let o=(e.contentRouters??[]).map((a,c)=>this.configureComponent(`content-router-${c}`,a(this.components)));if(this.contentRouting=this.components.contentRouting=this.configureComponent("contentRouting",new ea(this.components,{routers:o})),(e.peerDiscovery??[]).forEach((a,c)=>{this.configureComponent(`peer-discovery-${c}`,a(this.components)).addEventListener("peer",l=>{this.#e(l)})}),e.transports?.forEach((a,c)=>{this.components.transportManager.add(this.configureComponent(`transport-${c}`,a(this.components)))}),e.services!=null)for(let a of Object.keys(e.services)){let c=e.services[a],u=c(this.components);if(u==null){this.log.error("service factory %s returned null or undefined instance",a);continue}this.services[a]=u,this.configureComponent(a,u),u[Ma]!=null&&(this.log("registering service %s for content routing",a),o.push(u[Ma])),u[Ka]!=null&&(this.log("registering service %s for peer routing",a),s.push(u[Ka])),u[Ua]!=null&&(this.log("registering service %s for peer discovery",a),u[Ua].addEventListener?.("peer",l=>{this.#e(l)}))}}configureComponent(e,r){return r==null&&this.log.error("component %s was null or undefined",e),this.components[e]=r,r}async start(){if(this.status==="stopped"){this.status="starting",this.log("libp2p is starting");try{await this.components.beforeStart?.(),await this.components.start(),await this.components.afterStart?.(),this.status="started",this.safeDispatchEvent("start",{detail:this}),this.log("libp2p has started")}catch(e){throw this.log.error("An error occurred starting libp2p",e),this.status="started",await this.stop(),e}}}async stop(){this.status==="started"&&(this.log("libp2p is stopping"),this.status="stopping",await this.components.beforeStop?.(),await this.components.stop(),await this.components.afterStop?.(),this.status="stopped",this.safeDispatchEvent("stop",{detail:this}),this.log("libp2p has stopped"))}getConnections(e){return this.components.connectionManager.getConnections(e)}getDialQueue(){return this.components.connectionManager.getDialQueue()}getPeers(){let e=new St;for(let r of this.components.connectionManager.getConnections())e.add(r.remotePeer);return Array.from(e)}async dial(e,r={}){return this.components.connectionManager.openConnection(e,{priority:75,...r})}async dialProtocol(e,r,n={}){if(r==null)throw new S("no protocols were provided to open a stream",F.ERR_INVALID_PROTOCOLS_FOR_STREAM);if(r=Array.isArray(r)?r:[r],r.length===0)throw new S("no protocols were provided to open a stream",F.ERR_INVALID_PROTOCOLS_FOR_STREAM);return(await this.dial(e,n)).newStream(r,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(e,r={}){Pr(e)&&(e=se(e.getPeerId()??"")),await this.components.connectionManager.closeConnections(e,r)}async getPublicKey(e,r={}){if(this.log("getPublicKey %p",e),e.publicKey!=null)return e.publicKey;let n=await this.peerStore.get(e);if(n.id.publicKey!=null)return n.id.publicKey;let i=cp([So("/pk/"),e.multihash.digest]),s=await this.contentRouting.get(i,r);return Ui(s),await this.peerStore.patch(e,{publicKey:s}),s}async handle(e,r,n){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async i=>{await this.components.registrar.handle(i,r,n)}))}async unhandle(e){Array.isArray(e)||(e=[e]),await Promise.all(e.map(async r=>{await this.components.registrar.unhandle(r)}))}async register(e,r){return this.components.registrar.register(e,r)}unregister(e){this.components.registrar.unregister(e)}#e(e){let{detail:r}=e;if(r.id.toString()===this.peerId.toString()){this.log.error(new Error(F.ERR_DISCOVERED_SELF));return}this.components.peerStore.merge(r.id,{multiaddrs:r.multiaddrs}).catch(n=>{this.log.error(n)})}};async function lg(t={}){return t.peerId??=await hd(),new Hl(Wp(t))}async function Yv(t={}){let e=await lg(t);return t.start!==!1&&await e.start(),e}return Sg(Qv);})();
|
|
62
62
|
/*! Bundled license information:
|
|
63
63
|
|
|
64
64
|
@noble/hashes/esm/utils.js:
|