libp2p 0.46.17 → 0.46.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.min.js CHANGED
@@ -1,24 +1,24 @@
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 Oy=Object.create;var Ps=Object.defineProperty;var My=Object.getOwnPropertyDescriptor;var Uy=Object.getOwnPropertyNames;var Fy=Object.getPrototypeOf,Ky=Object.prototype.hasOwnProperty;var V=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),zt=(e,t)=>{for(var r in t)Ps(e,r,{get:t[r],enumerable:!0})},wf=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Uy(t))!Ky.call(e,i)&&i!==r&&Ps(e,i,{get:()=>t[i],enumerable:!(n=My(t,i))||n.enumerable});return e};var mt=(e,t,r)=>(r=e!=null?Oy(Fy(e)):{},wf(t||!e||!e.__esModule?Ps(r,"default",{value:e,enumerable:!0}):r,e)),Vy=e=>wf(Ps({},"__esModule",{value:!0}),e);var dt=V((A_,vf)=>{vf.exports={options:{usePureJavaScript:!1}}});var Af=V((I_,Sf)=>{var Ma={};Sf.exports=Ma;var _f={};Ma.encode=function(e,t,r){if(typeof t!="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(!(e instanceof Uint8Array))n=qy(e,t);else{var i=0,s=t.length,o=t.charAt(0),a=[0];for(i=0;i<e.length;++i){for(var c=0,u=e[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;e[i]===0&&i<e.length-1;++i)n+=o;for(i=a.length-1;i>=0;--i)n+=t[a[i]]}if(r){var l=new RegExp(".{1,"+r+"}","g");n=n.match(l).join(`\r
3
- `)}return n};Ma.decode=function(e,t){if(typeof e!="string")throw new TypeError('"input" must be a string.');if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');var r=_f[t];if(!r){r=_f[t]=[];for(var n=0;n<t.length;++n)r[t.charCodeAt(n)]=n}e=e.replace(/\s/g,"");for(var i=t.length,s=t.charAt(0),o=[0],n=0;n<e.length;n++){var a=r[e.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;e[l]===s&&l<e.length-1;++l)o.push(0);return typeof Buffer<"u"?Buffer.from(o.reverse()):new Uint8Array(o.reverse())};function qy(e,t){var r=0,n=t.length,i=t.charAt(0),s=[0];for(r=0;r<e.length();++r){for(var o=0,a=e.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;e.at(r)===0&&r<e.length()-1;++r)c+=i;for(r=s.length-1;r>=0;--r)c+=t[s[r]];return c}});var Nt=V((R_,Tf)=>{var If=dt(),Rf=Af(),E=Tf.exports=If.util=If.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){E.nextTick=process.nextTick,typeof setImmediate=="function"?E.setImmediate=setImmediate:E.setImmediate=E.nextTick;return}if(typeof setImmediate=="function"){E.setImmediate=function(){return setImmediate.apply(void 0,arguments)},E.nextTick=function(a){return setImmediate(a)};return}if(E.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===e){c.stopPropagation();var u=t.slice();t.length=0,u.forEach(function(l){l()})}};var o=a,e="forge.setImmediate",t=[];E.setImmediate=function(c){t.push(c),t.length===1&&window.postMessage(e,"*")},window.addEventListener("message",a,!0)}if(typeof MutationObserver<"u"){var r=Date.now(),n=!0,i=document.createElement("div"),t=[];new MutationObserver(function(){var c=t.slice();t.length=0,c.forEach(function(u){u()})}).observe(i,{attributes:!0});var s=E.setImmediate;E.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),s(c)):(t.push(c),t.length===1&&i.setAttribute("a",n=!n))}}E.nextTick=E.setImmediate})();E.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;E.globalScope=function(){return E.isNodejs?globalThis:typeof self>"u"?window:self}();E.isArray=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};E.isArrayBuffer=function(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer};E.isArrayBufferView=function(e){return e&&E.isArrayBuffer(e.buffer)&&e.byteLength!==void 0};function Ni(e){if(!(e===8||e===16||e===24||e===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+e)}E.ByteBuffer=Ua;function Ua(e){if(this.data="",this.read=0,typeof e=="string")this.data=e;else if(E.isArrayBuffer(e)||E.isArrayBufferView(e))if(typeof Buffer<"u"&&e instanceof Buffer)this.data=e.toString("binary");else{var t=new Uint8Array(e);try{this.data=String.fromCharCode.apply(null,t)}catch{for(var r=0;r<t.length;++r)this.putByte(t[r])}}else(e instanceof Ua||typeof e=="object"&&typeof e.data=="string"&&typeof e.read=="number")&&(this.data=e.data,this.read=e.read);this._constructedStringLength=0}E.ByteStringBuffer=Ua;var $y=4096;E.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>$y&&(this.data.substr(0,1),this._constructedStringLength=0)};E.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};E.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};E.ByteStringBuffer.prototype.putByte=function(e){return this.putBytes(String.fromCharCode(e))};E.ByteStringBuffer.prototype.fillWithByte=function(e,t){e=String.fromCharCode(e);for(var r=this.data;t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return this.data=r,this._optimizeConstructedString(t),this};E.ByteStringBuffer.prototype.putBytes=function(e){return this.data+=e,this._optimizeConstructedString(e.length),this};E.ByteStringBuffer.prototype.putString=function(e){return this.putBytes(E.encodeUtf8(e))};E.ByteStringBuffer.prototype.putInt16=function(e){return this.putBytes(String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};E.ByteStringBuffer.prototype.putInt24=function(e){return this.putBytes(String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};E.ByteStringBuffer.prototype.putInt32=function(e){return this.putBytes(String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};E.ByteStringBuffer.prototype.putInt16Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255))};E.ByteStringBuffer.prototype.putInt24Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255))};E.ByteStringBuffer.prototype.putInt32Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>24&255))};E.ByteStringBuffer.prototype.putInt=function(e,t){Ni(t);var r="";do t-=8,r+=String.fromCharCode(e>>t&255);while(t>0);return this.putBytes(r)};E.ByteStringBuffer.prototype.putSignedInt=function(e,t){return e<0&&(e+=2<<t-1),this.putInt(e,t)};E.ByteStringBuffer.prototype.putBuffer=function(e){return this.putBytes(e.getBytes())};E.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};E.ByteStringBuffer.prototype.getInt16=function(){var e=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,e};E.ByteStringBuffer.prototype.getInt24=function(){var e=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,e};E.ByteStringBuffer.prototype.getInt32=function(){var e=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,e};E.ByteStringBuffer.prototype.getInt16Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,e};E.ByteStringBuffer.prototype.getInt24Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,e};E.ByteStringBuffer.prototype.getInt32Le=function(){var e=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,e};E.ByteStringBuffer.prototype.getInt=function(e){Ni(e);var t=0;do t=(t<<8)+this.data.charCodeAt(this.read++),e-=8;while(e>0);return t};E.ByteStringBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};E.ByteStringBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};E.ByteStringBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};E.ByteStringBuffer.prototype.at=function(e){return this.data.charCodeAt(this.read+e)};E.ByteStringBuffer.prototype.setAt=function(e,t){return this.data=this.data.substr(0,this.read+e)+String.fromCharCode(t)+this.data.substr(this.read+e+1),this};E.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};E.ByteStringBuffer.prototype.copy=function(){var e=E.createBuffer(this.data);return e.read=this.read,e};E.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};E.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};E.ByteStringBuffer.prototype.truncate=function(e){var t=Math.max(0,this.length()-e);return this.data=this.data.substr(this.read,t),this.read=0,this};E.ByteStringBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.length;++t){var r=this.data.charCodeAt(t);r<16&&(e+="0"),e+=r.toString(16)}return e};E.ByteStringBuffer.prototype.toString=function(){return E.decodeUtf8(this.bytes())};function Hy(e,t){t=t||{},this.read=t.readOffset||0,this.growSize=t.growSize||1024;var r=E.isArrayBuffer(e),n=E.isArrayBufferView(e);if(r||n){r?this.data=new DataView(e):this.data=new DataView(e.buffer,e.byteOffset,e.byteLength),this.write="writeOffset"in t?t.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,e!=null&&this.putBytes(e),"writeOffset"in t&&(this.write=t.writeOffset)}E.DataBuffer=Hy;E.DataBuffer.prototype.length=function(){return this.write-this.read};E.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};E.DataBuffer.prototype.accommodate=function(e,t){if(this.length()>=e)return this;t=Math.max(t||this.growSize,e);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+t);return n.set(r),this.data=new DataView(n.buffer),this};E.DataBuffer.prototype.putByte=function(e){return this.accommodate(1),this.data.setUint8(this.write++,e),this};E.DataBuffer.prototype.fillWithByte=function(e,t){this.accommodate(t);for(var r=0;r<t;++r)this.data.setUint8(e);return this};E.DataBuffer.prototype.putBytes=function(e,t){if(E.isArrayBufferView(e)){var r=new Uint8Array(e.buffer,e.byteOffset,e.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(E.isArrayBuffer(e)){var r=new Uint8Array(e);this.accommodate(r.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(r,this.write),this.write+=r.byteLength,this}if(e instanceof E.DataBuffer||typeof e=="object"&&typeof e.read=="number"&&typeof e.write=="number"&&E.isArrayBufferView(e.data)){var r=new Uint8Array(e.data.byteLength,e.read,e.length());this.accommodate(r.byteLength);var i=new Uint8Array(e.data.byteLength,this.write);return i.set(r),this.write+=r.byteLength,this}if(e instanceof E.ByteStringBuffer&&(e=e.data,t="binary"),t=t||"binary",typeof e=="string"){var s;if(t==="hex")return this.accommodate(Math.ceil(e.length/2)),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.hex.decode(e,s,this.write),this;if(t==="base64")return this.accommodate(Math.ceil(e.length/4)*3),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.base64.decode(e,s,this.write),this;if(t==="utf8"&&(e=E.encodeUtf8(e),t="binary"),t==="binary"||t==="raw")return this.accommodate(e.length),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.raw.decode(s),this;if(t==="utf16")return this.accommodate(e.length*2),s=new Uint16Array(this.data.buffer,this.write),this.write+=E.text.utf16.encode(s),this;throw new Error("Invalid encoding: "+t)}throw Error("Invalid parameter: "+e)};E.DataBuffer.prototype.putBuffer=function(e){return this.putBytes(e),e.clear(),this};E.DataBuffer.prototype.putString=function(e){return this.putBytes(e,"utf16")};E.DataBuffer.prototype.putInt16=function(e){return this.accommodate(2),this.data.setInt16(this.write,e),this.write+=2,this};E.DataBuffer.prototype.putInt24=function(e){return this.accommodate(3),this.data.setInt16(this.write,e>>8&65535),this.data.setInt8(this.write,e>>16&255),this.write+=3,this};E.DataBuffer.prototype.putInt32=function(e){return this.accommodate(4),this.data.setInt32(this.write,e),this.write+=4,this};E.DataBuffer.prototype.putInt16Le=function(e){return this.accommodate(2),this.data.setInt16(this.write,e,!0),this.write+=2,this};E.DataBuffer.prototype.putInt24Le=function(e){return this.accommodate(3),this.data.setInt8(this.write,e>>16&255),this.data.setInt16(this.write,e>>8&65535,!0),this.write+=3,this};E.DataBuffer.prototype.putInt32Le=function(e){return this.accommodate(4),this.data.setInt32(this.write,e,!0),this.write+=4,this};E.DataBuffer.prototype.putInt=function(e,t){Ni(t),this.accommodate(t/8);do t-=8,this.data.setInt8(this.write++,e>>t&255);while(t>0);return this};E.DataBuffer.prototype.putSignedInt=function(e,t){return Ni(t),this.accommodate(t/8),e<0&&(e+=2<<t-1),this.putInt(e,t)};E.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};E.DataBuffer.prototype.getInt16=function(){var e=this.data.getInt16(this.read);return this.read+=2,e};E.DataBuffer.prototype.getInt24=function(){var e=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,e};E.DataBuffer.prototype.getInt32=function(){var e=this.data.getInt32(this.read);return this.read+=4,e};E.DataBuffer.prototype.getInt16Le=function(){var e=this.data.getInt16(this.read,!0);return this.read+=2,e};E.DataBuffer.prototype.getInt24Le=function(){var e=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,e};E.DataBuffer.prototype.getInt32Le=function(){var e=this.data.getInt32(this.read,!0);return this.read+=4,e};E.DataBuffer.prototype.getInt=function(e){Ni(e);var t=0;do t=(t<<8)+this.data.getInt8(this.read++),e-=8;while(e>0);return t};E.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};E.DataBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};E.DataBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};E.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)};E.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this};E.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};E.DataBuffer.prototype.copy=function(){return new E.DataBuffer(this)};E.DataBuffer.prototype.compact=function(){if(this.read>0){var e=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(e.byteLength);t.set(e),this.data=new DataView(t),this.write-=this.read,this.read=0}return this};E.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};E.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this};E.DataBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.byteLength;++t){var r=this.data.getUint8(t);r<16&&(e+="0"),e+=r.toString(16)}return e};E.DataBuffer.prototype.toString=function(e){var t=new Uint8Array(this.data,this.read,this.length());if(e=e||"utf8",e==="binary"||e==="raw")return E.binary.raw.encode(t);if(e==="hex")return E.binary.hex.encode(t);if(e==="base64")return E.binary.base64.encode(t);if(e==="utf8")return E.text.utf8.decode(t);if(e==="utf16")return E.text.utf16.decode(t);throw new Error("Invalid encoding: "+e)};E.createBuffer=function(e,t){return t=t||"raw",e!==void 0&&t==="utf8"&&(e=E.encodeUtf8(e)),new E.ByteBuffer(e)};E.fillString=function(e,t){for(var r="";t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return r};E.xorBytes=function(e,t,r){for(var n="",i="",s="",o=0,a=0;r>0;--r,++o)i=e.charCodeAt(o)^t.charCodeAt(o),a>=10&&(n+=s,s="",a=0),s+=String.fromCharCode(i),++a;return n+=s,n};E.hexToBytes=function(e){var t="",r=0;for(e.length&!0&&(r=1,t+=String.fromCharCode(parseInt(e[0],16)));r<e.length;r+=2)t+=String.fromCharCode(parseInt(e.substr(r,2),16));return t};E.bytesToHex=function(e){return E.createBuffer(e).toHex()};E.int32ToBytes=function(e){return String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255)};var Cr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Tr=[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";E.encode64=function(e,t){for(var r="",n="",i,s,o,a=0;a<e.length;)i=e.charCodeAt(a++),s=e.charCodeAt(a++),o=e.charCodeAt(a++),r+=Cr.charAt(i>>2),r+=Cr.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=Cr.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":Cr.charAt(o&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r
4
- `,r=r.substr(t));return n+=r,n};E.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t="",r,n,i,s,o=0;o<e.length;)r=Tr[e.charCodeAt(o++)-43],n=Tr[e.charCodeAt(o++)-43],i=Tr[e.charCodeAt(o++)-43],s=Tr[e.charCodeAt(o++)-43],t+=String.fromCharCode(r<<2|n>>4),i!==64&&(t+=String.fromCharCode((n&15)<<4|i>>2),s!==64&&(t+=String.fromCharCode((i&3)<<6|s)));return t};E.encodeUtf8=function(e){return unescape(encodeURIComponent(e))};E.decodeUtf8=function(e){return decodeURIComponent(escape(e))};E.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:Rf.encode,decode:Rf.decode}};E.binary.raw.encode=function(e){return String.fromCharCode.apply(null,e)};E.binary.raw.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var i=r,s=0;s<e.length;++s)n[i++]=e.charCodeAt(s);return t?i-r:n};E.binary.hex.encode=E.bytesToHex;E.binary.hex.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/2))),r=r||0;var i=0,s=r;for(e.length&1&&(i=1,n[s++]=parseInt(e[0],16));i<e.length;i+=2)n[s++]=parseInt(e.substr(i,2),16);return t?s-r:n};E.binary.base64.encode=function(e,t){for(var r="",n="",i,s,o,a=0;a<e.byteLength;)i=e[a++],s=e[a++],o=e[a++],r+=Cr.charAt(i>>2),r+=Cr.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=Cr.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":Cr.charAt(o&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r
5
- `,r=r.substr(t));return n+=r,n};E.binary.base64.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/4)*3)),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,""),r=r||0;for(var i,s,o,a,c=0,u=r;c<e.length;)i=Tr[e.charCodeAt(c++)-43],s=Tr[e.charCodeAt(c++)-43],o=Tr[e.charCodeAt(c++)-43],a=Tr[e.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 t?u-r:n.subarray(0,u)};E.binary.base58.encode=function(e,t){return E.binary.baseN.encode(e,Cf,t)};E.binary.base58.decode=function(e,t){return E.binary.baseN.decode(e,Cf,t)};E.text={utf8:{},utf16:{}};E.text.utf8.encode=function(e,t,r){e=E.encodeUtf8(e);var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var i=r,s=0;s<e.length;++s)n[i++]=e.charCodeAt(s);return t?i-r:n};E.text.utf8.decode=function(e){return E.decodeUtf8(String.fromCharCode.apply(null,e))};E.text.utf16.encode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length*2));var i=new Uint16Array(n.buffer);r=r||0;for(var s=r,o=r,a=0;a<e.length;++a)i[o++]=e.charCodeAt(a),s+=2;return t?s-r:n};E.text.utf16.decode=function(e){return String.fromCharCode.apply(null,new Uint16Array(e.buffer))};E.deflate=function(e,t,r){if(t=E.decode64(e.deflate(E.encode64(t)).rval),r){var n=2,i=t.charCodeAt(1);i&32&&(n=6),t=t.substring(n,t.length-4)}return t};E.inflate=function(e,t,r){var n=e.inflate(E.encode64(t)).rval;return n===null?null:E.decode64(n)};var Fa=function(e,t,r){if(!e)throw new Error("WebStorage not available.");var n;if(r===null?n=e.removeItem(t):(r=E.encode64(JSON.stringify(r)),n=e.setItem(t,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}},Ka=function(e,t){if(!e)throw new Error("WebStorage not available.");var r=e.getItem(t);if(e.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(E.decode64(r))),r},zy=function(e,t,r,n){var i=Ka(e,t);i===null&&(i={}),i[r]=n,Fa(e,t,i)},Gy=function(e,t,r){var n=Ka(e,t);return n!==null&&(n=r in n?n[r]:null),n},Yy=function(e,t,r){var n=Ka(e,t);if(n!==null&&r in n){delete n[r];var i=!0;for(var s in n){i=!1;break}i&&(n=null),Fa(e,t,n)}},Wy=function(e,t){Fa(e,t,null)},Ds=function(e,t,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(t[0]===null)throw new Error("Flash local storage not available.");n=e.apply(this,t),s=i==="flash"}(i==="web"||i==="both")&&(t[0]=localStorage,n=e.apply(this,t),s=!0)}catch(c){o=c}if(s)break}if(!s)throw o;return n};E.setItem=function(e,t,r,n,i){Ds(zy,arguments,i)};E.getItem=function(e,t,r,n){return Ds(Gy,arguments,n)};E.removeItem=function(e,t,r,n){Ds(Yy,arguments,n)};E.clearItems=function(e,t,r){Ds(Wy,arguments,r)};E.isEmpty=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0};E.format=function(e){for(var t=/%./g,r,n,i=0,s=[],o=0;r=t.exec(e);){n=e.substring(o,t.lastIndex-2),n.length>0&&s.push(n),o=t.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(e.substring(o)),s.join("")};E.formatNumber=function(e,t,r,n){var i=e,s=isNaN(t=Math.abs(t))?2:t,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):"")};E.formatSize=function(e){return e>=1073741824?e=E.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?e=E.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?e=E.formatNumber(e/1024,0)+" KiB":e=E.formatNumber(e,0)+" bytes",e};E.bytesFromIP=function(e){return e.indexOf(".")!==-1?E.bytesFromIPv4(e):e.indexOf(":")!==-1?E.bytesFromIPv6(e):null};E.bytesFromIPv4=function(e){if(e=e.split("."),e.length!==4)return null;for(var t=E.createBuffer(),r=0;r<e.length;++r){var n=parseInt(e[r],10);if(isNaN(n))return null;t.putByte(n)}return t.getBytes()};E.bytesFromIPv6=function(e){var t=0;e=e.split(":").filter(function(o){return o.length===0&&++t,!0});for(var r=(8-e.length+t)*2,n=E.createBuffer(),i=0;i<8;++i){if(!e[i]||e[i].length===0){n.fillWithByte(0,r),r=0;continue}var s=E.hexToBytes(e[i]);s.length<2&&n.putByte(0),n.putBytes(s)}return n.getBytes()};E.bytesToIP=function(e){return e.length===4?E.bytesToIPv4(e):e.length===16?E.bytesToIPv6(e):null};E.bytesToIPv4=function(e){if(e.length!==4)return null;for(var t=[],r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t.join(".")};E.bytesToIPv6=function(e){if(e.length!==16)return null;for(var t=[],r=[],n=0,i=0;i<e.length;i+=2){for(var s=E.bytesToHex(e[i]+e[i+1]);s[0]==="0"&&s!=="0";)s=s.substr(1);if(s==="0"){var o=r[r.length-1],a=t.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))}t.push(s)}if(r.length>0){var c=r[n];c.end-c.start>0&&(t.splice(c.start,c.end-c.start+1,""),c.start===0&&t.unshift(""),c.end===7&&t.push(""))}return t.join(":")};E.estimateCores=function(e,t){if(typeof e=="function"&&(t=e,e={}),e=e||{},"cores"in E&&!e.update)return t(null,E.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return E.cores=navigator.hardwareConcurrency,t(null,E.cores);if(typeof Worker>"u")return E.cores=1,t(null,E.cores);if(typeof Blob>"u")return E.cores=2,t(null,E.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 E.cores=Math.max(1,u),URL.revokeObjectURL(r),t(null,E.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 Ns=V((C_,Bf)=>{var ki=dt();ki.pki=ki.pki||{};var Va=Bf.exports=ki.pki.oids=ki.oids=ki.oids||{};function B(e,t){Va[e]=t,Va[t]=e}function ut(e,t){Va[e]=t}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");ut("2.5.29.1","authorityKeyIdentifier");ut("2.5.29.2","keyAttributes");ut("2.5.29.3","certificatePolicies");ut("2.5.29.4","keyUsageRestriction");ut("2.5.29.5","policyMapping");ut("2.5.29.6","subtreesConstraint");ut("2.5.29.7","subjectAltName");ut("2.5.29.8","issuerAltName");ut("2.5.29.9","subjectDirectoryAttributes");ut("2.5.29.10","basicConstraints");ut("2.5.29.11","nameConstraints");ut("2.5.29.12","policyConstraints");ut("2.5.29.13","basicConstraints");B("2.5.29.14","subjectKeyIdentifier");B("2.5.29.15","keyUsage");ut("2.5.29.16","privateKeyUsagePeriod");B("2.5.29.17","subjectAltName");B("2.5.29.18","issuerAltName");B("2.5.29.19","basicConstraints");ut("2.5.29.20","cRLNumber");ut("2.5.29.21","cRLReason");ut("2.5.29.22","expirationDate");ut("2.5.29.23","instructionCode");ut("2.5.29.24","invalidityDate");ut("2.5.29.25","cRLDistributionPoints");ut("2.5.29.26","issuingDistributionPoint");ut("2.5.29.27","deltaCRLIndicator");ut("2.5.29.28","issuingDistributionPoint");ut("2.5.29.29","certificateIssuer");ut("2.5.29.30","nameConstraints");B("2.5.29.31","cRLDistributionPoints");B("2.5.29.32","certificatePolicies");ut("2.5.29.33","policyMappings");ut("2.5.29.34","policyConstraints");B("2.5.29.35","authorityKeyIdentifier");ut("2.5.29.36","policyConstraints");B("2.5.29.37","extKeyUsage");ut("2.5.29.46","freshestCRL");ut("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 Mi=V((T_,Pf)=>{var vt=dt();Nt();Ns();var O=Pf.exports=vt.asn1=vt.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(e,t,r,n,i){if(vt.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:e,type:t,constructed:r,composed:r||vt.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=O.copy(a)),a};O.copy=function(e,t){var r;if(vt.util.isArray(e)){r=[];for(var n=0;n<e.length;++n)r.push(O.copy(e[n],t));return r}return typeof e=="string"?e:(r={tagClass:e.tagClass,type:e.type,constructed:e.constructed,composed:e.composed,value:O.copy(e.value,t)},t&&!t.excludeBitStringContents&&(r.bitStringContents=e.bitStringContents),r)};O.equals=function(e,t,r){if(vt.util.isArray(e)){if(!vt.util.isArray(t)||e.length!==t.length)return!1;for(var n=0;n<e.length;++n)if(!O.equals(e[n],t[n]))return!1;return!0}if(typeof e!=typeof t)return!1;if(typeof e=="string")return e===t;var i=e.tagClass===t.tagClass&&e.type===t.type&&e.constructed===t.constructed&&e.composed===t.composed&&O.equals(e.value,t.value);return r&&r.includeBitStringContents&&(i=i&&e.bitStringContents===t.bitStringContents),i};O.getBerValueLength=function(e){var t=e.getByte();if(t!==128){var r,n=t&128;return n?r=e.getInt((t&127)<<3):r=t,r}};function Oi(e,t,r){if(r>t){var n=new Error("Too few bytes to parse DER.");throw n.available=e.length(),n.remaining=t,n.requested=r,n}}var Qy=function(e,t){var r=e.getByte();if(t--,r!==128){var n,i=r&128;if(!i)n=r;else{var s=r&127;Oi(e,t,s),n=e.getInt(s<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};O.fromDer=function(e,t){t===void 0&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof t=="boolean"&&(t={strict:t,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in t||(t.strict=!0),"parseAllBytes"in t||(t.parseAllBytes=!0),"decodeBitStrings"in t||(t.decodeBitStrings=!0),typeof e=="string"&&(e=vt.util.createBuffer(e));var r=e.length(),n=ks(e,e.length(),0,t);if(t.parseAllBytes&&e.length()!==0){var i=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=r,i.remaining=e.length(),i}return n};function ks(e,t,r,n){var i;Oi(e,t,2);var s=e.getByte();t--;var o=s&192,a=s&31;i=e.length();var c=Qy(e,t);if(t-=i-e.length(),c!==void 0&&c>t){if(n.strict){var u=new Error("Too few bytes to read ASN.1 value.");throw u.available=e.length(),u.remaining=t,u.requested=c,u}c=t}var l,f,h=(s&32)===32;if(h)if(l=[],c===void 0)for(;;){if(Oi(e,t,2),e.bytes(2)===String.fromCharCode(0,0)){e.getBytes(2),t-=2;break}i=e.length(),l.push(ks(e,t,r+1,n)),t-=i-e.length()}else for(;c>0;)i=e.length(),l.push(ks(e,c,r+1,n)),t-=i-e.length(),c-=i-e.length();if(l===void 0&&o===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&(f=e.bytes(c)),l===void 0&&n.decodeBitStrings&&o===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&c>1){var p=e.read,d=t,m=0;if(a===O.Type.BITSTRING&&(Oi(e,t,1),m=e.getByte(),t--),m===0)try{i=e.length();var y={strict:!0,decodeBitStrings:!0},g=ks(e,t,r+1,y),x=i-e.length();t-=x,a==O.Type.BITSTRING&&x++;var b=g.tagClass;x===c&&(b===O.Class.UNIVERSAL||b===O.Class.CONTEXT_SPECIFIC)&&(l=[g])}catch{}l===void 0&&(e.read=p,t=d)}if(l===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=t}if(a===O.Type.BMPSTRING)for(l="";c>0;c-=2)Oi(e,t,2),l+=String.fromCharCode(e.getInt16()),t-=2;else l=e.getBytes(c),t-=c}var C=f===void 0?null:{bitStringContents:f};return O.create(o,a,h,l,C)}O.toDer=function(e){var t=vt.util.createBuffer(),r=e.tagClass|e.type,n=vt.util.createBuffer(),i=!1;if("bitStringContents"in e&&(i=!0,e.original&&(i=O.equals(e,e.original))),i)n.putBytes(e.bitStringContents);else if(e.composed){e.constructed?r|=32:n.putByte(0);for(var s=0;s<e.value.length;++s)e.value[s]!==void 0&&n.putBuffer(O.toDer(e.value[s]))}else if(e.type===O.Type.BMPSTRING)for(var s=0;s<e.value.length;++s)n.putInt16(e.value.charCodeAt(s));else e.type===O.Type.INTEGER&&e.value.length>1&&(e.value.charCodeAt(0)===0&&!(e.value.charCodeAt(1)&128)||e.value.charCodeAt(0)===255&&(e.value.charCodeAt(1)&128)===128)?n.putBytes(e.value.substr(1)):n.putBytes(e.value);if(t.putByte(r),n.length()<=127)t.putByte(n.length()&127);else{var o=n.length(),a="";do a+=String.fromCharCode(o&255),o=o>>>8;while(o>0);t.putByte(a.length|128);for(var s=a.length-1;s>=0;--s)t.putByte(a.charCodeAt(s))}return t.putBuffer(n),t};O.oidToDer=function(e){var t=e.split("."),r=vt.util.createBuffer();r.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var n,i,s,o,a=2;a<t.length;++a){n=!0,i=[],s=parseInt(t[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(e){var t;typeof e=="string"&&(e=vt.util.createBuffer(e));var r=e.getByte();t=Math.floor(r/40)+"."+r%40;for(var n=0;e.length()>0;)r=e.getByte(),n=n<<7,r&128?n+=r&127:(t+="."+(n+r),n=0);return t};O.utcTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(e.substr(2,2),10)-1,i=parseInt(e.substr(4,2),10),s=parseInt(e.substr(6,2),10),o=parseInt(e.substr(8,2),10),a=0;if(e.length>11){var c=e.charAt(10),u=10;c!=="+"&&c!=="-"&&(a=parseInt(e.substr(10,2),10),u+=2)}if(t.setUTCFullYear(r,n,i),t.setUTCHours(s,o,a,0),u&&(c=e.charAt(u),c==="+"||c==="-")){var l=parseInt(e.substr(u+1,2),10),f=parseInt(e.substr(u+4,2),10),h=l*60+f;h*=6e4,c==="+"?t.setTime(+t-h):t.setTime(+t+h)}return t};O.generalizedTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,4),10),n=parseInt(e.substr(4,2),10)-1,i=parseInt(e.substr(6,2),10),s=parseInt(e.substr(8,2),10),o=parseInt(e.substr(10,2),10),a=parseInt(e.substr(12,2),10),c=0,u=0,l=!1;e.charAt(e.length-1)==="Z"&&(l=!0);var f=e.length-5,h=e.charAt(f);if(h==="+"||h==="-"){var p=parseInt(e.substr(f+1,2),10),d=parseInt(e.substr(f+4,2),10);u=p*60+d,u*=6e4,h==="+"&&(u*=-1),l=!0}return e.charAt(14)==="."&&(c=parseFloat(e.substr(14),10)*1e3),l?(t.setUTCFullYear(r,n,i),t.setUTCHours(s,o,a,c),t.setTime(+t+u)):(t.setFullYear(r,n,i),t.setHours(s,o,a,c)),t};O.dateToUtcTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push((""+e.getUTCFullYear()).substr(2)),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z",t};O.dateToGeneralizedTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push(""+e.getUTCFullYear()),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z",t};O.integerToDer=function(e){var t=vt.util.createBuffer();if(e>=-128&&e<128)return t.putSignedInt(e,8);if(e>=-32768&&e<32768)return t.putSignedInt(e,16);if(e>=-8388608&&e<8388608)return t.putSignedInt(e,24);if(e>=-2147483648&&e<2147483648)return t.putSignedInt(e,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=e,r};O.derToInteger=function(e){typeof e=="string"&&(e=vt.util.createBuffer(e));var t=e.length()*8;if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)};O.validate=function(e,t,r,n){var i=!1;if((e.tagClass===t.tagClass||typeof t.tagClass>"u")&&(e.type===t.type||typeof t.type>"u"))if(e.constructed===t.constructed||typeof t.constructed>"u"){if(i=!0,t.value&&vt.util.isArray(t.value))for(var s=0,o=0;i&&o<t.value.length;++o)i=t.value[o].optional||!1,e.value[s]&&(i=O.validate(e.value[s],t.value[o],r,n),i?++s:t.value[o].optional&&(i=!0)),!i&&n&&n.push("["+t.name+'] Tag class "'+t.tagClass+'", type "'+t.type+'" expected value length "'+t.value.length+'", got "'+e.value.length+'"');if(i&&r&&(t.capture&&(r[t.capture]=e.value),t.captureAsn1&&(r[t.captureAsn1]=e),t.captureBitStringContents&&"bitStringContents"in e&&(r[t.captureBitStringContents]=e.bitStringContents),t.captureBitStringValue&&"bitStringContents"in e)){var a;if(e.bitStringContents.length<2)r[t.captureBitStringValue]="";else{var c=e.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");r[t.captureBitStringValue]=e.bitStringContents.slice(1)}}}else n&&n.push("["+t.name+'] Expected constructed "'+t.constructed+'", got "'+e.constructed+'"');else n&&(e.tagClass!==t.tagClass&&n.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+e.tagClass+'"'),e.type!==t.type&&n.push("["+t.name+'] Expected type "'+t.type+'", got "'+e.type+'"'));return i};var Lf=/[^\\u0000-\\u00ff]/;O.prettyPrint=function(e,t,r){var n="";t=t||0,r=r||2,t>0&&(n+=`
2
+ "use strict";var Libp2P=(()=>{var Oy=Object.create;var Ds=Object.defineProperty;var My=Object.getOwnPropertyDescriptor;var Uy=Object.getOwnPropertyNames;var Fy=Object.getPrototypeOf,Ky=Object.prototype.hasOwnProperty;var V=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Gt=(e,t)=>{for(var r in t)Ds(e,r,{get:t[r],enumerable:!0})},vf=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Uy(t))!Ky.call(e,i)&&i!==r&&Ds(e,i,{get:()=>t[i],enumerable:!(n=My(t,i))||n.enumerable});return e};var yt=(e,t,r)=>(r=e!=null?Oy(Fy(e)):{},vf(t||!e||!e.__esModule?Ds(r,"default",{value:e,enumerable:!0}):r,e)),Vy=e=>vf(Ds({},"__esModule",{value:!0}),e);var dt=V((A_,_f)=>{_f.exports={options:{usePureJavaScript:!1}}});var If=V((I_,Af)=>{var Fa={};Af.exports=Fa;var Sf={};Fa.encode=function(e,t,r){if(typeof t!="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(!(e instanceof Uint8Array))n=qy(e,t);else{var i=0,s=t.length,o=t.charAt(0),a=[0];for(i=0;i<e.length;++i){for(var c=0,u=e[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;e[i]===0&&i<e.length-1;++i)n+=o;for(i=a.length-1;i>=0;--i)n+=t[a[i]]}if(r){var l=new RegExp(".{1,"+r+"}","g");n=n.match(l).join(`\r
3
+ `)}return n};Fa.decode=function(e,t){if(typeof e!="string")throw new TypeError('"input" must be a string.');if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');var r=Sf[t];if(!r){r=Sf[t]=[];for(var n=0;n<t.length;++n)r[t.charCodeAt(n)]=n}e=e.replace(/\s/g,"");for(var i=t.length,s=t.charAt(0),o=[0],n=0;n<e.length;n++){var a=r[e.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;e[l]===s&&l<e.length-1;++l)o.push(0);return typeof Buffer<"u"?Buffer.from(o.reverse()):new Uint8Array(o.reverse())};function qy(e,t){var r=0,n=t.length,i=t.charAt(0),s=[0];for(r=0;r<e.length();++r){for(var o=0,a=e.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;e.at(r)===0&&r<e.length()-1;++r)c+=i;for(r=s.length-1;r>=0;--r)c+=t[s[r]];return c}});var Nt=V((R_,Bf)=>{var Rf=dt(),Cf=If(),E=Bf.exports=Rf.util=Rf.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){E.nextTick=process.nextTick,typeof setImmediate=="function"?E.setImmediate=setImmediate:E.setImmediate=E.nextTick;return}if(typeof setImmediate=="function"){E.setImmediate=function(){return setImmediate.apply(void 0,arguments)},E.nextTick=function(a){return setImmediate(a)};return}if(E.setImmediate=function(a){setTimeout(a,0)},typeof window<"u"&&typeof window.postMessage=="function"){let a=function(c){if(c.source===window&&c.data===e){c.stopPropagation();var u=t.slice();t.length=0,u.forEach(function(l){l()})}};var o=a,e="forge.setImmediate",t=[];E.setImmediate=function(c){t.push(c),t.length===1&&window.postMessage(e,"*")},window.addEventListener("message",a,!0)}if(typeof MutationObserver<"u"){var r=Date.now(),n=!0,i=document.createElement("div"),t=[];new MutationObserver(function(){var c=t.slice();t.length=0,c.forEach(function(u){u()})}).observe(i,{attributes:!0});var s=E.setImmediate;E.setImmediate=function(c){Date.now()-r>15?(r=Date.now(),s(c)):(t.push(c),t.length===1&&i.setAttribute("a",n=!n))}}E.nextTick=E.setImmediate})();E.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;E.globalScope=function(){return E.isNodejs?globalThis:typeof self>"u"?window:self}();E.isArray=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};E.isArrayBuffer=function(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer};E.isArrayBufferView=function(e){return e&&E.isArrayBuffer(e.buffer)&&e.byteLength!==void 0};function Ni(e){if(!(e===8||e===16||e===24||e===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+e)}E.ByteBuffer=Ka;function Ka(e){if(this.data="",this.read=0,typeof e=="string")this.data=e;else if(E.isArrayBuffer(e)||E.isArrayBufferView(e))if(typeof Buffer<"u"&&e instanceof Buffer)this.data=e.toString("binary");else{var t=new Uint8Array(e);try{this.data=String.fromCharCode.apply(null,t)}catch{for(var r=0;r<t.length;++r)this.putByte(t[r])}}else(e instanceof Ka||typeof e=="object"&&typeof e.data=="string"&&typeof e.read=="number")&&(this.data=e.data,this.read=e.read);this._constructedStringLength=0}E.ByteStringBuffer=Ka;var $y=4096;E.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>$y&&(this.data.substr(0,1),this._constructedStringLength=0)};E.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};E.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};E.ByteStringBuffer.prototype.putByte=function(e){return this.putBytes(String.fromCharCode(e))};E.ByteStringBuffer.prototype.fillWithByte=function(e,t){e=String.fromCharCode(e);for(var r=this.data;t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return this.data=r,this._optimizeConstructedString(t),this};E.ByteStringBuffer.prototype.putBytes=function(e){return this.data+=e,this._optimizeConstructedString(e.length),this};E.ByteStringBuffer.prototype.putString=function(e){return this.putBytes(E.encodeUtf8(e))};E.ByteStringBuffer.prototype.putInt16=function(e){return this.putBytes(String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};E.ByteStringBuffer.prototype.putInt24=function(e){return this.putBytes(String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};E.ByteStringBuffer.prototype.putInt32=function(e){return this.putBytes(String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};E.ByteStringBuffer.prototype.putInt16Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255))};E.ByteStringBuffer.prototype.putInt24Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255))};E.ByteStringBuffer.prototype.putInt32Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>24&255))};E.ByteStringBuffer.prototype.putInt=function(e,t){Ni(t);var r="";do t-=8,r+=String.fromCharCode(e>>t&255);while(t>0);return this.putBytes(r)};E.ByteStringBuffer.prototype.putSignedInt=function(e,t){return e<0&&(e+=2<<t-1),this.putInt(e,t)};E.ByteStringBuffer.prototype.putBuffer=function(e){return this.putBytes(e.getBytes())};E.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};E.ByteStringBuffer.prototype.getInt16=function(){var e=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,e};E.ByteStringBuffer.prototype.getInt24=function(){var e=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,e};E.ByteStringBuffer.prototype.getInt32=function(){var e=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,e};E.ByteStringBuffer.prototype.getInt16Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,e};E.ByteStringBuffer.prototype.getInt24Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,e};E.ByteStringBuffer.prototype.getInt32Le=function(){var e=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,e};E.ByteStringBuffer.prototype.getInt=function(e){Ni(e);var t=0;do t=(t<<8)+this.data.charCodeAt(this.read++),e-=8;while(e>0);return t};E.ByteStringBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};E.ByteStringBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};E.ByteStringBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};E.ByteStringBuffer.prototype.at=function(e){return this.data.charCodeAt(this.read+e)};E.ByteStringBuffer.prototype.setAt=function(e,t){return this.data=this.data.substr(0,this.read+e)+String.fromCharCode(t)+this.data.substr(this.read+e+1),this};E.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};E.ByteStringBuffer.prototype.copy=function(){var e=E.createBuffer(this.data);return e.read=this.read,e};E.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};E.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};E.ByteStringBuffer.prototype.truncate=function(e){var t=Math.max(0,this.length()-e);return this.data=this.data.substr(this.read,t),this.read=0,this};E.ByteStringBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.length;++t){var r=this.data.charCodeAt(t);r<16&&(e+="0"),e+=r.toString(16)}return e};E.ByteStringBuffer.prototype.toString=function(){return E.decodeUtf8(this.bytes())};function Hy(e,t){t=t||{},this.read=t.readOffset||0,this.growSize=t.growSize||1024;var r=E.isArrayBuffer(e),n=E.isArrayBufferView(e);if(r||n){r?this.data=new DataView(e):this.data=new DataView(e.buffer,e.byteOffset,e.byteLength),this.write="writeOffset"in t?t.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,e!=null&&this.putBytes(e),"writeOffset"in t&&(this.write=t.writeOffset)}E.DataBuffer=Hy;E.DataBuffer.prototype.length=function(){return this.write-this.read};E.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};E.DataBuffer.prototype.accommodate=function(e,t){if(this.length()>=e)return this;t=Math.max(t||this.growSize,e);var r=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),n=new Uint8Array(this.length()+t);return n.set(r),this.data=new DataView(n.buffer),this};E.DataBuffer.prototype.putByte=function(e){return this.accommodate(1),this.data.setUint8(this.write++,e),this};E.DataBuffer.prototype.fillWithByte=function(e,t){this.accommodate(t);for(var r=0;r<t;++r)this.data.setUint8(e);return this};E.DataBuffer.prototype.putBytes=function(e,t){if(E.isArrayBufferView(e)){var r=new Uint8Array(e.buffer,e.byteOffset,e.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(E.isArrayBuffer(e)){var r=new Uint8Array(e);this.accommodate(r.byteLength);var i=new Uint8Array(this.data.buffer);return i.set(r,this.write),this.write+=r.byteLength,this}if(e instanceof E.DataBuffer||typeof e=="object"&&typeof e.read=="number"&&typeof e.write=="number"&&E.isArrayBufferView(e.data)){var r=new Uint8Array(e.data.byteLength,e.read,e.length());this.accommodate(r.byteLength);var i=new Uint8Array(e.data.byteLength,this.write);return i.set(r),this.write+=r.byteLength,this}if(e instanceof E.ByteStringBuffer&&(e=e.data,t="binary"),t=t||"binary",typeof e=="string"){var s;if(t==="hex")return this.accommodate(Math.ceil(e.length/2)),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.hex.decode(e,s,this.write),this;if(t==="base64")return this.accommodate(Math.ceil(e.length/4)*3),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.base64.decode(e,s,this.write),this;if(t==="utf8"&&(e=E.encodeUtf8(e),t="binary"),t==="binary"||t==="raw")return this.accommodate(e.length),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.raw.decode(s),this;if(t==="utf16")return this.accommodate(e.length*2),s=new Uint16Array(this.data.buffer,this.write),this.write+=E.text.utf16.encode(s),this;throw new Error("Invalid encoding: "+t)}throw Error("Invalid parameter: "+e)};E.DataBuffer.prototype.putBuffer=function(e){return this.putBytes(e),e.clear(),this};E.DataBuffer.prototype.putString=function(e){return this.putBytes(e,"utf16")};E.DataBuffer.prototype.putInt16=function(e){return this.accommodate(2),this.data.setInt16(this.write,e),this.write+=2,this};E.DataBuffer.prototype.putInt24=function(e){return this.accommodate(3),this.data.setInt16(this.write,e>>8&65535),this.data.setInt8(this.write,e>>16&255),this.write+=3,this};E.DataBuffer.prototype.putInt32=function(e){return this.accommodate(4),this.data.setInt32(this.write,e),this.write+=4,this};E.DataBuffer.prototype.putInt16Le=function(e){return this.accommodate(2),this.data.setInt16(this.write,e,!0),this.write+=2,this};E.DataBuffer.prototype.putInt24Le=function(e){return this.accommodate(3),this.data.setInt8(this.write,e>>16&255),this.data.setInt16(this.write,e>>8&65535,!0),this.write+=3,this};E.DataBuffer.prototype.putInt32Le=function(e){return this.accommodate(4),this.data.setInt32(this.write,e,!0),this.write+=4,this};E.DataBuffer.prototype.putInt=function(e,t){Ni(t),this.accommodate(t/8);do t-=8,this.data.setInt8(this.write++,e>>t&255);while(t>0);return this};E.DataBuffer.prototype.putSignedInt=function(e,t){return Ni(t),this.accommodate(t/8),e<0&&(e+=2<<t-1),this.putInt(e,t)};E.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};E.DataBuffer.prototype.getInt16=function(){var e=this.data.getInt16(this.read);return this.read+=2,e};E.DataBuffer.prototype.getInt24=function(){var e=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,e};E.DataBuffer.prototype.getInt32=function(){var e=this.data.getInt32(this.read);return this.read+=4,e};E.DataBuffer.prototype.getInt16Le=function(){var e=this.data.getInt16(this.read,!0);return this.read+=2,e};E.DataBuffer.prototype.getInt24Le=function(){var e=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,e};E.DataBuffer.prototype.getInt32Le=function(){var e=this.data.getInt32(this.read,!0);return this.read+=4,e};E.DataBuffer.prototype.getInt=function(e){Ni(e);var t=0;do t=(t<<8)+this.data.getInt8(this.read++),e-=8;while(e>0);return t};E.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),r=2<<e-2;return t>=r&&(t-=r<<1),t};E.DataBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};E.DataBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};E.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)};E.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this};E.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};E.DataBuffer.prototype.copy=function(){return new E.DataBuffer(this)};E.DataBuffer.prototype.compact=function(){if(this.read>0){var e=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(e.byteLength);t.set(e),this.data=new DataView(t),this.write-=this.read,this.read=0}return this};E.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};E.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this};E.DataBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.byteLength;++t){var r=this.data.getUint8(t);r<16&&(e+="0"),e+=r.toString(16)}return e};E.DataBuffer.prototype.toString=function(e){var t=new Uint8Array(this.data,this.read,this.length());if(e=e||"utf8",e==="binary"||e==="raw")return E.binary.raw.encode(t);if(e==="hex")return E.binary.hex.encode(t);if(e==="base64")return E.binary.base64.encode(t);if(e==="utf8")return E.text.utf8.decode(t);if(e==="utf16")return E.text.utf16.decode(t);throw new Error("Invalid encoding: "+e)};E.createBuffer=function(e,t){return t=t||"raw",e!==void 0&&t==="utf8"&&(e=E.encodeUtf8(e)),new E.ByteBuffer(e)};E.fillString=function(e,t){for(var r="";t>0;)t&1&&(r+=e),t>>>=1,t>0&&(e+=e);return r};E.xorBytes=function(e,t,r){for(var n="",i="",s="",o=0,a=0;r>0;--r,++o)i=e.charCodeAt(o)^t.charCodeAt(o),a>=10&&(n+=s,s="",a=0),s+=String.fromCharCode(i),++a;return n+=s,n};E.hexToBytes=function(e){var t="",r=0;for(e.length&!0&&(r=1,t+=String.fromCharCode(parseInt(e[0],16)));r<e.length;r+=2)t+=String.fromCharCode(parseInt(e.substr(r,2),16));return t};E.bytesToHex=function(e){return E.createBuffer(e).toHex()};E.int32ToBytes=function(e){return String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255)};var Cr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",Tr=[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],Tf="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";E.encode64=function(e,t){for(var r="",n="",i,s,o,a=0;a<e.length;)i=e.charCodeAt(a++),s=e.charCodeAt(a++),o=e.charCodeAt(a++),r+=Cr.charAt(i>>2),r+=Cr.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=Cr.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":Cr.charAt(o&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r
4
+ `,r=r.substr(t));return n+=r,n};E.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t="",r,n,i,s,o=0;o<e.length;)r=Tr[e.charCodeAt(o++)-43],n=Tr[e.charCodeAt(o++)-43],i=Tr[e.charCodeAt(o++)-43],s=Tr[e.charCodeAt(o++)-43],t+=String.fromCharCode(r<<2|n>>4),i!==64&&(t+=String.fromCharCode((n&15)<<4|i>>2),s!==64&&(t+=String.fromCharCode((i&3)<<6|s)));return t};E.encodeUtf8=function(e){return unescape(encodeURIComponent(e))};E.decodeUtf8=function(e){return decodeURIComponent(escape(e))};E.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:Cf.encode,decode:Cf.decode}};E.binary.raw.encode=function(e){return String.fromCharCode.apply(null,e)};E.binary.raw.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var i=r,s=0;s<e.length;++s)n[i++]=e.charCodeAt(s);return t?i-r:n};E.binary.hex.encode=E.bytesToHex;E.binary.hex.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/2))),r=r||0;var i=0,s=r;for(e.length&1&&(i=1,n[s++]=parseInt(e[0],16));i<e.length;i+=2)n[s++]=parseInt(e.substr(i,2),16);return t?s-r:n};E.binary.base64.encode=function(e,t){for(var r="",n="",i,s,o,a=0;a<e.byteLength;)i=e[a++],s=e[a++],o=e[a++],r+=Cr.charAt(i>>2),r+=Cr.charAt((i&3)<<4|s>>4),isNaN(s)?r+="==":(r+=Cr.charAt((s&15)<<2|o>>6),r+=isNaN(o)?"=":Cr.charAt(o&63)),t&&r.length>t&&(n+=r.substr(0,t)+`\r
5
+ `,r=r.substr(t));return n+=r,n};E.binary.base64.decode=function(e,t,r){var n=t;n||(n=new Uint8Array(Math.ceil(e.length/4)*3)),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,""),r=r||0;for(var i,s,o,a,c=0,u=r;c<e.length;)i=Tr[e.charCodeAt(c++)-43],s=Tr[e.charCodeAt(c++)-43],o=Tr[e.charCodeAt(c++)-43],a=Tr[e.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 t?u-r:n.subarray(0,u)};E.binary.base58.encode=function(e,t){return E.binary.baseN.encode(e,Tf,t)};E.binary.base58.decode=function(e,t){return E.binary.baseN.decode(e,Tf,t)};E.text={utf8:{},utf16:{}};E.text.utf8.encode=function(e,t,r){e=E.encodeUtf8(e);var n=t;n||(n=new Uint8Array(e.length)),r=r||0;for(var i=r,s=0;s<e.length;++s)n[i++]=e.charCodeAt(s);return t?i-r:n};E.text.utf8.decode=function(e){return E.decodeUtf8(String.fromCharCode.apply(null,e))};E.text.utf16.encode=function(e,t,r){var n=t;n||(n=new Uint8Array(e.length*2));var i=new Uint16Array(n.buffer);r=r||0;for(var s=r,o=r,a=0;a<e.length;++a)i[o++]=e.charCodeAt(a),s+=2;return t?s-r:n};E.text.utf16.decode=function(e){return String.fromCharCode.apply(null,new Uint16Array(e.buffer))};E.deflate=function(e,t,r){if(t=E.decode64(e.deflate(E.encode64(t)).rval),r){var n=2,i=t.charCodeAt(1);i&32&&(n=6),t=t.substring(n,t.length-4)}return t};E.inflate=function(e,t,r){var n=e.inflate(E.encode64(t)).rval;return n===null?null:E.decode64(n)};var Va=function(e,t,r){if(!e)throw new Error("WebStorage not available.");var n;if(r===null?n=e.removeItem(t):(r=E.encode64(JSON.stringify(r)),n=e.setItem(t,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}},qa=function(e,t){if(!e)throw new Error("WebStorage not available.");var r=e.getItem(t);if(e.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(E.decode64(r))),r},zy=function(e,t,r,n){var i=qa(e,t);i===null&&(i={}),i[r]=n,Va(e,t,i)},Gy=function(e,t,r){var n=qa(e,t);return n!==null&&(n=r in n?n[r]:null),n},Yy=function(e,t,r){var n=qa(e,t);if(n!==null&&r in n){delete n[r];var i=!0;for(var s in n){i=!1;break}i&&(n=null),Va(e,t,n)}},Wy=function(e,t){Va(e,t,null)},Ns=function(e,t,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(t[0]===null)throw new Error("Flash local storage not available.");n=e.apply(this,t),s=i==="flash"}(i==="web"||i==="both")&&(t[0]=localStorage,n=e.apply(this,t),s=!0)}catch(c){o=c}if(s)break}if(!s)throw o;return n};E.setItem=function(e,t,r,n,i){Ns(zy,arguments,i)};E.getItem=function(e,t,r,n){return Ns(Gy,arguments,n)};E.removeItem=function(e,t,r,n){Ns(Yy,arguments,n)};E.clearItems=function(e,t,r){Ns(Wy,arguments,r)};E.isEmpty=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0};E.format=function(e){for(var t=/%./g,r,n,i=0,s=[],o=0;r=t.exec(e);){n=e.substring(o,t.lastIndex-2),n.length>0&&s.push(n),o=t.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(e.substring(o)),s.join("")};E.formatNumber=function(e,t,r,n){var i=e,s=isNaN(t=Math.abs(t))?2:t,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):"")};E.formatSize=function(e){return e>=1073741824?e=E.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?e=E.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?e=E.formatNumber(e/1024,0)+" KiB":e=E.formatNumber(e,0)+" bytes",e};E.bytesFromIP=function(e){return e.indexOf(".")!==-1?E.bytesFromIPv4(e):e.indexOf(":")!==-1?E.bytesFromIPv6(e):null};E.bytesFromIPv4=function(e){if(e=e.split("."),e.length!==4)return null;for(var t=E.createBuffer(),r=0;r<e.length;++r){var n=parseInt(e[r],10);if(isNaN(n))return null;t.putByte(n)}return t.getBytes()};E.bytesFromIPv6=function(e){var t=0;e=e.split(":").filter(function(o){return o.length===0&&++t,!0});for(var r=(8-e.length+t)*2,n=E.createBuffer(),i=0;i<8;++i){if(!e[i]||e[i].length===0){n.fillWithByte(0,r),r=0;continue}var s=E.hexToBytes(e[i]);s.length<2&&n.putByte(0),n.putBytes(s)}return n.getBytes()};E.bytesToIP=function(e){return e.length===4?E.bytesToIPv4(e):e.length===16?E.bytesToIPv6(e):null};E.bytesToIPv4=function(e){if(e.length!==4)return null;for(var t=[],r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t.join(".")};E.bytesToIPv6=function(e){if(e.length!==16)return null;for(var t=[],r=[],n=0,i=0;i<e.length;i+=2){for(var s=E.bytesToHex(e[i]+e[i+1]);s[0]==="0"&&s!=="0";)s=s.substr(1);if(s==="0"){var o=r[r.length-1],a=t.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))}t.push(s)}if(r.length>0){var c=r[n];c.end-c.start>0&&(t.splice(c.start,c.end-c.start+1,""),c.start===0&&t.unshift(""),c.end===7&&t.push(""))}return t.join(":")};E.estimateCores=function(e,t){if(typeof e=="function"&&(t=e,e={}),e=e||{},"cores"in E&&!e.update)return t(null,E.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return E.cores=navigator.hardwareConcurrency,t(null,E.cores);if(typeof Worker>"u")return E.cores=1,t(null,E.cores);if(typeof Blob>"u")return E.cores=2,t(null,E.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 E.cores=Math.max(1,u),URL.revokeObjectURL(r),t(null,E.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 ks=V((C_,Lf)=>{var ki=dt();ki.pki=ki.pki||{};var $a=Lf.exports=ki.pki.oids=ki.oids=ki.oids||{};function B(e,t){$a[e]=t,$a[t]=e}function ut(e,t){$a[e]=t}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");ut("2.5.29.1","authorityKeyIdentifier");ut("2.5.29.2","keyAttributes");ut("2.5.29.3","certificatePolicies");ut("2.5.29.4","keyUsageRestriction");ut("2.5.29.5","policyMapping");ut("2.5.29.6","subtreesConstraint");ut("2.5.29.7","subjectAltName");ut("2.5.29.8","issuerAltName");ut("2.5.29.9","subjectDirectoryAttributes");ut("2.5.29.10","basicConstraints");ut("2.5.29.11","nameConstraints");ut("2.5.29.12","policyConstraints");ut("2.5.29.13","basicConstraints");B("2.5.29.14","subjectKeyIdentifier");B("2.5.29.15","keyUsage");ut("2.5.29.16","privateKeyUsagePeriod");B("2.5.29.17","subjectAltName");B("2.5.29.18","issuerAltName");B("2.5.29.19","basicConstraints");ut("2.5.29.20","cRLNumber");ut("2.5.29.21","cRLReason");ut("2.5.29.22","expirationDate");ut("2.5.29.23","instructionCode");ut("2.5.29.24","invalidityDate");ut("2.5.29.25","cRLDistributionPoints");ut("2.5.29.26","issuingDistributionPoint");ut("2.5.29.27","deltaCRLIndicator");ut("2.5.29.28","issuingDistributionPoint");ut("2.5.29.29","certificateIssuer");ut("2.5.29.30","nameConstraints");B("2.5.29.31","cRLDistributionPoints");B("2.5.29.32","certificatePolicies");ut("2.5.29.33","policyMappings");ut("2.5.29.34","policyConstraints");B("2.5.29.35","authorityKeyIdentifier");ut("2.5.29.36","policyConstraints");B("2.5.29.37","extKeyUsage");ut("2.5.29.46","freshestCRL");ut("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 Mi=V((T_,Df)=>{var vt=dt();Nt();ks();var O=Df.exports=vt.asn1=vt.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(e,t,r,n,i){if(vt.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:e,type:t,constructed:r,composed:r||vt.util.isArray(n),value:n};return i&&"bitStringContents"in i&&(a.bitStringContents=i.bitStringContents,a.original=O.copy(a)),a};O.copy=function(e,t){var r;if(vt.util.isArray(e)){r=[];for(var n=0;n<e.length;++n)r.push(O.copy(e[n],t));return r}return typeof e=="string"?e:(r={tagClass:e.tagClass,type:e.type,constructed:e.constructed,composed:e.composed,value:O.copy(e.value,t)},t&&!t.excludeBitStringContents&&(r.bitStringContents=e.bitStringContents),r)};O.equals=function(e,t,r){if(vt.util.isArray(e)){if(!vt.util.isArray(t)||e.length!==t.length)return!1;for(var n=0;n<e.length;++n)if(!O.equals(e[n],t[n]))return!1;return!0}if(typeof e!=typeof t)return!1;if(typeof e=="string")return e===t;var i=e.tagClass===t.tagClass&&e.type===t.type&&e.constructed===t.constructed&&e.composed===t.composed&&O.equals(e.value,t.value);return r&&r.includeBitStringContents&&(i=i&&e.bitStringContents===t.bitStringContents),i};O.getBerValueLength=function(e){var t=e.getByte();if(t!==128){var r,n=t&128;return n?r=e.getInt((t&127)<<3):r=t,r}};function Oi(e,t,r){if(r>t){var n=new Error("Too few bytes to parse DER.");throw n.available=e.length(),n.remaining=t,n.requested=r,n}}var Qy=function(e,t){var r=e.getByte();if(t--,r!==128){var n,i=r&128;if(!i)n=r;else{var s=r&127;Oi(e,t,s),n=e.getInt(s<<3)}if(n<0)throw new Error("Negative length: "+n);return n}};O.fromDer=function(e,t){t===void 0&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof t=="boolean"&&(t={strict:t,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in t||(t.strict=!0),"parseAllBytes"in t||(t.parseAllBytes=!0),"decodeBitStrings"in t||(t.decodeBitStrings=!0),typeof e=="string"&&(e=vt.util.createBuffer(e));var r=e.length(),n=Os(e,e.length(),0,t);if(t.parseAllBytes&&e.length()!==0){var i=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw i.byteCount=r,i.remaining=e.length(),i}return n};function Os(e,t,r,n){var i;Oi(e,t,2);var s=e.getByte();t--;var o=s&192,a=s&31;i=e.length();var c=Qy(e,t);if(t-=i-e.length(),c!==void 0&&c>t){if(n.strict){var u=new Error("Too few bytes to read ASN.1 value.");throw u.available=e.length(),u.remaining=t,u.requested=c,u}c=t}var l,f,h=(s&32)===32;if(h)if(l=[],c===void 0)for(;;){if(Oi(e,t,2),e.bytes(2)===String.fromCharCode(0,0)){e.getBytes(2),t-=2;break}i=e.length(),l.push(Os(e,t,r+1,n)),t-=i-e.length()}else for(;c>0;)i=e.length(),l.push(Os(e,c,r+1,n)),t-=i-e.length(),c-=i-e.length();if(l===void 0&&o===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&(f=e.bytes(c)),l===void 0&&n.decodeBitStrings&&o===O.Class.UNIVERSAL&&a===O.Type.BITSTRING&&c>1){var p=e.read,d=t,m=0;if(a===O.Type.BITSTRING&&(Oi(e,t,1),m=e.getByte(),t--),m===0)try{i=e.length();var y={strict:!0,decodeBitStrings:!0},g=Os(e,t,r+1,y),x=i-e.length();t-=x,a==O.Type.BITSTRING&&x++;var b=g.tagClass;x===c&&(b===O.Class.UNIVERSAL||b===O.Class.CONTEXT_SPECIFIC)&&(l=[g])}catch{}l===void 0&&(e.read=p,t=d)}if(l===void 0){if(c===void 0){if(n.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");c=t}if(a===O.Type.BMPSTRING)for(l="";c>0;c-=2)Oi(e,t,2),l+=String.fromCharCode(e.getInt16()),t-=2;else l=e.getBytes(c),t-=c}var C=f===void 0?null:{bitStringContents:f};return O.create(o,a,h,l,C)}O.toDer=function(e){var t=vt.util.createBuffer(),r=e.tagClass|e.type,n=vt.util.createBuffer(),i=!1;if("bitStringContents"in e&&(i=!0,e.original&&(i=O.equals(e,e.original))),i)n.putBytes(e.bitStringContents);else if(e.composed){e.constructed?r|=32:n.putByte(0);for(var s=0;s<e.value.length;++s)e.value[s]!==void 0&&n.putBuffer(O.toDer(e.value[s]))}else if(e.type===O.Type.BMPSTRING)for(var s=0;s<e.value.length;++s)n.putInt16(e.value.charCodeAt(s));else e.type===O.Type.INTEGER&&e.value.length>1&&(e.value.charCodeAt(0)===0&&!(e.value.charCodeAt(1)&128)||e.value.charCodeAt(0)===255&&(e.value.charCodeAt(1)&128)===128)?n.putBytes(e.value.substr(1)):n.putBytes(e.value);if(t.putByte(r),n.length()<=127)t.putByte(n.length()&127);else{var o=n.length(),a="";do a+=String.fromCharCode(o&255),o=o>>>8;while(o>0);t.putByte(a.length|128);for(var s=a.length-1;s>=0;--s)t.putByte(a.charCodeAt(s))}return t.putBuffer(n),t};O.oidToDer=function(e){var t=e.split("."),r=vt.util.createBuffer();r.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var n,i,s,o,a=2;a<t.length;++a){n=!0,i=[],s=parseInt(t[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(e){var t;typeof e=="string"&&(e=vt.util.createBuffer(e));var r=e.getByte();t=Math.floor(r/40)+"."+r%40;for(var n=0;e.length()>0;)r=e.getByte(),n=n<<7,r&128?n+=r&127:(t+="."+(n+r),n=0);return t};O.utcTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,2),10);r=r>=50?1900+r:2e3+r;var n=parseInt(e.substr(2,2),10)-1,i=parseInt(e.substr(4,2),10),s=parseInt(e.substr(6,2),10),o=parseInt(e.substr(8,2),10),a=0;if(e.length>11){var c=e.charAt(10),u=10;c!=="+"&&c!=="-"&&(a=parseInt(e.substr(10,2),10),u+=2)}if(t.setUTCFullYear(r,n,i),t.setUTCHours(s,o,a,0),u&&(c=e.charAt(u),c==="+"||c==="-")){var l=parseInt(e.substr(u+1,2),10),f=parseInt(e.substr(u+4,2),10),h=l*60+f;h*=6e4,c==="+"?t.setTime(+t-h):t.setTime(+t+h)}return t};O.generalizedTimeToDate=function(e){var t=new Date,r=parseInt(e.substr(0,4),10),n=parseInt(e.substr(4,2),10)-1,i=parseInt(e.substr(6,2),10),s=parseInt(e.substr(8,2),10),o=parseInt(e.substr(10,2),10),a=parseInt(e.substr(12,2),10),c=0,u=0,l=!1;e.charAt(e.length-1)==="Z"&&(l=!0);var f=e.length-5,h=e.charAt(f);if(h==="+"||h==="-"){var p=parseInt(e.substr(f+1,2),10),d=parseInt(e.substr(f+4,2),10);u=p*60+d,u*=6e4,h==="+"&&(u*=-1),l=!0}return e.charAt(14)==="."&&(c=parseFloat(e.substr(14),10)*1e3),l?(t.setUTCFullYear(r,n,i),t.setUTCHours(s,o,a,c),t.setTime(+t+u)):(t.setFullYear(r,n,i),t.setHours(s,o,a,c)),t};O.dateToUtcTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push((""+e.getUTCFullYear()).substr(2)),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z",t};O.dateToGeneralizedTime=function(e){if(typeof e=="string")return e;var t="",r=[];r.push(""+e.getUTCFullYear()),r.push(""+(e.getUTCMonth()+1)),r.push(""+e.getUTCDate()),r.push(""+e.getUTCHours()),r.push(""+e.getUTCMinutes()),r.push(""+e.getUTCSeconds());for(var n=0;n<r.length;++n)r[n].length<2&&(t+="0"),t+=r[n];return t+="Z",t};O.integerToDer=function(e){var t=vt.util.createBuffer();if(e>=-128&&e<128)return t.putSignedInt(e,8);if(e>=-32768&&e<32768)return t.putSignedInt(e,16);if(e>=-8388608&&e<8388608)return t.putSignedInt(e,24);if(e>=-2147483648&&e<2147483648)return t.putSignedInt(e,32);var r=new Error("Integer too large; max is 32-bits.");throw r.integer=e,r};O.derToInteger=function(e){typeof e=="string"&&(e=vt.util.createBuffer(e));var t=e.length()*8;if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)};O.validate=function(e,t,r,n){var i=!1;if((e.tagClass===t.tagClass||typeof t.tagClass>"u")&&(e.type===t.type||typeof t.type>"u"))if(e.constructed===t.constructed||typeof t.constructed>"u"){if(i=!0,t.value&&vt.util.isArray(t.value))for(var s=0,o=0;i&&o<t.value.length;++o)i=t.value[o].optional||!1,e.value[s]&&(i=O.validate(e.value[s],t.value[o],r,n),i?++s:t.value[o].optional&&(i=!0)),!i&&n&&n.push("["+t.name+'] Tag class "'+t.tagClass+'", type "'+t.type+'" expected value length "'+t.value.length+'", got "'+e.value.length+'"');if(i&&r&&(t.capture&&(r[t.capture]=e.value),t.captureAsn1&&(r[t.captureAsn1]=e),t.captureBitStringContents&&"bitStringContents"in e&&(r[t.captureBitStringContents]=e.bitStringContents),t.captureBitStringValue&&"bitStringContents"in e)){var a;if(e.bitStringContents.length<2)r[t.captureBitStringValue]="";else{var c=e.bitStringContents.charCodeAt(0);if(c!==0)throw new Error("captureBitStringValue only supported for zero unused bits");r[t.captureBitStringValue]=e.bitStringContents.slice(1)}}}else n&&n.push("["+t.name+'] Expected constructed "'+t.constructed+'", got "'+e.constructed+'"');else n&&(e.tagClass!==t.tagClass&&n.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+e.tagClass+'"'),e.type!==t.type&&n.push("["+t.name+'] Expected type "'+t.type+'", got "'+e.type+'"'));return i};var Pf=/[^\\u0000-\\u00ff]/;O.prettyPrint=function(e,t,r){var n="";t=t||0,r=r||2,t>0&&(n+=`
6
6
  `);for(var i="",s=0;s<t*r;++s)i+=" ";switch(n+=i+"Tag: ",e.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(e.tagClass===O.Class.UNIVERSAL)switch(n+=e.type,e.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+=e.type;if(n+=`
7
7
  `,n+=i+"Constructed: "+e.constructed+`
8
- `,e.composed){for(var o=0,a="",s=0;s<e.value.length;++s)e.value[s]!==void 0&&(o+=1,a+=O.prettyPrint(e.value[s],t+1,r),s+1<e.value.length&&(a+=","));n+=i+"Sub values: "+o+a}else{if(n+=i+"Value: ",e.type===O.Type.OID){var c=O.derToOid(e.value);n+=c,vt.pki&&vt.pki.oids&&c in vt.pki.oids&&(n+=" ("+vt.pki.oids[c]+") ")}if(e.type===O.Type.INTEGER)try{n+=O.derToInteger(e.value)}catch{n+="0x"+vt.util.bytesToHex(e.value)}else if(e.type===O.Type.BITSTRING){if(e.value.length>1?n+="0x"+vt.util.bytesToHex(e.value.slice(1)):n+="(none)",e.value.length>0){var u=e.value.charCodeAt(0);u==1?n+=" (1 unused bit shown)":u>1&&(n+=" ("+u+" unused bits shown)")}}else if(e.type===O.Type.OCTETSTRING)Lf.test(e.value)||(n+="("+e.value+") "),n+="0x"+vt.util.bytesToHex(e.value);else if(e.type===O.Type.UTF8)try{n+=vt.util.decodeUtf8(e.value)}catch(l){if(l.message==="URI malformed")n+="0x"+vt.util.bytesToHex(e.value)+" (malformed UTF8)";else throw l}else e.type===O.Type.PRINTABLESTRING||e.type===O.Type.IA5String?n+=e.value:Lf.test(e.value)?n+="0x"+vt.util.bytesToHex(e.value):e.value.length===0?n+="[null]":n+=e.value}return n}});var $a=V((B_,Df)=>{var Gt=dt();Nt();Df.exports=Gt.cipher=Gt.cipher||{};Gt.cipher.algorithms=Gt.cipher.algorithms||{};Gt.cipher.createCipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Gt.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Gt.cipher.BlockCipher({algorithm:r,key:t,decrypt:!1})};Gt.cipher.createDecipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Gt.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Gt.cipher.BlockCipher({algorithm:r,key:t,decrypt:!0})};Gt.cipher.registerAlgorithm=function(e,t){e=e.toUpperCase(),Gt.cipher.algorithms[e]=t};Gt.cipher.getAlgorithm=function(e){return e=e.toUpperCase(),e in Gt.cipher.algorithms?Gt.cipher.algorithms[e]:null};var qa=Gt.cipher.BlockCipher=function(e){this.algorithm=e.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=e.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=e.decrypt,this.algorithm.initialize(e)};qa.prototype.start=function(e){e=e||{};var t={};for(var r in e)t[r]=e[r];t.decrypt=this._decrypt,this._finish=!1,this._input=Gt.util.createBuffer(),this.output=e.output||Gt.util.createBuffer(),this.mode.start(t)};qa.prototype.update=function(e){for(e&&this._input.putBuffer(e);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};qa.prototype.finish=function(e){e&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(r){return e(this.blockSize,r,!1)},this.mode.unpad=function(r){return e(this.blockSize,r,!0)});var t={};return t.decrypt=this._decrypt,t.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,t)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,t))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,t))}});var za=V((L_,Nf)=>{var Yt=dt();Nt();Yt.cipher=Yt.cipher||{};var tt=Nf.exports=Yt.cipher.modes=Yt.cipher.modes||{};tt.ecb=function(e){e=e||{},this.name="ECB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};tt.ecb.prototype.start=function(e){};tt.ecb.prototype.encrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};tt.ecb.prototype.decrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};tt.ecb.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};tt.ecb.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var r=e.length(),n=e.at(r-1);return n>this.blockSize<<2?!1:(e.truncate(n),!0)};tt.cbc=function(e){e=e||{},this.name="CBC",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};tt.cbc.prototype.start=function(e){if(e.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in e)this._iv=Os(e.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};tt.cbc.prototype.encrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=this._prev[n]^e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n]);this._prev=this._outBlock};tt.cbc.prototype.decrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};tt.cbc.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};tt.cbc.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var r=e.length(),n=e.at(r-1);return n>this.blockSize<<2?!1:(e.truncate(n),!0)};tt.cfb=function(e){e=e||{},this.name="CFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=Yt.util.createBuffer(),this._partialBytes=0};tt.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Os(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.cfb.prototype.encrypt=function(e,t,r){var n=e.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]=e.getInt32()^this._outBlock[i],t.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]=e.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(s>0)e.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 t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};tt.cfb.prototype.decrypt=function(e,t,r){var n=e.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]=e.getInt32(),t.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]=e.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(s>0)e.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 t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};tt.ofb=function(e){e=e||{},this.name="OFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Yt.util.createBuffer(),this._partialBytes=0};tt.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Os(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.ofb.prototype.encrypt=function(e,t,r){var n=e.length();if(e.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)t.putInt32(e.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(e.getInt32()^this._outBlock[i]);if(s>0)e.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 t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};tt.ofb.prototype.decrypt=tt.ofb.prototype.encrypt;tt.ctr=function(e){e=e||{},this.name="CTR",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Yt.util.createBuffer(),this._partialBytes=0};tt.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Os(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.ctr.prototype.encrypt=function(e,t,r){var n=e.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)t.putInt32(e.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(e.getInt32()^this._outBlock[i]);if(s>0&&(e.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}Ms(this._inBlock)};tt.ctr.prototype.decrypt=tt.ctr.prototype.encrypt;tt.gcm=function(e){e=e||{},this.name="GCM",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=Yt.util.createBuffer(),this._partialBytes=0,this._R=3774873600};tt.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t=Yt.util.createBuffer(e.iv);this._cipherLength=0;var r;if("additionalData"in e?r=Yt.util.createBuffer(e.additionalData):r=Yt.util.createBuffer(),"tagLength"in e?this._tagLength=e.tagLength:this._tagLength=128,this._tag=null,e.decrypt&&(this._tag=Yt.util.createBuffer(e.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=t.length();if(n===12)this._j0=[t.getInt32(),t.getInt32(),t.getInt32(),1];else{for(this._j0=[0,0,0,0];t.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(Ha(n*8)))}this._inBlock=this._j0.slice(0),Ms(this._inBlock),this._partialBytes=0,r=Yt.util.createBuffer(r),this._aDataLength=Ha(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()])};tt.gcm.prototype.encrypt=function(e,t,r){var n=e.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)t.putInt32(this._outBlock[i]^=e.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(e.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 e.read-=this.blockSize,t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),Ms(this._inBlock)};tt.gcm.prototype.decrypt=function(e,t,r){var n=e.length();if(n<this.blockSize&&!(r&&n>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),Ms(this._inBlock),this._hashBlock[0]=e.getInt32(),this._hashBlock[1]=e.getInt32(),this._hashBlock[2]=e.getInt32(),this._hashBlock[3]=e.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^this._hashBlock[i]);n<this.blockSize?this._cipherLength+=n%this.blockSize:this._cipherLength+=this.blockSize};tt.gcm.prototype.afterFinish=function(e,t){var r=!0;t.decrypt&&t.overflow&&e.truncate(this.blockSize-t.overflow),this.tag=Yt.util.createBuffer();var n=this._aDataLength.concat(Ha(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)),t.decrypt&&this.tag.bytes()!==this._tag&&(r=!1),r};tt.gcm.prototype.multiply=function(e,t){for(var r=[0,0,0,0],n=t.slice(0),i=0;i<128;++i){var s=e[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};tt.gcm.prototype.pow=function(e,t){for(var r=e[3]&1,n=3;n>0;--n)t[n]=e[n]>>>1|(e[n-1]&1)<<31;t[0]=e[0]>>>1,r&&(t[0]^=this._R)};tt.gcm.prototype.tableMultiply=function(e){for(var t=[0,0,0,0],r=0;r<32;++r){var n=r/8|0,i=e[n]>>>(7-r%8)*4&15,s=this._m[r][i];t[0]^=s[0],t[1]^=s[1],t[2]^=s[2],t[3]^=s[3]}return t};tt.gcm.prototype.ghash=function(e,t,r){return t[0]^=r[0],t[1]^=r[1],t[2]^=r[2],t[3]^=r[3],this.tableMultiply(t)};tt.gcm.prototype.generateHashTable=function(e,t){for(var r=8/t,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)*t;a[c]=1<<t-1<<u,s[o]=this.generateSubHashTable(this.multiply(a,e),t)}return s};tt.gcm.prototype.generateSubHashTable=function(e,t){var r=1<<t,n=r>>>1,i=new Array(r);i[n]=e.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]=[e[0]^u[0],e[1]^u[1],e[2]^u[2],e[3]^u[3]]}return i};function Os(e,t){if(typeof e=="string"&&(e=Yt.util.createBuffer(e)),Yt.util.isArray(e)&&e.length>4){var r=e;e=Yt.util.createBuffer();for(var n=0;n<r.length;++n)e.putByte(r[n])}if(e.length()<t)throw new Error("Invalid IV length; got "+e.length()+" bytes and expected "+t+" bytes.");if(!Yt.util.isArray(e)){for(var i=[],s=t/4,n=0;n<s;++n)i.push(e.getInt32());e=i}return e}function Ms(e){e[e.length-1]=e[e.length-1]+1&4294967295}function Ha(e){return[e/4294967296|0,e&4294967295]}});var Fs=V((P_,Uf)=>{var bt=dt();$a();za();Nt();Uf.exports=bt.aes=bt.aes||{};bt.aes.startEncrypting=function(e,t,r,n){var i=Us({key:e,output:r,decrypt:!1,mode:n});return i.start(t),i};bt.aes.createEncryptionCipher=function(e,t){return Us({key:e,output:null,decrypt:!1,mode:t})};bt.aes.startDecrypting=function(e,t,r,n){var i=Us({key:e,output:r,decrypt:!0,mode:n});return i.start(t),i};bt.aes.createDecryptionCipher=function(e,t){return Us({key:e,output:null,decrypt:!0,mode:t})};bt.aes.Algorithm=function(e,t){Wa||Of();var r=this;r.name=e,r.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return Ya(r._w,n,i,!1)},decrypt:function(n,i){return Ya(r._w,n,i,!0)}}}),r._init=!1};bt.aes.Algorithm.prototype.initialize=function(e){if(!this._init){var t=e.key,r;if(typeof t=="string"&&(t.length===16||t.length===24||t.length===32))t=bt.util.createBuffer(t);else if(bt.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){r=t,t=bt.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(!bt.util.isArray(t)){r=t,t=[];var i=r.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)t.push(r.getInt32())}}if(!bt.util.isArray(t)||!(t.length===4||t.length===6||t.length===8))throw new Error("Invalid key parameter.");var s=this.mode.name,o=["CFB","OFB","CTR","GCM"].indexOf(s)!==-1;this._w=Mf(t,e.decrypt&&!o),this._init=!0}};bt.aes._expandKey=function(e,t){return Wa||Of(),Mf(e,t)};bt.aes._updateBlock=Ya;$n("AES-ECB",bt.cipher.modes.ecb);$n("AES-CBC",bt.cipher.modes.cbc);$n("AES-CFB",bt.cipher.modes.cfb);$n("AES-OFB",bt.cipher.modes.ofb);$n("AES-CTR",bt.cipher.modes.ctr);$n("AES-GCM",bt.cipher.modes.gcm);function $n(e,t){var r=function(){return new bt.aes.Algorithm(e,t)};bt.cipher.registerAlgorithm(e,r)}var Wa=!1,qn=4,fe,Ga,kf,rn,Oe;function Of(){Wa=!0,kf=[0,1,2,4,8,16,32,64,128,27,54];for(var e=new Array(256),t=0;t<128;++t)e[t]=t<<1,e[t+128]=t+128<<1^283;fe=new Array(256),Ga=new Array(256),rn=new Array(4),Oe=new Array(4);for(var t=0;t<4;++t)rn[t]=new Array(256),Oe[t]=new Array(256);for(var r=0,n=0,i,s,o,a,c,u,l,t=0;t<256;++t){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,fe[r]=a,Ga[a]=r,c=e[a],i=e[r],s=e[i],o=e[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)rn[f][r]=u,Oe[f][a]=l,u=u<<24|u>>>8,l=l<<24|l>>>8;r===0?r=n=1:(r=i^e[e[e[i^o]]],n^=e[e[n]])}}function Mf(e,t){for(var r=e.slice(0),n,i=1,s=r.length,o=s+6+1,a=qn*o,c=s;c<a;++c)n=r[c-1],c%s===0?(n=fe[n>>>16&255]<<24^fe[n>>>8&255]<<16^fe[n&255]<<8^fe[n>>>24]^kf[i]<<24,i++):s>6&&c%s===4&&(n=fe[n>>>24]<<24^fe[n>>>16&255]<<16^fe[n>>>8&255]<<8^fe[n&255]),r[c]=r[c-s]^n;if(t){var u,l=Oe[0],f=Oe[1],h=Oe[2],p=Oe[3],d=r.slice(0);a=r.length;for(var c=0,m=a-qn;c<a;c+=qn,m-=qn)if(c===0||c===a-qn)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 y=0;y<qn;++y)u=r[m+y],d[c+(3&-y)]=l[fe[u>>>24]]^f[fe[u>>>16&255]]^h[fe[u>>>8&255]]^p[fe[u&255]];r=d}return r}function Ya(e,t,r,n){var i=e.length/4-1,s,o,a,c,u;n?(s=Oe[0],o=Oe[1],a=Oe[2],c=Oe[3],u=Ga):(s=rn[0],o=rn[1],a=rn[2],c=rn[3],u=fe);var l,f,h,p,d,m,y;l=t[0]^e[0],f=t[n?3:1]^e[1],h=t[2]^e[2],p=t[n?1:3]^e[3];for(var g=3,x=1;x<i;++x)d=s[l>>>24]^o[f>>>16&255]^a[h>>>8&255]^c[p&255]^e[++g],m=s[f>>>24]^o[h>>>16&255]^a[p>>>8&255]^c[l&255]^e[++g],y=s[h>>>24]^o[p>>>16&255]^a[l>>>8&255]^c[f&255]^e[++g],p=s[p>>>24]^o[l>>>16&255]^a[f>>>8&255]^c[h&255]^e[++g],l=d,f=m,h=y;r[0]=u[l>>>24]<<24^u[f>>>16&255]<<16^u[h>>>8&255]<<8^u[p&255]^e[++g],r[n?3:1]=u[f>>>24]<<24^u[h>>>16&255]<<16^u[p>>>8&255]<<8^u[l&255]^e[++g],r[2]=u[h>>>24]<<24^u[p>>>16&255]<<16^u[l>>>8&255]<<8^u[f&255]^e[++g],r[n?1:3]=u[p>>>24]<<24^u[l>>>16&255]<<16^u[f>>>8&255]<<8^u[h&255]^e[++g]}function Us(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="AES-"+t,n;e.decrypt?n=bt.cipher.createDecipher(r,e.key):n=bt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof bt.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var Vf=V((D_,Kf)=>{var St=dt();$a();za();Nt();Kf.exports=St.des=St.des||{};St.des.startEncrypting=function(e,t,r,n){var i=Ks({key:e,output:r,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};St.des.createEncryptionCipher=function(e,t){return Ks({key:e,output:null,decrypt:!1,mode:t})};St.des.startDecrypting=function(e,t,r,n){var i=Ks({key:e,output:r,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};St.des.createDecryptionCipher=function(e,t){return Ks({key:e,output:null,decrypt:!0,mode:t})};St.des.Algorithm=function(e,t){var r=this;r.name=e,r.mode=new t({blockSize:8,cipher:{encrypt:function(n,i){return Ff(r._keys,n,i,!1)},decrypt:function(n,i){return Ff(r._keys,n,i,!0)}}}),r._init=!1};St.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=St.util.createBuffer(e.key);if(this.name.indexOf("3DES")===0&&t.length()!==24)throw new Error("Invalid Triple-DES key size: "+t.length()*8);this._keys=ig(t),this._init=!0}};Ge("DES-ECB",St.cipher.modes.ecb);Ge("DES-CBC",St.cipher.modes.cbc);Ge("DES-CFB",St.cipher.modes.cfb);Ge("DES-OFB",St.cipher.modes.ofb);Ge("DES-CTR",St.cipher.modes.ctr);Ge("3DES-ECB",St.cipher.modes.ecb);Ge("3DES-CBC",St.cipher.modes.cbc);Ge("3DES-CFB",St.cipher.modes.cfb);Ge("3DES-OFB",St.cipher.modes.ofb);Ge("3DES-CTR",St.cipher.modes.ctr);function Ge(e,t){var r=function(){return new St.des.Algorithm(e,t)};St.cipher.registerAlgorithm(e,r)}var Xy=[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],Zy=[-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],Jy=[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],jy=[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],tg=[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],eg=[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],rg=[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],ng=[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 ig(e){for(var t=[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=e.length()>8?3:1,y=[],g=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,b,C=0;C<m;C++){var _=e.getInt32(),S=e.getInt32();b=(_>>>4^S)&252645135,S^=b,_^=b<<4,b=(S>>>-16^_)&65535,_^=b,S^=b<<-16,b=(_>>>2^S)&858993459,S^=b,_^=b<<2,b=(S>>>-16^_)&65535,_^=b,S^=b<<-16,b=(_>>>1^S)&1431655765,S^=b,_^=b<<1,b=(S>>>8^_)&16711935,_^=b,S^=b<<8,b=(_>>>1^S)&1431655765,S^=b,_^=b<<1,b=_<<8|S>>>20&240,_=S<<24|S<<8&16711680|S>>>8&65280|S>>>24&240,S=b;for(var P=0;P<g.length;++P){g[P]?(_=_<<2|_>>>26,S=S<<2|S>>>26):(_=_<<1|_>>>27,S=S<<1|S>>>27),_&=-15,S&=-15;var D=t[_>>>28]|r[_>>>24&15]|n[_>>>20&15]|i[_>>>16&15]|s[_>>>12&15]|o[_>>>8&15]|a[_>>>4&15],Y=c[S>>>28]|u[S>>>24&15]|l[S>>>20&15]|f[S>>>16&15]|h[S>>>12&15]|p[S>>>8&15]|d[S>>>4&15];b=(Y>>>16^D)&65535,y[x++]=D^b,y[x++]=Y^b<<16}}return y}function Ff(e,t,r,n){var i=e.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=t[0],c=t[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^e[h],d=(c>>>4|c<<28)^e[h+1];o=a,a=c,c=o^(Zy[p>>>24&63]|jy[p>>>16&63]|eg[p>>>8&63]|ng[p&63]|Xy[d>>>24&63]|Jy[d>>>16&63]|tg[d>>>8&63]|rg[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 Ks(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="DES-"+t,n;e.decrypt?n=St.cipher.createDecipher(r,e.key):n=St.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof St.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var nn=V((N_,qf)=>{var Vs=dt();qf.exports=Vs.md=Vs.md||{};Vs.md.algorithms=Vs.md.algorithms||{}});var Hf=V((k_,$f)=>{var cr=dt();nn();Nt();var sg=$f.exports=cr.hmac=cr.hmac||{};sg.create=function(){var e=null,t=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 cr.md.algorithms)t=cr.md.algorithms[s].create();else throw new Error('Unknown hash algorithm "'+s+'"');else t=s;if(o===null)o=e;else{if(typeof o=="string")o=cr.util.createBuffer(o);else if(cr.util.isArray(o)){var a=o;o=cr.util.createBuffer();for(var c=0;c<a.length;++c)o.putByte(a[c])}var u=o.length();u>t.blockLength&&(t.start(),t.update(o.bytes()),o=t.digest()),r=cr.util.createBuffer(),n=cr.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<t.blockLength)for(var a=t.blockLength-u,c=0;c<a;++c)r.putByte(54),n.putByte(92);e=o,r=r.bytes(),n=n.bytes()}t.start(),t.update(r)},i.update=function(s){t.update(s)},i.getMac=function(){var s=t.digest().bytes();return t.start(),t.update(n),t.update(s),t.digest()},i.digest=i.getMac,i}});var Ui=V(()=>{});var Qa=V((U_,zf)=>{var he=dt();Hf();nn();Nt();var og=he.pkcs5=he.pkcs5||{},ur;he.util.isNodejs&&!he.options.usePureJavaScript&&(ur=Ui());zf.exports=he.pbkdf2=og.pbkdf2=function(e,t,r,n,i,s){if(typeof i=="function"&&(s=i,i=null),he.util.isNodejs&&!he.options.usePureJavaScript&&ur.pbkdf2&&(i===null||typeof i!="object")&&(ur.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),e=Buffer.from(e,"binary"),t=Buffer.from(t,"binary"),s?ur.pbkdf2Sync.length===4?ur.pbkdf2(e,t,r,n,function(b,C){if(b)return s(b);s(null,C.toString("binary"))}):ur.pbkdf2(e,t,r,n,i,function(b,C){if(b)return s(b);s(null,C.toString("binary"))}):ur.pbkdf2Sync.length===4?ur.pbkdf2Sync(e,t,r,n).toString("binary"):ur.pbkdf2Sync(e,t,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in he.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=he.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=he.hmac.create();l.start(i,e);var f="",h,p,d;if(!s){for(var m=1;m<=c;++m){l.start(null,null),l.update(t),l.update(he.util.int32ToBytes(m)),h=d=l.digest().getBytes();for(var y=2;y<=r;++y)l.start(null,null),l.update(d),p=l.digest().getBytes(),h=he.util.xorBytes(h,p,o),d=p;f+=m<c?h:h.substr(0,u)}return f}var m=1,y;function g(){if(m>c)return s(null,f);l.start(null,null),l.update(t),l.update(he.util.int32ToBytes(m)),h=d=l.digest().getBytes(),y=2,x()}function x(){if(y<=r)return l.start(null,null),l.update(d),p=l.digest().getBytes(),h=he.util.xorBytes(h,p,o),d=p,++y,he.util.setImmediate(x);f+=m<c?h:h.substr(0,u),++m,g()}g()}});var Wf=V((F_,Yf)=>{var $s=dt();Nt();var Gf=Yf.exports=$s.pem=$s.pem||{};Gf.encode=function(e,t){t=t||{};var r="-----BEGIN "+e.type+`-----\r
9
- `,n;if(e.procType&&(n={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]},r+=qs(n)),e.contentDomain&&(n={name:"Content-Domain",values:[e.contentDomain]},r+=qs(n)),e.dekInfo&&(n={name:"DEK-Info",values:[e.dekInfo.algorithm]},e.dekInfo.parameters&&n.values.push(e.dekInfo.parameters),r+=qs(n)),e.headers)for(var i=0;i<e.headers.length;++i)r+=qs(e.headers[i]);return e.procType&&(r+=`\r
10
- `),r+=$s.util.encode64(e.body,t.maxline||64)+`\r
8
+ `,e.composed){for(var o=0,a="",s=0;s<e.value.length;++s)e.value[s]!==void 0&&(o+=1,a+=O.prettyPrint(e.value[s],t+1,r),s+1<e.value.length&&(a+=","));n+=i+"Sub values: "+o+a}else{if(n+=i+"Value: ",e.type===O.Type.OID){var c=O.derToOid(e.value);n+=c,vt.pki&&vt.pki.oids&&c in vt.pki.oids&&(n+=" ("+vt.pki.oids[c]+") ")}if(e.type===O.Type.INTEGER)try{n+=O.derToInteger(e.value)}catch{n+="0x"+vt.util.bytesToHex(e.value)}else if(e.type===O.Type.BITSTRING){if(e.value.length>1?n+="0x"+vt.util.bytesToHex(e.value.slice(1)):n+="(none)",e.value.length>0){var u=e.value.charCodeAt(0);u==1?n+=" (1 unused bit shown)":u>1&&(n+=" ("+u+" unused bits shown)")}}else if(e.type===O.Type.OCTETSTRING)Pf.test(e.value)||(n+="("+e.value+") "),n+="0x"+vt.util.bytesToHex(e.value);else if(e.type===O.Type.UTF8)try{n+=vt.util.decodeUtf8(e.value)}catch(l){if(l.message==="URI malformed")n+="0x"+vt.util.bytesToHex(e.value)+" (malformed UTF8)";else throw l}else e.type===O.Type.PRINTABLESTRING||e.type===O.Type.IA5String?n+=e.value:Pf.test(e.value)?n+="0x"+vt.util.bytesToHex(e.value):e.value.length===0?n+="[null]":n+=e.value}return n}});var za=V((B_,Nf)=>{var Yt=dt();Nt();Nf.exports=Yt.cipher=Yt.cipher||{};Yt.cipher.algorithms=Yt.cipher.algorithms||{};Yt.cipher.createCipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Yt.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Yt.cipher.BlockCipher({algorithm:r,key:t,decrypt:!1})};Yt.cipher.createDecipher=function(e,t){var r=e;if(typeof r=="string"&&(r=Yt.cipher.getAlgorithm(r),r&&(r=r())),!r)throw new Error("Unsupported algorithm: "+e);return new Yt.cipher.BlockCipher({algorithm:r,key:t,decrypt:!0})};Yt.cipher.registerAlgorithm=function(e,t){e=e.toUpperCase(),Yt.cipher.algorithms[e]=t};Yt.cipher.getAlgorithm=function(e){return e=e.toUpperCase(),e in Yt.cipher.algorithms?Yt.cipher.algorithms[e]:null};var Ha=Yt.cipher.BlockCipher=function(e){this.algorithm=e.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=e.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=e.decrypt,this.algorithm.initialize(e)};Ha.prototype.start=function(e){e=e||{};var t={};for(var r in e)t[r]=e[r];t.decrypt=this._decrypt,this._finish=!1,this._input=Yt.util.createBuffer(),this.output=e.output||Yt.util.createBuffer(),this.mode.start(t)};Ha.prototype.update=function(e){for(e&&this._input.putBuffer(e);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};Ha.prototype.finish=function(e){e&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(r){return e(this.blockSize,r,!1)},this.mode.unpad=function(r){return e(this.blockSize,r,!0)});var t={};return t.decrypt=this._decrypt,t.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,t)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,t))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,t))}});var Ya=V((L_,kf)=>{var Wt=dt();Nt();Wt.cipher=Wt.cipher||{};var tt=kf.exports=Wt.cipher.modes=Wt.cipher.modes||{};tt.ecb=function(e){e=e||{},this.name="ECB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};tt.ecb.prototype.start=function(e){};tt.ecb.prototype.encrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};tt.ecb.prototype.decrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n])};tt.ecb.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};tt.ecb.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var r=e.length(),n=e.at(r-1);return n>this.blockSize<<2?!1:(e.truncate(n),!0)};tt.cbc=function(e){e=e||{},this.name="CBC",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};tt.cbc.prototype.start=function(e){if(e.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in e)this._iv=Ms(e.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};tt.cbc.prototype.encrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=this._prev[n]^e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n]);this._prev=this._outBlock};tt.cbc.prototype.decrypt=function(e,t,r){if(e.length()<this.blockSize&&!(r&&e.length()>0))return!0;for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._prev[n]^this._outBlock[n]);this._prev=this._inBlock.slice(0)};tt.cbc.prototype.pad=function(e,t){var r=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(r,r),!0};tt.cbc.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var r=e.length(),n=e.at(r-1);return n>this.blockSize<<2?!1:(e.truncate(n),!0)};tt.cfb=function(e){e=e||{},this.name="CFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=Wt.util.createBuffer(),this._partialBytes=0};tt.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Ms(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.cfb.prototype.encrypt=function(e,t,r){var n=e.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]=e.getInt32()^this._outBlock[i],t.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]=e.getInt32()^this._outBlock[i],this._partialOutput.putInt32(this._partialBlock[i]);if(s>0)e.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 t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};tt.cfb.prototype.decrypt=function(e,t,r){var n=e.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]=e.getInt32(),t.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]=e.getInt32(),this._partialOutput.putInt32(this._partialBlock[i]^this._outBlock[i]);if(s>0)e.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 t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};tt.ofb=function(e){e=e||{},this.name="OFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Wt.util.createBuffer(),this._partialBytes=0};tt.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Ms(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.ofb.prototype.encrypt=function(e,t,r){var n=e.length();if(e.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)t.putInt32(e.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(e.getInt32()^this._outBlock[i]);if(s>0)e.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 t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0};tt.ofb.prototype.decrypt=tt.ofb.prototype.encrypt;tt.ctr=function(e){e=e||{},this.name="CTR",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Wt.util.createBuffer(),this._partialBytes=0};tt.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=Ms(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};tt.ctr.prototype.encrypt=function(e,t,r){var n=e.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)t.putInt32(e.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(e.getInt32()^this._outBlock[i]);if(s>0&&(e.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!r)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}Us(this._inBlock)};tt.ctr.prototype.decrypt=tt.ctr.prototype.encrypt;tt.gcm=function(e){e=e||{},this.name="GCM",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=Wt.util.createBuffer(),this._partialBytes=0,this._R=3774873600};tt.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t=Wt.util.createBuffer(e.iv);this._cipherLength=0;var r;if("additionalData"in e?r=Wt.util.createBuffer(e.additionalData):r=Wt.util.createBuffer(),"tagLength"in e?this._tagLength=e.tagLength:this._tagLength=128,this._tag=null,e.decrypt&&(this._tag=Wt.util.createBuffer(e.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=t.length();if(n===12)this._j0=[t.getInt32(),t.getInt32(),t.getInt32(),1];else{for(this._j0=[0,0,0,0];t.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(Ga(n*8)))}this._inBlock=this._j0.slice(0),Us(this._inBlock),this._partialBytes=0,r=Wt.util.createBuffer(r),this._aDataLength=Ga(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()])};tt.gcm.prototype.encrypt=function(e,t,r){var n=e.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)t.putInt32(this._outBlock[i]^=e.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(e.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 e.read-=this.blockSize,t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(n-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),Us(this._inBlock)};tt.gcm.prototype.decrypt=function(e,t,r){var n=e.length();if(n<this.blockSize&&!(r&&n>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),Us(this._inBlock),this._hashBlock[0]=e.getInt32(),this._hashBlock[1]=e.getInt32(),this._hashBlock[2]=e.getInt32(),this._hashBlock[3]=e.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var i=0;i<this._ints;++i)t.putInt32(this._outBlock[i]^this._hashBlock[i]);n<this.blockSize?this._cipherLength+=n%this.blockSize:this._cipherLength+=this.blockSize};tt.gcm.prototype.afterFinish=function(e,t){var r=!0;t.decrypt&&t.overflow&&e.truncate(this.blockSize-t.overflow),this.tag=Wt.util.createBuffer();var n=this._aDataLength.concat(Ga(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)),t.decrypt&&this.tag.bytes()!==this._tag&&(r=!1),r};tt.gcm.prototype.multiply=function(e,t){for(var r=[0,0,0,0],n=t.slice(0),i=0;i<128;++i){var s=e[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};tt.gcm.prototype.pow=function(e,t){for(var r=e[3]&1,n=3;n>0;--n)t[n]=e[n]>>>1|(e[n-1]&1)<<31;t[0]=e[0]>>>1,r&&(t[0]^=this._R)};tt.gcm.prototype.tableMultiply=function(e){for(var t=[0,0,0,0],r=0;r<32;++r){var n=r/8|0,i=e[n]>>>(7-r%8)*4&15,s=this._m[r][i];t[0]^=s[0],t[1]^=s[1],t[2]^=s[2],t[3]^=s[3]}return t};tt.gcm.prototype.ghash=function(e,t,r){return t[0]^=r[0],t[1]^=r[1],t[2]^=r[2],t[3]^=r[3],this.tableMultiply(t)};tt.gcm.prototype.generateHashTable=function(e,t){for(var r=8/t,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)*t;a[c]=1<<t-1<<u,s[o]=this.generateSubHashTable(this.multiply(a,e),t)}return s};tt.gcm.prototype.generateSubHashTable=function(e,t){var r=1<<t,n=r>>>1,i=new Array(r);i[n]=e.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]=[e[0]^u[0],e[1]^u[1],e[2]^u[2],e[3]^u[3]]}return i};function Ms(e,t){if(typeof e=="string"&&(e=Wt.util.createBuffer(e)),Wt.util.isArray(e)&&e.length>4){var r=e;e=Wt.util.createBuffer();for(var n=0;n<r.length;++n)e.putByte(r[n])}if(e.length()<t)throw new Error("Invalid IV length; got "+e.length()+" bytes and expected "+t+" bytes.");if(!Wt.util.isArray(e)){for(var i=[],s=t/4,n=0;n<s;++n)i.push(e.getInt32());e=i}return e}function Us(e){e[e.length-1]=e[e.length-1]+1&4294967295}function Ga(e){return[e/4294967296|0,e&4294967295]}});var Ks=V((P_,Ff)=>{var bt=dt();za();Ya();Nt();Ff.exports=bt.aes=bt.aes||{};bt.aes.startEncrypting=function(e,t,r,n){var i=Fs({key:e,output:r,decrypt:!1,mode:n});return i.start(t),i};bt.aes.createEncryptionCipher=function(e,t){return Fs({key:e,output:null,decrypt:!1,mode:t})};bt.aes.startDecrypting=function(e,t,r,n){var i=Fs({key:e,output:r,decrypt:!0,mode:n});return i.start(t),i};bt.aes.createDecryptionCipher=function(e,t){return Fs({key:e,output:null,decrypt:!0,mode:t})};bt.aes.Algorithm=function(e,t){Xa||Mf();var r=this;r.name=e,r.mode=new t({blockSize:16,cipher:{encrypt:function(n,i){return Qa(r._w,n,i,!1)},decrypt:function(n,i){return Qa(r._w,n,i,!0)}}}),r._init=!1};bt.aes.Algorithm.prototype.initialize=function(e){if(!this._init){var t=e.key,r;if(typeof t=="string"&&(t.length===16||t.length===24||t.length===32))t=bt.util.createBuffer(t);else if(bt.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){r=t,t=bt.util.createBuffer();for(var n=0;n<r.length;++n)t.putByte(r[n])}if(!bt.util.isArray(t)){r=t,t=[];var i=r.length();if(i===16||i===24||i===32){i=i>>>2;for(var n=0;n<i;++n)t.push(r.getInt32())}}if(!bt.util.isArray(t)||!(t.length===4||t.length===6||t.length===8))throw new Error("Invalid key parameter.");var s=this.mode.name,o=["CFB","OFB","CTR","GCM"].indexOf(s)!==-1;this._w=Uf(t,e.decrypt&&!o),this._init=!0}};bt.aes._expandKey=function(e,t){return Xa||Mf(),Uf(e,t)};bt.aes._updateBlock=Qa;$n("AES-ECB",bt.cipher.modes.ecb);$n("AES-CBC",bt.cipher.modes.cbc);$n("AES-CFB",bt.cipher.modes.cfb);$n("AES-OFB",bt.cipher.modes.ofb);$n("AES-CTR",bt.cipher.modes.ctr);$n("AES-GCM",bt.cipher.modes.gcm);function $n(e,t){var r=function(){return new bt.aes.Algorithm(e,t)};bt.cipher.registerAlgorithm(e,r)}var Xa=!1,qn=4,fe,Wa,Of,nn,Oe;function Mf(){Xa=!0,Of=[0,1,2,4,8,16,32,64,128,27,54];for(var e=new Array(256),t=0;t<128;++t)e[t]=t<<1,e[t+128]=t+128<<1^283;fe=new Array(256),Wa=new Array(256),nn=new Array(4),Oe=new Array(4);for(var t=0;t<4;++t)nn[t]=new Array(256),Oe[t]=new Array(256);for(var r=0,n=0,i,s,o,a,c,u,l,t=0;t<256;++t){a=n^n<<1^n<<2^n<<3^n<<4,a=a>>8^a&255^99,fe[r]=a,Wa[a]=r,c=e[a],i=e[r],s=e[i],o=e[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)nn[f][r]=u,Oe[f][a]=l,u=u<<24|u>>>8,l=l<<24|l>>>8;r===0?r=n=1:(r=i^e[e[e[i^o]]],n^=e[e[n]])}}function Uf(e,t){for(var r=e.slice(0),n,i=1,s=r.length,o=s+6+1,a=qn*o,c=s;c<a;++c)n=r[c-1],c%s===0?(n=fe[n>>>16&255]<<24^fe[n>>>8&255]<<16^fe[n&255]<<8^fe[n>>>24]^Of[i]<<24,i++):s>6&&c%s===4&&(n=fe[n>>>24]<<24^fe[n>>>16&255]<<16^fe[n>>>8&255]<<8^fe[n&255]),r[c]=r[c-s]^n;if(t){var u,l=Oe[0],f=Oe[1],h=Oe[2],p=Oe[3],d=r.slice(0);a=r.length;for(var c=0,m=a-qn;c<a;c+=qn,m-=qn)if(c===0||c===a-qn)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 y=0;y<qn;++y)u=r[m+y],d[c+(3&-y)]=l[fe[u>>>24]]^f[fe[u>>>16&255]]^h[fe[u>>>8&255]]^p[fe[u&255]];r=d}return r}function Qa(e,t,r,n){var i=e.length/4-1,s,o,a,c,u;n?(s=Oe[0],o=Oe[1],a=Oe[2],c=Oe[3],u=Wa):(s=nn[0],o=nn[1],a=nn[2],c=nn[3],u=fe);var l,f,h,p,d,m,y;l=t[0]^e[0],f=t[n?3:1]^e[1],h=t[2]^e[2],p=t[n?1:3]^e[3];for(var g=3,x=1;x<i;++x)d=s[l>>>24]^o[f>>>16&255]^a[h>>>8&255]^c[p&255]^e[++g],m=s[f>>>24]^o[h>>>16&255]^a[p>>>8&255]^c[l&255]^e[++g],y=s[h>>>24]^o[p>>>16&255]^a[l>>>8&255]^c[f&255]^e[++g],p=s[p>>>24]^o[l>>>16&255]^a[f>>>8&255]^c[h&255]^e[++g],l=d,f=m,h=y;r[0]=u[l>>>24]<<24^u[f>>>16&255]<<16^u[h>>>8&255]<<8^u[p&255]^e[++g],r[n?3:1]=u[f>>>24]<<24^u[h>>>16&255]<<16^u[p>>>8&255]<<8^u[l&255]^e[++g],r[2]=u[h>>>24]<<24^u[p>>>16&255]<<16^u[l>>>8&255]<<8^u[f&255]^e[++g],r[n?1:3]=u[p>>>24]<<24^u[l>>>16&255]<<16^u[f>>>8&255]<<8^u[h&255]^e[++g]}function Fs(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="AES-"+t,n;e.decrypt?n=bt.cipher.createDecipher(r,e.key):n=bt.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof bt.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var qf=V((D_,Vf)=>{var St=dt();za();Ya();Nt();Vf.exports=St.des=St.des||{};St.des.startEncrypting=function(e,t,r,n){var i=Vs({key:e,output:r,decrypt:!1,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};St.des.createEncryptionCipher=function(e,t){return Vs({key:e,output:null,decrypt:!1,mode:t})};St.des.startDecrypting=function(e,t,r,n){var i=Vs({key:e,output:r,decrypt:!0,mode:n||(t===null?"ECB":"CBC")});return i.start(t),i};St.des.createDecryptionCipher=function(e,t){return Vs({key:e,output:null,decrypt:!0,mode:t})};St.des.Algorithm=function(e,t){var r=this;r.name=e,r.mode=new t({blockSize:8,cipher:{encrypt:function(n,i){return Kf(r._keys,n,i,!1)},decrypt:function(n,i){return Kf(r._keys,n,i,!0)}}}),r._init=!1};St.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=St.util.createBuffer(e.key);if(this.name.indexOf("3DES")===0&&t.length()!==24)throw new Error("Invalid Triple-DES key size: "+t.length()*8);this._keys=ig(t),this._init=!0}};Ge("DES-ECB",St.cipher.modes.ecb);Ge("DES-CBC",St.cipher.modes.cbc);Ge("DES-CFB",St.cipher.modes.cfb);Ge("DES-OFB",St.cipher.modes.ofb);Ge("DES-CTR",St.cipher.modes.ctr);Ge("3DES-ECB",St.cipher.modes.ecb);Ge("3DES-CBC",St.cipher.modes.cbc);Ge("3DES-CFB",St.cipher.modes.cfb);Ge("3DES-OFB",St.cipher.modes.ofb);Ge("3DES-CTR",St.cipher.modes.ctr);function Ge(e,t){var r=function(){return new St.des.Algorithm(e,t)};St.cipher.registerAlgorithm(e,r)}var Xy=[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],Zy=[-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],Jy=[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],jy=[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],tg=[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],eg=[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],rg=[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],ng=[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 ig(e){for(var t=[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=e.length()>8?3:1,y=[],g=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],x=0,b,C=0;C<m;C++){var _=e.getInt32(),S=e.getInt32();b=(_>>>4^S)&252645135,S^=b,_^=b<<4,b=(S>>>-16^_)&65535,_^=b,S^=b<<-16,b=(_>>>2^S)&858993459,S^=b,_^=b<<2,b=(S>>>-16^_)&65535,_^=b,S^=b<<-16,b=(_>>>1^S)&1431655765,S^=b,_^=b<<1,b=(S>>>8^_)&16711935,_^=b,S^=b<<8,b=(_>>>1^S)&1431655765,S^=b,_^=b<<1,b=_<<8|S>>>20&240,_=S<<24|S<<8&16711680|S>>>8&65280|S>>>24&240,S=b;for(var P=0;P<g.length;++P){g[P]?(_=_<<2|_>>>26,S=S<<2|S>>>26):(_=_<<1|_>>>27,S=S<<1|S>>>27),_&=-15,S&=-15;var D=t[_>>>28]|r[_>>>24&15]|n[_>>>20&15]|i[_>>>16&15]|s[_>>>12&15]|o[_>>>8&15]|a[_>>>4&15],Y=c[S>>>28]|u[S>>>24&15]|l[S>>>20&15]|f[S>>>16&15]|h[S>>>12&15]|p[S>>>8&15]|d[S>>>4&15];b=(Y>>>16^D)&65535,y[x++]=D^b,y[x++]=Y^b<<16}}return y}function Kf(e,t,r,n){var i=e.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=t[0],c=t[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^e[h],d=(c>>>4|c<<28)^e[h+1];o=a,a=c,c=o^(Zy[p>>>24&63]|jy[p>>>16&63]|eg[p>>>8&63]|ng[p&63]|Xy[d>>>24&63]|Jy[d>>>16&63]|tg[d>>>8&63]|rg[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 Vs(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),r="DES-"+t,n;e.decrypt?n=St.cipher.createDecipher(r,e.key):n=St.cipher.createCipher(r,e.key);var i=n.start;return n.start=function(s,o){var a=null;o instanceof St.util.ByteBuffer&&(a=o,o={}),o=o||{},o.output=a,o.iv=s,i.call(n,o)},n}});var sn=V((N_,$f)=>{var qs=dt();$f.exports=qs.md=qs.md||{};qs.md.algorithms=qs.md.algorithms||{}});var zf=V((k_,Hf)=>{var cr=dt();sn();Nt();var sg=Hf.exports=cr.hmac=cr.hmac||{};sg.create=function(){var e=null,t=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 cr.md.algorithms)t=cr.md.algorithms[s].create();else throw new Error('Unknown hash algorithm "'+s+'"');else t=s;if(o===null)o=e;else{if(typeof o=="string")o=cr.util.createBuffer(o);else if(cr.util.isArray(o)){var a=o;o=cr.util.createBuffer();for(var c=0;c<a.length;++c)o.putByte(a[c])}var u=o.length();u>t.blockLength&&(t.start(),t.update(o.bytes()),o=t.digest()),r=cr.util.createBuffer(),n=cr.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<t.blockLength)for(var a=t.blockLength-u,c=0;c<a;++c)r.putByte(54),n.putByte(92);e=o,r=r.bytes(),n=n.bytes()}t.start(),t.update(r)},i.update=function(s){t.update(s)},i.getMac=function(){var s=t.digest().bytes();return t.start(),t.update(n),t.update(s),t.digest()},i.digest=i.getMac,i}});var Ui=V(()=>{});var Za=V((U_,Gf)=>{var he=dt();zf();sn();Nt();var og=he.pkcs5=he.pkcs5||{},ur;he.util.isNodejs&&!he.options.usePureJavaScript&&(ur=Ui());Gf.exports=he.pbkdf2=og.pbkdf2=function(e,t,r,n,i,s){if(typeof i=="function"&&(s=i,i=null),he.util.isNodejs&&!he.options.usePureJavaScript&&ur.pbkdf2&&(i===null||typeof i!="object")&&(ur.pbkdf2Sync.length>4||!i||i==="sha1"))return typeof i!="string"&&(i="sha1"),e=Buffer.from(e,"binary"),t=Buffer.from(t,"binary"),s?ur.pbkdf2Sync.length===4?ur.pbkdf2(e,t,r,n,function(b,C){if(b)return s(b);s(null,C.toString("binary"))}):ur.pbkdf2(e,t,r,n,i,function(b,C){if(b)return s(b);s(null,C.toString("binary"))}):ur.pbkdf2Sync.length===4?ur.pbkdf2Sync(e,t,r,n).toString("binary"):ur.pbkdf2Sync(e,t,r,n,i).toString("binary");if((typeof i>"u"||i===null)&&(i="sha1"),typeof i=="string"){if(!(i in he.md.algorithms))throw new Error("Unknown hash algorithm: "+i);i=he.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=he.hmac.create();l.start(i,e);var f="",h,p,d;if(!s){for(var m=1;m<=c;++m){l.start(null,null),l.update(t),l.update(he.util.int32ToBytes(m)),h=d=l.digest().getBytes();for(var y=2;y<=r;++y)l.start(null,null),l.update(d),p=l.digest().getBytes(),h=he.util.xorBytes(h,p,o),d=p;f+=m<c?h:h.substr(0,u)}return f}var m=1,y;function g(){if(m>c)return s(null,f);l.start(null,null),l.update(t),l.update(he.util.int32ToBytes(m)),h=d=l.digest().getBytes(),y=2,x()}function x(){if(y<=r)return l.start(null,null),l.update(d),p=l.digest().getBytes(),h=he.util.xorBytes(h,p,o),d=p,++y,he.util.setImmediate(x);f+=m<c?h:h.substr(0,u),++m,g()}g()}});var Qf=V((F_,Wf)=>{var Hs=dt();Nt();var Yf=Wf.exports=Hs.pem=Hs.pem||{};Yf.encode=function(e,t){t=t||{};var r="-----BEGIN "+e.type+`-----\r
9
+ `,n;if(e.procType&&(n={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]},r+=$s(n)),e.contentDomain&&(n={name:"Content-Domain",values:[e.contentDomain]},r+=$s(n)),e.dekInfo&&(n={name:"DEK-Info",values:[e.dekInfo.algorithm]},e.dekInfo.parameters&&n.values.push(e.dekInfo.parameters),r+=$s(n)),e.headers)for(var i=0;i<e.headers.length;++i)r+=$s(e.headers[i]);return e.procType&&(r+=`\r
10
+ `),r+=Hs.util.encode64(e.body,t.maxline||64)+`\r
11
11
  `,r+="-----END "+e.type+`-----\r
12
- `,r};Gf.decode=function(e){for(var t=[],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(e),!!s;){var o=s[1];o==="NEW CERTIFICATE REQUEST"&&(o="CERTIFICATE REQUEST");var a={type:o,procType:null,contentDomain:null,dekInfo:null,headers:[],body:$s.util.decode64(s[3])};if(t.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 h=c[f];if(!/\s/.test(h[0]))break;l+=h,u=f}if(s=l.match(n),s){for(var p={name:s[1],values:[]},d=s[2].split(","),m=0;m<d.length;++m)p.values.push(ag(d[m]));if(a.procType)if(!a.contentDomain&&p.name==="Content-Domain")a.contentDomain=d[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:d[0],parameters:d[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:d[0],type:d[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(t.length===0)throw new Error("Invalid PEM formatted message.");return t};function qs(e){for(var t=e.name+": ",r=[],n=function(c,u){return" "+u},i=0;i<e.values.length;++i)r.push(e.values[i].replace(/^(\S+\r\n)/,n));t+=r.join(",")+`\r
12
+ `,r};Yf.decode=function(e){for(var t=[],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(e),!!s;){var o=s[1];o==="NEW CERTIFICATE REQUEST"&&(o="CERTIFICATE REQUEST");var a={type:o,procType:null,contentDomain:null,dekInfo:null,headers:[],body:Hs.util.decode64(s[3])};if(t.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 h=c[f];if(!/\s/.test(h[0]))break;l+=h,u=f}if(s=l.match(n),s){for(var p={name:s[1],values:[]},d=s[2].split(","),m=0;m<d.length;++m)p.values.push(ag(d[m]));if(a.procType)if(!a.contentDomain&&p.name==="Content-Domain")a.contentDomain=d[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:d[0],parameters:d[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:d[0],type:d[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(t.length===0)throw new Error("Invalid PEM formatted message.");return t};function $s(e){for(var t=e.name+": ",r=[],n=function(c,u){return" "+u},i=0;i<e.values.length;++i)r.push(e.values[i].replace(/^(\S+\r\n)/,n));t+=r.join(",")+`\r
13
13
  `;for(var s=0,o=-1,i=0;i<t.length;++i,++s)if(s>65&&o!==-1){var a=t[o];a===","?(++o,t=t.substr(0,o)+`\r
14
14
  `+t.substr(o)):t=t.substr(0,o)+`\r
15
- `+a+t.substr(o+1),s=i-o-1,o=-1,++i}else(t[i]===" "||t[i]===" "||t[i]===",")&&(o=i);return t}function ag(e){return e.replace(/^\s+/,"")}});var t0=V((K_,jf)=>{var Ye=dt();nn();Nt();var Xf=jf.exports=Ye.sha256=Ye.sha256||{};Ye.md.sha256=Ye.md.algorithms.sha256=Xf;Xf.create=function(){Zf||cg();var e=null,t=Ye.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 t=Ye.util.createBuffer(),e={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=Ye.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 t.putBytes(i),Qf(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Ye.util.createBuffer();i.putBytes(t.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(Xa.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:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4,h5:e.h5,h6:e.h6,h7:e.h7};Qf(f,r,i);var h=Ye.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 Xa=null,Zf=!1,Jf=null;function cg(){Xa=String.fromCharCode(128),Xa+=Ye.util.fillString(String.fromCharCode(0),64),Jf=[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],Zf=!0}function Qf(e,t,r){for(var n,i,s,o,a,c,u,l,f,h,p,d,m,y,g,x=r.length();x>=64;){for(u=0;u<16;++u)t[u]=r.getInt32();for(;u<64;++u)n=t[u-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=t[u-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,t[u]=n+t[u-7]+i+t[u-16]|0;for(l=e.h0,f=e.h1,h=e.h2,p=e.h3,d=e.h4,m=e.h5,y=e.h6,g=e.h7,u=0;u<64;++u)o=(d>>>6|d<<26)^(d>>>11|d<<21)^(d>>>25|d<<7),a=y^d&(m^y),s=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),c=l&f|h&(l^f),n=g+o+a+Jf[u]+t[u],i=s+c,g=y,y=m,m=d,d=p+n>>>0,p=h,h=f,f=l,l=n+i>>>0;e.h0=e.h0+l|0,e.h1=e.h1+f|0,e.h2=e.h2+h|0,e.h3=e.h3+p|0,e.h4=e.h4+d|0,e.h5=e.h5+m|0,e.h6=e.h6+y|0,e.h7=e.h7+g|0,x-=64}}});var r0=V((V_,e0)=>{var We=dt();Nt();var Hs=null;We.util.isNodejs&&!We.options.usePureJavaScript&&!process.versions["node-webkit"]&&(Hs=Ui());var ug=e0.exports=We.prng=We.prng||{};ug.create=function(e){for(var t={plugin:e,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=e.md,n=new Array(32),i=0;i<32;++i)n[i]=r.create();t.pools=n,t.pool=0,t.generate=function(u,l){if(!l)return t.generateSync(u);var f=t.plugin.cipher,h=t.plugin.increment,p=t.plugin.formatKey,d=t.plugin.formatSeed,m=We.util.createBuffer();t.key=null,y();function y(g){if(g)return l(g);if(m.length()>=u)return l(null,m.getBytes(u));if(t.generated>1048575&&(t.key=null),t.key===null)return We.util.nextTick(function(){s(y)});var x=f(t.key,t.seed);t.generated+=x.length,m.putBytes(x),t.key=p(f(t.key,h(t.seed))),t.seed=d(f(t.key,t.seed)),We.util.setImmediate(y)}},t.generateSync=function(u){var l=t.plugin.cipher,f=t.plugin.increment,h=t.plugin.formatKey,p=t.plugin.formatSeed;t.key=null;for(var d=We.util.createBuffer();d.length()<u;){t.generated>1048575&&(t.key=null),t.key===null&&o();var m=l(t.key,t.seed);t.generated+=m.length,d.putBytes(m),t.key=h(l(t.key,f(t.seed))),t.seed=p(l(t.key,t.seed))}return d.getBytes(u)};function s(u){if(t.pools[0].messageLength>=32)return a(),u();var l=32-t.pools[0].messageLength<<5;t.seedFile(l,function(f,h){if(f)return u(f);t.collect(h),a(),u()})}function o(){if(t.pools[0].messageLength>=32)return a();var u=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(u)),a()}function a(){t.reseeds=t.reseeds===4294967295?0:t.reseeds+1;var u=t.plugin.md.create();u.update(t.keyBytes);for(var l=1,f=0;f<32;++f)t.reseeds%l===0&&(u.update(t.pools[f].digest().getBytes()),t.pools[f].start()),l=l<<1;t.keyBytes=u.digest().getBytes(),u.start(),u.update(t.keyBytes);var h=u.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(h),t.generated=0}function c(u){var l=null,f=We.util.globalScope,h=f.crypto||f.msCrypto;h&&h.getRandomValues&&(l=function(_){return h.getRandomValues(_)});var p=We.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 y=0;y<m.length;++y)p.putInt32(m[y])}catch(_){if(!(typeof QuotaExceededError<"u"&&_ instanceof QuotaExceededError))throw _}}if(p.length()<u)for(var g,x,b,C=Math.floor(Math.random()*65536);p.length()<u;){x=16807*(C&65535),g=16807*(C>>16),x+=(g&32767)<<16,x+=g>>15,x=(x&2147483647)+(x>>31),C=x&4294967295;for(var y=0;y<3;++y)b=C>>>(y<<3),b^=Math.floor(Math.random()*256),p.putByte(b&255)}return p.getBytes(u)}return Hs?(t.seedFile=function(u,l){Hs.randomBytes(u,function(f,h){if(f)return l(f);l(null,h.toString())})},t.seedFileSync=function(u){return Hs.randomBytes(u).toString()}):(t.seedFile=function(u,l){try{l(null,c(u))}catch(f){l(f)}},t.seedFileSync=c),t.collect=function(u){for(var l=u.length,f=0;f<l;++f)t.pools[t.pool].update(u.substr(f,1)),t.pool=t.pool===31?0:t.pool+1},t.collectInt=function(u,l){for(var f="",h=0;h<l;h+=8)f+=String.fromCharCode(u>>h&255);t.collect(f)},t.registerWorker=function(u){if(u===self)t.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&&t.seedFile(h.forge.prng.needed,function(p,d){u.postMessage({forge:{prng:{err:p,bytes:d}}})})};u.addEventListener("message",l)}},t}});var Fi=V((q_,Za)=>{var Wt=dt();Fs();t0();r0();Nt();(function(){if(Wt.random&&Wt.random.getBytes){Za.exports=Wt.random;return}(function(e){var t={},r=new Array(4),n=Wt.util.createBuffer();t.formatKey=function(f){var h=Wt.util.createBuffer(f);return f=new Array(4),f[0]=h.getInt32(),f[1]=h.getInt32(),f[2]=h.getInt32(),f[3]=h.getInt32(),Wt.aes._expandKey(f,!1)},t.formatSeed=function(f){var h=Wt.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},t.cipher=function(f,h){return Wt.aes._updateBlock(f,h,r,!1),n.putInt32(r[0]),n.putInt32(r[1]),n.putInt32(r[2]),n.putInt32(r[3]),n.getBytes()},t.increment=function(f){return++f[3],f},t.md=Wt.md.sha256;function i(){var f=Wt.prng.create(t);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=Wt.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(o=function(f){return c.getRandomValues(f)}),Wt.options.usePureJavaScript||!Wt.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}e&&(e().mousemove(function(f){s.collectInt(f.clientX,16),s.collectInt(f.clientY,16)}),e().keypress(function(f){s.collectInt(f.charCode,8)}))}if(!Wt.random)Wt.random=s;else for(var l in s)Wt.random[l]=s[l];Wt.random.createInstance=i,Za.exports=Wt.random})(typeof jQuery<"u"?jQuery:null)})()});var o0=V(($_,s0)=>{var pe=dt();Nt();var Ja=[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],n0=[1,2,3,5],lg=function(e,t){return e<<t&65535|(e&65535)>>16-t},fg=function(e,t){return(e&65535)>>t|e<<16-t&65535};s0.exports=pe.rc2=pe.rc2||{};pe.rc2.expandKey=function(e,t){typeof e=="string"&&(e=pe.util.createBuffer(e)),t=t||128;var r=e,n=e.length(),i=t,s=Math.ceil(i/8),o=255>>(i&7),a;for(a=n;a<128;a++)r.putByte(Ja[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-s,Ja[r.at(128-s)&o]),a=127-s;a>=0;a--)r.setAt(a,Ja[r.at(a+1)^r.at(a+s)]);return r};var i0=function(e,t,r){var n=!1,i=null,s=null,o=null,a,c,u,l,f=[];for(e=pe.rc2.expandKey(e,t),u=0;u<64;u++)f.push(e.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]=lg(d[u],n0[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]=fg(d[u],n0[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 y=i.getInt16Le();o!==null&&(r?y^=o.getInt16Le():o.putInt16Le(y)),m.push(y&65535)}l=r?0:63;for(var g=0;g<d.length;g++)for(var x=0;x<d[g][0];x++)d[g][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=pe.util.createBuffer(d)),n=!1,i=pe.util.createBuffer(),s=m||new pe.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 y=i.length()===8?8:8-i.length();i.fillWithByte(y,y)}if(m&&(n=!0,p.update()),!r&&(m=i.length()===0,m))if(d)m=d(8,s,!r);else{var g=s.length(),x=s.at(g-1);x>g?m=!1:s.truncate(x)}return m}},p};pe.rc2.startEncrypting=function(e,t,r){var n=pe.rc2.createEncryptionCipher(e,128);return n.start(t,r),n};pe.rc2.createEncryptionCipher=function(e,t){return i0(e,t,!0)};pe.rc2.startDecrypting=function(e,t,r){var n=pe.rc2.createDecryptionCipher(e,128);return n.start(t,r),n};pe.rc2.createDecryptionCipher=function(e,t){return i0(e,t,!1)}});var Ys=V((H_,p0)=>{var ja=dt();p0.exports=ja.jsbn=ja.jsbn||{};var lr,hg=0xdeadbeefcafe,a0=(hg&16777215)==15715070;function R(e,t,r){this.data=[],e!=null&&(typeof e=="number"?this.fromNumber(e,t,r):t==null&&typeof e!="string"?this.fromString(e,256):this.fromString(e,t))}ja.jsbn.BigInteger=R;function at(){return new R(null)}function dg(e,t,r,n,i,s){for(;--s>=0;){var o=t*this.data[e++]+r.data[n]+i;i=Math.floor(o/67108864),r.data[n++]=o&67108863}return i}function pg(e,t,r,n,i,s){for(var o=t&32767,a=t>>15;--s>=0;){var c=this.data[e]&32767,u=this.data[e++]>>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 c0(e,t,r,n,i,s){for(var o=t&16383,a=t>>14;--s>=0;){var c=this.data[e]&16383,u=this.data[e++]>>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"?(R.prototype.am=c0,lr=28):a0&&navigator.appName=="Microsoft Internet Explorer"?(R.prototype.am=pg,lr=30):a0&&navigator.appName!="Netscape"?(R.prototype.am=dg,lr=26):(R.prototype.am=c0,lr=28);R.prototype.DB=lr;R.prototype.DM=(1<<lr)-1;R.prototype.DV=1<<lr;var tc=52;R.prototype.FV=Math.pow(2,tc);R.prototype.F1=tc-lr;R.prototype.F2=2*lr-tc;var mg="0123456789abcdefghijklmnopqrstuvwxyz",zs=new Array,Hn,Be;Hn="0".charCodeAt(0);for(Be=0;Be<=9;++Be)zs[Hn++]=Be;Hn="a".charCodeAt(0);for(Be=10;Be<36;++Be)zs[Hn++]=Be;Hn="A".charCodeAt(0);for(Be=10;Be<36;++Be)zs[Hn++]=Be;function u0(e){return mg.charAt(e)}function l0(e,t){var r=zs[e.charCodeAt(t)];return r??-1}function yg(e){for(var t=this.t-1;t>=0;--t)e.data[t]=this.data[t];e.t=this.t,e.s=this.s}function gg(e){this.t=1,this.s=e<0?-1:0,e>0?this.data[0]=e:e<-1?this.data[0]=e+this.DV:this.t=0}function Br(e){var t=at();return t.fromInt(e),t}function xg(e,t){var r;if(t==16)r=4;else if(t==8)r=3;else if(t==256)r=8;else if(t==2)r=1;else if(t==32)r=5;else if(t==4)r=2;else{this.fromRadix(e,t);return}this.t=0,this.s=0;for(var n=e.length,i=!1,s=0;--n>=0;){var o=r==8?e[n]&255:l0(e,n);if(o<0){e.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&&e[0]&128&&(this.s=-1,s>0&&(this.data[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),i&&R.ZERO.subTo(this,this)}function Eg(){for(var e=this.s&this.DM;this.t>0&&this.data[this.t-1]==e;)--this.t}function bg(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(e==16)t=4;else if(e==8)t=3;else if(e==2)t=1;else if(e==32)t=5;else if(e==4)t=2;else return this.toRadix(e);var r=(1<<t)-1,n,i=!1,s="",o=this.t,a=this.DB-o*this.DB%t;if(o-- >0)for(a<this.DB&&(n=this.data[o]>>a)>0&&(i=!0,s=u0(n));o>=0;)a<t?(n=(this.data[o]&(1<<a)-1)<<t-a,n|=this.data[--o]>>(a+=this.DB-t)):(n=this.data[o]>>(a-=t)&r,a<=0&&(a+=this.DB,--o)),n>0&&(i=!0),i&&(s+=u0(n));return i?s:"0"}function wg(){var e=at();return R.ZERO.subTo(this,e),e}function vg(){return this.s<0?this.negate():this}function _g(e){var t=this.s-e.s;if(t!=0)return t;var r=this.t;if(t=r-e.t,t!=0)return this.s<0?-t:t;for(;--r>=0;)if((t=this.data[r]-e.data[r])!=0)return t;return 0}function Gs(e){var t=1,r;return(r=e>>>16)!=0&&(e=r,t+=16),(r=e>>8)!=0&&(e=r,t+=8),(r=e>>4)!=0&&(e=r,t+=4),(r=e>>2)!=0&&(e=r,t+=2),(r=e>>1)!=0&&(e=r,t+=1),t}function Sg(){return this.t<=0?0:this.DB*(this.t-1)+Gs(this.data[this.t-1]^this.s&this.DM)}function Ag(e,t){var r;for(r=this.t-1;r>=0;--r)t.data[r+e]=this.data[r];for(r=e-1;r>=0;--r)t.data[r]=0;t.t=this.t+e,t.s=this.s}function Ig(e,t){for(var r=e;r<this.t;++r)t.data[r-e]=this.data[r];t.t=Math.max(this.t-e,0),t.s=this.s}function Rg(e,t){var r=e%this.DB,n=this.DB-r,i=(1<<n)-1,s=Math.floor(e/this.DB),o=this.s<<r&this.DM,a;for(a=this.t-1;a>=0;--a)t.data[a+s+1]=this.data[a]>>n|o,o=(this.data[a]&i)<<r;for(a=s-1;a>=0;--a)t.data[a]=0;t.data[s]=o,t.t=this.t+s+1,t.s=this.s,t.clamp()}function Cg(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t){t.t=0;return}var n=e%this.DB,i=this.DB-n,s=(1<<n)-1;t.data[0]=this.data[r]>>n;for(var o=r+1;o<this.t;++o)t.data[o-r-1]|=(this.data[o]&s)<<i,t.data[o-r]=this.data[o]>>n;n>0&&(t.data[this.t-r-1]|=(this.s&s)<<i),t.t=this.t-r,t.clamp()}function Tg(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this.data[r]-e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n-=e.s;r<this.t;)n+=this.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n-=e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t.data[r++]=this.DV+n:n>0&&(t.data[r++]=n),t.t=r,t.clamp()}function Bg(e,t){var r=this.abs(),n=e.abs(),i=r.t;for(t.t=i+n.t;--i>=0;)t.data[i]=0;for(i=0;i<n.t;++i)t.data[i+r.t]=r.am(0,n.data[i],t,i,0,r.t);t.s=0,t.clamp(),this.s!=e.s&&R.ZERO.subTo(t,t)}function Lg(e){for(var t=this.abs(),r=e.t=2*t.t;--r>=0;)e.data[r]=0;for(r=0;r<t.t-1;++r){var n=t.am(r,t.data[r],e,2*r,0,1);(e.data[r+t.t]+=t.am(r+1,2*t.data[r],e,2*r+1,n,t.t-r-1))>=t.DV&&(e.data[r+t.t]-=t.DV,e.data[r+t.t+1]=1)}e.t>0&&(e.data[e.t-1]+=t.am(r,t.data[r],e,2*r,0,1)),e.s=0,e.clamp()}function Pg(e,t,r){var n=e.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){t?.fromInt(0),r!=null&&this.copyTo(r);return}r==null&&(r=at());var s=at(),o=this.s,a=e.s,c=this.DB-Gs(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,y=m-u,g=t??at();for(s.dlShiftTo(y,g),r.compareTo(g)>=0&&(r.data[r.t++]=1,r.subTo(g,r)),R.ONE.dlShiftTo(u,g),g.subTo(s,s);s.t<u;)s.data[s.t++]=0;for(;--y>=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,y,0,u))<x)for(s.dlShiftTo(y,g),r.subTo(g,r);r.data[m]<--x;)r.subTo(g,r)}t!=null&&(r.drShiftTo(u,t),o!=a&&R.ZERO.subTo(t,t)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),o<0&&R.ZERO.subTo(r,r)}}}function Dg(e){var t=at();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(R.ZERO)>0&&e.subTo(t,t),t}function sn(e){this.m=e}function Ng(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function kg(e){return e}function Og(e){e.divRemTo(this.m,null,e)}function Mg(e,t,r){e.multiplyTo(t,r),this.reduce(r)}function Ug(e,t){e.squareTo(t),this.reduce(t)}sn.prototype.convert=Ng;sn.prototype.revert=kg;sn.prototype.reduce=Og;sn.prototype.mulTo=Mg;sn.prototype.sqrTo=Ug;function Fg(){if(this.t<1)return 0;var e=this.data[0];if(!(e&1))return 0;var t=e&3;return t=t*(2-(e&15)*t)&15,t=t*(2-(e&255)*t)&255,t=t*(2-((e&65535)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t}function on(e){this.m=e,this.mp=e.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function Kg(e){var t=at();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(R.ZERO)>0&&this.m.subTo(t,t),t}function Vg(e){var t=at();return e.copyTo(t),this.reduce(t),t}function qg(e){for(;e.t<=this.mt2;)e.data[e.t++]=0;for(var t=0;t<this.m.t;++t){var r=e.data[t]&32767,n=r*this.mpl+((r*this.mph+(e.data[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(r=t+this.m.t,e.data[r]+=this.m.am(0,n,e,t,0,this.m.t);e.data[r]>=e.DV;)e.data[r]-=e.DV,e.data[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)}function $g(e,t){e.squareTo(t),this.reduce(t)}function Hg(e,t,r){e.multiplyTo(t,r),this.reduce(r)}on.prototype.convert=Kg;on.prototype.revert=Vg;on.prototype.reduce=qg;on.prototype.mulTo=Hg;on.prototype.sqrTo=$g;function zg(){return(this.t>0?this.data[0]&1:this.s)==0}function Gg(e,t){if(e>4294967295||e<1)return R.ONE;var r=at(),n=at(),i=t.convert(this),s=Gs(e)-1;for(i.copyTo(r);--s>=0;)if(t.sqrTo(r,n),(e&1<<s)>0)t.mulTo(n,i,r);else{var o=r;r=n,n=o}return t.revert(r)}function Yg(e,t){var r;return e<256||t.isEven()?r=new sn(t):r=new on(t),this.exp(e,r)}R.prototype.copyTo=yg;R.prototype.fromInt=gg;R.prototype.fromString=xg;R.prototype.clamp=Eg;R.prototype.dlShiftTo=Ag;R.prototype.drShiftTo=Ig;R.prototype.lShiftTo=Rg;R.prototype.rShiftTo=Cg;R.prototype.subTo=Tg;R.prototype.multiplyTo=Bg;R.prototype.squareTo=Lg;R.prototype.divRemTo=Pg;R.prototype.invDigit=Fg;R.prototype.isEven=zg;R.prototype.exp=Gg;R.prototype.toString=bg;R.prototype.negate=wg;R.prototype.abs=vg;R.prototype.compareTo=_g;R.prototype.bitLength=Sg;R.prototype.mod=Dg;R.prototype.modPowInt=Yg;R.ZERO=Br(0);R.ONE=Br(1);function Wg(){var e=at();return this.copyTo(e),e}function Qg(){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 Xg(){return this.t==0?this.s:this.data[0]<<24>>24}function Zg(){return this.t==0?this.s:this.data[0]<<16>>16}function Jg(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function jg(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function tx(e){if(e==null&&(e=10),this.signum()==0||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),n=Br(r),i=at(),s=at(),o="";for(this.divRemTo(n,i,s);i.signum()>0;)o=(r+s.intValue()).toString(e).substr(1)+o,i.divRemTo(n,i,s);return s.intValue().toString(e)+o}function ex(e,t){this.fromInt(0),t==null&&(t=10);for(var r=this.chunkSize(t),n=Math.pow(t,r),i=!1,s=0,o=0,a=0;a<e.length;++a){var c=l0(e,a);if(c<0){e.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}o=t*o+c,++s>=r&&(this.dMultiply(n),this.dAddOffset(o,0),s=0,o=0)}s>0&&(this.dMultiply(Math.pow(t,s)),this.dAddOffset(o,0)),i&&R.ZERO.subTo(this,this)}function rx(e,t,r){if(typeof t=="number")if(e<2)this.fromInt(1);else for(this.fromNumber(e,r),this.testBit(e-1)||this.bitwiseTo(R.ONE.shiftLeft(e-1),ec,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(R.ONE.shiftLeft(e-1),this);else{var n=new Array,i=e&7;n.length=(e>>3)+1,t.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function nx(){var e=this.t,t=new Array;t[0]=this.s;var r=this.DB-e*this.DB%8,n,i=0;if(e-- >0)for(r<this.DB&&(n=this.data[e]>>r)!=(this.s&this.DM)>>r&&(t[i++]=n|this.s<<this.DB-r);e>=0;)r<8?(n=(this.data[e]&(1<<r)-1)<<8-r,n|=this.data[--e]>>(r+=this.DB-8)):(n=this.data[e]>>(r-=8)&255,r<=0&&(r+=this.DB,--e)),n&128&&(n|=-256),i==0&&(this.s&128)!=(n&128)&&++i,(i>0||n!=this.s)&&(t[i++]=n);return t}function ix(e){return this.compareTo(e)==0}function sx(e){return this.compareTo(e)<0?this:e}function ox(e){return this.compareTo(e)>0?this:e}function ax(e,t,r){var n,i,s=Math.min(e.t,this.t);for(n=0;n<s;++n)r.data[n]=t(this.data[n],e.data[n]);if(e.t<this.t){for(i=e.s&this.DM,n=s;n<this.t;++n)r.data[n]=t(this.data[n],i);r.t=this.t}else{for(i=this.s&this.DM,n=s;n<e.t;++n)r.data[n]=t(i,e.data[n]);r.t=e.t}r.s=t(this.s,e.s),r.clamp()}function cx(e,t){return e&t}function ux(e){var t=at();return this.bitwiseTo(e,cx,t),t}function ec(e,t){return e|t}function lx(e){var t=at();return this.bitwiseTo(e,ec,t),t}function f0(e,t){return e^t}function fx(e){var t=at();return this.bitwiseTo(e,f0,t),t}function h0(e,t){return e&~t}function hx(e){var t=at();return this.bitwiseTo(e,h0,t),t}function dx(){for(var e=at(),t=0;t<this.t;++t)e.data[t]=this.DM&~this.data[t];return e.t=this.t,e.s=~this.s,e}function px(e){var t=at();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function mx(e){var t=at();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function yx(e){if(e==0)return-1;var t=0;return e&65535||(e>>=16,t+=16),e&255||(e>>=8,t+=8),e&15||(e>>=4,t+=4),e&3||(e>>=2,t+=2),e&1||++t,t}function gx(){for(var e=0;e<this.t;++e)if(this.data[e]!=0)return e*this.DB+yx(this.data[e]);return this.s<0?this.t*this.DB:-1}function xx(e){for(var t=0;e!=0;)e&=e-1,++t;return t}function Ex(){for(var e=0,t=this.s&this.DM,r=0;r<this.t;++r)e+=xx(this.data[r]^t);return e}function bx(e){var t=Math.floor(e/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<e%this.DB)!=0}function wx(e,t){var r=R.ONE.shiftLeft(e);return this.bitwiseTo(r,t,r),r}function vx(e){return this.changeBit(e,ec)}function _x(e){return this.changeBit(e,h0)}function Sx(e){return this.changeBit(e,f0)}function Ax(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this.data[r]+e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n+=e.s;r<this.t;)n+=this.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n+=e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=e.s}t.s=n<0?-1:0,n>0?t.data[r++]=n:n<-1&&(t.data[r++]=this.DV+n),t.t=r,t.clamp()}function Ix(e){var t=at();return this.addTo(e,t),t}function Rx(e){var t=at();return this.subTo(e,t),t}function Cx(e){var t=at();return this.multiplyTo(e,t),t}function Tx(e){var t=at();return this.divRemTo(e,t,null),t}function Bx(e){var t=at();return this.divRemTo(e,null,t),t}function Lx(e){var t=at(),r=at();return this.divRemTo(e,t,r),new Array(t,r)}function Px(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function Dx(e,t){if(e!=0){for(;this.t<=t;)this.data[this.t++]=0;for(this.data[t]+=e;this.data[t]>=this.DV;)this.data[t]-=this.DV,++t>=this.t&&(this.data[this.t++]=0),++this.data[t]}}function Ki(){}function d0(e){return e}function Nx(e,t,r){e.multiplyTo(t,r)}function kx(e,t){e.squareTo(t)}Ki.prototype.convert=d0;Ki.prototype.revert=d0;Ki.prototype.mulTo=Nx;Ki.prototype.sqrTo=kx;function Ox(e){return this.exp(e,new Ki)}function Mx(e,t,r){var n=Math.min(this.t+e.t,t);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,e.data[n],r,n,0,this.t);for(i=Math.min(e.t,t);n<i;++n)this.am(0,e.data[n],r,n,0,t-n);r.clamp()}function Ux(e,t,r){--t;var n=r.t=this.t+e.t-t;for(r.s=0;--n>=0;)r.data[n]=0;for(n=Math.max(t-this.t,0);n<e.t;++n)r.data[this.t+n-t]=this.am(t-n,e.data[n],r,0,0,this.t+n-t);r.clamp(),r.drShiftTo(1,r)}function zn(e){this.r2=at(),this.q3=at(),R.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}function Fx(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=at();return e.copyTo(t),this.reduce(t),t}function Kx(e){return e}function Vx(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)}function qx(e,t){e.squareTo(t),this.reduce(t)}function $x(e,t,r){e.multiplyTo(t,r),this.reduce(r)}zn.prototype.convert=Fx;zn.prototype.revert=Kx;zn.prototype.reduce=Vx;zn.prototype.mulTo=$x;zn.prototype.sqrTo=qx;function Hx(e,t){var r=e.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 sn(t):t.isEven()?s=new zn(t):s=new on(t);var o=new Array,a=3,c=n-1,u=(1<<n)-1;if(o[1]=s.convert(this),n>1){var l=at();for(s.sqrTo(o[1],l);a<=u;)o[a]=at(),s.mulTo(l,o[a-2],o[a]),a+=2}var f=e.t-1,h,p=!0,d=at(),m;for(r=Gs(e.data[f])-1;f>=0;){for(r>=c?h=e.data[f]>>r-c&u:(h=(e.data[f]&(1<<r+1)-1)<<c-r,f>0&&(h|=e.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&&!(e.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 zx(e){var t=this.s<0?this.negate():this.clone(),r=e.s<0?e.negate():e.clone();if(t.compareTo(r)<0){var n=t;t=r,r=n}var i=t.getLowestSetBit(),s=r.getLowestSetBit();if(s<0)return t;for(i<s&&(s=i),s>0&&(t.rShiftTo(s,t),r.rShiftTo(s,r));t.signum()>0;)(i=t.getLowestSetBit())>0&&t.rShiftTo(i,t),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),t.compareTo(r)>=0?(t.subTo(r,t),t.rShiftTo(1,t)):(r.subTo(t,r),r.rShiftTo(1,r));return s>0&&r.lShiftTo(s,r),r}function Gx(e){if(e<=0)return 0;var t=this.DV%e,r=this.s<0?e-1:0;if(this.t>0)if(t==0)r=this.data[0]%e;else for(var n=this.t-1;n>=0;--n)r=(t*r+this.data[n])%e;return r}function Yx(e){var t=e.isEven();if(this.isEven()&&t||e.signum()==0)return R.ZERO;for(var r=e.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),t?((!i.isEven()||!s.isEven())&&(i.addTo(this,i),s.subTo(e,s)),i.rShiftTo(1,i)):s.isEven()||s.subTo(e,s),s.rShiftTo(1,s);for(;n.isEven();)n.rShiftTo(1,n),t?((!o.isEven()||!a.isEven())&&(o.addTo(this,o),a.subTo(e,a)),o.rShiftTo(1,o)):a.isEven()||a.subTo(e,a),a.rShiftTo(1,a);r.compareTo(n)>=0?(r.subTo(n,r),t&&i.subTo(o,i),s.subTo(a,s)):(n.subTo(r,n),t&&o.subTo(i,o),a.subTo(s,a))}if(n.compareTo(R.ONE)!=0)return R.ZERO;if(a.compareTo(e)>=0)return a.subtract(e);if(a.signum()<0)a.addTo(e,a);else return a;return a.signum()<0?a.add(e):a}var Me=[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],Wx=(1<<26)/Me[Me.length-1];function Qx(e){var t,r=this.abs();if(r.t==1&&r.data[0]<=Me[Me.length-1]){for(t=0;t<Me.length;++t)if(r.data[0]==Me[t])return!0;return!1}if(r.isEven())return!1;for(t=1;t<Me.length;){for(var n=Me[t],i=t+1;i<Me.length&&n<Wx;)n*=Me[i++];for(n=r.modInt(n);t<i;)if(n%Me[t++]==0)return!1}return r.millerRabin(e)}function Xx(e){var t=this.subtract(R.ONE),r=t.getLowestSetBit();if(r<=0)return!1;for(var n=t.shiftRight(r),i=Zx(),s,o=0;o<e;++o){do s=new R(this.bitLength(),i);while(s.compareTo(R.ONE)<=0||s.compareTo(t)>=0);var a=s.modPow(n,this);if(a.compareTo(R.ONE)!=0&&a.compareTo(t)!=0){for(var c=1;c++<r&&a.compareTo(t)!=0;)if(a=a.modPowInt(2,this),a.compareTo(R.ONE)==0)return!1;if(a.compareTo(t)!=0)return!1}}return!0}function Zx(){return{nextBytes:function(e){for(var t=0;t<e.length;++t)e[t]=Math.floor(Math.random()*256)}}}R.prototype.chunkSize=Jg;R.prototype.toRadix=tx;R.prototype.fromRadix=ex;R.prototype.fromNumber=rx;R.prototype.bitwiseTo=ax;R.prototype.changeBit=wx;R.prototype.addTo=Ax;R.prototype.dMultiply=Px;R.prototype.dAddOffset=Dx;R.prototype.multiplyLowerTo=Mx;R.prototype.multiplyUpperTo=Ux;R.prototype.modInt=Gx;R.prototype.millerRabin=Xx;R.prototype.clone=Wg;R.prototype.intValue=Qg;R.prototype.byteValue=Xg;R.prototype.shortValue=Zg;R.prototype.signum=jg;R.prototype.toByteArray=nx;R.prototype.equals=ix;R.prototype.min=sx;R.prototype.max=ox;R.prototype.and=ux;R.prototype.or=lx;R.prototype.xor=fx;R.prototype.andNot=hx;R.prototype.not=dx;R.prototype.shiftLeft=px;R.prototype.shiftRight=mx;R.prototype.getLowestSetBit=gx;R.prototype.bitCount=Ex;R.prototype.testBit=bx;R.prototype.setBit=vx;R.prototype.clearBit=_x;R.prototype.flipBit=Sx;R.prototype.add=Ix;R.prototype.subtract=Rx;R.prototype.multiply=Cx;R.prototype.divide=Tx;R.prototype.remainder=Bx;R.prototype.divideAndRemainder=Lx;R.prototype.modPow=Hx;R.prototype.modInverse=Yx;R.prototype.pow=Ox;R.prototype.gcd=zx;R.prototype.isProbablePrime=Qx});var E0=V((z_,x0)=>{var Qe=dt();nn();Nt();var y0=x0.exports=Qe.sha1=Qe.sha1||{};Qe.md.sha1=Qe.md.algorithms.sha1=y0;y0.create=function(){g0||Jx();var e=null,t=Qe.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 t=Qe.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=Qe.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 t.putBytes(i),m0(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Qe.util.createBuffer();i.putBytes(t.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(rc.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:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};m0(f,r,i);var h=Qe.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 rc=null,g0=!1;function Jx(){rc=String.fromCharCode(128),rc+=Qe.util.fillString(String.fromCharCode(0),64),g0=!0}function m0(e,t,r){for(var n,i,s,o,a,c,u,l,f=r.length();f>=64;){for(i=e.h0,s=e.h1,o=e.h2,a=e.h3,c=e.h4,l=0;l<16;++l)n=r.getInt32(),t[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=t[l-3]^t[l-8]^t[l-14]^t[l-16],n=n<<1|n>>>31,t[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=t[l-3]^t[l-8]^t[l-14]^t[l-16],n=n<<1|n>>>31,t[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=t[l-6]^t[l-16]^t[l-28]^t[l-32],n=n<<2|n>>>30,t[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=t[l-6]^t[l-16]^t[l-28]^t[l-32],n=n<<2|n>>>30,t[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=t[l-6]^t[l-16]^t[l-28]^t[l-32],n=n<<2|n>>>30,t[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;e.h0=e.h0+i|0,e.h1=e.h1+s|0,e.h2=e.h2+o|0,e.h3=e.h3+a|0,e.h4=e.h4+c|0,f-=64}}});var v0=V((G_,w0)=>{var Xe=dt();Nt();Fi();E0();var b0=w0.exports=Xe.pkcs1=Xe.pkcs1||{};b0.encode_rsa_oaep=function(e,t,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=Xe.md.sha1.create(),o||(o=s);var a=Math.ceil(e.n.bitLength()/8),c=a-2*s.digestLength-2;if(t.length>c){var u=new Error("RSAES-OAEP input message length is too long.");throw u.length=t.length,u.maxLength=c,u}n||(n=""),s.update(n,"raw");for(var l=s.digest(),f="",h=c-t.length,p=0;p<h;p++)f+="\0";var d=l.getBytes()+f+""+t;if(!i)i=Xe.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=Ws(i,a-s.digestLength-1,o),y=Xe.util.xorBytes(d,m,d.length),g=Ws(y,s.digestLength,o),x=Xe.util.xorBytes(i,g,i.length);return"\0"+x+y};b0.decode_rsa_oaep=function(e,t,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(e.n.bitLength()/8);if(t.length!==o){var y=new Error("RSAES-OAEP encoded message length is invalid.");throw y.length=t.length,y.expectedLength=o,y}if(i===void 0?i=Xe.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=t.charAt(0),u=t.substring(1,i.digestLength+1),l=t.substring(1+i.digestLength),f=Ws(l,i.digestLength,s),h=Xe.util.xorBytes(u,f,u.length),p=Ws(h,o-i.digestLength-1,s),d=Xe.util.xorBytes(l,p,l.length),m=d.substring(0,i.digestLength),y=c!=="\0",g=0;g<i.digestLength;++g)y|=a.charAt(g)!==m.charAt(g);for(var x=1,b=i.digestLength,C=i.digestLength;C<d.length;C++){var _=d.charCodeAt(C),S=_&1^1,P=x?65534:0;y|=_&P,x=x&S,b+=x}if(y||d.charCodeAt(b)!==1)throw new Error("Invalid RSAES-OAEP padding.");return d.substring(b+1)};function Ws(e,t,r){r||(r=Xe.md.sha1.create());for(var n="",i=Math.ceil(t/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(e+o),n+=r.digest().getBytes()}return n.substring(0,t)}});var _0=V((Y_,nc)=>{var Lr=dt();Nt();Ys();Fi();(function(){if(Lr.prime){nc.exports=Lr.prime;return}var e=nc.exports=Lr.prime=Lr.prime||{},t=Lr.jsbn.BigInteger,r=[6,4,2,4,2,4,6,2],n=new t(null);n.fromInt(30);var i=function(f,h){return f|h};e.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||Lr.random,y={nextBytes:function(g){for(var x=m.getBytesSync(g.length),b=0;b<g.length;++b)g[b]=x.charCodeAt(b)}};if(d.name==="PRIMEINC")return s(f,y,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),y=0,g=l(m.bitLength());"millerRabinTests"in p&&(g=p.millerRabinTests);var x=10;"maxBlockTime"in p&&(x=p.maxBlockTime),a(m,f,h,y,g,x,d)}function a(f,h,p,d,m,y,g){var x=+new Date;do{if(f.bitLength()>h&&(f=u(h,p)),f.isProbablePrime(m))return g(null,f);f.dAddOffset(r[d++%8],0)}while(y<0||+new Date-x<y);Lr.util.setImmediate(function(){a(f,h,p,d,m,y,g)})}function c(f,h,p,d){if(typeof Worker>"u")return o(f,h,p,d);var m=u(f,h),y=p.workers,g=p.workLoad||100,x=g*30/8,b=p.workerScript||"forge/prime.worker.js";if(y===-1)return Lr.util.estimateCores(function(_,S){_&&(S=2),y=S-1,C()});C();function C(){y=Math.max(1,y);for(var _=[],S=0;S<y;++S)_[S]=new Worker(b);for(var P=y,S=0;S<y;++S)_[S].addEventListener("message",Y);var D=!1;function Y(W){if(!D){--P;var H=W.data;if(H.found){for(var et=0;et<_.length;++et)_[et].terminate();return D=!0,d(null,new t(H.prime,16))}m.bitLength()>f&&(m=u(f,h));var pt=m.toString(16);W.target.postMessage({hex:pt,workLoad:g}),m.dAddOffset(x,0)}}}}function u(f,h){var p=new t(f,h),d=f-1;return p.testBit(d)||p.bitwiseTo(t.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 Xs=V((W_,B0)=>{var $=dt();Mi();Ys();Ns();v0();_0();Fi();Nt();typeof st>"u"&&(st=$.jsbn.BigInteger);var st,ic=$.util.isNodejs?Ui():null,v=$.asn1,Le=$.util;$.pki=$.pki||{};B0.exports=$.pki.rsa=$.rsa=$.rsa||{};var Q=$.pki,jx=[6,4,2,4,2,4,6,2],t1={name:"PrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},e1={name:"RSAPrivateKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},r1={name:"RSAPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},n1=$.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},i1={name:"DigestInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:v.Class.UNIVERSAL,type:v.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},s1=function(e){var t;if(e.algorithm in Q.oids)t=Q.oids[e.algorithm];else{var r=new Error("Unknown message digest algorithm.");throw r.algorithm=e.algorithm,r}var n=v.oidToDer(t).getBytes(),i=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[]),s=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[]);s.value.push(v.create(v.Class.UNIVERSAL,v.Type.OID,!1,n)),s.value.push(v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,""));var o=v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,e.digest().getBytes());return i.value.push(s),i.value.push(o),v.toDer(i).getBytes()},C0=function(e,t,r){if(r)return e.modPow(t.e,t.n);if(!t.p||!t.q)return e.modPow(t.d,t.n);t.dP||(t.dP=t.d.mod(t.p.subtract(st.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(st.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var n;do n=new st($.util.bytesToHex($.random.getBytes(t.n.bitLength()/8)),16);while(n.compareTo(t.n)>=0||!n.gcd(t.n).equals(st.ONE));e=e.multiply(n.modPow(t.e,t.n)).mod(t.n);for(var i=e.mod(t.p).modPow(t.dP,t.p),s=e.mod(t.q).modPow(t.dQ,t.q);i.compareTo(s)<0;)i=i.add(t.p);var o=i.subtract(s).multiply(t.qInv).mod(t.p).multiply(t.q).add(s);return o=o.multiply(n.modInverse(t.n)).mod(t.n),o};Q.rsa.encrypt=function(e,t,r){var n=r,i,s=Math.ceil(t.n.bitLength()/8);r!==!1&&r!==!0?(n=r===2,i=T0(e,t,r)):(i=$.util.createBuffer(),i.putBytes(e));for(var o=new st(i.toHex(),16),a=C0(o,t,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()};Q.rsa.decrypt=function(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8);if(e.length!==i){var s=new Error("Encrypted message length is invalid.");throw s.length=e.length,s.expected=i,s}var o=new st($.util.createBuffer(e).toHex(),16);if(o.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=C0(o,t,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?Qs(u.getBytes(),t,r):u.getBytes()};Q.rsa.createKeyPairGenerationState=function(e,t,r){typeof e=="string"&&(e=parseInt(e,10)),e=e||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:e,rng:i,eInt:t||65537,e:new st(null),p:null,q:null,qBits:e>>1,pBits:e-(e>>1),pqState:0,num:null,keys:null},o.e.fromInt(o.eInt);else throw new Error("Invalid key generation algorithm: "+s);return o};Q.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var r=new st(null);r.fromInt(30);for(var n=0,i=function(f,h){return f|h},s=+new Date,o,a=0;e.keys===null&&(t<=0||a<t);){if(e.state===0){var c=e.p===null?e.pBits:e.qBits,u=c-1;e.pqState===0?(e.num=new st(c,e.rng),e.num.testBit(u)||e.num.bitwiseTo(st.ONE.shiftLeft(u),i,e.num),e.num.dAddOffset(31-e.num.mod(r).byteValue(),0),n=0,++e.pqState):e.pqState===1?e.num.bitLength()>c?e.pqState=0:e.num.isProbablePrime(a1(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(jx[n++%8],0):e.pqState===2?e.pqState=e.num.subtract(st.ONE).gcd(e.e).compareTo(st.ONE)===0?3:0:e.pqState===3&&(e.pqState=0,e.p===null?e.p=e.num:e.q=e.num,e.p!==null&&e.q!==null&&++e.state,e.num=null)}else if(e.state===1)e.p.compareTo(e.q)<0&&(e.num=e.p,e.p=e.q,e.q=e.num),++e.state;else if(e.state===2)e.p1=e.p.subtract(st.ONE),e.q1=e.q.subtract(st.ONE),e.phi=e.p1.multiply(e.q1),++e.state;else if(e.state===3)e.phi.gcd(e.e).compareTo(st.ONE)===0?++e.state:(e.p=null,e.q=null,e.state=0);else if(e.state===4)e.n=e.p.multiply(e.q),e.n.bitLength()===e.bits?++e.state:(e.q=null,e.state=0);else if(e.state===5){var l=e.e.modInverse(e.phi);e.keys={privateKey:Q.rsa.setPrivateKey(e.n,e.e,l,e.p,e.q,l.mod(e.p1),l.mod(e.q1),e.q.modInverse(e.p)),publicKey:Q.rsa.setPublicKey(e.n,e.e)}}o=+new Date,a+=o-s,s=o}return e.keys!==null};Q.rsa.generateKeyPair=function(e,t,r,n){if(arguments.length===1?typeof e=="object"?(r=e,e=void 0):typeof e=="function"&&(n=e,e=void 0):arguments.length===2?typeof e=="number"?typeof t=="function"?(n=t,t=void 0):typeof t!="number"&&(r=t,t=void 0):(r=e,n=t,e=void 0,t=void 0):arguments.length===3&&(typeof t=="number"?typeof r=="function"&&(n=r,r=void 0):(n=r,r=t,t=void 0)),r=r||{},e===void 0&&(e=r.bits||2048),t===void 0&&(t=r.e||65537),!$.options.usePureJavaScript&&!r.prng&&e>=256&&e<=16384&&(t===65537||t===3)){if(n){if(S0("generateKeyPair"))return ic.generateKeyPair("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,u){if(a)return n(a);n(null,{privateKey:Q.privateKeyFromPem(u),publicKey:Q.publicKeyFromPem(c)})});if(A0("generateKey")&&A0("exportKey"))return Le.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:R0(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return Le.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=Q.privateKeyFromAsn1(v.fromDer($.util.createBuffer(a)));n(null,{privateKey:c,publicKey:Q.setRsaPublicKey(c.n,c.e)})}});if(I0("generateKey")&&I0("exportKey")){var i=Le.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:R0(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=Le.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(l){var f=l.target.result,h=Q.privateKeyFromAsn1(v.fromDer($.util.createBuffer(f)));n(null,{privateKey:h,publicKey:Q.setRsaPublicKey(h.n,h.e)})},u.onerror=function(l){n(l)}},i.onerror=function(a){n(a)};return}}else if(S0("generateKeyPairSync")){var s=ic.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:Q.privateKeyFromPem(s.privateKey),publicKey:Q.publicKeyFromPem(s.publicKey)}}}var o=Q.rsa.createKeyPairGenerationState(e,t,r);if(!n)return Q.rsa.stepKeyPairGenerationState(o,0),o.keys;o1(o,r,n)};Q.setRsaPublicKey=Q.rsa.setPublicKey=function(e,t){var r={n:e,e:t};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 T0(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 Q.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=Qs(u,r,!0);var l=v.fromDer(u,{parseAllBytes:o._parseAllDigestBytes}),f={},h=[];if(!v.validate(l,i1,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=v.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=Qs(u,r,!0),c===u}});var a=Q.rsa.decrypt(i,r,!0,!1);return s.verify(n,a,r.n.bitLength())},r};Q.setRsaPrivateKey=Q.rsa.setPrivateKey=function(e,t,r,n,i,s,o,a){var c={n:e,e:t,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=Q.rsa.decrypt(u,c,!1,!1);if(l==="RSAES-PKCS1-V1_5")l={decode:Qs};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:s1},f=1):(l==="NONE"||l==="NULL"||l===null)&&(l={encode:function(){return u}},f=1);var h=l.encode(u,c.n.bitLength());return Q.rsa.encrypt(h,c,f)},c};Q.wrapRsaPrivateKey=function(e){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(0).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(Q.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,v.toDer(e).getBytes())])};Q.privateKeyFromAsn1=function(e){var t={},r=[];if(v.validate(e,t1,t,r)&&(e=v.fromDer($.util.createBuffer(t.privateKey))),t={},r=[],!v.validate(e,e1,t,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(t.privateKeyModulus).toHex(),s=$.util.createBuffer(t.privateKeyPublicExponent).toHex(),o=$.util.createBuffer(t.privateKeyPrivateExponent).toHex(),a=$.util.createBuffer(t.privateKeyPrime1).toHex(),c=$.util.createBuffer(t.privateKeyPrime2).toHex(),u=$.util.createBuffer(t.privateKeyExponent1).toHex(),l=$.util.createBuffer(t.privateKeyExponent2).toHex(),f=$.util.createBuffer(t.privateKeyCoefficient).toHex(),Q.setRsaPrivateKey(new st(i,16),new st(s,16),new st(o,16),new st(a,16),new st(c,16),new st(u,16),new st(l,16),new st(f,16))};Q.privateKeyToAsn1=Q.privateKeyToRSAPrivateKey=function(e){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(0).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.e)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.d)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.p)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.q)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.dP)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.dQ)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.qInv))])};Q.publicKeyFromAsn1=function(e){var t={},r=[];if(v.validate(e,n1,t,r)){var n=v.derToOid(t.publicKeyOid);if(n!==Q.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}e=t.rsaPublicKey}if(r=[],!v.validate(e,r1,t,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(t.publicKeyModulus).toHex(),o=$.util.createBuffer(t.publicKeyExponent).toHex();return Q.setRsaPublicKey(new st(s,16),new st(o,16))};Q.publicKeyToAsn1=Q.publicKeyToSubjectPublicKeyInfo=function(e){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(Q.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.BITSTRING,!1,[Q.publicKeyToRSAPublicKey(e)])])};Q.publicKeyToRSAPublicKey=function(e){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.e))])};function T0(e,t,r){var n=$.util.createBuffer(),i=Math.ceil(t.n.bitLength()/8);if(e.length>i-11){var s=new Error("Message is too long for PKCS#1 v1.5 padding.");throw s.length=e.length,s.max=i-11,s}n.putByte(0),n.putByte(r);var o=i-3-e.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(e),n}function Qs(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8),s=$.util.createBuffer(e),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 o1(e,t,r){typeof t=="function"&&(r=t,t={}),t=t||{};var n={algorithm:{name:t.algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};"prng"in t&&(n.prng=t.prng),i();function i(){s(e.pBits,function(a,c){if(a)return r(a);if(e.p=c,e.q!==null)return o(a,e.q);s(e.qBits,o)})}function s(a,c){$.prime.generateProbablePrime(a,n,c)}function o(a,c){if(a)return r(a);if(e.q=c,e.p.compareTo(e.q)<0){var u=e.p;e.p=e.q,e.q=u}if(e.p.subtract(st.ONE).gcd(e.e).compareTo(st.ONE)!==0){e.p=null,i();return}if(e.q.subtract(st.ONE).gcd(e.e).compareTo(st.ONE)!==0){e.q=null,s(e.qBits,o);return}if(e.p1=e.p.subtract(st.ONE),e.q1=e.q.subtract(st.ONE),e.phi=e.p1.multiply(e.q1),e.phi.gcd(e.e).compareTo(st.ONE)!==0){e.p=e.q=null,i();return}if(e.n=e.p.multiply(e.q),e.n.bitLength()!==e.bits){e.q=null,s(e.qBits,o);return}var l=e.e.modInverse(e.phi);e.keys={privateKey:Q.rsa.setPrivateKey(e.n,e.e,l,e.p,e.q,l.mod(e.p1),l.mod(e.q1),e.q.modInverse(e.p)),publicKey:Q.rsa.setPublicKey(e.n,e.e)},r(null,e.keys)}}function Ze(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var r=$.util.hexToBytes(t);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 a1(e){return e<=100?27:e<=150?18:e<=200?15:e<=250?12:e<=300?9:e<=350?8:e<=400?7:e<=500?6:e<=600?5:e<=800?4:e<=1250?3:2}function S0(e){return $.util.isNodejs&&typeof ic[e]=="function"}function A0(e){return typeof Le.globalScope<"u"&&typeof Le.globalScope.crypto=="object"&&typeof Le.globalScope.crypto.subtle=="object"&&typeof Le.globalScope.crypto.subtle[e]=="function"}function I0(e){return typeof Le.globalScope<"u"&&typeof Le.globalScope.msCrypto=="object"&&typeof Le.globalScope.msCrypto.subtle=="object"&&typeof Le.globalScope.msCrypto.subtle[e]=="function"}function R0(e){for(var t=$.util.hexToBytes(e.toString(16)),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}});var O0=V((Q_,k0)=>{var M=dt();Fs();Mi();Vf();nn();Ns();Qa();Wf();Fi();o0();Xs();Nt();typeof L0>"u"&&(L0=M.jsbn.BigInteger);var L0,A=M.asn1,Z=M.pki=M.pki||{};k0.exports=Z.pbe=M.pbe=M.pbe||{};var an=Z.oids,c1={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"}]},u1={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"}]}]},l1={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"}]};Z.encryptPrivateKeyInfo=function(e,t,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=an["aes128-CBC"],f=M.aes.createEncryptionCipher;break;case"aes192":o=24,u=16,l=an["aes192-CBC"],f=M.aes.createEncryptionCipher;break;case"aes256":o=32,u=16,l=an["aes256-CBC"],f=M.aes.createEncryptionCipher;break;case"des":o=8,u=8,l=an.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=N0(p),m=M.pkcs5.pbkdf2(t,n,i,o,d),y=M.random.getBytesSync(u),g=f(m);g.start(y),g.update(A.toDer(e)),g.finish(),c=g.output.getBytes();var x=f1(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(an.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(an.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,y)])])])}else if(r.algorithm==="3des"){o=24;var b=new M.util.ByteBuffer(n),m=Z.pbe.generatePkcs12Key(t,b,1,i,o),y=Z.pbe.generatePkcs12Key(t,b,2,i,o),g=M.des.createEncryptionCipher(m);g.start(y),g.update(A.toDer(e)),g.finish(),c=g.output.getBytes(),a=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(an["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 C=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[a,A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,c)]);return C};Z.decryptPrivateKeyInfo=function(e,t){var r=null,n={},i=[];if(!A.validate(e,c1,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=Z.pbe.getCipher(o,n.encryptionParams,t),c=M.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(r=A.fromDer(a.output)),r};Z.encryptedPrivateKeyToPem=function(e,t){var r={type:"ENCRYPTED PRIVATE KEY",body:A.toDer(e).getBytes()};return M.pem.encode(r,{maxline:t})};Z.encryptedPrivateKeyFromPem=function(e){var t=M.pem.decode(e)[0];if(t.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=t.type,r}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return A.fromDer(t.body)};Z.encryptRsaPrivateKey=function(e,t,r){if(r=r||{},!r.legacy){var n=Z.wrapRsaPrivateKey(Z.privateKeyToAsn1(e));return n=Z.encryptPrivateKeyInfo(n,t,r),Z.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(t,s.substr(0,8),o),l=a(u);l.start(s),l.update(A.toDer(Z.privateKeyToAsn1(e))),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)};Z.decryptRsaPrivateKey=function(e,t){var r=null,n=M.pem.decode(e)[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(t,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=Z.decryptPrivateKeyInfo(A.fromDer(r),t):r=A.fromDer(r),r!==null&&(r=Z.privateKeyFromAsn1(r)),r};Z.pbe.generatePkcs12Key=function(e,t,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(e!=null){for(a=0;a<e.length;a++)f.putInt16(e.charCodeAt(a));f.putInt16(0)}var h=f.length(),p=t.length(),d=new M.util.ByteBuffer;d.fillWithByte(r,u);var m=u*Math.ceil(p/u),y=new M.util.ByteBuffer;for(a=0;a<m;a++)y.putByte(t.at(a%p));var g=u*Math.ceil(h/u),x=new M.util.ByteBuffer;for(a=0;a<g;a++)x.putByte(f.at(a%h));var b=y;b.putBuffer(x);for(var C=Math.ceil(i/c),_=1;_<=C;_++){var S=new M.util.ByteBuffer;S.putBytes(d.bytes()),S.putBytes(b.bytes());for(var P=0;P<n;P++)s.start(),s.update(S.getBytes()),S=s.digest();var D=new M.util.ByteBuffer;for(a=0;a<u;a++)D.putByte(S.at(a%c));var Y=Math.ceil(p/u)+Math.ceil(h/u),W=new M.util.ByteBuffer;for(o=0;o<Y;o++){var H=new M.util.ByteBuffer(b.getBytes(u)),et=511;for(a=D.length()-1;a>=0;a--)et=et>>8,et+=D.at(a)+H.at(a),H.setAt(a,et&255);W.putBuffer(H)}b=W,l.putBuffer(S)}return l.truncate(l.length()-i),l};Z.pbe.getCipher=function(e,t,r){switch(e){case Z.oids.pkcs5PBES2:return Z.pbe.getCipherForPBES2(e,t,r);case Z.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case Z.oids["pbewithSHAAnd40BitRC2-CBC"]:return Z.pbe.getCipherForPKCS12PBE(e,t,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=e,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};Z.pbe.getCipherForPBES2=function(e,t,r){var n={},i=[];if(!A.validate(t,u1,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(e=A.derToOid(n.kdfOid),e!==Z.oids.pkcs5PBKDF2){var s=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw s.oid=e,s.supportedOids=["pkcs5PBKDF2"],s}if(e=A.derToOid(n.encOid),e!==Z.oids["aes128-CBC"]&&e!==Z.oids["aes192-CBC"]&&e!==Z.oids["aes256-CBC"]&&e!==Z.oids["des-EDE3-CBC"]&&e!==Z.oids.desCBC){var s=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw s.oid=e,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(Z.oids[e]){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=D0(n.prfOid),f=M.pkcs5.pbkdf2(r,o,a,c,l),h=n.encIv,p=u(f);return p.start(h),p};Z.pbe.getCipherForPKCS12PBE=function(e,t,r){var n={},i=[];if(!A.validate(t,l1,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(e){case Z.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,l=M.des.startDecrypting;break;case Z.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,u=8,l=function(m,y){var g=M.rc2.createDecryptionCipher(m,40);return g.start(y,null),g};break;default:var s=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw s.oid=e,s}var f=D0(n.prfOid),h=Z.pbe.generatePkcs12Key(r,o,1,a,c,f);f.start();var p=Z.pbe.generatePkcs12Key(r,o,2,a,u,f);return l(h,p)};Z.pbe.opensslDeriveBytes=function(e,t,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()}t===null&&(t="");for(var i=[P0(n,e+t)],s=16,o=1;s<r;++o,s+=16)i.push(P0(n,i[o-1]+e+t));return i.join("").substr(0,r)};function P0(e,t){return e.start().update(t).digest().getBytes()}function D0(e){var t;if(!e)t="hmacWithSHA1";else if(t=Z.oids[A.derToOid(e)],!t){var r=new Error("Unsupported PRF OID.");throw r.oid=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}return N0(t)}function N0(e){var t=M.md;switch(e){case"hmacWithSHA224":t=M.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":e=e.substr(8).toLowerCase();break;default:var r=new Error("Unsupported PRF algorithm.");throw r.algorithm=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}if(!t||!(e in t))throw new Error("Unknown hash algorithm: "+e);return t[e].create()}function f1(e,t,r,n){var i=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,e),A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,t.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(Z.oids[n]).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.NULL,!1,"")])),i}});var Hh=V((QI,$h)=>{var _t=dt();nn();Nt();var Zi=$h.exports=_t.sha512=_t.sha512||{};_t.md.sha512=_t.md.algorithms.sha512=Zi;var Vh=_t.sha384=_t.sha512.sha384=_t.sha512.sha384||{};Vh.create=function(){return Zi.create("SHA-384")};_t.md.sha384=_t.md.algorithms.sha384=Vh;_t.sha512.sha256=_t.sha512.sha256||{create:function(){return Zi.create("SHA-512/256")}};_t.md["sha512/256"]=_t.md.algorithms["sha512/256"]=_t.sha512.sha256;_t.sha512.sha224=_t.sha512.sha224||{create:function(){return Zi.create("SHA-512/224")}};_t.md["sha512/224"]=_t.md.algorithms["sha512/224"]=_t.sha512.sha224;Zi.create=function(e){if(qh||DE(),typeof e>"u"&&(e="SHA-512"),!(e in xn))throw new Error("Invalid SHA-512 algorithm: "+e);for(var t=xn[e],r=null,n=_t.util.createBuffer(),i=new Array(80),s=0;s<80;++s)i[s]=new Array(2);var o=64;switch(e){case"SHA-384":o=48;break;case"SHA-512/256":o=32;break;case"SHA-512/224":o=28;break}var a={algorithm:e.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=_t.util.createBuffer(),r=new Array(t.length);for(var u=0;u<t.length;++u)r[u]=t[u].slice(0);return a},a.start(),a.update=function(c,u){u==="utf8"&&(c=_t.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),Kh(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=_t.util.createBuffer();c.putBytes(n.bytes());var u=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,l=u&a.blockLength-1;c.putBytes(iu.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);Kh(m,i,c);var y=_t.util.createBuffer(),g;e==="SHA-512"?g=m.length:e==="SHA-384"?g=m.length-2:g=m.length-4;for(var d=0;d<g;++d)y.putInt32(m[d][0]),(d!==g-1||e!=="SHA-512/224")&&y.putInt32(m[d][1]);return y},a};var iu=null,qh=!1,su=null,xn=null;function DE(){iu=String.fromCharCode(128),iu+=_t.util.fillString(String.fromCharCode(0),128),su=[[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]],xn={},xn["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],xn["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],xn["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],xn["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],qh=!0}function Kh(e,t,r){for(var n,i,s,o,a,c,u,l,f,h,p,d,m,y,g,x,b,C,_,S,P,D,Y,W,H,et,pt,Jt,T,k,L,N,I,U,q,G=r.length();G>=128;){for(T=0;T<16;++T)t[T][0]=r.getInt32()>>>0,t[T][1]=r.getInt32()>>>0;for(;T<80;++T)N=t[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=t[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,I=t[T-7],q=t[T-16],L=i+I[1]+o+q[1],t[T][0]=n+I[0]+s+q[0]+(L/4294967296>>>0)>>>0,t[T][1]=L>>>0;for(m=e[0][0],y=e[0][1],g=e[1][0],x=e[1][1],b=e[2][0],C=e[2][1],_=e[3][0],S=e[3][1],P=e[4][0],D=e[4][1],Y=e[5][0],W=e[5][1],H=e[6][0],et=e[6][1],pt=e[7][0],Jt=e[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=(H^P&(Y^H))>>>0,h=(et^D&(W^et))>>>0,a=((m>>>28|y<<4)^(y>>>2|m<<30)^(y>>>7|m<<25))>>>0,c=((m<<4|y>>>28)^(y<<30|m>>>2)^(y<<25|m>>>7))>>>0,p=(m&g|b&(m^g))>>>0,d=(y&x|C&(y^x))>>>0,L=Jt+l+h+su[T][1]+t[T][1],n=pt+u+f+su[T][0]+t[T][0]+(L/4294967296>>>0)>>>0,i=L>>>0,L=c+d,s=a+p+(L/4294967296>>>0)>>>0,o=L>>>0,pt=H,Jt=et,H=Y,et=W,Y=P,W=D,L=S+i,P=_+n+(L/4294967296>>>0)>>>0,D=L>>>0,_=b,S=C,b=g,C=x,g=m,x=y,L=i+o,m=n+s+(L/4294967296>>>0)>>>0,y=L>>>0;L=e[0][1]+y,e[0][0]=e[0][0]+m+(L/4294967296>>>0)>>>0,e[0][1]=L>>>0,L=e[1][1]+x,e[1][0]=e[1][0]+g+(L/4294967296>>>0)>>>0,e[1][1]=L>>>0,L=e[2][1]+C,e[2][0]=e[2][0]+b+(L/4294967296>>>0)>>>0,e[2][1]=L>>>0,L=e[3][1]+S,e[3][0]=e[3][0]+_+(L/4294967296>>>0)>>>0,e[3][1]=L>>>0,L=e[4][1]+D,e[4][0]=e[4][0]+P+(L/4294967296>>>0)>>>0,e[4][1]=L>>>0,L=e[5][1]+W,e[5][0]=e[5][0]+Y+(L/4294967296>>>0)>>>0,e[5][1]=L>>>0,L=e[6][1]+et,e[6][0]=e[6][0]+H+(L/4294967296>>>0)>>>0,e[6][1]=L>>>0,L=e[7][1]+Jt,e[7][0]=e[7][0]+pt+(L/4294967296>>>0)>>>0,e[7][1]=L>>>0,G-=128}}});var vu=V((I4,Ed)=>{var ci=1e3,ui=ci*60,li=ui*60,vn=li*24,ub=vn*7,lb=vn*365.25;Ed.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return fb(e);if(r==="number"&&isFinite(e))return t.long?db(e):hb(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function fb(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*lb;case"weeks":case"week":case"w":return r*ub;case"days":case"day":case"d":return r*vn;case"hours":case"hour":case"hrs":case"hr":case"h":return r*li;case"minutes":case"minute":case"mins":case"min":case"m":return r*ui;case"seconds":case"second":case"secs":case"sec":case"s":return r*ci;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function hb(e){var t=Math.abs(e);return t>=vn?Math.round(e/vn)+"d":t>=li?Math.round(e/li)+"h":t>=ui?Math.round(e/ui)+"m":t>=ci?Math.round(e/ci)+"s":e+"ms"}function db(e){var t=Math.abs(e);return t>=vn?vo(e,t,vn,"day"):t>=li?vo(e,t,li,"hour"):t>=ui?vo(e,t,ui,"minute"):t>=ci?vo(e,t,ci,"second"):e+" ms"}function vo(e,t,r,n){var i=t>=r*1.5;return Math.round(e/r)+" "+n+(i?"s":"")}});var wd=V((R4,bd)=>{function pb(e){r.debug=r,r.default=r,r.coerce=c,r.disable=s,r.enable=i,r.enabled=o,r.humanize=vu(),r.destroy=u,Object.keys(e).forEach(l=>{r[l]=e[l]}),r.names=[],r.skips=[],r.formatters={};function t(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=t;function r(l){let f,h=null,p,d;function m(...y){if(!m.enabled)return;let g=m,x=Number(new Date),b=x-(f||x);g.diff=b,g.prev=f,g.curr=x,f=x,y[0]=r.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let C=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(S,P)=>{if(S==="%%")return"%";C++;let D=r.formatters[P];if(typeof D=="function"){let Y=y[C];S=D.call(g,Y),y.splice(C,1),C--}return S}),r.formatArgs.call(g,y),(g.log||r.log).apply(g,y)}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:y=>{h=y}}),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}bd.exports=pb});var _u=V((_e,_o)=>{_e.formatArgs=yb;_e.save=gb;_e.load=xb;_e.useColors=mb;_e.storage=Eb();_e.destroy=(()=>{let e=!1;return()=>{e||(e=!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`."))}})();_e.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 mb(){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 yb(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+_o.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),e.splice(n,0,t)}_e.log=console.debug||console.log||(()=>{});function gb(e){try{e?_e.storage.setItem("debug",e):_e.storage.removeItem("debug")}catch{}}function xb(){let e;try{e=_e.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function Eb(){try{return localStorage}catch{}}_o.exports=wd()(_e);var{formatters:bb}=_o.exports;bb.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var Rd=V((Y4,Id)=>{"use strict";Id.exports=e=>{if(Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}});var Dd=V((Ld,Pd)=>{"use strict";var Ro=Rd(),{hasOwnProperty:Td}=Object.prototype,{propertyIsEnumerable:Rb}=Object,di=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0}),Cb=Ld,Cd={concatArrays:!1,ignoreUndefined:!1},Co=e=>{let t=[];for(let r in e)Td.call(e,r)&&t.push(r);if(Object.getOwnPropertySymbols){let r=Object.getOwnPropertySymbols(e);for(let n of r)Rb.call(e,n)&&t.push(n)}return t};function pi(e){return Array.isArray(e)?Tb(e):Ro(e)?Bb(e):e}function Tb(e){let t=e.slice(0,0);return Co(e).forEach(r=>{di(t,r,pi(e[r]))}),t}function Bb(e){let t=Object.getPrototypeOf(e)===null?Object.create(null):{};return Co(e).forEach(r=>{di(t,r,pi(e[r]))}),t}var Bd=(e,t,r,n)=>(r.forEach(i=>{typeof t[i]>"u"&&n.ignoreUndefined||(i in e&&e[i]!==Object.getPrototypeOf(e)?di(e,i,Ru(e[i],t[i],n)):di(e,i,pi(t[i])))}),e),Lb=(e,t,r)=>{let n=e.slice(0,0),i=0;return[e,t].forEach(s=>{let o=[];for(let a=0;a<s.length;a++)Td.call(s,a)&&(o.push(String(a)),s===e?di(n,i++,s[a]):di(n,i++,pi(s[a])));n=Bd(n,s,Co(s).filter(a=>!o.includes(a)),r)}),n};function Ru(e,t,r){return r.concatArrays&&Array.isArray(e)&&Array.isArray(t)?Lb(e,t,r):!Ro(t)||!Ro(e)?pi(t):Bd(e,t,Co(t),r)}Pd.exports=function(...e){let t=Ru(pi(Cd),this!==Cb&&this||{},Cd),r={_:{}};for(let n of e)if(n!==void 0){if(!Ro(n))throw new TypeError("`"+n+"` is not an Option Object");r=Ru(r,{_:n},t)}return r._}});var Od=V((Q4,kd)=>{"use strict";function Pb(e){return e>=55296&&e<=56319}function Db(e){return e>=56320&&e<=57343}kd.exports=function(t,r,n){if(typeof r!="string")throw new Error("Input must be string");for(var i=r.length,s=0,o,a,c=0;c<i;c+=1){if(o=r.charCodeAt(c),a=r[c],Pb(o)&&Db(r.charCodeAt(c+1))&&(c+=1,a+=r[c]),s+=t(a),s===n)return r.slice(0,c+1);if(s>n)return r.slice(0,c-a.length+1)}return r}});var Ud=V((X4,Md)=>{"use strict";function Nb(e){return e>=55296&&e<=56319}function kb(e){return e>=56320&&e<=57343}Md.exports=function(t){if(typeof t!="string")throw new Error("Input must be string");for(var r=t.length,n=0,i=null,s=null,o=0;o<r;o++)i=t.charCodeAt(o),kb(i)?s!=null&&Nb(s)?n+=1:n+=3:i<=127?n+=1:i>=128&&i<=2047?n+=2:i>=2048&&i<=65535&&(n+=3),s=i;return n}});var Kd=V((Z4,Fd)=>{"use strict";var Ob=Od(),Mb=Ud();Fd.exports=Ob.bind(null,Mb)});var $d=V((J4,qd)=>{"use strict";var Ub=Kd(),Fb=/[\/\?<>\\:\*\|"]/g,Kb=/[\x00-\x1f\x80-\x9f]/g,Vb=/^\.+$/,qb=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,$b=/[\. ]+$/;function Vd(e,t){if(typeof e!="string")throw new Error("Input must be string");var r=e.replace(Fb,t).replace(Kb,t).replace(Vb,t).replace(qb,t).replace($b,t);return Ub(r,255)}qd.exports=function(e,t){var r=t&&t.replacement||"",n=Vd(e,r);return r===""?n:Vd(n,"")}});var mp=V((AT,Wu)=>{"use strict";var ww=Object.prototype.hasOwnProperty,de="~";function hs(){}Object.create&&(hs.prototype=Object.create(null),new hs().__proto__||(de=!1));function vw(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function pp(e,t,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var s=new vw(r,n||e,i),o=de?de+t:t;return e._events[o]?e._events[o].fn?e._events[o]=[e._events[o],s]:e._events[o].push(s):(e._events[o]=s,e._eventsCount++),e}function ko(e,t){--e._eventsCount===0?e._events=new hs:delete e._events[t]}function le(){this._events=new hs,this._eventsCount=0}le.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)ww.call(r,n)&&t.push(de?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};le.prototype.listeners=function(t){var r=de?de+t:t,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};le.prototype.listenerCount=function(t){var r=de?de+t:t,n=this._events[r];return n?n.fn?1:n.length:0};le.prototype.emit=function(t,r,n,i,s,o){var a=de?de+t:t;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,l,f;if(c.fn){switch(c.once&&this.removeListener(t,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(t,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};le.prototype.on=function(t,r,n){return pp(this,t,r,n,!1)};le.prototype.once=function(t,r,n){return pp(this,t,r,n,!0)};le.prototype.removeListener=function(t,r,n,i){var s=de?de+t:t;if(!this._events[s])return this;if(!r)return ko(this,s),this;var o=this._events[s];if(o.fn)o.fn===r&&(!i||o.once)&&(!n||o.context===n)&&ko(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:ko(this,s)}return this};le.prototype.removeAllListeners=function(t){var r;return t?(r=de?de+t:t,this._events[r]&&ko(this,r)):(this._events=new hs,this._eventsCount=0),this};le.prototype.off=le.prototype.removeListener;le.prototype.addListener=le.prototype.on;le.prefixed=de;le.EventEmitter=le;typeof Wu<"u"&&(Wu.exports=le)});var El=V((q3,kp)=>{"use strict";function Np(e,t){for(let r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function Ow(e,t,r){if(!e||typeof e=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof t=="object"&&(r=t,t=""),t&&(r.code=t);try{return Np(e,r)}catch{r.message=e.message,r.stack=e.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(e)),Np(new i,r)}}kp.exports=Ow});var Vp=V(Es=>{(function(){var e,t,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=t(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"),t=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]},e=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=e}).call(Es)});var zp=V((Hp,ra)=>{(function(e){"use strict";let t="(0?\\d+|0x[a-f0-9]+)",r={fourOctet:new RegExp(`^${t}\\.${t}\\.${t}\\.${t}$`,"i"),threeOctet:new RegExp(`^${t}\\.${t}\\.${t}$`,"i"),twoOctet:new RegExp(`^${t}\\.${t}$`,"i"),longValue:new RegExp(`^${t}$`,"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(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${s})?)$`,"i"),transitional:new RegExp(`^((?:${o})|(?:::)(?:${o})?)${t}\\.${t}\\.${t}\\.${t}(${s})?$`,"i")};function c(p,d){if(p.indexOf("::")!==p.lastIndexOf("::"))return null;let m=0,y=-1,g=(p.match(a.zoneIndex)||[])[0],x,b;for(g&&(g=g.substring(1),p=p.replace(/%.+$/,""));(y=p.indexOf(":",y+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 C=p.split(":"),_=[];for(let S=0;S<C.length;S++)_.push(parseInt(C[S],16));return _}(),{parts:d,zoneId:g}}function u(p,d,m,y){if(p.length!==d.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let g=0,x;for(;y>0;){if(x=m-y,x<0&&(x=0),p[g]>>x!==d[g]>>x)return!1;y-=m,g+=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,y;for(m=0;m<d.length;m++)if(y=d[m],!(0<=y&&y<=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 y;if(m===void 0&&(y=d,d=y[0],m=y[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,y={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},g,x,b;for(g=3;g>=0;g-=1)if(x=this.octets[g],x in y){if(b=y[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(),y=this.subnetMaskFromPrefixLength(d[1]).toByteArray(),g=[],x=0;for(;x<4;)g.push(parseInt(m[x],10)|parseInt(y[x],10)^255),x++;return new this(g)}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,y,g,x;try{for(d=this.parseCIDR(p),y=d[0].toByteArray(),x=this.subnetMaskFromPrefixLength(d[1]).toByteArray(),g=[],m=0;m<4;)g.push(parseInt(y[m],10)&parseInt(x[m],10)),m++;return new this(g)}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 y=[this.parse(d[1]),m];return Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},h.IPv4.parser=function(p){let d,m,y;if(d=p.match(r.fourOctet))return function(){let g=d.slice(1,6),x=[];for(let b=0;b<g.length;b++)m=g[b],x.push(l(m));return x}();if(d=p.match(r.longValue)){if(y=l(d[1]),y>4294967295||y<0)throw new Error("ipaddr: address outside defined range");return function(){let g=[],x;for(x=0;x<=24;x+=8)g.push(y>>x&255);return g}().reverse()}else return(d=p.match(r.twoOctet))?function(){let g=d.slice(1,4),x=[];if(y=l(g[1]),y>16777215||y<0)throw new Error("ipaddr: address outside defined range");return x.push(l(g[0])),x.push(y>>16&255),x.push(y>>8&255),x.push(y&255),x}():(d=p.match(r.threeOctet))?function(){let g=d.slice(1,5),x=[];if(y=l(g[2]),y>65535||y<0)throw new Error("ipaddr: address outside defined range");return x.push(l(g[0])),x.push(l(g[1])),x.push(y>>8&255),x.push(y&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,y=Math.floor(p/8);for(;m<y;)d[m]=255,m++;return y<4&&(d[y]=Math.pow(2,p%8)-1<<8-p%8),new this(d)},h.IPv6=function(){function p(d,m){let y,g;if(d.length===16)for(this.parts=[],y=0;y<=14;y+=2)this.parts.push(d[y]<<8|d[y+1]);else if(d.length===8)this.parts=d;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(y=0;y<this.parts.length;y++)if(g=this.parts[y],!(0<=g&&g<=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 y;if(m===void 0&&(y=d,d=y[0],m=y[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,y={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},g,x;for(let b=7;b>=0;b-=1)if(g=this.parts[b],g in y){if(x=y[g],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=[],y=this.parts;for(let g=0;g<y.length;g++)d=y[g],m.push(d>>8),m.push(d&255);return m},p.prototype.toFixedLengthString=function(){let d=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(f(this.parts[g].toString(16),4));return y}.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],y=d[1];return new h.IPv4([m>>8,m&255,y>>8,y&255])},p.prototype.toNormalizedString=function(){let d=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(this.parts[g].toString(16));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),d+m},p.prototype.toRFC5952String=function(){let d=/((^|:)(0(:|$)){2,})/g,m=this.toNormalizedString(),y=0,g=-1,x;for(;x=d.exec(m);)x[0].length>g&&(y=x.index,g=x[0].length);return g<0?m:`${m.substring(0,y)}::${m.substring(y+g)}`},p.prototype.toString=function(){return this.toRFC5952String()},p}(),h.IPv6.broadcastAddressFromCIDR=function(p){try{let d=this.parseCIDR(p),m=d[0].toByteArray(),y=this.subnetMaskFromPrefixLength(d[1]).toByteArray(),g=[],x=0;for(;x<16;)g.push(parseInt(m[x],10)|parseInt(y[x],10)^255),x++;return new this(g)}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,y,g,x;try{for(d=this.parseCIDR(p),y=d[0].toByteArray(),x=this.subnetMaskFromPrefixLength(d[1]).toByteArray(),g=[],m=0;m<16;)g.push(parseInt(y[m],10)&parseInt(x[m],10)),m++;return new this(g)}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,y;if((m=p.match(/^(.+)\/(\d+)$/))&&(d=parseInt(m[2]),d>=0&&d<=128))return y=[this.parse(m[1]),d],Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},h.IPv6.parser=function(p){let d,m,y,g,x,b;if(y=p.match(a.deprecatedTransitional))return this.parser(`::ffff:${y[1]}`);if(a.native.test(p))return c(p,8);if((y=p.match(a.transitional))&&(b=y[6]||"",d=c(y[1].slice(0,-1)+b,6),d.parts)){for(x=[parseInt(y[2]),parseInt(y[3]),parseInt(y[4]),parseInt(y[5])],m=0;m<x.length;m++)if(g=x[m],!(0<=g&&g<=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,y=Math.floor(p/8);for(;m<y;)d[m]=255,m++;return y<16&&(d[y]=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 y,g,x,b;m==null&&(m="unicast");for(g in d)if(Object.prototype.hasOwnProperty.call(d,g)){for(x=d[g],x[0]&&!(x[0]instanceof Array)&&(x=[x]),y=0;y<x.length;y++)if(b=x[y],p.kind()===b[0].kind()&&p.match.apply(p,b))return g}return m},typeof ra<"u"&&ra.exports?ra.exports=h:e.ipaddr=h})(Hp)});var cm=V((KB,am)=>{"use strict";am.exports=om;var iv=vu(),Zr=om.prototype,sv=new Date%1e9;function ov(){return(Math.random()*1e9>>>0)+sv++}function om(e){e=e||{},this.id=e.id||ov(),this.max=e.max||1/0,this.items=e.items||[],this._lookup={},this.size=this.items.length,this.lastModified=new Date(e.lastModified||new Date);for(var t,r,n=this.items.length;n--;)t=this.items[n],r=new Date(t.expires)-new Date,this._lookup[t.key]=t,r>0?this.expire(t.key,r):r<=0&&this.delete(t.key)}Zr.has=function(e){return e in this._lookup};Zr.get=function(e){if(!this.has(e))return null;var t=this._lookup[e];return t.refresh&&this.expire(e,t.refresh),this.items.splice(this.items.indexOf(t),1),this.items.push(t),t.value};Zr.meta=function(e){if(!this.has(e))return null;var t=this._lookup[e];return"meta"in t?t.meta:null};Zr.set=function(e,t,r){var n=this._lookup[e],i=this._lookup[e]={key:e,value:t};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(e,r.ttl),"meta"in r&&(i.meta=r.meta),r.refresh&&(i.refresh=r.ttl)),this};Zr.delete=function(e){var t=this._lookup[e];return t?(this.lastModified=new Date,this.items.splice(this.items.indexOf(t),1),clearTimeout(t.timeout),delete this._lookup[e],this.size--,this):!1};Zr.expire=function(e,t){var r=t||0,n=this._lookup[e];if(!n)return this;if(typeof r=="string"&&(r=iv(t)),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};Zr.clear=function(){for(var e=this.items.length;e--;)this.delete(this.items[e].key);return this};Zr.toJSON=function(){for(var e=new Array(this.items.length),t,r=e.length;r--;)t=this.items[r],e[r]={key:t.key,meta:t.meta,value:t.value,expires:t.expires,refresh:t.refresh};return{id:this.id,max:isFinite(this.max)?this.max:void 0,lastModified:this.lastModified,items:e}}});var vs=V((a6,ym)=>{ym.exports=class{constructor(t={}){this.points=t.points,this.duration=t.duration,this.blockDuration=t.blockDuration,this.execEvenly=t.execEvenly,this.execEvenlyMinDelayMs=t.execEvenlyMinDelayMs,this.keyPrefix=t.keyPrefix}get points(){return this._points}set points(t){this._points=t>=0?t:4}get duration(){return this._duration}set duration(t){this._duration=typeof t>"u"?1:t}get msDuration(){return this.duration*1e3}get blockDuration(){return this._blockDuration}set blockDuration(t){this._blockDuration=typeof t>"u"?0:t}get msBlockDuration(){return this.blockDuration*1e3}get execEvenly(){return this._execEvenly}set execEvenly(t){this._execEvenly=typeof t>"u"?!1:!!t}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(t){this._execEvenlyMinDelayMs=typeof t>"u"?Math.ceil(this.msDuration/this.points):t}get keyPrefix(){return this._keyPrefix}set keyPrefix(t){if(typeof t>"u"&&(t="rlflx"),typeof t!="string")throw new Error("keyPrefix must be string");this._keyPrefix=t}_getKeySecDuration(t={}){return t&&t.customDuration>=0?t.customDuration:this.duration}getKey(t){return this.keyPrefix.length>0?`${this.keyPrefix}:${t}`:t}parseKey(t){return t.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 xm=V((u6,gm)=>{gm.exports=class{constructor(){this._keys={},this._addedKeysAmount=0}collectExpired(){let t=Date.now();Object.keys(this._keys).forEach(r=>{this._keys[r]<=t&&delete this._keys[r]}),this._addedKeysAmount=Object.keys(this._keys).length}add(t,r){this.addMs(t,r*1e3)}addMs(t,r){this._keys[t]=Date.now()+r,this._addedKeysAmount++,this._addedKeysAmount>999&&this.collectExpired()}msBeforeExpire(t){let r=this._keys[t];if(r&&r>=Date.now()){this.collectExpired();let n=Date.now();return r>=n?r-n:0}return 0}delete(t){t?delete this._keys[t]:Object.keys(this._keys).forEach(r=>{delete this._keys[r]})}}});var bm=V((l6,Em)=>{var lv=xm();Em.exports=lv});var Ce=V((h6,wm)=>{wm.exports=class{constructor(t,r,n,i){this.remainingPoints=typeof t>"u"?0:t,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(t){return this._msBeforeNext=t,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(t){return this._remainingPoints=t,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(t){return this._consumedPoints=t,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(t){this._isFirstInDuration=!!t}_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 Ai=V((p6,_m)=>{var Nl=vs(),fv=bm(),vm=Ce();_m.exports=class extends Nl{constructor(t={}){super(t),this.inMemoryBlockOnConsumed=t.inMemoryBlockOnConsumed,this.inMemoryBlockDuration=t.inMemoryBlockDuration,this.insuranceLimiter=t.insuranceLimiter,this._inMemoryBlockedKeys=new fv}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("storeClient is not set");this._client=t}_afterConsume(t,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):t(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(t,c,a)}else t(a)}_handleError(t,r,n,i,s,o=!1,a={}){this.insuranceLimiter instanceof Nl?this.insuranceLimiter[r](s,o,a).then(c=>{n(c)}).catch(c=>{i(c)}):i(t)}getInMemoryBlockMsBeforeExpire(t){return this.inMemoryBlockOnConsumed>0?this._inMemoryBlockedKeys.msBeforeExpire(t):0}get inMemoryBlockOnConsumed(){return this._inMemoryBlockOnConsumed}set inMemoryBlockOnConsumed(t){if(this._inMemoryBlockOnConsumed=t?parseInt(t):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(t){if(this._inMemoryBlockDuration=t?parseInt(t):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(t){if(typeof t<"u"&&!(t instanceof Nl))throw new Error("insuranceLimiter must be instance of RateLimiterAbstract");this._insuranceLimiter=t,this._insuranceLimiter&&(this._insuranceLimiter.blockDuration=this.blockDuration,this._insuranceLimiter.execEvenly=this.execEvenly)}block(t,r,n={}){let i=r*1e3;return this._block(this.getKey(t),this.points+1,i,n)}set(t,r,n,i={}){let s=(n>=0?n:this.duration)*1e3;return this._block(this.getKey(t),r,s,i)}consume(t,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(t),a=this.getInMemoryBlockMsBeforeExpire(o);if(a>0)return s(new vm(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,t,r,n)})})}penalty(t,r=1,n={}){let i=this.getKey(t);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,t,r,n)})})}reward(t,r=1,n={}){let i=this.getKey(t);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,t,r,n)})})}get(t,r={}){let n=this.getKey(t);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,t,r)})})}delete(t,r={}){let n=this.getKey(t);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,t,r)})})}deleteInMemoryBlockedAll(){this._inMemoryBlockedKeys.delete()}_getRateLimiterRes(t,r,n){throw new Error("You have to implement the method '_getRateLimiterRes'!")}_block(t,r,n,i={}){return new Promise((s,o)=>{this._upsert(t,r,n,!0,i).then(()=>{s(new vm(0,n>0?n:-1,r))}).catch(a=>{this._handleError(a,"block",s,o,this.parseKey(t),n/1e3,i)})})}_get(t,r={}){throw new Error("You have to implement the method '_get'!")}_delete(t,r={}){throw new Error("You have to implement the method '_delete'!")}_upsert(t,r,n,i=!1,s={}){throw new Error("You have to implement the method '_upsert'!")}}});var Am=V((m6,Sm)=>{var hv=Ai(),dv=Ce(),kl="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} ",Ol=class extends hv{constructor(t){super(t),this.client=t.storeClient,this._rejectIfRedisNotReady=!!t.rejectIfRedisNotReady,this.useRedisPackage=t.useRedisPackage,this.useRedis3AndLowerPackage=t.useRedis3AndLowerPackage,typeof this.client.defineCommand=="function"&&this.client.defineCommand("rlflxIncr",{numberOfKeys:1,lua:kl})}_isRedisReady(){return this._rejectIfRedisNotReady?!(this.client.status&&this.client.status!=="ready"||typeof this.client.isReady=="function"&&!this.client.isReady()):!0}_getRateLimiterRes(t,r,n){let[i,s]=n;Array.isArray(i)&&([,i]=i,[,s]=s);let o=new dv;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(t,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(t,r,"EX",s):o.set(t,r,{EX:s}):o.set(t,r),!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.pttl(t).exec(!0):o.pTTL(t).exec(!0)):s>0?!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.rlflxIncr([t].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(t,r,s,u):this.client.eval(kl,1,t,r,s,u)}):this.client.eval(kl,{keys:[t],arguments:[String(r),String(s)]}):!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.incrby(t,r).pttl(t).exec(!0):o.incrBy(t,r).pTTL(t).exec(!0)}async _get(t){if(!this._isRedisReady())throw new Error("Redis connection is not ready");return!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.multi().get(t).pttl(t).exec().then(r=>{let[[,n]]=r;return n===null?null:r}):this.client.multi().get(t).pTTL(t).exec(!0).then(r=>{let[n]=r;return n===null?null:r})}_delete(t){return this.client.del(t).then(r=>r>0)}};Sm.exports=Ol});var Cm=V((y6,Rm)=>{var pv=Ai(),mv=Ce();function Im(e){try{let t=e.client?e.client:e,{version:r}=t.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 Ml=class e extends pv{constructor(t){super(t),this.dbName=t.dbName,this.tableName=t.tableName,this.indexKeyPrefix=t.indexKeyPrefix,t.mongo?this.client=t.mongo:this.client=t.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(t){this._dbName=typeof t>"u"?e.getDbName():t}static getDbName(){return"node-rate-limiter-flexible"}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("mongo is not set");this._client=t}get indexKeyPrefix(){return this._indexKeyPrefix}set indexKeyPrefix(t){this._indexKeyPrefix=t||{}}_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(t,r,n){let i=new mv,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(t,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:t},a=Object.assign(a,o),c={$set:{key:t,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:t},a=Object.assign(a,o),c={$setOnInsert:{key:t,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:t},o),d={$set:Object.assign({key:t,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(t,r,n,i).then(y=>l(y)).catch(y=>f(y)):f(m)})}else f(h)})})}_get(t,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:t,$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}]},n);return this._collection.findOne(i)}_delete(t,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:t},n);return this._collection.deleteOne(i).then(s=>s.deletedCount>0)}};Rm.exports=Ml});var Bm=V((g6,Tm)=>{var yv=Ai(),gv=Ce(),Ul=class extends yv{constructor(t,r=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.dbName=t.dbName,this.tableName=t.tableName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.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(t){return new Promise(r=>{this._getConnection().then(n=>{n.query("DELETE FROM ??.?? WHERE expire < ?",[this.dbName,this.tableName,t],()=>{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((t,r)=>{this.client.getConnection((n,i)=>{if(n)return r(n);t(i)})});case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();default:return Promise.resolve(this.client)}}_releaseConnection(t){switch(this.clientType){case"pool":return t.release();case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);default:return!0}}_createDbAndTable(){return new Promise((t,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),t()})})}).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(t){if(typeof t>"u")if(this.client.constructor.name==="Connection")t="connection";else if(this.client.constructor.name==="Pool")t="pool";else if(this.client.constructor.name==="Sequelize")t="sequelize";else throw new Error("storeType is not defined");this._clientType=t.toLowerCase()}get dbName(){return this._dbName}set dbName(t){this._dbName=typeof t>"u"?"rtlmtrflx":t}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(t){this._clearExpiredByTimeout=typeof t>"u"?!0:!!t}_getRateLimiterRes(t,r,n){let i=new gv,[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(t,r,n,i,s){return new Promise((o,a)=>{t.query("BEGIN",c=>{if(c)return t.rollback(),a(c);let u=Date.now(),l=i>0?u+i:null,f,h;s?(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
15
+ `+a+t.substr(o+1),s=i-o-1,o=-1,++i}else(t[i]===" "||t[i]===" "||t[i]===",")&&(o=i);return t}function ag(e){return e.replace(/^\s+/,"")}});var e0=V((K_,t0)=>{var Ye=dt();sn();Nt();var Zf=t0.exports=Ye.sha256=Ye.sha256||{};Ye.md.sha256=Ye.md.algorithms.sha256=Zf;Zf.create=function(){Jf||cg();var e=null,t=Ye.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 t=Ye.util.createBuffer(),e={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=Ye.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 t.putBytes(i),Xf(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Ye.util.createBuffer();i.putBytes(t.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(Ja.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:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4,h5:e.h5,h6:e.h6,h7:e.h7};Xf(f,r,i);var h=Ye.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 Ja=null,Jf=!1,jf=null;function cg(){Ja=String.fromCharCode(128),Ja+=Ye.util.fillString(String.fromCharCode(0),64),jf=[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],Jf=!0}function Xf(e,t,r){for(var n,i,s,o,a,c,u,l,f,h,p,d,m,y,g,x=r.length();x>=64;){for(u=0;u<16;++u)t[u]=r.getInt32();for(;u<64;++u)n=t[u-2],n=(n>>>17|n<<15)^(n>>>19|n<<13)^n>>>10,i=t[u-15],i=(i>>>7|i<<25)^(i>>>18|i<<14)^i>>>3,t[u]=n+t[u-7]+i+t[u-16]|0;for(l=e.h0,f=e.h1,h=e.h2,p=e.h3,d=e.h4,m=e.h5,y=e.h6,g=e.h7,u=0;u<64;++u)o=(d>>>6|d<<26)^(d>>>11|d<<21)^(d>>>25|d<<7),a=y^d&(m^y),s=(l>>>2|l<<30)^(l>>>13|l<<19)^(l>>>22|l<<10),c=l&f|h&(l^f),n=g+o+a+jf[u]+t[u],i=s+c,g=y,y=m,m=d,d=p+n>>>0,p=h,h=f,f=l,l=n+i>>>0;e.h0=e.h0+l|0,e.h1=e.h1+f|0,e.h2=e.h2+h|0,e.h3=e.h3+p|0,e.h4=e.h4+d|0,e.h5=e.h5+m|0,e.h6=e.h6+y|0,e.h7=e.h7+g|0,x-=64}}});var n0=V((V_,r0)=>{var We=dt();Nt();var zs=null;We.util.isNodejs&&!We.options.usePureJavaScript&&!process.versions["node-webkit"]&&(zs=Ui());var ug=r0.exports=We.prng=We.prng||{};ug.create=function(e){for(var t={plugin:e,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},r=e.md,n=new Array(32),i=0;i<32;++i)n[i]=r.create();t.pools=n,t.pool=0,t.generate=function(u,l){if(!l)return t.generateSync(u);var f=t.plugin.cipher,h=t.plugin.increment,p=t.plugin.formatKey,d=t.plugin.formatSeed,m=We.util.createBuffer();t.key=null,y();function y(g){if(g)return l(g);if(m.length()>=u)return l(null,m.getBytes(u));if(t.generated>1048575&&(t.key=null),t.key===null)return We.util.nextTick(function(){s(y)});var x=f(t.key,t.seed);t.generated+=x.length,m.putBytes(x),t.key=p(f(t.key,h(t.seed))),t.seed=d(f(t.key,t.seed)),We.util.setImmediate(y)}},t.generateSync=function(u){var l=t.plugin.cipher,f=t.plugin.increment,h=t.plugin.formatKey,p=t.plugin.formatSeed;t.key=null;for(var d=We.util.createBuffer();d.length()<u;){t.generated>1048575&&(t.key=null),t.key===null&&o();var m=l(t.key,t.seed);t.generated+=m.length,d.putBytes(m),t.key=h(l(t.key,f(t.seed))),t.seed=p(l(t.key,t.seed))}return d.getBytes(u)};function s(u){if(t.pools[0].messageLength>=32)return a(),u();var l=32-t.pools[0].messageLength<<5;t.seedFile(l,function(f,h){if(f)return u(f);t.collect(h),a(),u()})}function o(){if(t.pools[0].messageLength>=32)return a();var u=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(u)),a()}function a(){t.reseeds=t.reseeds===4294967295?0:t.reseeds+1;var u=t.plugin.md.create();u.update(t.keyBytes);for(var l=1,f=0;f<32;++f)t.reseeds%l===0&&(u.update(t.pools[f].digest().getBytes()),t.pools[f].start()),l=l<<1;t.keyBytes=u.digest().getBytes(),u.start(),u.update(t.keyBytes);var h=u.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(h),t.generated=0}function c(u){var l=null,f=We.util.globalScope,h=f.crypto||f.msCrypto;h&&h.getRandomValues&&(l=function(_){return h.getRandomValues(_)});var p=We.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 y=0;y<m.length;++y)p.putInt32(m[y])}catch(_){if(!(typeof QuotaExceededError<"u"&&_ instanceof QuotaExceededError))throw _}}if(p.length()<u)for(var g,x,b,C=Math.floor(Math.random()*65536);p.length()<u;){x=16807*(C&65535),g=16807*(C>>16),x+=(g&32767)<<16,x+=g>>15,x=(x&2147483647)+(x>>31),C=x&4294967295;for(var y=0;y<3;++y)b=C>>>(y<<3),b^=Math.floor(Math.random()*256),p.putByte(b&255)}return p.getBytes(u)}return zs?(t.seedFile=function(u,l){zs.randomBytes(u,function(f,h){if(f)return l(f);l(null,h.toString())})},t.seedFileSync=function(u){return zs.randomBytes(u).toString()}):(t.seedFile=function(u,l){try{l(null,c(u))}catch(f){l(f)}},t.seedFileSync=c),t.collect=function(u){for(var l=u.length,f=0;f<l;++f)t.pools[t.pool].update(u.substr(f,1)),t.pool=t.pool===31?0:t.pool+1},t.collectInt=function(u,l){for(var f="",h=0;h<l;h+=8)f+=String.fromCharCode(u>>h&255);t.collect(f)},t.registerWorker=function(u){if(u===self)t.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&&t.seedFile(h.forge.prng.needed,function(p,d){u.postMessage({forge:{prng:{err:p,bytes:d}}})})};u.addEventListener("message",l)}},t}});var Fi=V((q_,ja)=>{var Qt=dt();Ks();e0();n0();Nt();(function(){if(Qt.random&&Qt.random.getBytes){ja.exports=Qt.random;return}(function(e){var t={},r=new Array(4),n=Qt.util.createBuffer();t.formatKey=function(f){var h=Qt.util.createBuffer(f);return f=new Array(4),f[0]=h.getInt32(),f[1]=h.getInt32(),f[2]=h.getInt32(),f[3]=h.getInt32(),Qt.aes._expandKey(f,!1)},t.formatSeed=function(f){var h=Qt.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},t.cipher=function(f,h){return Qt.aes._updateBlock(f,h,r,!1),n.putInt32(r[0]),n.putInt32(r[1]),n.putInt32(r[2]),n.putInt32(r[3]),n.getBytes()},t.increment=function(f){return++f[3],f},t.md=Qt.md.sha256;function i(){var f=Qt.prng.create(t);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=Qt.util.globalScope,c=a.crypto||a.msCrypto;if(c&&c.getRandomValues&&(o=function(f){return c.getRandomValues(f)}),Qt.options.usePureJavaScript||!Qt.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}e&&(e().mousemove(function(f){s.collectInt(f.clientX,16),s.collectInt(f.clientY,16)}),e().keypress(function(f){s.collectInt(f.charCode,8)}))}if(!Qt.random)Qt.random=s;else for(var l in s)Qt.random[l]=s[l];Qt.random.createInstance=i,ja.exports=Qt.random})(typeof jQuery<"u"?jQuery:null)})()});var a0=V(($_,o0)=>{var pe=dt();Nt();var tc=[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],i0=[1,2,3,5],lg=function(e,t){return e<<t&65535|(e&65535)>>16-t},fg=function(e,t){return(e&65535)>>t|e<<16-t&65535};o0.exports=pe.rc2=pe.rc2||{};pe.rc2.expandKey=function(e,t){typeof e=="string"&&(e=pe.util.createBuffer(e)),t=t||128;var r=e,n=e.length(),i=t,s=Math.ceil(i/8),o=255>>(i&7),a;for(a=n;a<128;a++)r.putByte(tc[r.at(a-1)+r.at(a-n)&255]);for(r.setAt(128-s,tc[r.at(128-s)&o]),a=127-s;a>=0;a--)r.setAt(a,tc[r.at(a+1)^r.at(a+s)]);return r};var s0=function(e,t,r){var n=!1,i=null,s=null,o=null,a,c,u,l,f=[];for(e=pe.rc2.expandKey(e,t),u=0;u<64;u++)f.push(e.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]=lg(d[u],i0[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]=fg(d[u],i0[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 y=i.getInt16Le();o!==null&&(r?y^=o.getInt16Le():o.putInt16Le(y)),m.push(y&65535)}l=r?0:63;for(var g=0;g<d.length;g++)for(var x=0;x<d[g][0];x++)d[g][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=pe.util.createBuffer(d)),n=!1,i=pe.util.createBuffer(),s=m||new pe.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 y=i.length()===8?8:8-i.length();i.fillWithByte(y,y)}if(m&&(n=!0,p.update()),!r&&(m=i.length()===0,m))if(d)m=d(8,s,!r);else{var g=s.length(),x=s.at(g-1);x>g?m=!1:s.truncate(x)}return m}},p};pe.rc2.startEncrypting=function(e,t,r){var n=pe.rc2.createEncryptionCipher(e,128);return n.start(t,r),n};pe.rc2.createEncryptionCipher=function(e,t){return s0(e,t,!0)};pe.rc2.startDecrypting=function(e,t,r){var n=pe.rc2.createDecryptionCipher(e,128);return n.start(t,r),n};pe.rc2.createDecryptionCipher=function(e,t){return s0(e,t,!1)}});var Ws=V((H_,m0)=>{var ec=dt();m0.exports=ec.jsbn=ec.jsbn||{};var lr,hg=0xdeadbeefcafe,c0=(hg&16777215)==15715070;function R(e,t,r){this.data=[],e!=null&&(typeof e=="number"?this.fromNumber(e,t,r):t==null&&typeof e!="string"?this.fromString(e,256):this.fromString(e,t))}ec.jsbn.BigInteger=R;function at(){return new R(null)}function dg(e,t,r,n,i,s){for(;--s>=0;){var o=t*this.data[e++]+r.data[n]+i;i=Math.floor(o/67108864),r.data[n++]=o&67108863}return i}function pg(e,t,r,n,i,s){for(var o=t&32767,a=t>>15;--s>=0;){var c=this.data[e]&32767,u=this.data[e++]>>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 u0(e,t,r,n,i,s){for(var o=t&16383,a=t>>14;--s>=0;){var c=this.data[e]&16383,u=this.data[e++]>>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"?(R.prototype.am=u0,lr=28):c0&&navigator.appName=="Microsoft Internet Explorer"?(R.prototype.am=pg,lr=30):c0&&navigator.appName!="Netscape"?(R.prototype.am=dg,lr=26):(R.prototype.am=u0,lr=28);R.prototype.DB=lr;R.prototype.DM=(1<<lr)-1;R.prototype.DV=1<<lr;var rc=52;R.prototype.FV=Math.pow(2,rc);R.prototype.F1=rc-lr;R.prototype.F2=2*lr-rc;var mg="0123456789abcdefghijklmnopqrstuvwxyz",Gs=new Array,Hn,Be;Hn="0".charCodeAt(0);for(Be=0;Be<=9;++Be)Gs[Hn++]=Be;Hn="a".charCodeAt(0);for(Be=10;Be<36;++Be)Gs[Hn++]=Be;Hn="A".charCodeAt(0);for(Be=10;Be<36;++Be)Gs[Hn++]=Be;function l0(e){return mg.charAt(e)}function f0(e,t){var r=Gs[e.charCodeAt(t)];return r??-1}function yg(e){for(var t=this.t-1;t>=0;--t)e.data[t]=this.data[t];e.t=this.t,e.s=this.s}function gg(e){this.t=1,this.s=e<0?-1:0,e>0?this.data[0]=e:e<-1?this.data[0]=e+this.DV:this.t=0}function Br(e){var t=at();return t.fromInt(e),t}function xg(e,t){var r;if(t==16)r=4;else if(t==8)r=3;else if(t==256)r=8;else if(t==2)r=1;else if(t==32)r=5;else if(t==4)r=2;else{this.fromRadix(e,t);return}this.t=0,this.s=0;for(var n=e.length,i=!1,s=0;--n>=0;){var o=r==8?e[n]&255:f0(e,n);if(o<0){e.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&&e[0]&128&&(this.s=-1,s>0&&(this.data[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),i&&R.ZERO.subTo(this,this)}function Eg(){for(var e=this.s&this.DM;this.t>0&&this.data[this.t-1]==e;)--this.t}function bg(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(e==16)t=4;else if(e==8)t=3;else if(e==2)t=1;else if(e==32)t=5;else if(e==4)t=2;else return this.toRadix(e);var r=(1<<t)-1,n,i=!1,s="",o=this.t,a=this.DB-o*this.DB%t;if(o-- >0)for(a<this.DB&&(n=this.data[o]>>a)>0&&(i=!0,s=l0(n));o>=0;)a<t?(n=(this.data[o]&(1<<a)-1)<<t-a,n|=this.data[--o]>>(a+=this.DB-t)):(n=this.data[o]>>(a-=t)&r,a<=0&&(a+=this.DB,--o)),n>0&&(i=!0),i&&(s+=l0(n));return i?s:"0"}function wg(){var e=at();return R.ZERO.subTo(this,e),e}function vg(){return this.s<0?this.negate():this}function _g(e){var t=this.s-e.s;if(t!=0)return t;var r=this.t;if(t=r-e.t,t!=0)return this.s<0?-t:t;for(;--r>=0;)if((t=this.data[r]-e.data[r])!=0)return t;return 0}function Ys(e){var t=1,r;return(r=e>>>16)!=0&&(e=r,t+=16),(r=e>>8)!=0&&(e=r,t+=8),(r=e>>4)!=0&&(e=r,t+=4),(r=e>>2)!=0&&(e=r,t+=2),(r=e>>1)!=0&&(e=r,t+=1),t}function Sg(){return this.t<=0?0:this.DB*(this.t-1)+Ys(this.data[this.t-1]^this.s&this.DM)}function Ag(e,t){var r;for(r=this.t-1;r>=0;--r)t.data[r+e]=this.data[r];for(r=e-1;r>=0;--r)t.data[r]=0;t.t=this.t+e,t.s=this.s}function Ig(e,t){for(var r=e;r<this.t;++r)t.data[r-e]=this.data[r];t.t=Math.max(this.t-e,0),t.s=this.s}function Rg(e,t){var r=e%this.DB,n=this.DB-r,i=(1<<n)-1,s=Math.floor(e/this.DB),o=this.s<<r&this.DM,a;for(a=this.t-1;a>=0;--a)t.data[a+s+1]=this.data[a]>>n|o,o=(this.data[a]&i)<<r;for(a=s-1;a>=0;--a)t.data[a]=0;t.data[s]=o,t.t=this.t+s+1,t.s=this.s,t.clamp()}function Cg(e,t){t.s=this.s;var r=Math.floor(e/this.DB);if(r>=this.t){t.t=0;return}var n=e%this.DB,i=this.DB-n,s=(1<<n)-1;t.data[0]=this.data[r]>>n;for(var o=r+1;o<this.t;++o)t.data[o-r-1]|=(this.data[o]&s)<<i,t.data[o-r]=this.data[o]>>n;n>0&&(t.data[this.t-r-1]|=(this.s&s)<<i),t.t=this.t-r,t.clamp()}function Tg(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this.data[r]-e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n-=e.s;r<this.t;)n+=this.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n-=e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n-=e.s}t.s=n<0?-1:0,n<-1?t.data[r++]=this.DV+n:n>0&&(t.data[r++]=n),t.t=r,t.clamp()}function Bg(e,t){var r=this.abs(),n=e.abs(),i=r.t;for(t.t=i+n.t;--i>=0;)t.data[i]=0;for(i=0;i<n.t;++i)t.data[i+r.t]=r.am(0,n.data[i],t,i,0,r.t);t.s=0,t.clamp(),this.s!=e.s&&R.ZERO.subTo(t,t)}function Lg(e){for(var t=this.abs(),r=e.t=2*t.t;--r>=0;)e.data[r]=0;for(r=0;r<t.t-1;++r){var n=t.am(r,t.data[r],e,2*r,0,1);(e.data[r+t.t]+=t.am(r+1,2*t.data[r],e,2*r+1,n,t.t-r-1))>=t.DV&&(e.data[r+t.t]-=t.DV,e.data[r+t.t+1]=1)}e.t>0&&(e.data[e.t-1]+=t.am(r,t.data[r],e,2*r,0,1)),e.s=0,e.clamp()}function Pg(e,t,r){var n=e.abs();if(!(n.t<=0)){var i=this.abs();if(i.t<n.t){t?.fromInt(0),r!=null&&this.copyTo(r);return}r==null&&(r=at());var s=at(),o=this.s,a=e.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),h=this.FV/f,p=(1<<this.F1)/f,d=1<<this.F2,m=r.t,y=m-u,g=t??at();for(s.dlShiftTo(y,g),r.compareTo(g)>=0&&(r.data[r.t++]=1,r.subTo(g,r)),R.ONE.dlShiftTo(u,g),g.subTo(s,s);s.t<u;)s.data[s.t++]=0;for(;--y>=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,y,0,u))<x)for(s.dlShiftTo(y,g),r.subTo(g,r);r.data[m]<--x;)r.subTo(g,r)}t!=null&&(r.drShiftTo(u,t),o!=a&&R.ZERO.subTo(t,t)),r.t=u,r.clamp(),c>0&&r.rShiftTo(c,r),o<0&&R.ZERO.subTo(r,r)}}}function Dg(e){var t=at();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(R.ZERO)>0&&e.subTo(t,t),t}function on(e){this.m=e}function Ng(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function kg(e){return e}function Og(e){e.divRemTo(this.m,null,e)}function Mg(e,t,r){e.multiplyTo(t,r),this.reduce(r)}function Ug(e,t){e.squareTo(t),this.reduce(t)}on.prototype.convert=Ng;on.prototype.revert=kg;on.prototype.reduce=Og;on.prototype.mulTo=Mg;on.prototype.sqrTo=Ug;function Fg(){if(this.t<1)return 0;var e=this.data[0];if(!(e&1))return 0;var t=e&3;return t=t*(2-(e&15)*t)&15,t=t*(2-(e&255)*t)&255,t=t*(2-((e&65535)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t}function an(e){this.m=e,this.mp=e.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function Kg(e){var t=at();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(R.ZERO)>0&&this.m.subTo(t,t),t}function Vg(e){var t=at();return e.copyTo(t),this.reduce(t),t}function qg(e){for(;e.t<=this.mt2;)e.data[e.t++]=0;for(var t=0;t<this.m.t;++t){var r=e.data[t]&32767,n=r*this.mpl+((r*this.mph+(e.data[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(r=t+this.m.t,e.data[r]+=this.m.am(0,n,e,t,0,this.m.t);e.data[r]>=e.DV;)e.data[r]-=e.DV,e.data[++r]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)}function $g(e,t){e.squareTo(t),this.reduce(t)}function Hg(e,t,r){e.multiplyTo(t,r),this.reduce(r)}an.prototype.convert=Kg;an.prototype.revert=Vg;an.prototype.reduce=qg;an.prototype.mulTo=Hg;an.prototype.sqrTo=$g;function zg(){return(this.t>0?this.data[0]&1:this.s)==0}function Gg(e,t){if(e>4294967295||e<1)return R.ONE;var r=at(),n=at(),i=t.convert(this),s=Ys(e)-1;for(i.copyTo(r);--s>=0;)if(t.sqrTo(r,n),(e&1<<s)>0)t.mulTo(n,i,r);else{var o=r;r=n,n=o}return t.revert(r)}function Yg(e,t){var r;return e<256||t.isEven()?r=new on(t):r=new an(t),this.exp(e,r)}R.prototype.copyTo=yg;R.prototype.fromInt=gg;R.prototype.fromString=xg;R.prototype.clamp=Eg;R.prototype.dlShiftTo=Ag;R.prototype.drShiftTo=Ig;R.prototype.lShiftTo=Rg;R.prototype.rShiftTo=Cg;R.prototype.subTo=Tg;R.prototype.multiplyTo=Bg;R.prototype.squareTo=Lg;R.prototype.divRemTo=Pg;R.prototype.invDigit=Fg;R.prototype.isEven=zg;R.prototype.exp=Gg;R.prototype.toString=bg;R.prototype.negate=wg;R.prototype.abs=vg;R.prototype.compareTo=_g;R.prototype.bitLength=Sg;R.prototype.mod=Dg;R.prototype.modPowInt=Yg;R.ZERO=Br(0);R.ONE=Br(1);function Wg(){var e=at();return this.copyTo(e),e}function Qg(){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 Xg(){return this.t==0?this.s:this.data[0]<<24>>24}function Zg(){return this.t==0?this.s:this.data[0]<<16>>16}function Jg(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function jg(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function tx(e){if(e==null&&(e=10),this.signum()==0||e<2||e>36)return"0";var t=this.chunkSize(e),r=Math.pow(e,t),n=Br(r),i=at(),s=at(),o="";for(this.divRemTo(n,i,s);i.signum()>0;)o=(r+s.intValue()).toString(e).substr(1)+o,i.divRemTo(n,i,s);return s.intValue().toString(e)+o}function ex(e,t){this.fromInt(0),t==null&&(t=10);for(var r=this.chunkSize(t),n=Math.pow(t,r),i=!1,s=0,o=0,a=0;a<e.length;++a){var c=f0(e,a);if(c<0){e.charAt(a)=="-"&&this.signum()==0&&(i=!0);continue}o=t*o+c,++s>=r&&(this.dMultiply(n),this.dAddOffset(o,0),s=0,o=0)}s>0&&(this.dMultiply(Math.pow(t,s)),this.dAddOffset(o,0)),i&&R.ZERO.subTo(this,this)}function rx(e,t,r){if(typeof t=="number")if(e<2)this.fromInt(1);else for(this.fromNumber(e,r),this.testBit(e-1)||this.bitwiseTo(R.ONE.shiftLeft(e-1),nc,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(R.ONE.shiftLeft(e-1),this);else{var n=new Array,i=e&7;n.length=(e>>3)+1,t.nextBytes(n),i>0?n[0]&=(1<<i)-1:n[0]=0,this.fromString(n,256)}}function nx(){var e=this.t,t=new Array;t[0]=this.s;var r=this.DB-e*this.DB%8,n,i=0;if(e-- >0)for(r<this.DB&&(n=this.data[e]>>r)!=(this.s&this.DM)>>r&&(t[i++]=n|this.s<<this.DB-r);e>=0;)r<8?(n=(this.data[e]&(1<<r)-1)<<8-r,n|=this.data[--e]>>(r+=this.DB-8)):(n=this.data[e]>>(r-=8)&255,r<=0&&(r+=this.DB,--e)),n&128&&(n|=-256),i==0&&(this.s&128)!=(n&128)&&++i,(i>0||n!=this.s)&&(t[i++]=n);return t}function ix(e){return this.compareTo(e)==0}function sx(e){return this.compareTo(e)<0?this:e}function ox(e){return this.compareTo(e)>0?this:e}function ax(e,t,r){var n,i,s=Math.min(e.t,this.t);for(n=0;n<s;++n)r.data[n]=t(this.data[n],e.data[n]);if(e.t<this.t){for(i=e.s&this.DM,n=s;n<this.t;++n)r.data[n]=t(this.data[n],i);r.t=this.t}else{for(i=this.s&this.DM,n=s;n<e.t;++n)r.data[n]=t(i,e.data[n]);r.t=e.t}r.s=t(this.s,e.s),r.clamp()}function cx(e,t){return e&t}function ux(e){var t=at();return this.bitwiseTo(e,cx,t),t}function nc(e,t){return e|t}function lx(e){var t=at();return this.bitwiseTo(e,nc,t),t}function h0(e,t){return e^t}function fx(e){var t=at();return this.bitwiseTo(e,h0,t),t}function d0(e,t){return e&~t}function hx(e){var t=at();return this.bitwiseTo(e,d0,t),t}function dx(){for(var e=at(),t=0;t<this.t;++t)e.data[t]=this.DM&~this.data[t];return e.t=this.t,e.s=~this.s,e}function px(e){var t=at();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function mx(e){var t=at();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function yx(e){if(e==0)return-1;var t=0;return e&65535||(e>>=16,t+=16),e&255||(e>>=8,t+=8),e&15||(e>>=4,t+=4),e&3||(e>>=2,t+=2),e&1||++t,t}function gx(){for(var e=0;e<this.t;++e)if(this.data[e]!=0)return e*this.DB+yx(this.data[e]);return this.s<0?this.t*this.DB:-1}function xx(e){for(var t=0;e!=0;)e&=e-1,++t;return t}function Ex(){for(var e=0,t=this.s&this.DM,r=0;r<this.t;++r)e+=xx(this.data[r]^t);return e}function bx(e){var t=Math.floor(e/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<e%this.DB)!=0}function wx(e,t){var r=R.ONE.shiftLeft(e);return this.bitwiseTo(r,t,r),r}function vx(e){return this.changeBit(e,nc)}function _x(e){return this.changeBit(e,d0)}function Sx(e){return this.changeBit(e,h0)}function Ax(e,t){for(var r=0,n=0,i=Math.min(e.t,this.t);r<i;)n+=this.data[r]+e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;if(e.t<this.t){for(n+=e.s;r<this.t;)n+=this.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=this.s}else{for(n+=this.s;r<e.t;)n+=e.data[r],t.data[r++]=n&this.DM,n>>=this.DB;n+=e.s}t.s=n<0?-1:0,n>0?t.data[r++]=n:n<-1&&(t.data[r++]=this.DV+n),t.t=r,t.clamp()}function Ix(e){var t=at();return this.addTo(e,t),t}function Rx(e){var t=at();return this.subTo(e,t),t}function Cx(e){var t=at();return this.multiplyTo(e,t),t}function Tx(e){var t=at();return this.divRemTo(e,t,null),t}function Bx(e){var t=at();return this.divRemTo(e,null,t),t}function Lx(e){var t=at(),r=at();return this.divRemTo(e,t,r),new Array(t,r)}function Px(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function Dx(e,t){if(e!=0){for(;this.t<=t;)this.data[this.t++]=0;for(this.data[t]+=e;this.data[t]>=this.DV;)this.data[t]-=this.DV,++t>=this.t&&(this.data[this.t++]=0),++this.data[t]}}function Ki(){}function p0(e){return e}function Nx(e,t,r){e.multiplyTo(t,r)}function kx(e,t){e.squareTo(t)}Ki.prototype.convert=p0;Ki.prototype.revert=p0;Ki.prototype.mulTo=Nx;Ki.prototype.sqrTo=kx;function Ox(e){return this.exp(e,new Ki)}function Mx(e,t,r){var n=Math.min(this.t+e.t,t);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,e.data[n],r,n,0,this.t);for(i=Math.min(e.t,t);n<i;++n)this.am(0,e.data[n],r,n,0,t-n);r.clamp()}function Ux(e,t,r){--t;var n=r.t=this.t+e.t-t;for(r.s=0;--n>=0;)r.data[n]=0;for(n=Math.max(t-this.t,0);n<e.t;++n)r.data[this.t+n-t]=this.am(t-n,e.data[n],r,0,0,this.t+n-t);r.clamp(),r.drShiftTo(1,r)}function zn(e){this.r2=at(),this.q3=at(),R.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}function Fx(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=at();return e.copyTo(t),this.reduce(t),t}function Kx(e){return e}function Vx(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)}function qx(e,t){e.squareTo(t),this.reduce(t)}function $x(e,t,r){e.multiplyTo(t,r),this.reduce(r)}zn.prototype.convert=Fx;zn.prototype.revert=Kx;zn.prototype.reduce=Vx;zn.prototype.mulTo=$x;zn.prototype.sqrTo=qx;function Hx(e,t){var r=e.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 on(t):t.isEven()?s=new zn(t):s=new an(t);var o=new Array,a=3,c=n-1,u=(1<<n)-1;if(o[1]=s.convert(this),n>1){var l=at();for(s.sqrTo(o[1],l);a<=u;)o[a]=at(),s.mulTo(l,o[a-2],o[a]),a+=2}var f=e.t-1,h,p=!0,d=at(),m;for(r=Ys(e.data[f])-1;f>=0;){for(r>=c?h=e.data[f]>>r-c&u:(h=(e.data[f]&(1<<r+1)-1)<<c-r,f>0&&(h|=e.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&&!(e.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 zx(e){var t=this.s<0?this.negate():this.clone(),r=e.s<0?e.negate():e.clone();if(t.compareTo(r)<0){var n=t;t=r,r=n}var i=t.getLowestSetBit(),s=r.getLowestSetBit();if(s<0)return t;for(i<s&&(s=i),s>0&&(t.rShiftTo(s,t),r.rShiftTo(s,r));t.signum()>0;)(i=t.getLowestSetBit())>0&&t.rShiftTo(i,t),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),t.compareTo(r)>=0?(t.subTo(r,t),t.rShiftTo(1,t)):(r.subTo(t,r),r.rShiftTo(1,r));return s>0&&r.lShiftTo(s,r),r}function Gx(e){if(e<=0)return 0;var t=this.DV%e,r=this.s<0?e-1:0;if(this.t>0)if(t==0)r=this.data[0]%e;else for(var n=this.t-1;n>=0;--n)r=(t*r+this.data[n])%e;return r}function Yx(e){var t=e.isEven();if(this.isEven()&&t||e.signum()==0)return R.ZERO;for(var r=e.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),t?((!i.isEven()||!s.isEven())&&(i.addTo(this,i),s.subTo(e,s)),i.rShiftTo(1,i)):s.isEven()||s.subTo(e,s),s.rShiftTo(1,s);for(;n.isEven();)n.rShiftTo(1,n),t?((!o.isEven()||!a.isEven())&&(o.addTo(this,o),a.subTo(e,a)),o.rShiftTo(1,o)):a.isEven()||a.subTo(e,a),a.rShiftTo(1,a);r.compareTo(n)>=0?(r.subTo(n,r),t&&i.subTo(o,i),s.subTo(a,s)):(n.subTo(r,n),t&&o.subTo(i,o),a.subTo(s,a))}if(n.compareTo(R.ONE)!=0)return R.ZERO;if(a.compareTo(e)>=0)return a.subtract(e);if(a.signum()<0)a.addTo(e,a);else return a;return a.signum()<0?a.add(e):a}var Me=[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],Wx=(1<<26)/Me[Me.length-1];function Qx(e){var t,r=this.abs();if(r.t==1&&r.data[0]<=Me[Me.length-1]){for(t=0;t<Me.length;++t)if(r.data[0]==Me[t])return!0;return!1}if(r.isEven())return!1;for(t=1;t<Me.length;){for(var n=Me[t],i=t+1;i<Me.length&&n<Wx;)n*=Me[i++];for(n=r.modInt(n);t<i;)if(n%Me[t++]==0)return!1}return r.millerRabin(e)}function Xx(e){var t=this.subtract(R.ONE),r=t.getLowestSetBit();if(r<=0)return!1;for(var n=t.shiftRight(r),i=Zx(),s,o=0;o<e;++o){do s=new R(this.bitLength(),i);while(s.compareTo(R.ONE)<=0||s.compareTo(t)>=0);var a=s.modPow(n,this);if(a.compareTo(R.ONE)!=0&&a.compareTo(t)!=0){for(var c=1;c++<r&&a.compareTo(t)!=0;)if(a=a.modPowInt(2,this),a.compareTo(R.ONE)==0)return!1;if(a.compareTo(t)!=0)return!1}}return!0}function Zx(){return{nextBytes:function(e){for(var t=0;t<e.length;++t)e[t]=Math.floor(Math.random()*256)}}}R.prototype.chunkSize=Jg;R.prototype.toRadix=tx;R.prototype.fromRadix=ex;R.prototype.fromNumber=rx;R.prototype.bitwiseTo=ax;R.prototype.changeBit=wx;R.prototype.addTo=Ax;R.prototype.dMultiply=Px;R.prototype.dAddOffset=Dx;R.prototype.multiplyLowerTo=Mx;R.prototype.multiplyUpperTo=Ux;R.prototype.modInt=Gx;R.prototype.millerRabin=Xx;R.prototype.clone=Wg;R.prototype.intValue=Qg;R.prototype.byteValue=Xg;R.prototype.shortValue=Zg;R.prototype.signum=jg;R.prototype.toByteArray=nx;R.prototype.equals=ix;R.prototype.min=sx;R.prototype.max=ox;R.prototype.and=ux;R.prototype.or=lx;R.prototype.xor=fx;R.prototype.andNot=hx;R.prototype.not=dx;R.prototype.shiftLeft=px;R.prototype.shiftRight=mx;R.prototype.getLowestSetBit=gx;R.prototype.bitCount=Ex;R.prototype.testBit=bx;R.prototype.setBit=vx;R.prototype.clearBit=_x;R.prototype.flipBit=Sx;R.prototype.add=Ix;R.prototype.subtract=Rx;R.prototype.multiply=Cx;R.prototype.divide=Tx;R.prototype.remainder=Bx;R.prototype.divideAndRemainder=Lx;R.prototype.modPow=Hx;R.prototype.modInverse=Yx;R.prototype.pow=Ox;R.prototype.gcd=zx;R.prototype.isProbablePrime=Qx});var b0=V((z_,E0)=>{var Qe=dt();sn();Nt();var g0=E0.exports=Qe.sha1=Qe.sha1||{};Qe.md.sha1=Qe.md.algorithms.sha1=g0;g0.create=function(){x0||Jx();var e=null,t=Qe.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 t=Qe.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},n},n.start(),n.update=function(i,s){s==="utf8"&&(i=Qe.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 t.putBytes(i),y0(e,r,t),(t.read>2048||t.length()===0)&&t.compact(),n},n.digest=function(){var i=Qe.util.createBuffer();i.putBytes(t.bytes());var s=n.fullMessageLength[n.fullMessageLength.length-1]+n.messageLengthSize,o=s&n.blockLength-1;i.putBytes(ic.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:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};y0(f,r,i);var h=Qe.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 ic=null,x0=!1;function Jx(){ic=String.fromCharCode(128),ic+=Qe.util.fillString(String.fromCharCode(0),64),x0=!0}function y0(e,t,r){for(var n,i,s,o,a,c,u,l,f=r.length();f>=64;){for(i=e.h0,s=e.h1,o=e.h2,a=e.h3,c=e.h4,l=0;l<16;++l)n=r.getInt32(),t[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=t[l-3]^t[l-8]^t[l-14]^t[l-16],n=n<<1|n>>>31,t[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=t[l-3]^t[l-8]^t[l-14]^t[l-16],n=n<<1|n>>>31,t[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=t[l-6]^t[l-16]^t[l-28]^t[l-32],n=n<<2|n>>>30,t[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=t[l-6]^t[l-16]^t[l-28]^t[l-32],n=n<<2|n>>>30,t[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=t[l-6]^t[l-16]^t[l-28]^t[l-32],n=n<<2|n>>>30,t[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;e.h0=e.h0+i|0,e.h1=e.h1+s|0,e.h2=e.h2+o|0,e.h3=e.h3+a|0,e.h4=e.h4+c|0,f-=64}}});var _0=V((G_,v0)=>{var Xe=dt();Nt();Fi();b0();var w0=v0.exports=Xe.pkcs1=Xe.pkcs1||{};w0.encode_rsa_oaep=function(e,t,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=Xe.md.sha1.create(),o||(o=s);var a=Math.ceil(e.n.bitLength()/8),c=a-2*s.digestLength-2;if(t.length>c){var u=new Error("RSAES-OAEP input message length is too long.");throw u.length=t.length,u.maxLength=c,u}n||(n=""),s.update(n,"raw");for(var l=s.digest(),f="",h=c-t.length,p=0;p<h;p++)f+="\0";var d=l.getBytes()+f+""+t;if(!i)i=Xe.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=Qs(i,a-s.digestLength-1,o),y=Xe.util.xorBytes(d,m,d.length),g=Qs(y,s.digestLength,o),x=Xe.util.xorBytes(i,g,i.length);return"\0"+x+y};w0.decode_rsa_oaep=function(e,t,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(e.n.bitLength()/8);if(t.length!==o){var y=new Error("RSAES-OAEP encoded message length is invalid.");throw y.length=t.length,y.expectedLength=o,y}if(i===void 0?i=Xe.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=t.charAt(0),u=t.substring(1,i.digestLength+1),l=t.substring(1+i.digestLength),f=Qs(l,i.digestLength,s),h=Xe.util.xorBytes(u,f,u.length),p=Qs(h,o-i.digestLength-1,s),d=Xe.util.xorBytes(l,p,l.length),m=d.substring(0,i.digestLength),y=c!=="\0",g=0;g<i.digestLength;++g)y|=a.charAt(g)!==m.charAt(g);for(var x=1,b=i.digestLength,C=i.digestLength;C<d.length;C++){var _=d.charCodeAt(C),S=_&1^1,P=x?65534:0;y|=_&P,x=x&S,b+=x}if(y||d.charCodeAt(b)!==1)throw new Error("Invalid RSAES-OAEP padding.");return d.substring(b+1)};function Qs(e,t,r){r||(r=Xe.md.sha1.create());for(var n="",i=Math.ceil(t/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(e+o),n+=r.digest().getBytes()}return n.substring(0,t)}});var S0=V((Y_,sc)=>{var Lr=dt();Nt();Ws();Fi();(function(){if(Lr.prime){sc.exports=Lr.prime;return}var e=sc.exports=Lr.prime=Lr.prime||{},t=Lr.jsbn.BigInteger,r=[6,4,2,4,2,4,6,2],n=new t(null);n.fromInt(30);var i=function(f,h){return f|h};e.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||Lr.random,y={nextBytes:function(g){for(var x=m.getBytesSync(g.length),b=0;b<g.length;++b)g[b]=x.charCodeAt(b)}};if(d.name==="PRIMEINC")return s(f,y,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),y=0,g=l(m.bitLength());"millerRabinTests"in p&&(g=p.millerRabinTests);var x=10;"maxBlockTime"in p&&(x=p.maxBlockTime),a(m,f,h,y,g,x,d)}function a(f,h,p,d,m,y,g){var x=+new Date;do{if(f.bitLength()>h&&(f=u(h,p)),f.isProbablePrime(m))return g(null,f);f.dAddOffset(r[d++%8],0)}while(y<0||+new Date-x<y);Lr.util.setImmediate(function(){a(f,h,p,d,m,y,g)})}function c(f,h,p,d){if(typeof Worker>"u")return o(f,h,p,d);var m=u(f,h),y=p.workers,g=p.workLoad||100,x=g*30/8,b=p.workerScript||"forge/prime.worker.js";if(y===-1)return Lr.util.estimateCores(function(_,S){_&&(S=2),y=S-1,C()});C();function C(){y=Math.max(1,y);for(var _=[],S=0;S<y;++S)_[S]=new Worker(b);for(var P=y,S=0;S<y;++S)_[S].addEventListener("message",Y);var D=!1;function Y(W){if(!D){--P;var H=W.data;if(H.found){for(var et=0;et<_.length;++et)_[et].terminate();return D=!0,d(null,new t(H.prime,16))}m.bitLength()>f&&(m=u(f,h));var mt=m.toString(16);W.target.postMessage({hex:mt,workLoad:g}),m.dAddOffset(x,0)}}}}function u(f,h){var p=new t(f,h),d=f-1;return p.testBit(d)||p.bitwiseTo(t.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 Zs=V((W_,L0)=>{var $=dt();Mi();Ws();ks();_0();S0();Fi();Nt();typeof st>"u"&&(st=$.jsbn.BigInteger);var st,oc=$.util.isNodejs?Ui():null,v=$.asn1,Le=$.util;$.pki=$.pki||{};L0.exports=$.pki.rsa=$.rsa=$.rsa||{};var Q=$.pki,jx=[6,4,2,4,2,4,6,2],t1={name:"PrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},e1={name:"RSAPrivateKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},r1={name:"RSAPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:v.Class.UNIVERSAL,type:v.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},n1=$.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},i1={name:"DigestInfo",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:v.Class.UNIVERSAL,type:v.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:v.Class.UNIVERSAL,type:v.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:v.Class.UNIVERSAL,type:v.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:v.Class.UNIVERSAL,type:v.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},s1=function(e){var t;if(e.algorithm in Q.oids)t=Q.oids[e.algorithm];else{var r=new Error("Unknown message digest algorithm.");throw r.algorithm=e.algorithm,r}var n=v.oidToDer(t).getBytes(),i=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[]),s=v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[]);s.value.push(v.create(v.Class.UNIVERSAL,v.Type.OID,!1,n)),s.value.push(v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,""));var o=v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,e.digest().getBytes());return i.value.push(s),i.value.push(o),v.toDer(i).getBytes()},T0=function(e,t,r){if(r)return e.modPow(t.e,t.n);if(!t.p||!t.q)return e.modPow(t.d,t.n);t.dP||(t.dP=t.d.mod(t.p.subtract(st.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(st.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var n;do n=new st($.util.bytesToHex($.random.getBytes(t.n.bitLength()/8)),16);while(n.compareTo(t.n)>=0||!n.gcd(t.n).equals(st.ONE));e=e.multiply(n.modPow(t.e,t.n)).mod(t.n);for(var i=e.mod(t.p).modPow(t.dP,t.p),s=e.mod(t.q).modPow(t.dQ,t.q);i.compareTo(s)<0;)i=i.add(t.p);var o=i.subtract(s).multiply(t.qInv).mod(t.p).multiply(t.q).add(s);return o=o.multiply(n.modInverse(t.n)).mod(t.n),o};Q.rsa.encrypt=function(e,t,r){var n=r,i,s=Math.ceil(t.n.bitLength()/8);r!==!1&&r!==!0?(n=r===2,i=B0(e,t,r)):(i=$.util.createBuffer(),i.putBytes(e));for(var o=new st(i.toHex(),16),a=T0(o,t,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()};Q.rsa.decrypt=function(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8);if(e.length!==i){var s=new Error("Encrypted message length is invalid.");throw s.length=e.length,s.expected=i,s}var o=new st($.util.createBuffer(e).toHex(),16);if(o.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var a=T0(o,t,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?Xs(u.getBytes(),t,r):u.getBytes()};Q.rsa.createKeyPairGenerationState=function(e,t,r){typeof e=="string"&&(e=parseInt(e,10)),e=e||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:e,rng:i,eInt:t||65537,e:new st(null),p:null,q:null,qBits:e>>1,pBits:e-(e>>1),pqState:0,num:null,keys:null},o.e.fromInt(o.eInt);else throw new Error("Invalid key generation algorithm: "+s);return o};Q.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var r=new st(null);r.fromInt(30);for(var n=0,i=function(f,h){return f|h},s=+new Date,o,a=0;e.keys===null&&(t<=0||a<t);){if(e.state===0){var c=e.p===null?e.pBits:e.qBits,u=c-1;e.pqState===0?(e.num=new st(c,e.rng),e.num.testBit(u)||e.num.bitwiseTo(st.ONE.shiftLeft(u),i,e.num),e.num.dAddOffset(31-e.num.mod(r).byteValue(),0),n=0,++e.pqState):e.pqState===1?e.num.bitLength()>c?e.pqState=0:e.num.isProbablePrime(a1(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(jx[n++%8],0):e.pqState===2?e.pqState=e.num.subtract(st.ONE).gcd(e.e).compareTo(st.ONE)===0?3:0:e.pqState===3&&(e.pqState=0,e.p===null?e.p=e.num:e.q=e.num,e.p!==null&&e.q!==null&&++e.state,e.num=null)}else if(e.state===1)e.p.compareTo(e.q)<0&&(e.num=e.p,e.p=e.q,e.q=e.num),++e.state;else if(e.state===2)e.p1=e.p.subtract(st.ONE),e.q1=e.q.subtract(st.ONE),e.phi=e.p1.multiply(e.q1),++e.state;else if(e.state===3)e.phi.gcd(e.e).compareTo(st.ONE)===0?++e.state:(e.p=null,e.q=null,e.state=0);else if(e.state===4)e.n=e.p.multiply(e.q),e.n.bitLength()===e.bits?++e.state:(e.q=null,e.state=0);else if(e.state===5){var l=e.e.modInverse(e.phi);e.keys={privateKey:Q.rsa.setPrivateKey(e.n,e.e,l,e.p,e.q,l.mod(e.p1),l.mod(e.q1),e.q.modInverse(e.p)),publicKey:Q.rsa.setPublicKey(e.n,e.e)}}o=+new Date,a+=o-s,s=o}return e.keys!==null};Q.rsa.generateKeyPair=function(e,t,r,n){if(arguments.length===1?typeof e=="object"?(r=e,e=void 0):typeof e=="function"&&(n=e,e=void 0):arguments.length===2?typeof e=="number"?typeof t=="function"?(n=t,t=void 0):typeof t!="number"&&(r=t,t=void 0):(r=e,n=t,e=void 0,t=void 0):arguments.length===3&&(typeof t=="number"?typeof r=="function"&&(n=r,r=void 0):(n=r,r=t,t=void 0)),r=r||{},e===void 0&&(e=r.bits||2048),t===void 0&&(t=r.e||65537),!$.options.usePureJavaScript&&!r.prng&&e>=256&&e<=16384&&(t===65537||t===3)){if(n){if(A0("generateKeyPair"))return oc.generateKeyPair("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(a,c,u){if(a)return n(a);n(null,{privateKey:Q.privateKeyFromPem(u),publicKey:Q.publicKeyFromPem(c)})});if(I0("generateKey")&&I0("exportKey"))return Le.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:C0(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(a){return Le.globalScope.crypto.subtle.exportKey("pkcs8",a.privateKey)}).then(void 0,function(a){n(a)}).then(function(a){if(a){var c=Q.privateKeyFromAsn1(v.fromDer($.util.createBuffer(a)));n(null,{privateKey:c,publicKey:Q.setRsaPublicKey(c.n,c.e)})}});if(R0("generateKey")&&R0("exportKey")){var i=Le.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:C0(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);i.oncomplete=function(a){var c=a.target.result,u=Le.globalScope.msCrypto.subtle.exportKey("pkcs8",c.privateKey);u.oncomplete=function(l){var f=l.target.result,h=Q.privateKeyFromAsn1(v.fromDer($.util.createBuffer(f)));n(null,{privateKey:h,publicKey:Q.setRsaPublicKey(h.n,h.e)})},u.onerror=function(l){n(l)}},i.onerror=function(a){n(a)};return}}else if(A0("generateKeyPairSync")){var s=oc.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:Q.privateKeyFromPem(s.privateKey),publicKey:Q.publicKeyFromPem(s.publicKey)}}}var o=Q.rsa.createKeyPairGenerationState(e,t,r);if(!n)return Q.rsa.stepKeyPairGenerationState(o,0),o.keys;o1(o,r,n)};Q.setRsaPublicKey=Q.rsa.setPublicKey=function(e,t){var r={n:e,e:t};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 B0(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 Q.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=Xs(u,r,!0);var l=v.fromDer(u,{parseAllBytes:o._parseAllDigestBytes}),f={},h=[];if(!v.validate(l,i1,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=v.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=Xs(u,r,!0),c===u}});var a=Q.rsa.decrypt(i,r,!0,!1);return s.verify(n,a,r.n.bitLength())},r};Q.setRsaPrivateKey=Q.rsa.setPrivateKey=function(e,t,r,n,i,s,o,a){var c={n:e,e:t,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=Q.rsa.decrypt(u,c,!1,!1);if(l==="RSAES-PKCS1-V1_5")l={decode:Xs};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:s1},f=1):(l==="NONE"||l==="NULL"||l===null)&&(l={encode:function(){return u}},f=1);var h=l.encode(u,c.n.bitLength());return Q.rsa.encrypt(h,c,f)},c};Q.wrapRsaPrivateKey=function(e){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(0).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(Q.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.OCTETSTRING,!1,v.toDer(e).getBytes())])};Q.privateKeyFromAsn1=function(e){var t={},r=[];if(v.validate(e,t1,t,r)&&(e=v.fromDer($.util.createBuffer(t.privateKey))),t={},r=[],!v.validate(e,e1,t,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(t.privateKeyModulus).toHex(),s=$.util.createBuffer(t.privateKeyPublicExponent).toHex(),o=$.util.createBuffer(t.privateKeyPrivateExponent).toHex(),a=$.util.createBuffer(t.privateKeyPrime1).toHex(),c=$.util.createBuffer(t.privateKeyPrime2).toHex(),u=$.util.createBuffer(t.privateKeyExponent1).toHex(),l=$.util.createBuffer(t.privateKeyExponent2).toHex(),f=$.util.createBuffer(t.privateKeyCoefficient).toHex(),Q.setRsaPrivateKey(new st(i,16),new st(s,16),new st(o,16),new st(a,16),new st(c,16),new st(u,16),new st(l,16),new st(f,16))};Q.privateKeyToAsn1=Q.privateKeyToRSAPrivateKey=function(e){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,v.integerToDer(0).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.e)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.d)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.p)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.q)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.dP)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.dQ)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.qInv))])};Q.publicKeyFromAsn1=function(e){var t={},r=[];if(v.validate(e,n1,t,r)){var n=v.derToOid(t.publicKeyOid);if(n!==Q.oids.rsaEncryption){var i=new Error("Cannot read public key. Unknown OID.");throw i.oid=n,i}e=t.rsaPublicKey}if(r=[],!v.validate(e,r1,t,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(t.publicKeyModulus).toHex(),o=$.util.createBuffer(t.publicKeyExponent).toHex();return Q.setRsaPublicKey(new st(s,16),new st(o,16))};Q.publicKeyToAsn1=Q.publicKeyToSubjectPublicKeyInfo=function(e){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.OID,!1,v.oidToDer(Q.oids.rsaEncryption).getBytes()),v.create(v.Class.UNIVERSAL,v.Type.NULL,!1,"")]),v.create(v.Class.UNIVERSAL,v.Type.BITSTRING,!1,[Q.publicKeyToRSAPublicKey(e)])])};Q.publicKeyToRSAPublicKey=function(e){return v.create(v.Class.UNIVERSAL,v.Type.SEQUENCE,!0,[v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.n)),v.create(v.Class.UNIVERSAL,v.Type.INTEGER,!1,Ze(e.e))])};function B0(e,t,r){var n=$.util.createBuffer(),i=Math.ceil(t.n.bitLength()/8);if(e.length>i-11){var s=new Error("Message is too long for PKCS#1 v1.5 padding.");throw s.length=e.length,s.max=i-11,s}n.putByte(0),n.putByte(r);var o=i-3-e.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(e),n}function Xs(e,t,r,n){var i=Math.ceil(t.n.bitLength()/8),s=$.util.createBuffer(e),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 o1(e,t,r){typeof t=="function"&&(r=t,t={}),t=t||{};var n={algorithm:{name:t.algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};"prng"in t&&(n.prng=t.prng),i();function i(){s(e.pBits,function(a,c){if(a)return r(a);if(e.p=c,e.q!==null)return o(a,e.q);s(e.qBits,o)})}function s(a,c){$.prime.generateProbablePrime(a,n,c)}function o(a,c){if(a)return r(a);if(e.q=c,e.p.compareTo(e.q)<0){var u=e.p;e.p=e.q,e.q=u}if(e.p.subtract(st.ONE).gcd(e.e).compareTo(st.ONE)!==0){e.p=null,i();return}if(e.q.subtract(st.ONE).gcd(e.e).compareTo(st.ONE)!==0){e.q=null,s(e.qBits,o);return}if(e.p1=e.p.subtract(st.ONE),e.q1=e.q.subtract(st.ONE),e.phi=e.p1.multiply(e.q1),e.phi.gcd(e.e).compareTo(st.ONE)!==0){e.p=e.q=null,i();return}if(e.n=e.p.multiply(e.q),e.n.bitLength()!==e.bits){e.q=null,s(e.qBits,o);return}var l=e.e.modInverse(e.phi);e.keys={privateKey:Q.rsa.setPrivateKey(e.n,e.e,l,e.p,e.q,l.mod(e.p1),l.mod(e.q1),e.q.modInverse(e.p)),publicKey:Q.rsa.setPublicKey(e.n,e.e)},r(null,e.keys)}}function Ze(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var r=$.util.hexToBytes(t);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 a1(e){return e<=100?27:e<=150?18:e<=200?15:e<=250?12:e<=300?9:e<=350?8:e<=400?7:e<=500?6:e<=600?5:e<=800?4:e<=1250?3:2}function A0(e){return $.util.isNodejs&&typeof oc[e]=="function"}function I0(e){return typeof Le.globalScope<"u"&&typeof Le.globalScope.crypto=="object"&&typeof Le.globalScope.crypto.subtle=="object"&&typeof Le.globalScope.crypto.subtle[e]=="function"}function R0(e){return typeof Le.globalScope<"u"&&typeof Le.globalScope.msCrypto=="object"&&typeof Le.globalScope.msCrypto.subtle=="object"&&typeof Le.globalScope.msCrypto.subtle[e]=="function"}function C0(e){for(var t=$.util.hexToBytes(e.toString(16)),r=new Uint8Array(t.length),n=0;n<t.length;++n)r[n]=t.charCodeAt(n);return r}});var M0=V((Q_,O0)=>{var M=dt();Ks();Mi();qf();sn();ks();Za();Qf();Fi();a0();Zs();Nt();typeof P0>"u"&&(P0=M.jsbn.BigInteger);var P0,A=M.asn1,Z=M.pki=M.pki||{};O0.exports=Z.pbe=M.pbe=M.pbe||{};var cn=Z.oids,c1={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"}]},u1={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"}]}]},l1={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"}]};Z.encryptPrivateKeyInfo=function(e,t,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=cn["aes128-CBC"],f=M.aes.createEncryptionCipher;break;case"aes192":o=24,u=16,l=cn["aes192-CBC"],f=M.aes.createEncryptionCipher;break;case"aes256":o=32,u=16,l=cn["aes256-CBC"],f=M.aes.createEncryptionCipher;break;case"des":o=8,u=8,l=cn.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=k0(p),m=M.pkcs5.pbkdf2(t,n,i,o,d),y=M.random.getBytesSync(u),g=f(m);g.start(y),g.update(A.toDer(e)),g.finish(),c=g.output.getBytes();var x=f1(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(cn.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(cn.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,y)])])])}else if(r.algorithm==="3des"){o=24;var b=new M.util.ByteBuffer(n),m=Z.pbe.generatePkcs12Key(t,b,1,i,o),y=Z.pbe.generatePkcs12Key(t,b,2,i,o),g=M.des.createEncryptionCipher(m);g.start(y),g.update(A.toDer(e)),g.finish(),c=g.output.getBytes(),a=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(cn["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 C=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[a,A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,c)]);return C};Z.decryptPrivateKeyInfo=function(e,t){var r=null,n={},i=[];if(!A.validate(e,c1,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=Z.pbe.getCipher(o,n.encryptionParams,t),c=M.util.createBuffer(n.encryptedData);return a.update(c),a.finish()&&(r=A.fromDer(a.output)),r};Z.encryptedPrivateKeyToPem=function(e,t){var r={type:"ENCRYPTED PRIVATE KEY",body:A.toDer(e).getBytes()};return M.pem.encode(r,{maxline:t})};Z.encryptedPrivateKeyFromPem=function(e){var t=M.pem.decode(e)[0];if(t.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=t.type,r}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return A.fromDer(t.body)};Z.encryptRsaPrivateKey=function(e,t,r){if(r=r||{},!r.legacy){var n=Z.wrapRsaPrivateKey(Z.privateKeyToAsn1(e));return n=Z.encryptPrivateKeyInfo(n,t,r),Z.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(t,s.substr(0,8),o),l=a(u);l.start(s),l.update(A.toDer(Z.privateKeyToAsn1(e))),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)};Z.decryptRsaPrivateKey=function(e,t){var r=null,n=M.pem.decode(e)[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(t,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=Z.decryptPrivateKeyInfo(A.fromDer(r),t):r=A.fromDer(r),r!==null&&(r=Z.privateKeyFromAsn1(r)),r};Z.pbe.generatePkcs12Key=function(e,t,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(e!=null){for(a=0;a<e.length;a++)f.putInt16(e.charCodeAt(a));f.putInt16(0)}var h=f.length(),p=t.length(),d=new M.util.ByteBuffer;d.fillWithByte(r,u);var m=u*Math.ceil(p/u),y=new M.util.ByteBuffer;for(a=0;a<m;a++)y.putByte(t.at(a%p));var g=u*Math.ceil(h/u),x=new M.util.ByteBuffer;for(a=0;a<g;a++)x.putByte(f.at(a%h));var b=y;b.putBuffer(x);for(var C=Math.ceil(i/c),_=1;_<=C;_++){var S=new M.util.ByteBuffer;S.putBytes(d.bytes()),S.putBytes(b.bytes());for(var P=0;P<n;P++)s.start(),s.update(S.getBytes()),S=s.digest();var D=new M.util.ByteBuffer;for(a=0;a<u;a++)D.putByte(S.at(a%c));var Y=Math.ceil(p/u)+Math.ceil(h/u),W=new M.util.ByteBuffer;for(o=0;o<Y;o++){var H=new M.util.ByteBuffer(b.getBytes(u)),et=511;for(a=D.length()-1;a>=0;a--)et=et>>8,et+=D.at(a)+H.at(a),H.setAt(a,et&255);W.putBuffer(H)}b=W,l.putBuffer(S)}return l.truncate(l.length()-i),l};Z.pbe.getCipher=function(e,t,r){switch(e){case Z.oids.pkcs5PBES2:return Z.pbe.getCipherForPBES2(e,t,r);case Z.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case Z.oids["pbewithSHAAnd40BitRC2-CBC"]:return Z.pbe.getCipherForPKCS12PBE(e,t,r);default:var n=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw n.oid=e,n.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],n}};Z.pbe.getCipherForPBES2=function(e,t,r){var n={},i=[];if(!A.validate(t,u1,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(e=A.derToOid(n.kdfOid),e!==Z.oids.pkcs5PBKDF2){var s=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw s.oid=e,s.supportedOids=["pkcs5PBKDF2"],s}if(e=A.derToOid(n.encOid),e!==Z.oids["aes128-CBC"]&&e!==Z.oids["aes192-CBC"]&&e!==Z.oids["aes256-CBC"]&&e!==Z.oids["des-EDE3-CBC"]&&e!==Z.oids.desCBC){var s=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw s.oid=e,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(Z.oids[e]){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=N0(n.prfOid),f=M.pkcs5.pbkdf2(r,o,a,c,l),h=n.encIv,p=u(f);return p.start(h),p};Z.pbe.getCipherForPKCS12PBE=function(e,t,r){var n={},i=[];if(!A.validate(t,l1,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(e){case Z.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:c=24,u=8,l=M.des.startDecrypting;break;case Z.oids["pbewithSHAAnd40BitRC2-CBC"]:c=5,u=8,l=function(m,y){var g=M.rc2.createDecryptionCipher(m,40);return g.start(y,null),g};break;default:var s=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw s.oid=e,s}var f=N0(n.prfOid),h=Z.pbe.generatePkcs12Key(r,o,1,a,c,f);f.start();var p=Z.pbe.generatePkcs12Key(r,o,2,a,u,f);return l(h,p)};Z.pbe.opensslDeriveBytes=function(e,t,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()}t===null&&(t="");for(var i=[D0(n,e+t)],s=16,o=1;s<r;++o,s+=16)i.push(D0(n,i[o-1]+e+t));return i.join("").substr(0,r)};function D0(e,t){return e.start().update(t).digest().getBytes()}function N0(e){var t;if(!e)t="hmacWithSHA1";else if(t=Z.oids[A.derToOid(e)],!t){var r=new Error("Unsupported PRF OID.");throw r.oid=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}return k0(t)}function k0(e){var t=M.md;switch(e){case"hmacWithSHA224":t=M.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":e=e.substr(8).toLowerCase();break;default:var r=new Error("Unsupported PRF algorithm.");throw r.algorithm=e,r.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],r}if(!t||!(e in t))throw new Error("Unknown hash algorithm: "+e);return t[e].create()}function f1(e,t,r,n){var i=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,e),A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,t.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(Z.oids[n]).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.NULL,!1,"")])),i}});var zh=V((QI,Hh)=>{var _t=dt();sn();Nt();var Zi=Hh.exports=_t.sha512=_t.sha512||{};_t.md.sha512=_t.md.algorithms.sha512=Zi;var qh=_t.sha384=_t.sha512.sha384=_t.sha512.sha384||{};qh.create=function(){return Zi.create("SHA-384")};_t.md.sha384=_t.md.algorithms.sha384=qh;_t.sha512.sha256=_t.sha512.sha256||{create:function(){return Zi.create("SHA-512/256")}};_t.md["sha512/256"]=_t.md.algorithms["sha512/256"]=_t.sha512.sha256;_t.sha512.sha224=_t.sha512.sha224||{create:function(){return Zi.create("SHA-512/224")}};_t.md["sha512/224"]=_t.md.algorithms["sha512/224"]=_t.sha512.sha224;Zi.create=function(e){if($h||DE(),typeof e>"u"&&(e="SHA-512"),!(e in En))throw new Error("Invalid SHA-512 algorithm: "+e);for(var t=En[e],r=null,n=_t.util.createBuffer(),i=new Array(80),s=0;s<80;++s)i[s]=new Array(2);var o=64;switch(e){case"SHA-384":o=48;break;case"SHA-512/256":o=32;break;case"SHA-512/224":o=28;break}var a={algorithm:e.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=_t.util.createBuffer(),r=new Array(t.length);for(var u=0;u<t.length;++u)r[u]=t[u].slice(0);return a},a.start(),a.update=function(c,u){u==="utf8"&&(c=_t.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),Vh(r,i,n),(n.read>2048||n.length()===0)&&n.compact(),a},a.digest=function(){var c=_t.util.createBuffer();c.putBytes(n.bytes());var u=a.fullMessageLength[a.fullMessageLength.length-1]+a.messageLengthSize,l=u&a.blockLength-1;c.putBytes(ou.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);Vh(m,i,c);var y=_t.util.createBuffer(),g;e==="SHA-512"?g=m.length:e==="SHA-384"?g=m.length-2:g=m.length-4;for(var d=0;d<g;++d)y.putInt32(m[d][0]),(d!==g-1||e!=="SHA-512/224")&&y.putInt32(m[d][1]);return y},a};var ou=null,$h=!1,au=null,En=null;function DE(){ou=String.fromCharCode(128),ou+=_t.util.fillString(String.fromCharCode(0),128),au=[[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]],En={},En["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],En["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],En["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],En["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],$h=!0}function Vh(e,t,r){for(var n,i,s,o,a,c,u,l,f,h,p,d,m,y,g,x,b,C,_,S,P,D,Y,W,H,et,mt,Jt,T,k,L,N,I,U,q,G=r.length();G>=128;){for(T=0;T<16;++T)t[T][0]=r.getInt32()>>>0,t[T][1]=r.getInt32()>>>0;for(;T<80;++T)N=t[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=t[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,I=t[T-7],q=t[T-16],L=i+I[1]+o+q[1],t[T][0]=n+I[0]+s+q[0]+(L/4294967296>>>0)>>>0,t[T][1]=L>>>0;for(m=e[0][0],y=e[0][1],g=e[1][0],x=e[1][1],b=e[2][0],C=e[2][1],_=e[3][0],S=e[3][1],P=e[4][0],D=e[4][1],Y=e[5][0],W=e[5][1],H=e[6][0],et=e[6][1],mt=e[7][0],Jt=e[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=(H^P&(Y^H))>>>0,h=(et^D&(W^et))>>>0,a=((m>>>28|y<<4)^(y>>>2|m<<30)^(y>>>7|m<<25))>>>0,c=((m<<4|y>>>28)^(y<<30|m>>>2)^(y<<25|m>>>7))>>>0,p=(m&g|b&(m^g))>>>0,d=(y&x|C&(y^x))>>>0,L=Jt+l+h+au[T][1]+t[T][1],n=mt+u+f+au[T][0]+t[T][0]+(L/4294967296>>>0)>>>0,i=L>>>0,L=c+d,s=a+p+(L/4294967296>>>0)>>>0,o=L>>>0,mt=H,Jt=et,H=Y,et=W,Y=P,W=D,L=S+i,P=_+n+(L/4294967296>>>0)>>>0,D=L>>>0,_=b,S=C,b=g,C=x,g=m,x=y,L=i+o,m=n+s+(L/4294967296>>>0)>>>0,y=L>>>0;L=e[0][1]+y,e[0][0]=e[0][0]+m+(L/4294967296>>>0)>>>0,e[0][1]=L>>>0,L=e[1][1]+x,e[1][0]=e[1][0]+g+(L/4294967296>>>0)>>>0,e[1][1]=L>>>0,L=e[2][1]+C,e[2][0]=e[2][0]+b+(L/4294967296>>>0)>>>0,e[2][1]=L>>>0,L=e[3][1]+S,e[3][0]=e[3][0]+_+(L/4294967296>>>0)>>>0,e[3][1]=L>>>0,L=e[4][1]+D,e[4][0]=e[4][0]+P+(L/4294967296>>>0)>>>0,e[4][1]=L>>>0,L=e[5][1]+W,e[5][0]=e[5][0]+Y+(L/4294967296>>>0)>>>0,e[5][1]=L>>>0,L=e[6][1]+et,e[6][0]=e[6][0]+H+(L/4294967296>>>0)>>>0,e[6][1]=L>>>0,L=e[7][1]+Jt,e[7][0]=e[7][0]+mt+(L/4294967296>>>0)>>>0,e[7][1]=L>>>0,G-=128}}});var Su=V((I4,bd)=>{var ci=1e3,ui=ci*60,li=ui*60,_n=li*24,ub=_n*7,lb=_n*365.25;bd.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return fb(e);if(r==="number"&&isFinite(e))return t.long?db(e):hb(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function fb(e){if(e=String(e),!(e.length>100)){var t=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*lb;case"weeks":case"week":case"w":return r*ub;case"days":case"day":case"d":return r*_n;case"hours":case"hour":case"hrs":case"hr":case"h":return r*li;case"minutes":case"minute":case"mins":case"min":case"m":return r*ui;case"seconds":case"second":case"secs":case"sec":case"s":return r*ci;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function hb(e){var t=Math.abs(e);return t>=_n?Math.round(e/_n)+"d":t>=li?Math.round(e/li)+"h":t>=ui?Math.round(e/ui)+"m":t>=ci?Math.round(e/ci)+"s":e+"ms"}function db(e){var t=Math.abs(e);return t>=_n?_o(e,t,_n,"day"):t>=li?_o(e,t,li,"hour"):t>=ui?_o(e,t,ui,"minute"):t>=ci?_o(e,t,ci,"second"):e+" ms"}function _o(e,t,r,n){var i=t>=r*1.5;return Math.round(e/r)+" "+n+(i?"s":"")}});var vd=V((R4,wd)=>{function pb(e){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(e).forEach(l=>{r[l]=e[l]}),r.names=[],r.skips=[],r.formatters={};function t(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=t;function r(l){let f,h=null,p,d;function m(...y){if(!m.enabled)return;let g=m,x=Number(new Date),b=x-(f||x);g.diff=b,g.prev=f,g.curr=x,f=x,y[0]=r.coerce(y[0]),typeof y[0]!="string"&&y.unshift("%O");let C=0;y[0]=y[0].replace(/%([a-zA-Z%])/g,(S,P)=>{if(S==="%%")return"%";C++;let D=r.formatters[P];if(typeof D=="function"){let Y=y[C];S=D.call(g,Y),y.splice(C,1),C--}return S}),r.formatArgs.call(g,y),(g.log||r.log).apply(g,y)}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:y=>{h=y}}),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}wd.exports=pb});var Au=V((_e,So)=>{_e.formatArgs=yb;_e.save=gb;_e.load=xb;_e.useColors=mb;_e.storage=Eb();_e.destroy=(()=>{let e=!1;return()=>{e||(e=!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`."))}})();_e.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 mb(){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 yb(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+So.exports.humanize(this.diff),!this.useColors)return;let t="color: "+this.color;e.splice(1,0,t,"color: inherit");let r=0,n=0;e[0].replace(/%[a-zA-Z%]/g,i=>{i!=="%%"&&(r++,i==="%c"&&(n=r))}),e.splice(n,0,t)}_e.log=console.debug||console.log||(()=>{});function gb(e){try{e?_e.storage.setItem("debug",e):_e.storage.removeItem("debug")}catch{}}function xb(){let e;try{e=_e.storage.getItem("debug")}catch{}return!e&&typeof process<"u"&&"env"in process&&(e=process.env.DEBUG),e}function Eb(){try{return localStorage}catch{}}So.exports=vd()(_e);var{formatters:bb}=So.exports;bb.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}}});var Cd=V((Y4,Rd)=>{"use strict";Rd.exports=e=>{if(Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}});var Nd=V((Pd,Dd)=>{"use strict";var Co=Cd(),{hasOwnProperty:Bd}=Object.prototype,{propertyIsEnumerable:Rb}=Object,di=(e,t,r)=>Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0}),Cb=Pd,Td={concatArrays:!1,ignoreUndefined:!1},To=e=>{let t=[];for(let r in e)Bd.call(e,r)&&t.push(r);if(Object.getOwnPropertySymbols){let r=Object.getOwnPropertySymbols(e);for(let n of r)Rb.call(e,n)&&t.push(n)}return t};function pi(e){return Array.isArray(e)?Tb(e):Co(e)?Bb(e):e}function Tb(e){let t=e.slice(0,0);return To(e).forEach(r=>{di(t,r,pi(e[r]))}),t}function Bb(e){let t=Object.getPrototypeOf(e)===null?Object.create(null):{};return To(e).forEach(r=>{di(t,r,pi(e[r]))}),t}var Ld=(e,t,r,n)=>(r.forEach(i=>{typeof t[i]>"u"&&n.ignoreUndefined||(i in e&&e[i]!==Object.getPrototypeOf(e)?di(e,i,Tu(e[i],t[i],n)):di(e,i,pi(t[i])))}),e),Lb=(e,t,r)=>{let n=e.slice(0,0),i=0;return[e,t].forEach(s=>{let o=[];for(let a=0;a<s.length;a++)Bd.call(s,a)&&(o.push(String(a)),s===e?di(n,i++,s[a]):di(n,i++,pi(s[a])));n=Ld(n,s,To(s).filter(a=>!o.includes(a)),r)}),n};function Tu(e,t,r){return r.concatArrays&&Array.isArray(e)&&Array.isArray(t)?Lb(e,t,r):!Co(t)||!Co(e)?pi(t):Ld(e,t,To(t),r)}Dd.exports=function(...e){let t=Tu(pi(Td),this!==Cb&&this||{},Td),r={_:{}};for(let n of e)if(n!==void 0){if(!Co(n))throw new TypeError("`"+n+"` is not an Option Object");r=Tu(r,{_:n},t)}return r._}});var Md=V((Q4,Od)=>{"use strict";function Pb(e){return e>=55296&&e<=56319}function Db(e){return e>=56320&&e<=57343}Od.exports=function(t,r,n){if(typeof r!="string")throw new Error("Input must be string");for(var i=r.length,s=0,o,a,c=0;c<i;c+=1){if(o=r.charCodeAt(c),a=r[c],Pb(o)&&Db(r.charCodeAt(c+1))&&(c+=1,a+=r[c]),s+=t(a),s===n)return r.slice(0,c+1);if(s>n)return r.slice(0,c-a.length+1)}return r}});var Fd=V((X4,Ud)=>{"use strict";function Nb(e){return e>=55296&&e<=56319}function kb(e){return e>=56320&&e<=57343}Ud.exports=function(t){if(typeof t!="string")throw new Error("Input must be string");for(var r=t.length,n=0,i=null,s=null,o=0;o<r;o++)i=t.charCodeAt(o),kb(i)?s!=null&&Nb(s)?n+=1:n+=3:i<=127?n+=1:i>=128&&i<=2047?n+=2:i>=2048&&i<=65535&&(n+=3),s=i;return n}});var Vd=V((Z4,Kd)=>{"use strict";var Ob=Md(),Mb=Fd();Kd.exports=Ob.bind(null,Mb)});var Hd=V((J4,$d)=>{"use strict";var Ub=Vd(),Fb=/[\/\?<>\\:\*\|"]/g,Kb=/[\x00-\x1f\x80-\x9f]/g,Vb=/^\.+$/,qb=/^(con|prn|aux|nul|com[0-9]|lpt[0-9])(\..*)?$/i,$b=/[\. ]+$/;function qd(e,t){if(typeof e!="string")throw new Error("Input must be string");var r=e.replace(Fb,t).replace(Kb,t).replace(Vb,t).replace(qb,t).replace($b,t);return Ub(r,255)}$d.exports=function(e,t){var r=t&&t.replacement||"",n=qd(e,r);return r===""?n:qd(n,"")}});var mp=V((TT,Qu)=>{"use strict";var ww=Object.prototype.hasOwnProperty,de="~";function hs(){}Object.create&&(hs.prototype=Object.create(null),new hs().__proto__||(de=!1));function vw(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function pp(e,t,r,n,i){if(typeof r!="function")throw new TypeError("The listener must be a function");var s=new vw(r,n||e,i),o=de?de+t:t;return e._events[o]?e._events[o].fn?e._events[o]=[e._events[o],s]:e._events[o].push(s):(e._events[o]=s,e._eventsCount++),e}function Uo(e,t){--e._eventsCount===0?e._events=new hs:delete e._events[t]}function le(){this._events=new hs,this._eventsCount=0}le.prototype.eventNames=function(){var t=[],r,n;if(this._eventsCount===0)return t;for(n in r=this._events)ww.call(r,n)&&t.push(de?n.slice(1):n);return Object.getOwnPropertySymbols?t.concat(Object.getOwnPropertySymbols(r)):t};le.prototype.listeners=function(t){var r=de?de+t:t,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};le.prototype.listenerCount=function(t){var r=de?de+t:t,n=this._events[r];return n?n.fn?1:n.length:0};le.prototype.emit=function(t,r,n,i,s,o){var a=de?de+t:t;if(!this._events[a])return!1;var c=this._events[a],u=arguments.length,l,f;if(c.fn){switch(c.once&&this.removeListener(t,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(t,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};le.prototype.on=function(t,r,n){return pp(this,t,r,n,!1)};le.prototype.once=function(t,r,n){return pp(this,t,r,n,!0)};le.prototype.removeListener=function(t,r,n,i){var s=de?de+t:t;if(!this._events[s])return this;if(!r)return Uo(this,s),this;var o=this._events[s];if(o.fn)o.fn===r&&(!i||o.once)&&(!n||o.context===n)&&Uo(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:Uo(this,s)}return this};le.prototype.removeAllListeners=function(t){var r;return t?(r=de?de+t:t,this._events[r]&&Uo(this,r)):(this._events=new hs,this._eventsCount=0),this};le.prototype.off=le.prototype.removeListener;le.prototype.addListener=le.prototype.on;le.prefixed=de;le.EventEmitter=le;typeof Qu<"u"&&(Qu.exports=le)});var bl=V((G3,kp)=>{"use strict";function Np(e,t){for(let r in t)Object.defineProperty(e,r,{value:t[r],enumerable:!0,configurable:!0});return e}function Ow(e,t,r){if(!e||typeof e=="string")throw new TypeError("Please pass an Error to err-code");r||(r={}),typeof t=="object"&&(r=t,t=""),t&&(r.code=t);try{return Np(e,r)}catch{r.message=e.message,r.stack=e.stack;let i=function(){};return i.prototype=Object.create(Object.getPrototypeOf(e)),Np(new i,r)}}kp.exports=Ow});var Vp=V(Es=>{(function(){var e,t,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=t(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"),t=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]},e=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=e}).call(Es)});var zp=V((Hp,sa)=>{(function(e){"use strict";let t="(0?\\d+|0x[a-f0-9]+)",r={fourOctet:new RegExp(`^${t}\\.${t}\\.${t}\\.${t}$`,"i"),threeOctet:new RegExp(`^${t}\\.${t}\\.${t}$`,"i"),twoOctet:new RegExp(`^${t}\\.${t}$`,"i"),longValue:new RegExp(`^${t}$`,"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(`^(?:::)(${t}\\.${t}\\.${t}\\.${t}(${s})?)$`,"i"),transitional:new RegExp(`^((?:${o})|(?:::)(?:${o})?)${t}\\.${t}\\.${t}\\.${t}(${s})?$`,"i")};function c(p,d){if(p.indexOf("::")!==p.lastIndexOf("::"))return null;let m=0,y=-1,g=(p.match(a.zoneIndex)||[])[0],x,b;for(g&&(g=g.substring(1),p=p.replace(/%.+$/,""));(y=p.indexOf(":",y+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 C=p.split(":"),_=[];for(let S=0;S<C.length;S++)_.push(parseInt(C[S],16));return _}(),{parts:d,zoneId:g}}function u(p,d,m,y){if(p.length!==d.length)throw new Error("ipaddr: cannot match CIDR for objects with different lengths");let g=0,x;for(;y>0;){if(x=m-y,x<0&&(x=0),p[g]>>x!==d[g]>>x)return!1;y-=m,g+=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,y;for(m=0;m<d.length;m++)if(y=d[m],!(0<=y&&y<=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 y;if(m===void 0&&(y=d,d=y[0],m=y[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,y={0:8,128:7,192:6,224:5,240:4,248:3,252:2,254:1,255:0},g,x,b;for(g=3;g>=0;g-=1)if(x=this.octets[g],x in y){if(b=y[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(),y=this.subnetMaskFromPrefixLength(d[1]).toByteArray(),g=[],x=0;for(;x<4;)g.push(parseInt(m[x],10)|parseInt(y[x],10)^255),x++;return new this(g)}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,y,g,x;try{for(d=this.parseCIDR(p),y=d[0].toByteArray(),x=this.subnetMaskFromPrefixLength(d[1]).toByteArray(),g=[],m=0;m<4;)g.push(parseInt(y[m],10)&parseInt(x[m],10)),m++;return new this(g)}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 y=[this.parse(d[1]),m];return Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y}}throw new Error("ipaddr: string is not formatted like an IPv4 CIDR range")},h.IPv4.parser=function(p){let d,m,y;if(d=p.match(r.fourOctet))return function(){let g=d.slice(1,6),x=[];for(let b=0;b<g.length;b++)m=g[b],x.push(l(m));return x}();if(d=p.match(r.longValue)){if(y=l(d[1]),y>4294967295||y<0)throw new Error("ipaddr: address outside defined range");return function(){let g=[],x;for(x=0;x<=24;x+=8)g.push(y>>x&255);return g}().reverse()}else return(d=p.match(r.twoOctet))?function(){let g=d.slice(1,4),x=[];if(y=l(g[1]),y>16777215||y<0)throw new Error("ipaddr: address outside defined range");return x.push(l(g[0])),x.push(y>>16&255),x.push(y>>8&255),x.push(y&255),x}():(d=p.match(r.threeOctet))?function(){let g=d.slice(1,5),x=[];if(y=l(g[2]),y>65535||y<0)throw new Error("ipaddr: address outside defined range");return x.push(l(g[0])),x.push(l(g[1])),x.push(y>>8&255),x.push(y&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,y=Math.floor(p/8);for(;m<y;)d[m]=255,m++;return y<4&&(d[y]=Math.pow(2,p%8)-1<<8-p%8),new this(d)},h.IPv6=function(){function p(d,m){let y,g;if(d.length===16)for(this.parts=[],y=0;y<=14;y+=2)this.parts.push(d[y]<<8|d[y+1]);else if(d.length===8)this.parts=d;else throw new Error("ipaddr: ipv6 part count should be 8 or 16");for(y=0;y<this.parts.length;y++)if(g=this.parts[y],!(0<=g&&g<=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 y;if(m===void 0&&(y=d,d=y[0],m=y[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,y={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},g,x;for(let b=7;b>=0;b-=1)if(g=this.parts[b],g in y){if(x=y[g],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=[],y=this.parts;for(let g=0;g<y.length;g++)d=y[g],m.push(d>>8),m.push(d&255);return m},p.prototype.toFixedLengthString=function(){let d=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(f(this.parts[g].toString(16),4));return y}.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],y=d[1];return new h.IPv4([m>>8,m&255,y>>8,y&255])},p.prototype.toNormalizedString=function(){let d=function(){let y=[];for(let g=0;g<this.parts.length;g++)y.push(this.parts[g].toString(16));return y}.call(this).join(":"),m="";return this.zoneId&&(m=`%${this.zoneId}`),d+m},p.prototype.toRFC5952String=function(){let d=/((^|:)(0(:|$)){2,})/g,m=this.toNormalizedString(),y=0,g=-1,x;for(;x=d.exec(m);)x[0].length>g&&(y=x.index,g=x[0].length);return g<0?m:`${m.substring(0,y)}::${m.substring(y+g)}`},p.prototype.toString=function(){return this.toRFC5952String()},p}(),h.IPv6.broadcastAddressFromCIDR=function(p){try{let d=this.parseCIDR(p),m=d[0].toByteArray(),y=this.subnetMaskFromPrefixLength(d[1]).toByteArray(),g=[],x=0;for(;x<16;)g.push(parseInt(m[x],10)|parseInt(y[x],10)^255),x++;return new this(g)}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,y,g,x;try{for(d=this.parseCIDR(p),y=d[0].toByteArray(),x=this.subnetMaskFromPrefixLength(d[1]).toByteArray(),g=[],m=0;m<16;)g.push(parseInt(y[m],10)&parseInt(x[m],10)),m++;return new this(g)}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,y;if((m=p.match(/^(.+)\/(\d+)$/))&&(d=parseInt(m[2]),d>=0&&d<=128))return y=[this.parse(m[1]),d],Object.defineProperty(y,"toString",{value:function(){return this.join("/")}}),y;throw new Error("ipaddr: string is not formatted like an IPv6 CIDR range")},h.IPv6.parser=function(p){let d,m,y,g,x,b;if(y=p.match(a.deprecatedTransitional))return this.parser(`::ffff:${y[1]}`);if(a.native.test(p))return c(p,8);if((y=p.match(a.transitional))&&(b=y[6]||"",d=c(y[1].slice(0,-1)+b,6),d.parts)){for(x=[parseInt(y[2]),parseInt(y[3]),parseInt(y[4]),parseInt(y[5])],m=0;m<x.length;m++)if(g=x[m],!(0<=g&&g<=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,y=Math.floor(p/8);for(;m<y;)d[m]=255,m++;return y<16&&(d[y]=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 y,g,x,b;m==null&&(m="unicast");for(g in d)if(Object.prototype.hasOwnProperty.call(d,g)){for(x=d[g],x[0]&&!(x[0]instanceof Array)&&(x=[x]),y=0;y<x.length;y++)if(b=x[y],p.kind()===b[0].kind()&&p.match.apply(p,b))return g}return m},typeof sa<"u"&&sa.exports?sa.exports=h:e.ipaddr=h})(Hp)});var cm=V((zB,am)=>{"use strict";am.exports=om;var iv=Su(),Jr=om.prototype,sv=new Date%1e9;function ov(){return(Math.random()*1e9>>>0)+sv++}function om(e){e=e||{},this.id=e.id||ov(),this.max=e.max||1/0,this.items=e.items||[],this._lookup={},this.size=this.items.length,this.lastModified=new Date(e.lastModified||new Date);for(var t,r,n=this.items.length;n--;)t=this.items[n],r=new Date(t.expires)-new Date,this._lookup[t.key]=t,r>0?this.expire(t.key,r):r<=0&&this.delete(t.key)}Jr.has=function(e){return e in this._lookup};Jr.get=function(e){if(!this.has(e))return null;var t=this._lookup[e];return t.refresh&&this.expire(e,t.refresh),this.items.splice(this.items.indexOf(t),1),this.items.push(t),t.value};Jr.meta=function(e){if(!this.has(e))return null;var t=this._lookup[e];return"meta"in t?t.meta:null};Jr.set=function(e,t,r){var n=this._lookup[e],i=this._lookup[e]={key:e,value:t};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(e,r.ttl),"meta"in r&&(i.meta=r.meta),r.refresh&&(i.refresh=r.ttl)),this};Jr.delete=function(e){var t=this._lookup[e];return t?(this.lastModified=new Date,this.items.splice(this.items.indexOf(t),1),clearTimeout(t.timeout),delete this._lookup[e],this.size--,this):!1};Jr.expire=function(e,t){var r=t||0,n=this._lookup[e];if(!n)return this;if(typeof r=="string"&&(r=iv(t)),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};Jr.clear=function(){for(var e=this.items.length;e--;)this.delete(this.items[e].key);return this};Jr.toJSON=function(){for(var e=new Array(this.items.length),t,r=e.length;r--;)t=this.items[r],e[r]={key:t.key,meta:t.meta,value:t.value,expires:t.expires,refresh:t.refresh};return{id:this.id,max:isFinite(this.max)?this.max:void 0,lastModified:this.lastModified,items:e}}});var _s=V((h6,ym)=>{ym.exports=class{constructor(t={}){this.points=t.points,this.duration=t.duration,this.blockDuration=t.blockDuration,this.execEvenly=t.execEvenly,this.execEvenlyMinDelayMs=t.execEvenlyMinDelayMs,this.keyPrefix=t.keyPrefix}get points(){return this._points}set points(t){this._points=t>=0?t:4}get duration(){return this._duration}set duration(t){this._duration=typeof t>"u"?1:t}get msDuration(){return this.duration*1e3}get blockDuration(){return this._blockDuration}set blockDuration(t){this._blockDuration=typeof t>"u"?0:t}get msBlockDuration(){return this.blockDuration*1e3}get execEvenly(){return this._execEvenly}set execEvenly(t){this._execEvenly=typeof t>"u"?!1:!!t}get execEvenlyMinDelayMs(){return this._execEvenlyMinDelayMs}set execEvenlyMinDelayMs(t){this._execEvenlyMinDelayMs=typeof t>"u"?Math.ceil(this.msDuration/this.points):t}get keyPrefix(){return this._keyPrefix}set keyPrefix(t){if(typeof t>"u"&&(t="rlflx"),typeof t!="string")throw new Error("keyPrefix must be string");this._keyPrefix=t}_getKeySecDuration(t={}){return t&&t.customDuration>=0?t.customDuration:this.duration}getKey(t){return this.keyPrefix.length>0?`${this.keyPrefix}:${t}`:t}parseKey(t){return t.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 xm=V((p6,gm)=>{gm.exports=class{constructor(){this._keys={},this._addedKeysAmount=0}collectExpired(){let t=Date.now();Object.keys(this._keys).forEach(r=>{this._keys[r]<=t&&delete this._keys[r]}),this._addedKeysAmount=Object.keys(this._keys).length}add(t,r){this.addMs(t,r*1e3)}addMs(t,r){this._keys[t]=Date.now()+r,this._addedKeysAmount++,this._addedKeysAmount>999&&this.collectExpired()}msBeforeExpire(t){let r=this._keys[t];if(r&&r>=Date.now()){this.collectExpired();let n=Date.now();return r>=n?r-n:0}return 0}delete(t){t?delete this._keys[t]:Object.keys(this._keys).forEach(r=>{delete this._keys[r]})}}});var bm=V((m6,Em)=>{var lv=xm();Em.exports=lv});var Ce=V((g6,wm)=>{wm.exports=class{constructor(t,r,n,i){this.remainingPoints=typeof t>"u"?0:t,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(t){return this._msBeforeNext=t,this}get remainingPoints(){return this._remainingPoints}set remainingPoints(t){return this._remainingPoints=t,this}get consumedPoints(){return this._consumedPoints}set consumedPoints(t){return this._consumedPoints=t,this}get isFirstInDuration(){return this._isFirstInDuration}set isFirstInDuration(t){this._isFirstInDuration=!!t}_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 Ai=V((E6,_m)=>{var kl=_s(),fv=bm(),vm=Ce();_m.exports=class extends kl{constructor(t={}){super(t),this.inMemoryBlockOnConsumed=t.inMemoryBlockOnConsumed,this.inMemoryBlockDuration=t.inMemoryBlockDuration,this.insuranceLimiter=t.insuranceLimiter,this._inMemoryBlockedKeys=new fv}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("storeClient is not set");this._client=t}_afterConsume(t,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):t(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(t,c,a)}else t(a)}_handleError(t,r,n,i,s,o=!1,a={}){this.insuranceLimiter instanceof kl?this.insuranceLimiter[r](s,o,a).then(c=>{n(c)}).catch(c=>{i(c)}):i(t)}getInMemoryBlockMsBeforeExpire(t){return this.inMemoryBlockOnConsumed>0?this._inMemoryBlockedKeys.msBeforeExpire(t):0}get inMemoryBlockOnConsumed(){return this._inMemoryBlockOnConsumed}set inMemoryBlockOnConsumed(t){if(this._inMemoryBlockOnConsumed=t?parseInt(t):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(t){if(this._inMemoryBlockDuration=t?parseInt(t):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(t){if(typeof t<"u"&&!(t instanceof kl))throw new Error("insuranceLimiter must be instance of RateLimiterAbstract");this._insuranceLimiter=t,this._insuranceLimiter&&(this._insuranceLimiter.blockDuration=this.blockDuration,this._insuranceLimiter.execEvenly=this.execEvenly)}block(t,r,n={}){let i=r*1e3;return this._block(this.getKey(t),this.points+1,i,n)}set(t,r,n,i={}){let s=(n>=0?n:this.duration)*1e3;return this._block(this.getKey(t),r,s,i)}consume(t,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(t),a=this.getInMemoryBlockMsBeforeExpire(o);if(a>0)return s(new vm(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,t,r,n)})})}penalty(t,r=1,n={}){let i=this.getKey(t);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,t,r,n)})})}reward(t,r=1,n={}){let i=this.getKey(t);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,t,r,n)})})}get(t,r={}){let n=this.getKey(t);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,t,r)})})}delete(t,r={}){let n=this.getKey(t);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,t,r)})})}deleteInMemoryBlockedAll(){this._inMemoryBlockedKeys.delete()}_getRateLimiterRes(t,r,n){throw new Error("You have to implement the method '_getRateLimiterRes'!")}_block(t,r,n,i={}){return new Promise((s,o)=>{this._upsert(t,r,n,!0,i).then(()=>{s(new vm(0,n>0?n:-1,r))}).catch(a=>{this._handleError(a,"block",s,o,this.parseKey(t),n/1e3,i)})})}_get(t,r={}){throw new Error("You have to implement the method '_get'!")}_delete(t,r={}){throw new Error("You have to implement the method '_delete'!")}_upsert(t,r,n,i=!1,s={}){throw new Error("You have to implement the method '_upsert'!")}}});var Am=V((b6,Sm)=>{var hv=Ai(),dv=Ce(),Ol="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} ",Ml=class extends hv{constructor(t){super(t),this.client=t.storeClient,this._rejectIfRedisNotReady=!!t.rejectIfRedisNotReady,this.useRedisPackage=t.useRedisPackage,this.useRedis3AndLowerPackage=t.useRedis3AndLowerPackage,typeof this.client.defineCommand=="function"&&this.client.defineCommand("rlflxIncr",{numberOfKeys:1,lua:Ol})}_isRedisReady(){return this._rejectIfRedisNotReady?!(this.client.status&&this.client.status!=="ready"||typeof this.client.isReady=="function"&&!this.client.isReady()):!0}_getRateLimiterRes(t,r,n){let[i,s]=n;Array.isArray(i)&&([,i]=i,[,s]=s);let o=new dv;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(t,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(t,r,"EX",s):o.set(t,r,{EX:s}):o.set(t,r),!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.pttl(t).exec(!0):o.pTTL(t).exec(!0)):s>0?!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.rlflxIncr([t].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(t,r,s,u):this.client.eval(Ol,1,t,r,s,u)}):this.client.eval(Ol,{keys:[t],arguments:[String(r),String(s)]}):!this.useRedisPackage&&!this.useRedis3AndLowerPackage?o.incrby(t,r).pttl(t).exec(!0):o.incrBy(t,r).pTTL(t).exec(!0)}async _get(t){if(!this._isRedisReady())throw new Error("Redis connection is not ready");return!this.useRedisPackage&&!this.useRedis3AndLowerPackage?this.client.multi().get(t).pttl(t).exec().then(r=>{let[[,n]]=r;return n===null?null:r}):this.client.multi().get(t).pTTL(t).exec(!0).then(r=>{let[n]=r;return n===null?null:r})}_delete(t){return this.client.del(t).then(r=>r>0)}};Sm.exports=Ml});var Cm=V((w6,Rm)=>{var pv=Ai(),mv=Ce();function Im(e){try{let t=e.client?e.client:e,{version:r}=t.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 Ul=class e extends pv{constructor(t){super(t),this.dbName=t.dbName,this.tableName=t.tableName,this.indexKeyPrefix=t.indexKeyPrefix,t.mongo?this.client=t.mongo:this.client=t.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(t){this._dbName=typeof t>"u"?e.getDbName():t}static getDbName(){return"node-rate-limiter-flexible"}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get client(){return this._client}set client(t){if(typeof t>"u")throw new Error("mongo is not set");this._client=t}get indexKeyPrefix(){return this._indexKeyPrefix}set indexKeyPrefix(t){this._indexKeyPrefix=t||{}}_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(t,r,n){let i=new mv,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(t,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:t},a=Object.assign(a,o),c={$set:{key:t,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:t},a=Object.assign(a,o),c={$setOnInsert:{key:t,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:t},o),d={$set:Object.assign({key:t,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(t,r,n,i).then(y=>l(y)).catch(y=>f(y)):f(m)})}else f(h)})})}_get(t,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:t,$or:[{expire:{$gt:new Date}},{expire:{$eq:null}}]},n);return this._collection.findOne(i)}_delete(t,r={}){if(!this._collection)return Promise.reject(Error("Mongo connection is not established"));let n=r.attrs||{},i=Object.assign({key:t},n);return this._collection.deleteOne(i).then(s=>s.deletedCount>0)}};Rm.exports=Ul});var Bm=V((v6,Tm)=>{var yv=Ai(),gv=Ce(),Fl=class extends yv{constructor(t,r=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.dbName=t.dbName,this.tableName=t.tableName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.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(t){return new Promise(r=>{this._getConnection().then(n=>{n.query("DELETE FROM ??.?? WHERE expire < ?",[this.dbName,this.tableName,t],()=>{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((t,r)=>{this.client.getConnection((n,i)=>{if(n)return r(n);t(i)})});case"sequelize":return this.client.connectionManager.getConnection();case"knex":return this.client.client.acquireConnection();default:return Promise.resolve(this.client)}}_releaseConnection(t){switch(this.clientType){case"pool":return t.release();case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);default:return!0}}_createDbAndTable(){return new Promise((t,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),t()})})}).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(t){if(typeof t>"u")if(this.client.constructor.name==="Connection")t="connection";else if(this.client.constructor.name==="Pool")t="pool";else if(this.client.constructor.name==="Sequelize")t="sequelize";else throw new Error("storeType is not defined");this._clientType=t.toLowerCase()}get dbName(){return this._dbName}set dbName(t){this._dbName=typeof t>"u"?"rtlmtrflx":t}get tableName(){return this._tableName}set tableName(t){this._tableName=typeof t>"u"?this.keyPrefix:t}get tableCreated(){return this._tableCreated}set tableCreated(t){this._tableCreated=typeof t>"u"?!1:!!t}get clearExpiredByTimeout(){return this._clearExpiredByTimeout}set clearExpiredByTimeout(t){this._clearExpiredByTimeout=typeof t>"u"?!0:!!t}_getRateLimiterRes(t,r,n){let i=new gv,[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(t,r,n,i,s){return new Promise((o,a)=>{t.query("BEGIN",c=>{if(c)return t.rollback(),a(c);let u=Date.now(),l=i>0?u+i:null,f,h;s?(f=`INSERT INTO ??.?? VALUES (?, ?, ?)
16
16
  ON DUPLICATE KEY UPDATE
17
17
  points = ?,
18
18
  expire = ?;`,h=[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);`,h=[this.dbName,this.tableName,r,n,l,u,n,n,u,l]),t.query(f,h,p=>{if(p)return t.rollback(),a(p);t.query("SELECT points, expire FROM ??.?? WHERE `key` = ?;",[this.dbName,this.tableName,r],(d,m)=>{if(d)return t.rollback(),a(d);t.query("COMMIT",y=>{if(y)return t.rollback(),a(y);o(m)})})})})})}_upsert(t,r,n,i=!1){return this.tableCreated?new Promise((s,o)=>{this._getConnection().then(a=>{this._upsertTransaction(a,t,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(t){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,t,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(t){return this.tableCreated?new Promise((r,n)=>{this._getConnection().then(i=>{i.query("DELETE FROM ??.?? WHERE `key` = ?",[this.dbName,this.tableName,t],(s,o)=>{s?n(s):r(o.affectedRows>0),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}};Tm.exports=Ul});var Pm=V((x6,Lm)=>{var xv=Ai(),Ev=Ce(),Fl=class extends xv{constructor(t,r=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.tableName=t.tableName,this.schemaName=t.schemaName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.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(t){return new Promise(r=>{let n={name:"rlflx-clear-expired",text:`DELETE FROM ${this._getTableIdentifier()} WHERE expire < $1`,values:[t]};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(t){switch(this.clientType){case"pool":return!0;case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);case"typeorm":return!0;default:return!0}}_createTable(){return new Promise((t,r)=>{this._query({text:this._getCreateTableStmt()}).then(()=>{t()}).catch(n=>{n.code==="23505"?t():r(n)})})}_getCreateTableStmt(){return`CREATE TABLE IF NOT EXISTS ${this._getTableIdentifier()} (
21
+ expire = IF(expire <= ?, ?, expire);`,h=[this.dbName,this.tableName,r,n,l,u,n,n,u,l]),t.query(f,h,p=>{if(p)return t.rollback(),a(p);t.query("SELECT points, expire FROM ??.?? WHERE `key` = ?;",[this.dbName,this.tableName,r],(d,m)=>{if(d)return t.rollback(),a(d);t.query("COMMIT",y=>{if(y)return t.rollback(),a(y);o(m)})})})})})}_upsert(t,r,n,i=!1){return this.tableCreated?new Promise((s,o)=>{this._getConnection().then(a=>{this._upsertTransaction(a,t,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(t){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,t,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(t){return this.tableCreated?new Promise((r,n)=>{this._getConnection().then(i=>{i.query("DELETE FROM ??.?? WHERE `key` = ?",[this.dbName,this.tableName,t],(s,o)=>{s?n(s):r(o.affectedRows>0),this._releaseConnection(i)})}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}};Tm.exports=Fl});var Pm=V((_6,Lm)=>{var xv=Ai(),Ev=Ce(),Kl=class extends xv{constructor(t,r=null){super(t),this.client=t.storeClient,this.clientType=t.storeType,this.tableName=t.tableName,this.schemaName=t.schemaName,this.clearExpiredByTimeout=t.clearExpiredByTimeout,this.tableCreated=t.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(t){return new Promise(r=>{let n={name:"rlflx-clear-expired",text:`DELETE FROM ${this._getTableIdentifier()} WHERE expire < $1`,values:[t]};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(t){switch(this.clientType){case"pool":return!0;case"sequelize":return this.client.connectionManager.releaseConnection(t);case"knex":return this.client.client.releaseConnection(t);case"typeorm":return!0;default:return!0}}_createTable(){return new Promise((t,r)=>{this._query({text:this._getCreateTableStmt()}).then(()=>{t()}).catch(n=>{n.code==="23505"?t():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
@@ -34,7 +34,7 @@
34
34
  END,
35
35
  expire = ${o}
36
36
  RETURNING points, expire;`,values:[t,r,s,Date.now()]})}_get(t){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:[t,Date.now()]}).then(i=>{i.rowCount===0&&(i=null),r(i)}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(t){return this.tableCreated?this._query({name:"rlflx-delete",text:`DELETE FROM ${this._getTableIdentifier()} WHERE key = $1`,values:[t]}).then(r=>r.rowCount>0):Promise.reject(Error("Table is not created yet"))}};Lm.exports=Fl});var Dm=V(()=>{});var km=V((v6,Nm)=>{Nm.exports=class{constructor(t,r,n=null){this.value=t,this.expiresAt=r,this.timeoutId=n}get value(){return this._value}set value(t){this._value=parseInt(t)}get expiresAt(){return this._expiresAt}set expiresAt(t){!(t instanceof Date)&&Number.isInteger(t)&&(t=new Date(t)),this._expiresAt=t}get timeoutId(){return this._timeoutId}set timeoutId(t){this._timeoutId=t}}});var Mm=V((S6,Om)=>{var bv=km(),Kl=Ce();Om.exports=class{constructor(){this._storage={}}incrby(t,r,n){if(this._storage[t]){let i=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return i!==0?(this._storage[t].value=this._storage[t].value+r,new Kl(0,i,this._storage[t].value,!1)):this.set(t,r,n)}return this.set(t,r,n)}set(t,r,n){let i=n*1e3;return this._storage[t]&&this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),this._storage[t]=new bv(r,i>0?new Date(Date.now()+i):null),i>0&&(this._storage[t].timeoutId=setTimeout(()=>{delete this._storage[t]},i),this._storage[t].timeoutId.unref&&this._storage[t].timeoutId.unref()),new Kl(0,i===0?-1:i,this._storage[t].value,!0)}get(t){if(this._storage[t]){let r=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return new Kl(0,r,this._storage[t].value,!1)}return null}delete(t){return this._storage[t]?(this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),delete this._storage[t],!0):!1}}});var ql=V((A6,Fm)=>{var wv=vs(),vv=Mm(),Um=Ce(),Vl=class extends wv{constructor(t={}){super(t),this._memoryStorage=new vv}consume(t,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(t),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(t,r=1,n={}){let i=this.getKey(t);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(t,r=1,n={}){let i=this.getKey(t);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(t,r){let n=r*1e3,i=this.points+1;return this._memoryStorage.set(this.getKey(t),i,r),Promise.resolve(new Um(0,n===0?-1:n,i))}set(t,r,n){let i=(n>=0?n:this.duration)*1e3;return this._memoryStorage.set(this.getKey(t),r,n),Promise.resolve(new Um(0,i===0?-1:i,r))}get(t){let r=this._memoryStorage.get(this.getKey(t));return r!==null&&(r.remainingPoints=Math.max(this.points-r.consumedPoints,0)),Promise.resolve(r)}delete(t){return Promise.resolve(this._memoryStorage.delete(this.getKey(t)))}};Fm.exports=Vl});var Gm=V((I6,zm)=>{var Km=Dm(),_v=Ui(),Sv=vs(),qm=ql(),Av=Ce(),ke="rate_limiter_flexible",Ci=null,Vm=function(e,t,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},e.send({channel:ke,keyPrefix:t.keyPrefix,promiseId:t.promiseId,type:r,data:i})},$m=function(e){setTimeout(()=>{this._initiated?process.send(e):typeof this._promises[e.promiseId]<"u"&&$m.call(this,e)},30)},Ii=function(e,t,r,n,i){let s={channel:ke,keyPrefix:this.keyPrefix,func:e,promiseId:t,data:{key:r,arg:n,opts:i}};this._initiated?process.send(s):$m.call(this,s)},Hm=function(e,t){if(!t||t.channel!==ke||typeof this._rateLimiters[t.keyPrefix]>"u")return!1;let r;switch(t.func){case"consume":r=this._rateLimiters[t.keyPrefix].consume(t.data.key,t.data.arg,t.data.opts);break;case"penalty":r=this._rateLimiters[t.keyPrefix].penalty(t.data.key,t.data.arg,t.data.opts);break;case"reward":r=this._rateLimiters[t.keyPrefix].reward(t.data.key,t.data.arg,t.data.opts);break;case"block":r=this._rateLimiters[t.keyPrefix].block(t.data.key,t.data.arg,t.data.opts);break;case"get":r=this._rateLimiters[t.keyPrefix].get(t.data.key,t.data.opts);break;case"delete":r=this._rateLimiters[t.keyPrefix].delete(t.data.key,t.data.opts);break;default:return!1}r&&r.then(n=>{Vm(e,t,"resolve",n)}).catch(n=>{Vm(e,t,"reject",n)})},Iv=function(e){if(!e||e.channel!==ke||e.keyPrefix!==this.keyPrefix)return!1;if(this._promises[e.promiseId]){clearTimeout(this._promises[e.promiseId].timeoutId);let t;switch(e.data===null||e.data===!0||e.data===!1?t=e.data:t=new Av(e.data.remainingPoints,e.data.msBeforeNext,e.data.consumedPoints,e.data.isFirstInDuration),e.type){case"resolve":this._promises[e.promiseId].resolve(t);break;case"reject":this._promises[e.promiseId].reject(t);break;default:throw new Error(`RateLimiterCluster: no such message type '${e.type}'`)}delete this._promises[e.promiseId]}},Rv=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},Ri=function(e,t){let r=process.hrtime(),n=r[0].toString()+r[1].toString();return typeof this._promises[n]<"u"&&(n+=_v.randomBytes(12).toString("base64")),this._promises[n]={resolve:e,reject:t,timeoutId:setTimeout(()=>{delete this._promises[n],t(new Error("RateLimiterCluster timeout: no answer from master in time"))},this.timeoutMs)},n},$l=class{constructor(){if(Ci)return Ci;this._rateLimiters={},Km.setMaxListeners(0),Km.on("message",(t,r)=>{r&&r.channel===ke&&r.type==="init"?(typeof this._rateLimiters[r.opts.keyPrefix]>"u"&&(this._rateLimiters[r.opts.keyPrefix]=new qm(r.opts)),t.send({channel:ke,type:"init",keyPrefix:r.opts.keyPrefix})):Hm.call(this,t,r)}),Ci=this}},Hl=class{constructor(t){if(Ci)return Ci;this._rateLimiters={},t.launchBus((r,n)=>{n.on("process:msg",i=>{let s=i.raw;if(s&&s.channel===ke&&s.type==="init")typeof this._rateLimiters[s.opts.keyPrefix]>"u"&&(this._rateLimiters[s.opts.keyPrefix]=new qm(s.opts)),t.sendDataToProcessId(i.process.pm_id,{data:{},topic:ke,channel:ke,type:"init",keyPrefix:s.opts.keyPrefix},(o,a)=>{o&&console.log(o,a)});else{let o={send:a=>{let c=a;c.topic=ke,typeof c.data>"u"&&(c.data={}),t.sendDataToProcessId(i.process.pm_id,c,(u,l)=>{u&&console.log(u,l)})}};Hm.call(this,o,s)}})}),Ci=this}},zl=class extends Sv{get timeoutMs(){return this._timeoutMs}set timeoutMs(t){this._timeoutMs=typeof t>"u"?5e3:Math.abs(parseInt(t))}constructor(t={}){super(t),process.setMaxListeners(0),this.timeoutMs=t.timeoutMs,this._initiated=!1,process.on("message",r=>{r&&r.channel===ke&&r.type==="init"&&r.keyPrefix===this.keyPrefix?this._initiated=!0:Iv.call(this,r)}),process.send({channel:ke,type:"init",opts:Rv.call(this)}),this._promises={}}consume(t,r=1,n={}){return new Promise((i,s)=>{let o=Ri.call(this,i,s);Ii.call(this,"consume",o,t,r,n)})}penalty(t,r=1,n={}){return new Promise((i,s)=>{let o=Ri.call(this,i,s);Ii.call(this,"penalty",o,t,r,n)})}reward(t,r=1,n={}){return new Promise((i,s)=>{let o=Ri.call(this,i,s);Ii.call(this,"reward",o,t,r,n)})}block(t,r,n={}){return new Promise((i,s)=>{let o=Ri.call(this,i,s);Ii.call(this,"block",o,t,r,n)})}get(t,r={}){return new Promise((n,i)=>{let s=Ri.call(this,n,i);Ii.call(this,"get",s,t,r)})}delete(t,r={}){return new Promise((n,i)=>{let s=Ri.call(this,n,i);Ii.call(this,"delete",s,t,r)})}};zm.exports={RateLimiterClusterMaster:$l,RateLimiterClusterMasterPM2:Hl,RateLimiterCluster:zl}});var Wm=V((R6,Ym)=>{var Cv=Ai(),Tv=Ce(),Gl=class extends Cv{constructor(t){super(t),this.client=t.storeClient}_getRateLimiterRes(t,r,n){let i=new Tv;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(t,r,n,i=!1,s={}){return new Promise((o,a)=>{let c=Date.now(),u=Math.floor(n/1e3);i?this.client.set(t,r,u,l=>{l?a(l):this.client.set(`${t}_expire`,u>0?c+u*1e3:-1,u,()=>{let f={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(f)})}):this.client.incr(t,r,(l,f)=>{l||f===!1?this.client.add(t,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(t,r,n,i,d).then(m=>o(m)).catch(m=>a(m))}else a(new Error("Can not add key"));else this.client.add(`${t}_expire`,u>0?c+u*1e3:-1,u,()=>{let d={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(d)})}):this.client.get(`${t}_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(t){return new Promise((r,n)=>{let i=Date.now();this.client.get(t,(s,o)=>{o?this.client.get(`${t}_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(t){return new Promise((r,n)=>{this.client.del(t,(i,s)=>{i?n(i):s===!1?r(s):this.client.del(`${t}_expire`,o=>{o?n(o):r(s)})})})}};Ym.exports=Gl});var Zm=V((T6,Xm)=>{var Qm=Ce();Xm.exports=class{constructor(t={}){this.limiter=t.limiter,this.blackList=t.blackList,this.whiteList=t.whiteList,this.isBlackListed=t.isBlackListed,this.isWhiteListed=t.isWhiteListed,this.runActionAnyway=t.runActionAnyway}get limiter(){return this._limiter}set limiter(t){if(typeof t>"u")throw new Error("limiter is not set");this._limiter=t}get runActionAnyway(){return this._runActionAnyway}set runActionAnyway(t){this._runActionAnyway=typeof t>"u"?!1:t}get blackList(){return this._blackList}set blackList(t){this._blackList=Array.isArray(t)?t:[]}get isBlackListed(){return this._isBlackListed}set isBlackListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isBlackListed must be function");this._isBlackListed=t}get whiteList(){return this._whiteList}set whiteList(t){this._whiteList=Array.isArray(t)?t:[]}get isWhiteListed(){return this._isWhiteListed}set isWhiteListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isWhiteListed must be function");this._isWhiteListed=t}isBlackListedSomewhere(t){return this.blackList.indexOf(t)>=0||this.isBlackListed(t)}isWhiteListedSomewhere(t){return this.whiteList.indexOf(t)>=0||this.isWhiteListed(t)}getBlackRes(){return new Qm(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new Qm(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(t,r=1){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.rejectBlack()),typeof n>"u"?this.limiter.consume(t,r):(this.runActionAnyway&&this.limiter.consume(t,r).catch(()=>{}),n)}block(t,r){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.block(t,r):(this.runActionAnyway&&this.limiter.block(t,r).catch(()=>{}),n)}penalty(t,r){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.penalty(t,r):(this.runActionAnyway&&this.limiter.penalty(t,r).catch(()=>{}),n)}reward(t,r){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.reward(t,r):(this.runActionAnyway&&this.limiter.reward(t,r).catch(()=>{}),n)}get(t){let r;return this.isWhiteListedSomewhere(t)?r=this.resolveWhite():this.isBlackListedSomewhere(t)&&(r=this.resolveBlack()),typeof r>"u"||this.runActionAnyway?this.limiter.get(t):r}delete(t){return this.limiter.delete(t)}}});var jm=V((L6,Jm)=>{var Bv=vs();Jm.exports=class{constructor(...t){if(t.length<1)throw new Error("RateLimiterUnion: at least one limiter have to be passed");t.forEach(r=>{if(!(r instanceof Bv))throw new Error("RateLimiterUnion: all limiters have to be instance of RateLimiterAbstract")}),this._limiters=t}consume(t,r=1){return new Promise((n,i)=>{let s=[];this._limiters.forEach(o=>{s.push(o.consume(t,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 ey=V((D6,ty)=>{ty.exports=class extends Error{constructor(t,r){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=t,r&&(this.extra=r)}}});var sy=V((k6,iy)=>{var ry=ey(),ny=4294967295,Yl="limiter";iy.exports=class{constructor(t,r={maxQueueSize:ny}){this._queueLimiters={KEY_DEFAULT:new fa(t,r)},this._limiterFlexible=t,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(t=Yl){return this._queueLimiters[t]?this._queueLimiters[t].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(t,r=Yl){return this._queueLimiters[r]||(this._queueLimiters[r]=new fa(this._limiterFlexible,{key:r,maxQueueSize:this._maxQueueSize})),this._queueLimiters[r].removeTokens(t)}};var fa=class{constructor(t,r={maxQueueSize:ny,key:Yl}){this._key=r.key,this._waitTimeout=null,this._queue=[],this._limiterFlexible=t,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(){return this._limiterFlexible.get(this._key).then(t=>t!==null?t.remainingPoints:this._limiterFlexible.points)}removeTokens(t){let r=this;return new Promise((n,i)=>{if(t>r._limiterFlexible.points){i(new ry(`Requested tokens ${t} exceeds maximum ${r._limiterFlexible.points} tokens per interval`));return}r._queue.length>0?r._queueRequest.call(r,n,i,t):r._limiterFlexible.consume(r._key,t).then(s=>{n(s.remainingPoints)}).catch(s=>{s instanceof Error?i(s):(r._queueRequest.call(r,n,i,t),r._waitTimeout===null&&(r._waitTimeout=setTimeout(r._processFIFO.bind(r),s.msBeforeNext)))})})}_queueRequest(t,r,n){let i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:t,reject:r,tokens:n}):r(new ry(`Number of requests reached it's maximum ${i._maxQueueSize}`))}_processFIFO(){let t=this;if(t._waitTimeout!==null&&(clearTimeout(t._waitTimeout),t._waitTimeout=null),t._queue.length===0)return;let r=t._queue.shift();t._limiterFlexible.consume(t._key,r.tokens).then(n=>{r.resolve(n.remainingPoints),t._processFIFO.call(t)}).catch(n=>{n instanceof Error?(r.reject(n),t._processFIFO.call(t)):(t._queue.unshift(r),t._waitTimeout===null&&(t._waitTimeout=setTimeout(t._processFIFO.bind(t),n.msBeforeNext)))})}}});var ay=V((M6,oy)=>{var Wl=Ce();oy.exports=class{constructor(t,r){this._rateLimiter=t,this._burstLimiter=r}_combineRes(t,r){return t?new Wl(t.remainingPoints,Math.min(t.msBeforeNext,r?r.msBeforeNext:0),t.consumedPoints,t.isFirstInDuration):null}consume(t,r=1,n={}){return this._rateLimiter.consume(t,r,n).catch(i=>i instanceof Wl?this._burstLimiter.consume(t,r,n).then(s=>Promise.resolve(this._combineRes(i,s))).catch(s=>s instanceof Wl?Promise.reject(this._combineRes(i,s)):Promise.reject(s)):Promise.reject(i))}get(t){return Promise.all([this._rateLimiter.get(t),this._burstLimiter.get(t)]).then(([r,n])=>this._combineRes(r,n))}get points(){return this._rateLimiter.points}}});var uy=V((U6,cy)=>{var Lv=Am(),Pv=Cm(),Dv=Bm(),Nv=Pm(),{RateLimiterClusterMaster:kv,RateLimiterClusterMasterPM2:Ov,RateLimiterCluster:Mv}=Gm(),Uv=ql(),Fv=Wm(),Kv=Zm(),Vv=jm(),qv=sy(),$v=ay(),Hv=Ce();cy.exports={RateLimiterRedis:Lv,RateLimiterMongo:Pv,RateLimiterMySQL:Dv,RateLimiterPostgres:Nv,RateLimiterMemory:Uv,RateLimiterMemcache:Fv,RateLimiterClusterMaster:kv,RateLimiterClusterMasterPM2:Ov,RateLimiterCluster:Mv,RLWrapperBlackAndWhite:Kv,RateLimiterUnion:Vv,RateLimiterQueue:qv,BurstyRateLimiter:$v,RateLimiterRes:Hv}});var __={};zt(__,{createLibp2p:()=>v_});var JR=mt(Mi(),1),jR=mt(O0(),1);var Gn=class e extends Error{code;type;constructor(t="The operation was aborted"){super(t),this.code=e.code,this.type=e.type}static code="ABORT_ERR";static type="aborted"},w=class extends Error{code;props;constructor(t,r,n){super(t),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var bo=mt(dt(),1);function cn(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}var uc={};zt(uc,{base10:()=>g1});function h1(e,t){if(e.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<e.length;i++){var s=e.charAt(i),o=s.charCodeAt(0);if(r[o]!==255)throw new TypeError(s+" is ambiguous");r[o]=i}var a=e.length,c=e.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,y=0,g=0,x=d.length;g!==x&&d[g]===0;)g++,m++;for(var b=(x-g)*l+1>>>0,C=new Uint8Array(b);g!==x;){for(var _=d[g],S=0,P=b-1;(_!==0||S<y)&&P!==-1;P--,S++)_+=256*C[P]>>>0,C[P]=_%a>>>0,_=_/a>>>0;if(_!==0)throw new Error("Non-zero carry");y=S,g++}for(var D=b-y;D!==b&&C[D]===0;)D++;for(var Y=c.repeat(m);D<b;++D)Y+=e.charAt(C[D]);return Y}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 y=0,g=0;d[m]===c;)y++,m++;for(var x=(d.length-m)*u+1>>>0,b=new Uint8Array(x);d[m];){var C=r[d.charCodeAt(m)];if(C===255)return;for(var _=0,S=x-1;(C!==0||_<g)&&S!==-1;S--,_++)C+=a*b[S]>>>0,b[S]=C%256>>>0,C=C/256>>>0;if(C!==0)throw new Error("Non-zero carry");g=_,m++}if(d[m]!==" "){for(var P=x-g;P!==x&&b[P]===0;)P++;for(var D=new Uint8Array(y+(x-P)),Y=y;P!==x;)D[Y++]=b[P++];return D}}}function p(d){var m=h(d);if(m)return m;throw new Error(`Non-${t} character`)}return{encode:f,decodeUnsafe:h,decode:p}}var d1=h1,p1=d1,M0=p1;var j_=new Uint8Array(0);var U0=(e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0},fr=e=>{if(e instanceof Uint8Array&&e.constructor.name==="Uint8Array")return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")};var F0=e=>new TextEncoder().encode(e),K0=e=>new TextDecoder().decode(e);var sc=class{constructor(t,r,n){this.name=t,this.prefix=r,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},oc=class{constructor(t,r,n){if(this.name=t,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return q0(this,t)}},ac=class{constructor(t){this.decoders=t}or(t){return q0(this,t)}decode(t){let r=t[0],n=this.decoders[r];if(n)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},q0=(e,t)=>new ac({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),cc=class{constructor(t,r,n,i){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new sc(t,r,n),this.decoder=new oc(t,r,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},Yn=({name:e,prefix:t,encode:r,decode:n})=>new cc(e,t,r,n),Pr=({prefix:e,name:t,alphabet:r})=>{let{encode:n,decode:i}=M0(r,t);return Yn({prefix:e,name:t,encode:n,decode:s=>fr(i(s))})},m1=(e,t,r,n)=>{let i={};for(let l=0;l<t.length;++l)i[t[l]]=l;let s=e.length;for(;e[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[e[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},y1=(e,t,r)=>{let n=t[t.length-1]==="=",i=(1<<r)-1,s="",o=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],o+=8;o>r;)o-=r,s+=t[i&a>>o];if(o&&(s+=t[i&a<<r-o]),n)for(;s.length*r&7;)s+="=";return s},Pt=({name:e,prefix:t,bitsPerChar:r,alphabet:n})=>Yn({prefix:t,name:e,encode(i){return y1(i,n,r)},decode(i){return m1(i,n,r,e)}});var g1=Pr({prefix:"9",name:"base10",alphabet:"0123456789"});var lc={};zt(lc,{base16:()=>x1,base16upper:()=>E1});var x1=Pt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),E1=Pt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var fc={};zt(fc,{base2:()=>b1});var b1=Pt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var hc={};zt(hc,{base256emoji:()=>A1});var $0=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}"),w1=$0.reduce((e,t,r)=>(e[r]=t,e),[]),v1=$0.reduce((e,t,r)=>(e[t.codePointAt(0)]=r,e),[]);function _1(e){return e.reduce((t,r)=>(t+=w1[r],t),"")}function S1(e){let t=[];for(let r of e){let n=v1[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);t.push(n)}return new Uint8Array(t)}var A1=Yn({prefix:"\u{1F680}",name:"base256emoji",encode:_1,decode:S1});var dc={};zt(dc,{base32:()=>Ee,base32hex:()=>T1,base32hexpad:()=>L1,base32hexpadupper:()=>P1,base32hexupper:()=>B1,base32pad:()=>R1,base32padupper:()=>C1,base32upper:()=>I1,base32z:()=>D1});var Ee=Pt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),I1=Pt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),R1=Pt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),C1=Pt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),T1=Pt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),B1=Pt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),L1=Pt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),P1=Pt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),D1=Pt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var pc={};zt(pc,{base36:()=>N1,base36upper:()=>k1});var N1=Pr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),k1=Pr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var mc={};zt(mc,{base58btc:()=>Ct,base58flickr:()=>O1});var Ct=Pr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),O1=Pr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var gc={};zt(gc,{base64:()=>un,base64pad:()=>M1,base64url:()=>yc,base64urlpad:()=>U1});var un=Pt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),M1=Pt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),yc=Pt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),U1=Pt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var xc={};zt(xc,{base8:()=>F1});var F1=Pt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var Ec={};zt(Ec,{identity:()=>K1});var K1=Yn({prefix:"\0",name:"identity",encode:e=>K0(e),decode:e=>F0(e)});var pS=new TextEncoder,mS=new TextDecoder;var wc={};zt(wc,{identity:()=>Dr});var $1=G0,H0=128,H1=127,z1=~H1,G1=Math.pow(2,31);function G0(e,t,r){t=t||[],r=r||0;for(var n=r;e>=G1;)t[r++]=e&255|H0,e/=128;for(;e&z1;)t[r++]=e&255|H0,e>>>=7;return t[r]=e|0,G0.bytes=r-n+1,t}var Y1=bc,W1=128,z0=127;function bc(e,n){var r=0,n=n||0,i=0,s=n,o,a=e.length;do{if(s>=a)throw bc.bytes=0,new RangeError("Could not decode varint");o=e[s++],r+=i<28?(o&z0)<<i:(o&z0)*Math.pow(2,i),i+=7}while(o>=W1);return bc.bytes=s-n,r}var Q1=Math.pow(2,7),X1=Math.pow(2,14),Z1=Math.pow(2,21),J1=Math.pow(2,28),j1=Math.pow(2,35),t2=Math.pow(2,42),e2=Math.pow(2,49),r2=Math.pow(2,56),n2=Math.pow(2,63),i2=function(e){return e<Q1?1:e<X1?2:e<Z1?3:e<J1?4:e<j1?5:e<t2?6:e<e2?7:e<r2?8:e<n2?9:10},s2={encode:$1,decode:Y1,encodingLength:i2},o2=s2,Vi=o2;var qi=(e,t=0)=>[Vi.decode(e,t),Vi.decode.bytes],Wn=(e,t,r=0)=>(Vi.encode(e,t,r),t),Qn=e=>Vi.encodingLength(e);var Je=(e,t)=>{let r=t.byteLength,n=Qn(e),i=n+Qn(r),s=new Uint8Array(i+r);return Wn(e,s,0),Wn(r,s,n),s.set(t,i),new Xn(e,r,t,s)},ln=e=>{let t=fr(e),[r,n]=qi(t),[i,s]=qi(t.subarray(n)),o=t.subarray(n+s);if(o.byteLength!==i)throw new Error("Incorrect length");return new Xn(r,i,o,t)},Y0=(e,t)=>{if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&U0(e.bytes,r.bytes)}},Xn=class{constructor(t,r,n,i){this.code=t,this.size=r,this.digest=n,this.bytes=i}};var W0=0,a2="identity",Q0=fr,c2=e=>Je(W0,Q0(e)),Dr={code:W0,name:a2,encode:Q0,digest:c2};var Sc={};zt(Sc,{sha256:()=>ee,sha512:()=>u2});var _c=({name:e,code:t,encode:r})=>new vc(e,t,r),vc=class{constructor(t,r,n){this.name=t,this.code=r,this.encode=n}digest(t){if(t instanceof Uint8Array){let r=this.encode(t);return r instanceof Uint8Array?Je(this.code,r):r.then(n=>Je(this.code,n))}else throw Error("Unknown type, must be binary type")}};var Z0=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),ee=_c({name:"sha2-256",code:18,encode:Z0("SHA-256")}),u2=_c({name:"sha2-512",code:19,encode:Z0("SHA-512")});var J0=(e,t)=>{let{bytes:r,version:n}=e;switch(n){case 0:return f2(r,Ac(e),t||Ct.encoder);default:return h2(r,Ac(e),t||Ee.encoder)}};var j0=new WeakMap,Ac=e=>{let t=j0.get(e);if(t==null){let r=new Map;return j0.set(e,r),r}return t},Ue=class e{constructor(t,r,n,i){this.code=r,this.version=t,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:t,multihash:r}=this;if(t!==$i)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==d2)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return e.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:t,digest:r}=this.multihash,n=Je(t,r);return e.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return e.equals(this,t)}static equals(t,r){let n=r;return n&&t.code===n.code&&t.version===n.version&&Y0(t.multihash,n.multihash)}toString(t){return J0(this,t)}toJSON(){return{"/":J0(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let r=t;if(r instanceof e)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:s,bytes:o}=r;return new e(n,i,s,o||th(n,i,s.bytes))}else if(r[p2]===!0){let{version:n,multihash:i,code:s}=r,o=ln(i);return e.create(n,s,o)}else return null}static create(t,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(t){case 0:{if(r!==$i)throw new Error(`Version 0 CID must use dag-pb (code: ${$i}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let i=th(t,r,n.bytes);return new e(t,r,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,$i,t)}static createV1(t,r){return e.create(1,t,r)}static decode(t){let[r,n]=e.decodeFirst(t);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(t){let r=e.inspectBytes(t),n=r.size-r.multihashSize,i=fr(t.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 Xn(r.multihashCode,r.digestSize,s,i);return[r.version===0?e.createV0(o):e.createV1(r.codec,o),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[f,h]=qi(t.subarray(r));return r+=h,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(t,r){let[n,i]=l2(t,r),s=e.decode(i);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Ac(s).set(n,t),s}},l2=(e,t)=>{switch(e[0]){case"Q":{let r=t||Ct;return[Ct.prefix,r.decode(`${Ct.prefix}${e}`)]}case Ct.prefix:{let r=t||Ct;return[Ct.prefix,r.decode(e)]}case Ee.prefix:{let r=t||Ee;return[Ee.prefix,r.decode(e)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}}},f2=(e,t,r)=>{let{prefix:n}=r;if(n!==Ct.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=t.get(n);if(i==null){let s=r.encode(e).slice(1);return t.set(n,s),s}else return i},h2=(e,t,r)=>{let{prefix:n}=r,i=t.get(n);if(i==null){let s=r.encode(e);return t.set(n,s),s}else return i},$i=112,d2=18,th=(e,t,r)=>{let n=Qn(e),i=n+Qn(t),s=new Uint8Array(i+r.byteLength);return Wn(e,s,0),Wn(t,s,n),s.set(r,i),s},p2=Symbol.for("@ipld/js-cid/CID");var Nr={...Ec,...fc,...xc,...uc,...lc,...dc,...pc,...mc,...gc,...hc},LS={...Sc,...wc};function hr(e=0){return globalThis.Buffer?.alloc!=null?cn(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function ae(e=0){return globalThis.Buffer?.allocUnsafe!=null?cn(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function rh(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var eh=rh("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),Ic=rh("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=ae(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),m2={utf8:eh,"utf-8":eh,hex:Nr.base16,latin1:Ic,ascii:Ic,binary:Ic,...Nr},Js=m2;function z(e,t="utf8"){let r=Js[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?cn(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}var nu={};zt(nu,{Ed25519PrivateKey:()=>gn,Ed25519PublicKey:()=>Xi,generateKeyPair:()=>BE,generateKeyPairFromSeed:()=>kh,unmarshalEd25519PrivateKey:()=>CE,unmarshalEd25519PublicKey:()=>TE});function Tt(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0}function nh(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function Rc(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function ih(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");nh(e.outputLen),nh(e.blockLen)}function Zn(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function sh(e,t){Rc(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var js=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var oh=e=>e instanceof Uint8Array;var to=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Fe=(e,t)=>e<<32-t|e>>>t,y2=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!y2)throw new Error("Non little-endian hardware is not supported");function Cc(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function Hi(e){if(typeof e=="string"&&(e=Cc(e)),!oh(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function eo(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!oh(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}var Jn=class{clone(){return this._cloneInto()}},zS={}.toString;function ro(e){let t=n=>e().update(Hi(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function jn(e=32){if(js&&typeof js.getRandomValues=="function")return js.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function g2(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,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;e.setUint32(t+c,o,n),e.setUint32(t+u,a,n)}var ti=class extends Jn{constructor(t,r,n,i){super(),this.blockLen=t,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(t),this.view=to(this.buffer)}update(t){Zn(this);let{view:r,buffer:n,blockLen:i}=this;t=Hi(t);let s=t.length;for(let o=0;o<s;){let a=Math.min(i-this.pos,s-o);if(a===i){let c=to(t);for(;i<=s-o;o+=i)this.process(c,o);continue}n.set(t.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Zn(this),sh(t,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;g2(n,i-8,BigInt(this.length*8),s),this.process(n,0);let a=to(t),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:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:r,buffer:n,length:i,finished:s,destroyed:o,pos:a}=this;return t.length=i,t.pos=a,t.finished=s,t.destroyed=o,i%r&&t.buffer.set(n),t}};var no=BigInt(4294967295),Tc=BigInt(32);function ah(e,t=!1){return t?{h:Number(e&no),l:Number(e>>Tc&no)}:{h:Number(e>>Tc&no)|0,l:Number(e&no)|0}}function x2(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){let{h:s,l:o}=ah(e[i],t);[r[i],n[i]]=[s,o]}return[r,n]}var E2=(e,t)=>BigInt(e>>>0)<<Tc|BigInt(t>>>0),b2=(e,t,r)=>e>>>r,w2=(e,t,r)=>e<<32-r|t>>>r,v2=(e,t,r)=>e>>>r|t<<32-r,_2=(e,t,r)=>e<<32-r|t>>>r,S2=(e,t,r)=>e<<64-r|t>>>r-32,A2=(e,t,r)=>e>>>r-32|t<<64-r,I2=(e,t)=>t,R2=(e,t)=>e,C2=(e,t,r)=>e<<r|t>>>32-r,T2=(e,t,r)=>t<<r|e>>>32-r,B2=(e,t,r)=>t<<r-32|e>>>64-r,L2=(e,t,r)=>e<<r-32|t>>>64-r;function P2(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}var D2=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),N2=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,k2=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),O2=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,M2=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),U2=(e,t,r,n,i,s)=>t+r+n+i+s+(e/2**32|0)|0;var F2={fromBig:ah,split:x2,toBig:E2,shrSH:b2,shrSL:w2,rotrSH:v2,rotrSL:_2,rotrBH:S2,rotrBL:A2,rotr32H:I2,rotr32L:R2,rotlSH:C2,rotlSL:T2,rotlBH:B2,rotlBL:L2,add:P2,add3L:D2,add3H:N2,add4L:k2,add4H:O2,add5H:U2,add5L:M2},J=F2;var[K2,V2]=(()=>J.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(e=>BigInt(e))))(),kr=new Uint32Array(80),Or=new Uint32Array(80),Bc=class extends ti{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:t,Al: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:y}=this;return[t,r,n,i,s,o,a,c,u,l,f,h,p,d,m,y]}set(t,r,n,i,s,o,a,c,u,l,f,h,p,d,m,y){this.Ah=t|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=y|0}process(t,r){for(let b=0;b<16;b++,r+=4)kr[b]=t.getUint32(r),Or[b]=t.getUint32(r+=4);for(let b=16;b<80;b++){let C=kr[b-15]|0,_=Or[b-15]|0,S=J.rotrSH(C,_,1)^J.rotrSH(C,_,8)^J.shrSH(C,_,7),P=J.rotrSL(C,_,1)^J.rotrSL(C,_,8)^J.shrSL(C,_,7),D=kr[b-2]|0,Y=Or[b-2]|0,W=J.rotrSH(D,Y,19)^J.rotrBH(D,Y,61)^J.shrSH(D,Y,6),H=J.rotrSL(D,Y,19)^J.rotrBL(D,Y,61)^J.shrSL(D,Y,6),et=J.add4L(P,H,Or[b-7],Or[b-16]),pt=J.add4H(et,S,W,kr[b-7],kr[b-16]);kr[b]=pt|0,Or[b]=et|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:y,Hh:g,Hl:x}=this;for(let b=0;b<80;b++){let C=J.rotrSH(f,h,14)^J.rotrSH(f,h,18)^J.rotrBH(f,h,41),_=J.rotrSL(f,h,14)^J.rotrSL(f,h,18)^J.rotrBL(f,h,41),S=f&p^~f&m,P=h&d^~h&y,D=J.add5L(x,_,P,V2[b],Or[b]),Y=J.add5H(D,g,C,S,K2[b],kr[b]),W=D|0,H=J.rotrSH(n,i,28)^J.rotrBH(n,i,34)^J.rotrBH(n,i,39),et=J.rotrSL(n,i,28)^J.rotrBL(n,i,34)^J.rotrBL(n,i,39),pt=n&s^n&a^s&a,Jt=i&o^i&c^o&c;g=m|0,x=y|0,m=p|0,y=d|0,p=f|0,d=h|0,{h:f,l:h}=J.add(u|0,l|0,Y|0,W|0),u=a|0,l=c|0,a=s|0,c=o|0,s=n|0,o=i|0;let T=J.add3L(W,et,Jt);n=J.add3H(T,Y,H,pt),i=T|0}({h:n,l:i}=J.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:s,l:o}=J.add(this.Bh|0,this.Bl|0,s|0,o|0),{h:a,l:c}=J.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l}=J.add(this.Dh|0,this.Dl|0,u|0,l|0),{h:f,l:h}=J.add(this.Eh|0,this.El|0,f|0,h|0),{h:p,l:d}=J.add(this.Fh|0,this.Fl|0,p|0,d|0),{h:m,l:y}=J.add(this.Gh|0,this.Gl|0,m|0,y|0),{h:g,l:x}=J.add(this.Hh|0,this.Hl|0,g|0,x|0),this.set(n,i,s,o,a,c,u,l,f,h,p,d,m,y,g,x)}roundClean(){kr.fill(0),Or.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}};var Lc=ro(()=>new Bc);var oo={};zt(oo,{bitGet:()=>W2,bitLen:()=>Y2,bitMask:()=>zi,bitSet:()=>Q2,bytesToHex:()=>dr,bytesToNumberBE:()=>pr,bytesToNumberLE:()=>Mr,concatBytes:()=>mr,createHmacDrbg:()=>Nc,ensureBytes:()=>Dt,equalBytes:()=>z2,hexToBytes:()=>hn,hexToNumber:()=>Dc,numberToBytesBE:()=>Ur,numberToBytesLE:()=>dn,numberToHexUnpadded:()=>lh,numberToVarBytesBE:()=>H2,utf8ToBytes:()=>G2,validateObject:()=>je});var uh=BigInt(0),io=BigInt(1),q2=BigInt(2),so=e=>e instanceof Uint8Array,$2=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function dr(e){if(!so(e))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=$2[e[r]];return t}function lh(e){let t=e.toString(16);return t.length&1?`0${t}`:t}function Dc(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return BigInt(e===""?"0":`0x${e}`)}function hn(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);let t=e.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(t/2);for(let n=0;n<r.length;n++){let i=n*2,s=e.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 pr(e){return Dc(dr(e))}function Mr(e){if(!so(e))throw new Error("Uint8Array expected");return Dc(dr(Uint8Array.from(e).reverse()))}function Ur(e,t){return hn(e.toString(16).padStart(t*2,"0"))}function dn(e,t){return Ur(e,t).reverse()}function H2(e){return hn(lh(e))}function Dt(e,t,r){let n;if(typeof t=="string")try{n=hn(t)}catch(s){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${s}`)}else if(so(t))n=Uint8Array.from(t);else throw new Error(`${e} must be hex string or Uint8Array`);let i=n.length;if(typeof r=="number"&&i!==r)throw new Error(`${e} expected ${r} bytes, got ${i}`);return n}function mr(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!so(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}function z2(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function G2(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function Y2(e){let t;for(t=0;e>uh;e>>=io,t+=1);return t}function W2(e,t){return e>>BigInt(t)&io}var Q2=(e,t,r)=>e|(r?io:uh)<<BigInt(t),zi=e=>(q2<<BigInt(e-1))-io,Pc=e=>new Uint8Array(e),ch=e=>Uint8Array.from(e);function Nc(e,t,r){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof r!="function")throw new Error("hmacFn must be a function");let n=Pc(e),i=Pc(e),s=0,o=()=>{n.fill(1),i.fill(0),s=0},a=(...f)=>r(i,n,...f),c=(f=Pc())=>{i=a(ch([0]),f),n=a(),f.length!==0&&(i=a(ch([1]),f),n=a())},u=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let f=0,h=[];for(;f<t;){n=a();let p=n.slice();h.push(p),f+=n.length}return mr(...h)};return(f,h)=>{o(),c(f);let p;for(;!(p=h(u()));)c();return o(),p}}var X2={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||e instanceof Uint8Array,isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function je(e,t,r={}){let n=(i,s,o)=>{let a=X2[s];if(typeof a!="function")throw new Error(`Invalid validator "${s}", expected function`);let c=e[i];if(!(o&&c===void 0)&&!a(c,e))throw new Error(`Invalid param ${String(i)}=${c} (${typeof c}), expected ${s}`)};for(let[i,s]of Object.entries(t))n(i,s,!1);for(let[i,s]of Object.entries(r))n(i,s,!0);return e}var $t=BigInt(0),At=BigInt(1),pn=BigInt(2),Z2=BigInt(3),kc=BigInt(4),fh=BigInt(5),hh=BigInt(8),J2=BigInt(9),j2=BigInt(16);function yt(e,t){let r=e%t;return r>=$t?r:t+r}function tE(e,t,r){if(r<=$t||t<$t)throw new Error("Expected power/modulo > 0");if(r===At)return $t;let n=At;for(;t>$t;)t&At&&(n=n*e%r),e=e*e%r,t>>=At;return n}function It(e,t,r){let n=e;for(;t-- >$t;)n*=n,n%=r;return n}function ao(e,t){if(e===$t||t<=$t)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=yt(e,t),n=t,i=$t,s=At,o=At,a=$t;for(;r!==$t;){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!==At)throw new Error("invert: does not exist");return yt(i,t)}function eE(e){let t=(e-At)/pn,r,n,i;for(r=e-At,n=0;r%pn===$t;r/=pn,n++);for(i=pn;i<e&&tE(i,t,e)!==e-At;i++);if(n===1){let o=(e+At)/kc;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+At)/pn;return function(a,c){if(a.pow(c,t)===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,At<<BigInt(u-p-1));l=a.sqr(d),f=a.mul(f,d),h=a.mul(h,l),u=p}return f}}function rE(e){if(e%kc===Z2){let t=(e+At)/kc;return function(n,i){let s=n.pow(i,t);if(!n.eql(n.sqr(s),i))throw new Error("Cannot find square root");return s}}if(e%hh===fh){let t=(e-fh)/hh;return function(n,i){let s=n.mul(i,pn),o=n.pow(s,t),a=n.mul(i,o),c=n.mul(n.mul(a,pn),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 e%j2,eE(e)}var dh=(e,t)=>(yt(e,t)&At)===At,nE=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Oc(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=nE.reduce((n,i)=>(n[i]="function",n),t);return je(e,r)}function iE(e,t,r){if(r<$t)throw new Error("Expected power > 0");if(r===$t)return e.ONE;if(r===At)return t;let n=e.ONE,i=t;for(;r>$t;)r&At&&(n=e.mul(n,i)),i=e.sqr(i),r>>=At;return n}function sE(e,t){let r=new Array(t.length),n=t.reduce((s,o,a)=>e.is0(o)?s:(r[a]=s,e.mul(s,o)),e.ONE),i=e.inv(n);return t.reduceRight((s,o,a)=>e.is0(o)?s:(r[a]=e.mul(s,r[a]),e.mul(s,o)),i),r}function Mc(e,t){let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function co(e,t,r=!1,n={}){if(e<=$t)throw new Error(`Expected Field ORDER > 0, got ${e}`);let{nBitLength:i,nByteLength:s}=Mc(e,t);if(s>2048)throw new Error("Field lengths over 2048 bytes are not supported");let o=rE(e),a=Object.freeze({ORDER:e,BITS:i,BYTES:s,MASK:zi(i),ZERO:$t,ONE:At,create:c=>yt(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return $t<=c&&c<e},is0:c=>c===$t,isOdd:c=>(c&At)===At,neg:c=>yt(-c,e),eql:(c,u)=>c===u,sqr:c=>yt(c*c,e),add:(c,u)=>yt(c+u,e),sub:(c,u)=>yt(c-u,e),mul:(c,u)=>yt(c*u,e),pow:(c,u)=>iE(a,c,u),div:(c,u)=>yt(c*ao(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>ao(c,e),sqrt:n.sqrt||(c=>o(a,c)),invertBatch:c=>sE(a,c),cmov:(c,u,l)=>l?u:c,toBytes:c=>r?dn(c,s):Ur(c,s),fromBytes:c=>{if(c.length!==s)throw new Error(`Fp.fromBytes: expected ${s}, got ${c.length}`);return r?Mr(c):pr(c)}});return Object.freeze(a)}function ph(e,t){if(!e.isOdd)throw new Error("Field doesn't have isOdd");let r=e.sqrt(t);return e.isOdd(r)?e.neg(r):r}function mh(e){if(typeof e!="bigint")throw new Error("field order must be bigint");let t=e.toString(2).length;return Math.ceil(t/8)}function Uc(e){let t=mh(e);return t+Math.ceil(t/2)}function yh(e,t,r=!1){let n=e.length,i=mh(t),s=Uc(t);if(n<16||n<s||n>1024)throw new Error(`expected ${s}-1024 bytes of input, got ${n}`);let o=r?pr(e):Mr(e),a=yt(o,t-At)+At;return r?dn(a,i):Ur(a,i)}var aE=BigInt(0),Fc=BigInt(1);function uo(e,t){let r=(i,s)=>{let o=s.negate();return i?o:s},n=i=>{let s=Math.ceil(t/i)+1,o=2**(i-1);return{windows:s,windowSize:o}};return{constTimeNegate:r,unsafeLadder(i,s){let o=e.ZERO,a=i;for(;s>aE;)s&Fc&&(o=o.add(a)),a=a.double(),s>>=Fc;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=e.ZERO,l=e.BASE,f=BigInt(2**i-1),h=2**i,p=BigInt(i);for(let d=0;d<a;d++){let m=d*c,y=Number(o&f);o>>=p,y>c&&(y-=h,o+=Fc);let g=m,x=m+Math.abs(y)-1,b=d%2!==0,C=y<0;y===0?l=l.add(r(b,s[g])):u=u.add(r(C,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 Gi(e){return Oc(e.Fp),je(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Mc(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var Ke=BigInt(0),be=BigInt(1),lo=BigInt(2),cE=BigInt(8),uE={zip215:!0};function lE(e){let t=Gi(e);return je(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function fo(e){let t=lE(e),{Fp:r,n,prehash:i,hash:s,randomBytes:o,nByteLength:a,h:c}=t,u=lo<<BigInt(a*8)-be,l=r.create,f=t.uvRatio||((N,I)=>{try{return{isValid:!0,value:r.sqrt(N*r.inv(I))}}catch{return{isValid:!1,value:Ke}}}),h=t.adjustScalarBytes||(N=>N),p=t.domain||((N,I,U)=>{if(I.length||U)throw new Error("Contexts/pre-hash are not supported");return N}),d=N=>typeof N=="bigint"&&Ke<N,m=(N,I)=>d(N)&&d(I)&&N<I,y=N=>N===Ke||m(N,u);function g(N,I){if(m(N,I))return N;throw new Error(`Expected valid scalar < ${I}, got ${typeof N} ${N}`)}function x(N){return N===Ke?N:g(N,n)}let b=new Map;function C(N){if(!(N instanceof _))throw new Error("ExtendedPoint expected")}class _{constructor(I,U,q,G){if(this.ex=I,this.ey=U,this.ez=q,this.et=G,!y(I))throw new Error("x required");if(!y(U))throw new Error("y required");if(!y(q))throw new Error("z required");if(!y(G))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(I){if(I instanceof _)throw new Error("extended point not allowed");let{x:U,y:q}=I||{};if(!y(U)||!y(q))throw new Error("invalid affine point");return new _(U,q,be,l(U*q))}static normalizeZ(I){let U=r.invertBatch(I.map(q=>q.ez));return I.map((q,G)=>q.toAffine(U[G])).map(_.fromAffine)}_setWindowSize(I){this._WINDOW_SIZE=I,b.delete(this)}assertValidity(){let{a:I,d:U}=t;if(this.is0())throw new Error("bad point: ZERO");let{ex:q,ey:G,ez:j,et:nt}=this,ht=l(q*q),it=l(G*G),ct=l(j*j),Ft=l(ct*ct),Lt=l(ht*I),jt=l(ct*l(Lt+it)),te=l(Ft+l(U*l(ht*it)));if(jt!==te)throw new Error("bad point: equation left != right (1)");let qt=l(q*G),oe=l(j*nt);if(qt!==oe)throw new Error("bad point: equation left != right (2)")}equals(I){C(I);let{ex:U,ey:q,ez:G}=this,{ex:j,ey:nt,ez:ht}=I,it=l(U*ht),ct=l(j*G),Ft=l(q*ht),Lt=l(nt*G);return it===ct&&Ft===Lt}is0(){return this.equals(_.ZERO)}negate(){return new _(l(-this.ex),this.ey,this.ez,l(-this.et))}double(){let{a:I}=t,{ex:U,ey:q,ez:G}=this,j=l(U*U),nt=l(q*q),ht=l(lo*l(G*G)),it=l(I*j),ct=U+q,Ft=l(l(ct*ct)-j-nt),Lt=it+nt,jt=Lt-ht,te=it-nt,qt=l(Ft*jt),oe=l(Lt*te),ar=l(Ft*te),en=l(jt*Lt);return new _(qt,oe,en,ar)}add(I){C(I);let{a:U,d:q}=t,{ex:G,ey:j,ez:nt,et:ht}=this,{ex:it,ey:ct,ez:Ft,et:Lt}=I;if(U===BigInt(-1)){let pf=l((j-G)*(ct+it)),mf=l((j+G)*(ct-it)),Oa=l(mf-pf);if(Oa===Ke)return this.double();let yf=l(nt*lo*Lt),gf=l(ht*lo*Ft),xf=gf+yf,Ef=mf+pf,bf=gf-yf,Py=l(xf*Oa),Dy=l(Ef*bf),Ny=l(xf*bf),ky=l(Oa*Ef);return new _(Py,Dy,ky,Ny)}let jt=l(G*it),te=l(j*ct),qt=l(ht*q*Lt),oe=l(nt*Ft),ar=l((G+j)*(it+ct)-jt-te),en=oe-qt,Di=oe+qt,df=l(te-U*jt),Cy=l(ar*en),Ty=l(Di*df),By=l(ar*df),Ly=l(en*Di);return new _(Cy,Ty,Ly,By)}subtract(I){return this.add(I.negate())}wNAF(I){return D.wNAFCached(this,b,I,_.normalizeZ)}multiply(I){let{p:U,f:q}=this.wNAF(g(I,n));return _.normalizeZ([U,q])[0]}multiplyUnsafe(I){let U=x(I);return U===Ke?P:this.equals(P)||U===be?this:this.equals(S)?this.wNAF(U).p:D.unsafeLadder(this,U)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return D.unsafeLadder(this,n).is0()}toAffine(I){let{ex:U,ey:q,ez:G}=this,j=this.is0();I==null&&(I=j?cE:r.inv(G));let nt=l(U*I),ht=l(q*I),it=l(G*I);if(j)return{x:Ke,y:be};if(it!==be)throw new Error("invZ was invalid");return{x:nt,y:ht}}clearCofactor(){let{h:I}=t;return I===be?this:this.multiplyUnsafe(I)}static fromHex(I,U=!1){let{d:q,a:G}=t,j=r.BYTES;I=Dt("pointHex",I,j);let nt=I.slice(),ht=I[j-1];nt[j-1]=ht&-129;let it=Mr(nt);it===Ke||(U?g(it,u):g(it,r.ORDER));let ct=l(it*it),Ft=l(ct-be),Lt=l(q*ct-G),{isValid:jt,value:te}=f(Ft,Lt);if(!jt)throw new Error("Point.fromHex: invalid y coordinate");let qt=(te&be)===be,oe=(ht&128)!==0;if(!U&&te===Ke&&oe)throw new Error("Point.fromHex: x=0 and x_0=1");return oe!==qt&&(te=l(-te)),_.fromAffine({x:te,y:it})}static fromPrivateKey(I){return H(I).point}toRawBytes(){let{x:I,y:U}=this.toAffine(),q=dn(U,r.BYTES);return q[q.length-1]|=I&be?128:0,q}toHex(){return dr(this.toRawBytes())}}_.BASE=new _(t.Gx,t.Gy,be,l(t.Gx*t.Gy)),_.ZERO=new _(Ke,be,be,Ke);let{BASE:S,ZERO:P}=_,D=uo(_,a*8);function Y(N){return yt(N,n)}function W(N){return Y(Mr(N))}function H(N){let I=a;N=Dt("private key",N,I);let U=Dt("hashed private key",s(N),2*I),q=h(U.slice(0,I)),G=U.slice(I,2*I),j=W(q),nt=S.multiply(j),ht=nt.toRawBytes();return{head:q,prefix:G,scalar:j,point:nt,pointBytes:ht}}function et(N){return H(N).pointBytes}function pt(N=new Uint8Array,...I){let U=mr(...I);return W(s(p(U,Dt("context",N),!!i)))}function Jt(N,I,U={}){N=Dt("message",N),i&&(N=i(N));let{prefix:q,scalar:G,pointBytes:j}=H(I),nt=pt(U.context,q,N),ht=S.multiply(nt).toRawBytes(),it=pt(U.context,ht,j,N),ct=Y(nt+it*G);x(ct);let Ft=mr(ht,dn(ct,r.BYTES));return Dt("result",Ft,a*2)}let T=uE;function k(N,I,U,q=T){let{context:G,zip215:j}=q,nt=r.BYTES;N=Dt("signature",N,2*nt),I=Dt("message",I),i&&(I=i(I));let ht=Mr(N.slice(nt,2*nt)),it,ct,Ft;try{it=_.fromHex(U,j),ct=_.fromHex(N.slice(0,nt),j),Ft=S.multiplyUnsafe(ht)}catch{return!1}if(!j&&it.isSmallOrder())return!1;let Lt=pt(G,ct.toRawBytes(),it.toRawBytes(),I);return ct.add(it.multiplyUnsafe(Lt)).subtract(Ft).clearCofactor().equals(_.ZERO)}return S._setWindowSize(8),{CURVE:t,getPublicKey:et,sign:Jt,verify:k,ExtendedPoint:_,utils:{getExtendedPublicKey:H,randomPrivateKey:()=>o(r.BYTES),precompute(N=8,I=_.BASE){return I._setWindowSize(N),I.multiply(BigInt(3)),I}}}}var Vc=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),gh=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),dA=BigInt(0),fE=BigInt(1),Kc=BigInt(2),hE=BigInt(5),xh=BigInt(10),dE=BigInt(20),pE=BigInt(40),Eh=BigInt(80);function mE(e){let t=Vc,n=e*e%t*e%t,i=It(n,Kc,t)*n%t,s=It(i,fE,t)*e%t,o=It(s,hE,t)*s%t,a=It(o,xh,t)*o%t,c=It(a,dE,t)*a%t,u=It(c,pE,t)*c%t,l=It(u,Eh,t)*u%t,f=It(l,Eh,t)*u%t,h=It(f,xh,t)*o%t;return{pow_p_5_8:It(h,Kc,t)*e%t,b2:n}}function yE(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function gE(e,t){let r=Vc,n=yt(t*t*t,r),i=yt(n*n*t,r),s=mE(e*i).pow_p_5_8,o=yt(e*n*s,r),a=yt(t*o*o,r),c=o,u=yt(o*gh,r),l=a===e,f=a===yt(-e,r),h=a===yt(-e*gh,r);return l&&(o=c),(f||h)&&(o=u),dh(o,r)&&(o=yt(-o,r)),{isValid:l||f,value:o}}var yr=co(Vc,void 0,!0),qc={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:yr,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Lc,randomBytes:jn,adjustScalarBytes:yE,uvRatio:gE},ei=fo(qc);function bh(e,t,r){if(t.length>255)throw new Error("Context is too big");return eo(Cc("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}var pA=fo({...qc,domain:bh}),mA=fo({...qc,domain:bh,prehash:Lc});var xE=(yr.ORDER+BigInt(3))/BigInt(8),yA=yr.pow(Kc,xE),gA=yr.sqrt(yr.neg(yr.ONE)),xA=(yr.ORDER-BigInt(5))/BigInt(8),EA=BigInt(486662);var bA=ph(yr,yr.neg(BigInt(486664)));var wA=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),vA=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),_A=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),SA=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var AA=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var ri=32,gr=64,ho=32;async function wh(){let e=ei.utils.randomPrivateKey(),t=ei.getPublicKey(e);return{privateKey:Ah(e,t),publicKey:t}}async function vh(e){if(e.length!==ho)throw new TypeError('"seed" must be 32 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let t=e,r=ei.getPublicKey(t);return{privateKey:Ah(t,r),publicKey:r}}async function _h(e,t){let r=e.subarray(0,ho);return ei.sign(t,r)}async function Sh(e,t,r){return ei.verify(t,r,e)}function Ah(e,t){let r=new Uint8Array(gr);for(let n=0;n<ho;n++)r[n]=e[n],r[ho+n]=t[n];return r}function kt(e,t){t==null&&(t=e.reduce((i,s)=>i+s.length,0));let r=ae(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return cn(r)}var me={get(e=globalThis){let t=e.crypto;if(t==null||t.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-crypto/blob/master/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return t}};var $c={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function po(e){let t=e?.algorithm??"AES-GCM",r=e?.keyLength??16,n=e?.nonceLength??12,i=e?.digest??"SHA-256",s=e?.saltLength??16,o=e?.iterations??32767,a=me.get();r*=8;async function c(f,h){let p=a.getRandomValues(new Uint8Array(s)),d=a.getRandomValues(new Uint8Array(n)),m={name:t,iv:d};typeof h=="string"&&(h=z(h));let y;if(h.length===0){y=await a.subtle.importKey("jwk",$c,{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"]);y=await a.subtle.deriveKey(x,b,{name:t,length:r},!0,["encrypt"])}catch{y=await a.subtle.importKey("jwk",$c,{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"]);y=await a.subtle.deriveKey(x,b,{name:t,length:r},!0,["encrypt"])}let g=await a.subtle.encrypt(m,y,f);return kt([p,m.iv,new Uint8Array(g)])}async function u(f,h){let p=f.subarray(0,s),d=f.subarray(s,s+n),m=f.subarray(s+n),y={name:t,iv:d};typeof h=="string"&&(h=z(h));let g;if(h.length===0)try{let b={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},C=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(b,C,{name:t,length:r},!0,["decrypt"])}catch{g=await a.subtle.importKey("jwk",$c,{name:"AES-GCM"},!0,["decrypt"])}else{let b={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},C=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(b,C,{name:t,length:r},!0,["decrypt"])}let x=await a.subtle.decrypt(y,g,m);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function ni(e,t){let n=await po().encrypt(e,t);return un.encode(n)}var Hc=new Float32Array([-0]),Fr=new Uint8Array(Hc.buffer);function Rh(e,t,r){Hc[0]=e,t[r]=Fr[0],t[r+1]=Fr[1],t[r+2]=Fr[2],t[r+3]=Fr[3]}function Ch(e,t){return Fr[0]=e[t],Fr[1]=e[t+1],Fr[2]=e[t+2],Fr[3]=e[t+3],Hc[0]}var zc=new Float64Array([-0]),ce=new Uint8Array(zc.buffer);function Th(e,t,r){zc[0]=e,t[r]=ce[0],t[r+1]=ce[1],t[r+2]=ce[2],t[r+3]=ce[3],t[r+4]=ce[4],t[r+5]=ce[5],t[r+6]=ce[6],t[r+7]=ce[7]}function Bh(e,t){return ce[0]=e[t],ce[1]=e[t+1],ce[2]=e[t+2],ce[3]=e[t+3],ce[4]=e[t+4],ce[5]=e[t+5],ce[6]=e[t+6],ce[7]=e[t+7],zc[0]}var bE=BigInt(Number.MAX_SAFE_INTEGER),wE=BigInt(Number.MIN_SAFE_INTEGER),ye=class e{lo;hi;constructor(t,r){this.lo=t|0,this.hi=r|0}toNumber(t=!1){if(!t&&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(t=!1){if(t)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(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?t<16384?t<128?1:2:t<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return mn;if(t<bE&&t>wE)return this.fromNumber(Number(t));let r=t<0n;r&&(t=-t);let n=t>>32n,i=t-(n<<32n);return r&&(n=~n|0n,i=~i|0n,++i>Lh&&(i=0n,++n>Lh&&(n=0n))),new e(Number(i),Number(n))}static fromNumber(t){if(t===0)return mn;let r=t<0;r&&(t=-t);let n=t>>>0,i=(t-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new e(n,i)}static from(t){return typeof t=="number"?e.fromNumber(t):typeof t=="bigint"?e.fromBigInt(t):typeof t=="string"?e.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new e(t.low>>>0,t.high>>>0):mn}},mn=new ye(0,0);mn.toBigInt=function(){return 0n};mn.zzEncode=mn.zzDecode=function(){return this};mn.length=function(){return 1};var Lh=4294967296n;function Ph(e){let t=0,r=0;for(let n=0;n<e.length;++n)r=e.charCodeAt(n),r<128?t+=1:r<2048?t+=2:(r&64512)===55296&&(e.charCodeAt(n+1)&64512)===56320?(++n,t+=4):t+=3;return t}function Dh(e,t,r){if(r-t<1)return"";let i,s=[],o=0,a;for(;t<r;)a=e[t++],a<128?s[o++]=a:a>191&&a<224?s[o++]=(a&31)<<6|e[t++]&63:a>239&&a<365?(a=((a&7)<<18|(e[t++]&63)<<12|(e[t++]&63)<<6|e[t++]&63)-65536,s[o++]=55296+(a>>10),s[o++]=56320+(a&1023)):s[o++]=(a&15)<<12|(e[t++]&63)<<6|e[t++]&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 Gc(e,t,r){let n=r,i,s;for(let o=0;o<e.length;++o)i=e.charCodeAt(o),i<128?t[r++]=i:i<2048?(t[r++]=i>>6|192,t[r++]=i&63|128):(i&64512)===55296&&((s=e.charCodeAt(o+1))&64512)===56320?(i=65536+((i&1023)<<10)+(s&1023),++o,t[r++]=i>>18|240,t[r++]=i>>12&63|128,t[r++]=i>>6&63|128,t[r++]=i&63|128):(t[r++]=i>>12|224,t[r++]=i>>6&63|128,t[r++]=i&63|128);return r-n}function Ve(e,t){return RangeError(`index out of range: ${e.pos} + ${t??1} > ${e.len}`)}function mo(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}var Yc=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Ve(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Ve(this,4);return mo(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Ve(this,4);return mo(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Ve(this,4);let t=Ch(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Ve(this,4);let t=Bh(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),r=this.pos,n=this.pos+t;if(n>this.len)throw Ve(this,t);return this.pos+=t,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let t=this.bytes();return Dh(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Ve(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Ve(this);while(this.buf[this.pos++]&128);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new ye(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw Ve(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,t}if(this.len-this.pos>4){for(;r<5;++r)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;r<5;++r){if(this.pos>=this.len)throw Ve(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Ve(this,8);let t=mo(this.buf,this.pos+=4),r=mo(this.buf,this.pos+=4);return new ye(t,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 Wc(e){return new Yc(e instanceof Uint8Array?e:e.subarray())}function re(e,t){let r=Wc(e);return t.decode(r)}function Qc(e){let t=e??8192,r=t>>>1,n,i=t;return function(o){if(o<1||o>r)return ae(o);i+o>t&&(n=ae(t),i=0);let a=n.subarray(i,i+=o);return i&7&&(i=(i|7)+1),a}}var yn=class{fn;len;next;val;constructor(t,r,n){this.fn=t,this.len=r,this.next=void 0,this.val=n}};function Xc(){}var Jc=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},vE=Qc();function _E(e){return globalThis.Buffer!=null?ae(e):vE(e)}var Qi=class{len;head;tail;states;constructor(){this.len=0,this.head=new yn(Xc,0,0),this.tail=this.head,this.states=null}_push(t,r,n){return this.tail=this.tail.next=new yn(t,r,n),this.len+=r,this}uint32(t){return this.len+=(this.tail=this.tail.next=new jc((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(Yi,10,ye.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let r=ye.fromBigInt(t);return this._push(Yi,r.length(),r)}uint64Number(t){let r=ye.fromNumber(t);return this._push(Yi,r.length(),r)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let r=ye.fromBigInt(t).zzEncode();return this._push(Yi,r.length(),r)}sint64Number(t){let r=ye.fromNumber(t).zzEncode();return this._push(Yi,r.length(),r)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(Zc,1,t?1:0)}fixed32(t){return this._push(Wi,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let r=ye.fromBigInt(t);return this._push(Wi,4,r.lo)._push(Wi,4,r.hi)}fixed64Number(t){let r=ye.fromNumber(t);return this._push(Wi,4,r.lo)._push(Wi,4,r.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(Rh,4,t)}double(t){return this._push(Th,8,t)}bytes(t){let r=t.length>>>0;return r===0?this._push(Zc,1,0):this.uint32(r)._push(AE,r,t)}string(t){let r=Ph(t);return r!==0?this.uint32(r)._push(Gc,r,t):this._push(Zc,1,0)}fork(){return this.states=new Jc(this),this.head=this.tail=new yn(Xc,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 yn(Xc,0,0),this.len=0),this}ldelim(){let t=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=r,this.len+=n),this}finish(){let t=this.head.next,r=_E(this.len),n=0;for(;t!=null;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r}};function Zc(e,t,r){t[r]=e&255}function SE(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}var jc=class extends yn{next;constructor(t,r){super(SE,t,r),this.next=void 0}};function Yi(e,t,r){for(;e.hi!==0;)t[r++]=e.lo&127|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=e.lo&127|128,e.lo=e.lo>>>7;t[r++]=e.lo}function Wi(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function AE(e,t,r){t.set(e,r)}globalThis.Buffer!=null&&(Qi.prototype.bytes=function(e){let t=e.length>>>0;return this.uint32(t),t>0&&this._push(IE,t,e),this},Qi.prototype.string=function(e){let t=globalThis.Buffer.byteLength(e);return this.uint32(t),t>0&&this._push(RE,t,e),this});function IE(e,t,r){t.set(e,r)}function RE(e,t,r){e.length<40?Gc(e,t,r):t.utf8Write!=null?t.utf8Write(e,r):t.set(z(e),r)}function tu(){return new Qi}function ne(e,t){let r=tu();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var ii;(function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"})(ii||(ii={}));function yo(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function eu(e){function t(i){if(e[i.toString()]==null)throw new Error("Invalid enum value");return e[i]}let r=function(s,o){let a=t(s);o.int32(a)},n=function(s){let o=s.int32();return t(o)};return yo("enum",ii.VARINT,r,n)}function ie(e,t){return yo("message",ii.LENGTH_DELIMITED,e,t)}var Rt;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"})(Rt||(Rt={}));var ru;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"})(ru||(ru={}));(function(e){e.codec=()=>eu(ru)})(Rt||(Rt={}));var tr;(function(e){let t;e.codec=()=>(t==null&&(t=ie((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),Rt.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=Rt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),t),e.encode=r=>ne(r,e.codec()),e.decode=r=>re(r,e.codec())})(tr||(tr={}));var er;(function(e){let t;e.codec=()=>(t==null&&(t=ie((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),Rt.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=Rt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),t),e.encode=r=>ne(r,e.codec()),e.decode=r=>re(r,e.codec())})(er||(er={}));var Xi=class{_key;constructor(t){this._key=si(t,ri)}async verify(t,r){return Sh(this._key,r,t)}marshal(){return this._key}get bytes(){return tr.encode({Type:Rt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ee.digest(this.bytes);return t}},gn=class{_key;_publicKey;constructor(t,r){this._key=si(t,gr),this._publicKey=si(r,ri)}async sign(t){return _h(this._key,t)}get public(){return new Xi(this._publicKey)}marshal(){return this._key}get bytes(){return er.encode({Type:Rt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ee.digest(this.bytes);return t}async id(){let t=Dr.digest(this.public.bytes);return Ct.encode(t.bytes).substring(1)}async export(t,r="libp2p-key"){if(r==="libp2p-key")return ni(this.bytes,t);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function CE(e){if(e.length>gr){e=si(e,gr+ri);let n=e.subarray(0,gr),i=e.subarray(gr,e.length);return new gn(n,i)}e=si(e,gr);let t=e.subarray(0,gr),r=e.subarray(ri);return new gn(t,r)}function TE(e){return e=si(e,ri),new Xi(e)}async function BE(){let{privateKey:e,publicKey:t}=await wh();return new gn(e,t)}async function kh(e){let{privateKey:t,publicKey:r}=await vh(e);return new gn(t,r)}function si(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new w(`Key must be a Uint8Array of length ${t}, got ${e.length}`,"ERR_INVALID_KEY_TYPE");return e}function X(e,t="utf8"){let r=Js[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("utf8"):r.encoder.encode(e).substring(1)}var wI=mt(Nt(),1),vI=mt(Ys(),1),Oh=mt(dt(),1);function qe(e,t){let r=Uint8Array.from(e.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=kt([new Uint8Array(t-r.length),r])}return X(r,"base64url")}function we(e){let t=Mh(e);return new Oh.default.jsbn.BigInteger(X(t,"base16"),16)}function Mh(e,t){let r=z(e,"base64urlpad");if(t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=kt([new Uint8Array(t-r.length),r])}return r}var LE={"P-256":256,"P-384":384,"P-521":521},PE=Object.keys(LE),DI=PE.join(" / ");async function Uh(e,t){let r=un.decode(e);return po().decrypt(r,t)}var cu={};zt(cu,{MAX_KEY_SIZE:()=>ts,RsaPrivateKey:()=>oi,RsaPublicKey:()=>ji,fromJwk:()=>qE,generateKeyPair:()=>$E,unmarshalRsaPrivateKey:()=>KE,unmarshalRsaPublicKey:()=>VE});var Ji=mt(dt(),1);var gR=mt(Hh(),1);function En(e){if(isNaN(e)||e<=0)throw new w("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return jn(e)}var jI=mt(Xs(),1),ou=mt(dt(),1);function zh(e,t){return t.map(r=>we(e[r]))}function Gh(e){return ou.default.pki.setRsaPrivateKey(...zh(e,["n","e","d","p","q","dp","dq","qi"]))}function Yh(e){return ou.default.pki.setRsaPublicKey(...zh(e,["n","e"]))}var bn={};zt(bn,{jwkToPkcs1:()=>kE,jwkToPkix:()=>ME,pkcs1ToJwk:()=>NE,pkixToJwk:()=>OE});var rR=mt(Mi(),1),nR=mt(Xs(),1);var xr=mt(dt(),1);function NE(e){let t=xr.default.asn1.fromDer(X(e,"ascii")),r=xr.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:qe(r.n),e:qe(r.e),d:qe(r.d),p:qe(r.p),q:qe(r.q),dp:qe(r.dP),dq:qe(r.dQ),qi:qe(r.qInv),alg:"RS256"}}function kE(e){if(e.n==null||e.e==null||e.d==null||e.p==null||e.q==null||e.dp==null||e.dq==null||e.qi==null)throw new w("JWK was missing components","ERR_INVALID_PARAMETERS");let t=xr.default.pki.privateKeyToAsn1({n:we(e.n),e:we(e.e),d:we(e.d),p:we(e.p),q:we(e.q),dP:we(e.dp),dQ:we(e.dq),qInv:we(e.qi)});return z(xr.default.asn1.toDer(t).getBytes(),"ascii")}function OE(e){let t=xr.default.asn1.fromDer(X(e,"ascii")),r=xr.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:qe(r.n),e:qe(r.e)}}function ME(e){if(e.n==null||e.e==null)throw new w("JWK was missing components","ERR_INVALID_PARAMETERS");let t=xr.default.pki.publicKeyToAsn1({n:we(e.n),e:we(e.e)});return z(xr.default.asn1.toDer(t).getBytes(),"ascii")}async function Wh(e){let t=await me.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await Zh(t);return{privateKey:r[0],publicKey:r[1]}}async function au(e){let r=[await me.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await UE(e)],n=await Zh({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function Qh(e,t){let r=await me.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await me.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}async function Xh(e,t,r){let n=await me.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return me.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}async function Zh(e){if(e.privateKey==null||e.publicKey==null)throw new w("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([me.get().subtle.exportKey("jwk",e.privateKey),me.get().subtle.exportKey("jwk",e.publicKey)])}async function UE(e){return me.get().subtle.importKey("jwk",{kty:e.kty,n:e.n,e:e.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function Jh(e,t,r,n){let i=t?Yh(e):Gh(e),s=X(Uint8Array.from(r),"ascii"),o=n(s,i);return z(o,"ascii")}function jh(e,t){return Jh(e,!0,t,(r,n)=>n.encrypt(r))}function td(e,t){return Jh(e,!1,t,(r,n)=>n.decrypt(r))}function xo(e){if(e.kty!=="RSA")throw new w("invalid key type","ERR_INVALID_KEY_TYPE");if(e.n==null)throw new w("invalid key modulus","ERR_INVALID_KEY_MODULUS");return z(e.n,"base64url").length*8}var ts=8192,ji=class{_key;constructor(t){this._key=t}async verify(t,r){return Xh(this._key,r,t)}marshal(){return bn.jwkToPkix(this._key)}get bytes(){return tr.encode({Type:Rt.RSA,Data:this.marshal()}).subarray()}encrypt(t){return jh(this._key,t)}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ee.digest(this.bytes);return t}},oi=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r}genSecret(){return En(16)}async sign(t){return Qh(this._key,t)}get public(){if(this._publicKey==null)throw new w("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new ji(this._publicKey)}decrypt(t){return td(this._key,t)}marshal(){return bn.jwkToPkcs1(this._key)}get bytes(){return er.encode({Type:Rt.RSA,Data:this.marshal()}).subarray()}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ee.digest(this.bytes);return t}async id(){let t=await this.public.hash();return X(t,"base58btc")}async export(t,r="pkcs-8"){if(r==="pkcs-8"){let n=new Ji.default.util.ByteBuffer(this.marshal()),i=Ji.default.asn1.fromDer(n),s=Ji.default.pki.privateKeyFromAsn1(i),o={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return Ji.default.pki.encryptRsaPrivateKey(s,t,o)}else{if(r==="libp2p-key")return ni(this.bytes,t);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function KE(e){let t=bn.pkcs1ToJwk(e);if(xo(t)>ts)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await au(t);return new oi(r.privateKey,r.publicKey)}function VE(e){let t=bn.pkixToJwk(e);if(xo(t)>ts)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new ji(t)}async function qE(e){if(xo(e)>ts)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await au(e);return new oi(t.privateKey,t.publicKey)}async function $E(e){if(e>ts)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await Wh(e);return new oi(t.privateKey,t.publicKey)}var pu={};zt(pu,{Secp256k1PrivateKey:()=>rs,Secp256k1PublicKey:()=>es,generateKeyPair:()=>ib,unmarshalSecp256k1PrivateKey:()=>rb,unmarshalSecp256k1PublicKey:()=>nb});var HE=(e,t,r)=>e&t^~e&r,zE=(e,t,r)=>e&t^e&r^t&r,GE=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]),Kr=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Vr=new Uint32Array(64),uu=class extends ti{constructor(){super(64,32,8,!1),this.A=Kr[0]|0,this.B=Kr[1]|0,this.C=Kr[2]|0,this.D=Kr[3]|0,this.E=Kr[4]|0,this.F=Kr[5]|0,this.G=Kr[6]|0,this.H=Kr[7]|0}get(){let{A:t,B:r,C:n,D:i,E:s,F:o,G:a,H:c}=this;return[t,r,n,i,s,o,a,c]}set(t,r,n,i,s,o,a,c){this.A=t|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(t,r){for(let f=0;f<16;f++,r+=4)Vr[f]=t.getUint32(r,!1);for(let f=16;f<64;f++){let h=Vr[f-15],p=Vr[f-2],d=Fe(h,7)^Fe(h,18)^h>>>3,m=Fe(p,17)^Fe(p,19)^p>>>10;Vr[f]=m+Vr[f-7]+d+Vr[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=Fe(a,6)^Fe(a,11)^Fe(a,25),p=l+h+HE(a,c,u)+GE[f]+Vr[f]|0,m=(Fe(n,2)^Fe(n,13)^Fe(n,22))+zE(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(){Vr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var ed=ro(()=>new uu);function YE(e){let t=Gi(e);je(t,{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}=t;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({...t})}var{bytesToNumberBE:WE,hexToBytes:QE}=oo,wn={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){let{Err:t}=wn;if(e.length<2||e[0]!==2)throw new t("Invalid signature integer tag");let r=e[1],n=e.subarray(2,r+2);if(!r||n.length!==r)throw new t("Invalid signature integer: wrong length");if(n[0]&128)throw new t("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:WE(n),l:e.subarray(r+2)}},toSig(e){let{Err:t}=wn,r=typeof e=="string"?QE(e):e;if(!(r instanceof Uint8Array))throw new Error("ui8a expected");let n=r.length;if(n<2||r[0]!=48)throw new t("Invalid signature tag");if(r[1]!==n-2)throw new t("Invalid signature: incorrect length");let{d:i,l:s}=wn._parseInt(r.subarray(2)),{d:o,l:a}=wn._parseInt(s);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,s:o}},hexFromSig(e){let t=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=t(r(e.s)),i=t(r(e.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}`}},Er=BigInt(0),Pe=BigInt(1),IR=BigInt(2),rd=BigInt(3),RR=BigInt(4);function XE(e){let t=YE(e),{Fp:r}=t,n=t.toBytes||((d,m,y)=>{let g=m.toAffine();return mr(Uint8Array.from([4]),r.toBytes(g.x),r.toBytes(g.y))}),i=t.fromBytes||(d=>{let m=d.subarray(1),y=r.fromBytes(m.subarray(0,r.BYTES)),g=r.fromBytes(m.subarray(r.BYTES,2*r.BYTES));return{x:y,y:g}});function s(d){let{a:m,b:y}=t,g=r.sqr(d),x=r.mul(g,d);return r.add(r.add(x,r.mul(d,m)),y)}if(!r.eql(r.sqr(t.Gy),s(t.Gx)))throw new Error("bad generator point: equation left != right");function o(d){return typeof d=="bigint"&&Er<d&&d<t.n}function a(d){if(!o(d))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(d){let{allowedPrivateKeyLengths:m,nByteLength:y,wrapPrivateKey:g,n:x}=t;if(m&&typeof d!="bigint"){if(d instanceof Uint8Array&&(d=dr(d)),typeof d!="string"||!m.includes(d.length))throw new Error("Invalid key");d=d.padStart(y*2,"0")}let b;try{b=typeof d=="bigint"?d:pr(Dt("private key",d,y))}catch{throw new Error(`private key must be ${y} bytes, hex or bigint, not ${typeof d}`)}return g&&(b=yt(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,y,g){if(this.px=m,this.py=y,this.pz=g,m==null||!r.isValid(m))throw new Error("x required");if(y==null||!r.isValid(y))throw new Error("y required");if(g==null||!r.isValid(g))throw new Error("z required")}static fromAffine(m){let{x:y,y:g}=m||{};if(!m||!r.isValid(y)||!r.isValid(g))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(y)&&x(g)?f.ZERO:new f(y,g,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(m){let y=r.invertBatch(m.map(g=>g.pz));return m.map((g,x)=>g.toAffine(y[x])).map(f.fromAffine)}static fromHex(m){let y=f.fromAffine(i(Dt("pointHex",m)));return y.assertValidity(),y}static fromPrivateKey(m){return f.BASE.multiply(c(m))}_setWindowSize(m){this._WINDOW_SIZE=m,u.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:m,y}=this.toAffine();if(!r.isValid(m)||!r.isValid(y))throw new Error("bad point: x or y not FE");let g=r.sqr(y),x=s(m);if(!r.eql(g,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:y,py:g,pz:x}=this,{px:b,py:C,pz:_}=m,S=r.eql(r.mul(y,_),r.mul(b,x)),P=r.eql(r.mul(g,_),r.mul(C,x));return S&&P}negate(){return new f(this.px,r.neg(this.py),this.pz)}double(){let{a:m,b:y}=t,g=r.mul(y,rd),{px:x,py:b,pz:C}=this,_=r.ZERO,S=r.ZERO,P=r.ZERO,D=r.mul(x,x),Y=r.mul(b,b),W=r.mul(C,C),H=r.mul(x,b);return H=r.add(H,H),P=r.mul(x,C),P=r.add(P,P),_=r.mul(m,P),S=r.mul(g,W),S=r.add(_,S),_=r.sub(Y,S),S=r.add(Y,S),S=r.mul(_,S),_=r.mul(H,_),P=r.mul(g,P),W=r.mul(m,W),H=r.sub(D,W),H=r.mul(m,H),H=r.add(H,P),P=r.add(D,D),D=r.add(P,D),D=r.add(D,W),D=r.mul(D,H),S=r.add(S,D),W=r.mul(b,C),W=r.add(W,W),D=r.mul(W,H),_=r.sub(_,D),P=r.mul(W,Y),P=r.add(P,P),P=r.add(P,P),new f(_,S,P)}add(m){l(m);let{px:y,py:g,pz:x}=this,{px:b,py:C,pz:_}=m,S=r.ZERO,P=r.ZERO,D=r.ZERO,Y=t.a,W=r.mul(t.b,rd),H=r.mul(y,b),et=r.mul(g,C),pt=r.mul(x,_),Jt=r.add(y,g),T=r.add(b,C);Jt=r.mul(Jt,T),T=r.add(H,et),Jt=r.sub(Jt,T),T=r.add(y,x);let k=r.add(b,_);return T=r.mul(T,k),k=r.add(H,pt),T=r.sub(T,k),k=r.add(g,x),S=r.add(C,_),k=r.mul(k,S),S=r.add(et,pt),k=r.sub(k,S),D=r.mul(Y,T),S=r.mul(W,pt),D=r.add(S,D),S=r.sub(et,D),D=r.add(et,D),P=r.mul(S,D),et=r.add(H,H),et=r.add(et,H),pt=r.mul(Y,pt),T=r.mul(W,T),et=r.add(et,pt),pt=r.sub(H,pt),pt=r.mul(Y,pt),T=r.add(T,pt),H=r.mul(et,T),P=r.add(P,H),H=r.mul(k,T),S=r.mul(Jt,S),S=r.sub(S,H),H=r.mul(Jt,et),D=r.mul(k,D),D=r.add(D,H),new f(S,P,D)}subtract(m){return this.add(m.negate())}is0(){return this.equals(f.ZERO)}wNAF(m){return p.wNAFCached(this,u,m,y=>{let g=r.invertBatch(y.map(x=>x.pz));return y.map((x,b)=>x.toAffine(g[b])).map(f.fromAffine)})}multiplyUnsafe(m){let y=f.ZERO;if(m===Er)return y;if(a(m),m===Pe)return this;let{endo:g}=t;if(!g)return p.unsafeLadder(this,m);let{k1neg:x,k1:b,k2neg:C,k2:_}=g.splitScalar(m),S=y,P=y,D=this;for(;b>Er||_>Er;)b&Pe&&(S=S.add(D)),_&Pe&&(P=P.add(D)),D=D.double(),b>>=Pe,_>>=Pe;return x&&(S=S.negate()),C&&(P=P.negate()),P=new f(r.mul(P.px,g.beta),P.py,P.pz),S.add(P)}multiply(m){a(m);let y=m,g,x,{endo:b}=t;if(b){let{k1neg:C,k1:_,k2neg:S,k2:P}=b.splitScalar(y),{p:D,f:Y}=this.wNAF(_),{p:W,f:H}=this.wNAF(P);D=p.constTimeNegate(C,D),W=p.constTimeNegate(S,W),W=new f(r.mul(W.px,b.beta),W.py,W.pz),g=D.add(W),x=Y.add(H)}else{let{p:C,f:_}=this.wNAF(y);g=C,x=_}return f.normalizeZ([g,x])[0]}multiplyAndAddUnsafe(m,y,g){let x=f.BASE,b=(_,S)=>S===Er||S===Pe||!_.equals(x)?_.multiplyUnsafe(S):_.multiply(S),C=b(this,y).add(b(m,g));return C.is0()?void 0:C}toAffine(m){let{px:y,py:g,pz:x}=this,b=this.is0();m==null&&(m=b?r.ONE:r.inv(x));let C=r.mul(y,m),_=r.mul(g,m),S=r.mul(x,m);if(b)return{x:r.ZERO,y:r.ZERO};if(!r.eql(S,r.ONE))throw new Error("invZ was invalid");return{x:C,y:_}}isTorsionFree(){let{h:m,isTorsionFree:y}=t;if(m===Pe)return!0;if(y)return y(f,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:m,clearCofactor:y}=t;return m===Pe?this:y?y(f,this):this.multiplyUnsafe(t.h)}toRawBytes(m=!0){return this.assertValidity(),n(f,this,m)}toHex(m=!0){return dr(this.toRawBytes(m))}}f.BASE=new f(t.Gx,t.Gy,r.ONE),f.ZERO=new f(r.ZERO,r.ONE,r.ZERO);let h=t.nBitLength,p=uo(f,t.endo?Math.ceil(h/2):h);return{CURVE:t,ProjectivePoint:f,normPrivateKeyToScalar:c,weierstrassEquation:s,isWithinCurveOrder:o}}function ZE(e){let t=Gi(e);return je(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function nd(e){let t=ZE(e),{Fp:r,n}=t,i=r.BYTES+1,s=2*r.BYTES+1;function o(T){return Er<T&&T<r.ORDER}function a(T){return yt(T,n)}function c(T){return ao(T,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:l,weierstrassEquation:f,isWithinCurveOrder:h}=XE({...t,toBytes(T,k,L){let N=k.toAffine(),I=r.toBytes(N.x),U=mr;return L?U(Uint8Array.from([k.hasEvenY()?2:3]),I):U(Uint8Array.from([4]),I,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 I=pr(N);if(!o(I))throw new Error("Point is not on curve");let U=f(I),q=r.sqrt(U),G=(q&Pe)===Pe;return(L&1)===1!==G&&(q=r.neg(q)),{x:I,y:q}}else if(k===s&&L===4){let I=r.fromBytes(N.subarray(0,r.BYTES)),U=r.fromBytes(N.subarray(r.BYTES,2*r.BYTES));return{x:I,y:U}}else throw new Error(`Point of length ${k} was invalid. Expected ${i} compressed bytes or ${s} uncompressed bytes`)}}),p=T=>dr(Ur(T,t.nByteLength));function d(T){let k=n>>Pe;return T>k}function m(T){return d(T)?a(-T):T}let y=(T,k,L)=>pr(T.slice(k,L));class g{constructor(k,L,N){this.r=k,this.s=L,this.recovery=N,this.assertValidity()}static fromCompact(k){let L=t.nByteLength;return k=Dt("compactSignature",k,L*2),new g(y(k,0,L),y(k,L,2*L))}static fromDER(k){let{r:L,s:N}=wn.toSig(Dt("DER",k));return new g(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 g(this.r,this.s,k)}recoverPublicKey(k){let{r:L,s:N,recovery:I}=this,U=P(Dt("msgHash",k));if(I==null||![0,1,2,3].includes(I))throw new Error("recovery id invalid");let q=I===2||I===3?L+t.n:L;if(q>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let G=I&1?"03":"02",j=u.fromHex(G+p(q)),nt=c(q),ht=a(-U*nt),it=a(N*nt),ct=u.BASE.multiplyAndAddUnsafe(j,ht,it);if(!ct)throw new Error("point at infinify");return ct.assertValidity(),ct}hasHighS(){return d(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return hn(this.toDERHex())}toDERHex(){return wn.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return hn(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=Uc(t.n);return yh(t.randomBytes(T),t.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 C(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 _(T,k,L=!0){if(C(T))throw new Error("first arg must be private key");if(!C(k))throw new Error("second arg must be public key");return u.fromHex(k).multiply(l(T)).toRawBytes(L)}let S=t.bits2int||function(T){let k=pr(T),L=T.length*8-t.nBitLength;return L>0?k>>BigInt(L):k},P=t.bits2int_modN||function(T){return a(S(T))},D=zi(t.nBitLength);function Y(T){if(typeof T!="bigint")throw new Error("bigint expected");if(!(Er<=T&&T<D))throw new Error(`bigint expected < 2^${t.nBitLength}`);return Ur(T,t.nByteLength)}function W(T,k,L=H){if(["recovered","canonical"].some(Lt=>Lt in L))throw new Error("sign() legacy options not supported");let{hash:N,randomBytes:I}=t,{lowS:U,prehash:q,extraEntropy:G}=L;U==null&&(U=!0),T=Dt("msgHash",T),q&&(T=Dt("prehashed msgHash",N(T)));let j=P(T),nt=l(k),ht=[Y(nt),Y(j)];if(G!=null){let Lt=G===!0?I(r.BYTES):G;ht.push(Dt("extraEntropy",Lt))}let it=mr(...ht),ct=j;function Ft(Lt){let jt=S(Lt);if(!h(jt))return;let te=c(jt),qt=u.BASE.multiply(jt).toAffine(),oe=a(qt.x);if(oe===Er)return;let ar=a(te*a(ct+oe*nt));if(ar===Er)return;let en=(qt.x===oe?0:2)|Number(qt.y&Pe),Di=ar;return U&&d(ar)&&(Di=m(ar),en^=1),new g(oe,Di,en)}return{seed:it,k2sig:Ft}}let H={lowS:t.lowS,prehash:!1},et={lowS:t.lowS,prehash:!1};function pt(T,k,L=H){let{seed:N,k2sig:I}=W(T,k,L),U=t;return Nc(U.hash.outputLen,U.nByteLength,U.hmac)(N,I)}u.BASE._setWindowSize(8);function Jt(T,k,L,N=et){let I=T;if(k=Dt("msgHash",k),L=Dt("publicKey",L),"strict"in N)throw new Error("options.strict was renamed to lowS");let{lowS:U,prehash:q}=N,G,j;try{if(typeof I=="string"||I instanceof Uint8Array)try{G=g.fromDER(I)}catch(qt){if(!(qt instanceof wn.Err))throw qt;G=g.fromCompact(I)}else if(typeof I=="object"&&typeof I.r=="bigint"&&typeof I.s=="bigint"){let{r:qt,s:oe}=I;G=new g(qt,oe)}else throw new Error("PARSE");j=u.fromHex(L)}catch(qt){if(qt.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(U&&G.hasHighS())return!1;q&&(k=t.hash(k));let{r:nt,s:ht}=G,it=P(k),ct=c(ht),Ft=a(it*ct),Lt=a(nt*ct),jt=u.BASE.multiplyAndAddUnsafe(j,Ft,Lt)?.toAffine();return jt?a(jt.x)===nt:!1}return{CURVE:t,getPublicKey:b,getSharedSecret:_,sign:pt,verify:Jt,ProjectivePoint:u,Signature:g,utils:x}}var Eo=class extends Jn{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,ih(t);let n=Hi(r);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let i=this.blockLen,s=new Uint8Array(i);s.set(n.length>i?t.create().update(n).digest():n);for(let o=0;o<s.length;o++)s[o]^=54;this.iHash.update(s),this.oHash=t.create();for(let o=0;o<s.length;o++)s[o]^=106;this.oHash.update(s),s.fill(0)}update(t){return Zn(this),this.iHash.update(t),this}digestInto(t){Zn(this),Rc(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:r,iHash:n,finished:i,destroyed:s,blockLen:o,outputLen:a}=this;return t=t,t.finished=i,t.destroyed=s,t.blockLen=o,t.outputLen=a,t.oHash=r._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},lu=(e,t,r)=>new Eo(e,t).update(r).digest();lu.create=(e,t)=>new Eo(e,t);function JE(e){return{hash:e,hmac:(t,...r)=>lu(e,t,eo(...r)),randomBytes:jn}}function id(e,t){let r=n=>nd({...e,...JE(n)});return Object.freeze({...r(t),create:r})}var ad=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),sd=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),jE=BigInt(1),fu=BigInt(2),od=(e,t)=>(e+t/fu)/t;function tb(e){let t=ad,r=BigInt(3),n=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,l=u*u*e%t,f=It(l,r,t)*l%t,h=It(f,r,t)*l%t,p=It(h,fu,t)*u%t,d=It(p,i,t)*p%t,m=It(d,s,t)*d%t,y=It(m,a,t)*m%t,g=It(y,c,t)*y%t,x=It(g,a,t)*m%t,b=It(x,r,t)*l%t,C=It(b,o,t)*d%t,_=It(C,n,t)*u%t,S=It(_,fu,t);if(!hu.eql(hu.sqr(S),e))throw new Error("Cannot find square root");return S}var hu=co(ad,void 0,void 0,{sqrt:tb}),br=id({a:BigInt(0),b:BigInt(7),Fp:hu,n:sd,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=sd,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-jE*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=r,o=BigInt("0x100000000000000000000000000000000"),a=od(s*e,t),c=od(-n*e,t),u=yt(e-a*r-c*i,t),l=yt(-a*n-c*s,t),f=u>o,h=l>o;if(f&&(u=t-u),h&&(l=t-l),u>o||l>o)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:f,k1:u,k2neg:h,k2:l}}}},ed),FR=BigInt(0);var KR=br.ProjectivePoint;function cd(){return br.utils.randomPrivateKey()}async function ud(e,t){let{digest:r}=await ee.digest(t);try{return br.sign(r,e).toDERRawBytes()}catch(n){throw new w(String(n),"ERR_INVALID_INPUT")}}async function ld(e,t,r){try{let{digest:n}=await ee.digest(r);return br.verify(t,n,e)}catch(n){throw new w(String(n),"ERR_INVALID_INPUT")}}function fd(e){return br.ProjectivePoint.fromHex(e).toRawBytes(!0)}function hd(e){try{br.getPublicKey(e,!0)}catch(t){throw new w(String(t),"ERR_INVALID_PRIVATE_KEY")}}function du(e){try{br.ProjectivePoint.fromHex(e)}catch(t){throw new w(String(t),"ERR_INVALID_PUBLIC_KEY")}}function dd(e){try{return br.getPublicKey(e,!0)}catch(t){throw new w(String(t),"ERR_INVALID_PRIVATE_KEY")}}var es=class{_key;constructor(t){du(t),this._key=t}async verify(t,r){return ld(this._key,r,t)}marshal(){return fd(this._key)}get bytes(){return tr.encode({Type:Rt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ee.digest(this.bytes);return t}},rs=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r??dd(t),hd(this._key),du(this._publicKey)}async sign(t){return ud(this._key,t)}get public(){return new es(this._publicKey)}marshal(){return this._key}get bytes(){return er.encode({Type:Rt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ee.digest(this.bytes);return t}async id(){let t=await this.public.hash();return X(t,"base58btc")}async export(t,r="libp2p-key"){if(r==="libp2p-key")return ni(this.bytes,t);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function rb(e){return new rs(e)}function nb(e){return new es(e)}async function ib(){let e=cd();return new rs(e)}var wr={rsa:cu,ed25519:nu,secp256k1:pu};function mu(e){let t=Object.keys(wr).join(" / ");return new w(`invalid or unsupported key type ${e}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function yu(e){if(e=e.toLowerCase(),e==="rsa"||e==="ed25519"||e==="secp256k1")return wr[e];throw mu(e)}async function wo(e,t){return yu(e).generateKeyPair(t??2048)}function ns(e){let t=tr.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case Rt.RSA:return wr.rsa.unmarshalRsaPublicKey(r);case Rt.Ed25519:return wr.ed25519.unmarshalEd25519PublicKey(r);case Rt.Secp256k1:return wr.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw mu(t.Type??"unknown")}}function pd(e,t){return t=(t??"rsa").toLowerCase(),yu(t),e.bytes}async function ai(e){let t=er.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case Rt.RSA:return wr.rsa.unmarshalRsaPrivateKey(r);case Rt.Ed25519:return wr.ed25519.unmarshalEd25519PrivateKey(r);case Rt.Secp256k1:return wr.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw mu(t.Type??"RSA")}}function md(e,t){return t=(t??"rsa").toLowerCase(),yu(t),e.bytes}async function is(e,t){try{let i=await Uh(e,t);return await ai(i)}catch{}let r=bo.default.pki.decryptRsaPrivateKey(e,t);if(r===null)throw new w("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=bo.default.asn1.toDer(bo.default.pki.privateKeyToAsn1(r));return n=z(n.getBytes(),"ascii"),wr.rsa.unmarshalRsaPrivateKey(n)}var gu=Symbol.for("@libp2p/content-routing");var ss=class extends EventTarget{#t=new Map;listenerCount(t){let r=this.#t.get(t);return r==null?0:r.length}addEventListener(t,r,n){super.addEventListener(t,r,n);let i=this.#t.get(t);i==null&&(i=[],this.#t.set(t,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,r,n){super.removeEventListener(t.toString(),r??null,n);let i=this.#t.get(t);i!=null&&(i=i.filter(({callback:s})=>s!==r),this.#t.set(t,i))}dispatchEvent(t){let r=super.dispatchEvent(t),n=this.#t.get(t.type);return n==null||(n=n.filter(({once:i})=>!i),this.#t.set(t.type,n)),r}safeDispatchEvent(t,r){return this.dispatchEvent(new Eu(t,r))}},xu=class extends Event{detail;constructor(t,r){super(t,r),this.detail=r?.detail}},Eu=globalThis.CustomEvent??xu;var ve=(e,...t)=>{try{[...t]}catch{}};var bu=Symbol.for("@libp2p/peer-discovery");var wu=Symbol.for("@libp2p/peer-routing");var p4=mt(Fs(),1),ob=mt(dt(),1);var gd=mt(Qa(),1),xd=mt(Nt(),1),yd={sha1:"sha1","sha2-256":"sha256","sha2-512":"sha512"};function os(e,t,r,n,i){if(i!=="sha1"&&i!=="sha2-256"&&i!=="sha2-512"){let a=Object.keys(yd).join(" / ");throw new w(`Hash '${i}' is unknown or not supported. Must be ${a}`,"ERR_UNSUPPORTED_HASH_TYPE")}let s=yd[i],o=(0,gd.default)(e,t,r,n,s);return xd.default.encode64(o,null)}var Se=mt(_u(),1);Se.default.formatters.b=e=>e==null?"undefined":Ct.baseEncode(e);Se.default.formatters.t=e=>e==null?"undefined":Ee.baseEncode(e);Se.default.formatters.m=e=>e==null?"undefined":un.baseEncode(e);Se.default.formatters.p=e=>e==null?"undefined":e.toString();Se.default.formatters.c=e=>e==null?"undefined":e.toString();Se.default.formatters.k=e=>e==null?"undefined":e.toString();Se.default.formatters.a=e=>e==null?"undefined":e.toString();function wb(e){let t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t}function rt(e){let t=wb(`${e}:trace`);return Se.default.enabled(`${e}:trace`)&&Se.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(t=(0,Se.default)(`${e}:trace`)),Object.assign((0,Se.default)(e),{error:(0,Se.default)(`${e}:error`),trace:t})}var Su=Symbol.for("@libp2p/peer-id");function So(e){return e!=null&&!!e[Su]}var vb=Symbol.for("nodejs.util.inspect.custom"),vd=Object.values(Nr).map(e=>e.decoder).reduce((e,t)=>e.or(t),Nr.identity.decoder),_d=114,Au=36,Iu=37,as=class{type;multihash;privateKey;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,this.privateKey=t.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[Su]=!0;toString(){return this.string==null&&(this.string=Ct.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Ue.createV1(_d,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return Tt(this.multihash.bytes,t);if(typeof t=="string")return lt(t).equals(this);if(t?.multihash?.bytes!=null)return Tt(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[vb](){return`PeerId(${this.toString()})`}},_n=class extends as{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},Sn=class extends as{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},An=class extends as{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}};function Sd(e){if(e.type==="RSA")return new _n(e);if(e.type==="Ed25519")return new Sn(e);if(e.type==="secp256k1")return new An(e);throw new w("Not a PeerId","ERR_INVALID_PARAMETERS")}function lt(e,t){if(t=t??vd,e.charAt(0)==="1"||e.charAt(0)==="Q"){let r=ln(Ct.decode(`z${e}`));return e.startsWith("12D")?new Sn({multihash:r}):e.startsWith("16U")?new An({multihash:r}):new _n({multihash:r})}return fi(vd.decode(e))}function fi(e){try{let t=ln(e);if(t.code===Dr.code){if(t.digest.length===Au)return new Sn({multihash:t});if(t.digest.length===Iu)return new An({multihash:t})}if(t.code===ee.code)return new _n({multihash:t})}catch{return _b(Ue.decode(e))}throw new Error("Supplied PeerID CID is invalid")}function _b(e){if(e==null||e.multihash==null||e.version==null||e.version===1&&e.code!==_d)throw new Error("Supplied PeerID CID is invalid");let t=e.multihash;if(t.code===ee.code)return new _n({multihash:e.multihash});if(t.code===Dr.code){if(t.digest.length===Au)return new Sn({multihash:e.multihash});if(t.digest.length===Iu)return new An({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function hi(e,t){return e.length===Au?new Sn({multihash:Je(Dr.code,e),privateKey:t}):e.length===Iu?new An({multihash:Je(Dr.code,e),privateKey:t}):new _n({multihash:await ee.digest(e),publicKey:e,privateKey:t})}var Ao=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,r)=>(r&=63,r<36?t+=r.toString(36):r<62?t+=(r-26).toString(36).toUpperCase():r>62?t+="-":t+="_",t),"");var vr="/",Ad=new TextEncoder().encode(vr),Io=Ad[0],rr=class e{_buf;constructor(t,r){if(typeof t=="string")this._buf=z(t);else if(t instanceof Uint8Array)this._buf=t;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(t="utf8"){return X(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new e(t.join(vr))}static random(){return new e(Ao().replace(/-/g,""))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new e(t):typeof t.uint8Array=="function"?new e(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Ad),this._buf[0]!==Io){let t=new Uint8Array(this._buf.byteLength+1);t.fill(Io,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Io;)this._buf=this._buf.subarray(0,-1)}less(t){let r=this.list(),n=t.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 e.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(vr).slice(1)}type(){return Sb(this.baseNamespace())}name(){return Ab(this.baseNamespace())}instance(t){return new e(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(vr)||(t+=vr),t+=this.type(),new e(t)}parent(){let t=this.list();return t.length===1?new e(vr):new e(t.slice(0,-1).join(vr))}child(t){return this.toString()===vr?t:t.toString()===vr?this:new e(this.toString()+t.toString(),!1)}isAncestorOf(t){return t.toString()===this.toString()?!1:t.toString().startsWith(this.toString())}isDecendantOf(t){return t.toString()===this.toString()?!1:this.toString().startsWith(t.toString())}isTopLevel(){return this.list().length===1}concat(...t){return e.withNamespaces([...this.namespaces(),...Ib(t.map(r=>r.namespaces()))])}};function Sb(e){let t=e.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function Ab(e){let t=e.split(":");return t[t.length-1]}function Ib(e){return[].concat(...e)}var Nd=mt(Dd(),1),qr=Nd.default;var Hd=mt($d(),1);var ot;(function(e){e.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",e.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",e.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",e.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",e.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",e.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",e.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",e.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",e.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",e.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",e.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",e.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",e.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",e.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",e.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH"})(ot||(ot={}));var To=rt("libp2p:keychain"),Hb="/pkcs8/",zd="/info/",In=new WeakMap,Rn={minKeyLength:112/8,minSaltLength:128/8,minIterationCount:1e3},Cu={dek:{keyLength:512/8,iterationCount:1e4,salt:"you should override this value with a crypto secure random number",hash:"sha2-512"}};function _r(e){return e==null||typeof e!="string"?!1:e===(0,Hd.default)(e.trim())&&e.length>0}async function gt(){let r=Math.random()*800+200;await new Promise(n=>setTimeout(n,r))}function nr(e){return new rr(Hb+e)}function $r(e){return new rr(zd+e)}var Cn=class{components;init;constructor(t,r){if(this.components=t,this.init=qr(Cu,r),this.init.pass!=null&&this.init.pass?.length<20)throw new Error("pass must be least 20 characters");if(this.init.dek?.keyLength!=null&&this.init.dek.keyLength<Rn.minKeyLength)throw new Error(`dek.keyLength must be least ${Rn.minKeyLength} bytes`);if(this.init.dek?.salt?.length!=null&&this.init.dek.salt.length<Rn.minSaltLength)throw new Error(`dek.saltLength must be least ${Rn.minSaltLength} bytes`);if(this.init.dek?.iterationCount!=null&&this.init.dek.iterationCount<Rn.minIterationCount)throw new Error(`dek.iterationCount must be least ${Rn.minIterationCount}`);let n=this.init.pass!=null&&this.init.dek?.salt!=null?os(this.init.pass,this.init.dek?.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";In.set(this,{dek:n})}static generateOptions(){let t=Object.assign({},Cu),r=Math.ceil(Rn.minSaltLength/3)*3;return t.dek.salt=X(En(r),"base64"),t}static get options(){return Cu}async createKey(t,r,n=2048){if(!_r(t)||t==="self")throw await gt(),new w("Invalid key name",ot.ERR_INVALID_KEY_NAME);if(typeof r!="string")throw await gt(),new w("Invalid key type",ot.ERR_INVALID_KEY_TYPE);let i=nr(t);if(await this.components.datastore.has(i))throw await gt(),new w("Key name already exists",ot.ERR_KEY_ALREADY_EXISTS);switch(r.toLowerCase()){case"rsa":if(!Number.isSafeInteger(n)||n<2048)throw await gt(),new w("Invalid RSA key size",ot.ERR_INVALID_KEY_SIZE);break;default:break}let o;try{let a=await wo(r,n),c=await a.id(),u=In.get(this);if(u==null)throw new w("dek missing",ot.ERR_INVALID_PARAMETERS);let l=u.dek,f=await a.export(l);o={name:t,id:c};let h=this.components.datastore.batch();h.put(i,z(f)),h.put($r(t),z(JSON.stringify(o))),await h.commit()}catch(a){throw await gt(),a}return o}async listKeys(){let t={prefix:zd},r=[];for await(let n of this.components.datastore.query(t))r.push(JSON.parse(X(n.value)));return r}async findKeyById(t){try{let n=(await this.listKeys()).find(i=>i.id===t);if(n==null)throw new w(`Key with id '${t}' does not exist.`,ot.ERR_KEY_NOT_FOUND);return n}catch(r){throw await gt(),r}}async findKeyByName(t){if(!_r(t))throw await gt(),new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);let r=$r(t);try{let n=await this.components.datastore.get(r);return JSON.parse(X(n))}catch(n){throw await gt(),To.error(n),new w(`Key '${t}' does not exist.`,ot.ERR_KEY_NOT_FOUND)}}async removeKey(t){if(!_r(t)||t==="self")throw await gt(),new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);let r=nr(t),n=await this.findKeyByName(t),i=this.components.datastore.batch();return i.delete(r),i.delete($r(t)),await i.commit(),n}async renameKey(t,r){if(!_r(t)||t==="self")throw await gt(),new w(`Invalid old key name '${t}'`,ot.ERR_OLD_KEY_NAME_INVALID);if(!_r(r)||r==="self")throw await gt(),new w(`Invalid new key name '${r}'`,ot.ERR_NEW_KEY_NAME_INVALID);let n=nr(t),i=nr(r),s=$r(t),o=$r(r);if(await this.components.datastore.has(i))throw await gt(),new w(`Key '${r}' already exists`,ot.ERR_KEY_ALREADY_EXISTS);try{let c=await this.components.datastore.get(n),u=await this.components.datastore.get(s),l=JSON.parse(X(u));l.name=r;let f=this.components.datastore.batch();return f.put(i,c),f.put(o,z(JSON.stringify(l))),f.delete(n),f.delete(s),await f.commit(),l}catch(c){throw await gt(),c}}async exportKey(t,r){if(!_r(t))throw await gt(),new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);if(r==null)throw await gt(),new w("Password is required",ot.ERR_PASSWORD_REQUIRED);let n=nr(t);try{let i=await this.components.datastore.get(n),s=X(i),o=In.get(this);if(o==null)throw new w("dek missing",ot.ERR_INVALID_PARAMETERS);let a=o.dek;return await(await is(s,a)).export(r)}catch(i){throw await gt(),i}}async exportPeerId(t){let r="temporary-password",n=await this.exportKey(t,r),i=await is(n,r);return hi(i.public.bytes,i.bytes)}async importKey(t,r,n){if(!_r(t)||t==="self")throw await gt(),new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);if(r==null)throw await gt(),new w("PEM encoded key is required",ot.ERR_PEM_REQUIRED);let i=nr(t);if(await this.components.datastore.has(i))throw await gt(),new w(`Key '${t}' already exists`,ot.ERR_KEY_ALREADY_EXISTS);let o;try{o=await is(r,n)}catch{throw await gt(),new w("Cannot read the key, most likely the password is wrong",ot.ERR_CANNOT_READ_KEY)}let a;try{a=await o.id();let l=In.get(this);if(l==null)throw new w("dek missing",ot.ERR_INVALID_PARAMETERS);let f=l.dek;r=await o.export(f)}catch(l){throw await gt(),l}let c={name:t,id:a},u=this.components.datastore.batch();return u.put(i,z(r)),u.put($r(t),z(JSON.stringify(c))),await u.commit(),c}async importPeer(t,r){try{if(!_r(t))throw new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);if(r==null)throw new w("PeerId is required",ot.ERR_MISSING_PRIVATE_KEY);if(r.privateKey==null)throw new w("PeerId.privKey is required",ot.ERR_MISSING_PRIVATE_KEY);let n=await ai(r.privateKey),i=nr(t);if(await this.components.datastore.has(i))throw await gt(),new w(`Key '${t}' already exists`,ot.ERR_KEY_ALREADY_EXISTS);let o=In.get(this);if(o==null)throw new w("dek missing",ot.ERR_INVALID_PARAMETERS);let a=o.dek,c=await n.export(a),u={name:t,id:r.toString()},l=this.components.datastore.batch();return l.put(i,z(c)),l.put($r(t),z(JSON.stringify(u))),await l.commit(),u}catch(n){throw await gt(),n}}async getPrivateKey(t){if(!_r(t))throw await gt(),new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);try{let r=nr(t),n=await this.components.datastore.get(r);return X(n)}catch(r){throw await gt(),To.error(r),new w(`Key '${t}' does not exist.`,ot.ERR_KEY_NOT_FOUND)}}async rotateKeychainPass(t,r){if(typeof t!="string")throw await gt(),new w(`Invalid old pass type '${typeof t}'`,ot.ERR_INVALID_OLD_PASS_TYPE);if(typeof r!="string")throw await gt(),new w(`Invalid new pass type '${typeof r}'`,ot.ERR_INVALID_NEW_PASS_TYPE);if(r.length<20)throw await gt(),new w(`Invalid pass length ${r.length}`,ot.ERR_INVALID_PASS_LENGTH);To("recreating keychain");let n=In.get(this);if(n==null)throw new w("dek missing",ot.ERR_INVALID_PARAMETERS);let i=n.dek;this.init.pass=r;let s=r!=null&&this.init.dek?.salt!=null?os(r,this.init.dek.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";In.set(this,{dek:s});let o=await this.listKeys();for(let a of o){let c=await this.components.datastore.get(nr(a.name)),u=X(c),l=await is(u,i),f=s.toString(),h=await l.export(f),p=this.components.datastore.batch(),d={name:a.name,id:a.id};p.put(nr(a.name),z(h)),p.put($r(a.name),z(JSON.stringify(d))),await p.commit()}To("keychain reconstructed")}};function Sr(e,t){let r={[Symbol.iterator]:()=>r,next:()=>{let n=e.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:t(i)}}};return r}var Ae=class{map;constructor(t){if(this.map=new Map,t!=null)for(let[r,n]of t.entries())this.map.set(r.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){this.map.delete(t.toString())}entries(){return Sr(this.map.entries(),t=>[lt(t[0]),t[1]])}forEach(t){this.map.forEach((r,n)=>{t(r,lt(n),this)})}get(t){return this.map.get(t.toString())}has(t){return this.map.has(t.toString())}set(t,r){this.map.set(t.toString(),r)}keys(){return Sr(this.map.keys(),t=>lt(t))}values(){return this.map.values()}get size(){return this.map.size}};var Tn=class e{set;constructor(t){if(this.set=new Set,t!=null)for(let r of t)this.set.add(r.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(t){this.set.add(t.toString())}clear(){this.set.clear()}delete(t){this.set.delete(t.toString())}entries(){return Sr(this.set.entries(),t=>{let r=lt(t[0]);return[r,r]})}forEach(t){this.set.forEach(r=>{let n=lt(r);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return Sr(this.set.values(),t=>lt(t))}intersection(t){let r=new e;for(let n of t)this.has(n)&&r.add(n);return r}difference(t){let r=new e;for(let n of this)t.has(n)||r.add(n);return r}union(t){let r=new e;for(let n of t)r.add(n);for(let n of this)r.add(n);return r}};var Tu=class e{list;constructor(t){if(this.list=[],t!=null)for(let r of t)this.list.push(r.toString())}[Symbol.iterator](){return Sr(this.list.entries(),t=>lt(t[1]))}concat(t){let r=new e(this);for(let n of t)r.push(n);return r}entries(){return Sr(this.list.entries(),t=>[t[0],lt(t[1])])}every(t){return this.list.every((r,n)=>t(lt(r),n,this))}filter(t){let r=new e;return this.list.forEach((n,i)=>{let s=lt(n);t(s,i,this)&&r.push(s)}),r}find(t){let r=this.list.find((n,i)=>t(lt(n),i,this));if(r!=null)return lt(r)}findIndex(t){return this.list.findIndex((r,n)=>t(lt(r),n,this))}forEach(t){this.list.forEach((r,n)=>{t(lt(r),n,this)})}includes(t){return this.list.includes(t.toString())}indexOf(t){return this.list.indexOf(t.toString())}pop(){let t=this.list.pop();if(t!=null)return lt(t)}push(...t){for(let r of t)this.list.push(r.toString())}shift(){let t=this.list.shift();if(t!=null)return lt(t)}unshift(...t){let r=this.list.length;for(let n=t.length-1;n>-1;n--)r=this.list.unshift(t[n].toString());return r}get length(){return this.list.length}};var Bu;(function(e){let t;e.codec=()=>(t==null&&(t=ie((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})),t),e.encode=r=>ne(r,e.codec()),e.decode=r=>re(r,e.codec())})(Bu||(Bu={}));var Gd=async()=>{let e=await wo("Ed25519"),t=await zb(e);if(t.type==="Ed25519")return t;throw new Error(`Generated unexpected PeerId type "${t.type}"`)};async function zb(e){return hi(pd(e.public),md(e))}var Gb=Math.pow(2,7),Yb=Math.pow(2,14),Wb=Math.pow(2,21),Lu=Math.pow(2,28),Pu=Math.pow(2,35),Du=Math.pow(2,42),Nu=Math.pow(2,49),ft=128,ue=127;function ge(e){if(e<Gb)return 1;if(e<Yb)return 2;if(e<Wb)return 3;if(e<Lu)return 4;if(e<Pu)return 5;if(e<Du)return 6;if(e<Nu)return 7;if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Qb(e,t,r=0){switch(ge(e)){case 8:t[r++]=e&255|ft,e/=128;case 7:t[r++]=e&255|ft,e/=128;case 6:t[r++]=e&255|ft,e/=128;case 5:t[r++]=e&255|ft,e/=128;case 4:t[r++]=e&255|ft,e>>>=7;case 3:t[r++]=e&255|ft,e>>>=7;case 2:t[r++]=e&255|ft,e>>>=7;case 1:{t[r++]=e&255,e>>>=7;break}default:throw new Error("unreachable")}return t}function Xb(e,t,r=0){switch(ge(e)){case 8:t.set(r++,e&255|ft),e/=128;case 7:t.set(r++,e&255|ft),e/=128;case 6:t.set(r++,e&255|ft),e/=128;case 5:t.set(r++,e&255|ft),e/=128;case 4:t.set(r++,e&255|ft),e>>>=7;case 3:t.set(r++,e&255|ft),e>>>=7;case 2:t.set(r++,e&255|ft),e>>>=7;case 1:{t.set(r++,e&255),e>>>=7;break}default:throw new Error("unreachable")}return t}function Zb(e,t){let r=e[t],n=0;if(n+=r&ue,r<ft||(r=e[t+1],n+=(r&ue)<<7,r<ft)||(r=e[t+2],n+=(r&ue)<<14,r<ft)||(r=e[t+3],n+=(r&ue)<<21,r<ft)||(r=e[t+4],n+=(r&ue)*Lu,r<ft)||(r=e[t+5],n+=(r&ue)*Pu,r<ft)||(r=e[t+6],n+=(r&ue)*Du,r<ft)||(r=e[t+7],n+=(r&ue)*Nu,r<ft))return n;throw new RangeError("Could not decode varint")}function Jb(e,t){let r=e.get(t),n=0;if(n+=r&ue,r<ft||(r=e.get(t+1),n+=(r&ue)<<7,r<ft)||(r=e.get(t+2),n+=(r&ue)<<14,r<ft)||(r=e.get(t+3),n+=(r&ue)<<21,r<ft)||(r=e.get(t+4),n+=(r&ue)*Lu,r<ft)||(r=e.get(t+5),n+=(r&ue)*Pu,r<ft)||(r=e.get(t+6),n+=(r&ue)*Du,r<ft)||(r=e.get(t+7),n+=(r&ue)*Nu,r<ft))return n;throw new RangeError("Could not decode varint")}function De(e,t,r=0){return t==null&&(t=ae(ge(e))),t instanceof Uint8Array?Qb(e,t,r):Xb(e,t,r)}function Ar(e,t=0){return e instanceof Uint8Array?Zb(e,t):Jb(e,t)}var Wd=Symbol.for("@achingbrain/uint8arraylist");function Yd(e,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let r=0;for(let n of e){let i=r+n.byteLength;if(t<i)return{buf:n,index:t-r};r=i}throw new RangeError("index is out of bounds")}function Bo(e){return!!e?.[Wd]}var Qt=class e{constructor(...t){Object.defineProperty(this,Wd,{value:!0}),this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let r=0;for(let n of t)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(Bo(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(...t){this.prependAll(t)}prependAll(t){let r=0;for(let n of t.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(Bo(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(t){let r=Yd(this.bufs,t);return r.buf[r.index]}set(t,r){let n=Yd(this.bufs,t);n.buf[n.index]=r}write(t,r=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(r+n,t[n]);else if(Bo(t))for(let n=0;n<t.length;n++)this.set(r+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,r){let{bufs:n,length:i}=this._subList(t,r);return kt(n,i)}subarray(t,r){let{bufs:n,length:i}=this._subList(t,r);return n.length===1?n[0]:kt(n,i)}sublist(t,r){let{bufs:n,length:i}=this._subList(t,r),s=new e;return s.length=i,s.bufs=n,s}_subList(t,r){if(t=t??0,r=r??this.length,t<0&&(t=this.length+t),r<0&&(r=this.length+r),t<0||r>this.length)throw new RangeError("index is out of bounds");if(t===r)return{bufs:[],length:0};if(t===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,t>=c)continue;let u=t>=a&&t<c,l=r>a&&r<=c;if(u&&l){if(t===a&&r===c){n.push(o);break}let f=t-a;n.push(o.subarray(f,f+(r-t)));break}if(u){if(t===0){n.push(o);continue}n.push(o.subarray(t-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-t}}indexOf(t,r=0){if(!Bo(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),t.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(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(t,r){let n=ae(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,t)}getInt16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(t,r,n){let i=hr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,r,n),this.write(i,t)}getInt32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(t,r,n){let i=hr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,r,n),this.write(i,t)}getBigInt64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(t,r,n){let i=hr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,t)}getUint8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(t,r){let n=ae(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,t)}getUint16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(t,r,n){let i=hr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,r,n),this.write(i,t)}getUint32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(t,r,n){let i=hr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,r,n),this.write(i,t)}getBigUint64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(t,r,n){let i=hr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,r,n),this.write(i,t)}getFloat32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(t,r,n){let i=hr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,r,n),this.write(i,t)}getFloat64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(t,r,n){let i=hr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,t)}equals(t){if(t==null||!(t instanceof e)||t.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!Tt(this.bufs[r],t.bufs[r]))return!1;return!0}static fromUint8Arrays(t,r){let n=new e;return n.bufs=t,r==null&&(r=t.reduce((i,s)=>i+s.byteLength,0)),n.length=r,n}};var Qd={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var us;(function(e){let t;e.codec=()=>(t==null&&(t=ie((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})),t),e.encode=r=>ne(r,e.codec()),e.decode=r=>re(r,e.codec())})(us||(us={}));var mi=class e{static createFromProtobuf=async t=>{let r=us.decode(t),n=await hi(r.publicKey);return new e({peerId:n,payloadType:r.payloadType,payload:r.payload,signature:r.signature})};static seal=async(t,r)=>{if(r.privateKey==null)throw new Error("Missing private key");let n=t.domain,i=t.codec,s=t.marshal(),o=Xd(n,i,s),c=await(await ai(r.privateKey)).sign(o.subarray());return new e({peerId:r,payloadType:i,payload:s,signature:c})};static openAndCertify=async(t,r)=>{let n=await e.createFromProtobuf(t);if(!await n.validate(r))throw new w("envelope signature is not valid for the given domain",Qd.ERR_SIGNATURE_NOT_VALID);return n};peerId;payloadType;payload;signature;marshaled;constructor(t){let{peerId:r,payloadType:n,payload:i,signature:s}=t;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=us.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(t){return Tt(this.marshal(),t.marshal())}async validate(t){let r=Xd(t,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return ns(this.peerId.publicKey).verify(r.subarray(),this.signature)}},Xd=(e,t,r)=>{let n=z(e),i=De(n.byteLength),s=De(t.length),o=De(r.length);return new Qt(i,n,s,t,o,r)};function Zd(e,t){let r=(n,i)=>n.toString().localeCompare(i.toString());return e.length!==t.length?!1:(t.sort(r),e.sort(r).every((n,i)=>t[i].equals(n)))}var Lo=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let r=this.index,n=t();return n===void 0&&(this.index=r),n}parseWith(t){let r=t();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(t){return this.readAtomically(()=>{let r=this.readChar();if(r===t)return r})}readSeparator(t,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,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,t);if(!Number.isNaN(h))return h});if(l===void 0)break;if(s*=t,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 t=new Uint8Array(4);for(let r=0;r<t.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[r]=n}return t})}readIPv6Addr(){let t=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]=t(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]=t(s.subarray(0,o));return r.set(s.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var Jd=45,jb=15,yi=new Lo;function ku(e){if(!(e.length>jb))return yi.new(e).parseWith(()=>yi.readIPv4Addr())}function Ou(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>Jd))return yi.new(e).parseWith(()=>yi.readIPv6Addr())}function Po(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>Jd))return yi.new(e).parseWith(()=>yi.readIPAddr())}var sC=parseInt("0xFFFF",16),oC=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function Do(e){return!!ku(e)}function No(e){return!!Ou(e)}function gi(e){return!!Po(e)}var ep=Do,iw=No,Mu=function(e){let t=0;if(e=e.toString().trim(),ep(e)){let r=new Uint8Array(t+4);return e.split(/\./g).forEach(n=>{r[t++]=parseInt(n,10)&255}),r}if(iw(e)){let r=e.split(":",8),n;for(n=0;n<r.length;n++){let s=ep(r[n]),o;s&&(o=Mu(r[n]),r[n]=X(o.slice(0,2),"base16")),o!=null&&++n<8&&r.splice(n,0,X(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(t+16);for(n=0;n<r.length;n++){let s=parseInt(r[n],16);i[t++]=s>>8&255,i[t++]=s&255}return i}throw new Error("invalid ip address")},rp=function(e,t=0,r){t=~~t,r=r??e.length-t;let n=new DataView(e.buffer);if(r===4){let i=[];for(let s=0;s<r;s++)i.push(e[t+s]);return i.join(".")}if(r===16){let i=[];for(let s=0;s<r;s+=2)i.push(n.getUint16(t+s).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var xi={},Uu={},ow=[[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"]];ow.forEach(e=>{let t=aw(...e);Uu[t.code]=t,xi[t.name]=t});function aw(e,t,r,n,i){return{code:e,size:t,name:r,resolvable:!!n,path:!!i}}function xt(e){if(typeof e=="number"){if(Uu[e]!=null)return Uu[e];throw new Error(`no protocol with code: ${e}`)}else if(typeof e=="string"){if(xi[e]!=null)return xi[e];throw new Error(`no protocol with name: ${e}`)}throw new Error(`invalid protocol id type: ${typeof e}`)}var $C=xt("ip4"),HC=xt("ip6"),zC=xt("ipcidr");function Ku(e,t){switch(xt(e).code){case 4:case 41:return uw(t);case 42:return sp(t);case 6:case 273:case 33:case 132:return ap(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return sp(t);case 421:return dw(t);case 444:return op(t);case 445:return op(t);case 466:return hw(t);default:return X(t,"base16")}}function Vu(e,t){switch(xt(e).code){case 4:return np(t);case 41:return np(t);case 42:return ip(t);case 6:case 273:case 33:case 132:return qu(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return ip(t);case 421:return lw(t);case 444:return pw(t);case 445:return mw(t);case 466:return fw(t);default:return z(t,"base16")}}var Fu=Object.values(Nr).map(e=>e.decoder),cw=function(){let e=Fu[0].or(Fu[1]);return Fu.slice(2).forEach(t=>e=e.or(t)),e}();function np(e){if(!gi(e))throw new Error("invalid ip address");return Mu(e)}function uw(e){let t=rp(e,0,e.length);if(t==null)throw new Error("ipBuff is required");if(!gi(t))throw new Error("invalid ip address");return t}function qu(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e),new Uint8Array(t)}function ap(e){return new DataView(e.buffer).getUint16(e.byteOffset)}function ip(e){let t=z(e),r=Uint8Array.from(De(t.length));return kt([r,t],r.length+t.length)}function sp(e){let t=Ar(e);if(e=e.slice(ge(t)),e.length!==t)throw new Error("inconsistent lengths");return X(e)}function lw(e){let t;e[0]==="Q"||e[0]==="1"?t=ln(Ct.decode(`z${e}`)).bytes:t=Ue.parse(e).multihash.bytes;let r=Uint8Array.from(De(t.length));return kt([r,t],r.length+t.length)}function fw(e){let t=cw.decode(e),r=Uint8Array.from(De(t.length));return kt([r,t],r.length+t.length)}function hw(e){let t=Ar(e),r=e.slice(ge(t));if(r.length!==t)throw new Error("inconsistent lengths");return"u"+X(r,"base64url")}function dw(e){let t=Ar(e),r=e.slice(ge(t));if(r.length!==t)throw new Error("inconsistent lengths");return X(r,"base58btc")}function pw(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let r=Ee.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=qu(n);return kt([r,i],r.length+i.length)}function mw(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let r=Ee.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=qu(n);return kt([r,i],r.length+i.length)}function op(e){let t=e.slice(0,e.length-2),r=e.slice(e.length-2),n=X(t,"base32"),i=ap(r);return`${n}:${i}`}function cp(e){e=$u(e);let t=[],r=[],n=null,i=e.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=xt(o);if(a.size===0){t.push([a.code]),r.push([a.code]);continue}if(s++,s>=i.length)throw lp("invalid address: "+e);if(a.path===!0){n=$u(i.slice(s).join("/")),t.push([a.code,Vu(a.code,n)]),r.push([a.code,n]);break}let c=Vu(a.code,i[s]);t.push([a.code,c]),r.push([a.code,Ku(a.code,c)])}return{string:up(r),bytes:zu(t),tuples:t,stringTuples:r,path:n}}function Hu(e){let t=[],r=[],n=null,i=0;for(;i<e.length;){let s=Ar(e,i),o=ge(s),a=xt(s),c=yw(a,e.slice(i+o));if(c===0){t.push([s]),r.push([s]),i+=o;continue}let u=e.slice(i+o,i+o+c);if(i+=c+o,i>e.length)throw lp("Invalid address Uint8Array: "+X(e,"base16"));t.push([s,u]);let l=Ku(s,u);if(r.push([s,l]),a.path===!0){n=l;break}}return{bytes:Uint8Array.from(e),string:up(r),tuples:t,stringTuples:r,path:n}}function up(e){let t=[];return e.map(r=>{let n=xt(r[0]);return t.push(n.name),r.length>1&&r[1]!=null&&t.push(r[1]),null}),$u(t.join("/"))}function zu(e){return kt(e.map(t=>{let r=xt(t[0]),n=Uint8Array.from(De(r.code));return t.length>1&&t[1]!=null&&(n=kt([n,t[1]])),n}))}function yw(e,t){if(e.size>0)return e.size/8;if(e.size===0)return 0;{let r=Ar(t instanceof Uint8Array?t:Uint8Array.from(t));return r+ge(r)}}function $u(e){return"/"+e.trim().split("/").filter(t=>t).join("/")}function lp(e){return new Error("Error parsing address: "+e)}var gw=Symbol.for("nodejs.util.inspect.custom"),xw=[xt("dns").code,xt("dns4").code,xt("dns6").code,xt("dnsaddr").code],Yu=new Map,fp=Symbol.for("@multiformats/js-multiaddr/multiaddr");function Bn(e){return!!e?.[fp]}var Gu=class e{bytes;#t;#e;#r;#n;[fp]=!0;constructor(t){t==null&&(t="");let r;if(t instanceof Uint8Array)r=Hu(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);r=cp(t)}else if(Bn(t))r=Hu(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#t=r.string,this.#e=r.tuples,this.#r=r.stringTuples,this.#n=r.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,r,n,i,s="",o=xt("tcp"),a=xt("udp"),c=xt("ip4"),u=xt("ip6"),l=xt("dns6"),f=xt("ip6zone");for(let[p,d]of this.stringTuples())p===f.code&&(s=`%${d??""}`),xw.includes(p)&&(r=o.name,i=443,n=`${d??""}${s}`,t=p===l.code?6:4),(p===o.code||p===a.code)&&(r=xt(p).name,i=parseInt(d??"")),(p===c.code||p===u.code)&&(r=xt(p).name,n=`${d??""}${s}`,t=p===u.code?6:4);if(t==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:t,host:n,transport:r,port:i}}protos(){return this.#e.map(([t])=>Object.assign({},xt(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>xt(t).name)}tuples(){return this.#e}stringTuples(){return this.#r}encapsulate(t){return t=new e(t),new e(this.toString()+t.toString())}decapsulate(t){let r=t.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new e(n.slice(0,i))}decapsulateCode(t){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===t)return new e(zu(r.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,i])=>{n===xi.p2p.code&&t.push([n,i]),n===xi["p2p-circuit"].code&&(t=[])});let r=t.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?X(Ct.decode(`z${n}`),"base58btc"):X(Ue.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(t){return Tt(this.bytes,t.bytes)}async resolve(t){let r=this.protos().find(s=>s.resolvable);if(r==null)return[this];let n=Yu.get(r.name);if(n==null)throw new w(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(s=>new e(s))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let r=(t??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[gw](){return`Multiaddr(${this.#t})`}};function Ht(e){return new Gu(e)}var hp="libp2p-peer-record",dp=Uint8Array.from([3,1]);var ls;(function(e){let t;(function(n){let i;n.codec=()=>(i==null&&(i=ie((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=>ne(s,n.codec()),n.decode=s=>re(s,n.codec())})(t=e.AddressInfo||(e.AddressInfo={}));let r;e.codec=()=>(r==null&&(r=ie((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),e.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(e.AddressInfo.codec().decode(n,n.uint32()));break;default:n.skipType(a&7);break}}return s})),r),e.encode=n=>ne(n,e.codec()),e.decode=n=>re(n,e.codec())})(ls||(ls={}));var Ln=class e{static createFromProtobuf=t=>{let r=ls.decode(t),n=fi(r.peerId),i=(r.addresses??[]).map(o=>Ht(o.multiaddr)),s=r.seq;return new e({peerId:n,multiaddrs:i,seqNumber:s})};static DOMAIN=hp;static CODEC=dp;peerId;multiaddrs;seqNumber;domain=e.DOMAIN;codec=e.CODEC;marshaled;constructor(t){let{peerId:r,multiaddrs:n,seqNumber:i}=t;this.peerId=r,this.multiaddrs=n??[],this.seqNumber=i??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=ls.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(t=>({multiaddr:t.bytes}))})),this.marshaled}equals(t){return!(!(t instanceof e)||!this.peerId.equals(t.peerId)||this.seqNumber!==t.seqNumber||!Zd(this.multiaddrs,t.multiaddrs))}};function Ew(e){return e[Symbol.asyncIterator]!=null}function bw(e){if(Ew(e))return(async()=>{let r=[];for await(let n of e)r.push(n);return r})();let t=[];for(let r of e)t.push(r);return t}var fs=bw;var Qu=mt(mp(),1);var ds=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Xu=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},yp=e=>globalThis.DOMException===void 0?new Xu(e):new DOMException(e),gp=e=>{let t=e.reason===void 0?yp("This operation was aborted."):e.reason;return t instanceof Error?t:yp(t)};function Zu(e,t,r,n){let i,s=new Promise((o,a)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(t===Number.POSITIVE_INFINITY){o(e);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&a(gp(c)),c.addEventListener("abort",()=>{a(gp(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 ${t} milliseconds`,u=r instanceof Error?r:new ds(c);typeof e.cancel=="function"&&e.cancel(),a(u)},t),(async()=>{try{o(await e)}catch(c){a(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return s.clear=()=>{clearTimeout(i),i=void 0},s}function Ju(e,t,r){let n=0,i=e.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(e[o],t)<=0?(n=++o,i-=s+1):i=s}return n}var Pn=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Ir,ju=class{constructor(){Ir.set(this,[])}enqueue(t,r){r={priority:0,...r};let n={priority:r.priority,run:t};if(this.size&&Pn(this,Ir,"f")[this.size-1].priority>=r.priority){Pn(this,Ir,"f").push(n);return}let i=Ju(Pn(this,Ir,"f"),n,(s,o)=>o.priority-s.priority);Pn(this,Ir,"f").splice(i,0,n)}dequeue(){let t=Pn(this,Ir,"f").shift();return t?.run}filter(t){return Pn(this,Ir,"f").filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return Pn(this,Ir,"f").length}};Ir=new WeakMap;var xp=ju;var Bt=function(e,t,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 t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},K=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Ot,ms,ys,zr,Vo,gs,Oo,$e,ps,Ie,Mo,Re,xs,Hr,Uo,Ep,bp,_p,wp,vp,Fo,tl,el,qo,Sp,Ko,$o=class extends Error{},rl=class extends Qu.default{constructor(t){var r,n,i,s;if(super(),Ot.add(this),ms.set(this,void 0),ys.set(this,void 0),zr.set(this,0),Vo.set(this,void 0),gs.set(this,void 0),Oo.set(this,0),$e.set(this,void 0),ps.set(this,void 0),Ie.set(this,void 0),Mo.set(this,void 0),Re.set(this,0),xs.set(this,void 0),Hr.set(this,void 0),Uo.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:xp,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(r=t.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&n!==void 0?n:""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(s=(i=t.interval)===null||i===void 0?void 0:i.toString())!==null&&s!==void 0?s:""}\` (${typeof t.interval})`);Bt(this,ms,t.carryoverConcurrencyCount,"f"),Bt(this,ys,t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,"f"),Bt(this,Vo,t.intervalCap,"f"),Bt(this,gs,t.interval,"f"),Bt(this,Ie,new t.queueClass,"f"),Bt(this,Mo,t.queueClass,"f"),this.concurrency=t.concurrency,this.timeout=t.timeout,Bt(this,Uo,t.throwOnTimeout===!0,"f"),Bt(this,Hr,t.autoStart===!1,"f")}get concurrency(){return K(this,xs,"f")}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);Bt(this,xs,t,"f"),K(this,Ot,"m",qo).call(this)}async add(t,r={}){return r={timeout:this.timeout,throwOnTimeout:K(this,Uo,"f"),...r},new Promise((n,i)=>{K(this,Ie,"f").enqueue(async()=>{var s,o,a;Bt(this,Re,(o=K(this,Re,"f"),o++,o),"f"),Bt(this,zr,(a=K(this,zr,"f"),a++,a),"f");try{if(!((s=r.signal)===null||s===void 0)&&s.aborted)throw new $o("The task was aborted.");let c=t({signal:r.signal});r.timeout&&(c=Zu(Promise.resolve(c),r.timeout)),r.signal&&(c=Promise.race([c,K(this,Ot,"m",Sp).call(this,r.signal)]));let u=await c;n(u),this.emit("completed",u)}catch(c){if(c instanceof ds&&!r.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{K(this,Ot,"m",_p).call(this)}},r),this.emit("add"),K(this,Ot,"m",Fo).call(this)})}async addAll(t,r){return Promise.all(t.map(async n=>this.add(n,r)))}start(){return K(this,Hr,"f")?(Bt(this,Hr,!1,"f"),K(this,Ot,"m",qo).call(this),this):this}pause(){Bt(this,Hr,!0,"f")}clear(){Bt(this,Ie,new(K(this,Mo,"f")),"f")}async onEmpty(){K(this,Ie,"f").size!==0&&await K(this,Ot,"m",Ko).call(this,"empty")}async onSizeLessThan(t){K(this,Ie,"f").size<t||await K(this,Ot,"m",Ko).call(this,"next",()=>K(this,Ie,"f").size<t)}async onIdle(){K(this,Re,"f")===0&&K(this,Ie,"f").size===0||await K(this,Ot,"m",Ko).call(this,"idle")}get size(){return K(this,Ie,"f").size}sizeBy(t){return K(this,Ie,"f").filter(t).length}get pending(){return K(this,Re,"f")}get isPaused(){return K(this,Hr,"f")}};ms=new WeakMap,ys=new WeakMap,zr=new WeakMap,Vo=new WeakMap,gs=new WeakMap,Oo=new WeakMap,$e=new WeakMap,ps=new WeakMap,Ie=new WeakMap,Mo=new WeakMap,Re=new WeakMap,xs=new WeakMap,Hr=new WeakMap,Uo=new WeakMap,Ot=new WeakSet,Ep=function(){return K(this,ys,"f")||K(this,zr,"f")<K(this,Vo,"f")},bp=function(){return K(this,Re,"f")<K(this,xs,"f")},_p=function(){var t;Bt(this,Re,(t=K(this,Re,"f"),t--,t),"f"),K(this,Ot,"m",Fo).call(this),this.emit("next")},wp=function(){K(this,Ot,"m",el).call(this),K(this,Ot,"m",tl).call(this),Bt(this,ps,void 0,"f")},vp=function(){let t=Date.now();if(K(this,$e,"f")===void 0){let r=K(this,Oo,"f")-t;if(r<0)Bt(this,zr,K(this,ms,"f")?K(this,Re,"f"):0,"f");else return K(this,ps,"f")===void 0&&Bt(this,ps,setTimeout(()=>{K(this,Ot,"m",wp).call(this)},r),"f"),!0}return!1},Fo=function(){if(K(this,Ie,"f").size===0)return K(this,$e,"f")&&clearInterval(K(this,$e,"f")),Bt(this,$e,void 0,"f"),this.emit("empty"),K(this,Re,"f")===0&&this.emit("idle"),!1;if(!K(this,Hr,"f")){let t=!K(this,Ot,"a",vp);if(K(this,Ot,"a",Ep)&&K(this,Ot,"a",bp)){let r=K(this,Ie,"f").dequeue();return r?(this.emit("active"),r(),t&&K(this,Ot,"m",tl).call(this),!0):!1}}return!1},tl=function(){K(this,ys,"f")||K(this,$e,"f")!==void 0||(Bt(this,$e,setInterval(()=>{K(this,Ot,"m",el).call(this)},K(this,gs,"f")),"f"),Bt(this,Oo,Date.now()+K(this,gs,"f"),"f"))},el=function(){K(this,zr,"f")===0&&K(this,Re,"f")===0&&K(this,$e,"f")&&(clearInterval(K(this,$e,"f")),Bt(this,$e,void 0,"f")),Bt(this,zr,K(this,ms,"f")?K(this,Re,"f"):0,"f"),K(this,Ot,"m",qo).call(this)},qo=function(){for(;K(this,Ot,"m",Fo).call(this););},Sp=async function(t){return new Promise((r,n)=>{t.addEventListener("abort",()=>{n(new $o("The task was aborted."))},{once:!0})})},Ko=async function(t,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(t,i),n())};this.on(t,i)})};var Gr=rl;var nl=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},il=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},Ap=e=>globalThis.DOMException===void 0?new il(e):new DOMException(e),Ip=e=>{let t=e.reason===void 0?Ap("This operation was aborted."):e.reason;return t instanceof Error?t:Ap(t)};function sl(e,t){let{milliseconds:r,fallback:n,message:i,customTimers:s={setTimeout,clearTimeout}}=t,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(t.signal){let{signal:h}=t;h.aborted&&l(Ip(h)),h.addEventListener("abort",()=>{l(Ip(h))})}if(r===Number.POSITIVE_INFINITY){e.then(u,l);return}let f=new nl;o=s.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(h){l(h)}return}typeof e.cancel=="function"&&e.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 e)}catch(h){l(h)}})()}).finally(()=>{c.clear()});return c.clear=()=>{s.clearTimeout.call(void 0,o),o=void 0},c}var ol="lock:worker:request-read",al="lock:worker:release-read",cl="lock:master:grant-read",ul="lock:worker:request-write",ll="lock:worker:release-write",fl="lock:master:grant-write";var Yr={},Ei=e=>{e.addEventListener("message",t=>{Ei.dispatchEvent("message",e,t)}),e.port!=null&&e.port.addEventListener("message",t=>{Ei.dispatchEvent("message",e,t)})};Ei.addEventListener=(e,t)=>{Yr[e]==null&&(Yr[e]=[]),Yr[e].push(t)};Ei.removeEventListener=(e,t)=>{Yr[e]!=null&&(Yr[e]=Yr[e].filter(r=>r===t))};Ei.dispatchEvent=function(e,t,r){Yr[e]!=null&&Yr[e].forEach(n=>n(t,r))};var hl=Ei;var Rp=(e,t,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};e.dispatchEvent(new MessageEvent(t,{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)}))}}))},Cp=(e,t,r,n)=>async()=>{let i=Ao();return globalThis.postMessage({type:t,identifier:i,name:e}),await 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:e})}))};globalThis.addEventListener("message",o)})},_w={singleProcess:!1},Tp=e=>{if(e=Object.assign({},_w,e),!!globalThis.document||e.singleProcess){let r=new EventTarget;return hl.addEventListener("message",Rp(r,"requestReadLock",ol,al,cl)),hl.addEventListener("message",Rp(r,"requestWriteLock",ul,ll,fl)),r}return{isWorker:!0,readLock:r=>Cp(r,ol,cl,al),writeLock:r=>Cp(r,ul,fl,ll)}};var Dn={},Wr;async function dl(e,t){let r,n=new Promise(i=>{r=i});return e.add(async()=>await sl((async()=>await new Promise(i=>{r(()=>{i()})}))(),{milliseconds:t.timeout})),await n}var Sw=(e,t)=>{if(Wr.isWorker===!0)return{readLock:Wr.readLock(e,t),writeLock:Wr.writeLock(e,t)};let r=new Gr({concurrency:1}),n;return{async readLock(){if(n!=null)return await dl(n,t);n=new Gr({concurrency:t.concurrency,autoStart:!1});let i=n,s=dl(n,t);return r.add(async()=>(i.start(),await i.onIdle().then(()=>{n===i&&(n=null)}))),await s},async writeLock(){return n=null,await dl(r,t)}}},Aw={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function pl(e){let t=Object.assign({},Aw,e);return Wr==null&&(Wr=Tp(t),Wr.isWorker!==!0&&(Wr.addEventListener("requestReadLock",r=>{Dn[r.data.name]!=null&&Dn[r.data.name].readLock().then(async n=>await r.data.handler().finally(()=>n()))}),Wr.addEventListener("requestWriteLock",async r=>{Dn[r.data.name]!=null&&Dn[r.data.name].writeLock().then(async n=>await r.data.handler().finally(()=>n()))}))),Dn[t.name]==null&&(Dn[t.name]=Sw(t.name,t)),Dn[t.name]}var se={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS"};var bi;(function(e){let t;(function(i){let s;i.codec=()=>(s==null&&(s=ie((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=>ne(o,i.codec()),i.decode=o=>re(o,i.codec())})(t=e.Peer$metadataEntry||(e.Peer$metadataEntry={}));let r;(function(i){let s;i.codec=()=>(s==null&&(s=ie((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),zo.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=zo.codec().decode(o,o.uint32());break;default:o.skipType(l&7);break}}return c})),s),i.encode=o=>ne(o,i.codec()),i.decode=o=>re(o,i.codec())})(r=e.Peer$tagsEntry||(e.Peer$tagsEntry={}));let n;e.codec=()=>(n==null&&(n=ie((i,s,o={})=>{if(o.lengthDelimited!==!1&&s.fork(),i.addresses!=null)for(let a of i.addresses)s.uint32(10),Ho.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),e.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),e.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(Ho.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=e.Peer$metadataEntry.codec().decode(i,i.uint32());o.metadata.set(u.key,u.value);break}case 7:{let u=e.Peer$tagsEntry.codec().decode(i,i.uint32());o.tags.set(u.key,u.value);break}default:i.skipType(c&7);break}}return o})),n),e.encode=i=>ne(i,e.codec()),e.decode=i=>re(i,e.codec())})(bi||(bi={}));var Ho;(function(e){let t;e.codec=()=>(t==null&&(t=ie((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})),t),e.encode=r=>ne(r,e.codec()),e.decode=r=>re(r,e.codec())})(Ho||(Ho={}));var zo;(function(e){let t;e.codec=()=>(t==null&&(t=ie((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})),t),e.encode=r=>ne(r,e.codec()),e.decode=r=>re(r,e.codec())})(zo||(zo={}));function wi(e,t){let r=bi.decode(t);r.publicKey!=null&&e.publicKey==null&&(e=Sd({...e,publicKey:e.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:e,addresses:r.addresses.map(({multiaddr:s,isCertified:o})=>({multiaddr:Ht(s),isCertified:o??!1})),metadata:r.metadata,peerRecordEnvelope:r.peerRecordEnvelope??void 0,tags:n}}var ml="/peers/";function vi(e){if(!So(e)||e.type==null)throw new w("Invalid PeerId",se.ERR_INVALID_PARAMETERS);let t=e.toCID().toString();return new rr(`${ml}${t}`)}async function Bp(e,t,r){let n=new Map;for(let i of r){if(i==null)continue;if(i.multiaddr instanceof Uint8Array&&(i.multiaddr=Ht(i.multiaddr)),!Bn(i.multiaddr))throw new w("Multiaddr was invalid",se.ERR_INVALID_PARAMETERS);if(!await t(e,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 Yo(e,t,r,n){if(t==null)throw new w("Invalid PeerData",se.ERR_INVALID_PARAMETERS);if(t.publicKey!=null&&e.publicKey!=null&&!Tt(t.publicKey,e.publicKey))throw new w("publicKey bytes do not match peer id publicKey bytes",se.ERR_INVALID_PARAMETERS);let i=n.existingPeer;if(i!=null&&!e.equals(i.id))throw new w("peer id did not match existing peer id",se.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((t.multiaddrs!=null||t.addresses!=null)&&(s=[],t.multiaddrs!=null&&s.push(...t.multiaddrs.map(f=>({isCertified:!1,multiaddr:f}))),t.addresses!=null&&s.push(...t.addresses)),t.protocols!=null&&(o=new Set(t.protocols)),t.metadata!=null){let f=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);a=Go(f,{validate:Lp})}if(t.tags!=null){let f=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags);c=Go(f,{validate:Pp,map:Dp})}t.peerRecordEnvelope!=null&&(u=t.peerRecordEnvelope)}if(r==="merge"){if(t.multiaddrs!=null&&s.push(...t.multiaddrs.map(f=>({isCertified:!1,multiaddr:f}))),t.addresses!=null&&s.push(...t.addresses),t.protocols!=null&&(o=new Set([...o,...t.protocols])),t.metadata!=null){let f=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);for(let[h,p]of f)p==null?a.delete(h):a.set(h,p);a=Go([...a.entries()],{validate:Lp})}if(t.tags!=null){let f=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags),h=new Map(c);for(let[p,d]of f)d==null?h.delete(p):h.set(p,d);c=Go([...h.entries()],{validate:Pp,map:Dp})}t.peerRecordEnvelope!=null&&(u=t.peerRecordEnvelope)}let l={addresses:await Bp(e,n.addressFilter??(async()=>!0),s),protocols:[...o.values()].sort((f,h)=>f.localeCompare(h)),metadata:a,tags:c,publicKey:i?.id.publicKey??t.publicKey??e.publicKey,peerRecordEnvelope:u};return e.type!=="RSA"&&delete l.publicKey,l}function Go(e,t){let r=new Map;for(let[n,i]of e)i!=null&&t.validate(n,i);for(let[n,i]of e.sort(([s],[o])=>s.localeCompare(o)))i!=null&&r.set(n,t.map?.(n,i)??i);return r}function Lp(e,t){if(typeof e!="string")throw new w("Metadata key must be a string",se.ERR_INVALID_PARAMETERS);if(!(t instanceof Uint8Array))throw new w("Metadata value must be a Uint8Array",se.ERR_INVALID_PARAMETERS)}function Pp(e,t){if(typeof e!="string")throw new w("Tag name must be a string",se.ERR_INVALID_PARAMETERS);if(t.value!=null){if(parseInt(`${t.value}`,10)!==t.value)throw new w("Tag value must be an integer",se.ERR_INVALID_PARAMETERS);if(t.value<0||t.value>100)throw new w("Tag value must be between 0-100",se.ERR_INVALID_PARAMETERS)}if(t.ttl!=null){if(parseInt(`${t.ttl}`,10)!==t.ttl)throw new w("Tag ttl must be an integer",se.ERR_INVALID_PARAMETERS);if(t.ttl<0)throw new w("Tag ttl must be between greater than 0",se.ERR_INVALID_PARAMETERS)}}function Dp(e,t){let r;return t.expiry!=null&&(r=t.expiry),t.ttl!=null&&(r=BigInt(Date.now()+Number(t.ttl))),{value:t.value??0,expiry:r}}function Wo(e,t,r){let n=e.toString().split("/")[2],i=Ee.decode(n),s=fi(i),o=r.get(s);if(o!=null)return o;let a=wi(s,t);return r.set(s,a),a}function Iw(e,t){return e==null?{}:{prefix:ml,filters:(e.filters??[]).map(r=>({key:n,value:i})=>r(Wo(n,i,t))),orders:(e.orders??[]).map(r=>(n,i)=>r(Wo(n.key,n.value,t),Wo(i.key,i.value,t)))}}var Qo=class{peerId;datastore;lock;addressFilter;constructor(t,r={}){this.peerId=t.peerId,this.datastore=t.datastore,this.addressFilter=r.addressFilter,this.lock=pl({name:"peer-store",singleProcess:!0})}async has(t){return this.datastore.has(vi(t))}async delete(t){if(this.peerId.equals(t))throw new w("Cannot delete self peer",se.ERR_INVALID_PARAMETERS);await this.datastore.delete(vi(t))}async load(t){let r=await this.datastore.get(vi(t));return wi(t,r)}async save(t,r){let{existingBuf:n,existingPeer:i}=await this.#t(t),s=await Yo(t,r,"patch",{addressFilter:this.addressFilter});return this.#e(t,s,n,i)}async patch(t,r){let{existingBuf:n,existingPeer:i}=await this.#t(t),s=await Yo(t,r,"patch",{addressFilter:this.addressFilter,existingPeer:i});return this.#e(t,s,n,i)}async merge(t,r){let{existingBuf:n,existingPeer:i}=await this.#t(t),s=await Yo(t,r,"merge",{addressFilter:this.addressFilter,existingPeer:i});return this.#e(t,s,n,i)}async*all(t){let r=new Ae;for await(let{key:n,value:i}of this.datastore.query(Iw(t??{},r))){let s=Wo(n,i,r);s.id.equals(this.peerId)||(yield s)}}async#t(t){try{let r=await this.datastore.get(vi(t)),n=wi(t,r);return{existingBuf:r,existingPeer:n}}catch(r){if(r.code!=="ERR_NOT_FOUND")throw r}return{}}async#e(t,r,n,i){let s=bi.encode(r);return n!=null&&Tt(s,n)?{peer:wi(t,s),previous:i,updated:!1}:(await this.datastore.put(vi(t),s),{peer:wi(t,s),previous:i,updated:!0})}};var wt=rt("libp2p:peer-store"),Xo=class{store;events;peerId;constructor(t,r={}){this.events=t.events,this.peerId=t.peerId,this.store=new Qo(t,r)}async forEach(t,r){wt.trace("forEach await read lock");let n=await this.store.lock.readLock();wt.trace("forEach got read lock");try{for await(let i of this.store.all(r))t(i)}finally{wt.trace("forEach release read lock"),n()}}async all(t){wt.trace("all await read lock");let r=await this.store.lock.readLock();wt.trace("all got read lock");try{return await fs(this.store.all(t))}finally{wt.trace("all release read lock"),r()}}async delete(t){wt.trace("delete await write lock");let r=await this.store.lock.writeLock();wt.trace("delete got write lock");try{await this.store.delete(t)}finally{wt.trace("delete release write lock"),r()}}async has(t){wt.trace("has await read lock");let r=await this.store.lock.readLock();wt.trace("has got read lock");try{return await this.store.has(t)}finally{wt.trace("has release read lock"),r()}}async get(t){wt.trace("get await read lock");let r=await this.store.lock.readLock();wt.trace("get got read lock");try{return await this.store.load(t)}finally{wt.trace("get release read lock"),r()}}async save(t,r){wt.trace("save await write lock");let n=await this.store.lock.writeLock();wt.trace("save got write lock");try{let i=await this.store.save(t,r);return this.#t(t,i),i.peer}finally{wt.trace("save release write lock"),n()}}async patch(t,r){wt.trace("patch await write lock");let n=await this.store.lock.writeLock();wt.trace("patch got write lock");try{let i=await this.store.patch(t,r);return this.#t(t,i),i.peer}finally{wt.trace("patch release write lock"),n()}}async merge(t,r){wt.trace("merge await write lock");let n=await this.store.lock.writeLock();wt.trace("merge got write lock");try{let i=await this.store.merge(t,r);return this.#t(t,i),i.peer}finally{wt.trace("merge release write lock"),n()}}async consumePeerRecord(t,r){let n=await mi.openAndCertify(t,Ln.DOMAIN);if(r?.equals(n.peerId)===!1)return wt("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 mi.createFromProtobuf(s.peerRecordEnvelope),a=Ln.createFromProtobuf(o.payload);if(a.seqNumber>=i.seqNumber)return wt("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:t,addresses:i.multiaddrs.map(o=>({isCertified:!0,multiaddr:o}))}),!0}#t(t,r){r.updated&&(this.peerId.equals(t)?this.events.safeDispatchEvent("self:peer:update",{detail:r}):this.events.safeDispatchEvent("peer:update",{detail:r}))}};function Rw(e){return e[Symbol.asyncIterator]!=null}function Cw(e){if(Rw(e))return(async()=>{for await(let t of e);})();for(let t of e);}var yl=Cw;function Tw(e){let[t,r]=e[Symbol.asyncIterator]!=null?[e[Symbol.asyncIterator](),Symbol.asyncIterator]:[e[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>t.next(),push:i=>{n.push(i)},next:()=>n.length>0?{done:!1,value:n.shift()}:t.next(),[r](){return this}}}var Zo=Tw;function Bw(e){return e[Symbol.asyncIterator]!=null}function Lw(e,t){if(Bw(e))return async function*(){for await(let a of e)await t(a)&&(yield a)}();let r=Zo(e),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let s=t(n);if(typeof s.then=="function")return async function*(){await s&&(yield n);for await(let a of r)await t(a)&&(yield a)}();let o=t;return function*(){s===!0&&(yield n);for(let a of r)o(a)&&(yield a)}()}var He=Lw;function Pw(e){return e[Symbol.asyncIterator]!=null}function Dw(e,t){return Pw(e)?async function*(){yield*(await fs(e)).sort(t)}():function*(){yield*fs(e).sort(t)}()}var gl=Dw;function Nw(e){return e[Symbol.asyncIterator]!=null}function kw(e,t){return Nw(e)?async function*(){let r=0;if(!(t<1)){for await(let n of e)if(yield n,r++,r===t)return}}():function*(){let r=0;if(!(t<1)){for(let n of e)if(yield n,r++,r===t)return}}()}var xl=kw;var Jo=class{put(t,r,n){return Promise.reject(new Error(".put is not implemented"))}get(t,r){return Promise.reject(new Error(".get is not implemented"))}has(t,r){return Promise.reject(new Error(".has is not implemented"))}delete(t,r){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(t,r={}){for await(let{key:n,value:i}of t)await this.put(n,i,r),yield n}async*getMany(t,r={}){for await(let n of t)yield{key:n,value:await this.get(n,r)}}async*deleteMany(t,r={}){for await(let n of t)await this.delete(n,r),yield n}batch(){let t=[],r=[];return{put(n,i){t.push({key:n,value:i})},delete(n){r.push(n)},commit:async n=>{await yl(this.putMany(t,n)),t=[],await yl(this.deleteMany(r,n)),r=[]}}}async*_all(t,r){throw new Error("._all is not implemented")}async*_allKeys(t,r){throw new Error("._allKeys is not implemented")}query(t,r){let n=this._all(t,r);if(t.prefix!=null){let i=t.prefix;n=He(n,s=>s.key.toString().startsWith(i))}if(Array.isArray(t.filters)&&(n=t.filters.reduce((i,s)=>He(i,s),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,s)=>gl(i,s),n)),t.offset!=null){let i=0,s=t.offset;n=He(n,()=>i++>=s)}return t.limit!=null&&(n=xl(n,t.limit)),n}queryKeys(t,r){let n=this._allKeys(t,r);if(t.prefix!=null){let i=t.prefix;n=He(n,s=>s.toString().startsWith(i))}if(Array.isArray(t.filters)&&(n=t.filters.reduce((i,s)=>He(i,s),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,s)=>gl(i,s),n)),t.offset!=null){let i=t.offset,s=0;n=He(n,()=>s++>=i)}return t.limit!=null&&(n=xl(n,t.limit)),n}};var Op=mt(El(),1);function Mp(e){return e=e??new Error("Not Found"),(0,Op.default)(e,"ERR_NOT_FOUND")}var jo=class extends Jo{data;constructor(){super(),this.data=new Map}put(t,r){return this.data.set(t.toString(),r),t}get(t){let r=this.data.get(t.toString());if(r==null)throw Mp();return r}has(t){return this.data.has(t.toString())}delete(t){this.data.delete(t.toString())}*_all(){for(let[t,r]of this.data.entries())yield{key:new rr(t),value:r}}*_allKeys(){for(let t of this.data.keys())yield new rr(t)}};function Up(e,t){let r;return function(){let n=function(){r=void 0,e()};clearTimeout(r),r=setTimeout(n,t)}}var Uw=rt("libp2p:address-manager"),Fw=e=>e;function bl(e,t){let r=e.getPeerId();return r!=null&&lt(r).equals(t)&&(e=e.decapsulate(Ht(`/p2p/${t.toString()}`))),e}var ta=class{components;listen;announce;observed;announceFilter;constructor(t,r={}){let{listen:n=[],announce:i=[]}=r;this.components=t,this.listen=n.map(s=>s.toString()),this.announce=new Set(i.map(s=>s.toString())),this.observed=new Map,this.announceFilter=r.announceFilter??Fw,this._updatePeerStoreAddresses=Up(this._updatePeerStoreAddresses.bind(this),1e3),t.events.addEventListener("transport:listening",()=>{this._updatePeerStoreAddresses()}),t.events.addEventListener("transport:close",()=>{this._updatePeerStoreAddresses()})}_updatePeerStoreAddresses(){let t=this.getAnnounceAddrs().concat(this.components.transportManager.getAddrs()).concat([...this.observed.entries()].filter(([r,n])=>n.confident).map(([r])=>Ht(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:t}).catch(r=>{Uw.error("error updating addresses",r)})}getListenAddrs(){return Array.from(this.listen).map(t=>Ht(t))}getAnnounceAddrs(){return Array.from(this.announce).map(t=>Ht(t))}getObservedAddrs(){return Array.from(this.observed).map(([t])=>Ht(t))}addObservedAddr(t){t=bl(t,this.components.peerId);let r=t.toString();this.observed.has(r)||this.observed.set(r,{confident:!1})}confirmObservedAddr(t){t=bl(t,this.components.peerId);let r=t.toString(),i=(this.observed.get(r)??{confident:!1}).confident;this.observed.set(r,{confident:!0}),i||this._updatePeerStoreAddresses()}removeObservedAddr(t){t=bl(t,this.components.peerId);let r=t.toString();this.observed.delete(r)}getAddresses(){let t=this.getAnnounceAddrs().map(n=>n.toString());t.length===0&&(t=this.components.transportManager.getAddrs().map(n=>n.toString())),t=t.concat(Array.from(this.observed).filter(([n,i])=>i.confident).map(([n])=>n));let r=new Set(t);return this.announceFilter(Array.from(r).map(n=>Ht(n))).map(n=>n.protos().pop()?.path===!0||n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};function Fp(e){return e!=null&&typeof e.start=="function"&&typeof e.stop=="function"}var wl=class{components={};_started=!1;constructor(t={}){this.components={};for(let[r,n]of Object.entries(t))this.components[r]=n}isStarted(){return this._started}async _invokeStartableMethod(t){await Promise.all(Object.values(this.components).filter(r=>Fp(r)).map(async r=>{await r[t]?.()}))}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")}},Kw=["metrics","connectionProtector"],Vw=["components","isStarted","beforeStart","start","afterStart","beforeStop","stop","afterStop","then","_invokeStartableMethod"];function Kp(e={}){let t=new wl(e);return new Proxy(t,{get(n,i,s){if(typeof i=="string"&&!Vw.includes(i)){let o=t.components[i];if(o==null&&!Kw.includes(i))throw new w(`${i} not set`,"ERR_SERVICE_MISSING");return o}return Reflect.get(n,i,s)},set(n,i,s){return typeof i=="string"?t.components[i]=s:Reflect.set(n,i,s),!0}})}var Yp=mt(Vp(),1);var qp="[a-fA-F\\d:]",Qr=e=>e&&e.includeBoundaries?`(?:(?<=\\s|^)(?=${qp})|(?<=${qp})(?=\\s|$))`:"",ze="(?: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}",Kt="[a-fA-F\\d]{1,4}",ea=`
37
+ SELECT points, expire FROM ${this._getTableIdentifier()} WHERE key = $1 AND (expire > $2 OR expire IS NULL);`,values:[t,Date.now()]}).then(i=>{i.rowCount===0&&(i=null),r(i)}).catch(i=>{n(i)})}):Promise.reject(Error("Table is not created yet"))}_delete(t){return this.tableCreated?this._query({name:"rlflx-delete",text:`DELETE FROM ${this._getTableIdentifier()} WHERE key = $1`,values:[t]}).then(r=>r.rowCount>0):Promise.reject(Error("Table is not created yet"))}};Lm.exports=Kl});var Dm=V(()=>{});var km=V((R6,Nm)=>{Nm.exports=class{constructor(t,r,n=null){this.value=t,this.expiresAt=r,this.timeoutId=n}get value(){return this._value}set value(t){this._value=parseInt(t)}get expiresAt(){return this._expiresAt}set expiresAt(t){!(t instanceof Date)&&Number.isInteger(t)&&(t=new Date(t)),this._expiresAt=t}get timeoutId(){return this._timeoutId}set timeoutId(t){this._timeoutId=t}}});var Mm=V((T6,Om)=>{var bv=km(),Vl=Ce();Om.exports=class{constructor(){this._storage={}}incrby(t,r,n){if(this._storage[t]){let i=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return i!==0?(this._storage[t].value=this._storage[t].value+r,new Vl(0,i,this._storage[t].value,!1)):this.set(t,r,n)}return this.set(t,r,n)}set(t,r,n){let i=n*1e3;return this._storage[t]&&this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),this._storage[t]=new bv(r,i>0?new Date(Date.now()+i):null),i>0&&(this._storage[t].timeoutId=setTimeout(()=>{delete this._storage[t]},i),this._storage[t].timeoutId.unref&&this._storage[t].timeoutId.unref()),new Vl(0,i===0?-1:i,this._storage[t].value,!0)}get(t){if(this._storage[t]){let r=this._storage[t].expiresAt?this._storage[t].expiresAt.getTime()-new Date().getTime():-1;return new Vl(0,r,this._storage[t].value,!1)}return null}delete(t){return this._storage[t]?(this._storage[t].timeoutId&&clearTimeout(this._storage[t].timeoutId),delete this._storage[t],!0):!1}}});var $l=V((B6,Fm)=>{var wv=_s(),vv=Mm(),Um=Ce(),ql=class extends wv{constructor(t={}){super(t),this._memoryStorage=new vv}consume(t,r=1,n={}){return new Promise((i,s)=>{let o=this.getKey(t),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(t,r=1,n={}){let i=this.getKey(t);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(t,r=1,n={}){let i=this.getKey(t);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(t,r){let n=r*1e3,i=this.points+1;return this._memoryStorage.set(this.getKey(t),i,r),Promise.resolve(new Um(0,n===0?-1:n,i))}set(t,r,n){let i=(n>=0?n:this.duration)*1e3;return this._memoryStorage.set(this.getKey(t),r,n),Promise.resolve(new Um(0,i===0?-1:i,r))}get(t){let r=this._memoryStorage.get(this.getKey(t));return r!==null&&(r.remainingPoints=Math.max(this.points-r.consumedPoints,0)),Promise.resolve(r)}delete(t){return Promise.resolve(this._memoryStorage.delete(this.getKey(t)))}};Fm.exports=ql});var Gm=V((L6,zm)=>{var Km=Dm(),_v=Ui(),Sv=_s(),qm=$l(),Av=Ce(),ke="rate_limiter_flexible",Ci=null,Vm=function(e,t,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},e.send({channel:ke,keyPrefix:t.keyPrefix,promiseId:t.promiseId,type:r,data:i})},$m=function(e){setTimeout(()=>{this._initiated?process.send(e):typeof this._promises[e.promiseId]<"u"&&$m.call(this,e)},30)},Ii=function(e,t,r,n,i){let s={channel:ke,keyPrefix:this.keyPrefix,func:e,promiseId:t,data:{key:r,arg:n,opts:i}};this._initiated?process.send(s):$m.call(this,s)},Hm=function(e,t){if(!t||t.channel!==ke||typeof this._rateLimiters[t.keyPrefix]>"u")return!1;let r;switch(t.func){case"consume":r=this._rateLimiters[t.keyPrefix].consume(t.data.key,t.data.arg,t.data.opts);break;case"penalty":r=this._rateLimiters[t.keyPrefix].penalty(t.data.key,t.data.arg,t.data.opts);break;case"reward":r=this._rateLimiters[t.keyPrefix].reward(t.data.key,t.data.arg,t.data.opts);break;case"block":r=this._rateLimiters[t.keyPrefix].block(t.data.key,t.data.arg,t.data.opts);break;case"get":r=this._rateLimiters[t.keyPrefix].get(t.data.key,t.data.opts);break;case"delete":r=this._rateLimiters[t.keyPrefix].delete(t.data.key,t.data.opts);break;default:return!1}r&&r.then(n=>{Vm(e,t,"resolve",n)}).catch(n=>{Vm(e,t,"reject",n)})},Iv=function(e){if(!e||e.channel!==ke||e.keyPrefix!==this.keyPrefix)return!1;if(this._promises[e.promiseId]){clearTimeout(this._promises[e.promiseId].timeoutId);let t;switch(e.data===null||e.data===!0||e.data===!1?t=e.data:t=new Av(e.data.remainingPoints,e.data.msBeforeNext,e.data.consumedPoints,e.data.isFirstInDuration),e.type){case"resolve":this._promises[e.promiseId].resolve(t);break;case"reject":this._promises[e.promiseId].reject(t);break;default:throw new Error(`RateLimiterCluster: no such message type '${e.type}'`)}delete this._promises[e.promiseId]}},Rv=function(){return{points:this.points,duration:this.duration,blockDuration:this.blockDuration,execEvenly:this.execEvenly,execEvenlyMinDelayMs:this.execEvenlyMinDelayMs,keyPrefix:this.keyPrefix}},Ri=function(e,t){let r=process.hrtime(),n=r[0].toString()+r[1].toString();return typeof this._promises[n]<"u"&&(n+=_v.randomBytes(12).toString("base64")),this._promises[n]={resolve:e,reject:t,timeoutId:setTimeout(()=>{delete this._promises[n],t(new Error("RateLimiterCluster timeout: no answer from master in time"))},this.timeoutMs)},n},Hl=class{constructor(){if(Ci)return Ci;this._rateLimiters={},Km.setMaxListeners(0),Km.on("message",(t,r)=>{r&&r.channel===ke&&r.type==="init"?(typeof this._rateLimiters[r.opts.keyPrefix]>"u"&&(this._rateLimiters[r.opts.keyPrefix]=new qm(r.opts)),t.send({channel:ke,type:"init",keyPrefix:r.opts.keyPrefix})):Hm.call(this,t,r)}),Ci=this}},zl=class{constructor(t){if(Ci)return Ci;this._rateLimiters={},t.launchBus((r,n)=>{n.on("process:msg",i=>{let s=i.raw;if(s&&s.channel===ke&&s.type==="init")typeof this._rateLimiters[s.opts.keyPrefix]>"u"&&(this._rateLimiters[s.opts.keyPrefix]=new qm(s.opts)),t.sendDataToProcessId(i.process.pm_id,{data:{},topic:ke,channel:ke,type:"init",keyPrefix:s.opts.keyPrefix},(o,a)=>{o&&console.log(o,a)});else{let o={send:a=>{let c=a;c.topic=ke,typeof c.data>"u"&&(c.data={}),t.sendDataToProcessId(i.process.pm_id,c,(u,l)=>{u&&console.log(u,l)})}};Hm.call(this,o,s)}})}),Ci=this}},Gl=class extends Sv{get timeoutMs(){return this._timeoutMs}set timeoutMs(t){this._timeoutMs=typeof t>"u"?5e3:Math.abs(parseInt(t))}constructor(t={}){super(t),process.setMaxListeners(0),this.timeoutMs=t.timeoutMs,this._initiated=!1,process.on("message",r=>{r&&r.channel===ke&&r.type==="init"&&r.keyPrefix===this.keyPrefix?this._initiated=!0:Iv.call(this,r)}),process.send({channel:ke,type:"init",opts:Rv.call(this)}),this._promises={}}consume(t,r=1,n={}){return new Promise((i,s)=>{let o=Ri.call(this,i,s);Ii.call(this,"consume",o,t,r,n)})}penalty(t,r=1,n={}){return new Promise((i,s)=>{let o=Ri.call(this,i,s);Ii.call(this,"penalty",o,t,r,n)})}reward(t,r=1,n={}){return new Promise((i,s)=>{let o=Ri.call(this,i,s);Ii.call(this,"reward",o,t,r,n)})}block(t,r,n={}){return new Promise((i,s)=>{let o=Ri.call(this,i,s);Ii.call(this,"block",o,t,r,n)})}get(t,r={}){return new Promise((n,i)=>{let s=Ri.call(this,n,i);Ii.call(this,"get",s,t,r)})}delete(t,r={}){return new Promise((n,i)=>{let s=Ri.call(this,n,i);Ii.call(this,"delete",s,t,r)})}};zm.exports={RateLimiterClusterMaster:Hl,RateLimiterClusterMasterPM2:zl,RateLimiterCluster:Gl}});var Wm=V((P6,Ym)=>{var Cv=Ai(),Tv=Ce(),Yl=class extends Cv{constructor(t){super(t),this.client=t.storeClient}_getRateLimiterRes(t,r,n){let i=new Tv;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(t,r,n,i=!1,s={}){return new Promise((o,a)=>{let c=Date.now(),u=Math.floor(n/1e3);i?this.client.set(t,r,u,l=>{l?a(l):this.client.set(`${t}_expire`,u>0?c+u*1e3:-1,u,()=>{let f={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(f)})}):this.client.incr(t,r,(l,f)=>{l||f===!1?this.client.add(t,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(t,r,n,i,d).then(m=>o(m)).catch(m=>a(m))}else a(new Error("Can not add key"));else this.client.add(`${t}_expire`,u>0?c+u*1e3:-1,u,()=>{let d={consumedPoints:r,msBeforeNext:u>0?u*1e3:-1};o(d)})}):this.client.get(`${t}_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(t){return new Promise((r,n)=>{let i=Date.now();this.client.get(t,(s,o)=>{o?this.client.get(`${t}_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(t){return new Promise((r,n)=>{this.client.del(t,(i,s)=>{i?n(i):s===!1?r(s):this.client.del(`${t}_expire`,o=>{o?n(o):r(s)})})})}};Ym.exports=Yl});var Zm=V((N6,Xm)=>{var Qm=Ce();Xm.exports=class{constructor(t={}){this.limiter=t.limiter,this.blackList=t.blackList,this.whiteList=t.whiteList,this.isBlackListed=t.isBlackListed,this.isWhiteListed=t.isWhiteListed,this.runActionAnyway=t.runActionAnyway}get limiter(){return this._limiter}set limiter(t){if(typeof t>"u")throw new Error("limiter is not set");this._limiter=t}get runActionAnyway(){return this._runActionAnyway}set runActionAnyway(t){this._runActionAnyway=typeof t>"u"?!1:t}get blackList(){return this._blackList}set blackList(t){this._blackList=Array.isArray(t)?t:[]}get isBlackListed(){return this._isBlackListed}set isBlackListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isBlackListed must be function");this._isBlackListed=t}get whiteList(){return this._whiteList}set whiteList(t){this._whiteList=Array.isArray(t)?t:[]}get isWhiteListed(){return this._isWhiteListed}set isWhiteListed(t){if(typeof t>"u"&&(t=()=>!1),typeof t!="function")throw new Error("isWhiteListed must be function");this._isWhiteListed=t}isBlackListedSomewhere(t){return this.blackList.indexOf(t)>=0||this.isBlackListed(t)}isWhiteListedSomewhere(t){return this.whiteList.indexOf(t)>=0||this.isWhiteListed(t)}getBlackRes(){return new Qm(0,Number.MAX_SAFE_INTEGER,0,!1)}getWhiteRes(){return new Qm(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(t,r=1){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.rejectBlack()),typeof n>"u"?this.limiter.consume(t,r):(this.runActionAnyway&&this.limiter.consume(t,r).catch(()=>{}),n)}block(t,r){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.block(t,r):(this.runActionAnyway&&this.limiter.block(t,r).catch(()=>{}),n)}penalty(t,r){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.penalty(t,r):(this.runActionAnyway&&this.limiter.penalty(t,r).catch(()=>{}),n)}reward(t,r){let n;return this.isWhiteListedSomewhere(t)?n=this.resolveWhite():this.isBlackListedSomewhere(t)&&(n=this.resolveBlack()),typeof n>"u"?this.limiter.reward(t,r):(this.runActionAnyway&&this.limiter.reward(t,r).catch(()=>{}),n)}get(t){let r;return this.isWhiteListedSomewhere(t)?r=this.resolveWhite():this.isBlackListedSomewhere(t)&&(r=this.resolveBlack()),typeof r>"u"||this.runActionAnyway?this.limiter.get(t):r}delete(t){return this.limiter.delete(t)}}});var jm=V((O6,Jm)=>{var Bv=_s();Jm.exports=class{constructor(...t){if(t.length<1)throw new Error("RateLimiterUnion: at least one limiter have to be passed");t.forEach(r=>{if(!(r instanceof Bv))throw new Error("RateLimiterUnion: all limiters have to be instance of RateLimiterAbstract")}),this._limiters=t}consume(t,r=1){return new Promise((n,i)=>{let s=[];this._limiters.forEach(o=>{s.push(o.consume(t,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 ey=V((U6,ty)=>{ty.exports=class extends Error{constructor(t,r){super(),Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.name="CustomError",this.message=t,r&&(this.extra=r)}}});var sy=V((K6,iy)=>{var ry=ey(),ny=4294967295,Wl="limiter";iy.exports=class{constructor(t,r={maxQueueSize:ny}){this._queueLimiters={KEY_DEFAULT:new da(t,r)},this._limiterFlexible=t,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(t=Wl){return this._queueLimiters[t]?this._queueLimiters[t].getTokensRemaining():Promise.resolve(this._limiterFlexible.points)}removeTokens(t,r=Wl){return this._queueLimiters[r]||(this._queueLimiters[r]=new da(this._limiterFlexible,{key:r,maxQueueSize:this._maxQueueSize})),this._queueLimiters[r].removeTokens(t)}};var da=class{constructor(t,r={maxQueueSize:ny,key:Wl}){this._key=r.key,this._waitTimeout=null,this._queue=[],this._limiterFlexible=t,this._maxQueueSize=r.maxQueueSize}getTokensRemaining(){return this._limiterFlexible.get(this._key).then(t=>t!==null?t.remainingPoints:this._limiterFlexible.points)}removeTokens(t){let r=this;return new Promise((n,i)=>{if(t>r._limiterFlexible.points){i(new ry(`Requested tokens ${t} exceeds maximum ${r._limiterFlexible.points} tokens per interval`));return}r._queue.length>0?r._queueRequest.call(r,n,i,t):r._limiterFlexible.consume(r._key,t).then(s=>{n(s.remainingPoints)}).catch(s=>{s instanceof Error?i(s):(r._queueRequest.call(r,n,i,t),r._waitTimeout===null&&(r._waitTimeout=setTimeout(r._processFIFO.bind(r),s.msBeforeNext)))})})}_queueRequest(t,r,n){let i=this;i._queue.length<i._maxQueueSize?i._queue.push({resolve:t,reject:r,tokens:n}):r(new ry(`Number of requests reached it's maximum ${i._maxQueueSize}`))}_processFIFO(){let t=this;if(t._waitTimeout!==null&&(clearTimeout(t._waitTimeout),t._waitTimeout=null),t._queue.length===0)return;let r=t._queue.shift();t._limiterFlexible.consume(t._key,r.tokens).then(n=>{r.resolve(n.remainingPoints),t._processFIFO.call(t)}).catch(n=>{n instanceof Error?(r.reject(n),t._processFIFO.call(t)):(t._queue.unshift(r),t._waitTimeout===null&&(t._waitTimeout=setTimeout(t._processFIFO.bind(t),n.msBeforeNext)))})}}});var ay=V((q6,oy)=>{var Ql=Ce();oy.exports=class{constructor(t,r){this._rateLimiter=t,this._burstLimiter=r}_combineRes(t,r){return t?new Ql(t.remainingPoints,Math.min(t.msBeforeNext,r?r.msBeforeNext:0),t.consumedPoints,t.isFirstInDuration):null}consume(t,r=1,n={}){return this._rateLimiter.consume(t,r,n).catch(i=>i instanceof Ql?this._burstLimiter.consume(t,r,n).then(s=>Promise.resolve(this._combineRes(i,s))).catch(s=>s instanceof Ql?Promise.reject(this._combineRes(i,s)):Promise.reject(s)):Promise.reject(i))}get(t){return Promise.all([this._rateLimiter.get(t),this._burstLimiter.get(t)]).then(([r,n])=>this._combineRes(r,n))}get points(){return this._rateLimiter.points}}});var uy=V(($6,cy)=>{var Lv=Am(),Pv=Cm(),Dv=Bm(),Nv=Pm(),{RateLimiterClusterMaster:kv,RateLimiterClusterMasterPM2:Ov,RateLimiterCluster:Mv}=Gm(),Uv=$l(),Fv=Wm(),Kv=Zm(),Vv=jm(),qv=sy(),$v=ay(),Hv=Ce();cy.exports={RateLimiterRedis:Lv,RateLimiterMongo:Pv,RateLimiterMySQL:Dv,RateLimiterPostgres:Nv,RateLimiterMemory:Uv,RateLimiterMemcache:Fv,RateLimiterClusterMaster:kv,RateLimiterClusterMasterPM2:Ov,RateLimiterCluster:Mv,RLWrapperBlackAndWhite:Kv,RateLimiterUnion:Vv,RateLimiterQueue:qv,BurstyRateLimiter:$v,RateLimiterRes:Hv}});var __={};Gt(__,{createLibp2p:()=>v_});var JR=yt(Mi(),1),jR=yt(M0(),1);var Gn=class e extends Error{code;type;constructor(t="The operation was aborted"){super(t),this.code=e.code,this.type=e.type}static code="ABORT_ERR";static type="aborted"},w=class extends Error{code;props;constructor(t,r,n){super(t),this.code=r,this.name=n?.name??"CodeError",this.props=n??{}}};var wo=yt(dt(),1);function un(e){return globalThis.Buffer!=null?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e}var fc={};Gt(fc,{base10:()=>g1});function h1(e,t){if(e.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<e.length;i++){var s=e.charAt(i),o=s.charCodeAt(0);if(r[o]!==255)throw new TypeError(s+" is ambiguous");r[o]=i}var a=e.length,c=e.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,y=0,g=0,x=d.length;g!==x&&d[g]===0;)g++,m++;for(var b=(x-g)*l+1>>>0,C=new Uint8Array(b);g!==x;){for(var _=d[g],S=0,P=b-1;(_!==0||S<y)&&P!==-1;P--,S++)_+=256*C[P]>>>0,C[P]=_%a>>>0,_=_/a>>>0;if(_!==0)throw new Error("Non-zero carry");y=S,g++}for(var D=b-y;D!==b&&C[D]===0;)D++;for(var Y=c.repeat(m);D<b;++D)Y+=e.charAt(C[D]);return Y}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 y=0,g=0;d[m]===c;)y++,m++;for(var x=(d.length-m)*u+1>>>0,b=new Uint8Array(x);d[m];){var C=r[d.charCodeAt(m)];if(C===255)return;for(var _=0,S=x-1;(C!==0||_<g)&&S!==-1;S--,_++)C+=a*b[S]>>>0,b[S]=C%256>>>0,C=C/256>>>0;if(C!==0)throw new Error("Non-zero carry");g=_,m++}if(d[m]!==" "){for(var P=x-g;P!==x&&b[P]===0;)P++;for(var D=new Uint8Array(y+(x-P)),Y=y;P!==x;)D[Y++]=b[P++];return D}}}function p(d){var m=h(d);if(m)return m;throw new Error(`Non-${t} character`)}return{encode:f,decodeUnsafe:h,decode:p}}var d1=h1,p1=d1,U0=p1;var j_=new Uint8Array(0);var F0=(e,t)=>{if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0},fr=e=>{if(e instanceof Uint8Array&&e.constructor.name==="Uint8Array")return e;if(e instanceof ArrayBuffer)return new Uint8Array(e);if(ArrayBuffer.isView(e))return new Uint8Array(e.buffer,e.byteOffset,e.byteLength);throw new Error("Unknown type, must be binary type")};var K0=e=>new TextEncoder().encode(e),V0=e=>new TextDecoder().decode(e);var ac=class{constructor(t,r,n){this.name=t,this.prefix=r,this.baseEncode=n}encode(t){if(t instanceof Uint8Array)return`${this.prefix}${this.baseEncode(t)}`;throw Error("Unknown type, must be binary type")}},cc=class{constructor(t,r,n){if(this.name=t,this.prefix=r,r.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=r.codePointAt(0),this.baseDecode=n}decode(t){if(typeof t=="string"){if(t.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(t)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(t.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(t){return $0(this,t)}},uc=class{constructor(t){this.decoders=t}or(t){return $0(this,t)}decode(t){let r=t[0],n=this.decoders[r];if(n)return n.decode(t);throw RangeError(`Unable to decode multibase string ${JSON.stringify(t)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}},$0=(e,t)=>new uc({...e.decoders||{[e.prefix]:e},...t.decoders||{[t.prefix]:t}}),lc=class{constructor(t,r,n,i){this.name=t,this.prefix=r,this.baseEncode=n,this.baseDecode=i,this.encoder=new ac(t,r,n),this.decoder=new cc(t,r,i)}encode(t){return this.encoder.encode(t)}decode(t){return this.decoder.decode(t)}},Yn=({name:e,prefix:t,encode:r,decode:n})=>new lc(e,t,r,n),Pr=({prefix:e,name:t,alphabet:r})=>{let{encode:n,decode:i}=U0(r,t);return Yn({prefix:e,name:t,encode:n,decode:s=>fr(i(s))})},m1=(e,t,r,n)=>{let i={};for(let l=0;l<t.length;++l)i[t[l]]=l;let s=e.length;for(;e[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[e[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},y1=(e,t,r)=>{let n=t[t.length-1]==="=",i=(1<<r)-1,s="",o=0,a=0;for(let c=0;c<e.length;++c)for(a=a<<8|e[c],o+=8;o>r;)o-=r,s+=t[i&a>>o];if(o&&(s+=t[i&a<<r-o]),n)for(;s.length*r&7;)s+="=";return s},Pt=({name:e,prefix:t,bitsPerChar:r,alphabet:n})=>Yn({prefix:t,name:e,encode(i){return y1(i,n,r)},decode(i){return m1(i,n,r,e)}});var g1=Pr({prefix:"9",name:"base10",alphabet:"0123456789"});var hc={};Gt(hc,{base16:()=>x1,base16upper:()=>E1});var x1=Pt({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),E1=Pt({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var dc={};Gt(dc,{base2:()=>b1});var b1=Pt({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var pc={};Gt(pc,{base256emoji:()=>A1});var H0=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}"),w1=H0.reduce((e,t,r)=>(e[r]=t,e),[]),v1=H0.reduce((e,t,r)=>(e[t.codePointAt(0)]=r,e),[]);function _1(e){return e.reduce((t,r)=>(t+=w1[r],t),"")}function S1(e){let t=[];for(let r of e){let n=v1[r.codePointAt(0)];if(n===void 0)throw new Error(`Non-base256emoji character: ${r}`);t.push(n)}return new Uint8Array(t)}var A1=Yn({prefix:"\u{1F680}",name:"base256emoji",encode:_1,decode:S1});var mc={};Gt(mc,{base32:()=>Ee,base32hex:()=>T1,base32hexpad:()=>L1,base32hexpadupper:()=>P1,base32hexupper:()=>B1,base32pad:()=>R1,base32padupper:()=>C1,base32upper:()=>I1,base32z:()=>D1});var Ee=Pt({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),I1=Pt({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),R1=Pt({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),C1=Pt({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),T1=Pt({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),B1=Pt({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),L1=Pt({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),P1=Pt({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),D1=Pt({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var yc={};Gt(yc,{base36:()=>N1,base36upper:()=>k1});var N1=Pr({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),k1=Pr({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var gc={};Gt(gc,{base58btc:()=>Ct,base58flickr:()=>O1});var Ct=Pr({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),O1=Pr({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var Ec={};Gt(Ec,{base64:()=>ln,base64pad:()=>M1,base64url:()=>xc,base64urlpad:()=>U1});var ln=Pt({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),M1=Pt({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),xc=Pt({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),U1=Pt({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var bc={};Gt(bc,{base8:()=>F1});var F1=Pt({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var wc={};Gt(wc,{identity:()=>K1});var K1=Yn({prefix:"\0",name:"identity",encode:e=>V0(e),decode:e=>K0(e)});var pS=new TextEncoder,mS=new TextDecoder;var _c={};Gt(_c,{identity:()=>Dr});var $1=Y0,z0=128,H1=127,z1=~H1,G1=Math.pow(2,31);function Y0(e,t,r){t=t||[],r=r||0;for(var n=r;e>=G1;)t[r++]=e&255|z0,e/=128;for(;e&z1;)t[r++]=e&255|z0,e>>>=7;return t[r]=e|0,Y0.bytes=r-n+1,t}var Y1=vc,W1=128,G0=127;function vc(e,n){var r=0,n=n||0,i=0,s=n,o,a=e.length;do{if(s>=a)throw vc.bytes=0,new RangeError("Could not decode varint");o=e[s++],r+=i<28?(o&G0)<<i:(o&G0)*Math.pow(2,i),i+=7}while(o>=W1);return vc.bytes=s-n,r}var Q1=Math.pow(2,7),X1=Math.pow(2,14),Z1=Math.pow(2,21),J1=Math.pow(2,28),j1=Math.pow(2,35),t2=Math.pow(2,42),e2=Math.pow(2,49),r2=Math.pow(2,56),n2=Math.pow(2,63),i2=function(e){return e<Q1?1:e<X1?2:e<Z1?3:e<J1?4:e<j1?5:e<t2?6:e<e2?7:e<r2?8:e<n2?9:10},s2={encode:$1,decode:Y1,encodingLength:i2},o2=s2,Vi=o2;var qi=(e,t=0)=>[Vi.decode(e,t),Vi.decode.bytes],Wn=(e,t,r=0)=>(Vi.encode(e,t,r),t),Qn=e=>Vi.encodingLength(e);var Je=(e,t)=>{let r=t.byteLength,n=Qn(e),i=n+Qn(r),s=new Uint8Array(i+r);return Wn(e,s,0),Wn(r,s,n),s.set(t,i),new Xn(e,r,t,s)},fn=e=>{let t=fr(e),[r,n]=qi(t),[i,s]=qi(t.subarray(n)),o=t.subarray(n+s);if(o.byteLength!==i)throw new Error("Incorrect length");return new Xn(r,i,o,t)},W0=(e,t)=>{if(e===t)return!0;{let r=t;return e.code===r.code&&e.size===r.size&&r.bytes instanceof Uint8Array&&F0(e.bytes,r.bytes)}},Xn=class{constructor(t,r,n,i){this.code=t,this.size=r,this.digest=n,this.bytes=i}};var Q0=0,a2="identity",X0=fr,c2=e=>Je(Q0,X0(e)),Dr={code:Q0,name:a2,encode:X0,digest:c2};var Ic={};Gt(Ic,{sha256:()=>ee,sha512:()=>u2});var Ac=({name:e,code:t,encode:r})=>new Sc(e,t,r),Sc=class{constructor(t,r,n){this.name=t,this.code=r,this.encode=n}digest(t){if(t instanceof Uint8Array){let r=this.encode(t);return r instanceof Uint8Array?Je(this.code,r):r.then(n=>Je(this.code,n))}else throw Error("Unknown type, must be binary type")}};var J0=e=>async t=>new Uint8Array(await crypto.subtle.digest(e,t)),ee=Ac({name:"sha2-256",code:18,encode:J0("SHA-256")}),u2=Ac({name:"sha2-512",code:19,encode:J0("SHA-512")});var j0=(e,t)=>{let{bytes:r,version:n}=e;switch(n){case 0:return f2(r,Rc(e),t||Ct.encoder);default:return h2(r,Rc(e),t||Ee.encoder)}};var th=new WeakMap,Rc=e=>{let t=th.get(e);if(t==null){let r=new Map;return th.set(e,r),r}return t},Ue=class e{constructor(t,r,n,i){this.code=r,this.version=t,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:t,multihash:r}=this;if(t!==$i)throw new Error("Cannot convert a non dag-pb CID to CIDv0");if(r.code!==d2)throw new Error("Cannot convert non sha2-256 multihash CID to CIDv0");return e.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:t,digest:r}=this.multihash,n=Je(t,r);return e.createV1(this.code,n)}case 1:return this;default:throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`)}}equals(t){return e.equals(this,t)}static equals(t,r){let n=r;return n&&t.code===n.code&&t.version===n.version&&W0(t.multihash,n.multihash)}toString(t){return j0(this,t)}toJSON(){return{"/":j0(this)}}link(){return this}get[Symbol.toStringTag](){return"CID"}[Symbol.for("nodejs.util.inspect.custom")](){return`CID(${this.toString()})`}static asCID(t){if(t==null)return null;let r=t;if(r instanceof e)return r;if(r["/"]!=null&&r["/"]===r.bytes||r.asCID===r){let{version:n,code:i,multihash:s,bytes:o}=r;return new e(n,i,s,o||eh(n,i,s.bytes))}else if(r[p2]===!0){let{version:n,multihash:i,code:s}=r,o=fn(i);return e.create(n,s,o)}else return null}static create(t,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(t){case 0:{if(r!==$i)throw new Error(`Version 0 CID must use dag-pb (code: ${$i}) block encoding`);return new e(t,r,n,n.bytes)}case 1:{let i=eh(t,r,n.bytes);return new e(t,r,n,i)}default:throw new Error("Invalid version")}}static createV0(t){return e.create(0,$i,t)}static createV1(t,r){return e.create(1,t,r)}static decode(t){let[r,n]=e.decodeFirst(t);if(n.length)throw new Error("Incorrect length");return r}static decodeFirst(t){let r=e.inspectBytes(t),n=r.size-r.multihashSize,i=fr(t.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 Xn(r.multihashCode,r.digestSize,s,i);return[r.version===0?e.createV0(o):e.createV1(r.codec,o),t.subarray(r.size)]}static inspectBytes(t){let r=0,n=()=>{let[f,h]=qi(t.subarray(r));return r+=h,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(t,r){let[n,i]=l2(t,r),s=e.decode(i);if(s.version===0&&t[0]!=="Q")throw Error("Version 0 CID string must not include multibase prefix");return Rc(s).set(n,t),s}},l2=(e,t)=>{switch(e[0]){case"Q":{let r=t||Ct;return[Ct.prefix,r.decode(`${Ct.prefix}${e}`)]}case Ct.prefix:{let r=t||Ct;return[Ct.prefix,r.decode(e)]}case Ee.prefix:{let r=t||Ee;return[Ee.prefix,r.decode(e)]}default:{if(t==null)throw Error("To parse non base32 or base58btc encoded CID multibase decoder must be provided");return[e[0],t.decode(e)]}}},f2=(e,t,r)=>{let{prefix:n}=r;if(n!==Ct.prefix)throw Error(`Cannot string encode V0 in ${r.name} encoding`);let i=t.get(n);if(i==null){let s=r.encode(e).slice(1);return t.set(n,s),s}else return i},h2=(e,t,r)=>{let{prefix:n}=r,i=t.get(n);if(i==null){let s=r.encode(e);return t.set(n,s),s}else return i},$i=112,d2=18,eh=(e,t,r)=>{let n=Qn(e),i=n+Qn(t),s=new Uint8Array(i+r.byteLength);return Wn(e,s,0),Wn(t,s,n),s.set(r,i),s},p2=Symbol.for("@ipld/js-cid/CID");var Nr={...wc,...dc,...bc,...fc,...hc,...mc,...yc,...gc,...Ec,...pc},LS={...Ic,..._c};function hr(e=0){return globalThis.Buffer?.alloc!=null?un(globalThis.Buffer.alloc(e)):new Uint8Array(e)}function ae(e=0){return globalThis.Buffer?.allocUnsafe!=null?un(globalThis.Buffer.allocUnsafe(e)):new Uint8Array(e)}function nh(e,t,r,n){return{name:e,prefix:t,encoder:{name:e,prefix:t,encode:r},decoder:{decode:n}}}var rh=nh("utf8","u",e=>"u"+new TextDecoder("utf8").decode(e),e=>new TextEncoder().encode(e.substring(1))),Cc=nh("ascii","a",e=>{let t="a";for(let r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},e=>{e=e.substring(1);let t=ae(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}),m2={utf8:rh,"utf-8":rh,hex:Nr.base16,latin1:Cc,ascii:Cc,binary:Cc,...Nr},js=m2;function z(e,t="utf8"){let r=js[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?un(globalThis.Buffer.from(e,"utf-8")):r.decoder.decode(`${r.prefix}${e}`)}var su={};Gt(su,{Ed25519PrivateKey:()=>xn,Ed25519PublicKey:()=>Xi,generateKeyPair:()=>BE,generateKeyPairFromSeed:()=>Oh,unmarshalEd25519PrivateKey:()=>CE,unmarshalEd25519PublicKey:()=>TE});function Tt(e,t){if(e===t)return!0;if(e.byteLength!==t.byteLength)return!1;for(let r=0;r<e.byteLength;r++)if(e[r]!==t[r])return!1;return!0}function ih(e){if(!Number.isSafeInteger(e)||e<0)throw new Error(`Wrong positive integer: ${e}`)}function Tc(e,...t){if(!(e instanceof Uint8Array))throw new Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw new Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function sh(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.wrapConstructor");ih(e.outputLen),ih(e.blockLen)}function Zn(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function oh(e,t){Tc(e);let r=t.outputLen;if(e.length<r)throw new Error(`digestInto() expects output buffer of length at least ${r}`)}var to=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;var ah=e=>e instanceof Uint8Array;var eo=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),Fe=(e,t)=>e<<32-t|e>>>t,y2=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;if(!y2)throw new Error("Non little-endian hardware is not supported");function Bc(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function Hi(e){if(typeof e=="string"&&(e=Bc(e)),!ah(e))throw new Error(`expected Uint8Array, got ${typeof e}`);return e}function ro(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!ah(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}var Jn=class{clone(){return this._cloneInto()}},zS={}.toString;function no(e){let t=n=>e().update(Hi(n)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function jn(e=32){if(to&&typeof to.getRandomValues=="function")return to.getRandomValues(new Uint8Array(e));throw new Error("crypto.getRandomValues must be defined")}function g2(e,t,r,n){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,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;e.setUint32(t+c,o,n),e.setUint32(t+u,a,n)}var ti=class extends Jn{constructor(t,r,n,i){super(),this.blockLen=t,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(t),this.view=eo(this.buffer)}update(t){Zn(this);let{view:r,buffer:n,blockLen:i}=this;t=Hi(t);let s=t.length;for(let o=0;o<s;){let a=Math.min(i-this.pos,s-o);if(a===i){let c=eo(t);for(;i<=s-o;o+=i)this.process(c,o);continue}n.set(t.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(r,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){Zn(this),oh(t,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;g2(n,i-8,BigInt(this.length*8),s),this.process(n,0);let a=eo(t),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:t,outputLen:r}=this;this.digestInto(t);let n=t.slice(0,r);return this.destroy(),n}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());let{blockLen:r,buffer:n,length:i,finished:s,destroyed:o,pos:a}=this;return t.length=i,t.pos=a,t.finished=s,t.destroyed=o,i%r&&t.buffer.set(n),t}};var io=BigInt(4294967295),Lc=BigInt(32);function ch(e,t=!1){return t?{h:Number(e&io),l:Number(e>>Lc&io)}:{h:Number(e>>Lc&io)|0,l:Number(e&io)|0}}function x2(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let i=0;i<e.length;i++){let{h:s,l:o}=ch(e[i],t);[r[i],n[i]]=[s,o]}return[r,n]}var E2=(e,t)=>BigInt(e>>>0)<<Lc|BigInt(t>>>0),b2=(e,t,r)=>e>>>r,w2=(e,t,r)=>e<<32-r|t>>>r,v2=(e,t,r)=>e>>>r|t<<32-r,_2=(e,t,r)=>e<<32-r|t>>>r,S2=(e,t,r)=>e<<64-r|t>>>r-32,A2=(e,t,r)=>e>>>r-32|t<<64-r,I2=(e,t)=>t,R2=(e,t)=>e,C2=(e,t,r)=>e<<r|t>>>32-r,T2=(e,t,r)=>t<<r|e>>>32-r,B2=(e,t,r)=>t<<r-32|e>>>64-r,L2=(e,t,r)=>e<<r-32|t>>>64-r;function P2(e,t,r,n){let i=(t>>>0)+(n>>>0);return{h:e+r+(i/2**32|0)|0,l:i|0}}var D2=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),N2=(e,t,r,n)=>t+r+n+(e/2**32|0)|0,k2=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),O2=(e,t,r,n,i)=>t+r+n+i+(e/2**32|0)|0,M2=(e,t,r,n,i)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(i>>>0),U2=(e,t,r,n,i,s)=>t+r+n+i+s+(e/2**32|0)|0;var F2={fromBig:ch,split:x2,toBig:E2,shrSH:b2,shrSL:w2,rotrSH:v2,rotrSL:_2,rotrBH:S2,rotrBL:A2,rotr32H:I2,rotr32L:R2,rotlSH:C2,rotlSL:T2,rotlBH:B2,rotlBL:L2,add:P2,add3L:D2,add3H:N2,add4L:k2,add4H:O2,add5H:U2,add5L:M2},J=F2;var[K2,V2]=(()=>J.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(e=>BigInt(e))))(),kr=new Uint32Array(80),Or=new Uint32Array(80),Pc=class extends ti{constructor(){super(128,64,16,!1),this.Ah=1779033703,this.Al=-205731576,this.Bh=-1150833019,this.Bl=-2067093701,this.Ch=1013904242,this.Cl=-23791573,this.Dh=-1521486534,this.Dl=1595750129,this.Eh=1359893119,this.El=-1377402159,this.Fh=-1694144372,this.Fl=725511199,this.Gh=528734635,this.Gl=-79577749,this.Hh=1541459225,this.Hl=327033209}get(){let{Ah:t,Al: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:y}=this;return[t,r,n,i,s,o,a,c,u,l,f,h,p,d,m,y]}set(t,r,n,i,s,o,a,c,u,l,f,h,p,d,m,y){this.Ah=t|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=y|0}process(t,r){for(let b=0;b<16;b++,r+=4)kr[b]=t.getUint32(r),Or[b]=t.getUint32(r+=4);for(let b=16;b<80;b++){let C=kr[b-15]|0,_=Or[b-15]|0,S=J.rotrSH(C,_,1)^J.rotrSH(C,_,8)^J.shrSH(C,_,7),P=J.rotrSL(C,_,1)^J.rotrSL(C,_,8)^J.shrSL(C,_,7),D=kr[b-2]|0,Y=Or[b-2]|0,W=J.rotrSH(D,Y,19)^J.rotrBH(D,Y,61)^J.shrSH(D,Y,6),H=J.rotrSL(D,Y,19)^J.rotrBL(D,Y,61)^J.shrSL(D,Y,6),et=J.add4L(P,H,Or[b-7],Or[b-16]),mt=J.add4H(et,S,W,kr[b-7],kr[b-16]);kr[b]=mt|0,Or[b]=et|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:y,Hh:g,Hl:x}=this;for(let b=0;b<80;b++){let C=J.rotrSH(f,h,14)^J.rotrSH(f,h,18)^J.rotrBH(f,h,41),_=J.rotrSL(f,h,14)^J.rotrSL(f,h,18)^J.rotrBL(f,h,41),S=f&p^~f&m,P=h&d^~h&y,D=J.add5L(x,_,P,V2[b],Or[b]),Y=J.add5H(D,g,C,S,K2[b],kr[b]),W=D|0,H=J.rotrSH(n,i,28)^J.rotrBH(n,i,34)^J.rotrBH(n,i,39),et=J.rotrSL(n,i,28)^J.rotrBL(n,i,34)^J.rotrBL(n,i,39),mt=n&s^n&a^s&a,Jt=i&o^i&c^o&c;g=m|0,x=y|0,m=p|0,y=d|0,p=f|0,d=h|0,{h:f,l:h}=J.add(u|0,l|0,Y|0,W|0),u=a|0,l=c|0,a=s|0,c=o|0,s=n|0,o=i|0;let T=J.add3L(W,et,Jt);n=J.add3H(T,Y,H,mt),i=T|0}({h:n,l:i}=J.add(this.Ah|0,this.Al|0,n|0,i|0)),{h:s,l:o}=J.add(this.Bh|0,this.Bl|0,s|0,o|0),{h:a,l:c}=J.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l}=J.add(this.Dh|0,this.Dl|0,u|0,l|0),{h:f,l:h}=J.add(this.Eh|0,this.El|0,f|0,h|0),{h:p,l:d}=J.add(this.Fh|0,this.Fl|0,p|0,d|0),{h:m,l:y}=J.add(this.Gh|0,this.Gl|0,m|0,y|0),{h:g,l:x}=J.add(this.Hh|0,this.Hl|0,g|0,x|0),this.set(n,i,s,o,a,c,u,l,f,h,p,d,m,y,g,x)}roundClean(){kr.fill(0),Or.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 Dc=no(()=>new Pc);var ao={};Gt(ao,{bitGet:()=>W2,bitLen:()=>Y2,bitMask:()=>zi,bitSet:()=>Q2,bytesToHex:()=>dr,bytesToNumberBE:()=>pr,bytesToNumberLE:()=>Mr,concatBytes:()=>mr,createHmacDrbg:()=>Oc,ensureBytes:()=>Dt,equalBytes:()=>z2,hexToBytes:()=>dn,hexToNumber:()=>kc,numberToBytesBE:()=>Ur,numberToBytesLE:()=>pn,numberToHexUnpadded:()=>fh,numberToVarBytesBE:()=>H2,utf8ToBytes:()=>G2,validateObject:()=>je});var lh=BigInt(0),so=BigInt(1),q2=BigInt(2),oo=e=>e instanceof Uint8Array,$2=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function dr(e){if(!oo(e))throw new Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=$2[e[r]];return t}function fh(e){let t=e.toString(16);return t.length&1?`0${t}`:t}function kc(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return BigInt(e===""?"0":`0x${e}`)}function dn(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);let t=e.length;if(t%2)throw new Error("padded hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(t/2);for(let n=0;n<r.length;n++){let i=n*2,s=e.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 pr(e){return kc(dr(e))}function Mr(e){if(!oo(e))throw new Error("Uint8Array expected");return kc(dr(Uint8Array.from(e).reverse()))}function Ur(e,t){return dn(e.toString(16).padStart(t*2,"0"))}function pn(e,t){return Ur(e,t).reverse()}function H2(e){return dn(fh(e))}function Dt(e,t,r){let n;if(typeof t=="string")try{n=dn(t)}catch(s){throw new Error(`${e} must be valid hex string, got "${t}". Cause: ${s}`)}else if(oo(t))n=Uint8Array.from(t);else throw new Error(`${e} must be hex string or Uint8Array`);let i=n.length;if(typeof r=="number"&&i!==r)throw new Error(`${e} expected ${r} bytes, got ${i}`);return n}function mr(...e){let t=new Uint8Array(e.reduce((n,i)=>n+i.length,0)),r=0;return e.forEach(n=>{if(!oo(n))throw new Error("Uint8Array expected");t.set(n,r),r+=n.length}),t}function z2(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function G2(e){if(typeof e!="string")throw new Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function Y2(e){let t;for(t=0;e>lh;e>>=so,t+=1);return t}function W2(e,t){return e>>BigInt(t)&so}var Q2=(e,t,r)=>e|(r?so:lh)<<BigInt(t),zi=e=>(q2<<BigInt(e-1))-so,Nc=e=>new Uint8Array(e),uh=e=>Uint8Array.from(e);function Oc(e,t,r){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof r!="function")throw new Error("hmacFn must be a function");let n=Nc(e),i=Nc(e),s=0,o=()=>{n.fill(1),i.fill(0),s=0},a=(...f)=>r(i,n,...f),c=(f=Nc())=>{i=a(uh([0]),f),n=a(),f.length!==0&&(i=a(uh([1]),f),n=a())},u=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let f=0,h=[];for(;f<t;){n=a();let p=n.slice();h.push(p),f+=n.length}return mr(...h)};return(f,h)=>{o(),c(f);let p;for(;!(p=h(u()));)c();return o(),p}}var X2={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||e instanceof Uint8Array,isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function je(e,t,r={}){let n=(i,s,o)=>{let a=X2[s];if(typeof a!="function")throw new Error(`Invalid validator "${s}", expected function`);let c=e[i];if(!(o&&c===void 0)&&!a(c,e))throw new Error(`Invalid param ${String(i)}=${c} (${typeof c}), expected ${s}`)};for(let[i,s]of Object.entries(t))n(i,s,!1);for(let[i,s]of Object.entries(r))n(i,s,!0);return e}var $t=BigInt(0),At=BigInt(1),mn=BigInt(2),Z2=BigInt(3),Mc=BigInt(4),hh=BigInt(5),dh=BigInt(8),J2=BigInt(9),j2=BigInt(16);function gt(e,t){let r=e%t;return r>=$t?r:t+r}function tE(e,t,r){if(r<=$t||t<$t)throw new Error("Expected power/modulo > 0");if(r===At)return $t;let n=At;for(;t>$t;)t&At&&(n=n*e%r),e=e*e%r,t>>=At;return n}function It(e,t,r){let n=e;for(;t-- >$t;)n*=n,n%=r;return n}function co(e,t){if(e===$t||t<=$t)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=gt(e,t),n=t,i=$t,s=At,o=At,a=$t;for(;r!==$t;){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!==At)throw new Error("invert: does not exist");return gt(i,t)}function eE(e){let t=(e-At)/mn,r,n,i;for(r=e-At,n=0;r%mn===$t;r/=mn,n++);for(i=mn;i<e&&tE(i,t,e)!==e-At;i++);if(n===1){let o=(e+At)/Mc;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+At)/mn;return function(a,c){if(a.pow(c,t)===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,At<<BigInt(u-p-1));l=a.sqr(d),f=a.mul(f,d),h=a.mul(h,l),u=p}return f}}function rE(e){if(e%Mc===Z2){let t=(e+At)/Mc;return function(n,i){let s=n.pow(i,t);if(!n.eql(n.sqr(s),i))throw new Error("Cannot find square root");return s}}if(e%dh===hh){let t=(e-hh)/dh;return function(n,i){let s=n.mul(i,mn),o=n.pow(s,t),a=n.mul(i,o),c=n.mul(n.mul(a,mn),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 e%j2,eE(e)}var ph=(e,t)=>(gt(e,t)&At)===At,nE=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Uc(e){let t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},r=nE.reduce((n,i)=>(n[i]="function",n),t);return je(e,r)}function iE(e,t,r){if(r<$t)throw new Error("Expected power > 0");if(r===$t)return e.ONE;if(r===At)return t;let n=e.ONE,i=t;for(;r>$t;)r&At&&(n=e.mul(n,i)),i=e.sqr(i),r>>=At;return n}function sE(e,t){let r=new Array(t.length),n=t.reduce((s,o,a)=>e.is0(o)?s:(r[a]=s,e.mul(s,o)),e.ONE),i=e.inv(n);return t.reduceRight((s,o,a)=>e.is0(o)?s:(r[a]=e.mul(s,r[a]),e.mul(s,o)),i),r}function Fc(e,t){let r=t!==void 0?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function uo(e,t,r=!1,n={}){if(e<=$t)throw new Error(`Expected Field ORDER > 0, got ${e}`);let{nBitLength:i,nByteLength:s}=Fc(e,t);if(s>2048)throw new Error("Field lengths over 2048 bytes are not supported");let o=rE(e),a=Object.freeze({ORDER:e,BITS:i,BYTES:s,MASK:zi(i),ZERO:$t,ONE:At,create:c=>gt(c,e),isValid:c=>{if(typeof c!="bigint")throw new Error(`Invalid field element: expected bigint, got ${typeof c}`);return $t<=c&&c<e},is0:c=>c===$t,isOdd:c=>(c&At)===At,neg:c=>gt(-c,e),eql:(c,u)=>c===u,sqr:c=>gt(c*c,e),add:(c,u)=>gt(c+u,e),sub:(c,u)=>gt(c-u,e),mul:(c,u)=>gt(c*u,e),pow:(c,u)=>iE(a,c,u),div:(c,u)=>gt(c*co(u,e),e),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>co(c,e),sqrt:n.sqrt||(c=>o(a,c)),invertBatch:c=>sE(a,c),cmov:(c,u,l)=>l?u:c,toBytes:c=>r?pn(c,s):Ur(c,s),fromBytes:c=>{if(c.length!==s)throw new Error(`Fp.fromBytes: expected ${s}, got ${c.length}`);return r?Mr(c):pr(c)}});return Object.freeze(a)}function mh(e,t){if(!e.isOdd)throw new Error("Field doesn't have isOdd");let r=e.sqrt(t);return e.isOdd(r)?e.neg(r):r}function yh(e){if(typeof e!="bigint")throw new Error("field order must be bigint");let t=e.toString(2).length;return Math.ceil(t/8)}function Kc(e){let t=yh(e);return t+Math.ceil(t/2)}function gh(e,t,r=!1){let n=e.length,i=yh(t),s=Kc(t);if(n<16||n<s||n>1024)throw new Error(`expected ${s}-1024 bytes of input, got ${n}`);let o=r?pr(e):Mr(e),a=gt(o,t-At)+At;return r?pn(a,i):Ur(a,i)}var aE=BigInt(0),Vc=BigInt(1);function lo(e,t){let r=(i,s)=>{let o=s.negate();return i?o:s},n=i=>{let s=Math.ceil(t/i)+1,o=2**(i-1);return{windows:s,windowSize:o}};return{constTimeNegate:r,unsafeLadder(i,s){let o=e.ZERO,a=i;for(;s>aE;)s&Vc&&(o=o.add(a)),a=a.double(),s>>=Vc;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=e.ZERO,l=e.BASE,f=BigInt(2**i-1),h=2**i,p=BigInt(i);for(let d=0;d<a;d++){let m=d*c,y=Number(o&f);o>>=p,y>c&&(y-=h,o+=Vc);let g=m,x=m+Math.abs(y)-1,b=d%2!==0,C=y<0;y===0?l=l.add(r(b,s[g])):u=u.add(r(C,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 Gi(e){return Uc(e.Fp),je(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Fc(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}var Ke=BigInt(0),be=BigInt(1),fo=BigInt(2),cE=BigInt(8),uE={zip215:!0};function lE(e){let t=Gi(e);return je(e,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...t})}function ho(e){let t=lE(e),{Fp:r,n,prehash:i,hash:s,randomBytes:o,nByteLength:a,h:c}=t,u=fo<<BigInt(a*8)-be,l=r.create,f=t.uvRatio||((N,I)=>{try{return{isValid:!0,value:r.sqrt(N*r.inv(I))}}catch{return{isValid:!1,value:Ke}}}),h=t.adjustScalarBytes||(N=>N),p=t.domain||((N,I,U)=>{if(I.length||U)throw new Error("Contexts/pre-hash are not supported");return N}),d=N=>typeof N=="bigint"&&Ke<N,m=(N,I)=>d(N)&&d(I)&&N<I,y=N=>N===Ke||m(N,u);function g(N,I){if(m(N,I))return N;throw new Error(`Expected valid scalar < ${I}, got ${typeof N} ${N}`)}function x(N){return N===Ke?N:g(N,n)}let b=new Map;function C(N){if(!(N instanceof _))throw new Error("ExtendedPoint expected")}class _{constructor(I,U,q,G){if(this.ex=I,this.ey=U,this.ez=q,this.et=G,!y(I))throw new Error("x required");if(!y(U))throw new Error("y required");if(!y(q))throw new Error("z required");if(!y(G))throw new Error("t required")}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(I){if(I instanceof _)throw new Error("extended point not allowed");let{x:U,y:q}=I||{};if(!y(U)||!y(q))throw new Error("invalid affine point");return new _(U,q,be,l(U*q))}static normalizeZ(I){let U=r.invertBatch(I.map(q=>q.ez));return I.map((q,G)=>q.toAffine(U[G])).map(_.fromAffine)}_setWindowSize(I){this._WINDOW_SIZE=I,b.delete(this)}assertValidity(){let{a:I,d:U}=t;if(this.is0())throw new Error("bad point: ZERO");let{ex:q,ey:G,ez:j,et:nt}=this,ht=l(q*q),it=l(G*G),ct=l(j*j),Ft=l(ct*ct),Lt=l(ht*I),jt=l(ct*l(Lt+it)),te=l(Ft+l(U*l(ht*it)));if(jt!==te)throw new Error("bad point: equation left != right (1)");let qt=l(q*G),oe=l(j*nt);if(qt!==oe)throw new Error("bad point: equation left != right (2)")}equals(I){C(I);let{ex:U,ey:q,ez:G}=this,{ex:j,ey:nt,ez:ht}=I,it=l(U*ht),ct=l(j*G),Ft=l(q*ht),Lt=l(nt*G);return it===ct&&Ft===Lt}is0(){return this.equals(_.ZERO)}negate(){return new _(l(-this.ex),this.ey,this.ez,l(-this.et))}double(){let{a:I}=t,{ex:U,ey:q,ez:G}=this,j=l(U*U),nt=l(q*q),ht=l(fo*l(G*G)),it=l(I*j),ct=U+q,Ft=l(l(ct*ct)-j-nt),Lt=it+nt,jt=Lt-ht,te=it-nt,qt=l(Ft*jt),oe=l(Lt*te),ar=l(Ft*te),rn=l(jt*Lt);return new _(qt,oe,rn,ar)}add(I){C(I);let{a:U,d:q}=t,{ex:G,ey:j,ez:nt,et:ht}=this,{ex:it,ey:ct,ez:Ft,et:Lt}=I;if(U===BigInt(-1)){let mf=l((j-G)*(ct+it)),yf=l((j+G)*(ct-it)),Ua=l(yf-mf);if(Ua===Ke)return this.double();let gf=l(nt*fo*Lt),xf=l(ht*fo*Ft),Ef=xf+gf,bf=yf+mf,wf=xf-gf,Py=l(Ef*Ua),Dy=l(bf*wf),Ny=l(Ef*wf),ky=l(Ua*bf);return new _(Py,Dy,ky,Ny)}let jt=l(G*it),te=l(j*ct),qt=l(ht*q*Lt),oe=l(nt*Ft),ar=l((G+j)*(it+ct)-jt-te),rn=oe-qt,Di=oe+qt,pf=l(te-U*jt),Cy=l(ar*rn),Ty=l(Di*pf),By=l(ar*pf),Ly=l(rn*Di);return new _(Cy,Ty,Ly,By)}subtract(I){return this.add(I.negate())}wNAF(I){return D.wNAFCached(this,b,I,_.normalizeZ)}multiply(I){let{p:U,f:q}=this.wNAF(g(I,n));return _.normalizeZ([U,q])[0]}multiplyUnsafe(I){let U=x(I);return U===Ke?P:this.equals(P)||U===be?this:this.equals(S)?this.wNAF(U).p:D.unsafeLadder(this,U)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return D.unsafeLadder(this,n).is0()}toAffine(I){let{ex:U,ey:q,ez:G}=this,j=this.is0();I==null&&(I=j?cE:r.inv(G));let nt=l(U*I),ht=l(q*I),it=l(G*I);if(j)return{x:Ke,y:be};if(it!==be)throw new Error("invZ was invalid");return{x:nt,y:ht}}clearCofactor(){let{h:I}=t;return I===be?this:this.multiplyUnsafe(I)}static fromHex(I,U=!1){let{d:q,a:G}=t,j=r.BYTES;I=Dt("pointHex",I,j);let nt=I.slice(),ht=I[j-1];nt[j-1]=ht&-129;let it=Mr(nt);it===Ke||(U?g(it,u):g(it,r.ORDER));let ct=l(it*it),Ft=l(ct-be),Lt=l(q*ct-G),{isValid:jt,value:te}=f(Ft,Lt);if(!jt)throw new Error("Point.fromHex: invalid y coordinate");let qt=(te&be)===be,oe=(ht&128)!==0;if(!U&&te===Ke&&oe)throw new Error("Point.fromHex: x=0 and x_0=1");return oe!==qt&&(te=l(-te)),_.fromAffine({x:te,y:it})}static fromPrivateKey(I){return H(I).point}toRawBytes(){let{x:I,y:U}=this.toAffine(),q=pn(U,r.BYTES);return q[q.length-1]|=I&be?128:0,q}toHex(){return dr(this.toRawBytes())}}_.BASE=new _(t.Gx,t.Gy,be,l(t.Gx*t.Gy)),_.ZERO=new _(Ke,be,be,Ke);let{BASE:S,ZERO:P}=_,D=lo(_,a*8);function Y(N){return gt(N,n)}function W(N){return Y(Mr(N))}function H(N){let I=a;N=Dt("private key",N,I);let U=Dt("hashed private key",s(N),2*I),q=h(U.slice(0,I)),G=U.slice(I,2*I),j=W(q),nt=S.multiply(j),ht=nt.toRawBytes();return{head:q,prefix:G,scalar:j,point:nt,pointBytes:ht}}function et(N){return H(N).pointBytes}function mt(N=new Uint8Array,...I){let U=mr(...I);return W(s(p(U,Dt("context",N),!!i)))}function Jt(N,I,U={}){N=Dt("message",N),i&&(N=i(N));let{prefix:q,scalar:G,pointBytes:j}=H(I),nt=mt(U.context,q,N),ht=S.multiply(nt).toRawBytes(),it=mt(U.context,ht,j,N),ct=Y(nt+it*G);x(ct);let Ft=mr(ht,pn(ct,r.BYTES));return Dt("result",Ft,a*2)}let T=uE;function k(N,I,U,q=T){let{context:G,zip215:j}=q,nt=r.BYTES;N=Dt("signature",N,2*nt),I=Dt("message",I),i&&(I=i(I));let ht=Mr(N.slice(nt,2*nt)),it,ct,Ft;try{it=_.fromHex(U,j),ct=_.fromHex(N.slice(0,nt),j),Ft=S.multiplyUnsafe(ht)}catch{return!1}if(!j&&it.isSmallOrder())return!1;let Lt=mt(G,ct.toRawBytes(),it.toRawBytes(),I);return ct.add(it.multiplyUnsafe(Lt)).subtract(Ft).clearCofactor().equals(_.ZERO)}return S._setWindowSize(8),{CURVE:t,getPublicKey:et,sign:Jt,verify:k,ExtendedPoint:_,utils:{getExtendedPublicKey:H,randomPrivateKey:()=>o(r.BYTES),precompute(N=8,I=_.BASE){return I._setWindowSize(N),I.multiply(BigInt(3)),I}}}}var $c=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),xh=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),dA=BigInt(0),fE=BigInt(1),qc=BigInt(2),hE=BigInt(5),Eh=BigInt(10),dE=BigInt(20),pE=BigInt(40),bh=BigInt(80);function mE(e){let t=$c,n=e*e%t*e%t,i=It(n,qc,t)*n%t,s=It(i,fE,t)*e%t,o=It(s,hE,t)*s%t,a=It(o,Eh,t)*o%t,c=It(a,dE,t)*a%t,u=It(c,pE,t)*c%t,l=It(u,bh,t)*u%t,f=It(l,bh,t)*u%t,h=It(f,Eh,t)*o%t;return{pow_p_5_8:It(h,qc,t)*e%t,b2:n}}function yE(e){return e[0]&=248,e[31]&=127,e[31]|=64,e}function gE(e,t){let r=$c,n=gt(t*t*t,r),i=gt(n*n*t,r),s=mE(e*i).pow_p_5_8,o=gt(e*n*s,r),a=gt(t*o*o,r),c=o,u=gt(o*xh,r),l=a===e,f=a===gt(-e,r),h=a===gt(-e*xh,r);return l&&(o=c),(f||h)&&(o=u),ph(o,r)&&(o=gt(-o,r)),{isValid:l||f,value:o}}var yr=uo($c,void 0,!0),Hc={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:yr,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:Dc,randomBytes:jn,adjustScalarBytes:yE,uvRatio:gE},ei=ho(Hc);function wh(e,t,r){if(t.length>255)throw new Error("Context is too big");return ro(Bc("SigEd25519 no Ed25519 collisions"),new Uint8Array([r?1:0,t.length]),t,e)}var pA=ho({...Hc,domain:wh}),mA=ho({...Hc,domain:wh,prehash:Dc});var xE=(yr.ORDER+BigInt(3))/BigInt(8),yA=yr.pow(qc,xE),gA=yr.sqrt(yr.neg(yr.ONE)),xA=(yr.ORDER-BigInt(5))/BigInt(8),EA=BigInt(486662);var bA=mh(yr,yr.neg(BigInt(486664)));var wA=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),vA=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),_A=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),SA=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952");var AA=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");var ri=32,gr=64,po=32;async function vh(){let e=ei.utils.randomPrivateKey(),t=ei.getPublicKey(e);return{privateKey:Ih(e,t),publicKey:t}}async function _h(e){if(e.length!==po)throw new TypeError('"seed" must be 32 bytes in length.');if(!(e instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, or Uint8Array.');let t=e,r=ei.getPublicKey(t);return{privateKey:Ih(t,r),publicKey:r}}async function Sh(e,t){let r=e.subarray(0,po);return ei.sign(t,r)}async function Ah(e,t,r){return ei.verify(t,r,e)}function Ih(e,t){let r=new Uint8Array(gr);for(let n=0;n<po;n++)r[n]=e[n],r[po+n]=t[n];return r}function kt(e,t){t==null&&(t=e.reduce((i,s)=>i+s.length,0));let r=ae(t),n=0;for(let i of e)r.set(i,n),n+=i.length;return un(r)}var me={get(e=globalThis){let t=e.crypto;if(t==null||t.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-crypto/blob/master/README.md#web-crypto-api"),{code:"ERR_MISSING_WEB_CRYPTO"});return t}};var zc={alg:"A128GCM",ext:!0,k:"scm9jmO_4BJAgdwWGVulLg",key_ops:["encrypt","decrypt"],kty:"oct"};function mo(e){let t=e?.algorithm??"AES-GCM",r=e?.keyLength??16,n=e?.nonceLength??12,i=e?.digest??"SHA-256",s=e?.saltLength??16,o=e?.iterations??32767,a=me.get();r*=8;async function c(f,h){let p=a.getRandomValues(new Uint8Array(s)),d=a.getRandomValues(new Uint8Array(n)),m={name:t,iv:d};typeof h=="string"&&(h=z(h));let y;if(h.length===0){y=await a.subtle.importKey("jwk",zc,{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"]);y=await a.subtle.deriveKey(x,b,{name:t,length:r},!0,["encrypt"])}catch{y=await a.subtle.importKey("jwk",zc,{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"]);y=await a.subtle.deriveKey(x,b,{name:t,length:r},!0,["encrypt"])}let g=await a.subtle.encrypt(m,y,f);return kt([p,m.iv,new Uint8Array(g)])}async function u(f,h){let p=f.subarray(0,s),d=f.subarray(s,s+n),m=f.subarray(s+n),y={name:t,iv:d};typeof h=="string"&&(h=z(h));let g;if(h.length===0)try{let b={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},C=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(b,C,{name:t,length:r},!0,["decrypt"])}catch{g=await a.subtle.importKey("jwk",zc,{name:"AES-GCM"},!0,["decrypt"])}else{let b={name:"PBKDF2",salt:p,iterations:o,hash:{name:i}},C=await a.subtle.importKey("raw",h,{name:"PBKDF2"},!1,["deriveKey"]);g=await a.subtle.deriveKey(b,C,{name:t,length:r},!0,["decrypt"])}let x=await a.subtle.decrypt(y,g,m);return new Uint8Array(x)}return{encrypt:c,decrypt:u}}async function ni(e,t){let n=await mo().encrypt(e,t);return ln.encode(n)}var Gc=new Float32Array([-0]),Fr=new Uint8Array(Gc.buffer);function Ch(e,t,r){Gc[0]=e,t[r]=Fr[0],t[r+1]=Fr[1],t[r+2]=Fr[2],t[r+3]=Fr[3]}function Th(e,t){return Fr[0]=e[t],Fr[1]=e[t+1],Fr[2]=e[t+2],Fr[3]=e[t+3],Gc[0]}var Yc=new Float64Array([-0]),ce=new Uint8Array(Yc.buffer);function Bh(e,t,r){Yc[0]=e,t[r]=ce[0],t[r+1]=ce[1],t[r+2]=ce[2],t[r+3]=ce[3],t[r+4]=ce[4],t[r+5]=ce[5],t[r+6]=ce[6],t[r+7]=ce[7]}function Lh(e,t){return ce[0]=e[t],ce[1]=e[t+1],ce[2]=e[t+2],ce[3]=e[t+3],ce[4]=e[t+4],ce[5]=e[t+5],ce[6]=e[t+6],ce[7]=e[t+7],Yc[0]}var bE=BigInt(Number.MAX_SAFE_INTEGER),wE=BigInt(Number.MIN_SAFE_INTEGER),ye=class e{lo;hi;constructor(t,r){this.lo=t|0,this.hi=r|0}toNumber(t=!1){if(!t&&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(t=!1){if(t)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(t=!1){return this.toBigInt(t).toString()}zzEncode(){let t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this}zzDecode(){let t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this}length(){let t=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?t<16384?t<128?1:2:t<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}static fromBigInt(t){if(t===0n)return yn;if(t<bE&&t>wE)return this.fromNumber(Number(t));let r=t<0n;r&&(t=-t);let n=t>>32n,i=t-(n<<32n);return r&&(n=~n|0n,i=~i|0n,++i>Ph&&(i=0n,++n>Ph&&(n=0n))),new e(Number(i),Number(n))}static fromNumber(t){if(t===0)return yn;let r=t<0;r&&(t=-t);let n=t>>>0,i=(t-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new e(n,i)}static from(t){return typeof t=="number"?e.fromNumber(t):typeof t=="bigint"?e.fromBigInt(t):typeof t=="string"?e.fromBigInt(BigInt(t)):t.low!=null||t.high!=null?new e(t.low>>>0,t.high>>>0):yn}},yn=new ye(0,0);yn.toBigInt=function(){return 0n};yn.zzEncode=yn.zzDecode=function(){return this};yn.length=function(){return 1};var Ph=4294967296n;function Dh(e){let t=0,r=0;for(let n=0;n<e.length;++n)r=e.charCodeAt(n),r<128?t+=1:r<2048?t+=2:(r&64512)===55296&&(e.charCodeAt(n+1)&64512)===56320?(++n,t+=4):t+=3;return t}function Nh(e,t,r){if(r-t<1)return"";let i,s=[],o=0,a;for(;t<r;)a=e[t++],a<128?s[o++]=a:a>191&&a<224?s[o++]=(a&31)<<6|e[t++]&63:a>239&&a<365?(a=((a&7)<<18|(e[t++]&63)<<12|(e[t++]&63)<<6|e[t++]&63)-65536,s[o++]=55296+(a>>10),s[o++]=56320+(a&1023)):s[o++]=(a&15)<<12|(e[t++]&63)<<6|e[t++]&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 Wc(e,t,r){let n=r,i,s;for(let o=0;o<e.length;++o)i=e.charCodeAt(o),i<128?t[r++]=i:i<2048?(t[r++]=i>>6|192,t[r++]=i&63|128):(i&64512)===55296&&((s=e.charCodeAt(o+1))&64512)===56320?(i=65536+((i&1023)<<10)+(s&1023),++o,t[r++]=i>>18|240,t[r++]=i>>12&63|128,t[r++]=i>>6&63|128,t[r++]=i&63|128):(t[r++]=i>>12|224,t[r++]=i>>6&63|128,t[r++]=i&63|128);return r-n}function Ve(e,t){return RangeError(`index out of range: ${e.pos} + ${t??1} > ${e.len}`)}function yo(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}var Qc=class{buf;pos;len;_slice=Uint8Array.prototype.subarray;constructor(t){this.buf=t,this.pos=0,this.len=t.length}uint32(){let t=4294967295;if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,Ve(this,10);return t}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)|0}bool(){return this.uint32()!==0}fixed32(){if(this.pos+4>this.len)throw Ve(this,4);return yo(this.buf,this.pos+=4)}sfixed32(){if(this.pos+4>this.len)throw Ve(this,4);return yo(this.buf,this.pos+=4)|0}float(){if(this.pos+4>this.len)throw Ve(this,4);let t=Th(this.buf,this.pos);return this.pos+=4,t}double(){if(this.pos+8>this.len)throw Ve(this,4);let t=Lh(this.buf,this.pos);return this.pos+=8,t}bytes(){let t=this.uint32(),r=this.pos,n=this.pos+t;if(n>this.len)throw Ve(this,t);return this.pos+=t,r===n?new Uint8Array(0):this.buf.subarray(r,n)}string(){let t=this.bytes();return Nh(t,0,t.length)}skip(t){if(typeof t=="number"){if(this.pos+t>this.len)throw Ve(this,t);this.pos+=t}else do if(this.pos>=this.len)throw Ve(this);while(this.buf[this.pos++]&128);return this}skipType(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error(`invalid wire type ${t} at offset ${this.pos}`)}return this}readLongVarint(){let t=new ye(0,0),r=0;if(this.len-this.pos>4){for(;r<4;++r)if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;r=0}else{for(;r<3;++r){if(this.pos>=this.len)throw Ve(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<<r*7)>>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<<r*7)>>>0,t}if(this.len-this.pos>4){for(;r<5;++r)if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}else for(;r<5;++r){if(this.pos>=this.len)throw Ve(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<<r*7+3)>>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}readFixed64(){if(this.pos+8>this.len)throw Ve(this,8);let t=yo(this.buf,this.pos+=4),r=yo(this.buf,this.pos+=4);return new ye(t,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 Xc(e){return new Qc(e instanceof Uint8Array?e:e.subarray())}function re(e,t){let r=Xc(e);return t.decode(r)}function Zc(e){let t=e??8192,r=t>>>1,n,i=t;return function(o){if(o<1||o>r)return ae(o);i+o>t&&(n=ae(t),i=0);let a=n.subarray(i,i+=o);return i&7&&(i=(i|7)+1),a}}var gn=class{fn;len;next;val;constructor(t,r,n){this.fn=t,this.len=r,this.next=void 0,this.val=n}};function Jc(){}var tu=class{head;tail;len;next;constructor(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}},vE=Zc();function _E(e){return globalThis.Buffer!=null?ae(e):vE(e)}var Qi=class{len;head;tail;states;constructor(){this.len=0,this.head=new gn(Jc,0,0),this.tail=this.head,this.states=null}_push(t,r,n){return this.tail=this.tail.next=new gn(t,r,n),this.len+=r,this}uint32(t){return this.len+=(this.tail=this.tail.next=new eu((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this}int32(t){return t<0?this._push(Yi,10,ye.fromNumber(t)):this.uint32(t)}sint32(t){return this.uint32((t<<1^t>>31)>>>0)}uint64(t){let r=ye.fromBigInt(t);return this._push(Yi,r.length(),r)}uint64Number(t){let r=ye.fromNumber(t);return this._push(Yi,r.length(),r)}uint64String(t){return this.uint64(BigInt(t))}int64(t){return this.uint64(t)}int64Number(t){return this.uint64Number(t)}int64String(t){return this.uint64String(t)}sint64(t){let r=ye.fromBigInt(t).zzEncode();return this._push(Yi,r.length(),r)}sint64Number(t){let r=ye.fromNumber(t).zzEncode();return this._push(Yi,r.length(),r)}sint64String(t){return this.sint64(BigInt(t))}bool(t){return this._push(jc,1,t?1:0)}fixed32(t){return this._push(Wi,4,t>>>0)}sfixed32(t){return this.fixed32(t)}fixed64(t){let r=ye.fromBigInt(t);return this._push(Wi,4,r.lo)._push(Wi,4,r.hi)}fixed64Number(t){let r=ye.fromNumber(t);return this._push(Wi,4,r.lo)._push(Wi,4,r.hi)}fixed64String(t){return this.fixed64(BigInt(t))}sfixed64(t){return this.fixed64(t)}sfixed64Number(t){return this.fixed64Number(t)}sfixed64String(t){return this.fixed64String(t)}float(t){return this._push(Ch,4,t)}double(t){return this._push(Bh,8,t)}bytes(t){let r=t.length>>>0;return r===0?this._push(jc,1,0):this.uint32(r)._push(AE,r,t)}string(t){let r=Dh(t);return r!==0?this.uint32(r)._push(Wc,r,t):this._push(jc,1,0)}fork(){return this.states=new tu(this),this.head=this.tail=new gn(Jc,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 gn(Jc,0,0),this.len=0),this}ldelim(){let t=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n!==0&&(this.tail.next=t.next,this.tail=r,this.len+=n),this}finish(){let t=this.head.next,r=_E(this.len),n=0;for(;t!=null;)t.fn(t.val,r,n),n+=t.len,t=t.next;return r}};function jc(e,t,r){t[r]=e&255}function SE(e,t,r){for(;e>127;)t[r++]=e&127|128,e>>>=7;t[r]=e}var eu=class extends gn{next;constructor(t,r){super(SE,t,r),this.next=void 0}};function Yi(e,t,r){for(;e.hi!==0;)t[r++]=e.lo&127|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[r++]=e.lo&127|128,e.lo=e.lo>>>7;t[r++]=e.lo}function Wi(e,t,r){t[r]=e&255,t[r+1]=e>>>8&255,t[r+2]=e>>>16&255,t[r+3]=e>>>24}function AE(e,t,r){t.set(e,r)}globalThis.Buffer!=null&&(Qi.prototype.bytes=function(e){let t=e.length>>>0;return this.uint32(t),t>0&&this._push(IE,t,e),this},Qi.prototype.string=function(e){let t=globalThis.Buffer.byteLength(e);return this.uint32(t),t>0&&this._push(RE,t,e),this});function IE(e,t,r){t.set(e,r)}function RE(e,t,r){e.length<40?Wc(e,t,r):t.utf8Write!=null?t.utf8Write(e,r):t.set(z(e),r)}function ru(){return new Qi}function ne(e,t){let r=ru();return t.encode(e,r,{lengthDelimited:!1}),r.finish()}var ii;(function(e){e[e.VARINT=0]="VARINT",e[e.BIT64=1]="BIT64",e[e.LENGTH_DELIMITED=2]="LENGTH_DELIMITED",e[e.START_GROUP=3]="START_GROUP",e[e.END_GROUP=4]="END_GROUP",e[e.BIT32=5]="BIT32"})(ii||(ii={}));function go(e,t,r,n){return{name:e,type:t,encode:r,decode:n}}function nu(e){function t(i){if(e[i.toString()]==null)throw new Error("Invalid enum value");return e[i]}let r=function(s,o){let a=t(s);o.int32(a)},n=function(s){let o=s.int32();return t(o)};return go("enum",ii.VARINT,r,n)}function ie(e,t){return go("message",ii.LENGTH_DELIMITED,e,t)}var Rt;(function(e){e.RSA="RSA",e.Ed25519="Ed25519",e.Secp256k1="Secp256k1"})(Rt||(Rt={}));var iu;(function(e){e[e.RSA=0]="RSA",e[e.Ed25519=1]="Ed25519",e[e.Secp256k1=2]="Secp256k1"})(iu||(iu={}));(function(e){e.codec=()=>nu(iu)})(Rt||(Rt={}));var tr;(function(e){let t;e.codec=()=>(t==null&&(t=ie((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),Rt.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=Rt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),t),e.encode=r=>ne(r,e.codec()),e.decode=r=>re(r,e.codec())})(tr||(tr={}));var er;(function(e){let t;e.codec=()=>(t==null&&(t=ie((r,n,i={})=>{i.lengthDelimited!==!1&&n.fork(),r.Type!=null&&(n.uint32(8),Rt.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=Rt.codec().decode(r);break;case 2:i.Data=r.bytes();break;default:r.skipType(o&7);break}}return i})),t),e.encode=r=>ne(r,e.codec()),e.decode=r=>re(r,e.codec())})(er||(er={}));var Xi=class{_key;constructor(t){this._key=si(t,ri)}async verify(t,r){return Ah(this._key,r,t)}marshal(){return this._key}get bytes(){return tr.encode({Type:Rt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ee.digest(this.bytes);return t}},xn=class{_key;_publicKey;constructor(t,r){this._key=si(t,gr),this._publicKey=si(r,ri)}async sign(t){return Sh(this._key,t)}get public(){return new Xi(this._publicKey)}marshal(){return this._key}get bytes(){return er.encode({Type:Rt.Ed25519,Data:this.marshal()}).subarray()}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ee.digest(this.bytes);return t}async id(){let t=Dr.digest(this.public.bytes);return Ct.encode(t.bytes).substring(1)}async export(t,r="libp2p-key"){if(r==="libp2p-key")return ni(this.bytes,t);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function CE(e){if(e.length>gr){e=si(e,gr+ri);let n=e.subarray(0,gr),i=e.subarray(gr,e.length);return new xn(n,i)}e=si(e,gr);let t=e.subarray(0,gr),r=e.subarray(ri);return new xn(t,r)}function TE(e){return e=si(e,ri),new Xi(e)}async function BE(){let{privateKey:e,publicKey:t}=await vh();return new xn(e,t)}async function Oh(e){let{privateKey:t,publicKey:r}=await _h(e);return new xn(t,r)}function si(e,t){if(e=Uint8Array.from(e??[]),e.length!==t)throw new w(`Key must be a Uint8Array of length ${t}, got ${e.length}`,"ERR_INVALID_KEY_TYPE");return e}function X(e,t="utf8"){let r=js[t];if(r==null)throw new Error(`Unsupported encoding "${t}"`);return(t==="utf8"||t==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("utf8"):r.encoder.encode(e).substring(1)}var wI=yt(Nt(),1),vI=yt(Ws(),1),Mh=yt(dt(),1);function qe(e,t){let r=Uint8Array.from(e.abs().toByteArray());if(r=r[0]===0?r.subarray(1):r,t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=kt([new Uint8Array(t-r.length),r])}return X(r,"base64url")}function we(e){let t=Uh(e);return new Mh.default.jsbn.BigInteger(X(t,"base16"),16)}function Uh(e,t){let r=z(e,"base64urlpad");if(t!=null){if(r.length>t)throw new Error("byte array longer than desired length");r=kt([new Uint8Array(t-r.length),r])}return r}var LE={"P-256":256,"P-384":384,"P-521":521},PE=Object.keys(LE),DI=PE.join(" / ");async function Fh(e,t){let r=ln.decode(e);return mo().decrypt(r,t)}var lu={};Gt(lu,{MAX_KEY_SIZE:()=>ts,RsaPrivateKey:()=>oi,RsaPublicKey:()=>ji,fromJwk:()=>qE,generateKeyPair:()=>$E,unmarshalRsaPrivateKey:()=>KE,unmarshalRsaPublicKey:()=>VE});var Ji=yt(dt(),1);var gR=yt(zh(),1);function bn(e){if(isNaN(e)||e<=0)throw new w("random bytes length must be a Number bigger than 0","ERR_INVALID_LENGTH");return jn(e)}var jI=yt(Zs(),1),cu=yt(dt(),1);function Gh(e,t){return t.map(r=>we(e[r]))}function Yh(e){return cu.default.pki.setRsaPrivateKey(...Gh(e,["n","e","d","p","q","dp","dq","qi"]))}function Wh(e){return cu.default.pki.setRsaPublicKey(...Gh(e,["n","e"]))}var wn={};Gt(wn,{jwkToPkcs1:()=>kE,jwkToPkix:()=>ME,pkcs1ToJwk:()=>NE,pkixToJwk:()=>OE});var rR=yt(Mi(),1),nR=yt(Zs(),1);var xr=yt(dt(),1);function NE(e){let t=xr.default.asn1.fromDer(X(e,"ascii")),r=xr.default.pki.privateKeyFromAsn1(t);return{kty:"RSA",n:qe(r.n),e:qe(r.e),d:qe(r.d),p:qe(r.p),q:qe(r.q),dp:qe(r.dP),dq:qe(r.dQ),qi:qe(r.qInv),alg:"RS256"}}function kE(e){if(e.n==null||e.e==null||e.d==null||e.p==null||e.q==null||e.dp==null||e.dq==null||e.qi==null)throw new w("JWK was missing components","ERR_INVALID_PARAMETERS");let t=xr.default.pki.privateKeyToAsn1({n:we(e.n),e:we(e.e),d:we(e.d),p:we(e.p),q:we(e.q),dP:we(e.dp),dQ:we(e.dq),qInv:we(e.qi)});return z(xr.default.asn1.toDer(t).getBytes(),"ascii")}function OE(e){let t=xr.default.asn1.fromDer(X(e,"ascii")),r=xr.default.pki.publicKeyFromAsn1(t);return{kty:"RSA",n:qe(r.n),e:qe(r.e)}}function ME(e){if(e.n==null||e.e==null)throw new w("JWK was missing components","ERR_INVALID_PARAMETERS");let t=xr.default.pki.publicKeyToAsn1({n:we(e.n),e:we(e.e)});return z(xr.default.asn1.toDer(t).getBytes(),"ascii")}async function Qh(e){let t=await me.get().subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:new Uint8Array([1,0,1]),hash:{name:"SHA-256"}},!0,["sign","verify"]),r=await Jh(t);return{privateKey:r[0],publicKey:r[1]}}async function uu(e){let r=[await me.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["sign"]),await UE(e)],n=await Jh({privateKey:r[0],publicKey:r[1]});return{privateKey:n[0],publicKey:n[1]}}async function Xh(e,t){let r=await me.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["sign"]),n=await me.get().subtle.sign({name:"RSASSA-PKCS1-v1_5"},r,Uint8Array.from(t));return new Uint8Array(n,0,n.byteLength)}async function Zh(e,t,r){let n=await me.get().subtle.importKey("jwk",e,{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!1,["verify"]);return me.get().subtle.verify({name:"RSASSA-PKCS1-v1_5"},n,t,r)}async function Jh(e){if(e.privateKey==null||e.publicKey==null)throw new w("Private and public key are required","ERR_INVALID_PARAMETERS");return Promise.all([me.get().subtle.exportKey("jwk",e.privateKey),me.get().subtle.exportKey("jwk",e.publicKey)])}async function UE(e){return me.get().subtle.importKey("jwk",{kty:e.kty,n:e.n,e:e.e},{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}},!0,["verify"])}function jh(e,t,r,n){let i=t?Wh(e):Yh(e),s=X(Uint8Array.from(r),"ascii"),o=n(s,i);return z(o,"ascii")}function td(e,t){return jh(e,!0,t,(r,n)=>n.encrypt(r))}function ed(e,t){return jh(e,!1,t,(r,n)=>n.decrypt(r))}function Eo(e){if(e.kty!=="RSA")throw new w("invalid key type","ERR_INVALID_KEY_TYPE");if(e.n==null)throw new w("invalid key modulus","ERR_INVALID_KEY_MODULUS");return z(e.n,"base64url").length*8}var ts=8192,ji=class{_key;constructor(t){this._key=t}async verify(t,r){return Zh(this._key,r,t)}marshal(){return wn.jwkToPkix(this._key)}get bytes(){return tr.encode({Type:Rt.RSA,Data:this.marshal()}).subarray()}encrypt(t){return td(this._key,t)}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ee.digest(this.bytes);return t}},oi=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r}genSecret(){return bn(16)}async sign(t){return Xh(this._key,t)}get public(){if(this._publicKey==null)throw new w("public key not provided","ERR_PUBKEY_NOT_PROVIDED");return new ji(this._publicKey)}decrypt(t){return ed(this._key,t)}marshal(){return wn.jwkToPkcs1(this._key)}get bytes(){return er.encode({Type:Rt.RSA,Data:this.marshal()}).subarray()}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ee.digest(this.bytes);return t}async id(){let t=await this.public.hash();return X(t,"base58btc")}async export(t,r="pkcs-8"){if(r==="pkcs-8"){let n=new Ji.default.util.ByteBuffer(this.marshal()),i=Ji.default.asn1.fromDer(n),s=Ji.default.pki.privateKeyFromAsn1(i),o={algorithm:"aes256",count:1e4,saltSize:128/8,prfAlgorithm:"sha512"};return Ji.default.pki.encryptRsaPrivateKey(s,t,o)}else{if(r==="libp2p-key")return ni(this.bytes,t);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}}};async function KE(e){let t=wn.pkcs1ToJwk(e);if(Eo(t)>ts)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let r=await uu(t);return new oi(r.privateKey,r.publicKey)}function VE(e){let t=wn.pkixToJwk(e);if(Eo(t)>ts)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");return new ji(t)}async function qE(e){if(Eo(e)>ts)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await uu(e);return new oi(t.privateKey,t.publicKey)}async function $E(e){if(e>ts)throw new w("key size is too large","ERR_KEY_SIZE_TOO_LARGE");let t=await Qh(e);return new oi(t.privateKey,t.publicKey)}var yu={};Gt(yu,{Secp256k1PrivateKey:()=>rs,Secp256k1PublicKey:()=>es,generateKeyPair:()=>ib,unmarshalSecp256k1PrivateKey:()=>rb,unmarshalSecp256k1PublicKey:()=>nb});var HE=(e,t,r)=>e&t^~e&r,zE=(e,t,r)=>e&t^e&r^t&r,GE=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]),Kr=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Vr=new Uint32Array(64),fu=class extends ti{constructor(){super(64,32,8,!1),this.A=Kr[0]|0,this.B=Kr[1]|0,this.C=Kr[2]|0,this.D=Kr[3]|0,this.E=Kr[4]|0,this.F=Kr[5]|0,this.G=Kr[6]|0,this.H=Kr[7]|0}get(){let{A:t,B:r,C:n,D:i,E:s,F:o,G:a,H:c}=this;return[t,r,n,i,s,o,a,c]}set(t,r,n,i,s,o,a,c){this.A=t|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(t,r){for(let f=0;f<16;f++,r+=4)Vr[f]=t.getUint32(r,!1);for(let f=16;f<64;f++){let h=Vr[f-15],p=Vr[f-2],d=Fe(h,7)^Fe(h,18)^h>>>3,m=Fe(p,17)^Fe(p,19)^p>>>10;Vr[f]=m+Vr[f-7]+d+Vr[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=Fe(a,6)^Fe(a,11)^Fe(a,25),p=l+h+HE(a,c,u)+GE[f]+Vr[f]|0,m=(Fe(n,2)^Fe(n,13)^Fe(n,22))+zE(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(){Vr.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}};var rd=no(()=>new fu);function YE(e){let t=Gi(e);je(t,{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}=t;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({...t})}var{bytesToNumberBE:WE,hexToBytes:QE}=ao,vn={Err:class extends Error{constructor(t=""){super(t)}},_parseInt(e){let{Err:t}=vn;if(e.length<2||e[0]!==2)throw new t("Invalid signature integer tag");let r=e[1],n=e.subarray(2,r+2);if(!r||n.length!==r)throw new t("Invalid signature integer: wrong length");if(n[0]&128)throw new t("Invalid signature integer: negative");if(n[0]===0&&!(n[1]&128))throw new t("Invalid signature integer: unnecessary leading zero");return{d:WE(n),l:e.subarray(r+2)}},toSig(e){let{Err:t}=vn,r=typeof e=="string"?QE(e):e;if(!(r instanceof Uint8Array))throw new Error("ui8a expected");let n=r.length;if(n<2||r[0]!=48)throw new t("Invalid signature tag");if(r[1]!==n-2)throw new t("Invalid signature: incorrect length");let{d:i,l:s}=vn._parseInt(r.subarray(2)),{d:o,l:a}=vn._parseInt(s);if(a.length)throw new t("Invalid signature: left bytes after parsing");return{r:i,s:o}},hexFromSig(e){let t=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=t(r(e.s)),i=t(r(e.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}`}},Er=BigInt(0),Pe=BigInt(1),IR=BigInt(2),nd=BigInt(3),RR=BigInt(4);function XE(e){let t=YE(e),{Fp:r}=t,n=t.toBytes||((d,m,y)=>{let g=m.toAffine();return mr(Uint8Array.from([4]),r.toBytes(g.x),r.toBytes(g.y))}),i=t.fromBytes||(d=>{let m=d.subarray(1),y=r.fromBytes(m.subarray(0,r.BYTES)),g=r.fromBytes(m.subarray(r.BYTES,2*r.BYTES));return{x:y,y:g}});function s(d){let{a:m,b:y}=t,g=r.sqr(d),x=r.mul(g,d);return r.add(r.add(x,r.mul(d,m)),y)}if(!r.eql(r.sqr(t.Gy),s(t.Gx)))throw new Error("bad generator point: equation left != right");function o(d){return typeof d=="bigint"&&Er<d&&d<t.n}function a(d){if(!o(d))throw new Error("Expected valid bigint: 0 < bigint < curve.n")}function c(d){let{allowedPrivateKeyLengths:m,nByteLength:y,wrapPrivateKey:g,n:x}=t;if(m&&typeof d!="bigint"){if(d instanceof Uint8Array&&(d=dr(d)),typeof d!="string"||!m.includes(d.length))throw new Error("Invalid key");d=d.padStart(y*2,"0")}let b;try{b=typeof d=="bigint"?d:pr(Dt("private key",d,y))}catch{throw new Error(`private key must be ${y} bytes, hex or bigint, not ${typeof d}`)}return g&&(b=gt(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,y,g){if(this.px=m,this.py=y,this.pz=g,m==null||!r.isValid(m))throw new Error("x required");if(y==null||!r.isValid(y))throw new Error("y required");if(g==null||!r.isValid(g))throw new Error("z required")}static fromAffine(m){let{x:y,y:g}=m||{};if(!m||!r.isValid(y)||!r.isValid(g))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(y)&&x(g)?f.ZERO:new f(y,g,r.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(m){let y=r.invertBatch(m.map(g=>g.pz));return m.map((g,x)=>g.toAffine(y[x])).map(f.fromAffine)}static fromHex(m){let y=f.fromAffine(i(Dt("pointHex",m)));return y.assertValidity(),y}static fromPrivateKey(m){return f.BASE.multiply(c(m))}_setWindowSize(m){this._WINDOW_SIZE=m,u.delete(this)}assertValidity(){if(this.is0()){if(t.allowInfinityPoint&&!r.is0(this.py))return;throw new Error("bad point: ZERO")}let{x:m,y}=this.toAffine();if(!r.isValid(m)||!r.isValid(y))throw new Error("bad point: x or y not FE");let g=r.sqr(y),x=s(m);if(!r.eql(g,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:y,py:g,pz:x}=this,{px:b,py:C,pz:_}=m,S=r.eql(r.mul(y,_),r.mul(b,x)),P=r.eql(r.mul(g,_),r.mul(C,x));return S&&P}negate(){return new f(this.px,r.neg(this.py),this.pz)}double(){let{a:m,b:y}=t,g=r.mul(y,nd),{px:x,py:b,pz:C}=this,_=r.ZERO,S=r.ZERO,P=r.ZERO,D=r.mul(x,x),Y=r.mul(b,b),W=r.mul(C,C),H=r.mul(x,b);return H=r.add(H,H),P=r.mul(x,C),P=r.add(P,P),_=r.mul(m,P),S=r.mul(g,W),S=r.add(_,S),_=r.sub(Y,S),S=r.add(Y,S),S=r.mul(_,S),_=r.mul(H,_),P=r.mul(g,P),W=r.mul(m,W),H=r.sub(D,W),H=r.mul(m,H),H=r.add(H,P),P=r.add(D,D),D=r.add(P,D),D=r.add(D,W),D=r.mul(D,H),S=r.add(S,D),W=r.mul(b,C),W=r.add(W,W),D=r.mul(W,H),_=r.sub(_,D),P=r.mul(W,Y),P=r.add(P,P),P=r.add(P,P),new f(_,S,P)}add(m){l(m);let{px:y,py:g,pz:x}=this,{px:b,py:C,pz:_}=m,S=r.ZERO,P=r.ZERO,D=r.ZERO,Y=t.a,W=r.mul(t.b,nd),H=r.mul(y,b),et=r.mul(g,C),mt=r.mul(x,_),Jt=r.add(y,g),T=r.add(b,C);Jt=r.mul(Jt,T),T=r.add(H,et),Jt=r.sub(Jt,T),T=r.add(y,x);let k=r.add(b,_);return T=r.mul(T,k),k=r.add(H,mt),T=r.sub(T,k),k=r.add(g,x),S=r.add(C,_),k=r.mul(k,S),S=r.add(et,mt),k=r.sub(k,S),D=r.mul(Y,T),S=r.mul(W,mt),D=r.add(S,D),S=r.sub(et,D),D=r.add(et,D),P=r.mul(S,D),et=r.add(H,H),et=r.add(et,H),mt=r.mul(Y,mt),T=r.mul(W,T),et=r.add(et,mt),mt=r.sub(H,mt),mt=r.mul(Y,mt),T=r.add(T,mt),H=r.mul(et,T),P=r.add(P,H),H=r.mul(k,T),S=r.mul(Jt,S),S=r.sub(S,H),H=r.mul(Jt,et),D=r.mul(k,D),D=r.add(D,H),new f(S,P,D)}subtract(m){return this.add(m.negate())}is0(){return this.equals(f.ZERO)}wNAF(m){return p.wNAFCached(this,u,m,y=>{let g=r.invertBatch(y.map(x=>x.pz));return y.map((x,b)=>x.toAffine(g[b])).map(f.fromAffine)})}multiplyUnsafe(m){let y=f.ZERO;if(m===Er)return y;if(a(m),m===Pe)return this;let{endo:g}=t;if(!g)return p.unsafeLadder(this,m);let{k1neg:x,k1:b,k2neg:C,k2:_}=g.splitScalar(m),S=y,P=y,D=this;for(;b>Er||_>Er;)b&Pe&&(S=S.add(D)),_&Pe&&(P=P.add(D)),D=D.double(),b>>=Pe,_>>=Pe;return x&&(S=S.negate()),C&&(P=P.negate()),P=new f(r.mul(P.px,g.beta),P.py,P.pz),S.add(P)}multiply(m){a(m);let y=m,g,x,{endo:b}=t;if(b){let{k1neg:C,k1:_,k2neg:S,k2:P}=b.splitScalar(y),{p:D,f:Y}=this.wNAF(_),{p:W,f:H}=this.wNAF(P);D=p.constTimeNegate(C,D),W=p.constTimeNegate(S,W),W=new f(r.mul(W.px,b.beta),W.py,W.pz),g=D.add(W),x=Y.add(H)}else{let{p:C,f:_}=this.wNAF(y);g=C,x=_}return f.normalizeZ([g,x])[0]}multiplyAndAddUnsafe(m,y,g){let x=f.BASE,b=(_,S)=>S===Er||S===Pe||!_.equals(x)?_.multiplyUnsafe(S):_.multiply(S),C=b(this,y).add(b(m,g));return C.is0()?void 0:C}toAffine(m){let{px:y,py:g,pz:x}=this,b=this.is0();m==null&&(m=b?r.ONE:r.inv(x));let C=r.mul(y,m),_=r.mul(g,m),S=r.mul(x,m);if(b)return{x:r.ZERO,y:r.ZERO};if(!r.eql(S,r.ONE))throw new Error("invZ was invalid");return{x:C,y:_}}isTorsionFree(){let{h:m,isTorsionFree:y}=t;if(m===Pe)return!0;if(y)return y(f,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:m,clearCofactor:y}=t;return m===Pe?this:y?y(f,this):this.multiplyUnsafe(t.h)}toRawBytes(m=!0){return this.assertValidity(),n(f,this,m)}toHex(m=!0){return dr(this.toRawBytes(m))}}f.BASE=new f(t.Gx,t.Gy,r.ONE),f.ZERO=new f(r.ZERO,r.ONE,r.ZERO);let h=t.nBitLength,p=lo(f,t.endo?Math.ceil(h/2):h);return{CURVE:t,ProjectivePoint:f,normPrivateKeyToScalar:c,weierstrassEquation:s,isWithinCurveOrder:o}}function ZE(e){let t=Gi(e);return je(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function id(e){let t=ZE(e),{Fp:r,n}=t,i=r.BYTES+1,s=2*r.BYTES+1;function o(T){return Er<T&&T<r.ORDER}function a(T){return gt(T,n)}function c(T){return co(T,n)}let{ProjectivePoint:u,normPrivateKeyToScalar:l,weierstrassEquation:f,isWithinCurveOrder:h}=XE({...t,toBytes(T,k,L){let N=k.toAffine(),I=r.toBytes(N.x),U=mr;return L?U(Uint8Array.from([k.hasEvenY()?2:3]),I):U(Uint8Array.from([4]),I,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 I=pr(N);if(!o(I))throw new Error("Point is not on curve");let U=f(I),q=r.sqrt(U),G=(q&Pe)===Pe;return(L&1)===1!==G&&(q=r.neg(q)),{x:I,y:q}}else if(k===s&&L===4){let I=r.fromBytes(N.subarray(0,r.BYTES)),U=r.fromBytes(N.subarray(r.BYTES,2*r.BYTES));return{x:I,y:U}}else throw new Error(`Point of length ${k} was invalid. Expected ${i} compressed bytes or ${s} uncompressed bytes`)}}),p=T=>dr(Ur(T,t.nByteLength));function d(T){let k=n>>Pe;return T>k}function m(T){return d(T)?a(-T):T}let y=(T,k,L)=>pr(T.slice(k,L));class g{constructor(k,L,N){this.r=k,this.s=L,this.recovery=N,this.assertValidity()}static fromCompact(k){let L=t.nByteLength;return k=Dt("compactSignature",k,L*2),new g(y(k,0,L),y(k,L,2*L))}static fromDER(k){let{r:L,s:N}=vn.toSig(Dt("DER",k));return new g(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 g(this.r,this.s,k)}recoverPublicKey(k){let{r:L,s:N,recovery:I}=this,U=P(Dt("msgHash",k));if(I==null||![0,1,2,3].includes(I))throw new Error("recovery id invalid");let q=I===2||I===3?L+t.n:L;if(q>=r.ORDER)throw new Error("recovery id 2 or 3 invalid");let G=I&1?"03":"02",j=u.fromHex(G+p(q)),nt=c(q),ht=a(-U*nt),it=a(N*nt),ct=u.BASE.multiplyAndAddUnsafe(j,ht,it);if(!ct)throw new Error("point at infinify");return ct.assertValidity(),ct}hasHighS(){return d(this.s)}normalizeS(){return this.hasHighS()?new g(this.r,a(-this.s),this.recovery):this}toDERRawBytes(){return dn(this.toDERHex())}toDERHex(){return vn.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return dn(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=Kc(t.n);return gh(t.randomBytes(T),t.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 C(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 _(T,k,L=!0){if(C(T))throw new Error("first arg must be private key");if(!C(k))throw new Error("second arg must be public key");return u.fromHex(k).multiply(l(T)).toRawBytes(L)}let S=t.bits2int||function(T){let k=pr(T),L=T.length*8-t.nBitLength;return L>0?k>>BigInt(L):k},P=t.bits2int_modN||function(T){return a(S(T))},D=zi(t.nBitLength);function Y(T){if(typeof T!="bigint")throw new Error("bigint expected");if(!(Er<=T&&T<D))throw new Error(`bigint expected < 2^${t.nBitLength}`);return Ur(T,t.nByteLength)}function W(T,k,L=H){if(["recovered","canonical"].some(Lt=>Lt in L))throw new Error("sign() legacy options not supported");let{hash:N,randomBytes:I}=t,{lowS:U,prehash:q,extraEntropy:G}=L;U==null&&(U=!0),T=Dt("msgHash",T),q&&(T=Dt("prehashed msgHash",N(T)));let j=P(T),nt=l(k),ht=[Y(nt),Y(j)];if(G!=null){let Lt=G===!0?I(r.BYTES):G;ht.push(Dt("extraEntropy",Lt))}let it=mr(...ht),ct=j;function Ft(Lt){let jt=S(Lt);if(!h(jt))return;let te=c(jt),qt=u.BASE.multiply(jt).toAffine(),oe=a(qt.x);if(oe===Er)return;let ar=a(te*a(ct+oe*nt));if(ar===Er)return;let rn=(qt.x===oe?0:2)|Number(qt.y&Pe),Di=ar;return U&&d(ar)&&(Di=m(ar),rn^=1),new g(oe,Di,rn)}return{seed:it,k2sig:Ft}}let H={lowS:t.lowS,prehash:!1},et={lowS:t.lowS,prehash:!1};function mt(T,k,L=H){let{seed:N,k2sig:I}=W(T,k,L),U=t;return Oc(U.hash.outputLen,U.nByteLength,U.hmac)(N,I)}u.BASE._setWindowSize(8);function Jt(T,k,L,N=et){let I=T;if(k=Dt("msgHash",k),L=Dt("publicKey",L),"strict"in N)throw new Error("options.strict was renamed to lowS");let{lowS:U,prehash:q}=N,G,j;try{if(typeof I=="string"||I instanceof Uint8Array)try{G=g.fromDER(I)}catch(qt){if(!(qt instanceof vn.Err))throw qt;G=g.fromCompact(I)}else if(typeof I=="object"&&typeof I.r=="bigint"&&typeof I.s=="bigint"){let{r:qt,s:oe}=I;G=new g(qt,oe)}else throw new Error("PARSE");j=u.fromHex(L)}catch(qt){if(qt.message==="PARSE")throw new Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(U&&G.hasHighS())return!1;q&&(k=t.hash(k));let{r:nt,s:ht}=G,it=P(k),ct=c(ht),Ft=a(it*ct),Lt=a(nt*ct),jt=u.BASE.multiplyAndAddUnsafe(j,Ft,Lt)?.toAffine();return jt?a(jt.x)===nt:!1}return{CURVE:t,getPublicKey:b,getSharedSecret:_,sign:mt,verify:Jt,ProjectivePoint:u,Signature:g,utils:x}}var bo=class extends Jn{constructor(t,r){super(),this.finished=!1,this.destroyed=!1,sh(t);let n=Hi(r);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;let i=this.blockLen,s=new Uint8Array(i);s.set(n.length>i?t.create().update(n).digest():n);for(let o=0;o<s.length;o++)s[o]^=54;this.iHash.update(s),this.oHash=t.create();for(let o=0;o<s.length;o++)s[o]^=106;this.oHash.update(s),s.fill(0)}update(t){return Zn(this),this.iHash.update(t),this}digestInto(t){Zn(this),Tc(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){let t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));let{oHash:r,iHash:n,finished:i,destroyed:s,blockLen:o,outputLen:a}=this;return t=t,t.finished=i,t.destroyed=s,t.blockLen=o,t.outputLen=a,t.oHash=r._cloneInto(t.oHash),t.iHash=n._cloneInto(t.iHash),t}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}},hu=(e,t,r)=>new bo(e,t).update(r).digest();hu.create=(e,t)=>new bo(e,t);function JE(e){return{hash:e,hmac:(t,...r)=>hu(e,t,ro(...r)),randomBytes:jn}}function sd(e,t){let r=n=>id({...e,...JE(n)});return Object.freeze({...r(t),create:r})}var cd=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),od=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),jE=BigInt(1),du=BigInt(2),ad=(e,t)=>(e+t/du)/t;function tb(e){let t=cd,r=BigInt(3),n=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),u=e*e*e%t,l=u*u*e%t,f=It(l,r,t)*l%t,h=It(f,r,t)*l%t,p=It(h,du,t)*u%t,d=It(p,i,t)*p%t,m=It(d,s,t)*d%t,y=It(m,a,t)*m%t,g=It(y,c,t)*y%t,x=It(g,a,t)*m%t,b=It(x,r,t)*l%t,C=It(b,o,t)*d%t,_=It(C,n,t)*u%t,S=It(_,du,t);if(!pu.eql(pu.sqr(S),e))throw new Error("Cannot find square root");return S}var pu=uo(cd,void 0,void 0,{sqrt:tb}),br=sd({a:BigInt(0),b:BigInt(7),Fp:pu,n:od,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=od,r=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),n=-jE*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=r,o=BigInt("0x100000000000000000000000000000000"),a=ad(s*e,t),c=ad(-n*e,t),u=gt(e-a*r-c*i,t),l=gt(-a*n-c*s,t),f=u>o,h=l>o;if(f&&(u=t-u),h&&(l=t-l),u>o||l>o)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:f,k1:u,k2neg:h,k2:l}}}},rd),FR=BigInt(0);var KR=br.ProjectivePoint;function ud(){return br.utils.randomPrivateKey()}async function ld(e,t){let{digest:r}=await ee.digest(t);try{return br.sign(r,e).toDERRawBytes()}catch(n){throw new w(String(n),"ERR_INVALID_INPUT")}}async function fd(e,t,r){try{let{digest:n}=await ee.digest(r);return br.verify(t,n,e)}catch(n){throw new w(String(n),"ERR_INVALID_INPUT")}}function hd(e){return br.ProjectivePoint.fromHex(e).toRawBytes(!0)}function dd(e){try{br.getPublicKey(e,!0)}catch(t){throw new w(String(t),"ERR_INVALID_PRIVATE_KEY")}}function mu(e){try{br.ProjectivePoint.fromHex(e)}catch(t){throw new w(String(t),"ERR_INVALID_PUBLIC_KEY")}}function pd(e){try{return br.getPublicKey(e,!0)}catch(t){throw new w(String(t),"ERR_INVALID_PRIVATE_KEY")}}var es=class{_key;constructor(t){mu(t),this._key=t}async verify(t,r){return fd(this._key,r,t)}marshal(){return hd(this._key)}get bytes(){return tr.encode({Type:Rt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ee.digest(this.bytes);return t}},rs=class{_key;_publicKey;constructor(t,r){this._key=t,this._publicKey=r??pd(t),dd(this._key),mu(this._publicKey)}async sign(t){return ld(this._key,t)}get public(){return new es(this._publicKey)}marshal(){return this._key}get bytes(){return er.encode({Type:Rt.Secp256k1,Data:this.marshal()}).subarray()}equals(t){return Tt(this.bytes,t.bytes)}async hash(){let{bytes:t}=await ee.digest(this.bytes);return t}async id(){let t=await this.public.hash();return X(t,"base58btc")}async export(t,r="libp2p-key"){if(r==="libp2p-key")return ni(this.bytes,t);throw new w(`export format '${r}' is not supported`,"ERR_INVALID_EXPORT_FORMAT")}};function rb(e){return new rs(e)}function nb(e){return new es(e)}async function ib(){let e=ud();return new rs(e)}var wr={rsa:lu,ed25519:su,secp256k1:yu};function gu(e){let t=Object.keys(wr).join(" / ");return new w(`invalid or unsupported key type ${e}. Must be ${t}`,"ERR_UNSUPPORTED_KEY_TYPE")}function xu(e){if(e=e.toLowerCase(),e==="rsa"||e==="ed25519"||e==="secp256k1")return wr[e];throw gu(e)}async function vo(e,t){return xu(e).generateKeyPair(t??2048)}function ns(e){let t=tr.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case Rt.RSA:return wr.rsa.unmarshalRsaPublicKey(r);case Rt.Ed25519:return wr.ed25519.unmarshalEd25519PublicKey(r);case Rt.Secp256k1:return wr.secp256k1.unmarshalSecp256k1PublicKey(r);default:throw gu(t.Type??"unknown")}}function md(e,t){return t=(t??"rsa").toLowerCase(),xu(t),e.bytes}async function ai(e){let t=er.decode(e),r=t.Data??new Uint8Array;switch(t.Type){case Rt.RSA:return wr.rsa.unmarshalRsaPrivateKey(r);case Rt.Ed25519:return wr.ed25519.unmarshalEd25519PrivateKey(r);case Rt.Secp256k1:return wr.secp256k1.unmarshalSecp256k1PrivateKey(r);default:throw gu(t.Type??"RSA")}}function yd(e,t){return t=(t??"rsa").toLowerCase(),xu(t),e.bytes}async function is(e,t){try{let i=await Fh(e,t);return await ai(i)}catch{}let r=wo.default.pki.decryptRsaPrivateKey(e,t);if(r===null)throw new w("Cannot read the key, most likely the password is wrong or not a RSA key","ERR_CANNOT_DECRYPT_PEM");let n=wo.default.asn1.toDer(wo.default.pki.privateKeyToAsn1(r));return n=z(n.getBytes(),"ascii"),wr.rsa.unmarshalRsaPrivateKey(n)}var Eu=Symbol.for("@libp2p/content-routing");var ss=class extends EventTarget{#t=new Map;listenerCount(t){let r=this.#t.get(t);return r==null?0:r.length}addEventListener(t,r,n){super.addEventListener(t,r,n);let i=this.#t.get(t);i==null&&(i=[],this.#t.set(t,i)),i.push({callback:r,once:(n!==!0&&n!==!1&&n?.once)??!1})}removeEventListener(t,r,n){super.removeEventListener(t.toString(),r??null,n);let i=this.#t.get(t);i!=null&&(i=i.filter(({callback:s})=>s!==r),this.#t.set(t,i))}dispatchEvent(t){let r=super.dispatchEvent(t),n=this.#t.get(t.type);return n==null||(n=n.filter(({once:i})=>!i),this.#t.set(t.type,n)),r}safeDispatchEvent(t,r){return this.dispatchEvent(new wu(t,r))}},bu=class extends Event{detail;constructor(t,r){super(t,r),this.detail=r?.detail}},wu=globalThis.CustomEvent??bu;var ve=(e,...t)=>{try{[...t]}catch{}};var vu=Symbol.for("@libp2p/peer-discovery");var _u=Symbol.for("@libp2p/peer-routing");var p4=yt(Ks(),1),ob=yt(dt(),1);var xd=yt(Za(),1),Ed=yt(Nt(),1),gd={sha1:"sha1","sha2-256":"sha256","sha2-512":"sha512"};function os(e,t,r,n,i){if(i!=="sha1"&&i!=="sha2-256"&&i!=="sha2-512"){let a=Object.keys(gd).join(" / ");throw new w(`Hash '${i}' is unknown or not supported. Must be ${a}`,"ERR_UNSUPPORTED_HASH_TYPE")}let s=gd[i],o=(0,xd.default)(e,t,r,n,s);return Ed.default.encode64(o,null)}var Se=yt(Au(),1);Se.default.formatters.b=e=>e==null?"undefined":Ct.baseEncode(e);Se.default.formatters.t=e=>e==null?"undefined":Ee.baseEncode(e);Se.default.formatters.m=e=>e==null?"undefined":ln.baseEncode(e);Se.default.formatters.p=e=>e==null?"undefined":e.toString();Se.default.formatters.c=e=>e==null?"undefined":e.toString();Se.default.formatters.k=e=>e==null?"undefined":e.toString();Se.default.formatters.a=e=>e==null?"undefined":e.toString();function wb(e){let t=()=>{};return t.enabled=!1,t.color="",t.diff=0,t.log=()=>{},t.namespace=e,t.destroy=()=>!0,t.extend=()=>t,t}function rt(e){let t=wb(`${e}:trace`);return Se.default.enabled(`${e}:trace`)&&Se.default.names.map(r=>r.toString()).find(r=>r.includes(":trace"))!=null&&(t=(0,Se.default)(`${e}:trace`)),Object.assign((0,Se.default)(e),{error:(0,Se.default)(`${e}:error`),trace:t})}var Iu=Symbol.for("@libp2p/peer-id");function Ao(e){return e!=null&&!!e[Iu]}var vb=Symbol.for("nodejs.util.inspect.custom"),_d=Object.values(Nr).map(e=>e.decoder).reduce((e,t)=>e.or(t),Nr.identity.decoder),Sd=114,Ru=36,Cu=37,as=class{type;multihash;privateKey;publicKey;string;constructor(t){this.type=t.type,this.multihash=t.multihash,this.privateKey=t.privateKey,Object.defineProperty(this,"string",{enumerable:!1,writable:!0})}get[Symbol.toStringTag](){return`PeerId(${this.toString()})`}[Iu]=!0;toString(){return this.string==null&&(this.string=Ct.encode(this.multihash.bytes).slice(1)),this.string}toCID(){return Ue.createV1(Sd,this.multihash)}toBytes(){return this.multihash.bytes}toJSON(){return this.toString()}equals(t){if(t instanceof Uint8Array)return Tt(this.multihash.bytes,t);if(typeof t=="string")return lt(t).equals(this);if(t?.multihash?.bytes!=null)return Tt(this.multihash.bytes,t.multihash.bytes);throw new Error("not valid Id")}[vb](){return`PeerId(${this.toString()})`}},Sn=class extends as{type="RSA";publicKey;constructor(t){super({...t,type:"RSA"}),this.publicKey=t.publicKey}},An=class extends as{type="Ed25519";publicKey;constructor(t){super({...t,type:"Ed25519"}),this.publicKey=t.multihash.digest}},In=class extends as{type="secp256k1";publicKey;constructor(t){super({...t,type:"secp256k1"}),this.publicKey=t.multihash.digest}};function Ad(e){if(e.type==="RSA")return new Sn(e);if(e.type==="Ed25519")return new An(e);if(e.type==="secp256k1")return new In(e);throw new w("Not a PeerId","ERR_INVALID_PARAMETERS")}function lt(e,t){if(t=t??_d,e.charAt(0)==="1"||e.charAt(0)==="Q"){let r=fn(Ct.decode(`z${e}`));return e.startsWith("12D")?new An({multihash:r}):e.startsWith("16U")?new In({multihash:r}):new Sn({multihash:r})}return fi(_d.decode(e))}function fi(e){try{let t=fn(e);if(t.code===Dr.code){if(t.digest.length===Ru)return new An({multihash:t});if(t.digest.length===Cu)return new In({multihash:t})}if(t.code===ee.code)return new Sn({multihash:t})}catch{return _b(Ue.decode(e))}throw new Error("Supplied PeerID CID is invalid")}function _b(e){if(e==null||e.multihash==null||e.version==null||e.version===1&&e.code!==Sd)throw new Error("Supplied PeerID CID is invalid");let t=e.multihash;if(t.code===ee.code)return new Sn({multihash:e.multihash});if(t.code===Dr.code){if(t.digest.length===Ru)return new An({multihash:e.multihash});if(t.digest.length===Cu)return new In({multihash:e.multihash})}throw new Error("Supplied PeerID CID is invalid")}async function hi(e,t){return e.length===Ru?new An({multihash:Je(Dr.code,e),privateKey:t}):e.length===Cu?new In({multihash:Je(Dr.code,e),privateKey:t}):new Sn({multihash:await ee.digest(e),publicKey:e,privateKey:t})}var Io=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,r)=>(r&=63,r<36?t+=r.toString(36):r<62?t+=(r-26).toString(36).toUpperCase():r>62?t+="-":t+="_",t),"");var vr="/",Id=new TextEncoder().encode(vr),Ro=Id[0],rr=class e{_buf;constructor(t,r){if(typeof t=="string")this._buf=z(t);else if(t instanceof Uint8Array)this._buf=t;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]!==Ro)throw new Error("Invalid key")}toString(t="utf8"){return X(this._buf,t)}uint8Array(){return this._buf}get[Symbol.toStringTag](){return`Key(${this.toString()})`}static withNamespaces(t){return new e(t.join(vr))}static random(){return new e(Io().replace(/-/g,""))}static asKey(t){return t instanceof Uint8Array||typeof t=="string"?new e(t):typeof t.uint8Array=="function"?new e(t.uint8Array()):null}clean(){if((this._buf==null||this._buf.byteLength===0)&&(this._buf=Id),this._buf[0]!==Ro){let t=new Uint8Array(this._buf.byteLength+1);t.fill(Ro,0,1),t.set(this._buf,1),this._buf=t}for(;this._buf.byteLength>1&&this._buf[this._buf.byteLength-1]===Ro;)this._buf=this._buf.subarray(0,-1)}less(t){let r=this.list(),n=t.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 e.withNamespaces(this.list().slice().reverse())}namespaces(){return this.list()}baseNamespace(){let t=this.namespaces();return t[t.length-1]}list(){return this.toString().split(vr).slice(1)}type(){return Sb(this.baseNamespace())}name(){return Ab(this.baseNamespace())}instance(t){return new e(this.toString()+":"+t)}path(){let t=this.parent().toString();return t.endsWith(vr)||(t+=vr),t+=this.type(),new e(t)}parent(){let t=this.list();return t.length===1?new e(vr):new e(t.slice(0,-1).join(vr))}child(t){return this.toString()===vr?t:t.toString()===vr?this:new e(this.toString()+t.toString(),!1)}isAncestorOf(t){return t.toString()===this.toString()?!1:t.toString().startsWith(this.toString())}isDecendantOf(t){return t.toString()===this.toString()?!1:this.toString().startsWith(t.toString())}isTopLevel(){return this.list().length===1}concat(...t){return e.withNamespaces([...this.namespaces(),...Ib(t.map(r=>r.namespaces()))])}};function Sb(e){let t=e.split(":");return t.length<2?"":t.slice(0,-1).join(":")}function Ab(e){let t=e.split(":");return t[t.length-1]}function Ib(e){return[].concat(...e)}var kd=yt(Nd(),1),qr=kd.default;var zd=yt(Hd(),1);var ot;(function(e){e.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",e.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",e.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",e.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",e.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",e.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",e.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",e.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",e.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",e.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",e.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",e.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",e.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",e.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",e.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH"})(ot||(ot={}));var Bo=rt("libp2p:keychain"),Hb="/pkcs8/",Gd="/info/",Rn=new WeakMap,Cn={minKeyLength:112/8,minSaltLength:128/8,minIterationCount:1e3},Bu={dek:{keyLength:512/8,iterationCount:1e4,salt:"you should override this value with a crypto secure random number",hash:"sha2-512"}};function _r(e){return e==null||typeof e!="string"?!1:e===(0,zd.default)(e.trim())&&e.length>0}async function xt(){let r=Math.random()*800+200;await new Promise(n=>setTimeout(n,r))}function nr(e){return new rr(Hb+e)}function $r(e){return new rr(Gd+e)}var Tn=class{components;init;constructor(t,r){if(this.components=t,this.init=qr(Bu,r),this.init.pass!=null&&this.init.pass?.length<20)throw new Error("pass must be least 20 characters");if(this.init.dek?.keyLength!=null&&this.init.dek.keyLength<Cn.minKeyLength)throw new Error(`dek.keyLength must be least ${Cn.minKeyLength} bytes`);if(this.init.dek?.salt?.length!=null&&this.init.dek.salt.length<Cn.minSaltLength)throw new Error(`dek.saltLength must be least ${Cn.minSaltLength} bytes`);if(this.init.dek?.iterationCount!=null&&this.init.dek.iterationCount<Cn.minIterationCount)throw new Error(`dek.iterationCount must be least ${Cn.minIterationCount}`);let n=this.init.pass!=null&&this.init.dek?.salt!=null?os(this.init.pass,this.init.dek?.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";Rn.set(this,{dek:n})}static generateOptions(){let t=Object.assign({},Bu),r=Math.ceil(Cn.minSaltLength/3)*3;return t.dek.salt=X(bn(r),"base64"),t}static get options(){return Bu}async createKey(t,r,n=2048){if(!_r(t)||t==="self")throw await xt(),new w("Invalid key name",ot.ERR_INVALID_KEY_NAME);if(typeof r!="string")throw await xt(),new w("Invalid key type",ot.ERR_INVALID_KEY_TYPE);let i=nr(t);if(await this.components.datastore.has(i))throw await xt(),new w("Key name already exists",ot.ERR_KEY_ALREADY_EXISTS);switch(r.toLowerCase()){case"rsa":if(!Number.isSafeInteger(n)||n<2048)throw await xt(),new w("Invalid RSA key size",ot.ERR_INVALID_KEY_SIZE);break;default:break}let o;try{let a=await vo(r,n),c=await a.id(),u=Rn.get(this);if(u==null)throw new w("dek missing",ot.ERR_INVALID_PARAMETERS);let l=u.dek,f=await a.export(l);o={name:t,id:c};let h=this.components.datastore.batch();h.put(i,z(f)),h.put($r(t),z(JSON.stringify(o))),await h.commit()}catch(a){throw await xt(),a}return o}async listKeys(){let t={prefix:Gd},r=[];for await(let n of this.components.datastore.query(t))r.push(JSON.parse(X(n.value)));return r}async findKeyById(t){try{let n=(await this.listKeys()).find(i=>i.id===t);if(n==null)throw new w(`Key with id '${t}' does not exist.`,ot.ERR_KEY_NOT_FOUND);return n}catch(r){throw await xt(),r}}async findKeyByName(t){if(!_r(t))throw await xt(),new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);let r=$r(t);try{let n=await this.components.datastore.get(r);return JSON.parse(X(n))}catch(n){throw await xt(),Bo.error(n),new w(`Key '${t}' does not exist.`,ot.ERR_KEY_NOT_FOUND)}}async removeKey(t){if(!_r(t)||t==="self")throw await xt(),new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);let r=nr(t),n=await this.findKeyByName(t),i=this.components.datastore.batch();return i.delete(r),i.delete($r(t)),await i.commit(),n}async renameKey(t,r){if(!_r(t)||t==="self")throw await xt(),new w(`Invalid old key name '${t}'`,ot.ERR_OLD_KEY_NAME_INVALID);if(!_r(r)||r==="self")throw await xt(),new w(`Invalid new key name '${r}'`,ot.ERR_NEW_KEY_NAME_INVALID);let n=nr(t),i=nr(r),s=$r(t),o=$r(r);if(await this.components.datastore.has(i))throw await xt(),new w(`Key '${r}' already exists`,ot.ERR_KEY_ALREADY_EXISTS);try{let c=await this.components.datastore.get(n),u=await this.components.datastore.get(s),l=JSON.parse(X(u));l.name=r;let f=this.components.datastore.batch();return f.put(i,c),f.put(o,z(JSON.stringify(l))),f.delete(n),f.delete(s),await f.commit(),l}catch(c){throw await xt(),c}}async exportKey(t,r){if(!_r(t))throw await xt(),new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);if(r==null)throw await xt(),new w("Password is required",ot.ERR_PASSWORD_REQUIRED);let n=nr(t);try{let i=await this.components.datastore.get(n),s=X(i),o=Rn.get(this);if(o==null)throw new w("dek missing",ot.ERR_INVALID_PARAMETERS);let a=o.dek;return await(await is(s,a)).export(r)}catch(i){throw await xt(),i}}async exportPeerId(t){let r="temporary-password",n=await this.exportKey(t,r),i=await is(n,r);return hi(i.public.bytes,i.bytes)}async importKey(t,r,n){if(!_r(t)||t==="self")throw await xt(),new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);if(r==null)throw await xt(),new w("PEM encoded key is required",ot.ERR_PEM_REQUIRED);let i=nr(t);if(await this.components.datastore.has(i))throw await xt(),new w(`Key '${t}' already exists`,ot.ERR_KEY_ALREADY_EXISTS);let o;try{o=await is(r,n)}catch{throw await xt(),new w("Cannot read the key, most likely the password is wrong",ot.ERR_CANNOT_READ_KEY)}let a;try{a=await o.id();let l=Rn.get(this);if(l==null)throw new w("dek missing",ot.ERR_INVALID_PARAMETERS);let f=l.dek;r=await o.export(f)}catch(l){throw await xt(),l}let c={name:t,id:a},u=this.components.datastore.batch();return u.put(i,z(r)),u.put($r(t),z(JSON.stringify(c))),await u.commit(),c}async importPeer(t,r){try{if(!_r(t))throw new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);if(r==null)throw new w("PeerId is required",ot.ERR_MISSING_PRIVATE_KEY);if(r.privateKey==null)throw new w("PeerId.privKey is required",ot.ERR_MISSING_PRIVATE_KEY);let n=await ai(r.privateKey),i=nr(t);if(await this.components.datastore.has(i))throw await xt(),new w(`Key '${t}' already exists`,ot.ERR_KEY_ALREADY_EXISTS);let o=Rn.get(this);if(o==null)throw new w("dek missing",ot.ERR_INVALID_PARAMETERS);let a=o.dek,c=await n.export(a),u={name:t,id:r.toString()},l=this.components.datastore.batch();return l.put(i,z(c)),l.put($r(t),z(JSON.stringify(u))),await l.commit(),u}catch(n){throw await xt(),n}}async getPrivateKey(t){if(!_r(t))throw await xt(),new w(`Invalid key name '${t}'`,ot.ERR_INVALID_KEY_NAME);try{let r=nr(t),n=await this.components.datastore.get(r);return X(n)}catch(r){throw await xt(),Bo.error(r),new w(`Key '${t}' does not exist.`,ot.ERR_KEY_NOT_FOUND)}}async rotateKeychainPass(t,r){if(typeof t!="string")throw await xt(),new w(`Invalid old pass type '${typeof t}'`,ot.ERR_INVALID_OLD_PASS_TYPE);if(typeof r!="string")throw await xt(),new w(`Invalid new pass type '${typeof r}'`,ot.ERR_INVALID_NEW_PASS_TYPE);if(r.length<20)throw await xt(),new w(`Invalid pass length ${r.length}`,ot.ERR_INVALID_PASS_LENGTH);Bo("recreating keychain");let n=Rn.get(this);if(n==null)throw new w("dek missing",ot.ERR_INVALID_PARAMETERS);let i=n.dek;this.init.pass=r;let s=r!=null&&this.init.dek?.salt!=null?os(r,this.init.dek.salt,this.init.dek?.iterationCount,this.init.dek?.keyLength,this.init.dek?.hash):"";Rn.set(this,{dek:s});let o=await this.listKeys();for(let a of o){let c=await this.components.datastore.get(nr(a.name)),u=X(c),l=await is(u,i),f=s.toString(),h=await l.export(f),p=this.components.datastore.batch(),d={name:a.name,id:a.id};p.put(nr(a.name),z(h)),p.put($r(a.name),z(JSON.stringify(d))),await p.commit()}Bo("keychain reconstructed")}};function Sr(e,t){let r={[Symbol.iterator]:()=>r,next:()=>{let n=e.next(),i=n.value;return n.done===!0||i==null?{done:!0,value:void 0}:{done:!1,value:t(i)}}};return r}var Ae=class{map;constructor(t){if(this.map=new Map,t!=null)for(let[r,n]of t.entries())this.map.set(r.toString(),n)}[Symbol.iterator](){return this.entries()}clear(){this.map.clear()}delete(t){this.map.delete(t.toString())}entries(){return Sr(this.map.entries(),t=>[lt(t[0]),t[1]])}forEach(t){this.map.forEach((r,n)=>{t(r,lt(n),this)})}get(t){return this.map.get(t.toString())}has(t){return this.map.has(t.toString())}set(t,r){this.map.set(t.toString(),r)}keys(){return Sr(this.map.keys(),t=>lt(t))}values(){return this.map.values()}get size(){return this.map.size}};var Bn=class e{set;constructor(t){if(this.set=new Set,t!=null)for(let r of t)this.set.add(r.toString())}get size(){return this.set.size}[Symbol.iterator](){return this.values()}add(t){this.set.add(t.toString())}clear(){this.set.clear()}delete(t){this.set.delete(t.toString())}entries(){return Sr(this.set.entries(),t=>{let r=lt(t[0]);return[r,r]})}forEach(t){this.set.forEach(r=>{let n=lt(r);t(n,n,this)})}has(t){return this.set.has(t.toString())}values(){return Sr(this.set.values(),t=>lt(t))}intersection(t){let r=new e;for(let n of t)this.has(n)&&r.add(n);return r}difference(t){let r=new e;for(let n of this)t.has(n)||r.add(n);return r}union(t){let r=new e;for(let n of t)r.add(n);for(let n of this)r.add(n);return r}};var Lu=class e{list;constructor(t){if(this.list=[],t!=null)for(let r of t)this.list.push(r.toString())}[Symbol.iterator](){return Sr(this.list.entries(),t=>lt(t[1]))}concat(t){let r=new e(this);for(let n of t)r.push(n);return r}entries(){return Sr(this.list.entries(),t=>[t[0],lt(t[1])])}every(t){return this.list.every((r,n)=>t(lt(r),n,this))}filter(t){let r=new e;return this.list.forEach((n,i)=>{let s=lt(n);t(s,i,this)&&r.push(s)}),r}find(t){let r=this.list.find((n,i)=>t(lt(n),i,this));if(r!=null)return lt(r)}findIndex(t){return this.list.findIndex((r,n)=>t(lt(r),n,this))}forEach(t){this.list.forEach((r,n)=>{t(lt(r),n,this)})}includes(t){return this.list.includes(t.toString())}indexOf(t){return this.list.indexOf(t.toString())}pop(){let t=this.list.pop();if(t!=null)return lt(t)}push(...t){for(let r of t)this.list.push(r.toString())}shift(){let t=this.list.shift();if(t!=null)return lt(t)}unshift(...t){let r=this.list.length;for(let n=t.length-1;n>-1;n--)r=this.list.unshift(t[n].toString());return r}get length(){return this.list.length}};var Pu;(function(e){let t;e.codec=()=>(t==null&&(t=ie((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})),t),e.encode=r=>ne(r,e.codec()),e.decode=r=>re(r,e.codec())})(Pu||(Pu={}));var Yd=async()=>{let e=await vo("Ed25519"),t=await zb(e);if(t.type==="Ed25519")return t;throw new Error(`Generated unexpected PeerId type "${t.type}"`)};async function zb(e){return hi(md(e.public),yd(e))}var Gb=Math.pow(2,7),Yb=Math.pow(2,14),Wb=Math.pow(2,21),Du=Math.pow(2,28),Nu=Math.pow(2,35),ku=Math.pow(2,42),Ou=Math.pow(2,49),ft=128,ue=127;function ge(e){if(e<Gb)return 1;if(e<Yb)return 2;if(e<Wb)return 3;if(e<Du)return 4;if(e<Nu)return 5;if(e<ku)return 6;if(e<Ou)return 7;if(Number.MAX_SAFE_INTEGER!=null&&e>Number.MAX_SAFE_INTEGER)throw new RangeError("Could not encode varint");return 8}function Qb(e,t,r=0){switch(ge(e)){case 8:t[r++]=e&255|ft,e/=128;case 7:t[r++]=e&255|ft,e/=128;case 6:t[r++]=e&255|ft,e/=128;case 5:t[r++]=e&255|ft,e/=128;case 4:t[r++]=e&255|ft,e>>>=7;case 3:t[r++]=e&255|ft,e>>>=7;case 2:t[r++]=e&255|ft,e>>>=7;case 1:{t[r++]=e&255,e>>>=7;break}default:throw new Error("unreachable")}return t}function Xb(e,t,r=0){switch(ge(e)){case 8:t.set(r++,e&255|ft),e/=128;case 7:t.set(r++,e&255|ft),e/=128;case 6:t.set(r++,e&255|ft),e/=128;case 5:t.set(r++,e&255|ft),e/=128;case 4:t.set(r++,e&255|ft),e>>>=7;case 3:t.set(r++,e&255|ft),e>>>=7;case 2:t.set(r++,e&255|ft),e>>>=7;case 1:{t.set(r++,e&255),e>>>=7;break}default:throw new Error("unreachable")}return t}function Zb(e,t){let r=e[t],n=0;if(n+=r&ue,r<ft||(r=e[t+1],n+=(r&ue)<<7,r<ft)||(r=e[t+2],n+=(r&ue)<<14,r<ft)||(r=e[t+3],n+=(r&ue)<<21,r<ft)||(r=e[t+4],n+=(r&ue)*Du,r<ft)||(r=e[t+5],n+=(r&ue)*Nu,r<ft)||(r=e[t+6],n+=(r&ue)*ku,r<ft)||(r=e[t+7],n+=(r&ue)*Ou,r<ft))return n;throw new RangeError("Could not decode varint")}function Jb(e,t){let r=e.get(t),n=0;if(n+=r&ue,r<ft||(r=e.get(t+1),n+=(r&ue)<<7,r<ft)||(r=e.get(t+2),n+=(r&ue)<<14,r<ft)||(r=e.get(t+3),n+=(r&ue)<<21,r<ft)||(r=e.get(t+4),n+=(r&ue)*Du,r<ft)||(r=e.get(t+5),n+=(r&ue)*Nu,r<ft)||(r=e.get(t+6),n+=(r&ue)*ku,r<ft)||(r=e.get(t+7),n+=(r&ue)*Ou,r<ft))return n;throw new RangeError("Could not decode varint")}function De(e,t,r=0){return t==null&&(t=ae(ge(e))),t instanceof Uint8Array?Qb(e,t,r):Xb(e,t,r)}function Ar(e,t=0){return e instanceof Uint8Array?Zb(e,t):Jb(e,t)}var Qd=Symbol.for("@achingbrain/uint8arraylist");function Wd(e,t){if(t==null||t<0)throw new RangeError("index is out of bounds");let r=0;for(let n of e){let i=r+n.byteLength;if(t<i)return{buf:n,index:t-r};r=i}throw new RangeError("index is out of bounds")}function Lo(e){return!!e?.[Qd]}var Xt=class e{constructor(...t){Object.defineProperty(this,Qd,{value:!0}),this.bufs=[],this.length=0,t.length>0&&this.appendAll(t)}*[Symbol.iterator](){yield*this.bufs}get byteLength(){return this.length}append(...t){this.appendAll(t)}appendAll(t){let r=0;for(let n of t)if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.push(n);else if(Lo(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(...t){this.prependAll(t)}prependAll(t){let r=0;for(let n of t.reverse())if(n instanceof Uint8Array)r+=n.byteLength,this.bufs.unshift(n);else if(Lo(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(t){let r=Wd(this.bufs,t);return r.buf[r.index]}set(t,r){let n=Wd(this.bufs,t);n.buf[n.index]=r}write(t,r=0){if(t instanceof Uint8Array)for(let n=0;n<t.length;n++)this.set(r+n,t[n]);else if(Lo(t))for(let n=0;n<t.length;n++)this.set(r+n,t.get(n));else throw new Error("Could not write value, must be an Uint8Array or a Uint8ArrayList")}consume(t){if(t=Math.trunc(t),!(Number.isNaN(t)||t<=0)){if(t===this.byteLength){this.bufs=[],this.length=0;return}for(;this.bufs.length>0;)if(t>=this.bufs[0].byteLength)t-=this.bufs[0].byteLength,this.length-=this.bufs[0].byteLength,this.bufs.shift();else{this.bufs[0]=this.bufs[0].subarray(t),this.length-=t;break}}}slice(t,r){let{bufs:n,length:i}=this._subList(t,r);return kt(n,i)}subarray(t,r){let{bufs:n,length:i}=this._subList(t,r);return n.length===1?n[0]:kt(n,i)}sublist(t,r){let{bufs:n,length:i}=this._subList(t,r),s=new e;return s.length=i,s.bufs=n,s}_subList(t,r){if(t=t??0,r=r??this.length,t<0&&(t=this.length+t),r<0&&(r=this.length+r),t<0||r>this.length)throw new RangeError("index is out of bounds");if(t===r)return{bufs:[],length:0};if(t===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,t>=c)continue;let u=t>=a&&t<c,l=r>a&&r<=c;if(u&&l){if(t===a&&r===c){n.push(o);break}let f=t-a;n.push(o.subarray(f,f+(r-t)));break}if(u){if(t===0){n.push(o);continue}n.push(o.subarray(t-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-t}}indexOf(t,r=0){if(!Lo(t)&&!(t instanceof Uint8Array))throw new TypeError('The "value" argument must be a Uint8ArrayList or Uint8Array');let n=t instanceof Uint8Array?t:t.subarray();if(r=Number(r??0),isNaN(r)&&(r=0),r<0&&(r=this.length+r),r<0&&(r=0),t.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(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getInt8(0)}setInt8(t,r){let n=ae(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setInt8(0,r),this.write(n,t)}getInt16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt16(0,r)}setInt16(t,r,n){let i=hr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt16(0,r,n),this.write(i,t)}getInt32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getInt32(0,r)}setInt32(t,r,n){let i=hr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setInt32(0,r,n),this.write(i,t)}getBigInt64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigInt64(0,r)}setBigInt64(t,r,n){let i=hr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigInt64(0,r,n),this.write(i,t)}getUint8(t){let r=this.subarray(t,t+1);return new DataView(r.buffer,r.byteOffset,r.byteLength).getUint8(0)}setUint8(t,r){let n=ae(1);new DataView(n.buffer,n.byteOffset,n.byteLength).setUint8(0,r),this.write(n,t)}getUint16(t,r){let n=this.subarray(t,t+2);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint16(0,r)}setUint16(t,r,n){let i=hr(2);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint16(0,r,n),this.write(i,t)}getUint32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getUint32(0,r)}setUint32(t,r,n){let i=hr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setUint32(0,r,n),this.write(i,t)}getBigUint64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getBigUint64(0,r)}setBigUint64(t,r,n){let i=hr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setBigUint64(0,r,n),this.write(i,t)}getFloat32(t,r){let n=this.subarray(t,t+4);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat32(0,r)}setFloat32(t,r,n){let i=hr(4);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat32(0,r,n),this.write(i,t)}getFloat64(t,r){let n=this.subarray(t,t+8);return new DataView(n.buffer,n.byteOffset,n.byteLength).getFloat64(0,r)}setFloat64(t,r,n){let i=hr(8);new DataView(i.buffer,i.byteOffset,i.byteLength).setFloat64(0,r,n),this.write(i,t)}equals(t){if(t==null||!(t instanceof e)||t.bufs.length!==this.bufs.length)return!1;for(let r=0;r<this.bufs.length;r++)if(!Tt(this.bufs[r],t.bufs[r]))return!1;return!0}static fromUint8Arrays(t,r){let n=new e;return n.bufs=t,r==null&&(r=t.reduce((i,s)=>i+s.byteLength,0)),n.length=r,n}};var Xd={ERR_SIGNATURE_NOT_VALID:"ERR_SIGNATURE_NOT_VALID"};var us;(function(e){let t;e.codec=()=>(t==null&&(t=ie((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})),t),e.encode=r=>ne(r,e.codec()),e.decode=r=>re(r,e.codec())})(us||(us={}));var mi=class e{static createFromProtobuf=async t=>{let r=us.decode(t),n=await hi(r.publicKey);return new e({peerId:n,payloadType:r.payloadType,payload:r.payload,signature:r.signature})};static seal=async(t,r)=>{if(r.privateKey==null)throw new Error("Missing private key");let n=t.domain,i=t.codec,s=t.marshal(),o=Zd(n,i,s),c=await(await ai(r.privateKey)).sign(o.subarray());return new e({peerId:r,payloadType:i,payload:s,signature:c})};static openAndCertify=async(t,r)=>{let n=await e.createFromProtobuf(t);if(!await n.validate(r))throw new w("envelope signature is not valid for the given domain",Xd.ERR_SIGNATURE_NOT_VALID);return n};peerId;payloadType;payload;signature;marshaled;constructor(t){let{peerId:r,payloadType:n,payload:i,signature:s}=t;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=us.encode({publicKey:this.peerId.publicKey,payloadType:this.payloadType,payload:this.payload.subarray(),signature:this.signature})),this.marshaled}equals(t){return Tt(this.marshal(),t.marshal())}async validate(t){let r=Zd(t,this.payloadType,this.payload);if(this.peerId.publicKey==null)throw new Error("Missing public key");return ns(this.peerId.publicKey).verify(r.subarray(),this.signature)}},Zd=(e,t,r)=>{let n=z(e),i=De(n.byteLength),s=De(t.length),o=De(r.length);return new Xt(i,n,s,t,o,r)};function Jd(e,t){let r=(n,i)=>n.toString().localeCompare(i.toString());return e.length!==t.length?!1:(t.sort(r),e.sort(r).every((n,i)=>t[i].equals(n)))}var Po=class{index=0;input="";new(t){return this.index=0,this.input=t,this}readAtomically(t){let r=this.index,n=t();return n===void 0&&(this.index=r),n}parseWith(t){let r=t();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(t){return this.readAtomically(()=>{let r=this.readChar();if(r===t)return r})}readSeparator(t,r,n){return this.readAtomically(()=>{if(!(r>0&&this.readGivenChar(t)===void 0))return n()})}readNumber(t,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,t);if(!Number.isNaN(h))return h});if(l===void 0)break;if(s*=t,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 t=new Uint8Array(4);for(let r=0;r<t.length;r++){let n=this.readSeparator(".",r,()=>this.readNumber(10,3,!1,1));if(n===void 0)return;t[r]=n}return t})}readIPv6Addr(){let t=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]=t(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]=t(s.subarray(0,o));return r.set(s.subarray(0,a),16-a),r})}readIPAddr(){return this.readIPv4Addr()??this.readIPv6Addr()}};var jd=45,jb=15,yi=new Po;function Mu(e){if(!(e.length>jb))return yi.new(e).parseWith(()=>yi.readIPv4Addr())}function Uu(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>jd))return yi.new(e).parseWith(()=>yi.readIPv6Addr())}function Do(e){if(e.includes("%")&&(e=e.split("%")[0]),!(e.length>jd))return yi.new(e).parseWith(()=>yi.readIPAddr())}var sC=parseInt("0xFFFF",16),oC=new Uint8Array([0,0,0,0,0,0,0,0,0,0,255,255]);function No(e){return!!Mu(e)}function ko(e){return!!Uu(e)}function gi(e){return!!Do(e)}var rp=No,iw=ko,Fu=function(e){let t=0;if(e=e.toString().trim(),rp(e)){let r=new Uint8Array(t+4);return e.split(/\./g).forEach(n=>{r[t++]=parseInt(n,10)&255}),r}if(iw(e)){let r=e.split(":",8),n;for(n=0;n<r.length;n++){let s=rp(r[n]),o;s&&(o=Fu(r[n]),r[n]=X(o.slice(0,2),"base16")),o!=null&&++n<8&&r.splice(n,0,X(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(t+16);for(n=0;n<r.length;n++){let s=parseInt(r[n],16);i[t++]=s>>8&255,i[t++]=s&255}return i}throw new Error("invalid ip address")},np=function(e,t=0,r){t=~~t,r=r??e.length-t;let n=new DataView(e.buffer);if(r===4){let i=[];for(let s=0;s<r;s++)i.push(e[t+s]);return i.join(".")}if(r===16){let i=[];for(let s=0;s<r;s+=2)i.push(n.getUint16(t+s).toString(16));return i.join(":").replace(/(^|:)0(:0)*:0(:|$)/,"$1::$3").replace(/:{3,4}/,"::")}return""};var xi={},Ku={},ow=[[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"]];ow.forEach(e=>{let t=aw(...e);Ku[t.code]=t,xi[t.name]=t});function aw(e,t,r,n,i){return{code:e,size:t,name:r,resolvable:!!n,path:!!i}}function pt(e){if(typeof e=="number"){if(Ku[e]!=null)return Ku[e];throw new Error(`no protocol with code: ${e}`)}else if(typeof e=="string"){if(xi[e]!=null)return xi[e];throw new Error(`no protocol with name: ${e}`)}throw new Error(`invalid protocol id type: ${typeof e}`)}var $C=pt("ip4"),HC=pt("ip6"),zC=pt("ipcidr");function qu(e,t){switch(pt(e).code){case 4:case 41:return uw(t);case 42:return op(t);case 6:case 273:case 33:case 132:return cp(t).toString();case 53:case 54:case 55:case 56:case 400:case 449:case 777:return op(t);case 421:return dw(t);case 444:return ap(t);case 445:return ap(t);case 466:return hw(t);default:return X(t,"base16")}}function $u(e,t){switch(pt(e).code){case 4:return ip(t);case 41:return ip(t);case 42:return sp(t);case 6:case 273:case 33:case 132:return Hu(parseInt(t,10));case 53:case 54:case 55:case 56:case 400:case 449:case 777:return sp(t);case 421:return lw(t);case 444:return pw(t);case 445:return mw(t);case 466:return fw(t);default:return z(t,"base16")}}var Vu=Object.values(Nr).map(e=>e.decoder),cw=function(){let e=Vu[0].or(Vu[1]);return Vu.slice(2).forEach(t=>e=e.or(t)),e}();function ip(e){if(!gi(e))throw new Error("invalid ip address");return Fu(e)}function uw(e){let t=np(e,0,e.length);if(t==null)throw new Error("ipBuff is required");if(!gi(t))throw new Error("invalid ip address");return t}function Hu(e){let t=new ArrayBuffer(2);return new DataView(t).setUint16(0,e),new Uint8Array(t)}function cp(e){return new DataView(e.buffer).getUint16(e.byteOffset)}function sp(e){let t=z(e),r=Uint8Array.from(De(t.length));return kt([r,t],r.length+t.length)}function op(e){let t=Ar(e);if(e=e.slice(ge(t)),e.length!==t)throw new Error("inconsistent lengths");return X(e)}function lw(e){let t;e[0]==="Q"||e[0]==="1"?t=fn(Ct.decode(`z${e}`)).bytes:t=Ue.parse(e).multihash.bytes;let r=Uint8Array.from(De(t.length));return kt([r,t],r.length+t.length)}function fw(e){let t=cw.decode(e),r=Uint8Array.from(De(t.length));return kt([r,t],r.length+t.length)}function hw(e){let t=Ar(e),r=e.slice(ge(t));if(r.length!==t)throw new Error("inconsistent lengths");return"u"+X(r,"base64url")}function dw(e){let t=Ar(e),r=e.slice(ge(t));if(r.length!==t)throw new Error("inconsistent lengths");return X(r,"base58btc")}function pw(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==16)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion address.`);let r=Ee.decode("b"+t[0]),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=Hu(n);return kt([r,i],r.length+i.length)}function mw(e){let t=e.split(":");if(t.length!==2)throw new Error(`failed to parse onion addr: ["'${t.join('", "')}'"]' does not contain a port number`);if(t[0].length!==56)throw new Error(`failed to parse onion addr: ${t[0]} not a Tor onion3 address.`);let r=Ee.decode(`b${t[0]}`),n=parseInt(t[1],10);if(n<1||n>65536)throw new Error("Port number is not in range(1, 65536)");let i=Hu(n);return kt([r,i],r.length+i.length)}function ap(e){let t=e.slice(0,e.length-2),r=e.slice(e.length-2),n=X(t,"base32"),i=cp(r);return`${n}:${i}`}function up(e){e=zu(e);let t=[],r=[],n=null,i=e.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=pt(o);if(a.size===0){t.push([a.code]),r.push([a.code]);continue}if(s++,s>=i.length)throw fp("invalid address: "+e);if(a.path===!0){n=zu(i.slice(s).join("/")),t.push([a.code,$u(a.code,n)]),r.push([a.code,n]);break}let c=$u(a.code,i[s]);t.push([a.code,c]),r.push([a.code,qu(a.code,c)])}return{string:lp(r),bytes:Yu(t),tuples:t,stringTuples:r,path:n}}function Gu(e){let t=[],r=[],n=null,i=0;for(;i<e.length;){let s=Ar(e,i),o=ge(s),a=pt(s),c=yw(a,e.slice(i+o));if(c===0){t.push([s]),r.push([s]),i+=o;continue}let u=e.slice(i+o,i+o+c);if(i+=c+o,i>e.length)throw fp("Invalid address Uint8Array: "+X(e,"base16"));t.push([s,u]);let l=qu(s,u);if(r.push([s,l]),a.path===!0){n=l;break}}return{bytes:Uint8Array.from(e),string:lp(r),tuples:t,stringTuples:r,path:n}}function lp(e){let t=[];return e.map(r=>{let n=pt(r[0]);return t.push(n.name),r.length>1&&r[1]!=null&&t.push(r[1]),null}),zu(t.join("/"))}function Yu(e){return kt(e.map(t=>{let r=pt(t[0]),n=Uint8Array.from(De(r.code));return t.length>1&&t[1]!=null&&(n=kt([n,t[1]])),n}))}function yw(e,t){if(e.size>0)return e.size/8;if(e.size===0)return 0;{let r=Ar(t instanceof Uint8Array?t:Uint8Array.from(t));return r+ge(r)}}function zu(e){return"/"+e.trim().split("/").filter(t=>t).join("/")}function fp(e){return new Error("Error parsing address: "+e)}var gw=Symbol.for("nodejs.util.inspect.custom"),Wu=Symbol.for("@multiformats/js-multiaddr/multiaddr"),xw=[pt("dns").code,pt("dns4").code,pt("dns6").code,pt("dnsaddr").code],Oo=class e{bytes;#t;#e;#r;#n;[Wu]=!0;constructor(t){t==null&&(t="");let r;if(t instanceof Uint8Array)r=Gu(t);else if(typeof t=="string"){if(t.length>0&&t.charAt(0)!=="/")throw new Error(`multiaddr "${t}" must start with a "/"`);r=up(t)}else if(Hr(t))r=Gu(t.bytes);else throw new Error("addr must be a string, Buffer, or another Multiaddr");this.bytes=r.bytes,this.#t=r.string,this.#e=r.tuples,this.#r=r.stringTuples,this.#n=r.path}toString(){return this.#t}toJSON(){return this.toString()}toOptions(){let t,r,n,i,s="",o=pt("tcp"),a=pt("udp"),c=pt("ip4"),u=pt("ip6"),l=pt("dns6"),f=pt("ip6zone");for(let[p,d]of this.stringTuples())p===f.code&&(s=`%${d??""}`),xw.includes(p)&&(r=o.name,i=443,n=`${d??""}${s}`,t=p===l.code?6:4),(p===o.code||p===a.code)&&(r=pt(p).name,i=parseInt(d??"")),(p===c.code||p===u.code)&&(r=pt(p).name,n=`${d??""}${s}`,t=p===u.code?6:4);if(t==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:t,host:n,transport:r,port:i}}protos(){return this.#e.map(([t])=>Object.assign({},pt(t)))}protoCodes(){return this.#e.map(([t])=>t)}protoNames(){return this.#e.map(([t])=>pt(t).name)}tuples(){return this.#e}stringTuples(){return this.#r}encapsulate(t){return t=new e(t),new e(this.toString()+t.toString())}decapsulate(t){let r=t.toString(),n=this.toString(),i=n.lastIndexOf(r);if(i<0)throw new Error(`Address ${this.toString()} does not contain subaddress: ${t.toString()}`);return new e(n.slice(0,i))}decapsulateCode(t){let r=this.tuples();for(let n=r.length-1;n>=0;n--)if(r[n][0]===t)return new e(Yu(r.slice(0,n)));return this}getPeerId(){try{let t=[];this.stringTuples().forEach(([n,i])=>{n===xi.p2p.code&&t.push([n,i]),n===xi["p2p-circuit"].code&&(t=[])});let r=t.pop();if(r?.[1]!=null){let n=r[1];return n[0]==="Q"||n[0]==="1"?X(Ct.decode(`z${n}`),"base58btc"):X(Ue.parse(n).multihash.bytes,"base58btc")}return null}catch{return null}}getPath(){return this.#n}equals(t){return Tt(this.bytes,t.bytes)}async resolve(t){let r=this.protos().find(s=>s.resolvable);if(r==null)return[this];let n=Mo.get(r.name);if(n==null)throw new w(`no available resolver for ${r.name}`,"ERR_NO_AVAILABLE_RESOLVER");return(await n(this,t)).map(s=>new e(s))}nodeAddress(){let t=this.toOptions();if(t.transport!=="tcp"&&t.transport!=="udp")throw new Error(`multiaddr must have a valid format - no protocol with name: "${t.transport}". Must have a valid transport protocol: "{tcp, udp}"`);return{family:t.family,address:t.host,port:t.port}}isThinWaistAddress(t){let r=(t??this).protos();return!(r.length!==2||r[0].code!==4&&r[0].code!==41||r[1].code!==6&&r[1].code!==273)}[gw](){return`Multiaddr(${this.#t})`}};var Mo=new Map;function Hr(e){return!!e?.[Wu]}function Ht(e){return new Oo(e)}var hp="libp2p-peer-record",dp=Uint8Array.from([3,1]);var ls;(function(e){let t;(function(n){let i;n.codec=()=>(i==null&&(i=ie((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=>ne(s,n.codec()),n.decode=s=>re(s,n.codec())})(t=e.AddressInfo||(e.AddressInfo={}));let r;e.codec=()=>(r==null&&(r=ie((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),e.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(e.AddressInfo.codec().decode(n,n.uint32()));break;default:n.skipType(a&7);break}}return s})),r),e.encode=n=>ne(n,e.codec()),e.decode=n=>re(n,e.codec())})(ls||(ls={}));var Ln=class e{static createFromProtobuf=t=>{let r=ls.decode(t),n=fi(r.peerId),i=(r.addresses??[]).map(o=>Ht(o.multiaddr)),s=r.seq;return new e({peerId:n,multiaddrs:i,seqNumber:s})};static DOMAIN=hp;static CODEC=dp;peerId;multiaddrs;seqNumber;domain=e.DOMAIN;codec=e.CODEC;marshaled;constructor(t){let{peerId:r,multiaddrs:n,seqNumber:i}=t;this.peerId=r,this.multiaddrs=n??[],this.seqNumber=i??BigInt(Date.now())}marshal(){return this.marshaled==null&&(this.marshaled=ls.encode({peerId:this.peerId.toBytes(),seq:BigInt(this.seqNumber),addresses:this.multiaddrs.map(t=>({multiaddr:t.bytes}))})),this.marshaled}equals(t){return!(!(t instanceof e)||!this.peerId.equals(t.peerId)||this.seqNumber!==t.seqNumber||!Jd(this.multiaddrs,t.multiaddrs))}};function Ew(e){return e[Symbol.asyncIterator]!=null}function bw(e){if(Ew(e))return(async()=>{let r=[];for await(let n of e)r.push(n);return r})();let t=[];for(let r of e)t.push(r);return t}var fs=bw;var Xu=yt(mp(),1);var ds=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},Zu=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},yp=e=>globalThis.DOMException===void 0?new Zu(e):new DOMException(e),gp=e=>{let t=e.reason===void 0?yp("This operation was aborted."):e.reason;return t instanceof Error?t:yp(t)};function Ju(e,t,r,n){let i,s=new Promise((o,a)=>{if(typeof t!="number"||Math.sign(t)!==1)throw new TypeError(`Expected \`milliseconds\` to be a positive number, got \`${t}\``);if(t===Number.POSITIVE_INFINITY){o(e);return}if(n={customTimers:{setTimeout,clearTimeout},...n},n.signal){let{signal:c}=n;c.aborted&&a(gp(c)),c.addEventListener("abort",()=>{a(gp(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 ${t} milliseconds`,u=r instanceof Error?r:new ds(c);typeof e.cancel=="function"&&e.cancel(),a(u)},t),(async()=>{try{o(await e)}catch(c){a(c)}finally{n.customTimers.clearTimeout.call(void 0,i)}})()});return s.clear=()=>{clearTimeout(i),i=void 0},s}function ju(e,t,r){let n=0,i=e.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(e[o],t)<=0?(n=++o,i-=s+1):i=s}return n}var Pn=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Ir,tl=class{constructor(){Ir.set(this,[])}enqueue(t,r){r={priority:0,...r};let n={priority:r.priority,run:t};if(this.size&&Pn(this,Ir,"f")[this.size-1].priority>=r.priority){Pn(this,Ir,"f").push(n);return}let i=ju(Pn(this,Ir,"f"),n,(s,o)=>o.priority-s.priority);Pn(this,Ir,"f").splice(i,0,n)}dequeue(){let t=Pn(this,Ir,"f").shift();return t?.run}filter(t){return Pn(this,Ir,"f").filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return Pn(this,Ir,"f").length}};Ir=new WeakMap;var xp=tl;var Bt=function(e,t,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 t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return n==="a"?i.call(e,r):i?i.value=r:t.set(e,r),r},K=function(e,t,r,n){if(r==="a"&&!n)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!n:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return r==="m"?n:r==="a"?n.call(e):n?n.value:t.get(e)},Ot,ms,ys,Gr,Ho,gs,Fo,$e,ps,Ie,Ko,Re,xs,zr,Vo,Ep,bp,_p,wp,vp,qo,el,rl,zo,Sp,$o,Go=class extends Error{},nl=class extends Xu.default{constructor(t){var r,n,i,s;if(super(),Ot.add(this),ms.set(this,void 0),ys.set(this,void 0),Gr.set(this,0),Ho.set(this,void 0),gs.set(this,void 0),Fo.set(this,0),$e.set(this,void 0),ps.set(this,void 0),Ie.set(this,void 0),Ko.set(this,void 0),Re.set(this,0),xs.set(this,void 0),zr.set(this,void 0),Vo.set(this,void 0),Object.defineProperty(this,"timeout",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),t={carryoverConcurrencyCount:!1,intervalCap:Number.POSITIVE_INFINITY,interval:0,concurrency:Number.POSITIVE_INFINITY,autoStart:!0,queueClass:xp,...t},!(typeof t.intervalCap=="number"&&t.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(r=t.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&n!==void 0?n:""}\` (${typeof t.intervalCap})`);if(t.interval===void 0||!(Number.isFinite(t.interval)&&t.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(s=(i=t.interval)===null||i===void 0?void 0:i.toString())!==null&&s!==void 0?s:""}\` (${typeof t.interval})`);Bt(this,ms,t.carryoverConcurrencyCount,"f"),Bt(this,ys,t.intervalCap===Number.POSITIVE_INFINITY||t.interval===0,"f"),Bt(this,Ho,t.intervalCap,"f"),Bt(this,gs,t.interval,"f"),Bt(this,Ie,new t.queueClass,"f"),Bt(this,Ko,t.queueClass,"f"),this.concurrency=t.concurrency,this.timeout=t.timeout,Bt(this,Vo,t.throwOnTimeout===!0,"f"),Bt(this,zr,t.autoStart===!1,"f")}get concurrency(){return K(this,xs,"f")}set concurrency(t){if(!(typeof t=="number"&&t>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${t}\` (${typeof t})`);Bt(this,xs,t,"f"),K(this,Ot,"m",zo).call(this)}async add(t,r={}){return r={timeout:this.timeout,throwOnTimeout:K(this,Vo,"f"),...r},new Promise((n,i)=>{K(this,Ie,"f").enqueue(async()=>{var s,o,a;Bt(this,Re,(o=K(this,Re,"f"),o++,o),"f"),Bt(this,Gr,(a=K(this,Gr,"f"),a++,a),"f");try{if(!((s=r.signal)===null||s===void 0)&&s.aborted)throw new Go("The task was aborted.");let c=t({signal:r.signal});r.timeout&&(c=Ju(Promise.resolve(c),r.timeout)),r.signal&&(c=Promise.race([c,K(this,Ot,"m",Sp).call(this,r.signal)]));let u=await c;n(u),this.emit("completed",u)}catch(c){if(c instanceof ds&&!r.throwOnTimeout){n();return}i(c),this.emit("error",c)}finally{K(this,Ot,"m",_p).call(this)}},r),this.emit("add"),K(this,Ot,"m",qo).call(this)})}async addAll(t,r){return Promise.all(t.map(async n=>this.add(n,r)))}start(){return K(this,zr,"f")?(Bt(this,zr,!1,"f"),K(this,Ot,"m",zo).call(this),this):this}pause(){Bt(this,zr,!0,"f")}clear(){Bt(this,Ie,new(K(this,Ko,"f")),"f")}async onEmpty(){K(this,Ie,"f").size!==0&&await K(this,Ot,"m",$o).call(this,"empty")}async onSizeLessThan(t){K(this,Ie,"f").size<t||await K(this,Ot,"m",$o).call(this,"next",()=>K(this,Ie,"f").size<t)}async onIdle(){K(this,Re,"f")===0&&K(this,Ie,"f").size===0||await K(this,Ot,"m",$o).call(this,"idle")}get size(){return K(this,Ie,"f").size}sizeBy(t){return K(this,Ie,"f").filter(t).length}get pending(){return K(this,Re,"f")}get isPaused(){return K(this,zr,"f")}};ms=new WeakMap,ys=new WeakMap,Gr=new WeakMap,Ho=new WeakMap,gs=new WeakMap,Fo=new WeakMap,$e=new WeakMap,ps=new WeakMap,Ie=new WeakMap,Ko=new WeakMap,Re=new WeakMap,xs=new WeakMap,zr=new WeakMap,Vo=new WeakMap,Ot=new WeakSet,Ep=function(){return K(this,ys,"f")||K(this,Gr,"f")<K(this,Ho,"f")},bp=function(){return K(this,Re,"f")<K(this,xs,"f")},_p=function(){var t;Bt(this,Re,(t=K(this,Re,"f"),t--,t),"f"),K(this,Ot,"m",qo).call(this),this.emit("next")},wp=function(){K(this,Ot,"m",rl).call(this),K(this,Ot,"m",el).call(this),Bt(this,ps,void 0,"f")},vp=function(){let t=Date.now();if(K(this,$e,"f")===void 0){let r=K(this,Fo,"f")-t;if(r<0)Bt(this,Gr,K(this,ms,"f")?K(this,Re,"f"):0,"f");else return K(this,ps,"f")===void 0&&Bt(this,ps,setTimeout(()=>{K(this,Ot,"m",wp).call(this)},r),"f"),!0}return!1},qo=function(){if(K(this,Ie,"f").size===0)return K(this,$e,"f")&&clearInterval(K(this,$e,"f")),Bt(this,$e,void 0,"f"),this.emit("empty"),K(this,Re,"f")===0&&this.emit("idle"),!1;if(!K(this,zr,"f")){let t=!K(this,Ot,"a",vp);if(K(this,Ot,"a",Ep)&&K(this,Ot,"a",bp)){let r=K(this,Ie,"f").dequeue();return r?(this.emit("active"),r(),t&&K(this,Ot,"m",el).call(this),!0):!1}}return!1},el=function(){K(this,ys,"f")||K(this,$e,"f")!==void 0||(Bt(this,$e,setInterval(()=>{K(this,Ot,"m",rl).call(this)},K(this,gs,"f")),"f"),Bt(this,Fo,Date.now()+K(this,gs,"f"),"f"))},rl=function(){K(this,Gr,"f")===0&&K(this,Re,"f")===0&&K(this,$e,"f")&&(clearInterval(K(this,$e,"f")),Bt(this,$e,void 0,"f")),Bt(this,Gr,K(this,ms,"f")?K(this,Re,"f"):0,"f"),K(this,Ot,"m",zo).call(this)},zo=function(){for(;K(this,Ot,"m",qo).call(this););},Sp=async function(t){return new Promise((r,n)=>{t.addEventListener("abort",()=>{n(new Go("The task was aborted."))},{once:!0})})},$o=async function(t,r){return new Promise(n=>{let i=()=>{r&&!r()||(this.off(t,i),n())};this.on(t,i)})};var Yr=nl;var il=class extends Error{constructor(t){super(t),this.name="TimeoutError"}},sl=class extends Error{constructor(t){super(),this.name="AbortError",this.message=t}},Ap=e=>globalThis.DOMException===void 0?new sl(e):new DOMException(e),Ip=e=>{let t=e.reason===void 0?Ap("This operation was aborted."):e.reason;return t instanceof Error?t:Ap(t)};function ol(e,t){let{milliseconds:r,fallback:n,message:i,customTimers:s={setTimeout,clearTimeout}}=t,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(t.signal){let{signal:h}=t;h.aborted&&l(Ip(h)),h.addEventListener("abort",()=>{l(Ip(h))})}if(r===Number.POSITIVE_INFINITY){e.then(u,l);return}let f=new il;o=s.setTimeout.call(void 0,()=>{if(n){try{u(n())}catch(h){l(h)}return}typeof e.cancel=="function"&&e.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 e)}catch(h){l(h)}})()}).finally(()=>{c.clear()});return c.clear=()=>{s.clearTimeout.call(void 0,o),o=void 0},c}var al="lock:worker:request-read",cl="lock:worker:release-read",ul="lock:master:grant-read",ll="lock:worker:request-write",fl="lock:worker:release-write",hl="lock:master:grant-write";var Wr={},Ei=e=>{e.addEventListener("message",t=>{Ei.dispatchEvent("message",e,t)}),e.port!=null&&e.port.addEventListener("message",t=>{Ei.dispatchEvent("message",e,t)})};Ei.addEventListener=(e,t)=>{Wr[e]==null&&(Wr[e]=[]),Wr[e].push(t)};Ei.removeEventListener=(e,t)=>{Wr[e]!=null&&(Wr[e]=Wr[e].filter(r=>r===t))};Ei.dispatchEvent=function(e,t,r){Wr[e]!=null&&Wr[e].forEach(n=>n(t,r))};var dl=Ei;var Rp=(e,t,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};e.dispatchEvent(new MessageEvent(t,{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)}))}}))},Cp=(e,t,r,n)=>async()=>{let i=Io();return globalThis.postMessage({type:t,identifier:i,name:e}),await 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:e})}))};globalThis.addEventListener("message",o)})},_w={singleProcess:!1},Tp=e=>{if(e=Object.assign({},_w,e),!!globalThis.document||e.singleProcess){let r=new EventTarget;return dl.addEventListener("message",Rp(r,"requestReadLock",al,cl,ul)),dl.addEventListener("message",Rp(r,"requestWriteLock",ll,fl,hl)),r}return{isWorker:!0,readLock:r=>Cp(r,al,ul,cl),writeLock:r=>Cp(r,ll,hl,fl)}};var Dn={},Qr;async function pl(e,t){let r,n=new Promise(i=>{r=i});return e.add(async()=>await ol((async()=>await new Promise(i=>{r(()=>{i()})}))(),{milliseconds:t.timeout})),await n}var Sw=(e,t)=>{if(Qr.isWorker===!0)return{readLock:Qr.readLock(e,t),writeLock:Qr.writeLock(e,t)};let r=new Yr({concurrency:1}),n;return{async readLock(){if(n!=null)return await pl(n,t);n=new Yr({concurrency:t.concurrency,autoStart:!1});let i=n,s=pl(n,t);return r.add(async()=>(i.start(),await i.onIdle().then(()=>{n===i&&(n=null)}))),await s},async writeLock(){return n=null,await pl(r,t)}}},Aw={name:"lock",concurrency:1/0,timeout:846e5,singleProcess:!1};function ml(e){let t=Object.assign({},Aw,e);return Qr==null&&(Qr=Tp(t),Qr.isWorker!==!0&&(Qr.addEventListener("requestReadLock",r=>{Dn[r.data.name]!=null&&Dn[r.data.name].readLock().then(async n=>await r.data.handler().finally(()=>n()))}),Qr.addEventListener("requestWriteLock",async r=>{Dn[r.data.name]!=null&&Dn[r.data.name].writeLock().then(async n=>await r.data.handler().finally(()=>n()))}))),Dn[t.name]==null&&(Dn[t.name]=Sw(t.name,t)),Dn[t.name]}var se={ERR_INVALID_PARAMETERS:"ERR_INVALID_PARAMETERS"};var bi;(function(e){let t;(function(i){let s;i.codec=()=>(s==null&&(s=ie((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=>ne(o,i.codec()),i.decode=o=>re(o,i.codec())})(t=e.Peer$metadataEntry||(e.Peer$metadataEntry={}));let r;(function(i){let s;i.codec=()=>(s==null&&(s=ie((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),Wo.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=Wo.codec().decode(o,o.uint32());break;default:o.skipType(l&7);break}}return c})),s),i.encode=o=>ne(o,i.codec()),i.decode=o=>re(o,i.codec())})(r=e.Peer$tagsEntry||(e.Peer$tagsEntry={}));let n;e.codec=()=>(n==null&&(n=ie((i,s,o={})=>{if(o.lengthDelimited!==!1&&s.fork(),i.addresses!=null)for(let a of i.addresses)s.uint32(10),Yo.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),e.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),e.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(Yo.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=e.Peer$metadataEntry.codec().decode(i,i.uint32());o.metadata.set(u.key,u.value);break}case 7:{let u=e.Peer$tagsEntry.codec().decode(i,i.uint32());o.tags.set(u.key,u.value);break}default:i.skipType(c&7);break}}return o})),n),e.encode=i=>ne(i,e.codec()),e.decode=i=>re(i,e.codec())})(bi||(bi={}));var Yo;(function(e){let t;e.codec=()=>(t==null&&(t=ie((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})),t),e.encode=r=>ne(r,e.codec()),e.decode=r=>re(r,e.codec())})(Yo||(Yo={}));var Wo;(function(e){let t;e.codec=()=>(t==null&&(t=ie((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})),t),e.encode=r=>ne(r,e.codec()),e.decode=r=>re(r,e.codec())})(Wo||(Wo={}));function wi(e,t){let r=bi.decode(t);r.publicKey!=null&&e.publicKey==null&&(e=Ad({...e,publicKey:e.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:e,addresses:r.addresses.map(({multiaddr:s,isCertified:o})=>({multiaddr:Ht(s),isCertified:o??!1})),metadata:r.metadata,peerRecordEnvelope:r.peerRecordEnvelope??void 0,tags:n}}var yl="/peers/";function vi(e){if(!Ao(e)||e.type==null)throw new w("Invalid PeerId",se.ERR_INVALID_PARAMETERS);let t=e.toCID().toString();return new rr(`${yl}${t}`)}async function Bp(e,t,r){let n=new Map;for(let i of r){if(i==null)continue;if(i.multiaddr instanceof Uint8Array&&(i.multiaddr=Ht(i.multiaddr)),!Hr(i.multiaddr))throw new w("Multiaddr was invalid",se.ERR_INVALID_PARAMETERS);if(!await t(e,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 Xo(e,t,r,n){if(t==null)throw new w("Invalid PeerData",se.ERR_INVALID_PARAMETERS);if(t.publicKey!=null&&e.publicKey!=null&&!Tt(t.publicKey,e.publicKey))throw new w("publicKey bytes do not match peer id publicKey bytes",se.ERR_INVALID_PARAMETERS);let i=n.existingPeer;if(i!=null&&!e.equals(i.id))throw new w("peer id did not match existing peer id",se.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((t.multiaddrs!=null||t.addresses!=null)&&(s=[],t.multiaddrs!=null&&s.push(...t.multiaddrs.map(f=>({isCertified:!1,multiaddr:f}))),t.addresses!=null&&s.push(...t.addresses)),t.protocols!=null&&(o=new Set(t.protocols)),t.metadata!=null){let f=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);a=Qo(f,{validate:Lp})}if(t.tags!=null){let f=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags);c=Qo(f,{validate:Pp,map:Dp})}t.peerRecordEnvelope!=null&&(u=t.peerRecordEnvelope)}if(r==="merge"){if(t.multiaddrs!=null&&s.push(...t.multiaddrs.map(f=>({isCertified:!1,multiaddr:f}))),t.addresses!=null&&s.push(...t.addresses),t.protocols!=null&&(o=new Set([...o,...t.protocols])),t.metadata!=null){let f=t.metadata instanceof Map?[...t.metadata.entries()]:Object.entries(t.metadata);for(let[h,p]of f)p==null?a.delete(h):a.set(h,p);a=Qo([...a.entries()],{validate:Lp})}if(t.tags!=null){let f=t.tags instanceof Map?[...t.tags.entries()]:Object.entries(t.tags),h=new Map(c);for(let[p,d]of f)d==null?h.delete(p):h.set(p,d);c=Qo([...h.entries()],{validate:Pp,map:Dp})}t.peerRecordEnvelope!=null&&(u=t.peerRecordEnvelope)}let l={addresses:await Bp(e,n.addressFilter??(async()=>!0),s),protocols:[...o.values()].sort((f,h)=>f.localeCompare(h)),metadata:a,tags:c,publicKey:i?.id.publicKey??t.publicKey??e.publicKey,peerRecordEnvelope:u};return e.type!=="RSA"&&delete l.publicKey,l}function Qo(e,t){let r=new Map;for(let[n,i]of e)i!=null&&t.validate(n,i);for(let[n,i]of e.sort(([s],[o])=>s.localeCompare(o)))i!=null&&r.set(n,t.map?.(n,i)??i);return r}function Lp(e,t){if(typeof e!="string")throw new w("Metadata key must be a string",se.ERR_INVALID_PARAMETERS);if(!(t instanceof Uint8Array))throw new w("Metadata value must be a Uint8Array",se.ERR_INVALID_PARAMETERS)}function Pp(e,t){if(typeof e!="string")throw new w("Tag name must be a string",se.ERR_INVALID_PARAMETERS);if(t.value!=null){if(parseInt(`${t.value}`,10)!==t.value)throw new w("Tag value must be an integer",se.ERR_INVALID_PARAMETERS);if(t.value<0||t.value>100)throw new w("Tag value must be between 0-100",se.ERR_INVALID_PARAMETERS)}if(t.ttl!=null){if(parseInt(`${t.ttl}`,10)!==t.ttl)throw new w("Tag ttl must be an integer",se.ERR_INVALID_PARAMETERS);if(t.ttl<0)throw new w("Tag ttl must be between greater than 0",se.ERR_INVALID_PARAMETERS)}}function Dp(e,t){let r;return t.expiry!=null&&(r=t.expiry),t.ttl!=null&&(r=BigInt(Date.now()+Number(t.ttl))),{value:t.value??0,expiry:r}}function Zo(e,t,r){let n=e.toString().split("/")[2],i=Ee.decode(n),s=fi(i),o=r.get(s);if(o!=null)return o;let a=wi(s,t);return r.set(s,a),a}function Iw(e,t){return e==null?{}:{prefix:yl,filters:(e.filters??[]).map(r=>({key:n,value:i})=>r(Zo(n,i,t))),orders:(e.orders??[]).map(r=>(n,i)=>r(Zo(n.key,n.value,t),Zo(i.key,i.value,t)))}}var Jo=class{peerId;datastore;lock;addressFilter;constructor(t,r={}){this.peerId=t.peerId,this.datastore=t.datastore,this.addressFilter=r.addressFilter,this.lock=ml({name:"peer-store",singleProcess:!0})}async has(t){return this.datastore.has(vi(t))}async delete(t){if(this.peerId.equals(t))throw new w("Cannot delete self peer",se.ERR_INVALID_PARAMETERS);await this.datastore.delete(vi(t))}async load(t){let r=await this.datastore.get(vi(t));return wi(t,r)}async save(t,r){let{existingBuf:n,existingPeer:i}=await this.#t(t),s=await Xo(t,r,"patch",{addressFilter:this.addressFilter});return this.#e(t,s,n,i)}async patch(t,r){let{existingBuf:n,existingPeer:i}=await this.#t(t),s=await Xo(t,r,"patch",{addressFilter:this.addressFilter,existingPeer:i});return this.#e(t,s,n,i)}async merge(t,r){let{existingBuf:n,existingPeer:i}=await this.#t(t),s=await Xo(t,r,"merge",{addressFilter:this.addressFilter,existingPeer:i});return this.#e(t,s,n,i)}async*all(t){let r=new Ae;for await(let{key:n,value:i}of this.datastore.query(Iw(t??{},r))){let s=Zo(n,i,r);s.id.equals(this.peerId)||(yield s)}}async#t(t){try{let r=await this.datastore.get(vi(t)),n=wi(t,r);return{existingBuf:r,existingPeer:n}}catch(r){if(r.code!=="ERR_NOT_FOUND")throw r}return{}}async#e(t,r,n,i){let s=bi.encode(r);return n!=null&&Tt(s,n)?{peer:wi(t,s),previous:i,updated:!1}:(await this.datastore.put(vi(t),s),{peer:wi(t,s),previous:i,updated:!0})}};var wt=rt("libp2p:peer-store"),jo=class{store;events;peerId;constructor(t,r={}){this.events=t.events,this.peerId=t.peerId,this.store=new Jo(t,r)}async forEach(t,r){wt.trace("forEach await read lock");let n=await this.store.lock.readLock();wt.trace("forEach got read lock");try{for await(let i of this.store.all(r))t(i)}finally{wt.trace("forEach release read lock"),n()}}async all(t){wt.trace("all await read lock");let r=await this.store.lock.readLock();wt.trace("all got read lock");try{return await fs(this.store.all(t))}finally{wt.trace("all release read lock"),r()}}async delete(t){wt.trace("delete await write lock");let r=await this.store.lock.writeLock();wt.trace("delete got write lock");try{await this.store.delete(t)}finally{wt.trace("delete release write lock"),r()}}async has(t){wt.trace("has await read lock");let r=await this.store.lock.readLock();wt.trace("has got read lock");try{return await this.store.has(t)}finally{wt.trace("has release read lock"),r()}}async get(t){wt.trace("get await read lock");let r=await this.store.lock.readLock();wt.trace("get got read lock");try{return await this.store.load(t)}finally{wt.trace("get release read lock"),r()}}async save(t,r){wt.trace("save await write lock");let n=await this.store.lock.writeLock();wt.trace("save got write lock");try{let i=await this.store.save(t,r);return this.#t(t,i),i.peer}finally{wt.trace("save release write lock"),n()}}async patch(t,r){wt.trace("patch await write lock");let n=await this.store.lock.writeLock();wt.trace("patch got write lock");try{let i=await this.store.patch(t,r);return this.#t(t,i),i.peer}finally{wt.trace("patch release write lock"),n()}}async merge(t,r){wt.trace("merge await write lock");let n=await this.store.lock.writeLock();wt.trace("merge got write lock");try{let i=await this.store.merge(t,r);return this.#t(t,i),i.peer}finally{wt.trace("merge release write lock"),n()}}async consumePeerRecord(t,r){let n=await mi.openAndCertify(t,Ln.DOMAIN);if(r?.equals(n.peerId)===!1)return wt("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 mi.createFromProtobuf(s.peerRecordEnvelope),a=Ln.createFromProtobuf(o.payload);if(a.seqNumber>=i.seqNumber)return wt("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:t,addresses:i.multiaddrs.map(o=>({isCertified:!0,multiaddr:o}))}),!0}#t(t,r){r.updated&&(this.peerId.equals(t)?this.events.safeDispatchEvent("self:peer:update",{detail:r}):this.events.safeDispatchEvent("peer:update",{detail:r}))}};function Rw(e){return e[Symbol.asyncIterator]!=null}function Cw(e){if(Rw(e))return(async()=>{for await(let t of e);})();for(let t of e);}var gl=Cw;function Tw(e){let[t,r]=e[Symbol.asyncIterator]!=null?[e[Symbol.asyncIterator](),Symbol.asyncIterator]:[e[Symbol.iterator](),Symbol.iterator],n=[];return{peek:()=>t.next(),push:i=>{n.push(i)},next:()=>n.length>0?{done:!1,value:n.shift()}:t.next(),[r](){return this}}}var ta=Tw;function Bw(e){return e[Symbol.asyncIterator]!=null}function Lw(e,t){if(Bw(e))return async function*(){for await(let a of e)await t(a)&&(yield a)}();let r=ta(e),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let s=t(n);if(typeof s.then=="function")return async function*(){await s&&(yield n);for await(let a of r)await t(a)&&(yield a)}();let o=t;return function*(){s===!0&&(yield n);for(let a of r)o(a)&&(yield a)}()}var He=Lw;function Pw(e){return e[Symbol.asyncIterator]!=null}function Dw(e,t){return Pw(e)?async function*(){yield*(await fs(e)).sort(t)}():function*(){yield*fs(e).sort(t)}()}var xl=Dw;function Nw(e){return e[Symbol.asyncIterator]!=null}function kw(e,t){return Nw(e)?async function*(){let r=0;if(!(t<1)){for await(let n of e)if(yield n,r++,r===t)return}}():function*(){let r=0;if(!(t<1)){for(let n of e)if(yield n,r++,r===t)return}}()}var El=kw;var ea=class{put(t,r,n){return Promise.reject(new Error(".put is not implemented"))}get(t,r){return Promise.reject(new Error(".get is not implemented"))}has(t,r){return Promise.reject(new Error(".has is not implemented"))}delete(t,r){return Promise.reject(new Error(".delete is not implemented"))}async*putMany(t,r={}){for await(let{key:n,value:i}of t)await this.put(n,i,r),yield n}async*getMany(t,r={}){for await(let n of t)yield{key:n,value:await this.get(n,r)}}async*deleteMany(t,r={}){for await(let n of t)await this.delete(n,r),yield n}batch(){let t=[],r=[];return{put(n,i){t.push({key:n,value:i})},delete(n){r.push(n)},commit:async n=>{await gl(this.putMany(t,n)),t=[],await gl(this.deleteMany(r,n)),r=[]}}}async*_all(t,r){throw new Error("._all is not implemented")}async*_allKeys(t,r){throw new Error("._allKeys is not implemented")}query(t,r){let n=this._all(t,r);if(t.prefix!=null){let i=t.prefix;n=He(n,s=>s.key.toString().startsWith(i))}if(Array.isArray(t.filters)&&(n=t.filters.reduce((i,s)=>He(i,s),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,s)=>xl(i,s),n)),t.offset!=null){let i=0,s=t.offset;n=He(n,()=>i++>=s)}return t.limit!=null&&(n=El(n,t.limit)),n}queryKeys(t,r){let n=this._allKeys(t,r);if(t.prefix!=null){let i=t.prefix;n=He(n,s=>s.toString().startsWith(i))}if(Array.isArray(t.filters)&&(n=t.filters.reduce((i,s)=>He(i,s),n)),Array.isArray(t.orders)&&(n=t.orders.reduce((i,s)=>xl(i,s),n)),t.offset!=null){let i=t.offset,s=0;n=He(n,()=>s++>=i)}return t.limit!=null&&(n=El(n,t.limit)),n}};var Op=yt(bl(),1);function Mp(e){return e=e??new Error("Not Found"),(0,Op.default)(e,"ERR_NOT_FOUND")}var ra=class extends ea{data;constructor(){super(),this.data=new Map}put(t,r){return this.data.set(t.toString(),r),t}get(t){let r=this.data.get(t.toString());if(r==null)throw Mp();return r}has(t){return this.data.has(t.toString())}delete(t){this.data.delete(t.toString())}*_all(){for(let[t,r]of this.data.entries())yield{key:new rr(t),value:r}}*_allKeys(){for(let t of this.data.keys())yield new rr(t)}};function Up(e,t){let r;return function(){let n=function(){r=void 0,e()};clearTimeout(r),r=setTimeout(n,t)}}var Uw=rt("libp2p:address-manager"),Fw=e=>e;function wl(e,t){let r=e.getPeerId();return r!=null&&lt(r).equals(t)&&(e=e.decapsulate(Ht(`/p2p/${t.toString()}`))),e}var na=class{components;listen;announce;observed;announceFilter;constructor(t,r={}){let{listen:n=[],announce:i=[]}=r;this.components=t,this.listen=n.map(s=>s.toString()),this.announce=new Set(i.map(s=>s.toString())),this.observed=new Map,this.announceFilter=r.announceFilter??Fw,this._updatePeerStoreAddresses=Up(this._updatePeerStoreAddresses.bind(this),1e3),t.events.addEventListener("transport:listening",()=>{this._updatePeerStoreAddresses()}),t.events.addEventListener("transport:close",()=>{this._updatePeerStoreAddresses()})}_updatePeerStoreAddresses(){let t=this.getAnnounceAddrs().concat(this.components.transportManager.getAddrs()).concat([...this.observed.entries()].filter(([r,n])=>n.confident).map(([r])=>Ht(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:t}).catch(r=>{Uw.error("error updating addresses",r)})}getListenAddrs(){return Array.from(this.listen).map(t=>Ht(t))}getAnnounceAddrs(){return Array.from(this.announce).map(t=>Ht(t))}getObservedAddrs(){return Array.from(this.observed).map(([t])=>Ht(t))}addObservedAddr(t){t=wl(t,this.components.peerId);let r=t.toString();this.observed.has(r)||this.observed.set(r,{confident:!1})}confirmObservedAddr(t){t=wl(t,this.components.peerId);let r=t.toString(),i=(this.observed.get(r)??{confident:!1}).confident;this.observed.set(r,{confident:!0}),i||this._updatePeerStoreAddresses()}removeObservedAddr(t){t=wl(t,this.components.peerId);let r=t.toString();this.observed.delete(r)}getAddresses(){let t=this.getAnnounceAddrs().map(n=>n.toString());t.length===0&&(t=this.components.transportManager.getAddrs().map(n=>n.toString())),t=t.concat(Array.from(this.observed).filter(([n,i])=>i.confident).map(([n])=>n));let r=new Set(t);return this.announceFilter(Array.from(r).map(n=>Ht(n))).map(n=>n.protos().pop()?.path===!0||n.getPeerId()===this.components.peerId.toString()?n:n.encapsulate(`/p2p/${this.components.peerId.toString()}`))}};function Fp(e){return e!=null&&typeof e.start=="function"&&typeof e.stop=="function"}var vl=class{components={};_started=!1;constructor(t={}){this.components={};for(let[r,n]of Object.entries(t))this.components[r]=n}isStarted(){return this._started}async _invokeStartableMethod(t){await Promise.all(Object.values(this.components).filter(r=>Fp(r)).map(async r=>{await r[t]?.()}))}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")}},Kw=["metrics","connectionProtector"],Vw=["components","isStarted","beforeStart","start","afterStart","beforeStop","stop","afterStop","then","_invokeStartableMethod"];function Kp(e={}){let t=new vl(e);return new Proxy(t,{get(n,i,s){if(typeof i=="string"&&!Vw.includes(i)){let o=t.components[i];if(o==null&&!Kw.includes(i))throw new w(`${i} not set`,"ERR_SERVICE_MISSING");return o}return Reflect.get(n,i,s)},set(n,i,s){return typeof i=="string"?t.components[i]=s:Reflect.set(n,i,s),!0}})}var Yp=yt(Vp(),1);var qp="[a-fA-F\\d:]",Xr=e=>e&&e.includeBoundaries?`(?:(?<=\\s|^)(?=${qp})|(?<=${qp})(?=\\s|$))`:"",ze="(?: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}",Kt="[a-fA-F\\d]{1,4}",ia=`
38
38
  (?:
39
39
  (?:${Kt}:){7}(?:${Kt}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
40
40
  (?:${Kt}:){6}(?:${ze}|:${Kt}|:)| // 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
@@ -45,8 +45,8 @@
45
45
  (?:${Kt}:){1}(?:(?::${Kt}){0,4}:${ze}|(?::${Kt}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
46
46
  (?::(?:(?::${Kt}){0,5}:${ze}|(?::${Kt}){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(),qw=new RegExp(`(?:^${ze}$)|(?:^${ea}$)`),$w=new RegExp(`^${ze}$`),Hw=new RegExp(`^${ea}$`),vl=e=>e&&e.exact?qw:new RegExp(`(?:${Qr(e)}${ze}${Qr(e)})|(?:${Qr(e)}${ea}${Qr(e)})`,"g");vl.v4=e=>e&&e.exact?$w:new RegExp(`${Qr(e)}${ze}${Qr(e)}`,"g");vl.v6=e=>e&&e.exact?Hw:new RegExp(`${Qr(e)}${ea}${Qr(e)}`,"g");var $p=vl;var Wp=mt(zp(),1),{isValid:zw,parse:Gw}=Wp.default,Yw=["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"],Ww=Yw.map(e=>new Yp.Netmask(e));function Qw(e){for(let t of Ww)if(t.contains(e))return!0;return!1}function Gp(e){return/^::$/.test(e)||/^::1$/.test(e)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^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(e)||/^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(e)||/^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(e)||/^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(e)||/^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(e)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(e)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(e)||/^ff([0-9a-fA-F]{2,2}):/i.test(e)}var Qp=e=>{if(zw(e)){let t=Gw(e);if(t.kind()==="ipv4")return Qw(t.toNormalizedString());if(t.kind()==="ipv6")return Gp(e)}else if(gi(e)&&$p.v6().test(e))return Gp(e)};var na=Qp;function Xp(e={}){return{denyDialPeer:async()=>!1,denyDialMultiaddr:async t=>{let r=t.stringTuples();return r[0][0]===4||r[0][0]===41?!!na(`${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,...e}}var fB=Symbol.for("@libp2p/transport");var Xr;(function(e){e[e.FATAL_ALL=0]="FATAL_ALL",e[e.NO_FATAL=1]="NO_FATAL"})(Xr||(Xr={}));var Xw=e=>e.toString().split("/").slice(1),bs=e=>({match:t=>t.length<1?!1:e(t[0])?t.slice(1):!1,pattern:"fn"}),Mt=e=>({match:t=>bs(r=>r===e).match(t),pattern:e}),oa=()=>({match:e=>bs(t=>typeof t=="string").match(e),pattern:"{string}"}),Zp=()=>({match:e=>bs(t=>!isNaN(parseInt(t))).match(e),pattern:"{number}"}),Ne=()=>({match:e=>{if(e.length<2||e[0]!=="p2p"&&e[0]!=="ipfs")return!1;if(e[1].startsWith("Q")||e[1].startsWith("1"))try{Ct.decode(`z${e[1]}`)}catch{return!1}else return!1;return e.slice(2)},pattern:"/p2p/{peerid}"}),ia=()=>({match:e=>{if(e.length<2||e[0]!=="certhash")return!1;try{yc.decode(e[1])}catch{return!1}return e.slice(2)},pattern:"/certhash/{certhash}"}),ir=e=>({match:t=>{let r=e.match(t);return r===!1?t:r},pattern:`optional(${e.pattern})`}),sr=(...e)=>({match:t=>{let r;for(let n of e){let i=n.match(t);i!==!1&&(r==null||i.length<r.length)&&(r=i)}return r??!1},pattern:`or(${e.map(t=>t.pattern).join(", ")})`}),Ut=(...e)=>({match:t=>{for(let r of e){let n=r.match(t);if(n===!1)return!1;t=n}return t},pattern:`and(${e.map(t=>t.pattern).join(", ")})`});function Xt(...e){function t(i){let s=Xw(i);for(let o of e){let a=o.match(s);if(a===!1)return!1;s=a}return s}function r(i){return t(i)!==!1}function n(i){let s=t(i);return s===!1?!1:s.length===0}return{matches:r,exactMatch:n}}var Sl=Ut(Mt("dns4"),oa()),Al=Ut(Mt("dns6"),oa()),Il=Ut(Mt("dnsaddr"),oa()),Jp=Ut(Mt("dns"),oa()),gB=Xt(Sl),xB=Xt(Al),EB=Xt(Il),bB=Xt(sr(Jp,Il,Sl,Al)),jp=Ut(Mt("ip4"),bs(Do)),tm=Ut(Mt("ip6"),bs(No)),em=sr(jp,tm),aa=sr(em,Jp,Sl,Al,Il),wB=Xt(jp),vB=Xt(tm),_B=Xt(em),ca=Ut(aa,Mt("tcp"),Zp()),ws=Ut(aa,Mt("udp"),Zp()),Zw=sr(ca,ws),SB=Xt(ca),AB=Xt(ws),Rl=Ut(ws,Mt("quic")),ua=Ut(ws,Mt("quic-v1")),Jw=sr(Rl,ua),IB=Xt(Rl),RB=Xt(ua),_l=sr(aa,ca,ws,Rl,ua),rm=sr(Ut(_l,Mt("ws"),ir(Ne()))),CB=Xt(rm),nm=sr(Ut(_l,Mt("wss"),ir(Ne())),Ut(_l,Mt("tls"),Mt("ws"),ir(Ne()))),TB=Xt(nm),im=Ut(Zw,Mt("webrtc-direct"),ia(),ir(ia()),ir(Ne())),BB=Xt(im),sm=Ut(ua,Mt("webtransport"),ia(),ia(),ir(Ne())),LB=Xt(sm),sa=sr(rm,nm,Ut(ca,ir(Ne())),Ut(Jw,ir(Ne())),Ut(aa,ir(Ne())),im,sm,Ne()),PB=Xt(sa),jw=Ut(sa,Mt("p2p-circuit"),Ne()),Cl=Xt(jw),tv=sr(Ut(sa,Mt("p2p-circuit"),Mt("webrtc"),Ne()),Ut(sa,Mt("webrtc"),ir(Ne())),Mt("webrtc")),DB=Xt(tv);function Tl(e){try{let{address:t}=e.nodeAddress();return!!na(t)}catch{return!0}}function ev(e,t){let r=Tl(e.multiaddr),n=Tl(t.multiaddr);return r&&!n?1:!r&&n?-1:0}function rv(e,t){return e.isCertified&&!t.isCertified?-1:!e.isCertified&&t.isCertified?1:0}function nv(e,t){let r=Cl.exactMatch(e.multiaddr),n=Cl.exactMatch(t.multiaddr);return r&&!n?1:!r&&n?-1:0}function _i(e,t){let r=ev(e,t);if(r!==0)return r;let n=nv(e,t);return n!==0?n:rv(e,t)}var Ll=mt(_u(),1),Pl=mt(cm(),1);var um=globalThis.fetch,lm=globalThis.Headers,VB=globalThis.Request,qB=globalThis.Response;function la(e,t,r){return`${e}?name=${t}&type=${r}`}async function fm(e,t){return await(await um(e,{headers:new lm({accept:"application/dns-json"}),signal:t})).json()}function Nn(e,t){return`${t}_${e}`}var Bl=Object.assign((0,Ll.default)("dns-over-http-resolver"),{error:(0,Ll.default)("dns-over-http-resolver:error")}),Dl=class{_cache;_TXTcache;_servers;_request;_abortControllers;constructor(t={}){this._cache=new Pl.default({max:t?.maxCache??100}),this._TXTcache=new Pl.default({max:t?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=t.request??fm,this._abortControllers=[]}cancel(){this._abortControllers.forEach(t=>{t.abort()})}getServers(){return this._servers}_getShuffledServers(){let t=[...this._servers];for(let r=t.length-1;r>0;r--){let n=Math.floor(Math.random()*r),i=t[r];t[r]=t[n],t[n]=i}return t}setServers(t){this._servers=t}async resolve(t,r="A"){switch(r){case"A":return this.resolve4(t);case"AAAA":return this.resolve6(t);case"TXT":return this.resolveTxt(t);default:throw new Error(`${r} is not supported`)}}async resolve4(t){let r="A",n=this._cache.get(Nn(t,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(la(s,t,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(Nn(t,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),Bl.error(`${s} could not resolve ${t} 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 ${t} record ${r}`)}async resolve6(t){let r="AAAA",n=this._cache.get(Nn(t,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(la(s,t,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(Nn(t,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),Bl.error(`${s} could not resolve ${t} 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 ${t} record ${r}`)}async resolveTxt(t){let r="TXT",n=this._TXTcache.get(Nn(t,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(la(s,t,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(Nn(t,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),Bl.error(`${s} could not resolve ${t} 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 ${t} record ${r}`)}clearCache(){this._cache.clear(),this._TXTcache.clear()}},hm=Dl;var dm=hm;var{code:cv}=xt("dnsaddr");async function Si(e,t={}){let r=new dm;t.signal!=null&&t.signal.addEventListener("abort",()=>{r.cancel()});let n=e.getPeerId(),[,i]=e.stringTuples().find(([a])=>a===cv)??[];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 or;(function(e){e.NOT_STARTED_YET="The libp2p node is not started yet",e.DHT_DISABLED="DHT is not available",e.PUBSUB_DISABLED="PubSub is not available",e.CONN_ENCRYPTION_REQUIRED="At least one connection encryption module is required",e.ERR_TRANSPORTS_REQUIRED="At least one transport module is required",e.ERR_PROTECTOR_REQUIRED="Private network is enforced, but no protector was provided",e.NOT_FOUND="Not found"})(or||(or={}));var F;(function(e){e.DHT_DISABLED="ERR_DHT_DISABLED",e.ERR_PUBSUB_DISABLED="ERR_PUBSUB_DISABLED",e.PUBSUB_NOT_STARTED="ERR_PUBSUB_NOT_STARTED",e.DHT_NOT_STARTED="ERR_DHT_NOT_STARTED",e.CONN_ENCRYPTION_REQUIRED="ERR_CONN_ENCRYPTION_REQUIRED",e.ERR_TRANSPORTS_REQUIRED="ERR_TRANSPORTS_REQUIRED",e.ERR_PROTECTOR_REQUIRED="ERR_PROTECTOR_REQUIRED",e.ERR_PEER_DIAL_INTERCEPTED="ERR_PEER_DIAL_INTERCEPTED",e.ERR_CONNECTION_INTERCEPTED="ERR_CONNECTION_INTERCEPTED",e.ERR_INVALID_PROTOCOLS_FOR_STREAM="ERR_INVALID_PROTOCOLS_FOR_STREAM",e.ERR_CONNECTION_ENDED="ERR_CONNECTION_ENDED",e.ERR_CONNECTION_FAILED="ERR_CONNECTION_FAILED",e.ERR_NODE_NOT_STARTED="ERR_NODE_NOT_STARTED",e.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",e.ERR_TOO_MANY_ADDRESSES="ERR_TOO_MANY_ADDRESSES",e.ERR_NO_VALID_ADDRESSES="ERR_NO_VALID_ADDRESSES",e.ERR_RELAYED_DIAL="ERR_RELAYED_DIAL",e.ERR_DIALED_SELF="ERR_DIALED_SELF",e.ERR_DISCOVERED_SELF="ERR_DISCOVERED_SELF",e.ERR_DUPLICATE_TRANSPORT="ERR_DUPLICATE_TRANSPORT",e.ERR_ENCRYPTION_FAILED="ERR_ENCRYPTION_FAILED",e.ERR_HOP_REQUEST_FAILED="ERR_HOP_REQUEST_FAILED",e.ERR_INVALID_KEY="ERR_INVALID_KEY",e.ERR_INVALID_MESSAGE="ERR_INVALID_MESSAGE",e.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",e.ERR_INVALID_PEER="ERR_INVALID_PEER",e.ERR_MUXER_UNAVAILABLE="ERR_MUXER_UNAVAILABLE",e.ERR_NOT_FOUND="ERR_NOT_FOUND",e.ERR_TIMEOUT="ERR_TIMEOUT",e.ERR_TRANSPORT_UNAVAILABLE="ERR_TRANSPORT_UNAVAILABLE",e.ERR_TRANSPORT_DIAL_FAILED="ERR_TRANSPORT_DIAL_FAILED",e.ERR_UNSUPPORTED_PROTOCOL="ERR_UNSUPPORTED_PROTOCOL",e.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED="ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED",e.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",e.ERR_SIGNATURE_NOT_VALID="ERR_SIGNATURE_NOT_VALID",e.ERR_FIND_SELF="ERR_FIND_SELF",e.ERR_NO_ROUTERS_AVAILABLE="ERR_NO_ROUTERS_AVAILABLE",e.ERR_CONNECTION_NOT_MULTIPLEXED="ERR_CONNECTION_NOT_MULTIPLEXED",e.ERR_NO_DIAL_TOKENS="ERR_NO_DIAL_TOKENS",e.ERR_KEYCHAIN_REQUIRED="ERR_KEYCHAIN_REQUIRED",e.ERR_INVALID_CMS="ERR_INVALID_CMS",e.ERR_MISSING_KEYS="ERR_MISSING_KEYS",e.ERR_NO_KEY="ERR_NO_KEY",e.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",e.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",e.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",e.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",e.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",e.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",e.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",e.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",e.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",e.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",e.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",e.ERR_MISSING_PUBLIC_KEY="ERR_MISSING_PUBLIC_KEY",e.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",e.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",e.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH",e.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",e.ERR_WRONG_PING_ACK="ERR_WRONG_PING_ACK",e.ERR_INVALID_RECORD="ERR_INVALID_RECORD",e.ERR_ALREADY_SUCCEEDED="ERR_ALREADY_SUCCEEDED",e.ERR_NO_HANDLER_FOR_PROTOCOL="ERR_NO_HANDLER_FOR_PROTOCOL",e.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",e.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",e.ERR_CONNECTION_DENIED="ERR_CONNECTION_DENIED",e.ERR_TRANSFER_LIMIT_EXCEEDED="ERR_TRANSFER_LIMIT_EXCEEDED"})(F||(F={}));var uv={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:e=>e},connectionManager:{resolvers:{dnsaddr:Si},addressSorter:_i},transportManager:{faultTolerance:Xr.FATAL_ALL}};function pm(e){let t=qr(uv,e);if(t.transports==null||t.transports.length<1)throw new w(or.ERR_TRANSPORTS_REQUIRED,F.ERR_TRANSPORTS_REQUIRED);if(t.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw new w(or.ERR_PROTECTOR_REQUIRED,F.ERR_PROTECTOR_REQUIRED);return t}var mm="keep-alive";var py=mt(uy(),1);var zv=rt("libp2p:get-peer");function ha(e){if(So(e))return{peerId:e,multiaddrs:[]};Array.isArray(e)||(e=[e]);let t;if(e.length>0){let r=e[0].getPeerId();t=r==null?void 0:lt(r),e.forEach(n=>{if(!Bn(n))throw zv.error("multiaddr %s was invalid",n),new w("Invalid Multiaddr",F.ERR_INVALID_MULTIADDR);let i=n.getPeerId();if(i==null){if(t!=null)throw new w("Multiaddrs must all have the same peer id or have no peer id",F.ERR_INVALID_PARAMETERS)}else{let s=lt(i);if(t==null||!t.equals(s))throw new w("Multiaddrs must all have the same peer id or have no peer id",F.ERR_INVALID_PARAMETERS)}})}return{peerId:t,multiaddrs:e}}function Gv(e,t,r){let n=0,i=e.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(e[o],t)<=0?(n=++o,i-=s+1):i=s}return n}var Ql=class{#t=[];enqueue(t,r){let n=r?.peerId,i=r?.priority??0;if(n==null)throw new w("missing peer id",F.ERR_INVALID_PARAMETERS);let s={priority:i,peerId:n,run:t};if(this.size>0&&this.#t[this.size-1].priority>=i){this.#t.push(s);return}let o=Gv(this.#t,s,(a,c)=>c.priority-a.priority);this.#t.splice(o,0,s)}dequeue(){return this.#t.shift()?.run}filter(t){if(t.peerId!=null){let r=t.peerId;return this.#t.filter(n=>r.equals(n.peerId)).map(n=>n.run)}return this.#t.filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return this.#t.length}},da=class extends Gr{constructor(t={}){super({...t,queueClass:Ql})}hasJob(t){return this.sizeBy({peerId:t})>0}};var pa="last-dial-failure";var ma=5,ya=100,ga=50,ly=1e3*60*7;var Zt=rt("libp2p:connection-manager:auto-dial"),kn={minConnections:ma,maxQueueLength:100,autoDialConcurrency:25,autoDialPriority:0,autoDialInterval:5e3,autoDialPeerRetryThreshold:ly,autoDialDiscoveredPeersDebounce:10},xa=class{connectionManager;peerStore;queue;minConnections;autoDialPriority;autoDialIntervalMs;autoDialMaxQueueLength;autoDialPeerRetryThresholdMs;autoDialDiscoveredPeersDebounce;autoDialInterval;started;running;constructor(t,r){this.connectionManager=t.connectionManager,this.peerStore=t.peerStore,this.minConnections=r.minConnections??kn.minConnections,this.autoDialPriority=r.autoDialPriority??kn.autoDialPriority,this.autoDialIntervalMs=r.autoDialInterval??kn.autoDialInterval,this.autoDialMaxQueueLength=r.maxQueueLength??kn.maxQueueLength,this.autoDialPeerRetryThresholdMs=r.autoDialPeerRetryThreshold??kn.autoDialPeerRetryThreshold,this.autoDialDiscoveredPeersDebounce=r.autoDialDiscoveredPeersDebounce??kn.autoDialDiscoveredPeersDebounce,this.started=!1,this.running=!1,this.queue=new da({concurrency:r.autoDialConcurrency??kn.autoDialConcurrency}),this.queue.addListener("error",i=>{Zt.error("error during auto-dial",i)}),t.events.addEventListener("connection:close",()=>{this.autoDial().catch(i=>{Zt.error(i)})});let n;t.events.addEventListener("peer:discovery",()=>{clearTimeout(n),n=setTimeout(()=>{this.autoDial().catch(i=>{Zt.error(i)})},this.autoDialDiscoveredPeersDebounce)})}isStarted(){return this.started}start(){this.autoDialInterval=setTimeout(()=>{this.autoDial().catch(t=>{Zt.error("error while autodialing",t)})},this.autoDialIntervalMs),this.started=!0}afterStart(){this.autoDial().catch(t=>{Zt.error("error while autodialing",t)})}stop(){this.queue.clear(),clearTimeout(this.autoDialInterval),this.started=!1,this.running=!1}async autoDial(){if(!this.started)return;let t=this.connectionManager.getConnectionsMap(),r=t.size;if(r>=this.minConnections){this.minConnections>0&&Zt.trace("have enough connections %d/%d",r,this.minConnections);return}if(this.queue.size>this.autoDialMaxQueueLength){Zt("not enough connections %d/%d but auto dial queue is full",r,this.minConnections);return}if(this.running){Zt("not enough connections %d/%d - but skipping autodial as it is already running",r,this.minConnections);return}this.running=!0,Zt("not enough connections %d/%d - will dial peers to increase the number of connections",r,this.minConnections);let n=new Tn(this.connectionManager.getDialQueue().map(u=>u.peerId).filter(Boolean)),i=await this.peerStore.all({filters:[u=>u.addresses.length===0?(Zt.trace("not autodialing %p because they have no addresses",u.id),!1):t.has(u.id)?(Zt.trace("not autodialing %p because they are already connected",u.id),!1):n.has(u.id)?(Zt.trace("not autodialing %p because they are already being dialed",u.id),!1):this.queue.hasJob(u.id)?(Zt.trace("not autodialing %p because they are already being autodialed",u.id),!1):!0]}),s=i.sort(()=>Math.random()>.5?1:-1),o=new Ae;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(pa);if(l==null)return!0;let f=parseInt(X(l));return isNaN(f)?!0:Date.now()-f>this.autoDialPeerRetryThresholdMs});Zt("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){Zt("got enough connections now %d/%d",l,this.minConnections),this.queue.clear();return}Zt("connecting to a peerStore stored peer %p",u.id),await this.connectionManager.openConnection(u.id,{priority:this.autoDialPriority})},{peerId:u.id}).catch(l=>{Zt.error("could not connect to peerStore stored peer",l)});this.running=!1,this.started&&(this.autoDialInterval=setTimeout(()=>{this.autoDial().catch(u=>{Zt.error("error while autodialing",u)})},this.autoDialIntervalMs))}};var Ti=rt("libp2p:connection-manager:connection-pruner"),fy={maxConnections:ya,allow:[]},Ea=class{maxConnections;connectionManager;peerStore;allow;events;constructor(t,r={}){this.maxConnections=r.maxConnections??fy.maxConnections,this.allow=r.allow??fy.allow,this.connectionManager=t.connectionManager,this.peerStore=t.peerStore,this.events=t.events,t.events.addEventListener("connection:open",()=>{this.maybePruneConnections().catch(n=>{Ti.error(n)})})}async maybePruneConnections(){let t=this.connectionManager.getConnections(),r=t.length,n=Math.max(r-this.maxConnections,0);if(Ti("checking max connections limit %d/%d",r,this.maxConnections),r<=this.maxConnections)return;Ti("max connections limit exceeded %d/%d, pruning %d connection(s)",r,this.maxConnections,n);let i=new Ae;for(let a of t){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"&&Ti.error("error loading peer tags",u)}}}let s=t.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(Ti("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){Ti.error(c)}})),this.events.safeDispatchEvent("connection:prune",{detail:o})}};function ba(e){let t=new globalThis.AbortController;function r(){t.abort();for(let s of e)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}for(let s of e){if(s?.aborted===!0){r();break}s?.addEventListener!=null&&s.addEventListener("abort",r)}function n(){for(let s of e)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}let i=t.signal;return i.clear=n,i}function Jr(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}var hy=rt("libp2p:connection-manager:utils");async function jl(e,t){if(!e.protoNames().includes("dnsaddr"))return[e];let n=await Qv(e,t),o=(await Promise.all(n.map(async a=>jl(a,t)))).flat().reduce((a,c)=>(a.find(u=>u.equals(c))==null&&a.push(c),a),[]);return hy("resolved %s to",e,o.map(a=>a.toString())),o}async function Qv(e,t){try{return e=Ht(e.toString()),await e.resolve(t)}catch(r){return hy.error(`multiaddr ${e.toString()} could not be resolved`,r),[]}}function dy(...e){let t=[];for(let n of e)n!=null&&(ve(1/0,n),t.push(n));let r=ba(t);return ve(1/0,r),r}var Vt=rt("libp2p:connection-manager:dial-queue"),_s={addressSorter:_i,maxParallelDials:ga,maxPeerAddrsToDial:25,maxParallelDialsPerPeer:1,dialTimeout:3e4,resolvers:{dnsaddr:Si}},wa=class{pendingDials;queue;peerId;peerStore;connectionGater;transportManager;addressSorter;maxPeerAddrsToDial;maxParallelDialsPerPeer;dialTimeout;inProgressDialCount;pendingDialCount;shutDownController;connections;constructor(t,r={}){this.addressSorter=r.addressSorter??_s.addressSorter,this.maxPeerAddrsToDial=r.maxPeerAddrsToDial??_s.maxPeerAddrsToDial,this.maxParallelDialsPerPeer=r.maxParallelDialsPerPeer??_s.maxParallelDialsPerPeer,this.dialTimeout=r.dialTimeout??_s.dialTimeout,this.connections=r.connections??new Ae,this.peerId=t.peerId,this.peerStore=t.peerStore,this.connectionGater=t.connectionGater,this.transportManager=t.transportManager,this.shutDownController=new AbortController,ve(1/0,this.shutDownController.signal),this.pendingDialCount=t.metrics?.registerMetric("libp2p_dialler_pending_dials"),this.inProgressDialCount=t.metrics?.registerMetric("libp2p_dialler_in_progress_dials"),this.pendingDials=[];for(let[n,i]of Object.entries(r.resolvers??{}))Yu.set(n,i);this.queue=new Gr({concurrency:r.maxParallelDials??_s.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=>{Vt.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(t,r={}){let{peerId:n,multiaddrs:i}=ha(t),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 Vt("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 Vt("joining existing dial target for %p",n),o.clear(),u.promise;Vt("creating dial target for",a.map(({multiaddr:h})=>h.toString()));let l={id:Xv(),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(Vt.error("dial failed to %s",l.multiaddrs.map(p=>p.toString()).join(", "),h),n!=null)try{await this.peerStore.patch(n,{metadata:{[pa]:z(Date.now().toString())}})}catch(p){Vt.error("could not update last dial failure key for %p",n,p)}throw o.aborted?new w(h.message,F.ERR_TIMEOUT):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?(Vt("already connected to %a",c.remoteAddr),await f.close(),c):(Vt("connection opened to %a",f.remoteAddr),f)}createDialAbortControllers(t){let r=ba([AbortSignal.timeout(this.dialTimeout),this.shutDownController.signal,t]);try{ve?.(1/0,r)}catch{}return r}async calculateMultiaddrs(t,r=[],n={}){if(t!=null){if(this.peerId.equals(t))throw new w("Tried to dial self",F.ERR_DIALED_SELF);if(await this.connectionGater.denyDialPeer?.(t)===!0)throw new w("The dial request is blocked by gater.allowDialPeer",F.ERR_PEER_DIAL_INTERCEPTED);if(r.length===0){Vt("loading multiaddrs for %p",t);try{let l=await this.peerStore.get(t);r.push(...l.addresses),Vt("loaded multiaddrs for %p",t,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 jl(l.multiaddr,n);return f.length===1&&f[0].equals(l.multiaddr)?l:f.map(h=>({multiaddr:h,isCertified:!1}))}))).flat(),s=i.filter(l=>{if(this.transportManager.transportForMultiaddr(l.multiaddr)==null)return!1;let f=l.multiaddr.getPeerId();return t!=null&&f!=null?t.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)&&(Vt("addresses for %p before filtering",t??"unknown peer",i.map(({multiaddr:l})=>l.toString())),Vt("addresses for %p after filtering",t??"unknown peer",a.map(({multiaddr:l})=>l.toString()))),a.length===0)throw new w("The dial request has no valid addresses",F.ERR_NO_VALID_ADDRESSES);if(a.length>this.maxPeerAddrsToDial)throw new w("dial with more addresses than allowed",F.ERR_TOO_MANY_ADDRESSES);if(t!=null){let l=`/p2p/${t.toString()}`;a=a.map(f=>{let h=f.multiaddr.getPeerId();return f.multiaddr.protos().pop()?.path===!0?f:h!==t.toString()?{multiaddr:f.multiaddr.encapsulate(l),isCertified:f.isCertified}:f})}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 w("The connection gater denied all addresses in the dial request",F.ERR_NO_VALID_ADDRESSES);return u}async performDial(t,r={}){let n=t.multiaddrs.map(()=>new AbortController);try{let i=new Gr({concurrency:this.maxParallelDialsPerPeer});i.on("error",o=>{Vt.error("error dialling",o)});let s=await Promise.any(t.multiaddrs.map(async(o,a)=>{let c=n[a];if(c==null)throw new w("dialAction did not come with an AbortController",F.ERR_INVALID_PARAMETERS);let u=dy(c.signal,r.signal);u.addEventListener("abort",()=>{Vt("dial to %a aborted",o)});let l=Jr();return await i.add(async()=>{if(u.aborted){Vt("dial to %a was aborted before reaching the head of the peer dial queue",o),l.reject(new Gn);return}await this.queue.add(async()=>{try{if(u.aborted){Vt("dial to %a was aborted before reaching the head of the dial queue",o),l.reject(new Gn);return}t.status="active";let f=await this.transportManager.dial(o,{...r,signal:u});if(c.signal.aborted){Vt("multiple dials succeeded, closing superfluous connection"),f.close().catch(h=>{Vt.error("error closing superfluous connection",h)}),l.reject(new Gn);return}n[a]=void 0,n.forEach(h=>{h!==void 0&&h.abort()}),Vt("dial to %a succeeded",o),l.resolve(f)}catch(f){Vt.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 w("successful dial led to empty object returned from peer dial queue",F.ERR_TRANSPORT_DIAL_FAILED);return t.status="success",s}catch(i){throw t.status="error",t.multiaddrs.length===1&&i.name==="AggregateError"?i.errors[0]:i}}};function Xv(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Te=rt("libp2p:connection-manager"),jv=50,On={minConnections:ma,maxConnections:ya,inboundConnectionThreshold:5,maxIncomingPendingConnections:10,autoDialConcurrency:25,autoDialPriority:0,autoDialMaxQueueLength:100},va=class{started;connections;allow;deny;maxIncomingPendingConnections;incomingPendingConnections;maxConnections;dialQueue;autoDial;connectionPruner;inboundConnectionRateLimiter;peerStore;metrics;events;constructor(t,r={}){this.maxConnections=r.maxConnections??On.maxConnections;let n=r.minConnections??On.minConnections;if(this.maxConnections<n)throw new w("Connection Manager maxConnections must be greater than minConnections",F.ERR_INVALID_PARAMETERS);this.connections=new Ae,this.started=!1,this.peerStore=t.peerStore,this.metrics=t.metrics,this.events=t.events,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=>Ht(i)),this.deny=(r.deny??[]).map(i=>Ht(i)),this.incomingPendingConnections=0,this.maxIncomingPendingConnections=r.maxIncomingPendingConnections??On.maxIncomingPendingConnections,this.inboundConnectionRateLimiter=new py.RateLimiterMemory({points:r.inboundConnectionThreshold??On.inboundConnectionThreshold,duration:1}),this.autoDial=new xa({connectionManager:this,peerStore:t.peerStore,events:t.events},{minConnections:n,autoDialConcurrency:r.autoDialConcurrency??On.autoDialConcurrency,autoDialPriority:r.autoDialPriority??On.autoDialPriority,maxQueueLength:r.autoDialMaxQueueLength??On.autoDialMaxQueueLength}),this.connectionPruner=new Ea({connectionManager:this,peerStore:t.peerStore,events:t.events},{maxConnections:this.maxConnections,allow:this.allow}),this.dialQueue=new wa({peerId:t.peerId,metrics:t.metrics,peerStore:t.peerStore,transportManager:t.transportManager,connectionGater:t.connectionGater},{addressSorter:r.addressSorter??_i,maxParallelDials:r.maxParallelDials??ga,maxPeerAddrsToDial:r.maxPeerAddrsToDial??25,maxParallelDialsPerPeer:r.maxParallelDialsPerPeer??1,dialTimeout:r.dialTimeout??3e4,resolvers:r.resolvers??{dnsaddr:Si},connections:this.connections})}isStarted(){return this.started}async start(){this.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let t={inbound:0,outbound:0};for(let r of this.connections.values())for(let n of r)n.direction==="inbound"?t.inbound++:t.outbound++;return t}}),this.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let t={};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"}`;t[s]=(t[s]??0)+1}return t}}),this.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let t={};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))t[o]=t[o]??[],t[o].push(a)}let r={};for(let[n,i]of Object.entries(t)){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,Te("started")}async afterStart(){Promise.resolve().then(async()=>{let t=await this.peerStore.all({filters:[r=>r.tags.has(mm)]});await Promise.all(t.map(async r=>{await this.openConnection(r.id).catch(n=>{Te.error(n)})}))}).catch(t=>{Te.error(t)}),this.autoDial.afterStart()}async stop(){this.dialQueue.stop(),this.autoDial.stop();let t=[];for(let r of this.connections.values())for(let n of r)t.push((async()=>{try{await n.close()}catch(i){Te.error(i)}})());Te("closing %d connections",t.length),await Promise.all(t),this.connections.clear(),Te("stopped")}onConnect(t){this._onConnect(t).catch(r=>{Te.error(r)})}async _onConnect(t){let{detail:r}=t;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(t){let{detail:r}=t;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(t){if(t!=null)return this.connections.get(t)??[];let r=[];for(let n of this.connections.values())r=r.concat(n);return r}getConnectionsMap(){return this.connections}async openConnection(t,r={}){if(!this.isStarted())throw new w("Not started",F.ERR_NODE_NOT_STARTED);r.signal?.throwIfAborted();let{peerId:n}=ha(t);if(n!=null&&r.force!==!0){Te("dial %p",n);let a=this.getConnections(n).find(c=>!c.transient);if(a!=null)return Te("had an existing non-transient connection to %p",n),a}let i=await this.dialQueue.dial(t,{...r,priority:r.priority??jv}),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(t,r={}){let n=this.connections.get(t)??[];await Promise.all(n.map(async i=>{try{await i.close(r)}catch(s){i.abort(s)}}))}async acceptIncomingConnection(t){if(this.deny.some(i=>t.remoteAddr.toString().startsWith(i.toString())))return Te("connection from %a refused - connection remote address was in deny list",t.remoteAddr),!1;if(this.allow.some(i=>t.remoteAddr.toString().startsWith(i.toString())))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.maxIncomingPendingConnections)return Te("connection from %a refused - incomingPendingConnections exceeded by host",t.remoteAddr),!1;if(t.remoteAddr.isThinWaistAddress()){let i=t.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(i,1)}catch{return Te("connection from %a refused - inboundConnectionThreshold exceeded by host %s",t.remoteAddr,i),!1}}return this.getConnections().length<this.maxConnections?(this.incomingPendingConnections++,!0):(Te("connection from %a refused - maxConnections exceeded",t.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}getDialQueue(){return this.dialQueue.pendingDials}};var _a=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},Bi=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new _a(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let r=this.head;this.head=r.next=new _a(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var nf=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Mn(e={}){return t_(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}},e)}function t_(e,t){t=t??{};let r=t.onEnd,n=new Bi,i,s,o,a=Jr(),c=async()=>{try{return n.isEmpty()?o?{done:!0}:await new Promise((y,g)=>{s=x=>{s=null,n.push(x);try{y(e(n))}catch(b){g(b)}return i}}):e(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=Jr()})}},u=y=>s!=null?s(y):(n.push(y),i),l=y=>(n=new Bi,s!=null?s({error:y}):(n.push({error:y}),i)),f=y=>{if(o)return i;if(t?.objectMode!==!0&&y?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:y})},h=y=>o?i:(o=!0,y!=null?l(y):u({done:!0})),p=()=>(n=new Bi,h(),{done:!0}),d=y=>(h(y),{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 y=>{let g=y?.signal;if(g?.throwIfAborted(),n.isEmpty())return;let x,b;g!=null&&(x=new Promise((C,_)=>{b=()=>{_(new nf)},g.addEventListener("abort",b)}));try{await Promise.race([a.promise,x])}finally{b!=null&&g!=null&&g?.removeEventListener("abort",b)}}},r==null)return i;let m=i;return i={[Symbol.asyncIterator](){return this},next(){return m.next()},throw(y){return m.throw(y),r!=null&&(r(y),r=void 0),{done:!0}},return(){return m.return(),r!=null&&(r(),r=void 0),{done:!0}},push:f,end(y){return m.end(y),r!=null&&(r(y),r=void 0),i},get readableLength(){return m.readableLength}},i}function e_(e){return e[Symbol.asyncIterator]!=null}function r_(...e){let t=[];for(let r of e)e_(r)||t.push(r);return t.length===e.length?function*(){for(let r of t)yield*r}():async function*(){let r=Mn({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(e.map(async n=>{for await(let i of n)r.push(i)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var jr=r_;function Un(e,...t){if(e==null)throw new Error("Empty pipeline");if(sf(e)){let n=e;e=()=>n.source}else if(yy(e)||my(e)){let n=e;e=()=>n}let r=[e,...t];if(r.length>1&&sf(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++)sf(r[n])&&(r[n]=i_(r[n]));return n_(...r)}var n_=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},my=e=>e?.[Symbol.asyncIterator]!=null,yy=e=>e?.[Symbol.iterator]!=null,sf=e=>e==null?!1:e.sink!=null&&e.source!=null,i_=e=>t=>{let r=e.sink(t);if(r?.then!=null){let n=Mn({objectMode:!0});r.then(()=>{n.end()},o=>{n.end(o)});let i,s=e.source;if(my(s))i=async function*(){yield*s,n.end()};else if(yy(s))i=function*(){yield*s,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return jr(n,i())}return e.source};function s_(e){return e[Symbol.asyncIterator]!=null}function o_(e,t){if(s_(e))return async function*(){for await(let a of e)yield t(a)}();let r=Zo(e),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let s=t(n);if(typeof s.then=="function")return async function*(){yield await s;for await(let a of r)yield t(a)}();let o=t;return function*(){yield s;for(let a of r)yield o(a)}()}var gy=o_;async function*Ss(e,t){yield*gy(e,async r=>(await t.merge(r.id,{multiaddrs:r.multiaddrs}),r))}function Sa(e){let t=new Set;return He(e,r=>t.has(r.id.toString())?!1:(t.add(r.id.toString()),!0))}async function*Aa(e,t=1){let r=0;for await(let n of e)r++,yield n;if(r<t)throw new w(`more peers required, seen: ${r} min: ${t}`,"NOT_FOUND")}var Ia=class{routers;started;components;constructor(t,r){this.routers=r.routers??[],this.started=!1,this.components=t}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(t,r={}){if(this.routers.length===0)throw new w("No content routers available",F.ERR_NO_ROUTERS_AVAILABLE);yield*Un(jr(...this.routers.map(n=>n.findProviders(t,r))),n=>Ss(n,this.components.peerStore),n=>Sa(n),n=>Aa(n))}async provide(t,r={}){if(this.routers.length===0)throw new w("No content routers available",F.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map(async n=>{await n.provide(t,r)}))}async put(t,r,n){if(!this.isStarted())throw new w(or.NOT_STARTED_YET,F.DHT_NOT_STARTED);await Promise.all(this.routers.map(async i=>{await i.put(t,r,n)}))}async get(t,r){if(!this.isStarted())throw new w(or.NOT_STARTED_YET,F.DHT_NOT_STARTED);return Promise.any(this.routers.map(async n=>n.get(t,r)))}};function a_(e){return e[Symbol.asyncIterator]!=null}function c_(e){if(a_(e))return(async()=>{for await(let t of e)return t})();for(let t of e)return t}var Ra=c_;var u_=rt("libp2p:peer-routing"),Ca=class{components;routers;constructor(t,r){this.components=t,this.routers=r.routers??[]}async findPeer(t,r){if(this.routers.length===0)throw new w("No peer routers available",F.ERR_NO_ROUTERS_AVAILABLE);if(t.toString()===this.components.peerId.toString())throw new w("Should not try to find self",F.ERR_FIND_SELF);let n=await Un(jr(...this.routers.map(i=>async function*(){try{yield await i.findPeer(t,r)}catch(s){u_.error(s)}}())),i=>He(i,Boolean),i=>Ss(i,this.components.peerStore),async i=>Ra(i));if(n!=null)return n;throw new w(or.NOT_FOUND,F.ERR_NOT_FOUND)}async*getClosestPeers(t,r){if(this.routers.length===0)throw new w("No peer routers available",F.ERR_NO_ROUTERS_AVAILABLE);yield*Un(jr(...this.routers.map(n=>n.getClosestPeers(t,r))),n=>Ss(n,this.components.peerStore),n=>Sa(n),n=>Aa(n))}};var l_=rt("libp2p:registrar"),of=32,af=64,Ta=class{topologies;handlers;components;constructor(t){this.topologies=new Map,this.handlers=new Map,this.components=t,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(t){let r=this.handlers.get(t);if(r==null)throw new w(`No handler registered for protocol ${t}`,F.ERR_NO_HANDLER_FOR_PROTOCOL);return r}getTopologies(t){let r=this.topologies.get(t);return r==null?[]:[...r.values()]}async handle(t,r,n){if(this.handlers.has(t))throw new w(`Handler already registered for protocol ${t}`,F.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let i=qr.bind({ignoreUndefined:!0})({maxInboundStreams:of,maxOutboundStreams:af},n);this.handlers.set(t,{handler:r,options:i}),await this.components.peerStore.merge(this.components.peerId,{protocols:[t]})}async unhandle(t){(Array.isArray(t)?t:[t]).forEach(n=>{this.handlers.delete(n)}),await this.components.peerStore.patch(this.components.peerId,{protocols:this.getProtocols()})}async register(t,r){if(r==null)throw new w("invalid topology",F.ERR_INVALID_PARAMETERS);let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,i=this.topologies.get(t);return i==null&&(i=new Map,this.topologies.set(t,i)),i.set(n,r),n}unregister(t){for(let[r,n]of this.topologies.entries())n.has(t)&&(n.delete(t),n.size===0&&this.topologies.delete(r))}_onDisconnect(t){let r=t.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&&l_.error("could not inform topologies of disconnecting peer %p",r,n)})}_onPeerUpdate(t){let{peer:r,previous:n}=t.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(t){let r=t.detail.protocols,n=t.detail.connection,i=t.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 cf=class extends Map{metric;constructor(t){super();let{name:r,metrics:n}=t;this.metric=n.registerMetric(r),this.updateComponentMetric()}set(t,r){return super.set(t,r),this.updateComponentMetric(),this}delete(t){let r=super.delete(t);return this.updateComponentMetric(),r}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function xy(e){let{name:t,metrics:r}=e,n;return r!=null?n=new cf({name:t,metrics:r}):n=new Map,n}var tn=rt("libp2p:transports"),Ba=class{components;transports;listeners;faultTolerance;started;constructor(t,r={}){this.components=t,this.started=!1,this.transports=new Map,this.listeners=xy({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=r.faultTolerance??Xr.FATAL_ALL}add(t){let r=t[Symbol.toStringTag];if(r==null)throw new w("Transport must have a valid tag",F.ERR_INVALID_KEY);if(this.transports.has(r))throw new w(`There is already a transport with the tag ${r}`,F.ERR_DUPLICATE_TRANSPORT);tn("adding transport %s",r),this.transports.set(r,t),this.listeners.has(r)||this.listeners.set(r,[])}isStarted(){return this.started}start(){this.started=!0}async afterStart(){let t=this.components.addressManager.getListenAddrs();await this.listen(t)}async stop(){let t=[];for(let[r,n]of this.listeners)for(tn("closing listeners for %s",r);n.length>0;){let i=n.pop();i!=null&&t.push(i.close())}await Promise.all(t),tn("all listeners closed");for(let r of this.listeners.keys())this.listeners.set(r,[]);this.started=!1}async dial(t,r){let n=this.transportForMultiaddr(t);if(n==null)throw new w(`No transport available for address ${String(t)}`,F.ERR_TRANSPORT_UNAVAILABLE);try{return await n.dial(t,{...r,upgrader:this.components.upgrader})}catch(i){throw i.code==null&&(i.code=F.ERR_TRANSPORT_DIAL_FAILED),i}}getAddrs(){let t=[];for(let r of this.listeners.values())for(let n of r)t=[...t,...n.getAddrs()];return t}getTransports(){return Array.of(...this.transports.values())}getListeners(){return Array.of(...this.listeners.values()).flat()}transportForMultiaddr(t){for(let r of this.transports.values())if(r.filter([t]).length>0)return r}async listen(t){if(!this.isStarted())throw new w("Not started",F.ERR_NODE_NOT_STARTED);if(t==null||t.length===0){tn("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(t),o=[];for(let u of s){tn("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!==Xr.NO_FATAL)throw new w(`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===Xr.FATAL_ALL)throw new w(n,F.ERR_NO_VALID_ADDRESSES);tn(`libp2p in dial mode only: ${n}`)}}async remove(t){let r=this.listeners.get(t)??[];tn.trace("removing transport %s",t);let n=[];for(tn.trace("closing listeners for %s",t);r.length>0;){let i=r.pop();i!=null&&n.push(i.close())}await Promise.all(n),this.transports.delete(t),this.listeners.delete(t)}async removeAll(){let t=[];for(let r of this.transports.keys())t.push(this.remove(r));await Promise.all(t)}};var Rr="/multistream/1.0.0";function uf(e){let t=async function*(){let r=yield,n=new Qt;for await(let i of e){if(r==null){n.append(i),r=yield n,n=new Qt;continue}for(n.append(i);n.length>=r;){let s=n.sublist(0,r);if(n.consume(r),r=yield s,r==null){n.length>0&&(r=yield n,n=new Qt);break}}}if(r!=null)throw Object.assign(new Error(`stream ended before ${r} bytes became available`),{code:"ERR_UNDER_READ",buffer:n})}();return t.next(),t}function La(e){let t=Mn(),r=uf(e.source),n=Jr(),i,s=e.sink(async function*(){yield*t,yield*await n.promise}());return s.catch(a=>{i=a}),{reader:r,writer:t,stream:{sink:async a=>{if(i!=null){await Promise.reject(i);return}n.resolve(a),await s},source:r},rest:()=>t.end(),write:t.push,read:async()=>{let a=await r.next();if(a.value!=null)return a.value}}}var As=class extends Error{constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Ey(e){if(e!=null){if(typeof e[Symbol.iterator]=="function")return e[Symbol.iterator]();if(typeof e[Symbol.asyncIterator]=="function")return e[Symbol.asyncIterator]();if(typeof e.next=="function")return e}throw new Error("argument is not an iterator or iterable")}function by(e,t,r){let n=r??{},i=Ey(e);async function*s(){let o,a=()=>{o?.()};for(t.addEventListener("abort",a);;){let c;try{if(t.aborted){let{abortMessage:l,abortCode:f}=n;throw new As(l,f)}let u=new Promise((l,f)=>{o=()=>{let{abortMessage:h,abortCode:p}=n;f(new As(h,p))}});c=await Promise.race([u,i.next()]),o=null}catch(u){t.removeEventListener("abort",a);let l=u.type==="aborted"&&t.aborted;if(l&&n.onAbort!=null&&n.onAbort(e),typeof i.return=="function")try{let f=i.return();f instanceof Promise&&f.catch(h=>{n.onReturnError!=null&&n.onReturnError(h)})}catch(f){n.onReturnError!=null&&n.onReturnError(f)}if(l&&n.returnOnAbort===!0)return;throw u}if(c.done===!0)break;yield c.value}t.removeEventListener("abort",a)}return s()}function Pa(e){return e[Symbol.asyncIterator]!=null}var Da=e=>{let t=ge(e),r=ae(t);return De(e,r),Da.bytes=t,r};Da.bytes=0;function Na(e,t){t=t??{};let r=t.lengthEncoder??Da;function*n(i){let s=r(i.byteLength);s instanceof Uint8Array?yield s:yield*s,i instanceof Uint8Array?yield i:yield*i}return Pa(e)?async function*(){for await(let i of e)yield*n(i)}():function*(){for(let i of e)yield*n(i)}()}Na.single=(e,t)=>{t=t??{};let r=t.lengthEncoder??Da;return new Qt(r(e.byteLength),e)};var Li=mt(El(),1);var f_=8,h_=1024*1024*4,Fn;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(Fn||(Fn={}));var lf=e=>{let t=Ar(e);return lf.bytes=ge(t),t};lf.bytes=0;function Is(e,t){let r=new Qt,n=Fn.LENGTH,i=-1,s=t?.lengthDecoder??lf,o=t?.maxLengthLength??f_,a=t?.maxDataLength??h_;function*c(){for(;r.byteLength>0;){if(n===Fn.LENGTH)try{if(i=s(r),i<0)throw(0,Li.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>a)throw(0,Li.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=s.bytes;r.consume(u),t?.onLength!=null&&t.onLength(i),n=Fn.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>o)throw(0,Li.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===Fn.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),t?.onData!=null&&t.onData(u),yield u,n=Fn.LENGTH}}}return Pa(e)?async function*(){for await(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,Li.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,Li.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}Is.fromReader=(e,t)=>{let r=1,n=async function*(){for(;;)try{let{done:s,value:o}=await e.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 Is(n,{...t??{},onLength:s=>{r=s}})};var m_=rt("libp2p:mss"),wy=z(`
49
- `);function Rs(e){let t=new Qt(e,wy);return Na.single(t)}function Kn(e,t,r={}){let n=Rs(t);r.writeBytes===!0?e.push(n.subarray()):e.push(n)}function vy(e,t,r={}){let n=new Qt;for(let i of t)n.append(Rs(i));r.writeBytes===!0?e.push(n.subarray()):e.push(n)}async function y_(e,t){let r=1,n={[Symbol.asyncIterator]:()=>n,next:async()=>e.next(r)},i=n;t?.signal!=null&&(i=by(n,t.signal));let s=a=>{r=a},o=await Un(i,a=>Is(a,{onLength:s,maxDataLength:1024}),async a=>Ra(a));if(o==null||o.length===0)throw new w("no buffer returned","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");if(o.get(o.byteLength-1)!==wy[0])throw m_.error("Invalid mss message - missing newline - %s",o.subarray()),new w("missing newline","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return o.sublist(0,-1)}async function Pi(e,t){let r=await y_(e,t);return X(r.subarray())}var Cs=rt("libp2p:mss:select");async function Ts(e,t,r={}){t=Array.isArray(t)?[...t]:[t];let{reader:n,writer:i,rest:s,stream:o}=La(e),a=t.shift();if(a==null)throw new Error("At least one protocol must be specified");Cs.trace('select: write ["%s", "%s"]',Rr,a);let c=z(Rr),u=z(a);vy(i,[c,u],r);let l=await Pi(n,r);if(Cs.trace('select: read "%s"',l),l===Rr&&(l=await Pi(n,r),Cs.trace('select: read "%s"',l)),l===a)return s(),{stream:o,protocol:a};for(let f of t){Cs.trace('select: write "%s"',f),Kn(i,z(f),r);let h=await Pi(n,r);if(Cs.trace('select: read "%s" for "%s"',h,f),h===f)return s(),{stream:o,protocol:f}}throw s(),new w("protocol selection failed","ERR_UNSUPPORTED_PROTOCOL")}var Bs=rt("libp2p:mss:handle");async function Ls(e,t,r){t=Array.isArray(t)?t:[t];let{writer:n,reader:i,rest:s,stream:o}=La(e);for(;;){let a=await Pi(i,r);if(Bs.trace('read "%s"',a),a===Rr){Bs.trace('respond with "%s" for "%s"',Rr,a),Kn(n,z(Rr),r);continue}if(t.includes(a))return Kn(n,z(a),r),Bs.trace('respond with "%s" for "%s"',a,a),s(),{stream:o,protocol:a};if(a==="ls"){Kn(n,new Qt(...t.map(c=>Rs(z(c)))),r),Bs.trace('respond with "%s" for %s',t,a);continue}Kn(n,z("na"),r),Bs('respond with "na" for "%s"',a)}}var Sy=Symbol.for("@libp2p/connection");var Vn=rt("libp2p:connection"),x_=500,ff=class{id;remoteAddr;remotePeer;direction;timeline;multiplexer;encryption;status;transient;tags;_newStream;_close;_abort;_getStreams;constructor(t){let{remoteAddr:r,remotePeer:n,newStream:i,close:s,abort:o,getStreams:a}=t;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=r,this.remotePeer=n,this.direction=t.direction,this.status="open",this.timeline=t.timeline,this.multiplexer=t.multiplexer,this.encryption=t.encryption,this.transient=t.transient??!1,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";[Sy]=!0;get streams(){return this._getStreams()}async newStream(t,r){if(this.status==="closing")throw new w("the connection is being closed","ERR_CONNECTION_BEING_CLOSED");if(this.status==="closed")throw new w("the connection is closed","ERR_CONNECTION_CLOSED");if(Array.isArray(t)||(t=[t]),this.transient&&r?.runOnTransientConnection!==!0)throw new w("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");let n=await this._newStream(t,r);return n.direction="outbound",n}async close(t={}){if(!(this.status==="closed"||this.status==="closing")){Vn("closing connection to %a",this.remoteAddr),this.status="closing",t.signal=t?.signal??AbortSignal.timeout(x_),ve(1/0,t.signal);try{Vn.trace("closing all streams"),await Promise.all(this.streams.map(async r=>r.close(t))),Vn.trace("closing underlying transport"),await this._close(t),Vn.trace("updating timeline with close time"),this.status="closed",this.timeline.close=Date.now()}catch(r){Vn.error("error encountered during graceful close of connection to %a",this.remoteAddr,r),this.abort(r)}}}abort(t){Vn.error("aborting connection to %a due to error",this.remoteAddr,t),this.status="closing",this.streams.forEach(r=>{r.abort(t)}),Vn.error("all streams aborted",this.streams.length),this._abort(t),this.timeline.close=Date.now(),this.status="closed"}};function Ay(e){return new ff(e)}var Et=rt("libp2p:upgrader");function b_(e,t){try{let{options:r}=t.getHandler(e);return r.maxInboundStreams}catch(r){if(r.code!==F.ERR_NO_HANDLER_FOR_PROTOCOL)throw r}return of}function w_(e,t,r={}){try{let{options:n}=t.getHandler(e);if(n.maxOutboundStreams!=null)return n.maxOutboundStreams}catch(n){if(n.code!==F.ERR_NO_HANDLER_FOR_PROTOCOL)throw n}return r.maxOutboundStreams??af}function Iy(e,t,r){let n=0;return r.streams.forEach(i=>{i.direction===t&&i.protocol===e&&n++}),n}var ka=class{components;connectionEncryption;muxers;inboundUpgradeTimeout;events;constructor(t,r){this.components=t,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=t.events}async shouldBlockConnection(t,r,n){let i=this.components.connectionGater[n];if(i!==void 0&&await i(t,r))throw new w(`The multiaddr connection is blocked by gater.${n}`,F.ERR_CONNECTION_INTERCEPTED)}async upgradeInbound(t,r){if(!await this.components.connectionManager.acceptIncomingConnection(t))throw new w("connection denied",F.ERR_CONNECTION_DENIED);let i,s,o,a,c,u=AbortSignal.timeout(this.inboundUpgradeTimeout),l=()=>{t.abort(new w("inbound upgrade timeout",F.ERR_TIMEOUT))};u.addEventListener("abort",l,{once:!0}),ve(1/0,u);try{if(await this.components.connectionGater.denyInboundConnection?.(t)===!0)throw new w("The multiaddr connection is blocked by gater.acceptConnection",F.ERR_CONNECTION_INTERCEPTED);this.components.metrics?.trackMultiaddrConnection(t),Et("starting the inbound connection upgrade");let f=t;if(r?.skipProtection!==!0){let h=this.components.connectionProtector;h!=null&&(Et("protecting the inbound connection"),f=await h.protect(t))}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=t.remoteAddr.getPeerId();if(h==null)throw new w("inbound connection that skipped encryption must have a peer id",F.ERR_INVALID_MULTIADDR);let p=lt(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 Et.error("Failed to upgrade inbound connection",h),h}return await this.shouldBlockConnection(s,t,"denyInboundUpgradedConnection"),Et("Successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:c,direction:"inbound",maConn:t,upgradedConn:o,muxerFactory:a,remotePeer:s,transient:r?.transient})}finally{u.removeEventListener("abort",l),this.components.connectionManager.afterUpgradeInbound()}}async upgradeOutbound(t,r){let n=t.remoteAddr.getPeerId(),i;n!=null&&(i=lt(n),await this.shouldBlockConnection(i,t,"denyOutboundConnection"));let s,o,a,c,u;this.components.metrics?.trackMultiaddrConnection(t),Et("Starting the outbound connection upgrade");let l=t;if(r?.skipProtection!==!0){let f=this.components.connectionProtector;f!=null&&(l=await f.protect(t))}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 w("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 Et.error("Failed to upgrade outbound connection",f),await t.close(f),f}return await this.shouldBlockConnection(o,t,"denyOutboundUpgradedConnection"),Et("Successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:t,upgradedConn:a,muxerFactory:u,remotePeer:o,transient:r?.transient})}_createConnection(t){let{cryptoProtocol:r,direction:n,maConn:i,upgradedConn:s,remotePeer:o,muxerFactory:a,transient:c}=t,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:y,protocol:g}=await Ls(d,m);if(Et("%s: incoming stream opened on %s",n,g),f==null)return;let x=b_(g,this.components.registrar);if(Iy(g,"inbound",f)===x){let C=new w(`Too many inbound protocol streams for protocol "${g}" - limit ${x}`,F.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS);throw d.abort(C),C}d.source=y.source,d.sink=y.sink,d.protocol=g,await this.components.peerStore.merge(o,{protocols:[g]}),this.components.metrics?.trackProtocolStream(d,f),this._onStream({connection:f,stream:d,protocol:g})}).catch(async m=>{Et.error(m),d.timeline.close==null&&await d.close()})}}),l=async(d,m={})=>{if(u==null)throw new w("Stream is not multiplexed",F.ERR_MUXER_UNAVAILABLE);Et("%s: starting new stream on %s",n,d);let y=await u.newStream();try{m.signal==null&&(Et("No abort signal was passed while trying to negotiate protocols %s falling back to default timeout",d),m.signal=AbortSignal.timeout(3e4),ve(1/0,m.signal));let{stream:g,protocol:x}=await Ts(y,d,m),b=w_(x,this.components.registrar,m);if(Iy(x,"outbound",f)>=b){let _=new w(`Too many outbound protocol streams for protocol "${x}" - limit ${b}`,F.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw y.abort(_),_}return await this.components.peerStore.merge(o,{protocols:[x]}),y.source=g.source,y.sink=g.sink,y.protocol=x,this.components.metrics?.trackProtocolStream(y,f),y}catch(g){throw Et.error("could not create new stream for protocols %s on connection with address %a",d,f.remoteAddr,g),y.timeline.close==null&&y.abort(g),g.code!=null?g:new w(String(g),F.ERR_UNSUPPORTED_PROTOCOL)}},Promise.all([u.sink(s.source),s.sink(u.source)]).catch(d=>{Et.error(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){Et.error(m)}finally{this.events.safeDispatchEvent("connection:close",{detail:f})}})().catch(m=>{Et.error(m)}),Reflect.set(...d))}),i.timeline.upgraded=Date.now();let p=()=>{throw new w("connection is not multiplexed",F.ERR_CONNECTION_NOT_MULTIPLEXED)};return f=Ay({remoteAddr:i.remoteAddr,remotePeer:o,status:"open",direction:n,timeline:i.timeline,multiplexer:u?.protocol,encryption:r,transient:c,newStream:l??p,getStreams:()=>u!=null?u.streams:[],close:async d=>{u!=null&&(Et.trace("close muxer"),await u.close(d)),Et.trace("close maconn"),await i.close(d),Et.trace("closed maconn")},abort:d=>{i.abort(d),u?.abort(d)}}),this.events.safeDispatchEvent("connection:open",{detail:f}),f}_onStream(t){let{connection:r,stream:n,protocol:i}=t,{handler:s,options:o}=this.components.registrar.getHandler(i);if(r.transient&&o.runOnTransientConnection!==!0)throw new w("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");s({connection:r,stream:n})}async _encryptInbound(t){let r=Array.from(this.connectionEncryption.keys());Et("handling inbound crypto protocol selection",r);try{let{stream:n,protocol:i}=await Ls(t,r,{writeBytes:!0}),s=this.connectionEncryption.get(i);if(s==null)throw new Error(`no crypto module found for ${i}`);return Et("encrypting inbound connection..."),{...await s.secureInbound(this.components.peerId,n),protocol:i}}catch(n){throw new w(String(n),F.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(t,r){let n=Array.from(this.connectionEncryption.keys());Et("selecting outbound crypto protocol",n);try{let{stream:i,protocol:s}=await Ts(t,n,{writeBytes:!0}),o=this.connectionEncryption.get(s);if(o==null)throw new Error(`no crypto module found for ${s}`);return Et("encrypting outbound connection to %p",r),{...await o.secureOutbound(this.components.peerId,i,r),protocol:s}}catch(i){throw new w(String(i),F.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(t,r){let n=Array.from(r.keys());Et("outbound selecting muxer %s",n);try{let{stream:i,protocol:s}=await Ts(t,n,{writeBytes:!0});Et("%s selected as muxer protocol",s);let o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw Et.error("error multiplexing outbound stream",i),new w(String(i),F.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(t,r){let n=Array.from(r.keys());Et("inbound handling muxers %s",n);try{let{stream:i,protocol:s}=await Ls(t,n,{writeBytes:!0}),o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw Et.error("error multiplexing inbound stream",i),new w(String(i),F.ERR_MUXER_UNAVAILABLE)}}};var xe=rt("libp2p"),hf=class extends ss{peerId;peerStore;contentRouting;peerRouting;keychain;metrics;services;components;#t;constructor(t){super();let r=new ss,n=r.dispatchEvent.bind(r);r.dispatchEvent=c=>{let u=n(c),l=this.dispatchEvent(new Eu(c.type,{detail:c.detail}));return u||l},ve(1/0,r),this.#t=!1,this.peerId=t.peerId,this.services={};let i=this.components=Kp({peerId:t.peerId,events:r,datastore:t.datastore??new jo,connectionGater:Xp(t.connectionGater)});this.peerStore=this.configureComponent("peerStore",new Xo(i,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...t.peerStore})),t.metrics!=null&&(this.metrics=this.configureComponent("metrics",t.metrics(this.components))),i.events.addEventListener("peer:update",c=>{if(c.detail.previous==null){let u={id:c.detail.peer.id,multiaddrs:c.detail.peer.addresses.map(l=>l.multiaddr),protocols:c.detail.peer.protocols};i.events.safeDispatchEvent("peer:discovery",{detail:u})}}),t.connectionProtector!=null&&this.configureComponent("connectionProtector",t.connectionProtector(i)),this.components.upgrader=new ka(this.components,{connectionEncryption:(t.connectionEncryption??[]).map((c,u)=>this.configureComponent(`connection-encryption-${u}`,c(this.components))),muxers:(t.streamMuxers??[]).map((c,u)=>this.configureComponent(`stream-muxers-${u}`,c(this.components))),inboundUpgradeTimeout:t.connectionManager.inboundUpgradeTimeout}),this.configureComponent("transportManager",new Ba(this.components,t.transportManager)),this.configureComponent("connectionManager",new va(this.components,t.connectionManager)),this.configureComponent("registrar",new Ta(this.components)),this.configureComponent("addressManager",new ta(this.components,t.addresses));let s=Cn.generateOptions();this.keychain=this.configureComponent("keyChain",new Cn(this.components,{...s,...t.keychain}));let o=(t.peerRouters??[]).map((c,u)=>this.configureComponent(`peer-router-${u}`,c(this.components)));this.peerRouting=this.components.peerRouting=this.configureComponent("peerRouting",new Ca(this.components,{routers:o}));let a=(t.contentRouters??[]).map((c,u)=>this.configureComponent(`content-router-${u}`,c(this.components)));if(this.contentRouting=this.components.contentRouting=this.configureComponent("contentRouting",new Ia(this.components,{routers:a})),(t.peerDiscovery??[]).forEach((c,u)=>{this.configureComponent(`peer-discovery-${u}`,c(this.components)).addEventListener("peer",f=>{this.#e(f)})}),t.transports.forEach((c,u)=>{this.components.transportManager.add(this.configureComponent(`transport-${u}`,c(this.components)))}),t.services!=null)for(let c of Object.keys(t.services)){let u=t.services[c],l=u(this.components);if(l==null){xe.error("service factory %s returned null or undefined instance",c);continue}this.services[c]=l,this.configureComponent(c,l),l[gu]!=null&&(xe("registering service %s for content routing",c),a.push(l[gu])),l[wu]!=null&&(xe("registering service %s for peer routing",c),o.push(l[wu])),l[bu]!=null&&(xe("registering service %s for peer discovery",c),l[bu].addEventListener("peer",f=>{this.#e(f)}))}}configureComponent(t,r){return r==null&&xe.error("component %s was null or undefined",t),this.components[t]=r,r}async start(){if(this.#t)return;this.#t=!0,xe("libp2p is starting"),(await this.keychain.listKeys()).find(r=>r.name==="self")==null&&(xe("importing self key into keychain"),await this.keychain.importPeer("self",this.components.peerId));try{await this.components.beforeStart?.(),await this.components.start(),await this.components.afterStart?.(),this.safeDispatchEvent("start",{detail:this}),xe("libp2p has started")}catch(r){throw xe.error("An error occurred starting libp2p",r),await this.stop(),r}}async stop(){this.#t&&(xe("libp2p is stopping"),this.#t=!1,await this.components.beforeStop?.(),await this.components.stop(),await this.components.afterStop?.(),this.safeDispatchEvent("stop",{detail:this}),xe("libp2p has stopped"))}isStarted(){return this.#t}getConnections(t){return this.components.connectionManager.getConnections(t)}getDialQueue(){return this.components.connectionManager.getDialQueue()}getPeers(){let t=new Tn;for(let r of this.components.connectionManager.getConnections())t.add(r.remotePeer);return Array.from(t)}async dial(t,r={}){return this.components.connectionManager.openConnection(t,r)}async dialProtocol(t,r,n={}){if(r==null)throw new w("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 w("no protocols were provided to open a stream",F.ERR_INVALID_PROTOCOLS_FOR_STREAM);return(await this.dial(t,n)).newStream(r,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(t,r={}){Bn(t)&&(t=lt(t.getPeerId()??"")),await this.components.connectionManager.closeConnections(t,r)}async getPublicKey(t,r={}){if(xe("getPublicKey %p",t),t.publicKey!=null)return t.publicKey;let n=await this.peerStore.get(t);if(n.id.publicKey!=null)return n.id.publicKey;let i=kt([z("/pk/"),t.multihash.digest]),s=await this.contentRouting.get(i,r);return ns(s),await this.peerStore.patch(t,{publicKey:s}),s}async handle(t,r,n){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async i=>{await this.components.registrar.handle(i,r,n)}))}async unhandle(t){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async r=>{await this.components.registrar.unhandle(r)}))}async register(t,r){return this.components.registrar.register(t,r)}unregister(t){this.components.registrar.unregister(t)}#e(t){let{detail:r}=t;if(r.id.toString()===this.peerId.toString()){xe.error(new Error(F.ERR_DISCOVERED_SELF));return}this.components.peerStore.merge(r.id,{multiaddrs:r.multiaddrs,protocols:r.protocols}).catch(n=>{xe.error(n)})}};async function Ry(e){if(e.peerId==null){let t=e.datastore;if(t!=null)try{let r=new Cn({datastore:t},qr(Cn.generateOptions(),e.keychain));e.peerId=await r.exportPeerId("self")}catch(r){if(r.code!=="ERR_NOT_FOUND")throw r}}return e.peerId==null&&(e.peerId=await Gd()),new hf(pm(e))}async function v_(e){let t=await Ry(e);return e.start!==!1&&await t.start(),t}return Vy(__);})();
48
+ `.replace(/\s*\/\/.*$/gm,"").replace(/\n/g,"").trim(),qw=new RegExp(`(?:^${ze}$)|(?:^${ia}$)`),$w=new RegExp(`^${ze}$`),Hw=new RegExp(`^${ia}$`),_l=e=>e&&e.exact?qw:new RegExp(`(?:${Xr(e)}${ze}${Xr(e)})|(?:${Xr(e)}${ia}${Xr(e)})`,"g");_l.v4=e=>e&&e.exact?$w:new RegExp(`${Xr(e)}${ze}${Xr(e)}`,"g");_l.v6=e=>e&&e.exact?Hw:new RegExp(`${Xr(e)}${ia}${Xr(e)}`,"g");var $p=_l;var Wp=yt(zp(),1),{isValid:zw,parse:Gw}=Wp.default,Yw=["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"],Ww=Yw.map(e=>new Yp.Netmask(e));function Qw(e){for(let t of Ww)if(t.contains(e))return!0;return!1}function Gp(e){return/^::$/.test(e)||/^::1$/.test(e)||/^::f{4}:([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^::f{4}:0.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^64:ff9b::([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/.test(e)||/^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(e)||/^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(e)||/^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(e)||/^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(e)||/^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(e)||/^f[c-d]([0-9a-fA-F]{2,2}):/i.test(e)||/^fe[8-9a-bA-B][0-9a-fA-F]:/i.test(e)||/^ff([0-9a-fA-F]{2,2}):/i.test(e)}var Qp=e=>{if(zw(e)){let t=Gw(e);if(t.kind()==="ipv4")return Qw(t.toNormalizedString());if(t.kind()==="ipv6")return Gp(e)}else if(gi(e)&&$p.v6().test(e))return Gp(e)};var oa=Qp;function Xp(e={}){return{denyDialPeer:async()=>!1,denyDialMultiaddr:async t=>{let r=t.stringTuples();return r[0][0]===4||r[0][0]===41?!!oa(`${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,...e}}var mB=Symbol.for("@libp2p/transport");var Zr;(function(e){e[e.FATAL_ALL=0]="FATAL_ALL",e[e.NO_FATAL=1]="NO_FATAL"})(Zr||(Zr={}));var Xw=e=>e.toString().split("/").slice(1),bs=e=>({match:t=>t.length<1?!1:e(t[0])?t.slice(1):!1,pattern:"fn"}),Mt=e=>({match:t=>bs(r=>r===e).match(t),pattern:e}),ua=()=>({match:e=>bs(t=>typeof t=="string").match(e),pattern:"{string}"}),Zp=()=>({match:e=>bs(t=>!isNaN(parseInt(t))).match(e),pattern:"{number}"}),Ne=()=>({match:e=>{if(e.length<2||e[0]!=="p2p"&&e[0]!=="ipfs")return!1;if(e[1].startsWith("Q")||e[1].startsWith("1"))try{Ct.decode(`z${e[1]}`)}catch{return!1}else return!1;return e.slice(2)},pattern:"/p2p/{peerid}"}),aa=()=>({match:e=>{if(e.length<2||e[0]!=="certhash")return!1;try{xc.decode(e[1])}catch{return!1}return e.slice(2)},pattern:"/certhash/{certhash}"}),ir=e=>({match:t=>{let r=e.match(t);return r===!1?t:r},pattern:`optional(${e.pattern})`}),sr=(...e)=>({match:t=>{let r;for(let n of e){let i=n.match(t);i!==!1&&(r==null||i.length<r.length)&&(r=i)}return r??!1},pattern:`or(${e.map(t=>t.pattern).join(", ")})`}),Ut=(...e)=>({match:t=>{for(let r of e){let n=r.match(t);if(n===!1)return!1;t=n}return t},pattern:`and(${e.map(t=>t.pattern).join(", ")})`});function zt(...e){function t(i){let s=Xw(i);for(let o of e){let a=o.match(s);if(a===!1)return!1;s=a}return s}function r(i){return t(i)!==!1}function n(i){let s=t(i);return s===!1?!1:s.length===0}return{matches:r,exactMatch:n}}var Al=Ut(Mt("dns4"),ua()),Il=Ut(Mt("dns6"),ua()),Rl=Ut(Mt("dnsaddr"),ua()),Jp=Ut(Mt("dns"),ua()),wB=zt(Al),vB=zt(Il),_B=zt(Rl),SB=zt(sr(Jp,Rl,Al,Il)),jp=Ut(Mt("ip4"),bs(No)),tm=Ut(Mt("ip6"),bs(ko)),em=sr(jp,tm),ws=sr(em,Jp,Al,Il,Rl),AB=zt(ws),IB=zt(jp),RB=zt(tm),CB=zt(em),la=Ut(ws,Mt("tcp"),Zp()),vs=Ut(ws,Mt("udp"),Zp()),Zw=sr(la,vs),TB=zt(la),BB=zt(vs),Cl=Ut(vs,Mt("quic")),fa=Ut(vs,Mt("quic-v1")),Jw=sr(Cl,fa),LB=zt(Cl),PB=zt(fa),Sl=sr(ws,la,vs,Cl,fa),rm=sr(Ut(Sl,Mt("ws"),ir(Ne()))),DB=zt(rm),nm=sr(Ut(Sl,Mt("wss"),ir(Ne())),Ut(Sl,Mt("tls"),Mt("ws"),ir(Ne()))),NB=zt(nm),im=Ut(Zw,Mt("webrtc-direct"),aa(),ir(aa()),ir(Ne())),kB=zt(im),sm=Ut(fa,Mt("webtransport"),aa(),aa(),ir(Ne())),OB=zt(sm),ca=sr(rm,nm,Ut(la,ir(Ne())),Ut(Jw,ir(Ne())),Ut(ws,ir(Ne())),im,sm,Ne()),MB=zt(ca),jw=Ut(ca,Mt("p2p-circuit"),Ne()),Tl=zt(jw),tv=sr(Ut(ca,Mt("p2p-circuit"),Mt("webrtc"),Ne()),Ut(ca,Mt("webrtc"),ir(Ne())),Mt("webrtc")),UB=zt(tv);function Bl(e){try{let{address:t}=e.nodeAddress();return!!oa(t)}catch{return!0}}function ev(e,t){let r=Bl(e.multiaddr),n=Bl(t.multiaddr);return r&&!n?1:!r&&n?-1:0}function rv(e,t){return e.isCertified&&!t.isCertified?-1:!e.isCertified&&t.isCertified?1:0}function nv(e,t){let r=Tl.exactMatch(e.multiaddr),n=Tl.exactMatch(t.multiaddr);return r&&!n?1:!r&&n?-1:0}function _i(e,t){let r=ev(e,t);if(r!==0)return r;let n=nv(e,t);return n!==0?n:rv(e,t)}var Pl=yt(Au(),1),Dl=yt(cm(),1);var um=globalThis.fetch,lm=globalThis.Headers,GB=globalThis.Request,YB=globalThis.Response;function ha(e,t,r){return`${e}?name=${t}&type=${r}`}async function fm(e,t){return await(await um(e,{headers:new lm({accept:"application/dns-json"}),signal:t})).json()}function Nn(e,t){return`${t}_${e}`}var Ll=Object.assign((0,Pl.default)("dns-over-http-resolver"),{error:(0,Pl.default)("dns-over-http-resolver:error")}),Nl=class{_cache;_TXTcache;_servers;_request;_abortControllers;constructor(t={}){this._cache=new Dl.default({max:t?.maxCache??100}),this._TXTcache=new Dl.default({max:t?.maxCache??100}),this._servers=["https://cloudflare-dns.com/dns-query","https://dns.google/resolve"],this._request=t.request??fm,this._abortControllers=[]}cancel(){this._abortControllers.forEach(t=>{t.abort()})}getServers(){return this._servers}_getShuffledServers(){let t=[...this._servers];for(let r=t.length-1;r>0;r--){let n=Math.floor(Math.random()*r),i=t[r];t[r]=t[n],t[n]=i}return t}setServers(t){this._servers=t}async resolve(t,r="A"){switch(r){case"A":return this.resolve4(t);case"AAAA":return this.resolve6(t);case"TXT":return this.resolveTxt(t);default:throw new Error(`${r} is not supported`)}}async resolve4(t){let r="A",n=this._cache.get(Nn(t,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(ha(s,t,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(Nn(t,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),Ll.error(`${s} could not resolve ${t} 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 ${t} record ${r}`)}async resolve6(t){let r="AAAA",n=this._cache.get(Nn(t,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(ha(s,t,r),o.signal),c=a.Answer.map(l=>l.data),u=Math.min(...a.Answer.map(l=>l.TTL));return this._cache.set(Nn(t,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),Ll.error(`${s} could not resolve ${t} 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 ${t} record ${r}`)}async resolveTxt(t){let r="TXT",n=this._TXTcache.get(Nn(t,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(ha(s,t,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(Nn(t,r),c,{ttl:u}),c}catch{o.signal.aborted&&(i=!0),Ll.error(`${s} could not resolve ${t} 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 ${t} record ${r}`)}clearCache(){this._cache.clear(),this._TXTcache.clear()}},hm=Nl;var dm=hm;var{code:cv}=pt("dnsaddr");async function Si(e,t={}){let r=new dm;t.signal!=null&&t.signal.addEventListener("abort",()=>{r.cancel()});let n=e.getPeerId(),[,i]=e.stringTuples().find(([a])=>a===cv)??[];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 or;(function(e){e.NOT_STARTED_YET="The libp2p node is not started yet",e.DHT_DISABLED="DHT is not available",e.PUBSUB_DISABLED="PubSub is not available",e.CONN_ENCRYPTION_REQUIRED="At least one connection encryption module is required",e.ERR_TRANSPORTS_REQUIRED="At least one transport module is required",e.ERR_PROTECTOR_REQUIRED="Private network is enforced, but no protector was provided",e.NOT_FOUND="Not found"})(or||(or={}));var F;(function(e){e.DHT_DISABLED="ERR_DHT_DISABLED",e.ERR_PUBSUB_DISABLED="ERR_PUBSUB_DISABLED",e.PUBSUB_NOT_STARTED="ERR_PUBSUB_NOT_STARTED",e.DHT_NOT_STARTED="ERR_DHT_NOT_STARTED",e.CONN_ENCRYPTION_REQUIRED="ERR_CONN_ENCRYPTION_REQUIRED",e.ERR_TRANSPORTS_REQUIRED="ERR_TRANSPORTS_REQUIRED",e.ERR_PROTECTOR_REQUIRED="ERR_PROTECTOR_REQUIRED",e.ERR_PEER_DIAL_INTERCEPTED="ERR_PEER_DIAL_INTERCEPTED",e.ERR_CONNECTION_INTERCEPTED="ERR_CONNECTION_INTERCEPTED",e.ERR_INVALID_PROTOCOLS_FOR_STREAM="ERR_INVALID_PROTOCOLS_FOR_STREAM",e.ERR_CONNECTION_ENDED="ERR_CONNECTION_ENDED",e.ERR_CONNECTION_FAILED="ERR_CONNECTION_FAILED",e.ERR_NODE_NOT_STARTED="ERR_NODE_NOT_STARTED",e.ERR_ALREADY_ABORTED="ERR_ALREADY_ABORTED",e.ERR_TOO_MANY_ADDRESSES="ERR_TOO_MANY_ADDRESSES",e.ERR_NO_VALID_ADDRESSES="ERR_NO_VALID_ADDRESSES",e.ERR_RELAYED_DIAL="ERR_RELAYED_DIAL",e.ERR_DIALED_SELF="ERR_DIALED_SELF",e.ERR_DISCOVERED_SELF="ERR_DISCOVERED_SELF",e.ERR_DUPLICATE_TRANSPORT="ERR_DUPLICATE_TRANSPORT",e.ERR_ENCRYPTION_FAILED="ERR_ENCRYPTION_FAILED",e.ERR_HOP_REQUEST_FAILED="ERR_HOP_REQUEST_FAILED",e.ERR_INVALID_KEY="ERR_INVALID_KEY",e.ERR_INVALID_MESSAGE="ERR_INVALID_MESSAGE",e.ERR_INVALID_PARAMETERS="ERR_INVALID_PARAMETERS",e.ERR_INVALID_PEER="ERR_INVALID_PEER",e.ERR_MUXER_UNAVAILABLE="ERR_MUXER_UNAVAILABLE",e.ERR_NOT_FOUND="ERR_NOT_FOUND",e.ERR_TIMEOUT="ERR_TIMEOUT",e.ERR_TRANSPORT_UNAVAILABLE="ERR_TRANSPORT_UNAVAILABLE",e.ERR_TRANSPORT_DIAL_FAILED="ERR_TRANSPORT_DIAL_FAILED",e.ERR_UNSUPPORTED_PROTOCOL="ERR_UNSUPPORTED_PROTOCOL",e.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED="ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED",e.ERR_INVALID_MULTIADDR="ERR_INVALID_MULTIADDR",e.ERR_SIGNATURE_NOT_VALID="ERR_SIGNATURE_NOT_VALID",e.ERR_FIND_SELF="ERR_FIND_SELF",e.ERR_NO_ROUTERS_AVAILABLE="ERR_NO_ROUTERS_AVAILABLE",e.ERR_CONNECTION_NOT_MULTIPLEXED="ERR_CONNECTION_NOT_MULTIPLEXED",e.ERR_NO_DIAL_TOKENS="ERR_NO_DIAL_TOKENS",e.ERR_KEYCHAIN_REQUIRED="ERR_KEYCHAIN_REQUIRED",e.ERR_INVALID_CMS="ERR_INVALID_CMS",e.ERR_MISSING_KEYS="ERR_MISSING_KEYS",e.ERR_NO_KEY="ERR_NO_KEY",e.ERR_INVALID_KEY_NAME="ERR_INVALID_KEY_NAME",e.ERR_INVALID_KEY_TYPE="ERR_INVALID_KEY_TYPE",e.ERR_KEY_ALREADY_EXISTS="ERR_KEY_ALREADY_EXISTS",e.ERR_INVALID_KEY_SIZE="ERR_INVALID_KEY_SIZE",e.ERR_KEY_NOT_FOUND="ERR_KEY_NOT_FOUND",e.ERR_OLD_KEY_NAME_INVALID="ERR_OLD_KEY_NAME_INVALID",e.ERR_NEW_KEY_NAME_INVALID="ERR_NEW_KEY_NAME_INVALID",e.ERR_PASSWORD_REQUIRED="ERR_PASSWORD_REQUIRED",e.ERR_PEM_REQUIRED="ERR_PEM_REQUIRED",e.ERR_CANNOT_READ_KEY="ERR_CANNOT_READ_KEY",e.ERR_MISSING_PRIVATE_KEY="ERR_MISSING_PRIVATE_KEY",e.ERR_MISSING_PUBLIC_KEY="ERR_MISSING_PUBLIC_KEY",e.ERR_INVALID_OLD_PASS_TYPE="ERR_INVALID_OLD_PASS_TYPE",e.ERR_INVALID_NEW_PASS_TYPE="ERR_INVALID_NEW_PASS_TYPE",e.ERR_INVALID_PASS_LENGTH="ERR_INVALID_PASS_LENGTH",e.ERR_NOT_IMPLEMENTED="ERR_NOT_IMPLEMENTED",e.ERR_WRONG_PING_ACK="ERR_WRONG_PING_ACK",e.ERR_INVALID_RECORD="ERR_INVALID_RECORD",e.ERR_ALREADY_SUCCEEDED="ERR_ALREADY_SUCCEEDED",e.ERR_NO_HANDLER_FOR_PROTOCOL="ERR_NO_HANDLER_FOR_PROTOCOL",e.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS",e.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS="ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS",e.ERR_CONNECTION_DENIED="ERR_CONNECTION_DENIED",e.ERR_TRANSFER_LIMIT_EXCEEDED="ERR_TRANSFER_LIMIT_EXCEEDED"})(F||(F={}));var uv={addresses:{listen:[],announce:[],noAnnounce:[],announceFilter:e=>e},connectionManager:{resolvers:{dnsaddr:Si},addressSorter:_i},transportManager:{faultTolerance:Zr.FATAL_ALL}};function pm(e){let t=qr(uv,e);if(t.transports==null||t.transports.length<1)throw new w(or.ERR_TRANSPORTS_REQUIRED,F.ERR_TRANSPORTS_REQUIRED);if(t.connectionProtector===null&&globalThis.process?.env?.LIBP2P_FORCE_PNET!=null)throw new w(or.ERR_PROTECTOR_REQUIRED,F.ERR_PROTECTOR_REQUIRED);return t}var mm="keep-alive";var py=yt(uy(),1);var zv=rt("libp2p:get-peer");function pa(e){if(Ao(e))return{peerId:e,multiaddrs:[]};Array.isArray(e)||(e=[e]);let t;if(e.length>0){let r=e[0].getPeerId();t=r==null?void 0:lt(r),e.forEach(n=>{if(!Hr(n))throw zv.error("multiaddr %s was invalid",n),new w("Invalid Multiaddr",F.ERR_INVALID_MULTIADDR);let i=n.getPeerId();if(i==null){if(t!=null)throw new w("Multiaddrs must all have the same peer id or have no peer id",F.ERR_INVALID_PARAMETERS)}else{let s=lt(i);if(t==null||!t.equals(s))throw new w("Multiaddrs must all have the same peer id or have no peer id",F.ERR_INVALID_PARAMETERS)}})}return{peerId:t,multiaddrs:e}}function Gv(e,t,r){let n=0,i=e.length;for(;i>0;){let s=Math.trunc(i/2),o=n+s;r(e[o],t)<=0?(n=++o,i-=s+1):i=s}return n}var Xl=class{#t=[];enqueue(t,r){let n=r?.peerId,i=r?.priority??0;if(n==null)throw new w("missing peer id",F.ERR_INVALID_PARAMETERS);let s={priority:i,peerId:n,run:t};if(this.size>0&&this.#t[this.size-1].priority>=i){this.#t.push(s);return}let o=Gv(this.#t,s,(a,c)=>c.priority-a.priority);this.#t.splice(o,0,s)}dequeue(){return this.#t.shift()?.run}filter(t){if(t.peerId!=null){let r=t.peerId;return this.#t.filter(n=>r.equals(n.peerId)).map(n=>n.run)}return this.#t.filter(r=>r.priority===t.priority).map(r=>r.run)}get size(){return this.#t.length}},ma=class extends Yr{constructor(t={}){super({...t,queueClass:Xl})}hasJob(t){return this.sizeBy({peerId:t})>0}};var ya="last-dial-failure";var ga=5,xa=100,Ea=50,ly=1e3*60*7;var Zt=rt("libp2p:connection-manager:auto-dial"),kn={minConnections:ga,maxQueueLength:100,autoDialConcurrency:25,autoDialPriority:0,autoDialInterval:5e3,autoDialPeerRetryThreshold:ly,autoDialDiscoveredPeersDebounce:10},ba=class{connectionManager;peerStore;queue;minConnections;autoDialPriority;autoDialIntervalMs;autoDialMaxQueueLength;autoDialPeerRetryThresholdMs;autoDialDiscoveredPeersDebounce;autoDialInterval;started;running;constructor(t,r){this.connectionManager=t.connectionManager,this.peerStore=t.peerStore,this.minConnections=r.minConnections??kn.minConnections,this.autoDialPriority=r.autoDialPriority??kn.autoDialPriority,this.autoDialIntervalMs=r.autoDialInterval??kn.autoDialInterval,this.autoDialMaxQueueLength=r.maxQueueLength??kn.maxQueueLength,this.autoDialPeerRetryThresholdMs=r.autoDialPeerRetryThreshold??kn.autoDialPeerRetryThreshold,this.autoDialDiscoveredPeersDebounce=r.autoDialDiscoveredPeersDebounce??kn.autoDialDiscoveredPeersDebounce,this.started=!1,this.running=!1,this.queue=new ma({concurrency:r.autoDialConcurrency??kn.autoDialConcurrency}),this.queue.addListener("error",i=>{Zt.error("error during auto-dial",i)}),t.events.addEventListener("connection:close",()=>{this.autoDial().catch(i=>{Zt.error(i)})});let n;t.events.addEventListener("peer:discovery",()=>{clearTimeout(n),n=setTimeout(()=>{this.autoDial().catch(i=>{Zt.error(i)})},this.autoDialDiscoveredPeersDebounce)})}isStarted(){return this.started}start(){this.autoDialInterval=setTimeout(()=>{this.autoDial().catch(t=>{Zt.error("error while autodialing",t)})},this.autoDialIntervalMs),this.started=!0}afterStart(){this.autoDial().catch(t=>{Zt.error("error while autodialing",t)})}stop(){this.queue.clear(),clearTimeout(this.autoDialInterval),this.started=!1,this.running=!1}async autoDial(){if(!this.started)return;let t=this.connectionManager.getConnectionsMap(),r=t.size;if(r>=this.minConnections){this.minConnections>0&&Zt.trace("have enough connections %d/%d",r,this.minConnections);return}if(this.queue.size>this.autoDialMaxQueueLength){Zt("not enough connections %d/%d but auto dial queue is full",r,this.minConnections);return}if(this.running){Zt("not enough connections %d/%d - but skipping autodial as it is already running",r,this.minConnections);return}this.running=!0,Zt("not enough connections %d/%d - will dial peers to increase the number of connections",r,this.minConnections);let n=new Bn(this.connectionManager.getDialQueue().map(u=>u.peerId).filter(Boolean)),i=await this.peerStore.all({filters:[u=>u.addresses.length===0?(Zt.trace("not autodialing %p because they have no addresses",u.id),!1):t.has(u.id)?(Zt.trace("not autodialing %p because they are already connected",u.id),!1):n.has(u.id)?(Zt.trace("not autodialing %p because they are already being dialed",u.id),!1):this.queue.hasJob(u.id)?(Zt.trace("not autodialing %p because they are already being autodialed",u.id),!1):!0]}),s=i.sort(()=>Math.random()>.5?1:-1),o=new Ae;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(ya);if(l==null)return!0;let f=parseInt(X(l));return isNaN(f)?!0:Date.now()-f>this.autoDialPeerRetryThresholdMs});Zt("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){Zt("got enough connections now %d/%d",l,this.minConnections),this.queue.clear();return}Zt("connecting to a peerStore stored peer %p",u.id),await this.connectionManager.openConnection(u.id,{priority:this.autoDialPriority})},{peerId:u.id}).catch(l=>{Zt.error("could not connect to peerStore stored peer",l)});this.running=!1,this.started&&(this.autoDialInterval=setTimeout(()=>{this.autoDial().catch(u=>{Zt.error("error while autodialing",u)})},this.autoDialIntervalMs))}};var Ti=rt("libp2p:connection-manager:connection-pruner"),fy={maxConnections:xa,allow:[]},wa=class{maxConnections;connectionManager;peerStore;allow;events;constructor(t,r={}){this.maxConnections=r.maxConnections??fy.maxConnections,this.allow=r.allow??fy.allow,this.connectionManager=t.connectionManager,this.peerStore=t.peerStore,this.events=t.events,t.events.addEventListener("connection:open",()=>{this.maybePruneConnections().catch(n=>{Ti.error(n)})})}async maybePruneConnections(){let t=this.connectionManager.getConnections(),r=t.length,n=Math.max(r-this.maxConnections,0);if(Ti("checking max connections limit %d/%d",r,this.maxConnections),r<=this.maxConnections)return;Ti("max connections limit exceeded %d/%d, pruning %d connection(s)",r,this.maxConnections,n);let i=new Ae;for(let a of t){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"&&Ti.error("error loading peer tags",u)}}}let s=t.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(Ti("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){Ti.error(c)}})),this.events.safeDispatchEvent("connection:prune",{detail:o})}};function va(e){let t=new globalThis.AbortController;function r(){t.abort();for(let s of e)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}for(let s of e){if(s?.aborted===!0){r();break}s?.addEventListener!=null&&s.addEventListener("abort",r)}function n(){for(let s of e)s?.removeEventListener!=null&&s.removeEventListener("abort",r)}let i=t.signal;return i.clear=n,i}function jr(){let e={};return e.promise=new Promise((t,r)=>{e.resolve=t,e.reject=r}),e}var hy=rt("libp2p:connection-manager:utils");async function tf(e,t){if(!e.protoNames().includes("dnsaddr"))return[e];let n=await Qv(e,t),o=(await Promise.all(n.map(async a=>tf(a,t)))).flat().reduce((a,c)=>(a.find(u=>u.equals(c))==null&&a.push(c),a),[]);return hy("resolved %s to",e,o.map(a=>a.toString())),o}async function Qv(e,t){try{return e=Ht(e.toString()),await e.resolve(t)}catch(r){return hy.error(`multiaddr ${e.toString()} could not be resolved`,r),[]}}function dy(...e){let t=[];for(let n of e)n!=null&&(ve(1/0,n),t.push(n));let r=va(t);return ve(1/0,r),r}var Vt=rt("libp2p:connection-manager:dial-queue"),Ss={addressSorter:_i,maxParallelDials:Ea,maxPeerAddrsToDial:25,maxParallelDialsPerPeer:1,dialTimeout:3e4,resolvers:{dnsaddr:Si}},_a=class{pendingDials;queue;peerId;peerStore;connectionGater;transportManager;addressSorter;maxPeerAddrsToDial;maxParallelDialsPerPeer;dialTimeout;inProgressDialCount;pendingDialCount;shutDownController;connections;constructor(t,r={}){this.addressSorter=r.addressSorter??Ss.addressSorter,this.maxPeerAddrsToDial=r.maxPeerAddrsToDial??Ss.maxPeerAddrsToDial,this.maxParallelDialsPerPeer=r.maxParallelDialsPerPeer??Ss.maxParallelDialsPerPeer,this.dialTimeout=r.dialTimeout??Ss.dialTimeout,this.connections=r.connections??new Ae,this.peerId=t.peerId,this.peerStore=t.peerStore,this.connectionGater=t.connectionGater,this.transportManager=t.transportManager,this.shutDownController=new AbortController,ve(1/0,this.shutDownController.signal),this.pendingDialCount=t.metrics?.registerMetric("libp2p_dialler_pending_dials"),this.inProgressDialCount=t.metrics?.registerMetric("libp2p_dialler_in_progress_dials"),this.pendingDials=[];for(let[n,i]of Object.entries(r.resolvers??{}))Mo.set(n,i);this.queue=new Yr({concurrency:r.maxParallelDials??Ss.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=>{Vt.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(t,r={}){let{peerId:n,multiaddrs:i}=pa(t),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 Vt("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 Vt("joining existing dial target for %p",n),o.clear(),u.promise;Vt("creating dial target for",a.map(({multiaddr:h})=>h.toString()));let l={id:Xv(),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(Vt.error("dial failed to %s",l.multiaddrs.map(p=>p.toString()).join(", "),h),n!=null)try{await this.peerStore.patch(n,{metadata:{[ya]:z(Date.now().toString())}})}catch(p){Vt.error("could not update last dial failure key for %p",n,p)}throw o.aborted?new w(h.message,F.ERR_TIMEOUT):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?(Vt("already connected to %a",c.remoteAddr),await f.close(),c):(Vt("connection opened to %a",f.remoteAddr),f)}createDialAbortControllers(t){let r=va([AbortSignal.timeout(this.dialTimeout),this.shutDownController.signal,t]);try{ve?.(1/0,r)}catch{}return r}async calculateMultiaddrs(t,r=[],n={}){if(t!=null){if(this.peerId.equals(t))throw new w("Tried to dial self",F.ERR_DIALED_SELF);if(await this.connectionGater.denyDialPeer?.(t)===!0)throw new w("The dial request is blocked by gater.allowDialPeer",F.ERR_PEER_DIAL_INTERCEPTED);if(r.length===0){Vt("loading multiaddrs for %p",t);try{let l=await this.peerStore.get(t);r.push(...l.addresses),Vt("loaded multiaddrs for %p",t,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 tf(l.multiaddr,n);return f.length===1&&f[0].equals(l.multiaddr)?l:f.map(h=>({multiaddr:h,isCertified:!1}))}))).flat();if(t!=null){let l=`/p2p/${t.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 t!=null&&f!=null?t.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)&&(Vt("addresses for %p before filtering",t??"unknown peer",i.map(({multiaddr:l})=>l.toString())),Vt("addresses for %p after filtering",t??"unknown peer",a.map(({multiaddr:l})=>l.toString()))),a.length===0)throw new w("The dial request has no valid addresses",F.ERR_NO_VALID_ADDRESSES);if(a.length>this.maxPeerAddrsToDial)throw new w("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 w("The connection gater denied all addresses in the dial request",F.ERR_NO_VALID_ADDRESSES);return u}async performDial(t,r={}){let n=t.multiaddrs.map(()=>new AbortController);try{let i=new Yr({concurrency:this.maxParallelDialsPerPeer});i.on("error",o=>{Vt.error("error dialling",o)});let s=await Promise.any(t.multiaddrs.map(async(o,a)=>{let c=n[a];if(c==null)throw new w("dialAction did not come with an AbortController",F.ERR_INVALID_PARAMETERS);let u=dy(c.signal,r.signal);u.addEventListener("abort",()=>{Vt("dial to %a aborted",o)});let l=jr();return await i.add(async()=>{if(u.aborted){Vt("dial to %a was aborted before reaching the head of the peer dial queue",o),l.reject(new Gn);return}await this.queue.add(async()=>{try{if(u.aborted){Vt("dial to %a was aborted before reaching the head of the dial queue",o),l.reject(new Gn);return}t.status="active";let f=await this.transportManager.dial(o,{...r,signal:u});if(c.signal.aborted){Vt("multiple dials succeeded, closing superfluous connection"),f.close().catch(h=>{Vt.error("error closing superfluous connection",h)}),l.reject(new Gn);return}n[a]=void 0,n.forEach(h=>{h!==void 0&&h.abort()}),Vt("dial to %a succeeded",o),l.resolve(f)}catch(f){Vt.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 w("successful dial led to empty object returned from peer dial queue",F.ERR_TRANSPORT_DIAL_FAILED);return t.status="success",s}catch(i){throw t.status="error",t.multiaddrs.length===1&&i.name==="AggregateError"?i.errors[0]:i}}};function Xv(){return`${parseInt(String(Math.random()*1e9),10).toString()}${Date.now()}`}var Te=rt("libp2p:connection-manager"),jv=50,On={minConnections:ga,maxConnections:xa,inboundConnectionThreshold:5,maxIncomingPendingConnections:10,autoDialConcurrency:25,autoDialPriority:0,autoDialMaxQueueLength:100},Sa=class{started;connections;allow;deny;maxIncomingPendingConnections;incomingPendingConnections;maxConnections;dialQueue;autoDial;connectionPruner;inboundConnectionRateLimiter;peerStore;metrics;events;constructor(t,r={}){this.maxConnections=r.maxConnections??On.maxConnections;let n=r.minConnections??On.minConnections;if(this.maxConnections<n)throw new w("Connection Manager maxConnections must be greater than minConnections",F.ERR_INVALID_PARAMETERS);this.connections=new Ae,this.started=!1,this.peerStore=t.peerStore,this.metrics=t.metrics,this.events=t.events,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=>Ht(i)),this.deny=(r.deny??[]).map(i=>Ht(i)),this.incomingPendingConnections=0,this.maxIncomingPendingConnections=r.maxIncomingPendingConnections??On.maxIncomingPendingConnections,this.inboundConnectionRateLimiter=new py.RateLimiterMemory({points:r.inboundConnectionThreshold??On.inboundConnectionThreshold,duration:1}),this.autoDial=new ba({connectionManager:this,peerStore:t.peerStore,events:t.events},{minConnections:n,autoDialConcurrency:r.autoDialConcurrency??On.autoDialConcurrency,autoDialPriority:r.autoDialPriority??On.autoDialPriority,maxQueueLength:r.autoDialMaxQueueLength??On.autoDialMaxQueueLength}),this.connectionPruner=new wa({connectionManager:this,peerStore:t.peerStore,events:t.events},{maxConnections:this.maxConnections,allow:this.allow}),this.dialQueue=new _a({peerId:t.peerId,metrics:t.metrics,peerStore:t.peerStore,transportManager:t.transportManager,connectionGater:t.connectionGater},{addressSorter:r.addressSorter??_i,maxParallelDials:r.maxParallelDials??Ea,maxPeerAddrsToDial:r.maxPeerAddrsToDial??25,maxParallelDialsPerPeer:r.maxParallelDialsPerPeer??1,dialTimeout:r.dialTimeout??3e4,resolvers:r.resolvers??{dnsaddr:Si},connections:this.connections})}isStarted(){return this.started}async start(){this.metrics?.registerMetricGroup("libp2p_connection_manager_connections",{calculate:()=>{let t={inbound:0,outbound:0};for(let r of this.connections.values())for(let n of r)n.direction==="inbound"?t.inbound++:t.outbound++;return t}}),this.metrics?.registerMetricGroup("libp2p_protocol_streams_total",{label:"protocol",calculate:()=>{let t={};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"}`;t[s]=(t[s]??0)+1}return t}}),this.metrics?.registerMetricGroup("libp2p_connection_manager_protocol_streams_per_connection_90th_percentile",{label:"protocol",calculate:()=>{let t={};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))t[o]=t[o]??[],t[o].push(a)}let r={};for(let[n,i]of Object.entries(t)){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,Te("started")}async afterStart(){Promise.resolve().then(async()=>{let t=await this.peerStore.all({filters:[r=>r.tags.has(mm)]});await Promise.all(t.map(async r=>{await this.openConnection(r.id).catch(n=>{Te.error(n)})}))}).catch(t=>{Te.error(t)}),this.autoDial.afterStart()}async stop(){this.dialQueue.stop(),this.autoDial.stop();let t=[];for(let r of this.connections.values())for(let n of r)t.push((async()=>{try{await n.close()}catch(i){Te.error(i)}})());Te("closing %d connections",t.length),await Promise.all(t),this.connections.clear(),Te("stopped")}onConnect(t){this._onConnect(t).catch(r=>{Te.error(r)})}async _onConnect(t){let{detail:r}=t;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(t){let{detail:r}=t;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(t){if(t!=null)return this.connections.get(t)??[];let r=[];for(let n of this.connections.values())r=r.concat(n);return r}getConnectionsMap(){return this.connections}async openConnection(t,r={}){if(!this.isStarted())throw new w("Not started",F.ERR_NODE_NOT_STARTED);r.signal?.throwIfAborted();let{peerId:n}=pa(t);if(n!=null&&r.force!==!0){Te("dial %p",n);let a=this.getConnections(n).find(c=>!c.transient);if(a!=null)return Te("had an existing non-transient connection to %p",n),a}let i=await this.dialQueue.dial(t,{...r,priority:r.priority??jv}),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(t,r={}){let n=this.connections.get(t)??[];await Promise.all(n.map(async i=>{try{await i.close(r)}catch(s){i.abort(s)}}))}async acceptIncomingConnection(t){if(this.deny.some(i=>t.remoteAddr.toString().startsWith(i.toString())))return Te("connection from %a refused - connection remote address was in deny list",t.remoteAddr),!1;if(this.allow.some(i=>t.remoteAddr.toString().startsWith(i.toString())))return this.incomingPendingConnections++,!0;if(this.incomingPendingConnections===this.maxIncomingPendingConnections)return Te("connection from %a refused - incomingPendingConnections exceeded by host",t.remoteAddr),!1;if(t.remoteAddr.isThinWaistAddress()){let i=t.remoteAddr.nodeAddress().address;try{await this.inboundConnectionRateLimiter.consume(i,1)}catch{return Te("connection from %a refused - inboundConnectionThreshold exceeded by host %s",t.remoteAddr,i),!1}}return this.getConnections().length<this.maxConnections?(this.incomingPendingConnections++,!0):(Te("connection from %a refused - maxConnections exceeded",t.remoteAddr),!1)}afterUpgradeInbound(){this.incomingPendingConnections--}getDialQueue(){return this.dialQueue.pendingDials}};var Aa=class{buffer;mask;top;btm;next;constructor(t){if(!(t>0)||t-1&t)throw new Error("Max size for a FixedFIFO should be a power of two");this.buffer=new Array(t),this.mask=t-1,this.top=0,this.btm=0,this.next=null}push(t){return this.buffer[this.top]!==void 0?!1:(this.buffer[this.top]=t,this.top=this.top+1&this.mask,!0)}shift(){let t=this.buffer[this.btm];if(t!==void 0)return this.buffer[this.btm]=void 0,this.btm=this.btm+1&this.mask,t}isEmpty(){return this.buffer[this.btm]===void 0}},Bi=class{size;hwm;head;tail;constructor(t={}){this.hwm=t.splitLimit??16,this.head=new Aa(this.hwm),this.tail=this.head,this.size=0}calculateSize(t){return t?.byteLength!=null?t.byteLength:1}push(t){if(t?.value!=null&&(this.size+=this.calculateSize(t.value)),!this.head.push(t)){let r=this.head;this.head=r.next=new Aa(2*this.head.buffer.length),this.head.push(t)}}shift(){let t=this.tail.shift();if(t===void 0&&this.tail.next!=null){let r=this.tail.next;this.tail.next=null,this.tail=r,t=this.tail.shift()}return t?.value!=null&&(this.size-=this.calculateSize(t.value)),t}isEmpty(){return this.head.isEmpty()}};var sf=class extends Error{type;code;constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Mn(e={}){return t_(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}},e)}function t_(e,t){t=t??{};let r=t.onEnd,n=new Bi,i,s,o,a=jr(),c=async()=>{try{return n.isEmpty()?o?{done:!0}:await new Promise((y,g)=>{s=x=>{s=null,n.push(x);try{y(e(n))}catch(b){g(b)}return i}}):e(n)}finally{n.isEmpty()&&queueMicrotask(()=>{a.resolve(),a=jr()})}},u=y=>s!=null?s(y):(n.push(y),i),l=y=>(n=new Bi,s!=null?s({error:y}):(n.push({error:y}),i)),f=y=>{if(o)return i;if(t?.objectMode!==!0&&y?.byteLength==null)throw new Error("objectMode was not true but tried to push non-Uint8Array value");return u({done:!1,value:y})},h=y=>o?i:(o=!0,y!=null?l(y):u({done:!0})),p=()=>(n=new Bi,h(),{done:!0}),d=y=>(h(y),{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 y=>{let g=y?.signal;if(g?.throwIfAborted(),n.isEmpty())return;let x,b;g!=null&&(x=new Promise((C,_)=>{b=()=>{_(new sf)},g.addEventListener("abort",b)}));try{await Promise.race([a.promise,x])}finally{b!=null&&g!=null&&g?.removeEventListener("abort",b)}}},r==null)return i;let m=i;return i={[Symbol.asyncIterator](){return this},next(){return m.next()},throw(y){return m.throw(y),r!=null&&(r(y),r=void 0),{done:!0}},return(){return m.return(),r!=null&&(r(),r=void 0),{done:!0}},push:f,end(y){return m.end(y),r!=null&&(r(y),r=void 0),i},get readableLength(){return m.readableLength}},i}function e_(e){return e[Symbol.asyncIterator]!=null}function r_(...e){let t=[];for(let r of e)e_(r)||t.push(r);return t.length===e.length?function*(){for(let r of t)yield*r}():async function*(){let r=Mn({objectMode:!0});Promise.resolve().then(async()=>{try{await Promise.all(e.map(async n=>{for await(let i of n)r.push(i)})),r.end()}catch(n){r.end(n)}}),yield*r}()}var tn=r_;function Un(e,...t){if(e==null)throw new Error("Empty pipeline");if(of(e)){let n=e;e=()=>n.source}else if(yy(e)||my(e)){let n=e;e=()=>n}let r=[e,...t];if(r.length>1&&of(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++)of(r[n])&&(r[n]=i_(r[n]));return n_(...r)}var n_=(...e)=>{let t;for(;e.length>0;)t=e.shift()(t);return t},my=e=>e?.[Symbol.asyncIterator]!=null,yy=e=>e?.[Symbol.iterator]!=null,of=e=>e==null?!1:e.sink!=null&&e.source!=null,i_=e=>t=>{let r=e.sink(t);if(r?.then!=null){let n=Mn({objectMode:!0});r.then(()=>{n.end()},o=>{n.end(o)});let i,s=e.source;if(my(s))i=async function*(){yield*s,n.end()};else if(yy(s))i=function*(){yield*s,n.end()};else throw new Error("Unknown duplex source type - must be Iterable or AsyncIterable");return tn(n,i())}return e.source};function s_(e){return e[Symbol.asyncIterator]!=null}function o_(e,t){if(s_(e))return async function*(){for await(let a of e)yield t(a)}();let r=ta(e),{value:n,done:i}=r.next();if(i===!0)return function*(){}();let s=t(n);if(typeof s.then=="function")return async function*(){yield await s;for await(let a of r)yield t(a)}();let o=t;return function*(){yield s;for(let a of r)yield o(a)}()}var gy=o_;async function*As(e,t){yield*gy(e,async r=>(await t.merge(r.id,{multiaddrs:r.multiaddrs}),r))}function Ia(e){let t=new Set;return He(e,r=>t.has(r.id.toString())?!1:(t.add(r.id.toString()),!0))}async function*Ra(e,t=1){let r=0;for await(let n of e)r++,yield n;if(r<t)throw new w(`more peers required, seen: ${r} min: ${t}`,"NOT_FOUND")}var Ca=class{routers;started;components;constructor(t,r){this.routers=r.routers??[],this.started=!1,this.components=t}isStarted(){return this.started}async start(){this.started=!0}async stop(){this.started=!1}async*findProviders(t,r={}){if(this.routers.length===0)throw new w("No content routers available",F.ERR_NO_ROUTERS_AVAILABLE);yield*Un(tn(...this.routers.map(n=>n.findProviders(t,r))),n=>As(n,this.components.peerStore),n=>Ia(n),n=>Ra(n))}async provide(t,r={}){if(this.routers.length===0)throw new w("No content routers available",F.ERR_NO_ROUTERS_AVAILABLE);await Promise.all(this.routers.map(async n=>{await n.provide(t,r)}))}async put(t,r,n){if(!this.isStarted())throw new w(or.NOT_STARTED_YET,F.DHT_NOT_STARTED);await Promise.all(this.routers.map(async i=>{await i.put(t,r,n)}))}async get(t,r){if(!this.isStarted())throw new w(or.NOT_STARTED_YET,F.DHT_NOT_STARTED);return Promise.any(this.routers.map(async n=>n.get(t,r)))}};function a_(e){return e[Symbol.asyncIterator]!=null}function c_(e){if(a_(e))return(async()=>{for await(let t of e)return t})();for(let t of e)return t}var Ta=c_;var u_=rt("libp2p:peer-routing"),Ba=class{components;routers;constructor(t,r){this.components=t,this.routers=r.routers??[]}async findPeer(t,r){if(this.routers.length===0)throw new w("No peer routers available",F.ERR_NO_ROUTERS_AVAILABLE);if(t.toString()===this.components.peerId.toString())throw new w("Should not try to find self",F.ERR_FIND_SELF);let n=await Un(tn(...this.routers.map(i=>async function*(){try{yield await i.findPeer(t,r)}catch(s){u_.error(s)}}())),i=>He(i,Boolean),i=>As(i,this.components.peerStore),async i=>Ta(i));if(n!=null)return n;throw new w(or.NOT_FOUND,F.ERR_NOT_FOUND)}async*getClosestPeers(t,r){if(this.routers.length===0)throw new w("No peer routers available",F.ERR_NO_ROUTERS_AVAILABLE);yield*Un(tn(...this.routers.map(n=>n.getClosestPeers(t,r))),n=>As(n,this.components.peerStore),n=>Ia(n),n=>Ra(n))}};var l_=rt("libp2p:registrar"),af=32,cf=64,La=class{topologies;handlers;components;constructor(t){this.topologies=new Map,this.handlers=new Map,this.components=t,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(t){let r=this.handlers.get(t);if(r==null)throw new w(`No handler registered for protocol ${t}`,F.ERR_NO_HANDLER_FOR_PROTOCOL);return r}getTopologies(t){let r=this.topologies.get(t);return r==null?[]:[...r.values()]}async handle(t,r,n){if(this.handlers.has(t))throw new w(`Handler already registered for protocol ${t}`,F.ERR_PROTOCOL_HANDLER_ALREADY_REGISTERED);let i=qr.bind({ignoreUndefined:!0})({maxInboundStreams:af,maxOutboundStreams:cf},n);this.handlers.set(t,{handler:r,options:i}),await this.components.peerStore.merge(this.components.peerId,{protocols:[t]})}async unhandle(t){(Array.isArray(t)?t:[t]).forEach(n=>{this.handlers.delete(n)}),await this.components.peerStore.patch(this.components.peerId,{protocols:this.getProtocols()})}async register(t,r){if(r==null)throw new w("invalid topology",F.ERR_INVALID_PARAMETERS);let n=`${(Math.random()*1e9).toString(36)}${Date.now()}`,i=this.topologies.get(t);return i==null&&(i=new Map,this.topologies.set(t,i)),i.set(n,r),n}unregister(t){for(let[r,n]of this.topologies.entries())n.has(t)&&(n.delete(t),n.size===0&&this.topologies.delete(r))}_onDisconnect(t){let r=t.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&&l_.error("could not inform topologies of disconnecting peer %p",r,n)})}_onPeerUpdate(t){let{peer:r,previous:n}=t.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(t){let r=t.detail.protocols,n=t.detail.connection,i=t.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 uf=class extends Map{metric;constructor(t){super();let{name:r,metrics:n}=t;this.metric=n.registerMetric(r),this.updateComponentMetric()}set(t,r){return super.set(t,r),this.updateComponentMetric(),this}delete(t){let r=super.delete(t);return this.updateComponentMetric(),r}clear(){super.clear(),this.updateComponentMetric()}updateComponentMetric(){this.metric.update(this.size)}};function xy(e){let{name:t,metrics:r}=e,n;return r!=null?n=new uf({name:t,metrics:r}):n=new Map,n}var en=rt("libp2p:transports"),Pa=class{components;transports;listeners;faultTolerance;started;constructor(t,r={}){this.components=t,this.started=!1,this.transports=new Map,this.listeners=xy({name:"libp2p_transport_manager_listeners",metrics:this.components.metrics}),this.faultTolerance=r.faultTolerance??Zr.FATAL_ALL}add(t){let r=t[Symbol.toStringTag];if(r==null)throw new w("Transport must have a valid tag",F.ERR_INVALID_KEY);if(this.transports.has(r))throw new w(`There is already a transport with the tag ${r}`,F.ERR_DUPLICATE_TRANSPORT);en("adding transport %s",r),this.transports.set(r,t),this.listeners.has(r)||this.listeners.set(r,[])}isStarted(){return this.started}start(){this.started=!0}async afterStart(){let t=this.components.addressManager.getListenAddrs();await this.listen(t)}async stop(){let t=[];for(let[r,n]of this.listeners)for(en("closing listeners for %s",r);n.length>0;){let i=n.pop();i!=null&&t.push(i.close())}await Promise.all(t),en("all listeners closed");for(let r of this.listeners.keys())this.listeners.set(r,[]);this.started=!1}async dial(t,r){let n=this.transportForMultiaddr(t);if(n==null)throw new w(`No transport available for address ${String(t)}`,F.ERR_TRANSPORT_UNAVAILABLE);try{return await n.dial(t,{...r,upgrader:this.components.upgrader})}catch(i){throw i.code==null&&(i.code=F.ERR_TRANSPORT_DIAL_FAILED),i}}getAddrs(){let t=[];for(let r of this.listeners.values())for(let n of r)t=[...t,...n.getAddrs()];return t}getTransports(){return Array.of(...this.transports.values())}getListeners(){return Array.of(...this.listeners.values()).flat()}transportForMultiaddr(t){for(let r of this.transports.values())if(r.filter([t]).length>0)return r}async listen(t){if(!this.isStarted())throw new w("Not started",F.ERR_NODE_NOT_STARTED);if(t==null||t.length===0){en("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(t),o=[];for(let u of s){en("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!==Zr.NO_FATAL)throw new w(`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===Zr.FATAL_ALL)throw new w(n,F.ERR_NO_VALID_ADDRESSES);en(`libp2p in dial mode only: ${n}`)}}async remove(t){let r=this.listeners.get(t)??[];en.trace("removing transport %s",t);let n=[];for(en.trace("closing listeners for %s",t);r.length>0;){let i=r.pop();i!=null&&n.push(i.close())}await Promise.all(n),this.transports.delete(t),this.listeners.delete(t)}async removeAll(){let t=[];for(let r of this.transports.keys())t.push(this.remove(r));await Promise.all(t)}};var Rr="/multistream/1.0.0";function lf(e){let t=async function*(){let r=yield,n=new Xt;for await(let i of e){if(r==null){n.append(i),r=yield n,n=new Xt;continue}for(n.append(i);n.length>=r;){let s=n.sublist(0,r);if(n.consume(r),r=yield s,r==null){n.length>0&&(r=yield n,n=new Xt);break}}}if(r!=null)throw Object.assign(new Error(`stream ended before ${r} bytes became available`),{code:"ERR_UNDER_READ",buffer:n})}();return t.next(),t}function Da(e){let t=Mn(),r=lf(e.source),n=jr(),i,s=e.sink(async function*(){yield*t,yield*await n.promise}());return s.catch(a=>{i=a}),{reader:r,writer:t,stream:{sink:async a=>{if(i!=null){await Promise.reject(i);return}n.resolve(a),await s},source:r},rest:()=>t.end(),write:t.push,read:async()=>{let a=await r.next();if(a.value!=null)return a.value}}}var Is=class extends Error{constructor(t,r){super(t??"The operation was aborted"),this.type="aborted",this.code=r??"ABORT_ERR"}};function Ey(e){if(e!=null){if(typeof e[Symbol.iterator]=="function")return e[Symbol.iterator]();if(typeof e[Symbol.asyncIterator]=="function")return e[Symbol.asyncIterator]();if(typeof e.next=="function")return e}throw new Error("argument is not an iterator or iterable")}function by(e,t,r){let n=r??{},i=Ey(e);async function*s(){let o,a=()=>{o?.()};for(t.addEventListener("abort",a);;){let c;try{if(t.aborted){let{abortMessage:l,abortCode:f}=n;throw new Is(l,f)}let u=new Promise((l,f)=>{o=()=>{let{abortMessage:h,abortCode:p}=n;f(new Is(h,p))}});c=await Promise.race([u,i.next()]),o=null}catch(u){t.removeEventListener("abort",a);let l=u.type==="aborted"&&t.aborted;if(l&&n.onAbort!=null&&n.onAbort(e),typeof i.return=="function")try{let f=i.return();f instanceof Promise&&f.catch(h=>{n.onReturnError!=null&&n.onReturnError(h)})}catch(f){n.onReturnError!=null&&n.onReturnError(f)}if(l&&n.returnOnAbort===!0)return;throw u}if(c.done===!0)break;yield c.value}t.removeEventListener("abort",a)}return s()}function Na(e){return e[Symbol.asyncIterator]!=null}var ka=e=>{let t=ge(e),r=ae(t);return De(e,r),ka.bytes=t,r};ka.bytes=0;function Oa(e,t){t=t??{};let r=t.lengthEncoder??ka;function*n(i){let s=r(i.byteLength);s instanceof Uint8Array?yield s:yield*s,i instanceof Uint8Array?yield i:yield*i}return Na(e)?async function*(){for await(let i of e)yield*n(i)}():function*(){for(let i of e)yield*n(i)}()}Oa.single=(e,t)=>{t=t??{};let r=t.lengthEncoder??ka;return new Xt(r(e.byteLength),e)};var Li=yt(bl(),1);var f_=8,h_=1024*1024*4,Fn;(function(e){e[e.LENGTH=0]="LENGTH",e[e.DATA=1]="DATA"})(Fn||(Fn={}));var ff=e=>{let t=Ar(e);return ff.bytes=ge(t),t};ff.bytes=0;function Rs(e,t){let r=new Xt,n=Fn.LENGTH,i=-1,s=t?.lengthDecoder??ff,o=t?.maxLengthLength??f_,a=t?.maxDataLength??h_;function*c(){for(;r.byteLength>0;){if(n===Fn.LENGTH)try{if(i=s(r),i<0)throw(0,Li.default)(new Error("invalid message length"),"ERR_INVALID_MSG_LENGTH");if(i>a)throw(0,Li.default)(new Error("message length too long"),"ERR_MSG_DATA_TOO_LONG");let u=s.bytes;r.consume(u),t?.onLength!=null&&t.onLength(i),n=Fn.DATA}catch(u){if(u instanceof RangeError){if(r.byteLength>o)throw(0,Li.default)(new Error("message length length too long"),"ERR_MSG_LENGTH_TOO_LONG");break}throw u}if(n===Fn.DATA){if(r.byteLength<i)break;let u=r.sublist(0,i);r.consume(i),t?.onData!=null&&t.onData(u),yield u,n=Fn.LENGTH}}}return Na(e)?async function*(){for await(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,Li.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}():function*(){for(let u of e)r.append(u),yield*c();if(r.byteLength>0)throw(0,Li.default)(new Error("unexpected end of input"),"ERR_UNEXPECTED_EOF")}()}Rs.fromReader=(e,t)=>{let r=1,n=async function*(){for(;;)try{let{done:s,value:o}=await e.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 Rs(n,{...t??{},onLength:s=>{r=s}})};var m_=rt("libp2p:mss"),wy=z(`
49
+ `);function Cs(e){let t=new Xt(e,wy);return Oa.single(t)}function Kn(e,t,r={}){let n=Cs(t);r.writeBytes===!0?e.push(n.subarray()):e.push(n)}function vy(e,t,r={}){let n=new Xt;for(let i of t)n.append(Cs(i));r.writeBytes===!0?e.push(n.subarray()):e.push(n)}async function y_(e,t){let r=1,n={[Symbol.asyncIterator]:()=>n,next:async()=>e.next(r)},i=n;t?.signal!=null&&(i=by(n,t.signal));let s=a=>{r=a},o=await Un(i,a=>Rs(a,{onLength:s,maxDataLength:1024}),async a=>Ta(a));if(o==null||o.length===0)throw new w("no buffer returned","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");if(o.get(o.byteLength-1)!==wy[0])throw m_.error("Invalid mss message - missing newline - %s",o.subarray()),new w("missing newline","ERR_INVALID_MULTISTREAM_SELECT_MESSAGE");return o.sublist(0,-1)}async function Pi(e,t){let r=await y_(e,t);return X(r.subarray())}var Ts=rt("libp2p:mss:select");async function Bs(e,t,r={}){t=Array.isArray(t)?[...t]:[t];let{reader:n,writer:i,rest:s,stream:o}=Da(e),a=t.shift();if(a==null)throw new Error("At least one protocol must be specified");Ts.trace('select: write ["%s", "%s"]',Rr,a);let c=z(Rr),u=z(a);vy(i,[c,u],r);let l=await Pi(n,r);if(Ts.trace('select: read "%s"',l),l===Rr&&(l=await Pi(n,r),Ts.trace('select: read "%s"',l)),l===a)return s(),{stream:o,protocol:a};for(let f of t){Ts.trace('select: write "%s"',f),Kn(i,z(f),r);let h=await Pi(n,r);if(Ts.trace('select: read "%s" for "%s"',h,f),h===f)return s(),{stream:o,protocol:f}}throw s(),new w("protocol selection failed","ERR_UNSUPPORTED_PROTOCOL")}var Ls=rt("libp2p:mss:handle");async function Ps(e,t,r){t=Array.isArray(t)?t:[t];let{writer:n,reader:i,rest:s,stream:o}=Da(e);for(;;){let a=await Pi(i,r);if(Ls.trace('read "%s"',a),a===Rr){Ls.trace('respond with "%s" for "%s"',Rr,a),Kn(n,z(Rr),r);continue}if(t.includes(a))return Kn(n,z(a),r),Ls.trace('respond with "%s" for "%s"',a,a),s(),{stream:o,protocol:a};if(a==="ls"){Kn(n,new Xt(...t.map(c=>Cs(z(c)))),r),Ls.trace('respond with "%s" for %s',t,a);continue}Kn(n,z("na"),r),Ls('respond with "na" for "%s"',a)}}var Sy=Symbol.for("@libp2p/connection");var Vn=rt("libp2p:connection"),x_=500,hf=class{id;remoteAddr;remotePeer;direction;timeline;multiplexer;encryption;status;transient;tags;_newStream;_close;_abort;_getStreams;constructor(t){let{remoteAddr:r,remotePeer:n,newStream:i,close:s,abort:o,getStreams:a}=t;this.id=`${parseInt(String(Math.random()*1e9)).toString(36)}${Date.now()}`,this.remoteAddr=r,this.remotePeer=n,this.direction=t.direction,this.status="open",this.timeline=t.timeline,this.multiplexer=t.multiplexer,this.encryption=t.encryption,this.transient=t.transient??!1,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";[Sy]=!0;get streams(){return this._getStreams()}async newStream(t,r){if(this.status==="closing")throw new w("the connection is being closed","ERR_CONNECTION_BEING_CLOSED");if(this.status==="closed")throw new w("the connection is closed","ERR_CONNECTION_CLOSED");if(Array.isArray(t)||(t=[t]),this.transient&&r?.runOnTransientConnection!==!0)throw new w("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");let n=await this._newStream(t,r);return n.direction="outbound",n}async close(t={}){if(!(this.status==="closed"||this.status==="closing")){Vn("closing connection to %a",this.remoteAddr),this.status="closing",t.signal=t?.signal??AbortSignal.timeout(x_),ve(1/0,t.signal);try{Vn.trace("closing all streams"),await Promise.all(this.streams.map(async r=>r.close(t))),Vn.trace("closing underlying transport"),await this._close(t),Vn.trace("updating timeline with close time"),this.status="closed",this.timeline.close=Date.now()}catch(r){Vn.error("error encountered during graceful close of connection to %a",this.remoteAddr,r),this.abort(r)}}}abort(t){Vn.error("aborting connection to %a due to error",this.remoteAddr,t),this.status="closing",this.streams.forEach(r=>{r.abort(t)}),Vn.error("all streams aborted",this.streams.length),this._abort(t),this.timeline.close=Date.now(),this.status="closed"}};function Ay(e){return new hf(e)}var Et=rt("libp2p:upgrader");function b_(e,t){try{let{options:r}=t.getHandler(e);return r.maxInboundStreams}catch(r){if(r.code!==F.ERR_NO_HANDLER_FOR_PROTOCOL)throw r}return af}function w_(e,t,r={}){try{let{options:n}=t.getHandler(e);if(n.maxOutboundStreams!=null)return n.maxOutboundStreams}catch(n){if(n.code!==F.ERR_NO_HANDLER_FOR_PROTOCOL)throw n}return r.maxOutboundStreams??cf}function Iy(e,t,r){let n=0;return r.streams.forEach(i=>{i.direction===t&&i.protocol===e&&n++}),n}var Ma=class{components;connectionEncryption;muxers;inboundUpgradeTimeout;events;constructor(t,r){this.components=t,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=t.events}async shouldBlockConnection(t,r,n){let i=this.components.connectionGater[n];if(i!==void 0&&await i(t,r))throw new w(`The multiaddr connection is blocked by gater.${n}`,F.ERR_CONNECTION_INTERCEPTED)}async upgradeInbound(t,r){if(!await this.components.connectionManager.acceptIncomingConnection(t))throw new w("connection denied",F.ERR_CONNECTION_DENIED);let i,s,o,a,c,u=AbortSignal.timeout(this.inboundUpgradeTimeout),l=()=>{t.abort(new w("inbound upgrade timeout",F.ERR_TIMEOUT))};u.addEventListener("abort",l,{once:!0}),ve(1/0,u);try{if(await this.components.connectionGater.denyInboundConnection?.(t)===!0)throw new w("The multiaddr connection is blocked by gater.acceptConnection",F.ERR_CONNECTION_INTERCEPTED);this.components.metrics?.trackMultiaddrConnection(t),Et("starting the inbound connection upgrade");let f=t;if(r?.skipProtection!==!0){let h=this.components.connectionProtector;h!=null&&(Et("protecting the inbound connection"),f=await h.protect(t))}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=t.remoteAddr.getPeerId();if(h==null)throw new w("inbound connection that skipped encryption must have a peer id",F.ERR_INVALID_MULTIADDR);let p=lt(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 Et.error("Failed to upgrade inbound connection",h),h}return await this.shouldBlockConnection(s,t,"denyInboundUpgradedConnection"),Et("Successfully upgraded inbound connection"),this._createConnection({cryptoProtocol:c,direction:"inbound",maConn:t,upgradedConn:o,muxerFactory:a,remotePeer:s,transient:r?.transient})}finally{u.removeEventListener("abort",l),this.components.connectionManager.afterUpgradeInbound()}}async upgradeOutbound(t,r){let n=t.remoteAddr.getPeerId(),i;n!=null&&(i=lt(n),await this.shouldBlockConnection(i,t,"denyOutboundConnection"));let s,o,a,c,u;this.components.metrics?.trackMultiaddrConnection(t),Et("Starting the outbound connection upgrade");let l=t;if(r?.skipProtection!==!0){let f=this.components.connectionProtector;f!=null&&(l=await f.protect(t))}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 w("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 Et.error("Failed to upgrade outbound connection",f),await t.close(f),f}return await this.shouldBlockConnection(o,t,"denyOutboundUpgradedConnection"),Et("Successfully upgraded outbound connection"),this._createConnection({cryptoProtocol:c,direction:"outbound",maConn:t,upgradedConn:a,muxerFactory:u,remotePeer:o,transient:r?.transient})}_createConnection(t){let{cryptoProtocol:r,direction:n,maConn:i,upgradedConn:s,remotePeer:o,muxerFactory:a,transient:c}=t,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:y,protocol:g}=await Ps(d,m);if(Et("%s: incoming stream opened on %s",n,g),f==null)return;let x=b_(g,this.components.registrar);if(Iy(g,"inbound",f)===x){let C=new w(`Too many inbound protocol streams for protocol "${g}" - limit ${x}`,F.ERR_TOO_MANY_INBOUND_PROTOCOL_STREAMS);throw d.abort(C),C}d.source=y.source,d.sink=y.sink,d.protocol=g,await this.components.peerStore.merge(o,{protocols:[g]}),this.components.metrics?.trackProtocolStream(d,f),this._onStream({connection:f,stream:d,protocol:g})}).catch(async m=>{Et.error(m),d.timeline.close==null&&await d.close()})}}),l=async(d,m={})=>{if(u==null)throw new w("Stream is not multiplexed",F.ERR_MUXER_UNAVAILABLE);Et("%s-%s: starting new stream on %s",f.id,n,d);let y=await u.newStream();try{m.signal==null&&(Et("No abort signal was passed while trying to negotiate protocols %s falling back to default timeout",d),m.signal=AbortSignal.timeout(3e4),ve(1/0,m.signal));let{stream:g,protocol:x}=await Bs(y,d,m),b=w_(x,this.components.registrar,m);if(Iy(x,"outbound",f)>=b){let _=new w(`Too many outbound protocol streams for protocol "${x}" - limit ${b}`,F.ERR_TOO_MANY_OUTBOUND_PROTOCOL_STREAMS);throw y.abort(_),_}return await this.components.peerStore.merge(o,{protocols:[x]}),y.source=g.source,y.sink=g.sink,y.protocol=x,this.components.metrics?.trackProtocolStream(y,f),y}catch(g){throw Et.error("could not create new stream for protocols %s on connection with address %a",d,f.remoteAddr,g),y.timeline.close==null&&y.abort(g),g.code!=null?g:new w(String(g),F.ERR_UNSUPPORTED_PROTOCOL)}},Promise.all([u.sink(s.source),s.sink(u.source)]).catch(d=>{Et.error(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){Et.error(m)}finally{this.events.safeDispatchEvent("connection:close",{detail:f})}})().catch(m=>{Et.error(m)}),Reflect.set(...d))}),i.timeline.upgraded=Date.now();let p=()=>{throw new w("connection is not multiplexed",F.ERR_CONNECTION_NOT_MULTIPLEXED)};return f=Ay({remoteAddr:i.remoteAddr,remotePeer:o,status:"open",direction:n,timeline:i.timeline,multiplexer:u?.protocol,encryption:r,transient:c,newStream:l??p,getStreams:()=>u!=null?u.streams:[],close:async d=>{u!=null&&(Et.trace("close muxer"),await u.close(d)),Et.trace("close maconn"),await i.close(d),Et.trace("closed maconn")},abort:d=>{i.abort(d),u?.abort(d)}}),this.events.safeDispatchEvent("connection:open",{detail:f}),f}_onStream(t){let{connection:r,stream:n,protocol:i}=t,{handler:s,options:o}=this.components.registrar.getHandler(i);if(r.transient&&o.runOnTransientConnection!==!0)throw new w("Cannot open protocol stream on transient connection","ERR_TRANSIENT_CONNECTION");s({connection:r,stream:n})}async _encryptInbound(t){let r=Array.from(this.connectionEncryption.keys());Et("handling inbound crypto protocol selection",r);try{let{stream:n,protocol:i}=await Ps(t,r,{writeBytes:!0}),s=this.connectionEncryption.get(i);if(s==null)throw new Error(`no crypto module found for ${i}`);return Et("encrypting inbound connection..."),{...await s.secureInbound(this.components.peerId,n),protocol:i}}catch(n){throw new w(String(n),F.ERR_ENCRYPTION_FAILED)}}async _encryptOutbound(t,r){let n=Array.from(this.connectionEncryption.keys());Et("selecting outbound crypto protocol",n);try{let{stream:i,protocol:s}=await Bs(t,n,{writeBytes:!0}),o=this.connectionEncryption.get(s);if(o==null)throw new Error(`no crypto module found for ${s}`);return Et("encrypting outbound connection to %p",r),{...await o.secureOutbound(this.components.peerId,i,r),protocol:s}}catch(i){throw new w(String(i),F.ERR_ENCRYPTION_FAILED)}}async _multiplexOutbound(t,r){let n=Array.from(r.keys());Et("outbound selecting muxer %s",n);try{let{stream:i,protocol:s}=await Bs(t,n,{writeBytes:!0});Et("%s selected as muxer protocol",s);let o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw Et.error("error multiplexing outbound stream",i),new w(String(i),F.ERR_MUXER_UNAVAILABLE)}}async _multiplexInbound(t,r){let n=Array.from(r.keys());Et("inbound handling muxers %s",n);try{let{stream:i,protocol:s}=await Ps(t,n,{writeBytes:!0}),o=r.get(s);return{stream:i,muxerFactory:o}}catch(i){throw Et.error("error multiplexing inbound stream",i),new w(String(i),F.ERR_MUXER_UNAVAILABLE)}}};var xe=rt("libp2p"),df=class extends ss{peerId;peerStore;contentRouting;peerRouting;keychain;metrics;services;components;#t;constructor(t){super();let r=new ss,n=r.dispatchEvent.bind(r);r.dispatchEvent=c=>{let u=n(c),l=this.dispatchEvent(new wu(c.type,{detail:c.detail}));return u||l},ve(1/0,r),this.#t=!1,this.peerId=t.peerId,this.services={};let i=this.components=Kp({peerId:t.peerId,events:r,datastore:t.datastore??new ra,connectionGater:Xp(t.connectionGater)});this.peerStore=this.configureComponent("peerStore",new jo(i,{addressFilter:this.components.connectionGater.filterMultiaddrForPeer,...t.peerStore})),t.metrics!=null&&(this.metrics=this.configureComponent("metrics",t.metrics(this.components))),i.events.addEventListener("peer:update",c=>{if(c.detail.previous==null){let u={id:c.detail.peer.id,multiaddrs:c.detail.peer.addresses.map(l=>l.multiaddr),protocols:c.detail.peer.protocols};i.events.safeDispatchEvent("peer:discovery",{detail:u})}}),t.connectionProtector!=null&&this.configureComponent("connectionProtector",t.connectionProtector(i)),this.components.upgrader=new Ma(this.components,{connectionEncryption:(t.connectionEncryption??[]).map((c,u)=>this.configureComponent(`connection-encryption-${u}`,c(this.components))),muxers:(t.streamMuxers??[]).map((c,u)=>this.configureComponent(`stream-muxers-${u}`,c(this.components))),inboundUpgradeTimeout:t.connectionManager.inboundUpgradeTimeout}),this.configureComponent("transportManager",new Pa(this.components,t.transportManager)),this.configureComponent("connectionManager",new Sa(this.components,t.connectionManager)),this.configureComponent("registrar",new La(this.components)),this.configureComponent("addressManager",new na(this.components,t.addresses));let s=Tn.generateOptions();this.keychain=this.configureComponent("keyChain",new Tn(this.components,{...s,...t.keychain}));let o=(t.peerRouters??[]).map((c,u)=>this.configureComponent(`peer-router-${u}`,c(this.components)));this.peerRouting=this.components.peerRouting=this.configureComponent("peerRouting",new Ba(this.components,{routers:o}));let a=(t.contentRouters??[]).map((c,u)=>this.configureComponent(`content-router-${u}`,c(this.components)));if(this.contentRouting=this.components.contentRouting=this.configureComponent("contentRouting",new Ca(this.components,{routers:a})),(t.peerDiscovery??[]).forEach((c,u)=>{this.configureComponent(`peer-discovery-${u}`,c(this.components)).addEventListener("peer",f=>{this.#e(f)})}),t.transports.forEach((c,u)=>{this.components.transportManager.add(this.configureComponent(`transport-${u}`,c(this.components)))}),t.services!=null)for(let c of Object.keys(t.services)){let u=t.services[c],l=u(this.components);if(l==null){xe.error("service factory %s returned null or undefined instance",c);continue}this.services[c]=l,this.configureComponent(c,l),l[Eu]!=null&&(xe("registering service %s for content routing",c),a.push(l[Eu])),l[_u]!=null&&(xe("registering service %s for peer routing",c),o.push(l[_u])),l[vu]!=null&&(xe("registering service %s for peer discovery",c),l[vu].addEventListener("peer",f=>{this.#e(f)}))}}configureComponent(t,r){return r==null&&xe.error("component %s was null or undefined",t),this.components[t]=r,r}async start(){if(this.#t)return;this.#t=!0,xe("libp2p is starting"),(await this.keychain.listKeys()).find(r=>r.name==="self")==null&&(xe("importing self key into keychain"),await this.keychain.importPeer("self",this.components.peerId));try{await this.components.beforeStart?.(),await this.components.start(),await this.components.afterStart?.(),this.safeDispatchEvent("start",{detail:this}),xe("libp2p has started")}catch(r){throw xe.error("An error occurred starting libp2p",r),await this.stop(),r}}async stop(){this.#t&&(xe("libp2p is stopping"),this.#t=!1,await this.components.beforeStop?.(),await this.components.stop(),await this.components.afterStop?.(),this.safeDispatchEvent("stop",{detail:this}),xe("libp2p has stopped"))}isStarted(){return this.#t}getConnections(t){return this.components.connectionManager.getConnections(t)}getDialQueue(){return this.components.connectionManager.getDialQueue()}getPeers(){let t=new Bn;for(let r of this.components.connectionManager.getConnections())t.add(r.remotePeer);return Array.from(t)}async dial(t,r={}){return this.components.connectionManager.openConnection(t,r)}async dialProtocol(t,r,n={}){if(r==null)throw new w("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 w("no protocols were provided to open a stream",F.ERR_INVALID_PROTOCOLS_FOR_STREAM);return(await this.dial(t,n)).newStream(r,n)}getMultiaddrs(){return this.components.addressManager.getAddresses()}getProtocols(){return this.components.registrar.getProtocols()}async hangUp(t,r={}){Hr(t)&&(t=lt(t.getPeerId()??"")),await this.components.connectionManager.closeConnections(t,r)}async getPublicKey(t,r={}){if(xe("getPublicKey %p",t),t.publicKey!=null)return t.publicKey;let n=await this.peerStore.get(t);if(n.id.publicKey!=null)return n.id.publicKey;let i=kt([z("/pk/"),t.multihash.digest]),s=await this.contentRouting.get(i,r);return ns(s),await this.peerStore.patch(t,{publicKey:s}),s}async handle(t,r,n){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async i=>{await this.components.registrar.handle(i,r,n)}))}async unhandle(t){Array.isArray(t)||(t=[t]),await Promise.all(t.map(async r=>{await this.components.registrar.unhandle(r)}))}async register(t,r){return this.components.registrar.register(t,r)}unregister(t){this.components.registrar.unregister(t)}#e(t){let{detail:r}=t;if(r.id.toString()===this.peerId.toString()){xe.error(new Error(F.ERR_DISCOVERED_SELF));return}this.components.peerStore.merge(r.id,{multiaddrs:r.multiaddrs,protocols:r.protocols}).catch(n=>{xe.error(n)})}};async function Ry(e){if(e.peerId==null){let t=e.datastore;if(t!=null)try{let r=new Tn({datastore:t},qr(Tn.generateOptions(),e.keychain));e.peerId=await r.exportPeerId("self")}catch(r){if(r.code!=="ERR_NOT_FOUND")throw r}}return e.peerId==null&&(e.peerId=await Yd()),new df(pm(e))}async function v_(e){let t=await Ry(e);return e.start!==!1&&await t.start(),t}return Vy(__);})();
50
50
  /*! Bundled license information:
51
51
 
52
52
  @noble/hashes/esm/utils.js: