@reown/walletkit 1.5.5 → 1.5.6
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.umd.js +15 -15
- package/dist/index.umd.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/constants/client.d.ts +1 -1
- package/dist/types/constants/client.d.ts.map +1 -1
- package/dist/types/types/client.d.ts +0 -1
- package/dist/types/types/client.d.ts.map +1 -1
- package/dist/types/types/engine.d.ts +0 -1
- package/dist/types/types/engine.d.ts.map +1 -1
- package/dist/types/types/pay.d.ts +2 -2
- package/dist/types/types/pay.d.ts.map +1 -1
- package/package.json +6 -6
package/dist/index.umd.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(We,cn){typeof exports=="object"&&typeof module<"u"?cn(exports):typeof define=="function"&&define.amd?define(["exports"],cn):(We=typeof globalThis<"u"?globalThis:We||self,cn(We["@reown/walletkit"]={}))})(this,function(We){"use strict";var cn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function El(t){var e=t.default;if(typeof e=="function"){var n=function(){return e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(t).forEach(function(r){var i=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return t[r]}})}),n}var $e={exports:{}},mi=typeof Reflect=="object"?Reflect:null,xl=mi&&typeof mi.apply=="function"?mi.apply:function(e,n,r){return Function.prototype.apply.call(e,n,r)},lo;mi&&typeof mi.ownKeys=="function"?lo=mi.ownKeys:Object.getOwnPropertySymbols?lo=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:lo=function(e){return Object.getOwnPropertyNames(e)};function ty(t){console&&console.warn&&console.warn(t)}var Sl=Number.isNaN||function(e){return e!==e};function be(){be.init.call(this)}$e.exports=be,$e.exports.once=sy,be.EventEmitter=be,be.prototype._events=void 0,be.prototype._eventsCount=0,be.prototype._maxListeners=void 0;var Il=10;function ho(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(be,"defaultMaxListeners",{enumerable:!0,get:function(){return Il},set:function(t){if(typeof t!="number"||t<0||Sl(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");Il=t}}),be.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},be.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||Sl(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function Al(t){return t._maxListeners===void 0?be.defaultMaxListeners:t._maxListeners}be.prototype.getMaxListeners=function(){return Al(this)},be.prototype.emit=function(e){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=e==="error",s=this._events;if(s!==void 0)i=i&&s.error===void 0;else if(!i)return!1;if(i){var o;if(n.length>0&&(o=n[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var c=s[e];if(c===void 0)return!1;if(typeof c=="function")xl(c,this,n);else for(var u=c.length,f=Tl(c,u),r=0;r<u;++r)xl(f[r],this,n);return!0};function Ol(t,e,n,r){var i,s,o;if(ho(n),s=t._events,s===void 0?(s=t._events=Object.create(null),t._eventsCount=0):(s.newListener!==void 0&&(t.emit("newListener",e,n.listener?n.listener:n),s=t._events),o=s[e]),o===void 0)o=s[e]=n,++t._eventsCount;else if(typeof o=="function"?o=s[e]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),i=Al(t),i>0&&o.length>i&&!o.warned){o.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=t,a.type=e,a.count=o.length,ty(a)}return t}be.prototype.addListener=function(e,n){return Ol(this,e,n,!1)},be.prototype.on=be.prototype.addListener,be.prototype.prependListener=function(e,n){return Ol(this,e,n,!0)};function ny(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Bl(t,e,n){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},i=ny.bind(r);return i.listener=n,r.wrapFn=i,i}be.prototype.once=function(e,n){return ho(n),this.on(e,Bl(this,e,n)),this},be.prototype.prependOnceListener=function(e,n){return ho(n),this.prependListener(e,Bl(this,e,n)),this},be.prototype.removeListener=function(e,n){var r,i,s,o,a;if(ho(n),i=this._events,i===void 0)return this;if(r=i[e],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,r.listener||n));else if(typeof r!="function"){for(s=-1,o=r.length-1;o>=0;o--)if(r[o]===n||r[o].listener===n){a=r[o].listener,s=o;break}if(s<0)return this;s===0?r.shift():ry(r,s),r.length===1&&(i[e]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",e,a||n)}return this},be.prototype.off=be.prototype.removeListener,be.prototype.removeAllListeners=function(e){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[e]),this;if(arguments.length===0){var s=Object.keys(r),o;for(i=0;i<s.length;++i)o=s[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=r[e],typeof n=="function")this.removeListener(e,n);else if(n!==void 0)for(i=n.length-1;i>=0;i--)this.removeListener(e,n[i]);return this};function Dl(t,e,n){var r=t._events;if(r===void 0)return[];var i=r[e];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?iy(i):Tl(i,i.length)}be.prototype.listeners=function(e){return Dl(this,e,!0)},be.prototype.rawListeners=function(e){return Dl(this,e,!1)},be.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):Rl.call(t,e)},be.prototype.listenerCount=Rl;function Rl(t){var e=this._events;if(e!==void 0){var n=e[t];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}be.prototype.eventNames=function(){return this._eventsCount>0?lo(this._events):[]};function Tl(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t[r];return n}function ry(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function iy(t){for(var e=new Array(t.length),n=0;n<e.length;++n)e[n]=t[n].listener||t[n];return e}function sy(t,e){return new Promise(function(n,r){function i(o){t.removeListener(e,s),r(o)}function s(){typeof t.removeListener=="function"&&t.removeListener("error",i),n([].slice.call(arguments))}Nl(t,e,s,{once:!0}),e!=="error"&&oy(t,i,{once:!0})})}function oy(t,e,n){typeof t.on=="function"&&Nl(t,"error",e,n)}function Nl(t,e,n,r){if(typeof t.on=="function")r.once?t.once(e,n):t.on(e,n);else if(typeof t.addEventListener=="function")t.addEventListener(e,function i(s){r.once&&t.removeEventListener(e,i),n(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}var un={exports:{}};function ay(t){try{return JSON.stringify(t)}catch{return'"[Circular]"'}}var cy=uy;function uy(t,e,n){var r=n&&n.stringify||ay,i=1;if(typeof t=="object"&&t!==null){var s=e.length+i;if(s===1)return t;var o=new Array(s);o[0]=r(t);for(var a=1;a<s;a++)o[a]=r(e[a]);return o.join(" ")}if(typeof t!="string")return t;var c=e.length;if(c===0)return t;for(var u="",f=1-i,h=-1,d=t&&t.length||0,l=0;l<d;){if(t.charCodeAt(l)===37&&l+1<d){switch(h=h>-1?h:0,t.charCodeAt(l+1)){case 100:case 102:if(f>=c||e[f]==null)break;h<l&&(u+=t.slice(h,l)),u+=Number(e[f]),h=l+2,l++;break;case 105:if(f>=c||e[f]==null)break;h<l&&(u+=t.slice(h,l)),u+=Math.floor(Number(e[f])),h=l+2,l++;break;case 79:case 111:case 106:if(f>=c||e[f]===void 0)break;h<l&&(u+=t.slice(h,l));var p=typeof e[f];if(p==="string"){u+="'"+e[f]+"'",h=l+2,l++;break}if(p==="function"){u+=e[f].name||"<anonymous>",h=l+2,l++;break}u+=r(e[f]),h=l+2,l++;break;case 115:if(f>=c)break;h<l&&(u+=t.slice(h,l)),u+=String(e[f]),h=l+2,l++;break;case 37:h<l&&(u+=t.slice(h,l)),u+="%",h=l+2,l++,f--;break}++f}++l}return h===-1?t:(h<d&&(u+=t.slice(h)),u)}const Ul=cy;un.exports=xn;const is=Iy().console||{},fy={mapHttpRequest:po,mapHttpResponse:po,wrapRequestSerializer:rc,wrapResponseSerializer:rc,wrapErrorSerializer:rc,req:po,res:po,err:Pl,errWithCause:Pl};function _n(t,e){return t==="silent"?1/0:e.levels.values[t]}const $a=Symbol("pino.logFuncs"),ec=Symbol("pino.hierarchy"),ly={error:"log",fatal:"error",warn:"error",info:"log",debug:"log",trace:"log"};function Cl(t,e){const n={logger:e,parent:t[ec]};e[ec]=n}function hy(t,e,n){const r={};e.forEach(i=>{r[i]=n[i]?n[i]:is[i]||is[ly[i]||"log"]||vi}),t[$a]=r}function dy(t,e){return Array.isArray(t)?t.filter(function(n){return n!=="!stdSerializers.err"}):t===!0?Object.keys(e):!1}function xn(t){t=t||{},t.browser=t.browser||{};const e=t.browser.transmit;if(e&&typeof e.send!="function")throw Error("pino: transmit option must have a send function");const n=t.browser.write||is;t.browser.write&&(t.browser.asObject=!0);const r=t.serializers||{},i=dy(t.browser.serialize,r);let s=t.browser.serialize;Array.isArray(t.browser.serialize)&&t.browser.serialize.indexOf("!stdSerializers.err")>-1&&(s=!1);const o=Object.keys(t.customLevels||{}),a=["error","fatal","warn","info","debug","trace"].concat(o);typeof n=="function"&&a.forEach(function(y){n[y]=n}),(t.enabled===!1||t.browser.disabled)&&(t.level="silent");const c=t.level||"info",u=Object.create(n);u.log||(u.log=vi),hy(u,a,n),Cl({},u),Object.defineProperty(u,"levelVal",{get:h}),Object.defineProperty(u,"level",{get:d,set:l});const f={transmit:e,serialize:i,asObject:t.browser.asObject,asObjectBindingsOnly:t.browser.asObjectBindingsOnly,formatters:t.browser.formatters,levels:a,timestamp:Ey(t),messageKey:t.messageKey||"msg",onChild:t.onChild||vi};u.levels=py(t),u.level=c,u.isLevelEnabled=function(y){return this.levels.values[y]?this.levels.values[y]>=this.levels.values[this.level]:!1},u.setMaxListeners=u.getMaxListeners=u.emit=u.addListener=u.on=u.prependListener=u.once=u.prependOnceListener=u.removeListener=u.removeAllListeners=u.listeners=u.listenerCount=u.eventNames=u.write=u.flush=vi,u.serializers=r,u._serialize=i,u._stdErrSerialize=s,u.child=function(...y){return p.call(this,f,...y)},e&&(u._logEvent=nc());function h(){return _n(this.level,this)}function d(){return this._level}function l(y){if(y!=="silent"&&!this.levels.values[y])throw Error("unknown level "+y);this._level=y,kr(this,f,u,"error"),kr(this,f,u,"fatal"),kr(this,f,u,"warn"),kr(this,f,u,"info"),kr(this,f,u,"debug"),kr(this,f,u,"trace"),o.forEach(v=>{kr(this,f,u,v)})}function p(y,v,D){if(!v)throw new Error("missing bindings for child Pino");D=D||{},i&&v.serializers&&(D.serializers=v.serializers);const C=D.serializers;if(i&&C){var A=Object.assign({},r,C),I=t.browser.serialize===!0?Object.keys(A):i;delete v.serializers,tc([v],I,A,this._stdErrSerialize)}function S(M){this._childLevel=(M._childLevel|0)+1,this.bindings=v,A&&(this.serializers=A,this._serialize=I),e&&(this._logEvent=nc([].concat(M._logEvent.bindings,v)))}S.prototype=this;const z=new S(this);return Cl(this,z),z.child=function(...M){return p.call(this,y,...M)},z.level=D.level||this.level,y.onChild(z),z}return u}function py(t){const e=t.customLevels||{},n=Object.assign({},xn.levels.values,e),r=Object.assign({},xn.levels.labels,gy(e));return{values:n,labels:r}}function gy(t){const e={};return Object.keys(t).forEach(function(n){e[t[n]]=n}),e}xn.levels={values:{fatal:60,error:50,warn:40,info:30,debug:20,trace:10},labels:{10:"trace",20:"debug",30:"info",40:"warn",50:"error",60:"fatal"}},xn.stdSerializers=fy,xn.stdTimeFunctions=Object.assign({},{nullTime:ql,epochTime:Fl,unixTime:xy,isoTime:Sy});function wy(t){const e=[];t.bindings&&e.push(t.bindings);let n=t[ec];for(;n.parent;)n=n.parent,n.logger.bindings&&e.push(n.logger.bindings);return e.reverse()}function kr(t,e,n,r){if(Object.defineProperty(t,r,{value:_n(t.level,n)>_n(r,n)?vi:n[$a][r],writable:!0,enumerable:!0,configurable:!0}),t[r]===vi){if(!e.transmit)return;const s=e.transmit.level||t.level,o=_n(s,n);if(_n(r,n)<o)return}t[r]=by(t,e,n,r);const i=wy(t);i.length!==0&&(t[r]=yy(i,t[r]))}function yy(t,e){return function(){return e.apply(this,[...t,...arguments])}}function by(t,e,n,r){return function(i){return function(){const s=e.timestamp(),o=new Array(arguments.length),a=Object.getPrototypeOf&&Object.getPrototypeOf(this)===is?is:this;for(var c=0;c<o.length;c++)o[c]=arguments[c];var u=!1;if(e.serialize&&(tc(o,this._serialize,this.serializers,this._stdErrSerialize),u=!0),e.asObject||e.formatters?i.call(a,...my(this,r,o,s,e)):i.apply(a,o),e.transmit){const f=e.transmit.level||t._level,h=_n(f,n),d=_n(r,n);if(d<h)return;vy(this,{ts:s,methodLevel:r,methodValue:d,transmitLevel:f,transmitValue:n.levels.values[e.transmit.level||t._level],send:e.transmit.send,val:_n(t._level,n)},o,u)}}}(t[$a][r])}function my(t,e,n,r,i){const{level:s,log:o=h=>h}=i.formatters||{},a=n.slice();let c=a[0];const u={};let f=(t._childLevel|0)+1;if(f<1&&(f=1),r&&(u.time=r),s){const h=s(e,t.levels.values[e]);Object.assign(u,h)}else u.level=t.levels.values[e];if(i.asObjectBindingsOnly){if(c!==null&&typeof c=="object")for(;f--&&typeof a[0]=="object";)Object.assign(u,a.shift());return[o(u),...a]}else{if(c!==null&&typeof c=="object"){for(;f--&&typeof a[0]=="object";)Object.assign(u,a.shift());c=a.length?Ul(a.shift(),a):void 0}else typeof c=="string"&&(c=Ul(a.shift(),a));return c!==void 0&&(u[i.messageKey]=c),[o(u)]}}function tc(t,e,n,r){for(const i in t)if(r&&t[i]instanceof Error)t[i]=xn.stdSerializers.err(t[i]);else if(typeof t[i]=="object"&&!Array.isArray(t[i])&&e)for(const s in t[i])e.indexOf(s)>-1&&s in n&&(t[i][s]=n[s](t[i][s]))}function vy(t,e,n,r=!1){const i=e.send,s=e.ts,o=e.methodLevel,a=e.methodValue,c=e.val,u=t._logEvent.bindings;r||tc(n,t._serialize||Object.keys(t.serializers),t.serializers,t._stdErrSerialize===void 0?!0:t._stdErrSerialize),t._logEvent.ts=s,t._logEvent.messages=n.filter(function(f){return u.indexOf(f)===-1}),t._logEvent.level.label=o,t._logEvent.level.value=a,i(o,t._logEvent,c),t._logEvent=nc(u)}function nc(t){return{ts:0,messages:[],bindings:t||[],level:{label:"",value:0}}}function Pl(t){const e={type:t.constructor.name,msg:t.message,stack:t.stack};for(const n in t)e[n]===void 0&&(e[n]=t[n]);return e}function Ey(t){return typeof t.timestamp=="function"?t.timestamp:t.timestamp===!1?ql:Fl}function po(){return{}}function rc(t){return t}function vi(){}function ql(){return!1}function Fl(){return Date.now()}function xy(){return Math.round(Date.now()/1e3)}function Sy(){return new Date(Date.now()).toISOString()}function Iy(){function t(e){return typeof e<"u"&&e}try{return typeof globalThis<"u"||Object.defineProperty(Object.prototype,"globalThis",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch{return t(self)||t(window)||t(this)||{}}}un.exports.default=xn;var kl=un.exports.pino=xn;const Ay={level:"info"},go="custom_context",ic=1e3*1024;var Oy=Object.defineProperty,By=(t,e,n)=>e in t?Oy(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,$n=(t,e,n)=>By(t,typeof e!="symbol"?e+"":e,n);class Dy{constructor(e){$n(this,"nodeValue"),$n(this,"sizeInBytes"),$n(this,"next"),this.nodeValue=e,this.sizeInBytes=new TextEncoder().encode(this.nodeValue).length,this.next=null}get value(){return this.nodeValue}get size(){return this.sizeInBytes}}class Ll{constructor(e){$n(this,"lengthInNodes"),$n(this,"sizeInBytes"),$n(this,"head"),$n(this,"tail"),$n(this,"maxSizeInBytes"),this.head=null,this.tail=null,this.lengthInNodes=0,this.maxSizeInBytes=e,this.sizeInBytes=0}append(e){const n=new Dy(e);if(n.size>this.maxSizeInBytes)throw new Error(`[LinkedList] Value too big to insert into list: ${e} with size ${n.size}`);for(;this.size+n.size>this.maxSizeInBytes;)this.shift();this.head?(this.tail&&(this.tail.next=n),this.tail=n):(this.head=n,this.tail=n),this.lengthInNodes++,this.sizeInBytes+=n.size}shift(){if(!this.head)return;const e=this.head;this.head=this.head.next,this.head||(this.tail=null),this.lengthInNodes--,this.sizeInBytes-=e.size}toArray(){const e=[];let n=this.head;for(;n!==null;)e.push(n.value),n=n.next;return e}get length(){return this.lengthInNodes}get size(){return this.sizeInBytes}toOrderedArray(){return Array.from(this)}[Symbol.iterator](){let e=this.head;return{next:()=>{if(!e)return{done:!0,value:null};const n=e.value;return e=e.next,{done:!1,value:n}}}}}const Ry=t=>JSON.stringify(t,(e,n)=>typeof n=="bigint"?n.toString()+"n":n);function Ml(t){return typeof t=="string"?t:Ry(t)||""}var Ty=Object.defineProperty,Ny=(t,e,n)=>e in t?Ty(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,wo=(t,e,n)=>Ny(t,typeof e!="symbol"?e+"":e,n);class Vl{constructor(e,n=ic){wo(this,"logs"),wo(this,"level"),wo(this,"levelValue"),wo(this,"MAX_LOG_SIZE_IN_BYTES"),this.level=e??"error",this.levelValue=un.exports.levels.values[this.level],this.MAX_LOG_SIZE_IN_BYTES=n,this.logs=new Ll(this.MAX_LOG_SIZE_IN_BYTES)}forwardToConsole(e,n){n===un.exports.levels.values.error?console.error(e):n===un.exports.levels.values.warn?console.warn(e):n===un.exports.levels.values.debug?console.debug(e):n===un.exports.levels.values.trace?console.trace(e):console.log(e)}appendToLogs(e){this.logs.append(Ml({timestamp:new Date().toISOString(),log:e}));const n=typeof e=="string"?JSON.parse(e).level:e.level;n>=this.levelValue&&this.forwardToConsole(e,n)}getLogs(){return this.logs}clearLogs(){this.logs=new Ll(this.MAX_LOG_SIZE_IN_BYTES)}getLogArray(){return Array.from(this.logs)}logsToBlob(e){const n=this.getLogArray();return n.push(Ml({extraMetadata:e})),new Blob(n,{type:"application/json"})}}var Uy=Object.defineProperty,Cy=(t,e,n)=>e in t?Uy(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Py=(t,e,n)=>Cy(t,typeof e!="symbol"?e+"":e,n);class qy{constructor(e,n=ic){Py(this,"baseChunkLogger"),this.baseChunkLogger=new Vl(e,n)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}downloadLogsBlobInBrowser(e){const n=URL.createObjectURL(this.logsToBlob(e)),r=document.createElement("a");r.href=n,r.download=`walletconnect-logs-${new Date().toISOString()}.txt`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}}var Fy=Object.defineProperty,ky=(t,e,n)=>e in t?Fy(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Ly=(t,e,n)=>ky(t,typeof e!="symbol"?e+"":e,n);class My{constructor(e,n=ic){Ly(this,"baseChunkLogger"),this.baseChunkLogger=new Vl(e,n)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}}var Vy=Object.defineProperty,zy=Object.defineProperties,jy=Object.getOwnPropertyDescriptors,zl=Object.getOwnPropertySymbols,Wy=Object.prototype.hasOwnProperty,Hy=Object.prototype.propertyIsEnumerable,jl=(t,e,n)=>e in t?Vy(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,er=(t,e)=>{for(var n in e||(e={}))Wy.call(e,n)&&jl(t,n,e[n]);if(zl)for(var n of zl(e))Hy.call(e,n)&&jl(t,n,e[n]);return t},tr=(t,e)=>zy(t,jy(e));function sc(t){return tr(er({},t),{level:t?.level||Ay.level})}function Yy(t,e,n=go){return t[n]=e,t}function bt(t,e=go){return t[e]||""}function Gy(t,e,n=go){const r=bt(t,n);return r.trim()?`${r}/${e}`:e}function Rt(t,e,n=go){const r=Gy(t,e,n),i=t.child({context:r});return Yy(i,r,n)}function Ky(t){var e,n;const r=new qy((e=t.opts)==null?void 0:e.level,t.maxSizeInBytes);return{logger:un.exports(tr(er({},t.opts),{level:"trace",browser:tr(er({},(n=t.opts)==null?void 0:n.browser),{write:i=>r.write(i)})})),chunkLoggerController:r}}function Zy(t){var e,n;const r=new My((e=t.opts)==null?void 0:e.level,t.maxSizeInBytes);return{logger:un.exports(tr(er({},t.opts),{level:"trace",browser:tr(er({},(n=t.opts)==null?void 0:n.browser),{write:i=>r.write(i)})}),r),chunkLoggerController:r}}function Wl(t){var e;if(typeof t.loggerOverride<"u"&&typeof t.loggerOverride!="string")return{logger:t.loggerOverride,chunkLoggerController:null};const n=tr(er({},t.opts),{level:typeof t.loggerOverride=="string"?t.loggerOverride:(e=t.opts)==null?void 0:e.level});return typeof window<"u"?Ky(tr(er({},t),{opts:n})):Zy(tr(er({},t),{opts:n}))}var Hl=function(t,e,n){if(n||arguments.length===2)for(var r=0,i=e.length,s;r<i;r++)(s||!(r in e))&&(s||(s=Array.prototype.slice.call(e,0,r)),s[r]=e[r]);return t.concat(s||Array.prototype.slice.call(e))},Jy=function(){function t(e,n,r){this.name=e,this.version=n,this.os=r,this.type="browser"}return t}(),Xy=function(){function t(e){this.version=e,this.type="node",this.name="node",this.os=process.platform}return t}(),Qy=function(){function t(e,n,r,i){this.name=e,this.version=n,this.os=r,this.bot=i,this.type="bot-device"}return t}(),_y=function(){function t(){this.type="bot",this.bot=!0,this.name="bot",this.version=null,this.os=null}return t}(),$y=function(){function t(){this.type="react-native",this.name="react-native",this.version=null,this.os=null}return t}(),eb=/alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/,tb=/(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\ Jeeves\/Teoma|ia_archiver)/,Yl=3,nb=[["aol",/AOLShield\/([0-9\._]+)/],["edge",/Edge\/([0-9\._]+)/],["edge-ios",/EdgiOS\/([0-9\._]+)/],["yandexbrowser",/YaBrowser\/([0-9\._]+)/],["kakaotalk",/KAKAOTALK\s([0-9\.]+)/],["samsung",/SamsungBrowser\/([0-9\.]+)/],["silk",/\bSilk\/([0-9._-]+)\b/],["miui",/MiuiBrowser\/([0-9\.]+)$/],["beaker",/BeakerBrowser\/([0-9\.]+)/],["edge-chromium",/EdgA?\/([0-9\.]+)/],["chromium-webview",/(?!Chrom.*OPR)wv\).*Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["chrome",/(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["phantomjs",/PhantomJS\/([0-9\.]+)(:?\s|$)/],["crios",/CriOS\/([0-9\.]+)(:?\s|$)/],["firefox",/Firefox\/([0-9\.]+)(?:\s|$)/],["fxios",/FxiOS\/([0-9\.]+)/],["opera-mini",/Opera Mini.*Version\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)(?:\s|$)/],["opera",/OPR\/([0-9\.]+)(:?\s|$)/],["pie",/^Microsoft Pocket Internet Explorer\/(\d+\.\d+)$/],["pie",/^Mozilla\/\d\.\d+\s\(compatible;\s(?:MSP?IE|MSInternet Explorer) (\d+\.\d+);.*Windows CE.*\)$/],["netfront",/^Mozilla\/\d\.\d+.*NetFront\/(\d.\d)/],["ie",/Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/],["ie",/MSIE\s([0-9\.]+);.*Trident\/[4-7].0/],["ie",/MSIE\s(7\.0)/],["bb10",/BB10;\sTouch.*Version\/([0-9\.]+)/],["android",/Android\s([0-9\.]+)/],["ios",/Version\/([0-9\._]+).*Mobile.*Safari.*/],["safari",/Version\/([0-9\._]+).*Safari/],["facebook",/FB[AS]V\/([0-9\.]+)/],["instagram",/Instagram\s([0-9\.]+)/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Mobile/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Gecko\)$/],["curl",/^curl\/([0-9\.]+)$/],["searchbot",eb]],Gl=[["iOS",/iP(hone|od|ad)/],["Android OS",/Android/],["BlackBerry OS",/BlackBerry|BB10/],["Windows Mobile",/IEMobile/],["Amazon OS",/Kindle/],["Windows 3.11",/Win16/],["Windows 95",/(Windows 95)|(Win95)|(Windows_95)/],["Windows 98",/(Windows 98)|(Win98)/],["Windows 2000",/(Windows NT 5.0)|(Windows 2000)/],["Windows XP",/(Windows NT 5.1)|(Windows XP)/],["Windows Server 2003",/(Windows NT 5.2)/],["Windows Vista",/(Windows NT 6.0)/],["Windows 7",/(Windows NT 6.1)/],["Windows 8",/(Windows NT 6.2)/],["Windows 8.1",/(Windows NT 6.3)/],["Windows 10",/(Windows NT 10.0)/],["Windows ME",/Windows ME/],["Windows CE",/Windows CE|WinCE|Microsoft Pocket Internet Explorer/],["Open BSD",/OpenBSD/],["Sun OS",/SunOS/],["Chrome OS",/CrOS/],["Linux",/(Linux)|(X11)/],["Mac OS",/(Mac_PowerPC)|(Macintosh)/],["QNX",/QNX/],["BeOS",/BeOS/],["OS/2",/OS\/2/]];function rb(t){return t?Kl(t):typeof document>"u"&&typeof navigator<"u"&&navigator.product==="ReactNative"?new $y:typeof navigator<"u"?Kl(navigator.userAgent):ob()}function ib(t){return t!==""&&nb.reduce(function(e,n){var r=n[0],i=n[1];if(e)return e;var s=i.exec(t);return!!s&&[r,s]},!1)}function Kl(t){var e=ib(t);if(!e)return null;var n=e[0],r=e[1];if(n==="searchbot")return new _y;var i=r[1]&&r[1].split(".").join("_").split("_").slice(0,3);i?i.length<Yl&&(i=Hl(Hl([],i,!0),ab(Yl-i.length),!0)):i=[];var s=i.join("."),o=sb(t),a=tb.exec(t);return a&&a[1]?new Qy(n,s,o,a[1]):new Jy(n,s,o)}function sb(t){for(var e=0,n=Gl.length;e<n;e++){var r=Gl[e],i=r[0],s=r[1],o=s.exec(t);if(o)return i}return null}function ob(){var t=typeof process<"u"&&process.version;return t?new Xy(process.version.slice(1)):null}function ab(t){for(var e=[],n=0;n<t;n++)e.push("0");return e}var J={};/*! *****************************************************************************
|
|
1
|
+
(function(je,cn){typeof exports=="object"&&typeof module<"u"?cn(exports):typeof define=="function"&&define.amd?define(["exports"],cn):(je=typeof globalThis<"u"?globalThis:je||self,cn(je["@reown/walletkit"]={}))})(this,function(je){"use strict";var cn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Il(t){var e=t.default;if(typeof e=="function"){var n=function(){return e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(t).forEach(function(r){var i=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return t[r]}})}),n}var $e={exports:{}},vi=typeof Reflect=="object"?Reflect:null,Al=vi&&typeof vi.apply=="function"?vi.apply:function(e,n,r){return Function.prototype.apply.call(e,n,r)},po;vi&&typeof vi.ownKeys=="function"?po=vi.ownKeys:Object.getOwnPropertySymbols?po=function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:po=function(e){return Object.getOwnPropertyNames(e)};function rw(t){console&&console.warn&&console.warn(t)}var Bl=Number.isNaN||function(e){return e!==e};function be(){be.init.call(this)}$e.exports=be,$e.exports.once=aw,be.EventEmitter=be,be.prototype._events=void 0,be.prototype._eventsCount=0,be.prototype._maxListeners=void 0;var Dl=10;function go(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(be,"defaultMaxListeners",{enumerable:!0,get:function(){return Dl},set:function(t){if(typeof t!="number"||t<0||Bl(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");Dl=t}}),be.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},be.prototype.setMaxListeners=function(e){if(typeof e!="number"||e<0||Bl(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this};function Ol(t){return t._maxListeners===void 0?be.defaultMaxListeners:t._maxListeners}be.prototype.getMaxListeners=function(){return Ol(this)},be.prototype.emit=function(e){for(var n=[],r=1;r<arguments.length;r++)n.push(arguments[r]);var i=e==="error",s=this._events;if(s!==void 0)i=i&&s.error===void 0;else if(!i)return!1;if(i){var o;if(n.length>0&&(o=n[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var c=s[e];if(c===void 0)return!1;if(typeof c=="function")Al(c,this,n);else for(var u=c.length,f=Pl(c,u),r=0;r<u;++r)Al(f[r],this,n);return!0};function Tl(t,e,n,r){var i,s,o;if(go(n),s=t._events,s===void 0?(s=t._events=Object.create(null),t._eventsCount=0):(s.newListener!==void 0&&(t.emit("newListener",e,n.listener?n.listener:n),s=t._events),o=s[e]),o===void 0)o=s[e]=n,++t._eventsCount;else if(typeof o=="function"?o=s[e]=r?[n,o]:[o,n]:r?o.unshift(n):o.push(n),i=Ol(t),i>0&&o.length>i&&!o.warned){o.warned=!0;var a=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");a.name="MaxListenersExceededWarning",a.emitter=t,a.type=e,a.count=o.length,rw(a)}return t}be.prototype.addListener=function(e,n){return Tl(this,e,n,!1)},be.prototype.on=be.prototype.addListener,be.prototype.prependListener=function(e,n){return Tl(this,e,n,!0)};function iw(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Rl(t,e,n){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},i=iw.bind(r);return i.listener=n,r.wrapFn=i,i}be.prototype.once=function(e,n){return go(n),this.on(e,Rl(this,e,n)),this},be.prototype.prependOnceListener=function(e,n){return go(n),this.prependListener(e,Rl(this,e,n)),this},be.prototype.removeListener=function(e,n){var r,i,s,o,a;if(go(n),i=this._events,i===void 0)return this;if(r=i[e],r===void 0)return this;if(r===n||r.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,r.listener||n));else if(typeof r!="function"){for(s=-1,o=r.length-1;o>=0;o--)if(r[o]===n||r[o].listener===n){a=r[o].listener,s=o;break}if(s<0)return this;s===0?r.shift():sw(r,s),r.length===1&&(i[e]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",e,a||n)}return this},be.prototype.off=be.prototype.removeListener,be.prototype.removeAllListeners=function(e){var n,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[e]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[e]),this;if(arguments.length===0){var s=Object.keys(r),o;for(i=0;i<s.length;++i)o=s[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=r[e],typeof n=="function")this.removeListener(e,n);else if(n!==void 0)for(i=n.length-1;i>=0;i--)this.removeListener(e,n[i]);return this};function Nl(t,e,n){var r=t._events;if(r===void 0)return[];var i=r[e];return i===void 0?[]:typeof i=="function"?n?[i.listener||i]:[i]:n?ow(i):Pl(i,i.length)}be.prototype.listeners=function(e){return Nl(this,e,!0)},be.prototype.rawListeners=function(e){return Nl(this,e,!1)},be.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):Ul.call(t,e)},be.prototype.listenerCount=Ul;function Ul(t){var e=this._events;if(e!==void 0){var n=e[t];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}be.prototype.eventNames=function(){return this._eventsCount>0?po(this._events):[]};function Pl(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t[r];return n}function sw(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function ow(t){for(var e=new Array(t.length),n=0;n<e.length;++n)e[n]=t[n].listener||t[n];return e}function aw(t,e){return new Promise(function(n,r){function i(o){t.removeListener(e,s),r(o)}function s(){typeof t.removeListener=="function"&&t.removeListener("error",i),n([].slice.call(arguments))}ql(t,e,s,{once:!0}),e!=="error"&&cw(t,i,{once:!0})})}function cw(t,e,n){typeof t.on=="function"&&ql(t,"error",e,n)}function ql(t,e,n,r){if(typeof t.on=="function")r.once?t.once(e,n):t.on(e,n);else if(typeof t.addEventListener=="function")t.addEventListener(e,function i(s){r.once&&t.removeEventListener(e,i),n(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}var un={exports:{}};function uw(t){try{return JSON.stringify(t)}catch{return'"[Circular]"'}}var fw=lw;function lw(t,e,n){var r=n&&n.stringify||uw,i=1;if(typeof t=="object"&&t!==null){var s=e.length+i;if(s===1)return t;var o=new Array(s);o[0]=r(t);for(var a=1;a<s;a++)o[a]=r(e[a]);return o.join(" ")}if(typeof t!="string")return t;var c=e.length;if(c===0)return t;for(var u="",f=1-i,h=-1,d=t&&t.length||0,l=0;l<d;){if(t.charCodeAt(l)===37&&l+1<d){switch(h=h>-1?h:0,t.charCodeAt(l+1)){case 100:case 102:if(f>=c||e[f]==null)break;h<l&&(u+=t.slice(h,l)),u+=Number(e[f]),h=l+2,l++;break;case 105:if(f>=c||e[f]==null)break;h<l&&(u+=t.slice(h,l)),u+=Math.floor(Number(e[f])),h=l+2,l++;break;case 79:case 111:case 106:if(f>=c||e[f]===void 0)break;h<l&&(u+=t.slice(h,l));var p=typeof e[f];if(p==="string"){u+="'"+e[f]+"'",h=l+2,l++;break}if(p==="function"){u+=e[f].name||"<anonymous>",h=l+2,l++;break}u+=r(e[f]),h=l+2,l++;break;case 115:if(f>=c)break;h<l&&(u+=t.slice(h,l)),u+=String(e[f]),h=l+2,l++;break;case 37:h<l&&(u+=t.slice(h,l)),u+="%",h=l+2,l++,f--;break}++f}++l}return h===-1?t:(h<d&&(u+=t.slice(h)),u)}const Cl=fw;un.exports=Sn;const ss=Bw().console||{},hw={mapHttpRequest:yo,mapHttpResponse:yo,wrapRequestSerializer:sc,wrapResponseSerializer:sc,wrapErrorSerializer:sc,req:yo,res:yo,err:Vl,errWithCause:Vl};function $n(t,e){return t==="silent"?1/0:e.levels.values[t]}const tc=Symbol("pino.logFuncs"),nc=Symbol("pino.hierarchy"),dw={error:"log",fatal:"error",warn:"error",info:"log",debug:"log",trace:"log"};function Ll(t,e){const n={logger:e,parent:t[nc]};e[nc]=n}function pw(t,e,n){const r={};e.forEach(i=>{r[i]=n[i]?n[i]:ss[i]||ss[dw[i]||"log"]||Ei}),t[tc]=r}function gw(t,e){return Array.isArray(t)?t.filter(function(n){return n!=="!stdSerializers.err"}):t===!0?Object.keys(e):!1}function Sn(t){t=t||{},t.browser=t.browser||{};const e=t.browser.transmit;if(e&&typeof e.send!="function")throw Error("pino: transmit option must have a send function");const n=t.browser.write||ss;t.browser.write&&(t.browser.asObject=!0);const r=t.serializers||{},i=gw(t.browser.serialize,r);let s=t.browser.serialize;Array.isArray(t.browser.serialize)&&t.browser.serialize.indexOf("!stdSerializers.err")>-1&&(s=!1);const o=Object.keys(t.customLevels||{}),a=["error","fatal","warn","info","debug","trace"].concat(o);typeof n=="function"&&a.forEach(function(w){n[w]=n}),(t.enabled===!1||t.browser.disabled)&&(t.level="silent");const c=t.level||"info",u=Object.create(n);u.log||(u.log=Ei),pw(u,a,n),Ll({},u),Object.defineProperty(u,"levelVal",{get:h}),Object.defineProperty(u,"level",{get:d,set:l});const f={transmit:e,serialize:i,asObject:t.browser.asObject,asObjectBindingsOnly:t.browser.asObjectBindingsOnly,formatters:t.browser.formatters,levels:a,timestamp:Sw(t),messageKey:t.messageKey||"msg",onChild:t.onChild||Ei};u.levels=yw(t),u.level=c,u.isLevelEnabled=function(w){return this.levels.values[w]?this.levels.values[w]>=this.levels.values[this.level]:!1},u.setMaxListeners=u.getMaxListeners=u.emit=u.addListener=u.on=u.prependListener=u.once=u.prependOnceListener=u.removeListener=u.removeAllListeners=u.listeners=u.listenerCount=u.eventNames=u.write=u.flush=Ei,u.serializers=r,u._serialize=i,u._stdErrSerialize=s,u.child=function(...w){return p.call(this,f,...w)},e&&(u._logEvent=ic());function h(){return $n(this.level,this)}function d(){return this._level}function l(w){if(w!=="silent"&&!this.levels.values[w])throw Error("unknown level "+w);this._level=w,kr(this,f,u,"error"),kr(this,f,u,"fatal"),kr(this,f,u,"warn"),kr(this,f,u,"info"),kr(this,f,u,"debug"),kr(this,f,u,"trace"),o.forEach(v=>{kr(this,f,u,v)})}function p(w,v,O){if(!v)throw new Error("missing bindings for child Pino");O=O||{},i&&v.serializers&&(O.serializers=v.serializers);const P=O.serializers;if(i&&P){var A=Object.assign({},r,P),I=t.browser.serialize===!0?Object.keys(A):i;delete v.serializers,rc([v],I,A,this._stdErrSerialize)}function S(F){this._childLevel=(F._childLevel|0)+1,this.bindings=v,A&&(this.serializers=A,this._serialize=I),e&&(this._logEvent=ic([].concat(F._logEvent.bindings,v)))}S.prototype=this;const M=new S(this);return Ll(this,M),M.child=function(...F){return p.call(this,w,...F)},M.level=O.level||this.level,w.onChild(M),M}return u}function yw(t){const e=t.customLevels||{},n=Object.assign({},Sn.levels.values,e),r=Object.assign({},Sn.levels.labels,ww(e));return{values:n,labels:r}}function ww(t){const e={};return Object.keys(t).forEach(function(n){e[t[n]]=n}),e}Sn.levels={values:{fatal:60,error:50,warn:40,info:30,debug:20,trace:10},labels:{10:"trace",20:"debug",30:"info",40:"warn",50:"error",60:"fatal"}},Sn.stdSerializers=hw,Sn.stdTimeFunctions=Object.assign({},{nullTime:kl,epochTime:Fl,unixTime:Iw,isoTime:Aw});function bw(t){const e=[];t.bindings&&e.push(t.bindings);let n=t[nc];for(;n.parent;)n=n.parent,n.logger.bindings&&e.push(n.logger.bindings);return e.reverse()}function kr(t,e,n,r){if(Object.defineProperty(t,r,{value:$n(t.level,n)>$n(r,n)?Ei:n[tc][r],writable:!0,enumerable:!0,configurable:!0}),t[r]===Ei){if(!e.transmit)return;const s=e.transmit.level||t.level,o=$n(s,n);if($n(r,n)<o)return}t[r]=vw(t,e,n,r);const i=bw(t);i.length!==0&&(t[r]=mw(i,t[r]))}function mw(t,e){return function(){return e.apply(this,[...t,...arguments])}}function vw(t,e,n,r){return function(i){return function(){const s=e.timestamp(),o=new Array(arguments.length),a=Object.getPrototypeOf&&Object.getPrototypeOf(this)===ss?ss:this;for(var c=0;c<o.length;c++)o[c]=arguments[c];var u=!1;if(e.serialize&&(rc(o,this._serialize,this.serializers,this._stdErrSerialize),u=!0),e.asObject||e.formatters?i.call(a,...Ew(this,r,o,s,e)):i.apply(a,o),e.transmit){const f=e.transmit.level||t._level,h=$n(f,n),d=$n(r,n);if(d<h)return;xw(this,{ts:s,methodLevel:r,methodValue:d,transmitLevel:f,transmitValue:n.levels.values[e.transmit.level||t._level],send:e.transmit.send,val:$n(t._level,n)},o,u)}}}(t[tc][r])}function Ew(t,e,n,r,i){const{level:s,log:o=h=>h}=i.formatters||{},a=n.slice();let c=a[0];const u={};let f=(t._childLevel|0)+1;if(f<1&&(f=1),r&&(u.time=r),s){const h=s(e,t.levels.values[e]);Object.assign(u,h)}else u.level=t.levels.values[e];if(i.asObjectBindingsOnly){if(c!==null&&typeof c=="object")for(;f--&&typeof a[0]=="object";)Object.assign(u,a.shift());return[o(u),...a]}else{if(c!==null&&typeof c=="object"){for(;f--&&typeof a[0]=="object";)Object.assign(u,a.shift());c=a.length?Cl(a.shift(),a):void 0}else typeof c=="string"&&(c=Cl(a.shift(),a));return c!==void 0&&(u[i.messageKey]=c),[o(u)]}}function rc(t,e,n,r){for(const i in t)if(r&&t[i]instanceof Error)t[i]=Sn.stdSerializers.err(t[i]);else if(typeof t[i]=="object"&&!Array.isArray(t[i])&&e)for(const s in t[i])e.indexOf(s)>-1&&s in n&&(t[i][s]=n[s](t[i][s]))}function xw(t,e,n,r=!1){const i=e.send,s=e.ts,o=e.methodLevel,a=e.methodValue,c=e.val,u=t._logEvent.bindings;r||rc(n,t._serialize||Object.keys(t.serializers),t.serializers,t._stdErrSerialize===void 0?!0:t._stdErrSerialize),t._logEvent.ts=s,t._logEvent.messages=n.filter(function(f){return u.indexOf(f)===-1}),t._logEvent.level.label=o,t._logEvent.level.value=a,i(o,t._logEvent,c),t._logEvent=ic(u)}function ic(t){return{ts:0,messages:[],bindings:t||[],level:{label:"",value:0}}}function Vl(t){const e={type:t.constructor.name,msg:t.message,stack:t.stack};for(const n in t)e[n]===void 0&&(e[n]=t[n]);return e}function Sw(t){return typeof t.timestamp=="function"?t.timestamp:t.timestamp===!1?kl:Fl}function yo(){return{}}function sc(t){return t}function Ei(){}function kl(){return!1}function Fl(){return Date.now()}function Iw(){return Math.round(Date.now()/1e3)}function Aw(){return new Date(Date.now()).toISOString()}function Bw(){function t(e){return typeof e<"u"&&e}try{return typeof globalThis<"u"||Object.defineProperty(Object.prototype,"globalThis",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch{return t(self)||t(window)||t(this)||{}}}un.exports.default=Sn;var zl=un.exports.pino=Sn;const Dw={level:"info"},wo="custom_context",oc=1e3*1024;var Ow=Object.defineProperty,Tw=(t,e,n)=>e in t?Ow(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,er=(t,e,n)=>Tw(t,typeof e!="symbol"?e+"":e,n);class Rw{constructor(e){er(this,"nodeValue"),er(this,"sizeInBytes"),er(this,"next"),this.nodeValue=e,this.sizeInBytes=new TextEncoder().encode(this.nodeValue).length,this.next=null}get value(){return this.nodeValue}get size(){return this.sizeInBytes}}class Ml{constructor(e){er(this,"lengthInNodes"),er(this,"sizeInBytes"),er(this,"head"),er(this,"tail"),er(this,"maxSizeInBytes"),this.head=null,this.tail=null,this.lengthInNodes=0,this.maxSizeInBytes=e,this.sizeInBytes=0}append(e){const n=new Rw(e);if(n.size>this.maxSizeInBytes)throw new Error(`[LinkedList] Value too big to insert into list: ${e} with size ${n.size}`);for(;this.size+n.size>this.maxSizeInBytes;)this.shift();this.head?(this.tail&&(this.tail.next=n),this.tail=n):(this.head=n,this.tail=n),this.lengthInNodes++,this.sizeInBytes+=n.size}shift(){if(!this.head)return;const e=this.head;this.head=this.head.next,this.head||(this.tail=null),this.lengthInNodes--,this.sizeInBytes-=e.size}toArray(){const e=[];let n=this.head;for(;n!==null;)e.push(n.value),n=n.next;return e}get length(){return this.lengthInNodes}get size(){return this.sizeInBytes}toOrderedArray(){return Array.from(this)}[Symbol.iterator](){let e=this.head;return{next:()=>{if(!e)return{done:!0,value:null};const n=e.value;return e=e.next,{done:!1,value:n}}}}}const Nw=t=>JSON.stringify(t,(e,n)=>typeof n=="bigint"?n.toString()+"n":n);function Kl(t){return typeof t=="string"?t:Nw(t)||""}var Uw=Object.defineProperty,Pw=(t,e,n)=>e in t?Uw(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,bo=(t,e,n)=>Pw(t,typeof e!="symbol"?e+"":e,n);class jl{constructor(e,n=oc){bo(this,"logs"),bo(this,"level"),bo(this,"levelValue"),bo(this,"MAX_LOG_SIZE_IN_BYTES"),this.level=e??"error",this.levelValue=un.exports.levels.values[this.level],this.MAX_LOG_SIZE_IN_BYTES=n,this.logs=new Ml(this.MAX_LOG_SIZE_IN_BYTES)}forwardToConsole(e,n){n===un.exports.levels.values.error?console.error(e):n===un.exports.levels.values.warn?console.warn(e):n===un.exports.levels.values.debug?console.debug(e):n===un.exports.levels.values.trace?console.trace(e):console.log(e)}appendToLogs(e){this.logs.append(Kl({timestamp:new Date().toISOString(),log:e}));const n=typeof e=="string"?JSON.parse(e).level:e.level;n>=this.levelValue&&this.forwardToConsole(e,n)}getLogs(){return this.logs}clearLogs(){this.logs=new Ml(this.MAX_LOG_SIZE_IN_BYTES)}getLogArray(){return Array.from(this.logs)}logsToBlob(e){const n=this.getLogArray();return n.push(Kl({extraMetadata:e})),new Blob(n,{type:"application/json"})}}var qw=Object.defineProperty,Cw=(t,e,n)=>e in t?qw(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,Lw=(t,e,n)=>Cw(t,typeof e!="symbol"?e+"":e,n);class Vw{constructor(e,n=oc){Lw(this,"baseChunkLogger"),this.baseChunkLogger=new jl(e,n)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}downloadLogsBlobInBrowser(e){const n=URL.createObjectURL(this.logsToBlob(e)),r=document.createElement("a");r.href=n,r.download=`walletconnect-logs-${new Date().toISOString()}.txt`,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(n)}}var kw=Object.defineProperty,Fw=(t,e,n)=>e in t?kw(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,zw=(t,e,n)=>Fw(t,typeof e!="symbol"?e+"":e,n);class Mw{constructor(e,n=oc){zw(this,"baseChunkLogger"),this.baseChunkLogger=new jl(e,n)}write(e){this.baseChunkLogger.appendToLogs(e)}getLogs(){return this.baseChunkLogger.getLogs()}clearLogs(){this.baseChunkLogger.clearLogs()}getLogArray(){return this.baseChunkLogger.getLogArray()}logsToBlob(e){return this.baseChunkLogger.logsToBlob(e)}}var Kw=Object.defineProperty,jw=Object.defineProperties,Ww=Object.getOwnPropertyDescriptors,Wl=Object.getOwnPropertySymbols,Hw=Object.prototype.hasOwnProperty,Gw=Object.prototype.propertyIsEnumerable,Hl=(t,e,n)=>e in t?Kw(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,tr=(t,e)=>{for(var n in e||(e={}))Hw.call(e,n)&&Hl(t,n,e[n]);if(Wl)for(var n of Wl(e))Gw.call(e,n)&&Hl(t,n,e[n]);return t},nr=(t,e)=>jw(t,Ww(e));function ac(t){return nr(tr({},t),{level:t?.level||Dw.level})}function Zw(t,e,n=wo){return t[n]=e,t}function bt(t,e=wo){return t[e]||""}function Xw(t,e,n=wo){const r=bt(t,n);return r.trim()?`${r}/${e}`:e}function Tt(t,e,n=wo){const r=Xw(t,e,n),i=t.child({context:r});return Zw(i,r,n)}function Yw(t){var e,n;const r=new Vw((e=t.opts)==null?void 0:e.level,t.maxSizeInBytes);return{logger:un.exports(nr(tr({},t.opts),{level:"trace",browser:nr(tr({},(n=t.opts)==null?void 0:n.browser),{write:i=>r.write(i)})})),chunkLoggerController:r}}function Jw(t){var e,n;const r=new Mw((e=t.opts)==null?void 0:e.level,t.maxSizeInBytes);return{logger:un.exports(nr(tr({},t.opts),{level:"trace",browser:nr(tr({},(n=t.opts)==null?void 0:n.browser),{write:i=>r.write(i)})}),r),chunkLoggerController:r}}function Gl(t){var e;if(typeof t.loggerOverride<"u"&&typeof t.loggerOverride!="string")return{logger:t.loggerOverride,chunkLoggerController:null};const n=nr(tr({},t.opts),{level:typeof t.loggerOverride=="string"?t.loggerOverride:(e=t.opts)==null?void 0:e.level});return typeof window<"u"?Yw(nr(tr({},t),{opts:n})):Jw(nr(tr({},t),{opts:n}))}var Zl=function(t,e,n){if(n||arguments.length===2)for(var r=0,i=e.length,s;r<i;r++)(s||!(r in e))&&(s||(s=Array.prototype.slice.call(e,0,r)),s[r]=e[r]);return t.concat(s||Array.prototype.slice.call(e))},Qw=function(){function t(e,n,r){this.name=e,this.version=n,this.os=r,this.type="browser"}return t}(),_w=function(){function t(e){this.version=e,this.type="node",this.name="node",this.os=process.platform}return t}(),$w=function(){function t(e,n,r,i){this.name=e,this.version=n,this.os=r,this.bot=i,this.type="bot-device"}return t}(),eb=function(){function t(){this.type="bot",this.bot=!0,this.name="bot",this.version=null,this.os=null}return t}(),tb=function(){function t(){this.type="react-native",this.name="react-native",this.version=null,this.os=null}return t}(),nb=/alexa|bot|crawl(er|ing)|facebookexternalhit|feedburner|google web preview|nagios|postrank|pingdom|slurp|spider|yahoo!|yandex/,rb=/(nuhk|curl|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask\ Jeeves\/Teoma|ia_archiver)/,Xl=3,ib=[["aol",/AOLShield\/([0-9\._]+)/],["edge",/Edge\/([0-9\._]+)/],["edge-ios",/EdgiOS\/([0-9\._]+)/],["yandexbrowser",/YaBrowser\/([0-9\._]+)/],["kakaotalk",/KAKAOTALK\s([0-9\.]+)/],["samsung",/SamsungBrowser\/([0-9\.]+)/],["silk",/\bSilk\/([0-9._-]+)\b/],["miui",/MiuiBrowser\/([0-9\.]+)$/],["beaker",/BeakerBrowser\/([0-9\.]+)/],["edge-chromium",/EdgA?\/([0-9\.]+)/],["chromium-webview",/(?!Chrom.*OPR)wv\).*Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["chrome",/(?!Chrom.*OPR)Chrom(?:e|ium)\/([0-9\.]+)(:?\s|$)/],["phantomjs",/PhantomJS\/([0-9\.]+)(:?\s|$)/],["crios",/CriOS\/([0-9\.]+)(:?\s|$)/],["firefox",/Firefox\/([0-9\.]+)(?:\s|$)/],["fxios",/FxiOS\/([0-9\.]+)/],["opera-mini",/Opera Mini.*Version\/([0-9\.]+)/],["opera",/Opera\/([0-9\.]+)(?:\s|$)/],["opera",/OPR\/([0-9\.]+)(:?\s|$)/],["pie",/^Microsoft Pocket Internet Explorer\/(\d+\.\d+)$/],["pie",/^Mozilla\/\d\.\d+\s\(compatible;\s(?:MSP?IE|MSInternet Explorer) (\d+\.\d+);.*Windows CE.*\)$/],["netfront",/^Mozilla\/\d\.\d+.*NetFront\/(\d.\d)/],["ie",/Trident\/7\.0.*rv\:([0-9\.]+).*\).*Gecko$/],["ie",/MSIE\s([0-9\.]+);.*Trident\/[4-7].0/],["ie",/MSIE\s(7\.0)/],["bb10",/BB10;\sTouch.*Version\/([0-9\.]+)/],["android",/Android\s([0-9\.]+)/],["ios",/Version\/([0-9\._]+).*Mobile.*Safari.*/],["safari",/Version\/([0-9\._]+).*Safari/],["facebook",/FB[AS]V\/([0-9\.]+)/],["instagram",/Instagram\s([0-9\.]+)/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Mobile/],["ios-webview",/AppleWebKit\/([0-9\.]+).*Gecko\)$/],["curl",/^curl\/([0-9\.]+)$/],["searchbot",nb]],Yl=[["iOS",/iP(hone|od|ad)/],["Android OS",/Android/],["BlackBerry OS",/BlackBerry|BB10/],["Windows Mobile",/IEMobile/],["Amazon OS",/Kindle/],["Windows 3.11",/Win16/],["Windows 95",/(Windows 95)|(Win95)|(Windows_95)/],["Windows 98",/(Windows 98)|(Win98)/],["Windows 2000",/(Windows NT 5.0)|(Windows 2000)/],["Windows XP",/(Windows NT 5.1)|(Windows XP)/],["Windows Server 2003",/(Windows NT 5.2)/],["Windows Vista",/(Windows NT 6.0)/],["Windows 7",/(Windows NT 6.1)/],["Windows 8",/(Windows NT 6.2)/],["Windows 8.1",/(Windows NT 6.3)/],["Windows 10",/(Windows NT 10.0)/],["Windows ME",/Windows ME/],["Windows CE",/Windows CE|WinCE|Microsoft Pocket Internet Explorer/],["Open BSD",/OpenBSD/],["Sun OS",/SunOS/],["Chrome OS",/CrOS/],["Linux",/(Linux)|(X11)/],["Mac OS",/(Mac_PowerPC)|(Macintosh)/],["QNX",/QNX/],["BeOS",/BeOS/],["OS/2",/OS\/2/]];function sb(t){return t?Jl(t):typeof document>"u"&&typeof navigator<"u"&&navigator.product==="ReactNative"?new tb:typeof navigator<"u"?Jl(navigator.userAgent):cb()}function ob(t){return t!==""&&ib.reduce(function(e,n){var r=n[0],i=n[1];if(e)return e;var s=i.exec(t);return!!s&&[r,s]},!1)}function Jl(t){var e=ob(t);if(!e)return null;var n=e[0],r=e[1];if(n==="searchbot")return new eb;var i=r[1]&&r[1].split(".").join("_").split("_").slice(0,3);i?i.length<Xl&&(i=Zl(Zl([],i,!0),ub(Xl-i.length),!0)):i=[];var s=i.join("."),o=ab(t),a=rb.exec(t);return a&&a[1]?new $w(n,s,o,a[1]):new Qw(n,s,o)}function ab(t){for(var e=0,n=Yl.length;e<n;e++){var r=Yl[e],i=r[0],s=r[1],o=s.exec(t);if(o)return i}return null}function cb(){var t=typeof process<"u"&&process.version;return t?new _w(process.version.slice(1)):null}function ub(t){for(var e=[],n=0;n<t;n++)e.push("0");return e}var Y={};/*! *****************************************************************************
|
|
2
2
|
Copyright (c) Microsoft Corporation.
|
|
3
3
|
|
|
4
4
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -11,22 +11,22 @@
|
|
|
11
11
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
12
12
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
13
13
|
PERFORMANCE OF THIS SOFTWARE.
|
|
14
|
-
***************************************************************************** */var oc=function(t,e){return oc=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)r.hasOwnProperty(i)&&(n[i]=r[i])},oc(t,e)};function cb(t,e){oc(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}var ac=function(){return ac=Object.assign||function(e){for(var n,r=1,i=arguments.length;r<i;r++){n=arguments[r];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},ac.apply(this,arguments)};function ub(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n}function fb(t,e,n,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,n):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(t,e,n,r);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(i<3?o(s):i>3?o(e,n,s):o(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s}function lb(t,e){return function(n,r){e(n,r,t)}}function hb(t,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(t,e)}function db(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(f){try{u(r.next(f))}catch(h){o(h)}}function c(f){try{u(r.throw(f))}catch(h){o(h)}}function u(f){f.done?s(f.value):i(f.value).then(a,c)}u((r=r.apply(t,e||[])).next())})}function pb(t,e){var n={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},r,i,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(u){return function(f){return c([u,f])}}function c(u){if(r)throw new TypeError("Generator is already executing.");for(;n;)try{if(r=1,i&&(s=u[0]&2?i.return:u[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,u[1])).done)return s;switch(i=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return n.label++,{value:u[1],done:!1};case 5:n.label++,i=u[1],u=[0];continue;case 7:u=n.ops.pop(),n.trys.pop();continue;default:if(s=n.trys,!(s=s.length>0&&s[s.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){n.label=u[1];break}if(u[0]===6&&n.label<s[1]){n.label=s[1],s=u;break}if(s&&n.label<s[2]){n.label=s[2],n.ops.push(u);break}s[2]&&n.ops.pop(),n.trys.pop();continue}u=e.call(t,n)}catch(f){u=[6,f],i=0}finally{r=s=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function gb(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}function wb(t,e){for(var n in t)n!=="default"&&!e.hasOwnProperty(n)&&(e[n]=t[n])}function cc(t){var e=typeof Symbol=="function"&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function Zl(t,e){var n=typeof Symbol=="function"&&t[Symbol.iterator];if(!n)return t;var r=n.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=r.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return s}function yb(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(Zl(arguments[e]));return t}function bb(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;for(var r=Array(t),i=0,e=0;e<n;e++)for(var s=arguments[e],o=0,a=s.length;o<a;o++,i++)r[i]=s[o];return r}function ss(t){return this instanceof ss?(this.v=t,this):new ss(t)}function mb(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),i,s=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(d){r[d]&&(i[d]=function(l){return new Promise(function(p,y){s.push([d,l,p,y])>1||a(d,l)})})}function a(d,l){try{c(r[d](l))}catch(p){h(s[0][3],p)}}function c(d){d.value instanceof ss?Promise.resolve(d.value.v).then(u,f):h(s[0][2],d)}function u(d){a("next",d)}function f(d){a("throw",d)}function h(d,l){d(l),s.shift(),s.length&&a(s[0][0],s[0][1])}}function vb(t){var e,n;return e={},r("next"),r("throw",function(i){throw i}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(i,s){e[i]=t[i]?function(o){return(n=!n)?{value:ss(t[i](o)),done:i==="return"}:s?s(o):o}:s}}function Eb(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof cc=="function"?cc(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(s){n[s]=t[s]&&function(o){return new Promise(function(a,c){o=t[s](o),i(a,c,o.done,o.value)})}}function i(s,o,a,c){Promise.resolve(c).then(function(u){s({value:u,done:a})},o)}}function xb(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function Sb(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function Ib(t){return t&&t.__esModule?t:{default:t}}function Ab(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function Ob(t,e,n){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,n),n}var Bb=Object.freeze({__proto__:null,__extends:cb,get __assign(){return ac},__rest:ub,__decorate:fb,__param:lb,__metadata:hb,__awaiter:db,__generator:pb,__createBinding:gb,__exportStar:wb,__values:cc,__read:Zl,__spread:yb,__spreadArrays:bb,__await:ss,__asyncGenerator:mb,__asyncDelegator:vb,__asyncValues:Eb,__makeTemplateObject:xb,__importStar:Sb,__importDefault:Ib,__classPrivateFieldGet:Ab,__classPrivateFieldSet:Ob}),yo=El(Bb),uc={},os={},Jl;function Db(){if(Jl)return os;Jl=1,Object.defineProperty(os,"__esModule",{value:!0}),os.delay=void 0;function t(e){return new Promise(n=>{setTimeout(()=>{n(!0)},e)})}return os.delay=t,os}var Lr={},fc={},Mr={},Xl;function Rb(){return Xl||(Xl=1,Object.defineProperty(Mr,"__esModule",{value:!0}),Mr.ONE_THOUSAND=Mr.ONE_HUNDRED=void 0,Mr.ONE_HUNDRED=100,Mr.ONE_THOUSAND=1e3),Mr}var lc={},Ql;function Tb(){return Ql||(Ql=1,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.ONE_YEAR=t.FOUR_WEEKS=t.THREE_WEEKS=t.TWO_WEEKS=t.ONE_WEEK=t.THIRTY_DAYS=t.SEVEN_DAYS=t.FIVE_DAYS=t.THREE_DAYS=t.ONE_DAY=t.TWENTY_FOUR_HOURS=t.TWELVE_HOURS=t.SIX_HOURS=t.THREE_HOURS=t.ONE_HOUR=t.SIXTY_MINUTES=t.THIRTY_MINUTES=t.TEN_MINUTES=t.FIVE_MINUTES=t.ONE_MINUTE=t.SIXTY_SECONDS=t.THIRTY_SECONDS=t.TEN_SECONDS=t.FIVE_SECONDS=t.ONE_SECOND=void 0,t.ONE_SECOND=1,t.FIVE_SECONDS=5,t.TEN_SECONDS=10,t.THIRTY_SECONDS=30,t.SIXTY_SECONDS=60,t.ONE_MINUTE=t.SIXTY_SECONDS,t.FIVE_MINUTES=t.ONE_MINUTE*5,t.TEN_MINUTES=t.ONE_MINUTE*10,t.THIRTY_MINUTES=t.ONE_MINUTE*30,t.SIXTY_MINUTES=t.ONE_MINUTE*60,t.ONE_HOUR=t.SIXTY_MINUTES,t.THREE_HOURS=t.ONE_HOUR*3,t.SIX_HOURS=t.ONE_HOUR*6,t.TWELVE_HOURS=t.ONE_HOUR*12,t.TWENTY_FOUR_HOURS=t.ONE_HOUR*24,t.ONE_DAY=t.TWENTY_FOUR_HOURS,t.THREE_DAYS=t.ONE_DAY*3,t.FIVE_DAYS=t.ONE_DAY*5,t.SEVEN_DAYS=t.ONE_DAY*7,t.THIRTY_DAYS=t.ONE_DAY*30,t.ONE_WEEK=t.SEVEN_DAYS,t.TWO_WEEKS=t.ONE_WEEK*2,t.THREE_WEEKS=t.ONE_WEEK*3,t.FOUR_WEEKS=t.ONE_WEEK*4,t.ONE_YEAR=t.ONE_DAY*365}(lc)),lc}var _l;function $l(){return _l||(_l=1,function(t){Object.defineProperty(t,"__esModule",{value:!0});const e=yo;e.__exportStar(Rb(),t),e.__exportStar(Tb(),t)}(fc)),fc}var eh;function Nb(){if(eh)return Lr;eh=1,Object.defineProperty(Lr,"__esModule",{value:!0}),Lr.fromMiliseconds=Lr.toMiliseconds=void 0;const t=$l();function e(r){return r*t.ONE_THOUSAND}Lr.toMiliseconds=e;function n(r){return Math.floor(r/t.ONE_THOUSAND)}return Lr.fromMiliseconds=n,Lr}var th;function Ub(){return th||(th=1,function(t){Object.defineProperty(t,"__esModule",{value:!0});const e=yo;e.__exportStar(Db(),t),e.__exportStar(Nb(),t)}(uc)),uc}var Ei={},nh;function Cb(){if(nh)return Ei;nh=1,Object.defineProperty(Ei,"__esModule",{value:!0}),Ei.Watch=void 0;class t{constructor(){this.timestamps=new Map}start(n){if(this.timestamps.has(n))throw new Error(`Watch already started for label: ${n}`);this.timestamps.set(n,{started:Date.now()})}stop(n){const r=this.get(n);if(typeof r.elapsed<"u")throw new Error(`Watch already stopped for label: ${n}`);const i=Date.now()-r.started;this.timestamps.set(n,{started:r.started,elapsed:i})}get(n){const r=this.timestamps.get(n);if(typeof r>"u")throw new Error(`No timestamp found for label: ${n}`);return r}elapsed(n){const r=this.get(n);return r.elapsed||Date.now()-r.started}}return Ei.Watch=t,Ei.default=t,Ei}var hc={},as={},rh;function Pb(){if(rh)return as;rh=1,Object.defineProperty(as,"__esModule",{value:!0}),as.IWatch=void 0;class t{}return as.IWatch=t,as}var ih;function qb(){return ih||(ih=1,function(t){Object.defineProperty(t,"__esModule",{value:!0}),yo.__exportStar(Pb(),t)}(hc)),hc}(function(t){Object.defineProperty(t,"__esModule",{value:!0});const e=yo;e.__exportStar(Ub(),t),e.__exportStar(Cb(),t),e.__exportStar(qb(),t),e.__exportStar($l(),t)})(J);var Se={};Object.defineProperty(Se,"__esModule",{value:!0}),Se.getLocalStorage=Se.getLocalStorageOrThrow=Se.getCrypto=Se.getCryptoOrThrow=sh=Se.getLocation=Se.getLocationOrThrow=dc=Se.getNavigator=Se.getNavigatorOrThrow=zr=Se.getDocument=Se.getDocumentOrThrow=Se.getFromWindowOrThrow=Se.getFromWindow=void 0;function Vr(t){let e;return typeof window<"u"&&typeof window[t]<"u"&&(e=window[t]),e}Se.getFromWindow=Vr;function xi(t){const e=Vr(t);if(!e)throw new Error(`${t} is not defined in Window`);return e}Se.getFromWindowOrThrow=xi;function Fb(){return xi("document")}Se.getDocumentOrThrow=Fb;function kb(){return Vr("document")}var zr=Se.getDocument=kb;function Lb(){return xi("navigator")}Se.getNavigatorOrThrow=Lb;function Mb(){return Vr("navigator")}var dc=Se.getNavigator=Mb;function Vb(){return xi("location")}Se.getLocationOrThrow=Vb;function zb(){return Vr("location")}var sh=Se.getLocation=zb;function jb(){return xi("crypto")}Se.getCryptoOrThrow=jb;function Wb(){return Vr("crypto")}Se.getCrypto=Wb;function Hb(){return xi("localStorage")}Se.getLocalStorageOrThrow=Hb;function Yb(){return Vr("localStorage")}Se.getLocalStorage=Yb;var pc={};Object.defineProperty(pc,"__esModule",{value:!0});var oh=pc.getWindowMetadata=void 0;const ah=Se;function Gb(){let t,e;try{t=ah.getDocumentOrThrow(),e=ah.getLocationOrThrow()}catch{return null}function n(){const h=t.getElementsByTagName("link"),d=[];for(let l=0;l<h.length;l++){const p=h[l],y=p.getAttribute("rel");if(y&&y.toLowerCase().indexOf("icon")>-1){const v=p.getAttribute("href");if(v)if(v.toLowerCase().indexOf("https:")===-1&&v.toLowerCase().indexOf("http:")===-1&&v.indexOf("//")!==0){let D=e.protocol+"//"+e.host;if(v.indexOf("/")===0)D+=v;else{const C=e.pathname.split("/");C.pop();const A=C.join("/");D+=A+"/"+v}d.push(D)}else if(v.indexOf("//")===0){const D=e.protocol+v;d.push(D)}else d.push(v)}}return d}function r(...h){const d=t.getElementsByTagName("meta");for(let l=0;l<d.length;l++){const p=d[l],y=["itemprop","property","name"].map(v=>p.getAttribute(v)).filter(v=>v?h.includes(v):!1);if(y.length&&y){const v=p.getAttribute("content");if(v)return v}}return""}function i(){let h=r("name","og:site_name","og:title","twitter:title");return h||(h=t.title),h}function s(){return r("description","og:description","twitter:description","keywords")}const o=i(),a=s(),c=e.origin,u=n();return{description:a,url:c,icons:u,name:o}}oh=pc.getWindowMetadata=Gb;const bo=BigInt(2**32-1),ch=BigInt(32);function uh(t,e=!1){return e?{h:Number(t&bo),l:Number(t>>ch&bo)}:{h:Number(t>>ch&bo)|0,l:Number(t&bo)|0}}function fh(t,e=!1){const n=t.length;let r=new Uint32Array(n),i=new Uint32Array(n);for(let s=0;s<n;s++){const{h:o,l:a}=uh(t[s],e);[r[s],i[s]]=[o,a]}return[r,i]}const lh=(t,e,n)=>t>>>n,hh=(t,e,n)=>t<<32-n|e>>>n,nr=(t,e,n)=>t>>>n|e<<32-n,rr=(t,e,n)=>t<<32-n|e>>>n,cs=(t,e,n)=>t<<64-n|e>>>n-32,us=(t,e,n)=>t>>>n-32|e<<64-n,Kb=(t,e)=>e,Zb=(t,e)=>t,Jb=(t,e,n)=>t<<n|e>>>32-n,Xb=(t,e,n)=>e<<n|t>>>32-n,Qb=(t,e,n)=>e<<n-32|t>>>64-n,_b=(t,e,n)=>t<<n-32|e>>>64-n;function Zt(t,e,n,r){const i=(e>>>0)+(r>>>0);return{h:t+n+(i/2**32|0)|0,l:i|0}}const gc=(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0),wc=(t,e,n,r)=>e+n+r+(t/2**32|0)|0,$b=(t,e,n,r)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0),em=(t,e,n,r,i)=>e+n+r+i+(t/2**32|0)|0,tm=(t,e,n,r,i)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0)+(i>>>0),nm=(t,e,n,r,i,s)=>e+n+r+i+s+(t/2**32|0)|0,Si=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;function mo(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function fn(t){if(!Number.isSafeInteger(t)||t<0)throw new Error("positive integer expected, got "+t)}function Jt(t,...e){if(!mo(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error("Uint8Array expected of length "+e+", got length="+t.length)}function vo(t){if(typeof t!="function"||typeof t.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");fn(t.outputLen),fn(t.blockLen)}function ir(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function yc(t,e){Jt(t);const n=e.outputLen;if(t.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function fs(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function Lt(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function bc(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function ln(t,e){return t<<32-e|t>>>e}const dh=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function ph(t){return t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255}const Sn=dh?t=>t:t=>ph(t);function rm(t){for(let e=0;e<t.length;e++)t[e]=ph(t[e]);return t}const sr=dh?t=>t:rm,gh=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",im=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function Ii(t){if(Jt(t),gh)return t.toHex();let e="";for(let n=0;n<t.length;n++)e+=im[t[n]];return e}const In={_0:48,_9:57,A:65,F:70,a:97,f:102};function wh(t){if(t>=In._0&&t<=In._9)return t-In._0;if(t>=In.A&&t<=In.F)return t-(In.A-10);if(t>=In.a&&t<=In.f)return t-(In.a-10)}function Eo(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);if(gh)return Uint8Array.fromHex(t);const e=t.length,n=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);const r=new Uint8Array(n);for(let i=0,s=0;i<n;i++,s+=2){const o=wh(t.charCodeAt(s)),a=wh(t.charCodeAt(s+1));if(o===void 0||a===void 0){const c=t[s]+t[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}r[i]=o*16+a}return r}function yh(t){if(typeof t!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(t))}function Xt(t){return typeof t=="string"&&(t=yh(t)),Jt(t),t}function An(...t){let e=0;for(let r=0;r<t.length;r++){const i=t[r];Jt(i),e+=i.length}const n=new Uint8Array(e);for(let r=0,i=0;r<t.length;r++){const s=t[r];n.set(s,i),i+=s.length}return n}class xo{}function ls(t){const e=r=>t().update(Xt(r)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function sm(t){const e=(r,i)=>t(i).update(Xt(r)).digest(),n=t({});return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=r=>t(r),e}function On(t=32){if(Si&&typeof Si.getRandomValues=="function")return Si.getRandomValues(new Uint8Array(t));if(Si&&typeof Si.randomBytes=="function")return Uint8Array.from(Si.randomBytes(t));throw new Error("crypto.getRandomValues must be defined")}const om=BigInt(0),hs=BigInt(1),am=BigInt(2),cm=BigInt(7),um=BigInt(256),fm=BigInt(113),bh=[],mh=[],vh=[];for(let t=0,e=hs,n=1,r=0;t<24;t++){[n,r]=[r,(2*n+3*r)%5],bh.push(2*(5*r+n)),mh.push((t+1)*(t+2)/2%64);let i=om;for(let s=0;s<7;s++)e=(e<<hs^(e>>cm)*fm)%um,e&am&&(i^=hs<<(hs<<BigInt(s))-hs);vh.push(i)}const Eh=fh(vh,!0),lm=Eh[0],hm=Eh[1],xh=(t,e,n)=>n>32?Qb(t,e,n):Jb(t,e,n),Sh=(t,e,n)=>n>32?_b(t,e,n):Xb(t,e,n);function dm(t,e=24){const n=new Uint32Array(10);for(let r=24-e;r<24;r++){for(let o=0;o<10;o++)n[o]=t[o]^t[o+10]^t[o+20]^t[o+30]^t[o+40];for(let o=0;o<10;o+=2){const a=(o+8)%10,c=(o+2)%10,u=n[c],f=n[c+1],h=xh(u,f,1)^n[a],d=Sh(u,f,1)^n[a+1];for(let l=0;l<50;l+=10)t[o+l]^=h,t[o+l+1]^=d}let i=t[2],s=t[3];for(let o=0;o<24;o++){const a=mh[o],c=xh(i,s,a),u=Sh(i,s,a),f=bh[o];i=t[f],s=t[f+1],t[f]=c,t[f+1]=u}for(let o=0;o<50;o+=10){for(let a=0;a<10;a++)n[a]=t[o+a];for(let a=0;a<10;a++)t[o+a]^=~n[(a+2)%10]&n[(a+4)%10]}t[0]^=lm[r],t[1]^=hm[r]}Lt(n)}class mc extends xo{constructor(e,n,r,i=!1,s=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=n,this.outputLen=r,this.enableXOF=i,this.rounds=s,fn(r),!(0<e&&e<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=fs(this.state)}clone(){return this._cloneInto()}keccak(){sr(this.state32),dm(this.state32,this.rounds),sr(this.state32),this.posOut=0,this.pos=0}update(e){ir(this),e=Xt(e),Jt(e);const{blockLen:n,state:r}=this,i=e.length;for(let s=0;s<i;){const o=Math.min(n-this.pos,i-s);for(let a=0;a<o;a++)r[this.pos++]^=e[s++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:n,pos:r,blockLen:i}=this;e[r]^=n,(n&128)!==0&&r===i-1&&this.keccak(),e[i-1]^=128,this.keccak()}writeInto(e){ir(this,!1),Jt(e),this.finish();const n=this.state,{blockLen:r}=this;for(let i=0,s=e.length;i<s;){this.posOut>=r&&this.keccak();const o=Math.min(r-this.posOut,s-i);e.set(n.subarray(this.posOut,this.posOut+o),i),this.posOut+=o,i+=o}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return fn(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(yc(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,Lt(this.state)}_cloneInto(e){const{blockLen:n,suffix:r,outputLen:i,rounds:s,enableXOF:o}=this;return e||(e=new mc(n,r,i,o,s)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=s,e.suffix=r,e.outputLen=i,e.enableXOF=o,e.destroyed=this.destroyed,e}}const pm=(t,e,n)=>ls(()=>new mc(e,t,n)),Ih=pm(1,136,256/8),gm="0.1.1";function wm(){return gm}class xe extends Error{constructor(e,n={}){const r=(()=>{if(n.cause instanceof xe){if(n.cause.details)return n.cause.details;if(n.cause.shortMessage)return n.cause.shortMessage}return n.cause&&"details"in n.cause&&typeof n.cause.details=="string"?n.cause.details:n.cause?.message?n.cause.message:n.details})(),i=n.cause instanceof xe&&n.cause.docsPath||n.docsPath,o=`https://oxlib.sh${i??""}`,a=[e||"An error occurred.",...n.metaMessages?["",...n.metaMessages]:[],...r||i?["",r?`Details: ${r}`:void 0,i?`See: ${o}`:void 0]:[]].filter(c=>typeof c=="string").join(`
|
|
15
|
-
`);super(a,n.cause?{cause:n.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:`ox@${wm()}`}),this.cause=n.cause,this.details=r,this.docs=o,this.docsPath=i,this.shortMessage=e}walk(e){return Ah(this,e)}}function Ah(t,e){return e?.(t)?t:t&&typeof t=="object"&&"cause"in t&&t.cause?Ah(t.cause,e):e?null:t}function ym(t,e,n,r){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,n,r);const i=BigInt(32),s=BigInt(4294967295),o=Number(n>>i&s),a=Number(n&s),c=r?4:0,u=r?0:4;t.setUint32(e+c,o,r),t.setUint32(e+u,a,r)}function bm(t,e,n){return t&e^~t&n}function mm(t,e,n){return t&e^t&n^e&n}class Oh extends xo{constructor(e,n,r,i){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=n,this.padOffset=r,this.isLE=i,this.buffer=new Uint8Array(e),this.view=bc(this.buffer)}update(e){ir(this),e=Xt(e),Jt(e);const{view:n,buffer:r,blockLen:i}=this,s=e.length;for(let o=0;o<s;){const a=Math.min(i-this.pos,s-o);if(a===i){const c=bc(e);for(;i<=s-o;o+=i)this.process(c,o);continue}r.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){ir(this),yc(e,this),this.finished=!0;const{buffer:n,view:r,blockLen:i,isLE:s}=this;let{pos:o}=this;n[o++]=128,Lt(this.buffer.subarray(o)),this.padOffset>i-o&&(this.process(r,0),o=0);for(let h=o;h<i;h++)n[h]=0;ym(r,i-8,BigInt(this.length*8),s),this.process(r,0);const a=bc(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let h=0;h<u;h++)a.setUint32(4*h,f[h],s)}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:n,buffer:r,length:i,finished:s,destroyed:o,pos:a}=this;return e.destroyed=o,e.finished=s,e.length=i,e.pos=a,i%n&&e.buffer.set(r),e}clone(){return this._cloneInto()}}const Bn=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),et=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),tt=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),vm=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),or=new Uint32Array(64);class Em extends Oh{constructor(e=32){super(64,e,8,!1),this.A=Bn[0]|0,this.B=Bn[1]|0,this.C=Bn[2]|0,this.D=Bn[3]|0,this.E=Bn[4]|0,this.F=Bn[5]|0,this.G=Bn[6]|0,this.H=Bn[7]|0}get(){const{A:e,B:n,C:r,D:i,E:s,F:o,G:a,H:c}=this;return[e,n,r,i,s,o,a,c]}set(e,n,r,i,s,o,a,c){this.A=e|0,this.B=n|0,this.C=r|0,this.D=i|0,this.E=s|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,n){for(let h=0;h<16;h++,n+=4)or[h]=e.getUint32(n,!1);for(let h=16;h<64;h++){const d=or[h-15],l=or[h-2],p=ln(d,7)^ln(d,18)^d>>>3,y=ln(l,17)^ln(l,19)^l>>>10;or[h]=y+or[h-7]+p+or[h-16]|0}let{A:r,B:i,C:s,D:o,E:a,F:c,G:u,H:f}=this;for(let h=0;h<64;h++){const d=ln(a,6)^ln(a,11)^ln(a,25),l=f+d+bm(a,c,u)+vm[h]+or[h]|0,y=(ln(r,2)^ln(r,13)^ln(r,22))+mm(r,i,s)|0;f=u,u=c,c=a,a=o+l|0,o=s,s=i,i=r,r=l+y|0}r=r+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,f=f+this.H|0,this.set(r,i,s,o,a,c,u,f)}roundClean(){Lt(or)}destroy(){this.set(0,0,0,0,0,0,0,0),Lt(this.buffer)}}const Bh=fh(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(t=>BigInt(t))),xm=Bh[0],Sm=Bh[1],ar=new Uint32Array(80),cr=new Uint32Array(80);class vc extends Oh{constructor(e=64){super(128,e,16,!1),this.Ah=tt[0]|0,this.Al=tt[1]|0,this.Bh=tt[2]|0,this.Bl=tt[3]|0,this.Ch=tt[4]|0,this.Cl=tt[5]|0,this.Dh=tt[6]|0,this.Dl=tt[7]|0,this.Eh=tt[8]|0,this.El=tt[9]|0,this.Fh=tt[10]|0,this.Fl=tt[11]|0,this.Gh=tt[12]|0,this.Gl=tt[13]|0,this.Hh=tt[14]|0,this.Hl=tt[15]|0}get(){const{Ah:e,Al:n,Bh:r,Bl:i,Ch:s,Cl:o,Dh:a,Dl:c,Eh:u,El:f,Fh:h,Fl:d,Gh:l,Gl:p,Hh:y,Hl:v}=this;return[e,n,r,i,s,o,a,c,u,f,h,d,l,p,y,v]}set(e,n,r,i,s,o,a,c,u,f,h,d,l,p,y,v){this.Ah=e|0,this.Al=n|0,this.Bh=r|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=f|0,this.Fh=h|0,this.Fl=d|0,this.Gh=l|0,this.Gl=p|0,this.Hh=y|0,this.Hl=v|0}process(e,n){for(let A=0;A<16;A++,n+=4)ar[A]=e.getUint32(n),cr[A]=e.getUint32(n+=4);for(let A=16;A<80;A++){const I=ar[A-15]|0,S=cr[A-15]|0,z=nr(I,S,1)^nr(I,S,8)^lh(I,S,7),M=rr(I,S,1)^rr(I,S,8)^hh(I,S,7),F=ar[A-2]|0,T=cr[A-2]|0,K=nr(F,T,19)^cs(F,T,61)^lh(F,T,6),H=rr(F,T,19)^us(F,T,61)^hh(F,T,6),E=$b(M,H,cr[A-7],cr[A-16]),w=em(E,z,K,ar[A-7],ar[A-16]);ar[A]=w|0,cr[A]=E|0}let{Ah:r,Al:i,Bh:s,Bl:o,Ch:a,Cl:c,Dh:u,Dl:f,Eh:h,El:d,Fh:l,Fl:p,Gh:y,Gl:v,Hh:D,Hl:C}=this;for(let A=0;A<80;A++){const I=nr(h,d,14)^nr(h,d,18)^cs(h,d,41),S=rr(h,d,14)^rr(h,d,18)^us(h,d,41),z=h&l^~h&y,M=d&p^~d&v,F=tm(C,S,M,Sm[A],cr[A]),T=nm(F,D,I,z,xm[A],ar[A]),K=F|0,H=nr(r,i,28)^cs(r,i,34)^cs(r,i,39),E=rr(r,i,28)^us(r,i,34)^us(r,i,39),w=r&s^r&a^s&a,m=i&o^i&c^o&c;D=y|0,C=v|0,y=l|0,v=p|0,l=h|0,p=d|0,{h,l:d}=Zt(u|0,f|0,T|0,K|0),u=a|0,f=c|0,a=s|0,c=o|0,s=r|0,o=i|0;const g=gc(K,E,m);r=wc(g,T,H,w),i=g|0}({h:r,l:i}=Zt(this.Ah|0,this.Al|0,r|0,i|0)),{h:s,l:o}=Zt(this.Bh|0,this.Bl|0,s|0,o|0),{h:a,l:c}=Zt(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=Zt(this.Dh|0,this.Dl|0,u|0,f|0),{h,l:d}=Zt(this.Eh|0,this.El|0,h|0,d|0),{h:l,l:p}=Zt(this.Fh|0,this.Fl|0,l|0,p|0),{h:y,l:v}=Zt(this.Gh|0,this.Gl|0,y|0,v|0),{h:D,l:C}=Zt(this.Hh|0,this.Hl|0,D|0,C|0),this.set(r,i,s,o,a,c,u,f,h,d,l,p,y,v,D,C)}roundClean(){Lt(ar,cr)}destroy(){Lt(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class Im extends vc{constructor(){super(48),this.Ah=et[0]|0,this.Al=et[1]|0,this.Bh=et[2]|0,this.Bl=et[3]|0,this.Ch=et[4]|0,this.Cl=et[5]|0,this.Dh=et[6]|0,this.Dl=et[7]|0,this.Eh=et[8]|0,this.El=et[9]|0,this.Fh=et[10]|0,this.Fl=et[11]|0,this.Gh=et[12]|0,this.Gl=et[13]|0,this.Hh=et[14]|0,this.Hl=et[15]|0}}const nt=Uint32Array.from([573645204,4230739756,2673172387,3360449730,596883563,1867755857,2520282905,1497426621,2519219938,2827943907,3193839141,1401305490,721525244,746961066,246885852,2177182882]);class Am extends vc{constructor(){super(32),this.Ah=nt[0]|0,this.Al=nt[1]|0,this.Bh=nt[2]|0,this.Bl=nt[3]|0,this.Ch=nt[4]|0,this.Cl=nt[5]|0,this.Dh=nt[6]|0,this.Dl=nt[7]|0,this.Eh=nt[8]|0,this.El=nt[9]|0,this.Fh=nt[10]|0,this.Fl=nt[11]|0,this.Gh=nt[12]|0,this.Gl=nt[13]|0,this.Hh=nt[14]|0,this.Hl=nt[15]|0}}const ur=ls(()=>new Em),Dh=ls(()=>new vc),Rh=ls(()=>new Im),Om=ls(()=>new Am),So=ur;/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Ec=BigInt(0),Io=BigInt(1);function ds(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function fr(t){if(!ds(t))throw new Error("Uint8Array expected")}function ps(t,e){if(typeof e!="boolean")throw new Error(t+" boolean expected, got "+e)}function Ao(t){const e=t.toString(16);return e.length&1?"0"+e:e}function Th(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);return t===""?Ec:BigInt("0x"+t)}const Nh=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",Bm=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function jr(t){if(fr(t),Nh)return t.toHex();let e="";for(let n=0;n<t.length;n++)e+=Bm[t[n]];return e}const Dn={_0:48,_9:57,A:65,F:70,a:97,f:102};function Uh(t){if(t>=Dn._0&&t<=Dn._9)return t-Dn._0;if(t>=Dn.A&&t<=Dn.F)return t-(Dn.A-10);if(t>=Dn.a&&t<=Dn.f)return t-(Dn.a-10)}function Oo(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);if(Nh)return Uint8Array.fromHex(t);const e=t.length,n=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);const r=new Uint8Array(n);for(let i=0,s=0;i<n;i++,s+=2){const o=Uh(t.charCodeAt(s)),a=Uh(t.charCodeAt(s+1));if(o===void 0||a===void 0){const c=t[s]+t[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}r[i]=o*16+a}return r}function ut(t){return Th(jr(t))}function Ch(t){return fr(t),Th(jr(Uint8Array.from(t).reverse()))}function Ce(t,e){return Oo(t.toString(16).padStart(e*2,"0"))}function Ph(t,e){return Ce(t,e).reverse()}function rt(t,e,n){let r;if(typeof e=="string")try{r=Oo(e)}catch(s){throw new Error(t+" must be hex string or Uint8Array, cause: "+s)}else if(ds(e))r=Uint8Array.from(e);else throw new Error(t+" must be hex string or Uint8Array");const i=r.length;if(typeof n=="number"&&i!==n)throw new Error(t+" of length "+n+" expected, got "+i);return r}function Be(...t){let e=0;for(let r=0;r<t.length;r++){const i=t[r];fr(i),e+=i.length}const n=new Uint8Array(e);for(let r=0,i=0;r<t.length;r++){const s=t[r];n.set(s,i),i+=s.length}return n}function xc(t){if(typeof t!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(t))}const Sc=t=>typeof t=="bigint"&&Ec<=t;function Ic(t,e,n){return Sc(t)&&Sc(e)&&Sc(n)&&e<=t&&t<n}function Ai(t,e,n,r){if(!Ic(e,n,r))throw new Error("expected valid "+t+": "+n+" <= n < "+r+", got "+e)}function gs(t){let e;for(e=0;t>Ec;t>>=Io,e+=1);return e}function Dm(t,e){return t>>BigInt(e)&Io}const Wr=t=>(Io<<BigInt(t))-Io,Ac=t=>new Uint8Array(t),qh=t=>Uint8Array.from(t);function Rm(t,e,n){if(typeof t!="number"||t<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof n!="function")throw new Error("hmacFn must be a function");let r=Ac(t),i=Ac(t),s=0;const o=()=>{r.fill(1),i.fill(0),s=0},a=(...h)=>n(i,r,...h),c=(h=Ac(0))=>{i=a(qh([0]),h),r=a(),h.length!==0&&(i=a(qh([1]),h),r=a())},u=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let h=0;const d=[];for(;h<e;){r=a();const l=r.slice();d.push(l),h+=r.length}return Be(...d)};return(h,d)=>{o(),c(h);let l;for(;!(l=d(u()));)c();return o(),l}}const Tm={bigint:t=>typeof t=="bigint",function:t=>typeof t=="function",boolean:t=>typeof t=="boolean",string:t=>typeof t=="string",stringOrUint8Array:t=>typeof t=="string"||ds(t),isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>typeof t=="function"&&Number.isSafeInteger(t.outputLen)};function ws(t,e,n={}){const r=(i,s,o)=>{const a=Tm[s];if(typeof a!="function")throw new Error("invalid validator function");const c=t[i];if(!(o&&c===void 0)&&!a(c,t))throw new Error("param "+String(i)+" is invalid. Expected "+s+", got "+c)};for(const[i,s]of Object.entries(e))r(i,s,!1);for(const[i,s]of Object.entries(n))r(i,s,!0);return t}const Fh=()=>{throw new Error("not implemented")};function Oc(t){const e=new WeakMap;return(n,...r)=>{const i=e.get(n);if(i!==void 0)return i;const s=t(n,...r);return e.set(n,s),s}}function Nm(t,e){if(jh(t)>e)throw new $m({givenSize:jh(t),maxSize:e})}const Rn={zero:48,nine:57,A:65,F:70,a:97,f:102};function kh(t){if(t>=Rn.zero&&t<=Rn.nine)return t-Rn.zero;if(t>=Rn.A&&t<=Rn.F)return t-(Rn.A-10);if(t>=Rn.a&&t<=Rn.f)return t-(Rn.a-10)}function Um(t,e={}){const{dir:n,size:r=32}=e;if(r===0)return t;if(t.length>r)throw new e2({size:t.length,targetSize:r,type:"Bytes"});const i=new Uint8Array(r);for(let s=0;s<r;s++){const o=n==="right";i[o?s:r-s-1]=t[o?s:t.length-s-1]}return i}function Bc(t,e){if(Nn(t)>e)throw new Wm({givenSize:Nn(t),maxSize:e})}function Cm(t,e){if(typeof e=="number"&&e>0&&e>Nn(t)-1)throw new zh({offset:e,position:"start",size:Nn(t)})}function Pm(t,e,n){if(typeof e=="number"&&typeof n=="number"&&Nn(t)!==n-e)throw new zh({offset:n,position:"end",size:Nn(t)})}function Lh(t,e={}){const{dir:n,size:r=32}=e;if(r===0)return t;const i=t.replace("0x","");if(i.length>r*2)throw new Hm({size:Math.ceil(i.length/2),targetSize:r,type:"Hex"});return`0x${i[n==="right"?"padEnd":"padStart"](r*2,"0")}`}const qm="#__bigint";function Dc(t,e,n){return JSON.stringify(t,(r,i)=>typeof e=="function"?e(r,i):typeof i=="bigint"?i.toString()+qm:i,n)}const Fm=new TextEncoder,km=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function Lm(t,e={}){const{strict:n=!1}=e;if(!t)throw new Mh(t);if(typeof t!="string")throw new Mh(t);if(n&&!/^0x[0-9a-fA-F]*$/.test(t))throw new Vh(t);if(!t.startsWith("0x"))throw new Vh(t)}function Rc(...t){return`0x${t.reduce((e,n)=>e+n.replace("0x",""),"")}`}function Tc(t){return t instanceof Uint8Array?ys(t):Array.isArray(t)?ys(new Uint8Array(t)):t}function Mm(t,e={}){const n=`0x${Number(t)}`;return typeof e.size=="number"?(Bc(n,e.size),Do(n,e.size)):n}function ys(t,e={}){let n="";for(let i=0;i<t.length;i++)n+=km[t[i]];const r=`0x${n}`;return typeof e.size=="number"?(Bc(r,e.size),Nc(r,e.size)):r}function Bo(t,e={}){const{signed:n,size:r}=e,i=BigInt(t);let s;r?n?s=(1n<<BigInt(r)*8n-1n)-1n:s=2n**(BigInt(r)*8n)-1n:typeof t=="number"&&(s=BigInt(Number.MAX_SAFE_INTEGER));const o=typeof s=="bigint"&&n?-s-1n:0;if(s&&i>s||i<o){const u=typeof t=="bigint"?"n":"";throw new jm({max:s?`${s}${u}`:void 0,min:`${o}${u}`,signed:n,size:r,value:`${t}${u}`})}const c=`0x${(n&&i<0?(1n<<BigInt(r*8))+BigInt(i):i).toString(16)}`;return r?Do(c,r):c}function Vm(t,e={}){return ys(Fm.encode(t),e)}function Do(t,e){return Lh(t,{dir:"left",size:e})}function Nc(t,e){return Lh(t,{dir:"right",size:e})}function Tn(t,e,n,r={}){const{strict:i}=r;Cm(t,e);const s=`0x${t.replace("0x","").slice((e??0)*2,(n??t.length)*2)}`;return i&&Pm(s,e,n),s}function Nn(t){return Math.ceil((t.length-2)/2)}function zm(t,e={}){const{strict:n=!1}=e;try{return Lm(t,{strict:n}),!0}catch{return!1}}class jm extends xe{constructor({max:e,min:n,signed:r,size:i,value:s}){super(`Number \`${s}\` is not in safe${i?` ${i*8}-bit`:""}${r?" signed":" unsigned"} integer range ${e?`(\`${n}\` to \`${e}\`)`:`(above \`${n}\`)`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"})}}class Mh extends xe{constructor(e){super(`Value \`${typeof e=="object"?Dc(e):e}\` of type \`${typeof e}\` is an invalid hex type.`,{metaMessages:['Hex types must be represented as `"0x${string}"`.']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexTypeError"})}}class Vh extends xe{constructor(e){super(`Value \`${e}\` is an invalid hex value.`,{metaMessages:['Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexValueError"})}}class Wm extends xe{constructor({givenSize:e,maxSize:n}){super(`Size cannot exceed \`${n}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeOverflowError"})}}class zh extends xe{constructor({offset:e,position:n,size:r}){super(`Slice ${n==="start"?"starting":"ending"} at offset \`${e}\` is out-of-bounds (size: \`${r}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SliceOffsetOutOfBoundsError"})}}class Hm extends xe{constructor({size:e,targetSize:n,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"})}}const Ym=new TextEncoder;function Gm(t){if(!(t instanceof Uint8Array)){if(!t)throw new Ro(t);if(typeof t!="object")throw new Ro(t);if(!("BYTES_PER_ELEMENT"in t))throw new Ro(t);if(t.BYTES_PER_ELEMENT!==1||t.constructor.name!=="Uint8Array")throw new Ro(t)}}function Km(t){return t instanceof Uint8Array?t:typeof t=="string"?Jm(t):Zm(t)}function Zm(t){return t instanceof Uint8Array?t:new Uint8Array(t)}function Jm(t,e={}){const{size:n}=e;let r=t;n&&(Bc(t,n),r=Nc(t,n));let i=r.slice(2);i.length%2&&(i=`0${i}`);const s=i.length/2,o=new Uint8Array(s);for(let a=0,c=0;a<s;a++){const u=kh(i.charCodeAt(c++)),f=kh(i.charCodeAt(c++));if(u===void 0||f===void 0)throw new xe(`Invalid byte sequence ("${i[c-2]}${i[c-1]}" in "${i}").`);o[a]=u*16+f}return o}function Xm(t,e={}){const{size:n}=e,r=Ym.encode(t);return typeof n=="number"?(Nm(r,n),Qm(r,n)):r}function Qm(t,e){return Um(t,{dir:"right",size:e})}function jh(t){return t.length}function _m(t){try{return Gm(t),!0}catch{return!1}}class Ro extends xe{constructor(e){super(`Value \`${typeof e=="object"?Dc(e):e}\` of type \`${typeof e}\` is an invalid Bytes value.`,{metaMessages:["Bytes values must be of type `Bytes`."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.InvalidBytesTypeError"})}}class $m extends xe{constructor({givenSize:e,maxSize:n}){super(`Size cannot exceed \`${n}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeOverflowError"})}}class e2 extends xe{constructor({size:e,targetSize:n,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeExceedsPaddingSizeError"})}}function Wh(t,e={}){const{as:n=typeof t=="string"?"Hex":"Bytes"}=e,r=Ih(Km(t));return n==="Bytes"?r:ys(r)}class t2 extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){const n=super.get(e);return super.has(e)&&n!==void 0&&(this.delete(e),super.set(e,n)),n}set(e,n){if(super.set(e,n),this.maxSize&&this.size>this.maxSize){const r=this.keys().next().value;r&&this.delete(r)}return this}}const Uc={checksum:new t2(8192)}.checksum;function Hh(t,e={}){const{compressed:n}=e,{prefix:r,x:i,y:s}=t;if(n===!1||typeof i=="bigint"&&typeof s=="bigint"){if(r!==4)throw new Gh({prefix:r,cause:new a2});return}if(n===!0||typeof i=="bigint"&&typeof s>"u"){if(r!==3&&r!==2)throw new Gh({prefix:r,cause:new o2});return}throw new s2({publicKey:t})}function n2(t){const e=(()=>{if(zm(t))return Yh(t);if(_m(t))return r2(t);const{prefix:n,x:r,y:i}=t;return typeof r=="bigint"&&typeof i=="bigint"?{prefix:n??4,x:r,y:i}:{prefix:n,x:r}})();return Hh(e),e}function r2(t){return Yh(ys(t))}function Yh(t){if(t.length!==132&&t.length!==130&&t.length!==68)throw new c2({publicKey:t});if(t.length===130){const r=BigInt(Tn(t,0,32)),i=BigInt(Tn(t,32,64));return{prefix:4,x:r,y:i}}if(t.length===132){const r=Number(Tn(t,0,1)),i=BigInt(Tn(t,1,33)),s=BigInt(Tn(t,33,65));return{prefix:r,x:i,y:s}}const e=Number(Tn(t,0,1)),n=BigInt(Tn(t,1,33));return{prefix:e,x:n}}function i2(t,e={}){Hh(t);const{prefix:n,x:r,y:i}=t,{includePrefix:s=!0}=e;return Rc(s?Bo(n,{size:1}):"0x",Bo(r,{size:32}),typeof i=="bigint"?Bo(i,{size:32}):"0x")}class s2 extends xe{constructor({publicKey:e}){super(`Value \`${Dc(e)}\` is not a valid public key.`,{metaMessages:["Public key must contain:","- an `x` and `prefix` value (compressed)","- an `x`, `y`, and `prefix` value (uncompressed)"]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidError"})}}class Gh extends xe{constructor({prefix:e,cause:n}){super(`Prefix "${e}" is invalid.`,{cause:n}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidPrefixError"})}}class o2 extends xe{constructor(){super("Prefix must be 2 or 3 for compressed public keys."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidCompressedPrefixError"})}}class a2 extends xe{constructor(){super("Prefix must be 4 for uncompressed public keys."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidUncompressedPrefixError"})}}class c2 extends xe{constructor({publicKey:e}){super(`Value \`${e}\` is an invalid public key size.`,{metaMessages:["Expected: 33 bytes (compressed + prefix), 64 bytes (uncompressed) or 65 bytes (uncompressed + prefix).",`Received ${Nn(Tc(e))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidSerializedSizeError"})}}const u2=/^0x[a-fA-F0-9]{40}$/;function Cc(t,e={}){const{strict:n=!0}=e;if(!u2.test(t))throw new Zh({address:t,cause:new h2});if(n){if(t.toLowerCase()===t)return;if(Kh(t)!==t)throw new Zh({address:t,cause:new d2})}}function Kh(t){if(Uc.has(t))return Uc.get(t);Cc(t,{strict:!1});const e=t.substring(2).toLowerCase(),n=Wh(Xm(e),{as:"Bytes"}),r=e.split("");for(let s=0;s<40;s+=2)n[s>>1]>>4>=8&&r[s]&&(r[s]=r[s].toUpperCase()),(n[s>>1]&15)>=8&&r[s+1]&&(r[s+1]=r[s+1].toUpperCase());const i=`0x${r.join("")}`;return Uc.set(t,i),i}function f2(t,e={}){const{checksum:n=!1}=e;return Cc(t),n?Kh(t):t}function l2(t,e={}){const n=Wh(`0x${i2(t).slice(4)}`).substring(26);return f2(`0x${n}`,e)}class Zh extends xe{constructor({address:e,cause:n}){super(`Address "${e}" is invalid.`,{cause:n}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}}class h2 extends xe{constructor(){super("Address is not a 20 byte (40 hexadecimal character) value."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidInputError"})}}class d2 extends xe{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}}const p2=/^(.*)\[([0-9]*)\]$/,g2=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,w2=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;function Pc(t,e){if(t.length!==e.length)throw new b2({expectedLength:t.length,givenLength:e.length});const n=[];for(let r=0;r<t.length;r++){const i=t[r],s=e[r];n.push(Pc.encode(i,s))}return Rc(...n)}(function(t){function e(n,r,i=!1){if(n==="address"){const c=r;return Cc(c),Do(c.toLowerCase(),i?32:0)}if(n==="string")return Vm(r);if(n==="bytes")return r;if(n==="bool")return Do(Mm(r),i?32:1);const s=n.match(w2);if(s){const[c,u,f="256"]=s,h=Number.parseInt(f,10)/8;return Bo(r,{size:i?32:h,signed:u==="int"})}const o=n.match(g2);if(o){const[c,u]=o;if(Number.parseInt(u,10)!==(r.length-2)/2)throw new y2({expectedSize:Number.parseInt(u,10),value:r});return Nc(r,i?32:0)}const a=n.match(p2);if(a&&Array.isArray(r)){const[c,u]=a,f=[];for(let h=0;h<r.length;h++)f.push(e(u,r[h],!0));return f.length===0?"0x":Rc(...f)}throw new m2(n)}t.encode=e})(Pc||(Pc={}));class y2 extends xe{constructor({expectedSize:e,value:n}){super(`Size of bytes "${n}" (bytes${Nn(n)}) does not match expected size (bytes${e}).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.BytesSizeMismatchError"})}}class b2 extends xe{constructor({expectedLength:e,givenLength:n}){super(["ABI encoding parameters/values length mismatch.",`Expected length (parameters): ${e}`,`Given length (values): ${n}`].join(`
|
|
16
|
-
`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.LengthMismatchError"})}}class m2 extends xe{constructor(e){super(`Type \`${e}\` is not a valid ABI Type.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidTypeError"})}}class Jh extends xo{constructor(e,n){super(),this.finished=!1,this.destroyed=!1,vo(e);const r=Xt(n);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const i=this.blockLen,s=new Uint8Array(i);s.set(r.length>i?e.create().update(r).digest():r);for(let o=0;o<s.length;o++)s[o]^=54;this.iHash.update(s),this.oHash=e.create();for(let o=0;o<s.length;o++)s[o]^=106;this.oHash.update(s),Lt(s)}update(e){return ir(this),this.iHash.update(e),this}digestInto(e){ir(this),Jt(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:n,iHash:r,finished:i,destroyed:s,blockLen:o,outputLen:a}=this;return e=e,e.finished=i,e.destroyed=s,e.blockLen=o,e.outputLen=a,e.oHash=n._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const bs=(t,e,n)=>new Jh(t,e).update(n).digest();bs.create=(t,e)=>new Jh(t,e);const mt=BigInt(0),ft=BigInt(1),Hr=BigInt(2),v2=BigInt(3),Xh=BigInt(4),Qh=BigInt(5),_h=BigInt(8);function lt(t,e){const n=t%e;return n>=mt?n:e+n}function Mt(t,e,n){let r=t;for(;e-- >mt;)r*=r,r%=n;return r}function qc(t,e){if(t===mt)throw new Error("invert: expected non-zero number");if(e<=mt)throw new Error("invert: expected positive modulus, got "+e);let n=lt(t,e),r=e,i=mt,s=ft;for(;n!==mt;){const a=r/n,c=r%n,u=i-s*a;r=n,n=c,i=s,s=u}if(r!==ft)throw new Error("invert: does not exist");return lt(i,e)}function $h(t,e){const n=(t.ORDER+ft)/Xh,r=t.pow(e,n);if(!t.eql(t.sqr(r),e))throw new Error("Cannot find square root");return r}function E2(t,e){const n=(t.ORDER-Qh)/_h,r=t.mul(e,Hr),i=t.pow(r,n),s=t.mul(e,i),o=t.mul(t.mul(s,Hr),i),a=t.mul(s,t.sub(o,t.ONE));if(!t.eql(t.sqr(a),e))throw new Error("Cannot find square root");return a}function x2(t){if(t<BigInt(3))throw new Error("sqrt is not defined for small field");let e=t-ft,n=0;for(;e%Hr===mt;)e/=Hr,n++;let r=Hr;const i=lr(t);for(;No(i,r)===1;)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(n===1)return $h;let s=i.pow(r,e);const o=(e+ft)/Hr;return function(c,u){if(c.is0(u))return u;if(No(c,u)!==1)throw new Error("Cannot find square root");let f=n,h=c.mul(c.ONE,s),d=c.pow(u,e),l=c.pow(u,o);for(;!c.eql(d,c.ONE);){if(c.is0(d))return c.ZERO;let p=1,y=c.sqr(d);for(;!c.eql(y,c.ONE);)if(p++,y=c.sqr(y),p===f)throw new Error("Cannot find square root");const v=ft<<BigInt(f-p-1),D=c.pow(h,v);f=p,h=c.sqr(D),d=c.mul(d,h),l=c.mul(l,D)}return l}}function S2(t){return t%Xh===v2?$h:t%_h===Qh?E2:x2(t)}const I2=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ed(t){const e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},n=I2.reduce((r,i)=>(r[i]="function",r),e);return ws(t,n)}function To(t,e,n){if(n<mt)throw new Error("invalid exponent, negatives unsupported");if(n===mt)return t.ONE;if(n===ft)return e;let r=t.ONE,i=e;for(;n>mt;)n&ft&&(r=t.mul(r,i)),i=t.sqr(i),n>>=ft;return r}function Yr(t,e,n=!1){const r=new Array(e.length).fill(n?t.ZERO:void 0),i=e.reduce((o,a,c)=>t.is0(a)?o:(r[c]=o,t.mul(o,a)),t.ONE),s=t.inv(i);return e.reduceRight((o,a,c)=>t.is0(a)?o:(r[c]=t.mul(o,r[c]),t.mul(o,a)),s),r}function No(t,e){const n=(t.ORDER-ft)/Hr,r=t.pow(e,n),i=t.eql(r,t.ONE),s=t.eql(r,t.ZERO),o=t.eql(r,t.neg(t.ONE));if(!i&&!s&&!o)throw new Error("invalid Legendre symbol result");return i?1:s?0:-1}function td(t,e){e!==void 0&&fn(e);const n=e!==void 0?e:t.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function lr(t,e,n=!1,r={}){if(t<=mt)throw new Error("invalid field: expected ORDER > 0, got "+t);const{nBitLength:i,nByteLength:s}=td(t,e);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let o;const a=Object.freeze({ORDER:t,isLE:n,BITS:i,BYTES:s,MASK:Wr(i),ZERO:mt,ONE:ft,create:c=>lt(c,t),isValid:c=>{if(typeof c!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof c);return mt<=c&&c<t},is0:c=>c===mt,isOdd:c=>(c&ft)===ft,neg:c=>lt(-c,t),eql:(c,u)=>c===u,sqr:c=>lt(c*c,t),add:(c,u)=>lt(c+u,t),sub:(c,u)=>lt(c-u,t),mul:(c,u)=>lt(c*u,t),pow:(c,u)=>To(a,c,u),div:(c,u)=>lt(c*qc(u,t),t),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>qc(c,t),sqrt:r.sqrt||(c=>(o||(o=S2(t)),o(a,c))),toBytes:c=>n?Ph(c,s):Ce(c,s),fromBytes:c=>{if(c.length!==s)throw new Error("Field.fromBytes: expected "+s+" bytes, got "+c.length);return n?Ch(c):ut(c)},invertBatch:c=>Yr(a,c),cmov:(c,u,f)=>f?u:c});return Object.freeze(a)}function nd(t){if(typeof t!="bigint")throw new Error("field order must be bigint");const e=t.toString(2).length;return Math.ceil(e/8)}function Fc(t){const e=nd(t);return e+Math.ceil(e/2)}function rd(t,e,n=!1){const r=t.length,i=nd(e),s=Fc(e);if(r<16||r<s||r>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+r);const o=n?Ch(t):ut(t),a=lt(o,e-ft)+ft;return n?Ph(a,i):Ce(a,i)}const id=BigInt(0),kc=BigInt(1);function Lc(t,e){const n=e.negate();return t?n:e}function sd(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+t)}function Mc(t,e){sd(t,e);const n=Math.ceil(e/t)+1,r=2**(t-1),i=2**t,s=Wr(t),o=BigInt(t);return{windows:n,windowSize:r,mask:s,maxNumber:i,shiftBy:o}}function od(t,e,n){const{windowSize:r,mask:i,maxNumber:s,shiftBy:o}=n;let a=Number(t&i),c=t>>o;a>r&&(a-=s,c+=kc);const u=e*r,f=u+Math.abs(a)-1,h=a===0,d=a<0,l=e%2!==0;return{nextN:c,offset:f,isZero:h,isNeg:d,isNegF:l,offsetF:u}}function A2(t,e){if(!Array.isArray(t))throw new Error("array expected");t.forEach((n,r)=>{if(!(n instanceof e))throw new Error("invalid point at index "+r)})}function O2(t,e){if(!Array.isArray(t))throw new Error("array of scalars expected");t.forEach((n,r)=>{if(!e.isValid(n))throw new Error("invalid scalar at index "+r)})}const Vc=new WeakMap,ad=new WeakMap;function zc(t){return ad.get(t)||1}function B2(t,e){return{constTimeNegate:Lc,hasPrecomputes(n){return zc(n)!==1},unsafeLadder(n,r,i=t.ZERO){let s=n;for(;r>id;)r&kc&&(i=i.add(s)),s=s.double(),r>>=kc;return i},precomputeWindow(n,r){const{windows:i,windowSize:s}=Mc(r,e),o=[];let a=n,c=a;for(let u=0;u<i;u++){c=a,o.push(c);for(let f=1;f<s;f++)c=c.add(a),o.push(c);a=c.double()}return o},wNAF(n,r,i){let s=t.ZERO,o=t.BASE;const a=Mc(n,e);for(let c=0;c<a.windows;c++){const{nextN:u,offset:f,isZero:h,isNeg:d,isNegF:l,offsetF:p}=od(i,c,a);i=u,h?o=o.add(Lc(l,r[p])):s=s.add(Lc(d,r[f]))}return{p:s,f:o}},wNAFUnsafe(n,r,i,s=t.ZERO){const o=Mc(n,e);for(let a=0;a<o.windows&&i!==id;a++){const{nextN:c,offset:u,isZero:f,isNeg:h}=od(i,a,o);if(i=c,!f){const d=r[u];s=s.add(h?d.negate():d)}}return s},getPrecomputes(n,r,i){let s=Vc.get(r);return s||(s=this.precomputeWindow(r,n),n!==1&&Vc.set(r,i(s))),s},wNAFCached(n,r,i){const s=zc(n);return this.wNAF(s,this.getPrecomputes(s,n,i),r)},wNAFCachedUnsafe(n,r,i,s){const o=zc(n);return o===1?this.unsafeLadder(n,r,s):this.wNAFUnsafe(o,this.getPrecomputes(o,n,i),r,s)},setWindowSize(n,r){sd(r,e),ad.set(n,r),Vc.delete(n)}}}function D2(t,e,n,r){A2(n,t),O2(r,e);const i=n.length,s=r.length;if(i!==s)throw new Error("arrays of points and scalars must have equal length");const o=t.ZERO,a=gs(BigInt(i));let c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);const u=Wr(c),f=new Array(Number(u)+1).fill(o),h=Math.floor((e.BITS-1)/c)*c;let d=o;for(let l=h;l>=0;l-=c){f.fill(o);for(let y=0;y<s;y++){const v=r[y],D=Number(v>>BigInt(l)&u);f[D]=f[D].add(n[y])}let p=o;for(let y=f.length-1,v=o;y>0;y--)v=v.add(f[y]),p=p.add(v);if(d=d.add(p),l!==0)for(let y=0;y<c;y++)d=d.double()}return d}function cd(t){return ed(t.Fp),ws(t,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...td(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}function ud(t){t.lowS!==void 0&&ps("lowS",t.lowS),t.prehash!==void 0&&ps("prehash",t.prehash)}function R2(t){const e=cd(t);ws(e,{a:"field",b:"field"},{allowInfinityPoint:"boolean",allowedPrivateKeyLengths:"array",clearCofactor:"function",fromBytes:"function",isTorsionFree:"function",toBytes:"function",wrapPrivateKey:"boolean"});const{endo:n,Fp:r,a:i}=e;if(n){if(!r.eql(i,r.ZERO))throw new Error("invalid endo: CURVE.a must be 0");if(typeof n!="object"||typeof n.beta!="bigint"||typeof n.splitScalar!="function")throw new Error('invalid endo: expected "beta": bigint and "splitScalar": function')}return Object.freeze({...e})}class T2 extends Error{constructor(e=""){super(e)}}const Un={Err:T2,_tlv:{encode:(t,e)=>{const{Err:n}=Un;if(t<0||t>256)throw new n("tlv.encode: wrong tag");if(e.length&1)throw new n("tlv.encode: unpadded data");const r=e.length/2,i=Ao(r);if(i.length/2&128)throw new n("tlv.encode: long form length too big");const s=r>127?Ao(i.length/2|128):"";return Ao(t)+s+i+e},decode(t,e){const{Err:n}=Un;let r=0;if(t<0||t>256)throw new n("tlv.encode: wrong tag");if(e.length<2||e[r++]!==t)throw new n("tlv.decode: wrong tlv");const i=e[r++],s=!!(i&128);let o=0;if(!s)o=i;else{const c=i&127;if(!c)throw new n("tlv.decode(long): indefinite length not supported");if(c>4)throw new n("tlv.decode(long): byte length is too big");const u=e.subarray(r,r+c);if(u.length!==c)throw new n("tlv.decode: length bytes not complete");if(u[0]===0)throw new n("tlv.decode(long): zero leftmost byte");for(const f of u)o=o<<8|f;if(r+=c,o<128)throw new n("tlv.decode(long): not minimal encoding")}const a=e.subarray(r,r+o);if(a.length!==o)throw new n("tlv.decode: wrong value length");return{v:a,l:e.subarray(r+o)}}},_int:{encode(t){const{Err:e}=Un;if(t<Qt)throw new e("integer: negative integers are not allowed");let n=Ao(t);if(Number.parseInt(n[0],16)&8&&(n="00"+n),n.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return n},decode(t){const{Err:e}=Un;if(t[0]&128)throw new e("invalid signature integer: negative");if(t[0]===0&&!(t[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return ut(t)}},toSig(t){const{Err:e,_int:n,_tlv:r}=Un,i=rt("signature",t),{v:s,l:o}=r.decode(48,i);if(o.length)throw new e("invalid signature: left bytes after parsing");const{v:a,l:c}=r.decode(2,s),{v:u,l:f}=r.decode(2,c);if(f.length)throw new e("invalid signature: left bytes after parsing");return{r:n.decode(a),s:n.decode(u)}},hexFromSig(t){const{_tlv:e,_int:n}=Un,r=e.encode(2,n.encode(t.r)),i=e.encode(2,n.encode(t.s)),s=r+i;return e.encode(48,s)}};function jc(t,e){return jr(Ce(t,e))}const Qt=BigInt(0),me=BigInt(1),hr=BigInt(2),ms=BigInt(3),Wc=BigInt(4);function Hc(t){const e=R2(t),{Fp:n}=e,r=lr(e.n,e.nBitLength),i=e.toBytes||((A,I,S)=>{const z=I.toAffine();return Be(Uint8Array.from([4]),n.toBytes(z.x),n.toBytes(z.y))}),s=e.fromBytes||(A=>{const I=A.subarray(1),S=n.fromBytes(I.subarray(0,n.BYTES)),z=n.fromBytes(I.subarray(n.BYTES,2*n.BYTES));return{x:S,y:z}});function o(A){const{a:I,b:S}=e,z=n.sqr(A),M=n.mul(z,A);return n.add(n.add(M,n.mul(A,I)),S)}function a(A,I){const S=n.sqr(I),z=o(A);return n.eql(S,z)}if(!a(e.Gx,e.Gy))throw new Error("bad curve params: generator point");const c=n.mul(n.pow(e.a,ms),Wc),u=n.mul(n.sqr(e.b),BigInt(27));if(n.is0(n.add(c,u)))throw new Error("bad curve params: a or b");function f(A){return Ic(A,me,e.n)}function h(A){const{allowedPrivateKeyLengths:I,nByteLength:S,wrapPrivateKey:z,n:M}=e;if(I&&typeof A!="bigint"){if(ds(A)&&(A=jr(A)),typeof A!="string"||!I.includes(A.length))throw new Error("invalid private key");A=A.padStart(S*2,"0")}let F;try{F=typeof A=="bigint"?A:ut(rt("private key",A,S))}catch{throw new Error("invalid private key, expected hex or "+S+" bytes, got "+typeof A)}return z&&(F=lt(F,M)),Ai("private key",F,me,M),F}function d(A){if(!(A instanceof y))throw new Error("ProjectivePoint expected")}const l=Oc((A,I)=>{const{px:S,py:z,pz:M}=A;if(n.eql(M,n.ONE))return{x:S,y:z};const F=A.is0();I==null&&(I=F?n.ONE:n.inv(M));const T=n.mul(S,I),K=n.mul(z,I),H=n.mul(M,I);if(F)return{x:n.ZERO,y:n.ZERO};if(!n.eql(H,n.ONE))throw new Error("invZ was invalid");return{x:T,y:K}}),p=Oc(A=>{if(A.is0()){if(e.allowInfinityPoint&&!n.is0(A.py))return;throw new Error("bad point: ZERO")}const{x:I,y:S}=A.toAffine();if(!n.isValid(I)||!n.isValid(S))throw new Error("bad point: x or y not FE");if(!a(I,S))throw new Error("bad point: equation left != right");if(!A.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class y{constructor(I,S,z){if(I==null||!n.isValid(I))throw new Error("x required");if(S==null||!n.isValid(S)||n.is0(S))throw new Error("y required");if(z==null||!n.isValid(z))throw new Error("z required");this.px=I,this.py=S,this.pz=z,Object.freeze(this)}static fromAffine(I){const{x:S,y:z}=I||{};if(!I||!n.isValid(S)||!n.isValid(z))throw new Error("invalid affine point");if(I instanceof y)throw new Error("projective point not allowed");const M=F=>n.eql(F,n.ZERO);return M(S)&&M(z)?y.ZERO:new y(S,z,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(I){const S=Yr(n,I.map(z=>z.pz));return I.map((z,M)=>z.toAffine(S[M])).map(y.fromAffine)}static fromHex(I){const S=y.fromAffine(s(rt("pointHex",I)));return S.assertValidity(),S}static fromPrivateKey(I){return y.BASE.multiply(h(I))}static msm(I,S){return D2(y,r,I,S)}_setWindowSize(I){C.setWindowSize(this,I)}assertValidity(){p(this)}hasEvenY(){const{y:I}=this.toAffine();if(n.isOdd)return!n.isOdd(I);throw new Error("Field doesn't support isOdd")}equals(I){d(I);const{px:S,py:z,pz:M}=this,{px:F,py:T,pz:K}=I,H=n.eql(n.mul(S,K),n.mul(F,M)),E=n.eql(n.mul(z,K),n.mul(T,M));return H&&E}negate(){return new y(this.px,n.neg(this.py),this.pz)}double(){const{a:I,b:S}=e,z=n.mul(S,ms),{px:M,py:F,pz:T}=this;let K=n.ZERO,H=n.ZERO,E=n.ZERO,w=n.mul(M,M),m=n.mul(F,F),g=n.mul(T,T),b=n.mul(M,F);return b=n.add(b,b),E=n.mul(M,T),E=n.add(E,E),K=n.mul(I,E),H=n.mul(z,g),H=n.add(K,H),K=n.sub(m,H),H=n.add(m,H),H=n.mul(K,H),K=n.mul(b,K),E=n.mul(z,E),g=n.mul(I,g),b=n.sub(w,g),b=n.mul(I,b),b=n.add(b,E),E=n.add(w,w),w=n.add(E,w),w=n.add(w,g),w=n.mul(w,b),H=n.add(H,w),g=n.mul(F,T),g=n.add(g,g),w=n.mul(g,b),K=n.sub(K,w),E=n.mul(g,m),E=n.add(E,E),E=n.add(E,E),new y(K,H,E)}add(I){d(I);const{px:S,py:z,pz:M}=this,{px:F,py:T,pz:K}=I;let H=n.ZERO,E=n.ZERO,w=n.ZERO;const m=e.a,g=n.mul(e.b,ms);let b=n.mul(S,F),x=n.mul(z,T),O=n.mul(M,K),B=n.add(S,z),R=n.add(F,T);B=n.mul(B,R),R=n.add(b,x),B=n.sub(B,R),R=n.add(S,M);let U=n.add(F,K);return R=n.mul(R,U),U=n.add(b,O),R=n.sub(R,U),U=n.add(z,M),H=n.add(T,K),U=n.mul(U,H),H=n.add(x,O),U=n.sub(U,H),w=n.mul(m,R),H=n.mul(g,O),w=n.add(H,w),H=n.sub(x,w),w=n.add(x,w),E=n.mul(H,w),x=n.add(b,b),x=n.add(x,b),O=n.mul(m,O),R=n.mul(g,R),x=n.add(x,O),O=n.sub(b,O),O=n.mul(m,O),R=n.add(R,O),b=n.mul(x,R),E=n.add(E,b),b=n.mul(U,R),H=n.mul(B,H),H=n.sub(H,b),b=n.mul(B,x),w=n.mul(U,w),w=n.add(w,b),new y(H,E,w)}subtract(I){return this.add(I.negate())}is0(){return this.equals(y.ZERO)}wNAF(I){return C.wNAFCached(this,I,y.normalizeZ)}multiplyUnsafe(I){const{endo:S,n:z}=e;Ai("scalar",I,Qt,z);const M=y.ZERO;if(I===Qt)return M;if(this.is0()||I===me)return this;if(!S||C.hasPrecomputes(this))return C.wNAFCachedUnsafe(this,I,y.normalizeZ);let{k1neg:F,k1:T,k2neg:K,k2:H}=S.splitScalar(I),E=M,w=M,m=this;for(;T>Qt||H>Qt;)T&me&&(E=E.add(m)),H&me&&(w=w.add(m)),m=m.double(),T>>=me,H>>=me;return F&&(E=E.negate()),K&&(w=w.negate()),w=new y(n.mul(w.px,S.beta),w.py,w.pz),E.add(w)}multiply(I){const{endo:S,n:z}=e;Ai("scalar",I,me,z);let M,F;if(S){const{k1neg:T,k1:K,k2neg:H,k2:E}=S.splitScalar(I);let{p:w,f:m}=this.wNAF(K),{p:g,f:b}=this.wNAF(E);w=C.constTimeNegate(T,w),g=C.constTimeNegate(H,g),g=new y(n.mul(g.px,S.beta),g.py,g.pz),M=w.add(g),F=m.add(b)}else{const{p:T,f:K}=this.wNAF(I);M=T,F=K}return y.normalizeZ([M,F])[0]}multiplyAndAddUnsafe(I,S,z){const M=y.BASE,F=(K,H)=>H===Qt||H===me||!K.equals(M)?K.multiplyUnsafe(H):K.multiply(H),T=F(this,S).add(F(I,z));return T.is0()?void 0:T}toAffine(I){return l(this,I)}isTorsionFree(){const{h:I,isTorsionFree:S}=e;if(I===me)return!0;if(S)return S(y,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:I,clearCofactor:S}=e;return I===me?this:S?S(y,this):this.multiplyUnsafe(e.h)}toRawBytes(I=!0){return ps("isCompressed",I),this.assertValidity(),i(y,this,I)}toHex(I=!0){return ps("isCompressed",I),jr(this.toRawBytes(I))}}y.BASE=new y(e.Gx,e.Gy,n.ONE),y.ZERO=new y(n.ZERO,n.ONE,n.ZERO);const{endo:v,nBitLength:D}=e,C=B2(y,v?Math.ceil(D/2):D);return{CURVE:e,ProjectivePoint:y,normPrivateKeyToScalar:h,weierstrassEquation:o,isWithinCurveOrder:f}}function N2(t){const e=cd(t);return ws(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function U2(t){const e=N2(t),{Fp:n,n:r,nByteLength:i,nBitLength:s}=e,o=n.BYTES+1,a=2*n.BYTES+1;function c(g){return lt(g,r)}function u(g){return qc(g,r)}const{ProjectivePoint:f,normPrivateKeyToScalar:h,weierstrassEquation:d,isWithinCurveOrder:l}=Hc({...e,toBytes(g,b,x){const O=b.toAffine(),B=n.toBytes(O.x),R=Be;return ps("isCompressed",x),x?R(Uint8Array.from([b.hasEvenY()?2:3]),B):R(Uint8Array.from([4]),B,n.toBytes(O.y))},fromBytes(g){const b=g.length,x=g[0],O=g.subarray(1);if(b===o&&(x===2||x===3)){const B=ut(O);if(!Ic(B,me,n.ORDER))throw new Error("Point is not on curve");const R=d(B);let U;try{U=n.sqrt(R)}catch(W){const P=W instanceof Error?": "+W.message:"";throw new Error("Point is not on curve"+P)}const L=(U&me)===me;return(x&1)===1!==L&&(U=n.neg(U)),{x:B,y:U}}else if(b===a&&x===4){const B=n.fromBytes(O.subarray(0,n.BYTES)),R=n.fromBytes(O.subarray(n.BYTES,2*n.BYTES));return{x:B,y:R}}else{const B=o,R=a;throw new Error("invalid Point, expected length of "+B+", or uncompressed "+R+", got "+b)}}});function p(g){const b=r>>me;return g>b}function y(g){return p(g)?c(-g):g}const v=(g,b,x)=>ut(g.slice(b,x));class D{constructor(b,x,O){Ai("r",b,me,r),Ai("s",x,me,r),this.r=b,this.s=x,O!=null&&(this.recovery=O),Object.freeze(this)}static fromCompact(b){const x=i;return b=rt("compactSignature",b,x*2),new D(v(b,0,x),v(b,x,2*x))}static fromDER(b){const{r:x,s:O}=Un.toSig(rt("DER",b));return new D(x,O)}assertValidity(){}addRecoveryBit(b){return new D(this.r,this.s,b)}recoverPublicKey(b){const{r:x,s:O,recovery:B}=this,R=M(rt("msgHash",b));if(B==null||![0,1,2,3].includes(B))throw new Error("recovery id invalid");const U=B===2||B===3?x+e.n:x;if(U>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const L=(B&1)===0?"02":"03",q=f.fromHex(L+jc(U,n.BYTES)),W=u(U),P=c(-R*W),Y=c(O*W),G=f.BASE.multiplyAndAddUnsafe(q,P,Y);if(!G)throw new Error("point at infinify");return G.assertValidity(),G}hasHighS(){return p(this.s)}normalizeS(){return this.hasHighS()?new D(this.r,c(-this.s),this.recovery):this}toDERRawBytes(){return Oo(this.toDERHex())}toDERHex(){return Un.hexFromSig(this)}toCompactRawBytes(){return Oo(this.toCompactHex())}toCompactHex(){const b=i;return jc(this.r,b)+jc(this.s,b)}}const C={isValidPrivateKey(g){try{return h(g),!0}catch{return!1}},normPrivateKeyToScalar:h,randomPrivateKey:()=>{const g=Fc(e.n);return rd(e.randomBytes(g),e.n)},precompute(g=8,b=f.BASE){return b._setWindowSize(g),b.multiply(BigInt(3)),b}};function A(g,b=!0){return f.fromPrivateKey(g).toRawBytes(b)}function I(g){if(typeof g=="bigint")return!1;if(g instanceof f)return!0;const x=rt("key",g).length,O=n.BYTES,B=O+1,R=2*O+1;if(!(e.allowedPrivateKeyLengths||i===B))return x===B||x===R}function S(g,b,x=!0){if(I(g)===!0)throw new Error("first arg must be private key");if(I(b)===!1)throw new Error("second arg must be public key");return f.fromHex(b).multiply(h(g)).toRawBytes(x)}const z=e.bits2int||function(g){if(g.length>8192)throw new Error("input is too large");const b=ut(g),x=g.length*8-s;return x>0?b>>BigInt(x):b},M=e.bits2int_modN||function(g){return c(z(g))},F=Wr(s);function T(g){return Ai("num < 2^"+s,g,Qt,F),Ce(g,i)}function K(g,b,x=H){if(["recovered","canonical"].some(N=>N in x))throw new Error("sign() legacy options not supported");const{hash:O,randomBytes:B}=e;let{lowS:R,prehash:U,extraEntropy:L}=x;R==null&&(R=!0),g=rt("msgHash",g),ud(x),U&&(g=rt("prehashed msgHash",O(g)));const q=M(g),W=h(b),P=[T(W),T(q)];if(L!=null&&L!==!1){const N=L===!0?B(n.BYTES):L;P.push(rt("extraEntropy",N))}const Y=Be(...P),G=q;function V(N){const k=z(N);if(!l(k))return;const j=u(k),Z=f.BASE.multiply(k).toAffine(),$=c(Z.x);if($===Qt)return;const _=c(j*c(G+$*W));if(_===Qt)return;let te=(Z.x===$?0:2)|Number(Z.y&me),ue=_;return R&&p(_)&&(ue=y(_),te^=1),new D($,ue,te)}return{seed:Y,k2sig:V}}const H={lowS:e.lowS,prehash:!1},E={lowS:e.lowS,prehash:!1};function w(g,b,x=H){const{seed:O,k2sig:B}=K(g,b,x),R=e;return Rm(R.hash.outputLen,R.nByteLength,R.hmac)(O,B)}f.BASE._setWindowSize(8);function m(g,b,x,O=E){const B=g;b=rt("msgHash",b),x=rt("publicKey",x);const{lowS:R,prehash:U,format:L}=O;if(ud(O),"strict"in O)throw new Error("options.strict was renamed to lowS");if(L!==void 0&&L!=="compact"&&L!=="der")throw new Error("format must be compact or der");const q=typeof B=="string"||ds(B),W=!q&&!L&&typeof B=="object"&&B!==null&&typeof B.r=="bigint"&&typeof B.s=="bigint";if(!q&&!W)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let P,Y;try{if(W&&(P=new D(B.r,B.s)),q){try{L!=="compact"&&(P=D.fromDER(B))}catch(te){if(!(te instanceof Un.Err))throw te}!P&&L!=="der"&&(P=D.fromCompact(B))}Y=f.fromHex(x)}catch{return!1}if(!P||R&&P.hasHighS())return!1;U&&(b=e.hash(b));const{r:G,s:V}=P,N=M(b),k=u(V),j=c(N*k),Z=c(G*k),$=f.BASE.multiplyAndAddUnsafe(Y,j,Z)?.toAffine();return $?c($.x)===G:!1}return{CURVE:e,getPublicKey:A,getSharedSecret:S,sign:w,verify:m,ProjectivePoint:f,Signature:D,utils:C}}function C2(t,e){const n=t.ORDER;let r=Qt;for(let p=n-me;p%hr===Qt;p/=hr)r+=me;const i=r,s=hr<<i-me-me,o=s*hr,a=(n-me)/o,c=(a-me)/hr,u=o-me,f=s,h=t.pow(e,a),d=t.pow(e,(a+me)/hr);let l=(p,y)=>{let v=h,D=t.pow(y,u),C=t.sqr(D);C=t.mul(C,y);let A=t.mul(p,C);A=t.pow(A,c),A=t.mul(A,D),D=t.mul(A,y),C=t.mul(A,p);let I=t.mul(C,D);A=t.pow(I,f);let S=t.eql(A,t.ONE);D=t.mul(C,d),A=t.mul(I,v),C=t.cmov(D,C,S),I=t.cmov(A,I,S);for(let z=i;z>me;z--){let M=z-hr;M=hr<<M-me;let F=t.pow(I,M);const T=t.eql(F,t.ONE);D=t.mul(C,v),v=t.mul(v,v),F=t.mul(I,v),C=t.cmov(D,C,T),I=t.cmov(F,I,T)}return{isValid:S,value:C}};if(t.ORDER%Wc===ms){const p=(t.ORDER-ms)/Wc,y=t.sqrt(t.neg(e));l=(v,D)=>{let C=t.sqr(D);const A=t.mul(v,D);C=t.mul(C,A);let I=t.pow(C,p);I=t.mul(I,A);const S=t.mul(I,y),z=t.mul(t.sqr(I),D),M=t.eql(z,v);let F=t.cmov(S,I,M);return{isValid:M,value:F}}}return l}function fd(t,e){if(ed(t),!t.isValid(e.A)||!t.isValid(e.B)||!t.isValid(e.Z))throw new Error("mapToCurveSimpleSWU: invalid opts");const n=C2(t,e.Z);if(!t.isOdd)throw new Error("Fp.isOdd is not implemented!");return r=>{let i,s,o,a,c,u,f,h;i=t.sqr(r),i=t.mul(i,e.Z),s=t.sqr(i),s=t.add(s,i),o=t.add(s,t.ONE),o=t.mul(o,e.B),a=t.cmov(e.Z,t.neg(s),!t.eql(s,t.ZERO)),a=t.mul(a,e.A),s=t.sqr(o),u=t.sqr(a),c=t.mul(u,e.A),s=t.add(s,c),s=t.mul(s,o),u=t.mul(u,a),c=t.mul(u,e.B),s=t.add(s,c),f=t.mul(i,o);const{isValid:d,value:l}=n(s,u);h=t.mul(i,r),h=t.mul(h,l),f=t.cmov(f,o,d),h=t.cmov(h,l,d);const p=t.isOdd(r)===t.isOdd(h);h=t.cmov(t.neg(h),h,p);const y=Yr(t,[a],!0)[0];return f=t.mul(f,y),{x:f,y:h}}}function P2(t){return{hash:t,hmac:(e,...n)=>bs(t,e,An(...n)),randomBytes:On}}function Uo(t,e){const n=r=>U2({...t,...P2(r)});return{...n(e),create:n}}const q2=ut;function dr(t,e){if(vs(t),vs(e),t<0||t>=1<<8*e)throw new Error("invalid I2OSP input: "+t);const n=Array.from({length:e}).fill(0);for(let r=e-1;r>=0;r--)n[r]=t&255,t>>>=8;return new Uint8Array(n)}function F2(t,e){const n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t[r]^e[r];return n}function vs(t){if(!Number.isSafeInteger(t))throw new Error("number expected")}function k2(t,e,n,r){fr(t),fr(e),vs(n),e.length>255&&(e=r(Be(xc("H2C-OVERSIZE-DST-"),e)));const{outputLen:i,blockLen:s}=r,o=Math.ceil(n/i);if(n>65535||o>255)throw new Error("expand_message_xmd: invalid lenInBytes");const a=Be(e,dr(e.length,1)),c=dr(0,s),u=dr(n,2),f=new Array(o),h=r(Be(c,t,u,dr(0,1),a));f[0]=r(Be(h,dr(1,1),a));for(let l=1;l<=o;l++){const p=[F2(h,f[l-1]),dr(l+1,1),a];f[l]=r(Be(...p))}return Be(...f).slice(0,n)}function L2(t,e,n,r,i){if(fr(t),fr(e),vs(n),e.length>255){const s=Math.ceil(2*r/8);e=i.create({dkLen:s}).update(xc("H2C-OVERSIZE-DST-")).update(e).digest()}if(n>65535||e.length>255)throw new Error("expand_message_xof: invalid lenInBytes");return i.create({dkLen:n}).update(t).update(dr(n,2)).update(e).update(dr(e.length,1)).digest()}function ld(t,e,n){ws(n,{DST:"stringOrUint8Array",p:"bigint",m:"isSafeInteger",k:"isSafeInteger",hash:"hash"});const{p:r,k:i,m:s,hash:o,expand:a,DST:c}=n;fr(t),vs(e);const u=typeof c=="string"?xc(c):c,f=r.toString(2).length,h=Math.ceil((f+i)/8),d=e*s*h;let l;if(a==="xmd")l=k2(t,u,d,o);else if(a==="xof")l=L2(t,u,d,i,o);else if(a==="_internal_pass")l=t;else throw new Error('expand must be "xmd" or "xof"');const p=new Array(e);for(let y=0;y<e;y++){const v=new Array(s);for(let D=0;D<s;D++){const C=h*(D+y*s),A=l.subarray(C,C+h);v[D]=lt(q2(A),r)}p[y]=v}return p}function hd(t,e){const n=e.map(r=>Array.from(r).reverse());return(r,i)=>{const[s,o,a,c]=n.map(h=>h.reduce((d,l)=>t.add(t.mul(d,r),l))),[u,f]=Yr(t,[o,c],!0);return r=t.mul(s,u),i=t.mul(i,t.mul(a,f)),{x:r,y:i}}}function dd(t,e,n){if(typeof e!="function")throw new Error("mapToCurve() must be defined");function r(s){return t.fromAffine(e(s))}function i(s){const o=s.clearCofactor();return o.equals(t.ZERO)?t.ZERO:(o.assertValidity(),o)}return{defaults:n,hashToCurve(s,o){const a=ld(s,2,{...n,DST:n.DST,...o}),c=r(a[0]),u=r(a[1]);return i(c.add(u))},encodeToCurve(s,o){const a=ld(s,1,{...n,DST:n.encodeDST,...o});return i(r(a[0]))},mapToCurve(s){if(!Array.isArray(s))throw new Error("expected array of bigints");for(const o of s)if(typeof o!="bigint")throw new Error("expected array of bigints");return i(r(s))}}}const pd=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),gd=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),M2=BigInt(0),V2=BigInt(1),Yc=BigInt(2),wd=(t,e)=>(t+e/Yc)/e;function z2(t){const e=pd,n=BigInt(3),r=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),u=t*t*t%e,f=u*u*t%e,h=Mt(f,n,e)*f%e,d=Mt(h,n,e)*f%e,l=Mt(d,Yc,e)*u%e,p=Mt(l,i,e)*l%e,y=Mt(p,s,e)*p%e,v=Mt(y,a,e)*y%e,D=Mt(v,c,e)*v%e,C=Mt(D,a,e)*y%e,A=Mt(C,n,e)*f%e,I=Mt(A,o,e)*p%e,S=Mt(I,r,e)*u%e,z=Mt(S,Yc,e);if(!Gc.eql(Gc.sqr(z),t))throw new Error("Cannot find square root");return z}const Gc=lr(pd,void 0,void 0,{sqrt:z2}),j2=Uo({a:M2,b:BigInt(7),Fp:Gc,n:gd,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:t=>{const e=gd,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-V2*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=n,o=BigInt("0x100000000000000000000000000000000"),a=wd(s*t,e),c=wd(-r*t,e);let u=lt(t-a*n-c*i,e),f=lt(-a*r-c*s,e);const h=u>o,d=f>o;if(h&&(u=e-u),d&&(f=e-f),u>o||f>o)throw new Error("splitScalar: Endomorphism failed, k="+t);return{k1neg:h,k1:u,k2neg:d,k2:f}}}},ur);function W2(t){if(t.length!==130&&t.length!==132)throw new Y2({signature:t});const e=BigInt(Tn(t,0,32)),n=BigInt(Tn(t,32,64)),r=(()=>{const i=+`0x${t.slice(130)}`;if(!Number.isNaN(i))try{return H2(i)}catch{throw new G2({value:i})}})();return typeof r>"u"?{r:e,s:n}:{r:e,s:n,yParity:r}}function H2(t){if(t===0||t===27)return 0;if(t===1||t===28)return 1;if(t>=35)return t%2===0?1:0;throw new K2({value:t})}class Y2 extends xe{constructor({signature:e}){super(`Value \`${e}\` is an invalid signature size.`,{metaMessages:["Expected: 64 bytes or 65 bytes.",`Received ${Nn(Tc(e))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSerializedSizeError"})}}class G2 extends xe{constructor({value:e}){super(`Value \`${e}\` is an invalid y-parity value. Y-parity must be 0 or 1.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidYParityError"})}}class K2 extends xe{constructor({value:e}){super(`Value \`${e}\` is an invalid v value. v must be 27, 28 or >=35.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidVError"})}}Object.freeze({1:0n,2:1n,3:2n,4:3n,5:4n,6:5n,7:6n,8:7n,9:8n,A:9n,B:10n,C:11n,D:12n,E:13n,F:14n,G:15n,H:16n,J:17n,K:18n,L:19n,M:20n,N:21n,P:22n,Q:23n,R:24n,S:25n,T:26n,U:27n,V:28n,W:29n,X:30n,Y:31n,Z:32n,a:33n,b:34n,c:35n,d:36n,e:37n,f:38n,g:39n,h:40n,i:41n,j:42n,k:43n,m:44n,n:45n,o:46n,p:47n,q:48n,r:49n,s:50n,t:51n,u:52n,v:53n,w:54n,x:55n,y:56n,z:57n}),Array.from("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").map((t,e)=>[e,t.charCodeAt(0)]),{...Object.fromEntries(Array.from("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").map((t,e)=>[t.charCodeAt(0),e]))};const Z2=Uint8Array.from([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9]),Pe=Uint32Array.from([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),ne=new Uint32Array(32);function pr(t,e,n,r,i,s){const o=i[s],a=i[s+1];let c=ne[2*t],u=ne[2*t+1],f=ne[2*e],h=ne[2*e+1],d=ne[2*n],l=ne[2*n+1],p=ne[2*r],y=ne[2*r+1],v=gc(c,f,o);u=wc(v,u,h,a),c=v|0,{Dh:y,Dl:p}={Dh:y^u,Dl:p^c},{Dh:y,Dl:p}={Dh:Kb(y,p),Dl:Zb(y)},{h:l,l:d}=Zt(l,d,y,p),{Bh:h,Bl:f}={Bh:h^l,Bl:f^d},{Bh:h,Bl:f}={Bh:nr(h,f,24),Bl:rr(h,f,24)},ne[2*t]=c,ne[2*t+1]=u,ne[2*e]=f,ne[2*e+1]=h,ne[2*n]=d,ne[2*n+1]=l,ne[2*r]=p,ne[2*r+1]=y}function gr(t,e,n,r,i,s){const o=i[s],a=i[s+1];let c=ne[2*t],u=ne[2*t+1],f=ne[2*e],h=ne[2*e+1],d=ne[2*n],l=ne[2*n+1],p=ne[2*r],y=ne[2*r+1],v=gc(c,f,o);u=wc(v,u,h,a),c=v|0,{Dh:y,Dl:p}={Dh:y^u,Dl:p^c},{Dh:y,Dl:p}={Dh:nr(y,p,16),Dl:rr(y,p,16)},{h:l,l:d}=Zt(l,d,y,p),{Bh:h,Bl:f}={Bh:h^l,Bl:f^d},{Bh:h,Bl:f}={Bh:cs(h,f,63),Bl:us(h,f,63)},ne[2*t]=c,ne[2*t+1]=u,ne[2*e]=f,ne[2*e+1]=h,ne[2*n]=d,ne[2*n+1]=l,ne[2*r]=p,ne[2*r+1]=y}function J2(t,e={},n,r,i){if(fn(n),t<0||t>n)throw new Error("outputLen bigger than keyLen");const{key:s,salt:o,personalization:a}=e;if(s!==void 0&&(s.length<1||s.length>n))throw new Error("key length must be undefined or 1.."+n);if(o!==void 0&&o.length!==r)throw new Error("salt must be undefined or "+r);if(a!==void 0&&a.length!==i)throw new Error("personalization must be undefined or "+i)}class X2 extends xo{constructor(e,n){super(),this.finished=!1,this.destroyed=!1,this.length=0,this.pos=0,fn(e),fn(n),this.blockLen=e,this.outputLen=n,this.buffer=new Uint8Array(e),this.buffer32=fs(this.buffer)}update(e){ir(this),e=Xt(e),Jt(e);const{blockLen:n,buffer:r,buffer32:i}=this,s=e.length,o=e.byteOffset,a=e.buffer;for(let c=0;c<s;){this.pos===n&&(sr(i),this.compress(i,0,!1),sr(i),this.pos=0);const u=Math.min(n-this.pos,s-c),f=o+c;if(u===n&&!(f%4)&&c+u<s){const h=new Uint32Array(a,f,Math.floor((s-c)/4));sr(h);for(let d=0;c+n<s;d+=i.length,c+=n)this.length+=n,this.compress(h,d,!1);sr(h);continue}r.set(e.subarray(c,c+u),this.pos),this.pos+=u,this.length+=u,c+=u}return this}digestInto(e){ir(this),yc(e,this);const{pos:n,buffer32:r}=this;this.finished=!0,Lt(this.buffer.subarray(n)),sr(r),this.compress(r,0,!0),sr(r);const i=fs(e);this.get().forEach((s,o)=>i[o]=Sn(s))}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){const{buffer:n,length:r,finished:i,destroyed:s,outputLen:o,pos:a}=this;return e||(e=new this.constructor({dkLen:o})),e.set(...this.get()),e.buffer.set(n),e.destroyed=s,e.finished=i,e.length=r,e.pos=a,e.outputLen=o,e}clone(){return this._cloneInto()}}class Q2 extends X2{constructor(e={}){const n=e.dkLen===void 0?64:e.dkLen;super(128,n),this.v0l=Pe[0]|0,this.v0h=Pe[1]|0,this.v1l=Pe[2]|0,this.v1h=Pe[3]|0,this.v2l=Pe[4]|0,this.v2h=Pe[5]|0,this.v3l=Pe[6]|0,this.v3h=Pe[7]|0,this.v4l=Pe[8]|0,this.v4h=Pe[9]|0,this.v5l=Pe[10]|0,this.v5h=Pe[11]|0,this.v6l=Pe[12]|0,this.v6h=Pe[13]|0,this.v7l=Pe[14]|0,this.v7h=Pe[15]|0,J2(n,e,64,16,16);let{key:r,personalization:i,salt:s}=e,o=0;if(r!==void 0&&(r=Xt(r),o=r.length),this.v0l^=this.outputLen|o<<8|65536|1<<24,s!==void 0){s=Xt(s);const a=fs(s);this.v4l^=Sn(a[0]),this.v4h^=Sn(a[1]),this.v5l^=Sn(a[2]),this.v5h^=Sn(a[3])}if(i!==void 0){i=Xt(i);const a=fs(i);this.v6l^=Sn(a[0]),this.v6h^=Sn(a[1]),this.v7l^=Sn(a[2]),this.v7h^=Sn(a[3])}if(r!==void 0){const a=new Uint8Array(this.blockLen);a.set(r),this.update(a)}}get(){let{v0l:e,v0h:n,v1l:r,v1h:i,v2l:s,v2h:o,v3l:a,v3h:c,v4l:u,v4h:f,v5l:h,v5h:d,v6l:l,v6h:p,v7l:y,v7h:v}=this;return[e,n,r,i,s,o,a,c,u,f,h,d,l,p,y,v]}set(e,n,r,i,s,o,a,c,u,f,h,d,l,p,y,v){this.v0l=e|0,this.v0h=n|0,this.v1l=r|0,this.v1h=i|0,this.v2l=s|0,this.v2h=o|0,this.v3l=a|0,this.v3h=c|0,this.v4l=u|0,this.v4h=f|0,this.v5l=h|0,this.v5h=d|0,this.v6l=l|0,this.v6h=p|0,this.v7l=y|0,this.v7h=v|0}compress(e,n,r){this.get().forEach((c,u)=>ne[u]=c),ne.set(Pe,16);let{h:i,l:s}=uh(BigInt(this.length));ne[24]=Pe[8]^s,ne[25]=Pe[9]^i,r&&(ne[28]=~ne[28],ne[29]=~ne[29]);let o=0;const a=Z2;for(let c=0;c<12;c++)pr(0,4,8,12,e,n+2*a[o++]),gr(0,4,8,12,e,n+2*a[o++]),pr(1,5,9,13,e,n+2*a[o++]),gr(1,5,9,13,e,n+2*a[o++]),pr(2,6,10,14,e,n+2*a[o++]),gr(2,6,10,14,e,n+2*a[o++]),pr(3,7,11,15,e,n+2*a[o++]),gr(3,7,11,15,e,n+2*a[o++]),pr(0,5,10,15,e,n+2*a[o++]),gr(0,5,10,15,e,n+2*a[o++]),pr(1,6,11,12,e,n+2*a[o++]),gr(1,6,11,12,e,n+2*a[o++]),pr(2,7,8,13,e,n+2*a[o++]),gr(2,7,8,13,e,n+2*a[o++]),pr(3,4,9,14,e,n+2*a[o++]),gr(3,4,9,14,e,n+2*a[o++]);this.v0l^=ne[0]^ne[16],this.v0h^=ne[1]^ne[17],this.v1l^=ne[2]^ne[18],this.v1h^=ne[3]^ne[19],this.v2l^=ne[4]^ne[20],this.v2h^=ne[5]^ne[21],this.v3l^=ne[6]^ne[22],this.v3h^=ne[7]^ne[23],this.v4l^=ne[8]^ne[24],this.v4h^=ne[9]^ne[25],this.v5l^=ne[10]^ne[26],this.v5h^=ne[11]^ne[27],this.v6l^=ne[12]^ne[28],this.v6h^=ne[13]^ne[29],this.v7l^=ne[14]^ne[30],this.v7h^=ne[15]^ne[31],Lt(ne)}destroy(){this.destroyed=!0,Lt(this.buffer32),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const _2=sm(t=>new Q2(t));Bn.slice();const $2=BigInt(0),Co=BigInt(1),yd=BigInt(2),Oi=BigInt(3);function ev(t){const e=[];for(;t>Co;t>>=Co)(t&Co)===$2?e.unshift(0):(t&Oi)===Oi?(e.unshift(-1),t+=Co):e.unshift(1);return e}function tv(t){const{Fp:e,Fr:n,Fp2:r,Fp6:i,Fp12:s}=t.fields,o=t.params.xNegative,a=t.params.twistType,c=Hc({n:n.ORDER,...t.G1}),u=Object.assign(c,dd(c.ProjectivePoint,t.G1.mapToCurve,{...t.htfDefaults,...t.G1.htfDefaults})),f=Hc({n:n.ORDER,...t.G2}),h=Object.assign(f,dd(f.ProjectivePoint,t.G2.mapToCurve,{...t.htfDefaults,...t.G2.htfDefaults}));let d;if(a==="multiplicative")d=(q,W,P,Y,G,V)=>s.mul014(Y,q,r.mul(W,G),r.mul(P,V));else if(a==="divisive")d=(q,W,P,Y,G,V)=>s.mul034(Y,r.mul(P,V),r.mul(W,G),q);else throw new Error("bls: unknown twist type");const l=r.div(r.ONE,r.mul(r.ONE,yd));function p(q,W,P,Y){const G=r.sqr(P),V=r.sqr(Y),N=r.mulByB(r.mul(V,Oi)),k=r.mul(N,Oi),j=r.sub(r.sub(r.sqr(r.add(P,Y)),V),G),Z=r.sub(N,G),$=r.mul(r.sqr(W),Oi),_=r.neg(j);return q.push([Z,$,_]),W=r.mul(r.mul(r.mul(r.sub(G,k),W),P),l),P=r.sub(r.sqr(r.mul(r.add(G,k),l)),r.mul(r.sqr(N),Oi)),Y=r.mul(G,j),{Rx:W,Ry:P,Rz:Y}}function y(q,W,P,Y,G,V){const N=r.sub(P,r.mul(V,Y)),k=r.sub(W,r.mul(G,Y)),j=r.sub(r.mul(N,G),r.mul(k,V)),Z=r.neg(N),$=k;q.push([j,Z,$]);const _=r.sqr(k),te=r.mul(_,k),ue=r.mul(_,W),ae=r.add(r.sub(te,r.mul(ue,yd)),r.mul(r.sqr(N),Y));return W=r.mul(k,ae),P=r.sub(r.mul(r.sub(ue,ae),N),r.mul(te,P)),Y=r.mul(Y,te),{Rx:W,Ry:P,Rz:Y}}const v=ev(t.params.ateLoopSize),D=Oc(q=>{const W=q,{x:P,y:Y}=W.toAffine(),G=P,V=Y,N=r.neg(Y);let k=G,j=V,Z=r.ONE;const $=[];for(const _ of v){const te=[];({Rx:k,Ry:j,Rz:Z}=p(te,k,j,Z)),_&&({Rx:k,Ry:j,Rz:Z}=y(te,k,j,Z,G,_===-1?N:V)),$.push(te)}if(t.postPrecompute){const _=$[$.length-1];t.postPrecompute(k,j,Z,G,V,y.bind(null,_))}return $});function C(q,W=!1){let P=s.ONE;if(q.length){const Y=q[0][0].length;for(let G=0;G<Y;G++){P=s.sqr(P);for(const[V,N,k]of q)for(const[j,Z,$]of V[G])P=d(j,Z,$,P,N,k)}}return o&&(P=s.conjugate(P)),W?s.finalExponentiate(P):P}function A(q,W=!0){const P=[];u.ProjectivePoint.normalizeZ(q.map(({g1:Y})=>Y)),h.ProjectivePoint.normalizeZ(q.map(({g2:Y})=>Y));for(const{g1:Y,g2:G}of q){if(Y.equals(u.ProjectivePoint.ZERO)||G.equals(h.ProjectivePoint.ZERO))throw new Error("pairing is not available for ZERO point");Y.assertValidity(),G.assertValidity();const V=Y.toAffine();P.push([D(G),V.x,V.y])}return C(P,W)}function I(q,W,P=!0){return A([{g1:q,g2:W}],P)}const S={randomPrivateKey:()=>{const q=Fc(n.ORDER);return rd(t.randomBytes(q),n.ORDER)},calcPairingPrecomputes:D},{ShortSignature:z}=t.G1,{Signature:M}=t.G2;function F(q){return q instanceof u.ProjectivePoint?q:u.ProjectivePoint.fromHex(q)}function T(q,W){return q instanceof u.ProjectivePoint?q:u.hashToCurve(rt("point",q),W)}function K(q){return q instanceof h.ProjectivePoint?q:M.fromHex(q)}function H(q,W){return q instanceof h.ProjectivePoint?q:h.hashToCurve(rt("point",q),W)}function E(q){return u.ProjectivePoint.fromPrivateKey(q).toRawBytes(!0)}function w(q){return h.ProjectivePoint.fromPrivateKey(q).toRawBytes(!0)}function m(q,W,P){const Y=H(q,P);Y.assertValidity();const G=Y.multiply(u.normPrivateKeyToScalar(W));return q instanceof h.ProjectivePoint?G:M.toRawBytes(G)}function g(q,W,P){const Y=T(q,P);Y.assertValidity();const G=Y.multiply(u.normPrivateKeyToScalar(W));return q instanceof u.ProjectivePoint?G:z.toRawBytes(G)}function b(q,W,P,Y){const G=F(P),V=H(W,Y),N=u.ProjectivePoint.BASE,k=K(q),j=A([{g1:G.negate(),g2:V},{g1:N,g2:k}]);return s.eql(j,s.ONE)}function x(q,W,P,Y){const G=K(P),V=T(W,Y),N=h.ProjectivePoint.BASE,k=F(q),j=A([{g1:V,g2:G},{g1:k,g2:N.negate()}]);return s.eql(j,s.ONE)}function O(q){if(!Array.isArray(q)||q.length===0)throw new Error("expected non-empty array")}function B(q){O(q);const P=q.map(F).reduce((Y,G)=>Y.add(G),u.ProjectivePoint.ZERO);return q[0]instanceof u.ProjectivePoint?(P.assertValidity(),P):P.toRawBytes(!0)}function R(q){O(q);const P=q.map(K).reduce((Y,G)=>Y.add(G),h.ProjectivePoint.ZERO);return q[0]instanceof h.ProjectivePoint?(P.assertValidity(),P):M.toRawBytes(P)}function U(q){O(q);const P=q.map(F).reduce((Y,G)=>Y.add(G),u.ProjectivePoint.ZERO);return q[0]instanceof u.ProjectivePoint?(P.assertValidity(),P):z.toRawBytes(P)}function L(q,W,P,Y){if(O(W),P.length!==W.length)throw new Error("amount of public keys and messages should be equal");const G=K(q),V=W.map(Z=>H(Z,Y)),N=P.map(F),k=new Map;for(let Z=0;Z<N.length;Z++){const $=N[Z],_=V[Z];let te=k.get(_);te===void 0&&(te=[],k.set(_,te)),te.push($)}const j=[];try{for(const[Z,$]of k){const _=$.reduce((te,ue)=>te.add(ue));j.push({g1:_,g2:Z})}return j.push({g1:u.ProjectivePoint.BASE.negate(),g2:G}),s.eql(A(j),s.ONE)}catch{return!1}}return u.ProjectivePoint.BASE._setWindowSize(4),{getPublicKey:E,getPublicKeyForShortSignatures:w,sign:m,signShortSignature:g,verify:b,verifyBatch:L,verifyShortSignature:x,aggregatePublicKeys:B,aggregateSignatures:R,aggregateShortSignatures:U,millerLoopBatch:C,pairing:I,pairingBatch:A,G1:u,G2:h,Signature:M,ShortSignature:z,fields:{Fr:n,Fp:e,Fp2:r,Fp6:i,Fp12:s},params:{ateLoopSize:t.params.ateLoopSize,r:t.params.r,G1b:t.G1.b,G2b:t.G2.b},utils:S}}const nv=BigInt(0),Bi=BigInt(1),Cn=BigInt(2),bd=BigInt(3);function Kc(t,e,n,r,i=1,s){const o=BigInt(s===void 0?r:s),a=n**BigInt(r),c=[];for(let u=0;u<i;u++){const f=BigInt(u+1),h=[];for(let d=0,l=Bi;d<r;d++){const p=(f*l-f)/o%a;h.push(t.pow(e,p)),l*=n}c.push(h)}return c}function rv(t,e,n){const r=e.pow(n,(t.ORDER-Bi)/bd),i=e.pow(n,(t.ORDER-Bi)/Cn);function s(d,l){const p=e.mul(e.frobeniusMap(d,1),r),y=e.mul(e.frobeniusMap(l,1),i);return[p,y]}const o=e.pow(n,(t.ORDER**Cn-Bi)/bd),a=e.pow(n,(t.ORDER**Cn-Bi)/Cn);if(!e.eql(a,e.neg(e.ONE)))throw new Error("psiFrobenius: PSI2_Y!==-1");function c(d,l){return[e.mul(d,o),e.neg(l)]}const u=d=>(l,p)=>{const y=p.toAffine(),v=d(y.x,y.y);return l.fromAffine({x:v[0],y:v[1]})},f=u(s),h=u(c);return{psi:s,psi2:c,G2psi:f,G2psi2:h,PSI_X:r,PSI_Y:i,PSI2_X:o,PSI2_Y:a}}function iv(t){const{ORDER:e}=t,n=lr(e),r=n.create(t.NONRESIDUE||BigInt(-1)),i=n.div(n.ONE,Cn),s=Kc(n,r,n.ORDER,2)[0],o=({c0:E,c1:w},{c0:m,c1:g})=>({c0:n.add(E,m),c1:n.add(w,g)}),a=({c0:E,c1:w},{c0:m,c1:g})=>({c0:n.sub(E,m),c1:n.sub(w,g)}),c=({c0:E,c1:w},m)=>{if(typeof m=="bigint")return{c0:n.mul(E,m),c1:n.mul(w,m)};const{c0:g,c1:b}=m;let x=n.mul(E,g),O=n.mul(w,b);const B=n.sub(x,O),R=n.sub(n.mul(n.add(E,w),n.add(g,b)),n.add(x,O));return{c0:B,c1:R}},u=({c0:E,c1:w})=>{const m=n.add(E,w),g=n.sub(E,w),b=n.add(E,E);return{c0:n.mul(m,g),c1:n.mul(b,w)}},f=E=>{if(E.length!==2)throw new Error("invalid tuple");const w=E.map(m=>n.create(m));return{c0:w[0],c1:w[1]}},h=e*e,d=f(t.FP2_NONRESIDUE),l={ORDER:h,isLE:n.isLE,NONRESIDUE:d,BITS:gs(h),BYTES:Math.ceil(gs(h)/8),MASK:Wr(gs(h)),ZERO:{c0:n.ZERO,c1:n.ZERO},ONE:{c0:n.ONE,c1:n.ZERO},create:E=>E,isValid:({c0:E,c1:w})=>typeof E=="bigint"&&typeof w=="bigint",is0:({c0:E,c1:w})=>n.is0(E)&&n.is0(w),eql:({c0:E,c1:w},{c0:m,c1:g})=>n.eql(E,m)&&n.eql(w,g),neg:({c0:E,c1:w})=>({c0:n.neg(E),c1:n.neg(w)}),pow:(E,w)=>To(l,E,w),invertBatch:E=>Yr(l,E),add:o,sub:a,mul:c,sqr:u,addN:o,subN:a,mulN:c,sqrN:u,div:(E,w)=>l.mul(E,typeof w=="bigint"?n.inv(n.create(w)):l.inv(w)),inv:({c0:E,c1:w})=>{const m=n.inv(n.create(E*E+w*w));return{c0:n.mul(m,n.create(E)),c1:n.mul(m,n.create(-w))}},sqrt:E=>{if(t.Fp2sqrt)return t.Fp2sqrt(E);const{c0:w,c1:m}=E;if(n.is0(m))return No(n,w)===1?l.create({c0:n.sqrt(w),c1:n.ZERO}):l.create({c0:n.ZERO,c1:n.sqrt(n.div(w,r))});const g=n.sqrt(n.sub(n.sqr(w),n.mul(n.sqr(m),r)));let b=n.mul(n.add(g,w),i);No(n,b)===-1&&(b=n.sub(b,g));const O=n.sqrt(b),B=l.create({c0:O,c1:n.div(n.mul(m,i),O)});if(!l.eql(l.sqr(B),E))throw new Error("Cannot find square root");const R=B,U=l.neg(R),{re:L,im:q}=l.reim(R),{re:W,im:P}=l.reim(U);return q>P||q===P&&L>W?R:U},isOdd:E=>{const{re:w,im:m}=l.reim(E),g=w%Cn,b=w===nv,x=m%Cn;return BigInt(g||b&&x)==Bi},fromBytes(E){if(E.length!==l.BYTES)throw new Error("fromBytes invalid length="+E.length);return{c0:n.fromBytes(E.subarray(0,n.BYTES)),c1:n.fromBytes(E.subarray(n.BYTES))}},toBytes:({c0:E,c1:w})=>Be(n.toBytes(E),n.toBytes(w)),cmov:({c0:E,c1:w},{c0:m,c1:g},b)=>({c0:n.cmov(E,m,b),c1:n.cmov(w,g,b)}),reim:({c0:E,c1:w})=>({re:E,im:w}),mulByNonresidue:({c0:E,c1:w})=>l.mul({c0:E,c1:w},d),mulByB:t.Fp2mulByB,fromBigTuple:f,frobeniusMap:({c0:E,c1:w},m)=>({c0:E,c1:n.mul(w,s[m%2])})},p=({c0:E,c1:w,c2:m},{c0:g,c1:b,c2:x})=>({c0:l.add(E,g),c1:l.add(w,b),c2:l.add(m,x)}),y=({c0:E,c1:w,c2:m},{c0:g,c1:b,c2:x})=>({c0:l.sub(E,g),c1:l.sub(w,b),c2:l.sub(m,x)}),v=({c0:E,c1:w,c2:m},g)=>{if(typeof g=="bigint")return{c0:l.mul(E,g),c1:l.mul(w,g),c2:l.mul(m,g)};const{c0:b,c1:x,c2:O}=g,B=l.mul(E,b),R=l.mul(w,x),U=l.mul(m,O);return{c0:l.add(B,l.mulByNonresidue(l.sub(l.mul(l.add(w,m),l.add(x,O)),l.add(R,U)))),c1:l.add(l.sub(l.mul(l.add(E,w),l.add(b,x)),l.add(B,R)),l.mulByNonresidue(U)),c2:l.sub(l.add(R,l.mul(l.add(E,m),l.add(b,O))),l.add(B,U))}},D=({c0:E,c1:w,c2:m})=>{let g=l.sqr(E),b=l.mul(l.mul(E,w),Cn),x=l.mul(l.mul(w,m),Cn),O=l.sqr(m);return{c0:l.add(l.mulByNonresidue(x),g),c1:l.add(l.mulByNonresidue(O),b),c2:l.sub(l.sub(l.add(l.add(b,l.sqr(l.add(l.sub(E,w),m))),x),g),O)}},[C,A]=Kc(l,d,n.ORDER,6,2,3),I={ORDER:l.ORDER,isLE:l.isLE,BITS:3*l.BITS,BYTES:3*l.BYTES,MASK:Wr(3*l.BITS),ZERO:{c0:l.ZERO,c1:l.ZERO,c2:l.ZERO},ONE:{c0:l.ONE,c1:l.ZERO,c2:l.ZERO},create:E=>E,isValid:({c0:E,c1:w,c2:m})=>l.isValid(E)&&l.isValid(w)&&l.isValid(m),is0:({c0:E,c1:w,c2:m})=>l.is0(E)&&l.is0(w)&&l.is0(m),neg:({c0:E,c1:w,c2:m})=>({c0:l.neg(E),c1:l.neg(w),c2:l.neg(m)}),eql:({c0:E,c1:w,c2:m},{c0:g,c1:b,c2:x})=>l.eql(E,g)&&l.eql(w,b)&&l.eql(m,x),sqrt:Fh,div:(E,w)=>I.mul(E,typeof w=="bigint"?n.inv(n.create(w)):I.inv(w)),pow:(E,w)=>To(I,E,w),invertBatch:E=>Yr(I,E),add:p,sub:y,mul:v,sqr:D,addN:p,subN:y,mulN:v,sqrN:D,inv:({c0:E,c1:w,c2:m})=>{let g=l.sub(l.sqr(E),l.mulByNonresidue(l.mul(m,w))),b=l.sub(l.mulByNonresidue(l.sqr(m)),l.mul(E,w)),x=l.sub(l.sqr(w),l.mul(E,m)),O=l.inv(l.add(l.mulByNonresidue(l.add(l.mul(m,b),l.mul(w,x))),l.mul(E,g)));return{c0:l.mul(O,g),c1:l.mul(O,b),c2:l.mul(O,x)}},fromBytes:E=>{if(E.length!==I.BYTES)throw new Error("fromBytes invalid length="+E.length);return{c0:l.fromBytes(E.subarray(0,l.BYTES)),c1:l.fromBytes(E.subarray(l.BYTES,2*l.BYTES)),c2:l.fromBytes(E.subarray(2*l.BYTES))}},toBytes:({c0:E,c1:w,c2:m})=>Be(l.toBytes(E),l.toBytes(w),l.toBytes(m)),cmov:({c0:E,c1:w,c2:m},{c0:g,c1:b,c2:x},O)=>({c0:l.cmov(E,g,O),c1:l.cmov(w,b,O),c2:l.cmov(m,x,O)}),fromBigSix:E=>{if(!Array.isArray(E)||E.length!==6)throw new Error("invalid Fp6 usage");return{c0:l.fromBigTuple(E.slice(0,2)),c1:l.fromBigTuple(E.slice(2,4)),c2:l.fromBigTuple(E.slice(4,6))}},frobeniusMap:({c0:E,c1:w,c2:m},g)=>({c0:l.frobeniusMap(E,g),c1:l.mul(l.frobeniusMap(w,g),C[g%6]),c2:l.mul(l.frobeniusMap(m,g),A[g%6])}),mulByFp2:({c0:E,c1:w,c2:m},g)=>({c0:l.mul(E,g),c1:l.mul(w,g),c2:l.mul(m,g)}),mulByNonresidue:({c0:E,c1:w,c2:m})=>({c0:l.mulByNonresidue(m),c1:E,c2:w}),mul1:({c0:E,c1:w,c2:m},g)=>({c0:l.mulByNonresidue(l.mul(m,g)),c1:l.mul(E,g),c2:l.mul(w,g)}),mul01({c0:E,c1:w,c2:m},g,b){let x=l.mul(E,g),O=l.mul(w,b);return{c0:l.add(l.mulByNonresidue(l.sub(l.mul(l.add(w,m),b),O)),x),c1:l.sub(l.sub(l.mul(l.add(g,b),l.add(E,w)),x),O),c2:l.add(l.sub(l.mul(l.add(E,m),g),x),O)}}},S=Kc(l,d,n.ORDER,12,1,6)[0],z=({c0:E,c1:w},{c0:m,c1:g})=>({c0:I.add(E,m),c1:I.add(w,g)}),M=({c0:E,c1:w},{c0:m,c1:g})=>({c0:I.sub(E,m),c1:I.sub(w,g)}),F=({c0:E,c1:w},m)=>{if(typeof m=="bigint")return{c0:I.mul(E,m),c1:I.mul(w,m)};let{c0:g,c1:b}=m,x=I.mul(E,g),O=I.mul(w,b);return{c0:I.add(x,I.mulByNonresidue(O)),c1:I.sub(I.mul(I.add(E,w),I.add(g,b)),I.add(x,O))}},T=({c0:E,c1:w})=>{let m=I.mul(E,w);return{c0:I.sub(I.sub(I.mul(I.add(I.mulByNonresidue(w),E),I.add(E,w)),m),I.mulByNonresidue(m)),c1:I.add(m,m)}};function K(E,w){const m=l.sqr(E),g=l.sqr(w);return{first:l.add(l.mulByNonresidue(g),m),second:l.sub(l.sub(l.sqr(l.add(E,w)),m),g)}}const H={ORDER:l.ORDER,isLE:I.isLE,BITS:2*I.BITS,BYTES:2*I.BYTES,MASK:Wr(2*I.BITS),ZERO:{c0:I.ZERO,c1:I.ZERO},ONE:{c0:I.ONE,c1:I.ZERO},create:E=>E,isValid:({c0:E,c1:w})=>I.isValid(E)&&I.isValid(w),is0:({c0:E,c1:w})=>I.is0(E)&&I.is0(w),neg:({c0:E,c1:w})=>({c0:I.neg(E),c1:I.neg(w)}),eql:({c0:E,c1:w},{c0:m,c1:g})=>I.eql(E,m)&&I.eql(w,g),sqrt:Fh,inv:({c0:E,c1:w})=>{let m=I.inv(I.sub(I.sqr(E),I.mulByNonresidue(I.sqr(w))));return{c0:I.mul(E,m),c1:I.neg(I.mul(w,m))}},div:(E,w)=>H.mul(E,typeof w=="bigint"?n.inv(n.create(w)):H.inv(w)),pow:(E,w)=>To(H,E,w),invertBatch:E=>Yr(H,E),add:z,sub:M,mul:F,sqr:T,addN:z,subN:M,mulN:F,sqrN:T,fromBytes:E=>{if(E.length!==H.BYTES)throw new Error("fromBytes invalid length="+E.length);return{c0:I.fromBytes(E.subarray(0,I.BYTES)),c1:I.fromBytes(E.subarray(I.BYTES))}},toBytes:({c0:E,c1:w})=>Be(I.toBytes(E),I.toBytes(w)),cmov:({c0:E,c1:w},{c0:m,c1:g},b)=>({c0:I.cmov(E,m,b),c1:I.cmov(w,g,b)}),fromBigTwelve:E=>({c0:I.fromBigSix(E.slice(0,6)),c1:I.fromBigSix(E.slice(6,12))}),frobeniusMap(E,w){const{c0:m,c1:g,c2:b}=I.frobeniusMap(E.c1,w),x=S[w%12];return{c0:I.frobeniusMap(E.c0,w),c1:I.create({c0:l.mul(m,x),c1:l.mul(g,x),c2:l.mul(b,x)})}},mulByFp2:({c0:E,c1:w},m)=>({c0:I.mulByFp2(E,m),c1:I.mulByFp2(w,m)}),conjugate:({c0:E,c1:w})=>({c0:E,c1:I.neg(w)}),mul014:({c0:E,c1:w},m,g,b)=>{let x=I.mul01(E,m,g),O=I.mul1(w,b);return{c0:I.add(I.mulByNonresidue(O),x),c1:I.sub(I.sub(I.mul01(I.add(w,E),m,l.add(g,b)),x),O)}},mul034:({c0:E,c1:w},m,g,b)=>{const x=I.create({c0:l.mul(E.c0,m),c1:l.mul(E.c1,m),c2:l.mul(E.c2,m)}),O=I.mul01(w,g,b),B=I.mul01(I.add(E,w),l.add(m,g),b);return{c0:I.add(I.mulByNonresidue(O),x),c1:I.sub(B,I.add(x,O))}},_cyclotomicSquare:t.Fp12cyclotomicSquare,_cyclotomicExp:t.Fp12cyclotomicExp,finalExponentiate:t.Fp12finalExponentiate};return{Fp:n,Fp2:l,Fp6:I,Fp4Square:K,Fp12:H}}const ht=BigInt(0),Po=BigInt(1),Me=BigInt(2),qo=BigInt(3),Es=BigInt(4),wr=BigInt("0xd201000000010000"),sv=gs(wr),{Fp:ie,Fp2:oe,Fp6:Zc,Fp4Square:Jc,Fp12:de}=iv({ORDER:BigInt("0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab"),FP2_NONRESIDUE:[Po,Po],Fp2mulByB:({c0:t,c1:e})=>{const n=ie.mul(t,Es),r=ie.mul(e,Es);return{c0:ie.sub(n,r),c1:ie.add(n,r)}},Fp12cyclotomicSquare:({c0:t,c1:e})=>{const{c0:n,c1:r,c2:i}=t,{c0:s,c1:o,c2:a}=e,{first:c,second:u}=Jc(n,o),{first:f,second:h}=Jc(s,i),{first:d,second:l}=Jc(r,a),p=oe.mulByNonresidue(l);return{c0:Zc.create({c0:oe.add(oe.mul(oe.sub(c,n),Me),c),c1:oe.add(oe.mul(oe.sub(f,r),Me),f),c2:oe.add(oe.mul(oe.sub(d,i),Me),d)}),c1:Zc.create({c0:oe.add(oe.mul(oe.add(p,s),Me),p),c1:oe.add(oe.mul(oe.add(u,o),Me),u),c2:oe.add(oe.mul(oe.add(h,a),Me),h)})}},Fp12cyclotomicExp(t,e){let n=de.ONE;for(let r=sv-1;r>=0;r--)n=de._cyclotomicSquare(n),Dm(e,r)&&(n=de.mul(n,t));return n},Fp12finalExponentiate:t=>{const e=wr,n=de.div(de.frobeniusMap(t,6),t),r=de.mul(de.frobeniusMap(n,2),n),i=de.conjugate(de._cyclotomicExp(r,e)),s=de.mul(de.conjugate(de._cyclotomicSquare(r)),i),o=de.conjugate(de._cyclotomicExp(s,e)),a=de.conjugate(de._cyclotomicExp(o,e)),c=de.mul(de.conjugate(de._cyclotomicExp(a,e)),de._cyclotomicSquare(i)),u=de.conjugate(de._cyclotomicExp(c,e)),f=de.frobeniusMap(de.mul(i,a),2),h=de.frobeniusMap(de.mul(o,r),3),d=de.frobeniusMap(de.mul(c,de.conjugate(r)),1),l=de.mul(de.mul(u,de.conjugate(s)),r);return de.mul(de.mul(de.mul(f,h),d),l)}}),md=lr(BigInt("0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001")),ov=hd(oe,[[["0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6","0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6"],["0x0","0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a"],["0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e","0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d"],["0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1","0x0"]],[["0x0","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63"],["0xc","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f"],["0x1","0x0"]],[["0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706","0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706"],["0x0","0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be"],["0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c","0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f"],["0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10","0x0"]],[["0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb"],["0x0","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3"],["0x12","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99"],["0x1","0x0"]]].map(t=>t.map(e=>oe.fromBigTuple(e.map(BigInt))))),av=hd(ie,[["0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7","0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb","0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0","0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861","0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9","0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983","0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84","0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e","0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317","0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e","0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b","0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229"],["0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c","0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff","0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19","0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8","0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e","0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5","0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a","0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e","0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641","0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a","0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"],["0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33","0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696","0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6","0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb","0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb","0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0","0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2","0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29","0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587","0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30","0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132","0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e","0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8","0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133","0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b","0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604"],["0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1","0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d","0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2","0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416","0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d","0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac","0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c","0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9","0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a","0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55","0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8","0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092","0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc","0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7","0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f","0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"]].map(t=>t.map(e=>BigInt(e)))),cv=fd(oe,{A:oe.create({c0:ie.create(ht),c1:ie.create(BigInt(240))}),B:oe.create({c0:ie.create(BigInt(1012)),c1:ie.create(BigInt(1012))}),Z:oe.create({c0:ie.create(BigInt(-2)),c1:ie.create(BigInt(-1))})}),uv=fd(ie,{A:ie.create(BigInt("0x144698a3b8e9433d693a02c96d4982b0ea985383ee66a8d8e8981aefd881ac98936f8da0e0f97f5cf428082d584c1d")),B:ie.create(BigInt("0x12e2908d11688030018b12e8753eee3b2016c1f0f24f4070a0b9c14fcef35ef55a23215a316ceaa5d1cc48e98e172be0")),Z:ie.create(BigInt(11))}),{G2psi:vd,G2psi2:fv}=rv(ie,oe,oe.div(oe.ONE,oe.NONRESIDUE)),Xc=Object.freeze({DST:"BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_",encodeDST:"BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_",p:ie.ORDER,m:2,k:128,expand:"xmd",hash:ur}),Fo=xs(ie.toBytes(ht),{infinity:!0,compressed:!0});function ko(t){t=t.slice();const e=t[0]&224,n=!!(e>>7&1),r=!!(e>>6&1),i=!!(e>>5&1);return t[0]&=31,{compressed:n,infinity:r,sort:i,value:t}}function xs(t,e){if(t[0]&224)throw new Error("setMask: non-empty mask");return e.compressed&&(t[0]|=128),e.infinity&&(t[0]|=64),e.sort&&(t[0]|=32),t}function Ed(t){t.assertValidity();const e=t.equals(_t.G1.ProjectivePoint.ZERO),{x:n,y:r}=t.toAffine();if(e)return Fo.slice();const i=ie.ORDER,s=!!(r*Me/i);return xs(Ce(n,ie.BYTES),{compressed:!0,sort:s})}function xd(t){t.assertValidity();const e=ie.BYTES;if(t.equals(_t.G2.ProjectivePoint.ZERO))return Be(Fo,Ce(ht,e));const{x:n,y:r}=t.toAffine(),{re:i,im:s}=oe.reim(n),{re:o,im:a}=oe.reim(r),u=!!((a>ht?a*Me:o*Me)/ie.ORDER&Po),f=i;return Be(xs(Ce(s,e),{sort:u,compressed:!0}),Ce(f,e))}const _t=tv({fields:{Fp:ie,Fp2:oe,Fp6:Zc,Fp12:de,Fr:md},G1:{Fp:ie,h:BigInt("0x396c8c005555e1568c00aaab0000aaab"),Gx:BigInt("0x17f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb"),Gy:BigInt("0x08b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1"),a:ie.ZERO,b:Es,htfDefaults:{...Xc,m:1,DST:"BLS_SIG_BLS12381G1_XMD:SHA-256_SSWU_RO_NUL_"},wrapPrivateKey:!0,allowInfinityPoint:!0,isTorsionFree:(t,e)=>{const n=BigInt("0x5f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffefffe"),r=new t(ie.mul(e.px,n),e.py,e.pz);return e.multiplyUnsafe(wr).negate().multiplyUnsafe(wr).equals(r)},clearCofactor:(t,e)=>e.multiplyUnsafe(wr).add(e),mapToCurve:t=>{const{x:e,y:n}=uv(ie.create(t[0]));return av(e,n)},fromBytes:t=>{const{compressed:e,infinity:n,sort:r,value:i}=ko(t);if(i.length===48&&e){const s=ie.ORDER,o=ut(i),a=ie.create(o&ie.MASK);if(n){if(a!==ht)throw new Error("G1: non-empty compressed point at infinity");return{x:ht,y:ht}}const c=ie.add(ie.pow(a,qo),ie.create(_t.params.G1b));let u=ie.sqrt(c);if(!u)throw new Error("invalid compressed G1 point");return u*Me/s!==BigInt(r)&&(u=ie.neg(u)),{x:ie.create(a),y:ie.create(u)}}else if(i.length===96&&!e){const s=ut(i.subarray(0,ie.BYTES)),o=ut(i.subarray(ie.BYTES));if(n){if(s!==ht||o!==ht)throw new Error("G1: non-empty point at infinity");return _t.G1.ProjectivePoint.ZERO.toAffine()}return{x:ie.create(s),y:ie.create(o)}}else throw new Error("invalid point G1, expected 48/96 bytes")},toBytes:(t,e,n)=>{const r=e.equals(t.ZERO),{x:i,y:s}=e.toAffine();if(n){if(r)return Fo.slice();const o=ie.ORDER,a=!!(s*Me/o);return xs(Ce(i,ie.BYTES),{compressed:!0,sort:a})}else return r?Be(new Uint8Array([64]),new Uint8Array(2*ie.BYTES-1)):Be(Ce(i,ie.BYTES),Ce(s,ie.BYTES))},ShortSignature:{fromHex(t){const{infinity:e,sort:n,value:r}=ko(rt("signatureHex",t,48)),i=ie.ORDER,s=ut(r);if(e)return _t.G1.ProjectivePoint.ZERO;const o=ie.create(s&ie.MASK),a=ie.add(ie.pow(o,qo),ie.create(_t.params.G1b));let c=ie.sqrt(a);if(!c)throw new Error("invalid compressed G1 point");const u=BigInt(n);c*Me/i!==u&&(c=ie.neg(c));const f=_t.G1.ProjectivePoint.fromAffine({x:o,y:c});return f.assertValidity(),f},toRawBytes(t){return Ed(t)},toHex(t){return jr(Ed(t))}}},G2:{Fp:oe,h:BigInt("0x5d543a95414e7f1091d50792876a202cd91de4547085abaa68a205b2e5a7ddfa628f1cb4d9e82ef21537e293a6691ae1616ec6e786f0c70cf1c38e31c7238e5"),Gx:oe.fromBigTuple([BigInt("0x024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8"),BigInt("0x13e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e")]),Gy:oe.fromBigTuple([BigInt("0x0ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801"),BigInt("0x0606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be")]),a:oe.ZERO,b:oe.fromBigTuple([Es,Es]),hEff:BigInt("0xbc69f08f2ee75b3584c6a0ea91b352888e2a8e9145ad7689986ff031508ffe1329c2f178731db956d82bf015d1212b02ec0ec69d7477c1ae954cbc06689f6a359894c0adebbf6b4e8020005aaa95551"),htfDefaults:{...Xc},wrapPrivateKey:!0,allowInfinityPoint:!0,mapToCurve:t=>{const{x:e,y:n}=cv(oe.fromBigTuple(t));return ov(e,n)},isTorsionFree:(t,e)=>e.multiplyUnsafe(wr).negate().equals(vd(t,e)),clearCofactor:(t,e)=>{const n=wr;let r=e.multiplyUnsafe(n).negate(),i=vd(t,e),s=e.double();return s=fv(t,s),s=s.subtract(i),i=r.add(i),i=i.multiplyUnsafe(n).negate(),s=s.add(i),s=s.subtract(r),s.subtract(e)},fromBytes:t=>{const{compressed:e,infinity:n,sort:r,value:i}=ko(t);if(!e&&!n&&r||!e&&n&&r||r&&n&&e)throw new Error("invalid encoding flag: "+(t[0]&224));const s=ie.BYTES,o=(a,c,u)=>ut(a.slice(c,u));if(i.length===96&&e){const a=_t.params.G2b,c=ie.ORDER;if(n){if(i.reduce((y,v)=>y!==0?v+1:v,0)>0)throw new Error("invalid compressed G2 point");return{x:oe.ZERO,y:oe.ZERO}}const u=o(i,0,s),f=o(i,s,2*s),h=oe.create({c0:ie.create(f),c1:ie.create(u)}),d=oe.add(oe.pow(h,qo),a);let l=oe.sqrt(d);const p=l.c1===ht?l.c0*Me/c:l.c1*Me/c?Po:ht;return l=r&&p>0?l:oe.neg(l),{x:h,y:l}}else if(i.length===192&&!e){if(n){if(i.reduce((h,d)=>h!==0?d+1:d,0)>0)throw new Error("invalid uncompressed G2 point");return{x:oe.ZERO,y:oe.ZERO}}const a=o(i,0,s),c=o(i,s,2*s),u=o(i,2*s,3*s),f=o(i,3*s,4*s);return{x:oe.fromBigTuple([c,a]),y:oe.fromBigTuple([f,u])}}else throw new Error("invalid point G2, expected 96/192 bytes")},toBytes:(t,e,n)=>{const{BYTES:r,ORDER:i}=ie,s=e.equals(t.ZERO),{x:o,y:a}=e.toAffine();if(n){if(s)return Be(Fo,Ce(ht,r));const c=!!(a.c1===ht?a.c0*Me/i:a.c1*Me/i);return Be(xs(Ce(o.c1,r),{compressed:!0,sort:c}),Ce(o.c0,r))}else{if(s)return Be(new Uint8Array([64]),new Uint8Array(4*r-1));const{re:c,im:u}=oe.reim(o),{re:f,im:h}=oe.reim(a);return Be(Ce(u,r),Ce(c,r),Ce(h,r),Ce(f,r))}},Signature:{fromHex(t){const{infinity:e,sort:n,value:r}=ko(rt("signatureHex",t)),i=ie.ORDER,s=r.length/2;if(s!==48&&s!==96)throw new Error("invalid compressed signature length, must be 96 or 192");const o=ut(r.slice(0,s)),a=ut(r.slice(s));if(e)return _t.G2.ProjectivePoint.ZERO;const c=ie.create(o&ie.MASK),u=ie.create(a),f=oe.create({c0:u,c1:c}),h=oe.add(oe.pow(f,qo),_t.params.G2b);let d=oe.sqrt(h);if(!d)throw new Error("Failed to find a square root");const{re:l,im:p}=oe.reim(d),y=BigInt(n),v=p>ht&&p*Me/i!==y,D=p===ht&&l*Me/i!==y;(v||D)&&(d=oe.neg(d));const C=_t.G2.ProjectivePoint.fromAffine({x:f,y:d});return C.assertValidity(),C},toRawBytes(t){return xd(t)},toHex(t){return jr(xd(t))}}},params:{ateLoopSize:wr,r:md.ORDER,xNegative:!0,twistType:"multiplicative"},htfDefaults:Xc,hash:ur,randomBytes:On});BigInt(0),BigInt(1),BigInt(2),BigInt(8),BigInt(0),BigInt(1),BigInt(2),BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),BigInt(0),BigInt(1),BigInt(2),BigInt(3),BigInt(5),BigInt(8);const Di=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;function Lo(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function Qc(t){if(!Number.isSafeInteger(t)||t<0)throw new Error("positive integer expected, got "+t)}function Gr(t,...e){if(!Lo(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error("Uint8Array expected of length "+e+", got length="+t.length)}function Sd(t){if(typeof t!="function"||typeof t.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");Qc(t.outputLen),Qc(t.blockLen)}function Mo(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function lv(t,e){Gr(t);const n=e.outputLen;if(t.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function Vo(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function _c(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function hn(t,e){return t<<32-e|t>>>e}const Id=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",hv=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function Ri(t){if(Gr(t),Id)return t.toHex();let e="";for(let n=0;n<t.length;n++)e+=hv[t[n]];return e}const Pn={_0:48,_9:57,A:65,F:70,a:97,f:102};function Ad(t){if(t>=Pn._0&&t<=Pn._9)return t-Pn._0;if(t>=Pn.A&&t<=Pn.F)return t-(Pn.A-10);if(t>=Pn.a&&t<=Pn.f)return t-(Pn.a-10)}function zo(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);if(Id)return Uint8Array.fromHex(t);const e=t.length,n=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);const r=new Uint8Array(n);for(let i=0,s=0;i<n;i++,s+=2){const o=Ad(t.charCodeAt(s)),a=Ad(t.charCodeAt(s+1));if(o===void 0||a===void 0){const c=t[s]+t[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}r[i]=o*16+a}return r}function $c(t){if(typeof t!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(t))}function eu(t){return typeof t=="string"&&(t=$c(t)),Gr(t),t}function yr(...t){let e=0;for(let r=0;r<t.length;r++){const i=t[r];Gr(i),e+=i.length}const n=new Uint8Array(e);for(let r=0,i=0;r<t.length;r++){const s=t[r];n.set(s,i),i+=s.length}return n}class Od{}function dv(t){const e=r=>t().update(eu(r)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function Bd(t=32){if(Di&&typeof Di.getRandomValues=="function")return Di.getRandomValues(new Uint8Array(t));if(Di&&typeof Di.randomBytes=="function")return Uint8Array.from(Di.randomBytes(t));throw new Error("crypto.getRandomValues must be defined")}const tu=BigInt(0),nu=BigInt(1);function jo(t,e=""){if(typeof t!="boolean"){const n=e&&`"${e}"`;throw new Error(n+"expected boolean, got type="+typeof t)}return t}function Kr(t,e,n=""){const r=Lo(t),i=t?.length,s=e!==void 0;if(!r||s&&i!==e){const o=n&&`"${n}" `,a=s?` of length ${e}`:"",c=r?`length=${i}`:`type=${typeof t}`;throw new Error(o+"expected Uint8Array"+a+", got "+c)}return t}function Wo(t){const e=t.toString(16);return e.length&1?"0"+e:e}function Dd(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);return t===""?tu:BigInt("0x"+t)}function Ho(t){return Dd(Ri(t))}function Rd(t){return Gr(t),Dd(Ri(Uint8Array.from(t).reverse()))}function ru(t,e){return zo(t.toString(16).padStart(e*2,"0"))}function Td(t,e){return ru(t,e).reverse()}function vt(t,e,n){let r;if(typeof e=="string")try{r=zo(e)}catch(s){throw new Error(t+" must be hex string or Uint8Array, cause: "+s)}else if(Lo(e))r=Uint8Array.from(e);else throw new Error(t+" must be hex string or Uint8Array");const i=r.length;if(typeof n=="number"&&i!==n)throw new Error(t+" of length "+n+" expected, got "+i);return r}const iu=t=>typeof t=="bigint"&&tu<=t;function pv(t,e,n){return iu(t)&&iu(e)&&iu(n)&&e<=t&&t<n}function gv(t,e,n,r){if(!pv(e,n,r))throw new Error("expected valid "+t+": "+n+" <= n < "+r+", got "+e)}function Nd(t){let e;for(e=0;t>tu;t>>=nu,e+=1);return e}const Ss=t=>(nu<<BigInt(t))-nu;function wv(t,e,n){if(typeof t!="number"||t<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof n!="function")throw new Error("hmacFn must be a function");const r=l=>new Uint8Array(l),i=l=>Uint8Array.of(l);let s=r(t),o=r(t),a=0;const c=()=>{s.fill(1),o.fill(0),a=0},u=(...l)=>n(o,s,...l),f=(l=r(0))=>{o=u(i(0),l),s=u(),l.length!==0&&(o=u(i(1),l),s=u())},h=()=>{if(a++>=1e3)throw new Error("drbg: tried 1000 values");let l=0;const p=[];for(;l<e;){s=u();const y=s.slice();p.push(y),l+=s.length}return yr(...p)};return(l,p)=>{c(),f(l);let y;for(;!(y=p(h()));)f();return c(),y}}function su(t,e,n={}){if(!t||typeof t!="object")throw new Error("expected valid options object");function r(i,s,o){const a=t[i];if(o&&a===void 0)return;const c=typeof a;if(c!==s||a===null)throw new Error(`param "${i}" is invalid: expected ${s}, got ${c}`)}Object.entries(e).forEach(([i,s])=>r(i,s,!1)),Object.entries(n).forEach(([i,s])=>r(i,s,!0))}function Ud(t){const e=new WeakMap;return(n,...r)=>{const i=e.get(n);if(i!==void 0)return i;const s=t(n,...r);return e.set(n,s),s}}const Et=BigInt(0),dt=BigInt(1),Zr=BigInt(2),Cd=BigInt(3),Pd=BigInt(4),qd=BigInt(5),yv=BigInt(7),Fd=BigInt(8),bv=BigInt(9),kd=BigInt(16);function $t(t,e){const n=t%e;return n>=Et?n:e+n}function Vt(t,e,n){let r=t;for(;e-- >Et;)r*=r,r%=n;return r}function Ld(t,e){if(t===Et)throw new Error("invert: expected non-zero number");if(e<=Et)throw new Error("invert: expected positive modulus, got "+e);let n=$t(t,e),r=e,i=Et,s=dt;for(;n!==Et;){const a=r/n,c=r%n,u=i-s*a;r=n,n=c,i=s,s=u}if(r!==dt)throw new Error("invert: does not exist");return $t(i,e)}function ou(t,e,n){if(!t.eql(t.sqr(e),n))throw new Error("Cannot find square root")}function Md(t,e){const n=(t.ORDER+dt)/Pd,r=t.pow(e,n);return ou(t,r,e),r}function mv(t,e){const n=(t.ORDER-qd)/Fd,r=t.mul(e,Zr),i=t.pow(r,n),s=t.mul(e,i),o=t.mul(t.mul(s,Zr),i),a=t.mul(s,t.sub(o,t.ONE));return ou(t,a,e),a}function vv(t){const e=Is(t),n=Vd(t),r=n(e,e.neg(e.ONE)),i=n(e,r),s=n(e,e.neg(r)),o=(t+yv)/kd;return(a,c)=>{let u=a.pow(c,o),f=a.mul(u,r);const h=a.mul(u,i),d=a.mul(u,s),l=a.eql(a.sqr(f),c),p=a.eql(a.sqr(h),c);u=a.cmov(u,f,l),f=a.cmov(d,h,p);const y=a.eql(a.sqr(f),c),v=a.cmov(u,f,y);return ou(a,v,c),v}}function Vd(t){if(t<Cd)throw new Error("sqrt is not defined for small field");let e=t-dt,n=0;for(;e%Zr===Et;)e/=Zr,n++;let r=Zr;const i=Is(t);for(;jd(i,r)===1;)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(n===1)return Md;let s=i.pow(r,e);const o=(e+dt)/Zr;return function(c,u){if(c.is0(u))return u;if(jd(c,u)!==1)throw new Error("Cannot find square root");let f=n,h=c.mul(c.ONE,s),d=c.pow(u,e),l=c.pow(u,o);for(;!c.eql(d,c.ONE);){if(c.is0(d))return c.ZERO;let p=1,y=c.sqr(d);for(;!c.eql(y,c.ONE);)if(p++,y=c.sqr(y),p===f)throw new Error("Cannot find square root");const v=dt<<BigInt(f-p-1),D=c.pow(h,v);f=p,h=c.sqr(D),d=c.mul(d,h),l=c.mul(l,D)}return l}}function Ev(t){return t%Pd===Cd?Md:t%Fd===qd?mv:t%kd===bv?vv(t):Vd(t)}const xv=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Sv(t){const e={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},n=xv.reduce((r,i)=>(r[i]="function",r),e);return su(t,n),t}function Iv(t,e,n){if(n<Et)throw new Error("invalid exponent, negatives unsupported");if(n===Et)return t.ONE;if(n===dt)return e;let r=t.ONE,i=e;for(;n>Et;)n&dt&&(r=t.mul(r,i)),i=t.sqr(i),n>>=dt;return r}function zd(t,e,n=!1){const r=new Array(e.length).fill(n?t.ZERO:void 0),i=e.reduce((o,a,c)=>t.is0(a)?o:(r[c]=o,t.mul(o,a)),t.ONE),s=t.inv(i);return e.reduceRight((o,a,c)=>t.is0(a)?o:(r[c]=t.mul(o,r[c]),t.mul(o,a)),s),r}function jd(t,e){const n=(t.ORDER-dt)/Zr,r=t.pow(e,n),i=t.eql(r,t.ONE),s=t.eql(r,t.ZERO),o=t.eql(r,t.neg(t.ONE));if(!i&&!s&&!o)throw new Error("invalid Legendre symbol result");return i?1:s?0:-1}function Wd(t,e){e!==void 0&&Qc(e);const n=e!==void 0?e:t.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function Is(t,e,n=!1,r={}){if(t<=Et)throw new Error("invalid field: expected ORDER > 0, got "+t);let i,s,o=!1,a;if(typeof e=="object"&&e!=null){if(r.sqrt||n)throw new Error("cannot specify opts in two arguments");const d=e;d.BITS&&(i=d.BITS),d.sqrt&&(s=d.sqrt),typeof d.isLE=="boolean"&&(n=d.isLE),typeof d.modFromBytes=="boolean"&&(o=d.modFromBytes),a=d.allowedLengths}else typeof e=="number"&&(i=e),r.sqrt&&(s=r.sqrt);const{nBitLength:c,nByteLength:u}=Wd(t,i);if(u>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let f;const h=Object.freeze({ORDER:t,isLE:n,BITS:c,BYTES:u,MASK:Ss(c),ZERO:Et,ONE:dt,allowedLengths:a,create:d=>$t(d,t),isValid:d=>{if(typeof d!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof d);return Et<=d&&d<t},is0:d=>d===Et,isValidNot0:d=>!h.is0(d)&&h.isValid(d),isOdd:d=>(d&dt)===dt,neg:d=>$t(-d,t),eql:(d,l)=>d===l,sqr:d=>$t(d*d,t),add:(d,l)=>$t(d+l,t),sub:(d,l)=>$t(d-l,t),mul:(d,l)=>$t(d*l,t),pow:(d,l)=>Iv(h,d,l),div:(d,l)=>$t(d*Ld(l,t),t),sqrN:d=>d*d,addN:(d,l)=>d+l,subN:(d,l)=>d-l,mulN:(d,l)=>d*l,inv:d=>Ld(d,t),sqrt:s||(d=>(f||(f=Ev(t)),f(h,d))),toBytes:d=>n?Td(d,u):ru(d,u),fromBytes:(d,l=!0)=>{if(a){if(!a.includes(d.length)||d.length>u)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+d.length);const y=new Uint8Array(u);y.set(d,n?0:y.length-d.length),d=y}if(d.length!==u)throw new Error("Field.fromBytes: expected "+u+" bytes, got "+d.length);let p=n?Rd(d):Ho(d);if(o&&(p=$t(p,t)),!l&&!h.isValid(p))throw new Error("invalid field element: outside of range 0..ORDER");return p},invertBatch:d=>zd(h,d),cmov:(d,l,p)=>p?l:d});return Object.freeze(h)}function Hd(t){if(typeof t!="bigint")throw new Error("field order must be bigint");const e=t.toString(2).length;return Math.ceil(e/8)}function Yd(t){const e=Hd(t);return e+Math.ceil(e/2)}function Av(t,e,n=!1){const r=t.length,i=Hd(e),s=Yd(e);if(r<16||r<s||r>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+r);const o=n?Rd(t):Ho(t),a=$t(o,e-dt)+dt;return n?Td(a,i):ru(a,i)}function Ov(t,e,n,r){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,n,r);const i=BigInt(32),s=BigInt(4294967295),o=Number(n>>i&s),a=Number(n&s),c=r?4:0,u=r?0:4;t.setUint32(e+c,o,r),t.setUint32(e+u,a,r)}function Bv(t,e,n){return t&e^~t&n}function Dv(t,e,n){return t&e^t&n^e&n}class Rv extends Od{constructor(e,n,r,i){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=n,this.padOffset=r,this.isLE=i,this.buffer=new Uint8Array(e),this.view=_c(this.buffer)}update(e){Mo(this),e=eu(e),Gr(e);const{view:n,buffer:r,blockLen:i}=this,s=e.length;for(let o=0;o<s;){const a=Math.min(i-this.pos,s-o);if(a===i){const c=_c(e);for(;i<=s-o;o+=i)this.process(c,o);continue}r.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Mo(this),lv(e,this),this.finished=!0;const{buffer:n,view:r,blockLen:i,isLE:s}=this;let{pos:o}=this;n[o++]=128,Vo(this.buffer.subarray(o)),this.padOffset>i-o&&(this.process(r,0),o=0);for(let h=o;h<i;h++)n[h]=0;Ov(r,i-8,BigInt(this.length*8),s),this.process(r,0);const a=_c(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let h=0;h<u;h++)a.setUint32(4*h,f[h],s)}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:n,buffer:r,length:i,finished:s,destroyed:o,pos:a}=this;return e.destroyed=o,e.finished=s,e.length=i,e.pos=a,i%n&&e.buffer.set(r),e}clone(){return this._cloneInto()}}const br=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Tv=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),mr=new Uint32Array(64);class Nv extends Rv{constructor(e=32){super(64,e,8,!1),this.A=br[0]|0,this.B=br[1]|0,this.C=br[2]|0,this.D=br[3]|0,this.E=br[4]|0,this.F=br[5]|0,this.G=br[6]|0,this.H=br[7]|0}get(){const{A:e,B:n,C:r,D:i,E:s,F:o,G:a,H:c}=this;return[e,n,r,i,s,o,a,c]}set(e,n,r,i,s,o,a,c){this.A=e|0,this.B=n|0,this.C=r|0,this.D=i|0,this.E=s|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,n){for(let h=0;h<16;h++,n+=4)mr[h]=e.getUint32(n,!1);for(let h=16;h<64;h++){const d=mr[h-15],l=mr[h-2],p=hn(d,7)^hn(d,18)^d>>>3,y=hn(l,17)^hn(l,19)^l>>>10;mr[h]=y+mr[h-7]+p+mr[h-16]|0}let{A:r,B:i,C:s,D:o,E:a,F:c,G:u,H:f}=this;for(let h=0;h<64;h++){const d=hn(a,6)^hn(a,11)^hn(a,25),l=f+d+Bv(a,c,u)+Tv[h]+mr[h]|0,y=(hn(r,2)^hn(r,13)^hn(r,22))+Dv(r,i,s)|0;f=u,u=c,c=a,a=o+l|0,o=s,s=i,i=r,r=l+y|0}r=r+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,f=f+this.H|0,this.set(r,i,s,o,a,c,u,f)}roundClean(){Vo(mr)}destroy(){this.set(0,0,0,0,0,0,0,0),Vo(this.buffer)}}const Gd=dv(()=>new Nv);class Kd extends Od{constructor(e,n){super(),this.finished=!1,this.destroyed=!1,Sd(e);const r=eu(n);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const i=this.blockLen,s=new Uint8Array(i);s.set(r.length>i?e.create().update(r).digest():r);for(let o=0;o<s.length;o++)s[o]^=54;this.iHash.update(s),this.oHash=e.create();for(let o=0;o<s.length;o++)s[o]^=106;this.oHash.update(s),Vo(s)}update(e){return Mo(this),this.iHash.update(e),this}digestInto(e){Mo(this),Gr(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:n,iHash:r,finished:i,destroyed:s,blockLen:o,outputLen:a}=this;return e=e,e.finished=i,e.destroyed=s,e.blockLen=o,e.outputLen=a,e.oHash=n._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const Zd=(t,e,n)=>new Kd(t,e).update(n).digest();Zd.create=(t,e)=>new Kd(t,e);const Ti=BigInt(0),Jr=BigInt(1);function Yo(t,e){const n=e.negate();return t?n:e}function au(t,e){const n=zd(t.Fp,e.map(r=>r.Z));return e.map((r,i)=>t.fromAffine(r.toAffine(n[i])))}function Jd(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+t)}function cu(t,e){Jd(t,e);const n=Math.ceil(e/t)+1,r=2**(t-1),i=2**t,s=Ss(t),o=BigInt(t);return{windows:n,windowSize:r,mask:s,maxNumber:i,shiftBy:o}}function Xd(t,e,n){const{windowSize:r,mask:i,maxNumber:s,shiftBy:o}=n;let a=Number(t&i),c=t>>o;a>r&&(a-=s,c+=Jr);const u=e*r,f=u+Math.abs(a)-1,h=a===0,d=a<0,l=e%2!==0;return{nextN:c,offset:f,isZero:h,isNeg:d,isNegF:l,offsetF:u}}function Uv(t,e){if(!Array.isArray(t))throw new Error("array expected");t.forEach((n,r)=>{if(!(n instanceof e))throw new Error("invalid point at index "+r)})}function Cv(t,e){if(!Array.isArray(t))throw new Error("array of scalars expected");t.forEach((n,r)=>{if(!e.isValid(n))throw new Error("invalid scalar at index "+r)})}const uu=new WeakMap,Qd=new WeakMap;function fu(t){return Qd.get(t)||1}function _d(t){if(t!==Ti)throw new Error("invalid wNAF")}class Pv{constructor(e,n){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=n}_unsafeLadder(e,n,r=this.ZERO){let i=e;for(;n>Ti;)n&Jr&&(r=r.add(i)),i=i.double(),n>>=Jr;return r}precomputeWindow(e,n){const{windows:r,windowSize:i}=cu(n,this.bits),s=[];let o=e,a=o;for(let c=0;c<r;c++){a=o,s.push(a);for(let u=1;u<i;u++)a=a.add(o),s.push(a);o=a.double()}return s}wNAF(e,n,r){if(!this.Fn.isValid(r))throw new Error("invalid scalar");let i=this.ZERO,s=this.BASE;const o=cu(e,this.bits);for(let a=0;a<o.windows;a++){const{nextN:c,offset:u,isZero:f,isNeg:h,isNegF:d,offsetF:l}=Xd(r,a,o);r=c,f?s=s.add(Yo(d,n[l])):i=i.add(Yo(h,n[u]))}return _d(r),{p:i,f:s}}wNAFUnsafe(e,n,r,i=this.ZERO){const s=cu(e,this.bits);for(let o=0;o<s.windows&&r!==Ti;o++){const{nextN:a,offset:c,isZero:u,isNeg:f}=Xd(r,o,s);if(r=a,!u){const h=n[c];i=i.add(f?h.negate():h)}}return _d(r),i}getPrecomputes(e,n,r){let i=uu.get(n);return i||(i=this.precomputeWindow(n,e),e!==1&&(typeof r=="function"&&(i=r(i)),uu.set(n,i))),i}cached(e,n,r){const i=fu(e);return this.wNAF(i,this.getPrecomputes(i,e,r),n)}unsafe(e,n,r,i){const s=fu(e);return s===1?this._unsafeLadder(e,n,i):this.wNAFUnsafe(s,this.getPrecomputes(s,e,r),n,i)}createCache(e,n){Jd(n,this.bits),Qd.set(e,n),uu.delete(e)}hasCache(e){return fu(e)!==1}}function qv(t,e,n,r){let i=e,s=t.ZERO,o=t.ZERO;for(;n>Ti||r>Ti;)n&Jr&&(s=s.add(i)),r&Jr&&(o=o.add(i)),i=i.double(),n>>=Jr,r>>=Jr;return{p1:s,p2:o}}function Fv(t,e,n,r){Uv(n,t),Cv(r,e);const i=n.length,s=r.length;if(i!==s)throw new Error("arrays of points and scalars must have equal length");const o=t.ZERO,a=Nd(BigInt(i));let c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);const u=Ss(c),f=new Array(Number(u)+1).fill(o),h=Math.floor((e.BITS-1)/c)*c;let d=o;for(let l=h;l>=0;l-=c){f.fill(o);for(let y=0;y<s;y++){const v=r[y],D=Number(v>>BigInt(l)&u);f[D]=f[D].add(n[y])}let p=o;for(let y=f.length-1,v=o;y>0;y--)v=v.add(f[y]),p=p.add(v);if(d=d.add(p),l!==0)for(let y=0;y<c;y++)d=d.double()}return d}function $d(t,e,n){if(e){if(e.ORDER!==t)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return Sv(e),e}else return Is(t,{isLE:n})}function kv(t,e,n={},r){if(r===void 0&&(r=t==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${t} CURVE object`);for(const c of["p","n","h"]){const u=e[c];if(!(typeof u=="bigint"&&u>Ti))throw new Error(`CURVE.${c} must be positive bigint`)}const i=$d(e.p,n.Fp,r),s=$d(e.n,n.Fn,r),a=["Gx","Gy","a",t==="weierstrass"?"b":"d"];for(const c of a)if(!i.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:i,Fn:s}}const e0=(t,e)=>(t+(t>=0?e:-e)/t0)/e;function Lv(t,e,n){const[[r,i],[s,o]]=e,a=e0(o*t,n),c=e0(-i*t,n);let u=t-a*r-c*s,f=-a*i-c*o;const h=u<Fn,d=f<Fn;h&&(u=-u),d&&(f=-f);const l=Ss(Math.ceil(Nd(n)/2))+Ni;if(u<Fn||u>=l||f<Fn||f>=l)throw new Error("splitScalar (endomorphism): failed, k="+t);return{k1neg:h,k1:u,k2neg:d,k2:f}}function lu(t){if(!["compact","recovered","der"].includes(t))throw new Error('Signature format must be "compact", "recovered", or "der"');return t}function hu(t,e){const n={};for(let r of Object.keys(e))n[r]=t[r]===void 0?e[r]:t[r];return jo(n.lowS,"lowS"),jo(n.prehash,"prehash"),n.format!==void 0&&lu(n.format),n}class Mv extends Error{constructor(e=""){super(e)}}const qn={Err:Mv,_tlv:{encode:(t,e)=>{const{Err:n}=qn;if(t<0||t>256)throw new n("tlv.encode: wrong tag");if(e.length&1)throw new n("tlv.encode: unpadded data");const r=e.length/2,i=Wo(r);if(i.length/2&128)throw new n("tlv.encode: long form length too big");const s=r>127?Wo(i.length/2|128):"";return Wo(t)+s+i+e},decode(t,e){const{Err:n}=qn;let r=0;if(t<0||t>256)throw new n("tlv.encode: wrong tag");if(e.length<2||e[r++]!==t)throw new n("tlv.decode: wrong tlv");const i=e[r++],s=!!(i&128);let o=0;if(!s)o=i;else{const c=i&127;if(!c)throw new n("tlv.decode(long): indefinite length not supported");if(c>4)throw new n("tlv.decode(long): byte length is too big");const u=e.subarray(r,r+c);if(u.length!==c)throw new n("tlv.decode: length bytes not complete");if(u[0]===0)throw new n("tlv.decode(long): zero leftmost byte");for(const f of u)o=o<<8|f;if(r+=c,o<128)throw new n("tlv.decode(long): not minimal encoding")}const a=e.subarray(r,r+o);if(a.length!==o)throw new n("tlv.decode: wrong value length");return{v:a,l:e.subarray(r+o)}}},_int:{encode(t){const{Err:e}=qn;if(t<Fn)throw new e("integer: negative integers are not allowed");let n=Wo(t);if(Number.parseInt(n[0],16)&8&&(n="00"+n),n.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return n},decode(t){const{Err:e}=qn;if(t[0]&128)throw new e("invalid signature integer: negative");if(t[0]===0&&!(t[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return Ho(t)}},toSig(t){const{Err:e,_int:n,_tlv:r}=qn,i=vt("signature",t),{v:s,l:o}=r.decode(48,i);if(o.length)throw new e("invalid signature: left bytes after parsing");const{v:a,l:c}=r.decode(2,s),{v:u,l:f}=r.decode(2,c);if(f.length)throw new e("invalid signature: left bytes after parsing");return{r:n.decode(a),s:n.decode(u)}},hexFromSig(t){const{_tlv:e,_int:n}=qn,r=e.encode(2,n.encode(t.r)),i=e.encode(2,n.encode(t.s)),s=r+i;return e.encode(48,s)}},Fn=BigInt(0),Ni=BigInt(1),t0=BigInt(2),Go=BigInt(3),Vv=BigInt(4);function Ui(t,e){const{BYTES:n}=t;let r;if(typeof e=="bigint")r=e;else{let i=vt("private key",e);try{r=t.fromBytes(i)}catch{throw new Error(`invalid private key: expected ui8a of size ${n}, got ${typeof e}`)}}if(!t.isValidNot0(r))throw new Error("invalid private key: out of range [1..N-1]");return r}function zv(t,e={}){const n=kv("weierstrass",t,e),{Fp:r,Fn:i}=n;let s=n.CURVE;const{h:o,n:a}=s;su(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});const{endo:c}=e;if(c&&(!r.is0(s.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');const u=r0(r,i);function f(){if(!r.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function h(E,w,m){const{x:g,y:b}=w.toAffine(),x=r.toBytes(g);if(jo(m,"isCompressed"),m){f();const O=!r.isOdd(b);return yr(n0(O),x)}else return yr(Uint8Array.of(4),x,r.toBytes(b))}function d(E){Kr(E,void 0,"Point");const{publicKey:w,publicKeyUncompressed:m}=u,g=E.length,b=E[0],x=E.subarray(1);if(g===w&&(b===2||b===3)){const O=r.fromBytes(x);if(!r.isValid(O))throw new Error("bad point: is not on curve, wrong x");const B=y(O);let R;try{R=r.sqrt(B)}catch(q){const W=q instanceof Error?": "+q.message:"";throw new Error("bad point: is not on curve, sqrt error"+W)}f();const U=r.isOdd(R);return(b&1)===1!==U&&(R=r.neg(R)),{x:O,y:R}}else if(g===m&&b===4){const O=r.BYTES,B=r.fromBytes(x.subarray(0,O)),R=r.fromBytes(x.subarray(O,O*2));if(!v(B,R))throw new Error("bad point: is not on curve");return{x:B,y:R}}else throw new Error(`bad point: got length ${g}, expected compressed=${w} or uncompressed=${m}`)}const l=e.toBytes||h,p=e.fromBytes||d;function y(E){const w=r.sqr(E),m=r.mul(w,E);return r.add(r.add(m,r.mul(E,s.a)),s.b)}function v(E,w){const m=r.sqr(w),g=y(E);return r.eql(m,g)}if(!v(s.Gx,s.Gy))throw new Error("bad curve params: generator point");const D=r.mul(r.pow(s.a,Go),Vv),C=r.mul(r.sqr(s.b),BigInt(27));if(r.is0(r.add(D,C)))throw new Error("bad curve params: a or b");function A(E,w,m=!1){if(!r.isValid(w)||m&&r.is0(w))throw new Error(`bad point coordinate ${E}`);return w}function I(E){if(!(E instanceof T))throw new Error("ProjectivePoint expected")}function S(E){if(!c||!c.basises)throw new Error("no endo");return Lv(E,c.basises,i.ORDER)}const z=Ud((E,w)=>{const{X:m,Y:g,Z:b}=E;if(r.eql(b,r.ONE))return{x:m,y:g};const x=E.is0();w==null&&(w=x?r.ONE:r.inv(b));const O=r.mul(m,w),B=r.mul(g,w),R=r.mul(b,w);if(x)return{x:r.ZERO,y:r.ZERO};if(!r.eql(R,r.ONE))throw new Error("invZ was invalid");return{x:O,y:B}}),M=Ud(E=>{if(E.is0()){if(e.allowInfinityPoint&&!r.is0(E.Y))return;throw new Error("bad point: ZERO")}const{x:w,y:m}=E.toAffine();if(!r.isValid(w)||!r.isValid(m))throw new Error("bad point: x or y not field elements");if(!v(w,m))throw new Error("bad point: equation left != right");if(!E.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function F(E,w,m,g,b){return m=new T(r.mul(m.X,E),m.Y,m.Z),w=Yo(g,w),m=Yo(b,m),w.add(m)}class T{constructor(w,m,g){this.X=A("x",w),this.Y=A("y",m,!0),this.Z=A("z",g),Object.freeze(this)}static CURVE(){return s}static fromAffine(w){const{x:m,y:g}=w||{};if(!w||!r.isValid(m)||!r.isValid(g))throw new Error("invalid affine point");if(w instanceof T)throw new Error("projective point not allowed");return r.is0(m)&&r.is0(g)?T.ZERO:new T(m,g,r.ONE)}static fromBytes(w){const m=T.fromAffine(p(Kr(w,void 0,"point")));return m.assertValidity(),m}static fromHex(w){return T.fromBytes(vt("pointHex",w))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(w=8,m=!0){return H.createCache(this,w),m||this.multiply(Go),this}assertValidity(){M(this)}hasEvenY(){const{y:w}=this.toAffine();if(!r.isOdd)throw new Error("Field doesn't support isOdd");return!r.isOdd(w)}equals(w){I(w);const{X:m,Y:g,Z:b}=this,{X:x,Y:O,Z:B}=w,R=r.eql(r.mul(m,B),r.mul(x,b)),U=r.eql(r.mul(g,B),r.mul(O,b));return R&&U}negate(){return new T(this.X,r.neg(this.Y),this.Z)}double(){const{a:w,b:m}=s,g=r.mul(m,Go),{X:b,Y:x,Z:O}=this;let B=r.ZERO,R=r.ZERO,U=r.ZERO,L=r.mul(b,b),q=r.mul(x,x),W=r.mul(O,O),P=r.mul(b,x);return P=r.add(P,P),U=r.mul(b,O),U=r.add(U,U),B=r.mul(w,U),R=r.mul(g,W),R=r.add(B,R),B=r.sub(q,R),R=r.add(q,R),R=r.mul(B,R),B=r.mul(P,B),U=r.mul(g,U),W=r.mul(w,W),P=r.sub(L,W),P=r.mul(w,P),P=r.add(P,U),U=r.add(L,L),L=r.add(U,L),L=r.add(L,W),L=r.mul(L,P),R=r.add(R,L),W=r.mul(x,O),W=r.add(W,W),L=r.mul(W,P),B=r.sub(B,L),U=r.mul(W,q),U=r.add(U,U),U=r.add(U,U),new T(B,R,U)}add(w){I(w);const{X:m,Y:g,Z:b}=this,{X:x,Y:O,Z:B}=w;let R=r.ZERO,U=r.ZERO,L=r.ZERO;const q=s.a,W=r.mul(s.b,Go);let P=r.mul(m,x),Y=r.mul(g,O),G=r.mul(b,B),V=r.add(m,g),N=r.add(x,O);V=r.mul(V,N),N=r.add(P,Y),V=r.sub(V,N),N=r.add(m,b);let k=r.add(x,B);return N=r.mul(N,k),k=r.add(P,G),N=r.sub(N,k),k=r.add(g,b),R=r.add(O,B),k=r.mul(k,R),R=r.add(Y,G),k=r.sub(k,R),L=r.mul(q,N),R=r.mul(W,G),L=r.add(R,L),R=r.sub(Y,L),L=r.add(Y,L),U=r.mul(R,L),Y=r.add(P,P),Y=r.add(Y,P),G=r.mul(q,G),N=r.mul(W,N),Y=r.add(Y,G),G=r.sub(P,G),G=r.mul(q,G),N=r.add(N,G),P=r.mul(Y,N),U=r.add(U,P),P=r.mul(k,N),R=r.mul(V,R),R=r.sub(R,P),P=r.mul(V,Y),L=r.mul(k,L),L=r.add(L,P),new T(R,U,L)}subtract(w){return this.add(w.negate())}is0(){return this.equals(T.ZERO)}multiply(w){const{endo:m}=e;if(!i.isValidNot0(w))throw new Error("invalid scalar: out of range");let g,b;const x=O=>H.cached(this,O,B=>au(T,B));if(m){const{k1neg:O,k1:B,k2neg:R,k2:U}=S(w),{p:L,f:q}=x(B),{p:W,f:P}=x(U);b=q.add(P),g=F(m.beta,L,W,O,R)}else{const{p:O,f:B}=x(w);g=O,b=B}return au(T,[g,b])[0]}multiplyUnsafe(w){const{endo:m}=e,g=this;if(!i.isValid(w))throw new Error("invalid scalar: out of range");if(w===Fn||g.is0())return T.ZERO;if(w===Ni)return g;if(H.hasCache(this))return this.multiply(w);if(m){const{k1neg:b,k1:x,k2neg:O,k2:B}=S(w),{p1:R,p2:U}=qv(T,g,x,B);return F(m.beta,R,U,b,O)}else return H.unsafe(g,w)}multiplyAndAddUnsafe(w,m,g){const b=this.multiplyUnsafe(m).add(w.multiplyUnsafe(g));return b.is0()?void 0:b}toAffine(w){return z(this,w)}isTorsionFree(){const{isTorsionFree:w}=e;return o===Ni?!0:w?w(T,this):H.unsafe(this,a).is0()}clearCofactor(){const{clearCofactor:w}=e;return o===Ni?this:w?w(T,this):this.multiplyUnsafe(o)}isSmallOrder(){return this.multiplyUnsafe(o).is0()}toBytes(w=!0){return jo(w,"isCompressed"),this.assertValidity(),l(T,this,w)}toHex(w=!0){return Ri(this.toBytes(w))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(w=!0){return this.toBytes(w)}_setWindowSize(w){this.precompute(w)}static normalizeZ(w){return au(T,w)}static msm(w,m){return Fv(T,i,w,m)}static fromPrivateKey(w){return T.BASE.multiply(Ui(i,w))}}T.BASE=new T(s.Gx,s.Gy,r.ONE),T.ZERO=new T(r.ZERO,r.ONE,r.ZERO),T.Fp=r,T.Fn=i;const K=i.BITS,H=new Pv(T,e.endo?Math.ceil(K/2):K);return T.BASE.precompute(8),T}function n0(t){return Uint8Array.of(t?2:3)}function r0(t,e){return{secretKey:e.BYTES,publicKey:1+t.BYTES,publicKeyUncompressed:1+2*t.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function jv(t,e={}){const{Fn:n}=t,r=e.randomBytes||Bd,i=Object.assign(r0(t.Fp,n),{seed:Yd(n.ORDER)});function s(l){try{return!!Ui(n,l)}catch{return!1}}function o(l,p){const{publicKey:y,publicKeyUncompressed:v}=i;try{const D=l.length;return p===!0&&D!==y||p===!1&&D!==v?!1:!!t.fromBytes(l)}catch{return!1}}function a(l=r(i.seed)){return Av(Kr(l,i.seed,"seed"),n.ORDER)}function c(l,p=!0){return t.BASE.multiply(Ui(n,l)).toBytes(p)}function u(l){const p=a(l);return{secretKey:p,publicKey:c(p)}}function f(l){if(typeof l=="bigint")return!1;if(l instanceof t)return!0;const{secretKey:p,publicKey:y,publicKeyUncompressed:v}=i;if(n.allowedLengths||p===y)return;const D=vt("key",l).length;return D===y||D===v}function h(l,p,y=!0){if(f(l)===!0)throw new Error("first arg must be private key");if(f(p)===!1)throw new Error("second arg must be public key");const v=Ui(n,l);return t.fromHex(p).multiply(v).toBytes(y)}return Object.freeze({getPublicKey:c,getSharedSecret:h,keygen:u,Point:t,utils:{isValidSecretKey:s,isValidPublicKey:o,randomSecretKey:a,isValidPrivateKey:s,randomPrivateKey:a,normPrivateKeyToScalar:l=>Ui(n,l),precompute(l=8,p=t.BASE){return p.precompute(l,!1)}},lengths:i})}function Wv(t,e,n={}){Sd(e),su(n,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const r=n.randomBytes||Bd,i=n.hmac||((m,...g)=>Zd(e,m,yr(...g))),{Fp:s,Fn:o}=t,{ORDER:a,BITS:c}=o,{keygen:u,getPublicKey:f,getSharedSecret:h,utils:d,lengths:l}=jv(t,n),p={prehash:!1,lowS:typeof n.lowS=="boolean"?n.lowS:!1,format:void 0,extraEntropy:!1},y="compact";function v(m){const g=a>>Ni;return m>g}function D(m,g){if(!o.isValidNot0(g))throw new Error(`invalid signature ${m}: out of range 1..Point.Fn.ORDER`);return g}function C(m,g){lu(g);const b=l.signature,x=g==="compact"?b:g==="recovered"?b+1:void 0;return Kr(m,x,`${g} signature`)}class A{constructor(g,b,x){this.r=D("r",g),this.s=D("s",b),x!=null&&(this.recovery=x),Object.freeze(this)}static fromBytes(g,b=y){C(g,b);let x;if(b==="der"){const{r:U,s:L}=qn.toSig(Kr(g));return new A(U,L)}b==="recovered"&&(x=g[0],b="compact",g=g.subarray(1));const O=o.BYTES,B=g.subarray(0,O),R=g.subarray(O,O*2);return new A(o.fromBytes(B),o.fromBytes(R),x)}static fromHex(g,b){return this.fromBytes(zo(g),b)}addRecoveryBit(g){return new A(this.r,this.s,g)}recoverPublicKey(g){const b=s.ORDER,{r:x,s:O,recovery:B}=this;if(B==null||![0,1,2,3].includes(B))throw new Error("recovery id invalid");if(a*t0<b&&B>1)throw new Error("recovery id is ambiguous for h>1 curve");const U=B===2||B===3?x+a:x;if(!s.isValid(U))throw new Error("recovery id 2 or 3 invalid");const L=s.toBytes(U),q=t.fromBytes(yr(n0((B&1)===0),L)),W=o.inv(U),P=S(vt("msgHash",g)),Y=o.create(-P*W),G=o.create(O*W),V=t.BASE.multiplyUnsafe(Y).add(q.multiplyUnsafe(G));if(V.is0())throw new Error("point at infinify");return V.assertValidity(),V}hasHighS(){return v(this.s)}toBytes(g=y){if(lu(g),g==="der")return zo(qn.hexFromSig(this));const b=o.toBytes(this.r),x=o.toBytes(this.s);if(g==="recovered"){if(this.recovery==null)throw new Error("recovery bit must be present");return yr(Uint8Array.of(this.recovery),b,x)}return yr(b,x)}toHex(g){return Ri(this.toBytes(g))}assertValidity(){}static fromCompact(g){return A.fromBytes(vt("sig",g),"compact")}static fromDER(g){return A.fromBytes(vt("sig",g),"der")}normalizeS(){return this.hasHighS()?new A(this.r,o.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return Ri(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return Ri(this.toBytes("compact"))}}const I=n.bits2int||function(g){if(g.length>8192)throw new Error("input is too large");const b=Ho(g),x=g.length*8-c;return x>0?b>>BigInt(x):b},S=n.bits2int_modN||function(g){return o.create(I(g))},z=Ss(c);function M(m){return gv("num < 2^"+c,m,Fn,z),o.toBytes(m)}function F(m,g){return Kr(m,void 0,"message"),g?Kr(e(m),void 0,"prehashed message"):m}function T(m,g,b){if(["recovered","canonical"].some(Y=>Y in b))throw new Error("sign() legacy options not supported");const{lowS:x,prehash:O,extraEntropy:B}=hu(b,p);m=F(m,O);const R=S(m),U=Ui(o,g),L=[M(U),M(R)];if(B!=null&&B!==!1){const Y=B===!0?r(l.secretKey):B;L.push(vt("extraEntropy",Y))}const q=yr(...L),W=R;function P(Y){const G=I(Y);if(!o.isValidNot0(G))return;const V=o.inv(G),N=t.BASE.multiply(G).toAffine(),k=o.create(N.x);if(k===Fn)return;const j=o.create(V*o.create(W+k*U));if(j===Fn)return;let Z=(N.x===k?0:2)|Number(N.y&Ni),$=j;return x&&v(j)&&($=o.neg(j),Z^=1),new A(k,$,Z)}return{seed:q,k2sig:P}}function K(m,g,b={}){m=vt("message",m);const{seed:x,k2sig:O}=T(m,g,b);return wv(e.outputLen,o.BYTES,i)(x,O)}function H(m){let g;const b=typeof m=="string"||Lo(m),x=!b&&m!==null&&typeof m=="object"&&typeof m.r=="bigint"&&typeof m.s=="bigint";if(!b&&!x)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(x)g=new A(m.r,m.s);else if(b){try{g=A.fromBytes(vt("sig",m),"der")}catch(O){if(!(O instanceof qn.Err))throw O}if(!g)try{g=A.fromBytes(vt("sig",m),"compact")}catch{return!1}}return g||!1}function E(m,g,b,x={}){const{lowS:O,prehash:B,format:R}=hu(x,p);if(b=vt("publicKey",b),g=F(vt("message",g),B),"strict"in x)throw new Error("options.strict was renamed to lowS");const U=R===void 0?H(m):A.fromBytes(vt("sig",m),R);if(U===!1)return!1;try{const L=t.fromBytes(b);if(O&&U.hasHighS())return!1;const{r:q,s:W}=U,P=S(g),Y=o.inv(W),G=o.create(P*Y),V=o.create(q*Y),N=t.BASE.multiplyUnsafe(G).add(L.multiplyUnsafe(V));return N.is0()?!1:o.create(N.x)===q}catch{return!1}}function w(m,g,b={}){const{prehash:x}=hu(b,p);return g=F(g,x),A.fromBytes(m,"recovered").recoverPublicKey(g).toBytes()}return Object.freeze({keygen:u,getPublicKey:f,getSharedSecret:h,utils:d,lengths:l,Point:t,sign:K,verify:E,recoverPublicKey:w,Signature:A,hash:e})}function Hv(t){const e={a:t.a,b:t.b,p:t.Fp.ORDER,n:t.n,h:t.h,Gx:t.Gx,Gy:t.Gy},n=t.Fp;let r=t.allowedPrivateKeyLengths?Array.from(new Set(t.allowedPrivateKeyLengths.map(o=>Math.ceil(o/2)))):void 0;const i=Is(e.n,{BITS:t.nBitLength,allowedLengths:r,modFromBytes:t.wrapPrivateKey}),s={Fp:n,Fn:i,allowInfinityPoint:t.allowInfinityPoint,endo:t.endo,isTorsionFree:t.isTorsionFree,clearCofactor:t.clearCofactor,fromBytes:t.fromBytes,toBytes:t.toBytes};return{CURVE:e,curveOpts:s}}function Yv(t){const{CURVE:e,curveOpts:n}=Hv(t),r={hmac:t.hmac,randomBytes:t.randomBytes,lowS:t.lowS,bits2int:t.bits2int,bits2int_modN:t.bits2int_modN};return{CURVE:e,curveOpts:n,hash:t.hash,ecdsaOpts:r}}function Gv(t,e){const n=e.Point;return Object.assign({},e,{ProjectivePoint:n,CURVE:Object.assign({},t,Wd(n.Fn.ORDER,n.Fn.BITS))})}function Kv(t){const{CURVE:e,curveOpts:n,hash:r,ecdsaOpts:i}=Yv(t),s=zv(e,n),o=Wv(s,r,i);return Gv(t,o)}function Zv(t,e){const n=r=>Kv({...t,hash:r});return{...n(e),create:n}}$c("HashToScalar-");const du={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},Jv={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},i0=BigInt(2);function Xv(t){const e=du.p,n=BigInt(3),r=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),u=t*t*t%e,f=u*u*t%e,h=Vt(f,n,e)*f%e,d=Vt(h,n,e)*f%e,l=Vt(d,i0,e)*u%e,p=Vt(l,i,e)*l%e,y=Vt(p,s,e)*p%e,v=Vt(y,a,e)*y%e,D=Vt(v,c,e)*v%e,C=Vt(D,a,e)*y%e,A=Vt(C,n,e)*f%e,I=Vt(A,o,e)*p%e,S=Vt(I,r,e)*u%e,z=Vt(S,i0,e);if(!pu.eql(pu.sqr(z),t))throw new Error("Cannot find square root");return z}const pu=Is(du.p,{sqrt:Xv});Zv({...du,Fp:pu,lowS:!0,endo:Jv},Gd);/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */function Ci(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function gu(t,...e){if(!Ci(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error("Uint8Array expected of length "+e+", got length="+t.length)}function s0(t,e){return Array.isArray(e)?e.length===0?!0:t?e.every(n=>typeof n=="string"):e.every(n=>Number.isSafeInteger(n)):!1}function wu(t){if(typeof t!="function")throw new Error("function expected");return!0}function vr(t,e){if(typeof e!="string")throw new Error(`${t}: string expected`);return!0}function Pi(t){if(!Number.isSafeInteger(t))throw new Error(`invalid integer: ${t}`)}function Ko(t){if(!Array.isArray(t))throw new Error("array expected")}function Zo(t,e){if(!s0(!0,e))throw new Error(`${t}: array of strings expected`)}function yu(t,e){if(!s0(!1,e))throw new Error(`${t}: array of numbers expected`)}function xt(...t){const e=s=>s,n=(s,o)=>a=>s(o(a)),r=t.map(s=>s.encode).reduceRight(n,e),i=t.map(s=>s.decode).reduce(n,e);return{encode:r,decode:i}}function Tt(t){const e=typeof t=="string"?t.split(""):t,n=e.length;Zo("alphabet",e);const r=new Map(e.map((i,s)=>[i,s]));return{encode:i=>(Ko(i),i.map(s=>{if(!Number.isSafeInteger(s)||s<0||s>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${s}". Allowed: ${t}`);return e[s]})),decode:i=>(Ko(i),i.map(s=>{vr("alphabet.decode",s);const o=r.get(s);if(o===void 0)throw new Error(`Unknown letter: "${s}". Allowed: ${t}`);return o}))}}function Nt(t=""){return vr("join",t),{encode:e=>(Zo("join.decode",e),e.join(t)),decode:e=>(vr("join.decode",e),e.split(t))}}function Jo(t,e="="){return Pi(t),vr("padding",e),{encode(n){for(Zo("padding.encode",n);n.length*t%8;)n.push(e);return n},decode(n){Zo("padding.decode",n);let r=n.length;if(r*t%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;r>0&&n[r-1]===e;r--)if((r-1)*t%8===0)throw new Error("padding: invalid, string has too much padding");return n.slice(0,r)}}}function o0(t){return wu(t),{encode:e=>e,decode:e=>t(e)}}function a0(t,e,n){if(e<2)throw new Error(`convertRadix: invalid from=${e}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: invalid to=${n}, base cannot be less than 2`);if(Ko(t),!t.length)return[];let r=0;const i=[],s=Array.from(t,a=>{if(Pi(a),a<0||a>=e)throw new Error(`invalid integer: ${a}`);return a}),o=s.length;for(;;){let a=0,c=!0;for(let u=r;u<o;u++){const f=s[u],h=e*a,d=h+f;if(!Number.isSafeInteger(d)||h/e!==a||d-f!==h)throw new Error("convertRadix: carry overflow");const l=d/n;a=d%n;const p=Math.floor(l);if(s[u]=p,!Number.isSafeInteger(p)||p*n+a!==d)throw new Error("convertRadix: carry overflow");if(c)p?c=!1:r=u;else continue}if(i.push(a),c)break}for(let a=0;a<t.length-1&&t[a]===0;a++)i.push(0);return i.reverse()}const c0=(t,e)=>e===0?t:c0(e,t%e),Xo=(t,e)=>t+(e-c0(t,e)),Qo=(()=>{let t=[];for(let e=0;e<40;e++)t.push(2**e);return t})();function bu(t,e,n,r){if(Ko(t),e<=0||e>32)throw new Error(`convertRadix2: wrong from=${e}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(Xo(e,n)>32)throw new Error(`convertRadix2: carry overflow from=${e} to=${n} carryBits=${Xo(e,n)}`);let i=0,s=0;const o=Qo[e],a=Qo[n]-1,c=[];for(const u of t){if(Pi(u),u>=o)throw new Error(`convertRadix2: invalid data word=${u} from=${e}`);if(i=i<<e|u,s+e>32)throw new Error(`convertRadix2: carry overflow pos=${s} from=${e}`);for(s+=e;s>=n;s-=n)c.push((i>>s-n&a)>>>0);const f=Qo[s];if(f===void 0)throw new Error("invalid carry");i&=f-1}if(i=i<<n-s&a,!r&&s>=e)throw new Error("Excess padding");if(!r&&i>0)throw new Error(`Non-zero padding: ${i}`);return r&&s>0&&c.push(i>>>0),c}function Qv(t){Pi(t);const e=2**8;return{encode:n=>{if(!Ci(n))throw new Error("radix.encode input should be Uint8Array");return a0(Array.from(n),e,t)},decode:n=>(yu("radix.decode",n),Uint8Array.from(a0(n,t,e)))}}function zt(t,e=!1){if(Pi(t),t<=0||t>32)throw new Error("radix2: bits should be in (0..32]");if(Xo(8,t)>32||Xo(t,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!Ci(n))throw new Error("radix2.encode input should be Uint8Array");return bu(Array.from(n),8,t,!e)},decode:n=>(yu("radix2.decode",n),Uint8Array.from(bu(n,t,8,e)))}}function u0(t){return wu(t),function(...e){try{return t.apply(null,e)}catch{}}}function _v(t,e){return Pi(t),wu(e),{encode(n){if(!Ci(n))throw new Error("checksum.encode: input should be Uint8Array");const r=e(n).slice(0,t),i=new Uint8Array(n.length+t);return i.set(n),i.set(r,n.length),i},decode(n){if(!Ci(n))throw new Error("checksum.decode: input should be Uint8Array");const r=n.slice(0,-t),i=n.slice(-t),s=e(r).slice(0,t);for(let o=0;o<t;o++)if(s[o]!==i[o])throw new Error("Invalid checksum");return r}}}const $v=xt(zt(5),Tt("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),Jo(5),Nt("")),f0=typeof Uint8Array.from([]).toBase64=="function"&&typeof Uint8Array.fromBase64=="function",l0=(t,e)=>{vr("base64",t);const n=e?/^[A-Za-z0-9=_-]+$/:/^[A-Za-z0-9=+/]+$/,r=e?"base64url":"base64";if(t.length>0&&!n.test(t))throw new Error("invalid base64");return Uint8Array.fromBase64(t,{alphabet:r,lastChunkHandling:"strict"})},mu=t=>xt(Qv(58),Tt(t),Nt("")),qi=mu("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),e3=t=>xt(_v(4,e=>t(t(e))),qi),vu=xt(Tt("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),Nt("")),h0=[996825010,642813549,513874426,1027748829,705979059];function As(t){const e=t>>25;let n=(t&33554431)<<5;for(let r=0;r<h0.length;r++)(e>>r&1)===1&&(n^=h0[r]);return n}function d0(t,e,n=1){const r=t.length;let i=1;for(let s=0;s<r;s++){const o=t.charCodeAt(s);if(o<33||o>126)throw new Error(`Invalid prefix (${t})`);i=As(i)^o>>5}i=As(i);for(let s=0;s<r;s++)i=As(i)^t.charCodeAt(s)&31;for(let s of e)i=As(i)^s;for(let s=0;s<6;s++)i=As(i);return i^=n,vu.encode(bu([i%Qo[30]],30,5,!1))}function p0(t){const e=t==="bech32"?1:734539939,n=zt(5),r=n.decode,i=n.encode,s=u0(r);function o(h,d,l=90){vr("bech32.encode prefix",h),Ci(d)&&(d=Array.from(d)),yu("bech32.encode",d);const p=h.length;if(p===0)throw new TypeError(`Invalid prefix length ${p}`);const y=p+7+d.length;if(l!==!1&&y>l)throw new TypeError(`Length ${y} exceeds limit ${l}`);const v=h.toLowerCase(),D=d0(v,d,e);return`${v}1${vu.encode(d)}${D}`}function a(h,d=90){vr("bech32.decode input",h);const l=h.length;if(l<8||d!==!1&&l>d)throw new TypeError(`invalid string length: ${l} (${h}). Expected (8..${d})`);const p=h.toLowerCase();if(h!==p&&h!==h.toUpperCase())throw new Error("String must be lowercase or uppercase");const y=p.lastIndexOf("1");if(y===0||y===-1)throw new Error('Letter "1" must be present between prefix and data only');const v=p.slice(0,y),D=p.slice(y+1);if(D.length<6)throw new Error("Data must be at least 6 characters long");const C=vu.decode(D).slice(0,-6),A=d0(v,C,e);if(!D.endsWith(A))throw new Error(`Invalid checksum in ${h}: expected "${A}"`);return{prefix:v,words:C}}const c=u0(a);function u(h){const{prefix:d,words:l}=a(h,!1);return{prefix:d,words:l,bytes:r(l)}}function f(h,d){return o(h,i(d))}return{encode:o,decode:a,encodeFromBytes:f,decodeToBytes:u,decodeUnsafe:c,fromWords:r,fromWordsUnsafe:s,toWords:i}}const t3=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",n3={encode(t){return gu(t),t.toHex()},decode(t){return vr("hex",t),Uint8Array.fromHex(t)}};e3(Gd),$c("Bitcoin seed");function r3(t){return l2(i3(t))}function i3(t){const{payload:e,signature:n}=t,{r,s:i,yParity:s}=n,a=new j2.Signature(BigInt(r),BigInt(i)).addRecoveryBit(s).recoverPublicKey(Tc(e).substring(2));return n2(a)}/*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */function g0(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function Eu(t){if(typeof t!="boolean")throw new Error(`boolean expected, not ${t}`)}function xu(t){if(!Number.isSafeInteger(t)||t<0)throw new Error("positive integer expected, got "+t)}function He(t,...e){if(!g0(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error("Uint8Array expected of length "+e+", got length="+t.length)}function Fi(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function Su(t,e){He(t);const n=e.outputLen;if(t.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function Ut(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function kn(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function w0(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}const s3=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function o3(t){if(typeof t!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(t))}function Er(t){if(typeof t=="string")t=o3(t);else if(g0(t))t=_o(t);else throw new Error("Uint8Array expected, got "+typeof t);return t}function a3(t,e){if(e==null||typeof e!="object")throw new Error("options must be defined");return Object.assign(t,e)}function c3(t,e){if(t.length!==e.length)return!1;let n=0;for(let r=0;r<t.length;r++)n|=t[r]^e[r];return n===0}const u3=(t,e)=>{function n(r,...i){if(He(r),!s3)throw new Error("Non little-endian hardware is not yet supported");if(t.nonceLength!==void 0){const f=i[0];if(!f)throw new Error("nonce / iv required");t.varSizeNonce?He(f):He(f,t.nonceLength)}const s=t.tagLength;s&&i[1]!==void 0&&He(i[1]);const o=e(r,...i),a=(f,h)=>{if(h!==void 0){if(f!==2)throw new Error("cipher output not supported");He(h)}};let c=!1;return{encrypt(f,h){if(c)throw new Error("cannot encrypt() twice with same key + nonce");return c=!0,He(f),a(o.encrypt.length,h),o.encrypt(f,h)},decrypt(f,h){if(He(f),s&&f.length<s)throw new Error("invalid ciphertext length: smaller than tagLength="+s);return a(o.decrypt.length,h),o.decrypt(f,h)}}}return Object.assign(n,t),n};function y0(t,e,n=!0){if(e===void 0)return new Uint8Array(t);if(e.length!==t)throw new Error("invalid output length, expected "+t+", got: "+e.length);if(n&&!l3(e))throw new Error("invalid output, must be aligned");return e}function b0(t,e,n,r){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,n,r);const i=BigInt(32),s=BigInt(4294967295),o=Number(n>>i&s),a=Number(n&s),c=r?4:0,u=r?0:4;t.setUint32(e+c,o,r),t.setUint32(e+u,a,r)}function f3(t,e,n){Eu(n);const r=new Uint8Array(16),i=w0(r);return b0(i,0,BigInt(e),n),b0(i,8,BigInt(t),n),r}function l3(t){return t.byteOffset%4===0}function _o(t){return Uint8Array.from(t)}const Ln=16,Iu=new Uint8Array(16),dn=Ut(Iu),h3=225,d3=(t,e,n,r)=>{const i=r&1;return{s3:n<<31|r>>>1,s2:e<<31|n>>>1,s1:t<<31|e>>>1,s0:t>>>1^h3<<24&-(i&1)}},jt=t=>(t>>>0&255)<<24|(t>>>8&255)<<16|(t>>>16&255)<<8|t>>>24&255|0;function p3(t){t.reverse();const e=t[15]&1;let n=0;for(let r=0;r<t.length;r++){const i=t[r];t[r]=i>>>1|n,n=(i&1)<<7}return t[0]^=-e&225,t}const g3=t=>t>64*1024?8:t>1024?4:2;class m0{constructor(e,n){this.blockLen=Ln,this.outputLen=Ln,this.s0=0,this.s1=0,this.s2=0,this.s3=0,this.finished=!1,e=Er(e),He(e,16);const r=w0(e);let i=r.getUint32(0,!1),s=r.getUint32(4,!1),o=r.getUint32(8,!1),a=r.getUint32(12,!1);const c=[];for(let p=0;p<128;p++)c.push({s0:jt(i),s1:jt(s),s2:jt(o),s3:jt(a)}),{s0:i,s1:s,s2:o,s3:a}=d3(i,s,o,a);const u=g3(n||1024);if(![1,2,4,8].includes(u))throw new Error("ghash: invalid window size, expected 2, 4 or 8");this.W=u;const h=128/u,d=this.windowSize=2**u,l=[];for(let p=0;p<h;p++)for(let y=0;y<d;y++){let v=0,D=0,C=0,A=0;for(let I=0;I<u;I++){if(!(y>>>u-I-1&1))continue;const{s0:z,s1:M,s2:F,s3:T}=c[u*p+I];v^=z,D^=M,C^=F,A^=T}l.push({s0:v,s1:D,s2:C,s3:A})}this.t=l}_updateBlock(e,n,r,i){e^=this.s0,n^=this.s1,r^=this.s2,i^=this.s3;const{W:s,t:o,windowSize:a}=this;let c=0,u=0,f=0,h=0;const d=(1<<s)-1;let l=0;for(const p of[e,n,r,i])for(let y=0;y<4;y++){const v=p>>>8*y&255;for(let D=8/s-1;D>=0;D--){const C=v>>>s*D&d,{s0:A,s1:I,s2:S,s3:z}=o[l*a+C];c^=A,u^=I,f^=S,h^=z,l+=1}}this.s0=c,this.s1=u,this.s2=f,this.s3=h}update(e){Fi(this),e=Er(e),He(e);const n=Ut(e),r=Math.floor(e.length/Ln),i=e.length%Ln;for(let s=0;s<r;s++)this._updateBlock(n[s*4+0],n[s*4+1],n[s*4+2],n[s*4+3]);return i&&(Iu.set(e.subarray(r*Ln)),this._updateBlock(dn[0],dn[1],dn[2],dn[3]),kn(dn)),this}destroy(){const{t:e}=this;for(const n of e)n.s0=0,n.s1=0,n.s2=0,n.s3=0}digestInto(e){Fi(this),Su(e,this),this.finished=!0;const{s0:n,s1:r,s2:i,s3:s}=this,o=Ut(e);return o[0]=n,o[1]=r,o[2]=i,o[3]=s,e}digest(){const e=new Uint8Array(Ln);return this.digestInto(e),this.destroy(),e}}class w3 extends m0{constructor(e,n){e=Er(e),He(e);const r=p3(_o(e));super(r,n),kn(r)}update(e){e=Er(e),Fi(this);const n=Ut(e),r=e.length%Ln,i=Math.floor(e.length/Ln);for(let s=0;s<i;s++)this._updateBlock(jt(n[s*4+3]),jt(n[s*4+2]),jt(n[s*4+1]),jt(n[s*4+0]));return r&&(Iu.set(e.subarray(i*Ln)),this._updateBlock(jt(dn[3]),jt(dn[2]),jt(dn[1]),jt(dn[0])),kn(dn)),this}digestInto(e){Fi(this),Su(e,this),this.finished=!0;const{s0:n,s1:r,s2:i,s3:s}=this,o=Ut(e);return o[0]=n,o[1]=r,o[2]=i,o[3]=s,e.reverse()}}function v0(t){const e=(r,i)=>t(i,r.length).update(Er(r)).digest(),n=t(new Uint8Array(16),0);return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=(r,i)=>t(r,i),e}v0((t,e)=>new m0(t,e)),v0((t,e)=>new w3(t,e));const E0=lr(BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff")),y3=E0.create(BigInt("-3")),b3=BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b");Uo({a:y3,b:b3,Fp:E0,n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"),h:BigInt(1),lowS:!1},ur);const x0=lr(BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff")),m3=x0.create(BigInt("-3")),v3=BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef");Uo({a:m3,b:v3,Fp:x0,n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f"),h:BigInt(1),lowS:!1},Rh);const S0=lr(BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")),E3=S0.create(BigInt("-3")),x3=BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00");Uo({a:E3,b:x3,Fp:S0,n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650"),h:BigInt(1),lowS:!1,allowedPrivateKeyLengths:[130,131,132]},Dh);var S3={exports:{}};(function(t){var e=Object.prototype.hasOwnProperty,n="~";function r(){}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(n=!1));function i(c,u,f){this.fn=c,this.context=u,this.once=f||!1}function s(c,u,f,h,d){if(typeof f!="function")throw new TypeError("The listener must be a function");var l=new i(f,h||c,d),p=n?n+u:u;return c._events[p]?c._events[p].fn?c._events[p]=[c._events[p],l]:c._events[p].push(l):(c._events[p]=l,c._eventsCount++),c}function o(c,u){--c._eventsCount===0?c._events=new r:delete c._events[u]}function a(){this._events=new r,this._eventsCount=0}a.prototype.eventNames=function(){var u=[],f,h;if(this._eventsCount===0)return u;for(h in f=this._events)e.call(f,h)&&u.push(n?h.slice(1):h);return Object.getOwnPropertySymbols?u.concat(Object.getOwnPropertySymbols(f)):u},a.prototype.listeners=function(u){var f=n?n+u:u,h=this._events[f];if(!h)return[];if(h.fn)return[h.fn];for(var d=0,l=h.length,p=new Array(l);d<l;d++)p[d]=h[d].fn;return p},a.prototype.listenerCount=function(u){var f=n?n+u:u,h=this._events[f];return h?h.fn?1:h.length:0},a.prototype.emit=function(u,f,h,d,l,p){var y=n?n+u:u;if(!this._events[y])return!1;var v=this._events[y],D=arguments.length,C,A;if(v.fn){switch(v.once&&this.removeListener(u,v.fn,void 0,!0),D){case 1:return v.fn.call(v.context),!0;case 2:return v.fn.call(v.context,f),!0;case 3:return v.fn.call(v.context,f,h),!0;case 4:return v.fn.call(v.context,f,h,d),!0;case 5:return v.fn.call(v.context,f,h,d,l),!0;case 6:return v.fn.call(v.context,f,h,d,l,p),!0}for(A=1,C=new Array(D-1);A<D;A++)C[A-1]=arguments[A];v.fn.apply(v.context,C)}else{var I=v.length,S;for(A=0;A<I;A++)switch(v[A].once&&this.removeListener(u,v[A].fn,void 0,!0),D){case 1:v[A].fn.call(v[A].context);break;case 2:v[A].fn.call(v[A].context,f);break;case 3:v[A].fn.call(v[A].context,f,h);break;case 4:v[A].fn.call(v[A].context,f,h,d);break;default:if(!C)for(S=1,C=new Array(D-1);S<D;S++)C[S-1]=arguments[S];v[A].fn.apply(v[A].context,C)}}return!0},a.prototype.on=function(u,f,h){return s(this,u,f,h,!1)},a.prototype.once=function(u,f,h){return s(this,u,f,h,!0)},a.prototype.removeListener=function(u,f,h,d){var l=n?n+u:u;if(!this._events[l])return this;if(!f)return o(this,l),this;var p=this._events[l];if(p.fn)p.fn===f&&(!d||p.once)&&(!h||p.context===h)&&o(this,l);else{for(var y=0,v=[],D=p.length;y<D;y++)(p[y].fn!==f||d&&!p[y].once||h&&p[y].context!==h)&&v.push(p[y]);v.length?this._events[l]=v.length===1?v[0]:v:o(this,l)}return this},a.prototype.removeAllListeners=function(u){var f;return u?(f=n?n+u:u,this._events[f]&&o(this,f)):(this._events=new r,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=n,a.EventEmitter=a,t.exports=a})(S3);function I3(t){const e=t.length;let n=0,r=0;for(;r<e;){let i=t.charCodeAt(r++);if((i&4294967168)===0){n++;continue}else if((i&4294965248)===0)n+=2;else{if(i>=55296&&i<=56319&&r<e){const s=t.charCodeAt(r);(s&64512)===56320&&(++r,i=((i&1023)<<10)+(s&1023)+65536)}(i&4294901760)===0?n+=3:n+=4}}return n}function A3(t,e,n){const r=t.length;let i=n,s=0;for(;s<r;){let o=t.charCodeAt(s++);if((o&4294967168)===0){e[i++]=o;continue}else if((o&4294965248)===0)e[i++]=o>>6&31|192;else{if(o>=55296&&o<=56319&&s<r){const a=t.charCodeAt(s);(a&64512)===56320&&(++s,o=((o&1023)<<10)+(a&1023)+65536)}(o&4294901760)===0?(e[i++]=o>>12&15|224,e[i++]=o>>6&63|128):(e[i++]=o>>18&7|240,e[i++]=o>>12&63|128,e[i++]=o>>6&63|128)}e[i++]=o&63|128}}const O3=new TextEncoder,B3=50;function D3(t,e,n){O3.encodeInto(t,e.subarray(n))}function R3(t,e,n){t.length>B3?D3(t,e,n):A3(t,e,n)}const T3=4096;function I0(t,e,n){let r=e;const i=r+n,s=[];let o="";for(;r<i;){const a=t[r++];if((a&128)===0)s.push(a);else if((a&224)===192){const c=t[r++]&63;s.push((a&31)<<6|c)}else if((a&240)===224){const c=t[r++]&63,u=t[r++]&63;s.push((a&31)<<12|c<<6|u)}else if((a&248)===240){const c=t[r++]&63,u=t[r++]&63,f=t[r++]&63;let h=(a&7)<<18|c<<12|u<<6|f;h>65535&&(h-=65536,s.push(h>>>10&1023|55296),h=56320|h&1023),s.push(h)}else s.push(a);s.length>=T3&&(o+=String.fromCharCode(...s),s.length=0)}return s.length>0&&(o+=String.fromCharCode(...s)),o}const N3=new TextDecoder,U3=200;function C3(t,e,n){const r=t.subarray(e,e+n);return N3.decode(r)}function P3(t,e,n){return n>U3?C3(t,e,n):I0(t,e,n)}class $o{type;data;constructor(e,n){this.type=e,this.data=n}}class Ct extends Error{constructor(e){super(e);const n=Object.create(Ct.prototype);Object.setPrototypeOf(this,n),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:Ct.name})}}const Os=4294967295;function q3(t,e,n){const r=n/4294967296,i=n;t.setUint32(e,r),t.setUint32(e+4,i)}function A0(t,e,n){const r=Math.floor(n/4294967296),i=n;t.setUint32(e,r),t.setUint32(e+4,i)}function O0(t,e){const n=t.getInt32(e),r=t.getUint32(e+4);return n*4294967296+r}function F3(t,e){const n=t.getUint32(e),r=t.getUint32(e+4);return n*4294967296+r}const k3=-1,L3=4294967296-1,M3=17179869184-1;function V3({sec:t,nsec:e}){if(t>=0&&e>=0&&t<=M3)if(e===0&&t<=L3){const n=new Uint8Array(4);return new DataView(n.buffer).setUint32(0,t),n}else{const n=t/4294967296,r=t&4294967295,i=new Uint8Array(8),s=new DataView(i.buffer);return s.setUint32(0,e<<2|n&3),s.setUint32(4,r),i}else{const n=new Uint8Array(12),r=new DataView(n.buffer);return r.setUint32(0,e),A0(r,4,t),n}}function z3(t){const e=t.getTime(),n=Math.floor(e/1e3),r=(e-n*1e3)*1e6,i=Math.floor(r/1e9);return{sec:n+i,nsec:r-i*1e9}}function j3(t){if(t instanceof Date){const e=z3(t);return V3(e)}else return null}function W3(t){const e=new DataView(t.buffer,t.byteOffset,t.byteLength);switch(t.byteLength){case 4:return{sec:e.getUint32(0),nsec:0};case 8:{const n=e.getUint32(0),r=e.getUint32(4),i=(n&3)*4294967296+r,s=n>>>2;return{sec:i,nsec:s}}case 12:{const n=O0(e,4),r=e.getUint32(0);return{sec:n,nsec:r}}default:throw new Ct(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${t.length}`)}}function H3(t){const e=W3(t);return new Date(e.sec*1e3+e.nsec/1e6)}const Y3={type:k3,encode:j3,decode:H3};class ea{static defaultCodec=new ea;__brand;builtInEncoders=[];builtInDecoders=[];encoders=[];decoders=[];constructor(){this.register(Y3)}register({type:e,encode:n,decode:r}){if(e>=0)this.encoders[e]=n,this.decoders[e]=r;else{const i=-1-e;this.builtInEncoders[i]=n,this.builtInDecoders[i]=r}}tryToEncode(e,n){for(let r=0;r<this.builtInEncoders.length;r++){const i=this.builtInEncoders[r];if(i!=null){const s=i(e,n);if(s!=null){const o=-1-r;return new $o(o,s)}}}for(let r=0;r<this.encoders.length;r++){const i=this.encoders[r];if(i!=null){const s=i(e,n);if(s!=null){const o=r;return new $o(o,s)}}}return e instanceof $o?e:null}decode(e,n,r){const i=n<0?this.builtInDecoders[-1-n]:this.decoders[n];return i?i(e,n,r):new $o(n,e)}}function G3(t){return t instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer}function Au(t){return t instanceof Uint8Array?t:ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):G3(t)?new Uint8Array(t):Uint8Array.from(t)}const K3=100,Z3=2048;class Ou{extensionCodec;context;useBigInt64;maxDepth;initialBufferSize;sortKeys;forceFloat32;ignoreUndefined;forceIntegerToFloat;pos;view;bytes;entered=!1;constructor(e){this.extensionCodec=e?.extensionCodec??ea.defaultCodec,this.context=e?.context,this.useBigInt64=e?.useBigInt64??!1,this.maxDepth=e?.maxDepth??K3,this.initialBufferSize=e?.initialBufferSize??Z3,this.sortKeys=e?.sortKeys??!1,this.forceFloat32=e?.forceFloat32??!1,this.ignoreUndefined=e?.ignoreUndefined??!1,this.forceIntegerToFloat=e?.forceIntegerToFloat??!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}clone(){return new Ou({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,maxDepth:this.maxDepth,initialBufferSize:this.initialBufferSize,sortKeys:this.sortKeys,forceFloat32:this.forceFloat32,ignoreUndefined:this.ignoreUndefined,forceIntegerToFloat:this.forceIntegerToFloat})}reinitializeState(){this.pos=0}encodeSharedRef(e){if(this.entered)return this.clone().encodeSharedRef(e);try{return this.entered=!0,this.reinitializeState(),this.doEncode(e,1),this.bytes.subarray(0,this.pos)}finally{this.entered=!1}}encode(e){if(this.entered)return this.clone().encode(e);try{return this.entered=!0,this.reinitializeState(),this.doEncode(e,1),this.bytes.slice(0,this.pos)}finally{this.entered=!1}}doEncode(e,n){if(n>this.maxDepth)throw new Error(`Too deep objects in depth ${n}`);e==null?this.encodeNil():typeof e=="boolean"?this.encodeBoolean(e):typeof e=="number"?this.forceIntegerToFloat?this.encodeNumberAsFloat(e):this.encodeNumber(e):typeof e=="string"?this.encodeString(e):this.useBigInt64&&typeof e=="bigint"?this.encodeBigInt64(e):this.encodeObject(e,n)}ensureBufferSizeToWrite(e){const n=this.pos+e;this.view.byteLength<n&&this.resizeBuffer(n*2)}resizeBuffer(e){const n=new ArrayBuffer(e),r=new Uint8Array(n),i=new DataView(n);r.set(this.bytes),this.view=i,this.bytes=r}encodeNil(){this.writeU8(192)}encodeBoolean(e){e===!1?this.writeU8(194):this.writeU8(195)}encodeNumber(e){!this.forceIntegerToFloat&&Number.isSafeInteger(e)?e>=0?e<128?this.writeU8(e):e<256?(this.writeU8(204),this.writeU8(e)):e<65536?(this.writeU8(205),this.writeU16(e)):e<4294967296?(this.writeU8(206),this.writeU32(e)):this.useBigInt64?this.encodeNumberAsFloat(e):(this.writeU8(207),this.writeU64(e)):e>=-32?this.writeU8(224|e+32):e>=-128?(this.writeU8(208),this.writeI8(e)):e>=-32768?(this.writeU8(209),this.writeI16(e)):e>=-2147483648?(this.writeU8(210),this.writeI32(e)):this.useBigInt64?this.encodeNumberAsFloat(e):(this.writeU8(211),this.writeI64(e)):this.encodeNumberAsFloat(e)}encodeNumberAsFloat(e){this.forceFloat32?(this.writeU8(202),this.writeF32(e)):(this.writeU8(203),this.writeF64(e))}encodeBigInt64(e){e>=BigInt(0)?(this.writeU8(207),this.writeBigUint64(e)):(this.writeU8(211),this.writeBigInt64(e))}writeStringHeader(e){if(e<32)this.writeU8(160+e);else if(e<256)this.writeU8(217),this.writeU8(e);else if(e<65536)this.writeU8(218),this.writeU16(e);else if(e<4294967296)this.writeU8(219),this.writeU32(e);else throw new Error(`Too long string: ${e} bytes in UTF-8`)}encodeString(e){const r=I3(e);this.ensureBufferSizeToWrite(5+r),this.writeStringHeader(r),R3(e,this.bytes,this.pos),this.pos+=r}encodeObject(e,n){const r=this.extensionCodec.tryToEncode(e,this.context);if(r!=null)this.encodeExtension(r);else if(Array.isArray(e))this.encodeArray(e,n);else if(ArrayBuffer.isView(e))this.encodeBinary(e);else if(typeof e=="object")this.encodeMap(e,n);else throw new Error(`Unrecognized object: ${Object.prototype.toString.apply(e)}`)}encodeBinary(e){const n=e.byteLength;if(n<256)this.writeU8(196),this.writeU8(n);else if(n<65536)this.writeU8(197),this.writeU16(n);else if(n<4294967296)this.writeU8(198),this.writeU32(n);else throw new Error(`Too large binary: ${n}`);const r=Au(e);this.writeU8a(r)}encodeArray(e,n){const r=e.length;if(r<16)this.writeU8(144+r);else if(r<65536)this.writeU8(220),this.writeU16(r);else if(r<4294967296)this.writeU8(221),this.writeU32(r);else throw new Error(`Too large array: ${r}`);for(const i of e)this.doEncode(i,n+1)}countWithoutUndefined(e,n){let r=0;for(const i of n)e[i]!==void 0&&r++;return r}encodeMap(e,n){const r=Object.keys(e);this.sortKeys&&r.sort();const i=this.ignoreUndefined?this.countWithoutUndefined(e,r):r.length;if(i<16)this.writeU8(128+i);else if(i<65536)this.writeU8(222),this.writeU16(i);else if(i<4294967296)this.writeU8(223),this.writeU32(i);else throw new Error(`Too large map object: ${i}`);for(const s of r){const o=e[s];this.ignoreUndefined&&o===void 0||(this.encodeString(s),this.doEncode(o,n+1))}}encodeExtension(e){if(typeof e.data=="function"){const r=e.data(this.pos+6),i=r.length;if(i>=4294967296)throw new Error(`Too large extension object: ${i}`);this.writeU8(201),this.writeU32(i),this.writeI8(e.type),this.writeU8a(r);return}const n=e.data.length;if(n===1)this.writeU8(212);else if(n===2)this.writeU8(213);else if(n===4)this.writeU8(214);else if(n===8)this.writeU8(215);else if(n===16)this.writeU8(216);else if(n<256)this.writeU8(199),this.writeU8(n);else if(n<65536)this.writeU8(200),this.writeU16(n);else if(n<4294967296)this.writeU8(201),this.writeU32(n);else throw new Error(`Too large extension object: ${n}`);this.writeI8(e.type),this.writeU8a(e.data)}writeU8(e){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,e),this.pos++}writeU8a(e){const n=e.length;this.ensureBufferSizeToWrite(n),this.bytes.set(e,this.pos),this.pos+=n}writeI8(e){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,e),this.pos++}writeU16(e){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,e),this.pos+=2}writeI16(e){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,e),this.pos+=2}writeU32(e){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,e),this.pos+=4}writeI32(e){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,e),this.pos+=4}writeF32(e){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,e),this.pos+=4}writeF64(e){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,e),this.pos+=8}writeU64(e){this.ensureBufferSizeToWrite(8),q3(this.view,this.pos,e),this.pos+=8}writeI64(e){this.ensureBufferSizeToWrite(8),A0(this.view,this.pos,e),this.pos+=8}writeBigUint64(e){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,e),this.pos+=8}writeBigInt64(e){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,e),this.pos+=8}}function J3(t,e){return new Ou(e).encodeSharedRef(t)}function Bu(t){return`${t<0?"-":""}0x${Math.abs(t).toString(16).padStart(2,"0")}`}const X3=16,Q3=16;class _3{hit=0;miss=0;caches;maxKeyLength;maxLengthPerKey;constructor(e=X3,n=Q3){this.maxKeyLength=e,this.maxLengthPerKey=n,this.caches=[];for(let r=0;r<this.maxKeyLength;r++)this.caches.push([])}canBeCached(e){return e>0&&e<=this.maxKeyLength}find(e,n,r){const i=this.caches[r-1];e:for(const s of i){const o=s.bytes;for(let a=0;a<r;a++)if(o[a]!==e[n+a])continue e;return s.str}return null}store(e,n){const r=this.caches[e.length-1],i={bytes:e,str:n};r.length>=this.maxLengthPerKey?r[Math.random()*r.length|0]=i:r.push(i)}decode(e,n,r){const i=this.find(e,n,r);if(i!=null)return this.hit++,i;this.miss++;const s=I0(e,n,r),o=Uint8Array.prototype.slice.call(e,n,n+r);return this.store(o,s),s}}const Du="array",Bs="map_key",B0="map_value",$3=t=>{if(typeof t=="string"||typeof t=="number")return t;throw new Ct("The type of key must be string or number but "+typeof t)};class eE{stack=[];stackHeadPosition=-1;get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(e){const n=this.getUninitializedStateFromPool();n.type=Du,n.position=0,n.size=e,n.array=new Array(e)}pushMapState(e){const n=this.getUninitializedStateFromPool();n.type=Bs,n.readCount=0,n.size=e,n.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){const e={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(e)}return this.stack[this.stackHeadPosition]}release(e){if(this.stack[this.stackHeadPosition]!==e)throw new Error("Invalid stack state. Released state is not on top of the stack.");if(e.type===Du){const r=e;r.size=0,r.array=void 0,r.position=0,r.type=void 0}if(e.type===Bs||e.type===B0){const r=e;r.size=0,r.map=void 0,r.readCount=0,r.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}const Ds=-1,Ru=new DataView(new ArrayBuffer(0)),tE=new Uint8Array(Ru.buffer);try{Ru.getInt8(0)}catch(t){if(!(t instanceof RangeError))throw new Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}const D0=new RangeError("Insufficient data"),nE=new _3;class Tu{extensionCodec;context;useBigInt64;rawStrings;maxStrLength;maxBinLength;maxArrayLength;maxMapLength;maxExtLength;keyDecoder;mapKeyConverter;totalPos=0;pos=0;view=Ru;bytes=tE;headByte=Ds;stack=new eE;entered=!1;constructor(e){this.extensionCodec=e?.extensionCodec??ea.defaultCodec,this.context=e?.context,this.useBigInt64=e?.useBigInt64??!1,this.rawStrings=e?.rawStrings??!1,this.maxStrLength=e?.maxStrLength??Os,this.maxBinLength=e?.maxBinLength??Os,this.maxArrayLength=e?.maxArrayLength??Os,this.maxMapLength=e?.maxMapLength??Os,this.maxExtLength=e?.maxExtLength??Os,this.keyDecoder=e?.keyDecoder!==void 0?e.keyDecoder:nE,this.mapKeyConverter=e?.mapKeyConverter??$3}clone(){return new Tu({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,rawStrings:this.rawStrings,maxStrLength:this.maxStrLength,maxBinLength:this.maxBinLength,maxArrayLength:this.maxArrayLength,maxMapLength:this.maxMapLength,maxExtLength:this.maxExtLength,keyDecoder:this.keyDecoder})}reinitializeState(){this.totalPos=0,this.headByte=Ds,this.stack.reset()}setBuffer(e){const n=Au(e);this.bytes=n,this.view=new DataView(n.buffer,n.byteOffset,n.byteLength),this.pos=0}appendBuffer(e){if(this.headByte===Ds&&!this.hasRemaining(1))this.setBuffer(e);else{const n=this.bytes.subarray(this.pos),r=Au(e),i=new Uint8Array(n.length+r.length);i.set(n),i.set(r,n.length),this.setBuffer(i)}}hasRemaining(e){return this.view.byteLength-this.pos>=e}createExtraByteError(e){const{view:n,pos:r}=this;return new RangeError(`Extra ${n.byteLength-r} of ${n.byteLength} byte(s) found at buffer[${e}]`)}decode(e){if(this.entered)return this.clone().decode(e);try{this.entered=!0,this.reinitializeState(),this.setBuffer(e);const n=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return n}finally{this.entered=!1}}*decodeMulti(e){if(this.entered){yield*this.clone().decodeMulti(e);return}try{for(this.entered=!0,this.reinitializeState(),this.setBuffer(e);this.hasRemaining(1);)yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(e){if(this.entered)return this.clone().decodeAsync(e);try{this.entered=!0;let n=!1,r;for await(const a of e){if(n)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(a);try{r=this.doDecodeSync(),n=!0}catch(c){if(!(c instanceof RangeError))throw c}this.totalPos+=this.pos}if(n){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return r}const{headByte:i,pos:s,totalPos:o}=this;throw new RangeError(`Insufficient data in parsing ${Bu(i)} at ${o} (${s} in the current buffer)`)}finally{this.entered=!1}}decodeArrayStream(e){return this.decodeMultiAsync(e,!0)}decodeStream(e){return this.decodeMultiAsync(e,!1)}async*decodeMultiAsync(e,n){if(this.entered){yield*this.clone().decodeMultiAsync(e,n);return}try{this.entered=!0;let r=n,i=-1;for await(const s of e){if(n&&i===0)throw this.createExtraByteError(this.totalPos);this.appendBuffer(s),r&&(i=this.readArraySize(),r=!1,this.complete());try{for(;yield this.doDecodeSync(),--i!==0;);}catch(o){if(!(o instanceof RangeError))throw o}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){e:for(;;){const e=this.readHeadByte();let n;if(e>=224)n=e-256;else if(e<192)if(e<128)n=e;else if(e<144){const i=e-128;if(i!==0){this.pushMapState(i),this.complete();continue e}else n={}}else if(e<160){const i=e-144;if(i!==0){this.pushArrayState(i),this.complete();continue e}else n=[]}else{const i=e-160;n=this.decodeString(i,0)}else if(e===192)n=null;else if(e===194)n=!1;else if(e===195)n=!0;else if(e===202)n=this.readF32();else if(e===203)n=this.readF64();else if(e===204)n=this.readU8();else if(e===205)n=this.readU16();else if(e===206)n=this.readU32();else if(e===207)this.useBigInt64?n=this.readU64AsBigInt():n=this.readU64();else if(e===208)n=this.readI8();else if(e===209)n=this.readI16();else if(e===210)n=this.readI32();else if(e===211)this.useBigInt64?n=this.readI64AsBigInt():n=this.readI64();else if(e===217){const i=this.lookU8();n=this.decodeString(i,1)}else if(e===218){const i=this.lookU16();n=this.decodeString(i,2)}else if(e===219){const i=this.lookU32();n=this.decodeString(i,4)}else if(e===220){const i=this.readU16();if(i!==0){this.pushArrayState(i),this.complete();continue e}else n=[]}else if(e===221){const i=this.readU32();if(i!==0){this.pushArrayState(i),this.complete();continue e}else n=[]}else if(e===222){const i=this.readU16();if(i!==0){this.pushMapState(i),this.complete();continue e}else n={}}else if(e===223){const i=this.readU32();if(i!==0){this.pushMapState(i),this.complete();continue e}else n={}}else if(e===196){const i=this.lookU8();n=this.decodeBinary(i,1)}else if(e===197){const i=this.lookU16();n=this.decodeBinary(i,2)}else if(e===198){const i=this.lookU32();n=this.decodeBinary(i,4)}else if(e===212)n=this.decodeExtension(1,0);else if(e===213)n=this.decodeExtension(2,0);else if(e===214)n=this.decodeExtension(4,0);else if(e===215)n=this.decodeExtension(8,0);else if(e===216)n=this.decodeExtension(16,0);else if(e===199){const i=this.lookU8();n=this.decodeExtension(i,1)}else if(e===200){const i=this.lookU16();n=this.decodeExtension(i,2)}else if(e===201){const i=this.lookU32();n=this.decodeExtension(i,4)}else throw new Ct(`Unrecognized type byte: ${Bu(e)}`);this.complete();const r=this.stack;for(;r.length>0;){const i=r.top();if(i.type===Du)if(i.array[i.position]=n,i.position++,i.position===i.size)n=i.array,r.release(i);else continue e;else if(i.type===Bs){if(n==="__proto__")throw new Ct("The key __proto__ is not allowed");i.key=this.mapKeyConverter(n),i.type=B0;continue e}else if(i.map[i.key]=n,i.readCount++,i.readCount===i.size)n=i.map,r.release(i);else{i.key=null,i.type=Bs;continue e}}return n}}readHeadByte(){return this.headByte===Ds&&(this.headByte=this.readU8()),this.headByte}complete(){this.headByte=Ds}readArraySize(){const e=this.readHeadByte();switch(e){case 220:return this.readU16();case 221:return this.readU32();default:{if(e<160)return e-144;throw new Ct(`Unrecognized array type byte: ${Bu(e)}`)}}}pushMapState(e){if(e>this.maxMapLength)throw new Ct(`Max length exceeded: map length (${e}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(e)}pushArrayState(e){if(e>this.maxArrayLength)throw new Ct(`Max length exceeded: array length (${e}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(e)}decodeString(e,n){return!this.rawStrings||this.stateIsMapKey()?this.decodeUtf8String(e,n):this.decodeBinary(e,n)}decodeUtf8String(e,n){if(e>this.maxStrLength)throw new Ct(`Max length exceeded: UTF-8 byte length (${e}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+n+e)throw D0;const r=this.pos+n;let i;return this.stateIsMapKey()&&this.keyDecoder?.canBeCached(e)?i=this.keyDecoder.decode(this.bytes,r,e):i=P3(this.bytes,r,e),this.pos+=n+e,i}stateIsMapKey(){return this.stack.length>0?this.stack.top().type===Bs:!1}decodeBinary(e,n){if(e>this.maxBinLength)throw new Ct(`Max length exceeded: bin length (${e}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(e+n))throw D0;const r=this.pos+n,i=this.bytes.subarray(r,r+e);return this.pos+=n+e,i}decodeExtension(e,n){if(e>this.maxExtLength)throw new Ct(`Max length exceeded: ext length (${e}) > maxExtLength (${this.maxExtLength})`);const r=this.view.getInt8(this.pos+n),i=this.decodeBinary(e,n+1);return this.extensionCodec.decode(i,r,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){const e=this.view.getUint8(this.pos);return this.pos++,e}readI8(){const e=this.view.getInt8(this.pos);return this.pos++,e}readU16(){const e=this.view.getUint16(this.pos);return this.pos+=2,e}readI16(){const e=this.view.getInt16(this.pos);return this.pos+=2,e}readU32(){const e=this.view.getUint32(this.pos);return this.pos+=4,e}readI32(){const e=this.view.getInt32(this.pos);return this.pos+=4,e}readU64(){const e=F3(this.view,this.pos);return this.pos+=8,e}readI64(){const e=O0(this.view,this.pos);return this.pos+=8,e}readU64AsBigInt(){const e=this.view.getBigUint64(this.pos);return this.pos+=8,e}readI64AsBigInt(){const e=this.view.getBigInt64(this.pos);return this.pos+=8,e}readF32(){const e=this.view.getFloat32(this.pos);return this.pos+=4,e}readF64(){const e=this.view.getFloat64(this.pos);return this.pos+=8,e}}function rE(t,e){return new Tu(e).decode(t)}function Nu(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function R0(t=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?Nu(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function Xr(t,e){e||(e=t.reduce((i,s)=>i+s.length,0));const n=R0(e);let r=0;for(const i of t)n.set(i,r),r+=i.length;return Nu(n)}function iE(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var n=new Uint8Array(256),r=0;r<n.length;r++)n[r]=255;for(var i=0;i<t.length;i++){var s=t.charAt(i),o=s.charCodeAt(0);if(n[o]!==255)throw new TypeError(s+" is ambiguous");n[o]=i}var a=t.length,c=t.charAt(0),u=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);function h(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var y=0,v=0,D=0,C=p.length;D!==C&&p[D]===0;)D++,y++;for(var A=(C-D)*f+1>>>0,I=new Uint8Array(A);D!==C;){for(var S=p[D],z=0,M=A-1;(S!==0||z<v)&&M!==-1;M--,z++)S+=256*I[M]>>>0,I[M]=S%a>>>0,S=S/a>>>0;if(S!==0)throw new Error("Non-zero carry");v=z,D++}for(var F=A-v;F!==A&&I[F]===0;)F++;for(var T=c.repeat(y);F<A;++F)T+=t.charAt(I[F]);return T}function d(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var y=0;if(p[y]!==" "){for(var v=0,D=0;p[y]===c;)v++,y++;for(var C=(p.length-y)*u+1>>>0,A=new Uint8Array(C);p[y];){var I=n[p.charCodeAt(y)];if(I===255)return;for(var S=0,z=C-1;(I!==0||S<D)&&z!==-1;z--,S++)I+=a*A[z]>>>0,A[z]=I%256>>>0,I=I/256>>>0;if(I!==0)throw new Error("Non-zero carry");D=S,y++}if(p[y]!==" "){for(var M=C-D;M!==C&&A[M]===0;)M++;for(var F=new Uint8Array(v+(C-M)),T=v;M!==C;)F[T++]=A[M++];return F}}}function l(p){var y=d(p);if(y)return y;throw new Error(`Non-${e} character`)}return{encode:h,decodeUnsafe:d,decode:l}}var sE=iE,oE=sE;const T0=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")},aE=t=>new TextEncoder().encode(t),cE=t=>new TextDecoder().decode(t);class uE{constructor(e,n,r){this.name=e,this.prefix=n,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}}class fE{constructor(e,n,r){if(this.name=e,this.prefix=n,n.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=n.codePointAt(0),this.baseDecode=r}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return N0(this,e)}}class lE{constructor(e){this.decoders=e}or(e){return N0(this,e)}decode(e){const n=e[0],r=this.decoders[n];if(r)return r.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const N0=(t,e)=>new lE({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}});class hE{constructor(e,n,r,i){this.name=e,this.prefix=n,this.baseEncode=r,this.baseDecode=i,this.encoder=new uE(e,n,r),this.decoder=new fE(e,n,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const ta=({name:t,prefix:e,encode:n,decode:r})=>new hE(t,e,n,r),Rs=({prefix:t,name:e,alphabet:n})=>{const{encode:r,decode:i}=oE(n,e);return ta({prefix:t,name:e,encode:r,decode:s=>T0(i(s))})},dE=(t,e,n,r)=>{const i={};for(let f=0;f<e.length;++f)i[e[f]]=f;let s=t.length;for(;t[s-1]==="=";)--s;const o=new Uint8Array(s*n/8|0);let a=0,c=0,u=0;for(let f=0;f<s;++f){const h=i[t[f]];if(h===void 0)throw new SyntaxError(`Non-${r} character`);c=c<<n|h,a+=n,a>=8&&(a-=8,o[u++]=255&c>>a)}if(a>=n||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o},pE=(t,e,n)=>{const r=e[e.length-1]==="=",i=(1<<n)-1;let s="",o=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],o+=8;o>n;)o-=n,s+=e[i&a>>o];if(o&&(s+=e[i&a<<n-o]),r)for(;s.length*n&7;)s+="=";return s},Ye=({name:t,prefix:e,bitsPerChar:n,alphabet:r})=>ta({prefix:e,name:t,encode(i){return pE(i,r,n)},decode(i){return dE(i,r,n,t)}}),gE=ta({prefix:"\0",name:"identity",encode:t=>cE(t),decode:t=>aE(t)});var wE=Object.freeze({__proto__:null,identity:gE});const yE=Ye({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var bE=Object.freeze({__proto__:null,base2:yE});const mE=Ye({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var vE=Object.freeze({__proto__:null,base8:mE});const EE=Rs({prefix:"9",name:"base10",alphabet:"0123456789"});var xE=Object.freeze({__proto__:null,base10:EE});const SE=Ye({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),IE=Ye({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var AE=Object.freeze({__proto__:null,base16:SE,base16upper:IE});const OE=Ye({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),BE=Ye({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),DE=Ye({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),RE=Ye({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),TE=Ye({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),NE=Ye({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),UE=Ye({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),CE=Ye({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),PE=Ye({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var qE=Object.freeze({__proto__:null,base32:OE,base32upper:BE,base32pad:DE,base32padupper:RE,base32hex:TE,base32hexupper:NE,base32hexpad:UE,base32hexpadupper:CE,base32z:PE});const FE=Rs({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),kE=Rs({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var LE=Object.freeze({__proto__:null,base36:FE,base36upper:kE});const ME=Rs({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),VE=Rs({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var zE=Object.freeze({__proto__:null,base58btc:ME,base58flickr:VE});const jE=Ye({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),WE=Ye({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),HE=Ye({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),YE=Ye({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var GE=Object.freeze({__proto__:null,base64:jE,base64pad:WE,base64url:HE,base64urlpad:YE});const U0=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}"),KE=U0.reduce((t,e,n)=>(t[n]=e,t),[]),ZE=U0.reduce((t,e,n)=>(t[e.codePointAt(0)]=n,t),[]);function JE(t){return t.reduce((e,n)=>(e+=KE[n],e),"")}function XE(t){const e=[];for(const n of t){const r=ZE[n.codePointAt(0)];if(r===void 0)throw new Error(`Non-base256emoji character: ${n}`);e.push(r)}return new Uint8Array(e)}const QE=ta({prefix:"\u{1F680}",name:"base256emoji",encode:JE,decode:XE});var _E=Object.freeze({__proto__:null,base256emoji:QE}),$E=P0,C0=128,e6=127,t6=~e6,n6=Math.pow(2,31);function P0(t,e,n){e=e||[],n=n||0;for(var r=n;t>=n6;)e[n++]=t&255|C0,t/=128;for(;t&t6;)e[n++]=t&255|C0,t>>>=7;return e[n]=t|0,P0.bytes=n-r+1,e}var r6=Uu,i6=128,q0=127;function Uu(t,r){var n=0,r=r||0,i=0,s=r,o,a=t.length;do{if(s>=a)throw Uu.bytes=0,new RangeError("Could not decode varint");o=t[s++],n+=i<28?(o&q0)<<i:(o&q0)*Math.pow(2,i),i+=7}while(o>=i6);return Uu.bytes=s-r,n}var s6=Math.pow(2,7),o6=Math.pow(2,14),a6=Math.pow(2,21),c6=Math.pow(2,28),u6=Math.pow(2,35),f6=Math.pow(2,42),l6=Math.pow(2,49),h6=Math.pow(2,56),d6=Math.pow(2,63),p6=function(t){return t<s6?1:t<o6?2:t<a6?3:t<c6?4:t<u6?5:t<f6?6:t<l6?7:t<h6?8:t<d6?9:10},g6={encode:$E,decode:r6,encodingLength:p6},F0=g6;const k0=(t,e,n=0)=>(F0.encode(t,e,n),e),L0=t=>F0.encodingLength(t),Cu=(t,e)=>{const n=e.byteLength,r=L0(t),i=r+L0(n),s=new Uint8Array(i+n);return k0(t,s,0),k0(n,s,r),s.set(e,i),new w6(t,n,e,s)};class w6{constructor(e,n,r,i){this.code=e,this.size=n,this.digest=r,this.bytes=i}}const M0=({name:t,code:e,encode:n})=>new y6(t,e,n);class y6{constructor(e,n,r){this.name=e,this.code=n,this.encode=r}digest(e){if(e instanceof Uint8Array){const n=this.encode(e);return n instanceof Uint8Array?Cu(this.code,n):n.then(r=>Cu(this.code,r))}else throw Error("Unknown type, must be binary type")}}const V0=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),b6=M0({name:"sha2-256",code:18,encode:V0("SHA-256")}),m6=M0({name:"sha2-512",code:19,encode:V0("SHA-512")});var v6=Object.freeze({__proto__:null,sha256:b6,sha512:m6});const z0=0,E6="identity",j0=T0;var x6=Object.freeze({__proto__:null,identity:{code:z0,name:E6,encode:j0,digest:t=>Cu(z0,j0(t))}});new TextEncoder,new TextDecoder;const W0={...wE,...bE,...vE,...xE,...AE,...qE,...LE,...zE,...GE,..._E};({...v6,...x6});function H0(t,e,n,r){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:n},decoder:{decode:r}}}const Y0=H0("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),Pu=H0("ascii","a",t=>{let e="a";for(let n=0;n<t.length;n++)e+=String.fromCharCode(t[n]);return e},t=>{t=t.substring(1);const e=R0(t.length);for(let n=0;n<t.length;n++)e[n]=t.charCodeAt(n);return e}),G0={utf8:Y0,"utf-8":Y0,hex:W0.base16,latin1:Pu,ascii:Pu,binary:Pu,...W0};function it(t,e="utf8"){const n=G0[e];if(!n)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Nu(globalThis.Buffer.from(t,"utf-8")):n.decoder.decode(`${n.prefix}${t}`)}function Ve(t,e="utf8"){const n=G0[e];if(!n)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):n.encoder.encode(t).substring(1)}const K0=t=>Uint8Array.from(t.split("").map(e=>e.charCodeAt(0))),S6=K0("expand 16-byte k"),I6=K0("expand 32-byte k"),A6=Ut(S6),O6=Ut(I6);function pe(t,e){return t<<e|t>>>32-e}function qu(t){return t.byteOffset%4===0}const na=64,B6=16,Z0=2**32-1,J0=new Uint32Array;function D6(t,e,n,r,i,s,o,a){const c=i.length,u=new Uint8Array(na),f=Ut(u),h=qu(i)&&qu(s),d=h?Ut(i):J0,l=h?Ut(s):J0;for(let p=0;p<c;o++){if(t(e,n,r,f,o,a),o>=Z0)throw new Error("arx: counter overflow");const y=Math.min(na,c-p);if(h&&y===na){const v=p/4;if(p%4!==0)throw new Error("arx: invalid block position");for(let D=0,C;D<B6;D++)C=v+D,l[C]=d[C]^f[D];p+=na;continue}for(let v=0,D;v<y;v++)D=p+v,s[D]=i[D]^u[v];p+=y}}function R6(t,e){const{allowShortKeys:n,extendNonceFn:r,counterLength:i,counterRight:s,rounds:o}=a3({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},e);if(typeof t!="function")throw new Error("core must be a function");return xu(i),xu(o),Eu(s),Eu(n),(a,c,u,f,h=0)=>{He(a),He(c),He(u);const d=u.length;if(f===void 0&&(f=new Uint8Array(d)),He(f),xu(h),h<0||h>=Z0)throw new Error("arx: counter overflow");if(f.length<d)throw new Error(`arx: output (${f.length}) is shorter than data (${d})`);const l=[];let p=a.length,y,v;if(p===32)l.push(y=_o(a)),v=O6;else if(p===16&&n)y=new Uint8Array(32),y.set(a),y.set(a,16),v=A6,l.push(y);else throw new Error(`arx: invalid 32-byte key, got length=${p}`);qu(c)||l.push(c=_o(c));const D=Ut(y);if(r){if(c.length!==24)throw new Error("arx: extended nonce must be 24 bytes");r(v,D,Ut(c.subarray(0,16)),D),c=c.subarray(16)}const C=16-i;if(C!==c.length)throw new Error(`arx: nonce must be ${C} or 16 bytes`);if(C!==12){const I=new Uint8Array(12);I.set(c,s?0:12-c.length),c=I,l.push(c)}const A=Ut(c);return D6(t,v,D,A,u,f,h,o),kn(...l),f}}const Ge=(t,e)=>t[e++]&255|(t[e++]&255)<<8;class T6{constructor(e){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,e=Er(e),He(e,32);const n=Ge(e,0),r=Ge(e,2),i=Ge(e,4),s=Ge(e,6),o=Ge(e,8),a=Ge(e,10),c=Ge(e,12),u=Ge(e,14);this.r[0]=n&8191,this.r[1]=(n>>>13|r<<3)&8191,this.r[2]=(r>>>10|i<<6)&7939,this.r[3]=(i>>>7|s<<9)&8191,this.r[4]=(s>>>4|o<<12)&255,this.r[5]=o>>>1&8190,this.r[6]=(o>>>14|a<<2)&8191,this.r[7]=(a>>>11|c<<5)&8065,this.r[8]=(c>>>8|u<<8)&8191,this.r[9]=u>>>5&127;for(let f=0;f<8;f++)this.pad[f]=Ge(e,16+2*f)}process(e,n,r=!1){const i=r?0:2048,{h:s,r:o}=this,a=o[0],c=o[1],u=o[2],f=o[3],h=o[4],d=o[5],l=o[6],p=o[7],y=o[8],v=o[9],D=Ge(e,n+0),C=Ge(e,n+2),A=Ge(e,n+4),I=Ge(e,n+6),S=Ge(e,n+8),z=Ge(e,n+10),M=Ge(e,n+12),F=Ge(e,n+14);let T=s[0]+(D&8191),K=s[1]+((D>>>13|C<<3)&8191),H=s[2]+((C>>>10|A<<6)&8191),E=s[3]+((A>>>7|I<<9)&8191),w=s[4]+((I>>>4|S<<12)&8191),m=s[5]+(S>>>1&8191),g=s[6]+((S>>>14|z<<2)&8191),b=s[7]+((z>>>11|M<<5)&8191),x=s[8]+((M>>>8|F<<8)&8191),O=s[9]+(F>>>5|i),B=0,R=B+T*a+K*(5*v)+H*(5*y)+E*(5*p)+w*(5*l);B=R>>>13,R&=8191,R+=m*(5*d)+g*(5*h)+b*(5*f)+x*(5*u)+O*(5*c),B+=R>>>13,R&=8191;let U=B+T*c+K*a+H*(5*v)+E*(5*y)+w*(5*p);B=U>>>13,U&=8191,U+=m*(5*l)+g*(5*d)+b*(5*h)+x*(5*f)+O*(5*u),B+=U>>>13,U&=8191;let L=B+T*u+K*c+H*a+E*(5*v)+w*(5*y);B=L>>>13,L&=8191,L+=m*(5*p)+g*(5*l)+b*(5*d)+x*(5*h)+O*(5*f),B+=L>>>13,L&=8191;let q=B+T*f+K*u+H*c+E*a+w*(5*v);B=q>>>13,q&=8191,q+=m*(5*y)+g*(5*p)+b*(5*l)+x*(5*d)+O*(5*h),B+=q>>>13,q&=8191;let W=B+T*h+K*f+H*u+E*c+w*a;B=W>>>13,W&=8191,W+=m*(5*v)+g*(5*y)+b*(5*p)+x*(5*l)+O*(5*d),B+=W>>>13,W&=8191;let P=B+T*d+K*h+H*f+E*u+w*c;B=P>>>13,P&=8191,P+=m*a+g*(5*v)+b*(5*y)+x*(5*p)+O*(5*l),B+=P>>>13,P&=8191;let Y=B+T*l+K*d+H*h+E*f+w*u;B=Y>>>13,Y&=8191,Y+=m*c+g*a+b*(5*v)+x*(5*y)+O*(5*p),B+=Y>>>13,Y&=8191;let G=B+T*p+K*l+H*d+E*h+w*f;B=G>>>13,G&=8191,G+=m*u+g*c+b*a+x*(5*v)+O*(5*y),B+=G>>>13,G&=8191;let V=B+T*y+K*p+H*l+E*d+w*h;B=V>>>13,V&=8191,V+=m*f+g*u+b*c+x*a+O*(5*v),B+=V>>>13,V&=8191;let N=B+T*v+K*y+H*p+E*l+w*d;B=N>>>13,N&=8191,N+=m*h+g*f+b*u+x*c+O*a,B+=N>>>13,N&=8191,B=(B<<2)+B|0,B=B+R|0,R=B&8191,B=B>>>13,U+=B,s[0]=R,s[1]=U,s[2]=L,s[3]=q,s[4]=W,s[5]=P,s[6]=Y,s[7]=G,s[8]=V,s[9]=N}finalize(){const{h:e,pad:n}=this,r=new Uint16Array(10);let i=e[1]>>>13;e[1]&=8191;for(let a=2;a<10;a++)e[a]+=i,i=e[a]>>>13,e[a]&=8191;e[0]+=i*5,i=e[0]>>>13,e[0]&=8191,e[1]+=i,i=e[1]>>>13,e[1]&=8191,e[2]+=i,r[0]=e[0]+5,i=r[0]>>>13,r[0]&=8191;for(let a=1;a<10;a++)r[a]=e[a]+i,i=r[a]>>>13,r[a]&=8191;r[9]-=8192;let s=(i^1)-1;for(let a=0;a<10;a++)r[a]&=s;s=~s;for(let a=0;a<10;a++)e[a]=e[a]&s|r[a];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let o=e[0]+n[0];e[0]=o&65535;for(let a=1;a<8;a++)o=(e[a]+n[a]|0)+(o>>>16)|0,e[a]=o&65535;kn(r)}update(e){Fi(this),e=Er(e),He(e);const{buffer:n,blockLen:r}=this,i=e.length;for(let s=0;s<i;){const o=Math.min(r-this.pos,i-s);if(o===r){for(;r<=i-s;s+=r)this.process(e,s);continue}n.set(e.subarray(s,s+o),this.pos),this.pos+=o,s+=o,this.pos===r&&(this.process(n,0,!1),this.pos=0)}return this}destroy(){kn(this.h,this.r,this.buffer,this.pad)}digestInto(e){Fi(this),Su(e,this),this.finished=!0;const{buffer:n,h:r}=this;let{pos:i}=this;if(i){for(n[i++]=1;i<16;i++)n[i]=0;this.process(n,0,!0)}this.finalize();let s=0;for(let o=0;o<8;o++)e[s++]=r[o]>>>0,e[s++]=r[o]>>>8;return e}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}}function N6(t){const e=(r,i)=>t(i).update(Er(r)).digest(),n=t(new Uint8Array(32));return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=r=>t(r),e}const U6=N6(t=>new T6(t));function C6(t,e,n,r,i,s=20){let o=t[0],a=t[1],c=t[2],u=t[3],f=e[0],h=e[1],d=e[2],l=e[3],p=e[4],y=e[5],v=e[6],D=e[7],C=i,A=n[0],I=n[1],S=n[2],z=o,M=a,F=c,T=u,K=f,H=h,E=d,w=l,m=p,g=y,b=v,x=D,O=C,B=A,R=I,U=S;for(let q=0;q<s;q+=2)z=z+K|0,O=pe(O^z,16),m=m+O|0,K=pe(K^m,12),z=z+K|0,O=pe(O^z,8),m=m+O|0,K=pe(K^m,7),M=M+H|0,B=pe(B^M,16),g=g+B|0,H=pe(H^g,12),M=M+H|0,B=pe(B^M,8),g=g+B|0,H=pe(H^g,7),F=F+E|0,R=pe(R^F,16),b=b+R|0,E=pe(E^b,12),F=F+E|0,R=pe(R^F,8),b=b+R|0,E=pe(E^b,7),T=T+w|0,U=pe(U^T,16),x=x+U|0,w=pe(w^x,12),T=T+w|0,U=pe(U^T,8),x=x+U|0,w=pe(w^x,7),z=z+H|0,U=pe(U^z,16),b=b+U|0,H=pe(H^b,12),z=z+H|0,U=pe(U^z,8),b=b+U|0,H=pe(H^b,7),M=M+E|0,O=pe(O^M,16),x=x+O|0,E=pe(E^x,12),M=M+E|0,O=pe(O^M,8),x=x+O|0,E=pe(E^x,7),F=F+w|0,B=pe(B^F,16),m=m+B|0,w=pe(w^m,12),F=F+w|0,B=pe(B^F,8),m=m+B|0,w=pe(w^m,7),T=T+K|0,R=pe(R^T,16),g=g+R|0,K=pe(K^g,12),T=T+K|0,R=pe(R^T,8),g=g+R|0,K=pe(K^g,7);let L=0;r[L++]=o+z|0,r[L++]=a+M|0,r[L++]=c+F|0,r[L++]=u+T|0,r[L++]=f+K|0,r[L++]=h+H|0,r[L++]=d+E|0,r[L++]=l+w|0,r[L++]=p+m|0,r[L++]=y+g|0,r[L++]=v+b|0,r[L++]=D+x|0,r[L++]=C+O|0,r[L++]=A+B|0,r[L++]=I+R|0,r[L++]=S+U|0}const P6=R6(C6,{counterRight:!1,counterLength:4,allowShortKeys:!1}),q6=new Uint8Array(16),X0=(t,e)=>{t.update(e);const n=e.length%16;n&&t.update(q6.subarray(n))},F6=new Uint8Array(32);function Q0(t,e,n,r,i){const s=t(e,n,F6),o=U6.create(s);i&&X0(o,i),X0(o,r);const a=f3(r.length,i?i.length:0,!0);o.update(a);const c=o.digest();return kn(s,a),c}const _0=u3({blockSize:64,nonceLength:12,tagLength:16},(t=>(e,n,r)=>({encrypt(s,o){const a=s.length;o=y0(a+16,o,!1),o.set(s);const c=o.subarray(0,-16);t(e,n,c,c,1);const u=Q0(t,e,n,c,r);return o.set(u,a),kn(u),o},decrypt(s,o){o=y0(s.length-16,o,!1);const a=s.subarray(0,-16),c=s.subarray(-16),u=Q0(t,e,n,a,r);if(!c3(c,u))throw new Error("invalid tag");return o.set(s.subarray(0,-16)),t(e,n,o,o,1),kn(u),o}}))(P6));function k6(t,e,n){return vo(t),n===void 0&&(n=new Uint8Array(t.outputLen)),bs(t,Xt(n),Xt(e))}const Fu=Uint8Array.from([0]),$0=Uint8Array.of();function L6(t,e,n,r=32){vo(t),fn(r);const i=t.outputLen;if(r>255*i)throw new Error("Length should be <= 255*HashLen");const s=Math.ceil(r/i);n===void 0&&(n=$0);const o=new Uint8Array(s*i),a=bs.create(t,e),c=a._cloneInto(),u=new Uint8Array(a.outputLen);for(let f=0;f<s;f++)Fu[0]=f+1,c.update(f===0?$0:u).update(n).update(Fu).digestInto(u),o.set(u,i*f),a._cloneInto(c);return a.destroy(),c.destroy(),Lt(u,Fu),o.slice(0,r)}const M6=(t,e,n,r,i)=>L6(t,k6(t,e,n),r,i),ku=BigInt(0),Lu=BigInt(1);function ra(t,e=""){if(typeof t!="boolean"){const n=e&&`"${e}"`;throw new Error(n+"expected boolean, got type="+typeof t)}return t}function Qr(t,e,n=""){const r=mo(t),i=t?.length,s=e!==void 0;if(!r||s&&i!==e){const o=n&&`"${n}" `,a=s?` of length ${e}`:"",c=r?`length=${i}`:`type=${typeof t}`;throw new Error(o+"expected Uint8Array"+a+", got "+c)}return t}function ia(t){const e=t.toString(16);return e.length&1?"0"+e:e}function ep(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);return t===""?ku:BigInt("0x"+t)}function sa(t){return ep(Ii(t))}function oa(t){return Jt(t),ep(Ii(Uint8Array.from(t).reverse()))}function Mu(t,e){return Eo(t.toString(16).padStart(e*2,"0"))}function Vu(t,e){return Mu(t,e).reverse()}function st(t,e,n){let r;if(typeof e=="string")try{r=Eo(e)}catch(s){throw new Error(t+" must be hex string or Uint8Array, cause: "+s)}else if(mo(e))r=Uint8Array.from(e);else throw new Error(t+" must be hex string or Uint8Array");const i=r.length;if(typeof n=="number"&&i!==n)throw new Error(t+" of length "+n+" expected, got "+i);return r}const zu=t=>typeof t=="bigint"&&ku<=t;function V6(t,e,n){return zu(t)&&zu(e)&&zu(n)&&e<=t&&t<n}function ju(t,e,n,r){if(!V6(e,n,r))throw new Error("expected valid "+t+": "+n+" <= n < "+r+", got "+e)}function tp(t){let e;for(e=0;t>ku;t>>=Lu,e+=1);return e}const Ts=t=>(Lu<<BigInt(t))-Lu;function z6(t,e,n){if(typeof t!="number"||t<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof n!="function")throw new Error("hmacFn must be a function");const r=l=>new Uint8Array(l),i=l=>Uint8Array.of(l);let s=r(t),o=r(t),a=0;const c=()=>{s.fill(1),o.fill(0),a=0},u=(...l)=>n(o,s,...l),f=(l=r(0))=>{o=u(i(0),l),s=u(),l.length!==0&&(o=u(i(1),l),s=u())},h=()=>{if(a++>=1e3)throw new Error("drbg: tried 1000 values");let l=0;const p=[];for(;l<e;){s=u();const y=s.slice();p.push(y),l+=s.length}return An(...p)};return(l,p)=>{c(),f(l);let y;for(;!(y=p(h()));)f();return c(),y}}function aa(t,e,n={}){if(!t||typeof t!="object")throw new Error("expected valid options object");function r(i,s,o){const a=t[i];if(o&&a===void 0)return;const c=typeof a;if(c!==s||a===null)throw new Error(`param "${i}" is invalid: expected ${s}, got ${c}`)}Object.entries(e).forEach(([i,s])=>r(i,s,!1)),Object.entries(n).forEach(([i,s])=>r(i,s,!0))}function np(t){const e=new WeakMap;return(n,...r)=>{const i=e.get(n);if(i!==void 0)return i;const s=t(n,...r);return e.set(n,s),s}}const St=BigInt(0),pt=BigInt(1),_r=BigInt(2),rp=BigInt(3),ip=BigInt(4),sp=BigInt(5),j6=BigInt(7),op=BigInt(8),W6=BigInt(9),ap=BigInt(16);function Pt(t,e){const n=t%e;return n>=St?n:e+n}function en(t,e,n){let r=t;for(;e-- >St;)r*=r,r%=n;return r}function cp(t,e){if(t===St)throw new Error("invert: expected non-zero number");if(e<=St)throw new Error("invert: expected positive modulus, got "+e);let n=Pt(t,e),r=e,i=St,s=pt;for(;n!==St;){const a=r/n,c=r%n,u=i-s*a;r=n,n=c,i=s,s=u}if(r!==pt)throw new Error("invert: does not exist");return Pt(i,e)}function Wu(t,e,n){if(!t.eql(t.sqr(e),n))throw new Error("Cannot find square root")}function up(t,e){const n=(t.ORDER+pt)/ip,r=t.pow(e,n);return Wu(t,r,e),r}function H6(t,e){const n=(t.ORDER-sp)/op,r=t.mul(e,_r),i=t.pow(r,n),s=t.mul(e,i),o=t.mul(t.mul(s,_r),i),a=t.mul(s,t.sub(o,t.ONE));return Wu(t,a,e),a}function Y6(t){const e=xr(t),n=fp(t),r=n(e,e.neg(e.ONE)),i=n(e,r),s=n(e,e.neg(r)),o=(t+j6)/ap;return(a,c)=>{let u=a.pow(c,o),f=a.mul(u,r);const h=a.mul(u,i),d=a.mul(u,s),l=a.eql(a.sqr(f),c),p=a.eql(a.sqr(h),c);u=a.cmov(u,f,l),f=a.cmov(d,h,p);const y=a.eql(a.sqr(f),c),v=a.cmov(u,f,y);return Wu(a,v,c),v}}function fp(t){if(t<rp)throw new Error("sqrt is not defined for small field");let e=t-pt,n=0;for(;e%_r===St;)e/=_r,n++;let r=_r;const i=xr(t);for(;hp(i,r)===1;)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(n===1)return up;let s=i.pow(r,e);const o=(e+pt)/_r;return function(c,u){if(c.is0(u))return u;if(hp(c,u)!==1)throw new Error("Cannot find square root");let f=n,h=c.mul(c.ONE,s),d=c.pow(u,e),l=c.pow(u,o);for(;!c.eql(d,c.ONE);){if(c.is0(d))return c.ZERO;let p=1,y=c.sqr(d);for(;!c.eql(y,c.ONE);)if(p++,y=c.sqr(y),p===f)throw new Error("Cannot find square root");const v=pt<<BigInt(f-p-1),D=c.pow(h,v);f=p,h=c.sqr(D),d=c.mul(d,h),l=c.mul(l,D)}return l}}function G6(t){return t%ip===rp?up:t%op===sp?H6:t%ap===W6?Y6(t):fp(t)}const K6=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Z6(t){const e={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},n=K6.reduce((r,i)=>(r[i]="function",r),e);return aa(t,n),t}function J6(t,e,n){if(n<St)throw new Error("invalid exponent, negatives unsupported");if(n===St)return t.ONE;if(n===pt)return e;let r=t.ONE,i=e;for(;n>St;)n&pt&&(r=t.mul(r,i)),i=t.sqr(i),n>>=pt;return r}function lp(t,e,n=!1){const r=new Array(e.length).fill(n?t.ZERO:void 0),i=e.reduce((o,a,c)=>t.is0(a)?o:(r[c]=o,t.mul(o,a)),t.ONE),s=t.inv(i);return e.reduceRight((o,a,c)=>t.is0(a)?o:(r[c]=t.mul(o,r[c]),t.mul(o,a)),s),r}function hp(t,e){const n=(t.ORDER-pt)/_r,r=t.pow(e,n),i=t.eql(r,t.ONE),s=t.eql(r,t.ZERO),o=t.eql(r,t.neg(t.ONE));if(!i&&!s&&!o)throw new Error("invalid Legendre symbol result");return i?1:s?0:-1}function dp(t,e){e!==void 0&&fn(e);const n=e!==void 0?e:t.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function xr(t,e,n=!1,r={}){if(t<=St)throw new Error("invalid field: expected ORDER > 0, got "+t);let i,s,o=!1,a;if(typeof e=="object"&&e!=null){if(r.sqrt||n)throw new Error("cannot specify opts in two arguments");const d=e;d.BITS&&(i=d.BITS),d.sqrt&&(s=d.sqrt),typeof d.isLE=="boolean"&&(n=d.isLE),typeof d.modFromBytes=="boolean"&&(o=d.modFromBytes),a=d.allowedLengths}else typeof e=="number"&&(i=e),r.sqrt&&(s=r.sqrt);const{nBitLength:c,nByteLength:u}=dp(t,i);if(u>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let f;const h=Object.freeze({ORDER:t,isLE:n,BITS:c,BYTES:u,MASK:Ts(c),ZERO:St,ONE:pt,allowedLengths:a,create:d=>Pt(d,t),isValid:d=>{if(typeof d!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof d);return St<=d&&d<t},is0:d=>d===St,isValidNot0:d=>!h.is0(d)&&h.isValid(d),isOdd:d=>(d&pt)===pt,neg:d=>Pt(-d,t),eql:(d,l)=>d===l,sqr:d=>Pt(d*d,t),add:(d,l)=>Pt(d+l,t),sub:(d,l)=>Pt(d-l,t),mul:(d,l)=>Pt(d*l,t),pow:(d,l)=>J6(h,d,l),div:(d,l)=>Pt(d*cp(l,t),t),sqrN:d=>d*d,addN:(d,l)=>d+l,subN:(d,l)=>d-l,mulN:(d,l)=>d*l,inv:d=>cp(d,t),sqrt:s||(d=>(f||(f=G6(t)),f(h,d))),toBytes:d=>n?Vu(d,u):Mu(d,u),fromBytes:(d,l=!0)=>{if(a){if(!a.includes(d.length)||d.length>u)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+d.length);const y=new Uint8Array(u);y.set(d,n?0:y.length-d.length),d=y}if(d.length!==u)throw new Error("Field.fromBytes: expected "+u+" bytes, got "+d.length);let p=n?oa(d):sa(d);if(o&&(p=Pt(p,t)),!l&&!h.isValid(p))throw new Error("invalid field element: outside of range 0..ORDER");return p},invertBatch:d=>lp(h,d),cmov:(d,l,p)=>p?l:d});return Object.freeze(h)}function pp(t){if(typeof t!="bigint")throw new Error("field order must be bigint");const e=t.toString(2).length;return Math.ceil(e/8)}function gp(t){const e=pp(t);return e+Math.ceil(e/2)}function X6(t,e,n=!1){const r=t.length,i=pp(e),s=gp(e);if(r<16||r<s||r>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+r);const o=n?oa(t):sa(t),a=Pt(o,e-pt)+pt;return n?Vu(a,i):Mu(a,i)}const ki=BigInt(0),$r=BigInt(1);function ca(t,e){const n=e.negate();return t?n:e}function Hu(t,e){const n=lp(t.Fp,e.map(r=>r.Z));return e.map((r,i)=>t.fromAffine(r.toAffine(n[i])))}function wp(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+t)}function Yu(t,e){wp(t,e);const n=Math.ceil(e/t)+1,r=2**(t-1),i=2**t,s=Ts(t),o=BigInt(t);return{windows:n,windowSize:r,mask:s,maxNumber:i,shiftBy:o}}function yp(t,e,n){const{windowSize:r,mask:i,maxNumber:s,shiftBy:o}=n;let a=Number(t&i),c=t>>o;a>r&&(a-=s,c+=$r);const u=e*r,f=u+Math.abs(a)-1,h=a===0,d=a<0,l=e%2!==0;return{nextN:c,offset:f,isZero:h,isNeg:d,isNegF:l,offsetF:u}}function Q6(t,e){if(!Array.isArray(t))throw new Error("array expected");t.forEach((n,r)=>{if(!(n instanceof e))throw new Error("invalid point at index "+r)})}function _6(t,e){if(!Array.isArray(t))throw new Error("array of scalars expected");t.forEach((n,r)=>{if(!e.isValid(n))throw new Error("invalid scalar at index "+r)})}const Gu=new WeakMap,bp=new WeakMap;function Ku(t){return bp.get(t)||1}function mp(t){if(t!==ki)throw new Error("invalid wNAF")}class $6{constructor(e,n){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=n}_unsafeLadder(e,n,r=this.ZERO){let i=e;for(;n>ki;)n&$r&&(r=r.add(i)),i=i.double(),n>>=$r;return r}precomputeWindow(e,n){const{windows:r,windowSize:i}=Yu(n,this.bits),s=[];let o=e,a=o;for(let c=0;c<r;c++){a=o,s.push(a);for(let u=1;u<i;u++)a=a.add(o),s.push(a);o=a.double()}return s}wNAF(e,n,r){if(!this.Fn.isValid(r))throw new Error("invalid scalar");let i=this.ZERO,s=this.BASE;const o=Yu(e,this.bits);for(let a=0;a<o.windows;a++){const{nextN:c,offset:u,isZero:f,isNeg:h,isNegF:d,offsetF:l}=yp(r,a,o);r=c,f?s=s.add(ca(d,n[l])):i=i.add(ca(h,n[u]))}return mp(r),{p:i,f:s}}wNAFUnsafe(e,n,r,i=this.ZERO){const s=Yu(e,this.bits);for(let o=0;o<s.windows&&r!==ki;o++){const{nextN:a,offset:c,isZero:u,isNeg:f}=yp(r,o,s);if(r=a,!u){const h=n[c];i=i.add(f?h.negate():h)}}return mp(r),i}getPrecomputes(e,n,r){let i=Gu.get(n);return i||(i=this.precomputeWindow(n,e),e!==1&&(typeof r=="function"&&(i=r(i)),Gu.set(n,i))),i}cached(e,n,r){const i=Ku(e);return this.wNAF(i,this.getPrecomputes(i,e,r),n)}unsafe(e,n,r,i){const s=Ku(e);return s===1?this._unsafeLadder(e,n,i):this.wNAFUnsafe(s,this.getPrecomputes(s,e,r),n,i)}createCache(e,n){wp(n,this.bits),bp.set(e,n),Gu.delete(e)}hasCache(e){return Ku(e)!==1}}function e8(t,e,n,r){let i=e,s=t.ZERO,o=t.ZERO;for(;n>ki||r>ki;)n&$r&&(s=s.add(i)),r&$r&&(o=o.add(i)),i=i.double(),n>>=$r,r>>=$r;return{p1:s,p2:o}}function t8(t,e,n,r){Q6(n,t),_6(r,e);const i=n.length,s=r.length;if(i!==s)throw new Error("arrays of points and scalars must have equal length");const o=t.ZERO,a=tp(BigInt(i));let c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);const u=Ts(c),f=new Array(Number(u)+1).fill(o),h=Math.floor((e.BITS-1)/c)*c;let d=o;for(let l=h;l>=0;l-=c){f.fill(o);for(let y=0;y<s;y++){const v=r[y],D=Number(v>>BigInt(l)&u);f[D]=f[D].add(n[y])}let p=o;for(let y=f.length-1,v=o;y>0;y--)v=v.add(f[y]),p=p.add(v);if(d=d.add(p),l!==0)for(let y=0;y<c;y++)d=d.double()}return d}function vp(t,e,n){if(e){if(e.ORDER!==t)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return Z6(e),e}else return xr(t,{isLE:n})}function n8(t,e,n={},r){if(r===void 0&&(r=t==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${t} CURVE object`);for(const c of["p","n","h"]){const u=e[c];if(!(typeof u=="bigint"&&u>ki))throw new Error(`CURVE.${c} must be positive bigint`)}const i=vp(e.p,n.Fp,r),s=vp(e.n,n.Fn,r),a=["Gx","Gy","a",t==="weierstrass"?"b":"d"];for(const c of a)if(!i.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:i,Fn:s}}BigInt(0),BigInt(1),BigInt(2),BigInt(8),yh("HashToScalar-");const Ns=BigInt(0),Li=BigInt(1),ua=BigInt(2);function r8(t){return aa(t,{adjustScalarBytes:"function",powPminus2:"function"}),Object.freeze({...t})}function i8(t){const e=r8(t),{P:n,type:r,adjustScalarBytes:i,powPminus2:s,randomBytes:o}=e,a=r==="x25519";if(!a&&r!=="x448")throw new Error("invalid type");const c=o||On,u=a?255:448,f=a?32:56,h=BigInt(a?9:5),d=BigInt(a?121665:39081),l=a?ua**BigInt(254):ua**BigInt(447),p=a?BigInt(8)*ua**BigInt(251)-Li:BigInt(4)*ua**BigInt(445)-Li,y=l+p+Li,v=w=>Pt(w,n),D=C(h);function C(w){return Vu(v(w),f)}function A(w){const m=st("u coordinate",w,f);return a&&(m[31]&=127),v(oa(m))}function I(w){return oa(i(st("scalar",w,f)))}function S(w,m){const g=F(A(m),I(w));if(g===Ns)throw new Error("invalid private or public key received");return C(g)}function z(w){return S(w,D)}function M(w,m,g){const b=v(w*(m-g));return m=v(m-b),g=v(g+b),{x_2:m,x_3:g}}function F(w,m){ju("u",w,Ns,n),ju("scalar",m,l,y);const g=m,b=w;let x=Li,O=Ns,B=w,R=Li,U=Ns;for(let q=BigInt(u-1);q>=Ns;q--){const W=g>>q&Li;U^=W,{x_2:x,x_3:B}=M(U,x,B),{x_2:O,x_3:R}=M(U,O,R),U=W;const P=x+O,Y=v(P*P),G=x-O,V=v(G*G),N=Y-V,k=B+R,j=B-R,Z=v(j*P),$=v(k*G),_=Z+$,te=Z-$;B=v(_*_),R=v(b*v(te*te)),x=v(Y*V),O=v(N*(Y+v(d*N)))}({x_2:x,x_3:B}=M(U,x,B)),{x_2:O,x_3:R}=M(U,O,R);const L=s(O);return v(x*L)}const T={secretKey:f,publicKey:f,seed:f},K=(w=c(f))=>(Jt(w,T.seed),w);function H(w){const m=K(w);return{secretKey:m,publicKey:z(m)}}return{keygen:H,getSharedSecret:(w,m)=>S(w,m),getPublicKey:w=>z(w),scalarMult:S,scalarMultBase:z,utils:{randomSecretKey:K,randomPrivateKey:K},GuBytes:D.slice(),lengths:T}}const s8=BigInt(1),Ep=BigInt(2),o8=BigInt(3),a8=BigInt(5),c8=BigInt(8),xp=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),u8={p:xp,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:c8,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function f8(t){const e=BigInt(10),n=BigInt(20),r=BigInt(40),i=BigInt(80),s=xp,a=t*t%s*t%s,c=en(a,Ep,s)*a%s,u=en(c,s8,s)*t%s,f=en(u,a8,s)*u%s,h=en(f,e,s)*f%s,d=en(h,n,s)*h%s,l=en(d,r,s)*d%s,p=en(l,i,s)*l%s,y=en(p,i,s)*l%s,v=en(y,e,s)*f%s;return{pow_p_5_8:en(v,Ep,s)*t%s,b2:a}}function l8(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}const h8=xr(u8.p,{isLE:!0}),Zu=(()=>{const t=h8.ORDER;return i8({P:t,type:"x25519",powPminus2:e=>{const{pow_p_5_8:n,b2:r}=f8(e);return Pt(en(n,o8,t)*r,t)},adjustScalarBytes:l8})})(),Sp=(t,e)=>(t+(t>=0?e:-e)/Ip)/e;function d8(t,e,n){const[[r,i],[s,o]]=e,a=Sp(o*t,n),c=Sp(-i*t,n);let u=t-a*r-c*s,f=-a*i-c*o;const h=u<Vn,d=f<Vn;h&&(u=-u),d&&(f=-f);const l=Ts(Math.ceil(tp(n)/2))+Mi;if(u<Vn||u>=l||f<Vn||f>=l)throw new Error("splitScalar (endomorphism): failed, k="+t);return{k1neg:h,k1:u,k2neg:d,k2:f}}function Ju(t){if(!["compact","recovered","der"].includes(t))throw new Error('Signature format must be "compact", "recovered", or "der"');return t}function Xu(t,e){const n={};for(let r of Object.keys(e))n[r]=t[r]===void 0?e[r]:t[r];return ra(n.lowS,"lowS"),ra(n.prehash,"prehash"),n.format!==void 0&&Ju(n.format),n}class p8 extends Error{constructor(e=""){super(e)}}const Mn={Err:p8,_tlv:{encode:(t,e)=>{const{Err:n}=Mn;if(t<0||t>256)throw new n("tlv.encode: wrong tag");if(e.length&1)throw new n("tlv.encode: unpadded data");const r=e.length/2,i=ia(r);if(i.length/2&128)throw new n("tlv.encode: long form length too big");const s=r>127?ia(i.length/2|128):"";return ia(t)+s+i+e},decode(t,e){const{Err:n}=Mn;let r=0;if(t<0||t>256)throw new n("tlv.encode: wrong tag");if(e.length<2||e[r++]!==t)throw new n("tlv.decode: wrong tlv");const i=e[r++],s=!!(i&128);let o=0;if(!s)o=i;else{const c=i&127;if(!c)throw new n("tlv.decode(long): indefinite length not supported");if(c>4)throw new n("tlv.decode(long): byte length is too big");const u=e.subarray(r,r+c);if(u.length!==c)throw new n("tlv.decode: length bytes not complete");if(u[0]===0)throw new n("tlv.decode(long): zero leftmost byte");for(const f of u)o=o<<8|f;if(r+=c,o<128)throw new n("tlv.decode(long): not minimal encoding")}const a=e.subarray(r,r+o);if(a.length!==o)throw new n("tlv.decode: wrong value length");return{v:a,l:e.subarray(r+o)}}},_int:{encode(t){const{Err:e}=Mn;if(t<Vn)throw new e("integer: negative integers are not allowed");let n=ia(t);if(Number.parseInt(n[0],16)&8&&(n="00"+n),n.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return n},decode(t){const{Err:e}=Mn;if(t[0]&128)throw new e("invalid signature integer: negative");if(t[0]===0&&!(t[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return sa(t)}},toSig(t){const{Err:e,_int:n,_tlv:r}=Mn,i=st("signature",t),{v:s,l:o}=r.decode(48,i);if(o.length)throw new e("invalid signature: left bytes after parsing");const{v:a,l:c}=r.decode(2,s),{v:u,l:f}=r.decode(2,c);if(f.length)throw new e("invalid signature: left bytes after parsing");return{r:n.decode(a),s:n.decode(u)}},hexFromSig(t){const{_tlv:e,_int:n}=Mn,r=e.encode(2,n.encode(t.r)),i=e.encode(2,n.encode(t.s)),s=r+i;return e.encode(48,s)}},Vn=BigInt(0),Mi=BigInt(1),Ip=BigInt(2),fa=BigInt(3),g8=BigInt(4);function Vi(t,e){const{BYTES:n}=t;let r;if(typeof e=="bigint")r=e;else{let i=st("private key",e);try{r=t.fromBytes(i)}catch{throw new Error(`invalid private key: expected ui8a of size ${n}, got ${typeof e}`)}}if(!t.isValidNot0(r))throw new Error("invalid private key: out of range [1..N-1]");return r}function w8(t,e={}){const n=n8("weierstrass",t,e),{Fp:r,Fn:i}=n;let s=n.CURVE;const{h:o,n:a}=s;aa(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});const{endo:c}=e;if(c&&(!r.is0(s.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');const u=Op(r,i);function f(){if(!r.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function h(E,w,m){const{x:g,y:b}=w.toAffine(),x=r.toBytes(g);if(ra(m,"isCompressed"),m){f();const O=!r.isOdd(b);return An(Ap(O),x)}else return An(Uint8Array.of(4),x,r.toBytes(b))}function d(E){Qr(E,void 0,"Point");const{publicKey:w,publicKeyUncompressed:m}=u,g=E.length,b=E[0],x=E.subarray(1);if(g===w&&(b===2||b===3)){const O=r.fromBytes(x);if(!r.isValid(O))throw new Error("bad point: is not on curve, wrong x");const B=y(O);let R;try{R=r.sqrt(B)}catch(q){const W=q instanceof Error?": "+q.message:"";throw new Error("bad point: is not on curve, sqrt error"+W)}f();const U=r.isOdd(R);return(b&1)===1!==U&&(R=r.neg(R)),{x:O,y:R}}else if(g===m&&b===4){const O=r.BYTES,B=r.fromBytes(x.subarray(0,O)),R=r.fromBytes(x.subarray(O,O*2));if(!v(B,R))throw new Error("bad point: is not on curve");return{x:B,y:R}}else throw new Error(`bad point: got length ${g}, expected compressed=${w} or uncompressed=${m}`)}const l=e.toBytes||h,p=e.fromBytes||d;function y(E){const w=r.sqr(E),m=r.mul(w,E);return r.add(r.add(m,r.mul(E,s.a)),s.b)}function v(E,w){const m=r.sqr(w),g=y(E);return r.eql(m,g)}if(!v(s.Gx,s.Gy))throw new Error("bad curve params: generator point");const D=r.mul(r.pow(s.a,fa),g8),C=r.mul(r.sqr(s.b),BigInt(27));if(r.is0(r.add(D,C)))throw new Error("bad curve params: a or b");function A(E,w,m=!1){if(!r.isValid(w)||m&&r.is0(w))throw new Error(`bad point coordinate ${E}`);return w}function I(E){if(!(E instanceof T))throw new Error("ProjectivePoint expected")}function S(E){if(!c||!c.basises)throw new Error("no endo");return d8(E,c.basises,i.ORDER)}const z=np((E,w)=>{const{X:m,Y:g,Z:b}=E;if(r.eql(b,r.ONE))return{x:m,y:g};const x=E.is0();w==null&&(w=x?r.ONE:r.inv(b));const O=r.mul(m,w),B=r.mul(g,w),R=r.mul(b,w);if(x)return{x:r.ZERO,y:r.ZERO};if(!r.eql(R,r.ONE))throw new Error("invZ was invalid");return{x:O,y:B}}),M=np(E=>{if(E.is0()){if(e.allowInfinityPoint&&!r.is0(E.Y))return;throw new Error("bad point: ZERO")}const{x:w,y:m}=E.toAffine();if(!r.isValid(w)||!r.isValid(m))throw new Error("bad point: x or y not field elements");if(!v(w,m))throw new Error("bad point: equation left != right");if(!E.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function F(E,w,m,g,b){return m=new T(r.mul(m.X,E),m.Y,m.Z),w=ca(g,w),m=ca(b,m),w.add(m)}class T{constructor(w,m,g){this.X=A("x",w),this.Y=A("y",m,!0),this.Z=A("z",g),Object.freeze(this)}static CURVE(){return s}static fromAffine(w){const{x:m,y:g}=w||{};if(!w||!r.isValid(m)||!r.isValid(g))throw new Error("invalid affine point");if(w instanceof T)throw new Error("projective point not allowed");return r.is0(m)&&r.is0(g)?T.ZERO:new T(m,g,r.ONE)}static fromBytes(w){const m=T.fromAffine(p(Qr(w,void 0,"point")));return m.assertValidity(),m}static fromHex(w){return T.fromBytes(st("pointHex",w))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(w=8,m=!0){return H.createCache(this,w),m||this.multiply(fa),this}assertValidity(){M(this)}hasEvenY(){const{y:w}=this.toAffine();if(!r.isOdd)throw new Error("Field doesn't support isOdd");return!r.isOdd(w)}equals(w){I(w);const{X:m,Y:g,Z:b}=this,{X:x,Y:O,Z:B}=w,R=r.eql(r.mul(m,B),r.mul(x,b)),U=r.eql(r.mul(g,B),r.mul(O,b));return R&&U}negate(){return new T(this.X,r.neg(this.Y),this.Z)}double(){const{a:w,b:m}=s,g=r.mul(m,fa),{X:b,Y:x,Z:O}=this;let B=r.ZERO,R=r.ZERO,U=r.ZERO,L=r.mul(b,b),q=r.mul(x,x),W=r.mul(O,O),P=r.mul(b,x);return P=r.add(P,P),U=r.mul(b,O),U=r.add(U,U),B=r.mul(w,U),R=r.mul(g,W),R=r.add(B,R),B=r.sub(q,R),R=r.add(q,R),R=r.mul(B,R),B=r.mul(P,B),U=r.mul(g,U),W=r.mul(w,W),P=r.sub(L,W),P=r.mul(w,P),P=r.add(P,U),U=r.add(L,L),L=r.add(U,L),L=r.add(L,W),L=r.mul(L,P),R=r.add(R,L),W=r.mul(x,O),W=r.add(W,W),L=r.mul(W,P),B=r.sub(B,L),U=r.mul(W,q),U=r.add(U,U),U=r.add(U,U),new T(B,R,U)}add(w){I(w);const{X:m,Y:g,Z:b}=this,{X:x,Y:O,Z:B}=w;let R=r.ZERO,U=r.ZERO,L=r.ZERO;const q=s.a,W=r.mul(s.b,fa);let P=r.mul(m,x),Y=r.mul(g,O),G=r.mul(b,B),V=r.add(m,g),N=r.add(x,O);V=r.mul(V,N),N=r.add(P,Y),V=r.sub(V,N),N=r.add(m,b);let k=r.add(x,B);return N=r.mul(N,k),k=r.add(P,G),N=r.sub(N,k),k=r.add(g,b),R=r.add(O,B),k=r.mul(k,R),R=r.add(Y,G),k=r.sub(k,R),L=r.mul(q,N),R=r.mul(W,G),L=r.add(R,L),R=r.sub(Y,L),L=r.add(Y,L),U=r.mul(R,L),Y=r.add(P,P),Y=r.add(Y,P),G=r.mul(q,G),N=r.mul(W,N),Y=r.add(Y,G),G=r.sub(P,G),G=r.mul(q,G),N=r.add(N,G),P=r.mul(Y,N),U=r.add(U,P),P=r.mul(k,N),R=r.mul(V,R),R=r.sub(R,P),P=r.mul(V,Y),L=r.mul(k,L),L=r.add(L,P),new T(R,U,L)}subtract(w){return this.add(w.negate())}is0(){return this.equals(T.ZERO)}multiply(w){const{endo:m}=e;if(!i.isValidNot0(w))throw new Error("invalid scalar: out of range");let g,b;const x=O=>H.cached(this,O,B=>Hu(T,B));if(m){const{k1neg:O,k1:B,k2neg:R,k2:U}=S(w),{p:L,f:q}=x(B),{p:W,f:P}=x(U);b=q.add(P),g=F(m.beta,L,W,O,R)}else{const{p:O,f:B}=x(w);g=O,b=B}return Hu(T,[g,b])[0]}multiplyUnsafe(w){const{endo:m}=e,g=this;if(!i.isValid(w))throw new Error("invalid scalar: out of range");if(w===Vn||g.is0())return T.ZERO;if(w===Mi)return g;if(H.hasCache(this))return this.multiply(w);if(m){const{k1neg:b,k1:x,k2neg:O,k2:B}=S(w),{p1:R,p2:U}=e8(T,g,x,B);return F(m.beta,R,U,b,O)}else return H.unsafe(g,w)}multiplyAndAddUnsafe(w,m,g){const b=this.multiplyUnsafe(m).add(w.multiplyUnsafe(g));return b.is0()?void 0:b}toAffine(w){return z(this,w)}isTorsionFree(){const{isTorsionFree:w}=e;return o===Mi?!0:w?w(T,this):H.unsafe(this,a).is0()}clearCofactor(){const{clearCofactor:w}=e;return o===Mi?this:w?w(T,this):this.multiplyUnsafe(o)}isSmallOrder(){return this.multiplyUnsafe(o).is0()}toBytes(w=!0){return ra(w,"isCompressed"),this.assertValidity(),l(T,this,w)}toHex(w=!0){return Ii(this.toBytes(w))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(w=!0){return this.toBytes(w)}_setWindowSize(w){this.precompute(w)}static normalizeZ(w){return Hu(T,w)}static msm(w,m){return t8(T,i,w,m)}static fromPrivateKey(w){return T.BASE.multiply(Vi(i,w))}}T.BASE=new T(s.Gx,s.Gy,r.ONE),T.ZERO=new T(r.ZERO,r.ONE,r.ZERO),T.Fp=r,T.Fn=i;const K=i.BITS,H=new $6(T,e.endo?Math.ceil(K/2):K);return T.BASE.precompute(8),T}function Ap(t){return Uint8Array.of(t?2:3)}function Op(t,e){return{secretKey:e.BYTES,publicKey:1+t.BYTES,publicKeyUncompressed:1+2*t.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function y8(t,e={}){const{Fn:n}=t,r=e.randomBytes||On,i=Object.assign(Op(t.Fp,n),{seed:gp(n.ORDER)});function s(l){try{return!!Vi(n,l)}catch{return!1}}function o(l,p){const{publicKey:y,publicKeyUncompressed:v}=i;try{const D=l.length;return p===!0&&D!==y||p===!1&&D!==v?!1:!!t.fromBytes(l)}catch{return!1}}function a(l=r(i.seed)){return X6(Qr(l,i.seed,"seed"),n.ORDER)}function c(l,p=!0){return t.BASE.multiply(Vi(n,l)).toBytes(p)}function u(l){const p=a(l);return{secretKey:p,publicKey:c(p)}}function f(l){if(typeof l=="bigint")return!1;if(l instanceof t)return!0;const{secretKey:p,publicKey:y,publicKeyUncompressed:v}=i;if(n.allowedLengths||p===y)return;const D=st("key",l).length;return D===y||D===v}function h(l,p,y=!0){if(f(l)===!0)throw new Error("first arg must be private key");if(f(p)===!1)throw new Error("second arg must be public key");const v=Vi(n,l);return t.fromHex(p).multiply(v).toBytes(y)}return Object.freeze({getPublicKey:c,getSharedSecret:h,keygen:u,Point:t,utils:{isValidSecretKey:s,isValidPublicKey:o,randomSecretKey:a,isValidPrivateKey:s,randomPrivateKey:a,normPrivateKeyToScalar:l=>Vi(n,l),precompute(l=8,p=t.BASE){return p.precompute(l,!1)}},lengths:i})}function b8(t,e,n={}){vo(e),aa(n,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const r=n.randomBytes||On,i=n.hmac||((m,...g)=>bs(e,m,An(...g))),{Fp:s,Fn:o}=t,{ORDER:a,BITS:c}=o,{keygen:u,getPublicKey:f,getSharedSecret:h,utils:d,lengths:l}=y8(t,n),p={prehash:!1,lowS:typeof n.lowS=="boolean"?n.lowS:!1,format:void 0,extraEntropy:!1},y="compact";function v(m){const g=a>>Mi;return m>g}function D(m,g){if(!o.isValidNot0(g))throw new Error(`invalid signature ${m}: out of range 1..Point.Fn.ORDER`);return g}function C(m,g){Ju(g);const b=l.signature,x=g==="compact"?b:g==="recovered"?b+1:void 0;return Qr(m,x,`${g} signature`)}class A{constructor(g,b,x){this.r=D("r",g),this.s=D("s",b),x!=null&&(this.recovery=x),Object.freeze(this)}static fromBytes(g,b=y){C(g,b);let x;if(b==="der"){const{r:U,s:L}=Mn.toSig(Qr(g));return new A(U,L)}b==="recovered"&&(x=g[0],b="compact",g=g.subarray(1));const O=o.BYTES,B=g.subarray(0,O),R=g.subarray(O,O*2);return new A(o.fromBytes(B),o.fromBytes(R),x)}static fromHex(g,b){return this.fromBytes(Eo(g),b)}addRecoveryBit(g){return new A(this.r,this.s,g)}recoverPublicKey(g){const b=s.ORDER,{r:x,s:O,recovery:B}=this;if(B==null||![0,1,2,3].includes(B))throw new Error("recovery id invalid");if(a*Ip<b&&B>1)throw new Error("recovery id is ambiguous for h>1 curve");const U=B===2||B===3?x+a:x;if(!s.isValid(U))throw new Error("recovery id 2 or 3 invalid");const L=s.toBytes(U),q=t.fromBytes(An(Ap((B&1)===0),L)),W=o.inv(U),P=S(st("msgHash",g)),Y=o.create(-P*W),G=o.create(O*W),V=t.BASE.multiplyUnsafe(Y).add(q.multiplyUnsafe(G));if(V.is0())throw new Error("point at infinify");return V.assertValidity(),V}hasHighS(){return v(this.s)}toBytes(g=y){if(Ju(g),g==="der")return Eo(Mn.hexFromSig(this));const b=o.toBytes(this.r),x=o.toBytes(this.s);if(g==="recovered"){if(this.recovery==null)throw new Error("recovery bit must be present");return An(Uint8Array.of(this.recovery),b,x)}return An(b,x)}toHex(g){return Ii(this.toBytes(g))}assertValidity(){}static fromCompact(g){return A.fromBytes(st("sig",g),"compact")}static fromDER(g){return A.fromBytes(st("sig",g),"der")}normalizeS(){return this.hasHighS()?new A(this.r,o.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return Ii(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return Ii(this.toBytes("compact"))}}const I=n.bits2int||function(g){if(g.length>8192)throw new Error("input is too large");const b=sa(g),x=g.length*8-c;return x>0?b>>BigInt(x):b},S=n.bits2int_modN||function(g){return o.create(I(g))},z=Ts(c);function M(m){return ju("num < 2^"+c,m,Vn,z),o.toBytes(m)}function F(m,g){return Qr(m,void 0,"message"),g?Qr(e(m),void 0,"prehashed message"):m}function T(m,g,b){if(["recovered","canonical"].some(Y=>Y in b))throw new Error("sign() legacy options not supported");const{lowS:x,prehash:O,extraEntropy:B}=Xu(b,p);m=F(m,O);const R=S(m),U=Vi(o,g),L=[M(U),M(R)];if(B!=null&&B!==!1){const Y=B===!0?r(l.secretKey):B;L.push(st("extraEntropy",Y))}const q=An(...L),W=R;function P(Y){const G=I(Y);if(!o.isValidNot0(G))return;const V=o.inv(G),N=t.BASE.multiply(G).toAffine(),k=o.create(N.x);if(k===Vn)return;const j=o.create(V*o.create(W+k*U));if(j===Vn)return;let Z=(N.x===k?0:2)|Number(N.y&Mi),$=j;return x&&v(j)&&($=o.neg(j),Z^=1),new A(k,$,Z)}return{seed:q,k2sig:P}}function K(m,g,b={}){m=st("message",m);const{seed:x,k2sig:O}=T(m,g,b);return z6(e.outputLen,o.BYTES,i)(x,O)}function H(m){let g;const b=typeof m=="string"||mo(m),x=!b&&m!==null&&typeof m=="object"&&typeof m.r=="bigint"&&typeof m.s=="bigint";if(!b&&!x)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(x)g=new A(m.r,m.s);else if(b){try{g=A.fromBytes(st("sig",m),"der")}catch(O){if(!(O instanceof Mn.Err))throw O}if(!g)try{g=A.fromBytes(st("sig",m),"compact")}catch{return!1}}return g||!1}function E(m,g,b,x={}){const{lowS:O,prehash:B,format:R}=Xu(x,p);if(b=st("publicKey",b),g=F(st("message",g),B),"strict"in x)throw new Error("options.strict was renamed to lowS");const U=R===void 0?H(m):A.fromBytes(st("sig",m),R);if(U===!1)return!1;try{const L=t.fromBytes(b);if(O&&U.hasHighS())return!1;const{r:q,s:W}=U,P=S(g),Y=o.inv(W),G=o.create(P*Y),V=o.create(q*Y),N=t.BASE.multiplyUnsafe(G).add(L.multiplyUnsafe(V));return N.is0()?!1:o.create(N.x)===q}catch{return!1}}function w(m,g,b={}){const{prehash:x}=Xu(b,p);return g=F(g,x),A.fromBytes(m,"recovered").recoverPublicKey(g).toBytes()}return Object.freeze({keygen:u,getPublicKey:f,getSharedSecret:h,utils:d,lengths:l,Point:t,sign:K,verify:E,recoverPublicKey:w,Signature:A,hash:e})}function m8(t){const e={a:t.a,b:t.b,p:t.Fp.ORDER,n:t.n,h:t.h,Gx:t.Gx,Gy:t.Gy},n=t.Fp;let r=t.allowedPrivateKeyLengths?Array.from(new Set(t.allowedPrivateKeyLengths.map(o=>Math.ceil(o/2)))):void 0;const i=xr(e.n,{BITS:t.nBitLength,allowedLengths:r,modFromBytes:t.wrapPrivateKey}),s={Fp:n,Fn:i,allowInfinityPoint:t.allowInfinityPoint,endo:t.endo,isTorsionFree:t.isTorsionFree,clearCofactor:t.clearCofactor,fromBytes:t.fromBytes,toBytes:t.toBytes};return{CURVE:e,curveOpts:s}}function v8(t){const{CURVE:e,curveOpts:n}=m8(t),r={hmac:t.hmac,randomBytes:t.randomBytes,lowS:t.lowS,bits2int:t.bits2int,bits2int_modN:t.bits2int_modN};return{CURVE:e,curveOpts:n,hash:t.hash,ecdsaOpts:r}}function E8(t,e){const n=e.Point;return Object.assign({},e,{ProjectivePoint:n,CURVE:Object.assign({},t,dp(n.Fn.ORDER,n.Fn.BITS))})}function x8(t){const{CURVE:e,curveOpts:n,hash:r,ecdsaOpts:i}=v8(t),s=w8(e,n),o=b8(s,r,i);return E8(t,o)}function Qu(t,e){const n=r=>x8({...t,hash:r});return{...n(e),create:n}}const Bp={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},Dp={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},Rp={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},S8=xr(Bp.p),I8=xr(Dp.p),A8=xr(Rp.p),O8=Qu({...Bp,Fp:S8,lowS:!1},ur);Qu({...Dp,Fp:I8,lowS:!1},Rh),Qu({...Rp,Fp:A8,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},Dh);const B8=O8,D8=t=>JSON.stringify(t,(e,n)=>typeof n=="bigint"?n.toString()+"n":n),R8=t=>{const e=/([\[:])?(\d{17,}|(?:[9](?:[1-9]07199254740991|0[1-9]7199254740991|00[8-9]199254740991|007[2-9]99254740991|007199[3-9]54740991|0071992[6-9]4740991|00719925[5-9]740991|007199254[8-9]40991|0071992547[5-9]0991|00719925474[1-9]991|00719925474099[2-9])))([,\}\]])/g,n=t.replace(e,'$1"$2n"$3');return JSON.parse(n,(r,i)=>typeof i=="string"&&i.match(/^\d+n$/)?BigInt(i.substring(0,i.length-1)):i)};function zi(t){if(typeof t!="string")throw new Error(`Cannot safe json parse value of type ${typeof t}`);try{return R8(t)}catch{return t}}function Us(t){return typeof t=="string"?t:D8(t)||""}function T8(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function Tp(t,...e){if(!T8(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error("Uint8Array expected of length "+e+", got length="+t.length)}function Np(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function N8(t,e){Tp(t);const n=e.outputLen;if(t.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}const ji=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const _u=t=>new DataView(t.buffer,t.byteOffset,t.byteLength);function U8(t){if(typeof t!="string")throw new Error("utf8ToBytes expected string, got "+typeof t);return new Uint8Array(new TextEncoder().encode(t))}function Up(t){return typeof t=="string"&&(t=U8(t)),Tp(t),t}class C8{clone(){return this._cloneInto()}}function P8(t){const e=r=>t().update(Up(r)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function Cp(t=32){if(ji&&typeof ji.getRandomValues=="function")return ji.getRandomValues(new Uint8Array(t));if(ji&&typeof ji.randomBytes=="function")return ji.randomBytes(t);throw new Error("crypto.getRandomValues must be defined")}function q8(t,e,n,r){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,n,r);const i=BigInt(32),s=BigInt(4294967295),o=Number(n>>i&s),a=Number(n&s),c=r?4:0,u=r?0:4;t.setUint32(e+c,o,r),t.setUint32(e+u,a,r)}class F8 extends C8{constructor(e,n,r,i){super(),this.blockLen=e,this.outputLen=n,this.padOffset=r,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=_u(this.buffer)}update(e){Np(this);const{view:n,buffer:r,blockLen:i}=this;e=Up(e);const s=e.length;for(let o=0;o<s;){const a=Math.min(i-this.pos,s-o);if(a===i){const c=_u(e);for(;i<=s-o;o+=i)this.process(c,o);continue}r.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Np(this),N8(e,this),this.finished=!0;const{buffer:n,view:r,blockLen:i,isLE:s}=this;let{pos:o}=this;n[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>i-o&&(this.process(r,0),o=0);for(let h=o;h<i;h++)n[h]=0;q8(r,i-8,BigInt(this.length*8),s),this.process(r,0);const a=_u(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let h=0;h<u;h++)a.setUint32(4*h,f[h],s)}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:n,buffer:r,length:i,finished:s,destroyed:o,pos:a}=this;return e.length=i,e.pos=a,e.finished=s,e.destroyed=o,i%n&&e.buffer.set(r),e}}const la=BigInt(2**32-1),$u=BigInt(32);function Pp(t,e=!1){return e?{h:Number(t&la),l:Number(t>>$u&la)}:{h:Number(t>>$u&la)|0,l:Number(t&la)|0}}function k8(t,e=!1){let n=new Uint32Array(t.length),r=new Uint32Array(t.length);for(let i=0;i<t.length;i++){const{h:s,l:o}=Pp(t[i],e);[n[i],r[i]]=[s,o]}return[n,r]}const L8=(t,e)=>BigInt(t>>>0)<<$u|BigInt(e>>>0),M8=(t,e,n)=>t>>>n,V8=(t,e,n)=>t<<32-n|e>>>n,z8=(t,e,n)=>t>>>n|e<<32-n,j8=(t,e,n)=>t<<32-n|e>>>n,W8=(t,e,n)=>t<<64-n|e>>>n-32,H8=(t,e,n)=>t>>>n-32|e<<64-n,Y8=(t,e)=>e,G8=(t,e)=>t,K8=(t,e,n)=>t<<n|e>>>32-n,Z8=(t,e,n)=>e<<n|t>>>32-n,J8=(t,e,n)=>e<<n-32|t>>>64-n,X8=(t,e,n)=>t<<n-32|e>>>64-n;function Q8(t,e,n,r){const i=(e>>>0)+(r>>>0);return{h:t+n+(i/2**32|0)|0,l:i|0}}const _8=(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0),$8=(t,e,n,r)=>e+n+r+(t/2**32|0)|0,ex=(t,e,n,r)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0),tx=(t,e,n,r,i)=>e+n+r+i+(t/2**32|0)|0,nx=(t,e,n,r,i)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0)+(i>>>0),rx=(t,e,n,r,i,s)=>e+n+r+i+s+(t/2**32|0)|0,fe={fromBig:Pp,split:k8,toBig:L8,shrSH:M8,shrSL:V8,rotrSH:z8,rotrSL:j8,rotrBH:W8,rotrBL:H8,rotr32H:Y8,rotr32L:G8,rotlSH:K8,rotlSL:Z8,rotlBH:J8,rotlBL:X8,add:Q8,add3L:_8,add3H:$8,add4L:ex,add4H:tx,add5H:rx,add5L:nx},[ix,sx]=fe.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(t=>BigInt(t))),Sr=new Uint32Array(80),Ir=new Uint32Array(80);class ox extends F8{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(){const{Ah:e,Al:n,Bh:r,Bl:i,Ch:s,Cl:o,Dh:a,Dl:c,Eh:u,El:f,Fh:h,Fl:d,Gh:l,Gl:p,Hh:y,Hl:v}=this;return[e,n,r,i,s,o,a,c,u,f,h,d,l,p,y,v]}set(e,n,r,i,s,o,a,c,u,f,h,d,l,p,y,v){this.Ah=e|0,this.Al=n|0,this.Bh=r|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=f|0,this.Fh=h|0,this.Fl=d|0,this.Gh=l|0,this.Gl=p|0,this.Hh=y|0,this.Hl=v|0}process(e,n){for(let A=0;A<16;A++,n+=4)Sr[A]=e.getUint32(n),Ir[A]=e.getUint32(n+=4);for(let A=16;A<80;A++){const I=Sr[A-15]|0,S=Ir[A-15]|0,z=fe.rotrSH(I,S,1)^fe.rotrSH(I,S,8)^fe.shrSH(I,S,7),M=fe.rotrSL(I,S,1)^fe.rotrSL(I,S,8)^fe.shrSL(I,S,7),F=Sr[A-2]|0,T=Ir[A-2]|0,K=fe.rotrSH(F,T,19)^fe.rotrBH(F,T,61)^fe.shrSH(F,T,6),H=fe.rotrSL(F,T,19)^fe.rotrBL(F,T,61)^fe.shrSL(F,T,6),E=fe.add4L(M,H,Ir[A-7],Ir[A-16]),w=fe.add4H(E,z,K,Sr[A-7],Sr[A-16]);Sr[A]=w|0,Ir[A]=E|0}let{Ah:r,Al:i,Bh:s,Bl:o,Ch:a,Cl:c,Dh:u,Dl:f,Eh:h,El:d,Fh:l,Fl:p,Gh:y,Gl:v,Hh:D,Hl:C}=this;for(let A=0;A<80;A++){const I=fe.rotrSH(h,d,14)^fe.rotrSH(h,d,18)^fe.rotrBH(h,d,41),S=fe.rotrSL(h,d,14)^fe.rotrSL(h,d,18)^fe.rotrBL(h,d,41),z=h&l^~h&y,M=d&p^~d&v,F=fe.add5L(C,S,M,sx[A],Ir[A]),T=fe.add5H(F,D,I,z,ix[A],Sr[A]),K=F|0,H=fe.rotrSH(r,i,28)^fe.rotrBH(r,i,34)^fe.rotrBH(r,i,39),E=fe.rotrSL(r,i,28)^fe.rotrBL(r,i,34)^fe.rotrBL(r,i,39),w=r&s^r&a^s&a,m=i&o^i&c^o&c;D=y|0,C=v|0,y=l|0,v=p|0,l=h|0,p=d|0,{h,l:d}=fe.add(u|0,f|0,T|0,K|0),u=a|0,f=c|0,a=s|0,c=o|0,s=r|0,o=i|0;const g=fe.add3L(K,E,m);r=fe.add3H(g,T,H,w),i=g|0}({h:r,l:i}=fe.add(this.Ah|0,this.Al|0,r|0,i|0)),{h:s,l:o}=fe.add(this.Bh|0,this.Bl|0,s|0,o|0),{h:a,l:c}=fe.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=fe.add(this.Dh|0,this.Dl|0,u|0,f|0),{h,l:d}=fe.add(this.Eh|0,this.El|0,h|0,d|0),{h:l,l:p}=fe.add(this.Fh|0,this.Fl|0,l|0,p|0),{h:y,l:v}=fe.add(this.Gh|0,this.Gl|0,y|0,v|0),{h:D,l:C}=fe.add(this.Hh|0,this.Hl|0,D|0,C|0),this.set(r,i,s,o,a,c,u,f,h,d,l,p,y,v,D,C)}roundClean(){Sr.fill(0),Ir.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)}}const ax=P8(()=>new ox);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const ef=BigInt(0),qp=BigInt(1),cx=BigInt(2);function tf(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function nf(t){if(!tf(t))throw new Error("Uint8Array expected")}function rf(t,e){if(typeof e!="boolean")throw new Error(t+" boolean expected, got "+e)}const ux=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function sf(t){nf(t);let e="";for(let n=0;n<t.length;n++)e+=ux[t[n]];return e}function Fp(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);return t===""?ef:BigInt("0x"+t)}const zn={_0:48,_9:57,A:65,F:70,a:97,f:102};function kp(t){if(t>=zn._0&&t<=zn._9)return t-zn._0;if(t>=zn.A&&t<=zn.F)return t-(zn.A-10);if(t>=zn.a&&t<=zn.f)return t-(zn.a-10)}function Lp(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);const e=t.length,n=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);const r=new Uint8Array(n);for(let i=0,s=0;i<n;i++,s+=2){const o=kp(t.charCodeAt(s)),a=kp(t.charCodeAt(s+1));if(o===void 0||a===void 0){const c=t[s]+t[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}r[i]=o*16+a}return r}function fx(t){return Fp(sf(t))}function ha(t){return nf(t),Fp(sf(Uint8Array.from(t).reverse()))}function Mp(t,e){return Lp(t.toString(16).padStart(e*2,"0"))}function of(t,e){return Mp(t,e).reverse()}function jn(t,e,n){let r;if(typeof e=="string")try{r=Lp(e)}catch(s){throw new Error(t+" must be hex string or Uint8Array, cause: "+s)}else if(tf(e))r=Uint8Array.from(e);else throw new Error(t+" must be hex string or Uint8Array");const i=r.length;if(typeof n=="number"&&i!==n)throw new Error(t+" of length "+n+" expected, got "+i);return r}function Vp(...t){let e=0;for(let r=0;r<t.length;r++){const i=t[r];nf(i),e+=i.length}const n=new Uint8Array(e);for(let r=0,i=0;r<t.length;r++){const s=t[r];n.set(s,i),i+=s.length}return n}const af=t=>typeof t=="bigint"&&ef<=t;function lx(t,e,n){return af(t)&&af(e)&&af(n)&&e<=t&&t<n}function Cs(t,e,n,r){if(!lx(e,n,r))throw new Error("expected valid "+t+": "+n+" <= n < "+r+", got "+e)}function hx(t){let e;for(e=0;t>ef;t>>=qp,e+=1);return e}const dx=t=>(cx<<BigInt(t-1))-qp,px={bigint:t=>typeof t=="bigint",function:t=>typeof t=="function",boolean:t=>typeof t=="boolean",string:t=>typeof t=="string",stringOrUint8Array:t=>typeof t=="string"||tf(t),isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>typeof t=="function"&&Number.isSafeInteger(t.outputLen)};function cf(t,e,n={}){const r=(i,s,o)=>{const a=px[s];if(typeof a!="function")throw new Error("invalid validator function");const c=t[i];if(!(o&&c===void 0)&&!a(c,t))throw new Error("param "+String(i)+" is invalid. Expected "+s+", got "+c)};for(const[i,s]of Object.entries(e))r(i,s,!1);for(const[i,s]of Object.entries(n))r(i,s,!0);return t}function zp(t){const e=new WeakMap;return(n,...r)=>{const i=e.get(n);if(i!==void 0)return i;const s=t(n,...r);return e.set(n,s),s}}const ze=BigInt(0),De=BigInt(1),ei=BigInt(2),gx=BigInt(3),uf=BigInt(4),jp=BigInt(5),Wp=BigInt(8);function qe(t,e){const n=t%e;return n>=ze?n:e+n}function wx(t,e,n){if(e<ze)throw new Error("invalid exponent, negatives unsupported");if(n<=ze)throw new Error("invalid modulus");if(n===De)return ze;let r=De;for(;e>ze;)e&De&&(r=r*t%n),t=t*t%n,e>>=De;return r}function pn(t,e,n){let r=t;for(;e-- >ze;)r*=r,r%=n;return r}function Hp(t,e){if(t===ze)throw new Error("invert: expected non-zero number");if(e<=ze)throw new Error("invert: expected positive modulus, got "+e);let n=qe(t,e),r=e,i=ze,s=De;for(;n!==ze;){const o=r/n,a=r%n,c=i-s*o;r=n,n=a,i=s,s=c}if(r!==De)throw new Error("invert: does not exist");return qe(i,e)}function yx(t){const e=(t-De)/ei;let n,r,i;for(n=t-De,r=0;n%ei===ze;n/=ei,r++);for(i=ei;i<t&&wx(i,e,t)!==t-De;i++)if(i>1e3)throw new Error("Cannot find square root: likely non-prime P");if(r===1){const o=(t+De)/uf;return function(a,c){const u=a.pow(c,o);if(!a.eql(a.sqr(u),c))throw new Error("Cannot find square root");return u}}const s=(n+De)/ei;return function(o,a){if(o.pow(a,e)===o.neg(o.ONE))throw new Error("Cannot find square root");let c=r,u=o.pow(o.mul(o.ONE,i),n),f=o.pow(a,s),h=o.pow(a,n);for(;!o.eql(h,o.ONE);){if(o.eql(h,o.ZERO))return o.ZERO;let d=1;for(let p=o.sqr(h);d<c&&!o.eql(p,o.ONE);d++)p=o.sqr(p);const l=o.pow(u,De<<BigInt(c-d-1));u=o.sqr(l),f=o.mul(f,l),h=o.mul(h,u),c=d}return f}}function bx(t){if(t%uf===gx){const e=(t+De)/uf;return function(n,r){const i=n.pow(r,e);if(!n.eql(n.sqr(i),r))throw new Error("Cannot find square root");return i}}if(t%Wp===jp){const e=(t-jp)/Wp;return function(n,r){const i=n.mul(r,ei),s=n.pow(i,e),o=n.mul(r,s),a=n.mul(n.mul(o,ei),s),c=n.mul(o,n.sub(a,n.ONE));if(!n.eql(n.sqr(c),r))throw new Error("Cannot find square root");return c}}return yx(t)}const mx=(t,e)=>(qe(t,e)&De)===De,vx=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Ex(t){const e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},n=vx.reduce((r,i)=>(r[i]="function",r),e);return cf(t,n)}function xx(t,e,n){if(n<ze)throw new Error("invalid exponent, negatives unsupported");if(n===ze)return t.ONE;if(n===De)return e;let r=t.ONE,i=e;for(;n>ze;)n&De&&(r=t.mul(r,i)),i=t.sqr(i),n>>=De;return r}function Sx(t,e){const n=new Array(e.length),r=e.reduce((s,o,a)=>t.is0(o)?s:(n[a]=s,t.mul(s,o)),t.ONE),i=t.inv(r);return e.reduceRight((s,o,a)=>t.is0(o)?s:(n[a]=t.mul(s,n[a]),t.mul(s,o)),i),n}function Yp(t,e){const n=e!==void 0?e:t.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function Gp(t,e,n=!1,r={}){if(t<=ze)throw new Error("invalid field: expected ORDER > 0, got "+t);const{nBitLength:i,nByteLength:s}=Yp(t,e);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let o;const a=Object.freeze({ORDER:t,isLE:n,BITS:i,BYTES:s,MASK:dx(i),ZERO:ze,ONE:De,create:c=>qe(c,t),isValid:c=>{if(typeof c!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof c);return ze<=c&&c<t},is0:c=>c===ze,isOdd:c=>(c&De)===De,neg:c=>qe(-c,t),eql:(c,u)=>c===u,sqr:c=>qe(c*c,t),add:(c,u)=>qe(c+u,t),sub:(c,u)=>qe(c-u,t),mul:(c,u)=>qe(c*u,t),pow:(c,u)=>xx(a,c,u),div:(c,u)=>qe(c*Hp(u,t),t),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>Hp(c,t),sqrt:r.sqrt||(c=>(o||(o=bx(t)),o(a,c))),invertBatch:c=>Sx(a,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>n?of(c,s):Mp(c,s),fromBytes:c=>{if(c.length!==s)throw new Error("Field.fromBytes: expected "+s+" bytes, got "+c.length);return n?ha(c):fx(c)}});return Object.freeze(a)}const Kp=BigInt(0),da=BigInt(1);function ff(t,e){const n=e.negate();return t?n:e}function Zp(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+t)}function lf(t,e){Zp(t,e);const n=Math.ceil(e/t)+1,r=2**(t-1);return{windows:n,windowSize:r}}function Ix(t,e){if(!Array.isArray(t))throw new Error("array expected");t.forEach((n,r)=>{if(!(n instanceof e))throw new Error("invalid point at index "+r)})}function Ax(t,e){if(!Array.isArray(t))throw new Error("array of scalars expected");t.forEach((n,r)=>{if(!e.isValid(n))throw new Error("invalid scalar at index "+r)})}const hf=new WeakMap,Jp=new WeakMap;function df(t){return Jp.get(t)||1}function Ox(t,e){return{constTimeNegate:ff,hasPrecomputes(n){return df(n)!==1},unsafeLadder(n,r,i=t.ZERO){let s=n;for(;r>Kp;)r&da&&(i=i.add(s)),s=s.double(),r>>=da;return i},precomputeWindow(n,r){const{windows:i,windowSize:s}=lf(r,e),o=[];let a=n,c=a;for(let u=0;u<i;u++){c=a,o.push(c);for(let f=1;f<s;f++)c=c.add(a),o.push(c);a=c.double()}return o},wNAF(n,r,i){const{windows:s,windowSize:o}=lf(n,e);let a=t.ZERO,c=t.BASE;const u=BigInt(2**n-1),f=2**n,h=BigInt(n);for(let d=0;d<s;d++){const l=d*o;let p=Number(i&u);i>>=h,p>o&&(p-=f,i+=da);const y=l,v=l+Math.abs(p)-1,D=d%2!==0,C=p<0;p===0?c=c.add(ff(D,r[y])):a=a.add(ff(C,r[v]))}return{p:a,f:c}},wNAFUnsafe(n,r,i,s=t.ZERO){const{windows:o,windowSize:a}=lf(n,e),c=BigInt(2**n-1),u=2**n,f=BigInt(n);for(let h=0;h<o;h++){const d=h*a;if(i===Kp)break;let l=Number(i&c);if(i>>=f,l>a&&(l-=u,i+=da),l===0)continue;let p=r[d+Math.abs(l)-1];l<0&&(p=p.negate()),s=s.add(p)}return s},getPrecomputes(n,r,i){let s=hf.get(r);return s||(s=this.precomputeWindow(r,n),n!==1&&hf.set(r,i(s))),s},wNAFCached(n,r,i){const s=df(n);return this.wNAF(s,this.getPrecomputes(s,n,i),r)},wNAFCachedUnsafe(n,r,i,s){const o=df(n);return o===1?this.unsafeLadder(n,r,s):this.wNAFUnsafe(o,this.getPrecomputes(o,n,i),r,s)},setWindowSize(n,r){Zp(r,e),Jp.set(n,r),hf.delete(n)}}}function Bx(t,e,n,r){if(Ix(n,t),Ax(r,e),n.length!==r.length)throw new Error("arrays of points and scalars must have equal length");const i=t.ZERO,s=hx(BigInt(n.length)),o=s>12?s-3:s>4?s-2:s?2:1,a=(1<<o)-1,c=new Array(a+1).fill(i),u=Math.floor((e.BITS-1)/o)*o;let f=i;for(let h=u;h>=0;h-=o){c.fill(i);for(let l=0;l<r.length;l++){const p=r[l],y=Number(p>>BigInt(h)&BigInt(a));c[y]=c[y].add(n[l])}let d=i;for(let l=c.length-1,p=i;l>0;l--)p=p.add(c[l]),d=d.add(p);if(f=f.add(d),h!==0)for(let l=0;l<o;l++)f=f.double()}return f}function Dx(t){return Ex(t.Fp),cf(t,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Yp(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}const tn=BigInt(0),It=BigInt(1),pa=BigInt(2),Rx=BigInt(8),Tx={zip215:!0};function Nx(t){const e=Dx(t);return cf(t,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...e})}function Ux(t){const e=Nx(t),{Fp:n,n:r,prehash:i,hash:s,randomBytes:o,nByteLength:a,h:c}=e,u=pa<<BigInt(a*8)-It,f=n.create,h=Gp(e.n,e.nBitLength),d=e.uvRatio||((g,b)=>{try{return{isValid:!0,value:n.sqrt(g*n.inv(b))}}catch{return{isValid:!1,value:tn}}}),l=e.adjustScalarBytes||(g=>g),p=e.domain||((g,b,x)=>{if(rf("phflag",x),b.length||x)throw new Error("Contexts/pre-hash are not supported");return g});function y(g,b){Cs("coordinate "+g,b,tn,u)}function v(g){if(!(g instanceof A))throw new Error("ExtendedPoint expected")}const D=zp((g,b)=>{const{ex:x,ey:O,ez:B}=g,R=g.is0();b==null&&(b=R?Rx:n.inv(B));const U=f(x*b),L=f(O*b),q=f(B*b);if(R)return{x:tn,y:It};if(q!==It)throw new Error("invZ was invalid");return{x:U,y:L}}),C=zp(g=>{const{a:b,d:x}=e;if(g.is0())throw new Error("bad point: ZERO");const{ex:O,ey:B,ez:R,et:U}=g,L=f(O*O),q=f(B*B),W=f(R*R),P=f(W*W),Y=f(L*b),G=f(W*f(Y+q)),V=f(P+f(x*f(L*q)));if(G!==V)throw new Error("bad point: equation left != right (1)");const N=f(O*B),k=f(R*U);if(N!==k)throw new Error("bad point: equation left != right (2)");return!0});class A{constructor(b,x,O,B){this.ex=b,this.ey=x,this.ez=O,this.et=B,y("x",b),y("y",x),y("z",O),y("t",B),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(b){if(b instanceof A)throw new Error("extended point not allowed");const{x,y:O}=b||{};return y("x",x),y("y",O),new A(x,O,It,f(x*O))}static normalizeZ(b){const x=n.invertBatch(b.map(O=>O.ez));return b.map((O,B)=>O.toAffine(x[B])).map(A.fromAffine)}static msm(b,x){return Bx(A,h,b,x)}_setWindowSize(b){z.setWindowSize(this,b)}assertValidity(){C(this)}equals(b){v(b);const{ex:x,ey:O,ez:B}=this,{ex:R,ey:U,ez:L}=b,q=f(x*L),W=f(R*B),P=f(O*L),Y=f(U*B);return q===W&&P===Y}is0(){return this.equals(A.ZERO)}negate(){return new A(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){const{a:b}=e,{ex:x,ey:O,ez:B}=this,R=f(x*x),U=f(O*O),L=f(pa*f(B*B)),q=f(b*R),W=x+O,P=f(f(W*W)-R-U),Y=q+U,G=Y-L,V=q-U,N=f(P*G),k=f(Y*V),j=f(P*V),Z=f(G*Y);return new A(N,k,Z,j)}add(b){v(b);const{a:x,d:O}=e,{ex:B,ey:R,ez:U,et:L}=this,{ex:q,ey:W,ez:P,et:Y}=b;if(x===BigInt(-1)){const ye=f((R-B)*(W+q)),Qe=f((R+B)*(W-q)),Bt=f(Qe-ye);if(Bt===tn)return this.double();const wt=f(U*pa*Y),ct=f(L*pa*P),Oe=ct+wt,_e=Qe+ye,yt=ct-wt,le=f(Oe*Bt),ul=f(_e*yt),es=f(Oe*yt),Le=f(Bt*_e);return new A(le,ul,Le,es)}const G=f(B*q),V=f(R*W),N=f(L*O*Y),k=f(U*P),j=f((B+R)*(q+W)-G-V),Z=k-N,$=k+N,_=f(V-x*G),te=f(j*Z),ue=f($*_),ae=f(j*_),re=f(Z*$);return new A(te,ue,re,ae)}subtract(b){return this.add(b.negate())}wNAF(b){return z.wNAFCached(this,b,A.normalizeZ)}multiply(b){const x=b;Cs("scalar",x,It,r);const{p:O,f:B}=this.wNAF(x);return A.normalizeZ([O,B])[0]}multiplyUnsafe(b,x=A.ZERO){const O=b;return Cs("scalar",O,tn,r),O===tn?S:this.is0()||O===It?this:z.wNAFCachedUnsafe(this,O,A.normalizeZ,x)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return z.unsafeLadder(this,r).is0()}toAffine(b){return D(this,b)}clearCofactor(){const{h:b}=e;return b===It?this:this.multiplyUnsafe(b)}static fromHex(b,x=!1){const{d:O,a:B}=e,R=n.BYTES;b=jn("pointHex",b,R),rf("zip215",x);const U=b.slice(),L=b[R-1];U[R-1]=L&-129;const q=ha(U),W=x?u:n.ORDER;Cs("pointHex.y",q,tn,W);const P=f(q*q),Y=f(P-It),G=f(O*P-B);let{isValid:V,value:N}=d(Y,G);if(!V)throw new Error("Point.fromHex: invalid y coordinate");const k=(N&It)===It,j=(L&128)!==0;if(!x&&N===tn&&j)throw new Error("Point.fromHex: x=0 and x_0=1");return j!==k&&(N=f(-N)),A.fromAffine({x:N,y:q})}static fromPrivateKey(b){return T(b).point}toRawBytes(){const{x:b,y:x}=this.toAffine(),O=of(x,n.BYTES);return O[O.length-1]|=b&It?128:0,O}toHex(){return sf(this.toRawBytes())}}A.BASE=new A(e.Gx,e.Gy,It,f(e.Gx*e.Gy)),A.ZERO=new A(tn,It,It,tn);const{BASE:I,ZERO:S}=A,z=Ox(A,a*8);function M(g){return qe(g,r)}function F(g){return M(ha(g))}function T(g){const b=n.BYTES;g=jn("private key",g,b);const x=jn("hashed private key",s(g),2*b),O=l(x.slice(0,b)),B=x.slice(b,2*b),R=F(O),U=I.multiply(R),L=U.toRawBytes();return{head:O,prefix:B,scalar:R,point:U,pointBytes:L}}function K(g){return T(g).pointBytes}function H(g=new Uint8Array,...b){const x=Vp(...b);return F(s(p(x,jn("context",g),!!i)))}function E(g,b,x={}){g=jn("message",g),i&&(g=i(g));const{prefix:O,scalar:B,pointBytes:R}=T(b),U=H(x.context,O,g),L=I.multiply(U).toRawBytes(),q=H(x.context,L,R,g),W=M(U+q*B);Cs("signature.s",W,tn,r);const P=Vp(L,of(W,n.BYTES));return jn("result",P,n.BYTES*2)}const w=Tx;function m(g,b,x,O=w){const{context:B,zip215:R}=O,U=n.BYTES;g=jn("signature",g,2*U),b=jn("message",b),x=jn("publicKey",x,U),R!==void 0&&rf("zip215",R),i&&(b=i(b));const L=ha(g.slice(U,2*U));let q,W,P;try{q=A.fromHex(x,R),W=A.fromHex(g.slice(0,U),R),P=I.multiplyUnsafe(L)}catch{return!1}if(!R&&q.isSmallOrder())return!1;const Y=H(B,W.toRawBytes(),q.toRawBytes(),b);return W.add(q.multiplyUnsafe(Y)).subtract(P).clearCofactor().equals(A.ZERO)}return I._setWindowSize(8),{CURVE:e,getPublicKey:K,sign:E,verify:m,ExtendedPoint:A,utils:{getExtendedPublicKey:T,randomPrivateKey:()=>o(n.BYTES),precompute(g=8,b=A.BASE){return b._setWindowSize(g),b.multiply(BigInt(3)),b}}}}BigInt(0),BigInt(1);const pf=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),Xp=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");BigInt(0);const Cx=BigInt(1),Qp=BigInt(2);BigInt(3);const Px=BigInt(5),qx=BigInt(8);function Fx(t){const e=BigInt(10),n=BigInt(20),r=BigInt(40),i=BigInt(80),s=pf,o=t*t%s*t%s,a=pn(o,Qp,s)*o%s,c=pn(a,Cx,s)*t%s,u=pn(c,Px,s)*c%s,f=pn(u,e,s)*u%s,h=pn(f,n,s)*f%s,d=pn(h,r,s)*h%s,l=pn(d,i,s)*d%s,p=pn(l,i,s)*d%s,y=pn(p,e,s)*u%s;return{pow_p_5_8:pn(y,Qp,s)*t%s,b2:o}}function kx(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}function Lx(t,e){const n=pf,r=qe(e*e*e,n),i=qe(r*r*e,n),s=Fx(t*i).pow_p_5_8;let o=qe(t*r*s,n);const a=qe(e*o*o,n),c=o,u=qe(o*Xp,n),f=a===t,h=a===qe(-t,n),d=a===qe(-t*Xp,n);return f&&(o=c),(h||d)&&(o=u),mx(o,n)&&(o=qe(-o,n)),{isValid:f||h,value:o}}const Mx=Gp(pf,void 0,!0),Vx={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:Mx,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:qx,Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:ax,randomBytes:Cp,adjustScalarBytes:kx,uvRatio:Lx},_p=Ux(Vx),zx="EdDSA",jx="JWT",ga=".",wa="base64url",$p="utf8",eg="utf8",Wx=":",Hx="did",Yx="key",tg="base58btc",Gx="z",Kx="K36",Zx=32;function gf(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function ng(t=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?gf(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function rg(t,e){e||(e=t.reduce((i,s)=>i+s.length,0));const n=ng(e);let r=0;for(const i of t)n.set(i,r),r+=i.length;return gf(n)}function Jx(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var n=new Uint8Array(256),r=0;r<n.length;r++)n[r]=255;for(var i=0;i<t.length;i++){var s=t.charAt(i),o=s.charCodeAt(0);if(n[o]!==255)throw new TypeError(s+" is ambiguous");n[o]=i}var a=t.length,c=t.charAt(0),u=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);function h(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var y=0,v=0,D=0,C=p.length;D!==C&&p[D]===0;)D++,y++;for(var A=(C-D)*f+1>>>0,I=new Uint8Array(A);D!==C;){for(var S=p[D],z=0,M=A-1;(S!==0||z<v)&&M!==-1;M--,z++)S+=256*I[M]>>>0,I[M]=S%a>>>0,S=S/a>>>0;if(S!==0)throw new Error("Non-zero carry");v=z,D++}for(var F=A-v;F!==A&&I[F]===0;)F++;for(var T=c.repeat(y);F<A;++F)T+=t.charAt(I[F]);return T}function d(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var y=0;if(p[y]!==" "){for(var v=0,D=0;p[y]===c;)v++,y++;for(var C=(p.length-y)*u+1>>>0,A=new Uint8Array(C);p[y];){var I=n[p.charCodeAt(y)];if(I===255)return;for(var S=0,z=C-1;(I!==0||S<D)&&z!==-1;z--,S++)I+=a*A[z]>>>0,A[z]=I%256>>>0,I=I/256>>>0;if(I!==0)throw new Error("Non-zero carry");D=S,y++}if(p[y]!==" "){for(var M=C-D;M!==C&&A[M]===0;)M++;for(var F=new Uint8Array(v+(C-M)),T=v;M!==C;)F[T++]=A[M++];return F}}}function l(p){var y=d(p);if(y)return y;throw new Error(`Non-${e} character`)}return{encode:h,decodeUnsafe:d,decode:l}}var Xx=Jx,Qx=Xx;const ig=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")},_x=t=>new TextEncoder().encode(t),$x=t=>new TextDecoder().decode(t);class e4{constructor(e,n,r){this.name=e,this.prefix=n,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}}class t4{constructor(e,n,r){if(this.name=e,this.prefix=n,n.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=n.codePointAt(0),this.baseDecode=r}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return sg(this,e)}}class n4{constructor(e){this.decoders=e}or(e){return sg(this,e)}decode(e){const n=e[0],r=this.decoders[n];if(r)return r.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const sg=(t,e)=>new n4({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}});class r4{constructor(e,n,r,i){this.name=e,this.prefix=n,this.baseEncode=r,this.baseDecode=i,this.encoder=new e4(e,n,r),this.decoder=new t4(e,n,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const ya=({name:t,prefix:e,encode:n,decode:r})=>new r4(t,e,n,r),Ps=({prefix:t,name:e,alphabet:n})=>{const{encode:r,decode:i}=Qx(n,e);return ya({prefix:t,name:e,encode:r,decode:s=>ig(i(s))})},i4=(t,e,n,r)=>{const i={};for(let f=0;f<e.length;++f)i[e[f]]=f;let s=t.length;for(;t[s-1]==="=";)--s;const o=new Uint8Array(s*n/8|0);let a=0,c=0,u=0;for(let f=0;f<s;++f){const h=i[t[f]];if(h===void 0)throw new SyntaxError(`Non-${r} character`);c=c<<n|h,a+=n,a>=8&&(a-=8,o[u++]=255&c>>a)}if(a>=n||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o},s4=(t,e,n)=>{const r=e[e.length-1]==="=",i=(1<<n)-1;let s="",o=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],o+=8;o>n;)o-=n,s+=e[i&a>>o];if(o&&(s+=e[i&a<<n-o]),r)for(;s.length*n&7;)s+="=";return s},Ke=({name:t,prefix:e,bitsPerChar:n,alphabet:r})=>ya({prefix:e,name:t,encode(i){return s4(i,r,n)},decode(i){return i4(i,r,n,t)}}),o4=ya({prefix:"\0",name:"identity",encode:t=>$x(t),decode:t=>_x(t)});var a4=Object.freeze({__proto__:null,identity:o4});const c4=Ke({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var u4=Object.freeze({__proto__:null,base2:c4});const f4=Ke({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var l4=Object.freeze({__proto__:null,base8:f4});const h4=Ps({prefix:"9",name:"base10",alphabet:"0123456789"});var d4=Object.freeze({__proto__:null,base10:h4});const p4=Ke({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),g4=Ke({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var w4=Object.freeze({__proto__:null,base16:p4,base16upper:g4});const y4=Ke({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),b4=Ke({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),m4=Ke({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),v4=Ke({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),E4=Ke({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),x4=Ke({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),S4=Ke({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),I4=Ke({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),A4=Ke({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var O4=Object.freeze({__proto__:null,base32:y4,base32upper:b4,base32pad:m4,base32padupper:v4,base32hex:E4,base32hexupper:x4,base32hexpad:S4,base32hexpadupper:I4,base32z:A4});const B4=Ps({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),D4=Ps({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var R4=Object.freeze({__proto__:null,base36:B4,base36upper:D4});const T4=Ps({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),N4=Ps({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var U4=Object.freeze({__proto__:null,base58btc:T4,base58flickr:N4});const C4=Ke({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),P4=Ke({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),q4=Ke({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),F4=Ke({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var k4=Object.freeze({__proto__:null,base64:C4,base64pad:P4,base64url:q4,base64urlpad:F4});const og=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}"),L4=og.reduce((t,e,n)=>(t[n]=e,t),[]),M4=og.reduce((t,e,n)=>(t[e.codePointAt(0)]=n,t),[]);function V4(t){return t.reduce((e,n)=>(e+=L4[n],e),"")}function z4(t){const e=[];for(const n of t){const r=M4[n.codePointAt(0)];if(r===void 0)throw new Error(`Non-base256emoji character: ${n}`);e.push(r)}return new Uint8Array(e)}const j4=ya({prefix:"\u{1F680}",name:"base256emoji",encode:V4,decode:z4});var W4=Object.freeze({__proto__:null,base256emoji:j4}),H4=cg,ag=128,Y4=127,G4=~Y4,K4=Math.pow(2,31);function cg(t,e,n){e=e||[],n=n||0;for(var r=n;t>=K4;)e[n++]=t&255|ag,t/=128;for(;t&G4;)e[n++]=t&255|ag,t>>>=7;return e[n]=t|0,cg.bytes=n-r+1,e}var Z4=wf,J4=128,ug=127;function wf(t,r){var n=0,r=r||0,i=0,s=r,o,a=t.length;do{if(s>=a)throw wf.bytes=0,new RangeError("Could not decode varint");o=t[s++],n+=i<28?(o&ug)<<i:(o&ug)*Math.pow(2,i),i+=7}while(o>=J4);return wf.bytes=s-r,n}var X4=Math.pow(2,7),Q4=Math.pow(2,14),_4=Math.pow(2,21),$4=Math.pow(2,28),e5=Math.pow(2,35),t5=Math.pow(2,42),n5=Math.pow(2,49),r5=Math.pow(2,56),i5=Math.pow(2,63),s5=function(t){return t<X4?1:t<Q4?2:t<_4?3:t<$4?4:t<e5?5:t<t5?6:t<n5?7:t<r5?8:t<i5?9:10},o5={encode:H4,decode:Z4,encodingLength:s5},fg=o5;const lg=(t,e,n=0)=>(fg.encode(t,e,n),e),hg=t=>fg.encodingLength(t),yf=(t,e)=>{const n=e.byteLength,r=hg(t),i=r+hg(n),s=new Uint8Array(i+n);return lg(t,s,0),lg(n,s,r),s.set(e,i),new a5(t,n,e,s)};class a5{constructor(e,n,r,i){this.code=e,this.size=n,this.digest=r,this.bytes=i}}const dg=({name:t,code:e,encode:n})=>new c5(t,e,n);class c5{constructor(e,n,r){this.name=e,this.code=n,this.encode=r}digest(e){if(e instanceof Uint8Array){const n=this.encode(e);return n instanceof Uint8Array?yf(this.code,n):n.then(r=>yf(this.code,r))}else throw Error("Unknown type, must be binary type")}}const pg=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),u5=dg({name:"sha2-256",code:18,encode:pg("SHA-256")}),f5=dg({name:"sha2-512",code:19,encode:pg("SHA-512")});var l5=Object.freeze({__proto__:null,sha256:u5,sha512:f5});const gg=0,h5="identity",wg=ig;var d5=Object.freeze({__proto__:null,identity:{code:gg,name:h5,encode:wg,digest:t=>yf(gg,wg(t))}});new TextEncoder,new TextDecoder;const yg={...a4,...u4,...l4,...d4,...w4,...O4,...R4,...U4,...k4,...W4};({...l5,...d5});function bg(t,e,n,r){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:n},decoder:{decode:r}}}const mg=bg("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),bf=bg("ascii","a",t=>{let e="a";for(let n=0;n<t.length;n++)e+=String.fromCharCode(t[n]);return e},t=>{t=t.substring(1);const e=ng(t.length);for(let n=0;n<t.length;n++)e[n]=t.charCodeAt(n);return e}),vg={utf8:mg,"utf-8":mg,hex:yg.base16,latin1:bf,ascii:bf,binary:bf,...yg};function ba(t,e="utf8"){const n=vg[e];if(!n)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):n.encoder.encode(t).substring(1)}function Wi(t,e="utf8"){const n=vg[e];if(!n)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?gf(globalThis.Buffer.from(t,"utf-8")):n.decoder.decode(`${n.prefix}${t}`)}function Eg(t){return zi(ba(Wi(t,wa),$p))}function ma(t){return ba(Wi(Us(t),$p),wa)}function xg(t){const e=Wi(Kx,tg),n=Gx+ba(rg([e,t]),tg);return[Hx,Yx,n].join(Wx)}function p5(t){return ba(t,wa)}function g5(t){return Wi(t,wa)}function w5(t){return Wi([ma(t.header),ma(t.payload)].join(ga),eg)}function y5(t){return[ma(t.header),ma(t.payload),p5(t.signature)].join(ga)}function mf(t){const e=t.split(ga),n=Eg(e[0]),r=Eg(e[1]),i=g5(e[2]),s=Wi(e.slice(0,2).join(ga),eg);return{header:n,payload:r,signature:i,data:s}}function Sg(t=Cp(Zx)){const e=_p.getPublicKey(t);return{secretKey:rg([t,e]),publicKey:e}}async function b5(t,e,n,r,i=J.fromMiliseconds(Date.now())){const s={alg:zx,typ:jx},o=xg(r.publicKey),a=i+n,c={iss:o,sub:t,aud:e,iat:i,exp:a},u=w5({header:s,payload:c}),f=_p.sign(u,r.secretKey.slice(0,32));return y5({header:s,payload:c,signature:f})}const m5={waku:{publish:"waku_publish",batchPublish:"waku_batchPublish",subscribe:"waku_subscribe",batchSubscribe:"waku_batchSubscribe",subscription:"waku_subscription",unsubscribe:"waku_unsubscribe",batchUnsubscribe:"waku_batchUnsubscribe",batchFetchMessages:"waku_batchFetchMessages"},irn:{publish:"irn_publish",batchPublish:"irn_batchPublish",subscribe:"irn_subscribe",batchSubscribe:"irn_batchSubscribe",subscription:"irn_subscription",unsubscribe:"irn_unsubscribe",batchUnsubscribe:"irn_batchUnsubscribe",batchFetchMessages:"irn_batchFetchMessages"},iridium:{publish:"iridium_publish",batchPublish:"iridium_batchPublish",subscribe:"iridium_subscribe",batchSubscribe:"iridium_batchSubscribe",subscription:"iridium_subscription",unsubscribe:"iridium_unsubscribe",batchUnsubscribe:"iridium_batchUnsubscribe",batchFetchMessages:"iridium_batchFetchMessages"}},v5="Input must be an string, Buffer or Uint8Array";function E5(t){let e;if(t instanceof Uint8Array)e=t;else if(typeof t=="string")e=new TextEncoder().encode(t);else throw new Error(v5);return e}function x5(t){return Array.prototype.map.call(t,function(e){return(e<16?"0":"")+e.toString(16)}).join("")}function va(t){return(4294967296+t).toString(16).substring(1)}function S5(t,e,n){let r=`
|
|
17
|
-
`+t+" = ";for(let i=0;i<e.length;i+=2){if(n===32)r+=
|
|
18
|
-
`+new Array(t.length+4).join(" "):i<e.length-2&&(r+=" ")}console.log(r)}function I5(t,e,n){let r=new Date().getTime();const i=new Uint8Array(e);for(let o=0;o<e;o++)i[o]=o%256;const s=new Date().getTime();console.log("Generated random input in "+(s-r)+"ms"),r=s;for(let o=0;o<n;o++){const a=t(i),c=new Date().getTime(),u=c-r;r=c,console.log("Hashed in "+u+"ms: "+a.substring(0,20)+"..."),console.log(Math.round(e/(1<<20)/(u/1e3)*100)/100+" MB PER SECOND")}}var Ig={normalizeInput:E5,toHex:x5,debugPrint:S5,testSpeed:I5};const Ea=Ig;function xa(t,e,n){const r=t[e]+t[n];let i=t[e+1]+t[n+1];r>=4294967296&&i++,t[e]=r,t[e+1]=i}function Ag(t,e,n,r){let i=t[e]+n;n<0&&(i+=4294967296);let s=t[e+1]+r;i>=4294967296&&s++,t[e]=i,t[e+1]=s}function Og(t,e){return t[e]^t[e+1]<<8^t[e+2]<<16^t[e+3]<<24}function Ar(t,e,n,r,i,s){const o=qs[i],a=qs[i+1],c=qs[s],u=qs[s+1];xa(ce,t,e),Ag(ce,t,o,a);let f=ce[r]^ce[t],h=ce[r+1]^ce[t+1];ce[r]=h,ce[r+1]=f,xa(ce,n,r),f=ce[e]^ce[n],h=ce[e+1]^ce[n+1],ce[e]=f>>>24^h<<8,ce[e+1]=h>>>24^f<<8,xa(ce,t,e),Ag(ce,t,c,u),f=ce[r]^ce[t],h=ce[r+1]^ce[t+1],ce[r]=f>>>16^h<<16,ce[r+1]=h>>>16^f<<16,xa(ce,n,r),f=ce[e]^ce[n],h=ce[e+1]^ce[n+1],ce[e]=h>>>31^f<<1,ce[e+1]=f>>>31^h<<1}const Bg=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),A5=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],ot=new Uint8Array(A5.map(function(t){return t*2})),ce=new Uint32Array(32),qs=new Uint32Array(32);function Dg(t,e){let n=0;for(n=0;n<16;n++)ce[n]=t.h[n],ce[n+16]=Bg[n];for(ce[24]=ce[24]^t.t,ce[25]=ce[25]^t.t/4294967296,e&&(ce[28]=~ce[28],ce[29]=~ce[29]),n=0;n<32;n++)qs[n]=Og(t.b,4*n);for(n=0;n<12;n++)Ar(0,8,16,24,ot[n*16+0],ot[n*16+1]),Ar(2,10,18,26,ot[n*16+2],ot[n*16+3]),Ar(4,12,20,28,ot[n*16+4],ot[n*16+5]),Ar(6,14,22,30,ot[n*16+6],ot[n*16+7]),Ar(0,10,20,30,ot[n*16+8],ot[n*16+9]),Ar(2,12,22,24,ot[n*16+10],ot[n*16+11]),Ar(4,14,16,26,ot[n*16+12],ot[n*16+13]),Ar(6,8,18,28,ot[n*16+14],ot[n*16+15]);for(n=0;n<16;n++)t.h[n]=t.h[n]^ce[n]^ce[n+16]}const Or=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function Rg(t,e,n,r){if(t===0||t>64)throw new Error("Illegal output length, expected 0 < length <= 64");if(e&&e.length>64)throw new Error("Illegal key, expected Uint8Array with 0 < length <= 64");if(n&&n.length!==16)throw new Error("Illegal salt, expected Uint8Array with length is 16");if(r&&r.length!==16)throw new Error("Illegal personal, expected Uint8Array with length is 16");const i={b:new Uint8Array(128),h:new Uint32Array(16),t:0,c:0,outlen:t};Or.fill(0),Or[0]=t,e&&(Or[1]=e.length),Or[2]=1,Or[3]=1,n&&Or.set(n,32),r&&Or.set(r,48);for(let s=0;s<16;s++)i.h[s]=Bg[s]^Og(Or,s*4);return e&&(vf(i,e),i.c=128),i}function vf(t,e){for(let n=0;n<e.length;n++)t.c===128&&(t.t+=t.c,Dg(t,!1),t.c=0),t.b[t.c++]=e[n]}function Tg(t){for(t.t+=t.c;t.c<128;)t.b[t.c++]=0;Dg(t,!0);const e=new Uint8Array(t.outlen);for(let n=0;n<t.outlen;n++)e[n]=t.h[n>>2]>>8*(n&3);return e}function Ng(t,e,n,r,i){n=n||64,t=Ea.normalizeInput(t),r&&(r=Ea.normalizeInput(r)),i&&(i=Ea.normalizeInput(i));const s=Rg(n,e,r,i);return vf(s,t),Tg(s)}function O5(t,e,n,r,i){const s=Ng(t,e,n,r,i);return Ea.toHex(s)}var B5={blake2b:Ng,blake2bHex:O5,blake2bInit:Rg,blake2bUpdate:vf,blake2bFinal:Tg};const Ug=Ig;function D5(t,e){return t[e]^t[e+1]<<8^t[e+2]<<16^t[e+3]<<24}function Br(t,e,n,r,i,s){ge[t]=ge[t]+ge[e]+i,ge[r]=Sa(ge[r]^ge[t],16),ge[n]=ge[n]+ge[r],ge[e]=Sa(ge[e]^ge[n],12),ge[t]=ge[t]+ge[e]+s,ge[r]=Sa(ge[r]^ge[t],8),ge[n]=ge[n]+ge[r],ge[e]=Sa(ge[e]^ge[n],7)}function Sa(t,e){return t>>>e^t<<32-e}const Cg=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),at=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0]),ge=new Uint32Array(16),Ze=new Uint32Array(16);function Pg(t,e){let n=0;for(n=0;n<8;n++)ge[n]=t.h[n],ge[n+8]=Cg[n];for(ge[12]^=t.t,ge[13]^=t.t/4294967296,e&&(ge[14]=~ge[14]),n=0;n<16;n++)Ze[n]=D5(t.b,4*n);for(n=0;n<10;n++)Br(0,4,8,12,Ze[at[n*16+0]],Ze[at[n*16+1]]),Br(1,5,9,13,Ze[at[n*16+2]],Ze[at[n*16+3]]),Br(2,6,10,14,Ze[at[n*16+4]],Ze[at[n*16+5]]),Br(3,7,11,15,Ze[at[n*16+6]],Ze[at[n*16+7]]),Br(0,5,10,15,Ze[at[n*16+8]],Ze[at[n*16+9]]),Br(1,6,11,12,Ze[at[n*16+10]],Ze[at[n*16+11]]),Br(2,7,8,13,Ze[at[n*16+12]],Ze[at[n*16+13]]),Br(3,4,9,14,Ze[at[n*16+14]],Ze[at[n*16+15]]);for(n=0;n<8;n++)t.h[n]^=ge[n]^ge[n+8]}function qg(t,e){if(!(t>0&&t<=32))throw new Error("Incorrect output length, should be in [1, 32]");const n=e?e.length:0;if(e&&!(n>0&&n<=32))throw new Error("Incorrect key length, should be in [1, 32]");const r={h:new Uint32Array(Cg),b:new Uint8Array(64),c:0,t:0,outlen:t};return r.h[0]^=16842752^n<<8^t,n>0&&(Ef(r,e),r.c=64),r}function Ef(t,e){for(let n=0;n<e.length;n++)t.c===64&&(t.t+=t.c,Pg(t,!1),t.c=0),t.b[t.c++]=e[n]}function Fg(t){for(t.t+=t.c;t.c<64;)t.b[t.c++]=0;Pg(t,!0);const e=new Uint8Array(t.outlen);for(let n=0;n<t.outlen;n++)e[n]=t.h[n>>2]>>8*(n&3)&255;return e}function kg(t,e,n){n=n||32,t=Ug.normalizeInput(t);const r=qg(n,e);return Ef(r,t),Fg(r)}function R5(t,e,n){const r=kg(t,e,n);return Ug.toHex(r)}var T5={blake2s:kg,blake2sHex:R5,blake2sInit:qg,blake2sUpdate:Ef,blake2sFinal:Fg};const Fs=B5,ks=T5;var N5={blake2b:Fs.blake2b,blake2bHex:Fs.blake2bHex,blake2bInit:Fs.blake2bInit,blake2bUpdate:Fs.blake2bUpdate,blake2bFinal:Fs.blake2bFinal,blake2s:ks.blake2s,blake2sHex:ks.blake2sHex,blake2sInit:ks.blake2sInit,blake2sUpdate:ks.blake2sUpdate,blake2sFinal:ks.blake2sFinal};const U5=":";function Ia(t){const[e,n]=t.split(U5);return{namespace:e,reference:n}}function Lg(t,e){return t.includes(":")?[t]:e.chains||[]}const C5={INVALID_METHOD:{message:"Invalid method.",code:1001},INVALID_EVENT:{message:"Invalid event.",code:1002},INVALID_UPDATE_REQUEST:{message:"Invalid update request.",code:1003},INVALID_EXTEND_REQUEST:{message:"Invalid extend request.",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:"Invalid session settle request.",code:1005},UNAUTHORIZED_METHOD:{message:"Unauthorized method.",code:3001},UNAUTHORIZED_EVENT:{message:"Unauthorized event.",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:"Unauthorized update request.",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:"Unauthorized extend request.",code:3004},USER_REJECTED:{message:"User rejected.",code:5e3},USER_REJECTED_CHAINS:{message:"User rejected chains.",code:5001},USER_REJECTED_METHODS:{message:"User rejected methods.",code:5002},USER_REJECTED_EVENTS:{message:"User rejected events.",code:5003},UNSUPPORTED_CHAINS:{message:"Unsupported chains.",code:5100},UNSUPPORTED_METHODS:{message:"Unsupported methods.",code:5101},UNSUPPORTED_EVENTS:{message:"Unsupported events.",code:5102},UNSUPPORTED_ACCOUNTS:{message:"Unsupported accounts.",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:"Unsupported namespace key.",code:5104},USER_DISCONNECTED:{message:"User disconnected.",code:6e3},SESSION_SETTLEMENT_FAILED:{message:"Session settlement failed.",code:7e3},WC_METHOD_UNSUPPORTED:{message:"Unsupported wc_ method.",code:10001}},P5={NOT_INITIALIZED:{message:"Not initialized.",code:1},NO_MATCHING_KEY:{message:"No matching key.",code:2},RESTORE_WILL_OVERRIDE:{message:"Restore will override.",code:3},RESUBSCRIBED:{message:"Resubscribed.",code:4},MISSING_OR_INVALID:{message:"Missing or invalid.",code:5},EXPIRED:{message:"Expired.",code:6},UNKNOWN_TYPE:{message:"Unknown type.",code:7},MISMATCHED_TOPIC:{message:"Mismatched topic.",code:8},NON_CONFORMING_NAMESPACES:{message:"Non conforming namespaces.",code:9}};function X(t,e){const{message:n,code:r}=P5[t];return{message:e?`${n} ${e}`:n,code:r}}function Re(t,e){const{message:n,code:r}=C5[t];return{message:e?`${n} ${e}`:n,code:r}}const q5="ReactNative",qt={reactNative:"react-native",node:"node",browser:"browser",unknown:"unknown"},F5="js";function Ls(){return typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"}function Wn(){return!zr()&&!!dc()&&navigator.product===q5}function Mg(){return Wn()&&typeof global<"u"&&typeof global?.Platform<"u"&&global?.Platform.OS==="android"}function Vg(){return Wn()&&typeof global<"u"&&typeof global?.Platform<"u"&&global?.Platform.OS==="ios"}function ti(){return!Ls()&&!!dc()&&!!zr()}function Ms(){return Wn()?qt.reactNative:Ls()?qt.node:ti()?qt.browser:qt.unknown}function xf(){try{return Wn()&&typeof global<"u"&&typeof global?.Application<"u"?global.Application?.applicationId:void 0}catch{return}}function k5(t,e){const n=new URLSearchParams(t);return Object.entries(e).sort(([r],[i])=>r.localeCompare(i)).forEach(([r,i])=>{i!=null&&n.set(r,String(i))}),n.toString()}function L5(t){const e=zg();try{return t?.url&&e.url&&new URL(t.url).host!==new URL(e.url).host&&(console.warn(`The configured WalletConnect 'metadata.url':${t.url} differs from the actual page url:${e.url}. This is probably unintended and can lead to issues.`),t.url=e.url),t?.icons?.length&&t.icons.length>0&&(t.icons=t.icons.filter(n=>n!=="")),{...e,...t,url:t?.url||e.url,name:t?.name||e.name,description:t?.description||e.description,icons:t?.icons?.length&&t.icons.length>0?t.icons:e.icons}}catch(n){return console.warn("Error populating app metadata",n),t||e}}function zg(){return oh()||{name:"",description:"",url:"",icons:[""]}}function M5(){if(Ms()===qt.reactNative&&typeof global<"u"&&typeof global?.Platform<"u"){const{OS:n,Version:r}=global.Platform;return[n,r].join("-")}const t=rb();if(t===null)return"unknown";const e=t.os?t.os.replace(" ","").toLowerCase():"unknown";return t.type==="browser"?[e,t.name,t.version].join("-"):[e,t.version].join("-")}function V5(){const t=Ms();return t===qt.browser?[t,sh()?.host||"unknown"].join(":"):t}function jg(t,e,n){const r=M5(),i=V5();return[[t,e].join("-"),[F5,n].join("-"),r,i].join("/")}function z5({protocol:t,version:e,relayUrl:n,sdkVersion:r,auth:i,projectId:s,useOnCloseEvent:o,bundleId:a,packageName:c}){const u=n.split("?"),f=jg(t,e,r),h={auth:i,ua:f,projectId:s,useOnCloseEvent:o||void 0,packageName:c||void 0,bundleId:a||void 0},d=k5(u[1]||"",h);return u[0]+"?"+d}function ni(t,e){return t.filter(n=>e.includes(n)).length===t.length}function Sf(t){return Object.fromEntries(t.entries())}function If(t){return new Map(Object.entries(t))}function ri(t=J.FIVE_MINUTES,e){const n=J.toMiliseconds(t||J.FIVE_MINUTES);let r,i,s,o;return{resolve:a=>{s&&r&&(clearTimeout(s),r(a),o=Promise.resolve(a))},reject:a=>{s&&i&&(clearTimeout(s),i(a))},done:()=>new Promise((a,c)=>{if(o)return a(o);s=setTimeout(()=>{const u=X("EXPIRED"),f=new Error(e||u.message);f.code=u.code,c(f)},n),r=a,i=c})}}function nn(t,e,n){return new Promise(async(r,i)=>{const s=setTimeout(()=>i(new Error(n)),e);try{const o=await t;r(o)}catch(o){i(o)}clearTimeout(s)})}function Wg(t,e){if(typeof e=="string"&&e.startsWith(`${t}:`))return e;if(t.toLowerCase()==="topic"){if(typeof e!="string")throw new Error('Value must be "string" for expirer target type: topic');return`topic:${e}`}else if(t.toLowerCase()==="id"){if(typeof e!="number")throw new Error('Value must be "number" for expirer target type: id');return`id:${e}`}throw new Error(`Unknown expirer target type: ${t}`)}function j5(t){return Wg("topic",t)}function W5(t){return Wg("id",t)}function Hg(t){const[e,n]=t.split(":"),r={id:void 0,topic:void 0};if(e==="topic"&&typeof n=="string")r.topic=n;else if(e==="id"&&Number.isInteger(Number(n)))r.id=Number(n);else throw new Error(`Invalid target, expected id:number or topic:string, got ${e}:${n}`);return r}function Fe(t,e){return J.fromMiliseconds((e||Date.now())+J.toMiliseconds(t))}function Dr(t){return Date.now()>=J.toMiliseconds(t)}function we(t,e){return`${t}${e?`:${e}`:""}`}function ii(t=[],e=[]){return[...new Set([...t,...e])]}async function H5({id:t,topic:e,wcDeepLink:n}){try{if(!n)return;const r=(typeof n=="string"?JSON.parse(n):n)?.href;if(typeof r!="string")return;const i=Y5(r,t,e),s=Ms();if(s===qt.browser){if(!zr()?.hasFocus()){console.warn("Document does not have focus, skipping deeplink.");return}G5(i)}else s===qt.reactNative&&typeof global?.Linking<"u"&&await global.Linking.openURL(i)}catch(r){console.error(r)}}function Y5(t,e,n){const r=`requestId=${e}&sessionTopic=${n}`;t.endsWith("/")&&(t=t.slice(0,-1));let i=`${t}`;if(t.startsWith("https://t.me")){const s=t.includes("?")?"&startapp=":"?startapp=";i=`${i}${s}${X5(r,!0)}`}else i=`${i}/wc?${r}`;return i}function G5(t){let e="_self";J5()?e="_top":(Z5()||t.startsWith("https://")||t.startsWith("http://"))&&(e="_blank"),window.open(t,e,"noreferrer noopener")}async function K5(t,e){let n="";try{if(ti()&&(n=localStorage.getItem(e),n))return n;n=await t.getItem(e)}catch(r){console.error(r)}return n}function Yg(t,e){if(!t.includes(e))return null;const n=t.split(/([&,?,=])/),r=n.indexOf(e);return n[r+2]}function Gg(){return typeof crypto<"u"&&crypto?.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/gu,t=>{const e=Math.random()*16|0;return(t==="x"?e:e&3|8).toString(16)})}function Af(){return typeof process<"u"&&process.env.IS_VITEST==="true"}function Z5(){return typeof window<"u"&&(!!window.TelegramWebviewProxy||!!window.Telegram||!!window.TelegramWebviewProxyProto)}function J5(){try{return window.self!==window.top}catch{return!1}}function X5(t,e=!1){const n=new TextEncoder().encode(t),r=new Array(n.length);for(let s=0;s<n.length;s++)r[s]=String.fromCharCode(n[s]);const i=btoa(r.join(""));return e?i.replace(/[=]/g,""):i}function Kg(t){const e=t+"=".repeat((4-t.length%4)%4),n=atob(e),r=new Uint8Array(n.length);for(let i=0;i<n.length;i++)r[i]=n.charCodeAt(i);return new TextDecoder().decode(r)}function Q5(t){return new Promise(e=>setTimeout(e,t))}class _5{constructor({limit:e}){this.limit=e,this.set=new Set}add(e){if(!this.set.has(e)){if(this.set.size>=this.limit){const n=this.set.values().next().value;n&&this.set.delete(n)}this.set.add(e)}}has(e){return this.set.has(e)}}const $5="https://rpc.walletconnect.org/v1";function Hi(t){const e=t+"=".repeat((4-t.length%4)%4),n=atob(e),r=new Uint8Array(n.length);for(let i=0;i<n.length;i++)r[i]=n.charCodeAt(i);return r}function Zg(t){const e=`Ethereum Signed Message:
|
|
19
|
-
${t.length}`,n=new TextEncoder().encode(e+t);return"0x"+
|
|
20
|
-
- ${v}`).join("")}`:void 0,
|
|
21
|
-
`)};function dS(t){const e=JSON.stringify(t),n=new TextEncoder().encode(e),r=new Array(n.length);for(let i=0;i<n.length;i++)r[i]=String.fromCharCode(n[i]);return btoa(r.join(""))}function pS(t){const e=t+"=".repeat((4-t.length%4)%4),n=atob(e),r=new Uint8Array(n.length);for(let i=0;i<n.length;i++)r[i]=n.charCodeAt(i);return JSON.parse(new TextDecoder().decode(r))}function si(t){if(!t)throw new Error("No recap provided, value is undefined");if(!t.att)throw new Error("No `att` property found");const e=Object.keys(t.att);if(!e?.length)throw new Error("No resources found in `att` property");e.forEach(n=>{const r=t.att[n];if(Array.isArray(r))throw new Error(`Resource must be an object: ${n}`);if(typeof r!="object")throw new Error(`Resource must be an object: ${n}`);if(!Object.keys(r).length)throw new Error(`Resource object is empty: ${n}`);Object.keys(r).forEach(i=>{const s=r[i];if(!Array.isArray(s))throw new Error(`Ability limits ${i} must be an array of objects, found: ${s}`);if(!s.length)throw new Error(`Value of ${i} is empty array, must be an array with objects`);s.forEach(o=>{if(typeof o!="object")throw new Error(`Ability limits (${i}) must be an array of objects, found: ${o}`)})})})}function gS(t,e,n,r={}){return n?.sort((i,s)=>i.localeCompare(s)),{att:{[t]:wS(e,n,r)}}}function wS(t,e,n={}){e=e?.sort((i,s)=>i.localeCompare(s));const r=e.map(i=>({[`${t}/${i}`]:[n]}));return Object.assign({},...r)}function e1(t){return si(t),`urn:recap:${dS(t).replace(/=/g,"")}`}function Vs(t){const e=pS(t.replace("urn:recap:",""));return si(e),e}function yS(t,e,n){const r=gS(t,e,n);return e1(r)}function bS(t){return t&&t.includes("urn:recap:")}function mS(t,e){const n=Vs(t),r=Vs(e),i=vS(n,r);return e1(i)}function vS(t,e){si(t),si(e);const n=Object.keys(t.att).concat(Object.keys(e.att)).sort((i,s)=>i.localeCompare(s)),r={att:{}};return n.forEach(i=>{Object.keys(t.att?.[i]||{}).concat(Object.keys(e.att?.[i]||{})).sort((s,o)=>s.localeCompare(o)).forEach(s=>{r.att[i]={...r.att[i],[s]:t.att[i]?.[s]||e.att[i]?.[s]}})}),r}function ES(t="",e){si(e);const n="I further authorize the stated URI to perform the following actions on my behalf: ";if(t.includes(n))return t;const r=[];let i=0;Object.keys(e.att).forEach(a=>{const c=Object.keys(e.att[a]).map(h=>({ability:h.split("/")[0],action:h.split("/")[1]}));c.sort((h,d)=>h.action.localeCompare(d.action));const u={};c.forEach(h=>{u[h.ability]||(u[h.ability]=[]),u[h.ability].push(h.action)});const f=Object.keys(u).map(h=>(i++,`(${i}) '${h}': '${u[h].join("', '")}' for '${a}'.`));r.push(f.join(", ").replace(".,","."))});const s=r.join(" "),o=`${n}${s}`;return`${t?t+" ":""}${o}`}function t1(t){const e=Vs(t);si(e);const n=e.att?.eip155;return n?Object.keys(n).map(r=>r.split("/")[1]):[]}function n1(t){const e=Vs(t);si(e);const n=[];return Object.values(e.att).forEach(r=>{Object.values(r).forEach(i=>{i?.[0]?.chains&&n.push(i[0].chains)})}),[...new Set(n.flat())]}function Ba(t){if(!t)return;const e=t?.[t.length-1];return bS(e)?e:void 0}const r1="base10",gt="base16",Je="base64pad",Rr="base64url",zs="utf8",i1=0,Hn=1,js=2,xS=0,s1=1,Ws=12,Df=32;function SS(){const t=Zu.utils.randomPrivateKey(),e=Zu.getPublicKey(t);return{privateKey:Ve(t,gt),publicKey:Ve(e,gt)}}function Rf(){const t=On(Df);return Ve(t,gt)}function IS(t,e){const n=Zu.getSharedSecret(it(t,gt),it(e,gt)),r=M6(So,n,void 0,void 0,Df);return Ve(r,gt)}function Da(t){const e=So(it(t,gt));return Ve(e,gt)}function Wt(t){const e=So(it(t,zs));return Ve(e,gt)}function o1(t){return it(`${t}`,r1)}function oi(t){return Number(Ve(t,r1))}function a1(t){return t.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Ra(t){const e=t.replace(/-/g,"+").replace(/_/g,"/"),n=(4-e.length%4)%4;return e+"=".repeat(n)}function AS(t){const e=o1(typeof t.type<"u"?t.type:i1);if(oi(e)===Hn&&typeof t.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");const n=typeof t.senderPublicKey<"u"?it(t.senderPublicKey,gt):void 0,r=typeof t.iv<"u"?it(t.iv,gt):On(Ws),i=it(t.symKey,gt),s=_0(i,r).encrypt(it(t.message,zs)),o=c1({type:e,sealed:s,iv:r,senderPublicKey:n});return t.encoding===Rr?a1(o):o}function OS(t){const e=it(t.symKey,gt),{sealed:n,iv:r}=Hs({encoded:t.encoded,encoding:t.encoding}),i=_0(e,r).decrypt(n);if(i===null)throw new Error("Failed to decrypt");return Ve(i,zs)}function BS(t,e){const n=o1(js),r=On(Ws),i=it(t,zs),s=c1({type:n,sealed:i,iv:r});return e===Rr?a1(s):s}function DS(t,e){const{sealed:n}=Hs({encoded:t,encoding:e});return Ve(n,zs)}function c1(t){if(oi(t.type)===js)return Ve(Xr([t.type,t.sealed]),Je);if(oi(t.type)===Hn){if(typeof t.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");return Ve(Xr([t.type,t.senderPublicKey,t.iv,t.sealed]),Je)}return Ve(Xr([t.type,t.iv,t.sealed]),Je)}function Hs(t){const e=(t.encoding||Je)===Rr?Ra(t.encoded):t.encoded,n=it(e,Je),r=n.slice(xS,s1),i=s1;if(oi(r)===Hn){const c=i+Df,u=c+Ws,f=n.slice(i,c),h=n.slice(c,u),d=n.slice(u);return{type:r,sealed:d,iv:h,senderPublicKey:f}}if(oi(r)===js){const c=n.slice(i),u=On(Ws);return{type:r,sealed:c,iv:u}}const s=i+Ws,o=n.slice(i,s),a=n.slice(s);return{type:r,sealed:a,iv:o}}function RS(t,e){const n=Hs({encoded:t,encoding:e?.encoding});return u1({type:oi(n.type),senderPublicKey:typeof n.senderPublicKey<"u"?Ve(n.senderPublicKey,gt):void 0,receiverPublicKey:e?.receiverPublicKey})}function u1(t){const e=t?.type||i1;if(e===Hn){if(typeof t?.senderPublicKey>"u")throw new Error("missing sender public key");if(typeof t?.receiverPublicKey>"u")throw new Error("missing receiver public key")}return{type:e,senderPublicKey:t?.senderPublicKey,receiverPublicKey:t?.receiverPublicKey}}function f1(t){return t.type===Hn&&typeof t.senderPublicKey=="string"&&typeof t.receiverPublicKey=="string"}function l1(t){return t.type===js}function TS(t){const e=it(Ra(t.x),Je),n=it(Ra(t.y),Je);return Xr([new Uint8Array([4]),e,n])}function NS(t,e){const[n,r,i]=t.split("."),s=it(Ra(i),Je);if(s.length!==64)throw new Error("Invalid signature length");const o=s.slice(0,32),a=s.slice(32,64),c=`${n}.${r}`,u=So(c),f=TS(e);if(!B8.verify(Xr([o,a]),u,f))throw new Error("Invalid signature");return mf(t).payload}const US="irn";function Ta(t){return t?.relay||{protocol:US}}function Yi(t){const e=m5[t];if(typeof e>"u")throw new Error(`Relay Protocol not supported: ${t}`);return e}function CS(t,e="-"){const n={},r="relay"+e;return Object.keys(t).forEach(i=>{if(i.startsWith(r)){const s=i.replace(r,""),o=t[i];n[s]=o}}),n}function h1(t){if(!t.includes("wc:")){const u=Kg(t);u?.includes("wc:")&&(t=u)}t=t.includes("wc://")?t.replace("wc://",""):t,t=t.includes("wc:")?t.replace("wc:",""):t;const e=t.indexOf(":"),n=t.indexOf("?")!==-1?t.indexOf("?"):void 0,r=t.substring(0,e),i=t.substring(e+1,n).split("@"),s=typeof n<"u"?t.substring(n):"",o=new URLSearchParams(s),a=Object.fromEntries(o.entries()),c=typeof a.methods=="string"?a.methods.split(","):void 0;return{protocol:r,topic:PS(i[0]),version:parseInt(i[1],10),symKey:a.symKey,relay:CS(a),methods:c,expiryTimestamp:a.expiryTimestamp?parseInt(a.expiryTimestamp,10):void 0}}function PS(t){return t.startsWith("//")?t.substring(2):t}function qS(t,e="-"){const n="relay",r={};return Object.keys(t).forEach(i=>{const s=i,o=n+e+s;t[s]&&(r[o]=t[s])}),r}function d1(t){const e=new URLSearchParams,n={...qS(t.relay),symKey:t.symKey,...t.expiryTimestamp&&{expiryTimestamp:t.expiryTimestamp.toString()},...t.methods&&{methods:t.methods.join(",")}};return Object.entries(n).sort(([r],[i])=>r.localeCompare(i)).forEach(([r,i])=>{i!==void 0&&e.append(r,String(i))}),`${t.protocol}:${t.topic}@${t.version}?${e}`}function Na(t,e,n){return`${t}?wc_ev=${n}&topic=${e}`}function Gi(t){const e=[];return t.forEach(n=>{const[r,i]=n.split(":");e.push(`${r}:${i}`)}),e}function p1(t){const e=[];return Object.values(t).forEach(n=>{e.push(...Gi(n.accounts))}),[...new Set(e)]}function FS(t){const e=[];return Object.values(t).forEach(n=>{e.push(...n.methods)}),[...new Set(e)]}function kS(t){const e=[];return Object.values(t).forEach(n=>{e.push(...n.events)}),[...new Set(e)]}function LS(t,e){const n=[];return Object.values(t).forEach(r=>{Gi(r.accounts).includes(e)&&n.push(...r.methods)}),n}function MS(t,e){const n=[];return Object.values(t).forEach(r=>{Gi(r.accounts).includes(e)&&n.push(...r.events)}),n}function g1(t){return t.includes(":")}function VS(t){return g1(t)?t.split(":")[0]:t}function w1(t){const e={};if(!Ys(t))return e;for(const[n,r]of Object.entries(t)){const i=g1(n)?[n]:r.chains,s=r.methods||[],o=r.events||[],a=VS(n);e[a]={...e[a],chains:ii(i,e[a]?.chains),methods:ii(s,e[a]?.methods),events:ii(o,e[a]?.events)}}return e}function zS(t){const e={};return t?.forEach(n=>{const[r,i]=n.split(":");e[r]||(e[r]={accounts:[],chains:[],events:[],methods:[]}),e[r].accounts.push(n),e[r].chains?.push(`${r}:${i}`)}),e}function y1(t,e){e=e.map(r=>r.replace("did:pkh:",""));const n=zS(e);for(const[r,i]of Object.entries(n))i.methods?i.methods=ii(i.methods,t):i.methods=t,i.events=["chainChanged","accountsChanged"];return n}function jS(t,e){const n=w1(t),r=w1(e),i={},s=Object.keys(n).concat(Object.keys(r));for(const o of s)i[o]={chains:ii(n[o]?.chains,r[o]?.chains),methods:ii(n[o]?.methods,r[o]?.methods),events:ii(n[o]?.events,r[o]?.events)};return i}function Ki(t,e){return Array.isArray(t)?typeof e<"u"&&t.length?t.every(e):!0:!1}function Ys(t){return Object.getPrototypeOf(t)===Object.prototype&&Object.keys(t).length}function ke(t){return typeof t>"u"}function Ue(t,e){return e&&ke(t)?!0:typeof t=="string"&&!!t.trim().length}function Tf(t,e){return e&&ke(t)?!0:typeof t=="number"&&!isNaN(t)}function WS(t,e){const{requiredNamespaces:n}=e,r=Object.keys(t.namespaces),i=Object.keys(n);let s=!0;return ni(i,r)?(r.forEach(o=>{const{accounts:a,methods:c,events:u}=t.namespaces[o],f=Gi(a),h=n[o];(!ni(Lg(o,h),f)||!ni(h.methods,c)||!ni(h.events,u))&&(s=!1)}),s):!1}function Ua(t){return Ue(t,!1)&&t.includes(":")?t.split(":").length===2:!1}function HS(t){if(Ue(t,!1)&&t.includes(":")){const e=t.split(":");if(e.length===3){const n=e[0]+":"+e[1];return!!e[2]&&Ua(n)}}return!1}function YS(t){function e(n){try{return typeof new URL(n)<"u"}catch{return!1}}try{if(Ue(t,!1)){if(e(t))return!0;const n=Kg(t);return e(n)}}catch{}return!1}function GS(t){return t?.proposer?.publicKey}function KS(t){return t?.topic}function ZS(t,e){let n=null;return Ue(t?.publicKey,!1)||(n=X("MISSING_OR_INVALID",`${e} controller public key should be a string`)),n}function b1(t){let e=!0;return Ki(t)?t.length&&(e=t.every(n=>Ue(n,!1))):e=!1,e}function JS(t,e,n){let r=null;return Ki(e)&&e.length?e.forEach(i=>{r||Ua(i)||(r=Re("UNSUPPORTED_CHAINS",`${n}, chain ${i} should be a string and conform to "namespace:chainId" format`))}):Ua(t)||(r=Re("UNSUPPORTED_CHAINS",`${n}, chains must be defined as "namespace:chainId" e.g. "eip155:1": {...} in the namespace key OR as an array of CAIP-2 chainIds e.g. eip155: { chains: ["eip155:1", "eip155:5"] }`)),r}function XS(t,e,n){let r=null;return Object.entries(t).forEach(([i,s])=>{if(r)return;const o=JS(i,Lg(i,s),`${e} ${n}`);o&&(r=o)}),r}function QS(t,e){let n=null;return Ki(t)?t.forEach(r=>{n||HS(r)||(n=Re("UNSUPPORTED_ACCOUNTS",`${e}, account ${r} should be a string and conform to "namespace:chainId:address" format`))}):n=Re("UNSUPPORTED_ACCOUNTS",`${e}, accounts should be an array of strings conforming to "namespace:chainId:address" format`),n}function _S(t,e){let n=null;return Object.values(t).forEach(r=>{if(n)return;const i=QS(r?.accounts,`${e} namespace`);i&&(n=i)}),n}function $S(t,e){let n=null;return b1(t?.methods)?b1(t?.events)||(n=Re("UNSUPPORTED_EVENTS",`${e}, events should be an array of strings or empty array for no events`)):n=Re("UNSUPPORTED_METHODS",`${e}, methods should be an array of strings or empty array for no methods`),n}function m1(t,e){let n=null;return Object.values(t).forEach(r=>{if(n)return;const i=$S(r,`${e}, namespace`);i&&(n=i)}),n}function eI(t,e,n){let r=null;if(t&&Ys(t)){const i=m1(t,e);i&&(r=i);const s=XS(t,e,n);s&&(r=s)}else r=X("MISSING_OR_INVALID",`${e}, ${n} should be an object with data`);return r}function Nf(t,e){let n=null;if(t&&Ys(t)){const r=m1(t,e);r&&(n=r);const i=_S(t,e);i&&(n=i)}else n=X("MISSING_OR_INVALID",`${e}, namespaces should be an object with data`);return n}function v1(t){return Ue(t.protocol,!0)}function tI(t,e){let n=!1;return e&&!t?n=!0:t&&Ki(t)&&t.length&&t.forEach(r=>{n=v1(r)}),n}function nI(t){return typeof t=="number"}function At(t){return typeof t<"u"&&typeof t!==null}function rI(t){return!(!t||typeof t!="object"||!t.code||!Tf(t.code,!1)||!t.message||!Ue(t.message,!1))}function iI(t){return!(ke(t)||!Ue(t.method,!1))}function sI(t){return!(ke(t)||ke(t.result)&&ke(t.error)||!Tf(t.id,!1)||!Ue(t.jsonrpc,!1))}function oI(t){return!(ke(t)||!Ue(t.name,!1))}function E1(t,e){return!(!Ua(e)||!p1(t).includes(e))}function aI(t,e,n){return Ue(n,!1)?LS(t,e).includes(n):!1}function cI(t,e,n){return Ue(n,!1)?MS(t,e).includes(n):!1}function x1(t,e,n){let r=null;const i=uI(t),s=fI(e),o=Object.keys(i),a=Object.keys(s),c=S1(Object.keys(t)),u=S1(Object.keys(e)),f=c.filter(h=>!u.includes(h));return f.length&&(r=X("NON_CONFORMING_NAMESPACES",`${n} namespaces keys don't satisfy requiredNamespaces.
|
|
14
|
+
***************************************************************************** */var cc=function(t,e){return cc=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)r.hasOwnProperty(i)&&(n[i]=r[i])},cc(t,e)};function fb(t,e){cc(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}var uc=function(){return uc=Object.assign||function(e){for(var n,r=1,i=arguments.length;r<i;r++){n=arguments[r];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},uc.apply(this,arguments)};function lb(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n}function hb(t,e,n,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,n):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(t,e,n,r);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(i<3?o(s):i>3?o(e,n,s):o(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s}function db(t,e){return function(n,r){e(n,r,t)}}function pb(t,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(t,e)}function gb(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(f){try{u(r.next(f))}catch(h){o(h)}}function c(f){try{u(r.throw(f))}catch(h){o(h)}}function u(f){f.done?s(f.value):i(f.value).then(a,c)}u((r=r.apply(t,e||[])).next())})}function yb(t,e){var n={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},r,i,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(u){return function(f){return c([u,f])}}function c(u){if(r)throw new TypeError("Generator is already executing.");for(;n;)try{if(r=1,i&&(s=u[0]&2?i.return:u[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,u[1])).done)return s;switch(i=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return n.label++,{value:u[1],done:!1};case 5:n.label++,i=u[1],u=[0];continue;case 7:u=n.ops.pop(),n.trys.pop();continue;default:if(s=n.trys,!(s=s.length>0&&s[s.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){n.label=u[1];break}if(u[0]===6&&n.label<s[1]){n.label=s[1],s=u;break}if(s&&n.label<s[2]){n.label=s[2],n.ops.push(u);break}s[2]&&n.ops.pop(),n.trys.pop();continue}u=e.call(t,n)}catch(f){u=[6,f],i=0}finally{r=s=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function wb(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}function bb(t,e){for(var n in t)n!=="default"&&!e.hasOwnProperty(n)&&(e[n]=t[n])}function fc(t){var e=typeof Symbol=="function"&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function Ql(t,e){var n=typeof Symbol=="function"&&t[Symbol.iterator];if(!n)return t;var r=n.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=r.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return s}function mb(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(Ql(arguments[e]));return t}function vb(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;for(var r=Array(t),i=0,e=0;e<n;e++)for(var s=arguments[e],o=0,a=s.length;o<a;o++,i++)r[i]=s[o];return r}function os(t){return this instanceof os?(this.v=t,this):new os(t)}function Eb(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),i,s=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(d){r[d]&&(i[d]=function(l){return new Promise(function(p,w){s.push([d,l,p,w])>1||a(d,l)})})}function a(d,l){try{c(r[d](l))}catch(p){h(s[0][3],p)}}function c(d){d.value instanceof os?Promise.resolve(d.value.v).then(u,f):h(s[0][2],d)}function u(d){a("next",d)}function f(d){a("throw",d)}function h(d,l){d(l),s.shift(),s.length&&a(s[0][0],s[0][1])}}function xb(t){var e,n;return e={},r("next"),r("throw",function(i){throw i}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(i,s){e[i]=t[i]?function(o){return(n=!n)?{value:os(t[i](o)),done:i==="return"}:s?s(o):o}:s}}function Sb(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof fc=="function"?fc(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(s){n[s]=t[s]&&function(o){return new Promise(function(a,c){o=t[s](o),i(a,c,o.done,o.value)})}}function i(s,o,a,c){Promise.resolve(c).then(function(u){s({value:u,done:a})},o)}}function Ib(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function Ab(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function Bb(t){return t&&t.__esModule?t:{default:t}}function Db(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function Ob(t,e,n){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,n),n}var Tb=Object.freeze({__proto__:null,__extends:fb,get __assign(){return uc},__rest:lb,__decorate:hb,__param:db,__metadata:pb,__awaiter:gb,__generator:yb,__createBinding:wb,__exportStar:bb,__values:fc,__read:Ql,__spread:mb,__spreadArrays:vb,__await:os,__asyncGenerator:Eb,__asyncDelegator:xb,__asyncValues:Sb,__makeTemplateObject:Ib,__importStar:Ab,__importDefault:Bb,__classPrivateFieldGet:Db,__classPrivateFieldSet:Ob}),mo=Il(Tb),lc={},as={},_l;function Rb(){if(_l)return as;_l=1,Object.defineProperty(as,"__esModule",{value:!0}),as.delay=void 0;function t(e){return new Promise(n=>{setTimeout(()=>{n(!0)},e)})}return as.delay=t,as}var Fr={},hc={},zr={},$l;function Nb(){return $l||($l=1,Object.defineProperty(zr,"__esModule",{value:!0}),zr.ONE_THOUSAND=zr.ONE_HUNDRED=void 0,zr.ONE_HUNDRED=100,zr.ONE_THOUSAND=1e3),zr}var dc={},eh;function Ub(){return eh||(eh=1,function(t){Object.defineProperty(t,"__esModule",{value:!0}),t.ONE_YEAR=t.FOUR_WEEKS=t.THREE_WEEKS=t.TWO_WEEKS=t.ONE_WEEK=t.THIRTY_DAYS=t.SEVEN_DAYS=t.FIVE_DAYS=t.THREE_DAYS=t.ONE_DAY=t.TWENTY_FOUR_HOURS=t.TWELVE_HOURS=t.SIX_HOURS=t.THREE_HOURS=t.ONE_HOUR=t.SIXTY_MINUTES=t.THIRTY_MINUTES=t.TEN_MINUTES=t.FIVE_MINUTES=t.ONE_MINUTE=t.SIXTY_SECONDS=t.THIRTY_SECONDS=t.TEN_SECONDS=t.FIVE_SECONDS=t.ONE_SECOND=void 0,t.ONE_SECOND=1,t.FIVE_SECONDS=5,t.TEN_SECONDS=10,t.THIRTY_SECONDS=30,t.SIXTY_SECONDS=60,t.ONE_MINUTE=t.SIXTY_SECONDS,t.FIVE_MINUTES=t.ONE_MINUTE*5,t.TEN_MINUTES=t.ONE_MINUTE*10,t.THIRTY_MINUTES=t.ONE_MINUTE*30,t.SIXTY_MINUTES=t.ONE_MINUTE*60,t.ONE_HOUR=t.SIXTY_MINUTES,t.THREE_HOURS=t.ONE_HOUR*3,t.SIX_HOURS=t.ONE_HOUR*6,t.TWELVE_HOURS=t.ONE_HOUR*12,t.TWENTY_FOUR_HOURS=t.ONE_HOUR*24,t.ONE_DAY=t.TWENTY_FOUR_HOURS,t.THREE_DAYS=t.ONE_DAY*3,t.FIVE_DAYS=t.ONE_DAY*5,t.SEVEN_DAYS=t.ONE_DAY*7,t.THIRTY_DAYS=t.ONE_DAY*30,t.ONE_WEEK=t.SEVEN_DAYS,t.TWO_WEEKS=t.ONE_WEEK*2,t.THREE_WEEKS=t.ONE_WEEK*3,t.FOUR_WEEKS=t.ONE_WEEK*4,t.ONE_YEAR=t.ONE_DAY*365}(dc)),dc}var th;function nh(){return th||(th=1,function(t){Object.defineProperty(t,"__esModule",{value:!0});const e=mo;e.__exportStar(Nb(),t),e.__exportStar(Ub(),t)}(hc)),hc}var rh;function Pb(){if(rh)return Fr;rh=1,Object.defineProperty(Fr,"__esModule",{value:!0}),Fr.fromMiliseconds=Fr.toMiliseconds=void 0;const t=nh();function e(r){return r*t.ONE_THOUSAND}Fr.toMiliseconds=e;function n(r){return Math.floor(r/t.ONE_THOUSAND)}return Fr.fromMiliseconds=n,Fr}var ih;function qb(){return ih||(ih=1,function(t){Object.defineProperty(t,"__esModule",{value:!0});const e=mo;e.__exportStar(Rb(),t),e.__exportStar(Pb(),t)}(lc)),lc}var xi={},sh;function Cb(){if(sh)return xi;sh=1,Object.defineProperty(xi,"__esModule",{value:!0}),xi.Watch=void 0;class t{constructor(){this.timestamps=new Map}start(n){if(this.timestamps.has(n))throw new Error(`Watch already started for label: ${n}`);this.timestamps.set(n,{started:Date.now()})}stop(n){const r=this.get(n);if(typeof r.elapsed<"u")throw new Error(`Watch already stopped for label: ${n}`);const i=Date.now()-r.started;this.timestamps.set(n,{started:r.started,elapsed:i})}get(n){const r=this.timestamps.get(n);if(typeof r>"u")throw new Error(`No timestamp found for label: ${n}`);return r}elapsed(n){const r=this.get(n);return r.elapsed||Date.now()-r.started}}return xi.Watch=t,xi.default=t,xi}var pc={},cs={},oh;function Lb(){if(oh)return cs;oh=1,Object.defineProperty(cs,"__esModule",{value:!0}),cs.IWatch=void 0;class t{}return cs.IWatch=t,cs}var ah;function Vb(){return ah||(ah=1,function(t){Object.defineProperty(t,"__esModule",{value:!0}),mo.__exportStar(Lb(),t)}(pc)),pc}(function(t){Object.defineProperty(t,"__esModule",{value:!0});const e=mo;e.__exportStar(qb(),t),e.__exportStar(Cb(),t),e.__exportStar(Vb(),t),e.__exportStar(nh(),t)})(Y);var Se={};Object.defineProperty(Se,"__esModule",{value:!0}),Se.getLocalStorage=Se.getLocalStorageOrThrow=Se.getCrypto=Se.getCryptoOrThrow=ch=Se.getLocation=Se.getLocationOrThrow=gc=Se.getNavigator=Se.getNavigatorOrThrow=Kr=Se.getDocument=Se.getDocumentOrThrow=Se.getFromWindowOrThrow=Se.getFromWindow=void 0;function Mr(t){let e;return typeof window<"u"&&typeof window[t]<"u"&&(e=window[t]),e}Se.getFromWindow=Mr;function Si(t){const e=Mr(t);if(!e)throw new Error(`${t} is not defined in Window`);return e}Se.getFromWindowOrThrow=Si;function kb(){return Si("document")}Se.getDocumentOrThrow=kb;function Fb(){return Mr("document")}var Kr=Se.getDocument=Fb;function zb(){return Si("navigator")}Se.getNavigatorOrThrow=zb;function Mb(){return Mr("navigator")}var gc=Se.getNavigator=Mb;function Kb(){return Si("location")}Se.getLocationOrThrow=Kb;function jb(){return Mr("location")}var ch=Se.getLocation=jb;function Wb(){return Si("crypto")}Se.getCryptoOrThrow=Wb;function Hb(){return Mr("crypto")}Se.getCrypto=Hb;function Gb(){return Si("localStorage")}Se.getLocalStorageOrThrow=Gb;function Zb(){return Mr("localStorage")}Se.getLocalStorage=Zb;var yc={};Object.defineProperty(yc,"__esModule",{value:!0});var uh=yc.getWindowMetadata=void 0;const fh=Se;function Xb(){let t,e;try{t=fh.getDocumentOrThrow(),e=fh.getLocationOrThrow()}catch{return null}function n(){const h=t.getElementsByTagName("link"),d=[];for(let l=0;l<h.length;l++){const p=h[l],w=p.getAttribute("rel");if(w&&w.toLowerCase().indexOf("icon")>-1){const v=p.getAttribute("href");if(v)if(v.toLowerCase().indexOf("https:")===-1&&v.toLowerCase().indexOf("http:")===-1&&v.indexOf("//")!==0){let O=e.protocol+"//"+e.host;if(v.indexOf("/")===0)O+=v;else{const P=e.pathname.split("/");P.pop();const A=P.join("/");O+=A+"/"+v}d.push(O)}else if(v.indexOf("//")===0){const O=e.protocol+v;d.push(O)}else d.push(v)}}return d}function r(...h){const d=t.getElementsByTagName("meta");for(let l=0;l<d.length;l++){const p=d[l],w=["itemprop","property","name"].map(v=>p.getAttribute(v)).filter(v=>v?h.includes(v):!1);if(w.length&&w){const v=p.getAttribute("content");if(v)return v}}return""}function i(){let h=r("name","og:site_name","og:title","twitter:title");return h||(h=t.title),h}function s(){return r("description","og:description","twitter:description","keywords")}const o=i(),a=s(),c=e.origin,u=n();return{description:a,url:c,icons:u,name:o}}uh=yc.getWindowMetadata=Xb;const vo=BigInt(2**32-1),lh=BigInt(32);function hh(t,e=!1){return e?{h:Number(t&vo),l:Number(t>>lh&vo)}:{h:Number(t>>lh&vo)|0,l:Number(t&vo)|0}}function dh(t,e=!1){const n=t.length;let r=new Uint32Array(n),i=new Uint32Array(n);for(let s=0;s<n;s++){const{h:o,l:a}=hh(t[s],e);[r[s],i[s]]=[o,a]}return[r,i]}const ph=(t,e,n)=>t>>>n,gh=(t,e,n)=>t<<32-n|e>>>n,rr=(t,e,n)=>t>>>n|e<<32-n,ir=(t,e,n)=>t<<32-n|e>>>n,us=(t,e,n)=>t<<64-n|e>>>n-32,fs=(t,e,n)=>t>>>n-32|e<<64-n,Yb=(t,e)=>e,Jb=(t,e)=>t,Qb=(t,e,n)=>t<<n|e>>>32-n,_b=(t,e,n)=>e<<n|t>>>32-n,$b=(t,e,n)=>e<<n-32|t>>>64-n,em=(t,e,n)=>t<<n-32|e>>>64-n;function Xt(t,e,n,r){const i=(e>>>0)+(r>>>0);return{h:t+n+(i/2**32|0)|0,l:i|0}}const wc=(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0),bc=(t,e,n,r)=>e+n+r+(t/2**32|0)|0,tm=(t,e,n,r)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0),nm=(t,e,n,r,i)=>e+n+r+i+(t/2**32|0)|0,rm=(t,e,n,r,i)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0)+(i>>>0),im=(t,e,n,r,i,s)=>e+n+r+i+s+(t/2**32|0)|0,Ii=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;function Eo(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function fn(t){if(!Number.isSafeInteger(t)||t<0)throw new Error("positive integer expected, got "+t)}function Yt(t,...e){if(!Eo(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error("Uint8Array expected of length "+e+", got length="+t.length)}function xo(t){if(typeof t!="function"||typeof t.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");fn(t.outputLen),fn(t.blockLen)}function sr(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function mc(t,e){Yt(t);const n=e.outputLen;if(t.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function ls(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function kt(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function vc(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function ln(t,e){return t<<32-e|t>>>e}const yh=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function wh(t){return t<<24&4278190080|t<<8&16711680|t>>>8&65280|t>>>24&255}const In=yh?t=>t:t=>wh(t);function sm(t){for(let e=0;e<t.length;e++)t[e]=wh(t[e]);return t}const or=yh?t=>t:sm,bh=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",om=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function Ai(t){if(Yt(t),bh)return t.toHex();let e="";for(let n=0;n<t.length;n++)e+=om[t[n]];return e}const An={_0:48,_9:57,A:65,F:70,a:97,f:102};function mh(t){if(t>=An._0&&t<=An._9)return t-An._0;if(t>=An.A&&t<=An.F)return t-(An.A-10);if(t>=An.a&&t<=An.f)return t-(An.a-10)}function So(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);if(bh)return Uint8Array.fromHex(t);const e=t.length,n=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);const r=new Uint8Array(n);for(let i=0,s=0;i<n;i++,s+=2){const o=mh(t.charCodeAt(s)),a=mh(t.charCodeAt(s+1));if(o===void 0||a===void 0){const c=t[s]+t[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}r[i]=o*16+a}return r}function vh(t){if(typeof t!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(t))}function Jt(t){return typeof t=="string"&&(t=vh(t)),Yt(t),t}function Bn(...t){let e=0;for(let r=0;r<t.length;r++){const i=t[r];Yt(i),e+=i.length}const n=new Uint8Array(e);for(let r=0,i=0;r<t.length;r++){const s=t[r];n.set(s,i),i+=s.length}return n}class Io{}function hs(t){const e=r=>t().update(Jt(r)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function am(t){const e=(r,i)=>t(i).update(Jt(r)).digest(),n=t({});return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=r=>t(r),e}function Dn(t=32){if(Ii&&typeof Ii.getRandomValues=="function")return Ii.getRandomValues(new Uint8Array(t));if(Ii&&typeof Ii.randomBytes=="function")return Uint8Array.from(Ii.randomBytes(t));throw new Error("crypto.getRandomValues must be defined")}const cm=BigInt(0),ds=BigInt(1),um=BigInt(2),fm=BigInt(7),lm=BigInt(256),hm=BigInt(113),Eh=[],xh=[],Sh=[];for(let t=0,e=ds,n=1,r=0;t<24;t++){[n,r]=[r,(2*n+3*r)%5],Eh.push(2*(5*r+n)),xh.push((t+1)*(t+2)/2%64);let i=cm;for(let s=0;s<7;s++)e=(e<<ds^(e>>fm)*hm)%lm,e&um&&(i^=ds<<(ds<<BigInt(s))-ds);Sh.push(i)}const Ih=dh(Sh,!0),dm=Ih[0],pm=Ih[1],Ah=(t,e,n)=>n>32?$b(t,e,n):Qb(t,e,n),Bh=(t,e,n)=>n>32?em(t,e,n):_b(t,e,n);function gm(t,e=24){const n=new Uint32Array(10);for(let r=24-e;r<24;r++){for(let o=0;o<10;o++)n[o]=t[o]^t[o+10]^t[o+20]^t[o+30]^t[o+40];for(let o=0;o<10;o+=2){const a=(o+8)%10,c=(o+2)%10,u=n[c],f=n[c+1],h=Ah(u,f,1)^n[a],d=Bh(u,f,1)^n[a+1];for(let l=0;l<50;l+=10)t[o+l]^=h,t[o+l+1]^=d}let i=t[2],s=t[3];for(let o=0;o<24;o++){const a=xh[o],c=Ah(i,s,a),u=Bh(i,s,a),f=Eh[o];i=t[f],s=t[f+1],t[f]=c,t[f+1]=u}for(let o=0;o<50;o+=10){for(let a=0;a<10;a++)n[a]=t[o+a];for(let a=0;a<10;a++)t[o+a]^=~n[(a+2)%10]&n[(a+4)%10]}t[0]^=dm[r],t[1]^=pm[r]}kt(n)}class Ec extends Io{constructor(e,n,r,i=!1,s=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=e,this.suffix=n,this.outputLen=r,this.enableXOF=i,this.rounds=s,fn(r),!(0<e&&e<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=ls(this.state)}clone(){return this._cloneInto()}keccak(){or(this.state32),gm(this.state32,this.rounds),or(this.state32),this.posOut=0,this.pos=0}update(e){sr(this),e=Jt(e),Yt(e);const{blockLen:n,state:r}=this,i=e.length;for(let s=0;s<i;){const o=Math.min(n-this.pos,i-s);for(let a=0;a<o;a++)r[this.pos++]^=e[s++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:e,suffix:n,pos:r,blockLen:i}=this;e[r]^=n,(n&128)!==0&&r===i-1&&this.keccak(),e[i-1]^=128,this.keccak()}writeInto(e){sr(this,!1),Yt(e),this.finish();const n=this.state,{blockLen:r}=this;for(let i=0,s=e.length;i<s;){this.posOut>=r&&this.keccak();const o=Math.min(r-this.posOut,s-i);e.set(n.subarray(this.posOut,this.posOut+o),i),this.posOut+=o,i+=o}return e}xofInto(e){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return fn(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(mc(e,this),this.finished)throw new Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,kt(this.state)}_cloneInto(e){const{blockLen:n,suffix:r,outputLen:i,rounds:s,enableXOF:o}=this;return e||(e=new Ec(n,r,i,o,s)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=s,e.suffix=r,e.outputLen=i,e.enableXOF=o,e.destroyed=this.destroyed,e}}const ym=(t,e,n)=>hs(()=>new Ec(e,t,n)),Dh=ym(1,136,256/8),wm="0.1.1";function bm(){return wm}class xe extends Error{constructor(e,n={}){const r=(()=>{if(n.cause instanceof xe){if(n.cause.details)return n.cause.details;if(n.cause.shortMessage)return n.cause.shortMessage}return n.cause&&"details"in n.cause&&typeof n.cause.details=="string"?n.cause.details:n.cause?.message?n.cause.message:n.details})(),i=n.cause instanceof xe&&n.cause.docsPath||n.docsPath,o=`https://oxlib.sh${i??""}`,a=[e||"An error occurred.",...n.metaMessages?["",...n.metaMessages]:[],...r||i?["",r?`Details: ${r}`:void 0,i?`See: ${o}`:void 0]:[]].filter(c=>typeof c=="string").join(`
|
|
15
|
+
`);super(a,n.cause?{cause:n.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:`ox@${bm()}`}),this.cause=n.cause,this.details=r,this.docs=o,this.docsPath=i,this.shortMessage=e}walk(e){return Oh(this,e)}}function Oh(t,e){return e?.(t)?t:t&&typeof t=="object"&&"cause"in t&&t.cause?Oh(t.cause,e):e?null:t}function mm(t,e,n,r){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,n,r);const i=BigInt(32),s=BigInt(4294967295),o=Number(n>>i&s),a=Number(n&s),c=r?4:0,u=r?0:4;t.setUint32(e+c,o,r),t.setUint32(e+u,a,r)}function vm(t,e,n){return t&e^~t&n}function Em(t,e,n){return t&e^t&n^e&n}class Th extends Io{constructor(e,n,r,i){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=n,this.padOffset=r,this.isLE=i,this.buffer=new Uint8Array(e),this.view=vc(this.buffer)}update(e){sr(this),e=Jt(e),Yt(e);const{view:n,buffer:r,blockLen:i}=this,s=e.length;for(let o=0;o<s;){const a=Math.min(i-this.pos,s-o);if(a===i){const c=vc(e);for(;i<=s-o;o+=i)this.process(c,o);continue}r.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){sr(this),mc(e,this),this.finished=!0;const{buffer:n,view:r,blockLen:i,isLE:s}=this;let{pos:o}=this;n[o++]=128,kt(this.buffer.subarray(o)),this.padOffset>i-o&&(this.process(r,0),o=0);for(let h=o;h<i;h++)n[h]=0;mm(r,i-8,BigInt(this.length*8),s),this.process(r,0);const a=vc(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let h=0;h<u;h++)a.setUint32(4*h,f[h],s)}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:n,buffer:r,length:i,finished:s,destroyed:o,pos:a}=this;return e.destroyed=o,e.finished=s,e.length=i,e.pos=a,i%n&&e.buffer.set(r),e}clone(){return this._cloneInto()}}const On=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),et=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),tt=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),xm=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),ar=new Uint32Array(64);class Sm extends Th{constructor(e=32){super(64,e,8,!1),this.A=On[0]|0,this.B=On[1]|0,this.C=On[2]|0,this.D=On[3]|0,this.E=On[4]|0,this.F=On[5]|0,this.G=On[6]|0,this.H=On[7]|0}get(){const{A:e,B:n,C:r,D:i,E:s,F:o,G:a,H:c}=this;return[e,n,r,i,s,o,a,c]}set(e,n,r,i,s,o,a,c){this.A=e|0,this.B=n|0,this.C=r|0,this.D=i|0,this.E=s|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,n){for(let h=0;h<16;h++,n+=4)ar[h]=e.getUint32(n,!1);for(let h=16;h<64;h++){const d=ar[h-15],l=ar[h-2],p=ln(d,7)^ln(d,18)^d>>>3,w=ln(l,17)^ln(l,19)^l>>>10;ar[h]=w+ar[h-7]+p+ar[h-16]|0}let{A:r,B:i,C:s,D:o,E:a,F:c,G:u,H:f}=this;for(let h=0;h<64;h++){const d=ln(a,6)^ln(a,11)^ln(a,25),l=f+d+vm(a,c,u)+xm[h]+ar[h]|0,w=(ln(r,2)^ln(r,13)^ln(r,22))+Em(r,i,s)|0;f=u,u=c,c=a,a=o+l|0,o=s,s=i,i=r,r=l+w|0}r=r+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,f=f+this.H|0,this.set(r,i,s,o,a,c,u,f)}roundClean(){kt(ar)}destroy(){this.set(0,0,0,0,0,0,0,0),kt(this.buffer)}}const Rh=dh(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(t=>BigInt(t))),Im=Rh[0],Am=Rh[1],cr=new Uint32Array(80),ur=new Uint32Array(80);class xc extends Th{constructor(e=64){super(128,e,16,!1),this.Ah=tt[0]|0,this.Al=tt[1]|0,this.Bh=tt[2]|0,this.Bl=tt[3]|0,this.Ch=tt[4]|0,this.Cl=tt[5]|0,this.Dh=tt[6]|0,this.Dl=tt[7]|0,this.Eh=tt[8]|0,this.El=tt[9]|0,this.Fh=tt[10]|0,this.Fl=tt[11]|0,this.Gh=tt[12]|0,this.Gl=tt[13]|0,this.Hh=tt[14]|0,this.Hl=tt[15]|0}get(){const{Ah:e,Al:n,Bh:r,Bl:i,Ch:s,Cl:o,Dh:a,Dl:c,Eh:u,El:f,Fh:h,Fl:d,Gh:l,Gl:p,Hh:w,Hl:v}=this;return[e,n,r,i,s,o,a,c,u,f,h,d,l,p,w,v]}set(e,n,r,i,s,o,a,c,u,f,h,d,l,p,w,v){this.Ah=e|0,this.Al=n|0,this.Bh=r|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=f|0,this.Fh=h|0,this.Fl=d|0,this.Gh=l|0,this.Gl=p|0,this.Hh=w|0,this.Hl=v|0}process(e,n){for(let A=0;A<16;A++,n+=4)cr[A]=e.getUint32(n),ur[A]=e.getUint32(n+=4);for(let A=16;A<80;A++){const I=cr[A-15]|0,S=ur[A-15]|0,M=rr(I,S,1)^rr(I,S,8)^ph(I,S,7),F=ir(I,S,1)^ir(I,S,8)^gh(I,S,7),L=cr[A-2]|0,R=ur[A-2]|0,Z=rr(L,R,19)^us(L,R,61)^ph(L,R,6),W=ir(L,R,19)^fs(L,R,61)^gh(L,R,6),E=tm(F,W,ur[A-7],ur[A-16]),y=nm(E,M,Z,cr[A-7],cr[A-16]);cr[A]=y|0,ur[A]=E|0}let{Ah:r,Al:i,Bh:s,Bl:o,Ch:a,Cl:c,Dh:u,Dl:f,Eh:h,El:d,Fh:l,Fl:p,Gh:w,Gl:v,Hh:O,Hl:P}=this;for(let A=0;A<80;A++){const I=rr(h,d,14)^rr(h,d,18)^us(h,d,41),S=ir(h,d,14)^ir(h,d,18)^fs(h,d,41),M=h&l^~h&w,F=d&p^~d&v,L=rm(P,S,F,Am[A],ur[A]),R=im(L,O,I,M,Im[A],cr[A]),Z=L|0,W=rr(r,i,28)^us(r,i,34)^us(r,i,39),E=ir(r,i,28)^fs(r,i,34)^fs(r,i,39),y=r&s^r&a^s&a,m=i&o^i&c^o&c;O=w|0,P=v|0,w=l|0,v=p|0,l=h|0,p=d|0,{h,l:d}=Xt(u|0,f|0,R|0,Z|0),u=a|0,f=c|0,a=s|0,c=o|0,s=r|0,o=i|0;const g=wc(Z,E,m);r=bc(g,R,W,y),i=g|0}({h:r,l:i}=Xt(this.Ah|0,this.Al|0,r|0,i|0)),{h:s,l:o}=Xt(this.Bh|0,this.Bl|0,s|0,o|0),{h:a,l:c}=Xt(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=Xt(this.Dh|0,this.Dl|0,u|0,f|0),{h,l:d}=Xt(this.Eh|0,this.El|0,h|0,d|0),{h:l,l:p}=Xt(this.Fh|0,this.Fl|0,l|0,p|0),{h:w,l:v}=Xt(this.Gh|0,this.Gl|0,w|0,v|0),{h:O,l:P}=Xt(this.Hh|0,this.Hl|0,O|0,P|0),this.set(r,i,s,o,a,c,u,f,h,d,l,p,w,v,O,P)}roundClean(){kt(cr,ur)}destroy(){kt(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class Bm extends xc{constructor(){super(48),this.Ah=et[0]|0,this.Al=et[1]|0,this.Bh=et[2]|0,this.Bl=et[3]|0,this.Ch=et[4]|0,this.Cl=et[5]|0,this.Dh=et[6]|0,this.Dl=et[7]|0,this.Eh=et[8]|0,this.El=et[9]|0,this.Fh=et[10]|0,this.Fl=et[11]|0,this.Gh=et[12]|0,this.Gl=et[13]|0,this.Hh=et[14]|0,this.Hl=et[15]|0}}const nt=Uint32Array.from([573645204,4230739756,2673172387,3360449730,596883563,1867755857,2520282905,1497426621,2519219938,2827943907,3193839141,1401305490,721525244,746961066,246885852,2177182882]);class Dm extends xc{constructor(){super(32),this.Ah=nt[0]|0,this.Al=nt[1]|0,this.Bh=nt[2]|0,this.Bl=nt[3]|0,this.Ch=nt[4]|0,this.Cl=nt[5]|0,this.Dh=nt[6]|0,this.Dl=nt[7]|0,this.Eh=nt[8]|0,this.El=nt[9]|0,this.Fh=nt[10]|0,this.Fl=nt[11]|0,this.Gh=nt[12]|0,this.Gl=nt[13]|0,this.Hh=nt[14]|0,this.Hl=nt[15]|0}}const fr=hs(()=>new Sm),Nh=hs(()=>new xc),Uh=hs(()=>new Bm),Om=hs(()=>new Dm),Ao=fr;/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Sc=BigInt(0),Bo=BigInt(1);function ps(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function lr(t){if(!ps(t))throw new Error("Uint8Array expected")}function gs(t,e){if(typeof e!="boolean")throw new Error(t+" boolean expected, got "+e)}function Do(t){const e=t.toString(16);return e.length&1?"0"+e:e}function Ph(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);return t===""?Sc:BigInt("0x"+t)}const qh=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",Tm=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function jr(t){if(lr(t),qh)return t.toHex();let e="";for(let n=0;n<t.length;n++)e+=Tm[t[n]];return e}const Tn={_0:48,_9:57,A:65,F:70,a:97,f:102};function Ch(t){if(t>=Tn._0&&t<=Tn._9)return t-Tn._0;if(t>=Tn.A&&t<=Tn.F)return t-(Tn.A-10);if(t>=Tn.a&&t<=Tn.f)return t-(Tn.a-10)}function Oo(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);if(qh)return Uint8Array.fromHex(t);const e=t.length,n=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);const r=new Uint8Array(n);for(let i=0,s=0;i<n;i++,s+=2){const o=Ch(t.charCodeAt(s)),a=Ch(t.charCodeAt(s+1));if(o===void 0||a===void 0){const c=t[s]+t[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}r[i]=o*16+a}return r}function ut(t){return Ph(jr(t))}function Lh(t){return lr(t),Ph(jr(Uint8Array.from(t).reverse()))}function Pe(t,e){return Oo(t.toString(16).padStart(e*2,"0"))}function Vh(t,e){return Pe(t,e).reverse()}function rt(t,e,n){let r;if(typeof e=="string")try{r=Oo(e)}catch(s){throw new Error(t+" must be hex string or Uint8Array, cause: "+s)}else if(ps(e))r=Uint8Array.from(e);else throw new Error(t+" must be hex string or Uint8Array");const i=r.length;if(typeof n=="number"&&i!==n)throw new Error(t+" of length "+n+" expected, got "+i);return r}function Oe(...t){let e=0;for(let r=0;r<t.length;r++){const i=t[r];lr(i),e+=i.length}const n=new Uint8Array(e);for(let r=0,i=0;r<t.length;r++){const s=t[r];n.set(s,i),i+=s.length}return n}function Ic(t){if(typeof t!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(t))}const Ac=t=>typeof t=="bigint"&&Sc<=t;function Bc(t,e,n){return Ac(t)&&Ac(e)&&Ac(n)&&e<=t&&t<n}function Bi(t,e,n,r){if(!Bc(e,n,r))throw new Error("expected valid "+t+": "+n+" <= n < "+r+", got "+e)}function ys(t){let e;for(e=0;t>Sc;t>>=Bo,e+=1);return e}function Rm(t,e){return t>>BigInt(e)&Bo}const Wr=t=>(Bo<<BigInt(t))-Bo,Dc=t=>new Uint8Array(t),kh=t=>Uint8Array.from(t);function Nm(t,e,n){if(typeof t!="number"||t<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof n!="function")throw new Error("hmacFn must be a function");let r=Dc(t),i=Dc(t),s=0;const o=()=>{r.fill(1),i.fill(0),s=0},a=(...h)=>n(i,r,...h),c=(h=Dc(0))=>{i=a(kh([0]),h),r=a(),h.length!==0&&(i=a(kh([1]),h),r=a())},u=()=>{if(s++>=1e3)throw new Error("drbg: tried 1000 values");let h=0;const d=[];for(;h<e;){r=a();const l=r.slice();d.push(l),h+=r.length}return Oe(...d)};return(h,d)=>{o(),c(h);let l;for(;!(l=d(u()));)c();return o(),l}}const Um={bigint:t=>typeof t=="bigint",function:t=>typeof t=="function",boolean:t=>typeof t=="boolean",string:t=>typeof t=="string",stringOrUint8Array:t=>typeof t=="string"||ps(t),isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>typeof t=="function"&&Number.isSafeInteger(t.outputLen)};function ws(t,e,n={}){const r=(i,s,o)=>{const a=Um[s];if(typeof a!="function")throw new Error("invalid validator function");const c=t[i];if(!(o&&c===void 0)&&!a(c,t))throw new Error("param "+String(i)+" is invalid. Expected "+s+", got "+c)};for(const[i,s]of Object.entries(e))r(i,s,!1);for(const[i,s]of Object.entries(n))r(i,s,!0);return t}const Fh=()=>{throw new Error("not implemented")};function Oc(t){const e=new WeakMap;return(n,...r)=>{const i=e.get(n);if(i!==void 0)return i;const s=t(n,...r);return e.set(n,s),s}}function Pm(t,e){if(Hh(t)>e)throw new t2({givenSize:Hh(t),maxSize:e})}const Rn={zero:48,nine:57,A:65,F:70,a:97,f:102};function zh(t){if(t>=Rn.zero&&t<=Rn.nine)return t-Rn.zero;if(t>=Rn.A&&t<=Rn.F)return t-(Rn.A-10);if(t>=Rn.a&&t<=Rn.f)return t-(Rn.a-10)}function qm(t,e={}){const{dir:n,size:r=32}=e;if(r===0)return t;if(t.length>r)throw new n2({size:t.length,targetSize:r,type:"Bytes"});const i=new Uint8Array(r);for(let s=0;s<r;s++){const o=n==="right";i[o?s:r-s-1]=t[o?s:t.length-s-1]}return i}function Tc(t,e){if(Un(t)>e)throw new Hm({givenSize:Un(t),maxSize:e})}function Cm(t,e){if(typeof e=="number"&&e>0&&e>Un(t)-1)throw new Wh({offset:e,position:"start",size:Un(t)})}function Lm(t,e,n){if(typeof e=="number"&&typeof n=="number"&&Un(t)!==n-e)throw new Wh({offset:n,position:"end",size:Un(t)})}function Mh(t,e={}){const{dir:n,size:r=32}=e;if(r===0)return t;const i=t.replace("0x","");if(i.length>r*2)throw new Gm({size:Math.ceil(i.length/2),targetSize:r,type:"Hex"});return`0x${i[n==="right"?"padEnd":"padStart"](r*2,"0")}`}const Vm="#__bigint";function Rc(t,e,n){return JSON.stringify(t,(r,i)=>typeof e=="function"?e(r,i):typeof i=="bigint"?i.toString()+Vm:i,n)}const km=new TextEncoder,Fm=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function zm(t,e={}){const{strict:n=!1}=e;if(!t)throw new Kh(t);if(typeof t!="string")throw new Kh(t);if(n&&!/^0x[0-9a-fA-F]*$/.test(t))throw new jh(t);if(!t.startsWith("0x"))throw new jh(t)}function Nc(...t){return`0x${t.reduce((e,n)=>e+n.replace("0x",""),"")}`}function Uc(t){return t instanceof Uint8Array?bs(t):Array.isArray(t)?bs(new Uint8Array(t)):t}function Mm(t,e={}){const n=`0x${Number(t)}`;return typeof e.size=="number"?(Tc(n,e.size),Ro(n,e.size)):n}function bs(t,e={}){let n="";for(let i=0;i<t.length;i++)n+=Fm[t[i]];const r=`0x${n}`;return typeof e.size=="number"?(Tc(r,e.size),Pc(r,e.size)):r}function To(t,e={}){const{signed:n,size:r}=e,i=BigInt(t);let s;r?n?s=(1n<<BigInt(r)*8n-1n)-1n:s=2n**(BigInt(r)*8n)-1n:typeof t=="number"&&(s=BigInt(Number.MAX_SAFE_INTEGER));const o=typeof s=="bigint"&&n?-s-1n:0;if(s&&i>s||i<o){const u=typeof t=="bigint"?"n":"";throw new Wm({max:s?`${s}${u}`:void 0,min:`${o}${u}`,signed:n,size:r,value:`${t}${u}`})}const c=`0x${(n&&i<0?(1n<<BigInt(r*8))+BigInt(i):i).toString(16)}`;return r?Ro(c,r):c}function Km(t,e={}){return bs(km.encode(t),e)}function Ro(t,e){return Mh(t,{dir:"left",size:e})}function Pc(t,e){return Mh(t,{dir:"right",size:e})}function Nn(t,e,n,r={}){const{strict:i}=r;Cm(t,e);const s=`0x${t.replace("0x","").slice((e??0)*2,(n??t.length)*2)}`;return i&&Lm(s,e,n),s}function Un(t){return Math.ceil((t.length-2)/2)}function jm(t,e={}){const{strict:n=!1}=e;try{return zm(t,{strict:n}),!0}catch{return!1}}class Wm extends xe{constructor({max:e,min:n,signed:r,size:i,value:s}){super(`Number \`${s}\` is not in safe${i?` ${i*8}-bit`:""}${r?" signed":" unsigned"} integer range ${e?`(\`${n}\` to \`${e}\`)`:`(above \`${n}\`)`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"})}}class Kh extends xe{constructor(e){super(`Value \`${typeof e=="object"?Rc(e):e}\` of type \`${typeof e}\` is an invalid hex type.`,{metaMessages:['Hex types must be represented as `"0x${string}"`.']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexTypeError"})}}class jh extends xe{constructor(e){super(`Value \`${e}\` is an invalid hex value.`,{metaMessages:['Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexValueError"})}}class Hm extends xe{constructor({givenSize:e,maxSize:n}){super(`Size cannot exceed \`${n}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeOverflowError"})}}class Wh extends xe{constructor({offset:e,position:n,size:r}){super(`Slice ${n==="start"?"starting":"ending"} at offset \`${e}\` is out-of-bounds (size: \`${r}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SliceOffsetOutOfBoundsError"})}}class Gm extends xe{constructor({size:e,targetSize:n,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"})}}const Zm=new TextEncoder;function Xm(t){if(!(t instanceof Uint8Array)){if(!t)throw new No(t);if(typeof t!="object")throw new No(t);if(!("BYTES_PER_ELEMENT"in t))throw new No(t);if(t.BYTES_PER_ELEMENT!==1||t.constructor.name!=="Uint8Array")throw new No(t)}}function Ym(t){return t instanceof Uint8Array?t:typeof t=="string"?Qm(t):Jm(t)}function Jm(t){return t instanceof Uint8Array?t:new Uint8Array(t)}function Qm(t,e={}){const{size:n}=e;let r=t;n&&(Tc(t,n),r=Pc(t,n));let i=r.slice(2);i.length%2&&(i=`0${i}`);const s=i.length/2,o=new Uint8Array(s);for(let a=0,c=0;a<s;a++){const u=zh(i.charCodeAt(c++)),f=zh(i.charCodeAt(c++));if(u===void 0||f===void 0)throw new xe(`Invalid byte sequence ("${i[c-2]}${i[c-1]}" in "${i}").`);o[a]=u*16+f}return o}function _m(t,e={}){const{size:n}=e,r=Zm.encode(t);return typeof n=="number"?(Pm(r,n),$m(r,n)):r}function $m(t,e){return qm(t,{dir:"right",size:e})}function Hh(t){return t.length}function e2(t){try{return Xm(t),!0}catch{return!1}}class No extends xe{constructor(e){super(`Value \`${typeof e=="object"?Rc(e):e}\` of type \`${typeof e}\` is an invalid Bytes value.`,{metaMessages:["Bytes values must be of type `Bytes`."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.InvalidBytesTypeError"})}}class t2 extends xe{constructor({givenSize:e,maxSize:n}){super(`Size cannot exceed \`${n}\` bytes. Given size: \`${e}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeOverflowError"})}}class n2 extends xe{constructor({size:e,targetSize:n,type:r}){super(`${r.charAt(0).toUpperCase()}${r.slice(1).toLowerCase()} size (\`${e}\`) exceeds padding size (\`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeExceedsPaddingSizeError"})}}function Gh(t,e={}){const{as:n=typeof t=="string"?"Hex":"Bytes"}=e,r=Dh(Ym(t));return n==="Bytes"?r:bs(r)}class r2 extends Map{constructor(e){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}get(e){const n=super.get(e);return super.has(e)&&n!==void 0&&(this.delete(e),super.set(e,n)),n}set(e,n){if(super.set(e,n),this.maxSize&&this.size>this.maxSize){const r=this.keys().next().value;r&&this.delete(r)}return this}}const qc={checksum:new r2(8192)}.checksum;function Zh(t,e={}){const{compressed:n}=e,{prefix:r,x:i,y:s}=t;if(n===!1||typeof i=="bigint"&&typeof s=="bigint"){if(r!==4)throw new Yh({prefix:r,cause:new u2});return}if(n===!0||typeof i=="bigint"&&typeof s>"u"){if(r!==3&&r!==2)throw new Yh({prefix:r,cause:new c2});return}throw new a2({publicKey:t})}function i2(t){const e=(()=>{if(jm(t))return Xh(t);if(e2(t))return s2(t);const{prefix:n,x:r,y:i}=t;return typeof r=="bigint"&&typeof i=="bigint"?{prefix:n??4,x:r,y:i}:{prefix:n,x:r}})();return Zh(e),e}function s2(t){return Xh(bs(t))}function Xh(t){if(t.length!==132&&t.length!==130&&t.length!==68)throw new f2({publicKey:t});if(t.length===130){const r=BigInt(Nn(t,0,32)),i=BigInt(Nn(t,32,64));return{prefix:4,x:r,y:i}}if(t.length===132){const r=Number(Nn(t,0,1)),i=BigInt(Nn(t,1,33)),s=BigInt(Nn(t,33,65));return{prefix:r,x:i,y:s}}const e=Number(Nn(t,0,1)),n=BigInt(Nn(t,1,33));return{prefix:e,x:n}}function o2(t,e={}){Zh(t);const{prefix:n,x:r,y:i}=t,{includePrefix:s=!0}=e;return Nc(s?To(n,{size:1}):"0x",To(r,{size:32}),typeof i=="bigint"?To(i,{size:32}):"0x")}class a2 extends xe{constructor({publicKey:e}){super(`Value \`${Rc(e)}\` is not a valid public key.`,{metaMessages:["Public key must contain:","- an `x` and `prefix` value (compressed)","- an `x`, `y`, and `prefix` value (uncompressed)"]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidError"})}}class Yh extends xe{constructor({prefix:e,cause:n}){super(`Prefix "${e}" is invalid.`,{cause:n}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidPrefixError"})}}class c2 extends xe{constructor(){super("Prefix must be 2 or 3 for compressed public keys."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidCompressedPrefixError"})}}class u2 extends xe{constructor(){super("Prefix must be 4 for uncompressed public keys."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidUncompressedPrefixError"})}}class f2 extends xe{constructor({publicKey:e}){super(`Value \`${e}\` is an invalid public key size.`,{metaMessages:["Expected: 33 bytes (compressed + prefix), 64 bytes (uncompressed) or 65 bytes (uncompressed + prefix).",`Received ${Un(Uc(e))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"PublicKey.InvalidSerializedSizeError"})}}const l2=/^0x[a-fA-F0-9]{40}$/;function Cc(t,e={}){const{strict:n=!0}=e;if(!l2.test(t))throw new Qh({address:t,cause:new p2});if(n){if(t.toLowerCase()===t)return;if(Jh(t)!==t)throw new Qh({address:t,cause:new g2})}}function Jh(t){if(qc.has(t))return qc.get(t);Cc(t,{strict:!1});const e=t.substring(2).toLowerCase(),n=Gh(_m(e),{as:"Bytes"}),r=e.split("");for(let s=0;s<40;s+=2)n[s>>1]>>4>=8&&r[s]&&(r[s]=r[s].toUpperCase()),(n[s>>1]&15)>=8&&r[s+1]&&(r[s+1]=r[s+1].toUpperCase());const i=`0x${r.join("")}`;return qc.set(t,i),i}function h2(t,e={}){const{checksum:n=!1}=e;return Cc(t),n?Jh(t):t}function d2(t,e={}){const n=Gh(`0x${o2(t).slice(4)}`).substring(26);return h2(`0x${n}`,e)}class Qh extends xe{constructor({address:e,cause:n}){super(`Address "${e}" is invalid.`,{cause:n}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}}class p2 extends xe{constructor(){super("Address is not a 20 byte (40 hexadecimal character) value."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidInputError"})}}class g2 extends xe{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}}const y2=/^(.*)\[([0-9]*)\]$/,w2=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,b2=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;function Lc(t,e){if(t.length!==e.length)throw new v2({expectedLength:t.length,givenLength:e.length});const n=[];for(let r=0;r<t.length;r++){const i=t[r],s=e[r];n.push(Lc.encode(i,s))}return Nc(...n)}(function(t){function e(n,r,i=!1){if(n==="address"){const c=r;return Cc(c),Ro(c.toLowerCase(),i?32:0)}if(n==="string")return Km(r);if(n==="bytes")return r;if(n==="bool")return Ro(Mm(r),i?32:1);const s=n.match(b2);if(s){const[c,u,f="256"]=s,h=Number.parseInt(f,10)/8;return To(r,{size:i?32:h,signed:u==="int"})}const o=n.match(w2);if(o){const[c,u]=o;if(Number.parseInt(u,10)!==(r.length-2)/2)throw new m2({expectedSize:Number.parseInt(u,10),value:r});return Pc(r,i?32:0)}const a=n.match(y2);if(a&&Array.isArray(r)){const[c,u]=a,f=[];for(let h=0;h<r.length;h++)f.push(e(u,r[h],!0));return f.length===0?"0x":Nc(...f)}throw new E2(n)}t.encode=e})(Lc||(Lc={}));class m2 extends xe{constructor({expectedSize:e,value:n}){super(`Size of bytes "${n}" (bytes${Un(n)}) does not match expected size (bytes${e}).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.BytesSizeMismatchError"})}}class v2 extends xe{constructor({expectedLength:e,givenLength:n}){super(["ABI encoding parameters/values length mismatch.",`Expected length (parameters): ${e}`,`Given length (values): ${n}`].join(`
|
|
16
|
+
`)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.LengthMismatchError"})}}class E2 extends xe{constructor(e){super(`Type \`${e}\` is not a valid ABI Type.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidTypeError"})}}class _h extends Io{constructor(e,n){super(),this.finished=!1,this.destroyed=!1,xo(e);const r=Jt(n);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const i=this.blockLen,s=new Uint8Array(i);s.set(r.length>i?e.create().update(r).digest():r);for(let o=0;o<s.length;o++)s[o]^=54;this.iHash.update(s),this.oHash=e.create();for(let o=0;o<s.length;o++)s[o]^=106;this.oHash.update(s),kt(s)}update(e){return sr(this),this.iHash.update(e),this}digestInto(e){sr(this),Yt(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:n,iHash:r,finished:i,destroyed:s,blockLen:o,outputLen:a}=this;return e=e,e.finished=i,e.destroyed=s,e.blockLen=o,e.outputLen=a,e.oHash=n._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const ms=(t,e,n)=>new _h(t,e).update(n).digest();ms.create=(t,e)=>new _h(t,e);const mt=BigInt(0),ft=BigInt(1),Hr=BigInt(2),x2=BigInt(3),$h=BigInt(4),ed=BigInt(5),td=BigInt(8);function lt(t,e){const n=t%e;return n>=mt?n:e+n}function Ft(t,e,n){let r=t;for(;e-- >mt;)r*=r,r%=n;return r}function Vc(t,e){if(t===mt)throw new Error("invert: expected non-zero number");if(e<=mt)throw new Error("invert: expected positive modulus, got "+e);let n=lt(t,e),r=e,i=mt,s=ft;for(;n!==mt;){const a=r/n,c=r%n,u=i-s*a;r=n,n=c,i=s,s=u}if(r!==ft)throw new Error("invert: does not exist");return lt(i,e)}function nd(t,e){const n=(t.ORDER+ft)/$h,r=t.pow(e,n);if(!t.eql(t.sqr(r),e))throw new Error("Cannot find square root");return r}function S2(t,e){const n=(t.ORDER-ed)/td,r=t.mul(e,Hr),i=t.pow(r,n),s=t.mul(e,i),o=t.mul(t.mul(s,Hr),i),a=t.mul(s,t.sub(o,t.ONE));if(!t.eql(t.sqr(a),e))throw new Error("Cannot find square root");return a}function I2(t){if(t<BigInt(3))throw new Error("sqrt is not defined for small field");let e=t-ft,n=0;for(;e%Hr===mt;)e/=Hr,n++;let r=Hr;const i=hr(t);for(;Po(i,r)===1;)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(n===1)return nd;let s=i.pow(r,e);const o=(e+ft)/Hr;return function(c,u){if(c.is0(u))return u;if(Po(c,u)!==1)throw new Error("Cannot find square root");let f=n,h=c.mul(c.ONE,s),d=c.pow(u,e),l=c.pow(u,o);for(;!c.eql(d,c.ONE);){if(c.is0(d))return c.ZERO;let p=1,w=c.sqr(d);for(;!c.eql(w,c.ONE);)if(p++,w=c.sqr(w),p===f)throw new Error("Cannot find square root");const v=ft<<BigInt(f-p-1),O=c.pow(h,v);f=p,h=c.sqr(O),d=c.mul(d,h),l=c.mul(l,O)}return l}}function A2(t){return t%$h===x2?nd:t%td===ed?S2:I2(t)}const B2=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function rd(t){const e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},n=B2.reduce((r,i)=>(r[i]="function",r),e);return ws(t,n)}function Uo(t,e,n){if(n<mt)throw new Error("invalid exponent, negatives unsupported");if(n===mt)return t.ONE;if(n===ft)return e;let r=t.ONE,i=e;for(;n>mt;)n&ft&&(r=t.mul(r,i)),i=t.sqr(i),n>>=ft;return r}function Gr(t,e,n=!1){const r=new Array(e.length).fill(n?t.ZERO:void 0),i=e.reduce((o,a,c)=>t.is0(a)?o:(r[c]=o,t.mul(o,a)),t.ONE),s=t.inv(i);return e.reduceRight((o,a,c)=>t.is0(a)?o:(r[c]=t.mul(o,r[c]),t.mul(o,a)),s),r}function Po(t,e){const n=(t.ORDER-ft)/Hr,r=t.pow(e,n),i=t.eql(r,t.ONE),s=t.eql(r,t.ZERO),o=t.eql(r,t.neg(t.ONE));if(!i&&!s&&!o)throw new Error("invalid Legendre symbol result");return i?1:s?0:-1}function id(t,e){e!==void 0&&fn(e);const n=e!==void 0?e:t.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function hr(t,e,n=!1,r={}){if(t<=mt)throw new Error("invalid field: expected ORDER > 0, got "+t);const{nBitLength:i,nByteLength:s}=id(t,e);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let o;const a=Object.freeze({ORDER:t,isLE:n,BITS:i,BYTES:s,MASK:Wr(i),ZERO:mt,ONE:ft,create:c=>lt(c,t),isValid:c=>{if(typeof c!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof c);return mt<=c&&c<t},is0:c=>c===mt,isOdd:c=>(c&ft)===ft,neg:c=>lt(-c,t),eql:(c,u)=>c===u,sqr:c=>lt(c*c,t),add:(c,u)=>lt(c+u,t),sub:(c,u)=>lt(c-u,t),mul:(c,u)=>lt(c*u,t),pow:(c,u)=>Uo(a,c,u),div:(c,u)=>lt(c*Vc(u,t),t),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>Vc(c,t),sqrt:r.sqrt||(c=>(o||(o=A2(t)),o(a,c))),toBytes:c=>n?Vh(c,s):Pe(c,s),fromBytes:c=>{if(c.length!==s)throw new Error("Field.fromBytes: expected "+s+" bytes, got "+c.length);return n?Lh(c):ut(c)},invertBatch:c=>Gr(a,c),cmov:(c,u,f)=>f?u:c});return Object.freeze(a)}function sd(t){if(typeof t!="bigint")throw new Error("field order must be bigint");const e=t.toString(2).length;return Math.ceil(e/8)}function kc(t){const e=sd(t);return e+Math.ceil(e/2)}function od(t,e,n=!1){const r=t.length,i=sd(e),s=kc(e);if(r<16||r<s||r>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+r);const o=n?Lh(t):ut(t),a=lt(o,e-ft)+ft;return n?Vh(a,i):Pe(a,i)}const ad=BigInt(0),Fc=BigInt(1);function zc(t,e){const n=e.negate();return t?n:e}function cd(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+t)}function Mc(t,e){cd(t,e);const n=Math.ceil(e/t)+1,r=2**(t-1),i=2**t,s=Wr(t),o=BigInt(t);return{windows:n,windowSize:r,mask:s,maxNumber:i,shiftBy:o}}function ud(t,e,n){const{windowSize:r,mask:i,maxNumber:s,shiftBy:o}=n;let a=Number(t&i),c=t>>o;a>r&&(a-=s,c+=Fc);const u=e*r,f=u+Math.abs(a)-1,h=a===0,d=a<0,l=e%2!==0;return{nextN:c,offset:f,isZero:h,isNeg:d,isNegF:l,offsetF:u}}function D2(t,e){if(!Array.isArray(t))throw new Error("array expected");t.forEach((n,r)=>{if(!(n instanceof e))throw new Error("invalid point at index "+r)})}function O2(t,e){if(!Array.isArray(t))throw new Error("array of scalars expected");t.forEach((n,r)=>{if(!e.isValid(n))throw new Error("invalid scalar at index "+r)})}const Kc=new WeakMap,fd=new WeakMap;function jc(t){return fd.get(t)||1}function T2(t,e){return{constTimeNegate:zc,hasPrecomputes(n){return jc(n)!==1},unsafeLadder(n,r,i=t.ZERO){let s=n;for(;r>ad;)r&Fc&&(i=i.add(s)),s=s.double(),r>>=Fc;return i},precomputeWindow(n,r){const{windows:i,windowSize:s}=Mc(r,e),o=[];let a=n,c=a;for(let u=0;u<i;u++){c=a,o.push(c);for(let f=1;f<s;f++)c=c.add(a),o.push(c);a=c.double()}return o},wNAF(n,r,i){let s=t.ZERO,o=t.BASE;const a=Mc(n,e);for(let c=0;c<a.windows;c++){const{nextN:u,offset:f,isZero:h,isNeg:d,isNegF:l,offsetF:p}=ud(i,c,a);i=u,h?o=o.add(zc(l,r[p])):s=s.add(zc(d,r[f]))}return{p:s,f:o}},wNAFUnsafe(n,r,i,s=t.ZERO){const o=Mc(n,e);for(let a=0;a<o.windows&&i!==ad;a++){const{nextN:c,offset:u,isZero:f,isNeg:h}=ud(i,a,o);if(i=c,!f){const d=r[u];s=s.add(h?d.negate():d)}}return s},getPrecomputes(n,r,i){let s=Kc.get(r);return s||(s=this.precomputeWindow(r,n),n!==1&&Kc.set(r,i(s))),s},wNAFCached(n,r,i){const s=jc(n);return this.wNAF(s,this.getPrecomputes(s,n,i),r)},wNAFCachedUnsafe(n,r,i,s){const o=jc(n);return o===1?this.unsafeLadder(n,r,s):this.wNAFUnsafe(o,this.getPrecomputes(o,n,i),r,s)},setWindowSize(n,r){cd(r,e),fd.set(n,r),Kc.delete(n)}}}function R2(t,e,n,r){D2(n,t),O2(r,e);const i=n.length,s=r.length;if(i!==s)throw new Error("arrays of points and scalars must have equal length");const o=t.ZERO,a=ys(BigInt(i));let c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);const u=Wr(c),f=new Array(Number(u)+1).fill(o),h=Math.floor((e.BITS-1)/c)*c;let d=o;for(let l=h;l>=0;l-=c){f.fill(o);for(let w=0;w<s;w++){const v=r[w],O=Number(v>>BigInt(l)&u);f[O]=f[O].add(n[w])}let p=o;for(let w=f.length-1,v=o;w>0;w--)v=v.add(f[w]),p=p.add(v);if(d=d.add(p),l!==0)for(let w=0;w<c;w++)d=d.double()}return d}function ld(t){return rd(t.Fp),ws(t,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...id(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}function hd(t){t.lowS!==void 0&&gs("lowS",t.lowS),t.prehash!==void 0&&gs("prehash",t.prehash)}function N2(t){const e=ld(t);ws(e,{a:"field",b:"field"},{allowInfinityPoint:"boolean",allowedPrivateKeyLengths:"array",clearCofactor:"function",fromBytes:"function",isTorsionFree:"function",toBytes:"function",wrapPrivateKey:"boolean"});const{endo:n,Fp:r,a:i}=e;if(n){if(!r.eql(i,r.ZERO))throw new Error("invalid endo: CURVE.a must be 0");if(typeof n!="object"||typeof n.beta!="bigint"||typeof n.splitScalar!="function")throw new Error('invalid endo: expected "beta": bigint and "splitScalar": function')}return Object.freeze({...e})}class U2 extends Error{constructor(e=""){super(e)}}const Pn={Err:U2,_tlv:{encode:(t,e)=>{const{Err:n}=Pn;if(t<0||t>256)throw new n("tlv.encode: wrong tag");if(e.length&1)throw new n("tlv.encode: unpadded data");const r=e.length/2,i=Do(r);if(i.length/2&128)throw new n("tlv.encode: long form length too big");const s=r>127?Do(i.length/2|128):"";return Do(t)+s+i+e},decode(t,e){const{Err:n}=Pn;let r=0;if(t<0||t>256)throw new n("tlv.encode: wrong tag");if(e.length<2||e[r++]!==t)throw new n("tlv.decode: wrong tlv");const i=e[r++],s=!!(i&128);let o=0;if(!s)o=i;else{const c=i&127;if(!c)throw new n("tlv.decode(long): indefinite length not supported");if(c>4)throw new n("tlv.decode(long): byte length is too big");const u=e.subarray(r,r+c);if(u.length!==c)throw new n("tlv.decode: length bytes not complete");if(u[0]===0)throw new n("tlv.decode(long): zero leftmost byte");for(const f of u)o=o<<8|f;if(r+=c,o<128)throw new n("tlv.decode(long): not minimal encoding")}const a=e.subarray(r,r+o);if(a.length!==o)throw new n("tlv.decode: wrong value length");return{v:a,l:e.subarray(r+o)}}},_int:{encode(t){const{Err:e}=Pn;if(t<Qt)throw new e("integer: negative integers are not allowed");let n=Do(t);if(Number.parseInt(n[0],16)&8&&(n="00"+n),n.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return n},decode(t){const{Err:e}=Pn;if(t[0]&128)throw new e("invalid signature integer: negative");if(t[0]===0&&!(t[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return ut(t)}},toSig(t){const{Err:e,_int:n,_tlv:r}=Pn,i=rt("signature",t),{v:s,l:o}=r.decode(48,i);if(o.length)throw new e("invalid signature: left bytes after parsing");const{v:a,l:c}=r.decode(2,s),{v:u,l:f}=r.decode(2,c);if(f.length)throw new e("invalid signature: left bytes after parsing");return{r:n.decode(a),s:n.decode(u)}},hexFromSig(t){const{_tlv:e,_int:n}=Pn,r=e.encode(2,n.encode(t.r)),i=e.encode(2,n.encode(t.s)),s=r+i;return e.encode(48,s)}};function Wc(t,e){return jr(Pe(t,e))}const Qt=BigInt(0),me=BigInt(1),dr=BigInt(2),vs=BigInt(3),Hc=BigInt(4);function Gc(t){const e=N2(t),{Fp:n}=e,r=hr(e.n,e.nBitLength),i=e.toBytes||((A,I,S)=>{const M=I.toAffine();return Oe(Uint8Array.from([4]),n.toBytes(M.x),n.toBytes(M.y))}),s=e.fromBytes||(A=>{const I=A.subarray(1),S=n.fromBytes(I.subarray(0,n.BYTES)),M=n.fromBytes(I.subarray(n.BYTES,2*n.BYTES));return{x:S,y:M}});function o(A){const{a:I,b:S}=e,M=n.sqr(A),F=n.mul(M,A);return n.add(n.add(F,n.mul(A,I)),S)}function a(A,I){const S=n.sqr(I),M=o(A);return n.eql(S,M)}if(!a(e.Gx,e.Gy))throw new Error("bad curve params: generator point");const c=n.mul(n.pow(e.a,vs),Hc),u=n.mul(n.sqr(e.b),BigInt(27));if(n.is0(n.add(c,u)))throw new Error("bad curve params: a or b");function f(A){return Bc(A,me,e.n)}function h(A){const{allowedPrivateKeyLengths:I,nByteLength:S,wrapPrivateKey:M,n:F}=e;if(I&&typeof A!="bigint"){if(ps(A)&&(A=jr(A)),typeof A!="string"||!I.includes(A.length))throw new Error("invalid private key");A=A.padStart(S*2,"0")}let L;try{L=typeof A=="bigint"?A:ut(rt("private key",A,S))}catch{throw new Error("invalid private key, expected hex or "+S+" bytes, got "+typeof A)}return M&&(L=lt(L,F)),Bi("private key",L,me,F),L}function d(A){if(!(A instanceof w))throw new Error("ProjectivePoint expected")}const l=Oc((A,I)=>{const{px:S,py:M,pz:F}=A;if(n.eql(F,n.ONE))return{x:S,y:M};const L=A.is0();I==null&&(I=L?n.ONE:n.inv(F));const R=n.mul(S,I),Z=n.mul(M,I),W=n.mul(F,I);if(L)return{x:n.ZERO,y:n.ZERO};if(!n.eql(W,n.ONE))throw new Error("invZ was invalid");return{x:R,y:Z}}),p=Oc(A=>{if(A.is0()){if(e.allowInfinityPoint&&!n.is0(A.py))return;throw new Error("bad point: ZERO")}const{x:I,y:S}=A.toAffine();if(!n.isValid(I)||!n.isValid(S))throw new Error("bad point: x or y not FE");if(!a(I,S))throw new Error("bad point: equation left != right");if(!A.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class w{constructor(I,S,M){if(I==null||!n.isValid(I))throw new Error("x required");if(S==null||!n.isValid(S)||n.is0(S))throw new Error("y required");if(M==null||!n.isValid(M))throw new Error("z required");this.px=I,this.py=S,this.pz=M,Object.freeze(this)}static fromAffine(I){const{x:S,y:M}=I||{};if(!I||!n.isValid(S)||!n.isValid(M))throw new Error("invalid affine point");if(I instanceof w)throw new Error("projective point not allowed");const F=L=>n.eql(L,n.ZERO);return F(S)&&F(M)?w.ZERO:new w(S,M,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(I){const S=Gr(n,I.map(M=>M.pz));return I.map((M,F)=>M.toAffine(S[F])).map(w.fromAffine)}static fromHex(I){const S=w.fromAffine(s(rt("pointHex",I)));return S.assertValidity(),S}static fromPrivateKey(I){return w.BASE.multiply(h(I))}static msm(I,S){return R2(w,r,I,S)}_setWindowSize(I){P.setWindowSize(this,I)}assertValidity(){p(this)}hasEvenY(){const{y:I}=this.toAffine();if(n.isOdd)return!n.isOdd(I);throw new Error("Field doesn't support isOdd")}equals(I){d(I);const{px:S,py:M,pz:F}=this,{px:L,py:R,pz:Z}=I,W=n.eql(n.mul(S,Z),n.mul(L,F)),E=n.eql(n.mul(M,Z),n.mul(R,F));return W&&E}negate(){return new w(this.px,n.neg(this.py),this.pz)}double(){const{a:I,b:S}=e,M=n.mul(S,vs),{px:F,py:L,pz:R}=this;let Z=n.ZERO,W=n.ZERO,E=n.ZERO,y=n.mul(F,F),m=n.mul(L,L),g=n.mul(R,R),b=n.mul(F,L);return b=n.add(b,b),E=n.mul(F,R),E=n.add(E,E),Z=n.mul(I,E),W=n.mul(M,g),W=n.add(Z,W),Z=n.sub(m,W),W=n.add(m,W),W=n.mul(Z,W),Z=n.mul(b,Z),E=n.mul(M,E),g=n.mul(I,g),b=n.sub(y,g),b=n.mul(I,b),b=n.add(b,E),E=n.add(y,y),y=n.add(E,y),y=n.add(y,g),y=n.mul(y,b),W=n.add(W,y),g=n.mul(L,R),g=n.add(g,g),y=n.mul(g,b),Z=n.sub(Z,y),E=n.mul(g,m),E=n.add(E,E),E=n.add(E,E),new w(Z,W,E)}add(I){d(I);const{px:S,py:M,pz:F}=this,{px:L,py:R,pz:Z}=I;let W=n.ZERO,E=n.ZERO,y=n.ZERO;const m=e.a,g=n.mul(e.b,vs);let b=n.mul(S,L),x=n.mul(M,R),B=n.mul(F,Z),D=n.add(S,M),T=n.add(L,R);D=n.mul(D,T),T=n.add(b,x),D=n.sub(D,T),T=n.add(S,F);let U=n.add(L,Z);return T=n.mul(T,U),U=n.add(b,B),T=n.sub(T,U),U=n.add(M,F),W=n.add(R,Z),U=n.mul(U,W),W=n.add(x,B),U=n.sub(U,W),y=n.mul(m,T),W=n.mul(g,B),y=n.add(W,y),W=n.sub(x,y),y=n.add(x,y),E=n.mul(W,y),x=n.add(b,b),x=n.add(x,b),B=n.mul(m,B),T=n.mul(g,T),x=n.add(x,B),B=n.sub(b,B),B=n.mul(m,B),T=n.add(T,B),b=n.mul(x,T),E=n.add(E,b),b=n.mul(U,T),W=n.mul(D,W),W=n.sub(W,b),b=n.mul(D,x),y=n.mul(U,y),y=n.add(y,b),new w(W,E,y)}subtract(I){return this.add(I.negate())}is0(){return this.equals(w.ZERO)}wNAF(I){return P.wNAFCached(this,I,w.normalizeZ)}multiplyUnsafe(I){const{endo:S,n:M}=e;Bi("scalar",I,Qt,M);const F=w.ZERO;if(I===Qt)return F;if(this.is0()||I===me)return this;if(!S||P.hasPrecomputes(this))return P.wNAFCachedUnsafe(this,I,w.normalizeZ);let{k1neg:L,k1:R,k2neg:Z,k2:W}=S.splitScalar(I),E=F,y=F,m=this;for(;R>Qt||W>Qt;)R&me&&(E=E.add(m)),W&me&&(y=y.add(m)),m=m.double(),R>>=me,W>>=me;return L&&(E=E.negate()),Z&&(y=y.negate()),y=new w(n.mul(y.px,S.beta),y.py,y.pz),E.add(y)}multiply(I){const{endo:S,n:M}=e;Bi("scalar",I,me,M);let F,L;if(S){const{k1neg:R,k1:Z,k2neg:W,k2:E}=S.splitScalar(I);let{p:y,f:m}=this.wNAF(Z),{p:g,f:b}=this.wNAF(E);y=P.constTimeNegate(R,y),g=P.constTimeNegate(W,g),g=new w(n.mul(g.px,S.beta),g.py,g.pz),F=y.add(g),L=m.add(b)}else{const{p:R,f:Z}=this.wNAF(I);F=R,L=Z}return w.normalizeZ([F,L])[0]}multiplyAndAddUnsafe(I,S,M){const F=w.BASE,L=(Z,W)=>W===Qt||W===me||!Z.equals(F)?Z.multiplyUnsafe(W):Z.multiply(W),R=L(this,S).add(L(I,M));return R.is0()?void 0:R}toAffine(I){return l(this,I)}isTorsionFree(){const{h:I,isTorsionFree:S}=e;if(I===me)return!0;if(S)return S(w,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:I,clearCofactor:S}=e;return I===me?this:S?S(w,this):this.multiplyUnsafe(e.h)}toRawBytes(I=!0){return gs("isCompressed",I),this.assertValidity(),i(w,this,I)}toHex(I=!0){return gs("isCompressed",I),jr(this.toRawBytes(I))}}w.BASE=new w(e.Gx,e.Gy,n.ONE),w.ZERO=new w(n.ZERO,n.ONE,n.ZERO);const{endo:v,nBitLength:O}=e,P=T2(w,v?Math.ceil(O/2):O);return{CURVE:e,ProjectivePoint:w,normPrivateKeyToScalar:h,weierstrassEquation:o,isWithinCurveOrder:f}}function P2(t){const e=ld(t);return ws(e,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...e})}function q2(t){const e=P2(t),{Fp:n,n:r,nByteLength:i,nBitLength:s}=e,o=n.BYTES+1,a=2*n.BYTES+1;function c(g){return lt(g,r)}function u(g){return Vc(g,r)}const{ProjectivePoint:f,normPrivateKeyToScalar:h,weierstrassEquation:d,isWithinCurveOrder:l}=Gc({...e,toBytes(g,b,x){const B=b.toAffine(),D=n.toBytes(B.x),T=Oe;return gs("isCompressed",x),x?T(Uint8Array.from([b.hasEvenY()?2:3]),D):T(Uint8Array.from([4]),D,n.toBytes(B.y))},fromBytes(g){const b=g.length,x=g[0],B=g.subarray(1);if(b===o&&(x===2||x===3)){const D=ut(B);if(!Bc(D,me,n.ORDER))throw new Error("Point is not on curve");const T=d(D);let U;try{U=n.sqrt(T)}catch(j){const q=j instanceof Error?": "+j.message:"";throw new Error("Point is not on curve"+q)}const k=(U&me)===me;return(x&1)===1!==k&&(U=n.neg(U)),{x:D,y:U}}else if(b===a&&x===4){const D=n.fromBytes(B.subarray(0,n.BYTES)),T=n.fromBytes(B.subarray(n.BYTES,2*n.BYTES));return{x:D,y:T}}else{const D=o,T=a;throw new Error("invalid Point, expected length of "+D+", or uncompressed "+T+", got "+b)}}});function p(g){const b=r>>me;return g>b}function w(g){return p(g)?c(-g):g}const v=(g,b,x)=>ut(g.slice(b,x));class O{constructor(b,x,B){Bi("r",b,me,r),Bi("s",x,me,r),this.r=b,this.s=x,B!=null&&(this.recovery=B),Object.freeze(this)}static fromCompact(b){const x=i;return b=rt("compactSignature",b,x*2),new O(v(b,0,x),v(b,x,2*x))}static fromDER(b){const{r:x,s:B}=Pn.toSig(rt("DER",b));return new O(x,B)}assertValidity(){}addRecoveryBit(b){return new O(this.r,this.s,b)}recoverPublicKey(b){const{r:x,s:B,recovery:D}=this,T=F(rt("msgHash",b));if(D==null||![0,1,2,3].includes(D))throw new Error("recovery id invalid");const U=D===2||D===3?x+e.n:x;if(U>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const k=(D&1)===0?"02":"03",C=f.fromHex(k+Wc(U,n.BYTES)),j=u(U),q=c(-T*j),H=c(B*j),G=f.BASE.multiplyAndAddUnsafe(C,q,H);if(!G)throw new Error("point at infinify");return G.assertValidity(),G}hasHighS(){return p(this.s)}normalizeS(){return this.hasHighS()?new O(this.r,c(-this.s),this.recovery):this}toDERRawBytes(){return Oo(this.toDERHex())}toDERHex(){return Pn.hexFromSig(this)}toCompactRawBytes(){return Oo(this.toCompactHex())}toCompactHex(){const b=i;return Wc(this.r,b)+Wc(this.s,b)}}const P={isValidPrivateKey(g){try{return h(g),!0}catch{return!1}},normPrivateKeyToScalar:h,randomPrivateKey:()=>{const g=kc(e.n);return od(e.randomBytes(g),e.n)},precompute(g=8,b=f.BASE){return b._setWindowSize(g),b.multiply(BigInt(3)),b}};function A(g,b=!0){return f.fromPrivateKey(g).toRawBytes(b)}function I(g){if(typeof g=="bigint")return!1;if(g instanceof f)return!0;const x=rt("key",g).length,B=n.BYTES,D=B+1,T=2*B+1;if(!(e.allowedPrivateKeyLengths||i===D))return x===D||x===T}function S(g,b,x=!0){if(I(g)===!0)throw new Error("first arg must be private key");if(I(b)===!1)throw new Error("second arg must be public key");return f.fromHex(b).multiply(h(g)).toRawBytes(x)}const M=e.bits2int||function(g){if(g.length>8192)throw new Error("input is too large");const b=ut(g),x=g.length*8-s;return x>0?b>>BigInt(x):b},F=e.bits2int_modN||function(g){return c(M(g))},L=Wr(s);function R(g){return Bi("num < 2^"+s,g,Qt,L),Pe(g,i)}function Z(g,b,x=W){if(["recovered","canonical"].some(N=>N in x))throw new Error("sign() legacy options not supported");const{hash:B,randomBytes:D}=e;let{lowS:T,prehash:U,extraEntropy:k}=x;T==null&&(T=!0),g=rt("msgHash",g),hd(x),U&&(g=rt("prehashed msgHash",B(g)));const C=F(g),j=h(b),q=[R(j),R(C)];if(k!=null&&k!==!1){const N=k===!0?D(n.BYTES):k;q.push(rt("extraEntropy",N))}const H=Oe(...q),G=C;function z(N){const V=M(N);if(!l(V))return;const K=u(V),X=f.BASE.multiply(V).toAffine(),$=c(X.x);if($===Qt)return;const _=c(K*c(G+$*j));if(_===Qt)return;let te=(X.x===$?0:2)|Number(X.y&me),ue=_;return T&&p(_)&&(ue=w(_),te^=1),new O($,ue,te)}return{seed:H,k2sig:z}}const W={lowS:e.lowS,prehash:!1},E={lowS:e.lowS,prehash:!1};function y(g,b,x=W){const{seed:B,k2sig:D}=Z(g,b,x),T=e;return Nm(T.hash.outputLen,T.nByteLength,T.hmac)(B,D)}f.BASE._setWindowSize(8);function m(g,b,x,B=E){const D=g;b=rt("msgHash",b),x=rt("publicKey",x);const{lowS:T,prehash:U,format:k}=B;if(hd(B),"strict"in B)throw new Error("options.strict was renamed to lowS");if(k!==void 0&&k!=="compact"&&k!=="der")throw new Error("format must be compact or der");const C=typeof D=="string"||ps(D),j=!C&&!k&&typeof D=="object"&&D!==null&&typeof D.r=="bigint"&&typeof D.s=="bigint";if(!C&&!j)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let q,H;try{if(j&&(q=new O(D.r,D.s)),C){try{k!=="compact"&&(q=O.fromDER(D))}catch(te){if(!(te instanceof Pn.Err))throw te}!q&&k!=="der"&&(q=O.fromCompact(D))}H=f.fromHex(x)}catch{return!1}if(!q||T&&q.hasHighS())return!1;U&&(b=e.hash(b));const{r:G,s:z}=q,N=F(b),V=u(z),K=c(N*V),X=c(G*V),$=f.BASE.multiplyAndAddUnsafe(H,K,X)?.toAffine();return $?c($.x)===G:!1}return{CURVE:e,getPublicKey:A,getSharedSecret:S,sign:y,verify:m,ProjectivePoint:f,Signature:O,utils:P}}function C2(t,e){const n=t.ORDER;let r=Qt;for(let p=n-me;p%dr===Qt;p/=dr)r+=me;const i=r,s=dr<<i-me-me,o=s*dr,a=(n-me)/o,c=(a-me)/dr,u=o-me,f=s,h=t.pow(e,a),d=t.pow(e,(a+me)/dr);let l=(p,w)=>{let v=h,O=t.pow(w,u),P=t.sqr(O);P=t.mul(P,w);let A=t.mul(p,P);A=t.pow(A,c),A=t.mul(A,O),O=t.mul(A,w),P=t.mul(A,p);let I=t.mul(P,O);A=t.pow(I,f);let S=t.eql(A,t.ONE);O=t.mul(P,d),A=t.mul(I,v),P=t.cmov(O,P,S),I=t.cmov(A,I,S);for(let M=i;M>me;M--){let F=M-dr;F=dr<<F-me;let L=t.pow(I,F);const R=t.eql(L,t.ONE);O=t.mul(P,v),v=t.mul(v,v),L=t.mul(I,v),P=t.cmov(O,P,R),I=t.cmov(L,I,R)}return{isValid:S,value:P}};if(t.ORDER%Hc===vs){const p=(t.ORDER-vs)/Hc,w=t.sqrt(t.neg(e));l=(v,O)=>{let P=t.sqr(O);const A=t.mul(v,O);P=t.mul(P,A);let I=t.pow(P,p);I=t.mul(I,A);const S=t.mul(I,w),M=t.mul(t.sqr(I),O),F=t.eql(M,v);let L=t.cmov(S,I,F);return{isValid:F,value:L}}}return l}function dd(t,e){if(rd(t),!t.isValid(e.A)||!t.isValid(e.B)||!t.isValid(e.Z))throw new Error("mapToCurveSimpleSWU: invalid opts");const n=C2(t,e.Z);if(!t.isOdd)throw new Error("Fp.isOdd is not implemented!");return r=>{let i,s,o,a,c,u,f,h;i=t.sqr(r),i=t.mul(i,e.Z),s=t.sqr(i),s=t.add(s,i),o=t.add(s,t.ONE),o=t.mul(o,e.B),a=t.cmov(e.Z,t.neg(s),!t.eql(s,t.ZERO)),a=t.mul(a,e.A),s=t.sqr(o),u=t.sqr(a),c=t.mul(u,e.A),s=t.add(s,c),s=t.mul(s,o),u=t.mul(u,a),c=t.mul(u,e.B),s=t.add(s,c),f=t.mul(i,o);const{isValid:d,value:l}=n(s,u);h=t.mul(i,r),h=t.mul(h,l),f=t.cmov(f,o,d),h=t.cmov(h,l,d);const p=t.isOdd(r)===t.isOdd(h);h=t.cmov(t.neg(h),h,p);const w=Gr(t,[a],!0)[0];return f=t.mul(f,w),{x:f,y:h}}}function L2(t){return{hash:t,hmac:(e,...n)=>ms(t,e,Bn(...n)),randomBytes:Dn}}function qo(t,e){const n=r=>q2({...t,...L2(r)});return{...n(e),create:n}}const V2=ut;function pr(t,e){if(Es(t),Es(e),t<0||t>=1<<8*e)throw new Error("invalid I2OSP input: "+t);const n=Array.from({length:e}).fill(0);for(let r=e-1;r>=0;r--)n[r]=t&255,t>>>=8;return new Uint8Array(n)}function k2(t,e){const n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t[r]^e[r];return n}function Es(t){if(!Number.isSafeInteger(t))throw new Error("number expected")}function F2(t,e,n,r){lr(t),lr(e),Es(n),e.length>255&&(e=r(Oe(Ic("H2C-OVERSIZE-DST-"),e)));const{outputLen:i,blockLen:s}=r,o=Math.ceil(n/i);if(n>65535||o>255)throw new Error("expand_message_xmd: invalid lenInBytes");const a=Oe(e,pr(e.length,1)),c=pr(0,s),u=pr(n,2),f=new Array(o),h=r(Oe(c,t,u,pr(0,1),a));f[0]=r(Oe(h,pr(1,1),a));for(let l=1;l<=o;l++){const p=[k2(h,f[l-1]),pr(l+1,1),a];f[l]=r(Oe(...p))}return Oe(...f).slice(0,n)}function z2(t,e,n,r,i){if(lr(t),lr(e),Es(n),e.length>255){const s=Math.ceil(2*r/8);e=i.create({dkLen:s}).update(Ic("H2C-OVERSIZE-DST-")).update(e).digest()}if(n>65535||e.length>255)throw new Error("expand_message_xof: invalid lenInBytes");return i.create({dkLen:n}).update(t).update(pr(n,2)).update(e).update(pr(e.length,1)).digest()}function pd(t,e,n){ws(n,{DST:"stringOrUint8Array",p:"bigint",m:"isSafeInteger",k:"isSafeInteger",hash:"hash"});const{p:r,k:i,m:s,hash:o,expand:a,DST:c}=n;lr(t),Es(e);const u=typeof c=="string"?Ic(c):c,f=r.toString(2).length,h=Math.ceil((f+i)/8),d=e*s*h;let l;if(a==="xmd")l=F2(t,u,d,o);else if(a==="xof")l=z2(t,u,d,i,o);else if(a==="_internal_pass")l=t;else throw new Error('expand must be "xmd" or "xof"');const p=new Array(e);for(let w=0;w<e;w++){const v=new Array(s);for(let O=0;O<s;O++){const P=h*(O+w*s),A=l.subarray(P,P+h);v[O]=lt(V2(A),r)}p[w]=v}return p}function gd(t,e){const n=e.map(r=>Array.from(r).reverse());return(r,i)=>{const[s,o,a,c]=n.map(h=>h.reduce((d,l)=>t.add(t.mul(d,r),l))),[u,f]=Gr(t,[o,c],!0);return r=t.mul(s,u),i=t.mul(i,t.mul(a,f)),{x:r,y:i}}}function yd(t,e,n){if(typeof e!="function")throw new Error("mapToCurve() must be defined");function r(s){return t.fromAffine(e(s))}function i(s){const o=s.clearCofactor();return o.equals(t.ZERO)?t.ZERO:(o.assertValidity(),o)}return{defaults:n,hashToCurve(s,o){const a=pd(s,2,{...n,DST:n.DST,...o}),c=r(a[0]),u=r(a[1]);return i(c.add(u))},encodeToCurve(s,o){const a=pd(s,1,{...n,DST:n.encodeDST,...o});return i(r(a[0]))},mapToCurve(s){if(!Array.isArray(s))throw new Error("expected array of bigints");for(const o of s)if(typeof o!="bigint")throw new Error("expected array of bigints");return i(r(s))}}}const wd=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),bd=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),M2=BigInt(0),K2=BigInt(1),Zc=BigInt(2),md=(t,e)=>(t+e/Zc)/e;function j2(t){const e=wd,n=BigInt(3),r=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),u=t*t*t%e,f=u*u*t%e,h=Ft(f,n,e)*f%e,d=Ft(h,n,e)*f%e,l=Ft(d,Zc,e)*u%e,p=Ft(l,i,e)*l%e,w=Ft(p,s,e)*p%e,v=Ft(w,a,e)*w%e,O=Ft(v,c,e)*v%e,P=Ft(O,a,e)*w%e,A=Ft(P,n,e)*f%e,I=Ft(A,o,e)*p%e,S=Ft(I,r,e)*u%e,M=Ft(S,Zc,e);if(!Xc.eql(Xc.sqr(M),t))throw new Error("Cannot find square root");return M}const Xc=hr(wd,void 0,void 0,{sqrt:j2}),W2=qo({a:M2,b:BigInt(7),Fp:Xc,n:bd,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:t=>{const e=bd,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-K2*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),i=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),s=n,o=BigInt("0x100000000000000000000000000000000"),a=md(s*t,e),c=md(-r*t,e);let u=lt(t-a*n-c*i,e),f=lt(-a*r-c*s,e);const h=u>o,d=f>o;if(h&&(u=e-u),d&&(f=e-f),u>o||f>o)throw new Error("splitScalar: Endomorphism failed, k="+t);return{k1neg:h,k1:u,k2neg:d,k2:f}}}},fr);function H2(t){if(t.length!==130&&t.length!==132)throw new Z2({signature:t});const e=BigInt(Nn(t,0,32)),n=BigInt(Nn(t,32,64)),r=(()=>{const i=+`0x${t.slice(130)}`;if(!Number.isNaN(i))try{return G2(i)}catch{throw new X2({value:i})}})();return typeof r>"u"?{r:e,s:n}:{r:e,s:n,yParity:r}}function G2(t){if(t===0||t===27)return 0;if(t===1||t===28)return 1;if(t>=35)return t%2===0?1:0;throw new Y2({value:t})}class Z2 extends xe{constructor({signature:e}){super(`Value \`${e}\` is an invalid signature size.`,{metaMessages:["Expected: 64 bytes or 65 bytes.",`Received ${Un(Uc(e))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSerializedSizeError"})}}class X2 extends xe{constructor({value:e}){super(`Value \`${e}\` is an invalid y-parity value. Y-parity must be 0 or 1.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidYParityError"})}}class Y2 extends xe{constructor({value:e}){super(`Value \`${e}\` is an invalid v value. v must be 27, 28 or >=35.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidVError"})}}Object.freeze({1:0n,2:1n,3:2n,4:3n,5:4n,6:5n,7:6n,8:7n,9:8n,A:9n,B:10n,C:11n,D:12n,E:13n,F:14n,G:15n,H:16n,J:17n,K:18n,L:19n,M:20n,N:21n,P:22n,Q:23n,R:24n,S:25n,T:26n,U:27n,V:28n,W:29n,X:30n,Y:31n,Z:32n,a:33n,b:34n,c:35n,d:36n,e:37n,f:38n,g:39n,h:40n,i:41n,j:42n,k:43n,m:44n,n:45n,o:46n,p:47n,q:48n,r:49n,s:50n,t:51n,u:52n,v:53n,w:54n,x:55n,y:56n,z:57n}),Array.from("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").map((t,e)=>[e,t.charCodeAt(0)]),{...Object.fromEntries(Array.from("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").map((t,e)=>[t.charCodeAt(0),e]))};const J2=Uint8Array.from([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9]),qe=Uint32Array.from([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),ne=new Uint32Array(32);function gr(t,e,n,r,i,s){const o=i[s],a=i[s+1];let c=ne[2*t],u=ne[2*t+1],f=ne[2*e],h=ne[2*e+1],d=ne[2*n],l=ne[2*n+1],p=ne[2*r],w=ne[2*r+1],v=wc(c,f,o);u=bc(v,u,h,a),c=v|0,{Dh:w,Dl:p}={Dh:w^u,Dl:p^c},{Dh:w,Dl:p}={Dh:Yb(w,p),Dl:Jb(w)},{h:l,l:d}=Xt(l,d,w,p),{Bh:h,Bl:f}={Bh:h^l,Bl:f^d},{Bh:h,Bl:f}={Bh:rr(h,f,24),Bl:ir(h,f,24)},ne[2*t]=c,ne[2*t+1]=u,ne[2*e]=f,ne[2*e+1]=h,ne[2*n]=d,ne[2*n+1]=l,ne[2*r]=p,ne[2*r+1]=w}function yr(t,e,n,r,i,s){const o=i[s],a=i[s+1];let c=ne[2*t],u=ne[2*t+1],f=ne[2*e],h=ne[2*e+1],d=ne[2*n],l=ne[2*n+1],p=ne[2*r],w=ne[2*r+1],v=wc(c,f,o);u=bc(v,u,h,a),c=v|0,{Dh:w,Dl:p}={Dh:w^u,Dl:p^c},{Dh:w,Dl:p}={Dh:rr(w,p,16),Dl:ir(w,p,16)},{h:l,l:d}=Xt(l,d,w,p),{Bh:h,Bl:f}={Bh:h^l,Bl:f^d},{Bh:h,Bl:f}={Bh:us(h,f,63),Bl:fs(h,f,63)},ne[2*t]=c,ne[2*t+1]=u,ne[2*e]=f,ne[2*e+1]=h,ne[2*n]=d,ne[2*n+1]=l,ne[2*r]=p,ne[2*r+1]=w}function Q2(t,e={},n,r,i){if(fn(n),t<0||t>n)throw new Error("outputLen bigger than keyLen");const{key:s,salt:o,personalization:a}=e;if(s!==void 0&&(s.length<1||s.length>n))throw new Error("key length must be undefined or 1.."+n);if(o!==void 0&&o.length!==r)throw new Error("salt must be undefined or "+r);if(a!==void 0&&a.length!==i)throw new Error("personalization must be undefined or "+i)}class _2 extends Io{constructor(e,n){super(),this.finished=!1,this.destroyed=!1,this.length=0,this.pos=0,fn(e),fn(n),this.blockLen=e,this.outputLen=n,this.buffer=new Uint8Array(e),this.buffer32=ls(this.buffer)}update(e){sr(this),e=Jt(e),Yt(e);const{blockLen:n,buffer:r,buffer32:i}=this,s=e.length,o=e.byteOffset,a=e.buffer;for(let c=0;c<s;){this.pos===n&&(or(i),this.compress(i,0,!1),or(i),this.pos=0);const u=Math.min(n-this.pos,s-c),f=o+c;if(u===n&&!(f%4)&&c+u<s){const h=new Uint32Array(a,f,Math.floor((s-c)/4));or(h);for(let d=0;c+n<s;d+=i.length,c+=n)this.length+=n,this.compress(h,d,!1);or(h);continue}r.set(e.subarray(c,c+u),this.pos),this.pos+=u,this.length+=u,c+=u}return this}digestInto(e){sr(this),mc(e,this);const{pos:n,buffer32:r}=this;this.finished=!0,kt(this.buffer.subarray(n)),or(r),this.compress(r,0,!0),or(r);const i=ls(e);this.get().forEach((s,o)=>i[o]=In(s))}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){const{buffer:n,length:r,finished:i,destroyed:s,outputLen:o,pos:a}=this;return e||(e=new this.constructor({dkLen:o})),e.set(...this.get()),e.buffer.set(n),e.destroyed=s,e.finished=i,e.length=r,e.pos=a,e.outputLen=o,e}clone(){return this._cloneInto()}}class $2 extends _2{constructor(e={}){const n=e.dkLen===void 0?64:e.dkLen;super(128,n),this.v0l=qe[0]|0,this.v0h=qe[1]|0,this.v1l=qe[2]|0,this.v1h=qe[3]|0,this.v2l=qe[4]|0,this.v2h=qe[5]|0,this.v3l=qe[6]|0,this.v3h=qe[7]|0,this.v4l=qe[8]|0,this.v4h=qe[9]|0,this.v5l=qe[10]|0,this.v5h=qe[11]|0,this.v6l=qe[12]|0,this.v6h=qe[13]|0,this.v7l=qe[14]|0,this.v7h=qe[15]|0,Q2(n,e,64,16,16);let{key:r,personalization:i,salt:s}=e,o=0;if(r!==void 0&&(r=Jt(r),o=r.length),this.v0l^=this.outputLen|o<<8|65536|1<<24,s!==void 0){s=Jt(s);const a=ls(s);this.v4l^=In(a[0]),this.v4h^=In(a[1]),this.v5l^=In(a[2]),this.v5h^=In(a[3])}if(i!==void 0){i=Jt(i);const a=ls(i);this.v6l^=In(a[0]),this.v6h^=In(a[1]),this.v7l^=In(a[2]),this.v7h^=In(a[3])}if(r!==void 0){const a=new Uint8Array(this.blockLen);a.set(r),this.update(a)}}get(){let{v0l:e,v0h:n,v1l:r,v1h:i,v2l:s,v2h:o,v3l:a,v3h:c,v4l:u,v4h:f,v5l:h,v5h:d,v6l:l,v6h:p,v7l:w,v7h:v}=this;return[e,n,r,i,s,o,a,c,u,f,h,d,l,p,w,v]}set(e,n,r,i,s,o,a,c,u,f,h,d,l,p,w,v){this.v0l=e|0,this.v0h=n|0,this.v1l=r|0,this.v1h=i|0,this.v2l=s|0,this.v2h=o|0,this.v3l=a|0,this.v3h=c|0,this.v4l=u|0,this.v4h=f|0,this.v5l=h|0,this.v5h=d|0,this.v6l=l|0,this.v6h=p|0,this.v7l=w|0,this.v7h=v|0}compress(e,n,r){this.get().forEach((c,u)=>ne[u]=c),ne.set(qe,16);let{h:i,l:s}=hh(BigInt(this.length));ne[24]=qe[8]^s,ne[25]=qe[9]^i,r&&(ne[28]=~ne[28],ne[29]=~ne[29]);let o=0;const a=J2;for(let c=0;c<12;c++)gr(0,4,8,12,e,n+2*a[o++]),yr(0,4,8,12,e,n+2*a[o++]),gr(1,5,9,13,e,n+2*a[o++]),yr(1,5,9,13,e,n+2*a[o++]),gr(2,6,10,14,e,n+2*a[o++]),yr(2,6,10,14,e,n+2*a[o++]),gr(3,7,11,15,e,n+2*a[o++]),yr(3,7,11,15,e,n+2*a[o++]),gr(0,5,10,15,e,n+2*a[o++]),yr(0,5,10,15,e,n+2*a[o++]),gr(1,6,11,12,e,n+2*a[o++]),yr(1,6,11,12,e,n+2*a[o++]),gr(2,7,8,13,e,n+2*a[o++]),yr(2,7,8,13,e,n+2*a[o++]),gr(3,4,9,14,e,n+2*a[o++]),yr(3,4,9,14,e,n+2*a[o++]);this.v0l^=ne[0]^ne[16],this.v0h^=ne[1]^ne[17],this.v1l^=ne[2]^ne[18],this.v1h^=ne[3]^ne[19],this.v2l^=ne[4]^ne[20],this.v2h^=ne[5]^ne[21],this.v3l^=ne[6]^ne[22],this.v3h^=ne[7]^ne[23],this.v4l^=ne[8]^ne[24],this.v4h^=ne[9]^ne[25],this.v5l^=ne[10]^ne[26],this.v5h^=ne[11]^ne[27],this.v6l^=ne[12]^ne[28],this.v6h^=ne[13]^ne[29],this.v7l^=ne[14]^ne[30],this.v7h^=ne[15]^ne[31],kt(ne)}destroy(){this.destroyed=!0,kt(this.buffer32),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const e3=am(t=>new $2(t));On.slice();const t3=BigInt(0),Co=BigInt(1),vd=BigInt(2),Di=BigInt(3);function n3(t){const e=[];for(;t>Co;t>>=Co)(t&Co)===t3?e.unshift(0):(t&Di)===Di?(e.unshift(-1),t+=Co):e.unshift(1);return e}function r3(t){const{Fp:e,Fr:n,Fp2:r,Fp6:i,Fp12:s}=t.fields,o=t.params.xNegative,a=t.params.twistType,c=Gc({n:n.ORDER,...t.G1}),u=Object.assign(c,yd(c.ProjectivePoint,t.G1.mapToCurve,{...t.htfDefaults,...t.G1.htfDefaults})),f=Gc({n:n.ORDER,...t.G2}),h=Object.assign(f,yd(f.ProjectivePoint,t.G2.mapToCurve,{...t.htfDefaults,...t.G2.htfDefaults}));let d;if(a==="multiplicative")d=(C,j,q,H,G,z)=>s.mul014(H,C,r.mul(j,G),r.mul(q,z));else if(a==="divisive")d=(C,j,q,H,G,z)=>s.mul034(H,r.mul(q,z),r.mul(j,G),C);else throw new Error("bls: unknown twist type");const l=r.div(r.ONE,r.mul(r.ONE,vd));function p(C,j,q,H){const G=r.sqr(q),z=r.sqr(H),N=r.mulByB(r.mul(z,Di)),V=r.mul(N,Di),K=r.sub(r.sub(r.sqr(r.add(q,H)),z),G),X=r.sub(N,G),$=r.mul(r.sqr(j),Di),_=r.neg(K);return C.push([X,$,_]),j=r.mul(r.mul(r.mul(r.sub(G,V),j),q),l),q=r.sub(r.sqr(r.mul(r.add(G,V),l)),r.mul(r.sqr(N),Di)),H=r.mul(G,K),{Rx:j,Ry:q,Rz:H}}function w(C,j,q,H,G,z){const N=r.sub(q,r.mul(z,H)),V=r.sub(j,r.mul(G,H)),K=r.sub(r.mul(N,G),r.mul(V,z)),X=r.neg(N),$=V;C.push([K,X,$]);const _=r.sqr(V),te=r.mul(_,V),ue=r.mul(_,j),ae=r.add(r.sub(te,r.mul(ue,vd)),r.mul(r.sqr(N),H));return j=r.mul(V,ae),q=r.sub(r.mul(r.sub(ue,ae),N),r.mul(te,q)),H=r.mul(H,te),{Rx:j,Ry:q,Rz:H}}const v=n3(t.params.ateLoopSize),O=Oc(C=>{const j=C,{x:q,y:H}=j.toAffine(),G=q,z=H,N=r.neg(H);let V=G,K=z,X=r.ONE;const $=[];for(const _ of v){const te=[];({Rx:V,Ry:K,Rz:X}=p(te,V,K,X)),_&&({Rx:V,Ry:K,Rz:X}=w(te,V,K,X,G,_===-1?N:z)),$.push(te)}if(t.postPrecompute){const _=$[$.length-1];t.postPrecompute(V,K,X,G,z,w.bind(null,_))}return $});function P(C,j=!1){let q=s.ONE;if(C.length){const H=C[0][0].length;for(let G=0;G<H;G++){q=s.sqr(q);for(const[z,N,V]of C)for(const[K,X,$]of z[G])q=d(K,X,$,q,N,V)}}return o&&(q=s.conjugate(q)),j?s.finalExponentiate(q):q}function A(C,j=!0){const q=[];u.ProjectivePoint.normalizeZ(C.map(({g1:H})=>H)),h.ProjectivePoint.normalizeZ(C.map(({g2:H})=>H));for(const{g1:H,g2:G}of C){if(H.equals(u.ProjectivePoint.ZERO)||G.equals(h.ProjectivePoint.ZERO))throw new Error("pairing is not available for ZERO point");H.assertValidity(),G.assertValidity();const z=H.toAffine();q.push([O(G),z.x,z.y])}return P(q,j)}function I(C,j,q=!0){return A([{g1:C,g2:j}],q)}const S={randomPrivateKey:()=>{const C=kc(n.ORDER);return od(t.randomBytes(C),n.ORDER)},calcPairingPrecomputes:O},{ShortSignature:M}=t.G1,{Signature:F}=t.G2;function L(C){return C instanceof u.ProjectivePoint?C:u.ProjectivePoint.fromHex(C)}function R(C,j){return C instanceof u.ProjectivePoint?C:u.hashToCurve(rt("point",C),j)}function Z(C){return C instanceof h.ProjectivePoint?C:F.fromHex(C)}function W(C,j){return C instanceof h.ProjectivePoint?C:h.hashToCurve(rt("point",C),j)}function E(C){return u.ProjectivePoint.fromPrivateKey(C).toRawBytes(!0)}function y(C){return h.ProjectivePoint.fromPrivateKey(C).toRawBytes(!0)}function m(C,j,q){const H=W(C,q);H.assertValidity();const G=H.multiply(u.normPrivateKeyToScalar(j));return C instanceof h.ProjectivePoint?G:F.toRawBytes(G)}function g(C,j,q){const H=R(C,q);H.assertValidity();const G=H.multiply(u.normPrivateKeyToScalar(j));return C instanceof u.ProjectivePoint?G:M.toRawBytes(G)}function b(C,j,q,H){const G=L(q),z=W(j,H),N=u.ProjectivePoint.BASE,V=Z(C),K=A([{g1:G.negate(),g2:z},{g1:N,g2:V}]);return s.eql(K,s.ONE)}function x(C,j,q,H){const G=Z(q),z=R(j,H),N=h.ProjectivePoint.BASE,V=L(C),K=A([{g1:z,g2:G},{g1:V,g2:N.negate()}]);return s.eql(K,s.ONE)}function B(C){if(!Array.isArray(C)||C.length===0)throw new Error("expected non-empty array")}function D(C){B(C);const q=C.map(L).reduce((H,G)=>H.add(G),u.ProjectivePoint.ZERO);return C[0]instanceof u.ProjectivePoint?(q.assertValidity(),q):q.toRawBytes(!0)}function T(C){B(C);const q=C.map(Z).reduce((H,G)=>H.add(G),h.ProjectivePoint.ZERO);return C[0]instanceof h.ProjectivePoint?(q.assertValidity(),q):F.toRawBytes(q)}function U(C){B(C);const q=C.map(L).reduce((H,G)=>H.add(G),u.ProjectivePoint.ZERO);return C[0]instanceof u.ProjectivePoint?(q.assertValidity(),q):M.toRawBytes(q)}function k(C,j,q,H){if(B(j),q.length!==j.length)throw new Error("amount of public keys and messages should be equal");const G=Z(C),z=j.map(X=>W(X,H)),N=q.map(L),V=new Map;for(let X=0;X<N.length;X++){const $=N[X],_=z[X];let te=V.get(_);te===void 0&&(te=[],V.set(_,te)),te.push($)}const K=[];try{for(const[X,$]of V){const _=$.reduce((te,ue)=>te.add(ue));K.push({g1:_,g2:X})}return K.push({g1:u.ProjectivePoint.BASE.negate(),g2:G}),s.eql(A(K),s.ONE)}catch{return!1}}return u.ProjectivePoint.BASE._setWindowSize(4),{getPublicKey:E,getPublicKeyForShortSignatures:y,sign:m,signShortSignature:g,verify:b,verifyBatch:k,verifyShortSignature:x,aggregatePublicKeys:D,aggregateSignatures:T,aggregateShortSignatures:U,millerLoopBatch:P,pairing:I,pairingBatch:A,G1:u,G2:h,Signature:F,ShortSignature:M,fields:{Fr:n,Fp:e,Fp2:r,Fp6:i,Fp12:s},params:{ateLoopSize:t.params.ateLoopSize,r:t.params.r,G1b:t.G1.b,G2b:t.G2.b},utils:S}}const i3=BigInt(0),Oi=BigInt(1),qn=BigInt(2),Ed=BigInt(3);function Yc(t,e,n,r,i=1,s){const o=BigInt(s===void 0?r:s),a=n**BigInt(r),c=[];for(let u=0;u<i;u++){const f=BigInt(u+1),h=[];for(let d=0,l=Oi;d<r;d++){const p=(f*l-f)/o%a;h.push(t.pow(e,p)),l*=n}c.push(h)}return c}function s3(t,e,n){const r=e.pow(n,(t.ORDER-Oi)/Ed),i=e.pow(n,(t.ORDER-Oi)/qn);function s(d,l){const p=e.mul(e.frobeniusMap(d,1),r),w=e.mul(e.frobeniusMap(l,1),i);return[p,w]}const o=e.pow(n,(t.ORDER**qn-Oi)/Ed),a=e.pow(n,(t.ORDER**qn-Oi)/qn);if(!e.eql(a,e.neg(e.ONE)))throw new Error("psiFrobenius: PSI2_Y!==-1");function c(d,l){return[e.mul(d,o),e.neg(l)]}const u=d=>(l,p)=>{const w=p.toAffine(),v=d(w.x,w.y);return l.fromAffine({x:v[0],y:v[1]})},f=u(s),h=u(c);return{psi:s,psi2:c,G2psi:f,G2psi2:h,PSI_X:r,PSI_Y:i,PSI2_X:o,PSI2_Y:a}}function o3(t){const{ORDER:e}=t,n=hr(e),r=n.create(t.NONRESIDUE||BigInt(-1)),i=n.div(n.ONE,qn),s=Yc(n,r,n.ORDER,2)[0],o=({c0:E,c1:y},{c0:m,c1:g})=>({c0:n.add(E,m),c1:n.add(y,g)}),a=({c0:E,c1:y},{c0:m,c1:g})=>({c0:n.sub(E,m),c1:n.sub(y,g)}),c=({c0:E,c1:y},m)=>{if(typeof m=="bigint")return{c0:n.mul(E,m),c1:n.mul(y,m)};const{c0:g,c1:b}=m;let x=n.mul(E,g),B=n.mul(y,b);const D=n.sub(x,B),T=n.sub(n.mul(n.add(E,y),n.add(g,b)),n.add(x,B));return{c0:D,c1:T}},u=({c0:E,c1:y})=>{const m=n.add(E,y),g=n.sub(E,y),b=n.add(E,E);return{c0:n.mul(m,g),c1:n.mul(b,y)}},f=E=>{if(E.length!==2)throw new Error("invalid tuple");const y=E.map(m=>n.create(m));return{c0:y[0],c1:y[1]}},h=e*e,d=f(t.FP2_NONRESIDUE),l={ORDER:h,isLE:n.isLE,NONRESIDUE:d,BITS:ys(h),BYTES:Math.ceil(ys(h)/8),MASK:Wr(ys(h)),ZERO:{c0:n.ZERO,c1:n.ZERO},ONE:{c0:n.ONE,c1:n.ZERO},create:E=>E,isValid:({c0:E,c1:y})=>typeof E=="bigint"&&typeof y=="bigint",is0:({c0:E,c1:y})=>n.is0(E)&&n.is0(y),eql:({c0:E,c1:y},{c0:m,c1:g})=>n.eql(E,m)&&n.eql(y,g),neg:({c0:E,c1:y})=>({c0:n.neg(E),c1:n.neg(y)}),pow:(E,y)=>Uo(l,E,y),invertBatch:E=>Gr(l,E),add:o,sub:a,mul:c,sqr:u,addN:o,subN:a,mulN:c,sqrN:u,div:(E,y)=>l.mul(E,typeof y=="bigint"?n.inv(n.create(y)):l.inv(y)),inv:({c0:E,c1:y})=>{const m=n.inv(n.create(E*E+y*y));return{c0:n.mul(m,n.create(E)),c1:n.mul(m,n.create(-y))}},sqrt:E=>{if(t.Fp2sqrt)return t.Fp2sqrt(E);const{c0:y,c1:m}=E;if(n.is0(m))return Po(n,y)===1?l.create({c0:n.sqrt(y),c1:n.ZERO}):l.create({c0:n.ZERO,c1:n.sqrt(n.div(y,r))});const g=n.sqrt(n.sub(n.sqr(y),n.mul(n.sqr(m),r)));let b=n.mul(n.add(g,y),i);Po(n,b)===-1&&(b=n.sub(b,g));const B=n.sqrt(b),D=l.create({c0:B,c1:n.div(n.mul(m,i),B)});if(!l.eql(l.sqr(D),E))throw new Error("Cannot find square root");const T=D,U=l.neg(T),{re:k,im:C}=l.reim(T),{re:j,im:q}=l.reim(U);return C>q||C===q&&k>j?T:U},isOdd:E=>{const{re:y,im:m}=l.reim(E),g=y%qn,b=y===i3,x=m%qn;return BigInt(g||b&&x)==Oi},fromBytes(E){if(E.length!==l.BYTES)throw new Error("fromBytes invalid length="+E.length);return{c0:n.fromBytes(E.subarray(0,n.BYTES)),c1:n.fromBytes(E.subarray(n.BYTES))}},toBytes:({c0:E,c1:y})=>Oe(n.toBytes(E),n.toBytes(y)),cmov:({c0:E,c1:y},{c0:m,c1:g},b)=>({c0:n.cmov(E,m,b),c1:n.cmov(y,g,b)}),reim:({c0:E,c1:y})=>({re:E,im:y}),mulByNonresidue:({c0:E,c1:y})=>l.mul({c0:E,c1:y},d),mulByB:t.Fp2mulByB,fromBigTuple:f,frobeniusMap:({c0:E,c1:y},m)=>({c0:E,c1:n.mul(y,s[m%2])})},p=({c0:E,c1:y,c2:m},{c0:g,c1:b,c2:x})=>({c0:l.add(E,g),c1:l.add(y,b),c2:l.add(m,x)}),w=({c0:E,c1:y,c2:m},{c0:g,c1:b,c2:x})=>({c0:l.sub(E,g),c1:l.sub(y,b),c2:l.sub(m,x)}),v=({c0:E,c1:y,c2:m},g)=>{if(typeof g=="bigint")return{c0:l.mul(E,g),c1:l.mul(y,g),c2:l.mul(m,g)};const{c0:b,c1:x,c2:B}=g,D=l.mul(E,b),T=l.mul(y,x),U=l.mul(m,B);return{c0:l.add(D,l.mulByNonresidue(l.sub(l.mul(l.add(y,m),l.add(x,B)),l.add(T,U)))),c1:l.add(l.sub(l.mul(l.add(E,y),l.add(b,x)),l.add(D,T)),l.mulByNonresidue(U)),c2:l.sub(l.add(T,l.mul(l.add(E,m),l.add(b,B))),l.add(D,U))}},O=({c0:E,c1:y,c2:m})=>{let g=l.sqr(E),b=l.mul(l.mul(E,y),qn),x=l.mul(l.mul(y,m),qn),B=l.sqr(m);return{c0:l.add(l.mulByNonresidue(x),g),c1:l.add(l.mulByNonresidue(B),b),c2:l.sub(l.sub(l.add(l.add(b,l.sqr(l.add(l.sub(E,y),m))),x),g),B)}},[P,A]=Yc(l,d,n.ORDER,6,2,3),I={ORDER:l.ORDER,isLE:l.isLE,BITS:3*l.BITS,BYTES:3*l.BYTES,MASK:Wr(3*l.BITS),ZERO:{c0:l.ZERO,c1:l.ZERO,c2:l.ZERO},ONE:{c0:l.ONE,c1:l.ZERO,c2:l.ZERO},create:E=>E,isValid:({c0:E,c1:y,c2:m})=>l.isValid(E)&&l.isValid(y)&&l.isValid(m),is0:({c0:E,c1:y,c2:m})=>l.is0(E)&&l.is0(y)&&l.is0(m),neg:({c0:E,c1:y,c2:m})=>({c0:l.neg(E),c1:l.neg(y),c2:l.neg(m)}),eql:({c0:E,c1:y,c2:m},{c0:g,c1:b,c2:x})=>l.eql(E,g)&&l.eql(y,b)&&l.eql(m,x),sqrt:Fh,div:(E,y)=>I.mul(E,typeof y=="bigint"?n.inv(n.create(y)):I.inv(y)),pow:(E,y)=>Uo(I,E,y),invertBatch:E=>Gr(I,E),add:p,sub:w,mul:v,sqr:O,addN:p,subN:w,mulN:v,sqrN:O,inv:({c0:E,c1:y,c2:m})=>{let g=l.sub(l.sqr(E),l.mulByNonresidue(l.mul(m,y))),b=l.sub(l.mulByNonresidue(l.sqr(m)),l.mul(E,y)),x=l.sub(l.sqr(y),l.mul(E,m)),B=l.inv(l.add(l.mulByNonresidue(l.add(l.mul(m,b),l.mul(y,x))),l.mul(E,g)));return{c0:l.mul(B,g),c1:l.mul(B,b),c2:l.mul(B,x)}},fromBytes:E=>{if(E.length!==I.BYTES)throw new Error("fromBytes invalid length="+E.length);return{c0:l.fromBytes(E.subarray(0,l.BYTES)),c1:l.fromBytes(E.subarray(l.BYTES,2*l.BYTES)),c2:l.fromBytes(E.subarray(2*l.BYTES))}},toBytes:({c0:E,c1:y,c2:m})=>Oe(l.toBytes(E),l.toBytes(y),l.toBytes(m)),cmov:({c0:E,c1:y,c2:m},{c0:g,c1:b,c2:x},B)=>({c0:l.cmov(E,g,B),c1:l.cmov(y,b,B),c2:l.cmov(m,x,B)}),fromBigSix:E=>{if(!Array.isArray(E)||E.length!==6)throw new Error("invalid Fp6 usage");return{c0:l.fromBigTuple(E.slice(0,2)),c1:l.fromBigTuple(E.slice(2,4)),c2:l.fromBigTuple(E.slice(4,6))}},frobeniusMap:({c0:E,c1:y,c2:m},g)=>({c0:l.frobeniusMap(E,g),c1:l.mul(l.frobeniusMap(y,g),P[g%6]),c2:l.mul(l.frobeniusMap(m,g),A[g%6])}),mulByFp2:({c0:E,c1:y,c2:m},g)=>({c0:l.mul(E,g),c1:l.mul(y,g),c2:l.mul(m,g)}),mulByNonresidue:({c0:E,c1:y,c2:m})=>({c0:l.mulByNonresidue(m),c1:E,c2:y}),mul1:({c0:E,c1:y,c2:m},g)=>({c0:l.mulByNonresidue(l.mul(m,g)),c1:l.mul(E,g),c2:l.mul(y,g)}),mul01({c0:E,c1:y,c2:m},g,b){let x=l.mul(E,g),B=l.mul(y,b);return{c0:l.add(l.mulByNonresidue(l.sub(l.mul(l.add(y,m),b),B)),x),c1:l.sub(l.sub(l.mul(l.add(g,b),l.add(E,y)),x),B),c2:l.add(l.sub(l.mul(l.add(E,m),g),x),B)}}},S=Yc(l,d,n.ORDER,12,1,6)[0],M=({c0:E,c1:y},{c0:m,c1:g})=>({c0:I.add(E,m),c1:I.add(y,g)}),F=({c0:E,c1:y},{c0:m,c1:g})=>({c0:I.sub(E,m),c1:I.sub(y,g)}),L=({c0:E,c1:y},m)=>{if(typeof m=="bigint")return{c0:I.mul(E,m),c1:I.mul(y,m)};let{c0:g,c1:b}=m,x=I.mul(E,g),B=I.mul(y,b);return{c0:I.add(x,I.mulByNonresidue(B)),c1:I.sub(I.mul(I.add(E,y),I.add(g,b)),I.add(x,B))}},R=({c0:E,c1:y})=>{let m=I.mul(E,y);return{c0:I.sub(I.sub(I.mul(I.add(I.mulByNonresidue(y),E),I.add(E,y)),m),I.mulByNonresidue(m)),c1:I.add(m,m)}};function Z(E,y){const m=l.sqr(E),g=l.sqr(y);return{first:l.add(l.mulByNonresidue(g),m),second:l.sub(l.sub(l.sqr(l.add(E,y)),m),g)}}const W={ORDER:l.ORDER,isLE:I.isLE,BITS:2*I.BITS,BYTES:2*I.BYTES,MASK:Wr(2*I.BITS),ZERO:{c0:I.ZERO,c1:I.ZERO},ONE:{c0:I.ONE,c1:I.ZERO},create:E=>E,isValid:({c0:E,c1:y})=>I.isValid(E)&&I.isValid(y),is0:({c0:E,c1:y})=>I.is0(E)&&I.is0(y),neg:({c0:E,c1:y})=>({c0:I.neg(E),c1:I.neg(y)}),eql:({c0:E,c1:y},{c0:m,c1:g})=>I.eql(E,m)&&I.eql(y,g),sqrt:Fh,inv:({c0:E,c1:y})=>{let m=I.inv(I.sub(I.sqr(E),I.mulByNonresidue(I.sqr(y))));return{c0:I.mul(E,m),c1:I.neg(I.mul(y,m))}},div:(E,y)=>W.mul(E,typeof y=="bigint"?n.inv(n.create(y)):W.inv(y)),pow:(E,y)=>Uo(W,E,y),invertBatch:E=>Gr(W,E),add:M,sub:F,mul:L,sqr:R,addN:M,subN:F,mulN:L,sqrN:R,fromBytes:E=>{if(E.length!==W.BYTES)throw new Error("fromBytes invalid length="+E.length);return{c0:I.fromBytes(E.subarray(0,I.BYTES)),c1:I.fromBytes(E.subarray(I.BYTES))}},toBytes:({c0:E,c1:y})=>Oe(I.toBytes(E),I.toBytes(y)),cmov:({c0:E,c1:y},{c0:m,c1:g},b)=>({c0:I.cmov(E,m,b),c1:I.cmov(y,g,b)}),fromBigTwelve:E=>({c0:I.fromBigSix(E.slice(0,6)),c1:I.fromBigSix(E.slice(6,12))}),frobeniusMap(E,y){const{c0:m,c1:g,c2:b}=I.frobeniusMap(E.c1,y),x=S[y%12];return{c0:I.frobeniusMap(E.c0,y),c1:I.create({c0:l.mul(m,x),c1:l.mul(g,x),c2:l.mul(b,x)})}},mulByFp2:({c0:E,c1:y},m)=>({c0:I.mulByFp2(E,m),c1:I.mulByFp2(y,m)}),conjugate:({c0:E,c1:y})=>({c0:E,c1:I.neg(y)}),mul014:({c0:E,c1:y},m,g,b)=>{let x=I.mul01(E,m,g),B=I.mul1(y,b);return{c0:I.add(I.mulByNonresidue(B),x),c1:I.sub(I.sub(I.mul01(I.add(y,E),m,l.add(g,b)),x),B)}},mul034:({c0:E,c1:y},m,g,b)=>{const x=I.create({c0:l.mul(E.c0,m),c1:l.mul(E.c1,m),c2:l.mul(E.c2,m)}),B=I.mul01(y,g,b),D=I.mul01(I.add(E,y),l.add(m,g),b);return{c0:I.add(I.mulByNonresidue(B),x),c1:I.sub(D,I.add(x,B))}},_cyclotomicSquare:t.Fp12cyclotomicSquare,_cyclotomicExp:t.Fp12cyclotomicExp,finalExponentiate:t.Fp12finalExponentiate};return{Fp:n,Fp2:l,Fp6:I,Fp4Square:Z,Fp12:W}}const ht=BigInt(0),Lo=BigInt(1),Fe=BigInt(2),Vo=BigInt(3),xs=BigInt(4),wr=BigInt("0xd201000000010000"),a3=ys(wr),{Fp:ie,Fp2:se,Fp6:Jc,Fp4Square:Qc,Fp12:de}=o3({ORDER:BigInt("0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab"),FP2_NONRESIDUE:[Lo,Lo],Fp2mulByB:({c0:t,c1:e})=>{const n=ie.mul(t,xs),r=ie.mul(e,xs);return{c0:ie.sub(n,r),c1:ie.add(n,r)}},Fp12cyclotomicSquare:({c0:t,c1:e})=>{const{c0:n,c1:r,c2:i}=t,{c0:s,c1:o,c2:a}=e,{first:c,second:u}=Qc(n,o),{first:f,second:h}=Qc(s,i),{first:d,second:l}=Qc(r,a),p=se.mulByNonresidue(l);return{c0:Jc.create({c0:se.add(se.mul(se.sub(c,n),Fe),c),c1:se.add(se.mul(se.sub(f,r),Fe),f),c2:se.add(se.mul(se.sub(d,i),Fe),d)}),c1:Jc.create({c0:se.add(se.mul(se.add(p,s),Fe),p),c1:se.add(se.mul(se.add(u,o),Fe),u),c2:se.add(se.mul(se.add(h,a),Fe),h)})}},Fp12cyclotomicExp(t,e){let n=de.ONE;for(let r=a3-1;r>=0;r--)n=de._cyclotomicSquare(n),Rm(e,r)&&(n=de.mul(n,t));return n},Fp12finalExponentiate:t=>{const e=wr,n=de.div(de.frobeniusMap(t,6),t),r=de.mul(de.frobeniusMap(n,2),n),i=de.conjugate(de._cyclotomicExp(r,e)),s=de.mul(de.conjugate(de._cyclotomicSquare(r)),i),o=de.conjugate(de._cyclotomicExp(s,e)),a=de.conjugate(de._cyclotomicExp(o,e)),c=de.mul(de.conjugate(de._cyclotomicExp(a,e)),de._cyclotomicSquare(i)),u=de.conjugate(de._cyclotomicExp(c,e)),f=de.frobeniusMap(de.mul(i,a),2),h=de.frobeniusMap(de.mul(o,r),3),d=de.frobeniusMap(de.mul(c,de.conjugate(r)),1),l=de.mul(de.mul(u,de.conjugate(s)),r);return de.mul(de.mul(de.mul(f,h),d),l)}}),xd=hr(BigInt("0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001")),c3=gd(se,[[["0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6","0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6"],["0x0","0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a"],["0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e","0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d"],["0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1","0x0"]],[["0x0","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63"],["0xc","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f"],["0x1","0x0"]],[["0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706","0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706"],["0x0","0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be"],["0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c","0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f"],["0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10","0x0"]],[["0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb"],["0x0","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3"],["0x12","0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99"],["0x1","0x0"]]].map(t=>t.map(e=>se.fromBigTuple(e.map(BigInt))))),u3=gd(ie,[["0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7","0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb","0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0","0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861","0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9","0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983","0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84","0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e","0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317","0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e","0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b","0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229"],["0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c","0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff","0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19","0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8","0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e","0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5","0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a","0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e","0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641","0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a","0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"],["0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33","0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696","0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6","0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb","0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb","0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0","0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2","0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29","0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587","0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30","0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132","0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e","0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8","0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133","0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b","0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604"],["0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1","0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d","0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2","0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416","0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d","0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac","0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c","0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9","0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a","0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55","0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8","0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092","0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc","0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7","0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f","0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"]].map(t=>t.map(e=>BigInt(e)))),f3=dd(se,{A:se.create({c0:ie.create(ht),c1:ie.create(BigInt(240))}),B:se.create({c0:ie.create(BigInt(1012)),c1:ie.create(BigInt(1012))}),Z:se.create({c0:ie.create(BigInt(-2)),c1:ie.create(BigInt(-1))})}),l3=dd(ie,{A:ie.create(BigInt("0x144698a3b8e9433d693a02c96d4982b0ea985383ee66a8d8e8981aefd881ac98936f8da0e0f97f5cf428082d584c1d")),B:ie.create(BigInt("0x12e2908d11688030018b12e8753eee3b2016c1f0f24f4070a0b9c14fcef35ef55a23215a316ceaa5d1cc48e98e172be0")),Z:ie.create(BigInt(11))}),{G2psi:Sd,G2psi2:h3}=s3(ie,se,se.div(se.ONE,se.NONRESIDUE)),_c=Object.freeze({DST:"BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_",encodeDST:"BLS_SIG_BLS12381G2_XMD:SHA-256_SSWU_RO_NUL_",p:ie.ORDER,m:2,k:128,expand:"xmd",hash:fr}),ko=Ss(ie.toBytes(ht),{infinity:!0,compressed:!0});function Fo(t){t=t.slice();const e=t[0]&224,n=!!(e>>7&1),r=!!(e>>6&1),i=!!(e>>5&1);return t[0]&=31,{compressed:n,infinity:r,sort:i,value:t}}function Ss(t,e){if(t[0]&224)throw new Error("setMask: non-empty mask");return e.compressed&&(t[0]|=128),e.infinity&&(t[0]|=64),e.sort&&(t[0]|=32),t}function Id(t){t.assertValidity();const e=t.equals(_t.G1.ProjectivePoint.ZERO),{x:n,y:r}=t.toAffine();if(e)return ko.slice();const i=ie.ORDER,s=!!(r*Fe/i);return Ss(Pe(n,ie.BYTES),{compressed:!0,sort:s})}function Ad(t){t.assertValidity();const e=ie.BYTES;if(t.equals(_t.G2.ProjectivePoint.ZERO))return Oe(ko,Pe(ht,e));const{x:n,y:r}=t.toAffine(),{re:i,im:s}=se.reim(n),{re:o,im:a}=se.reim(r),u=!!((a>ht?a*Fe:o*Fe)/ie.ORDER&Lo),f=i;return Oe(Ss(Pe(s,e),{sort:u,compressed:!0}),Pe(f,e))}const _t=r3({fields:{Fp:ie,Fp2:se,Fp6:Jc,Fp12:de,Fr:xd},G1:{Fp:ie,h:BigInt("0x396c8c005555e1568c00aaab0000aaab"),Gx:BigInt("0x17f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb"),Gy:BigInt("0x08b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1"),a:ie.ZERO,b:xs,htfDefaults:{..._c,m:1,DST:"BLS_SIG_BLS12381G1_XMD:SHA-256_SSWU_RO_NUL_"},wrapPrivateKey:!0,allowInfinityPoint:!0,isTorsionFree:(t,e)=>{const n=BigInt("0x5f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffefffe"),r=new t(ie.mul(e.px,n),e.py,e.pz);return e.multiplyUnsafe(wr).negate().multiplyUnsafe(wr).equals(r)},clearCofactor:(t,e)=>e.multiplyUnsafe(wr).add(e),mapToCurve:t=>{const{x:e,y:n}=l3(ie.create(t[0]));return u3(e,n)},fromBytes:t=>{const{compressed:e,infinity:n,sort:r,value:i}=Fo(t);if(i.length===48&&e){const s=ie.ORDER,o=ut(i),a=ie.create(o&ie.MASK);if(n){if(a!==ht)throw new Error("G1: non-empty compressed point at infinity");return{x:ht,y:ht}}const c=ie.add(ie.pow(a,Vo),ie.create(_t.params.G1b));let u=ie.sqrt(c);if(!u)throw new Error("invalid compressed G1 point");return u*Fe/s!==BigInt(r)&&(u=ie.neg(u)),{x:ie.create(a),y:ie.create(u)}}else if(i.length===96&&!e){const s=ut(i.subarray(0,ie.BYTES)),o=ut(i.subarray(ie.BYTES));if(n){if(s!==ht||o!==ht)throw new Error("G1: non-empty point at infinity");return _t.G1.ProjectivePoint.ZERO.toAffine()}return{x:ie.create(s),y:ie.create(o)}}else throw new Error("invalid point G1, expected 48/96 bytes")},toBytes:(t,e,n)=>{const r=e.equals(t.ZERO),{x:i,y:s}=e.toAffine();if(n){if(r)return ko.slice();const o=ie.ORDER,a=!!(s*Fe/o);return Ss(Pe(i,ie.BYTES),{compressed:!0,sort:a})}else return r?Oe(new Uint8Array([64]),new Uint8Array(2*ie.BYTES-1)):Oe(Pe(i,ie.BYTES),Pe(s,ie.BYTES))},ShortSignature:{fromHex(t){const{infinity:e,sort:n,value:r}=Fo(rt("signatureHex",t,48)),i=ie.ORDER,s=ut(r);if(e)return _t.G1.ProjectivePoint.ZERO;const o=ie.create(s&ie.MASK),a=ie.add(ie.pow(o,Vo),ie.create(_t.params.G1b));let c=ie.sqrt(a);if(!c)throw new Error("invalid compressed G1 point");const u=BigInt(n);c*Fe/i!==u&&(c=ie.neg(c));const f=_t.G1.ProjectivePoint.fromAffine({x:o,y:c});return f.assertValidity(),f},toRawBytes(t){return Id(t)},toHex(t){return jr(Id(t))}}},G2:{Fp:se,h:BigInt("0x5d543a95414e7f1091d50792876a202cd91de4547085abaa68a205b2e5a7ddfa628f1cb4d9e82ef21537e293a6691ae1616ec6e786f0c70cf1c38e31c7238e5"),Gx:se.fromBigTuple([BigInt("0x024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8"),BigInt("0x13e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e")]),Gy:se.fromBigTuple([BigInt("0x0ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801"),BigInt("0x0606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be")]),a:se.ZERO,b:se.fromBigTuple([xs,xs]),hEff:BigInt("0xbc69f08f2ee75b3584c6a0ea91b352888e2a8e9145ad7689986ff031508ffe1329c2f178731db956d82bf015d1212b02ec0ec69d7477c1ae954cbc06689f6a359894c0adebbf6b4e8020005aaa95551"),htfDefaults:{..._c},wrapPrivateKey:!0,allowInfinityPoint:!0,mapToCurve:t=>{const{x:e,y:n}=f3(se.fromBigTuple(t));return c3(e,n)},isTorsionFree:(t,e)=>e.multiplyUnsafe(wr).negate().equals(Sd(t,e)),clearCofactor:(t,e)=>{const n=wr;let r=e.multiplyUnsafe(n).negate(),i=Sd(t,e),s=e.double();return s=h3(t,s),s=s.subtract(i),i=r.add(i),i=i.multiplyUnsafe(n).negate(),s=s.add(i),s=s.subtract(r),s.subtract(e)},fromBytes:t=>{const{compressed:e,infinity:n,sort:r,value:i}=Fo(t);if(!e&&!n&&r||!e&&n&&r||r&&n&&e)throw new Error("invalid encoding flag: "+(t[0]&224));const s=ie.BYTES,o=(a,c,u)=>ut(a.slice(c,u));if(i.length===96&&e){const a=_t.params.G2b,c=ie.ORDER;if(n){if(i.reduce((w,v)=>w!==0?v+1:v,0)>0)throw new Error("invalid compressed G2 point");return{x:se.ZERO,y:se.ZERO}}const u=o(i,0,s),f=o(i,s,2*s),h=se.create({c0:ie.create(f),c1:ie.create(u)}),d=se.add(se.pow(h,Vo),a);let l=se.sqrt(d);const p=l.c1===ht?l.c0*Fe/c:l.c1*Fe/c?Lo:ht;return l=r&&p>0?l:se.neg(l),{x:h,y:l}}else if(i.length===192&&!e){if(n){if(i.reduce((h,d)=>h!==0?d+1:d,0)>0)throw new Error("invalid uncompressed G2 point");return{x:se.ZERO,y:se.ZERO}}const a=o(i,0,s),c=o(i,s,2*s),u=o(i,2*s,3*s),f=o(i,3*s,4*s);return{x:se.fromBigTuple([c,a]),y:se.fromBigTuple([f,u])}}else throw new Error("invalid point G2, expected 96/192 bytes")},toBytes:(t,e,n)=>{const{BYTES:r,ORDER:i}=ie,s=e.equals(t.ZERO),{x:o,y:a}=e.toAffine();if(n){if(s)return Oe(ko,Pe(ht,r));const c=!!(a.c1===ht?a.c0*Fe/i:a.c1*Fe/i);return Oe(Ss(Pe(o.c1,r),{compressed:!0,sort:c}),Pe(o.c0,r))}else{if(s)return Oe(new Uint8Array([64]),new Uint8Array(4*r-1));const{re:c,im:u}=se.reim(o),{re:f,im:h}=se.reim(a);return Oe(Pe(u,r),Pe(c,r),Pe(h,r),Pe(f,r))}},Signature:{fromHex(t){const{infinity:e,sort:n,value:r}=Fo(rt("signatureHex",t)),i=ie.ORDER,s=r.length/2;if(s!==48&&s!==96)throw new Error("invalid compressed signature length, must be 96 or 192");const o=ut(r.slice(0,s)),a=ut(r.slice(s));if(e)return _t.G2.ProjectivePoint.ZERO;const c=ie.create(o&ie.MASK),u=ie.create(a),f=se.create({c0:u,c1:c}),h=se.add(se.pow(f,Vo),_t.params.G2b);let d=se.sqrt(h);if(!d)throw new Error("Failed to find a square root");const{re:l,im:p}=se.reim(d),w=BigInt(n),v=p>ht&&p*Fe/i!==w,O=p===ht&&l*Fe/i!==w;(v||O)&&(d=se.neg(d));const P=_t.G2.ProjectivePoint.fromAffine({x:f,y:d});return P.assertValidity(),P},toRawBytes(t){return Ad(t)},toHex(t){return jr(Ad(t))}}},params:{ateLoopSize:wr,r:xd.ORDER,xNegative:!0,twistType:"multiplicative"},htfDefaults:_c,hash:fr,randomBytes:Dn});BigInt(0),BigInt(1),BigInt(2),BigInt(8),BigInt(0),BigInt(1),BigInt(2),BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),BigInt(0),BigInt(1),BigInt(2),BigInt(3),BigInt(5),BigInt(8);const Ti=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;function zo(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function $c(t){if(!Number.isSafeInteger(t)||t<0)throw new Error("positive integer expected, got "+t)}function Zr(t,...e){if(!zo(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error("Uint8Array expected of length "+e+", got length="+t.length)}function Bd(t){if(typeof t!="function"||typeof t.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");$c(t.outputLen),$c(t.blockLen)}function Mo(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function d3(t,e){Zr(t);const n=e.outputLen;if(t.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function Ko(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function eu(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}function hn(t,e){return t<<32-e|t>>>e}const Dd=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",p3=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function Ri(t){if(Zr(t),Dd)return t.toHex();let e="";for(let n=0;n<t.length;n++)e+=p3[t[n]];return e}const Cn={_0:48,_9:57,A:65,F:70,a:97,f:102};function Od(t){if(t>=Cn._0&&t<=Cn._9)return t-Cn._0;if(t>=Cn.A&&t<=Cn.F)return t-(Cn.A-10);if(t>=Cn.a&&t<=Cn.f)return t-(Cn.a-10)}function jo(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);if(Dd)return Uint8Array.fromHex(t);const e=t.length,n=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);const r=new Uint8Array(n);for(let i=0,s=0;i<n;i++,s+=2){const o=Od(t.charCodeAt(s)),a=Od(t.charCodeAt(s+1));if(o===void 0||a===void 0){const c=t[s]+t[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}r[i]=o*16+a}return r}function tu(t){if(typeof t!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(t))}function nu(t){return typeof t=="string"&&(t=tu(t)),Zr(t),t}function br(...t){let e=0;for(let r=0;r<t.length;r++){const i=t[r];Zr(i),e+=i.length}const n=new Uint8Array(e);for(let r=0,i=0;r<t.length;r++){const s=t[r];n.set(s,i),i+=s.length}return n}class Td{}function g3(t){const e=r=>t().update(nu(r)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function Rd(t=32){if(Ti&&typeof Ti.getRandomValues=="function")return Ti.getRandomValues(new Uint8Array(t));if(Ti&&typeof Ti.randomBytes=="function")return Uint8Array.from(Ti.randomBytes(t));throw new Error("crypto.getRandomValues must be defined")}const ru=BigInt(0),iu=BigInt(1);function Wo(t,e=""){if(typeof t!="boolean"){const n=e&&`"${e}"`;throw new Error(n+"expected boolean, got type="+typeof t)}return t}function Xr(t,e,n=""){const r=zo(t),i=t?.length,s=e!==void 0;if(!r||s&&i!==e){const o=n&&`"${n}" `,a=s?` of length ${e}`:"",c=r?`length=${i}`:`type=${typeof t}`;throw new Error(o+"expected Uint8Array"+a+", got "+c)}return t}function Ho(t){const e=t.toString(16);return e.length&1?"0"+e:e}function Nd(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);return t===""?ru:BigInt("0x"+t)}function Go(t){return Nd(Ri(t))}function Ud(t){return Zr(t),Nd(Ri(Uint8Array.from(t).reverse()))}function su(t,e){return jo(t.toString(16).padStart(e*2,"0"))}function Pd(t,e){return su(t,e).reverse()}function vt(t,e,n){let r;if(typeof e=="string")try{r=jo(e)}catch(s){throw new Error(t+" must be hex string or Uint8Array, cause: "+s)}else if(zo(e))r=Uint8Array.from(e);else throw new Error(t+" must be hex string or Uint8Array");const i=r.length;if(typeof n=="number"&&i!==n)throw new Error(t+" of length "+n+" expected, got "+i);return r}const ou=t=>typeof t=="bigint"&&ru<=t;function y3(t,e,n){return ou(t)&&ou(e)&&ou(n)&&e<=t&&t<n}function w3(t,e,n,r){if(!y3(e,n,r))throw new Error("expected valid "+t+": "+n+" <= n < "+r+", got "+e)}function qd(t){let e;for(e=0;t>ru;t>>=iu,e+=1);return e}const Is=t=>(iu<<BigInt(t))-iu;function b3(t,e,n){if(typeof t!="number"||t<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof n!="function")throw new Error("hmacFn must be a function");const r=l=>new Uint8Array(l),i=l=>Uint8Array.of(l);let s=r(t),o=r(t),a=0;const c=()=>{s.fill(1),o.fill(0),a=0},u=(...l)=>n(o,s,...l),f=(l=r(0))=>{o=u(i(0),l),s=u(),l.length!==0&&(o=u(i(1),l),s=u())},h=()=>{if(a++>=1e3)throw new Error("drbg: tried 1000 values");let l=0;const p=[];for(;l<e;){s=u();const w=s.slice();p.push(w),l+=s.length}return br(...p)};return(l,p)=>{c(),f(l);let w;for(;!(w=p(h()));)f();return c(),w}}function au(t,e,n={}){if(!t||typeof t!="object")throw new Error("expected valid options object");function r(i,s,o){const a=t[i];if(o&&a===void 0)return;const c=typeof a;if(c!==s||a===null)throw new Error(`param "${i}" is invalid: expected ${s}, got ${c}`)}Object.entries(e).forEach(([i,s])=>r(i,s,!1)),Object.entries(n).forEach(([i,s])=>r(i,s,!0))}function Cd(t){const e=new WeakMap;return(n,...r)=>{const i=e.get(n);if(i!==void 0)return i;const s=t(n,...r);return e.set(n,s),s}}const Et=BigInt(0),dt=BigInt(1),Yr=BigInt(2),Ld=BigInt(3),Vd=BigInt(4),kd=BigInt(5),m3=BigInt(7),Fd=BigInt(8),v3=BigInt(9),zd=BigInt(16);function $t(t,e){const n=t%e;return n>=Et?n:e+n}function zt(t,e,n){let r=t;for(;e-- >Et;)r*=r,r%=n;return r}function Md(t,e){if(t===Et)throw new Error("invert: expected non-zero number");if(e<=Et)throw new Error("invert: expected positive modulus, got "+e);let n=$t(t,e),r=e,i=Et,s=dt;for(;n!==Et;){const a=r/n,c=r%n,u=i-s*a;r=n,n=c,i=s,s=u}if(r!==dt)throw new Error("invert: does not exist");return $t(i,e)}function cu(t,e,n){if(!t.eql(t.sqr(e),n))throw new Error("Cannot find square root")}function Kd(t,e){const n=(t.ORDER+dt)/Vd,r=t.pow(e,n);return cu(t,r,e),r}function E3(t,e){const n=(t.ORDER-kd)/Fd,r=t.mul(e,Yr),i=t.pow(r,n),s=t.mul(e,i),o=t.mul(t.mul(s,Yr),i),a=t.mul(s,t.sub(o,t.ONE));return cu(t,a,e),a}function x3(t){const e=As(t),n=jd(t),r=n(e,e.neg(e.ONE)),i=n(e,r),s=n(e,e.neg(r)),o=(t+m3)/zd;return(a,c)=>{let u=a.pow(c,o),f=a.mul(u,r);const h=a.mul(u,i),d=a.mul(u,s),l=a.eql(a.sqr(f),c),p=a.eql(a.sqr(h),c);u=a.cmov(u,f,l),f=a.cmov(d,h,p);const w=a.eql(a.sqr(f),c),v=a.cmov(u,f,w);return cu(a,v,c),v}}function jd(t){if(t<Ld)throw new Error("sqrt is not defined for small field");let e=t-dt,n=0;for(;e%Yr===Et;)e/=Yr,n++;let r=Yr;const i=As(t);for(;Hd(i,r)===1;)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(n===1)return Kd;let s=i.pow(r,e);const o=(e+dt)/Yr;return function(c,u){if(c.is0(u))return u;if(Hd(c,u)!==1)throw new Error("Cannot find square root");let f=n,h=c.mul(c.ONE,s),d=c.pow(u,e),l=c.pow(u,o);for(;!c.eql(d,c.ONE);){if(c.is0(d))return c.ZERO;let p=1,w=c.sqr(d);for(;!c.eql(w,c.ONE);)if(p++,w=c.sqr(w),p===f)throw new Error("Cannot find square root");const v=dt<<BigInt(f-p-1),O=c.pow(h,v);f=p,h=c.sqr(O),d=c.mul(d,h),l=c.mul(l,O)}return l}}function S3(t){return t%Vd===Ld?Kd:t%Fd===kd?E3:t%zd===v3?x3(t):jd(t)}const I3=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function A3(t){const e={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},n=I3.reduce((r,i)=>(r[i]="function",r),e);return au(t,n),t}function B3(t,e,n){if(n<Et)throw new Error("invalid exponent, negatives unsupported");if(n===Et)return t.ONE;if(n===dt)return e;let r=t.ONE,i=e;for(;n>Et;)n&dt&&(r=t.mul(r,i)),i=t.sqr(i),n>>=dt;return r}function Wd(t,e,n=!1){const r=new Array(e.length).fill(n?t.ZERO:void 0),i=e.reduce((o,a,c)=>t.is0(a)?o:(r[c]=o,t.mul(o,a)),t.ONE),s=t.inv(i);return e.reduceRight((o,a,c)=>t.is0(a)?o:(r[c]=t.mul(o,r[c]),t.mul(o,a)),s),r}function Hd(t,e){const n=(t.ORDER-dt)/Yr,r=t.pow(e,n),i=t.eql(r,t.ONE),s=t.eql(r,t.ZERO),o=t.eql(r,t.neg(t.ONE));if(!i&&!s&&!o)throw new Error("invalid Legendre symbol result");return i?1:s?0:-1}function Gd(t,e){e!==void 0&&$c(e);const n=e!==void 0?e:t.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function As(t,e,n=!1,r={}){if(t<=Et)throw new Error("invalid field: expected ORDER > 0, got "+t);let i,s,o=!1,a;if(typeof e=="object"&&e!=null){if(r.sqrt||n)throw new Error("cannot specify opts in two arguments");const d=e;d.BITS&&(i=d.BITS),d.sqrt&&(s=d.sqrt),typeof d.isLE=="boolean"&&(n=d.isLE),typeof d.modFromBytes=="boolean"&&(o=d.modFromBytes),a=d.allowedLengths}else typeof e=="number"&&(i=e),r.sqrt&&(s=r.sqrt);const{nBitLength:c,nByteLength:u}=Gd(t,i);if(u>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let f;const h=Object.freeze({ORDER:t,isLE:n,BITS:c,BYTES:u,MASK:Is(c),ZERO:Et,ONE:dt,allowedLengths:a,create:d=>$t(d,t),isValid:d=>{if(typeof d!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof d);return Et<=d&&d<t},is0:d=>d===Et,isValidNot0:d=>!h.is0(d)&&h.isValid(d),isOdd:d=>(d&dt)===dt,neg:d=>$t(-d,t),eql:(d,l)=>d===l,sqr:d=>$t(d*d,t),add:(d,l)=>$t(d+l,t),sub:(d,l)=>$t(d-l,t),mul:(d,l)=>$t(d*l,t),pow:(d,l)=>B3(h,d,l),div:(d,l)=>$t(d*Md(l,t),t),sqrN:d=>d*d,addN:(d,l)=>d+l,subN:(d,l)=>d-l,mulN:(d,l)=>d*l,inv:d=>Md(d,t),sqrt:s||(d=>(f||(f=S3(t)),f(h,d))),toBytes:d=>n?Pd(d,u):su(d,u),fromBytes:(d,l=!0)=>{if(a){if(!a.includes(d.length)||d.length>u)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+d.length);const w=new Uint8Array(u);w.set(d,n?0:w.length-d.length),d=w}if(d.length!==u)throw new Error("Field.fromBytes: expected "+u+" bytes, got "+d.length);let p=n?Ud(d):Go(d);if(o&&(p=$t(p,t)),!l&&!h.isValid(p))throw new Error("invalid field element: outside of range 0..ORDER");return p},invertBatch:d=>Wd(h,d),cmov:(d,l,p)=>p?l:d});return Object.freeze(h)}function Zd(t){if(typeof t!="bigint")throw new Error("field order must be bigint");const e=t.toString(2).length;return Math.ceil(e/8)}function Xd(t){const e=Zd(t);return e+Math.ceil(e/2)}function D3(t,e,n=!1){const r=t.length,i=Zd(e),s=Xd(e);if(r<16||r<s||r>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+r);const o=n?Ud(t):Go(t),a=$t(o,e-dt)+dt;return n?Pd(a,i):su(a,i)}function O3(t,e,n,r){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,n,r);const i=BigInt(32),s=BigInt(4294967295),o=Number(n>>i&s),a=Number(n&s),c=r?4:0,u=r?0:4;t.setUint32(e+c,o,r),t.setUint32(e+u,a,r)}function T3(t,e,n){return t&e^~t&n}function R3(t,e,n){return t&e^t&n^e&n}class N3 extends Td{constructor(e,n,r,i){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=e,this.outputLen=n,this.padOffset=r,this.isLE=i,this.buffer=new Uint8Array(e),this.view=eu(this.buffer)}update(e){Mo(this),e=nu(e),Zr(e);const{view:n,buffer:r,blockLen:i}=this,s=e.length;for(let o=0;o<s;){const a=Math.min(i-this.pos,s-o);if(a===i){const c=eu(e);for(;i<=s-o;o+=i)this.process(c,o);continue}r.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){Mo(this),d3(e,this),this.finished=!0;const{buffer:n,view:r,blockLen:i,isLE:s}=this;let{pos:o}=this;n[o++]=128,Ko(this.buffer.subarray(o)),this.padOffset>i-o&&(this.process(r,0),o=0);for(let h=o;h<i;h++)n[h]=0;O3(r,i-8,BigInt(this.length*8),s),this.process(r,0);const a=eu(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let h=0;h<u;h++)a.setUint32(4*h,f[h],s)}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:n,buffer:r,length:i,finished:s,destroyed:o,pos:a}=this;return e.destroyed=o,e.finished=s,e.length=i,e.pos=a,i%n&&e.buffer.set(r),e}clone(){return this._cloneInto()}}const mr=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),U3=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),vr=new Uint32Array(64);class P3 extends N3{constructor(e=32){super(64,e,8,!1),this.A=mr[0]|0,this.B=mr[1]|0,this.C=mr[2]|0,this.D=mr[3]|0,this.E=mr[4]|0,this.F=mr[5]|0,this.G=mr[6]|0,this.H=mr[7]|0}get(){const{A:e,B:n,C:r,D:i,E:s,F:o,G:a,H:c}=this;return[e,n,r,i,s,o,a,c]}set(e,n,r,i,s,o,a,c){this.A=e|0,this.B=n|0,this.C=r|0,this.D=i|0,this.E=s|0,this.F=o|0,this.G=a|0,this.H=c|0}process(e,n){for(let h=0;h<16;h++,n+=4)vr[h]=e.getUint32(n,!1);for(let h=16;h<64;h++){const d=vr[h-15],l=vr[h-2],p=hn(d,7)^hn(d,18)^d>>>3,w=hn(l,17)^hn(l,19)^l>>>10;vr[h]=w+vr[h-7]+p+vr[h-16]|0}let{A:r,B:i,C:s,D:o,E:a,F:c,G:u,H:f}=this;for(let h=0;h<64;h++){const d=hn(a,6)^hn(a,11)^hn(a,25),l=f+d+T3(a,c,u)+U3[h]+vr[h]|0,w=(hn(r,2)^hn(r,13)^hn(r,22))+R3(r,i,s)|0;f=u,u=c,c=a,a=o+l|0,o=s,s=i,i=r,r=l+w|0}r=r+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,f=f+this.H|0,this.set(r,i,s,o,a,c,u,f)}roundClean(){Ko(vr)}destroy(){this.set(0,0,0,0,0,0,0,0),Ko(this.buffer)}}const Yd=g3(()=>new P3);class Jd extends Td{constructor(e,n){super(),this.finished=!1,this.destroyed=!1,Bd(e);const r=nu(n);if(this.iHash=e.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const i=this.blockLen,s=new Uint8Array(i);s.set(r.length>i?e.create().update(r).digest():r);for(let o=0;o<s.length;o++)s[o]^=54;this.iHash.update(s),this.oHash=e.create();for(let o=0;o<s.length;o++)s[o]^=106;this.oHash.update(s),Ko(s)}update(e){return Mo(this),this.iHash.update(e),this}digestInto(e){Mo(this),Zr(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){const e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));const{oHash:n,iHash:r,finished:i,destroyed:s,blockLen:o,outputLen:a}=this;return e=e,e.finished=i,e.destroyed=s,e.blockLen=o,e.outputLen=a,e.oHash=n._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const Qd=(t,e,n)=>new Jd(t,e).update(n).digest();Qd.create=(t,e)=>new Jd(t,e);const Ni=BigInt(0),Jr=BigInt(1);function Zo(t,e){const n=e.negate();return t?n:e}function uu(t,e){const n=Wd(t.Fp,e.map(r=>r.Z));return e.map((r,i)=>t.fromAffine(r.toAffine(n[i])))}function _d(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+t)}function fu(t,e){_d(t,e);const n=Math.ceil(e/t)+1,r=2**(t-1),i=2**t,s=Is(t),o=BigInt(t);return{windows:n,windowSize:r,mask:s,maxNumber:i,shiftBy:o}}function $d(t,e,n){const{windowSize:r,mask:i,maxNumber:s,shiftBy:o}=n;let a=Number(t&i),c=t>>o;a>r&&(a-=s,c+=Jr);const u=e*r,f=u+Math.abs(a)-1,h=a===0,d=a<0,l=e%2!==0;return{nextN:c,offset:f,isZero:h,isNeg:d,isNegF:l,offsetF:u}}function q3(t,e){if(!Array.isArray(t))throw new Error("array expected");t.forEach((n,r)=>{if(!(n instanceof e))throw new Error("invalid point at index "+r)})}function C3(t,e){if(!Array.isArray(t))throw new Error("array of scalars expected");t.forEach((n,r)=>{if(!e.isValid(n))throw new Error("invalid scalar at index "+r)})}const lu=new WeakMap,e0=new WeakMap;function hu(t){return e0.get(t)||1}function t0(t){if(t!==Ni)throw new Error("invalid wNAF")}class L3{constructor(e,n){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=n}_unsafeLadder(e,n,r=this.ZERO){let i=e;for(;n>Ni;)n&Jr&&(r=r.add(i)),i=i.double(),n>>=Jr;return r}precomputeWindow(e,n){const{windows:r,windowSize:i}=fu(n,this.bits),s=[];let o=e,a=o;for(let c=0;c<r;c++){a=o,s.push(a);for(let u=1;u<i;u++)a=a.add(o),s.push(a);o=a.double()}return s}wNAF(e,n,r){if(!this.Fn.isValid(r))throw new Error("invalid scalar");let i=this.ZERO,s=this.BASE;const o=fu(e,this.bits);for(let a=0;a<o.windows;a++){const{nextN:c,offset:u,isZero:f,isNeg:h,isNegF:d,offsetF:l}=$d(r,a,o);r=c,f?s=s.add(Zo(d,n[l])):i=i.add(Zo(h,n[u]))}return t0(r),{p:i,f:s}}wNAFUnsafe(e,n,r,i=this.ZERO){const s=fu(e,this.bits);for(let o=0;o<s.windows&&r!==Ni;o++){const{nextN:a,offset:c,isZero:u,isNeg:f}=$d(r,o,s);if(r=a,!u){const h=n[c];i=i.add(f?h.negate():h)}}return t0(r),i}getPrecomputes(e,n,r){let i=lu.get(n);return i||(i=this.precomputeWindow(n,e),e!==1&&(typeof r=="function"&&(i=r(i)),lu.set(n,i))),i}cached(e,n,r){const i=hu(e);return this.wNAF(i,this.getPrecomputes(i,e,r),n)}unsafe(e,n,r,i){const s=hu(e);return s===1?this._unsafeLadder(e,n,i):this.wNAFUnsafe(s,this.getPrecomputes(s,e,r),n,i)}createCache(e,n){_d(n,this.bits),e0.set(e,n),lu.delete(e)}hasCache(e){return hu(e)!==1}}function V3(t,e,n,r){let i=e,s=t.ZERO,o=t.ZERO;for(;n>Ni||r>Ni;)n&Jr&&(s=s.add(i)),r&Jr&&(o=o.add(i)),i=i.double(),n>>=Jr,r>>=Jr;return{p1:s,p2:o}}function k3(t,e,n,r){q3(n,t),C3(r,e);const i=n.length,s=r.length;if(i!==s)throw new Error("arrays of points and scalars must have equal length");const o=t.ZERO,a=qd(BigInt(i));let c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);const u=Is(c),f=new Array(Number(u)+1).fill(o),h=Math.floor((e.BITS-1)/c)*c;let d=o;for(let l=h;l>=0;l-=c){f.fill(o);for(let w=0;w<s;w++){const v=r[w],O=Number(v>>BigInt(l)&u);f[O]=f[O].add(n[w])}let p=o;for(let w=f.length-1,v=o;w>0;w--)v=v.add(f[w]),p=p.add(v);if(d=d.add(p),l!==0)for(let w=0;w<c;w++)d=d.double()}return d}function n0(t,e,n){if(e){if(e.ORDER!==t)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return A3(e),e}else return As(t,{isLE:n})}function F3(t,e,n={},r){if(r===void 0&&(r=t==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${t} CURVE object`);for(const c of["p","n","h"]){const u=e[c];if(!(typeof u=="bigint"&&u>Ni))throw new Error(`CURVE.${c} must be positive bigint`)}const i=n0(e.p,n.Fp,r),s=n0(e.n,n.Fn,r),a=["Gx","Gy","a",t==="weierstrass"?"b":"d"];for(const c of a)if(!i.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:i,Fn:s}}const r0=(t,e)=>(t+(t>=0?e:-e)/i0)/e;function z3(t,e,n){const[[r,i],[s,o]]=e,a=r0(o*t,n),c=r0(-i*t,n);let u=t-a*r-c*s,f=-a*i-c*o;const h=u<Vn,d=f<Vn;h&&(u=-u),d&&(f=-f);const l=Is(Math.ceil(qd(n)/2))+Ui;if(u<Vn||u>=l||f<Vn||f>=l)throw new Error("splitScalar (endomorphism): failed, k="+t);return{k1neg:h,k1:u,k2neg:d,k2:f}}function du(t){if(!["compact","recovered","der"].includes(t))throw new Error('Signature format must be "compact", "recovered", or "der"');return t}function pu(t,e){const n={};for(let r of Object.keys(e))n[r]=t[r]===void 0?e[r]:t[r];return Wo(n.lowS,"lowS"),Wo(n.prehash,"prehash"),n.format!==void 0&&du(n.format),n}class M3 extends Error{constructor(e=""){super(e)}}const Ln={Err:M3,_tlv:{encode:(t,e)=>{const{Err:n}=Ln;if(t<0||t>256)throw new n("tlv.encode: wrong tag");if(e.length&1)throw new n("tlv.encode: unpadded data");const r=e.length/2,i=Ho(r);if(i.length/2&128)throw new n("tlv.encode: long form length too big");const s=r>127?Ho(i.length/2|128):"";return Ho(t)+s+i+e},decode(t,e){const{Err:n}=Ln;let r=0;if(t<0||t>256)throw new n("tlv.encode: wrong tag");if(e.length<2||e[r++]!==t)throw new n("tlv.decode: wrong tlv");const i=e[r++],s=!!(i&128);let o=0;if(!s)o=i;else{const c=i&127;if(!c)throw new n("tlv.decode(long): indefinite length not supported");if(c>4)throw new n("tlv.decode(long): byte length is too big");const u=e.subarray(r,r+c);if(u.length!==c)throw new n("tlv.decode: length bytes not complete");if(u[0]===0)throw new n("tlv.decode(long): zero leftmost byte");for(const f of u)o=o<<8|f;if(r+=c,o<128)throw new n("tlv.decode(long): not minimal encoding")}const a=e.subarray(r,r+o);if(a.length!==o)throw new n("tlv.decode: wrong value length");return{v:a,l:e.subarray(r+o)}}},_int:{encode(t){const{Err:e}=Ln;if(t<Vn)throw new e("integer: negative integers are not allowed");let n=Ho(t);if(Number.parseInt(n[0],16)&8&&(n="00"+n),n.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return n},decode(t){const{Err:e}=Ln;if(t[0]&128)throw new e("invalid signature integer: negative");if(t[0]===0&&!(t[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return Go(t)}},toSig(t){const{Err:e,_int:n,_tlv:r}=Ln,i=vt("signature",t),{v:s,l:o}=r.decode(48,i);if(o.length)throw new e("invalid signature: left bytes after parsing");const{v:a,l:c}=r.decode(2,s),{v:u,l:f}=r.decode(2,c);if(f.length)throw new e("invalid signature: left bytes after parsing");return{r:n.decode(a),s:n.decode(u)}},hexFromSig(t){const{_tlv:e,_int:n}=Ln,r=e.encode(2,n.encode(t.r)),i=e.encode(2,n.encode(t.s)),s=r+i;return e.encode(48,s)}},Vn=BigInt(0),Ui=BigInt(1),i0=BigInt(2),Xo=BigInt(3),K3=BigInt(4);function Pi(t,e){const{BYTES:n}=t;let r;if(typeof e=="bigint")r=e;else{let i=vt("private key",e);try{r=t.fromBytes(i)}catch{throw new Error(`invalid private key: expected ui8a of size ${n}, got ${typeof e}`)}}if(!t.isValidNot0(r))throw new Error("invalid private key: out of range [1..N-1]");return r}function j3(t,e={}){const n=F3("weierstrass",t,e),{Fp:r,Fn:i}=n;let s=n.CURVE;const{h:o,n:a}=s;au(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});const{endo:c}=e;if(c&&(!r.is0(s.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');const u=o0(r,i);function f(){if(!r.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function h(E,y,m){const{x:g,y:b}=y.toAffine(),x=r.toBytes(g);if(Wo(m,"isCompressed"),m){f();const B=!r.isOdd(b);return br(s0(B),x)}else return br(Uint8Array.of(4),x,r.toBytes(b))}function d(E){Xr(E,void 0,"Point");const{publicKey:y,publicKeyUncompressed:m}=u,g=E.length,b=E[0],x=E.subarray(1);if(g===y&&(b===2||b===3)){const B=r.fromBytes(x);if(!r.isValid(B))throw new Error("bad point: is not on curve, wrong x");const D=w(B);let T;try{T=r.sqrt(D)}catch(C){const j=C instanceof Error?": "+C.message:"";throw new Error("bad point: is not on curve, sqrt error"+j)}f();const U=r.isOdd(T);return(b&1)===1!==U&&(T=r.neg(T)),{x:B,y:T}}else if(g===m&&b===4){const B=r.BYTES,D=r.fromBytes(x.subarray(0,B)),T=r.fromBytes(x.subarray(B,B*2));if(!v(D,T))throw new Error("bad point: is not on curve");return{x:D,y:T}}else throw new Error(`bad point: got length ${g}, expected compressed=${y} or uncompressed=${m}`)}const l=e.toBytes||h,p=e.fromBytes||d;function w(E){const y=r.sqr(E),m=r.mul(y,E);return r.add(r.add(m,r.mul(E,s.a)),s.b)}function v(E,y){const m=r.sqr(y),g=w(E);return r.eql(m,g)}if(!v(s.Gx,s.Gy))throw new Error("bad curve params: generator point");const O=r.mul(r.pow(s.a,Xo),K3),P=r.mul(r.sqr(s.b),BigInt(27));if(r.is0(r.add(O,P)))throw new Error("bad curve params: a or b");function A(E,y,m=!1){if(!r.isValid(y)||m&&r.is0(y))throw new Error(`bad point coordinate ${E}`);return y}function I(E){if(!(E instanceof R))throw new Error("ProjectivePoint expected")}function S(E){if(!c||!c.basises)throw new Error("no endo");return z3(E,c.basises,i.ORDER)}const M=Cd((E,y)=>{const{X:m,Y:g,Z:b}=E;if(r.eql(b,r.ONE))return{x:m,y:g};const x=E.is0();y==null&&(y=x?r.ONE:r.inv(b));const B=r.mul(m,y),D=r.mul(g,y),T=r.mul(b,y);if(x)return{x:r.ZERO,y:r.ZERO};if(!r.eql(T,r.ONE))throw new Error("invZ was invalid");return{x:B,y:D}}),F=Cd(E=>{if(E.is0()){if(e.allowInfinityPoint&&!r.is0(E.Y))return;throw new Error("bad point: ZERO")}const{x:y,y:m}=E.toAffine();if(!r.isValid(y)||!r.isValid(m))throw new Error("bad point: x or y not field elements");if(!v(y,m))throw new Error("bad point: equation left != right");if(!E.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function L(E,y,m,g,b){return m=new R(r.mul(m.X,E),m.Y,m.Z),y=Zo(g,y),m=Zo(b,m),y.add(m)}class R{constructor(y,m,g){this.X=A("x",y),this.Y=A("y",m,!0),this.Z=A("z",g),Object.freeze(this)}static CURVE(){return s}static fromAffine(y){const{x:m,y:g}=y||{};if(!y||!r.isValid(m)||!r.isValid(g))throw new Error("invalid affine point");if(y instanceof R)throw new Error("projective point not allowed");return r.is0(m)&&r.is0(g)?R.ZERO:new R(m,g,r.ONE)}static fromBytes(y){const m=R.fromAffine(p(Xr(y,void 0,"point")));return m.assertValidity(),m}static fromHex(y){return R.fromBytes(vt("pointHex",y))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,m=!0){return W.createCache(this,y),m||this.multiply(Xo),this}assertValidity(){F(this)}hasEvenY(){const{y}=this.toAffine();if(!r.isOdd)throw new Error("Field doesn't support isOdd");return!r.isOdd(y)}equals(y){I(y);const{X:m,Y:g,Z:b}=this,{X:x,Y:B,Z:D}=y,T=r.eql(r.mul(m,D),r.mul(x,b)),U=r.eql(r.mul(g,D),r.mul(B,b));return T&&U}negate(){return new R(this.X,r.neg(this.Y),this.Z)}double(){const{a:y,b:m}=s,g=r.mul(m,Xo),{X:b,Y:x,Z:B}=this;let D=r.ZERO,T=r.ZERO,U=r.ZERO,k=r.mul(b,b),C=r.mul(x,x),j=r.mul(B,B),q=r.mul(b,x);return q=r.add(q,q),U=r.mul(b,B),U=r.add(U,U),D=r.mul(y,U),T=r.mul(g,j),T=r.add(D,T),D=r.sub(C,T),T=r.add(C,T),T=r.mul(D,T),D=r.mul(q,D),U=r.mul(g,U),j=r.mul(y,j),q=r.sub(k,j),q=r.mul(y,q),q=r.add(q,U),U=r.add(k,k),k=r.add(U,k),k=r.add(k,j),k=r.mul(k,q),T=r.add(T,k),j=r.mul(x,B),j=r.add(j,j),k=r.mul(j,q),D=r.sub(D,k),U=r.mul(j,C),U=r.add(U,U),U=r.add(U,U),new R(D,T,U)}add(y){I(y);const{X:m,Y:g,Z:b}=this,{X:x,Y:B,Z:D}=y;let T=r.ZERO,U=r.ZERO,k=r.ZERO;const C=s.a,j=r.mul(s.b,Xo);let q=r.mul(m,x),H=r.mul(g,B),G=r.mul(b,D),z=r.add(m,g),N=r.add(x,B);z=r.mul(z,N),N=r.add(q,H),z=r.sub(z,N),N=r.add(m,b);let V=r.add(x,D);return N=r.mul(N,V),V=r.add(q,G),N=r.sub(N,V),V=r.add(g,b),T=r.add(B,D),V=r.mul(V,T),T=r.add(H,G),V=r.sub(V,T),k=r.mul(C,N),T=r.mul(j,G),k=r.add(T,k),T=r.sub(H,k),k=r.add(H,k),U=r.mul(T,k),H=r.add(q,q),H=r.add(H,q),G=r.mul(C,G),N=r.mul(j,N),H=r.add(H,G),G=r.sub(q,G),G=r.mul(C,G),N=r.add(N,G),q=r.mul(H,N),U=r.add(U,q),q=r.mul(V,N),T=r.mul(z,T),T=r.sub(T,q),q=r.mul(z,H),k=r.mul(V,k),k=r.add(k,q),new R(T,U,k)}subtract(y){return this.add(y.negate())}is0(){return this.equals(R.ZERO)}multiply(y){const{endo:m}=e;if(!i.isValidNot0(y))throw new Error("invalid scalar: out of range");let g,b;const x=B=>W.cached(this,B,D=>uu(R,D));if(m){const{k1neg:B,k1:D,k2neg:T,k2:U}=S(y),{p:k,f:C}=x(D),{p:j,f:q}=x(U);b=C.add(q),g=L(m.beta,k,j,B,T)}else{const{p:B,f:D}=x(y);g=B,b=D}return uu(R,[g,b])[0]}multiplyUnsafe(y){const{endo:m}=e,g=this;if(!i.isValid(y))throw new Error("invalid scalar: out of range");if(y===Vn||g.is0())return R.ZERO;if(y===Ui)return g;if(W.hasCache(this))return this.multiply(y);if(m){const{k1neg:b,k1:x,k2neg:B,k2:D}=S(y),{p1:T,p2:U}=V3(R,g,x,D);return L(m.beta,T,U,b,B)}else return W.unsafe(g,y)}multiplyAndAddUnsafe(y,m,g){const b=this.multiplyUnsafe(m).add(y.multiplyUnsafe(g));return b.is0()?void 0:b}toAffine(y){return M(this,y)}isTorsionFree(){const{isTorsionFree:y}=e;return o===Ui?!0:y?y(R,this):W.unsafe(this,a).is0()}clearCofactor(){const{clearCofactor:y}=e;return o===Ui?this:y?y(R,this):this.multiplyUnsafe(o)}isSmallOrder(){return this.multiplyUnsafe(o).is0()}toBytes(y=!0){return Wo(y,"isCompressed"),this.assertValidity(),l(R,this,y)}toHex(y=!0){return Ri(this.toBytes(y))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(y=!0){return this.toBytes(y)}_setWindowSize(y){this.precompute(y)}static normalizeZ(y){return uu(R,y)}static msm(y,m){return k3(R,i,y,m)}static fromPrivateKey(y){return R.BASE.multiply(Pi(i,y))}}R.BASE=new R(s.Gx,s.Gy,r.ONE),R.ZERO=new R(r.ZERO,r.ONE,r.ZERO),R.Fp=r,R.Fn=i;const Z=i.BITS,W=new L3(R,e.endo?Math.ceil(Z/2):Z);return R.BASE.precompute(8),R}function s0(t){return Uint8Array.of(t?2:3)}function o0(t,e){return{secretKey:e.BYTES,publicKey:1+t.BYTES,publicKeyUncompressed:1+2*t.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function W3(t,e={}){const{Fn:n}=t,r=e.randomBytes||Rd,i=Object.assign(o0(t.Fp,n),{seed:Xd(n.ORDER)});function s(l){try{return!!Pi(n,l)}catch{return!1}}function o(l,p){const{publicKey:w,publicKeyUncompressed:v}=i;try{const O=l.length;return p===!0&&O!==w||p===!1&&O!==v?!1:!!t.fromBytes(l)}catch{return!1}}function a(l=r(i.seed)){return D3(Xr(l,i.seed,"seed"),n.ORDER)}function c(l,p=!0){return t.BASE.multiply(Pi(n,l)).toBytes(p)}function u(l){const p=a(l);return{secretKey:p,publicKey:c(p)}}function f(l){if(typeof l=="bigint")return!1;if(l instanceof t)return!0;const{secretKey:p,publicKey:w,publicKeyUncompressed:v}=i;if(n.allowedLengths||p===w)return;const O=vt("key",l).length;return O===w||O===v}function h(l,p,w=!0){if(f(l)===!0)throw new Error("first arg must be private key");if(f(p)===!1)throw new Error("second arg must be public key");const v=Pi(n,l);return t.fromHex(p).multiply(v).toBytes(w)}return Object.freeze({getPublicKey:c,getSharedSecret:h,keygen:u,Point:t,utils:{isValidSecretKey:s,isValidPublicKey:o,randomSecretKey:a,isValidPrivateKey:s,randomPrivateKey:a,normPrivateKeyToScalar:l=>Pi(n,l),precompute(l=8,p=t.BASE){return p.precompute(l,!1)}},lengths:i})}function H3(t,e,n={}){Bd(e),au(n,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const r=n.randomBytes||Rd,i=n.hmac||((m,...g)=>Qd(e,m,br(...g))),{Fp:s,Fn:o}=t,{ORDER:a,BITS:c}=o,{keygen:u,getPublicKey:f,getSharedSecret:h,utils:d,lengths:l}=W3(t,n),p={prehash:!1,lowS:typeof n.lowS=="boolean"?n.lowS:!1,format:void 0,extraEntropy:!1},w="compact";function v(m){const g=a>>Ui;return m>g}function O(m,g){if(!o.isValidNot0(g))throw new Error(`invalid signature ${m}: out of range 1..Point.Fn.ORDER`);return g}function P(m,g){du(g);const b=l.signature,x=g==="compact"?b:g==="recovered"?b+1:void 0;return Xr(m,x,`${g} signature`)}class A{constructor(g,b,x){this.r=O("r",g),this.s=O("s",b),x!=null&&(this.recovery=x),Object.freeze(this)}static fromBytes(g,b=w){P(g,b);let x;if(b==="der"){const{r:U,s:k}=Ln.toSig(Xr(g));return new A(U,k)}b==="recovered"&&(x=g[0],b="compact",g=g.subarray(1));const B=o.BYTES,D=g.subarray(0,B),T=g.subarray(B,B*2);return new A(o.fromBytes(D),o.fromBytes(T),x)}static fromHex(g,b){return this.fromBytes(jo(g),b)}addRecoveryBit(g){return new A(this.r,this.s,g)}recoverPublicKey(g){const b=s.ORDER,{r:x,s:B,recovery:D}=this;if(D==null||![0,1,2,3].includes(D))throw new Error("recovery id invalid");if(a*i0<b&&D>1)throw new Error("recovery id is ambiguous for h>1 curve");const U=D===2||D===3?x+a:x;if(!s.isValid(U))throw new Error("recovery id 2 or 3 invalid");const k=s.toBytes(U),C=t.fromBytes(br(s0((D&1)===0),k)),j=o.inv(U),q=S(vt("msgHash",g)),H=o.create(-q*j),G=o.create(B*j),z=t.BASE.multiplyUnsafe(H).add(C.multiplyUnsafe(G));if(z.is0())throw new Error("point at infinify");return z.assertValidity(),z}hasHighS(){return v(this.s)}toBytes(g=w){if(du(g),g==="der")return jo(Ln.hexFromSig(this));const b=o.toBytes(this.r),x=o.toBytes(this.s);if(g==="recovered"){if(this.recovery==null)throw new Error("recovery bit must be present");return br(Uint8Array.of(this.recovery),b,x)}return br(b,x)}toHex(g){return Ri(this.toBytes(g))}assertValidity(){}static fromCompact(g){return A.fromBytes(vt("sig",g),"compact")}static fromDER(g){return A.fromBytes(vt("sig",g),"der")}normalizeS(){return this.hasHighS()?new A(this.r,o.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return Ri(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return Ri(this.toBytes("compact"))}}const I=n.bits2int||function(g){if(g.length>8192)throw new Error("input is too large");const b=Go(g),x=g.length*8-c;return x>0?b>>BigInt(x):b},S=n.bits2int_modN||function(g){return o.create(I(g))},M=Is(c);function F(m){return w3("num < 2^"+c,m,Vn,M),o.toBytes(m)}function L(m,g){return Xr(m,void 0,"message"),g?Xr(e(m),void 0,"prehashed message"):m}function R(m,g,b){if(["recovered","canonical"].some(H=>H in b))throw new Error("sign() legacy options not supported");const{lowS:x,prehash:B,extraEntropy:D}=pu(b,p);m=L(m,B);const T=S(m),U=Pi(o,g),k=[F(U),F(T)];if(D!=null&&D!==!1){const H=D===!0?r(l.secretKey):D;k.push(vt("extraEntropy",H))}const C=br(...k),j=T;function q(H){const G=I(H);if(!o.isValidNot0(G))return;const z=o.inv(G),N=t.BASE.multiply(G).toAffine(),V=o.create(N.x);if(V===Vn)return;const K=o.create(z*o.create(j+V*U));if(K===Vn)return;let X=(N.x===V?0:2)|Number(N.y&Ui),$=K;return x&&v(K)&&($=o.neg(K),X^=1),new A(V,$,X)}return{seed:C,k2sig:q}}function Z(m,g,b={}){m=vt("message",m);const{seed:x,k2sig:B}=R(m,g,b);return b3(e.outputLen,o.BYTES,i)(x,B)}function W(m){let g;const b=typeof m=="string"||zo(m),x=!b&&m!==null&&typeof m=="object"&&typeof m.r=="bigint"&&typeof m.s=="bigint";if(!b&&!x)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(x)g=new A(m.r,m.s);else if(b){try{g=A.fromBytes(vt("sig",m),"der")}catch(B){if(!(B instanceof Ln.Err))throw B}if(!g)try{g=A.fromBytes(vt("sig",m),"compact")}catch{return!1}}return g||!1}function E(m,g,b,x={}){const{lowS:B,prehash:D,format:T}=pu(x,p);if(b=vt("publicKey",b),g=L(vt("message",g),D),"strict"in x)throw new Error("options.strict was renamed to lowS");const U=T===void 0?W(m):A.fromBytes(vt("sig",m),T);if(U===!1)return!1;try{const k=t.fromBytes(b);if(B&&U.hasHighS())return!1;const{r:C,s:j}=U,q=S(g),H=o.inv(j),G=o.create(q*H),z=o.create(C*H),N=t.BASE.multiplyUnsafe(G).add(k.multiplyUnsafe(z));return N.is0()?!1:o.create(N.x)===C}catch{return!1}}function y(m,g,b={}){const{prehash:x}=pu(b,p);return g=L(g,x),A.fromBytes(m,"recovered").recoverPublicKey(g).toBytes()}return Object.freeze({keygen:u,getPublicKey:f,getSharedSecret:h,utils:d,lengths:l,Point:t,sign:Z,verify:E,recoverPublicKey:y,Signature:A,hash:e})}function G3(t){const e={a:t.a,b:t.b,p:t.Fp.ORDER,n:t.n,h:t.h,Gx:t.Gx,Gy:t.Gy},n=t.Fp;let r=t.allowedPrivateKeyLengths?Array.from(new Set(t.allowedPrivateKeyLengths.map(o=>Math.ceil(o/2)))):void 0;const i=As(e.n,{BITS:t.nBitLength,allowedLengths:r,modFromBytes:t.wrapPrivateKey}),s={Fp:n,Fn:i,allowInfinityPoint:t.allowInfinityPoint,endo:t.endo,isTorsionFree:t.isTorsionFree,clearCofactor:t.clearCofactor,fromBytes:t.fromBytes,toBytes:t.toBytes};return{CURVE:e,curveOpts:s}}function Z3(t){const{CURVE:e,curveOpts:n}=G3(t),r={hmac:t.hmac,randomBytes:t.randomBytes,lowS:t.lowS,bits2int:t.bits2int,bits2int_modN:t.bits2int_modN};return{CURVE:e,curveOpts:n,hash:t.hash,ecdsaOpts:r}}function X3(t,e){const n=e.Point;return Object.assign({},e,{ProjectivePoint:n,CURVE:Object.assign({},t,Gd(n.Fn.ORDER,n.Fn.BITS))})}function Y3(t){const{CURVE:e,curveOpts:n,hash:r,ecdsaOpts:i}=Z3(t),s=j3(e,n),o=H3(s,r,i);return X3(t,o)}function J3(t,e){const n=r=>Y3({...t,hash:r});return{...n(e),create:n}}tu("HashToScalar-");const gu={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),n:BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),h:BigInt(1),a:BigInt(0),b:BigInt(7),Gx:BigInt("0x79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"),Gy:BigInt("0x483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8")},Q3={beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),basises:[[BigInt("0x3086d221a7d46bcde86c90e49284eb15"),-BigInt("0xe4437ed6010e88286f547fa90abfe4c3")],[BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),BigInt("0x3086d221a7d46bcde86c90e49284eb15")]]},a0=BigInt(2);function _3(t){const e=gu.p,n=BigInt(3),r=BigInt(6),i=BigInt(11),s=BigInt(22),o=BigInt(23),a=BigInt(44),c=BigInt(88),u=t*t*t%e,f=u*u*t%e,h=zt(f,n,e)*f%e,d=zt(h,n,e)*f%e,l=zt(d,a0,e)*u%e,p=zt(l,i,e)*l%e,w=zt(p,s,e)*p%e,v=zt(w,a,e)*w%e,O=zt(v,c,e)*v%e,P=zt(O,a,e)*w%e,A=zt(P,n,e)*f%e,I=zt(A,o,e)*p%e,S=zt(I,r,e)*u%e,M=zt(S,a0,e);if(!yu.eql(yu.sqr(M),t))throw new Error("Cannot find square root");return M}const yu=As(gu.p,{sqrt:_3});J3({...gu,Fp:yu,lowS:!0,endo:Q3},Yd);/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */function qi(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function wu(t,...e){if(!qi(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error("Uint8Array expected of length "+e+", got length="+t.length)}function c0(t,e){return Array.isArray(e)?e.length===0?!0:t?e.every(n=>typeof n=="string"):e.every(n=>Number.isSafeInteger(n)):!1}function bu(t){if(typeof t!="function")throw new Error("function expected");return!0}function Er(t,e){if(typeof e!="string")throw new Error(`${t}: string expected`);return!0}function Ci(t){if(!Number.isSafeInteger(t))throw new Error(`invalid integer: ${t}`)}function Yo(t){if(!Array.isArray(t))throw new Error("array expected")}function Jo(t,e){if(!c0(!0,e))throw new Error(`${t}: array of strings expected`)}function mu(t,e){if(!c0(!1,e))throw new Error(`${t}: array of numbers expected`)}function xt(...t){const e=s=>s,n=(s,o)=>a=>s(o(a)),r=t.map(s=>s.encode).reduceRight(n,e),i=t.map(s=>s.decode).reduce(n,e);return{encode:r,decode:i}}function Rt(t){const e=typeof t=="string"?t.split(""):t,n=e.length;Jo("alphabet",e);const r=new Map(e.map((i,s)=>[i,s]));return{encode:i=>(Yo(i),i.map(s=>{if(!Number.isSafeInteger(s)||s<0||s>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${s}". Allowed: ${t}`);return e[s]})),decode:i=>(Yo(i),i.map(s=>{Er("alphabet.decode",s);const o=r.get(s);if(o===void 0)throw new Error(`Unknown letter: "${s}". Allowed: ${t}`);return o}))}}function Nt(t=""){return Er("join",t),{encode:e=>(Jo("join.decode",e),e.join(t)),decode:e=>(Er("join.decode",e),e.split(t))}}function Qo(t,e="="){return Ci(t),Er("padding",e),{encode(n){for(Jo("padding.encode",n);n.length*t%8;)n.push(e);return n},decode(n){Jo("padding.decode",n);let r=n.length;if(r*t%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;r>0&&n[r-1]===e;r--)if((r-1)*t%8===0)throw new Error("padding: invalid, string has too much padding");return n.slice(0,r)}}}function u0(t){return bu(t),{encode:e=>e,decode:e=>t(e)}}function f0(t,e,n){if(e<2)throw new Error(`convertRadix: invalid from=${e}, base cannot be less than 2`);if(n<2)throw new Error(`convertRadix: invalid to=${n}, base cannot be less than 2`);if(Yo(t),!t.length)return[];let r=0;const i=[],s=Array.from(t,a=>{if(Ci(a),a<0||a>=e)throw new Error(`invalid integer: ${a}`);return a}),o=s.length;for(;;){let a=0,c=!0;for(let u=r;u<o;u++){const f=s[u],h=e*a,d=h+f;if(!Number.isSafeInteger(d)||h/e!==a||d-f!==h)throw new Error("convertRadix: carry overflow");const l=d/n;a=d%n;const p=Math.floor(l);if(s[u]=p,!Number.isSafeInteger(p)||p*n+a!==d)throw new Error("convertRadix: carry overflow");if(c)p?c=!1:r=u;else continue}if(i.push(a),c)break}for(let a=0;a<t.length-1&&t[a]===0;a++)i.push(0);return i.reverse()}const l0=(t,e)=>e===0?t:l0(e,t%e),_o=(t,e)=>t+(e-l0(t,e)),$o=(()=>{let t=[];for(let e=0;e<40;e++)t.push(2**e);return t})();function vu(t,e,n,r){if(Yo(t),e<=0||e>32)throw new Error(`convertRadix2: wrong from=${e}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(_o(e,n)>32)throw new Error(`convertRadix2: carry overflow from=${e} to=${n} carryBits=${_o(e,n)}`);let i=0,s=0;const o=$o[e],a=$o[n]-1,c=[];for(const u of t){if(Ci(u),u>=o)throw new Error(`convertRadix2: invalid data word=${u} from=${e}`);if(i=i<<e|u,s+e>32)throw new Error(`convertRadix2: carry overflow pos=${s} from=${e}`);for(s+=e;s>=n;s-=n)c.push((i>>s-n&a)>>>0);const f=$o[s];if(f===void 0)throw new Error("invalid carry");i&=f-1}if(i=i<<n-s&a,!r&&s>=e)throw new Error("Excess padding");if(!r&&i>0)throw new Error(`Non-zero padding: ${i}`);return r&&s>0&&c.push(i>>>0),c}function $3(t){Ci(t);const e=2**8;return{encode:n=>{if(!qi(n))throw new Error("radix.encode input should be Uint8Array");return f0(Array.from(n),e,t)},decode:n=>(mu("radix.decode",n),Uint8Array.from(f0(n,t,e)))}}function Mt(t,e=!1){if(Ci(t),t<=0||t>32)throw new Error("radix2: bits should be in (0..32]");if(_o(8,t)>32||_o(t,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!qi(n))throw new Error("radix2.encode input should be Uint8Array");return vu(Array.from(n),8,t,!e)},decode:n=>(mu("radix2.decode",n),Uint8Array.from(vu(n,t,8,e)))}}function h0(t){return bu(t),function(...e){try{return t.apply(null,e)}catch{}}}function ev(t,e){return Ci(t),bu(e),{encode(n){if(!qi(n))throw new Error("checksum.encode: input should be Uint8Array");const r=e(n).slice(0,t),i=new Uint8Array(n.length+t);return i.set(n),i.set(r,n.length),i},decode(n){if(!qi(n))throw new Error("checksum.decode: input should be Uint8Array");const r=n.slice(0,-t),i=n.slice(-t),s=e(r).slice(0,t);for(let o=0;o<t;o++)if(s[o]!==i[o])throw new Error("Invalid checksum");return r}}}const tv=xt(Mt(5),Rt("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"),Qo(5),Nt("")),d0=typeof Uint8Array.from([]).toBase64=="function"&&typeof Uint8Array.fromBase64=="function",p0=(t,e)=>{Er("base64",t);const n=e?/^[A-Za-z0-9=_-]+$/:/^[A-Za-z0-9=+/]+$/,r=e?"base64url":"base64";if(t.length>0&&!n.test(t))throw new Error("invalid base64");return Uint8Array.fromBase64(t,{alphabet:r,lastChunkHandling:"strict"})},Eu=t=>xt($3(58),Rt(t),Nt("")),Li=Eu("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"),nv=t=>xt(ev(4,e=>t(t(e))),Li),xu=xt(Rt("qpzry9x8gf2tvdw0s3jn54khce6mua7l"),Nt("")),g0=[996825010,642813549,513874426,1027748829,705979059];function Bs(t){const e=t>>25;let n=(t&33554431)<<5;for(let r=0;r<g0.length;r++)(e>>r&1)===1&&(n^=g0[r]);return n}function y0(t,e,n=1){const r=t.length;let i=1;for(let s=0;s<r;s++){const o=t.charCodeAt(s);if(o<33||o>126)throw new Error(`Invalid prefix (${t})`);i=Bs(i)^o>>5}i=Bs(i);for(let s=0;s<r;s++)i=Bs(i)^t.charCodeAt(s)&31;for(let s of e)i=Bs(i)^s;for(let s=0;s<6;s++)i=Bs(i);return i^=n,xu.encode(vu([i%$o[30]],30,5,!1))}function w0(t){const e=t==="bech32"?1:734539939,n=Mt(5),r=n.decode,i=n.encode,s=h0(r);function o(h,d,l=90){Er("bech32.encode prefix",h),qi(d)&&(d=Array.from(d)),mu("bech32.encode",d);const p=h.length;if(p===0)throw new TypeError(`Invalid prefix length ${p}`);const w=p+7+d.length;if(l!==!1&&w>l)throw new TypeError(`Length ${w} exceeds limit ${l}`);const v=h.toLowerCase(),O=y0(v,d,e);return`${v}1${xu.encode(d)}${O}`}function a(h,d=90){Er("bech32.decode input",h);const l=h.length;if(l<8||d!==!1&&l>d)throw new TypeError(`invalid string length: ${l} (${h}). Expected (8..${d})`);const p=h.toLowerCase();if(h!==p&&h!==h.toUpperCase())throw new Error("String must be lowercase or uppercase");const w=p.lastIndexOf("1");if(w===0||w===-1)throw new Error('Letter "1" must be present between prefix and data only');const v=p.slice(0,w),O=p.slice(w+1);if(O.length<6)throw new Error("Data must be at least 6 characters long");const P=xu.decode(O).slice(0,-6),A=y0(v,P,e);if(!O.endsWith(A))throw new Error(`Invalid checksum in ${h}: expected "${A}"`);return{prefix:v,words:P}}const c=h0(a);function u(h){const{prefix:d,words:l}=a(h,!1);return{prefix:d,words:l,bytes:r(l)}}function f(h,d){return o(h,i(d))}return{encode:o,decode:a,encodeFromBytes:f,decodeToBytes:u,decodeUnsafe:c,fromWords:r,fromWordsUnsafe:s,toWords:i}}const rv=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",iv={encode(t){return wu(t),t.toHex()},decode(t){return Er("hex",t),Uint8Array.fromHex(t)}};nv(Yd),tu("Bitcoin seed");function sv(t){return d2(ov(t))}function ov(t){const{payload:e,signature:n}=t,{r,s:i,yParity:s}=n,a=new W2.Signature(BigInt(r),BigInt(i)).addRecoveryBit(s).recoverPublicKey(Uc(e).substring(2));return i2(a)}/*! noble-ciphers - MIT License (c) 2023 Paul Miller (paulmillr.com) */function b0(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function Su(t){if(typeof t!="boolean")throw new Error(`boolean expected, not ${t}`)}function Iu(t){if(!Number.isSafeInteger(t)||t<0)throw new Error("positive integer expected, got "+t)}function We(t,...e){if(!b0(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error("Uint8Array expected of length "+e+", got length="+t.length)}function Vi(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function Au(t,e){We(t);const n=e.outputLen;if(t.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function Ut(t){return new Uint32Array(t.buffer,t.byteOffset,Math.floor(t.byteLength/4))}function kn(...t){for(let e=0;e<t.length;e++)t[e].fill(0)}function m0(t){return new DataView(t.buffer,t.byteOffset,t.byteLength)}const av=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function cv(t){if(typeof t!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(t))}function xr(t){if(typeof t=="string")t=cv(t);else if(b0(t))t=ea(t);else throw new Error("Uint8Array expected, got "+typeof t);return t}function uv(t,e){if(e==null||typeof e!="object")throw new Error("options must be defined");return Object.assign(t,e)}function fv(t,e){if(t.length!==e.length)return!1;let n=0;for(let r=0;r<t.length;r++)n|=t[r]^e[r];return n===0}const lv=(t,e)=>{function n(r,...i){if(We(r),!av)throw new Error("Non little-endian hardware is not yet supported");if(t.nonceLength!==void 0){const f=i[0];if(!f)throw new Error("nonce / iv required");t.varSizeNonce?We(f):We(f,t.nonceLength)}const s=t.tagLength;s&&i[1]!==void 0&&We(i[1]);const o=e(r,...i),a=(f,h)=>{if(h!==void 0){if(f!==2)throw new Error("cipher output not supported");We(h)}};let c=!1;return{encrypt(f,h){if(c)throw new Error("cannot encrypt() twice with same key + nonce");return c=!0,We(f),a(o.encrypt.length,h),o.encrypt(f,h)},decrypt(f,h){if(We(f),s&&f.length<s)throw new Error("invalid ciphertext length: smaller than tagLength="+s);return a(o.decrypt.length,h),o.decrypt(f,h)}}}return Object.assign(n,t),n};function v0(t,e,n=!0){if(e===void 0)return new Uint8Array(t);if(e.length!==t)throw new Error("invalid output length, expected "+t+", got: "+e.length);if(n&&!dv(e))throw new Error("invalid output, must be aligned");return e}function E0(t,e,n,r){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,n,r);const i=BigInt(32),s=BigInt(4294967295),o=Number(n>>i&s),a=Number(n&s),c=r?4:0,u=r?0:4;t.setUint32(e+c,o,r),t.setUint32(e+u,a,r)}function hv(t,e,n){Su(n);const r=new Uint8Array(16),i=m0(r);return E0(i,0,BigInt(e),n),E0(i,8,BigInt(t),n),r}function dv(t){return t.byteOffset%4===0}function ea(t){return Uint8Array.from(t)}const Fn=16,Bu=new Uint8Array(16),dn=Ut(Bu),pv=225,gv=(t,e,n,r)=>{const i=r&1;return{s3:n<<31|r>>>1,s2:e<<31|n>>>1,s1:t<<31|e>>>1,s0:t>>>1^pv<<24&-(i&1)}},Kt=t=>(t>>>0&255)<<24|(t>>>8&255)<<16|(t>>>16&255)<<8|t>>>24&255|0;function yv(t){t.reverse();const e=t[15]&1;let n=0;for(let r=0;r<t.length;r++){const i=t[r];t[r]=i>>>1|n,n=(i&1)<<7}return t[0]^=-e&225,t}const wv=t=>t>64*1024?8:t>1024?4:2;class x0{constructor(e,n){this.blockLen=Fn,this.outputLen=Fn,this.s0=0,this.s1=0,this.s2=0,this.s3=0,this.finished=!1,e=xr(e),We(e,16);const r=m0(e);let i=r.getUint32(0,!1),s=r.getUint32(4,!1),o=r.getUint32(8,!1),a=r.getUint32(12,!1);const c=[];for(let p=0;p<128;p++)c.push({s0:Kt(i),s1:Kt(s),s2:Kt(o),s3:Kt(a)}),{s0:i,s1:s,s2:o,s3:a}=gv(i,s,o,a);const u=wv(n||1024);if(![1,2,4,8].includes(u))throw new Error("ghash: invalid window size, expected 2, 4 or 8");this.W=u;const h=128/u,d=this.windowSize=2**u,l=[];for(let p=0;p<h;p++)for(let w=0;w<d;w++){let v=0,O=0,P=0,A=0;for(let I=0;I<u;I++){if(!(w>>>u-I-1&1))continue;const{s0:M,s1:F,s2:L,s3:R}=c[u*p+I];v^=M,O^=F,P^=L,A^=R}l.push({s0:v,s1:O,s2:P,s3:A})}this.t=l}_updateBlock(e,n,r,i){e^=this.s0,n^=this.s1,r^=this.s2,i^=this.s3;const{W:s,t:o,windowSize:a}=this;let c=0,u=0,f=0,h=0;const d=(1<<s)-1;let l=0;for(const p of[e,n,r,i])for(let w=0;w<4;w++){const v=p>>>8*w&255;for(let O=8/s-1;O>=0;O--){const P=v>>>s*O&d,{s0:A,s1:I,s2:S,s3:M}=o[l*a+P];c^=A,u^=I,f^=S,h^=M,l+=1}}this.s0=c,this.s1=u,this.s2=f,this.s3=h}update(e){Vi(this),e=xr(e),We(e);const n=Ut(e),r=Math.floor(e.length/Fn),i=e.length%Fn;for(let s=0;s<r;s++)this._updateBlock(n[s*4+0],n[s*4+1],n[s*4+2],n[s*4+3]);return i&&(Bu.set(e.subarray(r*Fn)),this._updateBlock(dn[0],dn[1],dn[2],dn[3]),kn(dn)),this}destroy(){const{t:e}=this;for(const n of e)n.s0=0,n.s1=0,n.s2=0,n.s3=0}digestInto(e){Vi(this),Au(e,this),this.finished=!0;const{s0:n,s1:r,s2:i,s3:s}=this,o=Ut(e);return o[0]=n,o[1]=r,o[2]=i,o[3]=s,e}digest(){const e=new Uint8Array(Fn);return this.digestInto(e),this.destroy(),e}}class bv extends x0{constructor(e,n){e=xr(e),We(e);const r=yv(ea(e));super(r,n),kn(r)}update(e){e=xr(e),Vi(this);const n=Ut(e),r=e.length%Fn,i=Math.floor(e.length/Fn);for(let s=0;s<i;s++)this._updateBlock(Kt(n[s*4+3]),Kt(n[s*4+2]),Kt(n[s*4+1]),Kt(n[s*4+0]));return r&&(Bu.set(e.subarray(i*Fn)),this._updateBlock(Kt(dn[3]),Kt(dn[2]),Kt(dn[1]),Kt(dn[0])),kn(dn)),this}digestInto(e){Vi(this),Au(e,this),this.finished=!0;const{s0:n,s1:r,s2:i,s3:s}=this,o=Ut(e);return o[0]=n,o[1]=r,o[2]=i,o[3]=s,e.reverse()}}function S0(t){const e=(r,i)=>t(i,r.length).update(xr(r)).digest(),n=t(new Uint8Array(16),0);return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=(r,i)=>t(r,i),e}S0((t,e)=>new x0(t,e)),S0((t,e)=>new bv(t,e));const I0=hr(BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff")),mv=I0.create(BigInt("-3")),vv=BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b");qo({a:mv,b:vv,Fp:I0,n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"),h:BigInt(1),lowS:!1},fr);const A0=hr(BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff")),Ev=A0.create(BigInt("-3")),xv=BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef");qo({a:Ev,b:xv,Fp:A0,n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f"),h:BigInt(1),lowS:!1},Uh);const B0=hr(BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")),Sv=B0.create(BigInt("-3")),Iv=BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00");qo({a:Sv,b:Iv,Fp:B0,n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650"),h:BigInt(1),lowS:!1,allowedPrivateKeyLengths:[130,131,132]},Nh);var Av={exports:{}};(function(t){var e=Object.prototype.hasOwnProperty,n="~";function r(){}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(n=!1));function i(c,u,f){this.fn=c,this.context=u,this.once=f||!1}function s(c,u,f,h,d){if(typeof f!="function")throw new TypeError("The listener must be a function");var l=new i(f,h||c,d),p=n?n+u:u;return c._events[p]?c._events[p].fn?c._events[p]=[c._events[p],l]:c._events[p].push(l):(c._events[p]=l,c._eventsCount++),c}function o(c,u){--c._eventsCount===0?c._events=new r:delete c._events[u]}function a(){this._events=new r,this._eventsCount=0}a.prototype.eventNames=function(){var u=[],f,h;if(this._eventsCount===0)return u;for(h in f=this._events)e.call(f,h)&&u.push(n?h.slice(1):h);return Object.getOwnPropertySymbols?u.concat(Object.getOwnPropertySymbols(f)):u},a.prototype.listeners=function(u){var f=n?n+u:u,h=this._events[f];if(!h)return[];if(h.fn)return[h.fn];for(var d=0,l=h.length,p=new Array(l);d<l;d++)p[d]=h[d].fn;return p},a.prototype.listenerCount=function(u){var f=n?n+u:u,h=this._events[f];return h?h.fn?1:h.length:0},a.prototype.emit=function(u,f,h,d,l,p){var w=n?n+u:u;if(!this._events[w])return!1;var v=this._events[w],O=arguments.length,P,A;if(v.fn){switch(v.once&&this.removeListener(u,v.fn,void 0,!0),O){case 1:return v.fn.call(v.context),!0;case 2:return v.fn.call(v.context,f),!0;case 3:return v.fn.call(v.context,f,h),!0;case 4:return v.fn.call(v.context,f,h,d),!0;case 5:return v.fn.call(v.context,f,h,d,l),!0;case 6:return v.fn.call(v.context,f,h,d,l,p),!0}for(A=1,P=new Array(O-1);A<O;A++)P[A-1]=arguments[A];v.fn.apply(v.context,P)}else{var I=v.length,S;for(A=0;A<I;A++)switch(v[A].once&&this.removeListener(u,v[A].fn,void 0,!0),O){case 1:v[A].fn.call(v[A].context);break;case 2:v[A].fn.call(v[A].context,f);break;case 3:v[A].fn.call(v[A].context,f,h);break;case 4:v[A].fn.call(v[A].context,f,h,d);break;default:if(!P)for(S=1,P=new Array(O-1);S<O;S++)P[S-1]=arguments[S];v[A].fn.apply(v[A].context,P)}}return!0},a.prototype.on=function(u,f,h){return s(this,u,f,h,!1)},a.prototype.once=function(u,f,h){return s(this,u,f,h,!0)},a.prototype.removeListener=function(u,f,h,d){var l=n?n+u:u;if(!this._events[l])return this;if(!f)return o(this,l),this;var p=this._events[l];if(p.fn)p.fn===f&&(!d||p.once)&&(!h||p.context===h)&&o(this,l);else{for(var w=0,v=[],O=p.length;w<O;w++)(p[w].fn!==f||d&&!p[w].once||h&&p[w].context!==h)&&v.push(p[w]);v.length?this._events[l]=v.length===1?v[0]:v:o(this,l)}return this},a.prototype.removeAllListeners=function(u){var f;return u?(f=n?n+u:u,this._events[f]&&o(this,f)):(this._events=new r,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=n,a.EventEmitter=a,t.exports=a})(Av);function Bv(t){const e=t.length;let n=0,r=0;for(;r<e;){let i=t.charCodeAt(r++);if((i&4294967168)===0){n++;continue}else if((i&4294965248)===0)n+=2;else{if(i>=55296&&i<=56319&&r<e){const s=t.charCodeAt(r);(s&64512)===56320&&(++r,i=((i&1023)<<10)+(s&1023)+65536)}(i&4294901760)===0?n+=3:n+=4}}return n}function Dv(t,e,n){const r=t.length;let i=n,s=0;for(;s<r;){let o=t.charCodeAt(s++);if((o&4294967168)===0){e[i++]=o;continue}else if((o&4294965248)===0)e[i++]=o>>6&31|192;else{if(o>=55296&&o<=56319&&s<r){const a=t.charCodeAt(s);(a&64512)===56320&&(++s,o=((o&1023)<<10)+(a&1023)+65536)}(o&4294901760)===0?(e[i++]=o>>12&15|224,e[i++]=o>>6&63|128):(e[i++]=o>>18&7|240,e[i++]=o>>12&63|128,e[i++]=o>>6&63|128)}e[i++]=o&63|128}}const Ov=new TextEncoder,Tv=50;function Rv(t,e,n){Ov.encodeInto(t,e.subarray(n))}function Nv(t,e,n){t.length>Tv?Rv(t,e,n):Dv(t,e,n)}const Uv=4096;function D0(t,e,n){let r=e;const i=r+n,s=[];let o="";for(;r<i;){const a=t[r++];if((a&128)===0)s.push(a);else if((a&224)===192){const c=t[r++]&63;s.push((a&31)<<6|c)}else if((a&240)===224){const c=t[r++]&63,u=t[r++]&63;s.push((a&31)<<12|c<<6|u)}else if((a&248)===240){const c=t[r++]&63,u=t[r++]&63,f=t[r++]&63;let h=(a&7)<<18|c<<12|u<<6|f;h>65535&&(h-=65536,s.push(h>>>10&1023|55296),h=56320|h&1023),s.push(h)}else s.push(a);s.length>=Uv&&(o+=String.fromCharCode(...s),s.length=0)}return s.length>0&&(o+=String.fromCharCode(...s)),o}const Pv=new TextDecoder,qv=200;function Cv(t,e,n){const r=t.subarray(e,e+n);return Pv.decode(r)}function Lv(t,e,n){return n>qv?Cv(t,e,n):D0(t,e,n)}class ta{type;data;constructor(e,n){this.type=e,this.data=n}}class Pt extends Error{constructor(e){super(e);const n=Object.create(Pt.prototype);Object.setPrototypeOf(this,n),Object.defineProperty(this,"name",{configurable:!0,enumerable:!1,value:Pt.name})}}const Ds=4294967295;function Vv(t,e,n){const r=n/4294967296,i=n;t.setUint32(e,r),t.setUint32(e+4,i)}function O0(t,e,n){const r=Math.floor(n/4294967296),i=n;t.setUint32(e,r),t.setUint32(e+4,i)}function T0(t,e){const n=t.getInt32(e),r=t.getUint32(e+4);return n*4294967296+r}function kv(t,e){const n=t.getUint32(e),r=t.getUint32(e+4);return n*4294967296+r}const Fv=-1,zv=4294967296-1,Mv=17179869184-1;function Kv({sec:t,nsec:e}){if(t>=0&&e>=0&&t<=Mv)if(e===0&&t<=zv){const n=new Uint8Array(4);return new DataView(n.buffer).setUint32(0,t),n}else{const n=t/4294967296,r=t&4294967295,i=new Uint8Array(8),s=new DataView(i.buffer);return s.setUint32(0,e<<2|n&3),s.setUint32(4,r),i}else{const n=new Uint8Array(12),r=new DataView(n.buffer);return r.setUint32(0,e),O0(r,4,t),n}}function jv(t){const e=t.getTime(),n=Math.floor(e/1e3),r=(e-n*1e3)*1e6,i=Math.floor(r/1e9);return{sec:n+i,nsec:r-i*1e9}}function Wv(t){if(t instanceof Date){const e=jv(t);return Kv(e)}else return null}function Hv(t){const e=new DataView(t.buffer,t.byteOffset,t.byteLength);switch(t.byteLength){case 4:return{sec:e.getUint32(0),nsec:0};case 8:{const n=e.getUint32(0),r=e.getUint32(4),i=(n&3)*4294967296+r,s=n>>>2;return{sec:i,nsec:s}}case 12:{const n=T0(e,4),r=e.getUint32(0);return{sec:n,nsec:r}}default:throw new Pt(`Unrecognized data size for timestamp (expected 4, 8, or 12): ${t.length}`)}}function Gv(t){const e=Hv(t);return new Date(e.sec*1e3+e.nsec/1e6)}const Zv={type:Fv,encode:Wv,decode:Gv};class na{static defaultCodec=new na;__brand;builtInEncoders=[];builtInDecoders=[];encoders=[];decoders=[];constructor(){this.register(Zv)}register({type:e,encode:n,decode:r}){if(e>=0)this.encoders[e]=n,this.decoders[e]=r;else{const i=-1-e;this.builtInEncoders[i]=n,this.builtInDecoders[i]=r}}tryToEncode(e,n){for(let r=0;r<this.builtInEncoders.length;r++){const i=this.builtInEncoders[r];if(i!=null){const s=i(e,n);if(s!=null){const o=-1-r;return new ta(o,s)}}}for(let r=0;r<this.encoders.length;r++){const i=this.encoders[r];if(i!=null){const s=i(e,n);if(s!=null){const o=r;return new ta(o,s)}}}return e instanceof ta?e:null}decode(e,n,r){const i=n<0?this.builtInDecoders[-1-n]:this.decoders[n];return i?i(e,n,r):new ta(n,e)}}function Xv(t){return t instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer}function Du(t){return t instanceof Uint8Array?t:ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):Xv(t)?new Uint8Array(t):Uint8Array.from(t)}const Yv=100,Jv=2048;class Ou{extensionCodec;context;useBigInt64;maxDepth;initialBufferSize;sortKeys;forceFloat32;ignoreUndefined;forceIntegerToFloat;pos;view;bytes;entered=!1;constructor(e){this.extensionCodec=e?.extensionCodec??na.defaultCodec,this.context=e?.context,this.useBigInt64=e?.useBigInt64??!1,this.maxDepth=e?.maxDepth??Yv,this.initialBufferSize=e?.initialBufferSize??Jv,this.sortKeys=e?.sortKeys??!1,this.forceFloat32=e?.forceFloat32??!1,this.ignoreUndefined=e?.ignoreUndefined??!1,this.forceIntegerToFloat=e?.forceIntegerToFloat??!1,this.pos=0,this.view=new DataView(new ArrayBuffer(this.initialBufferSize)),this.bytes=new Uint8Array(this.view.buffer)}clone(){return new Ou({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,maxDepth:this.maxDepth,initialBufferSize:this.initialBufferSize,sortKeys:this.sortKeys,forceFloat32:this.forceFloat32,ignoreUndefined:this.ignoreUndefined,forceIntegerToFloat:this.forceIntegerToFloat})}reinitializeState(){this.pos=0}encodeSharedRef(e){if(this.entered)return this.clone().encodeSharedRef(e);try{return this.entered=!0,this.reinitializeState(),this.doEncode(e,1),this.bytes.subarray(0,this.pos)}finally{this.entered=!1}}encode(e){if(this.entered)return this.clone().encode(e);try{return this.entered=!0,this.reinitializeState(),this.doEncode(e,1),this.bytes.slice(0,this.pos)}finally{this.entered=!1}}doEncode(e,n){if(n>this.maxDepth)throw new Error(`Too deep objects in depth ${n}`);e==null?this.encodeNil():typeof e=="boolean"?this.encodeBoolean(e):typeof e=="number"?this.forceIntegerToFloat?this.encodeNumberAsFloat(e):this.encodeNumber(e):typeof e=="string"?this.encodeString(e):this.useBigInt64&&typeof e=="bigint"?this.encodeBigInt64(e):this.encodeObject(e,n)}ensureBufferSizeToWrite(e){const n=this.pos+e;this.view.byteLength<n&&this.resizeBuffer(n*2)}resizeBuffer(e){const n=new ArrayBuffer(e),r=new Uint8Array(n),i=new DataView(n);r.set(this.bytes),this.view=i,this.bytes=r}encodeNil(){this.writeU8(192)}encodeBoolean(e){e===!1?this.writeU8(194):this.writeU8(195)}encodeNumber(e){!this.forceIntegerToFloat&&Number.isSafeInteger(e)?e>=0?e<128?this.writeU8(e):e<256?(this.writeU8(204),this.writeU8(e)):e<65536?(this.writeU8(205),this.writeU16(e)):e<4294967296?(this.writeU8(206),this.writeU32(e)):this.useBigInt64?this.encodeNumberAsFloat(e):(this.writeU8(207),this.writeU64(e)):e>=-32?this.writeU8(224|e+32):e>=-128?(this.writeU8(208),this.writeI8(e)):e>=-32768?(this.writeU8(209),this.writeI16(e)):e>=-2147483648?(this.writeU8(210),this.writeI32(e)):this.useBigInt64?this.encodeNumberAsFloat(e):(this.writeU8(211),this.writeI64(e)):this.encodeNumberAsFloat(e)}encodeNumberAsFloat(e){this.forceFloat32?(this.writeU8(202),this.writeF32(e)):(this.writeU8(203),this.writeF64(e))}encodeBigInt64(e){e>=BigInt(0)?(this.writeU8(207),this.writeBigUint64(e)):(this.writeU8(211),this.writeBigInt64(e))}writeStringHeader(e){if(e<32)this.writeU8(160+e);else if(e<256)this.writeU8(217),this.writeU8(e);else if(e<65536)this.writeU8(218),this.writeU16(e);else if(e<4294967296)this.writeU8(219),this.writeU32(e);else throw new Error(`Too long string: ${e} bytes in UTF-8`)}encodeString(e){const r=Bv(e);this.ensureBufferSizeToWrite(5+r),this.writeStringHeader(r),Nv(e,this.bytes,this.pos),this.pos+=r}encodeObject(e,n){const r=this.extensionCodec.tryToEncode(e,this.context);if(r!=null)this.encodeExtension(r);else if(Array.isArray(e))this.encodeArray(e,n);else if(ArrayBuffer.isView(e))this.encodeBinary(e);else if(typeof e=="object")this.encodeMap(e,n);else throw new Error(`Unrecognized object: ${Object.prototype.toString.apply(e)}`)}encodeBinary(e){const n=e.byteLength;if(n<256)this.writeU8(196),this.writeU8(n);else if(n<65536)this.writeU8(197),this.writeU16(n);else if(n<4294967296)this.writeU8(198),this.writeU32(n);else throw new Error(`Too large binary: ${n}`);const r=Du(e);this.writeU8a(r)}encodeArray(e,n){const r=e.length;if(r<16)this.writeU8(144+r);else if(r<65536)this.writeU8(220),this.writeU16(r);else if(r<4294967296)this.writeU8(221),this.writeU32(r);else throw new Error(`Too large array: ${r}`);for(const i of e)this.doEncode(i,n+1)}countWithoutUndefined(e,n){let r=0;for(const i of n)e[i]!==void 0&&r++;return r}encodeMap(e,n){const r=Object.keys(e);this.sortKeys&&r.sort();const i=this.ignoreUndefined?this.countWithoutUndefined(e,r):r.length;if(i<16)this.writeU8(128+i);else if(i<65536)this.writeU8(222),this.writeU16(i);else if(i<4294967296)this.writeU8(223),this.writeU32(i);else throw new Error(`Too large map object: ${i}`);for(const s of r){const o=e[s];this.ignoreUndefined&&o===void 0||(this.encodeString(s),this.doEncode(o,n+1))}}encodeExtension(e){if(typeof e.data=="function"){const r=e.data(this.pos+6),i=r.length;if(i>=4294967296)throw new Error(`Too large extension object: ${i}`);this.writeU8(201),this.writeU32(i),this.writeI8(e.type),this.writeU8a(r);return}const n=e.data.length;if(n===1)this.writeU8(212);else if(n===2)this.writeU8(213);else if(n===4)this.writeU8(214);else if(n===8)this.writeU8(215);else if(n===16)this.writeU8(216);else if(n<256)this.writeU8(199),this.writeU8(n);else if(n<65536)this.writeU8(200),this.writeU16(n);else if(n<4294967296)this.writeU8(201),this.writeU32(n);else throw new Error(`Too large extension object: ${n}`);this.writeI8(e.type),this.writeU8a(e.data)}writeU8(e){this.ensureBufferSizeToWrite(1),this.view.setUint8(this.pos,e),this.pos++}writeU8a(e){const n=e.length;this.ensureBufferSizeToWrite(n),this.bytes.set(e,this.pos),this.pos+=n}writeI8(e){this.ensureBufferSizeToWrite(1),this.view.setInt8(this.pos,e),this.pos++}writeU16(e){this.ensureBufferSizeToWrite(2),this.view.setUint16(this.pos,e),this.pos+=2}writeI16(e){this.ensureBufferSizeToWrite(2),this.view.setInt16(this.pos,e),this.pos+=2}writeU32(e){this.ensureBufferSizeToWrite(4),this.view.setUint32(this.pos,e),this.pos+=4}writeI32(e){this.ensureBufferSizeToWrite(4),this.view.setInt32(this.pos,e),this.pos+=4}writeF32(e){this.ensureBufferSizeToWrite(4),this.view.setFloat32(this.pos,e),this.pos+=4}writeF64(e){this.ensureBufferSizeToWrite(8),this.view.setFloat64(this.pos,e),this.pos+=8}writeU64(e){this.ensureBufferSizeToWrite(8),Vv(this.view,this.pos,e),this.pos+=8}writeI64(e){this.ensureBufferSizeToWrite(8),O0(this.view,this.pos,e),this.pos+=8}writeBigUint64(e){this.ensureBufferSizeToWrite(8),this.view.setBigUint64(this.pos,e),this.pos+=8}writeBigInt64(e){this.ensureBufferSizeToWrite(8),this.view.setBigInt64(this.pos,e),this.pos+=8}}function Qv(t,e){return new Ou(e).encodeSharedRef(t)}function Tu(t){return`${t<0?"-":""}0x${Math.abs(t).toString(16).padStart(2,"0")}`}const _v=16,$v=16;class eE{hit=0;miss=0;caches;maxKeyLength;maxLengthPerKey;constructor(e=_v,n=$v){this.maxKeyLength=e,this.maxLengthPerKey=n,this.caches=[];for(let r=0;r<this.maxKeyLength;r++)this.caches.push([])}canBeCached(e){return e>0&&e<=this.maxKeyLength}find(e,n,r){const i=this.caches[r-1];e:for(const s of i){const o=s.bytes;for(let a=0;a<r;a++)if(o[a]!==e[n+a])continue e;return s.str}return null}store(e,n){const r=this.caches[e.length-1],i={bytes:e,str:n};r.length>=this.maxLengthPerKey?r[Math.random()*r.length|0]=i:r.push(i)}decode(e,n,r){const i=this.find(e,n,r);if(i!=null)return this.hit++,i;this.miss++;const s=D0(e,n,r),o=Uint8Array.prototype.slice.call(e,n,n+r);return this.store(o,s),s}}const Ru="array",Os="map_key",R0="map_value",tE=t=>{if(typeof t=="string"||typeof t=="number")return t;throw new Pt("The type of key must be string or number but "+typeof t)};class nE{stack=[];stackHeadPosition=-1;get length(){return this.stackHeadPosition+1}top(){return this.stack[this.stackHeadPosition]}pushArrayState(e){const n=this.getUninitializedStateFromPool();n.type=Ru,n.position=0,n.size=e,n.array=new Array(e)}pushMapState(e){const n=this.getUninitializedStateFromPool();n.type=Os,n.readCount=0,n.size=e,n.map={}}getUninitializedStateFromPool(){if(this.stackHeadPosition++,this.stackHeadPosition===this.stack.length){const e={type:void 0,size:0,array:void 0,position:0,readCount:0,map:void 0,key:null};this.stack.push(e)}return this.stack[this.stackHeadPosition]}release(e){if(this.stack[this.stackHeadPosition]!==e)throw new Error("Invalid stack state. Released state is not on top of the stack.");if(e.type===Ru){const r=e;r.size=0,r.array=void 0,r.position=0,r.type=void 0}if(e.type===Os||e.type===R0){const r=e;r.size=0,r.map=void 0,r.readCount=0,r.type=void 0}this.stackHeadPosition--}reset(){this.stack.length=0,this.stackHeadPosition=-1}}const Ts=-1,Nu=new DataView(new ArrayBuffer(0)),rE=new Uint8Array(Nu.buffer);try{Nu.getInt8(0)}catch(t){if(!(t instanceof RangeError))throw new Error("This module is not supported in the current JavaScript engine because DataView does not throw RangeError on out-of-bounds access")}const N0=new RangeError("Insufficient data"),iE=new eE;class Uu{extensionCodec;context;useBigInt64;rawStrings;maxStrLength;maxBinLength;maxArrayLength;maxMapLength;maxExtLength;keyDecoder;mapKeyConverter;totalPos=0;pos=0;view=Nu;bytes=rE;headByte=Ts;stack=new nE;entered=!1;constructor(e){this.extensionCodec=e?.extensionCodec??na.defaultCodec,this.context=e?.context,this.useBigInt64=e?.useBigInt64??!1,this.rawStrings=e?.rawStrings??!1,this.maxStrLength=e?.maxStrLength??Ds,this.maxBinLength=e?.maxBinLength??Ds,this.maxArrayLength=e?.maxArrayLength??Ds,this.maxMapLength=e?.maxMapLength??Ds,this.maxExtLength=e?.maxExtLength??Ds,this.keyDecoder=e?.keyDecoder!==void 0?e.keyDecoder:iE,this.mapKeyConverter=e?.mapKeyConverter??tE}clone(){return new Uu({extensionCodec:this.extensionCodec,context:this.context,useBigInt64:this.useBigInt64,rawStrings:this.rawStrings,maxStrLength:this.maxStrLength,maxBinLength:this.maxBinLength,maxArrayLength:this.maxArrayLength,maxMapLength:this.maxMapLength,maxExtLength:this.maxExtLength,keyDecoder:this.keyDecoder})}reinitializeState(){this.totalPos=0,this.headByte=Ts,this.stack.reset()}setBuffer(e){const n=Du(e);this.bytes=n,this.view=new DataView(n.buffer,n.byteOffset,n.byteLength),this.pos=0}appendBuffer(e){if(this.headByte===Ts&&!this.hasRemaining(1))this.setBuffer(e);else{const n=this.bytes.subarray(this.pos),r=Du(e),i=new Uint8Array(n.length+r.length);i.set(n),i.set(r,n.length),this.setBuffer(i)}}hasRemaining(e){return this.view.byteLength-this.pos>=e}createExtraByteError(e){const{view:n,pos:r}=this;return new RangeError(`Extra ${n.byteLength-r} of ${n.byteLength} byte(s) found at buffer[${e}]`)}decode(e){if(this.entered)return this.clone().decode(e);try{this.entered=!0,this.reinitializeState(),this.setBuffer(e);const n=this.doDecodeSync();if(this.hasRemaining(1))throw this.createExtraByteError(this.pos);return n}finally{this.entered=!1}}*decodeMulti(e){if(this.entered){yield*this.clone().decodeMulti(e);return}try{for(this.entered=!0,this.reinitializeState(),this.setBuffer(e);this.hasRemaining(1);)yield this.doDecodeSync()}finally{this.entered=!1}}async decodeAsync(e){if(this.entered)return this.clone().decodeAsync(e);try{this.entered=!0;let n=!1,r;for await(const a of e){if(n)throw this.entered=!1,this.createExtraByteError(this.totalPos);this.appendBuffer(a);try{r=this.doDecodeSync(),n=!0}catch(c){if(!(c instanceof RangeError))throw c}this.totalPos+=this.pos}if(n){if(this.hasRemaining(1))throw this.createExtraByteError(this.totalPos);return r}const{headByte:i,pos:s,totalPos:o}=this;throw new RangeError(`Insufficient data in parsing ${Tu(i)} at ${o} (${s} in the current buffer)`)}finally{this.entered=!1}}decodeArrayStream(e){return this.decodeMultiAsync(e,!0)}decodeStream(e){return this.decodeMultiAsync(e,!1)}async*decodeMultiAsync(e,n){if(this.entered){yield*this.clone().decodeMultiAsync(e,n);return}try{this.entered=!0;let r=n,i=-1;for await(const s of e){if(n&&i===0)throw this.createExtraByteError(this.totalPos);this.appendBuffer(s),r&&(i=this.readArraySize(),r=!1,this.complete());try{for(;yield this.doDecodeSync(),--i!==0;);}catch(o){if(!(o instanceof RangeError))throw o}this.totalPos+=this.pos}}finally{this.entered=!1}}doDecodeSync(){e:for(;;){const e=this.readHeadByte();let n;if(e>=224)n=e-256;else if(e<192)if(e<128)n=e;else if(e<144){const i=e-128;if(i!==0){this.pushMapState(i),this.complete();continue e}else n={}}else if(e<160){const i=e-144;if(i!==0){this.pushArrayState(i),this.complete();continue e}else n=[]}else{const i=e-160;n=this.decodeString(i,0)}else if(e===192)n=null;else if(e===194)n=!1;else if(e===195)n=!0;else if(e===202)n=this.readF32();else if(e===203)n=this.readF64();else if(e===204)n=this.readU8();else if(e===205)n=this.readU16();else if(e===206)n=this.readU32();else if(e===207)this.useBigInt64?n=this.readU64AsBigInt():n=this.readU64();else if(e===208)n=this.readI8();else if(e===209)n=this.readI16();else if(e===210)n=this.readI32();else if(e===211)this.useBigInt64?n=this.readI64AsBigInt():n=this.readI64();else if(e===217){const i=this.lookU8();n=this.decodeString(i,1)}else if(e===218){const i=this.lookU16();n=this.decodeString(i,2)}else if(e===219){const i=this.lookU32();n=this.decodeString(i,4)}else if(e===220){const i=this.readU16();if(i!==0){this.pushArrayState(i),this.complete();continue e}else n=[]}else if(e===221){const i=this.readU32();if(i!==0){this.pushArrayState(i),this.complete();continue e}else n=[]}else if(e===222){const i=this.readU16();if(i!==0){this.pushMapState(i),this.complete();continue e}else n={}}else if(e===223){const i=this.readU32();if(i!==0){this.pushMapState(i),this.complete();continue e}else n={}}else if(e===196){const i=this.lookU8();n=this.decodeBinary(i,1)}else if(e===197){const i=this.lookU16();n=this.decodeBinary(i,2)}else if(e===198){const i=this.lookU32();n=this.decodeBinary(i,4)}else if(e===212)n=this.decodeExtension(1,0);else if(e===213)n=this.decodeExtension(2,0);else if(e===214)n=this.decodeExtension(4,0);else if(e===215)n=this.decodeExtension(8,0);else if(e===216)n=this.decodeExtension(16,0);else if(e===199){const i=this.lookU8();n=this.decodeExtension(i,1)}else if(e===200){const i=this.lookU16();n=this.decodeExtension(i,2)}else if(e===201){const i=this.lookU32();n=this.decodeExtension(i,4)}else throw new Pt(`Unrecognized type byte: ${Tu(e)}`);this.complete();const r=this.stack;for(;r.length>0;){const i=r.top();if(i.type===Ru)if(i.array[i.position]=n,i.position++,i.position===i.size)n=i.array,r.release(i);else continue e;else if(i.type===Os){if(n==="__proto__")throw new Pt("The key __proto__ is not allowed");i.key=this.mapKeyConverter(n),i.type=R0;continue e}else if(i.map[i.key]=n,i.readCount++,i.readCount===i.size)n=i.map,r.release(i);else{i.key=null,i.type=Os;continue e}}return n}}readHeadByte(){return this.headByte===Ts&&(this.headByte=this.readU8()),this.headByte}complete(){this.headByte=Ts}readArraySize(){const e=this.readHeadByte();switch(e){case 220:return this.readU16();case 221:return this.readU32();default:{if(e<160)return e-144;throw new Pt(`Unrecognized array type byte: ${Tu(e)}`)}}}pushMapState(e){if(e>this.maxMapLength)throw new Pt(`Max length exceeded: map length (${e}) > maxMapLengthLength (${this.maxMapLength})`);this.stack.pushMapState(e)}pushArrayState(e){if(e>this.maxArrayLength)throw new Pt(`Max length exceeded: array length (${e}) > maxArrayLength (${this.maxArrayLength})`);this.stack.pushArrayState(e)}decodeString(e,n){return!this.rawStrings||this.stateIsMapKey()?this.decodeUtf8String(e,n):this.decodeBinary(e,n)}decodeUtf8String(e,n){if(e>this.maxStrLength)throw new Pt(`Max length exceeded: UTF-8 byte length (${e}) > maxStrLength (${this.maxStrLength})`);if(this.bytes.byteLength<this.pos+n+e)throw N0;const r=this.pos+n;let i;return this.stateIsMapKey()&&this.keyDecoder?.canBeCached(e)?i=this.keyDecoder.decode(this.bytes,r,e):i=Lv(this.bytes,r,e),this.pos+=n+e,i}stateIsMapKey(){return this.stack.length>0?this.stack.top().type===Os:!1}decodeBinary(e,n){if(e>this.maxBinLength)throw new Pt(`Max length exceeded: bin length (${e}) > maxBinLength (${this.maxBinLength})`);if(!this.hasRemaining(e+n))throw N0;const r=this.pos+n,i=this.bytes.subarray(r,r+e);return this.pos+=n+e,i}decodeExtension(e,n){if(e>this.maxExtLength)throw new Pt(`Max length exceeded: ext length (${e}) > maxExtLength (${this.maxExtLength})`);const r=this.view.getInt8(this.pos+n),i=this.decodeBinary(e,n+1);return this.extensionCodec.decode(i,r,this.context)}lookU8(){return this.view.getUint8(this.pos)}lookU16(){return this.view.getUint16(this.pos)}lookU32(){return this.view.getUint32(this.pos)}readU8(){const e=this.view.getUint8(this.pos);return this.pos++,e}readI8(){const e=this.view.getInt8(this.pos);return this.pos++,e}readU16(){const e=this.view.getUint16(this.pos);return this.pos+=2,e}readI16(){const e=this.view.getInt16(this.pos);return this.pos+=2,e}readU32(){const e=this.view.getUint32(this.pos);return this.pos+=4,e}readI32(){const e=this.view.getInt32(this.pos);return this.pos+=4,e}readU64(){const e=kv(this.view,this.pos);return this.pos+=8,e}readI64(){const e=T0(this.view,this.pos);return this.pos+=8,e}readU64AsBigInt(){const e=this.view.getBigUint64(this.pos);return this.pos+=8,e}readI64AsBigInt(){const e=this.view.getBigInt64(this.pos);return this.pos+=8,e}readF32(){const e=this.view.getFloat32(this.pos);return this.pos+=4,e}readF64(){const e=this.view.getFloat64(this.pos);return this.pos+=8,e}}function sE(t,e){return new Uu(e).decode(t)}function Pu(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function U0(t=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?Pu(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function Qr(t,e){e||(e=t.reduce((i,s)=>i+s.length,0));const n=U0(e);let r=0;for(const i of t)n.set(i,r),r+=i.length;return Pu(n)}function oE(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var n=new Uint8Array(256),r=0;r<n.length;r++)n[r]=255;for(var i=0;i<t.length;i++){var s=t.charAt(i),o=s.charCodeAt(0);if(n[o]!==255)throw new TypeError(s+" is ambiguous");n[o]=i}var a=t.length,c=t.charAt(0),u=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);function h(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var w=0,v=0,O=0,P=p.length;O!==P&&p[O]===0;)O++,w++;for(var A=(P-O)*f+1>>>0,I=new Uint8Array(A);O!==P;){for(var S=p[O],M=0,F=A-1;(S!==0||M<v)&&F!==-1;F--,M++)S+=256*I[F]>>>0,I[F]=S%a>>>0,S=S/a>>>0;if(S!==0)throw new Error("Non-zero carry");v=M,O++}for(var L=A-v;L!==A&&I[L]===0;)L++;for(var R=c.repeat(w);L<A;++L)R+=t.charAt(I[L]);return R}function d(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var w=0;if(p[w]!==" "){for(var v=0,O=0;p[w]===c;)v++,w++;for(var P=(p.length-w)*u+1>>>0,A=new Uint8Array(P);p[w];){var I=n[p.charCodeAt(w)];if(I===255)return;for(var S=0,M=P-1;(I!==0||S<O)&&M!==-1;M--,S++)I+=a*A[M]>>>0,A[M]=I%256>>>0,I=I/256>>>0;if(I!==0)throw new Error("Non-zero carry");O=S,w++}if(p[w]!==" "){for(var F=P-O;F!==P&&A[F]===0;)F++;for(var L=new Uint8Array(v+(P-F)),R=v;F!==P;)L[R++]=A[F++];return L}}}function l(p){var w=d(p);if(w)return w;throw new Error(`Non-${e} character`)}return{encode:h,decodeUnsafe:d,decode:l}}var aE=oE,cE=aE;const P0=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")},uE=t=>new TextEncoder().encode(t),fE=t=>new TextDecoder().decode(t);class lE{constructor(e,n,r){this.name=e,this.prefix=n,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}}class hE{constructor(e,n,r){if(this.name=e,this.prefix=n,n.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=n.codePointAt(0),this.baseDecode=r}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return q0(this,e)}}class dE{constructor(e){this.decoders=e}or(e){return q0(this,e)}decode(e){const n=e[0],r=this.decoders[n];if(r)return r.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const q0=(t,e)=>new dE({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}});class pE{constructor(e,n,r,i){this.name=e,this.prefix=n,this.baseEncode=r,this.baseDecode=i,this.encoder=new lE(e,n,r),this.decoder=new hE(e,n,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const ra=({name:t,prefix:e,encode:n,decode:r})=>new pE(t,e,n,r),Rs=({prefix:t,name:e,alphabet:n})=>{const{encode:r,decode:i}=cE(n,e);return ra({prefix:t,name:e,encode:r,decode:s=>P0(i(s))})},gE=(t,e,n,r)=>{const i={};for(let f=0;f<e.length;++f)i[e[f]]=f;let s=t.length;for(;t[s-1]==="=";)--s;const o=new Uint8Array(s*n/8|0);let a=0,c=0,u=0;for(let f=0;f<s;++f){const h=i[t[f]];if(h===void 0)throw new SyntaxError(`Non-${r} character`);c=c<<n|h,a+=n,a>=8&&(a-=8,o[u++]=255&c>>a)}if(a>=n||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o},yE=(t,e,n)=>{const r=e[e.length-1]==="=",i=(1<<n)-1;let s="",o=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],o+=8;o>n;)o-=n,s+=e[i&a>>o];if(o&&(s+=e[i&a<<n-o]),r)for(;s.length*n&7;)s+="=";return s},He=({name:t,prefix:e,bitsPerChar:n,alphabet:r})=>ra({prefix:e,name:t,encode(i){return yE(i,r,n)},decode(i){return gE(i,r,n,t)}}),wE=ra({prefix:"\0",name:"identity",encode:t=>fE(t),decode:t=>uE(t)});var bE=Object.freeze({__proto__:null,identity:wE});const mE=He({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var vE=Object.freeze({__proto__:null,base2:mE});const EE=He({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var xE=Object.freeze({__proto__:null,base8:EE});const SE=Rs({prefix:"9",name:"base10",alphabet:"0123456789"});var IE=Object.freeze({__proto__:null,base10:SE});const AE=He({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),BE=He({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var DE=Object.freeze({__proto__:null,base16:AE,base16upper:BE});const OE=He({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),TE=He({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),RE=He({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),NE=He({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),UE=He({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),PE=He({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),qE=He({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),CE=He({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),LE=He({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var VE=Object.freeze({__proto__:null,base32:OE,base32upper:TE,base32pad:RE,base32padupper:NE,base32hex:UE,base32hexupper:PE,base32hexpad:qE,base32hexpadupper:CE,base32z:LE});const kE=Rs({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),FE=Rs({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var zE=Object.freeze({__proto__:null,base36:kE,base36upper:FE});const ME=Rs({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),KE=Rs({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var jE=Object.freeze({__proto__:null,base58btc:ME,base58flickr:KE});const WE=He({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),HE=He({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),GE=He({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),ZE=He({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var XE=Object.freeze({__proto__:null,base64:WE,base64pad:HE,base64url:GE,base64urlpad:ZE});const C0=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}"),YE=C0.reduce((t,e,n)=>(t[n]=e,t),[]),JE=C0.reduce((t,e,n)=>(t[e.codePointAt(0)]=n,t),[]);function QE(t){return t.reduce((e,n)=>(e+=YE[n],e),"")}function _E(t){const e=[];for(const n of t){const r=JE[n.codePointAt(0)];if(r===void 0)throw new Error(`Non-base256emoji character: ${n}`);e.push(r)}return new Uint8Array(e)}const $E=ra({prefix:"\u{1F680}",name:"base256emoji",encode:QE,decode:_E});var e8=Object.freeze({__proto__:null,base256emoji:$E}),t8=V0,L0=128,n8=127,r8=~n8,i8=Math.pow(2,31);function V0(t,e,n){e=e||[],n=n||0;for(var r=n;t>=i8;)e[n++]=t&255|L0,t/=128;for(;t&r8;)e[n++]=t&255|L0,t>>>=7;return e[n]=t|0,V0.bytes=n-r+1,e}var s8=qu,o8=128,k0=127;function qu(t,r){var n=0,r=r||0,i=0,s=r,o,a=t.length;do{if(s>=a)throw qu.bytes=0,new RangeError("Could not decode varint");o=t[s++],n+=i<28?(o&k0)<<i:(o&k0)*Math.pow(2,i),i+=7}while(o>=o8);return qu.bytes=s-r,n}var a8=Math.pow(2,7),c8=Math.pow(2,14),u8=Math.pow(2,21),f8=Math.pow(2,28),l8=Math.pow(2,35),h8=Math.pow(2,42),d8=Math.pow(2,49),p8=Math.pow(2,56),g8=Math.pow(2,63),y8=function(t){return t<a8?1:t<c8?2:t<u8?3:t<f8?4:t<l8?5:t<h8?6:t<d8?7:t<p8?8:t<g8?9:10},w8={encode:t8,decode:s8,encodingLength:y8},F0=w8;const z0=(t,e,n=0)=>(F0.encode(t,e,n),e),M0=t=>F0.encodingLength(t),Cu=(t,e)=>{const n=e.byteLength,r=M0(t),i=r+M0(n),s=new Uint8Array(i+n);return z0(t,s,0),z0(n,s,r),s.set(e,i),new b8(t,n,e,s)};class b8{constructor(e,n,r,i){this.code=e,this.size=n,this.digest=r,this.bytes=i}}const K0=({name:t,code:e,encode:n})=>new m8(t,e,n);class m8{constructor(e,n,r){this.name=e,this.code=n,this.encode=r}digest(e){if(e instanceof Uint8Array){const n=this.encode(e);return n instanceof Uint8Array?Cu(this.code,n):n.then(r=>Cu(this.code,r))}else throw Error("Unknown type, must be binary type")}}const j0=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),v8=K0({name:"sha2-256",code:18,encode:j0("SHA-256")}),E8=K0({name:"sha2-512",code:19,encode:j0("SHA-512")});var x8=Object.freeze({__proto__:null,sha256:v8,sha512:E8});const W0=0,S8="identity",H0=P0;var I8=Object.freeze({__proto__:null,identity:{code:W0,name:S8,encode:H0,digest:t=>Cu(W0,H0(t))}});new TextEncoder,new TextDecoder;const G0={...bE,...vE,...xE,...IE,...DE,...VE,...zE,...jE,...XE,...e8};({...x8,...I8});function Z0(t,e,n,r){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:n},decoder:{decode:r}}}const X0=Z0("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),Lu=Z0("ascii","a",t=>{let e="a";for(let n=0;n<t.length;n++)e+=String.fromCharCode(t[n]);return e},t=>{t=t.substring(1);const e=U0(t.length);for(let n=0;n<t.length;n++)e[n]=t.charCodeAt(n);return e}),Y0={utf8:X0,"utf-8":X0,hex:G0.base16,latin1:Lu,ascii:Lu,binary:Lu,...G0};function it(t,e="utf8"){const n=Y0[e];if(!n)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?Pu(globalThis.Buffer.from(t,"utf-8")):n.decoder.decode(`${n.prefix}${t}`)}function ze(t,e="utf8"){const n=Y0[e];if(!n)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):n.encoder.encode(t).substring(1)}const J0=t=>Uint8Array.from(t.split("").map(e=>e.charCodeAt(0))),A8=J0("expand 16-byte k"),B8=J0("expand 32-byte k"),D8=Ut(A8),O8=Ut(B8);function pe(t,e){return t<<e|t>>>32-e}function Vu(t){return t.byteOffset%4===0}const ia=64,T8=16,Q0=2**32-1,_0=new Uint32Array;function R8(t,e,n,r,i,s,o,a){const c=i.length,u=new Uint8Array(ia),f=Ut(u),h=Vu(i)&&Vu(s),d=h?Ut(i):_0,l=h?Ut(s):_0;for(let p=0;p<c;o++){if(t(e,n,r,f,o,a),o>=Q0)throw new Error("arx: counter overflow");const w=Math.min(ia,c-p);if(h&&w===ia){const v=p/4;if(p%4!==0)throw new Error("arx: invalid block position");for(let O=0,P;O<T8;O++)P=v+O,l[P]=d[P]^f[O];p+=ia;continue}for(let v=0,O;v<w;v++)O=p+v,s[O]=i[O]^u[v];p+=w}}function N8(t,e){const{allowShortKeys:n,extendNonceFn:r,counterLength:i,counterRight:s,rounds:o}=uv({allowShortKeys:!1,counterLength:8,counterRight:!1,rounds:20},e);if(typeof t!="function")throw new Error("core must be a function");return Iu(i),Iu(o),Su(s),Su(n),(a,c,u,f,h=0)=>{We(a),We(c),We(u);const d=u.length;if(f===void 0&&(f=new Uint8Array(d)),We(f),Iu(h),h<0||h>=Q0)throw new Error("arx: counter overflow");if(f.length<d)throw new Error(`arx: output (${f.length}) is shorter than data (${d})`);const l=[];let p=a.length,w,v;if(p===32)l.push(w=ea(a)),v=O8;else if(p===16&&n)w=new Uint8Array(32),w.set(a),w.set(a,16),v=D8,l.push(w);else throw new Error(`arx: invalid 32-byte key, got length=${p}`);Vu(c)||l.push(c=ea(c));const O=Ut(w);if(r){if(c.length!==24)throw new Error("arx: extended nonce must be 24 bytes");r(v,O,Ut(c.subarray(0,16)),O),c=c.subarray(16)}const P=16-i;if(P!==c.length)throw new Error(`arx: nonce must be ${P} or 16 bytes`);if(P!==12){const I=new Uint8Array(12);I.set(c,s?0:12-c.length),c=I,l.push(c)}const A=Ut(c);return R8(t,v,O,A,u,f,h,o),kn(...l),f}}const Ge=(t,e)=>t[e++]&255|(t[e++]&255)<<8;class U8{constructor(e){this.blockLen=16,this.outputLen=16,this.buffer=new Uint8Array(16),this.r=new Uint16Array(10),this.h=new Uint16Array(10),this.pad=new Uint16Array(8),this.pos=0,this.finished=!1,e=xr(e),We(e,32);const n=Ge(e,0),r=Ge(e,2),i=Ge(e,4),s=Ge(e,6),o=Ge(e,8),a=Ge(e,10),c=Ge(e,12),u=Ge(e,14);this.r[0]=n&8191,this.r[1]=(n>>>13|r<<3)&8191,this.r[2]=(r>>>10|i<<6)&7939,this.r[3]=(i>>>7|s<<9)&8191,this.r[4]=(s>>>4|o<<12)&255,this.r[5]=o>>>1&8190,this.r[6]=(o>>>14|a<<2)&8191,this.r[7]=(a>>>11|c<<5)&8065,this.r[8]=(c>>>8|u<<8)&8191,this.r[9]=u>>>5&127;for(let f=0;f<8;f++)this.pad[f]=Ge(e,16+2*f)}process(e,n,r=!1){const i=r?0:2048,{h:s,r:o}=this,a=o[0],c=o[1],u=o[2],f=o[3],h=o[4],d=o[5],l=o[6],p=o[7],w=o[8],v=o[9],O=Ge(e,n+0),P=Ge(e,n+2),A=Ge(e,n+4),I=Ge(e,n+6),S=Ge(e,n+8),M=Ge(e,n+10),F=Ge(e,n+12),L=Ge(e,n+14);let R=s[0]+(O&8191),Z=s[1]+((O>>>13|P<<3)&8191),W=s[2]+((P>>>10|A<<6)&8191),E=s[3]+((A>>>7|I<<9)&8191),y=s[4]+((I>>>4|S<<12)&8191),m=s[5]+(S>>>1&8191),g=s[6]+((S>>>14|M<<2)&8191),b=s[7]+((M>>>11|F<<5)&8191),x=s[8]+((F>>>8|L<<8)&8191),B=s[9]+(L>>>5|i),D=0,T=D+R*a+Z*(5*v)+W*(5*w)+E*(5*p)+y*(5*l);D=T>>>13,T&=8191,T+=m*(5*d)+g*(5*h)+b*(5*f)+x*(5*u)+B*(5*c),D+=T>>>13,T&=8191;let U=D+R*c+Z*a+W*(5*v)+E*(5*w)+y*(5*p);D=U>>>13,U&=8191,U+=m*(5*l)+g*(5*d)+b*(5*h)+x*(5*f)+B*(5*u),D+=U>>>13,U&=8191;let k=D+R*u+Z*c+W*a+E*(5*v)+y*(5*w);D=k>>>13,k&=8191,k+=m*(5*p)+g*(5*l)+b*(5*d)+x*(5*h)+B*(5*f),D+=k>>>13,k&=8191;let C=D+R*f+Z*u+W*c+E*a+y*(5*v);D=C>>>13,C&=8191,C+=m*(5*w)+g*(5*p)+b*(5*l)+x*(5*d)+B*(5*h),D+=C>>>13,C&=8191;let j=D+R*h+Z*f+W*u+E*c+y*a;D=j>>>13,j&=8191,j+=m*(5*v)+g*(5*w)+b*(5*p)+x*(5*l)+B*(5*d),D+=j>>>13,j&=8191;let q=D+R*d+Z*h+W*f+E*u+y*c;D=q>>>13,q&=8191,q+=m*a+g*(5*v)+b*(5*w)+x*(5*p)+B*(5*l),D+=q>>>13,q&=8191;let H=D+R*l+Z*d+W*h+E*f+y*u;D=H>>>13,H&=8191,H+=m*c+g*a+b*(5*v)+x*(5*w)+B*(5*p),D+=H>>>13,H&=8191;let G=D+R*p+Z*l+W*d+E*h+y*f;D=G>>>13,G&=8191,G+=m*u+g*c+b*a+x*(5*v)+B*(5*w),D+=G>>>13,G&=8191;let z=D+R*w+Z*p+W*l+E*d+y*h;D=z>>>13,z&=8191,z+=m*f+g*u+b*c+x*a+B*(5*v),D+=z>>>13,z&=8191;let N=D+R*v+Z*w+W*p+E*l+y*d;D=N>>>13,N&=8191,N+=m*h+g*f+b*u+x*c+B*a,D+=N>>>13,N&=8191,D=(D<<2)+D|0,D=D+T|0,T=D&8191,D=D>>>13,U+=D,s[0]=T,s[1]=U,s[2]=k,s[3]=C,s[4]=j,s[5]=q,s[6]=H,s[7]=G,s[8]=z,s[9]=N}finalize(){const{h:e,pad:n}=this,r=new Uint16Array(10);let i=e[1]>>>13;e[1]&=8191;for(let a=2;a<10;a++)e[a]+=i,i=e[a]>>>13,e[a]&=8191;e[0]+=i*5,i=e[0]>>>13,e[0]&=8191,e[1]+=i,i=e[1]>>>13,e[1]&=8191,e[2]+=i,r[0]=e[0]+5,i=r[0]>>>13,r[0]&=8191;for(let a=1;a<10;a++)r[a]=e[a]+i,i=r[a]>>>13,r[a]&=8191;r[9]-=8192;let s=(i^1)-1;for(let a=0;a<10;a++)r[a]&=s;s=~s;for(let a=0;a<10;a++)e[a]=e[a]&s|r[a];e[0]=(e[0]|e[1]<<13)&65535,e[1]=(e[1]>>>3|e[2]<<10)&65535,e[2]=(e[2]>>>6|e[3]<<7)&65535,e[3]=(e[3]>>>9|e[4]<<4)&65535,e[4]=(e[4]>>>12|e[5]<<1|e[6]<<14)&65535,e[5]=(e[6]>>>2|e[7]<<11)&65535,e[6]=(e[7]>>>5|e[8]<<8)&65535,e[7]=(e[8]>>>8|e[9]<<5)&65535;let o=e[0]+n[0];e[0]=o&65535;for(let a=1;a<8;a++)o=(e[a]+n[a]|0)+(o>>>16)|0,e[a]=o&65535;kn(r)}update(e){Vi(this),e=xr(e),We(e);const{buffer:n,blockLen:r}=this,i=e.length;for(let s=0;s<i;){const o=Math.min(r-this.pos,i-s);if(o===r){for(;r<=i-s;s+=r)this.process(e,s);continue}n.set(e.subarray(s,s+o),this.pos),this.pos+=o,s+=o,this.pos===r&&(this.process(n,0,!1),this.pos=0)}return this}destroy(){kn(this.h,this.r,this.buffer,this.pad)}digestInto(e){Vi(this),Au(e,this),this.finished=!0;const{buffer:n,h:r}=this;let{pos:i}=this;if(i){for(n[i++]=1;i<16;i++)n[i]=0;this.process(n,0,!0)}this.finalize();let s=0;for(let o=0;o<8;o++)e[s++]=r[o]>>>0,e[s++]=r[o]>>>8;return e}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}}function P8(t){const e=(r,i)=>t(i).update(xr(r)).digest(),n=t(new Uint8Array(32));return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=r=>t(r),e}const q8=P8(t=>new U8(t));function C8(t,e,n,r,i,s=20){let o=t[0],a=t[1],c=t[2],u=t[3],f=e[0],h=e[1],d=e[2],l=e[3],p=e[4],w=e[5],v=e[6],O=e[7],P=i,A=n[0],I=n[1],S=n[2],M=o,F=a,L=c,R=u,Z=f,W=h,E=d,y=l,m=p,g=w,b=v,x=O,B=P,D=A,T=I,U=S;for(let C=0;C<s;C+=2)M=M+Z|0,B=pe(B^M,16),m=m+B|0,Z=pe(Z^m,12),M=M+Z|0,B=pe(B^M,8),m=m+B|0,Z=pe(Z^m,7),F=F+W|0,D=pe(D^F,16),g=g+D|0,W=pe(W^g,12),F=F+W|0,D=pe(D^F,8),g=g+D|0,W=pe(W^g,7),L=L+E|0,T=pe(T^L,16),b=b+T|0,E=pe(E^b,12),L=L+E|0,T=pe(T^L,8),b=b+T|0,E=pe(E^b,7),R=R+y|0,U=pe(U^R,16),x=x+U|0,y=pe(y^x,12),R=R+y|0,U=pe(U^R,8),x=x+U|0,y=pe(y^x,7),M=M+W|0,U=pe(U^M,16),b=b+U|0,W=pe(W^b,12),M=M+W|0,U=pe(U^M,8),b=b+U|0,W=pe(W^b,7),F=F+E|0,B=pe(B^F,16),x=x+B|0,E=pe(E^x,12),F=F+E|0,B=pe(B^F,8),x=x+B|0,E=pe(E^x,7),L=L+y|0,D=pe(D^L,16),m=m+D|0,y=pe(y^m,12),L=L+y|0,D=pe(D^L,8),m=m+D|0,y=pe(y^m,7),R=R+Z|0,T=pe(T^R,16),g=g+T|0,Z=pe(Z^g,12),R=R+Z|0,T=pe(T^R,8),g=g+T|0,Z=pe(Z^g,7);let k=0;r[k++]=o+M|0,r[k++]=a+F|0,r[k++]=c+L|0,r[k++]=u+R|0,r[k++]=f+Z|0,r[k++]=h+W|0,r[k++]=d+E|0,r[k++]=l+y|0,r[k++]=p+m|0,r[k++]=w+g|0,r[k++]=v+b|0,r[k++]=O+x|0,r[k++]=P+B|0,r[k++]=A+D|0,r[k++]=I+T|0,r[k++]=S+U|0}const L8=N8(C8,{counterRight:!1,counterLength:4,allowShortKeys:!1}),V8=new Uint8Array(16),$0=(t,e)=>{t.update(e);const n=e.length%16;n&&t.update(V8.subarray(n))},k8=new Uint8Array(32);function ep(t,e,n,r,i){const s=t(e,n,k8),o=q8.create(s);i&&$0(o,i),$0(o,r);const a=hv(r.length,i?i.length:0,!0);o.update(a);const c=o.digest();return kn(s,a),c}const tp=lv({blockSize:64,nonceLength:12,tagLength:16},(t=>(e,n,r)=>({encrypt(s,o){const a=s.length;o=v0(a+16,o,!1),o.set(s);const c=o.subarray(0,-16);t(e,n,c,c,1);const u=ep(t,e,n,c,r);return o.set(u,a),kn(u),o},decrypt(s,o){o=v0(s.length-16,o,!1);const a=s.subarray(0,-16),c=s.subarray(-16),u=ep(t,e,n,a,r);if(!fv(c,u))throw new Error("invalid tag");return o.set(s.subarray(0,-16)),t(e,n,o,o,1),kn(u),o}}))(L8));function F8(t,e,n){return xo(t),n===void 0&&(n=new Uint8Array(t.outputLen)),ms(t,Jt(n),Jt(e))}const ku=Uint8Array.from([0]),np=Uint8Array.of();function z8(t,e,n,r=32){xo(t),fn(r);const i=t.outputLen;if(r>255*i)throw new Error("Length should be <= 255*HashLen");const s=Math.ceil(r/i);n===void 0&&(n=np);const o=new Uint8Array(s*i),a=ms.create(t,e),c=a._cloneInto(),u=new Uint8Array(a.outputLen);for(let f=0;f<s;f++)ku[0]=f+1,c.update(f===0?np:u).update(n).update(ku).digestInto(u),o.set(u,i*f),a._cloneInto(c);return a.destroy(),c.destroy(),kt(u,ku),o.slice(0,r)}const M8=(t,e,n,r,i)=>z8(t,F8(t,e,n),r,i),Fu=BigInt(0),zu=BigInt(1);function sa(t,e=""){if(typeof t!="boolean"){const n=e&&`"${e}"`;throw new Error(n+"expected boolean, got type="+typeof t)}return t}function _r(t,e,n=""){const r=Eo(t),i=t?.length,s=e!==void 0;if(!r||s&&i!==e){const o=n&&`"${n}" `,a=s?` of length ${e}`:"",c=r?`length=${i}`:`type=${typeof t}`;throw new Error(o+"expected Uint8Array"+a+", got "+c)}return t}function oa(t){const e=t.toString(16);return e.length&1?"0"+e:e}function rp(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);return t===""?Fu:BigInt("0x"+t)}function aa(t){return rp(Ai(t))}function ca(t){return Yt(t),rp(Ai(Uint8Array.from(t).reverse()))}function Mu(t,e){return So(t.toString(16).padStart(e*2,"0"))}function Ku(t,e){return Mu(t,e).reverse()}function st(t,e,n){let r;if(typeof e=="string")try{r=So(e)}catch(s){throw new Error(t+" must be hex string or Uint8Array, cause: "+s)}else if(Eo(e))r=Uint8Array.from(e);else throw new Error(t+" must be hex string or Uint8Array");const i=r.length;if(typeof n=="number"&&i!==n)throw new Error(t+" of length "+n+" expected, got "+i);return r}const ju=t=>typeof t=="bigint"&&Fu<=t;function K8(t,e,n){return ju(t)&&ju(e)&&ju(n)&&e<=t&&t<n}function Wu(t,e,n,r){if(!K8(e,n,r))throw new Error("expected valid "+t+": "+n+" <= n < "+r+", got "+e)}function ip(t){let e;for(e=0;t>Fu;t>>=zu,e+=1);return e}const Ns=t=>(zu<<BigInt(t))-zu;function j8(t,e,n){if(typeof t!="number"||t<2)throw new Error("hashLen must be a number");if(typeof e!="number"||e<2)throw new Error("qByteLen must be a number");if(typeof n!="function")throw new Error("hmacFn must be a function");const r=l=>new Uint8Array(l),i=l=>Uint8Array.of(l);let s=r(t),o=r(t),a=0;const c=()=>{s.fill(1),o.fill(0),a=0},u=(...l)=>n(o,s,...l),f=(l=r(0))=>{o=u(i(0),l),s=u(),l.length!==0&&(o=u(i(1),l),s=u())},h=()=>{if(a++>=1e3)throw new Error("drbg: tried 1000 values");let l=0;const p=[];for(;l<e;){s=u();const w=s.slice();p.push(w),l+=s.length}return Bn(...p)};return(l,p)=>{c(),f(l);let w;for(;!(w=p(h()));)f();return c(),w}}function ua(t,e,n={}){if(!t||typeof t!="object")throw new Error("expected valid options object");function r(i,s,o){const a=t[i];if(o&&a===void 0)return;const c=typeof a;if(c!==s||a===null)throw new Error(`param "${i}" is invalid: expected ${s}, got ${c}`)}Object.entries(e).forEach(([i,s])=>r(i,s,!1)),Object.entries(n).forEach(([i,s])=>r(i,s,!0))}function sp(t){const e=new WeakMap;return(n,...r)=>{const i=e.get(n);if(i!==void 0)return i;const s=t(n,...r);return e.set(n,s),s}}const St=BigInt(0),pt=BigInt(1),$r=BigInt(2),op=BigInt(3),ap=BigInt(4),cp=BigInt(5),W8=BigInt(7),up=BigInt(8),H8=BigInt(9),fp=BigInt(16);function qt(t,e){const n=t%e;return n>=St?n:e+n}function en(t,e,n){let r=t;for(;e-- >St;)r*=r,r%=n;return r}function lp(t,e){if(t===St)throw new Error("invert: expected non-zero number");if(e<=St)throw new Error("invert: expected positive modulus, got "+e);let n=qt(t,e),r=e,i=St,s=pt;for(;n!==St;){const a=r/n,c=r%n,u=i-s*a;r=n,n=c,i=s,s=u}if(r!==pt)throw new Error("invert: does not exist");return qt(i,e)}function Hu(t,e,n){if(!t.eql(t.sqr(e),n))throw new Error("Cannot find square root")}function hp(t,e){const n=(t.ORDER+pt)/ap,r=t.pow(e,n);return Hu(t,r,e),r}function G8(t,e){const n=(t.ORDER-cp)/up,r=t.mul(e,$r),i=t.pow(r,n),s=t.mul(e,i),o=t.mul(t.mul(s,$r),i),a=t.mul(s,t.sub(o,t.ONE));return Hu(t,a,e),a}function Z8(t){const e=Sr(t),n=dp(t),r=n(e,e.neg(e.ONE)),i=n(e,r),s=n(e,e.neg(r)),o=(t+W8)/fp;return(a,c)=>{let u=a.pow(c,o),f=a.mul(u,r);const h=a.mul(u,i),d=a.mul(u,s),l=a.eql(a.sqr(f),c),p=a.eql(a.sqr(h),c);u=a.cmov(u,f,l),f=a.cmov(d,h,p);const w=a.eql(a.sqr(f),c),v=a.cmov(u,f,w);return Hu(a,v,c),v}}function dp(t){if(t<op)throw new Error("sqrt is not defined for small field");let e=t-pt,n=0;for(;e%$r===St;)e/=$r,n++;let r=$r;const i=Sr(t);for(;gp(i,r)===1;)if(r++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(n===1)return hp;let s=i.pow(r,e);const o=(e+pt)/$r;return function(c,u){if(c.is0(u))return u;if(gp(c,u)!==1)throw new Error("Cannot find square root");let f=n,h=c.mul(c.ONE,s),d=c.pow(u,e),l=c.pow(u,o);for(;!c.eql(d,c.ONE);){if(c.is0(d))return c.ZERO;let p=1,w=c.sqr(d);for(;!c.eql(w,c.ONE);)if(p++,w=c.sqr(w),p===f)throw new Error("Cannot find square root");const v=pt<<BigInt(f-p-1),O=c.pow(h,v);f=p,h=c.sqr(O),d=c.mul(d,h),l=c.mul(l,O)}return l}}function X8(t){return t%ap===op?hp:t%up===cp?G8:t%fp===H8?Z8(t):dp(t)}const Y8=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function J8(t){const e={ORDER:"bigint",MASK:"bigint",BYTES:"number",BITS:"number"},n=Y8.reduce((r,i)=>(r[i]="function",r),e);return ua(t,n),t}function Q8(t,e,n){if(n<St)throw new Error("invalid exponent, negatives unsupported");if(n===St)return t.ONE;if(n===pt)return e;let r=t.ONE,i=e;for(;n>St;)n&pt&&(r=t.mul(r,i)),i=t.sqr(i),n>>=pt;return r}function pp(t,e,n=!1){const r=new Array(e.length).fill(n?t.ZERO:void 0),i=e.reduce((o,a,c)=>t.is0(a)?o:(r[c]=o,t.mul(o,a)),t.ONE),s=t.inv(i);return e.reduceRight((o,a,c)=>t.is0(a)?o:(r[c]=t.mul(o,r[c]),t.mul(o,a)),s),r}function gp(t,e){const n=(t.ORDER-pt)/$r,r=t.pow(e,n),i=t.eql(r,t.ONE),s=t.eql(r,t.ZERO),o=t.eql(r,t.neg(t.ONE));if(!i&&!s&&!o)throw new Error("invalid Legendre symbol result");return i?1:s?0:-1}function yp(t,e){e!==void 0&&fn(e);const n=e!==void 0?e:t.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function Sr(t,e,n=!1,r={}){if(t<=St)throw new Error("invalid field: expected ORDER > 0, got "+t);let i,s,o=!1,a;if(typeof e=="object"&&e!=null){if(r.sqrt||n)throw new Error("cannot specify opts in two arguments");const d=e;d.BITS&&(i=d.BITS),d.sqrt&&(s=d.sqrt),typeof d.isLE=="boolean"&&(n=d.isLE),typeof d.modFromBytes=="boolean"&&(o=d.modFromBytes),a=d.allowedLengths}else typeof e=="number"&&(i=e),r.sqrt&&(s=r.sqrt);const{nBitLength:c,nByteLength:u}=yp(t,i);if(u>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let f;const h=Object.freeze({ORDER:t,isLE:n,BITS:c,BYTES:u,MASK:Ns(c),ZERO:St,ONE:pt,allowedLengths:a,create:d=>qt(d,t),isValid:d=>{if(typeof d!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof d);return St<=d&&d<t},is0:d=>d===St,isValidNot0:d=>!h.is0(d)&&h.isValid(d),isOdd:d=>(d&pt)===pt,neg:d=>qt(-d,t),eql:(d,l)=>d===l,sqr:d=>qt(d*d,t),add:(d,l)=>qt(d+l,t),sub:(d,l)=>qt(d-l,t),mul:(d,l)=>qt(d*l,t),pow:(d,l)=>Q8(h,d,l),div:(d,l)=>qt(d*lp(l,t),t),sqrN:d=>d*d,addN:(d,l)=>d+l,subN:(d,l)=>d-l,mulN:(d,l)=>d*l,inv:d=>lp(d,t),sqrt:s||(d=>(f||(f=X8(t)),f(h,d))),toBytes:d=>n?Ku(d,u):Mu(d,u),fromBytes:(d,l=!0)=>{if(a){if(!a.includes(d.length)||d.length>u)throw new Error("Field.fromBytes: expected "+a+" bytes, got "+d.length);const w=new Uint8Array(u);w.set(d,n?0:w.length-d.length),d=w}if(d.length!==u)throw new Error("Field.fromBytes: expected "+u+" bytes, got "+d.length);let p=n?ca(d):aa(d);if(o&&(p=qt(p,t)),!l&&!h.isValid(p))throw new Error("invalid field element: outside of range 0..ORDER");return p},invertBatch:d=>pp(h,d),cmov:(d,l,p)=>p?l:d});return Object.freeze(h)}function wp(t){if(typeof t!="bigint")throw new Error("field order must be bigint");const e=t.toString(2).length;return Math.ceil(e/8)}function bp(t){const e=wp(t);return e+Math.ceil(e/2)}function _8(t,e,n=!1){const r=t.length,i=wp(e),s=bp(e);if(r<16||r<s||r>1024)throw new Error("expected "+s+"-1024 bytes of input, got "+r);const o=n?ca(t):aa(t),a=qt(o,e-pt)+pt;return n?Ku(a,i):Mu(a,i)}const ki=BigInt(0),ei=BigInt(1);function fa(t,e){const n=e.negate();return t?n:e}function Gu(t,e){const n=pp(t.Fp,e.map(r=>r.Z));return e.map((r,i)=>t.fromAffine(r.toAffine(n[i])))}function mp(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+t)}function Zu(t,e){mp(t,e);const n=Math.ceil(e/t)+1,r=2**(t-1),i=2**t,s=Ns(t),o=BigInt(t);return{windows:n,windowSize:r,mask:s,maxNumber:i,shiftBy:o}}function vp(t,e,n){const{windowSize:r,mask:i,maxNumber:s,shiftBy:o}=n;let a=Number(t&i),c=t>>o;a>r&&(a-=s,c+=ei);const u=e*r,f=u+Math.abs(a)-1,h=a===0,d=a<0,l=e%2!==0;return{nextN:c,offset:f,isZero:h,isNeg:d,isNegF:l,offsetF:u}}function $8(t,e){if(!Array.isArray(t))throw new Error("array expected");t.forEach((n,r)=>{if(!(n instanceof e))throw new Error("invalid point at index "+r)})}function e4(t,e){if(!Array.isArray(t))throw new Error("array of scalars expected");t.forEach((n,r)=>{if(!e.isValid(n))throw new Error("invalid scalar at index "+r)})}const Xu=new WeakMap,Ep=new WeakMap;function Yu(t){return Ep.get(t)||1}function xp(t){if(t!==ki)throw new Error("invalid wNAF")}class t4{constructor(e,n){this.BASE=e.BASE,this.ZERO=e.ZERO,this.Fn=e.Fn,this.bits=n}_unsafeLadder(e,n,r=this.ZERO){let i=e;for(;n>ki;)n&ei&&(r=r.add(i)),i=i.double(),n>>=ei;return r}precomputeWindow(e,n){const{windows:r,windowSize:i}=Zu(n,this.bits),s=[];let o=e,a=o;for(let c=0;c<r;c++){a=o,s.push(a);for(let u=1;u<i;u++)a=a.add(o),s.push(a);o=a.double()}return s}wNAF(e,n,r){if(!this.Fn.isValid(r))throw new Error("invalid scalar");let i=this.ZERO,s=this.BASE;const o=Zu(e,this.bits);for(let a=0;a<o.windows;a++){const{nextN:c,offset:u,isZero:f,isNeg:h,isNegF:d,offsetF:l}=vp(r,a,o);r=c,f?s=s.add(fa(d,n[l])):i=i.add(fa(h,n[u]))}return xp(r),{p:i,f:s}}wNAFUnsafe(e,n,r,i=this.ZERO){const s=Zu(e,this.bits);for(let o=0;o<s.windows&&r!==ki;o++){const{nextN:a,offset:c,isZero:u,isNeg:f}=vp(r,o,s);if(r=a,!u){const h=n[c];i=i.add(f?h.negate():h)}}return xp(r),i}getPrecomputes(e,n,r){let i=Xu.get(n);return i||(i=this.precomputeWindow(n,e),e!==1&&(typeof r=="function"&&(i=r(i)),Xu.set(n,i))),i}cached(e,n,r){const i=Yu(e);return this.wNAF(i,this.getPrecomputes(i,e,r),n)}unsafe(e,n,r,i){const s=Yu(e);return s===1?this._unsafeLadder(e,n,i):this.wNAFUnsafe(s,this.getPrecomputes(s,e,r),n,i)}createCache(e,n){mp(n,this.bits),Ep.set(e,n),Xu.delete(e)}hasCache(e){return Yu(e)!==1}}function n4(t,e,n,r){let i=e,s=t.ZERO,o=t.ZERO;for(;n>ki||r>ki;)n&ei&&(s=s.add(i)),r&ei&&(o=o.add(i)),i=i.double(),n>>=ei,r>>=ei;return{p1:s,p2:o}}function r4(t,e,n,r){$8(n,t),e4(r,e);const i=n.length,s=r.length;if(i!==s)throw new Error("arrays of points and scalars must have equal length");const o=t.ZERO,a=ip(BigInt(i));let c=1;a>12?c=a-3:a>4?c=a-2:a>0&&(c=2);const u=Ns(c),f=new Array(Number(u)+1).fill(o),h=Math.floor((e.BITS-1)/c)*c;let d=o;for(let l=h;l>=0;l-=c){f.fill(o);for(let w=0;w<s;w++){const v=r[w],O=Number(v>>BigInt(l)&u);f[O]=f[O].add(n[w])}let p=o;for(let w=f.length-1,v=o;w>0;w--)v=v.add(f[w]),p=p.add(v);if(d=d.add(p),l!==0)for(let w=0;w<c;w++)d=d.double()}return d}function Sp(t,e,n){if(e){if(e.ORDER!==t)throw new Error("Field.ORDER must match order: Fp == p, Fn == n");return J8(e),e}else return Sr(t,{isLE:n})}function i4(t,e,n={},r){if(r===void 0&&(r=t==="edwards"),!e||typeof e!="object")throw new Error(`expected valid ${t} CURVE object`);for(const c of["p","n","h"]){const u=e[c];if(!(typeof u=="bigint"&&u>ki))throw new Error(`CURVE.${c} must be positive bigint`)}const i=Sp(e.p,n.Fp,r),s=Sp(e.n,n.Fn,r),a=["Gx","Gy","a",t==="weierstrass"?"b":"d"];for(const c of a)if(!i.isValid(e[c]))throw new Error(`CURVE.${c} must be valid field element of CURVE.Fp`);return e=Object.freeze(Object.assign({},e)),{CURVE:e,Fp:i,Fn:s}}BigInt(0),BigInt(1),BigInt(2),BigInt(8),vh("HashToScalar-");const Us=BigInt(0),Fi=BigInt(1),la=BigInt(2);function s4(t){return ua(t,{adjustScalarBytes:"function",powPminus2:"function"}),Object.freeze({...t})}function o4(t){const e=s4(t),{P:n,type:r,adjustScalarBytes:i,powPminus2:s,randomBytes:o}=e,a=r==="x25519";if(!a&&r!=="x448")throw new Error("invalid type");const c=o||Dn,u=a?255:448,f=a?32:56,h=BigInt(a?9:5),d=BigInt(a?121665:39081),l=a?la**BigInt(254):la**BigInt(447),p=a?BigInt(8)*la**BigInt(251)-Fi:BigInt(4)*la**BigInt(445)-Fi,w=l+p+Fi,v=y=>qt(y,n),O=P(h);function P(y){return Ku(v(y),f)}function A(y){const m=st("u coordinate",y,f);return a&&(m[31]&=127),v(ca(m))}function I(y){return ca(i(st("scalar",y,f)))}function S(y,m){const g=L(A(m),I(y));if(g===Us)throw new Error("invalid private or public key received");return P(g)}function M(y){return S(y,O)}function F(y,m,g){const b=v(y*(m-g));return m=v(m-b),g=v(g+b),{x_2:m,x_3:g}}function L(y,m){Wu("u",y,Us,n),Wu("scalar",m,l,w);const g=m,b=y;let x=Fi,B=Us,D=y,T=Fi,U=Us;for(let C=BigInt(u-1);C>=Us;C--){const j=g>>C&Fi;U^=j,{x_2:x,x_3:D}=F(U,x,D),{x_2:B,x_3:T}=F(U,B,T),U=j;const q=x+B,H=v(q*q),G=x-B,z=v(G*G),N=H-z,V=D+T,K=D-T,X=v(K*q),$=v(V*G),_=X+$,te=X-$;D=v(_*_),T=v(b*v(te*te)),x=v(H*z),B=v(N*(H+v(d*N)))}({x_2:x,x_3:D}=F(U,x,D)),{x_2:B,x_3:T}=F(U,B,T);const k=s(B);return v(x*k)}const R={secretKey:f,publicKey:f,seed:f},Z=(y=c(f))=>(Yt(y,R.seed),y);function W(y){const m=Z(y);return{secretKey:m,publicKey:M(m)}}return{keygen:W,getSharedSecret:(y,m)=>S(y,m),getPublicKey:y=>M(y),scalarMult:S,scalarMultBase:M,utils:{randomSecretKey:Z,randomPrivateKey:Z},GuBytes:O.slice(),lengths:R}}const a4=BigInt(1),Ip=BigInt(2),c4=BigInt(3),u4=BigInt(5),f4=BigInt(8),Ap=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed"),l4={p:Ap,n:BigInt("0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed"),h:f4,a:BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"),d:BigInt("0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"),Gx:BigInt("0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a"),Gy:BigInt("0x6666666666666666666666666666666666666666666666666666666666666658")};function h4(t){const e=BigInt(10),n=BigInt(20),r=BigInt(40),i=BigInt(80),s=Ap,a=t*t%s*t%s,c=en(a,Ip,s)*a%s,u=en(c,a4,s)*t%s,f=en(u,u4,s)*u%s,h=en(f,e,s)*f%s,d=en(h,n,s)*h%s,l=en(d,r,s)*d%s,p=en(l,i,s)*l%s,w=en(p,i,s)*l%s,v=en(w,e,s)*f%s;return{pow_p_5_8:en(v,Ip,s)*t%s,b2:a}}function d4(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}const p4=Sr(l4.p,{isLE:!0}),Ju=(()=>{const t=p4.ORDER;return o4({P:t,type:"x25519",powPminus2:e=>{const{pow_p_5_8:n,b2:r}=h4(e);return qt(en(n,c4,t)*r,t)},adjustScalarBytes:d4})})(),Bp=(t,e)=>(t+(t>=0?e:-e)/Dp)/e;function g4(t,e,n){const[[r,i],[s,o]]=e,a=Bp(o*t,n),c=Bp(-i*t,n);let u=t-a*r-c*s,f=-a*i-c*o;const h=u<Mn,d=f<Mn;h&&(u=-u),d&&(f=-f);const l=Ns(Math.ceil(ip(n)/2))+zi;if(u<Mn||u>=l||f<Mn||f>=l)throw new Error("splitScalar (endomorphism): failed, k="+t);return{k1neg:h,k1:u,k2neg:d,k2:f}}function Qu(t){if(!["compact","recovered","der"].includes(t))throw new Error('Signature format must be "compact", "recovered", or "der"');return t}function _u(t,e){const n={};for(let r of Object.keys(e))n[r]=t[r]===void 0?e[r]:t[r];return sa(n.lowS,"lowS"),sa(n.prehash,"prehash"),n.format!==void 0&&Qu(n.format),n}class y4 extends Error{constructor(e=""){super(e)}}const zn={Err:y4,_tlv:{encode:(t,e)=>{const{Err:n}=zn;if(t<0||t>256)throw new n("tlv.encode: wrong tag");if(e.length&1)throw new n("tlv.encode: unpadded data");const r=e.length/2,i=oa(r);if(i.length/2&128)throw new n("tlv.encode: long form length too big");const s=r>127?oa(i.length/2|128):"";return oa(t)+s+i+e},decode(t,e){const{Err:n}=zn;let r=0;if(t<0||t>256)throw new n("tlv.encode: wrong tag");if(e.length<2||e[r++]!==t)throw new n("tlv.decode: wrong tlv");const i=e[r++],s=!!(i&128);let o=0;if(!s)o=i;else{const c=i&127;if(!c)throw new n("tlv.decode(long): indefinite length not supported");if(c>4)throw new n("tlv.decode(long): byte length is too big");const u=e.subarray(r,r+c);if(u.length!==c)throw new n("tlv.decode: length bytes not complete");if(u[0]===0)throw new n("tlv.decode(long): zero leftmost byte");for(const f of u)o=o<<8|f;if(r+=c,o<128)throw new n("tlv.decode(long): not minimal encoding")}const a=e.subarray(r,r+o);if(a.length!==o)throw new n("tlv.decode: wrong value length");return{v:a,l:e.subarray(r+o)}}},_int:{encode(t){const{Err:e}=zn;if(t<Mn)throw new e("integer: negative integers are not allowed");let n=oa(t);if(Number.parseInt(n[0],16)&8&&(n="00"+n),n.length&1)throw new e("unexpected DER parsing assertion: unpadded hex");return n},decode(t){const{Err:e}=zn;if(t[0]&128)throw new e("invalid signature integer: negative");if(t[0]===0&&!(t[1]&128))throw new e("invalid signature integer: unnecessary leading zero");return aa(t)}},toSig(t){const{Err:e,_int:n,_tlv:r}=zn,i=st("signature",t),{v:s,l:o}=r.decode(48,i);if(o.length)throw new e("invalid signature: left bytes after parsing");const{v:a,l:c}=r.decode(2,s),{v:u,l:f}=r.decode(2,c);if(f.length)throw new e("invalid signature: left bytes after parsing");return{r:n.decode(a),s:n.decode(u)}},hexFromSig(t){const{_tlv:e,_int:n}=zn,r=e.encode(2,n.encode(t.r)),i=e.encode(2,n.encode(t.s)),s=r+i;return e.encode(48,s)}},Mn=BigInt(0),zi=BigInt(1),Dp=BigInt(2),ha=BigInt(3),w4=BigInt(4);function Mi(t,e){const{BYTES:n}=t;let r;if(typeof e=="bigint")r=e;else{let i=st("private key",e);try{r=t.fromBytes(i)}catch{throw new Error(`invalid private key: expected ui8a of size ${n}, got ${typeof e}`)}}if(!t.isValidNot0(r))throw new Error("invalid private key: out of range [1..N-1]");return r}function b4(t,e={}){const n=i4("weierstrass",t,e),{Fp:r,Fn:i}=n;let s=n.CURVE;const{h:o,n:a}=s;ua(e,{},{allowInfinityPoint:"boolean",clearCofactor:"function",isTorsionFree:"function",fromBytes:"function",toBytes:"function",endo:"object",wrapPrivateKey:"boolean"});const{endo:c}=e;if(c&&(!r.is0(s.a)||typeof c.beta!="bigint"||!Array.isArray(c.basises)))throw new Error('invalid endo: expected "beta": bigint and "basises": array');const u=Tp(r,i);function f(){if(!r.isOdd)throw new Error("compression is not supported: Field does not have .isOdd()")}function h(E,y,m){const{x:g,y:b}=y.toAffine(),x=r.toBytes(g);if(sa(m,"isCompressed"),m){f();const B=!r.isOdd(b);return Bn(Op(B),x)}else return Bn(Uint8Array.of(4),x,r.toBytes(b))}function d(E){_r(E,void 0,"Point");const{publicKey:y,publicKeyUncompressed:m}=u,g=E.length,b=E[0],x=E.subarray(1);if(g===y&&(b===2||b===3)){const B=r.fromBytes(x);if(!r.isValid(B))throw new Error("bad point: is not on curve, wrong x");const D=w(B);let T;try{T=r.sqrt(D)}catch(C){const j=C instanceof Error?": "+C.message:"";throw new Error("bad point: is not on curve, sqrt error"+j)}f();const U=r.isOdd(T);return(b&1)===1!==U&&(T=r.neg(T)),{x:B,y:T}}else if(g===m&&b===4){const B=r.BYTES,D=r.fromBytes(x.subarray(0,B)),T=r.fromBytes(x.subarray(B,B*2));if(!v(D,T))throw new Error("bad point: is not on curve");return{x:D,y:T}}else throw new Error(`bad point: got length ${g}, expected compressed=${y} or uncompressed=${m}`)}const l=e.toBytes||h,p=e.fromBytes||d;function w(E){const y=r.sqr(E),m=r.mul(y,E);return r.add(r.add(m,r.mul(E,s.a)),s.b)}function v(E,y){const m=r.sqr(y),g=w(E);return r.eql(m,g)}if(!v(s.Gx,s.Gy))throw new Error("bad curve params: generator point");const O=r.mul(r.pow(s.a,ha),w4),P=r.mul(r.sqr(s.b),BigInt(27));if(r.is0(r.add(O,P)))throw new Error("bad curve params: a or b");function A(E,y,m=!1){if(!r.isValid(y)||m&&r.is0(y))throw new Error(`bad point coordinate ${E}`);return y}function I(E){if(!(E instanceof R))throw new Error("ProjectivePoint expected")}function S(E){if(!c||!c.basises)throw new Error("no endo");return g4(E,c.basises,i.ORDER)}const M=sp((E,y)=>{const{X:m,Y:g,Z:b}=E;if(r.eql(b,r.ONE))return{x:m,y:g};const x=E.is0();y==null&&(y=x?r.ONE:r.inv(b));const B=r.mul(m,y),D=r.mul(g,y),T=r.mul(b,y);if(x)return{x:r.ZERO,y:r.ZERO};if(!r.eql(T,r.ONE))throw new Error("invZ was invalid");return{x:B,y:D}}),F=sp(E=>{if(E.is0()){if(e.allowInfinityPoint&&!r.is0(E.Y))return;throw new Error("bad point: ZERO")}const{x:y,y:m}=E.toAffine();if(!r.isValid(y)||!r.isValid(m))throw new Error("bad point: x or y not field elements");if(!v(y,m))throw new Error("bad point: equation left != right");if(!E.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});function L(E,y,m,g,b){return m=new R(r.mul(m.X,E),m.Y,m.Z),y=fa(g,y),m=fa(b,m),y.add(m)}class R{constructor(y,m,g){this.X=A("x",y),this.Y=A("y",m,!0),this.Z=A("z",g),Object.freeze(this)}static CURVE(){return s}static fromAffine(y){const{x:m,y:g}=y||{};if(!y||!r.isValid(m)||!r.isValid(g))throw new Error("invalid affine point");if(y instanceof R)throw new Error("projective point not allowed");return r.is0(m)&&r.is0(g)?R.ZERO:new R(m,g,r.ONE)}static fromBytes(y){const m=R.fromAffine(p(_r(y,void 0,"point")));return m.assertValidity(),m}static fromHex(y){return R.fromBytes(st("pointHex",y))}get x(){return this.toAffine().x}get y(){return this.toAffine().y}precompute(y=8,m=!0){return W.createCache(this,y),m||this.multiply(ha),this}assertValidity(){F(this)}hasEvenY(){const{y}=this.toAffine();if(!r.isOdd)throw new Error("Field doesn't support isOdd");return!r.isOdd(y)}equals(y){I(y);const{X:m,Y:g,Z:b}=this,{X:x,Y:B,Z:D}=y,T=r.eql(r.mul(m,D),r.mul(x,b)),U=r.eql(r.mul(g,D),r.mul(B,b));return T&&U}negate(){return new R(this.X,r.neg(this.Y),this.Z)}double(){const{a:y,b:m}=s,g=r.mul(m,ha),{X:b,Y:x,Z:B}=this;let D=r.ZERO,T=r.ZERO,U=r.ZERO,k=r.mul(b,b),C=r.mul(x,x),j=r.mul(B,B),q=r.mul(b,x);return q=r.add(q,q),U=r.mul(b,B),U=r.add(U,U),D=r.mul(y,U),T=r.mul(g,j),T=r.add(D,T),D=r.sub(C,T),T=r.add(C,T),T=r.mul(D,T),D=r.mul(q,D),U=r.mul(g,U),j=r.mul(y,j),q=r.sub(k,j),q=r.mul(y,q),q=r.add(q,U),U=r.add(k,k),k=r.add(U,k),k=r.add(k,j),k=r.mul(k,q),T=r.add(T,k),j=r.mul(x,B),j=r.add(j,j),k=r.mul(j,q),D=r.sub(D,k),U=r.mul(j,C),U=r.add(U,U),U=r.add(U,U),new R(D,T,U)}add(y){I(y);const{X:m,Y:g,Z:b}=this,{X:x,Y:B,Z:D}=y;let T=r.ZERO,U=r.ZERO,k=r.ZERO;const C=s.a,j=r.mul(s.b,ha);let q=r.mul(m,x),H=r.mul(g,B),G=r.mul(b,D),z=r.add(m,g),N=r.add(x,B);z=r.mul(z,N),N=r.add(q,H),z=r.sub(z,N),N=r.add(m,b);let V=r.add(x,D);return N=r.mul(N,V),V=r.add(q,G),N=r.sub(N,V),V=r.add(g,b),T=r.add(B,D),V=r.mul(V,T),T=r.add(H,G),V=r.sub(V,T),k=r.mul(C,N),T=r.mul(j,G),k=r.add(T,k),T=r.sub(H,k),k=r.add(H,k),U=r.mul(T,k),H=r.add(q,q),H=r.add(H,q),G=r.mul(C,G),N=r.mul(j,N),H=r.add(H,G),G=r.sub(q,G),G=r.mul(C,G),N=r.add(N,G),q=r.mul(H,N),U=r.add(U,q),q=r.mul(V,N),T=r.mul(z,T),T=r.sub(T,q),q=r.mul(z,H),k=r.mul(V,k),k=r.add(k,q),new R(T,U,k)}subtract(y){return this.add(y.negate())}is0(){return this.equals(R.ZERO)}multiply(y){const{endo:m}=e;if(!i.isValidNot0(y))throw new Error("invalid scalar: out of range");let g,b;const x=B=>W.cached(this,B,D=>Gu(R,D));if(m){const{k1neg:B,k1:D,k2neg:T,k2:U}=S(y),{p:k,f:C}=x(D),{p:j,f:q}=x(U);b=C.add(q),g=L(m.beta,k,j,B,T)}else{const{p:B,f:D}=x(y);g=B,b=D}return Gu(R,[g,b])[0]}multiplyUnsafe(y){const{endo:m}=e,g=this;if(!i.isValid(y))throw new Error("invalid scalar: out of range");if(y===Mn||g.is0())return R.ZERO;if(y===zi)return g;if(W.hasCache(this))return this.multiply(y);if(m){const{k1neg:b,k1:x,k2neg:B,k2:D}=S(y),{p1:T,p2:U}=n4(R,g,x,D);return L(m.beta,T,U,b,B)}else return W.unsafe(g,y)}multiplyAndAddUnsafe(y,m,g){const b=this.multiplyUnsafe(m).add(y.multiplyUnsafe(g));return b.is0()?void 0:b}toAffine(y){return M(this,y)}isTorsionFree(){const{isTorsionFree:y}=e;return o===zi?!0:y?y(R,this):W.unsafe(this,a).is0()}clearCofactor(){const{clearCofactor:y}=e;return o===zi?this:y?y(R,this):this.multiplyUnsafe(o)}isSmallOrder(){return this.multiplyUnsafe(o).is0()}toBytes(y=!0){return sa(y,"isCompressed"),this.assertValidity(),l(R,this,y)}toHex(y=!0){return Ai(this.toBytes(y))}toString(){return`<Point ${this.is0()?"ZERO":this.toHex()}>`}get px(){return this.X}get py(){return this.X}get pz(){return this.Z}toRawBytes(y=!0){return this.toBytes(y)}_setWindowSize(y){this.precompute(y)}static normalizeZ(y){return Gu(R,y)}static msm(y,m){return r4(R,i,y,m)}static fromPrivateKey(y){return R.BASE.multiply(Mi(i,y))}}R.BASE=new R(s.Gx,s.Gy,r.ONE),R.ZERO=new R(r.ZERO,r.ONE,r.ZERO),R.Fp=r,R.Fn=i;const Z=i.BITS,W=new t4(R,e.endo?Math.ceil(Z/2):Z);return R.BASE.precompute(8),R}function Op(t){return Uint8Array.of(t?2:3)}function Tp(t,e){return{secretKey:e.BYTES,publicKey:1+t.BYTES,publicKeyUncompressed:1+2*t.BYTES,publicKeyHasPrefix:!0,signature:2*e.BYTES}}function m4(t,e={}){const{Fn:n}=t,r=e.randomBytes||Dn,i=Object.assign(Tp(t.Fp,n),{seed:bp(n.ORDER)});function s(l){try{return!!Mi(n,l)}catch{return!1}}function o(l,p){const{publicKey:w,publicKeyUncompressed:v}=i;try{const O=l.length;return p===!0&&O!==w||p===!1&&O!==v?!1:!!t.fromBytes(l)}catch{return!1}}function a(l=r(i.seed)){return _8(_r(l,i.seed,"seed"),n.ORDER)}function c(l,p=!0){return t.BASE.multiply(Mi(n,l)).toBytes(p)}function u(l){const p=a(l);return{secretKey:p,publicKey:c(p)}}function f(l){if(typeof l=="bigint")return!1;if(l instanceof t)return!0;const{secretKey:p,publicKey:w,publicKeyUncompressed:v}=i;if(n.allowedLengths||p===w)return;const O=st("key",l).length;return O===w||O===v}function h(l,p,w=!0){if(f(l)===!0)throw new Error("first arg must be private key");if(f(p)===!1)throw new Error("second arg must be public key");const v=Mi(n,l);return t.fromHex(p).multiply(v).toBytes(w)}return Object.freeze({getPublicKey:c,getSharedSecret:h,keygen:u,Point:t,utils:{isValidSecretKey:s,isValidPublicKey:o,randomSecretKey:a,isValidPrivateKey:s,randomPrivateKey:a,normPrivateKeyToScalar:l=>Mi(n,l),precompute(l=8,p=t.BASE){return p.precompute(l,!1)}},lengths:i})}function v4(t,e,n={}){xo(e),ua(n,{},{hmac:"function",lowS:"boolean",randomBytes:"function",bits2int:"function",bits2int_modN:"function"});const r=n.randomBytes||Dn,i=n.hmac||((m,...g)=>ms(e,m,Bn(...g))),{Fp:s,Fn:o}=t,{ORDER:a,BITS:c}=o,{keygen:u,getPublicKey:f,getSharedSecret:h,utils:d,lengths:l}=m4(t,n),p={prehash:!1,lowS:typeof n.lowS=="boolean"?n.lowS:!1,format:void 0,extraEntropy:!1},w="compact";function v(m){const g=a>>zi;return m>g}function O(m,g){if(!o.isValidNot0(g))throw new Error(`invalid signature ${m}: out of range 1..Point.Fn.ORDER`);return g}function P(m,g){Qu(g);const b=l.signature,x=g==="compact"?b:g==="recovered"?b+1:void 0;return _r(m,x,`${g} signature`)}class A{constructor(g,b,x){this.r=O("r",g),this.s=O("s",b),x!=null&&(this.recovery=x),Object.freeze(this)}static fromBytes(g,b=w){P(g,b);let x;if(b==="der"){const{r:U,s:k}=zn.toSig(_r(g));return new A(U,k)}b==="recovered"&&(x=g[0],b="compact",g=g.subarray(1));const B=o.BYTES,D=g.subarray(0,B),T=g.subarray(B,B*2);return new A(o.fromBytes(D),o.fromBytes(T),x)}static fromHex(g,b){return this.fromBytes(So(g),b)}addRecoveryBit(g){return new A(this.r,this.s,g)}recoverPublicKey(g){const b=s.ORDER,{r:x,s:B,recovery:D}=this;if(D==null||![0,1,2,3].includes(D))throw new Error("recovery id invalid");if(a*Dp<b&&D>1)throw new Error("recovery id is ambiguous for h>1 curve");const U=D===2||D===3?x+a:x;if(!s.isValid(U))throw new Error("recovery id 2 or 3 invalid");const k=s.toBytes(U),C=t.fromBytes(Bn(Op((D&1)===0),k)),j=o.inv(U),q=S(st("msgHash",g)),H=o.create(-q*j),G=o.create(B*j),z=t.BASE.multiplyUnsafe(H).add(C.multiplyUnsafe(G));if(z.is0())throw new Error("point at infinify");return z.assertValidity(),z}hasHighS(){return v(this.s)}toBytes(g=w){if(Qu(g),g==="der")return So(zn.hexFromSig(this));const b=o.toBytes(this.r),x=o.toBytes(this.s);if(g==="recovered"){if(this.recovery==null)throw new Error("recovery bit must be present");return Bn(Uint8Array.of(this.recovery),b,x)}return Bn(b,x)}toHex(g){return Ai(this.toBytes(g))}assertValidity(){}static fromCompact(g){return A.fromBytes(st("sig",g),"compact")}static fromDER(g){return A.fromBytes(st("sig",g),"der")}normalizeS(){return this.hasHighS()?new A(this.r,o.neg(this.s),this.recovery):this}toDERRawBytes(){return this.toBytes("der")}toDERHex(){return Ai(this.toBytes("der"))}toCompactRawBytes(){return this.toBytes("compact")}toCompactHex(){return Ai(this.toBytes("compact"))}}const I=n.bits2int||function(g){if(g.length>8192)throw new Error("input is too large");const b=aa(g),x=g.length*8-c;return x>0?b>>BigInt(x):b},S=n.bits2int_modN||function(g){return o.create(I(g))},M=Ns(c);function F(m){return Wu("num < 2^"+c,m,Mn,M),o.toBytes(m)}function L(m,g){return _r(m,void 0,"message"),g?_r(e(m),void 0,"prehashed message"):m}function R(m,g,b){if(["recovered","canonical"].some(H=>H in b))throw new Error("sign() legacy options not supported");const{lowS:x,prehash:B,extraEntropy:D}=_u(b,p);m=L(m,B);const T=S(m),U=Mi(o,g),k=[F(U),F(T)];if(D!=null&&D!==!1){const H=D===!0?r(l.secretKey):D;k.push(st("extraEntropy",H))}const C=Bn(...k),j=T;function q(H){const G=I(H);if(!o.isValidNot0(G))return;const z=o.inv(G),N=t.BASE.multiply(G).toAffine(),V=o.create(N.x);if(V===Mn)return;const K=o.create(z*o.create(j+V*U));if(K===Mn)return;let X=(N.x===V?0:2)|Number(N.y&zi),$=K;return x&&v(K)&&($=o.neg(K),X^=1),new A(V,$,X)}return{seed:C,k2sig:q}}function Z(m,g,b={}){m=st("message",m);const{seed:x,k2sig:B}=R(m,g,b);return j8(e.outputLen,o.BYTES,i)(x,B)}function W(m){let g;const b=typeof m=="string"||Eo(m),x=!b&&m!==null&&typeof m=="object"&&typeof m.r=="bigint"&&typeof m.s=="bigint";if(!b&&!x)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");if(x)g=new A(m.r,m.s);else if(b){try{g=A.fromBytes(st("sig",m),"der")}catch(B){if(!(B instanceof zn.Err))throw B}if(!g)try{g=A.fromBytes(st("sig",m),"compact")}catch{return!1}}return g||!1}function E(m,g,b,x={}){const{lowS:B,prehash:D,format:T}=_u(x,p);if(b=st("publicKey",b),g=L(st("message",g),D),"strict"in x)throw new Error("options.strict was renamed to lowS");const U=T===void 0?W(m):A.fromBytes(st("sig",m),T);if(U===!1)return!1;try{const k=t.fromBytes(b);if(B&&U.hasHighS())return!1;const{r:C,s:j}=U,q=S(g),H=o.inv(j),G=o.create(q*H),z=o.create(C*H),N=t.BASE.multiplyUnsafe(G).add(k.multiplyUnsafe(z));return N.is0()?!1:o.create(N.x)===C}catch{return!1}}function y(m,g,b={}){const{prehash:x}=_u(b,p);return g=L(g,x),A.fromBytes(m,"recovered").recoverPublicKey(g).toBytes()}return Object.freeze({keygen:u,getPublicKey:f,getSharedSecret:h,utils:d,lengths:l,Point:t,sign:Z,verify:E,recoverPublicKey:y,Signature:A,hash:e})}function E4(t){const e={a:t.a,b:t.b,p:t.Fp.ORDER,n:t.n,h:t.h,Gx:t.Gx,Gy:t.Gy},n=t.Fp;let r=t.allowedPrivateKeyLengths?Array.from(new Set(t.allowedPrivateKeyLengths.map(o=>Math.ceil(o/2)))):void 0;const i=Sr(e.n,{BITS:t.nBitLength,allowedLengths:r,modFromBytes:t.wrapPrivateKey}),s={Fp:n,Fn:i,allowInfinityPoint:t.allowInfinityPoint,endo:t.endo,isTorsionFree:t.isTorsionFree,clearCofactor:t.clearCofactor,fromBytes:t.fromBytes,toBytes:t.toBytes};return{CURVE:e,curveOpts:s}}function x4(t){const{CURVE:e,curveOpts:n}=E4(t),r={hmac:t.hmac,randomBytes:t.randomBytes,lowS:t.lowS,bits2int:t.bits2int,bits2int_modN:t.bits2int_modN};return{CURVE:e,curveOpts:n,hash:t.hash,ecdsaOpts:r}}function S4(t,e){const n=e.Point;return Object.assign({},e,{ProjectivePoint:n,CURVE:Object.assign({},t,yp(n.Fn.ORDER,n.Fn.BITS))})}function I4(t){const{CURVE:e,curveOpts:n,hash:r,ecdsaOpts:i}=x4(t),s=b4(e,n),o=v4(s,r,i);return S4(t,o)}function $u(t,e){const n=r=>I4({...t,hash:r});return{...n(e),create:n}}const Rp={p:BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff"),n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),h:BigInt(1),a:BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"),b:BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5")},Np={p:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff"),n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),h:BigInt(1),a:BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"),b:BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f")},Up={p:BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),h:BigInt(1),a:BigInt("0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc"),b:BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650")},A4=Sr(Rp.p),B4=Sr(Np.p),D4=Sr(Up.p),O4=$u({...Rp,Fp:A4,lowS:!1},fr);$u({...Np,Fp:B4,lowS:!1},Uh),$u({...Up,Fp:D4,lowS:!1,allowedPrivateKeyLengths:[130,131,132]},Nh);const T4=O4,R4=t=>JSON.stringify(t,(e,n)=>typeof n=="bigint"?n.toString()+"n":n),N4=t=>{const e=/([\[:])?(\d{17,}|(?:[9](?:[1-9]07199254740991|0[1-9]7199254740991|00[8-9]199254740991|007[2-9]99254740991|007199[3-9]54740991|0071992[6-9]4740991|00719925[5-9]740991|007199254[8-9]40991|0071992547[5-9]0991|00719925474[1-9]991|00719925474099[2-9])))([,\}\]])/g,n=t.replace(e,'$1"$2n"$3');return JSON.parse(n,(r,i)=>typeof i=="string"&&i.match(/^\d+n$/)?BigInt(i.substring(0,i.length-1)):i)};function Ki(t){if(typeof t!="string")throw new Error(`Cannot safe json parse value of type ${typeof t}`);try{return N4(t)}catch{return t}}function Ps(t){return typeof t=="string"?t:R4(t)||""}function U4(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function Pp(t,...e){if(!U4(t))throw new Error("Uint8Array expected");if(e.length>0&&!e.includes(t.length))throw new Error("Uint8Array expected of length "+e+", got length="+t.length)}function qp(t,e=!0){if(t.destroyed)throw new Error("Hash instance has been destroyed");if(e&&t.finished)throw new Error("Hash#digest() has already been called")}function P4(t,e){Pp(t);const n=e.outputLen;if(t.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}const ji=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */const ef=t=>new DataView(t.buffer,t.byteOffset,t.byteLength);function q4(t){if(typeof t!="string")throw new Error("utf8ToBytes expected string, got "+typeof t);return new Uint8Array(new TextEncoder().encode(t))}function Cp(t){return typeof t=="string"&&(t=q4(t)),Pp(t),t}class C4{clone(){return this._cloneInto()}}function L4(t){const e=r=>t().update(Cp(r)).digest(),n=t();return e.outputLen=n.outputLen,e.blockLen=n.blockLen,e.create=()=>t(),e}function Lp(t=32){if(ji&&typeof ji.getRandomValues=="function")return ji.getRandomValues(new Uint8Array(t));if(ji&&typeof ji.randomBytes=="function")return ji.randomBytes(t);throw new Error("crypto.getRandomValues must be defined")}function V4(t,e,n,r){if(typeof t.setBigUint64=="function")return t.setBigUint64(e,n,r);const i=BigInt(32),s=BigInt(4294967295),o=Number(n>>i&s),a=Number(n&s),c=r?4:0,u=r?0:4;t.setUint32(e+c,o,r),t.setUint32(e+u,a,r)}class k4 extends C4{constructor(e,n,r,i){super(),this.blockLen=e,this.outputLen=n,this.padOffset=r,this.isLE=i,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=ef(this.buffer)}update(e){qp(this);const{view:n,buffer:r,blockLen:i}=this;e=Cp(e);const s=e.length;for(let o=0;o<s;){const a=Math.min(i-this.pos,s-o);if(a===i){const c=ef(e);for(;i<=s-o;o+=i)this.process(c,o);continue}r.set(e.subarray(o,o+a),this.pos),this.pos+=a,o+=a,this.pos===i&&(this.process(n,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){qp(this),P4(e,this),this.finished=!0;const{buffer:n,view:r,blockLen:i,isLE:s}=this;let{pos:o}=this;n[o++]=128,this.buffer.subarray(o).fill(0),this.padOffset>i-o&&(this.process(r,0),o=0);for(let h=o;h<i;h++)n[h]=0;V4(r,i-8,BigInt(this.length*8),s),this.process(r,0);const a=ef(e),c=this.outputLen;if(c%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const u=c/4,f=this.get();if(u>f.length)throw new Error("_sha2: outputLen bigger than state");for(let h=0;h<u;h++)a.setUint32(4*h,f[h],s)}digest(){const{buffer:e,outputLen:n}=this;this.digestInto(e);const r=e.slice(0,n);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());const{blockLen:n,buffer:r,length:i,finished:s,destroyed:o,pos:a}=this;return e.length=i,e.pos=a,e.finished=s,e.destroyed=o,i%n&&e.buffer.set(r),e}}const da=BigInt(2**32-1),tf=BigInt(32);function Vp(t,e=!1){return e?{h:Number(t&da),l:Number(t>>tf&da)}:{h:Number(t>>tf&da)|0,l:Number(t&da)|0}}function F4(t,e=!1){let n=new Uint32Array(t.length),r=new Uint32Array(t.length);for(let i=0;i<t.length;i++){const{h:s,l:o}=Vp(t[i],e);[n[i],r[i]]=[s,o]}return[n,r]}const z4=(t,e)=>BigInt(t>>>0)<<tf|BigInt(e>>>0),M4=(t,e,n)=>t>>>n,K4=(t,e,n)=>t<<32-n|e>>>n,j4=(t,e,n)=>t>>>n|e<<32-n,W4=(t,e,n)=>t<<32-n|e>>>n,H4=(t,e,n)=>t<<64-n|e>>>n-32,G4=(t,e,n)=>t>>>n-32|e<<64-n,Z4=(t,e)=>e,X4=(t,e)=>t,Y4=(t,e,n)=>t<<n|e>>>32-n,J4=(t,e,n)=>e<<n|t>>>32-n,Q4=(t,e,n)=>e<<n-32|t>>>64-n,_4=(t,e,n)=>t<<n-32|e>>>64-n;function $4(t,e,n,r){const i=(e>>>0)+(r>>>0);return{h:t+n+(i/2**32|0)|0,l:i|0}}const ex=(t,e,n)=>(t>>>0)+(e>>>0)+(n>>>0),tx=(t,e,n,r)=>e+n+r+(t/2**32|0)|0,nx=(t,e,n,r)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0),rx=(t,e,n,r,i)=>e+n+r+i+(t/2**32|0)|0,ix=(t,e,n,r,i)=>(t>>>0)+(e>>>0)+(n>>>0)+(r>>>0)+(i>>>0),sx=(t,e,n,r,i,s)=>e+n+r+i+s+(t/2**32|0)|0,fe={fromBig:Vp,split:F4,toBig:z4,shrSH:M4,shrSL:K4,rotrSH:j4,rotrSL:W4,rotrBH:H4,rotrBL:G4,rotr32H:Z4,rotr32L:X4,rotlSH:Y4,rotlSL:J4,rotlBH:Q4,rotlBL:_4,add:$4,add3L:ex,add3H:tx,add4L:nx,add4H:rx,add5H:sx,add5L:ix},[ox,ax]=fe.split(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(t=>BigInt(t))),Ir=new Uint32Array(80),Ar=new Uint32Array(80);class cx extends k4{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(){const{Ah:e,Al:n,Bh:r,Bl:i,Ch:s,Cl:o,Dh:a,Dl:c,Eh:u,El:f,Fh:h,Fl:d,Gh:l,Gl:p,Hh:w,Hl:v}=this;return[e,n,r,i,s,o,a,c,u,f,h,d,l,p,w,v]}set(e,n,r,i,s,o,a,c,u,f,h,d,l,p,w,v){this.Ah=e|0,this.Al=n|0,this.Bh=r|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=f|0,this.Fh=h|0,this.Fl=d|0,this.Gh=l|0,this.Gl=p|0,this.Hh=w|0,this.Hl=v|0}process(e,n){for(let A=0;A<16;A++,n+=4)Ir[A]=e.getUint32(n),Ar[A]=e.getUint32(n+=4);for(let A=16;A<80;A++){const I=Ir[A-15]|0,S=Ar[A-15]|0,M=fe.rotrSH(I,S,1)^fe.rotrSH(I,S,8)^fe.shrSH(I,S,7),F=fe.rotrSL(I,S,1)^fe.rotrSL(I,S,8)^fe.shrSL(I,S,7),L=Ir[A-2]|0,R=Ar[A-2]|0,Z=fe.rotrSH(L,R,19)^fe.rotrBH(L,R,61)^fe.shrSH(L,R,6),W=fe.rotrSL(L,R,19)^fe.rotrBL(L,R,61)^fe.shrSL(L,R,6),E=fe.add4L(F,W,Ar[A-7],Ar[A-16]),y=fe.add4H(E,M,Z,Ir[A-7],Ir[A-16]);Ir[A]=y|0,Ar[A]=E|0}let{Ah:r,Al:i,Bh:s,Bl:o,Ch:a,Cl:c,Dh:u,Dl:f,Eh:h,El:d,Fh:l,Fl:p,Gh:w,Gl:v,Hh:O,Hl:P}=this;for(let A=0;A<80;A++){const I=fe.rotrSH(h,d,14)^fe.rotrSH(h,d,18)^fe.rotrBH(h,d,41),S=fe.rotrSL(h,d,14)^fe.rotrSL(h,d,18)^fe.rotrBL(h,d,41),M=h&l^~h&w,F=d&p^~d&v,L=fe.add5L(P,S,F,ax[A],Ar[A]),R=fe.add5H(L,O,I,M,ox[A],Ir[A]),Z=L|0,W=fe.rotrSH(r,i,28)^fe.rotrBH(r,i,34)^fe.rotrBH(r,i,39),E=fe.rotrSL(r,i,28)^fe.rotrBL(r,i,34)^fe.rotrBL(r,i,39),y=r&s^r&a^s&a,m=i&o^i&c^o&c;O=w|0,P=v|0,w=l|0,v=p|0,l=h|0,p=d|0,{h,l:d}=fe.add(u|0,f|0,R|0,Z|0),u=a|0,f=c|0,a=s|0,c=o|0,s=r|0,o=i|0;const g=fe.add3L(Z,E,m);r=fe.add3H(g,R,W,y),i=g|0}({h:r,l:i}=fe.add(this.Ah|0,this.Al|0,r|0,i|0)),{h:s,l:o}=fe.add(this.Bh|0,this.Bl|0,s|0,o|0),{h:a,l:c}=fe.add(this.Ch|0,this.Cl|0,a|0,c|0),{h:u,l:f}=fe.add(this.Dh|0,this.Dl|0,u|0,f|0),{h,l:d}=fe.add(this.Eh|0,this.El|0,h|0,d|0),{h:l,l:p}=fe.add(this.Fh|0,this.Fl|0,l|0,p|0),{h:w,l:v}=fe.add(this.Gh|0,this.Gl|0,w|0,v|0),{h:O,l:P}=fe.add(this.Hh|0,this.Hl|0,O|0,P|0),this.set(r,i,s,o,a,c,u,f,h,d,l,p,w,v,O,P)}roundClean(){Ir.fill(0),Ar.fill(0)}destroy(){this.buffer.fill(0),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}const ux=L4(()=>new cx);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const nf=BigInt(0),kp=BigInt(1),fx=BigInt(2);function rf(t){return t instanceof Uint8Array||ArrayBuffer.isView(t)&&t.constructor.name==="Uint8Array"}function sf(t){if(!rf(t))throw new Error("Uint8Array expected")}function of(t,e){if(typeof e!="boolean")throw new Error(t+" boolean expected, got "+e)}const lx=Array.from({length:256},(t,e)=>e.toString(16).padStart(2,"0"));function af(t){sf(t);let e="";for(let n=0;n<t.length;n++)e+=lx[t[n]];return e}function Fp(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);return t===""?nf:BigInt("0x"+t)}const Kn={_0:48,_9:57,A:65,F:70,a:97,f:102};function zp(t){if(t>=Kn._0&&t<=Kn._9)return t-Kn._0;if(t>=Kn.A&&t<=Kn.F)return t-(Kn.A-10);if(t>=Kn.a&&t<=Kn.f)return t-(Kn.a-10)}function Mp(t){if(typeof t!="string")throw new Error("hex string expected, got "+typeof t);const e=t.length,n=e/2;if(e%2)throw new Error("hex string expected, got unpadded hex of length "+e);const r=new Uint8Array(n);for(let i=0,s=0;i<n;i++,s+=2){const o=zp(t.charCodeAt(s)),a=zp(t.charCodeAt(s+1));if(o===void 0||a===void 0){const c=t[s]+t[s+1];throw new Error('hex string expected, got non-hex character "'+c+'" at index '+s)}r[i]=o*16+a}return r}function hx(t){return Fp(af(t))}function pa(t){return sf(t),Fp(af(Uint8Array.from(t).reverse()))}function Kp(t,e){return Mp(t.toString(16).padStart(e*2,"0"))}function cf(t,e){return Kp(t,e).reverse()}function jn(t,e,n){let r;if(typeof e=="string")try{r=Mp(e)}catch(s){throw new Error(t+" must be hex string or Uint8Array, cause: "+s)}else if(rf(e))r=Uint8Array.from(e);else throw new Error(t+" must be hex string or Uint8Array");const i=r.length;if(typeof n=="number"&&i!==n)throw new Error(t+" of length "+n+" expected, got "+i);return r}function jp(...t){let e=0;for(let r=0;r<t.length;r++){const i=t[r];sf(i),e+=i.length}const n=new Uint8Array(e);for(let r=0,i=0;r<t.length;r++){const s=t[r];n.set(s,i),i+=s.length}return n}const uf=t=>typeof t=="bigint"&&nf<=t;function dx(t,e,n){return uf(t)&&uf(e)&&uf(n)&&e<=t&&t<n}function qs(t,e,n,r){if(!dx(e,n,r))throw new Error("expected valid "+t+": "+n+" <= n < "+r+", got "+e)}function px(t){let e;for(e=0;t>nf;t>>=kp,e+=1);return e}const gx=t=>(fx<<BigInt(t-1))-kp,yx={bigint:t=>typeof t=="bigint",function:t=>typeof t=="function",boolean:t=>typeof t=="boolean",string:t=>typeof t=="string",stringOrUint8Array:t=>typeof t=="string"||rf(t),isSafeInteger:t=>Number.isSafeInteger(t),array:t=>Array.isArray(t),field:(t,e)=>e.Fp.isValid(t),hash:t=>typeof t=="function"&&Number.isSafeInteger(t.outputLen)};function ff(t,e,n={}){const r=(i,s,o)=>{const a=yx[s];if(typeof a!="function")throw new Error("invalid validator function");const c=t[i];if(!(o&&c===void 0)&&!a(c,t))throw new Error("param "+String(i)+" is invalid. Expected "+s+", got "+c)};for(const[i,s]of Object.entries(e))r(i,s,!1);for(const[i,s]of Object.entries(n))r(i,s,!0);return t}function Wp(t){const e=new WeakMap;return(n,...r)=>{const i=e.get(n);if(i!==void 0)return i;const s=t(n,...r);return e.set(n,s),s}}const Me=BigInt(0),Te=BigInt(1),ti=BigInt(2),wx=BigInt(3),lf=BigInt(4),Hp=BigInt(5),Gp=BigInt(8);function Ce(t,e){const n=t%e;return n>=Me?n:e+n}function bx(t,e,n){if(e<Me)throw new Error("invalid exponent, negatives unsupported");if(n<=Me)throw new Error("invalid modulus");if(n===Te)return Me;let r=Te;for(;e>Me;)e&Te&&(r=r*t%n),t=t*t%n,e>>=Te;return r}function pn(t,e,n){let r=t;for(;e-- >Me;)r*=r,r%=n;return r}function Zp(t,e){if(t===Me)throw new Error("invert: expected non-zero number");if(e<=Me)throw new Error("invert: expected positive modulus, got "+e);let n=Ce(t,e),r=e,i=Me,s=Te;for(;n!==Me;){const o=r/n,a=r%n,c=i-s*o;r=n,n=a,i=s,s=c}if(r!==Te)throw new Error("invert: does not exist");return Ce(i,e)}function mx(t){const e=(t-Te)/ti;let n,r,i;for(n=t-Te,r=0;n%ti===Me;n/=ti,r++);for(i=ti;i<t&&bx(i,e,t)!==t-Te;i++)if(i>1e3)throw new Error("Cannot find square root: likely non-prime P");if(r===1){const o=(t+Te)/lf;return function(a,c){const u=a.pow(c,o);if(!a.eql(a.sqr(u),c))throw new Error("Cannot find square root");return u}}const s=(n+Te)/ti;return function(o,a){if(o.pow(a,e)===o.neg(o.ONE))throw new Error("Cannot find square root");let c=r,u=o.pow(o.mul(o.ONE,i),n),f=o.pow(a,s),h=o.pow(a,n);for(;!o.eql(h,o.ONE);){if(o.eql(h,o.ZERO))return o.ZERO;let d=1;for(let p=o.sqr(h);d<c&&!o.eql(p,o.ONE);d++)p=o.sqr(p);const l=o.pow(u,Te<<BigInt(c-d-1));u=o.sqr(l),f=o.mul(f,l),h=o.mul(h,u),c=d}return f}}function vx(t){if(t%lf===wx){const e=(t+Te)/lf;return function(n,r){const i=n.pow(r,e);if(!n.eql(n.sqr(i),r))throw new Error("Cannot find square root");return i}}if(t%Gp===Hp){const e=(t-Hp)/Gp;return function(n,r){const i=n.mul(r,ti),s=n.pow(i,e),o=n.mul(r,s),a=n.mul(n.mul(o,ti),s),c=n.mul(o,n.sub(a,n.ONE));if(!n.eql(n.sqr(c),r))throw new Error("Cannot find square root");return c}}return mx(t)}const Ex=(t,e)=>(Ce(t,e)&Te)===Te,xx=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function Sx(t){const e={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},n=xx.reduce((r,i)=>(r[i]="function",r),e);return ff(t,n)}function Ix(t,e,n){if(n<Me)throw new Error("invalid exponent, negatives unsupported");if(n===Me)return t.ONE;if(n===Te)return e;let r=t.ONE,i=e;for(;n>Me;)n&Te&&(r=t.mul(r,i)),i=t.sqr(i),n>>=Te;return r}function Ax(t,e){const n=new Array(e.length),r=e.reduce((s,o,a)=>t.is0(o)?s:(n[a]=s,t.mul(s,o)),t.ONE),i=t.inv(r);return e.reduceRight((s,o,a)=>t.is0(o)?s:(n[a]=t.mul(s,n[a]),t.mul(s,o)),i),n}function Xp(t,e){const n=e!==void 0?e:t.toString(2).length,r=Math.ceil(n/8);return{nBitLength:n,nByteLength:r}}function Yp(t,e,n=!1,r={}){if(t<=Me)throw new Error("invalid field: expected ORDER > 0, got "+t);const{nBitLength:i,nByteLength:s}=Xp(t,e);if(s>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let o;const a=Object.freeze({ORDER:t,isLE:n,BITS:i,BYTES:s,MASK:gx(i),ZERO:Me,ONE:Te,create:c=>Ce(c,t),isValid:c=>{if(typeof c!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof c);return Me<=c&&c<t},is0:c=>c===Me,isOdd:c=>(c&Te)===Te,neg:c=>Ce(-c,t),eql:(c,u)=>c===u,sqr:c=>Ce(c*c,t),add:(c,u)=>Ce(c+u,t),sub:(c,u)=>Ce(c-u,t),mul:(c,u)=>Ce(c*u,t),pow:(c,u)=>Ix(a,c,u),div:(c,u)=>Ce(c*Zp(u,t),t),sqrN:c=>c*c,addN:(c,u)=>c+u,subN:(c,u)=>c-u,mulN:(c,u)=>c*u,inv:c=>Zp(c,t),sqrt:r.sqrt||(c=>(o||(o=vx(t)),o(a,c))),invertBatch:c=>Ax(a,c),cmov:(c,u,f)=>f?u:c,toBytes:c=>n?cf(c,s):Kp(c,s),fromBytes:c=>{if(c.length!==s)throw new Error("Field.fromBytes: expected "+s+" bytes, got "+c.length);return n?pa(c):hx(c)}});return Object.freeze(a)}const Jp=BigInt(0),ga=BigInt(1);function hf(t,e){const n=e.negate();return t?n:e}function Qp(t,e){if(!Number.isSafeInteger(t)||t<=0||t>e)throw new Error("invalid window size, expected [1.."+e+"], got W="+t)}function df(t,e){Qp(t,e);const n=Math.ceil(e/t)+1,r=2**(t-1);return{windows:n,windowSize:r}}function Bx(t,e){if(!Array.isArray(t))throw new Error("array expected");t.forEach((n,r)=>{if(!(n instanceof e))throw new Error("invalid point at index "+r)})}function Dx(t,e){if(!Array.isArray(t))throw new Error("array of scalars expected");t.forEach((n,r)=>{if(!e.isValid(n))throw new Error("invalid scalar at index "+r)})}const pf=new WeakMap,_p=new WeakMap;function gf(t){return _p.get(t)||1}function Ox(t,e){return{constTimeNegate:hf,hasPrecomputes(n){return gf(n)!==1},unsafeLadder(n,r,i=t.ZERO){let s=n;for(;r>Jp;)r&ga&&(i=i.add(s)),s=s.double(),r>>=ga;return i},precomputeWindow(n,r){const{windows:i,windowSize:s}=df(r,e),o=[];let a=n,c=a;for(let u=0;u<i;u++){c=a,o.push(c);for(let f=1;f<s;f++)c=c.add(a),o.push(c);a=c.double()}return o},wNAF(n,r,i){const{windows:s,windowSize:o}=df(n,e);let a=t.ZERO,c=t.BASE;const u=BigInt(2**n-1),f=2**n,h=BigInt(n);for(let d=0;d<s;d++){const l=d*o;let p=Number(i&u);i>>=h,p>o&&(p-=f,i+=ga);const w=l,v=l+Math.abs(p)-1,O=d%2!==0,P=p<0;p===0?c=c.add(hf(O,r[w])):a=a.add(hf(P,r[v]))}return{p:a,f:c}},wNAFUnsafe(n,r,i,s=t.ZERO){const{windows:o,windowSize:a}=df(n,e),c=BigInt(2**n-1),u=2**n,f=BigInt(n);for(let h=0;h<o;h++){const d=h*a;if(i===Jp)break;let l=Number(i&c);if(i>>=f,l>a&&(l-=u,i+=ga),l===0)continue;let p=r[d+Math.abs(l)-1];l<0&&(p=p.negate()),s=s.add(p)}return s},getPrecomputes(n,r,i){let s=pf.get(r);return s||(s=this.precomputeWindow(r,n),n!==1&&pf.set(r,i(s))),s},wNAFCached(n,r,i){const s=gf(n);return this.wNAF(s,this.getPrecomputes(s,n,i),r)},wNAFCachedUnsafe(n,r,i,s){const o=gf(n);return o===1?this.unsafeLadder(n,r,s):this.wNAFUnsafe(o,this.getPrecomputes(o,n,i),r,s)},setWindowSize(n,r){Qp(r,e),_p.set(n,r),pf.delete(n)}}}function Tx(t,e,n,r){if(Bx(n,t),Dx(r,e),n.length!==r.length)throw new Error("arrays of points and scalars must have equal length");const i=t.ZERO,s=px(BigInt(n.length)),o=s>12?s-3:s>4?s-2:s?2:1,a=(1<<o)-1,c=new Array(a+1).fill(i),u=Math.floor((e.BITS-1)/o)*o;let f=i;for(let h=u;h>=0;h-=o){c.fill(i);for(let l=0;l<r.length;l++){const p=r[l],w=Number(p>>BigInt(h)&BigInt(a));c[w]=c[w].add(n[l])}let d=i;for(let l=c.length-1,p=i;l>0;l--)p=p.add(c[l]),d=d.add(p);if(f=f.add(d),h!==0)for(let l=0;l<o;l++)f=f.double()}return f}function Rx(t){return Sx(t.Fp),ff(t,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...Xp(t.n,t.nBitLength),...t,p:t.Fp.ORDER})}const tn=BigInt(0),It=BigInt(1),ya=BigInt(2),Nx=BigInt(8),Ux={zip215:!0};function Px(t){const e=Rx(t);return ff(t,{hash:"function",a:"bigint",d:"bigint",randomBytes:"function"},{adjustScalarBytes:"function",domain:"function",uvRatio:"function",mapToCurve:"function"}),Object.freeze({...e})}function qx(t){const e=Px(t),{Fp:n,n:r,prehash:i,hash:s,randomBytes:o,nByteLength:a,h:c}=e,u=ya<<BigInt(a*8)-It,f=n.create,h=Yp(e.n,e.nBitLength),d=e.uvRatio||((g,b)=>{try{return{isValid:!0,value:n.sqrt(g*n.inv(b))}}catch{return{isValid:!1,value:tn}}}),l=e.adjustScalarBytes||(g=>g),p=e.domain||((g,b,x)=>{if(of("phflag",x),b.length||x)throw new Error("Contexts/pre-hash are not supported");return g});function w(g,b){qs("coordinate "+g,b,tn,u)}function v(g){if(!(g instanceof A))throw new Error("ExtendedPoint expected")}const O=Wp((g,b)=>{const{ex:x,ey:B,ez:D}=g,T=g.is0();b==null&&(b=T?Nx:n.inv(D));const U=f(x*b),k=f(B*b),C=f(D*b);if(T)return{x:tn,y:It};if(C!==It)throw new Error("invZ was invalid");return{x:U,y:k}}),P=Wp(g=>{const{a:b,d:x}=e;if(g.is0())throw new Error("bad point: ZERO");const{ex:B,ey:D,ez:T,et:U}=g,k=f(B*B),C=f(D*D),j=f(T*T),q=f(j*j),H=f(k*b),G=f(j*f(H+C)),z=f(q+f(x*f(k*C)));if(G!==z)throw new Error("bad point: equation left != right (1)");const N=f(B*D),V=f(T*U);if(N!==V)throw new Error("bad point: equation left != right (2)");return!0});class A{constructor(b,x,B,D){this.ex=b,this.ey=x,this.ez=B,this.et=D,w("x",b),w("y",x),w("z",B),w("t",D),Object.freeze(this)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static fromAffine(b){if(b instanceof A)throw new Error("extended point not allowed");const{x,y:B}=b||{};return w("x",x),w("y",B),new A(x,B,It,f(x*B))}static normalizeZ(b){const x=n.invertBatch(b.map(B=>B.ez));return b.map((B,D)=>B.toAffine(x[D])).map(A.fromAffine)}static msm(b,x){return Tx(A,h,b,x)}_setWindowSize(b){M.setWindowSize(this,b)}assertValidity(){P(this)}equals(b){v(b);const{ex:x,ey:B,ez:D}=this,{ex:T,ey:U,ez:k}=b,C=f(x*k),j=f(T*D),q=f(B*k),H=f(U*D);return C===j&&q===H}is0(){return this.equals(A.ZERO)}negate(){return new A(f(-this.ex),this.ey,this.ez,f(-this.et))}double(){const{a:b}=e,{ex:x,ey:B,ez:D}=this,T=f(x*x),U=f(B*B),k=f(ya*f(D*D)),C=f(b*T),j=x+B,q=f(f(j*j)-T-U),H=C+U,G=H-k,z=C-U,N=f(q*G),V=f(H*z),K=f(q*z),X=f(G*H);return new A(N,V,X,K)}add(b){v(b);const{a:x,d:B}=e,{ex:D,ey:T,ez:U,et:k}=this,{ex:C,ey:j,ez:q,et:H}=b;if(x===BigInt(-1)){const we=f((T-D)*(j+C)),Qe=f((T+D)*(j-C)),Dt=f(Qe-we);if(Dt===tn)return this.double();const yt=f(U*ya*H),ct=f(k*ya*q),De=ct+yt,_e=Qe+we,wt=ct-yt,he=f(De*Dt),hl=f(_e*wt),ts=f(De*wt),ke=f(Dt*_e);return new A(he,hl,ke,ts)}const G=f(D*C),z=f(T*j),N=f(k*B*H),V=f(U*q),K=f((D+T)*(C+j)-G-z),X=V-N,$=V+N,_=f(z-x*G),te=f(K*X),ue=f($*_),ae=f(K*_),re=f(X*$);return new A(te,ue,re,ae)}subtract(b){return this.add(b.negate())}wNAF(b){return M.wNAFCached(this,b,A.normalizeZ)}multiply(b){const x=b;qs("scalar",x,It,r);const{p:B,f:D}=this.wNAF(x);return A.normalizeZ([B,D])[0]}multiplyUnsafe(b,x=A.ZERO){const B=b;return qs("scalar",B,tn,r),B===tn?S:this.is0()||B===It?this:M.wNAFCachedUnsafe(this,B,A.normalizeZ,x)}isSmallOrder(){return this.multiplyUnsafe(c).is0()}isTorsionFree(){return M.unsafeLadder(this,r).is0()}toAffine(b){return O(this,b)}clearCofactor(){const{h:b}=e;return b===It?this:this.multiplyUnsafe(b)}static fromHex(b,x=!1){const{d:B,a:D}=e,T=n.BYTES;b=jn("pointHex",b,T),of("zip215",x);const U=b.slice(),k=b[T-1];U[T-1]=k&-129;const C=pa(U),j=x?u:n.ORDER;qs("pointHex.y",C,tn,j);const q=f(C*C),H=f(q-It),G=f(B*q-D);let{isValid:z,value:N}=d(H,G);if(!z)throw new Error("Point.fromHex: invalid y coordinate");const V=(N&It)===It,K=(k&128)!==0;if(!x&&N===tn&&K)throw new Error("Point.fromHex: x=0 and x_0=1");return K!==V&&(N=f(-N)),A.fromAffine({x:N,y:C})}static fromPrivateKey(b){return R(b).point}toRawBytes(){const{x:b,y:x}=this.toAffine(),B=cf(x,n.BYTES);return B[B.length-1]|=b&It?128:0,B}toHex(){return af(this.toRawBytes())}}A.BASE=new A(e.Gx,e.Gy,It,f(e.Gx*e.Gy)),A.ZERO=new A(tn,It,It,tn);const{BASE:I,ZERO:S}=A,M=Ox(A,a*8);function F(g){return Ce(g,r)}function L(g){return F(pa(g))}function R(g){const b=n.BYTES;g=jn("private key",g,b);const x=jn("hashed private key",s(g),2*b),B=l(x.slice(0,b)),D=x.slice(b,2*b),T=L(B),U=I.multiply(T),k=U.toRawBytes();return{head:B,prefix:D,scalar:T,point:U,pointBytes:k}}function Z(g){return R(g).pointBytes}function W(g=new Uint8Array,...b){const x=jp(...b);return L(s(p(x,jn("context",g),!!i)))}function E(g,b,x={}){g=jn("message",g),i&&(g=i(g));const{prefix:B,scalar:D,pointBytes:T}=R(b),U=W(x.context,B,g),k=I.multiply(U).toRawBytes(),C=W(x.context,k,T,g),j=F(U+C*D);qs("signature.s",j,tn,r);const q=jp(k,cf(j,n.BYTES));return jn("result",q,n.BYTES*2)}const y=Ux;function m(g,b,x,B=y){const{context:D,zip215:T}=B,U=n.BYTES;g=jn("signature",g,2*U),b=jn("message",b),x=jn("publicKey",x,U),T!==void 0&&of("zip215",T),i&&(b=i(b));const k=pa(g.slice(U,2*U));let C,j,q;try{C=A.fromHex(x,T),j=A.fromHex(g.slice(0,U),T),q=I.multiplyUnsafe(k)}catch{return!1}if(!T&&C.isSmallOrder())return!1;const H=W(D,j.toRawBytes(),C.toRawBytes(),b);return j.add(C.multiplyUnsafe(H)).subtract(q).clearCofactor().equals(A.ZERO)}return I._setWindowSize(8),{CURVE:e,getPublicKey:Z,sign:E,verify:m,ExtendedPoint:A,utils:{getExtendedPublicKey:R,randomPrivateKey:()=>o(n.BYTES),precompute(g=8,b=A.BASE){return b._setWindowSize(g),b.multiply(BigInt(3)),b}}}}BigInt(0),BigInt(1);const yf=BigInt("57896044618658097711785492504343953926634992332820282019728792003956564819949"),$p=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752");BigInt(0);const Cx=BigInt(1),eg=BigInt(2);BigInt(3);const Lx=BigInt(5),Vx=BigInt(8);function kx(t){const e=BigInt(10),n=BigInt(20),r=BigInt(40),i=BigInt(80),s=yf,o=t*t%s*t%s,a=pn(o,eg,s)*o%s,c=pn(a,Cx,s)*t%s,u=pn(c,Lx,s)*c%s,f=pn(u,e,s)*u%s,h=pn(f,n,s)*f%s,d=pn(h,r,s)*h%s,l=pn(d,i,s)*d%s,p=pn(l,i,s)*d%s,w=pn(p,e,s)*u%s;return{pow_p_5_8:pn(w,eg,s)*t%s,b2:o}}function Fx(t){return t[0]&=248,t[31]&=127,t[31]|=64,t}function zx(t,e){const n=yf,r=Ce(e*e*e,n),i=Ce(r*r*e,n),s=kx(t*i).pow_p_5_8;let o=Ce(t*r*s,n);const a=Ce(e*o*o,n),c=o,u=Ce(o*$p,n),f=a===t,h=a===Ce(-t,n),d=a===Ce(-t*$p,n);return f&&(o=c),(h||d)&&(o=u),Ex(o,n)&&(o=Ce(-o,n)),{isValid:f||h,value:o}}const Mx=Yp(yf,void 0,!0),Kx={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),Fp:Mx,n:BigInt("7237005577332262213973186563042994240857116359379907606001950938285454250989"),h:Vx,Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960"),hash:ux,randomBytes:Lp,adjustScalarBytes:Fx,uvRatio:zx},tg=qx(Kx),jx="EdDSA",Wx="JWT",wa=".",ba="base64url",ng="utf8",rg="utf8",Hx=":",Gx="did",Zx="key",ig="base58btc",Xx="z",Yx="K36",Jx=32;function wf(t){return globalThis.Buffer!=null?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):t}function sg(t=0){return globalThis.Buffer!=null&&globalThis.Buffer.allocUnsafe!=null?wf(globalThis.Buffer.allocUnsafe(t)):new Uint8Array(t)}function og(t,e){e||(e=t.reduce((i,s)=>i+s.length,0));const n=sg(e);let r=0;for(const i of t)n.set(i,r),r+=i.length;return wf(n)}function Qx(t,e){if(t.length>=255)throw new TypeError("Alphabet too long");for(var n=new Uint8Array(256),r=0;r<n.length;r++)n[r]=255;for(var i=0;i<t.length;i++){var s=t.charAt(i),o=s.charCodeAt(0);if(n[o]!==255)throw new TypeError(s+" is ambiguous");n[o]=i}var a=t.length,c=t.charAt(0),u=Math.log(a)/Math.log(256),f=Math.log(256)/Math.log(a);function h(p){if(p instanceof Uint8Array||(ArrayBuffer.isView(p)?p=new Uint8Array(p.buffer,p.byteOffset,p.byteLength):Array.isArray(p)&&(p=Uint8Array.from(p))),!(p instanceof Uint8Array))throw new TypeError("Expected Uint8Array");if(p.length===0)return"";for(var w=0,v=0,O=0,P=p.length;O!==P&&p[O]===0;)O++,w++;for(var A=(P-O)*f+1>>>0,I=new Uint8Array(A);O!==P;){for(var S=p[O],M=0,F=A-1;(S!==0||M<v)&&F!==-1;F--,M++)S+=256*I[F]>>>0,I[F]=S%a>>>0,S=S/a>>>0;if(S!==0)throw new Error("Non-zero carry");v=M,O++}for(var L=A-v;L!==A&&I[L]===0;)L++;for(var R=c.repeat(w);L<A;++L)R+=t.charAt(I[L]);return R}function d(p){if(typeof p!="string")throw new TypeError("Expected String");if(p.length===0)return new Uint8Array;var w=0;if(p[w]!==" "){for(var v=0,O=0;p[w]===c;)v++,w++;for(var P=(p.length-w)*u+1>>>0,A=new Uint8Array(P);p[w];){var I=n[p.charCodeAt(w)];if(I===255)return;for(var S=0,M=P-1;(I!==0||S<O)&&M!==-1;M--,S++)I+=a*A[M]>>>0,A[M]=I%256>>>0,I=I/256>>>0;if(I!==0)throw new Error("Non-zero carry");O=S,w++}if(p[w]!==" "){for(var F=P-O;F!==P&&A[F]===0;)F++;for(var L=new Uint8Array(v+(P-F)),R=v;F!==P;)L[R++]=A[F++];return L}}}function l(p){var w=d(p);if(w)return w;throw new Error(`Non-${e} character`)}return{encode:h,decodeUnsafe:d,decode:l}}var _x=Qx,$x=_x;const ag=t=>{if(t instanceof Uint8Array&&t.constructor.name==="Uint8Array")return t;if(t instanceof ArrayBuffer)return new Uint8Array(t);if(ArrayBuffer.isView(t))return new Uint8Array(t.buffer,t.byteOffset,t.byteLength);throw new Error("Unknown type, must be binary type")},e6=t=>new TextEncoder().encode(t),t6=t=>new TextDecoder().decode(t);class n6{constructor(e,n,r){this.name=e,this.prefix=n,this.baseEncode=r}encode(e){if(e instanceof Uint8Array)return`${this.prefix}${this.baseEncode(e)}`;throw Error("Unknown type, must be binary type")}}class r6{constructor(e,n,r){if(this.name=e,this.prefix=n,n.codePointAt(0)===void 0)throw new Error("Invalid prefix character");this.prefixCodePoint=n.codePointAt(0),this.baseDecode=r}decode(e){if(typeof e=="string"){if(e.codePointAt(0)!==this.prefixCodePoint)throw Error(`Unable to decode multibase string ${JSON.stringify(e)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);return this.baseDecode(e.slice(this.prefix.length))}else throw Error("Can only multibase decode strings")}or(e){return cg(this,e)}}class i6{constructor(e){this.decoders=e}or(e){return cg(this,e)}decode(e){const n=e[0],r=this.decoders[n];if(r)return r.decode(e);throw RangeError(`Unable to decode multibase string ${JSON.stringify(e)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`)}}const cg=(t,e)=>new i6({...t.decoders||{[t.prefix]:t},...e.decoders||{[e.prefix]:e}});class s6{constructor(e,n,r,i){this.name=e,this.prefix=n,this.baseEncode=r,this.baseDecode=i,this.encoder=new n6(e,n,r),this.decoder=new r6(e,n,i)}encode(e){return this.encoder.encode(e)}decode(e){return this.decoder.decode(e)}}const ma=({name:t,prefix:e,encode:n,decode:r})=>new s6(t,e,n,r),Cs=({prefix:t,name:e,alphabet:n})=>{const{encode:r,decode:i}=$x(n,e);return ma({prefix:t,name:e,encode:r,decode:s=>ag(i(s))})},o6=(t,e,n,r)=>{const i={};for(let f=0;f<e.length;++f)i[e[f]]=f;let s=t.length;for(;t[s-1]==="=";)--s;const o=new Uint8Array(s*n/8|0);let a=0,c=0,u=0;for(let f=0;f<s;++f){const h=i[t[f]];if(h===void 0)throw new SyntaxError(`Non-${r} character`);c=c<<n|h,a+=n,a>=8&&(a-=8,o[u++]=255&c>>a)}if(a>=n||255&c<<8-a)throw new SyntaxError("Unexpected end of data");return o},a6=(t,e,n)=>{const r=e[e.length-1]==="=",i=(1<<n)-1;let s="",o=0,a=0;for(let c=0;c<t.length;++c)for(a=a<<8|t[c],o+=8;o>n;)o-=n,s+=e[i&a>>o];if(o&&(s+=e[i&a<<n-o]),r)for(;s.length*n&7;)s+="=";return s},Ze=({name:t,prefix:e,bitsPerChar:n,alphabet:r})=>ma({prefix:e,name:t,encode(i){return a6(i,r,n)},decode(i){return o6(i,r,n,t)}}),c6=ma({prefix:"\0",name:"identity",encode:t=>t6(t),decode:t=>e6(t)});var u6=Object.freeze({__proto__:null,identity:c6});const f6=Ze({prefix:"0",name:"base2",alphabet:"01",bitsPerChar:1});var l6=Object.freeze({__proto__:null,base2:f6});const h6=Ze({prefix:"7",name:"base8",alphabet:"01234567",bitsPerChar:3});var d6=Object.freeze({__proto__:null,base8:h6});const p6=Cs({prefix:"9",name:"base10",alphabet:"0123456789"});var g6=Object.freeze({__proto__:null,base10:p6});const y6=Ze({prefix:"f",name:"base16",alphabet:"0123456789abcdef",bitsPerChar:4}),w6=Ze({prefix:"F",name:"base16upper",alphabet:"0123456789ABCDEF",bitsPerChar:4});var b6=Object.freeze({__proto__:null,base16:y6,base16upper:w6});const m6=Ze({prefix:"b",name:"base32",alphabet:"abcdefghijklmnopqrstuvwxyz234567",bitsPerChar:5}),v6=Ze({prefix:"B",name:"base32upper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",bitsPerChar:5}),E6=Ze({prefix:"c",name:"base32pad",alphabet:"abcdefghijklmnopqrstuvwxyz234567=",bitsPerChar:5}),x6=Ze({prefix:"C",name:"base32padupper",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=",bitsPerChar:5}),S6=Ze({prefix:"v",name:"base32hex",alphabet:"0123456789abcdefghijklmnopqrstuv",bitsPerChar:5}),I6=Ze({prefix:"V",name:"base32hexupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV",bitsPerChar:5}),A6=Ze({prefix:"t",name:"base32hexpad",alphabet:"0123456789abcdefghijklmnopqrstuv=",bitsPerChar:5}),B6=Ze({prefix:"T",name:"base32hexpadupper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUV=",bitsPerChar:5}),D6=Ze({prefix:"h",name:"base32z",alphabet:"ybndrfg8ejkmcpqxot1uwisza345h769",bitsPerChar:5});var O6=Object.freeze({__proto__:null,base32:m6,base32upper:v6,base32pad:E6,base32padupper:x6,base32hex:S6,base32hexupper:I6,base32hexpad:A6,base32hexpadupper:B6,base32z:D6});const T6=Cs({prefix:"k",name:"base36",alphabet:"0123456789abcdefghijklmnopqrstuvwxyz"}),R6=Cs({prefix:"K",name:"base36upper",alphabet:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"});var N6=Object.freeze({__proto__:null,base36:T6,base36upper:R6});const U6=Cs({name:"base58btc",prefix:"z",alphabet:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"}),P6=Cs({name:"base58flickr",prefix:"Z",alphabet:"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"});var q6=Object.freeze({__proto__:null,base58btc:U6,base58flickr:P6});const C6=Ze({prefix:"m",name:"base64",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",bitsPerChar:6}),L6=Ze({prefix:"M",name:"base64pad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",bitsPerChar:6}),V6=Ze({prefix:"u",name:"base64url",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",bitsPerChar:6}),k6=Ze({prefix:"U",name:"base64urlpad",alphabet:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=",bitsPerChar:6});var F6=Object.freeze({__proto__:null,base64:C6,base64pad:L6,base64url:V6,base64urlpad:k6});const ug=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}"),z6=ug.reduce((t,e,n)=>(t[n]=e,t),[]),M6=ug.reduce((t,e,n)=>(t[e.codePointAt(0)]=n,t),[]);function K6(t){return t.reduce((e,n)=>(e+=z6[n],e),"")}function j6(t){const e=[];for(const n of t){const r=M6[n.codePointAt(0)];if(r===void 0)throw new Error(`Non-base256emoji character: ${n}`);e.push(r)}return new Uint8Array(e)}const W6=ma({prefix:"\u{1F680}",name:"base256emoji",encode:K6,decode:j6});var H6=Object.freeze({__proto__:null,base256emoji:W6}),G6=lg,fg=128,Z6=127,X6=~Z6,Y6=Math.pow(2,31);function lg(t,e,n){e=e||[],n=n||0;for(var r=n;t>=Y6;)e[n++]=t&255|fg,t/=128;for(;t&X6;)e[n++]=t&255|fg,t>>>=7;return e[n]=t|0,lg.bytes=n-r+1,e}var J6=bf,Q6=128,hg=127;function bf(t,r){var n=0,r=r||0,i=0,s=r,o,a=t.length;do{if(s>=a)throw bf.bytes=0,new RangeError("Could not decode varint");o=t[s++],n+=i<28?(o&hg)<<i:(o&hg)*Math.pow(2,i),i+=7}while(o>=Q6);return bf.bytes=s-r,n}var _6=Math.pow(2,7),$6=Math.pow(2,14),e5=Math.pow(2,21),t5=Math.pow(2,28),n5=Math.pow(2,35),r5=Math.pow(2,42),i5=Math.pow(2,49),s5=Math.pow(2,56),o5=Math.pow(2,63),a5=function(t){return t<_6?1:t<$6?2:t<e5?3:t<t5?4:t<n5?5:t<r5?6:t<i5?7:t<s5?8:t<o5?9:10},c5={encode:G6,decode:J6,encodingLength:a5},dg=c5;const pg=(t,e,n=0)=>(dg.encode(t,e,n),e),gg=t=>dg.encodingLength(t),mf=(t,e)=>{const n=e.byteLength,r=gg(t),i=r+gg(n),s=new Uint8Array(i+n);return pg(t,s,0),pg(n,s,r),s.set(e,i),new u5(t,n,e,s)};class u5{constructor(e,n,r,i){this.code=e,this.size=n,this.digest=r,this.bytes=i}}const yg=({name:t,code:e,encode:n})=>new f5(t,e,n);class f5{constructor(e,n,r){this.name=e,this.code=n,this.encode=r}digest(e){if(e instanceof Uint8Array){const n=this.encode(e);return n instanceof Uint8Array?mf(this.code,n):n.then(r=>mf(this.code,r))}else throw Error("Unknown type, must be binary type")}}const wg=t=>async e=>new Uint8Array(await crypto.subtle.digest(t,e)),l5=yg({name:"sha2-256",code:18,encode:wg("SHA-256")}),h5=yg({name:"sha2-512",code:19,encode:wg("SHA-512")});var d5=Object.freeze({__proto__:null,sha256:l5,sha512:h5});const bg=0,p5="identity",mg=ag;var g5=Object.freeze({__proto__:null,identity:{code:bg,name:p5,encode:mg,digest:t=>mf(bg,mg(t))}});new TextEncoder,new TextDecoder;const vg={...u6,...l6,...d6,...g6,...b6,...O6,...N6,...q6,...F6,...H6};({...d5,...g5});function Eg(t,e,n,r){return{name:t,prefix:e,encoder:{name:t,prefix:e,encode:n},decoder:{decode:r}}}const xg=Eg("utf8","u",t=>"u"+new TextDecoder("utf8").decode(t),t=>new TextEncoder().encode(t.substring(1))),vf=Eg("ascii","a",t=>{let e="a";for(let n=0;n<t.length;n++)e+=String.fromCharCode(t[n]);return e},t=>{t=t.substring(1);const e=sg(t.length);for(let n=0;n<t.length;n++)e[n]=t.charCodeAt(n);return e}),Sg={utf8:xg,"utf-8":xg,hex:vg.base16,latin1:vf,ascii:vf,binary:vf,...vg};function va(t,e="utf8"){const n=Sg[e];if(!n)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?globalThis.Buffer.from(t.buffer,t.byteOffset,t.byteLength).toString("utf8"):n.encoder.encode(t).substring(1)}function Wi(t,e="utf8"){const n=Sg[e];if(!n)throw new Error(`Unsupported encoding "${e}"`);return(e==="utf8"||e==="utf-8")&&globalThis.Buffer!=null&&globalThis.Buffer.from!=null?wf(globalThis.Buffer.from(t,"utf-8")):n.decoder.decode(`${n.prefix}${t}`)}function Ig(t){return Ki(va(Wi(t,ba),ng))}function Ea(t){return va(Wi(Ps(t),ng),ba)}function Ag(t){const e=Wi(Yx,ig),n=Xx+va(og([e,t]),ig);return[Gx,Zx,n].join(Hx)}function y5(t){return va(t,ba)}function w5(t){return Wi(t,ba)}function b5(t){return Wi([Ea(t.header),Ea(t.payload)].join(wa),rg)}function m5(t){return[Ea(t.header),Ea(t.payload),y5(t.signature)].join(wa)}function Ef(t){const e=t.split(wa),n=Ig(e[0]),r=Ig(e[1]),i=w5(e[2]),s=Wi(e.slice(0,2).join(wa),rg);return{header:n,payload:r,signature:i,data:s}}function Bg(t=Lp(Jx)){const e=tg.getPublicKey(t);return{secretKey:og([t,e]),publicKey:e}}async function v5(t,e,n,r,i=Y.fromMiliseconds(Date.now())){const s={alg:jx,typ:Wx},o=Ag(r.publicKey),a=i+n,c={iss:o,sub:t,aud:e,iat:i,exp:a},u=b5({header:s,payload:c}),f=tg.sign(u,r.secretKey.slice(0,32));return m5({header:s,payload:c,signature:f})}const E5={waku:{publish:"waku_publish",batchPublish:"waku_batchPublish",subscribe:"waku_subscribe",batchSubscribe:"waku_batchSubscribe",subscription:"waku_subscription",unsubscribe:"waku_unsubscribe",batchUnsubscribe:"waku_batchUnsubscribe",batchFetchMessages:"waku_batchFetchMessages"},irn:{publish:"irn_publish",batchPublish:"irn_batchPublish",subscribe:"irn_subscribe",batchSubscribe:"irn_batchSubscribe",subscription:"irn_subscription",unsubscribe:"irn_unsubscribe",batchUnsubscribe:"irn_batchUnsubscribe",batchFetchMessages:"irn_batchFetchMessages"},iridium:{publish:"iridium_publish",batchPublish:"iridium_batchPublish",subscribe:"iridium_subscribe",batchSubscribe:"iridium_batchSubscribe",subscription:"iridium_subscription",unsubscribe:"iridium_unsubscribe",batchUnsubscribe:"iridium_batchUnsubscribe",batchFetchMessages:"iridium_batchFetchMessages"}},x5="Input must be an string, Buffer or Uint8Array";function S5(t){let e;if(t instanceof Uint8Array)e=t;else if(typeof t=="string")e=new TextEncoder().encode(t);else throw new Error(x5);return e}function I5(t){return Array.prototype.map.call(t,function(e){return(e<16?"0":"")+e.toString(16)}).join("")}function xa(t){return(4294967296+t).toString(16).substring(1)}function A5(t,e,n){let r=`
|
|
17
|
+
`+t+" = ";for(let i=0;i<e.length;i+=2){if(n===32)r+=xa(e[i]).toUpperCase(),r+=" ",r+=xa(e[i+1]).toUpperCase();else if(n===64)r+=xa(e[i+1]).toUpperCase(),r+=xa(e[i]).toUpperCase();else throw new Error("Invalid size "+n);i%6===4?r+=`
|
|
18
|
+
`+new Array(t.length+4).join(" "):i<e.length-2&&(r+=" ")}console.log(r)}function B5(t,e,n){let r=new Date().getTime();const i=new Uint8Array(e);for(let o=0;o<e;o++)i[o]=o%256;const s=new Date().getTime();console.log("Generated random input in "+(s-r)+"ms"),r=s;for(let o=0;o<n;o++){const a=t(i),c=new Date().getTime(),u=c-r;r=c,console.log("Hashed in "+u+"ms: "+a.substring(0,20)+"..."),console.log(Math.round(e/(1<<20)/(u/1e3)*100)/100+" MB PER SECOND")}}var Dg={normalizeInput:S5,toHex:I5,debugPrint:A5,testSpeed:B5};const Sa=Dg;function Ia(t,e,n){const r=t[e]+t[n];let i=t[e+1]+t[n+1];r>=4294967296&&i++,t[e]=r,t[e+1]=i}function Og(t,e,n,r){let i=t[e]+n;n<0&&(i+=4294967296);let s=t[e+1]+r;i>=4294967296&&s++,t[e]=i,t[e+1]=s}function Tg(t,e){return t[e]^t[e+1]<<8^t[e+2]<<16^t[e+3]<<24}function Br(t,e,n,r,i,s){const o=Ls[i],a=Ls[i+1],c=Ls[s],u=Ls[s+1];Ia(ce,t,e),Og(ce,t,o,a);let f=ce[r]^ce[t],h=ce[r+1]^ce[t+1];ce[r]=h,ce[r+1]=f,Ia(ce,n,r),f=ce[e]^ce[n],h=ce[e+1]^ce[n+1],ce[e]=f>>>24^h<<8,ce[e+1]=h>>>24^f<<8,Ia(ce,t,e),Og(ce,t,c,u),f=ce[r]^ce[t],h=ce[r+1]^ce[t+1],ce[r]=f>>>16^h<<16,ce[r+1]=h>>>16^f<<16,Ia(ce,n,r),f=ce[e]^ce[n],h=ce[e+1]^ce[n+1],ce[e]=h>>>31^f<<1,ce[e+1]=f>>>31^h<<1}const Rg=new Uint32Array([4089235720,1779033703,2227873595,3144134277,4271175723,1013904242,1595750129,2773480762,2917565137,1359893119,725511199,2600822924,4215389547,528734635,327033209,1541459225]),D5=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3],ot=new Uint8Array(D5.map(function(t){return t*2})),ce=new Uint32Array(32),Ls=new Uint32Array(32);function Ng(t,e){let n=0;for(n=0;n<16;n++)ce[n]=t.h[n],ce[n+16]=Rg[n];for(ce[24]=ce[24]^t.t,ce[25]=ce[25]^t.t/4294967296,e&&(ce[28]=~ce[28],ce[29]=~ce[29]),n=0;n<32;n++)Ls[n]=Tg(t.b,4*n);for(n=0;n<12;n++)Br(0,8,16,24,ot[n*16+0],ot[n*16+1]),Br(2,10,18,26,ot[n*16+2],ot[n*16+3]),Br(4,12,20,28,ot[n*16+4],ot[n*16+5]),Br(6,14,22,30,ot[n*16+6],ot[n*16+7]),Br(0,10,20,30,ot[n*16+8],ot[n*16+9]),Br(2,12,22,24,ot[n*16+10],ot[n*16+11]),Br(4,14,16,26,ot[n*16+12],ot[n*16+13]),Br(6,8,18,28,ot[n*16+14],ot[n*16+15]);for(n=0;n<16;n++)t.h[n]=t.h[n]^ce[n]^ce[n+16]}const Dr=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);function Ug(t,e,n,r){if(t===0||t>64)throw new Error("Illegal output length, expected 0 < length <= 64");if(e&&e.length>64)throw new Error("Illegal key, expected Uint8Array with 0 < length <= 64");if(n&&n.length!==16)throw new Error("Illegal salt, expected Uint8Array with length is 16");if(r&&r.length!==16)throw new Error("Illegal personal, expected Uint8Array with length is 16");const i={b:new Uint8Array(128),h:new Uint32Array(16),t:0,c:0,outlen:t};Dr.fill(0),Dr[0]=t,e&&(Dr[1]=e.length),Dr[2]=1,Dr[3]=1,n&&Dr.set(n,32),r&&Dr.set(r,48);for(let s=0;s<16;s++)i.h[s]=Rg[s]^Tg(Dr,s*4);return e&&(xf(i,e),i.c=128),i}function xf(t,e){for(let n=0;n<e.length;n++)t.c===128&&(t.t+=t.c,Ng(t,!1),t.c=0),t.b[t.c++]=e[n]}function Pg(t){for(t.t+=t.c;t.c<128;)t.b[t.c++]=0;Ng(t,!0);const e=new Uint8Array(t.outlen);for(let n=0;n<t.outlen;n++)e[n]=t.h[n>>2]>>8*(n&3);return e}function qg(t,e,n,r,i){n=n||64,t=Sa.normalizeInput(t),r&&(r=Sa.normalizeInput(r)),i&&(i=Sa.normalizeInput(i));const s=Ug(n,e,r,i);return xf(s,t),Pg(s)}function O5(t,e,n,r,i){const s=qg(t,e,n,r,i);return Sa.toHex(s)}var T5={blake2b:qg,blake2bHex:O5,blake2bInit:Ug,blake2bUpdate:xf,blake2bFinal:Pg};const Cg=Dg;function R5(t,e){return t[e]^t[e+1]<<8^t[e+2]<<16^t[e+3]<<24}function Or(t,e,n,r,i,s){ge[t]=ge[t]+ge[e]+i,ge[r]=Aa(ge[r]^ge[t],16),ge[n]=ge[n]+ge[r],ge[e]=Aa(ge[e]^ge[n],12),ge[t]=ge[t]+ge[e]+s,ge[r]=Aa(ge[r]^ge[t],8),ge[n]=ge[n]+ge[r],ge[e]=Aa(ge[e]^ge[n],7)}function Aa(t,e){return t>>>e^t<<32-e}const Lg=new Uint32Array([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),at=new Uint8Array([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,10,4,8,9,15,13,6,1,12,0,2,11,7,5,3,11,8,12,0,5,2,15,13,10,14,3,6,7,1,9,4,7,9,3,1,13,12,11,14,2,6,5,10,4,0,15,8,9,0,5,7,2,4,10,15,14,1,11,12,6,8,3,13,2,12,6,10,0,11,8,3,4,13,7,5,15,14,1,9,12,5,1,15,14,13,4,10,0,7,6,3,9,2,8,11,13,11,7,14,12,1,3,9,5,0,15,4,8,6,2,10,6,15,14,9,11,3,0,8,12,2,13,7,1,4,10,5,10,2,8,4,7,6,1,5,15,11,9,14,3,12,13,0]),ge=new Uint32Array(16),Xe=new Uint32Array(16);function Vg(t,e){let n=0;for(n=0;n<8;n++)ge[n]=t.h[n],ge[n+8]=Lg[n];for(ge[12]^=t.t,ge[13]^=t.t/4294967296,e&&(ge[14]=~ge[14]),n=0;n<16;n++)Xe[n]=R5(t.b,4*n);for(n=0;n<10;n++)Or(0,4,8,12,Xe[at[n*16+0]],Xe[at[n*16+1]]),Or(1,5,9,13,Xe[at[n*16+2]],Xe[at[n*16+3]]),Or(2,6,10,14,Xe[at[n*16+4]],Xe[at[n*16+5]]),Or(3,7,11,15,Xe[at[n*16+6]],Xe[at[n*16+7]]),Or(0,5,10,15,Xe[at[n*16+8]],Xe[at[n*16+9]]),Or(1,6,11,12,Xe[at[n*16+10]],Xe[at[n*16+11]]),Or(2,7,8,13,Xe[at[n*16+12]],Xe[at[n*16+13]]),Or(3,4,9,14,Xe[at[n*16+14]],Xe[at[n*16+15]]);for(n=0;n<8;n++)t.h[n]^=ge[n]^ge[n+8]}function kg(t,e){if(!(t>0&&t<=32))throw new Error("Incorrect output length, should be in [1, 32]");const n=e?e.length:0;if(e&&!(n>0&&n<=32))throw new Error("Incorrect key length, should be in [1, 32]");const r={h:new Uint32Array(Lg),b:new Uint8Array(64),c:0,t:0,outlen:t};return r.h[0]^=16842752^n<<8^t,n>0&&(Sf(r,e),r.c=64),r}function Sf(t,e){for(let n=0;n<e.length;n++)t.c===64&&(t.t+=t.c,Vg(t,!1),t.c=0),t.b[t.c++]=e[n]}function Fg(t){for(t.t+=t.c;t.c<64;)t.b[t.c++]=0;Vg(t,!0);const e=new Uint8Array(t.outlen);for(let n=0;n<t.outlen;n++)e[n]=t.h[n>>2]>>8*(n&3)&255;return e}function zg(t,e,n){n=n||32,t=Cg.normalizeInput(t);const r=kg(n,e);return Sf(r,t),Fg(r)}function N5(t,e,n){const r=zg(t,e,n);return Cg.toHex(r)}var U5={blake2s:zg,blake2sHex:N5,blake2sInit:kg,blake2sUpdate:Sf,blake2sFinal:Fg};const Vs=T5,ks=U5;var P5={blake2b:Vs.blake2b,blake2bHex:Vs.blake2bHex,blake2bInit:Vs.blake2bInit,blake2bUpdate:Vs.blake2bUpdate,blake2bFinal:Vs.blake2bFinal,blake2s:ks.blake2s,blake2sHex:ks.blake2sHex,blake2sInit:ks.blake2sInit,blake2sUpdate:ks.blake2sUpdate,blake2sFinal:ks.blake2sFinal};const q5=":";function Ba(t){const[e,n]=t.split(q5);return{namespace:e,reference:n}}function Mg(t,e){return t.includes(":")?[t]:e.chains||[]}const C5={INVALID_METHOD:{message:"Invalid method.",code:1001},INVALID_EVENT:{message:"Invalid event.",code:1002},INVALID_UPDATE_REQUEST:{message:"Invalid update request.",code:1003},INVALID_EXTEND_REQUEST:{message:"Invalid extend request.",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:"Invalid session settle request.",code:1005},UNAUTHORIZED_METHOD:{message:"Unauthorized method.",code:3001},UNAUTHORIZED_EVENT:{message:"Unauthorized event.",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:"Unauthorized update request.",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:"Unauthorized extend request.",code:3004},USER_REJECTED:{message:"User rejected.",code:5e3},USER_REJECTED_CHAINS:{message:"User rejected chains.",code:5001},USER_REJECTED_METHODS:{message:"User rejected methods.",code:5002},USER_REJECTED_EVENTS:{message:"User rejected events.",code:5003},UNSUPPORTED_CHAINS:{message:"Unsupported chains.",code:5100},UNSUPPORTED_METHODS:{message:"Unsupported methods.",code:5101},UNSUPPORTED_EVENTS:{message:"Unsupported events.",code:5102},UNSUPPORTED_ACCOUNTS:{message:"Unsupported accounts.",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:"Unsupported namespace key.",code:5104},USER_DISCONNECTED:{message:"User disconnected.",code:6e3},SESSION_SETTLEMENT_FAILED:{message:"Session settlement failed.",code:7e3},WC_METHOD_UNSUPPORTED:{message:"Unsupported wc_ method.",code:10001}},L5={NOT_INITIALIZED:{message:"Not initialized.",code:1},NO_MATCHING_KEY:{message:"No matching key.",code:2},RESTORE_WILL_OVERRIDE:{message:"Restore will override.",code:3},RESUBSCRIBED:{message:"Resubscribed.",code:4},MISSING_OR_INVALID:{message:"Missing or invalid.",code:5},EXPIRED:{message:"Expired.",code:6},UNKNOWN_TYPE:{message:"Unknown type.",code:7},MISMATCHED_TOPIC:{message:"Mismatched topic.",code:8},NON_CONFORMING_NAMESPACES:{message:"Non conforming namespaces.",code:9}};function J(t,e){const{message:n,code:r}=L5[t];return{message:e?`${n} ${e}`:n,code:r}}function Be(t,e){const{message:n,code:r}=C5[t];return{message:e?`${n} ${e}`:n,code:r}}const V5="ReactNative",Ct={reactNative:"react-native",node:"node",browser:"browser",unknown:"unknown"},k5="js";function Fs(){return typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"}function Wn(){return!Kr()&&!!gc()&&navigator.product===V5}function Kg(){return Wn()&&typeof global<"u"&&typeof global?.Platform<"u"&&global?.Platform.OS==="android"}function jg(){return Wn()&&typeof global<"u"&&typeof global?.Platform<"u"&&global?.Platform.OS==="ios"}function ni(){return!Fs()&&!!gc()&&!!Kr()}function zs(){return Wn()?Ct.reactNative:Fs()?Ct.node:ni()?Ct.browser:Ct.unknown}function If(){try{return Wn()&&typeof global<"u"&&typeof global?.Application<"u"?global.Application?.applicationId:void 0}catch{return}}function F5(t,e){const n=new URLSearchParams(t);return Object.entries(e).sort(([r],[i])=>r.localeCompare(i)).forEach(([r,i])=>{i!=null&&n.set(r,String(i))}),n.toString()}function z5(t){const e=Wg();try{return t?.url&&e.url&&new URL(t.url).host!==new URL(e.url).host&&(console.warn(`The configured WalletConnect 'metadata.url':${t.url} differs from the actual page url:${e.url}. This is probably unintended and can lead to issues.`),t.url=e.url),t?.icons?.length&&t.icons.length>0&&(t.icons=t.icons.filter(n=>n!=="")),{...e,...t,url:t?.url||e.url,name:t?.name||e.name,description:t?.description||e.description,icons:t?.icons?.length&&t.icons.length>0?t.icons:e.icons}}catch(n){return console.warn("Error populating app metadata",n),t||e}}function Wg(){return uh()||{name:"",description:"",url:"",icons:[""]}}function M5(){if(zs()===Ct.reactNative&&typeof global<"u"&&typeof global?.Platform<"u"){const{OS:n,Version:r}=global.Platform;return[n,r].join("-")}const t=sb();if(t===null)return"unknown";const e=t.os?t.os.replace(" ","").toLowerCase():"unknown";return t.type==="browser"?[e,t.name,t.version].join("-"):[e,t.version].join("-")}function K5(){const t=zs();return t===Ct.browser?[t,ch()?.host||"unknown"].join(":"):t}function Hg(t,e,n){const r=M5(),i=K5();return[[t,e].join("-"),[k5,n].join("-"),r,i].join("/")}function j5({protocol:t,version:e,relayUrl:n,sdkVersion:r,auth:i,projectId:s,useOnCloseEvent:o,bundleId:a,packageName:c}){const u=n.split("?"),f=Hg(t,e,r),h={auth:i,ua:f,projectId:s,useOnCloseEvent:o||void 0,packageName:c||void 0,bundleId:a||void 0},d=F5(u[1]||"",h);return u[0]+"?"+d}function ri(t,e){return t.filter(n=>e.includes(n)).length===t.length}function Af(t){return Object.fromEntries(t.entries())}function Bf(t){return new Map(Object.entries(t))}function ii(t=Y.FIVE_MINUTES,e){const n=Y.toMiliseconds(t||Y.FIVE_MINUTES);let r,i,s,o;return{resolve:a=>{s&&r&&(clearTimeout(s),r(a),o=Promise.resolve(a))},reject:a=>{s&&i&&(clearTimeout(s),i(a))},done:()=>new Promise((a,c)=>{if(o)return a(o);s=setTimeout(()=>{const u=J("EXPIRED"),f=new Error(e||u.message);f.code=u.code,c(f)},n),r=a,i=c})}}function nn(t,e,n){return new Promise(async(r,i)=>{const s=setTimeout(()=>i(new Error(n)),e);try{const o=await t;r(o)}catch(o){i(o)}clearTimeout(s)})}function Gg(t,e){if(typeof e=="string"&&e.startsWith(`${t}:`))return e;if(t.toLowerCase()==="topic"){if(typeof e!="string")throw new Error('Value must be "string" for expirer target type: topic');return`topic:${e}`}else if(t.toLowerCase()==="id"){if(typeof e!="number")throw new Error('Value must be "number" for expirer target type: id');return`id:${e}`}throw new Error(`Unknown expirer target type: ${t}`)}function W5(t){return Gg("topic",t)}function H5(t){return Gg("id",t)}function Zg(t){const[e,n]=t.split(":"),r={id:void 0,topic:void 0};if(e==="topic"&&typeof n=="string")r.topic=n;else if(e==="id"&&Number.isInteger(Number(n)))r.id=Number(n);else throw new Error(`Invalid target, expected id:number or topic:string, got ${e}:${n}`);return r}function Le(t,e){return Y.fromMiliseconds((e||Date.now())+Y.toMiliseconds(t))}function Tr(t){return Date.now()>=Y.toMiliseconds(t)}function ye(t,e){return`${t}${e?`:${e}`:""}`}function si(t=[],e=[]){return[...new Set([...t,...e])]}async function G5({id:t,topic:e,wcDeepLink:n}){try{if(!n)return;const r=(typeof n=="string"?JSON.parse(n):n)?.href;if(typeof r!="string")return;const i=Z5(r,t,e),s=zs();if(s===Ct.browser){if(!Kr()?.hasFocus()){console.warn("Document does not have focus, skipping deeplink.");return}X5(i)}else s===Ct.reactNative&&typeof global?.Linking<"u"&&await global.Linking.openURL(i)}catch(r){console.error(r)}}function Z5(t,e,n){const r=`requestId=${e}&sessionTopic=${n}`;t.endsWith("/")&&(t=t.slice(0,-1));let i=`${t}`;if(t.startsWith("https://t.me")){const s=t.includes("?")?"&startapp=":"?startapp=";i=`${i}${s}${_5(r,!0)}`}else i=`${i}/wc?${r}`;return i}function X5(t){let e="_self";Q5()?e="_top":(J5()||t.startsWith("https://")||t.startsWith("http://"))&&(e="_blank"),window.open(t,e,"noreferrer noopener")}async function Y5(t,e){let n="";try{if(ni()&&(n=localStorage.getItem(e),n))return n;n=await t.getItem(e)}catch(r){console.error(r)}return n}function Xg(t,e){if(!t.includes(e))return null;const n=t.split(/([&,?,=])/),r=n.indexOf(e);return n[r+2]}function Yg(){return typeof crypto<"u"&&crypto?.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/gu,t=>{const e=Math.random()*16|0;return(t==="x"?e:e&3|8).toString(16)})}function Df(){return typeof process<"u"&&process.env.IS_VITEST==="true"}function J5(){return typeof window<"u"&&(!!window.TelegramWebviewProxy||!!window.Telegram||!!window.TelegramWebviewProxyProto)}function Q5(){try{return window.self!==window.top}catch{return!1}}function _5(t,e=!1){const n=new TextEncoder().encode(t),r=new Array(n.length);for(let s=0;s<n.length;s++)r[s]=String.fromCharCode(n[s]);const i=btoa(r.join(""));return e?i.replace(/[=]/g,""):i}function Jg(t){const e=t+"=".repeat((4-t.length%4)%4),n=atob(e),r=new Uint8Array(n.length);for(let i=0;i<n.length;i++)r[i]=n.charCodeAt(i);return new TextDecoder().decode(r)}function $5(t){return new Promise(e=>setTimeout(e,t))}class eS{constructor({limit:e}){this.limit=e,this.set=new Set}add(e){if(!this.set.has(e)){if(this.set.size>=this.limit){const n=this.set.values().next().value;n&&this.set.delete(n)}this.set.add(e)}}has(e){return this.set.has(e)}}const tS="https://rpc.walletconnect.org/v1";function Hi(t){const e=t+"=".repeat((4-t.length%4)%4),n=atob(e),r=new Uint8Array(n.length);for(let i=0;i<n.length;i++)r[i]=n.charCodeAt(i);return r}function Qg(t){const e=`Ethereum Signed Message:
|
|
19
|
+
${t.length}`,n=new TextEncoder().encode(e+t);return"0x"+ze(Dh(n),"base16")}async function nS(t,e,n,r,i,s){switch(n.t){case"eip191":return await rS(t,e,n.s);case"eip1271":return await iS(t,e,n.s,r,i,s);default:throw new Error(`verifySignature failed: Attempted to verify CacaoSignature with unknown type: ${n.t}`)}}function rS(t,e,n){const r=H2(n);return sv({payload:Qg(e),signature:r}).toLowerCase()===t.toLowerCase()}async function iS(t,e,n,r,i,s){const o=Ba(r);if(!o.namespace||!o.reference)throw new Error(`isValidEip1271Signature failed: chainId must be in CAIP-2 format, received: ${r}`);try{const a="0x1626ba7e",c="0000000000000000000000000000000000000000000000000000000000000040",u=n.substring(2),f=(u.length/2).toString(16).padStart(64,"0"),h=(e.startsWith("0x")?e:Qg(e)).substring(2),d=a+h+c+f+u,l=await fetch(`${s||tS}/?chainId=${r}&projectId=${i}`,{headers:{"Content-Type":"application/json"},method:"POST",body:JSON.stringify({id:sS(),jsonrpc:"2.0",method:"eth_call",params:[{to:t,data:d},"latest"]})}),{result:p}=await l.json();return p?p.slice(0,a.length).toLowerCase()===a.toLowerCase():!1}catch(a){return console.error("isValidEip1271Signature: ",a),!1}}function sS(){return Date.now()+Math.floor(Math.random()*1e3)}function oS(t){const e=Hi(t),n=e[0];if(n===0)throw new Error("No signatures found");const r=1+n*64;if(e.length<r)throw new Error("Transaction data too short for claimed signature count");if(e.length<100)throw new Error("Transaction too short");const i=e.slice(1,65);return Li.encode(i)}function aS(t){const e=Hi(t),n=new TextEncoder().encode("TransactionData::"),r=new Uint8Array(n.length+e.length);r.set(n),r.set(e,n.length);const i=e3(r,{dkLen:32});return Li.encode(i)}function _g(t){const e=new Uint8Array(fr(cS(t)));return Li.encode(e)}function cS(t){if(t instanceof Uint8Array)return t;if(Array.isArray(t))return new Uint8Array(t);if(typeof t=="object"&&t?.data)return new Uint8Array(Object.values(t.data));if(typeof t=="object"&&t)return new Uint8Array(Object.values(t));throw new Error("getNearUint8ArrayFromBytes: Unexpected result type from bytes array")}function $g(t){const e=Hi(t),n=sE(e).txn;if(!n)throw new Error("Invalid signed transaction: missing 'txn' field");const r=Qv(n),i=new TextEncoder().encode("TX"),s=Qr([i,new Uint8Array(r)]),o=Om(s);return tv.encode(o).replace(/=+$/,"")}function Of(t){const e=[];let n=BigInt(t);for(;n>=0x80n;)e.push(Number(n&0x7fn|0x80n)),n>>=7n;return e.push(Number(n)),new Uint8Array(e)}function uS(t){const e=Hi(t.signed.bodyBytes),n=Hi(t.signed.authInfoBytes),r=Hi(t.signature.signature),i=[];i.push(new Uint8Array([10])),i.push(Of(e.length)),i.push(e),i.push(new Uint8Array([18])),i.push(Of(n.length)),i.push(n),i.push(new Uint8Array([26])),i.push(Of(r.length)),i.push(r);const s=Qr(i),o=fr(s);return ze(o,"base16").toUpperCase()}function fS(t){const e=[];try{if(typeof t=="string")return e.push(t),e;if(typeof t!="object")return e;t?.id&&e.push(t.id);const n=t?.capabilities?.caip345?.transactionHashes;n&&e.push(...n)}catch(n){console.warn("getWalletSendCallsHashes failed: ",n)}return e}const e1="did:pkh:",lS={eip155:"Ethereum",solana:"Solana",bip122:"Bitcoin"},hS=t=>t?lS[t]||t:"",Da=t=>t?.split(":"),dS=t=>{const e=t&&Da(t);if(e)return t.includes(e1)?e[3]:e[1]},pS=t=>{const e=t&&Da(t);if(e)return t.includes(e1)?e[2]:e[0]},Tf=t=>{const e=t&&Da(t);if(e)return e[2]+":"+e[3]},Oa=t=>{const e=t&&Da(t);if(e)return e.pop()};async function t1(t){const{cacao:e,projectId:n}=t,{s:r,p:i}=e;let s;try{s=n1(i,i.iss)}catch{return!1}const o=Oa(i.iss);return await nS(o,s,r,Tf(i.iss),n)}const n1=(t,e)=>{const n=pS(e);if(!n)throw new Error("Invalid issuer: "+e);const r=`${t.domain} wants you to sign in with your ${hS(n)} account:`,i=Oa(e);if(!t.aud&&!t.uri)throw new Error("Either `aud` or `uri` is required to construct the message");let s=t.statement||void 0;const o=`URI: ${t.aud||t.uri}`,a=`Version: ${t.version}`,c=`Chain ID: ${dS(e)}`,u=`Nonce: ${t.nonce}`,f=`Issued At: ${t.iat}`,h=t.exp?`Expiration Time: ${t.exp}`:void 0,d=t.nbf?`Not Before: ${t.nbf}`:void 0,l=t.requestId?`Request ID: ${t.requestId}`:void 0,p=t.resources?`Resources:${t.resources.map(v=>`
|
|
20
|
+
- ${v}`).join("")}`:void 0,w=Ta(t.resources);if(w){const v=Ms(w);s=SS(s,v)}if(s&&/\r|\n/.test(s))throw new Error("Statement must not contain line breaks (`\\r` or `\\n`)");return[r,i,"",s,"",o,a,c,u,f,h,d,l,p].filter(v=>v!=null).join(`
|
|
21
|
+
`)};function gS(t){const e=JSON.stringify(t),n=new TextEncoder().encode(e),r=new Array(n.length);for(let i=0;i<n.length;i++)r[i]=String.fromCharCode(n[i]);return btoa(r.join(""))}function yS(t){const e=t+"=".repeat((4-t.length%4)%4),n=atob(e),r=new Uint8Array(n.length);for(let i=0;i<n.length;i++)r[i]=n.charCodeAt(i);return JSON.parse(new TextDecoder().decode(r))}function oi(t){if(!t)throw new Error("No recap provided, value is undefined");if(!t.att)throw new Error("No `att` property found");const e=Object.keys(t.att);if(!e?.length)throw new Error("No resources found in `att` property");e.forEach(n=>{const r=t.att[n];if(Array.isArray(r))throw new Error(`Resource must be an object: ${n}`);if(typeof r!="object")throw new Error(`Resource must be an object: ${n}`);if(!Object.keys(r).length)throw new Error(`Resource object is empty: ${n}`);Object.keys(r).forEach(i=>{const s=r[i];if(!Array.isArray(s))throw new Error(`Ability limits ${i} must be an array of objects, found: ${s}`);if(!s.length)throw new Error(`Value of ${i} is empty array, must be an array with objects`);s.forEach(o=>{if(typeof o!="object")throw new Error(`Ability limits (${i}) must be an array of objects, found: ${o}`)})})})}function wS(t,e,n,r={}){return n?.sort((i,s)=>i.localeCompare(s)),{att:{[t]:bS(e,n,r)}}}function bS(t,e,n={}){e=e?.sort((i,s)=>i.localeCompare(s));const r=e.map(i=>({[`${t}/${i}`]:[n]}));return Object.assign({},...r)}function r1(t){return oi(t),`urn:recap:${gS(t).replace(/=/g,"")}`}function Ms(t){const e=yS(t.replace("urn:recap:",""));return oi(e),e}function mS(t,e,n){const r=wS(t,e,n);return r1(r)}function vS(t){return t&&t.includes("urn:recap:")}function ES(t,e){const n=Ms(t),r=Ms(e),i=xS(n,r);return r1(i)}function xS(t,e){oi(t),oi(e);const n=Object.keys(t.att).concat(Object.keys(e.att)).sort((i,s)=>i.localeCompare(s)),r={att:{}};return n.forEach(i=>{Object.keys(t.att?.[i]||{}).concat(Object.keys(e.att?.[i]||{})).sort((s,o)=>s.localeCompare(o)).forEach(s=>{r.att[i]={...r.att[i],[s]:t.att[i]?.[s]||e.att[i]?.[s]}})}),r}function SS(t="",e){oi(e);const n="I further authorize the stated URI to perform the following actions on my behalf: ";if(t.includes(n))return t;const r=[];let i=0;Object.keys(e.att).forEach(a=>{const c=Object.keys(e.att[a]).map(h=>({ability:h.split("/")[0],action:h.split("/")[1]}));c.sort((h,d)=>h.action.localeCompare(d.action));const u={};c.forEach(h=>{u[h.ability]||(u[h.ability]=[]),u[h.ability].push(h.action)});const f=Object.keys(u).map(h=>(i++,`(${i}) '${h}': '${u[h].join("', '")}' for '${a}'.`));r.push(f.join(", ").replace(".,","."))});const s=r.join(" "),o=`${n}${s}`;return`${t?t+" ":""}${o}`}function i1(t){const e=Ms(t);oi(e);const n=e.att?.eip155;return n?Object.keys(n).map(r=>r.split("/")[1]):[]}function s1(t){const e=Ms(t);oi(e);const n=[];return Object.values(e.att).forEach(r=>{Object.values(r).forEach(i=>{i?.[0]?.chains&&n.push(i[0].chains)})}),[...new Set(n.flat())]}function Ta(t){if(!t)return;const e=t?.[t.length-1];return vS(e)?e:void 0}const o1="base10",gt="base16",Ye="base64pad",gn="base64url",Ks="utf8",a1=0,Hn=1,ai=2,IS=0,c1=1,js=12,Rf=32;function AS(){const t=Ju.utils.randomPrivateKey(),e=Ju.getPublicKey(t);return{privateKey:ze(t,gt),publicKey:ze(e,gt)}}function Nf(){const t=Dn(Rf);return ze(t,gt)}function BS(t,e){const n=Ju.getSharedSecret(it(t,gt),it(e,gt)),r=M8(Ao,n,void 0,void 0,Rf);return ze(r,gt)}function Ra(t){const e=Ao(it(t,gt));return ze(e,gt)}function jt(t){const e=Ao(it(t,Ks));return ze(e,gt)}function u1(t){return it(`${t}`,o1)}function ci(t){return Number(ze(t,o1))}function f1(t){return t.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}function Na(t){const e=t.replace(/-/g,"+").replace(/_/g,"/"),n=(4-e.length%4)%4;return e+"=".repeat(n)}function DS(t){const e=u1(typeof t.type<"u"?t.type:a1);if(ci(e)===Hn&&typeof t.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");const n=typeof t.senderPublicKey<"u"?it(t.senderPublicKey,gt):void 0,r=typeof t.iv<"u"?it(t.iv,gt):Dn(js),i=it(t.symKey,gt),s=tp(i,r).encrypt(it(t.message,Ks)),o=l1({type:e,sealed:s,iv:r,senderPublicKey:n});return t.encoding===gn?f1(o):o}function OS(t){const e=it(t.symKey,gt),{sealed:n,iv:r}=Ws({encoded:t.encoded,encoding:t.encoding}),i=tp(e,r).decrypt(n);if(i===null)throw new Error("Failed to decrypt");return ze(i,Ks)}function TS(t,e){const n=u1(ai),r=Dn(js),i=it(t,Ks),s=l1({type:n,sealed:i,iv:r});return e===gn?f1(s):s}function RS(t,e){const{sealed:n}=Ws({encoded:t,encoding:e});return ze(n,Ks)}function l1(t){if(ci(t.type)===ai)return ze(Qr([t.type,t.sealed]),Ye);if(ci(t.type)===Hn){if(typeof t.senderPublicKey>"u")throw new Error("Missing sender public key for type 1 envelope");return ze(Qr([t.type,t.senderPublicKey,t.iv,t.sealed]),Ye)}return ze(Qr([t.type,t.iv,t.sealed]),Ye)}function Ws(t){const e=(t.encoding||Ye)===gn?Na(t.encoded):t.encoded,n=it(e,Ye),r=n.slice(IS,c1),i=c1;if(ci(r)===Hn){const c=i+Rf,u=c+js,f=n.slice(i,c),h=n.slice(c,u),d=n.slice(u);return{type:r,sealed:d,iv:h,senderPublicKey:f}}if(ci(r)===ai){const c=n.slice(i),u=Dn(js);return{type:r,sealed:c,iv:u}}const s=i+js,o=n.slice(i,s),a=n.slice(s);return{type:r,sealed:a,iv:o}}function NS(t,e){const n=Ws({encoded:t,encoding:e?.encoding});return h1({type:ci(n.type),senderPublicKey:typeof n.senderPublicKey<"u"?ze(n.senderPublicKey,gt):void 0,receiverPublicKey:e?.receiverPublicKey})}function h1(t){const e=t?.type||a1;if(e===Hn){if(typeof t?.senderPublicKey>"u")throw new Error("missing sender public key");if(typeof t?.receiverPublicKey>"u")throw new Error("missing receiver public key")}return{type:e,senderPublicKey:t?.senderPublicKey,receiverPublicKey:t?.receiverPublicKey}}function d1(t){return t.type===Hn&&typeof t.senderPublicKey=="string"&&typeof t.receiverPublicKey=="string"}function p1(t){return t.type===ai}function US(t){const e=it(Na(t.x),Ye),n=it(Na(t.y),Ye);return Qr([new Uint8Array([4]),e,n])}function PS(t,e){const[n,r,i]=t.split("."),s=it(Na(i),Ye);if(s.length!==64)throw new Error("Invalid signature length");const o=s.slice(0,32),a=s.slice(32,64),c=`${n}.${r}`,u=Ao(c),f=US(e);if(!T4.verify(Qr([o,a]),u,f))throw new Error("Invalid signature");return Ef(t).payload}const qS="irn";function Ua(t){return t?.relay||{protocol:qS}}function Gi(t){const e=E5[t];if(typeof e>"u")throw new Error(`Relay Protocol not supported: ${t}`);return e}function CS(t,e="-"){const n={},r="relay"+e;return Object.keys(t).forEach(i=>{if(i.startsWith(r)){const s=i.replace(r,""),o=t[i];n[s]=o}}),n}function g1(t){if(!t.includes("wc:")){const u=Jg(t);u?.includes("wc:")&&(t=u)}t=t.includes("wc://")?t.replace("wc://",""):t,t=t.includes("wc:")?t.replace("wc:",""):t;const e=t.indexOf(":"),n=t.indexOf("?")!==-1?t.indexOf("?"):void 0,r=t.substring(0,e),i=t.substring(e+1,n).split("@"),s=typeof n<"u"?t.substring(n):"",o=new URLSearchParams(s),a=Object.fromEntries(o.entries()),c=typeof a.methods=="string"?a.methods.split(","):void 0;return{protocol:r,topic:LS(i[0]),version:parseInt(i[1],10),symKey:a.symKey,relay:CS(a),methods:c,expiryTimestamp:a.expiryTimestamp?parseInt(a.expiryTimestamp,10):void 0}}function LS(t){return t.startsWith("//")?t.substring(2):t}function VS(t,e="-"){const n="relay",r={};return Object.keys(t).forEach(i=>{const s=i,o=n+e+s;t[s]&&(r[o]=t[s])}),r}function y1(t){const e=new URLSearchParams,n={...VS(t.relay),symKey:t.symKey,...t.expiryTimestamp&&{expiryTimestamp:t.expiryTimestamp.toString()},...t.methods&&{methods:t.methods.join(",")}};return Object.entries(n).sort(([r],[i])=>r.localeCompare(i)).forEach(([r,i])=>{i!==void 0&&e.append(r,String(i))}),`${t.protocol}:${t.topic}@${t.version}?${e}`}function Pa(t,e,n){return`${t}?wc_ev=${n}&topic=${e}`}function Zi(t){const e=[];return t.forEach(n=>{const[r,i]=n.split(":");e.push(`${r}:${i}`)}),e}function w1(t){const e=[];return Object.values(t).forEach(n=>{e.push(...Zi(n.accounts))}),[...new Set(e)]}function kS(t){const e=[];return Object.values(t).forEach(n=>{e.push(...n.methods)}),[...new Set(e)]}function FS(t){const e=[];return Object.values(t).forEach(n=>{e.push(...n.events)}),[...new Set(e)]}function zS(t,e){const n=[];return Object.values(t).forEach(r=>{Zi(r.accounts).includes(e)&&n.push(...r.methods)}),n}function MS(t,e){const n=[];return Object.values(t).forEach(r=>{Zi(r.accounts).includes(e)&&n.push(...r.events)}),n}function b1(t){return t.includes(":")}function KS(t){return b1(t)?t.split(":")[0]:t}function m1(t){const e={};if(!Hs(t))return e;for(const[n,r]of Object.entries(t)){const i=b1(n)?[n]:r.chains,s=r.methods||[],o=r.events||[],a=KS(n);e[a]={...e[a],chains:si(i,e[a]?.chains),methods:si(s,e[a]?.methods),events:si(o,e[a]?.events)}}return e}function jS(t){const e={};return t?.forEach(n=>{const[r,i]=n.split(":");e[r]||(e[r]={accounts:[],chains:[],events:[],methods:[]}),e[r].accounts.push(n),e[r].chains?.push(`${r}:${i}`)}),e}function v1(t,e){e=e.map(r=>r.replace("did:pkh:",""));const n=jS(e);for(const[r,i]of Object.entries(n))i.methods?i.methods=si(i.methods,t):i.methods=t,i.events=["chainChanged","accountsChanged"];return n}function WS(t,e){const n=m1(t),r=m1(e),i={},s=Object.keys(n).concat(Object.keys(r));for(const o of s)i[o]={chains:si(n[o]?.chains,r[o]?.chains),methods:si(n[o]?.methods,r[o]?.methods),events:si(n[o]?.events,r[o]?.events)};return i}function Xi(t,e){return Array.isArray(t)?typeof e<"u"&&t.length?t.every(e):!0:!1}function Hs(t){return Object.getPrototypeOf(t)===Object.prototype&&Object.keys(t).length}function Ve(t){return typeof t>"u"}function Ue(t,e){return e&&Ve(t)?!0:typeof t=="string"&&!!t.trim().length}function Uf(t,e){return e&&Ve(t)?!0:typeof t=="number"&&!isNaN(t)}function HS(t,e){const{requiredNamespaces:n}=e,r=Object.keys(t.namespaces),i=Object.keys(n);let s=!0;return ri(i,r)?(r.forEach(o=>{const{accounts:a,methods:c,events:u}=t.namespaces[o],f=Zi(a),h=n[o];(!ri(Mg(o,h),f)||!ri(h.methods,c)||!ri(h.events,u))&&(s=!1)}),s):!1}function qa(t){return Ue(t,!1)&&t.includes(":")?t.split(":").length===2:!1}function GS(t){if(Ue(t,!1)&&t.includes(":")){const e=t.split(":");if(e.length===3){const n=e[0]+":"+e[1];return!!e[2]&&qa(n)}}return!1}function ZS(t){function e(n){try{return typeof new URL(n)<"u"}catch{return!1}}try{if(Ue(t,!1)){if(e(t))return!0;const n=Jg(t);return e(n)}}catch{}return!1}function XS(t){return t?.proposer?.publicKey}function YS(t){return t?.topic}function JS(t,e){let n=null;return Ue(t?.publicKey,!1)||(n=J("MISSING_OR_INVALID",`${e} controller public key should be a string`)),n}function E1(t){let e=!0;return Xi(t)?t.length&&(e=t.every(n=>Ue(n,!1))):e=!1,e}function QS(t,e,n){let r=null;return Xi(e)&&e.length?e.forEach(i=>{r||qa(i)||(r=Be("UNSUPPORTED_CHAINS",`${n}, chain ${i} should be a string and conform to "namespace:chainId" format`))}):qa(t)||(r=Be("UNSUPPORTED_CHAINS",`${n}, chains must be defined as "namespace:chainId" e.g. "eip155:1": {...} in the namespace key OR as an array of CAIP-2 chainIds e.g. eip155: { chains: ["eip155:1", "eip155:5"] }`)),r}function _S(t,e,n){let r=null;return Object.entries(t).forEach(([i,s])=>{if(r)return;const o=QS(i,Mg(i,s),`${e} ${n}`);o&&(r=o)}),r}function $S(t,e){let n=null;return Xi(t)?t.forEach(r=>{n||GS(r)||(n=Be("UNSUPPORTED_ACCOUNTS",`${e}, account ${r} should be a string and conform to "namespace:chainId:address" format`))}):n=Be("UNSUPPORTED_ACCOUNTS",`${e}, accounts should be an array of strings conforming to "namespace:chainId:address" format`),n}function e7(t,e){let n=null;return Object.values(t).forEach(r=>{if(n)return;const i=$S(r?.accounts,`${e} namespace`);i&&(n=i)}),n}function t7(t,e){let n=null;return E1(t?.methods)?E1(t?.events)||(n=Be("UNSUPPORTED_EVENTS",`${e}, events should be an array of strings or empty array for no events`)):n=Be("UNSUPPORTED_METHODS",`${e}, methods should be an array of strings or empty array for no methods`),n}function x1(t,e){let n=null;return Object.values(t).forEach(r=>{if(n)return;const i=t7(r,`${e}, namespace`);i&&(n=i)}),n}function n7(t,e,n){let r=null;if(t&&Hs(t)){const i=x1(t,e);i&&(r=i);const s=_S(t,e,n);s&&(r=s)}else r=J("MISSING_OR_INVALID",`${e}, ${n} should be an object with data`);return r}function Pf(t,e){let n=null;if(t&&Hs(t)){const r=x1(t,e);r&&(n=r);const i=e7(t,e);i&&(n=i)}else n=J("MISSING_OR_INVALID",`${e}, namespaces should be an object with data`);return n}function S1(t){return Ue(t.protocol,!0)}function r7(t,e){let n=!1;return e&&!t?n=!0:t&&Xi(t)&&t.length&&t.forEach(r=>{n=S1(r)}),n}function i7(t){return typeof t=="number"}function At(t){return typeof t<"u"&&typeof t!==null}function s7(t){return!(!t||typeof t!="object"||!t.code||!Uf(t.code,!1)||!t.message||!Ue(t.message,!1))}function o7(t){return!(Ve(t)||!Ue(t.method,!1))}function a7(t){return!(Ve(t)||Ve(t.result)&&Ve(t.error)||!Uf(t.id,!1)||!Ue(t.jsonrpc,!1))}function c7(t){return!(Ve(t)||!Ue(t.name,!1))}function I1(t,e){return!(!qa(e)||!w1(t).includes(e))}function u7(t,e,n){return Ue(n,!1)?zS(t,e).includes(n):!1}function f7(t,e,n){return Ue(n,!1)?MS(t,e).includes(n):!1}function A1(t,e,n){let r=null;const i=l7(t),s=h7(e),o=Object.keys(i),a=Object.keys(s),c=B1(Object.keys(t)),u=B1(Object.keys(e)),f=c.filter(h=>!u.includes(h));return f.length&&(r=J("NON_CONFORMING_NAMESPACES",`${n} namespaces keys don't satisfy requiredNamespaces.
|
|
22
22
|
Required: ${f.toString()}
|
|
23
|
-
Received: ${Object.keys(e).toString()}`)),
|
|
23
|
+
Received: ${Object.keys(e).toString()}`)),ri(o,a)||(r=J("NON_CONFORMING_NAMESPACES",`${n} namespaces chains don't satisfy required namespaces.
|
|
24
24
|
Required: ${o.toString()}
|
|
25
|
-
Approved: ${a.toString()}`)),Object.keys(e).forEach(h=>{if(!h.includes(":")||r)return;const d=
|
|
25
|
+
Approved: ${a.toString()}`)),Object.keys(e).forEach(h=>{if(!h.includes(":")||r)return;const d=Zi(e[h].accounts);d.includes(h)||(r=J("NON_CONFORMING_NAMESPACES",`${n} namespaces accounts don't satisfy namespace accounts for ${h}
|
|
26
26
|
Required: ${h}
|
|
27
|
-
Approved: ${d.toString()}`))}),o.forEach(h=>{r||(ni(i[h].methods,s[h].methods)?ni(i[h].events,s[h].events)||(r=X("NON_CONFORMING_NAMESPACES",`${n} namespaces events don't satisfy namespace events for ${h}`)):r=X("NON_CONFORMING_NAMESPACES",`${n} namespaces methods don't satisfy namespace methods for ${h}`))}),r}function uI(t){const e={};return Object.keys(t).forEach(n=>{n.includes(":")?e[n]=t[n]:t[n].chains?.forEach(r=>{e[r]={methods:t[n].methods,events:t[n].events}})}),e}function S1(t){return[...new Set(t.map(e=>e.includes(":")?e.split(":")[0]:e))]}function fI(t){const e={};return Object.keys(t).forEach(n=>{n.includes(":")?e[n]=t[n]:Gi(t[n].accounts)?.forEach(r=>{e[r]={accounts:t[n].accounts.filter(i=>i.includes(`${r}:`)),methods:t[n].methods,events:t[n].events}})}),e}function lI(t,e){return Tf(t,!1)&&t<=e.max&&t>=e.min}function I1(){const t=Ms();return new Promise(e=>{switch(t){case qt.browser:e(hI());break;case qt.reactNative:e(dI());break;case qt.node:e(pI());break;default:e(!0)}})}function hI(){return ti()&&navigator?.onLine}async function dI(){return Wn()&&typeof global<"u"&&global?.NetInfo?(await global?.NetInfo.fetch())?.isConnected:!0}function pI(){return!0}function gI(t){switch(Ms()){case qt.browser:wI(t);break;case qt.reactNative:yI(t);break}}function wI(t){!Wn()&&ti()&&(window.addEventListener("online",()=>t(!0)),window.addEventListener("offline",()=>t(!1)))}function yI(t){Wn()&&typeof global<"u"&&global?.NetInfo&&global?.NetInfo.addEventListener(e=>t(e?.isConnected))}function bI(){return ti()&&zr()?zr()?.visibilityState==="visible":!0}const Uf={};class Gs{static get(e){return Uf[e]}static set(e,n){Uf[e]=n}static delete(e){delete Uf[e]}}function mI(t){const e=qi.decode(t);if(e.length<33)throw new Error("Too short to contain a public key");return e.slice(1,33)}function vI({publicKey:t,signature:e,payload:n}){const r=Ca(n.method),i=128|parseInt(n.version?.toString()||"4"),s=SI(n.address),o=n.era==="00"?new Uint8Array([0]):Ca(n.era);if(o.length!==1&&o.length!==2)throw new Error("Invalid era length");const a=parseInt(n.nonce,16),c=new Uint8Array([a&255,a>>8&255]),u=BigInt(`0x${xI(n.tip)}`),f=AI(u),h=new Uint8Array([0,...t,s,...e,...o,...c,...f,...r]),d=II(h.length+1);return new Uint8Array([...d,i,...h])}function EI(t){const e=Ca(t),n=N5.blake2b(e,void 0,32);return"0x"+Ve(n,"base16")}function Ca(t){return new Uint8Array(t.replace(/^0x/,"").match(/.{1,2}/g).map(e=>parseInt(e,16)))}function xI(t){return t.startsWith("0x")?t.slice(2):t}function SI(t){const e=qi.decode(t)[0];return e===42?0:e===60?2:1}function II(t){if(t<64)return new Uint8Array([t<<2]);if(t<16384){const e=t<<2|1;return new Uint8Array([e&255,e>>8&255])}else if(t<1<<30){const e=t<<2|2;return new Uint8Array([e&255,e>>8&255,e>>16&255,e>>24&255])}else throw new Error("Compact encoding > 2^30 not supported")}function AI(t){if(t<1n<<6n)return new Uint8Array([Number(t<<2n)]);if(t<1n<<14n){const e=t<<2n|0x01n;return new Uint8Array([Number(e&0xffn),Number(e>>8n&0xffn)])}else if(t<1n<<30n){const e=t<<2n|0x02n;return new Uint8Array([Number(e&0xffn),Number(e>>8n&0xffn),Number(e>>16n&0xffn),Number(e>>24n&0xffn)])}else throw new Error("BigInt compact encoding not supported > 2^30")}function OI(t){const e=Ca(t.signature),n=mI(t.transaction.address),r=vI({publicKey:n,signature:e,payload:t.transaction}),i=Ve(r,"base16");return EI(i)}function A1({logger:t,name:e}){const n=typeof t=="string"?Wl({opts:{level:t,name:e}}).logger:t;return n.level=typeof t=="string"?t:t.level,n}var Ks={},Pa={};function O1(t){this.buffer=t,this.pos=0}O1.prototype.read=function(t,e,n){this.pos+n>this.buffer.length&&(n=this.buffer.length-this.pos);for(var r=0;r<n;r++)t[e+r]=this.buffer[this.pos+r];return this.pos+=n,n},Pa.BrotliInput=O1;function B1(t){this.buffer=t,this.pos=0}B1.prototype.write=function(t,e){if(this.pos+e>this.buffer.length)throw new Error("Output buffer is not large enough");return this.buffer.set(t.subarray(0,e),this.pos),this.pos+=e,e},Pa.BrotliOutput=B1;var ai=4096,BI=2*ai+32,D1=2*ai-1,DI=new Uint32Array([0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,131071,262143,524287,1048575,2097151,4194303,8388607,16777215]);function ci(t){this.buf_=new Uint8Array(BI),this.input_=t,this.reset()}ci.READ_SIZE=ai,ci.IBUF_MASK=D1,ci.prototype.reset=function(){this.buf_ptr_=0,this.val_=0,this.pos_=0,this.bit_pos_=0,this.bit_end_pos_=0,this.eos_=0,this.readMoreInput();for(var t=0;t<4;t++)this.val_|=this.buf_[this.pos_]<<8*t,++this.pos_;return this.bit_end_pos_>0},ci.prototype.readMoreInput=function(){if(!(this.bit_end_pos_>256))if(this.eos_){if(this.bit_pos_>this.bit_end_pos_)throw new Error("Unexpected end of input "+this.bit_pos_+" "+this.bit_end_pos_)}else{var t=this.buf_ptr_,e=this.input_.read(this.buf_,t,ai);if(e<0)throw new Error("Unexpected end of input");if(e<ai){this.eos_=1;for(var n=0;n<32;n++)this.buf_[t+e+n]=0}if(t===0){for(var n=0;n<32;n++)this.buf_[(ai<<1)+n]=this.buf_[n];this.buf_ptr_=ai}else this.buf_ptr_=0;this.bit_end_pos_+=e<<3}},ci.prototype.fillBitWindow=function(){for(;this.bit_pos_>=8;)this.val_>>>=8,this.val_|=this.buf_[this.pos_&D1]<<24,++this.pos_,this.bit_pos_=this.bit_pos_-8>>>0,this.bit_end_pos_=this.bit_end_pos_-8>>>0},ci.prototype.readBits=function(t){32-this.bit_pos_<t&&this.fillBitWindow();var e=this.val_>>>this.bit_pos_&DI[t];return this.bit_pos_+=t,e};var RI=ci,Tr={},Cf={},qa={};qa.byteLength=UI,qa.toByteArray=PI,qa.fromByteArray=kI;for(var gn=[],Ht=[],TI=typeof Uint8Array<"u"?Uint8Array:Array,Pf="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Zi=0,NI=Pf.length;Zi<NI;++Zi)gn[Zi]=Pf[Zi],Ht[Pf.charCodeAt(Zi)]=Zi;Ht[45]=62,Ht[95]=63;function R1(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");n===-1&&(n=e);var r=n===e?0:4-n%4;return[n,r]}function UI(t){var e=R1(t),n=e[0],r=e[1];return(n+r)*3/4-r}function CI(t,e,n){return(e+n)*3/4-n}function PI(t){var e,n=R1(t),r=n[0],i=n[1],s=new TI(CI(t,r,i)),o=0,a=i>0?r-4:r,c;for(c=0;c<a;c+=4)e=Ht[t.charCodeAt(c)]<<18|Ht[t.charCodeAt(c+1)]<<12|Ht[t.charCodeAt(c+2)]<<6|Ht[t.charCodeAt(c+3)],s[o++]=e>>16&255,s[o++]=e>>8&255,s[o++]=e&255;return i===2&&(e=Ht[t.charCodeAt(c)]<<2|Ht[t.charCodeAt(c+1)]>>4,s[o++]=e&255),i===1&&(e=Ht[t.charCodeAt(c)]<<10|Ht[t.charCodeAt(c+1)]<<4|Ht[t.charCodeAt(c+2)]>>2,s[o++]=e>>8&255,s[o++]=e&255),s}function qI(t){return gn[t>>18&63]+gn[t>>12&63]+gn[t>>6&63]+gn[t&63]}function FI(t,e,n){for(var r,i=[],s=e;s<n;s+=3)r=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(t[s+2]&255),i.push(qI(r));return i.join("")}function kI(t){for(var e,n=t.length,r=n%3,i=[],s=16383,o=0,a=n-r;o<a;o+=s)i.push(FI(t,o,o+s>a?a:o+s));return r===1?(e=t[n-1],i.push(gn[e>>2]+gn[e<<4&63]+"==")):r===2&&(e=(t[n-2]<<8)+t[n-1],i.push(gn[e>>10]+gn[e>>4&63]+gn[e<<2&63]+"=")),i.join("")}var qf,T1;function LI(){return T1||(T1=1,qf="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"),qf}var N1;function MI(){if(N1)return Cf;N1=1;var t=qa;return Cf.init=function(){var e=L1().BrotliDecompressBuffer,n=t.toByteArray(LI());return e(n)},Cf}var U1;function C1(){if(U1)return Tr;U1=1;var t=MI();return Tr.init=function(){Tr.dictionary=t.init()},Tr.offsetsByLength=new Uint32Array([0,0,0,0,0,4096,9216,21504,35840,44032,53248,63488,74752,87040,93696,100864,104704,106752,108928,113536,115968,118528,119872,121280,122016]),Tr.sizeBitsByLength=new Uint8Array([0,0,0,0,10,10,11,11,10,10,10,10,10,9,9,8,7,7,8,7,7,6,6,5,5]),Tr.minDictionaryWordLength=4,Tr.maxDictionaryWordLength=24,Tr}var Fa={};function Ji(t,e){this.bits=t,this.value=e}Fa.HuffmanCode=Ji;var Xi=15;function P1(t,e){for(var n=1<<e-1;t&n;)n>>=1;return(t&n-1)+n}function q1(t,e,n,r,i){do r-=n,t[e+r]=new Ji(i.bits,i.value);while(r>0)}function VI(t,e,n){for(var r=1<<e-n;e<Xi&&(r-=t[e],!(r<=0));)++e,r<<=1;return e-n}Fa.BrotliBuildHuffmanTable=function(t,e,n,r,i){var s=e,o,a,c,u,f,h,d,l,p,y,v,D=new Int32Array(Xi+1),C=new Int32Array(Xi+1);for(v=new Int32Array(i),c=0;c<i;c++)D[r[c]]++;for(C[1]=0,a=1;a<Xi;a++)C[a+1]=C[a]+D[a];for(c=0;c<i;c++)r[c]!==0&&(v[C[r[c]]++]=c);if(l=n,p=1<<l,y=p,C[Xi]===1){for(u=0;u<y;++u)t[e+u]=new Ji(0,v[0]&65535);return y}for(u=0,c=0,a=1,f=2;a<=n;++a,f<<=1)for(;D[a]>0;--D[a])o=new Ji(a&255,v[c++]&65535),q1(t,e+u,f,p,o),u=P1(u,a);for(d=y-1,h=-1,a=n+1,f=2;a<=Xi;++a,f<<=1)for(;D[a]>0;--D[a])(u&d)!==h&&(e+=p,l=VI(D,a,n),p=1<<l,y+=p,h=u&d,t[s+h]=new Ji(l+n&255,e-s-h&65535)),o=new Ji(a-n&255,v[c++]&65535),q1(t,e+(u>>n),f,p,o),u=P1(u,a);return y};var Ff={};Ff.lookup=new Uint8Array([0,0,0,0,0,0,0,0,0,4,4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,12,16,12,12,20,12,16,24,28,12,12,32,12,36,12,44,44,44,44,44,44,44,44,44,44,32,32,24,40,28,12,12,48,52,52,52,48,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,24,12,28,12,12,12,56,60,60,60,56,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,24,12,28,12,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,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,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,52,53,54,55,56,57,58,59,60,61,62,63,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,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,52,53,54,55,56,57,58,59,60,61,62,63,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,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,52,53,54,55,56,57,58,59,60,61,62,63,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,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,52,53,54,55,56,57,58,59,60,61,62,63,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Ff.lookupOffsets=new Uint16Array([1024,1536,1280,1536,0,256,768,512]);var Qi={};function ee(t,e){this.offset=t,this.nbits=e}Qi.kBlockLengthPrefixCode=[new ee(1,2),new ee(5,2),new ee(9,2),new ee(13,2),new ee(17,3),new ee(25,3),new ee(33,3),new ee(41,3),new ee(49,4),new ee(65,4),new ee(81,4),new ee(97,4),new ee(113,5),new ee(145,5),new ee(177,5),new ee(209,5),new ee(241,6),new ee(305,6),new ee(369,7),new ee(497,8),new ee(753,9),new ee(1265,10),new ee(2289,11),new ee(4337,12),new ee(8433,13),new ee(16625,24)],Qi.kInsertLengthPrefixCode=[new ee(0,0),new ee(1,0),new ee(2,0),new ee(3,0),new ee(4,0),new ee(5,0),new ee(6,1),new ee(8,1),new ee(10,2),new ee(14,2),new ee(18,3),new ee(26,3),new ee(34,4),new ee(50,4),new ee(66,5),new ee(98,5),new ee(130,6),new ee(194,7),new ee(322,8),new ee(578,9),new ee(1090,10),new ee(2114,12),new ee(6210,14),new ee(22594,24)],Qi.kCopyLengthPrefixCode=[new ee(2,0),new ee(3,0),new ee(4,0),new ee(5,0),new ee(6,0),new ee(7,0),new ee(8,0),new ee(9,0),new ee(10,1),new ee(12,1),new ee(14,2),new ee(18,2),new ee(22,3),new ee(30,3),new ee(38,4),new ee(54,4),new ee(70,5),new ee(102,5),new ee(134,6),new ee(198,7),new ee(326,8),new ee(582,9),new ee(1094,10),new ee(2118,24)],Qi.kInsertRangeLut=[0,0,8,8,0,16,8,16,16],Qi.kCopyRangeLut=[0,8,0,8,16,0,16,8,16];var Zs={},F1;function zI(){if(F1)return Zs;F1=1;var t=C1(),e=0,n=1,r=2,i=3,s=4,o=5,a=6,c=7,u=8,f=9,h=10,d=11,l=12,p=13,y=14,v=15,D=16,C=17,A=18,I=20;function S(F,T,K){this.prefix=new Uint8Array(F.length),this.transform=T,this.suffix=new Uint8Array(K.length);for(var H=0;H<F.length;H++)this.prefix[H]=F.charCodeAt(H);for(var H=0;H<K.length;H++)this.suffix[H]=K.charCodeAt(H)}var z=[new S("",e,""),new S("",e," "),new S(" ",e," "),new S("",l,""),new S("",h," "),new S("",e," the "),new S(" ",e,""),new S("s ",e," "),new S("",e," of "),new S("",h,""),new S("",e," and "),new S("",p,""),new S("",n,""),new S(", ",e," "),new S("",e,", "),new S(" ",h," "),new S("",e," in "),new S("",e," to "),new S("e ",e," "),new S("",e,'"'),new S("",e,"."),new S("",e,'">'),new S("",e,`
|
|
28
|
-
`),new S("",i,""),new S("",e,"]"),new S("",e," for "),new S("",
|
|
29
|
-
`),new S("",e,":"),new S(" ",e,". "),new S("",e,"ed "),new S("",I,""),new S("",A,""),new S("",a,""),new S("",e,"("),new S("",h,", "),new S("",u,""),new S("",e," at "),new S("",e,"ly "),new S(" the ",e," of "),new S("",o,""),new S("",f,""),new S(" ",h,", "),new S("",h,'"'),new S(".",e,"("),new S("",d," "),new S("",h,'">'),new S("",e,'="'),new S(" ",e,"."),new S(".com/",e,""),new S(" the ",e," of the "),new S("",h,"'"),new S("",e,". This "),new S("",e,","),new S(".",e," "),new S("",h,"("),new S("",h,"."),new S("",e," not "),new S(" ",e,'="'),new S("",e,"er "),new S(" ",d," "),new S("",e,"al "),new S(" ",d,""),new S("",e,"='"),new S("",d,'"'),new S("",h,". "),new S(" ",e,"("),new S("",e,"ful "),new S(" ",h,". "),new S("",e,"ive "),new S("",e,"less "),new S("",d,"'"),new S("",e,"est "),new S(" ",h,"."),new S("",d,'">'),new S(" ",e,"='"),new S("",h,","),new S("",e,"ize "),new S("",d,"."),new S("\xC2\xA0",e,""),new S(" ",e,","),new S("",h,'="'),new S("",d,'="'),new S("",e,"ous "),new S("",d,", "),new S("",h,"='"),new S(" ",h,","),new S(" ",d,'="'),new S(" ",d,", "),new S("",d,","),new S("",d,"("),new S("",d,". "),new S(" ",d,"."),new S("",d,"='"),new S(" ",d,". "),new S(" ",h,'="'),new S(" ",d,"='"),new S(" ",h,"='")];Zs.kTransforms=z,Zs.kNumTransforms=z.length;function M(F,T){return F[T]<192?(F[T]>=97&&F[T]<=122&&(F[T]^=32),1):F[T]<224?(F[T+1]^=32,2):(F[T+2]^=5,3)}return Zs.transformDictionaryWord=function(F,T,K,H,E){var w=z[E].prefix,m=z[E].suffix,g=z[E].transform,b=g<l?0:g-(l-1),x=0,O=T,B;b>H&&(b=H);for(var R=0;R<w.length;)F[T++]=w[R++];for(K+=b,H-=b,g<=f&&(H-=g),x=0;x<H;x++)F[T++]=t.dictionary[K+x];if(B=T-H,g===h)M(F,B);else if(g===d)for(;H>0;){var U=M(F,B);B+=U,H-=U}for(var L=0;L<m.length;)F[T++]=m[L++];return T-O},Zs}var k1;function L1(){if(k1)return Ks;k1=1;var t=Pa.BrotliInput,e=Pa.BrotliOutput,n=RI,r=C1(),i=Fa.HuffmanCode,s=Fa.BrotliBuildHuffmanTable,o=Ff,a=Qi,c=zI(),u=8,f=16,h=256,d=704,l=26,p=6,y=2,v=8,D=255,C=1080,A=18,I=new Uint8Array([1,2,3,4,0,5,17,6,16,7,8,9,10,11,12,13,14,15]),S=16,z=new Uint8Array([3,2,1,0,3,3,3,3,3,3,2,2,2,2,2,2]),M=new Int8Array([0,0,0,0,-1,1,-2,2,-3,3,-1,1,-2,2,-3,3]),F=new Uint16Array([256,402,436,468,500,534,566,598,630,662,694,726,758,790,822,854,886,920,952,984,1016,1048,1080]);function T(V){var N;return V.readBits(1)===0?16:(N=V.readBits(3),N>0?17+N:(N=V.readBits(3),N>0?8+N:17))}function K(V){if(V.readBits(1)){var N=V.readBits(3);return N===0?1:V.readBits(N)+(1<<N)}return 0}function H(){this.meta_block_length=0,this.input_end=0,this.is_uncompressed=0,this.is_metadata=!1}function E(V){var N=new H,k,j,Z;if(N.input_end=V.readBits(1),N.input_end&&V.readBits(1))return N;if(k=V.readBits(2)+4,k===7){if(N.is_metadata=!0,V.readBits(1)!==0)throw new Error("Invalid reserved bit");if(j=V.readBits(2),j===0)return N;for(Z=0;Z<j;Z++){var $=V.readBits(8);if(Z+1===j&&j>1&&$===0)throw new Error("Invalid size byte");N.meta_block_length|=$<<Z*8}}else for(Z=0;Z<k;++Z){var _=V.readBits(4);if(Z+1===k&&k>4&&_===0)throw new Error("Invalid size nibble");N.meta_block_length|=_<<Z*4}return++N.meta_block_length,!N.input_end&&!N.is_metadata&&(N.is_uncompressed=V.readBits(1)),N}function w(V,N,k){var j;return k.fillBitWindow(),N+=k.val_>>>k.bit_pos_&D,j=V[N].bits-v,j>0&&(k.bit_pos_+=v,N+=V[N].value,N+=k.val_>>>k.bit_pos_&(1<<j)-1),k.bit_pos_+=V[N].bits,V[N].value}function m(V,N,k,j){for(var Z=0,$=u,_=0,te=0,ue=32768,ae=[],re=0;re<32;re++)ae.push(new i(0,0));for(s(ae,0,5,V,A);Z<N&&ue>0;){var ye=0,Qe;if(j.readMoreInput(),j.fillBitWindow(),ye+=j.val_>>>j.bit_pos_&31,j.bit_pos_+=ae[ye].bits,Qe=ae[ye].value&255,Qe<f)_=0,k[Z++]=Qe,Qe!==0&&($=Qe,ue-=32768>>Qe);else{var Bt=Qe-14,wt,ct,Oe=0;if(Qe===f&&(Oe=$),te!==Oe&&(_=0,te=Oe),wt=_,_>0&&(_-=2,_<<=Bt),_+=j.readBits(Bt)+3,ct=_-wt,Z+ct>N)throw new Error("[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols");for(var _e=0;_e<ct;_e++)k[Z+_e]=te;Z+=ct,te!==0&&(ue-=ct<<15-te)}}if(ue!==0)throw new Error("[ReadHuffmanCodeLengths] space = "+ue);for(;Z<N;Z++)k[Z]=0}function g(V,N,k,j){var Z=0,$,_=new Uint8Array(V);if(j.readMoreInput(),$=j.readBits(2),$===1){for(var te,ue=V-1,ae=0,re=new Int32Array(4),ye=j.readBits(2)+1;ue;)ue>>=1,++ae;for(te=0;te<ye;++te)re[te]=j.readBits(ae)%V,_[re[te]]=2;switch(_[re[0]]=1,ye){case 1:break;case 3:if(re[0]===re[1]||re[0]===re[2]||re[1]===re[2])throw new Error("[ReadHuffmanCode] invalid symbols");break;case 2:if(re[0]===re[1])throw new Error("[ReadHuffmanCode] invalid symbols");_[re[1]]=1;break;case 4:if(re[0]===re[1]||re[0]===re[2]||re[0]===re[3]||re[1]===re[2]||re[1]===re[3]||re[2]===re[3])throw new Error("[ReadHuffmanCode] invalid symbols");j.readBits(1)?(_[re[2]]=3,_[re[3]]=3):_[re[0]]=2;break}}else{var te,Qe=new Uint8Array(A),Bt=32,wt=0,ct=[new i(2,0),new i(2,4),new i(2,3),new i(3,2),new i(2,0),new i(2,4),new i(2,3),new i(4,1),new i(2,0),new i(2,4),new i(2,3),new i(3,2),new i(2,0),new i(2,4),new i(2,3),new i(4,5)];for(te=$;te<A&&Bt>0;++te){var Oe=I[te],_e=0,yt;j.fillBitWindow(),_e+=j.val_>>>j.bit_pos_&15,j.bit_pos_+=ct[_e].bits,yt=ct[_e].value,Qe[Oe]=yt,yt!==0&&(Bt-=32>>yt,++wt)}if(!(wt===1||Bt===0))throw new Error("[ReadHuffmanCode] invalid num_codes or space");m(Qe,V,_,j)}if(Z=s(N,k,v,_,V),Z===0)throw new Error("[ReadHuffmanCode] BuildHuffmanTable failed: ");return Z}function b(V,N,k){var j,Z;return j=w(V,N,k),Z=a.kBlockLengthPrefixCode[j].nbits,a.kBlockLengthPrefixCode[j].offset+k.readBits(Z)}function x(V,N,k){var j;return V<S?(k+=z[V],k&=3,j=N[k]+M[V]):j=V-S+1,j}function O(V,N){for(var k=V[N],j=N;j;--j)V[j]=V[j-1];V[0]=k}function B(V,N){var k=new Uint8Array(256),j;for(j=0;j<256;++j)k[j]=j;for(j=0;j<N;++j){var Z=V[j];V[j]=k[Z],Z&&O(k,Z)}}function R(V,N){this.alphabet_size=V,this.num_htrees=N,this.codes=new Array(N+N*F[V+31>>>5]),this.htrees=new Uint32Array(N)}R.prototype.decode=function(V){var N,k,j=0;for(N=0;N<this.num_htrees;++N)this.htrees[N]=j,k=g(this.alphabet_size,this.codes,j,V),j+=k};function U(V,N){var k={num_htrees:null,context_map:null},j,Z=0,$,_;N.readMoreInput();var te=k.num_htrees=K(N)+1,ue=k.context_map=new Uint8Array(V);if(te<=1)return k;for(j=N.readBits(1),j&&(Z=N.readBits(4)+1),$=[],_=0;_<C;_++)$[_]=new i(0,0);for(g(te+Z,$,0,N),_=0;_<V;){var ae;if(N.readMoreInput(),ae=w($,0,N),ae===0)ue[_]=0,++_;else if(ae<=Z)for(var re=1+(1<<ae)+N.readBits(ae);--re;){if(_>=V)throw new Error("[DecodeContextMap] i >= context_map_size");ue[_]=0,++_}else ue[_]=ae-Z,++_}return N.readBits(1)&&B(ue,V),k}function L(V,N,k,j,Z,$,_){var te=k*2,ue=k,ae=w(N,k*C,_),re;ae===0?re=Z[te+($[ue]&1)]:ae===1?re=Z[te+($[ue]-1&1)]+1:re=ae-2,re>=V&&(re-=V),j[k]=re,Z[te+($[ue]&1)]=re,++$[ue]}function q(V,N,k,j,Z,$){var _=Z+1,te=k&Z,ue=$.pos_&n.IBUF_MASK,ae;if(N<8||$.bit_pos_+(N<<3)<$.bit_end_pos_){for(;N-- >0;)$.readMoreInput(),j[te++]=$.readBits(8),te===_&&(V.write(j,_),te=0);return}if($.bit_end_pos_<32)throw new Error("[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32");for(;$.bit_pos_<32;)j[te]=$.val_>>>$.bit_pos_,$.bit_pos_+=8,++te,--N;if(ae=$.bit_end_pos_-$.bit_pos_>>3,ue+ae>n.IBUF_MASK){for(var re=n.IBUF_MASK+1-ue,ye=0;ye<re;ye++)j[te+ye]=$.buf_[ue+ye];ae-=re,te+=re,N-=re,ue=0}for(var ye=0;ye<ae;ye++)j[te+ye]=$.buf_[ue+ye];if(te+=ae,N-=ae,te>=_){V.write(j,_),te-=_;for(var ye=0;ye<te;ye++)j[ye]=j[_+ye]}for(;te+N>=_;){if(ae=_-te,$.input_.read(j,te,ae)<ae)throw new Error("[CopyUncompressedBlockToOutput] not enough bytes");V.write(j,_),N-=ae,te=0}if($.input_.read(j,te,N)<N)throw new Error("[CopyUncompressedBlockToOutput] not enough bytes");$.reset()}function W(V){var N=V.bit_pos_+7&-8,k=V.readBits(N-V.bit_pos_);return k==0}function P(V){var N=new t(V),k=new n(N);T(k);var j=E(k);return j.meta_block_length}Ks.BrotliDecompressedSize=P;function Y(V,N){var k=new t(V);N==null&&(N=P(V));var j=new Uint8Array(N),Z=new e(j);return G(k,Z),Z.pos<Z.buffer.length&&(Z.buffer=Z.buffer.subarray(0,Z.pos)),Z.buffer}Ks.BrotliDecompressBuffer=Y;function G(V,N){var k,j=0,Z=0,$=0,_,te=0,ue,ae,re,ye,Qe=[16,15,11,4],Bt=0,wt=0,ct=0,Oe=[new R(0,0),new R(0,0),new R(0,0)],_e,yt,le,ul=128+n.READ_SIZE;le=new n(V),$=T(le),_=(1<<$)-16,ue=1<<$,ae=ue-1,re=new Uint8Array(ue+ul+r.maxDictionaryWordLength),ye=ue,_e=[],yt=[];for(var es=0;es<3*C;es++)_e[es]=new i(0,0),yt[es]=new i(0,0);for(;!Z;){var Le=0,Pw,En=[1<<28,1<<28,1<<28],Fr=[0],an=[1,1,1],fl=[0,1,0,1,0,1],Za=[0],ts,oo,qw,Fw,kw=null,Ja=null,Lw,Mw=null,Vw,zw=0,ll=null,jw=0,Ww=0,hl=null,Hw=0,dl=0,pl=0,ns,gl;for(k=0;k<3;++k)Oe[k].codes=null,Oe[k].htrees=null;le.readMoreInput();var Xa=E(le);if(Le=Xa.meta_block_length,j+Le>N.buffer.length){var Yw=new Uint8Array(j+Le);Yw.set(N.buffer),N.buffer=Yw}if(Z=Xa.input_end,Pw=Xa.is_uncompressed,Xa.is_metadata){for(W(le);Le>0;--Le)le.readMoreInput(),le.readBits(8);continue}if(Le!==0){if(Pw){le.bit_pos_=le.bit_pos_+7&-8,q(N,Le,j,re,ae,le),j+=Le;continue}for(k=0;k<3;++k)an[k]=K(le)+1,an[k]>=2&&(g(an[k]+2,_e,k*C,le),g(l,yt,k*C,le),En[k]=b(yt,k*C,le),Za[k]=1);for(le.readMoreInput(),ts=le.readBits(2),oo=S+(le.readBits(4)<<ts),qw=(1<<ts)-1,Fw=oo+(48<<ts),Ja=new Uint8Array(an[0]),k=0;k<an[0];++k)le.readMoreInput(),Ja[k]=le.readBits(2)<<1;var Gw=U(an[0]<<p,le);Lw=Gw.num_htrees,kw=Gw.context_map;var Kw=U(an[2]<<y,le);for(Vw=Kw.num_htrees,Mw=Kw.context_map,Oe[0]=new R(h,Lw),Oe[1]=new R(d,an[1]),Oe[2]=new R(Fw,Vw),k=0;k<3;++k)Oe[k].decode(le);for(ll=0,hl=0,ns=Ja[Fr[0]],dl=o.lookupOffsets[ns],pl=o.lookupOffsets[ns+1],gl=Oe[1].htrees[0];Le>0;){var Qa,ao,wl,yl,bl,Dt,kt,Qn,co,rs,uo;for(le.readMoreInput(),En[1]===0&&(L(an[1],_e,1,Fr,fl,Za,le),En[1]=b(yt,C,le),gl=Oe[1].htrees[Fr[1]]),--En[1],Qa=w(Oe[1].codes,gl,le),ao=Qa>>6,ao>=2?(ao-=2,kt=-1):kt=0,wl=a.kInsertRangeLut[ao]+(Qa>>3&7),yl=a.kCopyRangeLut[ao]+(Qa&7),bl=a.kInsertLengthPrefixCode[wl].offset+le.readBits(a.kInsertLengthPrefixCode[wl].nbits),Dt=a.kCopyLengthPrefixCode[yl].offset+le.readBits(a.kCopyLengthPrefixCode[yl].nbits),wt=re[j-1&ae],ct=re[j-2&ae],rs=0;rs<bl;++rs)le.readMoreInput(),En[0]===0&&(L(an[0],_e,0,Fr,fl,Za,le),En[0]=b(yt,0,le),zw=Fr[0]<<p,ll=zw,ns=Ja[Fr[0]],dl=o.lookupOffsets[ns],pl=o.lookupOffsets[ns+1]),co=o.lookup[dl+wt]|o.lookup[pl+ct],jw=kw[ll+co],--En[0],ct=wt,wt=w(Oe[0].codes,Oe[0].htrees[jw],le),re[j&ae]=wt,(j&ae)===ae&&N.write(re,ue),++j;if(Le-=bl,Le<=0)break;if(kt<0){var co;if(le.readMoreInput(),En[2]===0&&(L(an[2],_e,2,Fr,fl,Za,le),En[2]=b(yt,2*C,le),Ww=Fr[2]<<y,hl=Ww),--En[2],co=(Dt>4?3:Dt-2)&255,Hw=Mw[hl+co],kt=w(Oe[2].codes,Oe[2].htrees[Hw],le),kt>=oo){var ml,Zw,fo;kt-=oo,Zw=kt&qw,kt>>=ts,ml=(kt>>1)+1,fo=(2+(kt&1)<<ml)-4,kt=oo+(fo+le.readBits(ml)<<ts)+Zw}}if(Qn=x(kt,Qe,Bt),Qn<0)throw new Error("[BrotliDecompress] invalid distance");if(j<_&&te!==_?te=j:te=_,uo=j&ae,Qn>te)if(Dt>=r.minDictionaryWordLength&&Dt<=r.maxDictionaryWordLength){var fo=r.offsetsByLength[Dt],Jw=Qn-te-1,Xw=r.sizeBitsByLength[Dt],bB=(1<<Xw)-1,mB=Jw&bB,Qw=Jw>>Xw;if(fo+=mB*Dt,Qw<c.kNumTransforms){var vl=c.transformDictionaryWord(re,uo,fo,Dt,Qw);if(uo+=vl,j+=vl,Le-=vl,uo>=ye){N.write(re,ue);for(var _a=0;_a<uo-ye;_a++)re[_a]=re[ye+_a]}}else throw new Error("Invalid backward reference. pos: "+j+" distance: "+Qn+" len: "+Dt+" bytes left: "+Le)}else throw new Error("Invalid backward reference. pos: "+j+" distance: "+Qn+" len: "+Dt+" bytes left: "+Le);else{if(kt>0&&(Qe[Bt&3]=Qn,++Bt),Dt>Le)throw new Error("Invalid backward reference. pos: "+j+" distance: "+Qn+" len: "+Dt+" bytes left: "+Le);for(rs=0;rs<Dt;++rs)re[j&ae]=re[j-Qn&ae],(j&ae)===ae&&N.write(re,ue),++j,--Le}wt=re[j-1&ae],ct=re[j-2&ae]}j&=1073741823}}N.write(re,j&ae)}return Ks.BrotliDecompress=G,r.init(),Ks}var jI=L1().BrotliDecompressBuffer;const WI="https://api.pay.walletconnect.com",HI="js-walletconnect-pay",YI="1.0.8",rn="WalletConnectPay";function GI(){return Vg()?"rn-ios":Mg()?"rn-android":ti()?"browser":Ls()?"node":"unknown"}class Ae extends Error{constructor(e,n,r){super(n),this.name="PayError",this.code=e,this.originalMessage=r??n,Object.setPrototypeOf(this,Ae.prototype)}static fromNativeError(e){if(e instanceof Ae)return e;const n=e instanceof Error?e.message:String(e);return n.includes("JSON parse error")?new Ae("JSON_PARSE",n):n.includes("JSON serialize error")?new Ae("JSON_SERIALIZE",n):n.includes("Payment options error")?new Ae("PAYMENT_OPTIONS",n):n.includes("Payment request error")?new Ae("PAYMENT_REQUEST",n):n.includes("Confirm payment error")?new Ae("CONFIRM_PAYMENT",n):new Ae("UNKNOWN",n)}}class kf extends Ae{constructor(){super("NATIVE_MODULE_NOT_FOUND","WalletConnect Pay native module not found. Make sure @walletconnect/react-native-compat is installed and linked."),this.name="NativeModuleNotFoundError",Object.setPrototypeOf(this,kf.prototype)}}class Lf extends Ae{constructor(e){super("PAYMENT_OPTIONS",`Failed to get payment options: ${e}`,e),this.name="PaymentOptionsError",Object.setPrototypeOf(this,Lf.prototype)}}class Mf extends Ae{constructor(e){super("PAYMENT_REQUEST",`Failed to get payment actions: ${e}`,e),this.name="PaymentActionsError",Object.setPrototypeOf(this,Mf.prototype)}}class Vf extends Ae{constructor(e){super("CONFIRM_PAYMENT",`Failed to confirm payment: ${e}`,e),this.name="ConfirmPaymentError",Object.setPrototypeOf(this,Vf.prototype)}}function KI(t){return JSON.stringify({paymentLink:t.paymentLink,accounts:t.accounts,includePaymentInfo:t.includePaymentInfo??!1})}function ZI(t){return JSON.stringify({paymentId:t.paymentId,optionId:t.optionId})}function JI(t){return JSON.stringify({paymentId:t.paymentId,optionId:t.optionId,signatures:t.signatures,collectedData:t.collectedData})}function XI(t){const e=JSON.parse(t);if(!e||typeof e!="object")throw new Ae("JSON_PARSE","Invalid payment options response format");return e}function QI(t){const e=JSON.parse(t);if(!Array.isArray(e))throw new Ae("JSON_PARSE","Invalid required actions response format: expected array");return e}function _I(t){const e=JSON.parse(t);if(!e||typeof e!="object")throw new Ae("JSON_PARSE","Invalid confirm payment response format");return e}function zf(t){return Ae.fromNativeError(t)}class M1{constructor(e){this.backend=e}async getPaymentOptions(e){try{const n=await this.backend.getPaymentOptions(KI(e));return XI(n)}catch(n){throw zf(n)}}async getRequiredPaymentActions(e){try{const n=await this.backend.getRequiredPaymentActions(ZI(e));return QI(n)}catch(n){throw zf(n)}}async confirmPayment(e){try{const n=await this.backend.confirmPayment(JI(e));return _I(n)}catch(n){throw zf(n)}}}let Nr;function V1(){if(Nr!==void 0)return Nr;try{const t=globalThis.ReactNative;if(t?.NativeModules?.RNWalletConnectPay)return Nr=t.NativeModules.RNWalletConnectPay,Nr;const e=globalThis.expo?.modules;return e?.RNWalletConnectPay?(Nr=e.RNWalletConnectPay,Nr):(Nr=null,null)}catch{return Nr=null,null}}function $I(){return V1()!==null}function e7(t){const e=V1();if(!e)throw new kf;if(e.initialize)try{e.initialize(JSON.stringify(t))}catch(n){throw new Ae("INITIALIZATION_ERROR",`Failed to initialize native Pay module: ${n instanceof Error?n.message:String(n)}`)}return{getPaymentOptions:n=>e.getPaymentOptions(n),getRequiredPaymentActions:n=>e.getRequiredPaymentActions(n),confirmPayment:n=>e.confirmPayment(n)}}function t7(t){const e=e7(t);return new M1(e)}const n7="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";let he;const Yn=new Array(128).fill(void 0);Yn.push(void 0,null,!0,!1);function Q(t){return Yn[t]}let ka=null;function r7(){if(!ka){if(typeof TextDecoder>"u")throw Error("TextDecoder not available");ka=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),ka.decode()}return ka}let Js=null;function Xs(){return(Js===null||Js.byteLength===0)&&(Js=new Uint8Array(he.memory.buffer)),Js}function Gn(t,e){return t=t>>>0,r7().decode(Xs().subarray(t,t+e))}let Qs=Yn.length;function se(t){Qs===Yn.length&&Yn.push(Yn.length+1);const e=Qs;return Qs=Yn[e],Yn[e]=t,e}function Te(t,e){try{return t.apply(this,e)}catch(n){he.__wbindgen_export_0(se(n))}}function ui(t){return t==null}function i7(t){t<132||(Yn[t]=Qs,Qs=t)}function Ur(t){const e=Q(t);return i7(t),e}function s7(t,e){return t=t>>>0,Xs().subarray(t/1,t/1+e)}let Cr=0,jf=null;function z1(){if(!jf){if(typeof TextEncoder>"u")throw Error("TextEncoder not available");jf=new TextEncoder("utf-8")}return jf}function o7(t,e){const n=z1();if(typeof n.encodeInto=="function")return n.encodeInto(t,e);const r=n.encode(t);return e.set(r),{read:t.length,written:r.length}}function _i(t,e,n){if(n===void 0){const a=z1().encode(t),c=e(a.length,1)>>>0;return Xs().subarray(c,c+a.length).set(a),Cr=a.length,c}let r=t.length,i=e(r,1)>>>0;const s=Xs();let o=0;for(;o<r;o++){const a=t.charCodeAt(o);if(a>127)break;s[i+o]=a}if(o!==r){o!==0&&(t=t.slice(o)),i=n(i,r,r=o+t.length*3,1)>>>0;const a=Xs().subarray(i+o,i+r),c=o7(t,a);o+=c.written,i=n(i,r,o,1)>>>0}return Cr=o,i}let fi=null;function li(){return(fi===null||fi.buffer.detached===!0||fi.buffer.detached===void 0&&fi.buffer!==he.memory.buffer)&&(fi=new DataView(he.memory.buffer)),fi}const j1=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>{he.__wbindgen_export_3.get(t.dtor)(t.a,t.b)});function Wf(t,e,n,r){const i={a:t,b:e,cnt:1,dtor:n},s=(...o)=>{i.cnt++;const a=i.a;i.a=0;try{return r(a,i.b,...o)}finally{--i.cnt===0?(he.__wbindgen_export_3.get(i.dtor)(a,i.b),j1.unregister(i)):i.a=a}};return s.original=i,j1.register(s,i,i),s}function a7(t,e){he.__wbindgen_export_4(t,e)}function c7(t,e){he.__wbindgen_export_5(t,e)}function u7(t,e,n){he.__wbindgen_export_6(t,e,se(n))}function f7(t,e,n,r){he.__wbindgen_export_7(t,e,se(n),se(r))}const l7=["default","no-store","reload","no-cache","force-cache","only-if-cached"],h7=["omit","same-origin","include"],d7=["same-origin","no-cors","cors","navigate"];typeof FinalizationRegistry>"u"||new FinalizationRegistry(t=>he.__wbg_intounderlyingbytesource_free(t>>>0,1)),typeof FinalizationRegistry>"u"||new FinalizationRegistry(t=>he.__wbg_intounderlyingsink_free(t>>>0,1)),typeof FinalizationRegistry>"u"||new FinalizationRegistry(t=>he.__wbg_intounderlyingsource_free(t>>>0,1));const W1=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>he.__wbg_payjson_free(t>>>0,1));class p7{__destroy_into_raw(){const e=this.__wbg_ptr;return this.__wbg_ptr=0,W1.unregister(this),e}free(){const e=this.__destroy_into_raw();he.__wbg_payjson_free(e,0)}confirm_payment(e){const n=_i(e,he.__wbindgen_export_1,he.__wbindgen_export_2),r=Cr,i=he.payjson_confirm_payment(this.__wbg_ptr,n,r);return Ur(i)}get_payment_options(e){const n=_i(e,he.__wbindgen_export_1,he.__wbindgen_export_2),r=Cr,i=he.payjson_get_payment_options(this.__wbg_ptr,n,r);return Ur(i)}get_required_payment_actions(e){const n=_i(e,he.__wbindgen_export_1,he.__wbindgen_export_2),r=Cr,i=he.payjson_get_required_payment_actions(this.__wbg_ptr,n,r);return Ur(i)}constructor(e){try{const s=he.__wbindgen_add_to_stack_pointer(-16),o=_i(e,he.__wbindgen_export_1,he.__wbindgen_export_2),a=Cr;he.payjson_new(s,o,a);var n=li().getInt32(s+4*0,!0),r=li().getInt32(s+4*1,!0),i=li().getInt32(s+4*2,!0);if(i)throw Ur(r);return this.__wbg_ptr=n>>>0,W1.register(this,this.__wbg_ptr,this),this}finally{he.__wbindgen_add_to_stack_pointer(16)}}}function g7(){const t={};return t.wbg={},t.wbg.__wbg_abort_410ec47a64ac6117=function(e,n){Q(e).abort(Q(n))},t.wbg.__wbg_abort_775ef1d17fc65868=function(e){Q(e).abort()},t.wbg.__wbg_append_8c7dd8d641a5f01b=function(){return Te(function(e,n,r,i,s){Q(e).append(Gn(n,r),Gn(i,s))},arguments)},t.wbg.__wbg_arrayBuffer_d1b44c4390db422f=function(){return Te(function(e){const n=Q(e).arrayBuffer();return se(n)},arguments)},t.wbg.__wbg_buffer_09165b52af8c5237=function(e){const n=Q(e).buffer;return se(n)},t.wbg.__wbg_buffer_609cc3eee51ed158=function(e){const n=Q(e).buffer;return se(n)},t.wbg.__wbg_byobRequest_77d9adf63337edfb=function(e){const n=Q(e).byobRequest;return ui(n)?0:se(n)},t.wbg.__wbg_byteLength_e674b853d9c77e1d=function(e){return Q(e).byteLength},t.wbg.__wbg_byteOffset_fd862df290ef848d=function(e){return Q(e).byteOffset},t.wbg.__wbg_call_672a4d21634d4a24=function(){return Te(function(e,n){const r=Q(e).call(Q(n));return se(r)},arguments)},t.wbg.__wbg_call_7cccdd69e0791ae2=function(){return Te(function(e,n,r){const i=Q(e).call(Q(n),Q(r));return se(i)},arguments)},t.wbg.__wbg_clearTimeout_3b6a9a13d4bde075=function(e){const n=clearTimeout(Ur(e));return se(n)},t.wbg.__wbg_close_304cc1fef3466669=function(){return Te(function(e){Q(e).close()},arguments)},t.wbg.__wbg_close_5ce03e29be453811=function(){return Te(function(e){Q(e).close()},arguments)},t.wbg.__wbg_crypto_574e78ad8b13b65f=function(e){const n=Q(e).crypto;return se(n)},t.wbg.__wbg_done_769e5ede4b31c67b=function(e){return Q(e).done},t.wbg.__wbg_enqueue_bb16ba72f537dc9e=function(){return Te(function(e,n){Q(e).enqueue(Q(n))},arguments)},t.wbg.__wbg_fetch_509096533071c657=function(e,n){const r=Q(e).fetch(Q(n));return se(r)},t.wbg.__wbg_fetch_df3fa17a5772dafb=function(e){const n=fetch(Q(e));return se(n)},t.wbg.__wbg_getRandomValues_2a91986308c74a93=function(){return Te(function(e,n){globalThis.crypto.getRandomValues(s7(e,n))},arguments)},t.wbg.__wbg_getRandomValues_b8f5dbd5f3995a9e=function(){return Te(function(e,n){Q(e).getRandomValues(Q(n))},arguments)},t.wbg.__wbg_get_67b2ba62fc30de12=function(){return Te(function(e,n){const r=Reflect.get(Q(e),Q(n));return se(r)},arguments)},t.wbg.__wbg_has_a5ea9117f258a0ec=function(){return Te(function(e,n){return Reflect.has(Q(e),Q(n))},arguments)},t.wbg.__wbg_headers_9cb51cfd2ac780a4=function(e){const n=Q(e).headers;return se(n)},t.wbg.__wbg_instanceof_Response_f2cc20d9f7dfd644=function(e){let n;try{n=Q(e)instanceof Response}catch{n=!1}return n},t.wbg.__wbg_iterator_9a24c88df860dc65=function(){return se(Symbol.iterator)},t.wbg.__wbg_length_a446193dc22c12f8=function(e){return Q(e).length},t.wbg.__wbg_msCrypto_a61aeb35a24c1329=function(e){const n=Q(e).msCrypto;return se(n)},t.wbg.__wbg_new_018dcc2d6c8c2f6a=function(){return Te(function(){const e=new Headers;return se(e)},arguments)},t.wbg.__wbg_new_23a2665fac83c611=function(e,n){try{var r={a:e,b:n},i=(o,a)=>{const c=r.a;r.a=0;try{return f7(c,r.b,o,a)}finally{r.a=c}};const s=new Promise(i);return se(s)}finally{r.a=r.b=0}},t.wbg.__wbg_new_405e22f390576ce2=function(){const e=new Object;return se(e)},t.wbg.__wbg_new_a12002a7f91c75be=function(e){const n=new Uint8Array(Q(e));return se(n)},t.wbg.__wbg_new_c68d7209be747379=function(e,n){const r=new Error(Gn(e,n));return se(r)},t.wbg.__wbg_new_e25e5aab09ff45db=function(){return Te(function(){const e=new AbortController;return se(e)},arguments)},t.wbg.__wbg_newnoargs_105ed471475aaf50=function(e,n){const r=new Function(Gn(e,n));return se(r)},t.wbg.__wbg_newwithbyteoffsetandlength_d97e637ebe145a9a=function(e,n,r){const i=new Uint8Array(Q(e),n>>>0,r>>>0);return se(i)},t.wbg.__wbg_newwithlength_a381634e90c276d4=function(e){const n=new Uint8Array(e>>>0);return se(n)},t.wbg.__wbg_newwithstrandinit_06c535e0a867c635=function(){return Te(function(e,n,r){const i=new Request(Gn(e,n),Q(r));return se(i)},arguments)},t.wbg.__wbg_next_25feadfc0913fea9=function(e){const n=Q(e).next;return se(n)},t.wbg.__wbg_next_6574e1a8a62d1055=function(){return Te(function(e){const n=Q(e).next();return se(n)},arguments)},t.wbg.__wbg_node_905d3e251edff8a2=function(e){const n=Q(e).node;return se(n)},t.wbg.__wbg_now_807e54c39636c349=function(){return Date.now()},t.wbg.__wbg_now_e1163c67115ff874=function(e){return Q(e).now()},t.wbg.__wbg_performance_7fe0928f3ab059e5=function(e){const n=Q(e).performance;return se(n)},t.wbg.__wbg_process_dc0fbacc7c1c06f7=function(e){const n=Q(e).process;return se(n)},t.wbg.__wbg_queueMicrotask_97d92b4fcc8a61c5=function(e){queueMicrotask(Q(e))},t.wbg.__wbg_queueMicrotask_d3219def82552485=function(e){const n=Q(e).queueMicrotask;return se(n)},t.wbg.__wbg_randomFillSync_ac0988aba3254290=function(){return Te(function(e,n){Q(e).randomFillSync(Ur(n))},arguments)},t.wbg.__wbg_require_60cc747a6bc5215a=function(){return Te(function(){const e=module.require;return se(e)},arguments)},t.wbg.__wbg_resolve_4851785c9c5f573d=function(e){const n=Promise.resolve(Q(e));return se(n)},t.wbg.__wbg_respond_1f279fa9f8edcb1c=function(){return Te(function(e,n){Q(e).respond(n>>>0)},arguments)},t.wbg.__wbg_setTimeout_35a07631c669fbee=function(e,n){const r=setTimeout(Q(e),n);return se(r)},t.wbg.__wbg_setTimeout_42370cb3051b8c2c=function(){return Te(function(e,n,r){const i=Q(e).setTimeout(Q(n),r);return se(i)},arguments)},t.wbg.__wbg_set_65595bdd868b3009=function(e,n,r){Q(e).set(Q(n),r>>>0)},t.wbg.__wbg_setbody_5923b78a95eedf29=function(e,n){Q(e).body=Q(n)},t.wbg.__wbg_setcache_12f17c3a980650e4=function(e,n){Q(e).cache=l7[n]},t.wbg.__wbg_setcredentials_c3a22f1cd105a2c6=function(e,n){Q(e).credentials=h7[n]},t.wbg.__wbg_setheaders_834c0bdb6a8949ad=function(e,n){Q(e).headers=Q(n)},t.wbg.__wbg_setmethod_3c5280fe5d890842=function(e,n,r){Q(e).method=Gn(n,r)},t.wbg.__wbg_setmode_5dc300b865044b65=function(e,n){Q(e).mode=d7[n]},t.wbg.__wbg_setsignal_75b21ef3a81de905=function(e,n){Q(e).signal=Q(n)},t.wbg.__wbg_signal_aaf9ad74119f20a4=function(e){const n=Q(e).signal;return se(n)},t.wbg.__wbg_static_accessor_GLOBAL_88a902d13a557d07=function(){const e=typeof global>"u"?null:global;return ui(e)?0:se(e)},t.wbg.__wbg_static_accessor_GLOBAL_THIS_56578be7e9f832b0=function(){const e=typeof globalThis>"u"?null:globalThis;return ui(e)?0:se(e)},t.wbg.__wbg_static_accessor_SELF_37c5d418e4bf5819=function(){const e=typeof self>"u"?null:self;return ui(e)?0:se(e)},t.wbg.__wbg_static_accessor_WINDOW_5de37043a91a9c40=function(){const e=typeof window>"u"?null:window;return ui(e)?0:se(e)},t.wbg.__wbg_status_f6360336ca686bf0=function(e){return Q(e).status},t.wbg.__wbg_stringify_f7ed6987935b4a24=function(){return Te(function(e){const n=JSON.stringify(Q(e));return se(n)},arguments)},t.wbg.__wbg_subarray_aa9065fa9dc5df96=function(e,n,r){const i=Q(e).subarray(n>>>0,r>>>0);return se(i)},t.wbg.__wbg_text_7805bea50de2af49=function(){return Te(function(e){const n=Q(e).text();return se(n)},arguments)},t.wbg.__wbg_then_44b73946d2fb3e7d=function(e,n){const r=Q(e).then(Q(n));return se(r)},t.wbg.__wbg_then_48b406749878a531=function(e,n,r){const i=Q(e).then(Q(n),Q(r));return se(i)},t.wbg.__wbg_url_ae10c34ca209681d=function(e,n){const r=Q(n).url,i=_i(r,he.__wbindgen_export_1,he.__wbindgen_export_2),s=Cr;li().setInt32(e+4*1,s,!0),li().setInt32(e+4*0,i,!0)},t.wbg.__wbg_value_cd1ffa7b1ab794f1=function(e){const n=Q(e).value;return se(n)},t.wbg.__wbg_versions_c01dfd4722a88165=function(e){const n=Q(e).versions;return se(n)},t.wbg.__wbg_view_fd8a56e8983f448d=function(e){const n=Q(e).view;return ui(n)?0:se(n)},t.wbg.__wbindgen_cb_drop=function(e){const n=Ur(e).original;return n.cnt--==1?(n.a=0,!0):!1},t.wbg.__wbindgen_closure_wrapper1318=function(e,n,r){const i=Wf(e,n,148,a7);return se(i)},t.wbg.__wbindgen_closure_wrapper1555=function(e,n,r){const i=Wf(e,n,171,c7);return se(i)},t.wbg.__wbindgen_closure_wrapper1838=function(e,n,r){const i=Wf(e,n,229,u7);return se(i)},t.wbg.__wbindgen_error_new=function(e,n){const r=new Error(Gn(e,n));return se(r)},t.wbg.__wbindgen_is_function=function(e){return typeof Q(e)=="function"},t.wbg.__wbindgen_is_object=function(e){const n=Q(e);return typeof n=="object"&&n!==null},t.wbg.__wbindgen_is_string=function(e){return typeof Q(e)=="string"},t.wbg.__wbindgen_is_undefined=function(e){return Q(e)===void 0},t.wbg.__wbindgen_memory=function(){const e=he.memory;return se(e)},t.wbg.__wbindgen_object_clone_ref=function(e){const n=Q(e);return se(n)},t.wbg.__wbindgen_object_drop_ref=function(e){Ur(e)},t.wbg.__wbindgen_string_get=function(e,n){const r=Q(n),i=typeof r=="string"?r:void 0;var s=ui(i)?0:_i(i,he.__wbindgen_export_1,he.__wbindgen_export_2),o=Cr;li().setInt32(e+4*1,o,!0),li().setInt32(e+4*0,s,!0)},t.wbg.__wbindgen_string_new=function(e,n){const r=Gn(e,n);return se(r)},t.wbg.__wbindgen_throw=function(e,n){throw new Error(Gn(e,n))},t}function w7(t,e){return he=t.exports,fi=null,Js=null,he}function y7(t){if(he!==void 0)return he;typeof t<"u"&&(Object.getPrototypeOf(t)===Object.prototype?{module:t}=t:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));const e=g7();t instanceof WebAssembly.Module||(t=new WebAssembly.Module(t));const n=new WebAssembly.Instance(t,e);return w7(n)}let H1=!1,La=null;function b7(t){if(typeof atob=="function"){const e=atob(t),n=new Uint8Array(e.length);for(let r=0;r<e.length;r++)n[r]=e.charCodeAt(r);return n}if(typeof Buffer<"u")return new Uint8Array(Buffer.from(t,"base64"));throw new Ae("INITIALIZATION_ERROR","No base64 decoder available (requires atob or Buffer)")}async function m7(t){return new Promise((e,n)=>{try{const r=jI(Buffer.from(t));e(new Uint8Array(r))}catch(r){n(new Ae("INITIALIZATION_ERROR",`Brotli decompression failed: ${r instanceof Error?r.message:String(r)}`))}})}async function v7(){if(!H1){if(La){await La;return}La=(async()=>{const t=b7(n7),e=await m7(t);y7({module:e}),H1=!0})(),await La}}function E7(){return typeof WebAssembly<"u"}class x7{constructor(e){this.payJson=null,this.initPromise=null,this.config=e}async ensureInitialized(){return this.payJson?this.payJson:(this.initPromise||(this.initPromise=this.initialize()),await this.initPromise,this.payJson)}async initialize(){try{await v7();const e=JSON.stringify({baseUrl:this.config.baseUrl,projectId:this.config.projectId,apiKey:this.config.apiKey,appId:this.config.appId,clientId:this.config.clientId,sdkName:this.config.sdkName,sdkVersion:this.config.sdkVersion,sdkPlatform:this.config.sdkPlatform,bundleId:this.config.bundleId});this.payJson=new p7(e)}catch(e){throw new Ae("INITIALIZATION_ERROR",`Failed to initialize WASM Pay module: ${e instanceof Error?e.message:String(e)}`)}}async getPaymentOptions(e){return(await this.ensureInitialized()).get_payment_options(e)}async getRequiredPaymentActions(e){return(await this.ensureInitialized()).get_required_payment_actions(e)}async confirmPayment(e){return(await this.ensureInitialized()).confirm_payment(e)}}function S7(t){const e=new x7(t);return new M1(e)}function Y1(){return $I()?"native":!Wn()&&E7()?"wasm":null}function I7(t){const e=Y1();if(!e)throw new Error("No Pay provider available. Make sure you are running in React Native with the native module installed, or in a browser/Node.js environment with WebAssembly support.");switch(e){case"native":return t7(t);case"wasm":return S7(t);default:throw new Error(`Unknown provider type: ${e}`)}}function A7(){return Y1()!==null}const G1=class{constructor(t){this.appId=t.appId,this.apiKey=t.apiKey,this.baseUrl=t.baseUrl??WI,this.logger=typeof t.logger=="string"?kl(sc({level:t.logger})):t.logger??kl(sc({level:"error"})),this.logger.trace(`${rn} initialized`);const e={baseUrl:this.baseUrl,projectId:t.appId,apiKey:t.apiKey,appId:t.appId,clientId:t.clientId,sdkName:HI,sdkVersion:YI,sdkPlatform:GI(),bundleId:xf()??""};this.provider=I7(e),this.logger.debug(`${rn} provider initialized`)}static isAvailable(){return A7()}async getPaymentOptions(t){this.logger.debug({paymentLink:t.paymentLink,accounts:t.accounts,includePaymentInfo:t.includePaymentInfo},`${rn} getPaymentOptions`);try{const e=await this.provider.getPaymentOptions(t);return this.logger.debug({paymentId:e.paymentId,optionsCount:e.options.length},`${rn} getPaymentOptions response`),e}catch(e){throw this.logger.error({error:e},`${rn} getPaymentOptions error`),e instanceof Ae?e:new Lf(String(e))}}async getRequiredPaymentActions(t){this.logger.debug({paymentId:t.paymentId,optionId:t.optionId},`${rn} getRequiredPaymentActions`);try{const e=await this.provider.getRequiredPaymentActions(t);return this.logger.debug({actionsCount:e.length},`${rn} getRequiredPaymentActions response`),e}catch(e){throw this.logger.error({error:e},`${rn} getRequiredPaymentActions error`),e instanceof Ae?e:new Mf(String(e))}}async confirmPayment(t){this.logger.debug({paymentId:t.paymentId,optionId:t.optionId,signaturesCount:t.signatures.length,hasCollectedData:!!t.collectedData},`${rn} confirmPayment`);try{const e=await this.provider.confirmPayment(t);return this.logger.debug({status:e.status,isFinal:e.isFinal},`${rn} confirmPayment response`),e}catch(e){throw this.logger.error({error:e},`${rn} confirmPayment error`),e instanceof Ae?e:new Vf(String(e))}}},K1="wc",O7=2,Hf="WalletKit",B7=`${K1}@2:${Hf}:`,D7={database:":memory:"},R7="request";class hi{}class T7 extends hi{constructor(e){super()}}const Z1=J.FIVE_SECONDS,di={pulse:"heartbeat_pulse"};class Yf extends T7{constructor(e){super(e),this.events=new $e.exports.EventEmitter,this.interval=Z1,this.interval=e?.interval||Z1}static async init(e){const n=new Yf(e);return await n.init(),n}async init(){await this.initialize()}stop(){clearInterval(this.intervalRef)}on(e,n){this.events.on(e,n)}once(e,n){this.events.once(e,n)}off(e,n){this.events.off(e,n)}removeListener(e,n){this.events.removeListener(e,n)}async initialize(){this.intervalRef=setInterval(()=>this.pulse(),J.toMiliseconds(this.interval))}pulse(){this.events.emit(di.pulse)}}const N7=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,U7=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,C7=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function P7(t,e){if(t==="__proto__"||t==="constructor"&&e&&typeof e=="object"&&"prototype"in e){q7(t);return}return e}function q7(t){console.warn(`[destr] Dropping "${t}" key to prevent prototype pollution.`)}function Ma(t,e={}){if(typeof t!="string")return t;if(t[0]==='"'&&t[t.length-1]==='"'&&t.indexOf("\\")===-1)return t.slice(1,-1);const n=t.trim();if(n.length<=9)switch(n.toLowerCase()){case"true":return!0;case"false":return!1;case"undefined":return;case"null":return null;case"nan":return Number.NaN;case"infinity":return Number.POSITIVE_INFINITY;case"-infinity":return Number.NEGATIVE_INFINITY}if(!C7.test(t)){if(e.strict)throw new SyntaxError("[destr] Invalid JSON");return t}try{if(N7.test(t)||U7.test(t)){if(e.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(t,P7)}return JSON.parse(t)}catch(r){if(e.strict)throw r;return t}}function F7(t){return!t||typeof t.then!="function"?Promise.resolve(t):t}function je(t,...e){try{return F7(t(...e))}catch(n){return Promise.reject(n)}}function k7(t){const e=typeof t;return t===null||e!=="object"&&e!=="function"}function L7(t){const e=Object.getPrototypeOf(t);return!e||e.isPrototypeOf(Object)}function Va(t){if(k7(t))return String(t);if(L7(t)||Array.isArray(t))return JSON.stringify(t);if(typeof t.toJSON=="function")return Va(t.toJSON());throw new Error("[unstorage] Cannot stringify value!")}const Gf="base64:";function M7(t){return typeof t=="string"?t:Gf+j7(t)}function V7(t){return typeof t!="string"||!t.startsWith(Gf)?t:z7(t.slice(Gf.length))}function z7(t){return globalThis.Buffer?Buffer.from(t,"base64"):Uint8Array.from(globalThis.atob(t),e=>e.codePointAt(0))}function j7(t){return globalThis.Buffer?Buffer.from(t).toString("base64"):globalThis.btoa(String.fromCodePoint(...t))}function Ot(t){return t&&t.split("?")[0]?.replace(/[/\\]/g,":").replace(/:+/g,":").replace(/^:|:$/g,"")||""}function W7(...t){return Ot(t.join(":"))}function za(t){return t=Ot(t),t?t+":":""}function H7(t,e){if(e===void 0)return!0;let n=0,r=t.indexOf(":");for(;r>-1;)n++,r=t.indexOf(":",r+1);return n<=e}function Y7(t,e){return e?t.startsWith(e)&&t[t.length-1]!=="$":t[t.length-1]!=="$"}function BB(t){return t}const G7="memory",K7=()=>{const t=new Map;return{name:G7,getInstance:()=>t,hasItem(e){return t.has(e)},getItem(e){return t.get(e)??null},getItemRaw(e){return t.get(e)??null},setItem(e,n){t.set(e,n)},setItemRaw(e,n){t.set(e,n)},removeItem(e){t.delete(e)},getKeys(){return[...t.keys()]},clear(){t.clear()},dispose(){t.clear()}}};function Z7(t={}){const e={mounts:{"":t.driver||K7()},mountpoints:[""],watching:!1,watchListeners:[],unwatch:{}},n=u=>{for(const f of e.mountpoints)if(u.startsWith(f))return{base:f,relativeKey:u.slice(f.length),driver:e.mounts[f]};return{base:"",relativeKey:u,driver:e.mounts[""]}},r=(u,f)=>e.mountpoints.filter(h=>h.startsWith(u)||f&&u.startsWith(h)).map(h=>({relativeBase:u.length>h.length?u.slice(h.length):void 0,mountpoint:h,driver:e.mounts[h]})),i=(u,f)=>{if(e.watching){f=Ot(f);for(const h of e.watchListeners)h(u,f)}},s=async()=>{if(!e.watching){e.watching=!0;for(const u in e.mounts)e.unwatch[u]=await J1(e.mounts[u],i,u)}},o=async()=>{if(e.watching){for(const u in e.unwatch)await e.unwatch[u]();e.unwatch={},e.watching=!1}},a=(u,f,h)=>{const d=new Map,l=p=>{let y=d.get(p.base);return y||(y={driver:p.driver,base:p.base,items:[]},d.set(p.base,y)),y};for(const p of u){const y=typeof p=="string",v=Ot(y?p:p.key),D=y?void 0:p.value,C=y||!p.options?f:{...f,...p.options},A=n(v);l(A).items.push({key:v,value:D,relativeKey:A.relativeKey,options:C})}return Promise.all([...d.values()].map(p=>h(p))).then(p=>p.flat())},c={hasItem(u,f={}){u=Ot(u);const{relativeKey:h,driver:d}=n(u);return je(d.hasItem,h,f)},getItem(u,f={}){u=Ot(u);const{relativeKey:h,driver:d}=n(u);return je(d.getItem,h,f).then(l=>Ma(l))},getItems(u,f={}){return a(u,f,h=>h.driver.getItems?je(h.driver.getItems,h.items.map(d=>({key:d.relativeKey,options:d.options})),f).then(d=>d.map(l=>({key:W7(h.base,l.key),value:Ma(l.value)}))):Promise.all(h.items.map(d=>je(h.driver.getItem,d.relativeKey,d.options).then(l=>({key:d.key,value:Ma(l)})))))},getItemRaw(u,f={}){u=Ot(u);const{relativeKey:h,driver:d}=n(u);return d.getItemRaw?je(d.getItemRaw,h,f):je(d.getItem,h,f).then(l=>V7(l))},async setItem(u,f,h={}){if(f===void 0)return c.removeItem(u);u=Ot(u);const{relativeKey:d,driver:l}=n(u);l.setItem&&(await je(l.setItem,d,Va(f),h),l.watch||i("update",u))},async setItems(u,f){await a(u,f,async h=>{if(h.driver.setItems)return je(h.driver.setItems,h.items.map(d=>({key:d.relativeKey,value:Va(d.value),options:d.options})),f);h.driver.setItem&&await Promise.all(h.items.map(d=>je(h.driver.setItem,d.relativeKey,Va(d.value),d.options)))})},async setItemRaw(u,f,h={}){if(f===void 0)return c.removeItem(u,h);u=Ot(u);const{relativeKey:d,driver:l}=n(u);if(l.setItemRaw)await je(l.setItemRaw,d,f,h);else if(l.setItem)await je(l.setItem,d,M7(f),h);else return;l.watch||i("update",u)},async removeItem(u,f={}){typeof f=="boolean"&&(f={removeMeta:f}),u=Ot(u);const{relativeKey:h,driver:d}=n(u);d.removeItem&&(await je(d.removeItem,h,f),(f.removeMeta||f.removeMata)&&await je(d.removeItem,h+"$",f),d.watch||i("remove",u))},async getMeta(u,f={}){typeof f=="boolean"&&(f={nativeOnly:f}),u=Ot(u);const{relativeKey:h,driver:d}=n(u),l=Object.create(null);if(d.getMeta&&Object.assign(l,await je(d.getMeta,h,f)),!f.nativeOnly){const p=await je(d.getItem,h+"$",f).then(y=>Ma(y));p&&typeof p=="object"&&(typeof p.atime=="string"&&(p.atime=new Date(p.atime)),typeof p.mtime=="string"&&(p.mtime=new Date(p.mtime)),Object.assign(l,p))}return l},setMeta(u,f,h={}){return this.setItem(u+"$",f,h)},removeMeta(u,f={}){return this.removeItem(u+"$",f)},async getKeys(u,f={}){u=za(u);const h=r(u,!0);let d=[];const l=[];let p=!0;for(const v of h){v.driver.flags?.maxDepth||(p=!1);const D=await je(v.driver.getKeys,v.relativeBase,f);for(const C of D){const A=v.mountpoint+Ot(C);d.some(I=>A.startsWith(I))||l.push(A)}d=[v.mountpoint,...d.filter(C=>!C.startsWith(v.mountpoint))]}const y=f.maxDepth!==void 0&&!p;return l.filter(v=>(!y||H7(v,f.maxDepth))&&Y7(v,u))},async clear(u,f={}){u=za(u),await Promise.all(r(u,!1).map(async h=>{if(h.driver.clear)return je(h.driver.clear,h.relativeBase,f);if(h.driver.removeItem){const d=await h.driver.getKeys(h.relativeBase||"",f);return Promise.all(d.map(l=>h.driver.removeItem(l,f)))}}))},async dispose(){await Promise.all(Object.values(e.mounts).map(u=>X1(u)))},async watch(u){return await s(),e.watchListeners.push(u),async()=>{e.watchListeners=e.watchListeners.filter(f=>f!==u),e.watchListeners.length===0&&await o()}},async unwatch(){e.watchListeners=[],await o()},mount(u,f){if(u=za(u),u&&e.mounts[u])throw new Error(`already mounted at ${u}`);return u&&(e.mountpoints.push(u),e.mountpoints.sort((h,d)=>d.length-h.length)),e.mounts[u]=f,e.watching&&Promise.resolve(J1(f,i,u)).then(h=>{e.unwatch[u]=h}).catch(console.error),c},async unmount(u,f=!0){u=za(u),!(!u||!e.mounts[u])&&(e.watching&&u in e.unwatch&&(e.unwatch[u]?.(),delete e.unwatch[u]),f&&await X1(e.mounts[u]),e.mountpoints=e.mountpoints.filter(h=>h!==u),delete e.mounts[u])},getMount(u=""){u=Ot(u)+":";const f=n(u);return{driver:f.driver,base:f.base}},getMounts(u="",f={}){return u=Ot(u),r(u,f.parents).map(d=>({driver:d.driver,base:d.mountpoint}))},keys:(u,f={})=>c.getKeys(u,f),get:(u,f={})=>c.getItem(u,f),set:(u,f,h={})=>c.setItem(u,f,h),has:(u,f={})=>c.hasItem(u,f),del:(u,f={})=>c.removeItem(u,f),remove:(u,f={})=>c.removeItem(u,f)};return c}function J1(t,e,n){return t.watch?t.watch((r,i)=>e(r,n+i)):()=>{}}async function X1(t){typeof t.dispose=="function"&&await je(t.dispose)}function pi(t){return new Promise((e,n)=>{t.oncomplete=t.onsuccess=()=>e(t.result),t.onabort=t.onerror=()=>n(t.error)})}function Q1(t,e){let n;const r=()=>{if(n)return n;const i=indexedDB.open(t);return i.onupgradeneeded=()=>i.result.createObjectStore(e),n=pi(i),n.then(s=>{s.onclose=()=>n=void 0},()=>{}),n};return(i,s)=>r().then(o=>s(o.transaction(e,i).objectStore(e)))}let Kf;function _s(){return Kf||(Kf=Q1("keyval-store","keyval")),Kf}function _1(t,e=_s()){return e("readonly",n=>pi(n.get(t)))}function J7(t,e,n=_s()){return n("readwrite",r=>(r.put(e,t),pi(r.transaction)))}function X7(t,e=_s()){return e("readwrite",n=>(n.delete(t),pi(n.transaction)))}function Q7(t=_s()){return t("readwrite",e=>(e.clear(),pi(e.transaction)))}function _7(t,e){return t.openCursor().onsuccess=function(){this.result&&(e(this.result),this.result.continue())},pi(t.transaction)}function $7(t=_s()){return t("readonly",e=>{if(e.getAllKeys)return pi(e.getAllKeys());const n=[];return _7(e,r=>n.push(r.key)).then(()=>n)})}const eA="idb-keyval";var tA=(t={})=>{const e=t.base&&t.base.length>0?`${t.base}:`:"",n=i=>e+i;let r;return t.dbName&&t.storeName&&(r=Q1(t.dbName,t.storeName)),{name:eA,options:t,async hasItem(i){return!(typeof await _1(n(i),r)>"u")},async getItem(i){return await _1(n(i),r)??null},setItem(i,s){return J7(n(i),s,r)},removeItem(i){return X7(n(i),r)},getKeys(){return $7(r)},clear(){return Q7(r)}}};const nA="WALLET_CONNECT_V2_INDEXED_DB",rA="keyvaluestorage";class iA{constructor(){this.indexedDb=Z7({driver:tA({dbName:nA,storeName:rA})})}async getKeys(){return this.indexedDb.getKeys()}async getEntries(){return(await this.indexedDb.getItems(await this.indexedDb.getKeys())).map(e=>[e.key,e.value])}async getItem(e){const n=await this.indexedDb.getItem(e);if(n!==null)return n}async setItem(e,n){await this.indexedDb.setItem(e,Us(n))}async removeItem(e){await this.indexedDb.removeItem(e)}}var Zf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},ja={exports:{}};(function(){let t;function e(){}t=e,t.prototype.getItem=function(n){return this.hasOwnProperty(n)?String(this[n]):null},t.prototype.setItem=function(n,r){this[n]=String(r)},t.prototype.removeItem=function(n){delete this[n]},t.prototype.clear=function(){const n=this;Object.keys(n).forEach(function(r){n[r]=void 0,delete n[r]})},t.prototype.key=function(n){return n=n||0,Object.keys(this)[n]},t.prototype.__defineGetter__("length",function(){return Object.keys(this).length}),typeof Zf<"u"&&Zf.localStorage?ja.exports=Zf.localStorage:typeof window<"u"&&window.localStorage?ja.exports=window.localStorage:ja.exports=new e})();function sA(t){var e;return[t[0],zi((e=t[1])!=null?e:"")]}class oA{constructor(){this.localStorage=ja.exports}async getKeys(){return Object.keys(this.localStorage)}async getEntries(){return Object.entries(this.localStorage).map(sA)}async getItem(e){const n=this.localStorage.getItem(e);if(n!==null)return zi(n)}async setItem(e,n){this.localStorage.setItem(e,Us(n))}async removeItem(e){this.localStorage.removeItem(e)}}const aA="wc_storage_version",$1=1,cA=async(t,e,n)=>{const r=aA,i=await e.getItem(r);if(i&&i>=$1){n(e);return}const s=await t.getKeys();if(!s.length){n(e);return}const o=[];for(;s.length;){const a=s.shift();if(!a)continue;const c=a.toLowerCase();if(c.includes("wc@")||c.includes("walletconnect")||c.includes("wc_")||c.includes("wallet_connect")){const u=await t.getItem(a);await e.setItem(a,u),o.push(a)}}await e.setItem(r,$1),n(e),uA(t,o)},uA=async(t,e)=>{e.length&&e.forEach(async n=>{await t.removeItem(n)})};class fA{constructor(){this.initialized=!1,this.setInitialized=n=>{this.storage=n,this.initialized=!0};const e=new oA;this.storage=e;try{const n=new iA;cA(e,n,this.setInitialized)}catch{this.initialized=!0}}async getKeys(){return await this.initialize(),this.storage.getKeys()}async getEntries(){return await this.initialize(),this.storage.getEntries()}async getItem(e){return await this.initialize(),this.storage.getItem(e)}async setItem(e,n){return await this.initialize(),this.storage.setItem(e,n)}async removeItem(e){return await this.initialize(),this.storage.removeItem(e)}async initialize(){this.initialized||await new Promise(e=>{const n=setInterval(()=>{this.initialized&&(clearInterval(n),e())},20)})}}class lA extends hi{constructor(e){super(),this.opts=e,this.protocol="wc",this.version=2}}class hA extends hi{constructor(e,n){super(),this.core=e,this.logger=n,this.records=new Map}}class dA{constructor(e,n){this.logger=e,this.core=n}}class pA extends hi{constructor(e,n){super(),this.relayer=e,this.logger=n}}class gA extends hi{constructor(e){super()}}class wA{constructor(e,n,r,i){this.core=e,this.logger=n,this.name=r}}class yA extends hi{constructor(e,n){super(),this.relayer=e,this.logger=n}}class bA extends hi{constructor(e,n){super(),this.core=e,this.logger=n}}class mA{constructor(e,n,r){this.core=e,this.logger=n,this.store=r}}class vA{constructor(e,n){this.projectId=e,this.logger=n}}class EA{constructor(e,n,r){this.core=e,this.logger=n,this.telemetryEnabled=r}}class xA{constructor(e){this.opts=e,this.protocol="wc",this.version=2}}class SA{constructor(e){this.client=e}}const IA="PARSE_ERROR",AA="INVALID_REQUEST",OA="METHOD_NOT_FOUND",BA="INVALID_PARAMS",ew="INTERNAL_ERROR",Jf="SERVER_ERROR",DA=[-32700,-32600,-32601,-32602,-32603],$s={[IA]:{code:-32700,message:"Parse error"},[AA]:{code:-32600,message:"Invalid Request"},[OA]:{code:-32601,message:"Method not found"},[BA]:{code:-32602,message:"Invalid params"},[ew]:{code:-32603,message:"Internal error"},[Jf]:{code:-32e3,message:"Server error"}},tw=Jf;function RA(t){return DA.includes(t)}function nw(t){return Object.keys($s).includes(t)?$s[t]:$s[tw]}function TA(t){const e=Object.values($s).find(n=>n.code===t);return e||$s[tw]}function NA(t,e,n){return t.message.includes("getaddrinfo ENOTFOUND")||t.message.includes("connect ECONNREFUSED")?new Error(`Unavailable ${n} RPC url at ${e}`):t}var rw={};/*! *****************************************************************************
|
|
27
|
+
Approved: ${d.toString()}`))}),o.forEach(h=>{r||(ri(i[h].methods,s[h].methods)?ri(i[h].events,s[h].events)||(r=J("NON_CONFORMING_NAMESPACES",`${n} namespaces events don't satisfy namespace events for ${h}`)):r=J("NON_CONFORMING_NAMESPACES",`${n} namespaces methods don't satisfy namespace methods for ${h}`))}),r}function l7(t){const e={};return Object.keys(t).forEach(n=>{n.includes(":")?e[n]=t[n]:t[n].chains?.forEach(r=>{e[r]={methods:t[n].methods,events:t[n].events}})}),e}function B1(t){return[...new Set(t.map(e=>e.includes(":")?e.split(":")[0]:e))]}function h7(t){const e={};return Object.keys(t).forEach(n=>{n.includes(":")?e[n]=t[n]:Zi(t[n].accounts)?.forEach(r=>{e[r]={accounts:t[n].accounts.filter(i=>i.includes(`${r}:`)),methods:t[n].methods,events:t[n].events}})}),e}function d7(t,e){return Uf(t,!1)&&t<=e.max&&t>=e.min}function D1(){const t=zs();return new Promise(e=>{switch(t){case Ct.browser:e(p7());break;case Ct.reactNative:e(g7());break;case Ct.node:e(y7());break;default:e(!0)}})}function p7(){return ni()&&navigator?.onLine}async function g7(){return Wn()&&typeof global<"u"&&global?.NetInfo?(await global?.NetInfo.fetch())?.isConnected:!0}function y7(){return!0}function w7(t){switch(zs()){case Ct.browser:b7(t);break;case Ct.reactNative:m7(t);break}}function b7(t){!Wn()&&ni()&&(window.addEventListener("online",()=>t(!0)),window.addEventListener("offline",()=>t(!1)))}function m7(t){Wn()&&typeof global<"u"&&global?.NetInfo&&global?.NetInfo.addEventListener(e=>t(e?.isConnected))}function v7(){return ni()&&Kr()?Kr()?.visibilityState==="visible":!0}const qf={};class Gs{static get(e){return qf[e]}static set(e,n){qf[e]=n}static delete(e){delete qf[e]}}function E7(t){const e=Li.decode(t);if(e.length<33)throw new Error("Too short to contain a public key");return e.slice(1,33)}function x7({publicKey:t,signature:e,payload:n}){const r=Ca(n.method),i=128|parseInt(n.version?.toString()||"4"),s=A7(n.address),o=n.era==="00"?new Uint8Array([0]):Ca(n.era);if(o.length!==1&&o.length!==2)throw new Error("Invalid era length");const a=parseInt(n.nonce,16),c=new Uint8Array([a&255,a>>8&255]),u=BigInt(`0x${I7(n.tip)}`),f=D7(u),h=new Uint8Array([0,...t,s,...e,...o,...c,...f,...r]),d=B7(h.length+1);return new Uint8Array([...d,i,...h])}function S7(t){const e=Ca(t),n=P5.blake2b(e,void 0,32);return"0x"+ze(n,"base16")}function Ca(t){return new Uint8Array(t.replace(/^0x/,"").match(/.{1,2}/g).map(e=>parseInt(e,16)))}function I7(t){return t.startsWith("0x")?t.slice(2):t}function A7(t){const e=Li.decode(t)[0];return e===42?0:e===60?2:1}function B7(t){if(t<64)return new Uint8Array([t<<2]);if(t<16384){const e=t<<2|1;return new Uint8Array([e&255,e>>8&255])}else if(t<1<<30){const e=t<<2|2;return new Uint8Array([e&255,e>>8&255,e>>16&255,e>>24&255])}else throw new Error("Compact encoding > 2^30 not supported")}function D7(t){if(t<1n<<6n)return new Uint8Array([Number(t<<2n)]);if(t<1n<<14n){const e=t<<2n|0x01n;return new Uint8Array([Number(e&0xffn),Number(e>>8n&0xffn)])}else if(t<1n<<30n){const e=t<<2n|0x02n;return new Uint8Array([Number(e&0xffn),Number(e>>8n&0xffn),Number(e>>16n&0xffn),Number(e>>24n&0xffn)])}else throw new Error("BigInt compact encoding not supported > 2^30")}function O7(t){const e=Ca(t.signature),n=E7(t.transaction.address),r=x7({publicKey:n,signature:e,payload:t.transaction}),i=ze(r,"base16");return S7(i)}const T7=new Set(["TransferFactory_Transfer","DelegateProxy_TransferFactory_Transfer"]);function R7(t){const e=t?.commands;if(!Array.isArray(e))return[];const n=[];for(const r of e){const i=r?.ExerciseCommand;if(!i||!T7.has(i.choice))continue;const s=i.choiceArgument?.transfer;!s?.amount||!s?.instrumentId?.id||n.push({amount:String(s.amount),instrumentId:String(s.instrumentId.id)})}return n}function N7(t,e){const n=e?.payload?.updateId;if(!n)return[];const r=R7(t);return r.length===0?[String(n)]:r.map(i=>`${n}:${i.amount}:${i.instrumentId}`)}function O1({logger:t,name:e}){const n=typeof t=="string"?Gl({opts:{level:t,name:e}}).logger:t;return n.level=typeof t=="string"?t:t.level,n}var Zs={},La={};function T1(t){this.buffer=t,this.pos=0}T1.prototype.read=function(t,e,n){this.pos+n>this.buffer.length&&(n=this.buffer.length-this.pos);for(var r=0;r<n;r++)t[e+r]=this.buffer[this.pos+r];return this.pos+=n,n},La.BrotliInput=T1;function R1(t){this.buffer=t,this.pos=0}R1.prototype.write=function(t,e){if(this.pos+e>this.buffer.length)throw new Error("Output buffer is not large enough");return this.buffer.set(t.subarray(0,e),this.pos),this.pos+=e,e},La.BrotliOutput=R1;var ui=4096,U7=2*ui+32,N1=2*ui-1,P7=new Uint32Array([0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,131071,262143,524287,1048575,2097151,4194303,8388607,16777215]);function fi(t){this.buf_=new Uint8Array(U7),this.input_=t,this.reset()}fi.READ_SIZE=ui,fi.IBUF_MASK=N1,fi.prototype.reset=function(){this.buf_ptr_=0,this.val_=0,this.pos_=0,this.bit_pos_=0,this.bit_end_pos_=0,this.eos_=0,this.readMoreInput();for(var t=0;t<4;t++)this.val_|=this.buf_[this.pos_]<<8*t,++this.pos_;return this.bit_end_pos_>0},fi.prototype.readMoreInput=function(){if(!(this.bit_end_pos_>256))if(this.eos_){if(this.bit_pos_>this.bit_end_pos_)throw new Error("Unexpected end of input "+this.bit_pos_+" "+this.bit_end_pos_)}else{var t=this.buf_ptr_,e=this.input_.read(this.buf_,t,ui);if(e<0)throw new Error("Unexpected end of input");if(e<ui){this.eos_=1;for(var n=0;n<32;n++)this.buf_[t+e+n]=0}if(t===0){for(var n=0;n<32;n++)this.buf_[(ui<<1)+n]=this.buf_[n];this.buf_ptr_=ui}else this.buf_ptr_=0;this.bit_end_pos_+=e<<3}},fi.prototype.fillBitWindow=function(){for(;this.bit_pos_>=8;)this.val_>>>=8,this.val_|=this.buf_[this.pos_&N1]<<24,++this.pos_,this.bit_pos_=this.bit_pos_-8>>>0,this.bit_end_pos_=this.bit_end_pos_-8>>>0},fi.prototype.readBits=function(t){32-this.bit_pos_<t&&this.fillBitWindow();var e=this.val_>>>this.bit_pos_&P7[t];return this.bit_pos_+=t,e};var q7=fi,Rr={},Cf={},Va={};Va.byteLength=V7,Va.toByteArray=F7,Va.fromByteArray=K7;for(var yn=[],Wt=[],C7=typeof Uint8Array<"u"?Uint8Array:Array,Lf="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Yi=0,L7=Lf.length;Yi<L7;++Yi)yn[Yi]=Lf[Yi],Wt[Lf.charCodeAt(Yi)]=Yi;Wt[45]=62,Wt[95]=63;function U1(t){var e=t.length;if(e%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var n=t.indexOf("=");n===-1&&(n=e);var r=n===e?0:4-n%4;return[n,r]}function V7(t){var e=U1(t),n=e[0],r=e[1];return(n+r)*3/4-r}function k7(t,e,n){return(e+n)*3/4-n}function F7(t){var e,n=U1(t),r=n[0],i=n[1],s=new C7(k7(t,r,i)),o=0,a=i>0?r-4:r,c;for(c=0;c<a;c+=4)e=Wt[t.charCodeAt(c)]<<18|Wt[t.charCodeAt(c+1)]<<12|Wt[t.charCodeAt(c+2)]<<6|Wt[t.charCodeAt(c+3)],s[o++]=e>>16&255,s[o++]=e>>8&255,s[o++]=e&255;return i===2&&(e=Wt[t.charCodeAt(c)]<<2|Wt[t.charCodeAt(c+1)]>>4,s[o++]=e&255),i===1&&(e=Wt[t.charCodeAt(c)]<<10|Wt[t.charCodeAt(c+1)]<<4|Wt[t.charCodeAt(c+2)]>>2,s[o++]=e>>8&255,s[o++]=e&255),s}function z7(t){return yn[t>>18&63]+yn[t>>12&63]+yn[t>>6&63]+yn[t&63]}function M7(t,e,n){for(var r,i=[],s=e;s<n;s+=3)r=(t[s]<<16&16711680)+(t[s+1]<<8&65280)+(t[s+2]&255),i.push(z7(r));return i.join("")}function K7(t){for(var e,n=t.length,r=n%3,i=[],s=16383,o=0,a=n-r;o<a;o+=s)i.push(M7(t,o,o+s>a?a:o+s));return r===1?(e=t[n-1],i.push(yn[e>>2]+yn[e<<4&63]+"==")):r===2&&(e=(t[n-2]<<8)+t[n-1],i.push(yn[e>>10]+yn[e>>4&63]+yn[e<<2&63]+"=")),i.join("")}var Vf,P1;function j7(){return P1||(P1=1,Vf="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"),Vf}var q1;function W7(){if(q1)return Cf;q1=1;var t=Va;return Cf.init=function(){var e=M1().BrotliDecompressBuffer,n=t.toByteArray(j7());return e(n)},Cf}var C1;function L1(){if(C1)return Rr;C1=1;var t=W7();return Rr.init=function(){Rr.dictionary=t.init()},Rr.offsetsByLength=new Uint32Array([0,0,0,0,0,4096,9216,21504,35840,44032,53248,63488,74752,87040,93696,100864,104704,106752,108928,113536,115968,118528,119872,121280,122016]),Rr.sizeBitsByLength=new Uint8Array([0,0,0,0,10,10,11,11,10,10,10,10,10,9,9,8,7,7,8,7,7,6,6,5,5]),Rr.minDictionaryWordLength=4,Rr.maxDictionaryWordLength=24,Rr}var ka={};function Ji(t,e){this.bits=t,this.value=e}ka.HuffmanCode=Ji;var Qi=15;function V1(t,e){for(var n=1<<e-1;t&n;)n>>=1;return(t&n-1)+n}function k1(t,e,n,r,i){do r-=n,t[e+r]=new Ji(i.bits,i.value);while(r>0)}function H7(t,e,n){for(var r=1<<e-n;e<Qi&&(r-=t[e],!(r<=0));)++e,r<<=1;return e-n}ka.BrotliBuildHuffmanTable=function(t,e,n,r,i){var s=e,o,a,c,u,f,h,d,l,p,w,v,O=new Int32Array(Qi+1),P=new Int32Array(Qi+1);for(v=new Int32Array(i),c=0;c<i;c++)O[r[c]]++;for(P[1]=0,a=1;a<Qi;a++)P[a+1]=P[a]+O[a];for(c=0;c<i;c++)r[c]!==0&&(v[P[r[c]]++]=c);if(l=n,p=1<<l,w=p,P[Qi]===1){for(u=0;u<w;++u)t[e+u]=new Ji(0,v[0]&65535);return w}for(u=0,c=0,a=1,f=2;a<=n;++a,f<<=1)for(;O[a]>0;--O[a])o=new Ji(a&255,v[c++]&65535),k1(t,e+u,f,p,o),u=V1(u,a);for(d=w-1,h=-1,a=n+1,f=2;a<=Qi;++a,f<<=1)for(;O[a]>0;--O[a])(u&d)!==h&&(e+=p,l=H7(O,a,n),p=1<<l,w+=p,h=u&d,t[s+h]=new Ji(l+n&255,e-s-h&65535)),o=new Ji(a-n&255,v[c++]&65535),k1(t,e+(u>>n),f,p,o),u=V1(u,a);return w};var kf={};kf.lookup=new Uint8Array([0,0,0,0,0,0,0,0,0,4,4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,12,16,12,12,20,12,16,24,28,12,12,32,12,36,12,44,44,44,44,44,44,44,44,44,44,32,32,24,40,28,12,12,48,52,52,52,48,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,48,52,52,52,52,52,24,12,28,12,12,12,56,60,60,60,56,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,56,60,60,60,60,60,24,12,28,12,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,40,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,56,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,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,52,53,54,55,56,57,58,59,60,61,62,63,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,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,52,53,54,55,56,57,58,59,60,61,62,63,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,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,52,53,54,55,56,57,58,59,60,61,62,63,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,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,52,53,54,55,56,57,58,59,60,61,62,63,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63,63,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),kf.lookupOffsets=new Uint16Array([1024,1536,1280,1536,0,256,768,512]);var _i={};function ee(t,e){this.offset=t,this.nbits=e}_i.kBlockLengthPrefixCode=[new ee(1,2),new ee(5,2),new ee(9,2),new ee(13,2),new ee(17,3),new ee(25,3),new ee(33,3),new ee(41,3),new ee(49,4),new ee(65,4),new ee(81,4),new ee(97,4),new ee(113,5),new ee(145,5),new ee(177,5),new ee(209,5),new ee(241,6),new ee(305,6),new ee(369,7),new ee(497,8),new ee(753,9),new ee(1265,10),new ee(2289,11),new ee(4337,12),new ee(8433,13),new ee(16625,24)],_i.kInsertLengthPrefixCode=[new ee(0,0),new ee(1,0),new ee(2,0),new ee(3,0),new ee(4,0),new ee(5,0),new ee(6,1),new ee(8,1),new ee(10,2),new ee(14,2),new ee(18,3),new ee(26,3),new ee(34,4),new ee(50,4),new ee(66,5),new ee(98,5),new ee(130,6),new ee(194,7),new ee(322,8),new ee(578,9),new ee(1090,10),new ee(2114,12),new ee(6210,14),new ee(22594,24)],_i.kCopyLengthPrefixCode=[new ee(2,0),new ee(3,0),new ee(4,0),new ee(5,0),new ee(6,0),new ee(7,0),new ee(8,0),new ee(9,0),new ee(10,1),new ee(12,1),new ee(14,2),new ee(18,2),new ee(22,3),new ee(30,3),new ee(38,4),new ee(54,4),new ee(70,5),new ee(102,5),new ee(134,6),new ee(198,7),new ee(326,8),new ee(582,9),new ee(1094,10),new ee(2118,24)],_i.kInsertRangeLut=[0,0,8,8,0,16,8,16,16],_i.kCopyRangeLut=[0,8,0,8,16,0,16,8,16];var Xs={},F1;function G7(){if(F1)return Xs;F1=1;var t=L1(),e=0,n=1,r=2,i=3,s=4,o=5,a=6,c=7,u=8,f=9,h=10,d=11,l=12,p=13,w=14,v=15,O=16,P=17,A=18,I=20;function S(L,R,Z){this.prefix=new Uint8Array(L.length),this.transform=R,this.suffix=new Uint8Array(Z.length);for(var W=0;W<L.length;W++)this.prefix[W]=L.charCodeAt(W);for(var W=0;W<Z.length;W++)this.suffix[W]=Z.charCodeAt(W)}var M=[new S("",e,""),new S("",e," "),new S(" ",e," "),new S("",l,""),new S("",h," "),new S("",e," the "),new S(" ",e,""),new S("s ",e," "),new S("",e," of "),new S("",h,""),new S("",e," and "),new S("",p,""),new S("",n,""),new S(", ",e," "),new S("",e,", "),new S(" ",h," "),new S("",e," in "),new S("",e," to "),new S("e ",e," "),new S("",e,'"'),new S("",e,"."),new S("",e,'">'),new S("",e,`
|
|
28
|
+
`),new S("",i,""),new S("",e,"]"),new S("",e," for "),new S("",w,""),new S("",r,""),new S("",e," a "),new S("",e," that "),new S(" ",h,""),new S("",e,". "),new S(".",e,""),new S(" ",e,", "),new S("",v,""),new S("",e," with "),new S("",e,"'"),new S("",e," from "),new S("",e," by "),new S("",O,""),new S("",P,""),new S(" the ",e,""),new S("",s,""),new S("",e,". The "),new S("",d,""),new S("",e," on "),new S("",e," as "),new S("",e," is "),new S("",c,""),new S("",n,"ing "),new S("",e,`
|
|
29
|
+
`),new S("",e,":"),new S(" ",e,". "),new S("",e,"ed "),new S("",I,""),new S("",A,""),new S("",a,""),new S("",e,"("),new S("",h,", "),new S("",u,""),new S("",e," at "),new S("",e,"ly "),new S(" the ",e," of "),new S("",o,""),new S("",f,""),new S(" ",h,", "),new S("",h,'"'),new S(".",e,"("),new S("",d," "),new S("",h,'">'),new S("",e,'="'),new S(" ",e,"."),new S(".com/",e,""),new S(" the ",e," of the "),new S("",h,"'"),new S("",e,". This "),new S("",e,","),new S(".",e," "),new S("",h,"("),new S("",h,"."),new S("",e," not "),new S(" ",e,'="'),new S("",e,"er "),new S(" ",d," "),new S("",e,"al "),new S(" ",d,""),new S("",e,"='"),new S("",d,'"'),new S("",h,". "),new S(" ",e,"("),new S("",e,"ful "),new S(" ",h,". "),new S("",e,"ive "),new S("",e,"less "),new S("",d,"'"),new S("",e,"est "),new S(" ",h,"."),new S("",d,'">'),new S(" ",e,"='"),new S("",h,","),new S("",e,"ize "),new S("",d,"."),new S("\xC2\xA0",e,""),new S(" ",e,","),new S("",h,'="'),new S("",d,'="'),new S("",e,"ous "),new S("",d,", "),new S("",h,"='"),new S(" ",h,","),new S(" ",d,'="'),new S(" ",d,", "),new S("",d,","),new S("",d,"("),new S("",d,". "),new S(" ",d,"."),new S("",d,"='"),new S(" ",d,". "),new S(" ",h,'="'),new S(" ",d,"='"),new S(" ",h,"='")];Xs.kTransforms=M,Xs.kNumTransforms=M.length;function F(L,R){return L[R]<192?(L[R]>=97&&L[R]<=122&&(L[R]^=32),1):L[R]<224?(L[R+1]^=32,2):(L[R+2]^=5,3)}return Xs.transformDictionaryWord=function(L,R,Z,W,E){var y=M[E].prefix,m=M[E].suffix,g=M[E].transform,b=g<l?0:g-(l-1),x=0,B=R,D;b>W&&(b=W);for(var T=0;T<y.length;)L[R++]=y[T++];for(Z+=b,W-=b,g<=f&&(W-=g),x=0;x<W;x++)L[R++]=t.dictionary[Z+x];if(D=R-W,g===h)F(L,D);else if(g===d)for(;W>0;){var U=F(L,D);D+=U,W-=U}for(var k=0;k<m.length;)L[R++]=m[k++];return R-B},Xs}var z1;function M1(){if(z1)return Zs;z1=1;var t=La.BrotliInput,e=La.BrotliOutput,n=q7,r=L1(),i=ka.HuffmanCode,s=ka.BrotliBuildHuffmanTable,o=kf,a=_i,c=G7(),u=8,f=16,h=256,d=704,l=26,p=6,w=2,v=8,O=255,P=1080,A=18,I=new Uint8Array([1,2,3,4,0,5,17,6,16,7,8,9,10,11,12,13,14,15]),S=16,M=new Uint8Array([3,2,1,0,3,3,3,3,3,3,2,2,2,2,2,2]),F=new Int8Array([0,0,0,0,-1,1,-2,2,-3,3,-1,1,-2,2,-3,3]),L=new Uint16Array([256,402,436,468,500,534,566,598,630,662,694,726,758,790,822,854,886,920,952,984,1016,1048,1080]);function R(z){var N;return z.readBits(1)===0?16:(N=z.readBits(3),N>0?17+N:(N=z.readBits(3),N>0?8+N:17))}function Z(z){if(z.readBits(1)){var N=z.readBits(3);return N===0?1:z.readBits(N)+(1<<N)}return 0}function W(){this.meta_block_length=0,this.input_end=0,this.is_uncompressed=0,this.is_metadata=!1}function E(z){var N=new W,V,K,X;if(N.input_end=z.readBits(1),N.input_end&&z.readBits(1))return N;if(V=z.readBits(2)+4,V===7){if(N.is_metadata=!0,z.readBits(1)!==0)throw new Error("Invalid reserved bit");if(K=z.readBits(2),K===0)return N;for(X=0;X<K;X++){var $=z.readBits(8);if(X+1===K&&K>1&&$===0)throw new Error("Invalid size byte");N.meta_block_length|=$<<X*8}}else for(X=0;X<V;++X){var _=z.readBits(4);if(X+1===V&&V>4&&_===0)throw new Error("Invalid size nibble");N.meta_block_length|=_<<X*4}return++N.meta_block_length,!N.input_end&&!N.is_metadata&&(N.is_uncompressed=z.readBits(1)),N}function y(z,N,V){var K;return V.fillBitWindow(),N+=V.val_>>>V.bit_pos_&O,K=z[N].bits-v,K>0&&(V.bit_pos_+=v,N+=z[N].value,N+=V.val_>>>V.bit_pos_&(1<<K)-1),V.bit_pos_+=z[N].bits,z[N].value}function m(z,N,V,K){for(var X=0,$=u,_=0,te=0,ue=32768,ae=[],re=0;re<32;re++)ae.push(new i(0,0));for(s(ae,0,5,z,A);X<N&&ue>0;){var we=0,Qe;if(K.readMoreInput(),K.fillBitWindow(),we+=K.val_>>>K.bit_pos_&31,K.bit_pos_+=ae[we].bits,Qe=ae[we].value&255,Qe<f)_=0,V[X++]=Qe,Qe!==0&&($=Qe,ue-=32768>>Qe);else{var Dt=Qe-14,yt,ct,De=0;if(Qe===f&&(De=$),te!==De&&(_=0,te=De),yt=_,_>0&&(_-=2,_<<=Dt),_+=K.readBits(Dt)+3,ct=_-yt,X+ct>N)throw new Error("[ReadHuffmanCodeLengths] symbol + repeat_delta > num_symbols");for(var _e=0;_e<ct;_e++)V[X+_e]=te;X+=ct,te!==0&&(ue-=ct<<15-te)}}if(ue!==0)throw new Error("[ReadHuffmanCodeLengths] space = "+ue);for(;X<N;X++)V[X]=0}function g(z,N,V,K){var X=0,$,_=new Uint8Array(z);if(K.readMoreInput(),$=K.readBits(2),$===1){for(var te,ue=z-1,ae=0,re=new Int32Array(4),we=K.readBits(2)+1;ue;)ue>>=1,++ae;for(te=0;te<we;++te)re[te]=K.readBits(ae)%z,_[re[te]]=2;switch(_[re[0]]=1,we){case 1:break;case 3:if(re[0]===re[1]||re[0]===re[2]||re[1]===re[2])throw new Error("[ReadHuffmanCode] invalid symbols");break;case 2:if(re[0]===re[1])throw new Error("[ReadHuffmanCode] invalid symbols");_[re[1]]=1;break;case 4:if(re[0]===re[1]||re[0]===re[2]||re[0]===re[3]||re[1]===re[2]||re[1]===re[3]||re[2]===re[3])throw new Error("[ReadHuffmanCode] invalid symbols");K.readBits(1)?(_[re[2]]=3,_[re[3]]=3):_[re[0]]=2;break}}else{var te,Qe=new Uint8Array(A),Dt=32,yt=0,ct=[new i(2,0),new i(2,4),new i(2,3),new i(3,2),new i(2,0),new i(2,4),new i(2,3),new i(4,1),new i(2,0),new i(2,4),new i(2,3),new i(3,2),new i(2,0),new i(2,4),new i(2,3),new i(4,5)];for(te=$;te<A&&Dt>0;++te){var De=I[te],_e=0,wt;K.fillBitWindow(),_e+=K.val_>>>K.bit_pos_&15,K.bit_pos_+=ct[_e].bits,wt=ct[_e].value,Qe[De]=wt,wt!==0&&(Dt-=32>>wt,++yt)}if(!(yt===1||Dt===0))throw new Error("[ReadHuffmanCode] invalid num_codes or space");m(Qe,z,_,K)}if(X=s(N,V,v,_,z),X===0)throw new Error("[ReadHuffmanCode] BuildHuffmanTable failed: ");return X}function b(z,N,V){var K,X;return K=y(z,N,V),X=a.kBlockLengthPrefixCode[K].nbits,a.kBlockLengthPrefixCode[K].offset+V.readBits(X)}function x(z,N,V){var K;return z<S?(V+=M[z],V&=3,K=N[V]+F[z]):K=z-S+1,K}function B(z,N){for(var V=z[N],K=N;K;--K)z[K]=z[K-1];z[0]=V}function D(z,N){var V=new Uint8Array(256),K;for(K=0;K<256;++K)V[K]=K;for(K=0;K<N;++K){var X=z[K];z[K]=V[X],X&&B(V,X)}}function T(z,N){this.alphabet_size=z,this.num_htrees=N,this.codes=new Array(N+N*L[z+31>>>5]),this.htrees=new Uint32Array(N)}T.prototype.decode=function(z){var N,V,K=0;for(N=0;N<this.num_htrees;++N)this.htrees[N]=K,V=g(this.alphabet_size,this.codes,K,z),K+=V};function U(z,N){var V={num_htrees:null,context_map:null},K,X=0,$,_;N.readMoreInput();var te=V.num_htrees=Z(N)+1,ue=V.context_map=new Uint8Array(z);if(te<=1)return V;for(K=N.readBits(1),K&&(X=N.readBits(4)+1),$=[],_=0;_<P;_++)$[_]=new i(0,0);for(g(te+X,$,0,N),_=0;_<z;){var ae;if(N.readMoreInput(),ae=y($,0,N),ae===0)ue[_]=0,++_;else if(ae<=X)for(var re=1+(1<<ae)+N.readBits(ae);--re;){if(_>=z)throw new Error("[DecodeContextMap] i >= context_map_size");ue[_]=0,++_}else ue[_]=ae-X,++_}return N.readBits(1)&&D(ue,z),V}function k(z,N,V,K,X,$,_){var te=V*2,ue=V,ae=y(N,V*P,_),re;ae===0?re=X[te+($[ue]&1)]:ae===1?re=X[te+($[ue]-1&1)]+1:re=ae-2,re>=z&&(re-=z),K[V]=re,X[te+($[ue]&1)]=re,++$[ue]}function C(z,N,V,K,X,$){var _=X+1,te=V&X,ue=$.pos_&n.IBUF_MASK,ae;if(N<8||$.bit_pos_+(N<<3)<$.bit_end_pos_){for(;N-- >0;)$.readMoreInput(),K[te++]=$.readBits(8),te===_&&(z.write(K,_),te=0);return}if($.bit_end_pos_<32)throw new Error("[CopyUncompressedBlockToOutput] br.bit_end_pos_ < 32");for(;$.bit_pos_<32;)K[te]=$.val_>>>$.bit_pos_,$.bit_pos_+=8,++te,--N;if(ae=$.bit_end_pos_-$.bit_pos_>>3,ue+ae>n.IBUF_MASK){for(var re=n.IBUF_MASK+1-ue,we=0;we<re;we++)K[te+we]=$.buf_[ue+we];ae-=re,te+=re,N-=re,ue=0}for(var we=0;we<ae;we++)K[te+we]=$.buf_[ue+we];if(te+=ae,N-=ae,te>=_){z.write(K,_),te-=_;for(var we=0;we<te;we++)K[we]=K[_+we]}for(;te+N>=_;){if(ae=_-te,$.input_.read(K,te,ae)<ae)throw new Error("[CopyUncompressedBlockToOutput] not enough bytes");z.write(K,_),N-=ae,te=0}if($.input_.read(K,te,N)<N)throw new Error("[CopyUncompressedBlockToOutput] not enough bytes");$.reset()}function j(z){var N=z.bit_pos_+7&-8,V=z.readBits(N-z.bit_pos_);return V==0}function q(z){var N=new t(z),V=new n(N);R(V);var K=E(V);return K.meta_block_length}Zs.BrotliDecompressedSize=q;function H(z,N){var V=new t(z);N==null&&(N=q(z));var K=new Uint8Array(N),X=new e(K);return G(V,X),X.pos<X.buffer.length&&(X.buffer=X.buffer.subarray(0,X.pos)),X.buffer}Zs.BrotliDecompressBuffer=H;function G(z,N){var V,K=0,X=0,$=0,_,te=0,ue,ae,re,we,Qe=[16,15,11,4],Dt=0,yt=0,ct=0,De=[new T(0,0),new T(0,0),new T(0,0)],_e,wt,he,hl=128+n.READ_SIZE;he=new n(z),$=R(he),_=(1<<$)-16,ue=1<<$,ae=ue-1,re=new Uint8Array(ue+hl+r.maxDictionaryWordLength),we=ue,_e=[],wt=[];for(var ts=0;ts<3*P;ts++)_e[ts]=new i(0,0),wt[ts]=new i(0,0);for(;!X;){var ke=0,Ly,xn=[1<<28,1<<28,1<<28],Vr=[0],an=[1,1,1],dl=[0,1,0,1,0,1],Ja=[0],ns,co,Vy,ky,Fy=null,Qa=null,zy,My=null,Ky,jy=0,pl=null,Wy=0,Hy=0,gl=null,Gy=0,yl=0,wl=0,rs,bl;for(V=0;V<3;++V)De[V].codes=null,De[V].htrees=null;he.readMoreInput();var _a=E(he);if(ke=_a.meta_block_length,K+ke>N.buffer.length){var Zy=new Uint8Array(K+ke);Zy.set(N.buffer),N.buffer=Zy}if(X=_a.input_end,Ly=_a.is_uncompressed,_a.is_metadata){for(j(he);ke>0;--ke)he.readMoreInput(),he.readBits(8);continue}if(ke!==0){if(Ly){he.bit_pos_=he.bit_pos_+7&-8,C(N,ke,K,re,ae,he),K+=ke;continue}for(V=0;V<3;++V)an[V]=Z(he)+1,an[V]>=2&&(g(an[V]+2,_e,V*P,he),g(l,wt,V*P,he),xn[V]=b(wt,V*P,he),Ja[V]=1);for(he.readMoreInput(),ns=he.readBits(2),co=S+(he.readBits(4)<<ns),Vy=(1<<ns)-1,ky=co+(48<<ns),Qa=new Uint8Array(an[0]),V=0;V<an[0];++V)he.readMoreInput(),Qa[V]=he.readBits(2)<<1;var Xy=U(an[0]<<p,he);zy=Xy.num_htrees,Fy=Xy.context_map;var Yy=U(an[2]<<w,he);for(Ky=Yy.num_htrees,My=Yy.context_map,De[0]=new T(h,zy),De[1]=new T(d,an[1]),De[2]=new T(ky,Ky),V=0;V<3;++V)De[V].decode(he);for(pl=0,gl=0,rs=Qa[Vr[0]],yl=o.lookupOffsets[rs],wl=o.lookupOffsets[rs+1],bl=De[1].htrees[0];ke>0;){var $a,uo,ml,vl,El,Ot,Vt,_n,fo,is,lo;for(he.readMoreInput(),xn[1]===0&&(k(an[1],_e,1,Vr,dl,Ja,he),xn[1]=b(wt,P,he),bl=De[1].htrees[Vr[1]]),--xn[1],$a=y(De[1].codes,bl,he),uo=$a>>6,uo>=2?(uo-=2,Vt=-1):Vt=0,ml=a.kInsertRangeLut[uo]+($a>>3&7),vl=a.kCopyRangeLut[uo]+($a&7),El=a.kInsertLengthPrefixCode[ml].offset+he.readBits(a.kInsertLengthPrefixCode[ml].nbits),Ot=a.kCopyLengthPrefixCode[vl].offset+he.readBits(a.kCopyLengthPrefixCode[vl].nbits),yt=re[K-1&ae],ct=re[K-2&ae],is=0;is<El;++is)he.readMoreInput(),xn[0]===0&&(k(an[0],_e,0,Vr,dl,Ja,he),xn[0]=b(wt,0,he),jy=Vr[0]<<p,pl=jy,rs=Qa[Vr[0]],yl=o.lookupOffsets[rs],wl=o.lookupOffsets[rs+1]),fo=o.lookup[yl+yt]|o.lookup[wl+ct],Wy=Fy[pl+fo],--xn[0],ct=yt,yt=y(De[0].codes,De[0].htrees[Wy],he),re[K&ae]=yt,(K&ae)===ae&&N.write(re,ue),++K;if(ke-=El,ke<=0)break;if(Vt<0){var fo;if(he.readMoreInput(),xn[2]===0&&(k(an[2],_e,2,Vr,dl,Ja,he),xn[2]=b(wt,2*P,he),Hy=Vr[2]<<w,gl=Hy),--xn[2],fo=(Ot>4?3:Ot-2)&255,Gy=My[gl+fo],Vt=y(De[2].codes,De[2].htrees[Gy],he),Vt>=co){var xl,Jy,ho;Vt-=co,Jy=Vt&Vy,Vt>>=ns,xl=(Vt>>1)+1,ho=(2+(Vt&1)<<xl)-4,Vt=co+(ho+he.readBits(xl)<<ns)+Jy}}if(_n=x(Vt,Qe,Dt),_n<0)throw new Error("[BrotliDecompress] invalid distance");if(K<_&&te!==_?te=K:te=_,lo=K&ae,_n>te)if(Ot>=r.minDictionaryWordLength&&Ot<=r.maxDictionaryWordLength){var ho=r.offsetsByLength[Ot],Qy=_n-te-1,_y=r.sizeBitsByLength[Ot],ED=(1<<_y)-1,xD=Qy&ED,$y=Qy>>_y;if(ho+=xD*Ot,$y<c.kNumTransforms){var Sl=c.transformDictionaryWord(re,lo,ho,Ot,$y);if(lo+=Sl,K+=Sl,ke-=Sl,lo>=we){N.write(re,ue);for(var ec=0;ec<lo-we;ec++)re[ec]=re[we+ec]}}else throw new Error("Invalid backward reference. pos: "+K+" distance: "+_n+" len: "+Ot+" bytes left: "+ke)}else throw new Error("Invalid backward reference. pos: "+K+" distance: "+_n+" len: "+Ot+" bytes left: "+ke);else{if(Vt>0&&(Qe[Dt&3]=_n,++Dt),Ot>ke)throw new Error("Invalid backward reference. pos: "+K+" distance: "+_n+" len: "+Ot+" bytes left: "+ke);for(is=0;is<Ot;++is)re[K&ae]=re[K-_n&ae],(K&ae)===ae&&N.write(re,ue),++K,--ke}yt=re[K-1&ae],ct=re[K-2&ae]}K&=1073741823}}N.write(re,K&ae)}return Zs.BrotliDecompress=G,r.init(),Zs}var Z7=M1().BrotliDecompressBuffer;const X7="https://api.pay.walletconnect.com",Y7="js-walletconnect-pay",J7="1.0.9",rn="WalletConnectPay";function Q7(){return jg()?"rn-ios":Kg()?"rn-android":ni()?"browser":Fs()?"node":"unknown"}class Ae extends Error{constructor(e,n,r){super(n),this.name="PayError",this.code=e,this.originalMessage=r??n,Object.setPrototypeOf(this,Ae.prototype)}static fromNativeError(e){if(e instanceof Ae)return e;const n=e instanceof Error?e.message:String(e);return n.includes("JSON parse error")?new Ae("JSON_PARSE",n):n.includes("JSON serialize error")?new Ae("JSON_SERIALIZE",n):n.includes("Payment options error")?new Ae("PAYMENT_OPTIONS",n):n.includes("Payment request error")?new Ae("PAYMENT_REQUEST",n):n.includes("Confirm payment error")?new Ae("CONFIRM_PAYMENT",n):new Ae("UNKNOWN",n)}}class Ff extends Ae{constructor(){super("NATIVE_MODULE_NOT_FOUND","WalletConnect Pay native module not found. Make sure @walletconnect/react-native-compat is installed and linked."),this.name="NativeModuleNotFoundError",Object.setPrototypeOf(this,Ff.prototype)}}class zf extends Ae{constructor(e){super("PAYMENT_OPTIONS",`Failed to get payment options: ${e}`,e),this.name="PaymentOptionsError",Object.setPrototypeOf(this,zf.prototype)}}class Mf extends Ae{constructor(e){super("PAYMENT_REQUEST",`Failed to get payment actions: ${e}`,e),this.name="PaymentActionsError",Object.setPrototypeOf(this,Mf.prototype)}}class Kf extends Ae{constructor(e){super("CONFIRM_PAYMENT",`Failed to confirm payment: ${e}`,e),this.name="ConfirmPaymentError",Object.setPrototypeOf(this,Kf.prototype)}}function _7(t){return JSON.stringify({paymentLink:t.paymentLink,accounts:t.accounts,includePaymentInfo:t.includePaymentInfo??!1})}function $7(t){return JSON.stringify({paymentId:t.paymentId,optionId:t.optionId})}function eI(t){return JSON.stringify({paymentId:t.paymentId,optionId:t.optionId,signatures:t.signatures,collectedData:t.collectedData})}function tI(t){const e=JSON.parse(t);if(!e||typeof e!="object")throw new Ae("JSON_PARSE","Invalid payment options response format");return e}function nI(t){const e=JSON.parse(t);if(!Array.isArray(e))throw new Ae("JSON_PARSE","Invalid required actions response format: expected array");return e}function rI(t){const e=JSON.parse(t);if(!e||typeof e!="object")throw new Ae("JSON_PARSE","Invalid confirm payment response format");return e}function jf(t){return Ae.fromNativeError(t)}class K1{constructor(e){this.backend=e}async getPaymentOptions(e){try{const n=await this.backend.getPaymentOptions(_7(e));return tI(n)}catch(n){throw jf(n)}}async getRequiredPaymentActions(e){try{const n=await this.backend.getRequiredPaymentActions($7(e));return nI(n)}catch(n){throw jf(n)}}async confirmPayment(e){try{const n=await this.backend.confirmPayment(eI(e));return rI(n)}catch(n){throw jf(n)}}}let Nr;function j1(){if(Nr!==void 0)return Nr;try{const t=globalThis.ReactNative;if(t?.NativeModules?.RNWalletConnectPay)return Nr=t.NativeModules.RNWalletConnectPay,Nr;const e=globalThis.expo?.modules;return e?.RNWalletConnectPay?(Nr=e.RNWalletConnectPay,Nr):(Nr=null,null)}catch{return Nr=null,null}}function iI(){return j1()!==null}function sI(t){const e=j1();if(!e)throw new Ff;if(e.initialize)try{e.initialize(JSON.stringify(t))}catch(n){throw new Ae("INITIALIZATION_ERROR",`Failed to initialize native Pay module: ${n instanceof Error?n.message:String(n)}`)}return{getPaymentOptions:n=>e.getPaymentOptions(n),getRequiredPaymentActions:n=>e.getRequiredPaymentActions(n),confirmPayment:n=>e.confirmPayment(n)}}function oI(t){const e=sI(t);return new K1(e)}const aI="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";class Wf{__destroy_into_raw(){const e=this.__wbg_ptr;return this.__wbg_ptr=0,W1.unregister(this),e}free(){const e=this.__destroy_into_raw();le.__wbg_payjson_free(e,0)}confirm_payment(e){const n=$i(e,le.__wbindgen_export,le.__wbindgen_export2),r=qr,i=le.payjson_confirm_payment(this.__wbg_ptr,n,r);return Pr(i)}get_payment_options(e){const n=$i(e,le.__wbindgen_export,le.__wbindgen_export2),r=qr,i=le.payjson_get_payment_options(this.__wbg_ptr,n,r);return Pr(i)}get_required_payment_actions(e){const n=$i(e,le.__wbindgen_export,le.__wbindgen_export2),r=qr,i=le.payjson_get_required_payment_actions(this.__wbg_ptr,n,r);return Pr(i)}constructor(e){try{const s=le.__wbindgen_add_to_stack_pointer(-16),o=$i(e,le.__wbindgen_export,le.__wbindgen_export2),a=qr;le.payjson_new(s,o,a);var n=Gn().getInt32(s+4*0,!0),r=Gn().getInt32(s+4*1,!0),i=Gn().getInt32(s+4*2,!0);if(i)throw Pr(r);return this.__wbg_ptr=n>>>0,W1.register(this,this.__wbg_ptr,this),this}finally{le.__wbindgen_add_to_stack_pointer(16)}}}Symbol.dispose&&(Wf.prototype[Symbol.dispose]=Wf.prototype.free);function cI(){return{__proto__:null,"./yttrium_bg.js":{__proto__:null,__wbg_Error_83742b46f01ce22d:function(t,e){const n=Error(Ur(t,e));return oe(n)},__wbg___wbindgen_is_function_3c846841762788c1:function(t){return typeof Q(t)=="function"},__wbg___wbindgen_is_object_781bc9f159099513:function(t){const e=Q(t);return typeof e=="object"&&e!==null},__wbg___wbindgen_is_string_7ef6b97b02428fae:function(t){return typeof Q(t)=="string"},__wbg___wbindgen_is_undefined_52709e72fb9f179c:function(t){return Q(t)===void 0},__wbg___wbindgen_string_get_395e606bd0ee4427:function(t,e){const n=Q(e),r=typeof n=="string"?n:void 0;var i=hi(r)?0:$i(r,le.__wbindgen_export,le.__wbindgen_export2),s=qr;Gn().setInt32(t+4,s,!0),Gn().setInt32(t+0,i,!0)},__wbg___wbindgen_throw_6ddd609b62940d55:function(t,e){throw new Error(Ur(t,e))},__wbg__wbg_cb_unref_6b5b6b8576d35cb1:function(t){Q(t)._wbg_cb_unref()},__wbg_abort_5ef96933660780b7:function(t){Q(t).abort()},__wbg_abort_6479c2d794ebf2ee:function(t,e){Q(t).abort(Q(e))},__wbg_append_608dfb635ee8998f:function(){return Re(function(t,e,n,r,i){Q(t).append(Ur(e,n),Ur(r,i))},arguments)},__wbg_arrayBuffer_eb8e9ca620af2a19:function(){return Re(function(t){const e=Q(t).arrayBuffer();return oe(e)},arguments)},__wbg_buffer_60b8043cd926067d:function(t){const e=Q(t).buffer;return oe(e)},__wbg_byobRequest_6342e5f2b232c0f9:function(t){const e=Q(t).byobRequest;return hi(e)?0:oe(e)},__wbg_byteLength_607b856aa6c5a508:function(t){return Q(t).byteLength},__wbg_byteOffset_b26b63681c83856c:function(t){return Q(t).byteOffset},__wbg_call_2d781c1f4d5c0ef8:function(){return Re(function(t,e,n){const r=Q(t).call(Q(e),Q(n));return oe(r)},arguments)},__wbg_call_e133b57c9155d22c:function(){return Re(function(t,e){const n=Q(t).call(Q(e));return oe(n)},arguments)},__wbg_clearTimeout_6b8d9a38b9263d65:function(t){const e=clearTimeout(Pr(t));return oe(e)},__wbg_close_690d36108c557337:function(){return Re(function(t){Q(t).close()},arguments)},__wbg_close_737b4b1fbc658540:function(){return Re(function(t){Q(t).close()},arguments)},__wbg_crypto_38df2bab126b63dc:function(t){const e=Q(t).crypto;return oe(e)},__wbg_done_08ce71ee07e3bd17:function(t){return Q(t).done},__wbg_enqueue_ec3552838b4b7fbf:function(){return Re(function(t,e){Q(t).enqueue(Q(e))},arguments)},__wbg_fetch_5550a88cf343aaa9:function(t,e){const n=Q(t).fetch(Q(e));return oe(n)},__wbg_fetch_9dad4fe911207b37:function(t){const e=fetch(Q(t));return oe(e)},__wbg_getRandomValues_76dfc69825c9c552:function(){return Re(function(t,e){globalThis.crypto.getRandomValues(Ys(t,e))},arguments)},__wbg_getRandomValues_c44a50d8cfdaebeb:function(){return Re(function(t,e){Q(t).getRandomValues(Q(e))},arguments)},__wbg_get_326e41e095fb2575:function(){return Re(function(t,e){const n=Reflect.get(Q(t),Q(e));return oe(n)},arguments)},__wbg_has_926ef2ff40b308cf:function(){return Re(function(t,e){return Reflect.has(Q(t),Q(e))},arguments)},__wbg_headers_eb2234545f9ff993:function(t){const e=Q(t).headers;return oe(e)},__wbg_instanceof_Response_9b4d9fd451e051b1:function(t){let e;try{e=Q(t)instanceof Response}catch{e=!1}return e},__wbg_iterator_d8f549ec8fb061b1:function(){return oe(Symbol.iterator)},__wbg_length_ea16607d7b61445b:function(t){return Q(t).length},__wbg_msCrypto_bd5a034af96bcba6:function(t){const e=Q(t).msCrypto;return oe(e)},__wbg_new_0837727332ac86ba:function(){return Re(function(){const t=new Headers;return oe(t)},arguments)},__wbg_new_5f486cdf45a04d78:function(t){const e=new Uint8Array(Q(t));return oe(e)},__wbg_new_ab79df5bd7c26067:function(){const t=new Object;return oe(t)},__wbg_new_c518c60af666645b:function(){return Re(function(){const t=new AbortController;return oe(t)},arguments)},__wbg_new_d15cb560a6a0e5f0:function(t,e){const n=new Error(Ur(t,e));return oe(n)},__wbg_new_from_slice_22da9388ac046e50:function(t,e){const n=new Uint8Array(Ys(t,e));return oe(n)},__wbg_new_typed_aaaeaf29cf802876:function(t,e){try{var n={a:t,b:e},r=(s,o)=>{const a=n.a;n.a=0;try{return hI(a,n.b,s,o)}finally{n.a=a}};const i=new Promise(r);return oe(i)}finally{n.a=n.b=0}},__wbg_new_with_byte_offset_and_length_b2ec5bf7b2f35743:function(t,e,n){const r=new Uint8Array(Q(t),e>>>0,n>>>0);return oe(r)},__wbg_new_with_length_825018a1616e9e55:function(t){const e=new Uint8Array(t>>>0);return oe(e)},__wbg_new_with_str_and_init_b4b54d1a819bc724:function(){return Re(function(t,e,n){const r=new Request(Ur(t,e),Q(n));return oe(r)},arguments)},__wbg_next_11b99ee6237339e3:function(){return Re(function(t){const e=Q(t).next();return oe(e)},arguments)},__wbg_next_e01a967809d1aa68:function(t){const e=Q(t).next;return oe(e)},__wbg_node_84ea875411254db1:function(t){const e=Q(t).node;return oe(e)},__wbg_now_16f0c993d5dd6c27:function(){return Date.now()},__wbg_now_55c5352b4b61d145:function(t){return Q(t).now()},__wbg_performance_aa4d78060a5b8a2f:function(t){const e=Q(t).performance;return oe(e)},__wbg_process_44c7a14e11e9f69e:function(t){const e=Q(t).process;return oe(e)},__wbg_prototypesetcall_d62e5099504357e6:function(t,e,n){Uint8Array.prototype.set.call(Ys(t,e),Q(n))},__wbg_queueMicrotask_0c399741342fb10f:function(t){const e=Q(t).queueMicrotask;return oe(e)},__wbg_queueMicrotask_a082d78ce798393e:function(t){queueMicrotask(Q(t))},__wbg_randomFillSync_6c25eac9869eb53c:function(){return Re(function(t,e){Q(t).randomFillSync(Pr(e))},arguments)},__wbg_require_b4edbdcf3e2a1ef0:function(){return Re(function(){const t=module.require;return oe(t)},arguments)},__wbg_resolve_ae8d83246e5bcc12:function(t){const e=Promise.resolve(Q(t));return oe(e)},__wbg_respond_e286ee502e7cf7e4:function(){return Re(function(t,e){Q(t).respond(e>>>0)},arguments)},__wbg_setTimeout_05a790c35d76ff25:function(){return Re(function(t,e,n){const r=Q(t).setTimeout(Q(e),n);return oe(r)},arguments)},__wbg_setTimeout_f757f00851f76c42:function(t,e){const n=setTimeout(Q(t),e);return oe(n)},__wbg_set_8c0b3ffcf05d61c2:function(t,e,n){Q(t).set(Ys(e,n))},__wbg_set_body_a3d856b097dfda04:function(t,e){Q(t).body=Q(e)},__wbg_set_cache_ec7e430c6056ebda:function(t,e){Q(t).cache=dI[e]},__wbg_set_credentials_ed63183445882c65:function(t,e){Q(t).credentials=pI[e]},__wbg_set_headers_3c8fecc693b75327:function(t,e){Q(t).headers=Q(e)},__wbg_set_method_8c015e8bcafd7be1:function(t,e,n){Q(t).method=Ur(e,n)},__wbg_set_mode_5a87f2c809cf37c2:function(t,e){Q(t).mode=gI[e]},__wbg_set_signal_0cebecb698f25d21:function(t,e){Q(t).signal=Q(e)},__wbg_signal_166e1da31adcac18:function(t){const e=Q(t).signal;return oe(e)},__wbg_static_accessor_GLOBAL_8adb955bd33fac2f:function(){const t=typeof global>"u"?null:global;return hi(t)?0:oe(t)},__wbg_static_accessor_GLOBAL_THIS_ad356e0db91c7913:function(){const t=typeof globalThis>"u"?null:globalThis;return hi(t)?0:oe(t)},__wbg_static_accessor_SELF_f207c857566db248:function(){const t=typeof self>"u"?null:self;return hi(t)?0:oe(t)},__wbg_static_accessor_WINDOW_bb9f1ba69d61b386:function(){const t=typeof window>"u"?null:window;return hi(t)?0:oe(t)},__wbg_status_318629ab93a22955:function(t){return Q(t).status},__wbg_stringify_5ae93966a84901ac:function(){return Re(function(t){const e=JSON.stringify(Q(t));return oe(e)},arguments)},__wbg_subarray_a068d24e39478a8a:function(t,e,n){const r=Q(t).subarray(e>>>0,n>>>0);return oe(r)},__wbg_text_372f5b91442c50f9:function(){return Re(function(t){const e=Q(t).text();return oe(e)},arguments)},__wbg_then_098abe61755d12f6:function(t,e){const n=Q(t).then(Q(e));return oe(n)},__wbg_then_9e335f6dd892bc11:function(t,e,n){const r=Q(t).then(Q(e),Q(n));return oe(r)},__wbg_url_7fefc1820fba4e0c:function(t,e){const n=Q(e).url,r=$i(n,le.__wbindgen_export,le.__wbindgen_export2),i=qr;Gn().setInt32(t+4,i,!0),Gn().setInt32(t+0,r,!0)},__wbg_value_21fc78aab0322612:function(t){const e=Q(t).value;return oe(e)},__wbg_versions_276b2795b1c6a219:function(t){const e=Q(t).versions;return oe(e)},__wbg_view_f68a712e7315f8b2:function(t){const e=Q(t).view;return hi(e)?0:oe(e)},__wbindgen_cast_0000000000000001:function(t,e){const n=Hf(t,e,le.__wasm_bindgen_func_elem_1315,uI);return oe(n)},__wbindgen_cast_0000000000000002:function(t,e){const n=Hf(t,e,le.__wasm_bindgen_func_elem_1549,fI);return oe(n)},__wbindgen_cast_0000000000000003:function(t,e){const n=Hf(t,e,le.__wasm_bindgen_func_elem_1890,lI);return oe(n)},__wbindgen_cast_0000000000000004:function(t,e){const n=Ys(t,e);return oe(n)},__wbindgen_cast_0000000000000005:function(t,e){const n=Ur(t,e);return oe(n)},__wbindgen_object_clone_ref:function(t){const e=Q(t);return oe(e)},__wbindgen_object_drop_ref:function(t){Pr(t)}}}}function uI(t,e){le.__wasm_bindgen_func_elem_1341(t,e)}function fI(t,e){le.__wasm_bindgen_func_elem_1574(t,e)}function lI(t,e,n){try{const s=le.__wbindgen_add_to_stack_pointer(-16);le.__wasm_bindgen_func_elem_2733(s,t,e,oe(n));var r=Gn().getInt32(s+4*0,!0),i=Gn().getInt32(s+4*1,!0);if(i)throw Pr(r)}finally{le.__wbindgen_add_to_stack_pointer(16)}}function hI(t,e,n,r){le.__wasm_bindgen_func_elem_2735(t,e,oe(n),oe(r))}const dI=["default","no-store","reload","no-cache","force-cache","only-if-cached"],pI=["omit","same-origin","include"],gI=["same-origin","no-cors","cors","navigate"];typeof FinalizationRegistry>"u"||new FinalizationRegistry(t=>le.__wbg_intounderlyingbytesource_free(t>>>0,1)),typeof FinalizationRegistry>"u"||new FinalizationRegistry(t=>le.__wbg_intounderlyingsink_free(t>>>0,1)),typeof FinalizationRegistry>"u"||new FinalizationRegistry(t=>le.__wbg_intounderlyingsource_free(t>>>0,1));const W1=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>le.__wbg_payjson_free(t>>>0,1));function oe(t){_s===Zn.length&&Zn.push(Zn.length+1);const e=_s;return _s=Zn[e],Zn[e]=t,e}const H1=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>t.dtor(t.a,t.b));function yI(t){t<1028||(Zn[t]=_s,_s=t)}function Ys(t,e){return t=t>>>0,Qs().subarray(t/1,t/1+e)}let li=null;function Gn(){return(li===null||li.buffer.detached===!0||li.buffer.detached===void 0&&li.buffer!==le.memory.buffer)&&(li=new DataView(le.memory.buffer)),li}function Ur(t,e){return t=t>>>0,bI(t,e)}let Js=null;function Qs(){return(Js===null||Js.byteLength===0)&&(Js=new Uint8Array(le.memory.buffer)),Js}function Q(t){return Zn[t]}function Re(t,e){try{return t.apply(this,e)}catch(n){le.__wbindgen_export3(oe(n))}}let Zn=new Array(1024).fill(void 0);Zn.push(void 0,null,!0,!1);let _s=Zn.length;function hi(t){return t==null}function Hf(t,e,n,r){const i={a:t,b:e,cnt:1,dtor:n},s=(...o)=>{i.cnt++;const a=i.a;i.a=0;try{return r(a,i.b,...o)}finally{i.a=a,s._wbg_cb_unref()}};return s._wbg_cb_unref=()=>{--i.cnt===0&&(i.dtor(i.a,i.b),i.a=0,H1.unregister(i))},H1.register(s,i,i),s}function $i(t,e,n){if(n===void 0){const a=$s.encode(t),c=e(a.length,1)>>>0;return Qs().subarray(c,c+a.length).set(a),qr=a.length,c}let r=t.length,i=e(r,1)>>>0;const s=Qs();let o=0;for(;o<r;o++){const a=t.charCodeAt(o);if(a>127)break;s[i+o]=a}if(o!==r){o!==0&&(t=t.slice(o)),i=n(i,r,r=o+t.length*3,1)>>>0;const a=Qs().subarray(i+o,i+r),c=$s.encodeInto(t,a);o+=c.written,i=n(i,r,o,1)>>>0}return qr=o,i}function Pr(t){const e=Q(t);return yI(t),e}let Fa=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});Fa.decode();const wI=2146435072;let Gf=0;function bI(t,e){return Gf+=e,Gf>=wI&&(Fa=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),Fa.decode(),Gf=e),Fa.decode(Qs().subarray(t,t+e))}const $s=new TextEncoder;"encodeInto"in $s||($s.encodeInto=function(t,e){const n=$s.encode(t);return e.set(n),{read:t.length,written:n.length}});let qr=0,le;function mI(t,e){return le=t.exports,li=null,Js=null,le}function vI(t){if(le!==void 0)return le;t!==void 0&&(Object.getPrototypeOf(t)===Object.prototype?{module:t}=t:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));const e=cI();t instanceof WebAssembly.Module||(t=new WebAssembly.Module(t));const n=new WebAssembly.Instance(t,e);return mI(n)}let G1=!1,za=null;function EI(t){if(typeof atob=="function"){const e=atob(t),n=new Uint8Array(e.length);for(let r=0;r<e.length;r++)n[r]=e.charCodeAt(r);return n}if(typeof Buffer<"u")return new Uint8Array(Buffer.from(t,"base64"));throw new Ae("INITIALIZATION_ERROR","No base64 decoder available (requires atob or Buffer)")}async function xI(t){return new Promise((e,n)=>{try{const r=Z7(Buffer.from(t));e(new Uint8Array(r))}catch(r){n(new Ae("INITIALIZATION_ERROR",`Brotli decompression failed: ${r instanceof Error?r.message:String(r)}`))}})}async function SI(){if(!G1){if(za){await za;return}za=(async()=>{const t=EI(aI),e=await xI(t);vI({module:e}),G1=!0})(),await za}}function II(){return typeof WebAssembly<"u"}class AI{constructor(e){this.payJson=null,this.initPromise=null,this.config=e}async ensureInitialized(){return this.payJson?this.payJson:(this.initPromise||(this.initPromise=this.initialize()),await this.initPromise,this.payJson)}async initialize(){try{await SI();const e=JSON.stringify({baseUrl:this.config.baseUrl,projectId:this.config.projectId,apiKey:this.config.apiKey,appId:this.config.appId,clientId:this.config.clientId,sdkName:this.config.sdkName,sdkVersion:this.config.sdkVersion,sdkPlatform:this.config.sdkPlatform,bundleId:this.config.bundleId});this.payJson=new Wf(e)}catch(e){throw new Ae("INITIALIZATION_ERROR",`Failed to initialize WASM Pay module: ${e instanceof Error?e.message:String(e)}`)}}async getPaymentOptions(e){return(await this.ensureInitialized()).get_payment_options(e)}async getRequiredPaymentActions(e){return(await this.ensureInitialized()).get_required_payment_actions(e)}async confirmPayment(e){return(await this.ensureInitialized()).confirm_payment(e)}}function BI(t){const e=new AI(t);return new K1(e)}function Z1(){return iI()?"native":!Wn()&&II()?"wasm":null}function DI(t){const e=Z1();if(!e)throw new Error("No Pay provider available. Make sure you are running in React Native with the native module installed, or in a browser/Node.js environment with WebAssembly support.");switch(e){case"native":return oI(t);case"wasm":return BI(t);default:throw new Error(`Unknown provider type: ${e}`)}}function OI(){return Z1()!==null}const X1=class{constructor(t){this.appId=t.appId,this.apiKey=t.apiKey,this.baseUrl=t.baseUrl??X7,this.logger=typeof t.logger=="string"?zl(ac({level:t.logger})):t.logger??zl(ac({level:"error"})),this.logger.trace(`${rn} initialized`);const e={baseUrl:this.baseUrl,projectId:t.appId,apiKey:t.apiKey,appId:t.appId,clientId:t.clientId,sdkName:Y7,sdkVersion:J7,sdkPlatform:Q7(),bundleId:If()??""};this.provider=DI(e),this.logger.debug(`${rn} provider initialized`)}static isAvailable(){return OI()}async getPaymentOptions(t){this.logger.debug({paymentLink:t.paymentLink,accounts:t.accounts,includePaymentInfo:t.includePaymentInfo},`${rn} getPaymentOptions`);try{const e=await this.provider.getPaymentOptions(t);return this.logger.debug({paymentId:e.paymentId,optionsCount:e.options.length},`${rn} getPaymentOptions response`),e}catch(e){throw this.logger.error({error:e},`${rn} getPaymentOptions error`),e instanceof Ae?e:new zf(String(e))}}async getRequiredPaymentActions(t){this.logger.debug({paymentId:t.paymentId,optionId:t.optionId},`${rn} getRequiredPaymentActions`);try{const e=await this.provider.getRequiredPaymentActions(t);return this.logger.debug({actionsCount:e.length},`${rn} getRequiredPaymentActions response`),e}catch(e){throw this.logger.error({error:e},`${rn} getRequiredPaymentActions error`),e instanceof Ae?e:new Mf(String(e))}}async confirmPayment(t){this.logger.debug({paymentId:t.paymentId,optionId:t.optionId,signaturesCount:t.signatures.length,hasCollectedData:!!t.collectedData},`${rn} confirmPayment`);try{const e=await this.provider.confirmPayment(t);return this.logger.debug({status:e.status,isFinal:e.isFinal},`${rn} confirmPayment response`),e}catch(e){throw this.logger.error({error:e},`${rn} confirmPayment error`),e instanceof Ae?e:new Kf(String(e))}}},Y1="wc",TI=2,Zf="WalletKit",RI=`${Y1}@2:${Zf}:`,NI={database:":memory:"},UI="request";class di{}class PI extends di{constructor(e){super()}}const J1=Y.FIVE_SECONDS,pi={pulse:"heartbeat_pulse"};class Xf extends PI{constructor(e){super(e),this.events=new $e.exports.EventEmitter,this.interval=J1,this.interval=e?.interval||J1}static async init(e){const n=new Xf(e);return await n.init(),n}async init(){await this.initialize()}stop(){clearInterval(this.intervalRef)}on(e,n){this.events.on(e,n)}once(e,n){this.events.once(e,n)}off(e,n){this.events.off(e,n)}removeListener(e,n){this.events.removeListener(e,n)}async initialize(){this.intervalRef=setInterval(()=>this.pulse(),Y.toMiliseconds(this.interval))}pulse(){this.events.emit(pi.pulse)}}const qI=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,CI=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,LI=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function VI(t,e){if(t==="__proto__"||t==="constructor"&&e&&typeof e=="object"&&"prototype"in e){kI(t);return}return e}function kI(t){console.warn(`[destr] Dropping "${t}" key to prevent prototype pollution.`)}function Ma(t,e={}){if(typeof t!="string")return t;if(t[0]==='"'&&t[t.length-1]==='"'&&t.indexOf("\\")===-1)return t.slice(1,-1);const n=t.trim();if(n.length<=9)switch(n.toLowerCase()){case"true":return!0;case"false":return!1;case"undefined":return;case"null":return null;case"nan":return Number.NaN;case"infinity":return Number.POSITIVE_INFINITY;case"-infinity":return Number.NEGATIVE_INFINITY}if(!LI.test(t)){if(e.strict)throw new SyntaxError("[destr] Invalid JSON");return t}try{if(qI.test(t)||CI.test(t)){if(e.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(t,VI)}return JSON.parse(t)}catch(r){if(e.strict)throw r;return t}}function FI(t){return!t||typeof t.then!="function"?Promise.resolve(t):t}function Ke(t,...e){try{return FI(t(...e))}catch(n){return Promise.reject(n)}}function zI(t){const e=typeof t;return t===null||e!=="object"&&e!=="function"}function MI(t){const e=Object.getPrototypeOf(t);return!e||e.isPrototypeOf(Object)}function Ka(t){if(zI(t))return String(t);if(MI(t)||Array.isArray(t))return JSON.stringify(t);if(typeof t.toJSON=="function")return Ka(t.toJSON());throw new Error("[unstorage] Cannot stringify value!")}const Yf="base64:";function KI(t){return typeof t=="string"?t:Yf+HI(t)}function jI(t){return typeof t!="string"||!t.startsWith(Yf)?t:WI(t.slice(Yf.length))}function WI(t){return globalThis.Buffer?Buffer.from(t,"base64"):Uint8Array.from(globalThis.atob(t),e=>e.codePointAt(0))}function HI(t){return globalThis.Buffer?Buffer.from(t).toString("base64"):globalThis.btoa(String.fromCodePoint(...t))}function Bt(t){return t&&t.split("?")[0]?.replace(/[/\\]/g,":").replace(/:+/g,":").replace(/^:|:$/g,"")||""}function GI(...t){return Bt(t.join(":"))}function ja(t){return t=Bt(t),t?t+":":""}function ZI(t,e){if(e===void 0)return!0;let n=0,r=t.indexOf(":");for(;r>-1;)n++,r=t.indexOf(":",r+1);return n<=e}function XI(t,e){return e?t.startsWith(e)&&t[t.length-1]!=="$":t[t.length-1]!=="$"}function RD(t){return t}const YI="memory",JI=()=>{const t=new Map;return{name:YI,getInstance:()=>t,hasItem(e){return t.has(e)},getItem(e){return t.get(e)??null},getItemRaw(e){return t.get(e)??null},setItem(e,n){t.set(e,n)},setItemRaw(e,n){t.set(e,n)},removeItem(e){t.delete(e)},getKeys(){return[...t.keys()]},clear(){t.clear()},dispose(){t.clear()}}};function QI(t={}){const e={mounts:{"":t.driver||JI()},mountpoints:[""],watching:!1,watchListeners:[],unwatch:{}},n=u=>{for(const f of e.mountpoints)if(u.startsWith(f))return{base:f,relativeKey:u.slice(f.length),driver:e.mounts[f]};return{base:"",relativeKey:u,driver:e.mounts[""]}},r=(u,f)=>e.mountpoints.filter(h=>h.startsWith(u)||f&&u.startsWith(h)).map(h=>({relativeBase:u.length>h.length?u.slice(h.length):void 0,mountpoint:h,driver:e.mounts[h]})),i=(u,f)=>{if(e.watching){f=Bt(f);for(const h of e.watchListeners)h(u,f)}},s=async()=>{if(!e.watching){e.watching=!0;for(const u in e.mounts)e.unwatch[u]=await Q1(e.mounts[u],i,u)}},o=async()=>{if(e.watching){for(const u in e.unwatch)await e.unwatch[u]();e.unwatch={},e.watching=!1}},a=(u,f,h)=>{const d=new Map,l=p=>{let w=d.get(p.base);return w||(w={driver:p.driver,base:p.base,items:[]},d.set(p.base,w)),w};for(const p of u){const w=typeof p=="string",v=Bt(w?p:p.key),O=w?void 0:p.value,P=w||!p.options?f:{...f,...p.options},A=n(v);l(A).items.push({key:v,value:O,relativeKey:A.relativeKey,options:P})}return Promise.all([...d.values()].map(p=>h(p))).then(p=>p.flat())},c={hasItem(u,f={}){u=Bt(u);const{relativeKey:h,driver:d}=n(u);return Ke(d.hasItem,h,f)},getItem(u,f={}){u=Bt(u);const{relativeKey:h,driver:d}=n(u);return Ke(d.getItem,h,f).then(l=>Ma(l))},getItems(u,f={}){return a(u,f,h=>h.driver.getItems?Ke(h.driver.getItems,h.items.map(d=>({key:d.relativeKey,options:d.options})),f).then(d=>d.map(l=>({key:GI(h.base,l.key),value:Ma(l.value)}))):Promise.all(h.items.map(d=>Ke(h.driver.getItem,d.relativeKey,d.options).then(l=>({key:d.key,value:Ma(l)})))))},getItemRaw(u,f={}){u=Bt(u);const{relativeKey:h,driver:d}=n(u);return d.getItemRaw?Ke(d.getItemRaw,h,f):Ke(d.getItem,h,f).then(l=>jI(l))},async setItem(u,f,h={}){if(f===void 0)return c.removeItem(u);u=Bt(u);const{relativeKey:d,driver:l}=n(u);l.setItem&&(await Ke(l.setItem,d,Ka(f),h),l.watch||i("update",u))},async setItems(u,f){await a(u,f,async h=>{if(h.driver.setItems)return Ke(h.driver.setItems,h.items.map(d=>({key:d.relativeKey,value:Ka(d.value),options:d.options})),f);h.driver.setItem&&await Promise.all(h.items.map(d=>Ke(h.driver.setItem,d.relativeKey,Ka(d.value),d.options)))})},async setItemRaw(u,f,h={}){if(f===void 0)return c.removeItem(u,h);u=Bt(u);const{relativeKey:d,driver:l}=n(u);if(l.setItemRaw)await Ke(l.setItemRaw,d,f,h);else if(l.setItem)await Ke(l.setItem,d,KI(f),h);else return;l.watch||i("update",u)},async removeItem(u,f={}){typeof f=="boolean"&&(f={removeMeta:f}),u=Bt(u);const{relativeKey:h,driver:d}=n(u);d.removeItem&&(await Ke(d.removeItem,h,f),(f.removeMeta||f.removeMata)&&await Ke(d.removeItem,h+"$",f),d.watch||i("remove",u))},async getMeta(u,f={}){typeof f=="boolean"&&(f={nativeOnly:f}),u=Bt(u);const{relativeKey:h,driver:d}=n(u),l=Object.create(null);if(d.getMeta&&Object.assign(l,await Ke(d.getMeta,h,f)),!f.nativeOnly){const p=await Ke(d.getItem,h+"$",f).then(w=>Ma(w));p&&typeof p=="object"&&(typeof p.atime=="string"&&(p.atime=new Date(p.atime)),typeof p.mtime=="string"&&(p.mtime=new Date(p.mtime)),Object.assign(l,p))}return l},setMeta(u,f,h={}){return this.setItem(u+"$",f,h)},removeMeta(u,f={}){return this.removeItem(u+"$",f)},async getKeys(u,f={}){u=ja(u);const h=r(u,!0);let d=[];const l=[];let p=!0;for(const v of h){v.driver.flags?.maxDepth||(p=!1);const O=await Ke(v.driver.getKeys,v.relativeBase,f);for(const P of O){const A=v.mountpoint+Bt(P);d.some(I=>A.startsWith(I))||l.push(A)}d=[v.mountpoint,...d.filter(P=>!P.startsWith(v.mountpoint))]}const w=f.maxDepth!==void 0&&!p;return l.filter(v=>(!w||ZI(v,f.maxDepth))&&XI(v,u))},async clear(u,f={}){u=ja(u),await Promise.all(r(u,!1).map(async h=>{if(h.driver.clear)return Ke(h.driver.clear,h.relativeBase,f);if(h.driver.removeItem){const d=await h.driver.getKeys(h.relativeBase||"",f);return Promise.all(d.map(l=>h.driver.removeItem(l,f)))}}))},async dispose(){await Promise.all(Object.values(e.mounts).map(u=>_1(u)))},async watch(u){return await s(),e.watchListeners.push(u),async()=>{e.watchListeners=e.watchListeners.filter(f=>f!==u),e.watchListeners.length===0&&await o()}},async unwatch(){e.watchListeners=[],await o()},mount(u,f){if(u=ja(u),u&&e.mounts[u])throw new Error(`already mounted at ${u}`);return u&&(e.mountpoints.push(u),e.mountpoints.sort((h,d)=>d.length-h.length)),e.mounts[u]=f,e.watching&&Promise.resolve(Q1(f,i,u)).then(h=>{e.unwatch[u]=h}).catch(console.error),c},async unmount(u,f=!0){u=ja(u),!(!u||!e.mounts[u])&&(e.watching&&u in e.unwatch&&(e.unwatch[u]?.(),delete e.unwatch[u]),f&&await _1(e.mounts[u]),e.mountpoints=e.mountpoints.filter(h=>h!==u),delete e.mounts[u])},getMount(u=""){u=Bt(u)+":";const f=n(u);return{driver:f.driver,base:f.base}},getMounts(u="",f={}){return u=Bt(u),r(u,f.parents).map(d=>({driver:d.driver,base:d.mountpoint}))},keys:(u,f={})=>c.getKeys(u,f),get:(u,f={})=>c.getItem(u,f),set:(u,f,h={})=>c.setItem(u,f,h),has:(u,f={})=>c.hasItem(u,f),del:(u,f={})=>c.removeItem(u,f),remove:(u,f={})=>c.removeItem(u,f)};return c}function Q1(t,e,n){return t.watch?t.watch((r,i)=>e(r,n+i)):()=>{}}async function _1(t){typeof t.dispose=="function"&&await Ke(t.dispose)}function gi(t){return new Promise((e,n)=>{t.oncomplete=t.onsuccess=()=>e(t.result),t.onabort=t.onerror=()=>n(t.error)})}function $1(t,e){let n;const r=()=>{if(n)return n;const i=indexedDB.open(t);return i.onupgradeneeded=()=>i.result.createObjectStore(e),n=gi(i),n.then(s=>{s.onclose=()=>n=void 0},()=>{}),n};return(i,s)=>r().then(o=>s(o.transaction(e,i).objectStore(e)))}let Jf;function eo(){return Jf||(Jf=$1("keyval-store","keyval")),Jf}function ey(t,e=eo()){return e("readonly",n=>gi(n.get(t)))}function _I(t,e,n=eo()){return n("readwrite",r=>(r.put(e,t),gi(r.transaction)))}function $I(t,e=eo()){return e("readwrite",n=>(n.delete(t),gi(n.transaction)))}function e9(t=eo()){return t("readwrite",e=>(e.clear(),gi(e.transaction)))}function t9(t,e){return t.openCursor().onsuccess=function(){this.result&&(e(this.result),this.result.continue())},gi(t.transaction)}function n9(t=eo()){return t("readonly",e=>{if(e.getAllKeys)return gi(e.getAllKeys());const n=[];return t9(e,r=>n.push(r.key)).then(()=>n)})}const r9="idb-keyval";var i9=(t={})=>{const e=t.base&&t.base.length>0?`${t.base}:`:"",n=i=>e+i;let r;return t.dbName&&t.storeName&&(r=$1(t.dbName,t.storeName)),{name:r9,options:t,async hasItem(i){return!(typeof await ey(n(i),r)>"u")},async getItem(i){return await ey(n(i),r)??null},setItem(i,s){return _I(n(i),s,r)},removeItem(i){return $I(n(i),r)},getKeys(){return n9(r)},clear(){return e9(r)}}};const s9="WALLET_CONNECT_V2_INDEXED_DB",o9="keyvaluestorage";class a9{constructor(){this.indexedDb=QI({driver:i9({dbName:s9,storeName:o9})})}async getKeys(){return this.indexedDb.getKeys()}async getEntries(){return(await this.indexedDb.getItems(await this.indexedDb.getKeys())).map(e=>[e.key,e.value])}async getItem(e){const n=await this.indexedDb.getItem(e);if(n!==null)return n}async setItem(e,n){await this.indexedDb.setItem(e,Ps(n))}async removeItem(e){await this.indexedDb.removeItem(e)}}var Qf=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Wa={exports:{}};(function(){let t;function e(){}t=e,t.prototype.getItem=function(n){return this.hasOwnProperty(n)?String(this[n]):null},t.prototype.setItem=function(n,r){this[n]=String(r)},t.prototype.removeItem=function(n){delete this[n]},t.prototype.clear=function(){const n=this;Object.keys(n).forEach(function(r){n[r]=void 0,delete n[r]})},t.prototype.key=function(n){return n=n||0,Object.keys(this)[n]},t.prototype.__defineGetter__("length",function(){return Object.keys(this).length}),typeof Qf<"u"&&Qf.localStorage?Wa.exports=Qf.localStorage:typeof window<"u"&&window.localStorage?Wa.exports=window.localStorage:Wa.exports=new e})();function c9(t){var e;return[t[0],Ki((e=t[1])!=null?e:"")]}class u9{constructor(){this.localStorage=Wa.exports}async getKeys(){return Object.keys(this.localStorage)}async getEntries(){return Object.entries(this.localStorage).map(c9)}async getItem(e){const n=this.localStorage.getItem(e);if(n!==null)return Ki(n)}async setItem(e,n){this.localStorage.setItem(e,Ps(n))}async removeItem(e){this.localStorage.removeItem(e)}}const f9="wc_storage_version",ty=1,l9=async(t,e,n)=>{const r=f9,i=await e.getItem(r);if(i&&i>=ty){n(e);return}const s=await t.getKeys();if(!s.length){n(e);return}const o=[];for(;s.length;){const a=s.shift();if(!a)continue;const c=a.toLowerCase();if(c.includes("wc@")||c.includes("walletconnect")||c.includes("wc_")||c.includes("wallet_connect")){const u=await t.getItem(a);await e.setItem(a,u),o.push(a)}}await e.setItem(r,ty),n(e),h9(t,o)},h9=async(t,e)=>{e.length&&e.forEach(async n=>{await t.removeItem(n)})};class d9{constructor(){this.initialized=!1,this.setInitialized=n=>{this.storage=n,this.initialized=!0};const e=new u9;this.storage=e;try{const n=new a9;l9(e,n,this.setInitialized)}catch{this.initialized=!0}}async getKeys(){return await this.initialize(),this.storage.getKeys()}async getEntries(){return await this.initialize(),this.storage.getEntries()}async getItem(e){return await this.initialize(),this.storage.getItem(e)}async setItem(e,n){return await this.initialize(),this.storage.setItem(e,n)}async removeItem(e){return await this.initialize(),this.storage.removeItem(e)}async initialize(){this.initialized||await new Promise(e=>{const n=setInterval(()=>{this.initialized&&(clearInterval(n),e())},20)})}}class p9 extends di{constructor(e){super(),this.opts=e,this.protocol="wc",this.version=2}}class g9 extends di{constructor(e,n){super(),this.core=e,this.logger=n,this.records=new Map}}class y9{constructor(e,n){this.logger=e,this.core=n}}class w9 extends di{constructor(e,n){super(),this.relayer=e,this.logger=n}}class b9 extends di{constructor(e){super()}}class m9{constructor(e,n,r,i){this.core=e,this.logger=n,this.name=r}}class v9 extends di{constructor(e,n){super(),this.relayer=e,this.logger=n}}class E9 extends di{constructor(e,n){super(),this.core=e,this.logger=n}}class x9{constructor(e,n,r){this.core=e,this.logger=n,this.store=r}}class S9{constructor(e,n){this.projectId=e,this.logger=n}}class I9{constructor(e,n,r){this.core=e,this.logger=n,this.telemetryEnabled=r}}class A9{constructor(e){this.opts=e,this.protocol="wc",this.version=2}}class B9{constructor(e){this.client=e}}const D9="PARSE_ERROR",O9="INVALID_REQUEST",T9="METHOD_NOT_FOUND",R9="INVALID_PARAMS",ny="INTERNAL_ERROR",_f="SERVER_ERROR",N9=[-32700,-32600,-32601,-32602,-32603],to={[D9]:{code:-32700,message:"Parse error"},[O9]:{code:-32600,message:"Invalid Request"},[T9]:{code:-32601,message:"Method not found"},[R9]:{code:-32602,message:"Invalid params"},[ny]:{code:-32603,message:"Internal error"},[_f]:{code:-32e3,message:"Server error"}},ry=_f;function U9(t){return N9.includes(t)}function iy(t){return Object.keys(to).includes(t)?to[t]:to[ry]}function P9(t){const e=Object.values(to).find(n=>n.code===t);return e||to[ry]}function q9(t,e,n){return t.message.includes("getaddrinfo ENOTFOUND")||t.message.includes("connect ECONNREFUSED")?new Error(`Unavailable ${n} RPC url at ${e}`):t}var sy={};/*! *****************************************************************************
|
|
30
30
|
Copyright (c) Microsoft Corporation.
|
|
31
31
|
|
|
32
32
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -39,5 +39,5 @@ ${t.length}`,n=new TextEncoder().encode(e+t);return"0x"+Ve(Ih(n),"base16")}async
|
|
|
39
39
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
40
40
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
41
41
|
PERFORMANCE OF THIS SOFTWARE.
|
|
42
|
-
***************************************************************************** */var Xf=function(t,e){return Xf=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)r.hasOwnProperty(i)&&(n[i]=r[i])},Xf(t,e)};function UA(t,e){Xf(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}var Qf=function(){return Qf=Object.assign||function(e){for(var n,r=1,i=arguments.length;r<i;r++){n=arguments[r];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},Qf.apply(this,arguments)};function CA(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n}function PA(t,e,n,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,n):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(t,e,n,r);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(i<3?o(s):i>3?o(e,n,s):o(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s}function qA(t,e){return function(n,r){e(n,r,t)}}function FA(t,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(t,e)}function kA(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(f){try{u(r.next(f))}catch(h){o(h)}}function c(f){try{u(r.throw(f))}catch(h){o(h)}}function u(f){f.done?s(f.value):i(f.value).then(a,c)}u((r=r.apply(t,e||[])).next())})}function LA(t,e){var n={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},r,i,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(u){return function(f){return c([u,f])}}function c(u){if(r)throw new TypeError("Generator is already executing.");for(;n;)try{if(r=1,i&&(s=u[0]&2?i.return:u[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,u[1])).done)return s;switch(i=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return n.label++,{value:u[1],done:!1};case 5:n.label++,i=u[1],u=[0];continue;case 7:u=n.ops.pop(),n.trys.pop();continue;default:if(s=n.trys,!(s=s.length>0&&s[s.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){n.label=u[1];break}if(u[0]===6&&n.label<s[1]){n.label=s[1],s=u;break}if(s&&n.label<s[2]){n.label=s[2],n.ops.push(u);break}s[2]&&n.ops.pop(),n.trys.pop();continue}u=e.call(t,n)}catch(f){u=[6,f],i=0}finally{r=s=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function MA(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}function VA(t,e){for(var n in t)n!=="default"&&!e.hasOwnProperty(n)&&(e[n]=t[n])}function _f(t){var e=typeof Symbol=="function"&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function iw(t,e){var n=typeof Symbol=="function"&&t[Symbol.iterator];if(!n)return t;var r=n.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=r.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return s}function zA(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(iw(arguments[e]));return t}function jA(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;for(var r=Array(t),i=0,e=0;e<n;e++)for(var s=arguments[e],o=0,a=s.length;o<a;o++,i++)r[i]=s[o];return r}function eo(t){return this instanceof eo?(this.v=t,this):new eo(t)}function WA(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),i,s=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(d){r[d]&&(i[d]=function(l){return new Promise(function(p,y){s.push([d,l,p,y])>1||a(d,l)})})}function a(d,l){try{c(r[d](l))}catch(p){h(s[0][3],p)}}function c(d){d.value instanceof eo?Promise.resolve(d.value.v).then(u,f):h(s[0][2],d)}function u(d){a("next",d)}function f(d){a("throw",d)}function h(d,l){d(l),s.shift(),s.length&&a(s[0][0],s[0][1])}}function HA(t){var e,n;return e={},r("next"),r("throw",function(i){throw i}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(i,s){e[i]=t[i]?function(o){return(n=!n)?{value:eo(t[i](o)),done:i==="return"}:s?s(o):o}:s}}function YA(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof _f=="function"?_f(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(s){n[s]=t[s]&&function(o){return new Promise(function(a,c){o=t[s](o),i(a,c,o.done,o.value)})}}function i(s,o,a,c){Promise.resolve(c).then(function(u){s({value:u,done:a})},o)}}function GA(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function KA(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function ZA(t){return t&&t.__esModule?t:{default:t}}function JA(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function XA(t,e,n){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,n),n}var QA=Object.freeze({__proto__:null,__extends:UA,get __assign(){return Qf},__rest:CA,__decorate:PA,__param:qA,__metadata:FA,__awaiter:kA,__generator:LA,__createBinding:MA,__exportStar:VA,__values:_f,__read:iw,__spread:zA,__spreadArrays:jA,__await:eo,__asyncGenerator:WA,__asyncDelegator:HA,__asyncValues:YA,__makeTemplateObject:GA,__importStar:KA,__importDefault:ZA,__classPrivateFieldGet:JA,__classPrivateFieldSet:XA}),_A=El(QA),Kn={},sw;function $A(){if(sw)return Kn;sw=1,Object.defineProperty(Kn,"__esModule",{value:!0}),Kn.isBrowserCryptoAvailable=Kn.getSubtleCrypto=Kn.getBrowerCrypto=void 0;function t(){return cn?.crypto||cn?.msCrypto||{}}Kn.getBrowerCrypto=t;function e(){const r=t();return r.subtle||r.webkitSubtle}Kn.getSubtleCrypto=e;function n(){return!!t()&&!!e()}return Kn.isBrowserCryptoAvailable=n,Kn}var Zn={},ow;function eO(){if(ow)return Zn;ow=1,Object.defineProperty(Zn,"__esModule",{value:!0}),Zn.isBrowser=Zn.isNode=Zn.isReactNative=void 0;function t(){return typeof document>"u"&&typeof navigator<"u"&&navigator.product==="ReactNative"}Zn.isReactNative=t;function e(){return typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"}Zn.isNode=e;function n(){return!t()&&!e()}return Zn.isBrowser=n,Zn}(function(t){Object.defineProperty(t,"__esModule",{value:!0});const e=_A;e.__exportStar($A(),t),e.__exportStar(eO(),t)})(rw);function wn(t=3){const e=Date.now()*Math.pow(10,t),n=Math.floor(Math.random()*Math.pow(10,t));return e+n}function Pr(t=6){return BigInt(wn(t))}function Jn(t,e,n){return{id:n||wn(),jsonrpc:"2.0",method:t,params:e}}function Wa(t,e){return{id:t,jsonrpc:"2.0",result:e}}function $f(t,e,n){return{id:t,jsonrpc:"2.0",error:tO(e,n)}}function tO(t,e){return typeof t>"u"?nw(ew):(typeof t=="string"&&(t=Object.assign(Object.assign({},nw(Jf)),{message:t})),typeof e<"u"&&(t.data=e),RA(t.code)&&(t=TA(t.code)),t)}class nO{}class rO extends nO{constructor(){super()}}class iO extends rO{constructor(e){super()}}const sO="^wss?:";function oO(t){const e=t.match(new RegExp(/^\w+:/,"gi"));if(!(!e||!e.length))return e[0]}function aO(t,e){const n=oO(t);return typeof n>"u"?!1:new RegExp(e).test(n)}function aw(t){return aO(t,sO)}function cO(t){return new RegExp("wss?://localhost(:d{2,5})?").test(t)}function cw(t){return typeof t=="object"&&"id"in t&&"jsonrpc"in t&&t.jsonrpc==="2.0"}function el(t){return cw(t)&&"method"in t}function Ha(t){return cw(t)&&(yn(t)||Yt(t))}function yn(t){return"result"in t}function Yt(t){return"error"in t}class uO extends iO{constructor(e){super(e),this.events=new $e.exports.EventEmitter,this.hasRegisteredEventListeners=!1,this.connection=this.setConnection(e),this.connection.connected&&this.registerEventListeners()}async connect(e=this.connection){await this.open(e)}async disconnect(){await this.close()}on(e,n){this.events.on(e,n)}once(e,n){this.events.once(e,n)}off(e,n){this.events.off(e,n)}removeListener(e,n){this.events.removeListener(e,n)}async request(e,n){return this.requestStrict(Jn(e.method,e.params||[],e.id||Pr().toString()),n)}async requestStrict(e,n){return new Promise(async(r,i)=>{if(!this.connection.connected)try{await this.open()}catch(s){i(s)}this.events.on(`${e.id}`,s=>{Yt(s)?i(s.error):r(s.result)});try{await this.connection.send(e,n)}catch(s){i(s)}})}setConnection(e=this.connection){return e}onPayload(e){this.events.emit("payload",e),Ha(e)?this.events.emit(`${e.id}`,e):this.events.emit("message",{type:e.method,data:e.params})}onClose(e){e&&e.code===3e3&&this.events.emit("error",new Error(`WebSocket connection closed abnormally with code: ${e.code} ${e.reason?`(${e.reason})`:""}`)),this.events.emit("disconnect")}async open(e=this.connection){this.connection===e&&this.connection.connected||(this.connection.connected&&this.close(),typeof e=="string"&&(await this.connection.open(e),e=this.connection),this.connection=this.setConnection(e),await this.connection.open(),this.registerEventListeners(),this.events.emit("connect"))}async close(){await this.connection.close()}registerEventListeners(){this.hasRegisteredEventListeners||(this.connection.on("payload",e=>this.onPayload(e)),this.connection.on("close",e=>this.onClose(e)),this.connection.on("error",e=>this.events.emit("error",e)),this.connection.on("register_error",e=>this.onClose()),this.hasRegisteredEventListeners=!0)}}const fO=()=>typeof WebSocket<"u"?WebSocket:typeof global<"u"&&typeof global.WebSocket<"u"?global.WebSocket:typeof window<"u"&&typeof window.WebSocket<"u"?window.WebSocket:typeof self<"u"&&typeof self.WebSocket<"u"?self.WebSocket:require("ws"),lO=()=>typeof WebSocket<"u"||typeof global<"u"&&typeof global.WebSocket<"u"||typeof window<"u"&&typeof window.WebSocket<"u"||typeof self<"u"&&typeof self.WebSocket<"u",uw=t=>t.split("?")[0],fw=10,hO=fO();class dO{constructor(e){if(this.url=e,this.events=new $e.exports.EventEmitter,this.registering=!1,!aw(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);this.url=e}get connected(){return typeof this.socket<"u"}get connecting(){return this.registering}on(e,n){this.events.on(e,n)}once(e,n){this.events.once(e,n)}off(e,n){this.events.off(e,n)}removeListener(e,n){this.events.removeListener(e,n)}async open(e=this.url){await this.register(e)}async close(){return new Promise((e,n)=>{if(typeof this.socket>"u"){n(new Error("Connection already closed"));return}this.socket.onclose=r=>{this.onClose(r),e()},this.socket.close()})}async send(e){typeof this.socket>"u"&&(this.socket=await this.register());try{this.socket.send(Us(e))}catch(n){this.onError(e.id,n)}}register(e=this.url){if(!aw(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);if(this.registering){const n=this.events.getMaxListeners();return(this.events.listenerCount("register_error")>=n||this.events.listenerCount("open")>=n)&&this.events.setMaxListeners(n+1),new Promise((r,i)=>{this.events.once("register_error",s=>{this.resetMaxListeners(),i(s)}),this.events.once("open",()=>{if(this.resetMaxListeners(),typeof this.socket>"u")return i(new Error("WebSocket connection is missing or invalid"));r(this.socket)})})}return this.url=e,this.registering=!0,new Promise((n,r)=>{const i=rw.isReactNative()?void 0:{rejectUnauthorized:!cO(e)},s=new hO(e,[],i);lO()?s.onerror=o=>{const a=o;r(this.emitError(a.error))}:s.on("error",o=>{r(this.emitError(o))}),s.onopen=()=>{this.onOpen(s),n(s)}})}onOpen(e){e.onmessage=n=>this.onPayload(n),e.onclose=n=>this.onClose(n),this.socket=e,this.registering=!1,this.events.emit("open")}onClose(e){this.socket=void 0,this.registering=!1,this.events.emit("close",e)}onPayload(e){if(typeof e.data>"u")return;const n=typeof e.data=="string"?zi(e.data):e.data;this.events.emit("payload",n)}onError(e,n){const r=this.parseError(n),i=r.message||r.toString(),s=$f(e,i);this.events.emit("payload",s)}parseError(e,n=this.url){return NA(e,uw(n),"WS")}resetMaxListeners(){this.events.getMaxListeners()>fw&&this.events.setMaxListeners(fw)}emitError(e){const n=this.parseError(new Error(e?.message||`WebSocket connection failed for host: ${uw(this.url)}`));return this.events.emit("register_error",n),n}}function pO(t,e){return t===e||Number.isNaN(t)&&Number.isNaN(e)}function lw(t){return Object.getOwnPropertySymbols(t).filter(e=>Object.prototype.propertyIsEnumerable.call(t,e))}function hw(t){return t==null?t===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}const gO="[object RegExp]",wO="[object String]",yO="[object Number]",bO="[object Boolean]",dw="[object Arguments]",mO="[object Symbol]",vO="[object Date]",EO="[object Map]",xO="[object Set]",SO="[object Array]",IO="[object Function]",AO="[object ArrayBuffer]",tl="[object Object]",OO="[object Error]",BO="[object DataView]",DO="[object Uint8Array]",RO="[object Uint8ClampedArray]",TO="[object Uint16Array]",NO="[object Uint32Array]",UO="[object BigUint64Array]",CO="[object Int8Array]",PO="[object Int16Array]",qO="[object Int32Array]",FO="[object BigInt64Array]",kO="[object Float32Array]",LO="[object Float64Array]";function pw(t){if(!t||typeof t!="object")return!1;const e=Object.getPrototypeOf(t);return e===null||e===Object.prototype||Object.getPrototypeOf(e)===null?Object.prototype.toString.call(t)==="[object Object]":!1}function MO(t,e,n){return to(t,e,void 0,void 0,void 0,void 0,n)}function to(t,e,n,r,i,s,o){const a=o(t,e,n,r,i,s);if(a!==void 0)return a;if(typeof t==typeof e)switch(typeof t){case"bigint":case"string":case"boolean":case"symbol":case"undefined":return t===e;case"number":return t===e||Object.is(t,e);case"function":return t===e;case"object":return no(t,e,s,o)}return no(t,e,s,o)}function no(t,e,n,r){if(Object.is(t,e))return!0;let i=hw(t),s=hw(e);if(i===dw&&(i=tl),s===dw&&(s=tl),i!==s)return!1;switch(i){case wO:return t.toString()===e.toString();case yO:{const c=t.valueOf(),u=e.valueOf();return pO(c,u)}case bO:case vO:case mO:return Object.is(t.valueOf(),e.valueOf());case gO:return t.source===e.source&&t.flags===e.flags;case IO:return t===e}n=n??new Map;const o=n.get(t),a=n.get(e);if(o!=null&&a!=null)return o===e;n.set(t,e),n.set(e,t);try{switch(i){case EO:{if(t.size!==e.size)return!1;for(const[c,u]of t.entries())if(!e.has(c)||!to(u,e.get(c),c,t,e,n,r))return!1;return!0}case xO:{if(t.size!==e.size)return!1;const c=Array.from(t.values()),u=Array.from(e.values());for(let f=0;f<c.length;f++){const h=c[f],d=u.findIndex(l=>to(h,l,void 0,t,e,n,r));if(d===-1)return!1;u.splice(d,1)}return!0}case SO:case DO:case RO:case TO:case NO:case UO:case CO:case PO:case qO:case FO:case kO:case LO:{if(typeof Buffer<"u"&&Buffer.isBuffer(t)!==Buffer.isBuffer(e)||t.length!==e.length)return!1;for(let c=0;c<t.length;c++)if(!to(t[c],e[c],c,t,e,n,r))return!1;return!0}case AO:return t.byteLength!==e.byteLength?!1:no(new Uint8Array(t),new Uint8Array(e),n,r);case BO:return t.byteLength!==e.byteLength||t.byteOffset!==e.byteOffset?!1:no(new Uint8Array(t),new Uint8Array(e),n,r);case OO:return t.name===e.name&&t.message===e.message;case tl:{if(!(no(t.constructor,e.constructor,n,r)||pw(t)&&pw(e)))return!1;const u=[...Object.keys(t),...lw(t)],f=[...Object.keys(e),...lw(e)];if(u.length!==f.length)return!1;for(let h=0;h<u.length;h++){const d=u[h],l=t[d];if(!Object.hasOwn(e,d))return!1;const p=e[d];if(!to(l,p,d,t,e,n,r))return!1}return!0}default:return!1}}finally{n.delete(t),n.delete(e)}}function VO(){}function zO(t,e){return MO(t,e,VO)}const gw="wc",ww=2,Ya="core",bn=`${gw}@2:${Ya}:`,jO={name:Ya,logger:"error"},WO={database:":memory:"},HO="crypto",yw="client_ed25519_seed",YO=J.ONE_DAY,GO="keychain",KO="0.3",ZO="messages",JO="0.3",XO=J.SIX_HOURS,QO="publisher",bw="irn",_O="error",mw="wss://relay.walletconnect.org",$O="relayer",Ne={message:"relayer_message",message_ack:"relayer_message_ack",connect:"relayer_connect",disconnect:"relayer_disconnect",error:"relayer_error",connection_stalled:"relayer_connection_stalled",transport_closed:"relayer_transport_closed",publish:"relayer_publish"},e9="_subscription",Gt={payload:"payload",connect:"connect",disconnect:"disconnect",error:"error"},t9=.1,nl="2.23.9",Ie={link_mode:"link_mode",relay:"relay"},Ga={inbound:"inbound",outbound:"outbound"},n9="0.3",r9="WALLETCONNECT_CLIENT_ID",vw="WALLETCONNECT_LINK_MODE_APPS",Ft={created:"subscription_created",deleted:"subscription_deleted",expired:"subscription_expired",disabled:"subscription_disabled",sync:"subscription_sync",resubscribed:"subscription_resubscribed"},i9="subscription",s9="0.3",o9="pairing",a9="0.3",ro={wc_pairingDelete:{req:{ttl:J.ONE_DAY,prompt:!1,tag:1e3},res:{ttl:J.ONE_DAY,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:J.THIRTY_SECONDS,prompt:!1,tag:1002},res:{ttl:J.THIRTY_SECONDS,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:J.ONE_DAY,prompt:!1,tag:0},res:{ttl:J.ONE_DAY,prompt:!1,tag:0}}},gi={create:"pairing_create",expire:"pairing_expire",delete:"pairing_delete",ping:"pairing_ping"},sn={created:"history_created",updated:"history_updated",deleted:"history_deleted",sync:"history_sync"},c9="history",u9="0.3",f9="expirer",Kt={created:"expirer_created",deleted:"expirer_deleted",expired:"expirer_expired",sync:"expirer_sync"},l9="0.3",h9="verify-api",d9="https://verify.walletconnect.com",Ew="https://verify.walletconnect.org",io=Ew,p9=`${io}/v3`,g9=[d9,Ew],w9="echo",y9="https://echo.walletconnect.com",mn={pairing_started:"pairing_started",pairing_uri_validation_success:"pairing_uri_validation_success",pairing_uri_not_expired:"pairing_uri_not_expired",store_new_pairing:"store_new_pairing",subscribing_pairing_topic:"subscribing_pairing_topic",subscribe_pairing_topic_success:"subscribe_pairing_topic_success",existing_pairing:"existing_pairing",pairing_not_expired:"pairing_not_expired",emit_inactive_pairing:"emit_inactive_pairing",emit_session_proposal:"emit_session_proposal",subscribing_to_pairing_topic:"subscribing_to_pairing_topic"},Xn={no_wss_connection:"no_wss_connection",no_internet_connection:"no_internet_connection",malformed_pairing_uri:"malformed_pairing_uri",active_pairing_already_exists:"active_pairing_already_exists",subscribe_pairing_topic_failure:"subscribe_pairing_topic_failure",pairing_expired:"pairing_expired",proposal_expired:"proposal_expired",proposal_listener_not_found:"proposal_listener_not_found"},on={session_approve_started:"session_approve_started",proposal_not_expired:"proposal_not_expired",session_namespaces_validation_success:"session_namespaces_validation_success",create_session_topic:"create_session_topic",subscribing_session_topic:"subscribing_session_topic",subscribe_session_topic_success:"subscribe_session_topic_success",publishing_session_approve:"publishing_session_approve",session_approve_publish_success:"session_approve_publish_success",store_session:"store_session",publishing_session_settle:"publishing_session_settle",session_settle_publish_success:"session_settle_publish_success",session_request_response_started:"session_request_response_started",session_request_response_validation_success:"session_request_response_validation_success",session_request_response_publish_started:"session_request_response_publish_started"},wi={no_internet_connection:"no_internet_connection",no_wss_connection:"no_wss_connection",proposal_expired:"proposal_expired",subscribe_session_topic_failure:"subscribe_session_topic_failure",session_approve_publish_failure:"session_approve_publish_failure",session_settle_publish_failure:"session_settle_publish_failure",session_approve_namespace_validation_failure:"session_approve_namespace_validation_failure",proposal_not_found:"proposal_not_found",session_request_response_validation_failure:"session_request_response_validation_failure",session_request_response_publish_failure:"session_request_response_publish_failure"},yi={authenticated_session_approve_started:"authenticated_session_approve_started",authenticated_session_not_expired:"authenticated_session_not_expired",chains_caip2_compliant:"chains_caip2_compliant",chains_evm_compliant:"chains_evm_compliant",create_authenticated_session_topic:"create_authenticated_session_topic",cacaos_verified:"cacaos_verified",store_authenticated_session:"store_authenticated_session",subscribing_authenticated_session_topic:"subscribing_authenticated_session_topic",subscribe_authenticated_session_topic_success:"subscribe_authenticated_session_topic_success",publishing_authenticated_session_approve:"publishing_authenticated_session_approve",authenticated_session_approve_publish_success:"authenticated_session_approve_publish_success"},so={no_internet_connection:"no_internet_connection",no_wss_connection:"no_wss_connection",missing_session_authenticate_request:"missing_session_authenticate_request",session_authenticate_request_expired:"session_authenticate_request_expired",chains_caip2_compliant_failure:"chains_caip2_compliant_failure",chains_evm_compliant_failure:"chains_evm_compliant_failure",invalid_cacao:"invalid_cacao",subscribe_authenticated_session_topic_failure:"subscribe_authenticated_session_topic_failure",authenticated_session_approve_publish_failure:"authenticated_session_approve_publish_failure",authenticated_session_pending_request_not_found:"authenticated_session_pending_request_not_found"},b9=.1,m9="event-client",v9=86400,E9="https://pulse.walletconnect.org/batch";class x9{constructor(e,n){this.core=e,this.logger=n,this.keychain=new Map,this.name=GO,this.version=KO,this.initialized=!1,this.storagePrefix=bn,this.init=async()=>{if(!this.initialized){const r=await this.getKeyChain();typeof r<"u"&&(this.keychain=r),this.initialized=!0}},this.has=r=>(this.isInitialized(),this.keychain.has(r)),this.set=async(r,i)=>{this.isInitialized(),this.keychain.set(r,i),await this.persist()},this.get=r=>{this.isInitialized();const i=this.keychain.get(r);if(typeof i>"u"){const{message:s}=X("NO_MATCHING_KEY",`${this.name}: ${r}`);throw new Error(s)}return i},this.del=async r=>{this.isInitialized(),this.keychain.delete(r),await this.persist()},this.core=e,this.logger=Rt(n,this.name)}get context(){return bt(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,Sf(e))}async getKeyChain(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<"u"?If(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){const{message:e}=X("NOT_INITIALIZED",this.name);throw new Error(e)}}}class S9{constructor(e,n,r){this.core=e,this.logger=n,this.name=HO,this.randomSessionIdentifier=Rf(),this.initialized=!1,this.init=async()=>{this.initialized||(await this.keychain.init(),this.initialized=!0)},this.hasKeys=i=>(this.isInitialized(),this.keychain.has(i)),this.getClientId=async()=>{if(this.isInitialized(),this.clientId)return this.clientId;const i=await this.getClientSeed(),s=Sg(i),o=xg(s.publicKey);return this.clientId=o,o},this.generateKeyPair=()=>{this.isInitialized();const i=SS();return this.setPrivateKey(i.publicKey,i.privateKey)},this.signJWT=async i=>{this.isInitialized();const s=await this.getClientSeed(),o=Sg(s),a=this.randomSessionIdentifier;return await b5(a,i,YO,o)},this.generateSharedKey=(i,s,o)=>{this.isInitialized();const a=this.getPrivateKey(i),c=IS(a,s);return this.setSymKey(c,o)},this.setSymKey=async(i,s)=>{this.isInitialized();const o=s||Da(i);return await this.keychain.set(o,i),o},this.deleteKeyPair=async i=>{this.isInitialized(),await this.keychain.del(i)},this.deleteSymKey=async i=>{this.isInitialized(),await this.keychain.del(i)},this.encode=async(i,s,o)=>{this.isInitialized();const a=u1(o),c=Us(s);if(l1(a))return BS(c,o?.encoding);if(f1(a)){const d=a.senderPublicKey,l=a.receiverPublicKey;i=await this.generateSharedKey(d,l)}const u=this.getSymKey(i),{type:f,senderPublicKey:h}=a;return AS({type:f,symKey:u,message:c,senderPublicKey:h,encoding:o?.encoding})},this.decode=async(i,s,o)=>{this.isInitialized();const a=RS(s,o);if(l1(a)){const c=DS(s,o?.encoding);return zi(c)}if(f1(a)){const c=a.receiverPublicKey,u=a.senderPublicKey;i=await this.generateSharedKey(c,u)}try{const c=this.getSymKey(i),u=OS({symKey:c,encoded:s,encoding:o?.encoding});return zi(u)}catch(c){this.logger.error(`Failed to decode message from topic: '${i}', clientId: '${await this.getClientId()}'`),this.logger.error(c)}},this.getPayloadType=(i,s=Je)=>{const o=Hs({encoded:i,encoding:s});return oi(o.type)},this.getPayloadSenderPublicKey=(i,s=Je)=>{const o=Hs({encoded:i,encoding:s});return o.senderPublicKey?Ve(o.senderPublicKey,gt):void 0},this.core=e,this.logger=Rt(n,this.name),this.keychain=r||new x9(this.core,this.logger)}get context(){return bt(this.logger)}async setPrivateKey(e,n){return await this.keychain.set(e,n),e}getPrivateKey(e){return this.keychain.get(e)}async getClientSeed(){let e="";try{e=this.keychain.get(yw)}catch{e=Rf(),await this.keychain.set(yw,e)}return it(e,"base16")}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){const{message:e}=X("NOT_INITIALIZED",this.name);throw new Error(e)}}}class I9 extends dA{constructor(e,n){super(e,n),this.logger=e,this.core=n,this.messages=new Map,this.messagesWithoutClientAck=new Map,this.name=ZO,this.version=JO,this.initialized=!1,this.storagePrefix=bn,this.init=async()=>{if(!this.initialized){this.logger.trace("Initialized");try{const r=await this.getRelayerMessages();typeof r<"u"&&(this.messages=r);const i=await this.getRelayerMessagesWithoutClientAck();typeof i<"u"&&(this.messagesWithoutClientAck=i),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",size:this.messages.size})}catch(r){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(r)}finally{this.initialized=!0}}},this.set=async(r,i,s)=>{this.isInitialized();const o=Wt(i);let a=this.messages.get(r);if(typeof a>"u"&&(a={}),typeof a[o]<"u")return o;if(a[o]=i,this.messages.set(r,a),s===Ga.inbound){const c=this.messagesWithoutClientAck.get(r)||{};this.messagesWithoutClientAck.set(r,{...c,[o]:i})}return await this.persist(),o},this.get=r=>{this.isInitialized();let i=this.messages.get(r);return typeof i>"u"&&(i={}),i},this.getWithoutAck=r=>{this.isInitialized();const i={};for(const s of r){const o=this.messagesWithoutClientAck.get(s)||{};i[s]=Object.values(o)}return i},this.has=(r,i)=>{this.isInitialized();const s=this.get(r),o=Wt(i);return typeof s[o]<"u"},this.ack=async(r,i)=>{this.isInitialized();const s=this.messagesWithoutClientAck.get(r);if(typeof s>"u")return;const o=Wt(i);delete s[o],Object.keys(s).length===0?this.messagesWithoutClientAck.delete(r):this.messagesWithoutClientAck.set(r,s),await this.persist()},this.del=async r=>{this.isInitialized(),this.messages.delete(r),this.messagesWithoutClientAck.delete(r),await this.persist()},this.logger=Rt(e,this.name),this.core=n}get context(){return bt(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get storageKeyWithoutClientAck(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name+"_withoutClientAck"}async setRelayerMessages(e){await this.core.storage.setItem(this.storageKey,Sf(e))}async setRelayerMessagesWithoutClientAck(e){await this.core.storage.setItem(this.storageKeyWithoutClientAck,Sf(e))}async getRelayerMessages(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<"u"?If(e):void 0}async getRelayerMessagesWithoutClientAck(){const e=await this.core.storage.getItem(this.storageKeyWithoutClientAck);return typeof e<"u"?If(e):void 0}async persist(){await this.setRelayerMessages(this.messages),await this.setRelayerMessagesWithoutClientAck(this.messagesWithoutClientAck)}isInitialized(){if(!this.initialized){const{message:e}=X("NOT_INITIALIZED",this.name);throw new Error(e)}}}class A9 extends pA{constructor(e,n){super(e,n),this.relayer=e,this.logger=n,this.events=new $e.exports.EventEmitter,this.name=QO,this.queue=new Map,this.publishTimeout=J.toMiliseconds(J.ONE_MINUTE),this.initialPublishTimeout=J.toMiliseconds(J.ONE_SECOND*15),this.needsTransportRestart=!1,this.publish=async(r,i,s)=>{this.logger.debug("Publishing Payload"),this.logger.trace({type:"method",method:"publish",params:{topic:r,message:i,opts:s}});const o=s?.ttl||XO,a=s?.prompt||!1,c=s?.tag||0,u=s?.id||Pr().toString(),f=Yi(Ta().protocol),h={id:u,method:s?.publishMethod||f.publish,params:{topic:r,message:i,ttl:o,prompt:a,tag:c,attestation:s?.attestation,...s?.tvf}},d=`Failed to publish payload, please try again. id:${u} tag:${c}`;try{ke(h.params?.prompt)&&delete h.params?.prompt,ke(h.params?.tag)&&delete h.params?.tag;const l=new Promise(async p=>{const y=({id:D})=>{h.id?.toString()===D.toString()&&(this.removeRequestFromQueue(D),this.relayer.events.removeListener(Ne.publish,y),p())};this.relayer.events.on(Ne.publish,y);const v=nn(new Promise((D,C)=>{this.rpcPublish(h,s).then(D).catch(A=>{this.logger.warn(A,A?.message),C(A)})}),this.initialPublishTimeout,`Failed initial publish, retrying.... id:${u} tag:${c}`);try{await v,this.events.removeListener(Ne.publish,y)}catch(D){this.queue.set(u,{request:h,opts:s,attempt:1}),this.logger.warn(D,D?.message)}});this.logger.trace({type:"method",method:"publish",params:{id:u,topic:r,message:i,opts:s}}),await nn(l,this.publishTimeout,d)}catch(l){if(this.logger.debug("Failed to Publish Payload"),this.logger.error(l),s?.internal?.throwOnFailedPublish)throw l}finally{this.queue.delete(u)}},this.publishCustom=async r=>{this.logger.debug("Publishing custom payload"),this.logger.trace({type:"method",method:"publishCustom",params:r});const{payload:i,opts:s={}}=r,{attestation:o,tvf:a,publishMethod:c,prompt:u,tag:f,ttl:h=J.FIVE_MINUTES}=s,d=s.id||Pr().toString(),l=Yi(Ta().protocol),p=c||l.publish,y={id:d,method:p,params:{...i,ttl:h,prompt:u,tag:f,attestation:o,...a}},v=`Failed to publish custom payload, please try again. id:${d} tag:${f}`;try{ke(y.params?.prompt)&&delete y.params?.prompt,ke(y.params?.tag)&&delete y.params?.tag;const D=new Promise(async C=>{const A=({id:S})=>{y.id?.toString()===S.toString()&&(this.removeRequestFromQueue(S),this.relayer.events.removeListener(Ne.publish,A),C())};this.relayer.events.on(Ne.publish,A);const I=nn(new Promise((S,z)=>{this.rpcPublish(y,s).then(S).catch(M=>{this.logger.warn(M,M?.message),z(M)})}),this.initialPublishTimeout,`Failed initial custom payload publish, retrying.... method:${p} id:${d} tag:${f}`);try{await I,this.events.removeListener(Ne.publish,A)}catch(S){this.queue.set(d,{request:y,opts:s,attempt:1}),this.logger.warn(S,S?.message)}});this.logger.trace({type:"method",method:"publish",params:{id:d,payload:i,opts:s}}),await nn(D,this.publishTimeout,v)}catch(D){if(this.logger.debug("Failed to Publish Payload"),this.logger.error(D),s?.internal?.throwOnFailedPublish)throw D}finally{this.queue.delete(d)}},this.on=(r,i)=>{this.events.on(r,i)},this.once=(r,i)=>{this.events.once(r,i)},this.off=(r,i)=>{this.events.off(r,i)},this.removeListener=(r,i)=>{this.events.removeListener(r,i)},this.relayer=e,this.logger=Rt(n,this.name),this.registerEventListeners()}get context(){return bt(this.logger)}async rpcPublish(e,n){this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"message",direction:"outgoing",request:e});const r=await this.relayer.request(e);return this.relayer.events.emit(Ne.publish,{...e,...n}),this.logger.debug("Successfully Published Payload"),r}removeRequestFromQueue(e){this.queue.delete(e)}checkQueue(){this.queue.forEach(async(e,n)=>{const r=e.attempt+1;this.queue.set(n,{...e,attempt:r}),this.logger.warn({},`Publisher: queue->publishing: ${e.request.id}, tag: ${e.request.params?.tag}, attempt: ${r}`),await this.rpcPublish(e.request,e.opts),this.logger.warn({},`Publisher: queue->published: ${e.request.id}`)})}registerEventListeners(){this.relayer.core.heartbeat.on(di.pulse,()=>{if(this.needsTransportRestart){this.needsTransportRestart=!1,this.relayer.events.emit(Ne.connection_stalled);return}this.checkQueue()}),this.relayer.on(Ne.message_ack,e=>{this.removeRequestFromQueue(e.id.toString())})}}class O9{constructor(){this.map=new Map,this.set=(e,n)=>{const r=this.get(e);this.exists(e,n)||this.map.set(e,[...r,n])},this.get=e=>this.map.get(e)||[],this.exists=(e,n)=>this.get(e).includes(n),this.delete=(e,n)=>{if(typeof n>"u"){this.map.delete(e);return}if(!this.map.has(e))return;const r=this.get(e);if(!this.exists(e,n))return;const i=r.filter(s=>s!==n);if(!i.length){this.map.delete(e);return}this.map.set(e,i)},this.clear=()=>{this.map.clear()}}get topics(){return Array.from(this.map.keys())}}class B9 extends yA{constructor(e,n){super(e,n),this.relayer=e,this.logger=n,this.subscriptions=new Map,this.topicMap=new O9,this.events=new $e.exports.EventEmitter,this.name=i9,this.version=s9,this.pending=new Map,this.cached=[],this.initialized=!1,this.storagePrefix=bn,this.subscribeTimeout=J.toMiliseconds(J.ONE_MINUTE),this.initialSubscribeTimeout=J.toMiliseconds(J.ONE_SECOND*15),this.batchSubscribeTopicsLimit=500,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),this.registerEventListeners(),await this.restore()),this.initialized=!0},this.subscribe=async(r,i)=>{this.isInitialized(),this.logger.debug("Subscribing Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:r,opts:i}});try{const s=Ta(i),o={topic:r,relay:s,transportType:i?.transportType};i?.internal?.skipSubscribe||this.pending.set(r,o);const a=await this.rpcSubscribe(r,s,i);return typeof a=="string"&&(this.onSubscribe(a,o),this.logger.debug("Successfully Subscribed Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:r,opts:i}})),a}catch(s){throw this.logger.debug("Failed to Subscribe Topic"),this.logger.error(s),s}},this.unsubscribe=async(r,i)=>{this.isInitialized(),typeof i?.id<"u"?await this.unsubscribeById(r,i.id,i):await this.unsubscribeByTopic(r,i)},this.isSubscribed=r=>new Promise(i=>{i(this.topicMap.topics.includes(r))}),this.isKnownTopic=r=>new Promise(i=>{i(this.topicMap.topics.includes(r)||this.pending.has(r)||this.cached.some(s=>s.topic===r))}),this.on=(r,i)=>{this.events.on(r,i)},this.once=(r,i)=>{this.events.once(r,i)},this.off=(r,i)=>{this.events.off(r,i)},this.removeListener=(r,i)=>{this.events.removeListener(r,i)},this.start=async()=>{await this.onConnect()},this.stop=async()=>{await this.onDisconnect()},this.restart=async()=>{await this.restore(),await this.onRestart()},this.checkPending=async()=>{if(this.pending.size===0&&(!this.initialized||!this.relayer.connected))return;const r=[];this.pending.forEach(i=>{r.push(i)}),await this.batchSubscribe(r)},this.registerEventListeners=()=>{this.relayer.core.heartbeat.on(di.pulse,async()=>{await this.checkPending()}),this.events.on(Ft.created,async r=>{const i=Ft.created;this.logger.info(`Emitting ${i}`),this.logger.debug({type:"event",event:i,data:r}),await this.persist()}),this.events.on(Ft.deleted,async r=>{const i=Ft.deleted;this.logger.info(`Emitting ${i}`),this.logger.debug({type:"event",event:i,data:r}),await this.persist()})},this.relayer=e,this.logger=Rt(n,this.name),this.clientId=""}get context(){return bt(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.relayer.core.customStoragePrefix+"//"+this.name}get length(){return this.subscriptions.size}get ids(){return Array.from(this.subscriptions.keys())}get values(){return Array.from(this.subscriptions.values())}get topics(){return this.topicMap.topics}get hasAnyTopics(){return this.topicMap.topics.length>0||this.pending.size>0||this.cached.length>0||this.subscriptions.size>0}hasSubscription(e,n){let r=!1;try{r=this.getSubscription(e).topic===n}catch{}return r}reset(){this.cached=[],this.initialized=!0}onDisable(){this.values.length>0&&(this.cached=this.values),this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,n){const r=this.topicMap.get(e);await Promise.all(r.map(async i=>await this.unsubscribeById(e,i,n)))}async unsubscribeById(e,n,r){this.logger.debug("Unsubscribing Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:n,opts:r}});try{const i=Re("USER_DISCONNECTED",`${this.name}, ${e}`);await this.onUnsubscribe(e,n,i);const s=Ta(r);await this.restartToComplete({topic:e,id:n,relay:s}),await this.rpcUnsubscribe(e,n,s),this.logger.debug("Successfully Unsubscribed Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:n,opts:r}})}catch(i){throw this.logger.debug("Failed to Unsubscribe Topic"),this.logger.error(i),i}}async rpcSubscribe(e,n,r){const i=await this.getSubscriptionId(e);if(r?.internal?.skipSubscribe)return i;(!r||r?.transportType===Ie.relay)&&await this.restartToComplete({topic:e,id:e,relay:n});const s={method:Yi(n.protocol).subscribe,params:{topic:e}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:s});const o=r?.internal?.throwOnFailedPublish;try{if(r?.transportType===Ie.link_mode)return setTimeout(()=>{(this.relayer.connected||this.relayer.connecting)&&this.relayer.request(s).catch(u=>this.logger.warn(u))},J.toMiliseconds(J.ONE_SECOND)),i;const a=new Promise(async u=>{const f=h=>{h.topic===e&&(this.events.removeListener(Ft.created,f),u(h.id))};this.events.on(Ft.created,f);try{const h=await nn(new Promise((d,l)=>{this.relayer.request(s).catch(p=>{this.logger.warn(p,p?.message),l(p)}).then(d)}),this.initialSubscribeTimeout,`Subscribing to ${e} failed, please try again`);this.events.removeListener(Ft.created,f),u(h)}catch{}}),c=await nn(a,this.subscribeTimeout,`Subscribing to ${e} failed, please try again`);if(!c&&o)throw new Error(`Subscribing to ${e} failed, please try again`);return c?i:null}catch(a){if(this.logger.debug("Outgoing Relay Subscribe Payload stalled"),this.relayer.events.emit(Ne.connection_stalled),o)throw a}return null}async rpcBatchSubscribe(e){if(!e.length)return!0;const n=e[0].relay,r={method:Yi(n.protocol).batchSubscribe,params:{topics:e.map(i=>i.topic)}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:r});try{return await nn(new Promise((i,s)=>{this.relayer.request(r).then(i).catch(o=>{this.logger.warn(o),s(o)})}),this.subscribeTimeout,"rpcBatchSubscribe failed, please try again"),!0}catch{return this.relayer.events.emit(Ne.connection_stalled),!1}}async rpcBatchFetchMessages(e){if(!e.length)return;const n=e[0].relay,r={method:Yi(n.protocol).batchFetchMessages,params:{topics:e.map(s=>s.topic)}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:r});let i;try{i=await await nn(new Promise((s,o)=>{this.relayer.request(r).catch(a=>{this.logger.warn(a),o(a)}).then(s)}),this.subscribeTimeout,"rpcBatchFetchMessages failed, please try again")}catch{this.relayer.events.emit(Ne.connection_stalled)}return i}rpcUnsubscribe(e,n,r){const i={method:Yi(r.protocol).unsubscribe,params:{topic:e,id:n}};return this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:i}),this.relayer.request(i)}onSubscribe(e,n){this.setSubscription(e,{...n,id:e}),this.pending.delete(n.topic)}onBatchSubscribe(e){e.length&&e.forEach(n=>{this.setSubscription(n.id,{...n}),this.pending.delete(n.topic)})}async onUnsubscribe(e,n,r){this.events.removeAllListeners(n),this.hasSubscription(n,e)&&this.deleteSubscription(n,r),await this.relayer.messages.del(e)}async setRelayerSubscriptions(e){await this.relayer.core.storage.setItem(this.storageKey,e)}async getRelayerSubscriptions(){return await this.relayer.core.storage.getItem(this.storageKey)}setSubscription(e,n){this.logger.debug("Setting subscription"),this.logger.trace({type:"method",method:"setSubscription",id:e,subscription:n}),this.addSubscription(e,n)}addSubscription(e,n){this.subscriptions.set(e,{...n}),this.topicMap.set(n.topic,e),this.events.emit(Ft.created,n)}getSubscription(e){this.logger.debug("Getting subscription"),this.logger.trace({type:"method",method:"getSubscription",id:e});const n=this.subscriptions.get(e);if(!n){const{message:r}=X("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(r)}return n}deleteSubscription(e,n){this.logger.debug("Deleting subscription"),this.logger.trace({type:"method",method:"deleteSubscription",id:e,reason:n});const r=this.getSubscription(e);this.subscriptions.delete(e),this.topicMap.delete(r.topic,e),this.events.emit(Ft.deleted,{...r,reason:n})}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(Ft.sync)}async onRestart(){if(this.cached.length){const e=[...this.cached],n=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let r=0;r<n;r++){const i=e.splice(0,this.batchSubscribeTopicsLimit);await this.batchSubscribe(i)}}this.events.emit(Ft.resubscribed)}async restore(){try{const e=await this.getRelayerSubscriptions();if(typeof e>"u"||!e.length)return;if(this.subscriptions.size&&!e.every(n=>n.topic===this.subscriptions.get(n.id)?.topic)){const{message:n}=X("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(n),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),new Error(n)}this.cached=e,this.logger.debug(`Successfully Restored subscriptions for ${this.name}`),this.logger.trace({type:"method",method:"restore",subscriptions:this.values})}catch(e){this.logger.debug(`Failed to Restore subscriptions for ${this.name}`),this.logger.error(e)}}async batchSubscribe(e){if(e.length){if(!await this.rpcBatchSubscribe(e)){this.logger.warn(`Batch subscribe failed for ${e.length} topics, adding to pending for retry`),e.forEach(n=>{this.pending.set(n.topic,n)});return}this.onBatchSubscribe(await Promise.all(e.map(async n=>({...n,id:await this.getSubscriptionId(n.topic)}))))}}async batchFetchMessages(e){if(!e.length)return;this.logger.trace(`Fetching batch messages for ${e.length} subscriptions`);const n=await this.rpcBatchFetchMessages(e);n&&n.messages&&(await Q5(J.toMiliseconds(J.ONE_SECOND)),await this.relayer.handleBatchMessageEvents(n.messages))}async onConnect(){await this.restart(),this.reset()}onDisconnect(){this.onDisable()}isInitialized(){if(!this.initialized){const{message:e}=X("NOT_INITIALIZED",this.name);throw new Error(e)}}async restartToComplete(e){!this.relayer.connected&&!this.relayer.connecting&&(this.cached.push(e),await this.relayer.transportOpen())}async getClientId(){return this.clientId||(this.clientId=await this.relayer.core.crypto.getClientId()),this.clientId}async getSubscriptionId(e){return Wt(e+await this.getClientId())}}class D9 extends gA{constructor(e){super(e),this.protocol="wc",this.version=2,this.events=new $e.exports.EventEmitter,this.name=$O,this.transportExplicitlyClosed=!1,this.initialized=!1,this.connectionAttemptInProgress=!1,this.hasExperiencedNetworkDisruption=!1,this.heartBeatTimeout=J.toMiliseconds(J.THIRTY_SECONDS+J.FIVE_SECONDS),this.reconnectInProgress=!1,this.requestsInFlight=[],this.connectTimeout=J.toMiliseconds(J.ONE_SECOND*15),this.stalledRestartInProgress=!1,this.stalledRestartBackoff=0,this.stalledRestartBaseInterval=J.toMiliseconds(J.ONE_SECOND*2),this.stalledRestartMaxInterval=J.toMiliseconds(J.THIRTY_SECONDS),this.request=async n=>{this.logger.debug("Publishing Request Payload");const r=n.id||Pr().toString();await this.toEstablishConnection();try{this.logger.trace({id:r,method:n.method,topic:n.params?.topic},"relayer.request - publishing...");const i=`${r}:${n.params?.tag||""}`;this.requestsInFlight.push(i);const s=await this.provider.request(n);return this.requestsInFlight=this.requestsInFlight.filter(o=>o!==i),s}catch(i){throw this.logger.debug(`Failed to Publish Request: ${r}`),i}},this.resetPingTimeout=()=>{Ls()&&(clearTimeout(this.pingTimeout),this.pingTimeout=setTimeout(()=>{try{this.logger.debug({},"pingTimeout: Connection stalled, terminating..."),this.provider?.connection?.socket?.terminate?.()}catch(n){this.logger.warn(n,n?.message)}},this.heartBeatTimeout))},this.onPayloadHandler=n=>{this.onProviderPayload(n),this.resetPingTimeout()},this.onConnectHandler=()=>{this.logger.warn({},"Relayer connected \u{1F6DC}"),this.startPingTimeout(),this.stalledRestartBackoff=0,this.events.emit(Ne.connect)},this.onDisconnectHandler=()=>{this.logger.warn({},"Relayer disconnected \u{1F6D1}"),this.requestsInFlight=[],this.onProviderDisconnect()},this.onProviderErrorHandler=n=>{this.logger.fatal(`Fatal socket error: ${n.message}`),this.events.emit(Ne.error,n),this.logger.fatal("Fatal socket error received, closing transport"),this.transportExplicitlyClosed=!0,clearTimeout(this.reconnectTimeout),this.reconnectTimeout=void 0,this.reconnectInProgress=!1,this.transportClose().catch(r=>this.logger.warn(r))},this.registerProviderListeners=()=>{this.provider.on(Gt.payload,this.onPayloadHandler),this.provider.on(Gt.connect,this.onConnectHandler),this.provider.on(Gt.disconnect,this.onDisconnectHandler),this.provider.on(Gt.error,this.onProviderErrorHandler)},this.core=e.core,this.logger=A1({logger:e.logger??_O,name:this.name}),this.messages=new I9(this.logger,e.core),this.subscriber=new B9(this,this.logger),this.publisher=new A9(this,this.logger),this.projectId=e.projectId,this.relayUrl=e.relayUrl||mw,Mg()?this.packageName=xf():Vg()&&(this.bundleId=xf()),this.provider={}}async init(){this.logger.trace("Initialized"),this.registerEventListeners(),await Promise.all([this.messages.init(),this.subscriber.init()]),this.initialized=!0,this.transportOpen().catch(e=>this.logger.warn(e,e?.message))}get context(){return bt(this.logger)}get connected(){return this.provider?.connection?.socket?.readyState===1}get connecting(){return this.provider?.connection?.socket?.readyState===0||this.connectPromise!==void 0}async publish(e,n,r){this.isInitialized(),await this.publisher.publish(e,n,r),await this.recordMessageEvent({topic:e,message:n,publishedAt:Date.now(),transportType:Ie.relay},Ga.outbound)}async publishCustom(e){this.isInitialized(),await this.publisher.publishCustom(e)}async subscribe(e,n){this.isInitialized(),(!n?.transportType||n?.transportType==="relay")&&await this.toEstablishConnection();const r=n?.internal?.throwOnFailedPublish??!0;let i=this.subscriber.topicMap.get(e)?.[0]||"",s;const o=a=>{a.topic===e&&(this.subscriber.off(Ft.created,o),s())};return await Promise.all([new Promise(a=>{s=a,this.subscriber.on(Ft.created,o)}),new Promise((a,c)=>{this.subscriber.subscribe(e,{internal:{throwOnFailedPublish:r},...n}).then(u=>{i=u||i,a()}).catch(u=>{r?c(u):a()})})]),i}async unsubscribe(e,n){this.isInitialized(),await this.subscriber.unsubscribe(e,n)}on(e,n){this.events.on(e,n)}once(e,n){this.events.once(e,n)}off(e,n){this.events.off(e,n)}removeListener(e,n){this.events.removeListener(e,n)}async transportDisconnect(){this.provider.disconnect&&(this.hasExperiencedNetworkDisruption||this.connected)?await nn(this.provider.disconnect(),2e3,"provider.disconnect()").catch(()=>this.onProviderDisconnect()):this.onProviderDisconnect()}async transportClose(){this.transportExplicitlyClosed=!0,clearTimeout(this.stalledRestartTimeout),this.stalledRestartInProgress=!1,this.stalledRestartBackoff=0,await this.resetTransport()}async transportOpen(e){if(!this.subscriber.hasAnyTopics){this.logger.info("Starting WS connection skipped because the client has no topics to work with.");return}if(this.connectPromise?(this.logger.debug({},"Waiting for existing connection attempt to resolve..."),await this.connectPromise,this.logger.debug({},"Existing connection attempt resolved")):(this.connectPromise=this.connect(e).finally(()=>{this.connectPromise=void 0}),await this.connectPromise),!this.connected)throw new Error(`Couldn't establish socket connection to the relay server: ${this.relayUrl}`)}async restartTransport(e){this.logger.debug({},"Restarting transport..."),!this.connectionAttemptInProgress&&(this.relayUrl=e||this.relayUrl,await this.confirmOnlineStateOrThrow(),await this.resetTransport(),await this.transportOpen())}async resetTransport(){this.reconnectInProgress=!0,clearTimeout(this.reconnectTimeout),this.reconnectTimeout=void 0,await this.transportDisconnect(),await this.subscriber.stop(),this.reconnectInProgress=!1}async confirmOnlineStateOrThrow(){if(!await I1())throw new Error("No internet connection detected. Please restart your network and try again.")}async handleBatchMessageEvents(e){if(e?.length===0){this.logger.trace("Batch message events is empty. Ignoring...");return}const n=e.sort((r,i)=>r.publishedAt-i.publishedAt);this.logger.debug(`Batch of ${n.length} message events sorted`);for(const r of n)try{await this.onMessageEvent(r)}catch(i){this.logger.warn(i,"Error while processing batch message event: "+i?.message)}this.logger.trace(`Batch of ${n.length} message events processed`)}async onLinkMessageEvent(e,n){const{topic:r}=e;if(!n.sessionExists){const i=Fe(J.FIVE_MINUTES),s={topic:r,expiry:i,relay:{protocol:"irn"},active:!1};await this.core.pairing.pairings.set(r,s)}this.events.emit(Ne.message,e),await this.recordMessageEvent(e,Ga.inbound)}async connect(e){await this.confirmOnlineStateOrThrow(),e&&e!==this.relayUrl&&(this.relayUrl=e,await this.transportDisconnect()),this.transportExplicitlyClosed=!1;let n=1;try{for(;n<6;){this.connectionAttemptInProgress=!0;try{if(this.transportExplicitlyClosed)break;this.logger.debug({},`Connecting to ${this.relayUrl}, attempt: ${n}...`),await this.createProvider(),await new Promise((r,i)=>{const s=()=>{i(new Error("Connection interrupted while trying to connect"))};this.provider.once(Gt.disconnect,s),nn(this.provider.connect(),this.connectTimeout,`Socket stalled when trying to connect to ${this.relayUrl}`).then(()=>r()).catch(i).finally(()=>{this.provider.off(Gt.disconnect,s),clearTimeout(this.reconnectTimeout)})}),await new Promise((r,i)=>{const s=()=>{i(new Error("Connection interrupted while trying to subscribe"))};this.provider.once(Gt.disconnect,s),this.subscriber.start().then(r).catch(i).finally(()=>{this.provider.off(Gt.disconnect,s)})}),this.hasExperiencedNetworkDisruption=!1}catch(r){await this.subscriber.stop();const i=r;this.logger.warn({},i.message),this.hasExperiencedNetworkDisruption=!0}if(this.connected){this.logger.debug({},`Connected to ${this.relayUrl} successfully on attempt: ${n}`);break}await new Promise(r=>setTimeout(r,J.toMiliseconds(n*1))),n++}}finally{this.connectionAttemptInProgress=!1,clearTimeout(this.reconnectTimeout),this.reconnectTimeout=void 0,this.reconnectInProgress=!1}}startPingTimeout(){if(Ls())try{this.provider?.connection?.socket?.on("ping",()=>{this.resetPingTimeout()}),this.resetPingTimeout()}catch(e){this.logger.warn(e,e?.message)}}async createProvider(){if(this.provider.connection&&(this.unregisterProviderListeners(),this.connected))try{await nn(this.provider.disconnect(),1e3,"Closing previous provider")}catch{}const e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new uO(new dO(z5({sdkVersion:nl,protocol:this.protocol,version:this.version,relayUrl:this.relayUrl,projectId:this.projectId,auth:e,useOnCloseEvent:!0,bundleId:this.bundleId,packageName:this.packageName}))),this.registerProviderListeners()}async recordMessageEvent(e,n){const{topic:r,message:i}=e;await this.messages.set(r,i,n)}async shouldIgnoreMessageEvent(e){const{topic:n,message:r}=e;if(!r||r.length===0)return this.logger.warn(`Ignoring invalid/empty message: ${r}`),!0;if(!await this.subscriber.isKnownTopic(n))return this.logger.warn(`Ignoring message for unknown topic ${n}`),!0;const i=this.messages.has(n,r);return i&&this.logger.warn(`Ignoring duplicate message: ${r}`),i}async onProviderPayload(e){if(this.logger.debug("Incoming Relay Payload"),this.logger.trace({type:"payload",direction:"incoming",payload:e}),el(e)){if(!e.method.endsWith(e9))return;const n=e.params,{topic:r,message:i,publishedAt:s,attestation:o}=n.data,a={topic:r,message:i,publishedAt:s,transportType:Ie.relay,attestation:o};this.logger.debug("Emitting Relayer Payload"),this.logger.trace({type:"event",event:n.id,...a}),this.events.emit(n.id,a),await this.acknowledgePayload(e),await this.onMessageEvent(a)}else Ha(e)&&this.events.emit(Ne.message_ack,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(await this.recordMessageEvent(e,Ga.inbound),this.events.emit(Ne.message,e))}async acknowledgePayload(e){const n=Wa(e.id,!0);await this.provider.connection.send(n)}unregisterProviderListeners(){this.provider.off(Gt.payload,this.onPayloadHandler),this.provider.off(Gt.connect,this.onConnectHandler),this.provider.off(Gt.disconnect,this.onDisconnectHandler),this.provider.off(Gt.error,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let e=await I1();gI(async n=>{e!==n&&(e=n,n?await this.transportOpen().catch(r=>this.logger.error(r,r?.message)):(this.hasExperiencedNetworkDisruption=!0,await this.transportDisconnect(),this.transportExplicitlyClosed=!1))}),this.core.heartbeat.on(di.pulse,async()=>{if(!this.transportExplicitlyClosed&&!this.connected&&bI())try{await this.confirmOnlineStateOrThrow(),await this.transportOpen()}catch(n){this.logger.warn(n,n?.message)}}),this.events.on(Ne.connection_stalled,()=>{if(this.transportExplicitlyClosed||this.stalledRestartInProgress)return;this.stalledRestartInProgress=!0;const n=this.stalledRestartBackoff===0?0:Math.min(Math.pow(2,this.stalledRestartBackoff-1)*this.stalledRestartBaseInterval,this.stalledRestartMaxInterval);this.stalledRestartBackoff++,this.logger.warn(`Connection stalled, restarting transport${n?` in ${n}ms`:""}...`),this.stalledRestartTimeout=setTimeout(async()=>{try{if(this.transportExplicitlyClosed)return;await this.restartTransport()}catch(r){this.logger.error(r,r?.message)}finally{this.stalledRestartInProgress=!1}},n)})}async onProviderDisconnect(){if(clearTimeout(this.pingTimeout),this.events.emit(Ne.disconnect),!this.reconnectInProgress){this.reconnectInProgress=!0;try{await this.subscriber.stop()}catch(e){this.logger.warn(e,"subscriber.stop() failed during disconnect")}if(!this.subscriber.hasAnyTopics||this.transportExplicitlyClosed){this.reconnectInProgress=!1;return}this.reconnectTimeout=setTimeout(async()=>{await this.transportOpen().catch(e=>this.logger.error(e,e?.message)),this.reconnectTimeout=void 0,this.reconnectInProgress=!1},J.toMiliseconds(t9))}}isInitialized(){if(!this.initialized){const{message:e}=X("NOT_INITIALIZED",this.name);throw new Error(e)}}async toEstablishConnection(){if(await this.confirmOnlineStateOrThrow(),!this.connected){if(this.connectPromise){await this.connectPromise;return}this.connectPromise=this.connect().finally(()=>{this.connectPromise=void 0}),await this.connectPromise}}}class bi extends wA{constructor(e,n,r,i=bn,s=void 0){super(e,n,r,i),this.core=e,this.logger=n,this.name=r,this.map=new Map,this.version=n9,this.cached=[],this.initialized=!1,this.storagePrefix=bn,this.recentlyDeleted=[],this.recentlyDeletedLimit=200,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(o=>{this.getKey&&o!==null&&!ke(o)?this.map.set(this.getKey(o),o):GS(o)?this.map.set(o.id,o):KS(o)&&this.map.set(o.topic,o)}),this.cached=[],this.initialized=!0)},this.set=async(o,a)=>{this.isInitialized(),this.map.has(o)?await this.update(o,a):(this.logger.debug("Setting value"),this.logger.trace({type:"method",method:"set",key:o,value:a}),this.map.set(o,a),await this.persist())},this.get=o=>(this.isInitialized(),this.logger.debug("Getting value"),this.logger.trace({type:"method",method:"get",key:o}),this.getData(o)),this.getAll=o=>(this.isInitialized(),o?this.values.filter(a=>Object.keys(o).every(c=>zO(a[c],o[c]))):this.values),this.update=async(o,a)=>{this.isInitialized(),this.logger.debug("Updating value"),this.logger.trace({type:"method",method:"update",key:o,update:a});const c={...this.getData(o),...a};this.map.set(o,c),await this.persist()},this.delete=async(o,a)=>{this.isInitialized(),this.map.has(o)&&(this.logger.debug("Deleting value"),this.logger.trace({type:"method",method:"delete",key:o,reason:a}),this.map.delete(o),this.addToRecentlyDeleted(o),await this.persist())},this.logger=Rt(n,this.name),this.storagePrefix=i,this.getKey=s}get context(){return bt(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get length(){return this.map.size}get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values())}addToRecentlyDeleted(e){this.recentlyDeleted.push(e),this.recentlyDeleted.length>=this.recentlyDeletedLimit&&this.recentlyDeleted.splice(0,this.recentlyDeletedLimit/2)}async setDataStore(e){await this.core.storage.setItem(this.storageKey,e)}async getDataStore(){return await this.core.storage.getItem(this.storageKey)}getData(e){const n=this.map.get(e);if(!n){if(this.recentlyDeleted.includes(e)){const{message:i}=X("MISSING_OR_INVALID",`Record was recently deleted - ${this.name}: ${e}`);throw this.logger.error(i),new Error(i)}const{message:r}=X("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.error(r),new Error(r)}return n}async persist(){await this.setDataStore(this.values)}async restore(){try{const e=await this.getDataStore();if(typeof e>"u"||!e.length)return;if(this.map.size){const{message:n}=X("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(n),new Error(n)}this.cached=e,this.logger.debug(`Successfully Restored value for ${this.name}`),this.logger.trace({type:"method",method:"restore",value:this.values})}catch(e){this.logger.debug(`Failed to Restore value for ${this.name}`),this.logger.error(e)}}isInitialized(){if(!this.initialized){const{message:e}=X("NOT_INITIALIZED",this.name);throw new Error(e)}}}class R9{constructor(e,n){this.core=e,this.logger=n,this.name=o9,this.version=a9,this.events=new $e.exports,this.initialized=!1,this.storagePrefix=bn,this.ignoredPayloadTypes=[Hn],this.registeredMethods=[],this.init=async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace("Initialized"))},this.register=({methods:r})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...r])]},this.create=async r=>{this.isInitialized();const i=Rf(),s=await this.core.crypto.setSymKey(i),o=Fe(J.FIVE_MINUTES),a={protocol:bw},c={topic:s,expiry:o,relay:a,active:!1,methods:r?.methods},u=d1({protocol:this.core.protocol,version:this.core.version,topic:s,symKey:i,relay:a,expiryTimestamp:o,methods:r?.methods});return this.events.emit(gi.create,c),this.core.expirer.set(s,o),await this.pairings.set(s,c),await this.core.relayer.subscribe(s,{transportType:r?.transportType,internal:r?.internal}),{topic:s,uri:u}},this.pair=async r=>{this.isInitialized();const i=this.core.eventClient.createEvent({properties:{topic:r?.uri,trace:[mn.pairing_started]}});this.isValidPair(r,i);const{topic:s,symKey:o,relay:a,expiryTimestamp:c,methods:u}=h1(r.uri);i.props.properties.topic=s,i.addTrace(mn.pairing_uri_validation_success),i.addTrace(mn.pairing_uri_not_expired);let f;if(this.pairings.keys.includes(s)){if(f=this.pairings.get(s),i.addTrace(mn.existing_pairing),f.active)throw i.setError(Xn.active_pairing_already_exists),new Error(`Pairing already exists: ${s}. Please try again with a new connection URI.`);i.addTrace(mn.pairing_not_expired)}const h=c||Fe(J.FIVE_MINUTES),d={topic:s,relay:a,expiry:h,active:!1,methods:u};this.core.expirer.set(s,h),await this.pairings.set(s,d),i.addTrace(mn.store_new_pairing),r.activatePairing&&await this.activate({topic:s}),this.events.emit(gi.create,d),i.addTrace(mn.emit_inactive_pairing),this.core.crypto.keychain.has(s)||await this.core.crypto.setSymKey(o,s),i.addTrace(mn.subscribing_pairing_topic);try{await this.core.relayer.confirmOnlineStateOrThrow()}catch{i.setError(Xn.no_internet_connection)}try{await this.core.relayer.subscribe(s,{relay:a})}catch(l){throw i.setError(Xn.subscribe_pairing_topic_failure),l}return i.addTrace(mn.subscribe_pairing_topic_success),d},this.activate=async({topic:r})=>{this.isInitialized();const i=Fe(J.FIVE_MINUTES);this.core.expirer.set(r,i),await this.pairings.update(r,{active:!0,expiry:i})},this.ping=async r=>{this.isInitialized(),await this.isValidPing(r),this.logger.warn("ping() is deprecated and will be removed in the next major release.");const{topic:i}=r;if(this.pairings.keys.includes(i)){const s=await this.sendRequest(i,"wc_pairingPing",{}),{done:o,resolve:a,reject:c}=ri();this.events.once(we("pairing_ping",s),({error:u})=>{u?c(u):a()}),await o()}},this.updateExpiry=async({topic:r,expiry:i})=>{this.isInitialized(),await this.pairings.update(r,{expiry:i})},this.updateMetadata=async({topic:r,metadata:i})=>{this.isInitialized(),await this.pairings.update(r,{peerMetadata:i})},this.getPairings=()=>(this.isInitialized(),this.pairings.values),this.disconnect=async r=>{this.isInitialized(),await this.isValidDisconnect(r);const{topic:i}=r;this.pairings.keys.includes(i)&&(await this.sendRequest(i,"wc_pairingDelete",Re("USER_DISCONNECTED")),await this.deletePairing(i))},this.formatUriFromPairing=r=>{this.isInitialized();const{topic:i,relay:s,expiry:o,methods:a}=r,c=this.core.crypto.keychain.get(i);return d1({protocol:this.core.protocol,version:this.core.version,topic:i,symKey:c,relay:s,expiryTimestamp:o,methods:a})},this.sendRequest=async(r,i,s)=>{const o=Jn(i,s),a=await this.core.crypto.encode(r,o),c=ro[i].req;return this.core.history.set(r,o),this.core.relayer.publish(r,a,c),o.id},this.sendResult=async(r,i,s)=>{const o=Wa(r,s),a=await this.core.crypto.encode(i,o),c=(await this.core.history.get(i,r)).request.method,u=ro[c].res;await this.core.relayer.publish(i,a,u),await this.core.history.resolve(o)},this.sendError=async(r,i,s)=>{const o=$f(r,s),a=await this.core.crypto.encode(i,o),c=(await this.core.history.get(i,r)).request.method,u=ro[c]?ro[c].res:ro.unregistered_method.res;await this.core.relayer.publish(i,a,u),await this.core.history.resolve(o)},this.deletePairing=async(r,i)=>{await this.core.relayer.unsubscribe(r),await Promise.all([this.pairings.delete(r,Re("USER_DISCONNECTED")),this.core.crypto.deleteSymKey(r),i?Promise.resolve():this.core.expirer.del(r)])},this.cleanup=async()=>{const r=this.pairings.getAll().filter(i=>Dr(i.expiry));await Promise.all(r.map(i=>this.deletePairing(i.topic)))},this.onRelayEventRequest=async r=>{const{topic:i,payload:s}=r;switch(s.method){case"wc_pairingPing":return await this.onPairingPingRequest(i,s);case"wc_pairingDelete":return await this.onPairingDeleteRequest(i,s);default:return await this.onUnknownRpcMethodRequest(i,s)}},this.onRelayEventResponse=async r=>{const{topic:i,payload:s}=r,o=(await this.core.history.get(i,s.id)).request.method;switch(o){case"wc_pairingPing":return this.onPairingPingResponse(i,s);default:return this.onUnknownRpcMethodResponse(o)}},this.onPairingPingRequest=async(r,i)=>{const{id:s}=i;try{this.isValidPing({topic:r}),await this.sendResult(s,r,!0),this.events.emit(gi.ping,{id:s,topic:r})}catch(o){await this.sendError(s,r,o),this.logger.error(o)}},this.onPairingPingResponse=(r,i)=>{const{id:s}=i;setTimeout(()=>{yn(i)?this.events.emit(we("pairing_ping",s),{}):Yt(i)&&this.events.emit(we("pairing_ping",s),{error:i.error})},500)},this.onPairingDeleteRequest=async(r,i)=>{const{id:s}=i;try{this.isValidDisconnect({topic:r}),await this.deletePairing(r),this.events.emit(gi.delete,{id:s,topic:r})}catch(o){await this.sendError(s,r,o),this.logger.error(o)}},this.onUnknownRpcMethodRequest=async(r,i)=>{const{id:s,method:o}=i;try{if(this.registeredMethods.includes(o))return;const a=Re("WC_METHOD_UNSUPPORTED",o);await this.sendError(s,r,a),this.logger.error(a)}catch(a){await this.sendError(s,r,a),this.logger.error(a)}},this.onUnknownRpcMethodResponse=r=>{this.registeredMethods.includes(r)||this.logger.error(Re("WC_METHOD_UNSUPPORTED",r))},this.isValidPair=(r,i)=>{if(!At(r)){const{message:o}=X("MISSING_OR_INVALID",`pair() params: ${r}`);throw i.setError(Xn.malformed_pairing_uri),new Error(o)}if(!YS(r.uri)){const{message:o}=X("MISSING_OR_INVALID",`pair() uri: ${r.uri}`);throw i.setError(Xn.malformed_pairing_uri),new Error(o)}const s=h1(r?.uri);if(!s?.relay?.protocol){const{message:o}=X("MISSING_OR_INVALID","pair() uri#relay-protocol");throw i.setError(Xn.malformed_pairing_uri),new Error(o)}if(!s?.symKey){const{message:o}=X("MISSING_OR_INVALID","pair() uri#symKey");throw i.setError(Xn.malformed_pairing_uri),new Error(o)}if(s?.expiryTimestamp&&J.toMiliseconds(s?.expiryTimestamp)<Date.now()){i.setError(Xn.pairing_expired);const{message:o}=X("EXPIRED","pair() URI has expired. Please try again with a new connection URI.");throw new Error(o)}},this.isValidPing=async r=>{if(!At(r)){const{message:s}=X("MISSING_OR_INVALID",`ping() params: ${r}`);throw new Error(s)}const{topic:i}=r;await this.isValidPairingTopic(i)},this.isValidDisconnect=async r=>{if(!At(r)){const{message:s}=X("MISSING_OR_INVALID",`disconnect() params: ${r}`);throw new Error(s)}const{topic:i}=r;await this.isValidPairingTopic(i)},this.isValidPairingTopic=async r=>{if(!Ue(r,!1)){const{message:i}=X("MISSING_OR_INVALID",`pairing topic should be a string: ${r}`);throw new Error(i)}if(!this.pairings.keys.includes(r)){const{message:i}=X("NO_MATCHING_KEY",`pairing topic doesn't exist: ${r}`);throw new Error(i)}if(Dr(this.pairings.get(r).expiry)){await this.deletePairing(r);const{message:i}=X("EXPIRED",`pairing topic: ${r}`);throw new Error(i)}},this.core=e,this.logger=Rt(n,this.name),this.pairings=new bi(this.core,this.logger,this.name,this.storagePrefix)}get context(){return bt(this.logger)}isInitialized(){if(!this.initialized){const{message:e}=X("NOT_INITIALIZED",this.name);throw new Error(e)}}registerRelayerEvents(){this.core.relayer.on(Ne.message,async e=>{const{topic:n,message:r,transportType:i}=e;if(this.pairings.keys.includes(n)&&i!==Ie.link_mode&&!this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(r)))try{const s=await this.core.crypto.decode(n,r);el(s)?(this.core.history.set(n,s),await this.onRelayEventRequest({topic:n,payload:s})):Ha(s)&&(await this.core.history.resolve(s),await this.onRelayEventResponse({topic:n,payload:s}),this.core.history.delete(n,s.id)),await this.core.relayer.messages.ack(n,r)}catch(s){this.logger.error(s)}})}registerExpirerEvents(){this.core.expirer.on(Kt.expired,async e=>{const{topic:n}=Hg(e.target);n&&this.pairings.keys.includes(n)&&(await this.deletePairing(n,!0),this.events.emit(gi.expire,{topic:n}))})}}class T9 extends hA{constructor(e,n){super(e,n),this.core=e,this.logger=n,this.records=new Map,this.events=new $e.exports.EventEmitter,this.name=c9,this.version=u9,this.cached=[],this.initialized=!1,this.storagePrefix=bn,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(r=>this.records.set(r.id,r)),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.set=(r,i,s)=>{if(this.isInitialized(),this.logger.debug("Setting JSON-RPC request history record"),this.logger.trace({type:"method",method:"set",topic:r,request:i,chainId:s}),this.records.has(i.id))return;const o={id:i.id,topic:r,request:{method:i.method,params:i.params||null},chainId:s,expiry:Fe(J.THIRTY_DAYS)};this.records.set(o.id,o),this.persist(),this.events.emit(sn.created,o)},this.resolve=async r=>{if(this.isInitialized(),this.logger.debug("Updating JSON-RPC response history record"),this.logger.trace({type:"method",method:"update",response:r}),!this.records.has(r.id))return;const i=await this.getRecord(r.id);typeof i.response<"u"||(i.response=Yt(r)?{error:r.error}:{result:r.result},this.records.set(i.id,i),this.persist(),this.events.emit(sn.updated,i))},this.get=async(r,i)=>(this.isInitialized(),this.logger.debug("Getting record"),this.logger.trace({type:"method",method:"get",topic:r,id:i}),await this.getRecord(i)),this.delete=(r,i)=>{this.isInitialized(),this.logger.debug("Deleting record"),this.logger.trace({type:"method",method:"delete",id:i}),this.values.forEach(s=>{if(s.topic===r){if(typeof i<"u"&&s.id!==i)return;this.records.delete(s.id),this.events.emit(sn.deleted,s)}}),this.persist()},this.exists=async(r,i)=>(this.isInitialized(),this.records.has(i)?(await this.getRecord(i)).topic===r:!1),this.on=(r,i)=>{this.events.on(r,i)},this.once=(r,i)=>{this.events.once(r,i)},this.off=(r,i)=>{this.events.off(r,i)},this.removeListener=(r,i)=>{this.events.removeListener(r,i)},this.logger=Rt(n,this.name)}get context(){return bt(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get size(){return this.records.size}get keys(){return Array.from(this.records.keys())}get values(){return Array.from(this.records.values())}get pending(){const e=[];return this.values.forEach(n=>{if(typeof n.response<"u")return;const r={topic:n.topic,request:Jn(n.request.method,n.request.params,n.id),chainId:n.chainId};return e.push(r)}),e}async setJsonRpcRecords(e){await this.core.storage.setItem(this.storageKey,e)}async getJsonRpcRecords(){return await this.core.storage.getItem(this.storageKey)}getRecord(e){this.isInitialized();const n=this.records.get(e);if(!n){const{message:r}=X("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(r)}return n}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(sn.sync)}async restore(){try{const e=await this.getJsonRpcRecords();if(typeof e>"u"||!e.length)return;if(this.records.size){const{message:n}=X("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(n),new Error(n)}this.cached=e,this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",records:this.values})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}}registerEventListeners(){this.events.on(sn.created,e=>{const n=sn.created;this.logger.info(`Emitting ${n}`),this.logger.debug({type:"event",event:n,record:e})}),this.events.on(sn.updated,e=>{const n=sn.updated;this.logger.info(`Emitting ${n}`),this.logger.debug({type:"event",event:n,record:e})}),this.events.on(sn.deleted,e=>{const n=sn.deleted;this.logger.info(`Emitting ${n}`),this.logger.debug({type:"event",event:n,record:e})}),this.core.heartbeat.on(di.pulse,()=>{this.cleanup()})}cleanup(){try{this.isInitialized();let e=!1;this.records.forEach(n=>{J.toMiliseconds(n.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${n.id}`),this.records.delete(n.id),this.events.emit(sn.deleted,n,!1),e=!0)}),e&&this.persist()}catch(e){this.logger.warn(e)}}isInitialized(){if(!this.initialized){const{message:e}=X("NOT_INITIALIZED",this.name);throw new Error(e)}}}class N9 extends bA{constructor(e,n){super(e,n),this.core=e,this.logger=n,this.expirations=new Map,this.events=new $e.exports.EventEmitter,this.name=f9,this.version=l9,this.cached=[],this.initialized=!1,this.storagePrefix=bn,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(r=>this.expirations.set(r.target,r)),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.has=r=>{try{const i=this.formatTarget(r);return typeof this.getExpiration(i)<"u"}catch{return!1}},this.set=(r,i)=>{this.isInitialized();const s=this.formatTarget(r),o={target:s,expiry:i};this.expirations.set(s,o),this.checkExpiry(s,o),this.events.emit(Kt.created,{target:s,expiration:o})},this.get=r=>{this.isInitialized();const i=this.formatTarget(r);return this.getExpiration(i)},this.del=r=>{if(this.isInitialized(),this.has(r)){const i=this.formatTarget(r),s=this.getExpiration(i);this.expirations.delete(i),this.events.emit(Kt.deleted,{target:i,expiration:s})}},this.on=(r,i)=>{this.events.on(r,i)},this.once=(r,i)=>{this.events.once(r,i)},this.off=(r,i)=>{this.events.off(r,i)},this.removeListener=(r,i)=>{this.events.removeListener(r,i)},this.logger=Rt(n,this.name)}get context(){return bt(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get length(){return this.expirations.size}get keys(){return Array.from(this.expirations.keys())}get values(){return Array.from(this.expirations.values())}formatTarget(e){if(typeof e=="string")return j5(e);if(typeof e=="number")return W5(e);const{message:n}=X("UNKNOWN_TYPE",`Target type: ${typeof e}`);throw new Error(n)}async setExpirations(e){await this.core.storage.setItem(this.storageKey,e)}async getExpirations(){return await this.core.storage.getItem(this.storageKey)}async persist(){await this.setExpirations(this.values),this.events.emit(Kt.sync)}async restore(){try{const e=await this.getExpirations();if(typeof e>"u"||!e.length)return;if(this.expirations.size){const{message:n}=X("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(n),new Error(n)}this.cached=e,this.logger.debug(`Successfully Restored expirations for ${this.name}`),this.logger.trace({type:"method",method:"restore",expirations:this.values})}catch(e){this.logger.debug(`Failed to Restore expirations for ${this.name}`),this.logger.error(e)}}getExpiration(e){const n=this.expirations.get(e);if(!n){const{message:r}=X("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.warn(r),new Error(r)}return n}checkExpiry(e,n){const{expiry:r}=n;J.toMiliseconds(r)-Date.now()<=0&&this.expire(e,n)}expire(e,n){this.expirations.delete(e),this.events.emit(Kt.expired,{target:e,expiration:n})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,n)=>this.checkExpiry(n,e))}registerEventListeners(){this.core.heartbeat.on(di.pulse,()=>this.checkExpirations()),this.events.on(Kt.created,e=>{const n=Kt.created;this.logger.info(`Emitting ${n}`),this.logger.debug({type:"event",event:n,data:e}),this.persist()}),this.events.on(Kt.expired,e=>{const n=Kt.expired;this.logger.info(`Emitting ${n}`),this.logger.debug({type:"event",event:n,data:e}),this.persist()}),this.events.on(Kt.deleted,e=>{const n=Kt.deleted;this.logger.info(`Emitting ${n}`),this.logger.debug({type:"event",event:n,data:e}),this.persist()})}isInitialized(){if(!this.initialized){const{message:e}=X("NOT_INITIALIZED",this.name);throw new Error(e)}}}class U9 extends mA{constructor(e,n,r){super(e,n,r),this.core=e,this.logger=n,this.store=r,this.name=h9,this.verifyUrlV3=p9,this.storagePrefix=bn,this.version=ww,this.init=async()=>{this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&J.toMiliseconds(this.publicKey?.expiresAt)<Date.now()&&(this.logger.debug("verify v2 public key expired"),await this.removePublicKey()))},this.register=async i=>{if(!ti()||this.isDevEnv)return;const s=window.location.origin,{id:o,decryptedId:a}=i,c=`${this.verifyUrlV3}/attestation?projectId=${this.core.projectId}&origin=${s}&id=${o}&decryptedId=${a}`;try{const u=zr(),f=this.startAbortTimer(J.ONE_SECOND*5),h=await new Promise((d,l)=>{const p=()=>{window.removeEventListener("message",v),u.body.removeChild(y),l("attestation aborted")};this.abortController.signal.addEventListener("abort",p);const y=u.createElement("iframe");y.src=c,y.style.display="none",y.addEventListener("error",p,{signal:this.abortController.signal});const v=D=>{if(D.data&&typeof D.data=="string")try{const C=JSON.parse(D.data);if(C.type==="verify_attestation"){if(mf(C.attestation).payload.id!==o)return;clearInterval(f),u.body.removeChild(y),this.abortController.signal.removeEventListener("abort",p),window.removeEventListener("message",v),d(C.attestation===null?"":C.attestation)}}catch(C){this.logger.warn(C)}};u.body.appendChild(y),window.addEventListener("message",v,{signal:this.abortController.signal})});return this.logger.debug(h,"jwt attestation"),h}catch(u){this.logger.warn(u)}return""},this.resolve=async i=>{if(this.isDevEnv)return"";const{attestationId:s,hash:o,encryptedId:a}=i;if(s===""){this.logger.debug("resolve: attestationId is empty, skipping");return}if(s){if(mf(s).payload.id!==a)return;const u=await this.isValidJwtAttestation(s);if(u){if(!u.isVerified){this.logger.warn("resolve: jwt attestation: origin url not verified");return}return u}}if(!o)return;const c=this.getVerifyUrl(i?.verifyUrl);return this.fetchAttestation(o,c)},this.fetchAttestation=async(i,s)=>{this.logger.debug(`resolving attestation: ${i} from url: ${s}`);const o=this.startAbortTimer(J.ONE_SECOND*5),a=await fetch(`${s}/attestation/${i}?v2Supported=true`,{signal:this.abortController.signal});return clearTimeout(o),a.status===200?await a.json():void 0},this.getVerifyUrl=i=>{let s=i||io;return g9.includes(s)||(this.logger.info(`verify url: ${s}, not included in trusted list, assigning default: ${io}`),s=io),s},this.fetchPublicKey=async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);const i=this.startAbortTimer(J.FIVE_SECONDS),s=await fetch(`${this.verifyUrlV3}/public-key`,{signal:this.abortController.signal});return clearTimeout(i),await s.json()}catch(i){this.logger.warn(i)}},this.persistPublicKey=async i=>{this.logger.debug(i,"persisting public key to local storage"),await this.store.setItem(this.storeKey,i),this.publicKey=i},this.removePublicKey=async()=>{this.logger.debug("removing verify v2 public key from storage"),await this.store.removeItem(this.storeKey),this.publicKey=void 0},this.isValidJwtAttestation=async i=>{const s=await this.getPublicKey();try{if(s)return this.validateAttestation(i,s)}catch(a){this.logger.error(a),this.logger.warn("error validating attestation")}const o=await this.fetchAndPersistPublicKey();try{if(o)return this.validateAttestation(i,o)}catch(a){this.logger.error(a),this.logger.warn("error validating attestation")}},this.getPublicKey=async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey(),this.fetchAndPersistPublicKey=async()=>{if(this.fetchPromise)return await this.fetchPromise,this.publicKey;this.fetchPromise=new Promise(async s=>{const o=await this.fetchPublicKey();o&&(await this.persistPublicKey(o),s(o))});const i=await this.fetchPromise;return this.fetchPromise=void 0,i},this.validateAttestation=(i,s)=>{const o=NS(i,s.publicKey),a={hasExpired:J.toMiliseconds(o.exp)<Date.now(),payload:o};if(a.hasExpired)throw this.logger.warn("resolve: jwt attestation expired"),new Error("JWT attestation expired");return{origin:a.payload.origin,isScam:a.payload.isScam,isVerified:a.payload.isVerified}},this.logger=Rt(n,this.name),this.abortController=new AbortController,this.isDevEnv=Af(),this.init()}get storeKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//verify:public:key"}get context(){return bt(this.logger)}startAbortTimer(e){return this.abortController=new AbortController,setTimeout(()=>this.abortController.abort(),J.toMiliseconds(e))}}class C9 extends vA{constructor(e,n){super(e,n),this.projectId=e,this.logger=n,this.context=w9,this.registerDeviceToken=async r=>{const{clientId:i,token:s,notificationType:o,enableEncrypted:a=!1}=r,c=`${y9}/${this.projectId}/clients`;await fetch(c,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client_id:i,type:o,token:s,always_raw:a})})},this.logger=Rt(n,this.context)}}class P9 extends EA{constructor(e,n,r=!0){super(e,n,r),this.core=e,this.logger=n,this.context=m9,this.storagePrefix=bn,this.storageVersion=b9,this.events=new Map,this.shouldPersist=!1,this.init=async()=>{if(!Af())try{const i={eventId:Gg(),timestamp:Date.now(),domain:this.getAppDomain(),props:{event:"INIT",type:"",properties:{client_id:await this.core.crypto.getClientId(),user_agent:jg(this.core.relayer.protocol,this.core.relayer.version,nl)}}};await this.sendEvent([i])}catch(i){this.logger.warn(i)}},this.createEvent=i=>{const{event:s="ERROR",type:o="",properties:{topic:a,trace:c}}=i,u=Gg(),f=this.core.projectId||"",h=Date.now(),d={eventId:u,timestamp:h,props:{event:s,type:o,properties:{topic:a,trace:c}},bundleId:f,domain:this.getAppDomain(),...this.setMethods(u)};return this.telemetryEnabled&&(this.events.set(u,d),this.shouldPersist=!0),d},this.getEvent=i=>{const{eventId:s,topic:o}=i;if(s)return this.events.get(s);const a=Array.from(this.events.values()).find(c=>c.props.properties.topic===o);if(a)return{...a,...this.setMethods(a.eventId)}},this.deleteEvent=i=>{const{eventId:s}=i;this.events.delete(s),this.shouldPersist=!0},this.setEventListeners=()=>{this.core.heartbeat.on(di.pulse,async()=>{this.shouldPersist&&await this.persist(),this.events.forEach(i=>{J.fromMiliseconds(Date.now())-J.fromMiliseconds(i.timestamp)>v9&&(this.events.delete(i.eventId),this.shouldPersist=!0)})})},this.setMethods=i=>({addTrace:s=>this.addTrace(i,s),setError:s=>this.setError(i,s)}),this.addTrace=(i,s)=>{const o=this.events.get(i);o&&(o.props.properties.trace.push(s),this.events.set(i,o),this.shouldPersist=!0)},this.setError=(i,s)=>{const o=this.events.get(i);o&&(o.props.type=s,o.timestamp=Date.now(),this.events.set(i,o),this.shouldPersist=!0)},this.persist=async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1},this.restore=async()=>{try{const i=await this.core.storage.getItem(this.storageKey)||[];if(!i.length)return;i.forEach(s=>{this.events.set(s.eventId,{...s,...this.setMethods(s.eventId)})})}catch(i){this.logger.warn(i)}},this.submit=async()=>{if(!this.telemetryEnabled||this.events.size===0)return;const i=[];for(const[s,o]of this.events)o.props.type&&i.push(o);if(i.length!==0)try{if((await this.sendEvent(i)).ok)for(const s of i)this.events.delete(s.eventId),this.shouldPersist=!0}catch(s){this.logger.warn(s)}},this.sendEvent=async i=>{const s=this.getAppDomain()?"":"&sp=desktop";return await fetch(`${E9}?projectId=${this.core.projectId}&st=events_sdk&sv=js-${nl}${s}`,{method:"POST",body:JSON.stringify(i)})},this.getAppDomain=()=>zg().url,this.logger=Rt(n,this.context),this.telemetryEnabled=r,r?this.restore().then(async()=>{await this.submit(),this.setEventListeners()}):this.persist()}get storageKey(){return this.storagePrefix+this.storageVersion+this.core.customStoragePrefix+"//"+this.context}}const rl=class _w extends lA{constructor(e){super(e),this.protocol=gw,this.version=ww,this.name=Ya,this.events=new $e.exports.EventEmitter,this.initialized=!1,this.on=(o,a)=>this.events.on(o,a),this.once=(o,a)=>this.events.once(o,a),this.off=(o,a)=>this.events.off(o,a),this.removeListener=(o,a)=>this.events.removeListener(o,a),this.dispatchEnvelope=({topic:o,message:a,sessionExists:c})=>{if(!o||!a)return;const u={topic:o,message:a,publishedAt:Date.now(),transportType:Ie.link_mode};this.relayer.onLinkMessageEvent(u,{sessionExists:c})};const n=this.getGlobalCore(e?.customStoragePrefix);if(n)try{return this.customStoragePrefix=n.customStoragePrefix,this.logger=n.logger,this.heartbeat=n.heartbeat,this.crypto=n.crypto,this.history=n.history,this.expirer=n.expirer,this.storage=n.storage,this.relayer=n.relayer,this.pairing=n.pairing,this.verify=n.verify,this.echoClient=n.echoClient,this.linkModeSupportedApps=n.linkModeSupportedApps,this.eventClient=n.eventClient,this.initialized=n.initialized,this.logChunkController=n.logChunkController,n}catch(o){console.warn("Failed to copy global core",o)}this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||mw,this.customStoragePrefix=e?.customStoragePrefix?`:${e.customStoragePrefix}`:"";const r=sc({level:typeof e?.logger=="string"&&e.logger?e.logger:jO.logger,name:Ya}),{logger:i,chunkLoggerController:s}=Wl({opts:r,maxSizeInBytes:e?.maxLogBlobSizeInBytes,loggerOverride:e?.logger});this.logChunkController=s,this.logChunkController?.downloadLogsBlobInBrowser&&(window.downloadLogsBlobInBrowser=async()=>{this.logChunkController?.downloadLogsBlobInBrowser&&this.logChunkController?.downloadLogsBlobInBrowser({clientId:await this.crypto.getClientId()})}),this.logger=Rt(i,this.name),this.heartbeat=new Yf,this.crypto=new S9(this,this.logger,e?.keychain),this.history=new T9(this,this.logger),this.expirer=new N9(this,this.logger),this.storage=e?.storage?e.storage:new fA({...WO,...e?.storageOptions}),this.relayer=new D9({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new R9(this,this.logger),this.verify=new U9(this,this.logger,this.storage),this.echoClient=new C9(this.projectId||"",this.logger),this.linkModeSupportedApps=[],this.eventClient=new P9(this,this.logger,e?.telemetryEnabled),this.setGlobalCore(this)}static async init(e){const n=new _w(e);await n.initialize();const r=await n.crypto.getClientId();return await n.storage.setItem(r9,r),n}get context(){return bt(this.logger)}async start(){this.initialized||await this.initialize()}async getLogsBlob(){return this.logChunkController?.logsToBlob({clientId:await this.crypto.getClientId()})}async addLinkModeSupportedApp(e){this.linkModeSupportedApps.includes(e)||(this.linkModeSupportedApps.push(e),await this.storage.setItem(vw,this.linkModeSupportedApps))}async initialize(){this.logger.trace("Initialized");try{await this.crypto.init(),await this.history.init(),await this.expirer.init(),await this.relayer.init(),await this.heartbeat.init(),await this.pairing.init(),this.linkModeSupportedApps=await this.storage.getItem(vw)||[],this.initialized=!0,this.logger.info("Core Initialization Success")}catch(e){throw this.logger.warn(e,`Core Initialization Failure at epoch ${Date.now()}`),this.logger.error(e.message),e}}getGlobalCore(e=""){try{if(this.isGlobalCoreDisabled())return;const n=`_walletConnectCore_${e}`,r=`${n}_count`;return globalThis[r]=(globalThis[r]||0)+1,globalThis[r]>1&&console.warn(`WalletConnect Core is already initialized. This is probably a mistake and can lead to unexpected behavior. Init() was called ${globalThis[r]} times.`),globalThis[n]}catch(n){console.warn("Failed to get global WalletConnect core",n);return}}setGlobalCore(e){try{if(this.isGlobalCoreDisabled())return;const n=`_walletConnectCore_${e.opts?.customStoragePrefix||""}`;globalThis[n]=e}catch(n){console.warn("Failed to set global WalletConnect core",n)}}isGlobalCoreDisabled(){try{return typeof process<"u"&&process.env.DISABLE_GLOBAL_CORE==="true"}catch{return!0}}},xw="wc",Sw=2,Iw="client",il=`${xw}@${Sw}:${Iw}:`,sl={name:Iw,logger:"error",controller:!1,relayUrl:"wss://relay.walletconnect.org"},Aw="WALLETCONNECT_DEEPLINK_CHOICE",q9="proposal",Ow="Proposal expired",F9="session",$i=J.SEVEN_DAYS,k9="engine",Xe={wc_sessionPropose:{req:{ttl:J.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:J.FIVE_MINUTES,prompt:!1,tag:1101},reject:{ttl:J.FIVE_MINUTES,prompt:!1,tag:1120},autoReject:{ttl:J.FIVE_MINUTES,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:J.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:J.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:J.ONE_DAY,prompt:!1,tag:1104},res:{ttl:J.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:J.ONE_DAY,prompt:!1,tag:1106},res:{ttl:J.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:J.FIVE_MINUTES*3,prompt:!0,tag:1108},res:{ttl:J.FIVE_MINUTES*3,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:J.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:J.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:J.ONE_DAY,prompt:!1,tag:1112},res:{ttl:J.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:J.ONE_DAY,prompt:!1,tag:1114},res:{ttl:J.ONE_DAY,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:J.ONE_HOUR,prompt:!0,tag:1116},res:{ttl:J.ONE_HOUR,prompt:!1,tag:1117},reject:{ttl:J.FIVE_MINUTES,prompt:!1,tag:1118},autoReject:{ttl:J.FIVE_MINUTES,prompt:!1,tag:1119}}},ol={min:J.FIVE_MINUTES,max:J.SEVEN_DAYS},vn={idle:"IDLE",active:"ACTIVE"},L9={eth_sendTransaction:{key:""},eth_sendRawTransaction:{key:""},wallet_sendCalls:{key:""},solana_signTransaction:{key:"signature"},solana_signAllTransactions:{key:"transactions"},solana_signAndSendTransaction:{key:"signature"},sui_signAndExecuteTransaction:{key:"digest"},sui_signTransaction:{key:""},hedera_signAndExecuteTransaction:{key:"transactionId"},hedera_executeTransaction:{key:"transactionId"},near_signTransaction:{key:""},near_signTransactions:{key:""},tron_signTransaction:{key:"txID"},xrpl_signTransaction:{key:""},xrpl_signTransactionFor:{key:""},algo_signTxn:{key:""},sendTransfer:{key:"txid"},stacks_stxTransfer:{key:"txId"},polkadot_signTransaction:{key:""},cosmos_signDirect:{key:""}},M9="request",V9=["wc_sessionPropose","wc_sessionRequest","wc_authRequest","wc_sessionAuthenticate"],z9="wc",j9="auth",W9="authKeys",H9="pairingTopics",Y9="requests",Ka=`${z9}@${1.5}:${j9}:`,qr=`${Ka}:PUB_KEY`;class G9 extends SA{constructor(e){super(e),this.name=k9,this.events=new $e.exports,this.initialized=!1,this.requestQueue={state:vn.idle,queue:[]},this.sessionRequestQueue={state:vn.idle,queue:[]},this.emittedSessionRequests=new _5({limit:500}),this.requestQueueDelay=J.ONE_SECOND,this.expectedPairingMethodMap=new Map,this.recentlyDeletedMap=new Map,this.recentlyDeletedLimit=200,this.relayMessageCache=[],this.pendingSessions=new Map,this.init=async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.registerPairingEvents(),this.registerSubscriptionCleanup(),await this.registerLinkModeListeners(),this.client.core.pairing.register({methods:Object.keys(Xe)}),this.initialized=!0,setTimeout(async()=>{await this.processPendingMessageEvents(),this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},J.toMiliseconds(this.requestQueueDelay)))},this.connect=async n=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();const r={...n,requiredNamespaces:n.requiredNamespaces||{},optionalNamespaces:n.optionalNamespaces||{}};await this.isValidConnect(r),r.optionalNamespaces=jS(r.requiredNamespaces,r.optionalNamespaces),r.requiredNamespaces={};const{pairingTopic:i,requiredNamespaces:s,optionalNamespaces:o,sessionProperties:a,scopedProperties:c,relays:u,authentication:f,walletPay:h}=r,d=f?.[0]?.ttl||Xe.wc_sessionPropose.req.ttl||J.FIVE_MINUTES;this.validateRequestExpiry(d);let l=i,p,y=!1;try{if(l){const F=this.client.core.pairing.pairings.get(l);this.client.logger.warn("connect() with existing pairing topic is deprecated and will be removed in the next major release."),y=F.active}}catch(F){throw this.client.logger.error(`connect() -> pairing.get(${l}) failed`),F}if(!l||!y){const{topic:F,uri:T}=await this.client.core.pairing.create({internal:{skipSubscribe:!0}});l=F,p=T}if(!l){const{message:F}=X("NO_MATCHING_KEY",`connect() pairing topic: ${l}`);throw new Error(F)}const v=await this.client.core.crypto.generateKeyPair(),D=Fe(d),C={requiredNamespaces:s,optionalNamespaces:o,relays:u??[{protocol:bw}],proposer:{publicKey:v,metadata:this.client.metadata},expiryTimestamp:D,pairingTopic:l,...a&&{sessionProperties:a},...c&&{scopedProperties:c},id:wn(),...(f||h)&&{requests:{authentication:f?.map(F=>{const{domain:T,chains:K,nonce:H,uri:E,exp:w,nbf:m,type:g,statement:b,requestId:x,resources:O,signatureTypes:B}=F;return{domain:T,chains:K,nonce:H,type:g??"caip122",aud:E,version:"1",iat:new Date().toISOString(),exp:w,nbf:m,statement:b,requestId:x,resources:O,signatureTypes:B}}),walletPay:h}}},A=we("session_connect",C.id),{reject:I,resolve:S,done:z}=ri(d,Ow),M=({id:F})=>{if(F===C.id){this.client.events.off("proposal_expire",M);const T=this.pendingSessions.get(C.id);if(T){const{sessionTopic:K,publicKey:H}=T;Promise.all([this.client.core.relayer.unsubscribe(K),this.client.core.crypto.keychain.has(K)?this.client.core.crypto.deleteSymKey(K):Promise.resolve(),this.client.core.crypto.keychain.has(H)?this.client.core.crypto.deleteKeyPair(H):Promise.resolve()]).catch(E=>this.client.logger.warn(E))}this.pendingSessions.delete(C.id),this.events.emit(A,{error:{message:Ow,code:0}})}};return this.client.events.on("proposal_expire",M),this.events.once(A,({error:F,session:T})=>{this.client.events.off("proposal_expire",M),F?I(F):T&&S(T)}),await this.setProposal(C.id,C),await this.sendProposeSession({proposal:C,publishOpts:{internal:{throwOnFailedPublish:!0},tvf:{correlationId:C.id}}}).catch(F=>{throw this.deleteProposal(C.id),F}),{uri:p,approval:z}},this.pair=async n=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{return await this.client.core.pairing.pair(n)}catch(r){throw this.client.logger.error("pair() failed"),r}},this.approve=async n=>{const r=this.client.core.eventClient.createEvent({properties:{topic:n?.id?.toString(),trace:[on.session_approve_started]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch(M){throw r.setError(wi.no_internet_connection),M}try{await this.isValidProposalId(n?.id)}catch(M){throw this.client.logger.error(`approve() -> proposal.get(${n?.id}) failed`),r.setError(wi.proposal_not_found),M}try{await this.isValidApprove(n)}catch(M){throw this.client.logger.error("approve() -> isValidApprove() failed"),r.setError(wi.session_approve_namespace_validation_failure),M}const{id:i,relayProtocol:s,namespaces:o,sessionProperties:a,scopedProperties:c,sessionConfig:u,proposalRequestsResponses:f}=n,h=this.client.proposal.get(i);this.client.core.eventClient.deleteEvent({eventId:r.eventId});const{pairingTopic:d,proposer:l,requiredNamespaces:p,optionalNamespaces:y}=h;let v=this.client.core.eventClient?.getEvent({topic:d});v||(v=this.client.core.eventClient?.createEvent({type:on.session_approve_started,properties:{topic:d,trace:[on.session_approve_started,on.session_namespaces_validation_success]}}));const D=await this.client.core.crypto.generateKeyPair(),C=l.publicKey,A=await this.client.core.crypto.generateSharedKey(D,C),I={relay:{protocol:s??"irn"},namespaces:o,controller:{publicKey:D,metadata:this.client.metadata},expiry:Fe($i),...a&&{sessionProperties:a},...c&&{scopedProperties:c},...u&&{sessionConfig:u},proposalRequestsResponses:f},S=Ie.relay;v.addTrace(on.subscribing_session_topic);try{await this.client.core.relayer.subscribe(A,{transportType:S,internal:{skipSubscribe:!0}})}catch(M){throw v.setError(wi.subscribe_session_topic_failure),M}v.addTrace(on.subscribe_session_topic_success);const z={...I,topic:A,requiredNamespaces:p,optionalNamespaces:y,pairingTopic:d,acknowledged:!1,self:I.controller,peer:{publicKey:l.publicKey,metadata:l.metadata},controller:D,transportType:Ie.relay,authentication:f?.authentication,walletPayResult:f?.walletPay};await this.client.session.set(A,z),v.addTrace(on.store_session);try{await this.sendApproveSession({sessionTopic:A,proposal:h,pairingProposalResponse:{relay:{protocol:s??"irn"},responderPublicKey:D},sessionSettleRequest:I,publishOpts:{internal:{throwOnFailedPublish:!0},tvf:{correlationId:i,...this.getTVFApproveParams(z)}}}),v.addTrace(on.session_approve_publish_success)}catch(M){throw this.client.logger.error(M),this.client.session.delete(A,Re("USER_DISCONNECTED")),await this.client.core.relayer.unsubscribe(A),M}return this.client.core.eventClient.deleteEvent({eventId:v.eventId}),await this.client.core.pairing.updateMetadata({topic:d,metadata:l.metadata}),await this.deleteProposal(i),await this.client.core.pairing.activate({topic:d}),await this.setExpiry(A,Fe($i)),{topic:A,acknowledged:()=>Promise.resolve(this.client.session.get(A))}},this.reject=async n=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidReject(n)}catch(o){throw this.client.logger.error("reject() -> isValidReject() failed"),o}const{id:r,reason:i}=n;let s;try{s=this.client.proposal.get(r).pairingTopic}catch(o){throw this.client.logger.error(`reject() -> proposal.get(${r}) failed`),o}s&&await this.sendError({id:r,topic:s,error:i,rpcOpts:Xe.wc_sessionPropose.reject}),await this.deleteProposal(r)},this.update=async n=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidUpdate(n)}catch(h){throw this.client.logger.error("update() -> isValidUpdate() failed"),h}const{topic:r,namespaces:i}=n,{done:s,resolve:o,reject:a}=ri(J.FIVE_MINUTES,"Session update request expired without receiving any acknowledgement"),c=wn(),u=Pr().toString(),f=this.client.session.get(r).namespaces;return this.events.once(we("session_update",c),({error:h})=>{h?a(h):o()}),await this.client.session.update(r,{namespaces:i}),await this.sendRequest({topic:r,method:"wc_sessionUpdate",params:{namespaces:i},throwOnFailedPublish:!0,clientRpcId:c,relayRpcId:u}).catch(h=>{this.client.logger.error(h),this.client.session.update(r,{namespaces:f}),a(h)}),{acknowledged:s}},this.extend=async n=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidExtend(n)}catch(c){throw this.client.logger.error("extend() -> isValidExtend() failed"),c}const{topic:r}=n,i=wn(),{done:s,resolve:o,reject:a}=ri(J.FIVE_MINUTES,"Session extend request expired without receiving any acknowledgement");return this.events.once(we("session_extend",i),({error:c})=>{c?a(c):o()}),await this.setExpiry(r,Fe($i)),this.sendRequest({topic:r,method:"wc_sessionExtend",params:{},clientRpcId:i,throwOnFailedPublish:!0}).catch(c=>{a(c)}),{acknowledged:s}},this.request=async n=>{this.isInitialized();try{await this.isValidRequest(n)}catch(v){throw this.client.logger.error("request() -> isValidRequest() failed"),v}const{chainId:r,request:i,topic:s,expiry:o=Xe.wc_sessionRequest.req.ttl}=n,a=this.client.session.get(s);a?.transportType===Ie.relay&&await this.confirmOnlineStateOrThrow();const c=wn(),u=Pr().toString(),{done:f,resolve:h,reject:d}=ri(o,"Request expired. Please try again.");this.events.once(we("session_request",c),({error:v,result:D})=>{v?d(v):h(D)});const l="wc_sessionRequest",p=this.getAppLinkIfEnabled(a.peer.metadata,a.transportType);if(p)return await this.sendRequest({clientRpcId:c,relayRpcId:u,topic:s,method:l,params:{request:{...i,expiryTimestamp:Fe(o)},chainId:r},expiry:o,throwOnFailedPublish:!0,appLink:p}).catch(v=>d(v)),this.client.events.emit("session_request_sent",{topic:s,request:i,chainId:r,id:c}),await f();const y={request:{...i,expiryTimestamp:Fe(o)},chainId:r};return await Promise.all([new Promise(async v=>{await this.sendRequest({clientRpcId:c,relayRpcId:u,topic:s,method:l,params:y,expiry:o,throwOnFailedPublish:!0,tvf:this.getTVFParams(c,y)}).catch(D=>d(D)),this.client.events.emit("session_request_sent",{topic:s,request:i,chainId:r,id:c}),v()}),new Promise(async v=>{if(!a.sessionConfig?.disableDeepLink){const D=await K5(this.client.core.storage,Aw);await H5({id:c,topic:s,wcDeepLink:D})}v()}),f()]).then(v=>v[2])},this.respond=async n=>{this.isInitialized();const r=this.client.core.eventClient.createEvent({properties:{topic:n?.topic||n?.response?.id?.toString(),trace:[on.session_request_response_started]}});try{await this.isValidRespond(n)}catch(u){throw r.addTrace(u?.message),r.setError(wi.session_request_response_validation_failure),u}r.addTrace(on.session_request_response_validation_success);const{topic:i,response:s}=n,{id:o}=s,a=this.client.session.get(i);a.transportType===Ie.relay&&await this.confirmOnlineStateOrThrow();const c=this.getAppLinkIfEnabled(a.peer.metadata,a.transportType);try{r.addTrace(on.session_request_response_publish_started),yn(s)?await this.sendResult({id:o,topic:i,result:s.result,throwOnFailedPublish:!0,appLink:c}):Yt(s)&&await this.sendError({id:o,topic:i,error:s.error,appLink:c}),this.cleanupAfterResponse(n)}catch(u){throw r.addTrace(u?.message),r.setError(wi.session_request_response_publish_failure),u}},this.ping=async n=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidPing(n)}catch(i){throw this.client.logger.error("ping() -> isValidPing() failed"),i}const{topic:r}=n;if(this.client.session.keys.includes(r)){const i=wn(),s=Pr().toString(),{done:o,resolve:a,reject:c}=ri(J.FIVE_MINUTES,"Ping request expired without receiving any acknowledgement");this.events.once(we("session_ping",i),({error:u})=>{u?c(u):a()}),await Promise.all([this.sendRequest({topic:r,method:"wc_sessionPing",params:{},throwOnFailedPublish:!0,clientRpcId:i,relayRpcId:s}),o()])}else this.client.core.pairing.pairings.keys.includes(r)&&(this.client.logger.warn("ping() on pairing topic is deprecated and will be removed in the next major release."),await this.client.core.pairing.ping({topic:r}))},this.emit=async n=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(n);const{topic:r,event:i,chainId:s}=n,o=Pr().toString(),a=wn();await this.sendRequest({topic:r,method:"wc_sessionEvent",params:{event:i,chainId:s},throwOnFailedPublish:!0,relayRpcId:o,clientRpcId:a})},this.disconnect=async n=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidDisconnect(n);const{topic:r}=n;if(this.client.session.keys.includes(r))await this.sendRequest({topic:r,method:"wc_sessionDelete",params:Re("USER_DISCONNECTED"),throwOnFailedPublish:!0}),await this.deleteSession({topic:r,emitEvent:!1});else if(this.client.core.pairing.pairings.keys.includes(r))await this.client.core.pairing.disconnect({topic:r});else{const{message:i}=X("MISMATCHED_TOPIC",`Session or pairing topic not found: ${r}`);throw new Error(i)}},this.find=n=>(this.isInitialized(),this.client.session.getAll().filter(r=>WS(r,n))),this.getPendingSessionRequests=()=>this.client.pendingRequest.getAll(),this.authenticate=async(n,r)=>{this.isInitialized(),this.isValidAuthenticate(n);const i=r&&this.client.core.linkModeSupportedApps.includes(r)&&this.client.metadata.redirect?.linkMode,s=i?Ie.link_mode:Ie.relay;s===Ie.relay&&await this.confirmOnlineStateOrThrow();const{chains:o,statement:a="",uri:c,domain:u,nonce:f,type:h,exp:d,nbf:l,methods:p=[],expiry:y}=n,v=[...n.resources||[]],{topic:D,uri:C}=await this.client.core.pairing.create({methods:["wc_sessionAuthenticate"],transportType:s});if(this.client.logger.info({message:"Generated new pairing",pairing:{topic:D,uri:C}}),this.client.auth.authKeys.keys.includes(qr)){const{responseTopic:O,publicKey:B}=this.client.auth.authKeys.get(qr);O&&(await this.client.core.relayer.unsubscribe(O).catch(R=>this.client.logger.warn(R)),await this.client.auth.pairingTopics.delete(O,{message:"replaced",code:0}).catch(R=>this.client.logger.warn(R))),B&&this.client.core.crypto.keychain.has(B)&&await this.client.core.crypto.deleteKeyPair(B)}const A=await this.client.core.crypto.generateKeyPair(),I=Da(A);if(await Promise.all([this.client.auth.authKeys.set(qr,{responseTopic:I,publicKey:A}),this.client.auth.pairingTopics.set(I,{topic:I,pairingTopic:D})]),await this.client.core.relayer.subscribe(I,{transportType:s}),this.client.logger.info(`sending request to new pairing topic: ${D}`),p.length>0){const{namespace:O}=Ia(o[0]);let B=yS(O,"request",p);Ba(v)&&(B=mS(B,v.pop())),v.push(B)}const S=y&&y>Xe.wc_sessionAuthenticate.req.ttl?y:Xe.wc_sessionAuthenticate.req.ttl,z={authPayload:{type:h??"caip122",chains:o,statement:a,aud:c,domain:u,version:"1",nonce:f,iat:new Date().toISOString(),exp:d,nbf:l,resources:v},requester:{publicKey:A,metadata:this.client.metadata},expiryTimestamp:Fe(S)},M={eip155:{chains:o,methods:[...new Set(["personal_sign",...p])],events:["chainChanged","accountsChanged"]}},F={requiredNamespaces:{},optionalNamespaces:M,relays:[{protocol:"irn"}],pairingTopic:D,proposer:{publicKey:A,metadata:this.client.metadata},expiryTimestamp:Fe(Xe.wc_sessionPropose.req.ttl),id:wn()},{done:T,resolve:K,reject:H}=ri(S,"Request expired"),E=wn(),w=we("session_connect",F.id),m=we("session_request",E),g=async({error:O,session:B})=>{this.events.off(m,b),O?H(O):B&&K({session:B})},b=async O=>{if(await this.deletePendingAuthRequest(E,{message:"fulfilled",code:0}),O.error){const P=Re("WC_METHOD_UNSUPPORTED","wc_sessionAuthenticate");return O.error.code===P.code?void 0:(this.events.off(w,g),H(O.error.message))}await this.deleteProposal(F.id),this.events.off(w,g);const{cacaos:B,responder:R}=O.result,U=[],L=[];for(const P of B){await _g({cacao:P,projectId:this.client.core.projectId})||(this.client.logger.error(P,"Signature verification failed"),H(Re("SESSION_SETTLEMENT_FAILED","Signature verification failed")));const{p:Y}=P,G=Ba(Y.resources),V=[Bf(Y.iss)],N=Oa(Y.iss);if(G){const k=t1(G),j=n1(G);U.push(...k),V.push(...j)}for(const k of V)L.push(`${k}:${N}`)}const q=await this.client.core.crypto.generateSharedKey(A,R.publicKey);let W;U.length>0&&(W={topic:q,acknowledged:!0,self:{publicKey:A,metadata:this.client.metadata},peer:R,controller:R.publicKey,expiry:Fe($i),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:"irn"},pairingTopic:D,namespaces:y1([...new Set(U)],[...new Set(L)]),transportType:s},await this.client.core.relayer.subscribe(q,{transportType:s}),await this.client.session.set(q,W),D&&await this.client.core.pairing.updateMetadata({topic:D,metadata:R.metadata}),W=this.client.session.get(q)),this.client.metadata.redirect?.linkMode&&R.metadata.redirect?.linkMode&&R.metadata.redirect?.universal&&r&&(this.client.core.addLinkModeSupportedApp(R.metadata.redirect.universal),this.client.session.update(q,{transportType:Ie.link_mode})),K({auths:B,session:W})};this.events.once(w,g),this.events.once(m,b);let x;try{if(i){const O=Jn("wc_sessionAuthenticate",z,E);this.client.core.history.set(D,O);const B=await this.client.core.crypto.encode("",O,{type:js,encoding:Rr});x=Na(r,D,B)}else await Promise.all([this.sendRequest({topic:D,method:"wc_sessionAuthenticate",params:z,expiry:n.expiry,throwOnFailedPublish:!0,clientRpcId:E}),this.sendRequest({topic:D,method:"wc_sessionPropose",params:F,expiry:Xe.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:F.id})])}catch(O){throw this.events.off(w,g),this.events.off(m,b),O}return await this.setProposal(F.id,F),await this.setAuthRequest(E,{request:{...z,verifyContext:{}},pairingTopic:D,transportType:s}),{uri:x??C,response:T}},this.approveSessionAuthenticate=async n=>{const{id:r,auths:i}=n,s=this.client.core.eventClient.createEvent({properties:{topic:r.toString(),trace:[yi.authenticated_session_approve_started]}});try{this.isInitialized()}catch(v){throw s.setError(so.no_internet_connection),v}const o=this.getPendingAuthRequest(r);if(!o)throw s.setError(so.authenticated_session_pending_request_not_found),new Error(`Could not find pending auth request with id ${r}`);const a=o.transportType||Ie.relay;a===Ie.relay&&await this.confirmOnlineStateOrThrow();const c=o.requester.publicKey,u=await this.client.core.crypto.generateKeyPair(),f=Da(c),h={type:Hn,receiverPublicKey:c,senderPublicKey:u},d=[],l=[];for(const v of i){if(!await _g({cacao:v,projectId:this.client.core.projectId})){s.setError(so.invalid_cacao);const S=Re("SESSION_SETTLEMENT_FAILED","Signature verification failed");throw await this.sendError({id:r,topic:f,error:S,encodeOpts:h}),new Error(S.message)}s.addTrace(yi.cacaos_verified);const{p:D}=v,C=Ba(D.resources),A=[Bf(D.iss)],I=Oa(D.iss);if(C){const S=t1(C),z=n1(C);d.push(...S),A.push(...z)}for(const S of A)l.push(`${S}:${I}`)}const p=await this.client.core.crypto.generateSharedKey(u,c);s.addTrace(yi.create_authenticated_session_topic);let y;if(d?.length>0){y={topic:p,acknowledged:!0,self:{publicKey:u,metadata:this.client.metadata},peer:{publicKey:c,metadata:o.requester.metadata},controller:c,expiry:Fe($i),authentication:i,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:"irn"},pairingTopic:o.pairingTopic,namespaces:y1([...new Set(d)],[...new Set(l)]),transportType:a},s.addTrace(yi.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(p,{transportType:a})}catch(v){throw s.setError(so.subscribe_authenticated_session_topic_failure),v}s.addTrace(yi.subscribe_authenticated_session_topic_success),await this.client.session.set(p,y),s.addTrace(yi.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:o.pairingTopic,metadata:o.requester.metadata})}s.addTrace(yi.publishing_authenticated_session_approve);try{await this.sendResult({topic:f,id:r,result:{cacaos:i,responder:{publicKey:u,metadata:this.client.metadata}},encodeOpts:h,throwOnFailedPublish:!0,appLink:this.getAppLinkIfEnabled(o.requester.metadata,a)})}catch(v){throw s.setError(so.authenticated_session_approve_publish_failure),v}return await this.client.auth.requests.delete(r,{message:"fulfilled",code:0}),await this.client.core.pairing.activate({topic:o.pairingTopic}),this.client.core.eventClient.deleteEvent({eventId:s.eventId}),{session:y}},this.rejectSessionAuthenticate=async n=>{this.isInitialized();const{id:r,reason:i}=n,s=this.getPendingAuthRequest(r);if(!s)throw new Error(`Could not find pending auth request with id ${r}`);s.transportType===Ie.relay&&await this.confirmOnlineStateOrThrow();const o=s.requester.publicKey,a=await this.client.core.crypto.generateKeyPair(),c=Da(o),u={type:Hn,receiverPublicKey:o,senderPublicKey:a};await this.sendError({id:r,topic:c,error:i,encodeOpts:u,rpcOpts:Xe.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(s.requester.metadata,s.transportType)}),await this.client.auth.requests.delete(r,{message:"rejected",code:0}),await this.deleteProposal(r)},this.formatAuthMessage=n=>{this.isInitialized();const{request:r,iss:i}=n;return $g(r,i)},this.processRelayMessageCache=()=>{setTimeout(async()=>{if(this.relayMessageCache.length!==0)for(;this.relayMessageCache.length>0;)try{const n=this.relayMessageCache.shift();n&&await this.onRelayMessage(n)}catch(n){this.client.logger.error(n)}},50)},this.cleanupDuplicatePairings=async n=>{if(n.pairingTopic)try{const r=this.client.core.pairing.pairings.get(n.pairingTopic),i=this.client.core.pairing.pairings.getAll().filter(s=>s.peerMetadata?.url&&s.peerMetadata?.url===n.peer.metadata.url&&s.topic&&s.topic!==r.topic);if(i.length===0)return;this.client.logger.info(`Cleaning up ${i.length} duplicate pairing(s)`),await Promise.all(i.map(s=>this.client.core.pairing.disconnect({topic:s.topic}))),this.client.logger.info("Duplicate pairings clean up finished")}catch(r){this.client.logger.error(r)}},this.deleteSession=async n=>{const{topic:r,expirerHasDeleted:i=!1,emitEvent:s=!0,id:o=0}=n,{self:a}=this.client.session.get(r);await this.client.core.relayer.unsubscribe(r),await this.client.session.delete(r,Re("USER_DISCONNECTED")),this.addToRecentlyDeleted(r,"session"),this.client.core.crypto.keychain.has(a.publicKey)&&await this.client.core.crypto.deleteKeyPair(a.publicKey),this.client.core.crypto.keychain.has(r)&&await this.client.core.crypto.deleteSymKey(r),i||this.client.core.expirer.del(r),this.client.core.storage.removeItem(Aw).catch(c=>this.client.logger.warn(c)),r===this.sessionRequestQueue.queue[0]?.topic&&(this.sessionRequestQueue.state=vn.idle),await Promise.all(this.getPendingSessionRequests().filter(c=>c.topic===r).map(c=>this.deletePendingSessionRequest(c.id,Re("USER_DISCONNECTED")))),s&&this.client.events.emit("session_delete",{id:o,topic:r})},this.deleteProposal=async(n,r)=>{if(r)try{const i=this.client.proposal.get(n);this.client.core.eventClient.getEvent({topic:i.pairingTopic})?.setError(wi.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(n,Re("USER_DISCONNECTED")),r?Promise.resolve():this.client.core.expirer.del(n)]),this.addToRecentlyDeleted(n,"proposal")},this.deletePendingSessionRequest=async(n,r,i=!1)=>{await Promise.all([this.client.pendingRequest.delete(n,r),i?Promise.resolve():this.client.core.expirer.del(n)]),this.addToRecentlyDeleted(n,"request"),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter(s=>s.id!==n),i&&(this.sessionRequestQueue.state=vn.idle,this.client.events.emit("session_request_expire",{id:n}))},this.deletePendingAuthRequest=async(n,r,i=!1)=>{await Promise.all([this.client.auth.requests.delete(n,r),i?Promise.resolve():this.client.core.expirer.del(n)])},this.setExpiry=async(n,r)=>{this.client.session.keys.includes(n)&&(this.client.core.expirer.set(n,r),await this.client.session.update(n,{expiry:r}))},this.setProposal=async(n,r)=>{this.client.core.expirer.set(n,Fe(Xe.wc_sessionPropose.req.ttl)),await this.client.proposal.set(n,r)},this.setAuthRequest=async(n,r)=>{const{request:i,pairingTopic:s,transportType:o=Ie.relay}=r;this.client.core.expirer.set(n,i.expiryTimestamp),await this.client.auth.requests.set(n,{authPayload:i.authPayload,requester:i.requester,expiryTimestamp:i.expiryTimestamp,id:n,pairingTopic:s,verifyContext:i.verifyContext,transportType:o})},this.setPendingSessionRequest=async n=>{const{id:r,topic:i,params:s,verifyContext:o}=n,a=s.request.expiryTimestamp||Fe(Xe.wc_sessionRequest.req.ttl);this.client.core.expirer.set(r,a),await this.client.pendingRequest.set(r,{id:r,topic:i,params:s,verifyContext:o})},this.sendRequest=async n=>{const{topic:r,method:i,params:s,expiry:o,relayRpcId:a,clientRpcId:c,throwOnFailedPublish:u,appLink:f,tvf:h,publishOpts:d={}}=n,l=Jn(i,s,c);let p;const y=!!f;try{const C=y?Rr:Je;p=await this.client.core.crypto.encode(r,l,{encoding:C})}catch(C){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${r} failed`),C}let v;if(V9.includes(i)){const C=Wt(JSON.stringify(l)),A=Wt(p);v=await this.client.core.verify.register({id:A,decryptedId:C})}const D={...Xe[i].req,...d};if(D.attestation=v,o&&(D.ttl=o),a&&(D.id=a),this.client.core.history.set(r,l),y){const C=Na(f,r,p);await global.Linking.openURL(C,this.client.name)}else D.tvf={...h,correlationId:l.id},u?(D.internal={...D.internal,throwOnFailedPublish:!0},await this.client.core.relayer.publish(r,p,D)):this.client.core.relayer.publish(r,p,D).catch(C=>this.client.logger.error(C));return l.id},this.sendProposeSession=async n=>{const{proposal:r,publishOpts:i}=n,s=Jn("wc_sessionPropose",r,r.id);this.client.core.history.set(r.pairingTopic,s);const o=await this.client.core.crypto.encode(r.pairingTopic,s,{encoding:Je}),a=Wt(JSON.stringify(s)),c=Wt(o),u=await this.client.core.verify.register({id:c,decryptedId:a});await this.client.core.relayer.publishCustom({payload:{pairingTopic:r.pairingTopic,sessionProposal:o},opts:{...i,publishMethod:"wc_proposeSession",attestation:u}})},this.sendApproveSession=async n=>{const{sessionTopic:r,pairingProposalResponse:i,proposal:s,sessionSettleRequest:o,publishOpts:a}=n,c=Wa(s.id,i),u=await this.client.core.crypto.encode(s.pairingTopic,c,{encoding:Je}),f=Jn("wc_sessionSettle",o,a?.id),h=await this.client.core.crypto.encode(r,f,{encoding:Je});this.client.core.history.set(r,f),await this.client.core.relayer.publishCustom({payload:{sessionTopic:r,pairingTopic:s.pairingTopic,sessionProposalResponse:u,sessionSettlementRequest:h},opts:{...a,publishMethod:"wc_approveSession"}})},this.sendResult=async n=>{const{id:r,topic:i,result:s,throwOnFailedPublish:o,encodeOpts:a,appLink:c}=n,u=Wa(r,s);let f;const h=c&&typeof global?.Linking<"u";try{const p=h?Rr:Je;f=await this.client.core.crypto.encode(i,u,{...a||{},encoding:p})}catch(p){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${i} failed`),p}let d,l;try{d=await this.client.core.history.get(i,r);const p=d.request;try{l=this.getTVFParams(r,p.params,s)}catch(y){this.client.logger.warn(`sendResult() -> getTVFParams() failed: ${y?.message}`)}}catch(p){throw this.client.logger.error(`sendResult() -> history.get(${i}, ${r}) failed`),p}if(h){const p=Na(c,i,f);await global.Linking.openURL(p,this.client.name)}else{const p=d.request.method,y=Xe[p].res;y.tvf={...l,correlationId:r},o?(y.internal={...y.internal,throwOnFailedPublish:!0},await this.client.core.relayer.publish(i,f,y)):this.client.core.relayer.publish(i,f,y).catch(v=>this.client.logger.error(v))}await this.client.core.history.resolve(u)},this.sendError=async n=>{const{id:r,topic:i,error:s,encodeOpts:o,rpcOpts:a,appLink:c}=n,u=$f(r,s);let f;const h=c&&typeof global?.Linking<"u";try{const l=h?Rr:Je;f=await this.client.core.crypto.encode(i,u,{...o||{},encoding:l})}catch(l){throw await this.cleanup(),this.client.logger.error(`sendError() -> core.crypto.encode() for topic ${i} failed`),l}let d;try{d=await this.client.core.history.get(i,r)}catch(l){throw this.client.logger.error(`sendError() -> history.get(${i}, ${r}) failed`),l}if(h){const l=Na(c,i,f);await global.Linking.openURL(l,this.client.name)}else{const l=d.request.method,p=a||Xe[l].res;this.client.core.relayer.publish(i,f,p)}await this.client.core.history.resolve(u)},this.cleanup=async()=>{const n=[],r=[];this.client.session.getAll().forEach(i=>{let s=!1;Dr(i.expiry)&&(s=!0),this.client.core.crypto.keychain.has(i.topic)||(s=!0),s&&n.push(i.topic)}),this.client.proposal.getAll().forEach(i=>{Dr(i.expiryTimestamp)&&r.push(i.id)}),await Promise.all([...n.map(i=>this.deleteSession({topic:i})),...r.map(i=>this.deleteProposal(i))])},this.onProviderMessageEvent=async n=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(n):await this.onRelayMessage(n)},this.onRelayEventRequest=async n=>{this.requestQueue.queue.push(n),await this.processRequestsQueue()},this.processRequestsQueue=async()=>{if(this.requestQueue.state===vn.active){this.client.logger.info("Request queue already active, skipping...");return}for(this.client.logger.info(`Request queue starting with ${this.requestQueue.queue.length} requests`);this.requestQueue.queue.length>0;){this.requestQueue.state=vn.active;const n=this.requestQueue.queue.shift();if(n)try{await this.processRequest(n)}catch(r){this.client.logger.warn(r)}}this.requestQueue.state=vn.idle},this.processRequest=async n=>{const{topic:r,payload:i,attestation:s,transportType:o,encryptedId:a}=n,c=i.method;if(!this.shouldIgnorePairingRequest({topic:r,requestMethod:c}))switch(c){case"wc_sessionPropose":return await this.onSessionProposeRequest({topic:r,payload:i,attestation:s,encryptedId:a});case"wc_sessionSettle":return await this.onSessionSettleRequest(r,i);case"wc_sessionUpdate":return await this.onSessionUpdateRequest(r,i);case"wc_sessionExtend":return await this.onSessionExtendRequest(r,i);case"wc_sessionPing":return await this.onSessionPingRequest(r,i);case"wc_sessionDelete":return await this.onSessionDeleteRequest(r,i);case"wc_sessionRequest":return await this.onSessionRequest({topic:r,payload:i,attestation:s,encryptedId:a,transportType:o});case"wc_sessionEvent":return await this.onSessionEventRequest(r,i);case"wc_sessionAuthenticate":return await this.onSessionAuthenticateRequest({topic:r,payload:i,attestation:s,encryptedId:a,transportType:o});default:return this.client.logger.info(`Unsupported request method ${c}`)}},this.onRelayEventResponse=async n=>{const{topic:r,payload:i,transportType:s}=n,o=(await this.client.core.history.get(r,i.id)).request.method;switch(o){case"wc_sessionPropose":return this.onSessionProposeResponse(r,i,s);case"wc_sessionSettle":return this.onSessionSettleResponse(r,i);case"wc_sessionUpdate":return this.onSessionUpdateResponse(r,i);case"wc_sessionExtend":return this.onSessionExtendResponse(r,i);case"wc_sessionPing":return this.onSessionPingResponse(r,i);case"wc_sessionRequest":return this.onSessionRequestResponse(r,i);case"wc_sessionAuthenticate":return this.onSessionAuthenticateResponse(r,i);default:return this.client.logger.info(`Unsupported response method ${o}`)}},this.onRelayEventUnknownPayload=n=>{const{topic:r}=n,{message:i}=X("MISSING_OR_INVALID",`Decoded payload on topic ${r} is not identifiable as a JSON-RPC request or a response.`);throw new Error(i)},this.shouldIgnorePairingRequest=n=>{const{topic:r,requestMethod:i}=n,s=this.expectedPairingMethodMap.get(r);return!s||s.includes(i)?!1:!!(s.includes("wc_sessionAuthenticate")&&this.client.events.listenerCount("session_authenticate")>0)},this.onSessionProposeRequest=async n=>{const{topic:r,payload:i,attestation:s,encryptedId:o}=n,{params:a,id:c}=i;try{const u=this.client.core.eventClient.getEvent({topic:r});this.client.events.listenerCount("session_proposal")===0&&(console.warn("No listener for session_proposal event"),u?.setError(Xn.proposal_listener_not_found)),this.isValidConnect({...i.params});const f=a.expiryTimestamp||Fe(Xe.wc_sessionPropose.req.ttl),h={id:c,pairingTopic:r,expiryTimestamp:f,attestation:s,encryptedId:o,...a};await this.setProposal(c,h);const d=await this.getVerifyContext({attestationId:s,hash:Wt(JSON.stringify(i)),encryptedId:o,metadata:h.proposer.metadata});u?.addTrace(mn.emit_session_proposal),this.client.events.emit("session_proposal",{id:c,params:h,verifyContext:d})}catch(u){await this.sendError({id:c,topic:r,error:u,rpcOpts:Xe.wc_sessionPropose.autoReject}),this.client.logger.error(u)}},this.onSessionProposeResponse=async(n,r,i)=>{const{id:s}=r;if(yn(r)){const{result:o}=r;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",result:o});const a=this.client.proposal.get(s);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",proposal:a});const c=a.proposer.publicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",selfPublicKey:c});const u=o.responderPublicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",peerPublicKey:u});const f=await this.client.core.crypto.generateSharedKey(c,u);this.pendingSessions.set(s,{sessionTopic:f,pairingTopic:n,proposalId:s,publicKey:c});const h=await this.client.core.relayer.subscribe(f,{transportType:i});this.client.logger.trace({type:"method",method:"onSessionProposeResponse",subscriptionId:h}),await this.client.core.pairing.activate({topic:n})}else if(Yt(r)){await this.deleteProposal(s);const o=we("session_connect",s);if(this.events.listenerCount(o)===0)throw new Error(`emitting ${o} without any listeners, 954`);this.events.emit(o,{error:r.error})}},this.onSessionSettleRequest=async(n,r)=>{const{id:i,params:s}=r;try{this.isValidSessionSettleRequest(s);const{relay:o,controller:a,expiry:c,namespaces:u,sessionProperties:f,scopedProperties:h,sessionConfig:d,proposalRequestsResponses:l}=r.params,p=[...this.pendingSessions.values()].find(D=>D.sessionTopic===n);if(!p)return this.client.logger.error(`Pending session not found for topic ${n}`);const y=this.client.proposal.get(p.proposalId),v={topic:n,relay:o,expiry:c,namespaces:u,acknowledged:!0,pairingTopic:p.pairingTopic,requiredNamespaces:y.requiredNamespaces,optionalNamespaces:y.optionalNamespaces,controller:a.publicKey,self:{publicKey:p.publicKey,metadata:this.client.metadata},peer:{publicKey:a.publicKey,metadata:a.metadata},...f&&{sessionProperties:f},...h&&{scopedProperties:h},...d&&{sessionConfig:d},transportType:Ie.relay,authentication:l?.authentication,walletPayResult:l?.walletPay};await this.client.session.set(v.topic,v),await this.setExpiry(v.topic,v.expiry),await this.client.core.pairing.updateMetadata({topic:p.pairingTopic,metadata:v.peer.metadata}),this.pendingSessions.delete(p.proposalId),this.deleteProposal(p.proposalId,!1),this.cleanupDuplicatePairings(v),await this.sendResult({id:r.id,topic:n,throwOnFailedPublish:!0,result:!0}),this.client.events.emit("session_connect",{session:v}),this.events.emit(we("session_connect",p.proposalId),{session:v})}catch(o){await this.sendError({id:i,topic:n,error:o}),this.client.logger.error(o)}},this.onSessionSettleResponse=async(n,r)=>{const{id:i}=r;yn(r)?(await this.client.session.update(n,{acknowledged:!0}),this.events.emit(we("session_approve",i),{})):Yt(r)&&(await this.deleteSession({topic:n,emitEvent:!1}),this.events.emit(we("session_approve",i),{error:r.error}))},this.onSessionUpdateRequest=async(n,r)=>{const{params:i,id:s}=r;try{const o=`${n}_session_update`,a=Gs.get(o);if(a&&this.isRequestOutOfSync(a,s)){this.client.logger.warn(`Discarding out of sync request - ${s}`),this.sendError({id:s,topic:n,error:Re("INVALID_UPDATE_REQUEST")});return}this.isValidUpdate({topic:n,...i});try{Gs.set(o,s),await this.client.session.update(n,{namespaces:i.namespaces}),await this.sendResult({id:s,topic:n,result:!0})}catch(c){throw Gs.delete(o),c}this.client.events.emit("session_update",{id:s,topic:n,params:i})}catch(o){await this.sendError({id:s,topic:n,error:o}),this.client.logger.error(o)}},this.isRequestOutOfSync=(n,r)=>r.toString().slice(0,-3)<n.toString().slice(0,-3),this.onSessionUpdateResponse=(n,r)=>{const{id:i}=r,s=we("session_update",i);if(this.events.listenerCount(s)===0)throw new Error(`emitting ${s} without any listeners`);yn(r)?this.events.emit(we("session_update",i),{}):Yt(r)&&this.events.emit(we("session_update",i),{error:r.error})},this.onSessionExtendRequest=async(n,r)=>{const{id:i}=r;try{this.isValidExtend({topic:n}),await this.setExpiry(n,Fe($i)),await this.sendResult({id:i,topic:n,result:!0}),this.client.events.emit("session_extend",{id:i,topic:n})}catch(s){await this.sendError({id:i,topic:n,error:s}),this.client.logger.error(s)}},this.onSessionExtendResponse=(n,r)=>{const{id:i}=r,s=we("session_extend",i);if(this.events.listenerCount(s)===0)throw new Error(`emitting ${s} without any listeners`);yn(r)?this.events.emit(we("session_extend",i),{}):Yt(r)&&this.events.emit(we("session_extend",i),{error:r.error})},this.onSessionPingRequest=async(n,r)=>{const{id:i}=r;try{this.isValidPing({topic:n}),await this.sendResult({id:i,topic:n,result:!0,throwOnFailedPublish:!0}),this.client.events.emit("session_ping",{id:i,topic:n})}catch(s){await this.sendError({id:i,topic:n,error:s}),this.client.logger.error(s)}},this.onSessionPingResponse=(n,r)=>{const{id:i}=r,s=we("session_ping",i);setTimeout(()=>{if(this.events.listenerCount(s)===0)throw new Error(`emitting ${s} without any listeners 2176`);yn(r)?this.events.emit(we("session_ping",i),{}):Yt(r)&&this.events.emit(we("session_ping",i),{error:r.error})},500)},this.onSessionDeleteRequest=async(n,r)=>{const{id:i}=r;try{await this.isValidDisconnect({topic:n,reason:r.params}),this.cleanupPendingSentRequestsForTopic({topic:n,error:Re("USER_DISCONNECTED")}),await this.deleteSession({topic:n,id:i})}catch(s){this.client.logger.error(s)}},this.onSessionRequest=async n=>{const{topic:r,payload:i,attestation:s,encryptedId:o,transportType:a}=n,{id:c,params:u}=i;try{await this.isValidRequest({topic:r,...u});const f=this.client.session.get(r),h=await this.getVerifyContext({attestationId:s,hash:Wt(JSON.stringify(Jn("wc_sessionRequest",u,c))),encryptedId:o,metadata:f.peer.metadata,transportType:a}),d={id:c,topic:r,params:u,verifyContext:h};await this.setPendingSessionRequest(d),a===Ie.link_mode&&f.peer.metadata.redirect?.universal&&this.client.core.addLinkModeSupportedApp(f.peer.metadata.redirect?.universal),this.client.signConfig?.disableRequestQueue?this.emitSessionRequest(d):(this.addSessionRequestToSessionRequestQueue(d),this.processSessionRequestQueue())}catch(f){await this.sendError({id:c,topic:r,error:f}),this.client.logger.error(f)}},this.onSessionRequestResponse=(n,r)=>{const{id:i}=r,s=we("session_request",i);if(this.events.listenerCount(s)===0)throw new Error(`emitting ${s} without any listeners`);yn(r)?this.events.emit(we("session_request",i),{result:r.result}):Yt(r)&&this.events.emit(we("session_request",i),{error:r.error})},this.onSessionEventRequest=async(n,r)=>{const{id:i,params:s}=r;try{const o=`${n}_session_event_${s.event.name}`,a=Gs.get(o);if(a&&this.isRequestOutOfSync(a,i)){this.client.logger.info(`Discarding out of sync request - ${i}`);return}this.isValidEmit({topic:n,...s}),this.client.events.emit("session_event",{id:i,topic:n,params:s}),Gs.set(o,i)}catch(o){await this.sendError({id:i,topic:n,error:o}),this.client.logger.error(o)}},this.onSessionAuthenticateResponse=(n,r)=>{const{id:i}=r;this.client.logger.trace({type:"method",method:"onSessionAuthenticateResponse",topic:n,payload:r}),yn(r)?this.events.emit(we("session_request",i),{result:r.result}):Yt(r)&&this.events.emit(we("session_request",i),{error:r.error})},this.onSessionAuthenticateRequest=async n=>{const{topic:r,payload:i,attestation:s,encryptedId:o,transportType:a}=n;try{const{requester:c,authPayload:u,expiryTimestamp:f}=i.params,h=await this.getVerifyContext({attestationId:s,hash:Wt(JSON.stringify(i)),encryptedId:o,metadata:c.metadata,transportType:a}),d={requester:c,pairingTopic:r,id:i.id,authPayload:u,verifyContext:h,expiryTimestamp:f};await this.setAuthRequest(i.id,{request:d,pairingTopic:r,transportType:a}),a===Ie.link_mode&&c.metadata.redirect?.universal&&this.client.core.addLinkModeSupportedApp(c.metadata.redirect.universal),this.client.events.emit("session_authenticate",{topic:r,params:i.params,id:i.id,verifyContext:h})}catch(c){this.client.logger.error(c);const u=i.params.requester.publicKey,f=await this.client.core.crypto.generateKeyPair(),h=this.getAppLinkIfEnabled(i.params.requester.metadata,a),d={type:Hn,receiverPublicKey:u,senderPublicKey:f};await this.sendError({id:i.id,topic:r,error:c,encodeOpts:d,rpcOpts:Xe.wc_sessionAuthenticate.autoReject,appLink:h})}},this.addSessionRequestToSessionRequestQueue=n=>{this.sessionRequestQueue.queue.push(n)},this.cleanupAfterResponse=n=>{this.deletePendingSessionRequest(n.response.id,{message:"fulfilled",code:0}),setTimeout(()=>{this.sessionRequestQueue.state=vn.idle,this.processSessionRequestQueue()},J.toMiliseconds(this.requestQueueDelay))},this.cleanupPendingSentRequestsForTopic=({topic:n,error:r})=>{const i=this.client.core.history.pending;i.length>0&&i.filter(s=>s.topic===n&&s.request.method==="wc_sessionRequest").forEach(s=>{this.events.emit(we("session_request",s.request.id),{error:r})})},this.processSessionRequestQueue=()=>{if(this.sessionRequestQueue.state===vn.active){this.client.logger.info("session request queue is already active.");return}const n=this.sessionRequestQueue.queue[0];if(!n){this.client.logger.info("session request queue is empty.");return}try{this.emitSessionRequest(n)}catch(r){this.client.logger.error(r)}},this.emitSessionRequest=n=>{if(this.emittedSessionRequests.has(n.id)){this.client.logger.warn({id:n.id},`Skipping emitting \`session_request\` event for duplicate request. id: ${n.id}`);return}this.sessionRequestQueue.state=vn.active,this.emittedSessionRequests.add(n.id),this.client.events.emit("session_request",n)},this.cleanupInProgress=!1,this.cleanupOrphanedSubscriptions=async()=>{const n=this.client.core.relayer.subscriber.topics;if(n.length===0)return;const r=new Set(this.client.session.keys),i=new Set(this.client.core.pairing.pairings.keys),s=new Set([...this.pendingSessions.values()].map(a=>a.sessionTopic));let o;if(this.client.auth.authKeys.keys.includes(qr)){const{responseTopic:a}=this.client.auth.authKeys.get(qr);o=a}for(const a of n)if(!r.has(a)&&!i.has(a)&&!s.has(a)&&a!==o){this.client.logger.info(`Cleaning up orphaned subscriber topic: ${a}`);try{await this.client.core.relayer.subscriber.unsubscribe(a)}catch(c){this.client.logger.warn(c,`Failed to clean up orphaned subscription: ${a}`)}}},this.onPairingCreated=n=>{if(n.methods&&this.expectedPairingMethodMap.set(n.topic,n.methods),n.active)return;const r=this.client.proposal.getAll().find(i=>i.pairingTopic===n.topic);r&&this.onSessionProposeRequest({topic:n.topic,payload:Jn("wc_sessionPropose",{...r,requiredNamespaces:r.requiredNamespaces,optionalNamespaces:r.optionalNamespaces,relays:r.relays,proposer:r.proposer,sessionProperties:r.sessionProperties,scopedProperties:r.scopedProperties},r.id),attestation:r.attestation,encryptedId:r.encryptedId})},this.isValidConnect=async n=>{if(!At(n)){const{message:u}=X("MISSING_OR_INVALID",`connect() params: ${JSON.stringify(n)}`);throw new Error(u)}const{pairingTopic:r,requiredNamespaces:i,optionalNamespaces:s,sessionProperties:o,scopedProperties:a,relays:c}=n;if(ke(r)||await this.isValidPairingTopic(r),!tI(c,!0)){const{message:u}=X("MISSING_OR_INVALID",`connect() relays: ${c}`);throw new Error(u)}if(i&&!ke(i)&&Ys(i)!==0){const u="requiredNamespaces are deprecated and are automatically assigned to optionalNamespaces";["fatal","error","silent"].includes(this.client.logger.level)?console.warn(u):this.client.logger.warn(u),this.validateNamespaces(i,"requiredNamespaces")}if(s&&!ke(s)&&Ys(s)!==0&&this.validateNamespaces(s,"optionalNamespaces"),o&&!ke(o)&&this.validateSessionProps(o,"sessionProperties"),a&&!ke(a)){this.validateSessionProps(a,"scopedProperties");const u=Object.keys(i||{}).concat(Object.keys(s||{}));if(!Object.keys(a).every(f=>u.includes(f.split(":")[0])))throw new Error(`Scoped properties must be a subset of required/optional namespaces, received: ${JSON.stringify(a)}, required/optional namespaces: ${JSON.stringify(u)}`)}},this.validateNamespaces=(n,r)=>{const i=eI(n,"connect()",r);if(i)throw new Error(i.message)},this.isValidApprove=async n=>{if(!At(n))throw new Error(X("MISSING_OR_INVALID",`approve() params: ${n}`).message);const{id:r,namespaces:i,relayProtocol:s,sessionProperties:o,scopedProperties:a}=n;this.checkRecentlyDeleted(r),await this.isValidProposalId(r);const c=this.client.proposal.get(r),u=Nf(i,"approve()");if(u)throw new Error(u.message);const f=x1(c.requiredNamespaces,i,"approve()");if(f)throw new Error(f.message);if(!Ue(s,!0)){const{message:h}=X("MISSING_OR_INVALID",`approve() relayProtocol: ${s}`);throw new Error(h)}if(o&&!ke(o)&&this.validateSessionProps(o,"sessionProperties"),a&&!ke(a)){this.validateSessionProps(a,"scopedProperties");const h=new Set(Object.keys(i));if(!Object.keys(a).every(d=>h.has(d.split(":")[0])))throw new Error(`Scoped properties must be a subset of approved namespaces, received: ${JSON.stringify(a)}, approved namespaces: ${Array.from(h).join(", ")}`)}},this.isValidReject=async n=>{if(!At(n)){const{message:s}=X("MISSING_OR_INVALID",`reject() params: ${n}`);throw new Error(s)}const{id:r,reason:i}=n;if(this.checkRecentlyDeleted(r),await this.isValidProposalId(r),!rI(i)){const{message:s}=X("MISSING_OR_INVALID",`reject() reason: ${JSON.stringify(i)}`);throw new Error(s)}},this.isValidSessionSettleRequest=n=>{if(!At(n)){const{message:u}=X("MISSING_OR_INVALID",`onSessionSettleRequest() params: ${n}`);throw new Error(u)}const{relay:r,controller:i,namespaces:s,expiry:o}=n;if(!v1(r)){const{message:u}=X("MISSING_OR_INVALID","onSessionSettleRequest() relay protocol should be a string");throw new Error(u)}const a=ZS(i,"onSessionSettleRequest()");if(a)throw new Error(a.message);const c=Nf(s,"onSessionSettleRequest()");if(c)throw new Error(c.message);if(Dr(o)){const{message:u}=X("EXPIRED","onSessionSettleRequest()");throw new Error(u)}},this.isValidUpdate=async n=>{if(!At(n)){const{message:c}=X("MISSING_OR_INVALID",`update() params: ${n}`);throw new Error(c)}const{topic:r,namespaces:i}=n;this.checkRecentlyDeleted(r),await this.isValidSessionTopic(r);const s=this.client.session.get(r),o=Nf(i,"update()");if(o)throw new Error(o.message);const a=x1(s.requiredNamespaces,i,"update()");if(a)throw new Error(a.message)},this.isValidExtend=async n=>{if(!At(n)){const{message:i}=X("MISSING_OR_INVALID",`extend() params: ${n}`);throw new Error(i)}const{topic:r}=n;this.checkRecentlyDeleted(r),await this.isValidSessionTopic(r)},this.isValidRequest=async n=>{if(!At(n)){const{message:c}=X("MISSING_OR_INVALID",`request() params: ${n}`);throw new Error(c)}const{topic:r,request:i,chainId:s,expiry:o}=n;this.checkRecentlyDeleted(r),await this.isValidSessionTopic(r);const{namespaces:a}=this.client.session.get(r);if(!E1(a,s)){const{message:c}=X("MISSING_OR_INVALID",`request() chainId: ${s}`);throw new Error(c)}if(!iI(i)){const{message:c}=X("MISSING_OR_INVALID",`request() ${JSON.stringify(i)}`);throw new Error(c)}if(!aI(a,s,i.method)){const{message:c}=X("MISSING_OR_INVALID",`request() method: ${i.method}`);throw new Error(c)}this.validateRequestExpiry(o)},this.isValidRespond=async n=>{if(!At(n)){const{message:o}=X("MISSING_OR_INVALID",`respond() params: ${n}`);throw new Error(o)}const{topic:r,response:i}=n;try{await this.isValidSessionTopic(r)}catch(o){throw n?.response?.id&&this.cleanupAfterResponse(n),o}if(!sI(i)){const{message:o}=X("MISSING_OR_INVALID",`respond() response: ${JSON.stringify(i)}`);throw new Error(o)}const s=this.client.pendingRequest.get(i.id);if(s.topic!==r){const{message:o}=X("MISMATCHED_TOPIC",`Request response topic mismatch. reqId: ${i.id}, expected topic: ${s.topic}, received topic: ${r}`);throw new Error(o)}},this.isValidPing=async n=>{if(!At(n)){const{message:i}=X("MISSING_OR_INVALID",`ping() params: ${n}`);throw new Error(i)}const{topic:r}=n;await this.isValidSessionOrPairingTopic(r)},this.isValidEmit=async n=>{if(!At(n)){const{message:a}=X("MISSING_OR_INVALID",`emit() params: ${n}`);throw new Error(a)}const{topic:r,event:i,chainId:s}=n;await this.isValidSessionTopic(r);const{namespaces:o}=this.client.session.get(r);if(!E1(o,s)){const{message:a}=X("MISSING_OR_INVALID",`emit() chainId: ${s}`);throw new Error(a)}if(!oI(i)){const{message:a}=X("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(i)}`);throw new Error(a)}if(!cI(o,s,i.name)){const{message:a}=X("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(i)}`);throw new Error(a)}},this.isValidDisconnect=async n=>{if(!At(n)){const{message:i}=X("MISSING_OR_INVALID",`disconnect() params: ${n}`);throw new Error(i)}const{topic:r}=n;await this.isValidSessionOrPairingTopic(r)},this.isValidAuthenticate=n=>{const{chains:r,uri:i,domain:s,nonce:o}=n;if(!Array.isArray(r)||r.length===0)throw new Error("chains is required and must be a non-empty array");if(!Ue(i,!1))throw new Error("uri is required parameter");if(!Ue(s,!1))throw new Error("domain is required parameter");if(!Ue(o,!1))throw new Error("nonce is required parameter");if([...new Set(r.map(c=>Ia(c).namespace))].length>1)throw new Error("Multi-namespace requests are not supported. Please request single namespace only.");const{namespace:a}=Ia(r[0]);if(a!=="eip155")throw new Error("Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.")},this.getVerifyContext=async n=>{const{attestationId:r,hash:i,encryptedId:s,metadata:o,transportType:a}=n,c={verified:{verifyUrl:o.verifyUrl||io,validation:"UNKNOWN",origin:o.url||""}};try{if(a===Ie.link_mode){const f=this.getAppLinkIfEnabled(o,a);return c.verified.validation=f&&new URL(f).origin===new URL(o.url).origin?"VALID":"INVALID",c}const u=await this.client.core.verify.resolve({attestationId:r,hash:i,encryptedId:s,verifyUrl:o.verifyUrl});u&&(c.verified.origin=u.origin,c.verified.isScam=u.isScam,c.verified.validation=u.origin===new URL(o.url).origin?"VALID":"INVALID")}catch(u){this.client.logger.warn(u)}return this.client.logger.debug(`Verify context: ${JSON.stringify(c)}`),c},this.validateSessionProps=(n,r)=>{Object.values(n).forEach((i,s)=>{if(i==null){const{message:o}=X("MISSING_OR_INVALID",`${r} must contain an existing value for each key. Received: ${i} for key ${Object.keys(n)[s]}`);throw new Error(o)}})},this.getPendingAuthRequest=n=>{const r=this.client.auth.requests.get(n);return typeof r=="object"?r:void 0},this.addToRecentlyDeleted=(n,r)=>{if(this.recentlyDeletedMap.set(n,r),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let i=0;const s=this.recentlyDeletedLimit/2;for(const o of this.recentlyDeletedMap.keys()){if(i++>=s)break;this.recentlyDeletedMap.delete(o)}}},this.checkRecentlyDeleted=n=>{const r=this.recentlyDeletedMap.get(n);if(r){const{message:i}=X("MISSING_OR_INVALID",`Record was recently deleted - ${r}: ${n}`);throw new Error(i)}},this.isLinkModeEnabled=(n,r)=>!n||r!==Ie.link_mode?!1:this.client.metadata?.redirect?.linkMode===!0&&this.client.metadata?.redirect?.universal!==void 0&&this.client.metadata?.redirect?.universal!==""&&n?.redirect?.universal!==void 0&&n?.redirect?.universal!==""&&n?.redirect?.linkMode===!0&&this.client.core.linkModeSupportedApps.includes(n.redirect.universal)&&typeof global?.Linking<"u",this.getAppLinkIfEnabled=(n,r)=>this.isLinkModeEnabled(n,r)?n?.redirect?.universal:void 0,this.handleLinkModeMessage=({url:n})=>{if(!n||!n.includes("wc_ev")||!n.includes("topic"))return;const r=Yg(n,"topic")||"",i=decodeURIComponent(Yg(n,"wc_ev")||""),s=this.client.session.keys.includes(r);s&&this.client.session.update(r,{transportType:Ie.link_mode}),this.client.core.dispatchEnvelope({topic:r,message:i,sessionExists:s})},this.registerLinkModeListeners=async()=>{if(Af()||Wn()&&this.client.metadata.redirect?.linkMode){const n=global?.Linking;if(typeof n<"u"){n.addEventListener("url",this.handleLinkModeMessage,this.client.name);const r=await n.getInitialURL();r&&setTimeout(()=>{this.handleLinkModeMessage({url:r})},50)}}},this.getTVFApproveParams=n=>{try{const r=p1(n.namespaces),i=FS(n.namespaces),s=kS(n.namespaces),o=n.sessionProperties,a=n.scopedProperties;return{approvedChains:r,approvedMethods:i,approvedEvents:s,sessionProperties:o,scopedProperties:a}}catch(r){return this.client.logger.warn(r,"Error getting TVF approve params"),{}}},this.getTVFParams=(n,r,i)=>{if(!r.request?.method)return{};const s={correlationId:n,rpcMethods:[r.request.method],chainId:r.chainId};try{const o=this.extractTxHashesFromResult(r.request,i);s.txHashes=o,s.contractAddresses=this.isValidContractData(r.request.params)?[r.request.params?.[0]?.to]:[]}catch(o){this.client.logger.warn(o,"Error getting TVF params")}return s},this.isValidContractData=n=>{if(!n)return!1;try{const r=n?.data||n?.[0]?.data;if(!r.startsWith("0x"))return!1;const i=r.slice(2);return/^[0-9a-fA-F]*$/.test(i)?i.length%2===0:!1}catch{}return!1},this.extractTxHashesFromResult=(n,r)=>{try{if(!r)return[];const i=n.method,s=L9[i];if(i==="sui_signTransaction")return[sS(r.transactionBytes)];if(i==="near_signTransaction")return[Jg(r)];if(i==="near_signTransactions")return r.map(a=>Jg(a));if(i==="xrpl_signTransactionFor"||i==="xrpl_signTransaction")return[r.tx_json?.hash];if(i==="polkadot_signTransaction")return[OI({transaction:n.params.transactionPayload,signature:r.signature})];if(i==="algo_signTxn")return Ki(r)?r.map(a=>Xg(a)):[Xg(r)];if(i==="cosmos_signDirect")return[aS(r)];if(i==="wallet_sendCalls")return cS(r);if(typeof r=="string")return[r];const o=r[s.key];if(Ki(o))return i==="solana_signAllTransactions"?o.map(a=>iS(a)):o;if(typeof o=="string")return[o]}catch(i){this.client.logger.warn(i,"Error extracting tx hashes from result")}return[]}}async processPendingMessageEvents(){try{const e=this.client.session.keys,n=this.client.core.relayer.messages.getWithoutAck(e);for(const[r,i]of Object.entries(n))for(const s of i)try{await this.onProviderMessageEvent({topic:r,message:s,publishedAt:Date.now()})}catch{this.client.logger.warn(`Error processing pending message event for topic: ${r}, message: ${s}`)}}catch(e){this.client.logger.warn(e,"processPendingMessageEvents failed")}}isInitialized(){if(!this.initialized){const{message:e}=X("NOT_INITIALIZED",this.name);throw new Error(e)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(Ne.message,e=>{this.onProviderMessageEvent(e)})}async onRelayMessage(e){const{topic:n,message:r,attestation:i,transportType:s}=e,{publicKey:o}=this.client.auth.authKeys.keys.includes(qr)?this.client.auth.authKeys.get(qr):{publicKey:void 0};try{const a=await this.client.core.crypto.decode(n,r,{receiverPublicKey:o,encoding:s===Ie.link_mode?Rr:Je});el(a)?(this.client.core.history.set(n,a),await this.onRelayEventRequest({topic:n,payload:a,attestation:i,transportType:s,encryptedId:Wt(r)})):Ha(a)?(await this.client.core.history.resolve(a),await this.onRelayEventResponse({topic:n,payload:a,transportType:s}),this.client.core.history.delete(n,a.id)):(this.client.logger.error(`onRelayMessage() -> unknown payload: ${JSON.stringify(a)}`),await this.onRelayEventUnknownPayload({topic:n,payload:a,transportType:s})),await this.client.core.relayer.messages.ack(n,r)}catch(a){this.client.logger.error(`onRelayMessage() -> failed to process an inbound message: ${r}`),this.client.logger.error(a)}}registerExpirerEvents(){this.client.core.expirer.on(Kt.expired,async e=>{const{topic:n,id:r}=Hg(e.target);if(r&&this.client.pendingRequest.keys.includes(r))return await this.deletePendingSessionRequest(r,X("EXPIRED"),!0);if(r&&this.client.auth.requests.keys.includes(r))return await this.deletePendingAuthRequest(r,X("EXPIRED"),!0);n?this.client.session.keys.includes(n)&&(await this.deleteSession({topic:n,expirerHasDeleted:!0}),this.client.events.emit("session_expire",{topic:n})):r&&(await this.deleteProposal(r,!0),this.client.events.emit("proposal_expire",{id:r}))})}registerSubscriptionCleanup(){this.client.core.heartbeat.on("heartbeat_pulse",async()=>{if(!this.cleanupInProgress){this.cleanupInProgress=!0;try{await this.cleanupOrphanedSubscriptions()}catch(e){this.client.logger.warn(e)}finally{this.cleanupInProgress=!1}}})}registerPairingEvents(){this.client.core.pairing.events.on(gi.create,e=>this.onPairingCreated(e)),this.client.core.pairing.events.on(gi.delete,e=>{this.addToRecentlyDeleted(e.topic,"pairing")})}isValidPairingTopic(e){if(!Ue(e,!1)){const{message:n}=X("MISSING_OR_INVALID",`pairing topic should be a string: ${e}`);throw new Error(n)}if(!this.client.core.pairing.pairings.keys.includes(e)){const{message:n}=X("NO_MATCHING_KEY",`pairing topic doesn't exist: ${e}`);throw new Error(n)}if(Dr(this.client.core.pairing.pairings.get(e).expiry)){const{message:n}=X("EXPIRED",`pairing topic: ${e}`);throw new Error(n)}}async isValidSessionTopic(e){if(!Ue(e,!1)){const{message:n}=X("MISSING_OR_INVALID",`session topic should be a string: ${e}`);throw new Error(n)}if(this.checkRecentlyDeleted(e),!this.client.session.keys.includes(e)){const{message:n}=X("NO_MATCHING_KEY",`session topic doesn't exist: ${e}`);throw new Error(n)}if(Dr(this.client.session.get(e).expiry)){await this.deleteSession({topic:e});const{message:n}=X("EXPIRED",`session topic: ${e}`);throw new Error(n)}if(!this.client.core.crypto.keychain.has(e)){const{message:n}=X("MISSING_OR_INVALID",`session topic does not exist in keychain: ${e}`);throw await this.deleteSession({topic:e}),new Error(n)}}async isValidSessionOrPairingTopic(e){if(this.checkRecentlyDeleted(e),this.client.session.keys.includes(e))await this.isValidSessionTopic(e);else if(this.client.core.pairing.pairings.keys.includes(e))this.isValidPairingTopic(e);else if(Ue(e,!1)){const{message:n}=X("NO_MATCHING_KEY",`session or pairing topic doesn't exist: ${e}`);throw new Error(n)}else{const{message:n}=X("MISSING_OR_INVALID",`session or pairing topic should be a string: ${e}`);throw new Error(n)}}async isValidProposalId(e){if(!nI(e)){const{message:n}=X("MISSING_OR_INVALID",`proposal id should be a number: ${e}`);throw new Error(n)}if(!this.client.proposal.keys.includes(e)){const{message:n}=X("NO_MATCHING_KEY",`proposal id doesn't exist: ${e}`);throw new Error(n)}if(Dr(this.client.proposal.get(e).expiryTimestamp)){await this.deleteProposal(e);const{message:n}=X("EXPIRED",`proposal id: ${e}`);throw new Error(n)}}validateRequestExpiry(e){if(e&&!lI(e,ol)){const{message:n}=X("MISSING_OR_INVALID",`request() expiry: ${e}. Expiry must be a number (in seconds) between ${ol.min} and ${ol.max}`);throw new Error(n)}}}class K9 extends bi{constructor(e,n){super(e,n,q9,il),this.core=e,this.logger=n}}class Bw extends bi{constructor(e,n){super(e,n,F9,il),this.core=e,this.logger=n}}class Z9 extends bi{constructor(e,n){super(e,n,M9,il,r=>r.id),this.core=e,this.logger=n}}class J9 extends bi{constructor(e,n){super(e,n,W9,Ka,()=>qr),this.core=e,this.logger=n}}class X9 extends bi{constructor(e,n){super(e,n,H9,Ka),this.core=e,this.logger=n}}class Q9 extends bi{constructor(e,n){super(e,n,Y9,Ka,r=>r.id),this.core=e,this.logger=n}}class _9{constructor(e,n){this.core=e,this.logger=n,this.authKeys=new J9(this.core,this.logger),this.pairingTopics=new X9(this.core,this.logger),this.requests=new Q9(this.core,this.logger)}async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}}let $9=class $w extends xA{constructor(e){super(e),this.protocol=xw,this.version=Sw,this.name=sl.name,this.events=new $e.exports.EventEmitter,this.on=(r,i)=>this.events.on(r,i),this.once=(r,i)=>this.events.once(r,i),this.off=(r,i)=>this.events.off(r,i),this.removeListener=(r,i)=>this.events.removeListener(r,i),this.removeAllListeners=r=>this.events.removeAllListeners(r),this.connect=async r=>{try{return await this.engine.connect(r)}catch(i){throw this.logger.error(i.message),i}},this.pair=async r=>{try{return await this.engine.pair(r)}catch(i){throw this.logger.error(i.message),i}},this.approve=async r=>{try{return await this.engine.approve(r)}catch(i){throw this.logger.error(i.message),i}},this.reject=async r=>{try{return await this.engine.reject(r)}catch(i){throw this.logger.error(i.message),i}},this.update=async r=>{try{return await this.engine.update(r)}catch(i){throw this.logger.error(i.message),i}},this.extend=async r=>{try{return await this.engine.extend(r)}catch(i){throw this.logger.error(i.message),i}},this.request=async r=>{try{return await this.engine.request(r)}catch(i){throw this.logger.error(i.message),i}},this.respond=async r=>{try{return await this.engine.respond(r)}catch(i){throw this.logger.error(i.message),i}},this.ping=async r=>{try{return await this.engine.ping(r)}catch(i){throw this.logger.error(i.message),i}},this.emit=async r=>{try{return await this.engine.emit(r)}catch(i){throw this.logger.error(i.message),i}},this.disconnect=async r=>{try{return await this.engine.disconnect(r)}catch(i){throw this.logger.error(i.message),i}},this.find=r=>{try{return this.engine.find(r)}catch(i){throw this.logger.error(i.message),i}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(r){throw this.logger.error(r.message),r}},this.authenticate=async(r,i)=>{try{return await this.engine.authenticate(r,i)}catch(s){throw this.logger.error(s.message),s}},this.formatAuthMessage=r=>{try{return this.engine.formatAuthMessage(r)}catch(i){throw this.logger.error(i.message),i}},this.approveSessionAuthenticate=async r=>{try{return await this.engine.approveSessionAuthenticate(r)}catch(i){throw this.logger.error(i.message),i}},this.rejectSessionAuthenticate=async r=>{try{return await this.engine.rejectSessionAuthenticate(r)}catch(i){throw this.logger.error(i.message),i}},this.name=e?.name||sl.name,this.metadata=L5(e?.metadata),this.signConfig=e?.signConfig;const n=A1({logger:e?.logger||sl.logger,name:this.name});this.logger=n,this.core=e?.core||new rl(e),this.session=new Bw(this.core,this.logger),this.proposal=new K9(this.core,this.logger),this.pendingRequest=new Z9(this.core,this.logger),this.engine=new G9(this),this.auth=new _9(this.core,this.logger)}static async init(e){const n=new $w(e);return await n.initialize(),n}get context(){return bt(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace("Initialized");try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.auth.init(),await this.engine.init(),this.logger.info("SignClient Initialization Success")}catch(e){throw this.logger.info("SignClient Initialization Failure"),this.logger.error(e.message),e}}};const eB=Bw,tB=$9;class nB extends $e.exports{constructor(){super()}}class Dw{constructor(e){this.opts=e}}class Rw{constructor(e){this.client=e}}var rB=Object.defineProperty,iB=Object.defineProperties,sB=Object.getOwnPropertyDescriptors,Tw=Object.getOwnPropertySymbols,oB=Object.prototype.hasOwnProperty,aB=Object.prototype.propertyIsEnumerable,al=(t,e,n)=>e in t?rB(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,cB=(t,e)=>{for(var n in e||(e={}))oB.call(e,n)&&al(t,n,e[n]);if(Tw)for(var n of Tw(e))aB.call(e,n)&&al(t,n,e[n]);return t},uB=(t,e)=>iB(t,sB(e)),ve=(t,e,n)=>al(t,typeof e!="symbol"?e+"":e,n);class fB extends Rw{constructor(e){super(e),ve(this,"signClient"),ve(this,"init",async()=>{this.signClient=await tB.init({core:this.client.core,metadata:this.client.metadata,signConfig:this.client.signConfig}),this.signClient.core.eventClient.init().catch(n=>{this.client.logger.warn(n)})}),ve(this,"pair",async n=>{await this.client.core.pairing.pair(n)}),ve(this,"approveSession",async n=>{const{topic:r,acknowledged:i}=await this.signClient.approve(uB(cB({},n),{id:n.id,namespaces:n.namespaces,sessionProperties:n.sessionProperties,scopedProperties:n.scopedProperties,sessionConfig:n.sessionConfig,proposalRequestsResponses:n?.proposalRequestsResponses}));return await i(),this.signClient.session.get(r)}),ve(this,"rejectSession",async n=>await this.signClient.reject(n)),ve(this,"updateSession",async n=>await this.signClient.update(n)),ve(this,"extendSession",async n=>await this.signClient.extend(n)),ve(this,"respondSessionRequest",async n=>await this.signClient.respond(n)),ve(this,"disconnectSession",async n=>await this.signClient.disconnect(n)),ve(this,"emitSessionEvent",async n=>await this.signClient.emit(n)),ve(this,"getActiveSessions",()=>this.signClient.session.getAll().reduce((n,r)=>(n[r.topic]=r,n),{})),ve(this,"getPendingSessionProposals",()=>this.signClient.proposal.getAll()),ve(this,"getPendingSessionRequests",()=>this.signClient.getPendingSessionRequests()),ve(this,"approveSessionAuthenticate",async n=>await this.signClient.approveSessionAuthenticate(n)),ve(this,"rejectSessionAuthenticate",async n=>await this.signClient.rejectSessionAuthenticate(n)),ve(this,"formatAuthMessage",n=>this.signClient.formatAuthMessage(n)),ve(this,"registerDeviceToken",n=>this.client.core.echoClient.registerDeviceToken(n)),ve(this,"on",(n,r)=>(this.setEvent(n,"off"),this.setEvent(n,"on"),this.client.events.on(n,r))),ve(this,"once",(n,r)=>(this.setEvent(n,"off"),this.setEvent(n,"once"),this.client.events.once(n,r))),ve(this,"off",(n,r)=>(this.setEvent(n,"off"),this.client.events.off(n,r))),ve(this,"removeListener",(n,r)=>(this.setEvent(n,"removeListener"),this.client.events.removeListener(n,r))),ve(this,"onSessionRequest",n=>{this.client.events.emit("session_request",n)}),ve(this,"onSessionProposal",n=>{this.client.events.emit("session_proposal",n)}),ve(this,"onSessionDelete",n=>{this.client.events.emit("session_delete",n)}),ve(this,"onProposalExpire",n=>{this.client.events.emit("proposal_expire",n)}),ve(this,"onSessionRequestExpire",n=>{this.client.events.emit("session_request_expire",n)}),ve(this,"onSessionRequestAuthenticate",n=>{this.client.events.emit("session_authenticate",n)}),ve(this,"setEvent",(n,r)=>{switch(n){case"session_request":this.signClient.events[r]("session_request",this.onSessionRequest);break;case"session_proposal":this.signClient.events[r]("session_proposal",this.onSessionProposal);break;case"session_delete":this.signClient.events[r]("session_delete",this.onSessionDelete);break;case"proposal_expire":this.signClient.events[r]("proposal_expire",this.onProposalExpire);break;case"session_request_expire":this.signClient.events[r]("session_request_expire",this.onSessionRequestExpire);break;case"session_authenticate":this.signClient.events[r]("session_authenticate",this.onSessionRequestAuthenticate);break}}),this.signClient={}}}const lB={decryptMessage:async t=>{const e={core:new rl({storageOptions:t.storageOptions,storage:t.storage,customStoragePrefix:t.customStoragePrefix})};await e.core.crypto.init();const n=e.core.crypto.decode(t.topic,t.encryptedMessage);return e.core=null,n},getMetadata:async t=>{const e={core:new rl({storageOptions:t.storageOptions,storage:t.storage,customStoragePrefix:t.customStoragePrefix}),sessionStore:null};e.sessionStore=new eB(e.core,e.core.logger),await e.sessionStore.init();const n=e.sessionStore.get(t.topic),r=n?.peer.metadata;return e.core=null,e.sessionStore=null,r}};function hB(t){const e=t.toLowerCase();return e.includes("pay.")||e.includes("pay=")||e.includes("pay_")||e.includes("pay%2e")||e.includes("pay%3d")||e.includes("pay%5f")}var dB=Object.defineProperty,Nw=Object.getOwnPropertySymbols,pB=Object.prototype.hasOwnProperty,gB=Object.prototype.propertyIsEnumerable,cl=(t,e,n)=>e in t?dB(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,wB=(t,e)=>{for(var n in e||(e={}))pB.call(e,n)&&cl(t,n,e[n]);if(Nw)for(var n of Nw(e))gB.call(e,n)&&cl(t,n,e[n]);return t},Ee=(t,e,n)=>cl(t,typeof e!="symbol"?e+"":e,n);const Uw=class ey extends Dw{constructor(e){super(e),Ee(this,"name"),Ee(this,"core"),Ee(this,"logger"),Ee(this,"events",new $e.exports),Ee(this,"engine"),Ee(this,"metadata"),Ee(this,"signConfig"),Ee(this,"pay"),Ee(this,"on",(n,r)=>this.engine.on(n,r)),Ee(this,"once",(n,r)=>this.engine.once(n,r)),Ee(this,"off",(n,r)=>this.engine.off(n,r)),Ee(this,"removeListener",(n,r)=>this.engine.removeListener(n,r)),Ee(this,"pair",async n=>{try{return await this.engine.pair(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"approveSession",async n=>{try{return await this.engine.approveSession(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"rejectSession",async n=>{try{return await this.engine.rejectSession(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"updateSession",async n=>{try{return await this.engine.updateSession(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"extendSession",async n=>{try{return await this.engine.extendSession(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"respondSessionRequest",async n=>{try{return await this.engine.respondSessionRequest(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"disconnectSession",async n=>{try{return await this.engine.disconnectSession(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"emitSessionEvent",async n=>{try{return await this.engine.emitSessionEvent(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"getActiveSessions",()=>{try{return this.engine.getActiveSessions()}catch(n){throw this.logger.error(n.message),n}}),Ee(this,"getPendingSessionProposals",()=>{try{return this.engine.getPendingSessionProposals()}catch(n){throw this.logger.error(n.message),n}}),Ee(this,"getPendingSessionRequests",()=>{try{return this.engine.getPendingSessionRequests()}catch(n){throw this.logger.error(n.message),n}}),Ee(this,"registerDeviceToken",n=>{try{return this.engine.registerDeviceToken(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"approveSessionAuthenticate",n=>{try{return this.engine.approveSessionAuthenticate(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"rejectSessionAuthenticate",n=>{try{return this.engine.rejectSessionAuthenticate(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"formatAuthMessage",n=>{try{return this.engine.formatAuthMessage(n)}catch(r){throw this.logger.error(r.message),r}}),this.metadata=e.metadata,this.name=e.name||Hf,this.signConfig=e.signConfig,this.core=e.core,this.logger=this.core.logger,this.engine=new fB(this),this.pay=void 0}static async init(e){const n=new ey(e);return await n.initialize(),n}async initialize(){this.logger.trace("Initialized");try{await this.engine.init(),G1.isAvailable()&&(this.pay=new G1(wB({clientId:await this.core.crypto.getClientId(),appId:this.core.projectId},this.opts.payConfig||{}))),this.logger.info("WalletKit Initialization Success")}catch(e){throw this.logger.info("WalletKit Initialization Failure"),this.logger.error(e.message),e}}};Ee(Uw,"notifications",lB);let Cw=Uw;const yB=Cw;We.CLIENT_CONTEXT=Hf,We.CLIENT_STORAGE_OPTIONS=D7,We.CLIENT_STORAGE_PREFIX=B7,We.IWalletKit=Dw,We.IWalletKitEngine=Rw,We.IWalletKitEvents=nB,We.PROTOCOL=K1,We.PROTOCOL_VERSION=O7,We.REQUEST_CONTEXT=R7,We.WalletKit=yB,We.default=Cw,We.isPaymentLink=hB,Object.defineProperty(We,"__esModule",{value:!0})});
|
|
42
|
+
***************************************************************************** */var $f=function(t,e){return $f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var i in r)r.hasOwnProperty(i)&&(n[i]=r[i])},$f(t,e)};function C9(t,e){$f(t,e);function n(){this.constructor=t}t.prototype=e===null?Object.create(e):(n.prototype=e.prototype,new n)}var el=function(){return el=Object.assign||function(e){for(var n,r=1,i=arguments.length;r<i;r++){n=arguments[r];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},el.apply(this,arguments)};function L9(t,e){var n={};for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&e.indexOf(r)<0&&(n[r]=t[r]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(t);i<r.length;i++)e.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(t,r[i])&&(n[r[i]]=t[r[i]]);return n}function V9(t,e,n,r){var i=arguments.length,s=i<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,n):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(t,e,n,r);else for(var a=t.length-1;a>=0;a--)(o=t[a])&&(s=(i<3?o(s):i>3?o(e,n,s):o(e,n))||s);return i>3&&s&&Object.defineProperty(e,n,s),s}function k9(t,e){return function(n,r){e(n,r,t)}}function F9(t,e){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(t,e)}function z9(t,e,n,r){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(f){try{u(r.next(f))}catch(h){o(h)}}function c(f){try{u(r.throw(f))}catch(h){o(h)}}function u(f){f.done?s(f.value):i(f.value).then(a,c)}u((r=r.apply(t,e||[])).next())})}function M9(t,e){var n={label:0,sent:function(){if(s[0]&1)throw s[1];return s[1]},trys:[],ops:[]},r,i,s,o;return o={next:a(0),throw:a(1),return:a(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function a(u){return function(f){return c([u,f])}}function c(u){if(r)throw new TypeError("Generator is already executing.");for(;n;)try{if(r=1,i&&(s=u[0]&2?i.return:u[0]?i.throw||((s=i.return)&&s.call(i),0):i.next)&&!(s=s.call(i,u[1])).done)return s;switch(i=0,s&&(u=[u[0]&2,s.value]),u[0]){case 0:case 1:s=u;break;case 4:return n.label++,{value:u[1],done:!1};case 5:n.label++,i=u[1],u=[0];continue;case 7:u=n.ops.pop(),n.trys.pop();continue;default:if(s=n.trys,!(s=s.length>0&&s[s.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!s||u[1]>s[0]&&u[1]<s[3])){n.label=u[1];break}if(u[0]===6&&n.label<s[1]){n.label=s[1],s=u;break}if(s&&n.label<s[2]){n.label=s[2],n.ops.push(u);break}s[2]&&n.ops.pop(),n.trys.pop();continue}u=e.call(t,n)}catch(f){u=[6,f],i=0}finally{r=s=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function K9(t,e,n,r){r===void 0&&(r=n),t[r]=e[n]}function j9(t,e){for(var n in t)n!=="default"&&!e.hasOwnProperty(n)&&(e[n]=t[n])}function tl(t){var e=typeof Symbol=="function"&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&typeof t.length=="number")return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function oy(t,e){var n=typeof Symbol=="function"&&t[Symbol.iterator];if(!n)return t;var r=n.call(t),i,s=[],o;try{for(;(e===void 0||e-- >0)&&!(i=r.next()).done;)s.push(i.value)}catch(a){o={error:a}}finally{try{i&&!i.done&&(n=r.return)&&n.call(r)}finally{if(o)throw o.error}}return s}function W9(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(oy(arguments[e]));return t}function H9(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;for(var r=Array(t),i=0,e=0;e<n;e++)for(var s=arguments[e],o=0,a=s.length;o<a;o++,i++)r[i]=s[o];return r}function no(t){return this instanceof no?(this.v=t,this):new no(t)}function G9(t,e,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(t,e||[]),i,s=[];return i={},o("next"),o("throw"),o("return"),i[Symbol.asyncIterator]=function(){return this},i;function o(d){r[d]&&(i[d]=function(l){return new Promise(function(p,w){s.push([d,l,p,w])>1||a(d,l)})})}function a(d,l){try{c(r[d](l))}catch(p){h(s[0][3],p)}}function c(d){d.value instanceof no?Promise.resolve(d.value.v).then(u,f):h(s[0][2],d)}function u(d){a("next",d)}function f(d){a("throw",d)}function h(d,l){d(l),s.shift(),s.length&&a(s[0][0],s[0][1])}}function Z9(t){var e,n;return e={},r("next"),r("throw",function(i){throw i}),r("return"),e[Symbol.iterator]=function(){return this},e;function r(i,s){e[i]=t[i]?function(o){return(n=!n)?{value:no(t[i](o)),done:i==="return"}:s?s(o):o}:s}}function X9(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e=t[Symbol.asyncIterator],n;return e?e.call(t):(t=typeof tl=="function"?tl(t):t[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(s){n[s]=t[s]&&function(o){return new Promise(function(a,c){o=t[s](o),i(a,c,o.done,o.value)})}}function i(s,o,a,c){Promise.resolve(c).then(function(u){s({value:u,done:a})},o)}}function Y9(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function J9(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function Q9(t){return t&&t.__esModule?t:{default:t}}function _9(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function $9(t,e,n){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,n),n}var eA=Object.freeze({__proto__:null,__extends:C9,get __assign(){return el},__rest:L9,__decorate:V9,__param:k9,__metadata:F9,__awaiter:z9,__generator:M9,__createBinding:K9,__exportStar:j9,__values:tl,__read:oy,__spread:W9,__spreadArrays:H9,__await:no,__asyncGenerator:G9,__asyncDelegator:Z9,__asyncValues:X9,__makeTemplateObject:Y9,__importStar:J9,__importDefault:Q9,__classPrivateFieldGet:_9,__classPrivateFieldSet:$9}),tA=Il(eA),Xn={},ay;function nA(){if(ay)return Xn;ay=1,Object.defineProperty(Xn,"__esModule",{value:!0}),Xn.isBrowserCryptoAvailable=Xn.getSubtleCrypto=Xn.getBrowerCrypto=void 0;function t(){return cn?.crypto||cn?.msCrypto||{}}Xn.getBrowerCrypto=t;function e(){const r=t();return r.subtle||r.webkitSubtle}Xn.getSubtleCrypto=e;function n(){return!!t()&&!!e()}return Xn.isBrowserCryptoAvailable=n,Xn}var Yn={},cy;function rA(){if(cy)return Yn;cy=1,Object.defineProperty(Yn,"__esModule",{value:!0}),Yn.isBrowser=Yn.isNode=Yn.isReactNative=void 0;function t(){return typeof document>"u"&&typeof navigator<"u"&&navigator.product==="ReactNative"}Yn.isReactNative=t;function e(){return typeof process<"u"&&typeof process.versions<"u"&&typeof process.versions.node<"u"}Yn.isNode=e;function n(){return!t()&&!e()}return Yn.isBrowser=n,Yn}(function(t){Object.defineProperty(t,"__esModule",{value:!0});const e=tA;e.__exportStar(nA(),t),e.__exportStar(rA(),t)})(sy);function wn(t=3){const e=Date.now()*Math.pow(10,t),n=Math.floor(Math.random()*Math.pow(10,t));return e+n}function Cr(t=6){return BigInt(wn(t))}function Jn(t,e,n){return{id:n||wn(),jsonrpc:"2.0",method:t,params:e}}function Ha(t,e){return{id:t,jsonrpc:"2.0",result:e}}function nl(t,e,n){return{id:t,jsonrpc:"2.0",error:iA(e,n)}}function iA(t,e){return typeof t>"u"?iy(ny):(typeof t=="string"&&(t=Object.assign(Object.assign({},iy(_f)),{message:t})),typeof e<"u"&&(t.data=e),U9(t.code)&&(t=P9(t.code)),t)}class sA{}class oA extends sA{constructor(){super()}}class aA extends oA{constructor(e){super()}}const cA="^wss?:";function uA(t){const e=t.match(new RegExp(/^\w+:/,"gi"));if(!(!e||!e.length))return e[0]}function fA(t,e){const n=uA(t);return typeof n>"u"?!1:new RegExp(e).test(n)}function uy(t){return fA(t,cA)}function lA(t){return new RegExp("wss?://localhost(:d{2,5})?").test(t)}function fy(t){return typeof t=="object"&&"id"in t&&"jsonrpc"in t&&t.jsonrpc==="2.0"}function rl(t){return fy(t)&&"method"in t}function Ga(t){return fy(t)&&(bn(t)||Ht(t))}function bn(t){return"result"in t}function Ht(t){return"error"in t}class hA extends aA{constructor(e){super(e),this.events=new $e.exports.EventEmitter,this.hasRegisteredEventListeners=!1,this.connection=this.setConnection(e),this.connection.connected&&this.registerEventListeners()}async connect(e=this.connection){await this.open(e)}async disconnect(){await this.close()}on(e,n){this.events.on(e,n)}once(e,n){this.events.once(e,n)}off(e,n){this.events.off(e,n)}removeListener(e,n){this.events.removeListener(e,n)}async request(e,n){return this.requestStrict(Jn(e.method,e.params||[],e.id||Cr().toString()),n)}async requestStrict(e,n){return new Promise(async(r,i)=>{if(!this.connection.connected)try{await this.open()}catch(s){i(s)}this.events.on(`${e.id}`,s=>{Ht(s)?i(s.error):r(s.result)});try{await this.connection.send(e,n)}catch(s){i(s)}})}setConnection(e=this.connection){return e}onPayload(e){this.events.emit("payload",e),Ga(e)?this.events.emit(`${e.id}`,e):this.events.emit("message",{type:e.method,data:e.params})}onClose(e){e&&e.code===3e3&&this.events.emit("error",new Error(`WebSocket connection closed abnormally with code: ${e.code} ${e.reason?`(${e.reason})`:""}`)),this.events.emit("disconnect")}async open(e=this.connection){this.connection===e&&this.connection.connected||(this.connection.connected&&this.close(),typeof e=="string"&&(await this.connection.open(e),e=this.connection),this.connection=this.setConnection(e),await this.connection.open(),this.registerEventListeners(),this.events.emit("connect"))}async close(){await this.connection.close()}registerEventListeners(){this.hasRegisteredEventListeners||(this.connection.on("payload",e=>this.onPayload(e)),this.connection.on("close",e=>this.onClose(e)),this.connection.on("error",e=>this.events.emit("error",e)),this.connection.on("register_error",e=>this.onClose()),this.hasRegisteredEventListeners=!0)}}const dA=()=>typeof WebSocket<"u"?WebSocket:typeof global<"u"&&typeof global.WebSocket<"u"?global.WebSocket:typeof window<"u"&&typeof window.WebSocket<"u"?window.WebSocket:typeof self<"u"&&typeof self.WebSocket<"u"?self.WebSocket:require("ws"),pA=()=>typeof WebSocket<"u"||typeof global<"u"&&typeof global.WebSocket<"u"||typeof window<"u"&&typeof window.WebSocket<"u"||typeof self<"u"&&typeof self.WebSocket<"u",ly=t=>t.split("?")[0],hy=10,gA=dA();class yA{constructor(e){if(this.url=e,this.events=new $e.exports.EventEmitter,this.registering=!1,!uy(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);this.url=e}get connected(){return typeof this.socket<"u"}get connecting(){return this.registering}on(e,n){this.events.on(e,n)}once(e,n){this.events.once(e,n)}off(e,n){this.events.off(e,n)}removeListener(e,n){this.events.removeListener(e,n)}async open(e=this.url){await this.register(e)}async close(){return new Promise((e,n)=>{if(typeof this.socket>"u"){n(new Error("Connection already closed"));return}this.socket.onclose=r=>{this.onClose(r),e()},this.socket.close()})}async send(e){typeof this.socket>"u"&&(this.socket=await this.register());try{this.socket.send(Ps(e))}catch(n){this.onError(e.id,n)}}register(e=this.url){if(!uy(e))throw new Error(`Provided URL is not compatible with WebSocket connection: ${e}`);if(this.registering){const n=this.events.getMaxListeners();return(this.events.listenerCount("register_error")>=n||this.events.listenerCount("open")>=n)&&this.events.setMaxListeners(n+1),new Promise((r,i)=>{this.events.once("register_error",s=>{this.resetMaxListeners(),i(s)}),this.events.once("open",()=>{if(this.resetMaxListeners(),typeof this.socket>"u")return i(new Error("WebSocket connection is missing or invalid"));r(this.socket)})})}return this.url=e,this.registering=!0,new Promise((n,r)=>{const i=sy.isReactNative()?void 0:{rejectUnauthorized:!lA(e)},s=new gA(e,[],i);pA()?s.onerror=o=>{const a=o;r(this.emitError(a.error))}:s.on("error",o=>{r(this.emitError(o))}),s.onopen=()=>{this.onOpen(s),n(s)}})}onOpen(e){e.onmessage=n=>this.onPayload(n),e.onclose=n=>this.onClose(n),this.socket=e,this.registering=!1,this.events.emit("open")}onClose(e){this.socket=void 0,this.registering=!1,this.events.emit("close",e)}onPayload(e){if(typeof e.data>"u")return;const n=typeof e.data=="string"?Ki(e.data):e.data;this.events.emit("payload",n)}onError(e,n){const r=this.parseError(n),i=r.message||r.toString(),s=nl(e,i);this.events.emit("payload",s)}parseError(e,n=this.url){return q9(e,ly(n),"WS")}resetMaxListeners(){this.events.getMaxListeners()>hy&&this.events.setMaxListeners(hy)}emitError(e){const n=this.parseError(new Error(e?.message||`WebSocket connection failed for host: ${ly(this.url)}`));return this.events.emit("register_error",n),n}}function wA(t,e){return t===e||Number.isNaN(t)&&Number.isNaN(e)}function dy(t){return Object.getOwnPropertySymbols(t).filter(e=>Object.prototype.propertyIsEnumerable.call(t,e))}function py(t){return t==null?t===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}const bA="[object RegExp]",mA="[object String]",vA="[object Number]",EA="[object Boolean]",gy="[object Arguments]",xA="[object Symbol]",SA="[object Date]",IA="[object Map]",AA="[object Set]",BA="[object Array]",DA="[object Function]",OA="[object ArrayBuffer]",il="[object Object]",TA="[object Error]",RA="[object DataView]",NA="[object Uint8Array]",UA="[object Uint8ClampedArray]",PA="[object Uint16Array]",qA="[object Uint32Array]",CA="[object BigUint64Array]",LA="[object Int8Array]",VA="[object Int16Array]",kA="[object Int32Array]",FA="[object BigInt64Array]",zA="[object Float32Array]",MA="[object Float64Array]";function yy(t){if(!t||typeof t!="object")return!1;const e=Object.getPrototypeOf(t);return e===null||e===Object.prototype||Object.getPrototypeOf(e)===null?Object.prototype.toString.call(t)==="[object Object]":!1}function KA(t,e,n){return ro(t,e,void 0,void 0,void 0,void 0,n)}function ro(t,e,n,r,i,s,o){const a=o(t,e,n,r,i,s);if(a!==void 0)return a;if(typeof t==typeof e)switch(typeof t){case"bigint":case"string":case"boolean":case"symbol":case"undefined":return t===e;case"number":return t===e||Object.is(t,e);case"function":return t===e;case"object":return io(t,e,s,o)}return io(t,e,s,o)}function io(t,e,n,r){if(Object.is(t,e))return!0;let i=py(t),s=py(e);if(i===gy&&(i=il),s===gy&&(s=il),i!==s)return!1;switch(i){case mA:return t.toString()===e.toString();case vA:{const c=t.valueOf(),u=e.valueOf();return wA(c,u)}case EA:case SA:case xA:return Object.is(t.valueOf(),e.valueOf());case bA:return t.source===e.source&&t.flags===e.flags;case DA:return t===e}n=n??new Map;const o=n.get(t),a=n.get(e);if(o!=null&&a!=null)return o===e;n.set(t,e),n.set(e,t);try{switch(i){case IA:{if(t.size!==e.size)return!1;for(const[c,u]of t.entries())if(!e.has(c)||!ro(u,e.get(c),c,t,e,n,r))return!1;return!0}case AA:{if(t.size!==e.size)return!1;const c=Array.from(t.values()),u=Array.from(e.values());for(let f=0;f<c.length;f++){const h=c[f],d=u.findIndex(l=>ro(h,l,void 0,t,e,n,r));if(d===-1)return!1;u.splice(d,1)}return!0}case BA:case NA:case UA:case PA:case qA:case CA:case LA:case VA:case kA:case FA:case zA:case MA:{if(typeof Buffer<"u"&&Buffer.isBuffer(t)!==Buffer.isBuffer(e)||t.length!==e.length)return!1;for(let c=0;c<t.length;c++)if(!ro(t[c],e[c],c,t,e,n,r))return!1;return!0}case OA:return t.byteLength!==e.byteLength?!1:io(new Uint8Array(t),new Uint8Array(e),n,r);case RA:return t.byteLength!==e.byteLength||t.byteOffset!==e.byteOffset?!1:io(new Uint8Array(t),new Uint8Array(e),n,r);case TA:return t.name===e.name&&t.message===e.message;case il:{if(!(io(t.constructor,e.constructor,n,r)||yy(t)&&yy(e)))return!1;const u=[...Object.keys(t),...dy(t)],f=[...Object.keys(e),...dy(e)];if(u.length!==f.length)return!1;for(let h=0;h<u.length;h++){const d=u[h],l=t[d];if(!Object.hasOwn(e,d))return!1;const p=e[d];if(!ro(l,p,d,t,e,n,r))return!1}return!0}default:return!1}}finally{n.delete(t),n.delete(e)}}function jA(){}function WA(t,e){return KA(t,e,jA)}const wy="wc",by=2,Za="core",mn=`${wy}@2:${Za}:`,HA={name:Za,logger:"error"},GA={database:":memory:"},ZA="crypto",my="client_ed25519_seed",XA=Y.ONE_DAY,YA="keychain",JA="0.3",QA="messages",_A="0.3",$A=Y.SIX_HOURS,eB="publisher",vy="irn",tB="error",Ey="wss://relay.walletconnect.org",nB="relayer",Ne={message:"relayer_message",message_ack:"relayer_message_ack",connect:"relayer_connect",disconnect:"relayer_disconnect",error:"relayer_error",connection_stalled:"relayer_connection_stalled",transport_closed:"relayer_transport_closed",publish:"relayer_publish"},rB="_subscription",Gt={payload:"payload",connect:"connect",disconnect:"disconnect",error:"error"},iB=.1,sl="2.23.10",Ie={link_mode:"link_mode",relay:"relay"},Xa={inbound:"inbound",outbound:"outbound"},sB="0.3",oB="WALLETCONNECT_CLIENT_ID",xy="WALLETCONNECT_LINK_MODE_APPS",Lt={created:"subscription_created",deleted:"subscription_deleted",expired:"subscription_expired",disabled:"subscription_disabled",sync:"subscription_sync",resubscribed:"subscription_resubscribed"},aB="subscription",cB="0.3",uB="pairing",fB="0.3",so={wc_pairingDelete:{req:{ttl:Y.ONE_DAY,prompt:!1,tag:1e3},res:{ttl:Y.ONE_DAY,prompt:!1,tag:1001}},wc_pairingPing:{req:{ttl:Y.THIRTY_SECONDS,prompt:!1,tag:1002},res:{ttl:Y.THIRTY_SECONDS,prompt:!1,tag:1003}},unregistered_method:{req:{ttl:Y.ONE_DAY,prompt:!1,tag:0},res:{ttl:Y.ONE_DAY,prompt:!1,tag:0}}},yi={create:"pairing_create",expire:"pairing_expire",delete:"pairing_delete",ping:"pairing_ping"},sn={created:"history_created",updated:"history_updated",deleted:"history_deleted",sync:"history_sync"},lB="history",hB="0.3",dB="expirer",Zt={created:"expirer_created",deleted:"expirer_deleted",expired:"expirer_expired",sync:"expirer_sync"},pB="0.3",gB="verify-api",yB="https://verify.walletconnect.com",Sy="https://verify.walletconnect.org",oo=Sy,wB=`${oo}/v3`,bB=[yB,Sy],mB="echo",vB="https://echo.walletconnect.com",vn={pairing_started:"pairing_started",pairing_uri_validation_success:"pairing_uri_validation_success",pairing_uri_not_expired:"pairing_uri_not_expired",store_new_pairing:"store_new_pairing",subscribing_pairing_topic:"subscribing_pairing_topic",subscribe_pairing_topic_success:"subscribe_pairing_topic_success",existing_pairing:"existing_pairing",pairing_not_expired:"pairing_not_expired",emit_inactive_pairing:"emit_inactive_pairing",emit_session_proposal:"emit_session_proposal",subscribing_to_pairing_topic:"subscribing_to_pairing_topic"},Qn={no_wss_connection:"no_wss_connection",no_internet_connection:"no_internet_connection",malformed_pairing_uri:"malformed_pairing_uri",active_pairing_already_exists:"active_pairing_already_exists",subscribe_pairing_topic_failure:"subscribe_pairing_topic_failure",pairing_expired:"pairing_expired",proposal_expired:"proposal_expired",proposal_listener_not_found:"proposal_listener_not_found"},on={session_approve_started:"session_approve_started",proposal_not_expired:"proposal_not_expired",session_namespaces_validation_success:"session_namespaces_validation_success",create_session_topic:"create_session_topic",subscribing_session_topic:"subscribing_session_topic",subscribe_session_topic_success:"subscribe_session_topic_success",publishing_session_approve:"publishing_session_approve",session_approve_publish_success:"session_approve_publish_success",store_session:"store_session",publishing_session_settle:"publishing_session_settle",session_settle_publish_success:"session_settle_publish_success",session_request_response_started:"session_request_response_started",session_request_response_validation_success:"session_request_response_validation_success",session_request_response_publish_started:"session_request_response_publish_started"},wi={no_internet_connection:"no_internet_connection",no_wss_connection:"no_wss_connection",proposal_expired:"proposal_expired",subscribe_session_topic_failure:"subscribe_session_topic_failure",session_approve_publish_failure:"session_approve_publish_failure",session_settle_publish_failure:"session_settle_publish_failure",session_approve_namespace_validation_failure:"session_approve_namespace_validation_failure",proposal_not_found:"proposal_not_found",session_request_response_validation_failure:"session_request_response_validation_failure",session_request_response_publish_failure:"session_request_response_publish_failure"},bi={authenticated_session_approve_started:"authenticated_session_approve_started",authenticated_session_not_expired:"authenticated_session_not_expired",chains_caip2_compliant:"chains_caip2_compliant",chains_evm_compliant:"chains_evm_compliant",create_authenticated_session_topic:"create_authenticated_session_topic",cacaos_verified:"cacaos_verified",store_authenticated_session:"store_authenticated_session",subscribing_authenticated_session_topic:"subscribing_authenticated_session_topic",subscribe_authenticated_session_topic_success:"subscribe_authenticated_session_topic_success",publishing_authenticated_session_approve:"publishing_authenticated_session_approve",authenticated_session_approve_publish_success:"authenticated_session_approve_publish_success"},ao={no_internet_connection:"no_internet_connection",no_wss_connection:"no_wss_connection",missing_session_authenticate_request:"missing_session_authenticate_request",session_authenticate_request_expired:"session_authenticate_request_expired",chains_caip2_compliant_failure:"chains_caip2_compliant_failure",chains_evm_compliant_failure:"chains_evm_compliant_failure",invalid_cacao:"invalid_cacao",subscribe_authenticated_session_topic_failure:"subscribe_authenticated_session_topic_failure",authenticated_session_approve_publish_failure:"authenticated_session_approve_publish_failure",authenticated_session_pending_request_not_found:"authenticated_session_pending_request_not_found"},EB=.1,xB="event-client",SB=86400,IB="https://pulse.walletconnect.org/batch";class AB{constructor(e,n){this.core=e,this.logger=n,this.keychain=new Map,this.name=YA,this.version=JA,this.initialized=!1,this.storagePrefix=mn,this.init=async()=>{if(!this.initialized){const r=await this.getKeyChain();typeof r<"u"&&(this.keychain=r),this.initialized=!0}},this.has=r=>(this.isInitialized(),this.keychain.has(r)),this.set=async(r,i)=>{this.isInitialized(),this.keychain.set(r,i),await this.persist()},this.get=r=>{this.isInitialized();const i=this.keychain.get(r);if(typeof i>"u"){const{message:s}=J("NO_MATCHING_KEY",`${this.name}: ${r}`);throw new Error(s)}return i},this.del=async r=>{this.isInitialized(),this.keychain.delete(r),await this.persist()},this.core=e,this.logger=Tt(n,this.name)}get context(){return bt(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}async setKeyChain(e){await this.core.storage.setItem(this.storageKey,Af(e))}async getKeyChain(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<"u"?Bf(e):void 0}async persist(){await this.setKeyChain(this.keychain)}isInitialized(){if(!this.initialized){const{message:e}=J("NOT_INITIALIZED",this.name);throw new Error(e)}}}class BB{constructor(e,n,r){this.core=e,this.logger=n,this.name=ZA,this.randomSessionIdentifier=Nf(),this.initialized=!1,this.init=async()=>{this.initialized||(await this.keychain.init(),this.initialized=!0)},this.hasKeys=i=>(this.isInitialized(),this.keychain.has(i)),this.getClientId=async()=>{if(this.isInitialized(),this.clientId)return this.clientId;const i=await this.getClientSeed(),s=Bg(i),o=Ag(s.publicKey);return this.clientId=o,o},this.generateKeyPair=()=>{this.isInitialized();const i=AS();return this.setPrivateKey(i.publicKey,i.privateKey)},this.signJWT=async i=>{this.isInitialized();const s=await this.getClientSeed(),o=Bg(s),a=this.randomSessionIdentifier;return await v5(a,i,XA,o)},this.generateSharedKey=(i,s,o)=>{this.isInitialized();const a=this.getPrivateKey(i),c=BS(a,s);return this.setSymKey(c,o)},this.setSymKey=async(i,s)=>{this.isInitialized();const o=s||Ra(i);return await this.keychain.set(o,i),o},this.deleteKeyPair=async i=>{this.isInitialized(),await this.keychain.del(i)},this.deleteSymKey=async i=>{this.isInitialized(),await this.keychain.del(i)},this.encode=async(i,s,o)=>{this.isInitialized();const a=h1(o),c=Ps(s);if(p1(a))return TS(c,o?.encoding);if(d1(a)){const d=a.senderPublicKey,l=a.receiverPublicKey;i=await this.generateSharedKey(d,l)}const u=this.getSymKey(i),{type:f,senderPublicKey:h}=a;return DS({type:f,symKey:u,message:c,senderPublicKey:h,encoding:o?.encoding})},this.decode=async(i,s,o)=>{this.isInitialized();const a=NS(s,o);if(p1(a)){const c=RS(s,o?.encoding);return Ki(c)}if(d1(a)){const c=a.receiverPublicKey,u=a.senderPublicKey;i=await this.generateSharedKey(c,u)}try{const c=this.getSymKey(i),u=OS({symKey:c,encoded:s,encoding:o?.encoding});return Ki(u)}catch(c){this.logger.error(`Failed to decode message from topic: '${i}', clientId: '${await this.getClientId()}'`),this.logger.error(c)}},this.getPayloadType=(i,s=Ye)=>{const o=Ws({encoded:i,encoding:s});return ci(o.type)},this.getPayloadSenderPublicKey=(i,s=Ye)=>{const o=Ws({encoded:i,encoding:s});return o.senderPublicKey?ze(o.senderPublicKey,gt):void 0},this.core=e,this.logger=Tt(n,this.name),this.keychain=r||new AB(this.core,this.logger)}get context(){return bt(this.logger)}async setPrivateKey(e,n){return await this.keychain.set(e,n),e}getPrivateKey(e){return this.keychain.get(e)}async getClientSeed(){let e="";try{e=this.keychain.get(my)}catch{e=Nf(),await this.keychain.set(my,e)}return it(e,"base16")}getSymKey(e){return this.keychain.get(e)}isInitialized(){if(!this.initialized){const{message:e}=J("NOT_INITIALIZED",this.name);throw new Error(e)}}}class DB extends y9{constructor(e,n){super(e,n),this.logger=e,this.core=n,this.messages=new Map,this.messagesWithoutClientAck=new Map,this.name=QA,this.version=_A,this.initialized=!1,this.storagePrefix=mn,this.init=async()=>{if(!this.initialized){this.logger.trace("Initialized");try{const r=await this.getRelayerMessages();typeof r<"u"&&(this.messages=r);const i=await this.getRelayerMessagesWithoutClientAck();typeof i<"u"&&(this.messagesWithoutClientAck=i),this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",size:this.messages.size})}catch(r){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(r)}finally{this.initialized=!0}}},this.set=async(r,i,s)=>{this.isInitialized();const o=jt(i);let a=this.messages.get(r);if(typeof a>"u"&&(a={}),typeof a[o]<"u")return o;if(a[o]=i,this.messages.set(r,a),s===Xa.inbound){const c=this.messagesWithoutClientAck.get(r)||{};this.messagesWithoutClientAck.set(r,{...c,[o]:i})}return await this.persist(),o},this.get=r=>{this.isInitialized();let i=this.messages.get(r);return typeof i>"u"&&(i={}),i},this.getWithoutAck=r=>{this.isInitialized();const i={};for(const s of r){const o=this.messagesWithoutClientAck.get(s)||{};i[s]=Object.values(o)}return i},this.has=(r,i)=>{this.isInitialized();const s=this.get(r),o=jt(i);return typeof s[o]<"u"},this.ack=async(r,i)=>{this.isInitialized();const s=this.messagesWithoutClientAck.get(r);if(typeof s>"u")return;const o=jt(i);delete s[o],Object.keys(s).length===0?this.messagesWithoutClientAck.delete(r):this.messagesWithoutClientAck.set(r,s),await this.persist()},this.del=async r=>{this.isInitialized(),this.messages.delete(r),this.messagesWithoutClientAck.delete(r),await this.persist()},this.logger=Tt(e,this.name),this.core=n}get context(){return bt(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get storageKeyWithoutClientAck(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name+"_withoutClientAck"}async setRelayerMessages(e){await this.core.storage.setItem(this.storageKey,Af(e))}async setRelayerMessagesWithoutClientAck(e){await this.core.storage.setItem(this.storageKeyWithoutClientAck,Af(e))}async getRelayerMessages(){const e=await this.core.storage.getItem(this.storageKey);return typeof e<"u"?Bf(e):void 0}async getRelayerMessagesWithoutClientAck(){const e=await this.core.storage.getItem(this.storageKeyWithoutClientAck);return typeof e<"u"?Bf(e):void 0}async persist(){await this.setRelayerMessages(this.messages),await this.setRelayerMessagesWithoutClientAck(this.messagesWithoutClientAck)}isInitialized(){if(!this.initialized){const{message:e}=J("NOT_INITIALIZED",this.name);throw new Error(e)}}}class OB extends w9{constructor(e,n){super(e,n),this.relayer=e,this.logger=n,this.events=new $e.exports.EventEmitter,this.name=eB,this.queue=new Map,this.publishTimeout=Y.toMiliseconds(Y.ONE_MINUTE),this.initialPublishTimeout=Y.toMiliseconds(Y.ONE_SECOND*15),this.needsTransportRestart=!1,this.publish=async(r,i,s)=>{this.logger.debug("Publishing Payload"),this.logger.trace({type:"method",method:"publish",params:{topic:r,message:i,opts:s}});const o=s?.ttl||$A,a=s?.prompt||!1,c=s?.tag||0,u=s?.id||Cr().toString(),f=Gi(Ua().protocol),h={id:u,method:s?.publishMethod||f.publish,params:{topic:r,message:i,ttl:o,prompt:a,tag:c,attestation:s?.attestation,...s?.tvf}},d=`Failed to publish payload, please try again. id:${u} tag:${c}`;try{Ve(h.params?.prompt)&&delete h.params?.prompt,Ve(h.params?.tag)&&delete h.params?.tag;const l=new Promise(async p=>{const w=({id:O})=>{h.id?.toString()===O.toString()&&(this.removeRequestFromQueue(O),this.relayer.events.removeListener(Ne.publish,w),p())};this.relayer.events.on(Ne.publish,w);const v=nn(new Promise((O,P)=>{this.rpcPublish(h,s).then(O).catch(A=>{this.logger.warn(A,A?.message),P(A)})}),this.initialPublishTimeout,`Failed initial publish, retrying.... id:${u} tag:${c}`);try{await v,this.events.removeListener(Ne.publish,w)}catch(O){this.queue.set(u,{request:h,opts:s,attempt:1}),this.logger.warn(O,O?.message)}});this.logger.trace({type:"method",method:"publish",params:{id:u,topic:r,message:i,opts:s}}),await nn(l,this.publishTimeout,d)}catch(l){if(this.logger.debug("Failed to Publish Payload"),this.logger.error(l),s?.internal?.throwOnFailedPublish)throw l}finally{this.queue.delete(u)}},this.publishCustom=async r=>{this.logger.debug("Publishing custom payload"),this.logger.trace({type:"method",method:"publishCustom",params:r});const{payload:i,opts:s={}}=r,{attestation:o,tvf:a,publishMethod:c,prompt:u,tag:f,ttl:h=Y.FIVE_MINUTES}=s,d=s.id||Cr().toString(),l=Gi(Ua().protocol),p=c||l.publish,w={id:d,method:p,params:{...i,ttl:h,prompt:u,tag:f,attestation:o,...a}},v=`Failed to publish custom payload, please try again. id:${d} tag:${f}`;try{Ve(w.params?.prompt)&&delete w.params?.prompt,Ve(w.params?.tag)&&delete w.params?.tag;const O=new Promise(async P=>{const A=({id:S})=>{w.id?.toString()===S.toString()&&(this.removeRequestFromQueue(S),this.relayer.events.removeListener(Ne.publish,A),P())};this.relayer.events.on(Ne.publish,A);const I=nn(new Promise((S,M)=>{this.rpcPublish(w,s).then(S).catch(F=>{this.logger.warn(F,F?.message),M(F)})}),this.initialPublishTimeout,`Failed initial custom payload publish, retrying.... method:${p} id:${d} tag:${f}`);try{await I,this.events.removeListener(Ne.publish,A)}catch(S){this.queue.set(d,{request:w,opts:s,attempt:1}),this.logger.warn(S,S?.message)}});this.logger.trace({type:"method",method:"publish",params:{id:d,payload:i,opts:s}}),await nn(O,this.publishTimeout,v)}catch(O){if(this.logger.debug("Failed to Publish Payload"),this.logger.error(O),s?.internal?.throwOnFailedPublish)throw O}finally{this.queue.delete(d)}},this.on=(r,i)=>{this.events.on(r,i)},this.once=(r,i)=>{this.events.once(r,i)},this.off=(r,i)=>{this.events.off(r,i)},this.removeListener=(r,i)=>{this.events.removeListener(r,i)},this.relayer=e,this.logger=Tt(n,this.name),this.registerEventListeners()}get context(){return bt(this.logger)}async rpcPublish(e,n){this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"message",direction:"outgoing",request:e});const r=await this.relayer.request(e);return this.relayer.events.emit(Ne.publish,{...e,...n}),this.logger.debug("Successfully Published Payload"),r}removeRequestFromQueue(e){this.queue.delete(e)}checkQueue(){this.queue.forEach(async(e,n)=>{const r=e.attempt+1;this.queue.set(n,{...e,attempt:r}),this.logger.warn({},`Publisher: queue->publishing: ${e.request.id}, tag: ${e.request.params?.tag}, attempt: ${r}`),await this.rpcPublish(e.request,e.opts),this.logger.warn({},`Publisher: queue->published: ${e.request.id}`)})}registerEventListeners(){this.relayer.core.heartbeat.on(pi.pulse,()=>{if(this.needsTransportRestart){this.needsTransportRestart=!1,this.relayer.events.emit(Ne.connection_stalled);return}this.checkQueue()}),this.relayer.on(Ne.message_ack,e=>{this.removeRequestFromQueue(e.id.toString())})}}class TB{constructor(){this.map=new Map,this.set=(e,n)=>{const r=this.get(e);this.exists(e,n)||this.map.set(e,[...r,n])},this.get=e=>this.map.get(e)||[],this.exists=(e,n)=>this.get(e).includes(n),this.delete=(e,n)=>{if(typeof n>"u"){this.map.delete(e);return}if(!this.map.has(e))return;const r=this.get(e);if(!this.exists(e,n))return;const i=r.filter(s=>s!==n);if(!i.length){this.map.delete(e);return}this.map.set(e,i)},this.clear=()=>{this.map.clear()}}get topics(){return Array.from(this.map.keys())}}class RB extends v9{constructor(e,n){super(e,n),this.relayer=e,this.logger=n,this.subscriptions=new Map,this.topicMap=new TB,this.events=new $e.exports.EventEmitter,this.name=aB,this.version=cB,this.pending=new Map,this.cached=[],this.initialized=!1,this.storagePrefix=mn,this.subscribeTimeout=Y.toMiliseconds(Y.ONE_MINUTE),this.initialSubscribeTimeout=Y.toMiliseconds(Y.ONE_SECOND*15),this.batchSubscribeTopicsLimit=500,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),this.registerEventListeners(),await this.restore()),this.initialized=!0},this.subscribe=async(r,i)=>{this.isInitialized(),this.logger.debug("Subscribing Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:r,opts:i}});try{const s=Ua(i),o={topic:r,relay:s,transportType:i?.transportType};i?.internal?.skipSubscribe||this.pending.set(r,o);const a=await this.rpcSubscribe(r,s,i);return typeof a=="string"&&(this.onSubscribe(a,o),this.logger.debug("Successfully Subscribed Topic"),this.logger.trace({type:"method",method:"subscribe",params:{topic:r,opts:i}})),a}catch(s){throw this.logger.debug("Failed to Subscribe Topic"),this.logger.error(s),s}},this.unsubscribe=async(r,i)=>{this.isInitialized(),typeof i?.id<"u"?await this.unsubscribeById(r,i.id,i):await this.unsubscribeByTopic(r,i)},this.isSubscribed=r=>new Promise(i=>{i(this.topicMap.topics.includes(r))}),this.isKnownTopic=r=>new Promise(i=>{i(this.topicMap.topics.includes(r)||this.pending.has(r)||this.cached.some(s=>s.topic===r))}),this.on=(r,i)=>{this.events.on(r,i)},this.once=(r,i)=>{this.events.once(r,i)},this.off=(r,i)=>{this.events.off(r,i)},this.removeListener=(r,i)=>{this.events.removeListener(r,i)},this.start=async()=>{await this.onConnect()},this.stop=async()=>{await this.onDisconnect()},this.restart=async()=>{await this.restore(),await this.onRestart()},this.checkPending=async()=>{if(this.pending.size===0&&(!this.initialized||!this.relayer.connected))return;const r=[];this.pending.forEach(i=>{r.push(i)}),await this.batchSubscribe(r)},this.registerEventListeners=()=>{this.relayer.core.heartbeat.on(pi.pulse,async()=>{await this.checkPending()}),this.events.on(Lt.created,async r=>{const i=Lt.created;this.logger.info(`Emitting ${i}`),this.logger.debug({type:"event",event:i,data:r}),await this.persist()}),this.events.on(Lt.deleted,async r=>{const i=Lt.deleted;this.logger.info(`Emitting ${i}`),this.logger.debug({type:"event",event:i,data:r}),await this.persist()})},this.relayer=e,this.logger=Tt(n,this.name),this.clientId=""}get context(){return bt(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.relayer.core.customStoragePrefix+"//"+this.name}get length(){return this.subscriptions.size}get ids(){return Array.from(this.subscriptions.keys())}get values(){return Array.from(this.subscriptions.values())}get topics(){return this.topicMap.topics}get hasAnyTopics(){return this.topicMap.topics.length>0||this.pending.size>0||this.cached.length>0||this.subscriptions.size>0}hasSubscription(e,n){let r=!1;try{r=this.getSubscription(e).topic===n}catch{}return r}reset(){this.cached=[],this.initialized=!0}onDisable(){this.values.length>0&&(this.cached=this.values),this.subscriptions.clear(),this.topicMap.clear()}async unsubscribeByTopic(e,n){const r=this.topicMap.get(e);await Promise.all(r.map(async i=>await this.unsubscribeById(e,i,n)))}async unsubscribeById(e,n,r){this.logger.debug("Unsubscribing Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:n,opts:r}});try{const i=Be("USER_DISCONNECTED",`${this.name}, ${e}`);await this.onUnsubscribe(e,n,i);const s=Ua(r);await this.restartToComplete({topic:e,id:n,relay:s}),await this.rpcUnsubscribe(e,n,s),this.logger.debug("Successfully Unsubscribed Topic"),this.logger.trace({type:"method",method:"unsubscribe",params:{topic:e,id:n,opts:r}})}catch(i){throw this.logger.debug("Failed to Unsubscribe Topic"),this.logger.error(i),i}}async rpcSubscribe(e,n,r){const i=await this.getSubscriptionId(e);if(r?.internal?.skipSubscribe)return i;(!r||r?.transportType===Ie.relay)&&await this.restartToComplete({topic:e,id:e,relay:n});const s={method:Gi(n.protocol).subscribe,params:{topic:e}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:s});const o=r?.internal?.throwOnFailedPublish;try{if(r?.transportType===Ie.link_mode)return setTimeout(()=>{(this.relayer.connected||this.relayer.connecting)&&this.relayer.request(s).catch(u=>this.logger.warn(u))},Y.toMiliseconds(Y.ONE_SECOND)),i;const a=new Promise(async u=>{const f=h=>{h.topic===e&&(this.events.removeListener(Lt.created,f),u(h.id))};this.events.on(Lt.created,f);try{const h=await nn(new Promise((d,l)=>{this.relayer.request(s).catch(p=>{this.logger.warn(p,p?.message),l(p)}).then(d)}),this.initialSubscribeTimeout,`Subscribing to ${e} failed, please try again`);this.events.removeListener(Lt.created,f),u(h)}catch{}}),c=await nn(a,this.subscribeTimeout,`Subscribing to ${e} failed, please try again`);if(!c&&o)throw new Error(`Subscribing to ${e} failed, please try again`);return c?i:null}catch(a){if(this.logger.debug("Outgoing Relay Subscribe Payload stalled"),this.relayer.events.emit(Ne.connection_stalled),o)throw a}return null}async rpcBatchSubscribe(e){if(!e.length)return!0;const n=e[0].relay,r={method:Gi(n.protocol).batchSubscribe,params:{topics:e.map(i=>i.topic)}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:r});try{return await nn(new Promise((i,s)=>{this.relayer.request(r).then(i).catch(o=>{this.logger.warn(o),s(o)})}),this.subscribeTimeout,"rpcBatchSubscribe failed, please try again"),!0}catch{return this.relayer.events.emit(Ne.connection_stalled),!1}}async rpcBatchFetchMessages(e){if(!e.length)return;const n=e[0].relay,r={method:Gi(n.protocol).batchFetchMessages,params:{topics:e.map(s=>s.topic)}};this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:r});let i;try{i=await await nn(new Promise((s,o)=>{this.relayer.request(r).catch(a=>{this.logger.warn(a),o(a)}).then(s)}),this.subscribeTimeout,"rpcBatchFetchMessages failed, please try again")}catch{this.relayer.events.emit(Ne.connection_stalled)}return i}rpcUnsubscribe(e,n,r){const i={method:Gi(r.protocol).unsubscribe,params:{topic:e,id:n}};return this.logger.debug("Outgoing Relay Payload"),this.logger.trace({type:"payload",direction:"outgoing",request:i}),this.relayer.request(i)}onSubscribe(e,n){this.setSubscription(e,{...n,id:e}),this.pending.delete(n.topic)}onBatchSubscribe(e){e.length&&e.forEach(n=>{this.setSubscription(n.id,{...n}),this.pending.delete(n.topic)})}async onUnsubscribe(e,n,r){this.events.removeAllListeners(n),this.hasSubscription(n,e)&&this.deleteSubscription(n,r),await this.relayer.messages.del(e)}async setRelayerSubscriptions(e){await this.relayer.core.storage.setItem(this.storageKey,e)}async getRelayerSubscriptions(){return await this.relayer.core.storage.getItem(this.storageKey)}setSubscription(e,n){this.logger.debug("Setting subscription"),this.logger.trace({type:"method",method:"setSubscription",id:e,subscription:n}),this.addSubscription(e,n)}addSubscription(e,n){this.subscriptions.set(e,{...n}),this.topicMap.set(n.topic,e),this.events.emit(Lt.created,n)}getSubscription(e){this.logger.debug("Getting subscription"),this.logger.trace({type:"method",method:"getSubscription",id:e});const n=this.subscriptions.get(e);if(!n){const{message:r}=J("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(r)}return n}deleteSubscription(e,n){this.logger.debug("Deleting subscription"),this.logger.trace({type:"method",method:"deleteSubscription",id:e,reason:n});const r=this.getSubscription(e);this.subscriptions.delete(e),this.topicMap.delete(r.topic,e),this.events.emit(Lt.deleted,{...r,reason:n})}async persist(){await this.setRelayerSubscriptions(this.values),this.events.emit(Lt.sync)}async onRestart(){if(this.cached.length){const e=[...this.cached],n=Math.ceil(this.cached.length/this.batchSubscribeTopicsLimit);for(let r=0;r<n;r++){const i=e.splice(0,this.batchSubscribeTopicsLimit);await this.batchSubscribe(i)}}this.events.emit(Lt.resubscribed)}async restore(){try{const e=await this.getRelayerSubscriptions();if(typeof e>"u"||!e.length)return;if(this.subscriptions.size&&!e.every(n=>n.topic===this.subscriptions.get(n.id)?.topic)){const{message:n}=J("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(n),this.logger.error(`${this.name}: ${JSON.stringify(this.values)}`),new Error(n)}this.cached=e,this.logger.debug(`Successfully Restored subscriptions for ${this.name}`),this.logger.trace({type:"method",method:"restore",subscriptions:this.values})}catch(e){this.logger.debug(`Failed to Restore subscriptions for ${this.name}`),this.logger.error(e)}}async batchSubscribe(e){if(e.length){if(!await this.rpcBatchSubscribe(e)){this.logger.warn(`Batch subscribe failed for ${e.length} topics, adding to pending for retry`),e.forEach(n=>{this.pending.set(n.topic,n)});return}this.onBatchSubscribe(await Promise.all(e.map(async n=>({...n,id:await this.getSubscriptionId(n.topic)}))))}}async batchFetchMessages(e){if(!e.length)return;this.logger.trace(`Fetching batch messages for ${e.length} subscriptions`);const n=await this.rpcBatchFetchMessages(e);n&&n.messages&&(await $5(Y.toMiliseconds(Y.ONE_SECOND)),await this.relayer.handleBatchMessageEvents(n.messages))}async onConnect(){await this.restart(),this.reset()}onDisconnect(){this.onDisable()}isInitialized(){if(!this.initialized){const{message:e}=J("NOT_INITIALIZED",this.name);throw new Error(e)}}async restartToComplete(e){!this.relayer.connected&&!this.relayer.connecting&&(this.cached.push(e),await this.relayer.transportOpen())}async getClientId(){return this.clientId||(this.clientId=await this.relayer.core.crypto.getClientId()),this.clientId}async getSubscriptionId(e){return jt(e+await this.getClientId())}}class NB extends b9{constructor(e){super(e),this.protocol="wc",this.version=2,this.events=new $e.exports.EventEmitter,this.name=nB,this.transportExplicitlyClosed=!1,this.initialized=!1,this.connectionAttemptInProgress=!1,this.hasExperiencedNetworkDisruption=!1,this.heartBeatTimeout=Y.toMiliseconds(Y.THIRTY_SECONDS+Y.FIVE_SECONDS),this.reconnectInProgress=!1,this.requestsInFlight=[],this.connectTimeout=Y.toMiliseconds(Y.ONE_SECOND*15),this.stalledRestartInProgress=!1,this.stalledRestartBackoff=0,this.stalledRestartBaseInterval=Y.toMiliseconds(Y.ONE_SECOND*2),this.stalledRestartMaxInterval=Y.toMiliseconds(Y.THIRTY_SECONDS),this.request=async n=>{this.logger.debug("Publishing Request Payload");const r=n.id||Cr().toString();await this.toEstablishConnection();try{this.logger.trace({id:r,method:n.method,topic:n.params?.topic},"relayer.request - publishing...");const i=`${r}:${n.params?.tag||""}`;this.requestsInFlight.push(i);const s=await this.provider.request(n);return this.requestsInFlight=this.requestsInFlight.filter(o=>o!==i),s}catch(i){throw this.logger.debug(`Failed to Publish Request: ${r}`),i}},this.resetPingTimeout=()=>{Fs()&&(clearTimeout(this.pingTimeout),this.pingTimeout=setTimeout(()=>{try{this.logger.debug({},"pingTimeout: Connection stalled, terminating..."),this.provider?.connection?.socket?.terminate?.()}catch(n){this.logger.warn(n,n?.message)}},this.heartBeatTimeout))},this.onPayloadHandler=n=>{this.onProviderPayload(n),this.resetPingTimeout()},this.onConnectHandler=()=>{this.logger.warn({},"Relayer connected \u{1F6DC}"),this.startPingTimeout(),this.stalledRestartBackoff=0,this.events.emit(Ne.connect)},this.onDisconnectHandler=()=>{this.logger.warn({},"Relayer disconnected \u{1F6D1}"),this.requestsInFlight=[],this.onProviderDisconnect()},this.onProviderErrorHandler=n=>{this.logger.fatal(`Fatal socket error: ${n.message}`),this.events.emit(Ne.error,n),this.logger.fatal("Fatal socket error received, closing transport"),this.transportExplicitlyClosed=!0,clearTimeout(this.reconnectTimeout),this.reconnectTimeout=void 0,this.reconnectInProgress=!1,this.transportClose().catch(r=>this.logger.warn(r))},this.registerProviderListeners=()=>{this.provider.on(Gt.payload,this.onPayloadHandler),this.provider.on(Gt.connect,this.onConnectHandler),this.provider.on(Gt.disconnect,this.onDisconnectHandler),this.provider.on(Gt.error,this.onProviderErrorHandler)},this.core=e.core,this.logger=O1({logger:e.logger??tB,name:this.name}),this.messages=new DB(this.logger,e.core),this.subscriber=new RB(this,this.logger),this.publisher=new OB(this,this.logger),this.projectId=e.projectId,this.relayUrl=e.relayUrl||Ey,Kg()?this.packageName=If():jg()&&(this.bundleId=If()),this.provider={}}async init(){this.logger.trace("Initialized"),this.registerEventListeners(),await Promise.all([this.messages.init(),this.subscriber.init()]),this.initialized=!0,this.transportOpen().catch(e=>this.logger.warn(e,e?.message))}get context(){return bt(this.logger)}get connected(){return this.provider?.connection?.socket?.readyState===1}get connecting(){return this.provider?.connection?.socket?.readyState===0||this.connectPromise!==void 0}async publish(e,n,r){this.isInitialized(),await this.publisher.publish(e,n,r),await this.recordMessageEvent({topic:e,message:n,publishedAt:Date.now(),transportType:Ie.relay},Xa.outbound)}async publishCustom(e){this.isInitialized(),await this.publisher.publishCustom(e)}async subscribe(e,n){this.isInitialized(),(!n?.transportType||n?.transportType==="relay")&&await this.toEstablishConnection();const r=n?.internal?.throwOnFailedPublish??!0;let i=this.subscriber.topicMap.get(e)?.[0]||"",s;const o=a=>{a.topic===e&&(this.subscriber.off(Lt.created,o),s())};return await Promise.all([new Promise(a=>{s=a,this.subscriber.on(Lt.created,o)}),new Promise((a,c)=>{this.subscriber.subscribe(e,{internal:{throwOnFailedPublish:r},...n}).then(u=>{i=u||i,a()}).catch(u=>{r?c(u):a()})})]),i}async unsubscribe(e,n){this.isInitialized(),await this.subscriber.unsubscribe(e,n)}on(e,n){this.events.on(e,n)}once(e,n){this.events.once(e,n)}off(e,n){this.events.off(e,n)}removeListener(e,n){this.events.removeListener(e,n)}async transportDisconnect(){this.provider.disconnect&&(this.hasExperiencedNetworkDisruption||this.connected)?await nn(this.provider.disconnect(),2e3,"provider.disconnect()").catch(()=>this.onProviderDisconnect()):this.onProviderDisconnect()}async transportClose(){this.transportExplicitlyClosed=!0,clearTimeout(this.stalledRestartTimeout),this.stalledRestartInProgress=!1,this.stalledRestartBackoff=0,await this.resetTransport()}async transportOpen(e){if(!this.subscriber.hasAnyTopics){this.logger.info("Starting WS connection skipped because the client has no topics to work with.");return}if(this.connectPromise?(this.logger.debug({},"Waiting for existing connection attempt to resolve..."),await this.connectPromise,this.logger.debug({},"Existing connection attempt resolved")):(this.connectPromise=this.connect(e).finally(()=>{this.connectPromise=void 0}),await this.connectPromise),!this.connected)throw new Error(`Couldn't establish socket connection to the relay server: ${this.relayUrl}`)}async restartTransport(e){this.logger.debug({},"Restarting transport..."),!this.connectionAttemptInProgress&&(this.relayUrl=e||this.relayUrl,await this.confirmOnlineStateOrThrow(),await this.resetTransport(),await this.transportOpen())}async resetTransport(){this.reconnectInProgress=!0,clearTimeout(this.reconnectTimeout),this.reconnectTimeout=void 0,await this.transportDisconnect(),await this.subscriber.stop(),this.reconnectInProgress=!1}async confirmOnlineStateOrThrow(){if(!await D1())throw new Error("No internet connection detected. Please restart your network and try again.")}async handleBatchMessageEvents(e){if(e?.length===0){this.logger.trace("Batch message events is empty. Ignoring...");return}const n=e.sort((r,i)=>r.publishedAt-i.publishedAt);this.logger.debug(`Batch of ${n.length} message events sorted`);for(const r of n)try{await this.onMessageEvent(r)}catch(i){this.logger.warn(i,"Error while processing batch message event: "+i?.message)}this.logger.trace(`Batch of ${n.length} message events processed`)}async onLinkMessageEvent(e,n){const{topic:r}=e;if(!n.sessionExists){const i=Le(Y.FIVE_MINUTES),s={topic:r,expiry:i,relay:{protocol:"irn"},active:!1};await this.core.pairing.pairings.set(r,s)}this.events.emit(Ne.message,e),await this.recordMessageEvent(e,Xa.inbound)}async connect(e){await this.confirmOnlineStateOrThrow(),e&&e!==this.relayUrl&&(this.relayUrl=e,await this.transportDisconnect()),this.transportExplicitlyClosed=!1;let n=1;try{for(;n<6;){this.connectionAttemptInProgress=!0;try{if(this.transportExplicitlyClosed)break;this.logger.debug({},`Connecting to ${this.relayUrl}, attempt: ${n}...`),await this.createProvider(),await new Promise((r,i)=>{const s=()=>{i(new Error("Connection interrupted while trying to connect"))};this.provider.once(Gt.disconnect,s),nn(this.provider.connect(),this.connectTimeout,`Socket stalled when trying to connect to ${this.relayUrl}`).then(()=>r()).catch(i).finally(()=>{this.provider.off(Gt.disconnect,s),clearTimeout(this.reconnectTimeout)})}),await new Promise((r,i)=>{const s=()=>{i(new Error("Connection interrupted while trying to subscribe"))};this.provider.once(Gt.disconnect,s),this.subscriber.start().then(r).catch(i).finally(()=>{this.provider.off(Gt.disconnect,s)})}),this.hasExperiencedNetworkDisruption=!1}catch(r){await this.subscriber.stop();const i=r;this.logger.warn({},i.message),this.hasExperiencedNetworkDisruption=!0}if(this.connected){this.logger.debug({},`Connected to ${this.relayUrl} successfully on attempt: ${n}`);break}await new Promise(r=>setTimeout(r,Y.toMiliseconds(n*1))),n++}}finally{this.connectionAttemptInProgress=!1,clearTimeout(this.reconnectTimeout),this.reconnectTimeout=void 0,this.reconnectInProgress=!1}}startPingTimeout(){if(Fs())try{this.provider?.connection?.socket?.on("ping",()=>{this.resetPingTimeout()}),this.resetPingTimeout()}catch(e){this.logger.warn(e,e?.message)}}async createProvider(){if(this.provider.connection&&(this.unregisterProviderListeners(),this.connected))try{await nn(this.provider.disconnect(),1e3,"Closing previous provider")}catch{}const e=await this.core.crypto.signJWT(this.relayUrl);this.provider=new hA(new yA(j5({sdkVersion:sl,protocol:this.protocol,version:this.version,relayUrl:this.relayUrl,projectId:this.projectId,auth:e,useOnCloseEvent:!0,bundleId:this.bundleId,packageName:this.packageName}))),this.registerProviderListeners()}async recordMessageEvent(e,n){const{topic:r,message:i}=e;await this.messages.set(r,i,n)}async shouldIgnoreMessageEvent(e){const{topic:n,message:r}=e;if(!r||r.length===0)return this.logger.warn(`Ignoring invalid/empty message: ${r}`),!0;if(!await this.subscriber.isKnownTopic(n))return this.logger.warn(`Ignoring message for unknown topic ${n}`),!0;const i=this.messages.has(n,r);return i&&this.logger.warn(`Ignoring duplicate message: ${r}`),i}async onProviderPayload(e){if(this.logger.debug("Incoming Relay Payload"),this.logger.trace({type:"payload",direction:"incoming",payload:e}),rl(e)){if(!e.method.endsWith(rB))return;const n=e.params,{topic:r,message:i,publishedAt:s,attestation:o}=n.data,a={topic:r,message:i,publishedAt:s,transportType:Ie.relay,attestation:o};this.logger.debug("Emitting Relayer Payload"),this.logger.trace({type:"event",event:n.id,...a}),this.events.emit(n.id,a),await this.acknowledgePayload(e),await this.onMessageEvent(a)}else Ga(e)&&this.events.emit(Ne.message_ack,e)}async onMessageEvent(e){await this.shouldIgnoreMessageEvent(e)||(await this.recordMessageEvent(e,Xa.inbound),this.events.emit(Ne.message,e))}async acknowledgePayload(e){const n=Ha(e.id,!0);await this.provider.connection.send(n)}unregisterProviderListeners(){this.provider.off(Gt.payload,this.onPayloadHandler),this.provider.off(Gt.connect,this.onConnectHandler),this.provider.off(Gt.disconnect,this.onDisconnectHandler),this.provider.off(Gt.error,this.onProviderErrorHandler),clearTimeout(this.pingTimeout)}async registerEventListeners(){let e=await D1();w7(async n=>{e!==n&&(e=n,n?await this.transportOpen().catch(r=>this.logger.error(r,r?.message)):(this.hasExperiencedNetworkDisruption=!0,await this.transportDisconnect(),this.transportExplicitlyClosed=!1))}),this.core.heartbeat.on(pi.pulse,async()=>{if(!this.transportExplicitlyClosed&&!this.connected&&v7())try{await this.confirmOnlineStateOrThrow(),await this.transportOpen()}catch(n){this.logger.warn(n,n?.message)}}),this.events.on(Ne.connection_stalled,()=>{if(this.transportExplicitlyClosed||this.stalledRestartInProgress)return;this.stalledRestartInProgress=!0;const n=this.stalledRestartBackoff===0?0:Math.min(Math.pow(2,this.stalledRestartBackoff-1)*this.stalledRestartBaseInterval,this.stalledRestartMaxInterval);this.stalledRestartBackoff++,this.logger.warn(`Connection stalled, restarting transport${n?` in ${n}ms`:""}...`),this.stalledRestartTimeout=setTimeout(async()=>{try{if(this.transportExplicitlyClosed)return;await this.restartTransport()}catch(r){this.logger.error(r,r?.message)}finally{this.stalledRestartInProgress=!1}},n)})}async onProviderDisconnect(){if(clearTimeout(this.pingTimeout),this.events.emit(Ne.disconnect),!this.reconnectInProgress){this.reconnectInProgress=!0;try{await this.subscriber.stop()}catch(e){this.logger.warn(e,"subscriber.stop() failed during disconnect")}if(!this.subscriber.hasAnyTopics||this.transportExplicitlyClosed){this.reconnectInProgress=!1;return}this.reconnectTimeout=setTimeout(async()=>{await this.transportOpen().catch(e=>this.logger.error(e,e?.message)),this.reconnectTimeout=void 0,this.reconnectInProgress=!1},Y.toMiliseconds(iB))}}isInitialized(){if(!this.initialized){const{message:e}=J("NOT_INITIALIZED",this.name);throw new Error(e)}}async toEstablishConnection(){if(await this.confirmOnlineStateOrThrow(),!this.connected){if(this.connectPromise){await this.connectPromise;return}this.connectPromise=this.connect().finally(()=>{this.connectPromise=void 0}),await this.connectPromise}}}class mi extends m9{constructor(e,n,r,i=mn,s=void 0){super(e,n,r,i),this.core=e,this.logger=n,this.name=r,this.map=new Map,this.version=sB,this.cached=[],this.initialized=!1,this.storagePrefix=mn,this.recentlyDeleted=[],this.recentlyDeletedLimit=200,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(o=>{this.getKey&&o!==null&&!Ve(o)?this.map.set(this.getKey(o),o):XS(o)?this.map.set(o.id,o):YS(o)&&this.map.set(o.topic,o)}),this.cached=[],this.initialized=!0)},this.set=async(o,a)=>{this.isInitialized(),this.map.has(o)?await this.update(o,a):(this.logger.debug("Setting value"),this.logger.trace({type:"method",method:"set",key:o,value:a}),this.map.set(o,a),await this.persist())},this.get=o=>(this.isInitialized(),this.logger.debug("Getting value"),this.logger.trace({type:"method",method:"get",key:o}),this.getData(o)),this.getAll=o=>(this.isInitialized(),o?this.values.filter(a=>Object.keys(o).every(c=>WA(a[c],o[c]))):this.values),this.update=async(o,a)=>{this.isInitialized(),this.logger.debug("Updating value"),this.logger.trace({type:"method",method:"update",key:o,update:a});const c={...this.getData(o),...a};this.map.set(o,c),await this.persist()},this.delete=async(o,a)=>{this.isInitialized(),this.map.has(o)&&(this.logger.debug("Deleting value"),this.logger.trace({type:"method",method:"delete",key:o,reason:a}),this.map.delete(o),this.addToRecentlyDeleted(o),await this.persist())},this.logger=Tt(n,this.name),this.storagePrefix=i,this.getKey=s}get context(){return bt(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get length(){return this.map.size}get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values())}addToRecentlyDeleted(e){this.recentlyDeleted.push(e),this.recentlyDeleted.length>=this.recentlyDeletedLimit&&this.recentlyDeleted.splice(0,this.recentlyDeletedLimit/2)}async setDataStore(e){await this.core.storage.setItem(this.storageKey,e)}async getDataStore(){return await this.core.storage.getItem(this.storageKey)}getData(e){const n=this.map.get(e);if(!n){if(this.recentlyDeleted.includes(e)){const{message:i}=J("MISSING_OR_INVALID",`Record was recently deleted - ${this.name}: ${e}`);throw this.logger.error(i),new Error(i)}const{message:r}=J("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.error(r),new Error(r)}return n}async persist(){await this.setDataStore(this.values)}async restore(){try{const e=await this.getDataStore();if(typeof e>"u"||!e.length)return;if(this.map.size){const{message:n}=J("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(n),new Error(n)}this.cached=e,this.logger.debug(`Successfully Restored value for ${this.name}`),this.logger.trace({type:"method",method:"restore",value:this.values})}catch(e){this.logger.debug(`Failed to Restore value for ${this.name}`),this.logger.error(e)}}isInitialized(){if(!this.initialized){const{message:e}=J("NOT_INITIALIZED",this.name);throw new Error(e)}}}class UB{constructor(e,n){this.core=e,this.logger=n,this.name=uB,this.version=fB,this.events=new $e.exports,this.initialized=!1,this.storagePrefix=mn,this.ignoredPayloadTypes=[Hn],this.registeredMethods=[],this.init=async()=>{this.initialized||(await this.pairings.init(),await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.initialized=!0,this.logger.trace("Initialized"))},this.register=({methods:r})=>{this.isInitialized(),this.registeredMethods=[...new Set([...this.registeredMethods,...r])]},this.create=async r=>{this.isInitialized();const i=Nf(),s=await this.core.crypto.setSymKey(i),o=Le(Y.FIVE_MINUTES),a={protocol:vy},c={topic:s,expiry:o,relay:a,active:!1,methods:r?.methods},u=y1({protocol:this.core.protocol,version:this.core.version,topic:s,symKey:i,relay:a,expiryTimestamp:o,methods:r?.methods});return this.events.emit(yi.create,c),this.core.expirer.set(s,o),await this.pairings.set(s,c),await this.core.relayer.subscribe(s,{transportType:r?.transportType,internal:r?.internal}),{topic:s,uri:u}},this.pair=async r=>{this.isInitialized();const i=this.core.eventClient.createEvent({properties:{topic:r?.uri,trace:[vn.pairing_started]}});this.isValidPair(r,i);const{topic:s,symKey:o,relay:a,expiryTimestamp:c,methods:u}=g1(r.uri);i.props.properties.topic=s,i.addTrace(vn.pairing_uri_validation_success),i.addTrace(vn.pairing_uri_not_expired);let f;if(this.pairings.keys.includes(s)){if(f=this.pairings.get(s),i.addTrace(vn.existing_pairing),f.active)throw i.setError(Qn.active_pairing_already_exists),new Error(`Pairing already exists: ${s}. Please try again with a new connection URI.`);i.addTrace(vn.pairing_not_expired)}const h=c||Le(Y.FIVE_MINUTES),d={topic:s,relay:a,expiry:h,active:!1,methods:u};this.core.expirer.set(s,h),await this.pairings.set(s,d),i.addTrace(vn.store_new_pairing),r.activatePairing&&await this.activate({topic:s}),this.events.emit(yi.create,d),i.addTrace(vn.emit_inactive_pairing),this.core.crypto.keychain.has(s)||await this.core.crypto.setSymKey(o,s),i.addTrace(vn.subscribing_pairing_topic);try{await this.core.relayer.confirmOnlineStateOrThrow()}catch{i.setError(Qn.no_internet_connection)}try{await this.core.relayer.subscribe(s,{relay:a})}catch(l){throw i.setError(Qn.subscribe_pairing_topic_failure),l}return i.addTrace(vn.subscribe_pairing_topic_success),d},this.activate=async({topic:r})=>{this.isInitialized();const i=Le(Y.FIVE_MINUTES);this.core.expirer.set(r,i),await this.pairings.update(r,{active:!0,expiry:i})},this.ping=async r=>{this.isInitialized(),await this.isValidPing(r),this.logger.warn("ping() is deprecated and will be removed in the next major release.");const{topic:i}=r;if(this.pairings.keys.includes(i)){const s=await this.sendRequest(i,"wc_pairingPing",{}),{done:o,resolve:a,reject:c}=ii();this.events.once(ye("pairing_ping",s),({error:u})=>{u?c(u):a()}),await o()}},this.updateExpiry=async({topic:r,expiry:i})=>{this.isInitialized(),await this.pairings.update(r,{expiry:i})},this.updateMetadata=async({topic:r,metadata:i})=>{this.isInitialized(),await this.pairings.update(r,{peerMetadata:i})},this.getPairings=()=>(this.isInitialized(),this.pairings.values),this.disconnect=async r=>{this.isInitialized(),await this.isValidDisconnect(r);const{topic:i}=r;this.pairings.keys.includes(i)&&(await this.sendRequest(i,"wc_pairingDelete",Be("USER_DISCONNECTED")),await this.deletePairing(i))},this.formatUriFromPairing=r=>{this.isInitialized();const{topic:i,relay:s,expiry:o,methods:a}=r,c=this.core.crypto.keychain.get(i);return y1({protocol:this.core.protocol,version:this.core.version,topic:i,symKey:c,relay:s,expiryTimestamp:o,methods:a})},this.sendRequest=async(r,i,s)=>{const o=Jn(i,s),a=await this.core.crypto.encode(r,o),c=so[i].req;return this.core.history.set(r,o),this.core.relayer.publish(r,a,c),o.id},this.sendResult=async(r,i,s)=>{const o=Ha(r,s),a=await this.core.crypto.encode(i,o),c=(await this.core.history.get(i,r)).request.method,u=so[c].res;await this.core.relayer.publish(i,a,u),await this.core.history.resolve(o)},this.sendError=async(r,i,s)=>{const o=nl(r,s),a=await this.core.crypto.encode(i,o),c=(await this.core.history.get(i,r)).request.method,u=so[c]?so[c].res:so.unregistered_method.res;await this.core.relayer.publish(i,a,u),await this.core.history.resolve(o)},this.deletePairing=async(r,i)=>{await this.core.relayer.unsubscribe(r),await Promise.all([this.pairings.delete(r,Be("USER_DISCONNECTED")),this.core.crypto.deleteSymKey(r),i?Promise.resolve():this.core.expirer.del(r)])},this.cleanup=async()=>{const r=this.pairings.getAll().filter(i=>Tr(i.expiry));await Promise.all(r.map(i=>this.deletePairing(i.topic)))},this.onRelayEventRequest=async r=>{const{topic:i,payload:s}=r;switch(s.method){case"wc_pairingPing":return await this.onPairingPingRequest(i,s);case"wc_pairingDelete":return await this.onPairingDeleteRequest(i,s);default:return await this.onUnknownRpcMethodRequest(i,s)}},this.onRelayEventResponse=async r=>{const{topic:i,payload:s}=r,o=(await this.core.history.get(i,s.id)).request.method;switch(o){case"wc_pairingPing":return this.onPairingPingResponse(i,s);default:return this.onUnknownRpcMethodResponse(o)}},this.onPairingPingRequest=async(r,i)=>{const{id:s}=i;try{this.isValidPing({topic:r}),await this.sendResult(s,r,!0),this.events.emit(yi.ping,{id:s,topic:r})}catch(o){await this.sendError(s,r,o),this.logger.error(o)}},this.onPairingPingResponse=(r,i)=>{const{id:s}=i;setTimeout(()=>{bn(i)?this.events.emit(ye("pairing_ping",s),{}):Ht(i)&&this.events.emit(ye("pairing_ping",s),{error:i.error})},500)},this.onPairingDeleteRequest=async(r,i)=>{const{id:s}=i;try{this.isValidDisconnect({topic:r}),await this.deletePairing(r),this.events.emit(yi.delete,{id:s,topic:r})}catch(o){await this.sendError(s,r,o),this.logger.error(o)}},this.onUnknownRpcMethodRequest=async(r,i)=>{const{id:s,method:o}=i;try{if(this.registeredMethods.includes(o))return;const a=Be("WC_METHOD_UNSUPPORTED",o);await this.sendError(s,r,a),this.logger.error(a)}catch(a){await this.sendError(s,r,a),this.logger.error(a)}},this.onUnknownRpcMethodResponse=r=>{this.registeredMethods.includes(r)||this.logger.error(Be("WC_METHOD_UNSUPPORTED",r))},this.isValidPair=(r,i)=>{if(!At(r)){const{message:o}=J("MISSING_OR_INVALID",`pair() params: ${r}`);throw i.setError(Qn.malformed_pairing_uri),new Error(o)}if(!ZS(r.uri)){const{message:o}=J("MISSING_OR_INVALID",`pair() uri: ${r.uri}`);throw i.setError(Qn.malformed_pairing_uri),new Error(o)}const s=g1(r?.uri);if(!s?.relay?.protocol){const{message:o}=J("MISSING_OR_INVALID","pair() uri#relay-protocol");throw i.setError(Qn.malformed_pairing_uri),new Error(o)}if(!s?.symKey){const{message:o}=J("MISSING_OR_INVALID","pair() uri#symKey");throw i.setError(Qn.malformed_pairing_uri),new Error(o)}if(s?.expiryTimestamp&&Y.toMiliseconds(s?.expiryTimestamp)<Date.now()){i.setError(Qn.pairing_expired);const{message:o}=J("EXPIRED","pair() URI has expired. Please try again with a new connection URI.");throw new Error(o)}},this.isValidPing=async r=>{if(!At(r)){const{message:s}=J("MISSING_OR_INVALID",`ping() params: ${r}`);throw new Error(s)}const{topic:i}=r;await this.isValidPairingTopic(i)},this.isValidDisconnect=async r=>{if(!At(r)){const{message:s}=J("MISSING_OR_INVALID",`disconnect() params: ${r}`);throw new Error(s)}const{topic:i}=r;await this.isValidPairingTopic(i)},this.isValidPairingTopic=async r=>{if(!Ue(r,!1)){const{message:i}=J("MISSING_OR_INVALID",`pairing topic should be a string: ${r}`);throw new Error(i)}if(!this.pairings.keys.includes(r)){const{message:i}=J("NO_MATCHING_KEY",`pairing topic doesn't exist: ${r}`);throw new Error(i)}if(Tr(this.pairings.get(r).expiry)){await this.deletePairing(r);const{message:i}=J("EXPIRED",`pairing topic: ${r}`);throw new Error(i)}},this.core=e,this.logger=Tt(n,this.name),this.pairings=new mi(this.core,this.logger,this.name,this.storagePrefix)}get context(){return bt(this.logger)}isInitialized(){if(!this.initialized){const{message:e}=J("NOT_INITIALIZED",this.name);throw new Error(e)}}registerRelayerEvents(){this.core.relayer.on(Ne.message,async e=>{const{topic:n,message:r,transportType:i}=e;if(this.pairings.keys.includes(n)&&i!==Ie.link_mode){try{if(this.core.crypto.getPayloadType(r,gn)===ai){this.logger.warn(`registerRelayerEvents() -> non-link mode TYPE_2 payload ignored: ${r}`);return}}catch{}if(!this.ignoredPayloadTypes.includes(this.core.crypto.getPayloadType(r)))try{const s=await this.core.crypto.decode(n,r);rl(s)?(this.core.history.set(n,s),await this.onRelayEventRequest({topic:n,payload:s})):Ga(s)&&(await this.core.history.resolve(s),await this.onRelayEventResponse({topic:n,payload:s}),this.core.history.delete(n,s.id)),await this.core.relayer.messages.ack(n,r)}catch(s){this.logger.error(s)}}})}registerExpirerEvents(){this.core.expirer.on(Zt.expired,async e=>{const{topic:n}=Zg(e.target);n&&this.pairings.keys.includes(n)&&(await this.deletePairing(n,!0),this.events.emit(yi.expire,{topic:n}))})}}class PB extends g9{constructor(e,n){super(e,n),this.core=e,this.logger=n,this.records=new Map,this.events=new $e.exports.EventEmitter,this.name=lB,this.version=hB,this.cached=[],this.initialized=!1,this.storagePrefix=mn,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(r=>this.records.set(r.id,r)),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.set=(r,i,s)=>{if(this.isInitialized(),this.logger.debug("Setting JSON-RPC request history record"),this.logger.trace({type:"method",method:"set",topic:r,request:i,chainId:s}),this.records.has(i.id))return;const o={id:i.id,topic:r,request:{method:i.method,params:i.params||null},chainId:s,expiry:Le(Y.THIRTY_DAYS)};this.records.set(o.id,o),this.persist(),this.events.emit(sn.created,o)},this.resolve=async r=>{if(this.isInitialized(),this.logger.debug("Updating JSON-RPC response history record"),this.logger.trace({type:"method",method:"update",response:r}),!this.records.has(r.id))return;const i=await this.getRecord(r.id);typeof i.response<"u"||(i.response=Ht(r)?{error:r.error}:{result:r.result},this.records.set(i.id,i),this.persist(),this.events.emit(sn.updated,i))},this.get=async(r,i)=>(this.isInitialized(),this.logger.debug("Getting record"),this.logger.trace({type:"method",method:"get",topic:r,id:i}),await this.getRecord(i)),this.delete=(r,i)=>{this.isInitialized(),this.logger.debug("Deleting record"),this.logger.trace({type:"method",method:"delete",id:i}),this.values.forEach(s=>{if(s.topic===r){if(typeof i<"u"&&s.id!==i)return;this.records.delete(s.id),this.events.emit(sn.deleted,s)}}),this.persist()},this.exists=async(r,i)=>(this.isInitialized(),this.records.has(i)?(await this.getRecord(i)).topic===r:!1),this.on=(r,i)=>{this.events.on(r,i)},this.once=(r,i)=>{this.events.once(r,i)},this.off=(r,i)=>{this.events.off(r,i)},this.removeListener=(r,i)=>{this.events.removeListener(r,i)},this.logger=Tt(n,this.name)}get context(){return bt(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get size(){return this.records.size}get keys(){return Array.from(this.records.keys())}get values(){return Array.from(this.records.values())}get pending(){const e=[];return this.values.forEach(n=>{if(typeof n.response<"u")return;const r={topic:n.topic,request:Jn(n.request.method,n.request.params,n.id),chainId:n.chainId};return e.push(r)}),e}async setJsonRpcRecords(e){await this.core.storage.setItem(this.storageKey,e)}async getJsonRpcRecords(){return await this.core.storage.getItem(this.storageKey)}getRecord(e){this.isInitialized();const n=this.records.get(e);if(!n){const{message:r}=J("NO_MATCHING_KEY",`${this.name}: ${e}`);throw new Error(r)}return n}async persist(){await this.setJsonRpcRecords(this.values),this.events.emit(sn.sync)}async restore(){try{const e=await this.getJsonRpcRecords();if(typeof e>"u"||!e.length)return;if(this.records.size){const{message:n}=J("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(n),new Error(n)}this.cached=e,this.logger.debug(`Successfully Restored records for ${this.name}`),this.logger.trace({type:"method",method:"restore",records:this.values})}catch(e){this.logger.debug(`Failed to Restore records for ${this.name}`),this.logger.error(e)}}registerEventListeners(){this.events.on(sn.created,e=>{const n=sn.created;this.logger.info(`Emitting ${n}`),this.logger.debug({type:"event",event:n,record:e})}),this.events.on(sn.updated,e=>{const n=sn.updated;this.logger.info(`Emitting ${n}`),this.logger.debug({type:"event",event:n,record:e})}),this.events.on(sn.deleted,e=>{const n=sn.deleted;this.logger.info(`Emitting ${n}`),this.logger.debug({type:"event",event:n,record:e})}),this.core.heartbeat.on(pi.pulse,()=>{this.cleanup()})}cleanup(){try{this.isInitialized();let e=!1;this.records.forEach(n=>{Y.toMiliseconds(n.expiry||0)-Date.now()<=0&&(this.logger.info(`Deleting expired history log: ${n.id}`),this.records.delete(n.id),this.events.emit(sn.deleted,n,!1),e=!0)}),e&&this.persist()}catch(e){this.logger.warn(e)}}isInitialized(){if(!this.initialized){const{message:e}=J("NOT_INITIALIZED",this.name);throw new Error(e)}}}class qB extends E9{constructor(e,n){super(e,n),this.core=e,this.logger=n,this.expirations=new Map,this.events=new $e.exports.EventEmitter,this.name=dB,this.version=pB,this.cached=[],this.initialized=!1,this.storagePrefix=mn,this.init=async()=>{this.initialized||(this.logger.trace("Initialized"),await this.restore(),this.cached.forEach(r=>this.expirations.set(r.target,r)),this.cached=[],this.registerEventListeners(),this.initialized=!0)},this.has=r=>{try{const i=this.formatTarget(r);return typeof this.getExpiration(i)<"u"}catch{return!1}},this.set=(r,i)=>{this.isInitialized();const s=this.formatTarget(r),o={target:s,expiry:i};this.expirations.set(s,o),this.checkExpiry(s,o),this.events.emit(Zt.created,{target:s,expiration:o})},this.get=r=>{this.isInitialized();const i=this.formatTarget(r);return this.getExpiration(i)},this.del=r=>{if(this.isInitialized(),this.has(r)){const i=this.formatTarget(r),s=this.getExpiration(i);this.expirations.delete(i),this.events.emit(Zt.deleted,{target:i,expiration:s})}},this.on=(r,i)=>{this.events.on(r,i)},this.once=(r,i)=>{this.events.once(r,i)},this.off=(r,i)=>{this.events.off(r,i)},this.removeListener=(r,i)=>{this.events.removeListener(r,i)},this.logger=Tt(n,this.name)}get context(){return bt(this.logger)}get storageKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//"+this.name}get length(){return this.expirations.size}get keys(){return Array.from(this.expirations.keys())}get values(){return Array.from(this.expirations.values())}formatTarget(e){if(typeof e=="string")return W5(e);if(typeof e=="number")return H5(e);const{message:n}=J("UNKNOWN_TYPE",`Target type: ${typeof e}`);throw new Error(n)}async setExpirations(e){await this.core.storage.setItem(this.storageKey,e)}async getExpirations(){return await this.core.storage.getItem(this.storageKey)}async persist(){await this.setExpirations(this.values),this.events.emit(Zt.sync)}async restore(){try{const e=await this.getExpirations();if(typeof e>"u"||!e.length)return;if(this.expirations.size){const{message:n}=J("RESTORE_WILL_OVERRIDE",this.name);throw this.logger.error(n),new Error(n)}this.cached=e,this.logger.debug(`Successfully Restored expirations for ${this.name}`),this.logger.trace({type:"method",method:"restore",expirations:this.values})}catch(e){this.logger.debug(`Failed to Restore expirations for ${this.name}`),this.logger.error(e)}}getExpiration(e){const n=this.expirations.get(e);if(!n){const{message:r}=J("NO_MATCHING_KEY",`${this.name}: ${e}`);throw this.logger.warn(r),new Error(r)}return n}checkExpiry(e,n){const{expiry:r}=n;Y.toMiliseconds(r)-Date.now()<=0&&this.expire(e,n)}expire(e,n){this.expirations.delete(e),this.events.emit(Zt.expired,{target:e,expiration:n})}checkExpirations(){this.core.relayer.connected&&this.expirations.forEach((e,n)=>this.checkExpiry(n,e))}registerEventListeners(){this.core.heartbeat.on(pi.pulse,()=>this.checkExpirations()),this.events.on(Zt.created,e=>{const n=Zt.created;this.logger.info(`Emitting ${n}`),this.logger.debug({type:"event",event:n,data:e}),this.persist()}),this.events.on(Zt.expired,e=>{const n=Zt.expired;this.logger.info(`Emitting ${n}`),this.logger.debug({type:"event",event:n,data:e}),this.persist()}),this.events.on(Zt.deleted,e=>{const n=Zt.deleted;this.logger.info(`Emitting ${n}`),this.logger.debug({type:"event",event:n,data:e}),this.persist()})}isInitialized(){if(!this.initialized){const{message:e}=J("NOT_INITIALIZED",this.name);throw new Error(e)}}}class CB extends x9{constructor(e,n,r){super(e,n,r),this.core=e,this.logger=n,this.store=r,this.name=gB,this.verifyUrlV3=wB,this.storagePrefix=mn,this.version=by,this.init=async()=>{this.isDevEnv||(this.publicKey=await this.store.getItem(this.storeKey),this.publicKey&&Y.toMiliseconds(this.publicKey?.expiresAt)<Date.now()&&(this.logger.debug("verify v2 public key expired"),await this.removePublicKey()))},this.register=async i=>{if(!ni()||this.isDevEnv)return;const s=window.location.origin,{id:o,decryptedId:a}=i,c=`${this.verifyUrlV3}/attestation?projectId=${this.core.projectId}&origin=${s}&id=${o}&decryptedId=${a}`;try{const u=Kr(),f=this.startAbortTimer(Y.ONE_SECOND*5),h=await new Promise((d,l)=>{const p=()=>{window.removeEventListener("message",v),u.body.removeChild(w),l("attestation aborted")};this.abortController.signal.addEventListener("abort",p);const w=u.createElement("iframe");w.src=c,w.style.display="none",w.addEventListener("error",p,{signal:this.abortController.signal});const v=O=>{if(O.data&&typeof O.data=="string")try{const P=JSON.parse(O.data);if(P.type==="verify_attestation"){if(Ef(P.attestation).payload.id!==o)return;clearInterval(f),u.body.removeChild(w),this.abortController.signal.removeEventListener("abort",p),window.removeEventListener("message",v),d(P.attestation===null?"":P.attestation)}}catch(P){this.logger.warn(P)}};u.body.appendChild(w),window.addEventListener("message",v,{signal:this.abortController.signal})});return this.logger.debug(h,"jwt attestation"),h}catch(u){this.logger.warn(u)}return""},this.resolve=async i=>{if(this.isDevEnv)return"";const{attestationId:s,hash:o,encryptedId:a}=i;if(s===""){this.logger.debug("resolve: attestationId is empty, skipping");return}if(s){if(Ef(s).payload.id!==a)return;const u=await this.isValidJwtAttestation(s);if(u){if(!u.isVerified){this.logger.warn("resolve: jwt attestation: origin url not verified");return}return u}}if(!o)return;const c=this.getVerifyUrl(i?.verifyUrl);return this.fetchAttestation(o,c)},this.fetchAttestation=async(i,s)=>{this.logger.debug(`resolving attestation: ${i} from url: ${s}`);const o=this.startAbortTimer(Y.ONE_SECOND*5),a=await fetch(`${s}/attestation/${i}?v2Supported=true`,{signal:this.abortController.signal});return clearTimeout(o),a.status===200?await a.json():void 0},this.getVerifyUrl=i=>{let s=i||oo;return bB.includes(s)||(this.logger.info(`verify url: ${s}, not included in trusted list, assigning default: ${oo}`),s=oo),s},this.fetchPublicKey=async()=>{try{this.logger.debug(`fetching public key from: ${this.verifyUrlV3}`);const i=this.startAbortTimer(Y.FIVE_SECONDS),s=await fetch(`${this.verifyUrlV3}/public-key`,{signal:this.abortController.signal});return clearTimeout(i),await s.json()}catch(i){this.logger.warn(i)}},this.persistPublicKey=async i=>{this.logger.debug(i,"persisting public key to local storage"),await this.store.setItem(this.storeKey,i),this.publicKey=i},this.removePublicKey=async()=>{this.logger.debug("removing verify v2 public key from storage"),await this.store.removeItem(this.storeKey),this.publicKey=void 0},this.isValidJwtAttestation=async i=>{const s=await this.getPublicKey();try{if(s)return this.validateAttestation(i,s)}catch(a){this.logger.error(a),this.logger.warn("error validating attestation")}const o=await this.fetchAndPersistPublicKey();try{if(o)return this.validateAttestation(i,o)}catch(a){this.logger.error(a),this.logger.warn("error validating attestation")}},this.getPublicKey=async()=>this.publicKey?this.publicKey:await this.fetchAndPersistPublicKey(),this.fetchAndPersistPublicKey=async()=>{if(this.fetchPromise)return await this.fetchPromise,this.publicKey;this.fetchPromise=new Promise(async s=>{const o=await this.fetchPublicKey();o&&(await this.persistPublicKey(o),s(o))});const i=await this.fetchPromise;return this.fetchPromise=void 0,i},this.validateAttestation=(i,s)=>{const o=PS(i,s.publicKey),a={hasExpired:Y.toMiliseconds(o.exp)<Date.now(),payload:o};if(a.hasExpired)throw this.logger.warn("resolve: jwt attestation expired"),new Error("JWT attestation expired");return{origin:a.payload.origin,isScam:a.payload.isScam,isVerified:a.payload.isVerified}},this.logger=Tt(n,this.name),this.abortController=new AbortController,this.isDevEnv=Df(),this.init()}get storeKey(){return this.storagePrefix+this.version+this.core.customStoragePrefix+"//verify:public:key"}get context(){return bt(this.logger)}startAbortTimer(e){return this.abortController=new AbortController,setTimeout(()=>this.abortController.abort(),Y.toMiliseconds(e))}}class LB extends S9{constructor(e,n){super(e,n),this.projectId=e,this.logger=n,this.context=mB,this.registerDeviceToken=async r=>{const{clientId:i,token:s,notificationType:o,enableEncrypted:a=!1}=r,c=`${vB}/${this.projectId}/clients`;await fetch(c,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({client_id:i,type:o,token:s,always_raw:a})})},this.logger=Tt(n,this.context)}}class VB extends I9{constructor(e,n,r=!0){super(e,n,r),this.core=e,this.logger=n,this.context=xB,this.storagePrefix=mn,this.storageVersion=EB,this.events=new Map,this.shouldPersist=!1,this.init=async()=>{if(!Df())try{const i={eventId:Yg(),timestamp:Date.now(),domain:this.getAppDomain(),props:{event:"INIT",type:"",properties:{client_id:await this.core.crypto.getClientId(),user_agent:Hg(this.core.relayer.protocol,this.core.relayer.version,sl)}}};await this.sendEvent([i])}catch(i){this.logger.warn(i)}},this.createEvent=i=>{const{event:s="ERROR",type:o="",properties:{topic:a,trace:c}}=i,u=Yg(),f=this.core.projectId||"",h=Date.now(),d={eventId:u,timestamp:h,props:{event:s,type:o,properties:{topic:a,trace:c}},bundleId:f,domain:this.getAppDomain(),...this.setMethods(u)};return this.telemetryEnabled&&(this.events.set(u,d),this.shouldPersist=!0),d},this.getEvent=i=>{const{eventId:s,topic:o}=i;if(s)return this.events.get(s);const a=Array.from(this.events.values()).find(c=>c.props.properties.topic===o);if(a)return{...a,...this.setMethods(a.eventId)}},this.deleteEvent=i=>{const{eventId:s}=i;this.events.delete(s),this.shouldPersist=!0},this.setEventListeners=()=>{this.core.heartbeat.on(pi.pulse,async()=>{this.shouldPersist&&await this.persist(),this.events.forEach(i=>{Y.fromMiliseconds(Date.now())-Y.fromMiliseconds(i.timestamp)>SB&&(this.events.delete(i.eventId),this.shouldPersist=!0)})})},this.setMethods=i=>({addTrace:s=>this.addTrace(i,s),setError:s=>this.setError(i,s)}),this.addTrace=(i,s)=>{const o=this.events.get(i);o&&(o.props.properties.trace.push(s),this.events.set(i,o),this.shouldPersist=!0)},this.setError=(i,s)=>{const o=this.events.get(i);o&&(o.props.type=s,o.timestamp=Date.now(),this.events.set(i,o),this.shouldPersist=!0)},this.persist=async()=>{await this.core.storage.setItem(this.storageKey,Array.from(this.events.values())),this.shouldPersist=!1},this.restore=async()=>{try{const i=await this.core.storage.getItem(this.storageKey)||[];if(!i.length)return;i.forEach(s=>{this.events.set(s.eventId,{...s,...this.setMethods(s.eventId)})})}catch(i){this.logger.warn(i)}},this.submit=async()=>{if(!this.telemetryEnabled||this.events.size===0)return;const i=[];for(const[s,o]of this.events)o.props.type&&i.push(o);if(i.length!==0)try{if((await this.sendEvent(i)).ok)for(const s of i)this.events.delete(s.eventId),this.shouldPersist=!0}catch(s){this.logger.warn(s)}},this.sendEvent=async i=>{const s=this.getAppDomain()?"":"&sp=desktop";return await fetch(`${IB}?projectId=${this.core.projectId}&st=events_sdk&sv=js-${sl}${s}`,{method:"POST",body:JSON.stringify(i)})},this.getAppDomain=()=>Wg().url,this.logger=Tt(n,this.context),this.telemetryEnabled=r,r?this.restore().then(async()=>{await this.submit(),this.setEventListeners()}):this.persist()}get storageKey(){return this.storagePrefix+this.storageVersion+this.core.customStoragePrefix+"//"+this.context}}const ol=class ew extends p9{constructor(e){super(e),this.protocol=wy,this.version=by,this.name=Za,this.events=new $e.exports.EventEmitter,this.initialized=!1,this.on=(o,a)=>this.events.on(o,a),this.once=(o,a)=>this.events.once(o,a),this.off=(o,a)=>this.events.off(o,a),this.removeListener=(o,a)=>this.events.removeListener(o,a),this.dispatchEnvelope=({topic:o,message:a,sessionExists:c})=>{if(!o||!a)return;const u={topic:o,message:a,publishedAt:Date.now(),transportType:Ie.link_mode};this.relayer.onLinkMessageEvent(u,{sessionExists:c})};const n=this.getGlobalCore(e?.customStoragePrefix);if(n)try{return this.customStoragePrefix=n.customStoragePrefix,this.logger=n.logger,this.heartbeat=n.heartbeat,this.crypto=n.crypto,this.history=n.history,this.expirer=n.expirer,this.storage=n.storage,this.relayer=n.relayer,this.pairing=n.pairing,this.verify=n.verify,this.echoClient=n.echoClient,this.linkModeSupportedApps=n.linkModeSupportedApps,this.eventClient=n.eventClient,this.initialized=n.initialized,this.logChunkController=n.logChunkController,n}catch(o){console.warn("Failed to copy global core",o)}this.projectId=e?.projectId,this.relayUrl=e?.relayUrl||Ey,this.customStoragePrefix=e?.customStoragePrefix?`:${e.customStoragePrefix}`:"";const r=ac({level:typeof e?.logger=="string"&&e.logger?e.logger:HA.logger,name:Za}),{logger:i,chunkLoggerController:s}=Gl({opts:r,maxSizeInBytes:e?.maxLogBlobSizeInBytes,loggerOverride:e?.logger});this.logChunkController=s,this.logChunkController?.downloadLogsBlobInBrowser&&(window.downloadLogsBlobInBrowser=async()=>{this.logChunkController?.downloadLogsBlobInBrowser&&this.logChunkController?.downloadLogsBlobInBrowser({clientId:await this.crypto.getClientId()})}),this.logger=Tt(i,this.name),this.heartbeat=new Xf,this.crypto=new BB(this,this.logger,e?.keychain),this.history=new PB(this,this.logger),this.expirer=new qB(this,this.logger),this.storage=e?.storage?e.storage:new d9({...GA,...e?.storageOptions}),this.relayer=new NB({core:this,logger:this.logger,relayUrl:this.relayUrl,projectId:this.projectId}),this.pairing=new UB(this,this.logger),this.verify=new CB(this,this.logger,this.storage),this.echoClient=new LB(this.projectId||"",this.logger),this.linkModeSupportedApps=[],this.eventClient=new VB(this,this.logger,e?.telemetryEnabled),this.setGlobalCore(this)}static async init(e){const n=new ew(e);await n.initialize();const r=await n.crypto.getClientId();return await n.storage.setItem(oB,r),n}get context(){return bt(this.logger)}async start(){this.initialized||await this.initialize()}async getLogsBlob(){return this.logChunkController?.logsToBlob({clientId:await this.crypto.getClientId()})}async addLinkModeSupportedApp(e){this.linkModeSupportedApps.includes(e)||(this.linkModeSupportedApps.push(e),await this.storage.setItem(xy,this.linkModeSupportedApps))}async initialize(){this.logger.trace("Initialized");try{await this.crypto.init(),await this.history.init(),await this.expirer.init(),await this.relayer.init(),await this.heartbeat.init(),await this.pairing.init(),this.linkModeSupportedApps=await this.storage.getItem(xy)||[],this.initialized=!0,this.logger.info("Core Initialization Success")}catch(e){throw this.logger.warn(e,`Core Initialization Failure at epoch ${Date.now()}`),this.logger.error(e.message),e}}getGlobalCore(e=""){try{if(this.isGlobalCoreDisabled())return;const n=`_walletConnectCore_${e}`,r=`${n}_count`;return globalThis[r]=(globalThis[r]||0)+1,globalThis[r]>1&&console.warn(`WalletConnect Core is already initialized. This is probably a mistake and can lead to unexpected behavior. Init() was called ${globalThis[r]} times.`),globalThis[n]}catch(n){console.warn("Failed to get global WalletConnect core",n);return}}setGlobalCore(e){try{if(this.isGlobalCoreDisabled())return;const n=`_walletConnectCore_${e.opts?.customStoragePrefix||""}`;globalThis[n]=e}catch(n){console.warn("Failed to set global WalletConnect core",n)}}isGlobalCoreDisabled(){try{return typeof process<"u"&&process.env.DISABLE_GLOBAL_CORE==="true"}catch{return!0}}},Iy="wc",Ay=2,By="client",al=`${Iy}@${Ay}:${By}:`,cl={name:By,logger:"error",controller:!1,relayUrl:"wss://relay.walletconnect.org"},Dy="WALLETCONNECT_DEEPLINK_CHOICE",kB="proposal",Oy="Proposal expired",FB="session",es=Y.SEVEN_DAYS,zB="engine",Je={wc_sessionPropose:{req:{ttl:Y.FIVE_MINUTES,prompt:!0,tag:1100},res:{ttl:Y.FIVE_MINUTES,prompt:!1,tag:1101},reject:{ttl:Y.FIVE_MINUTES,prompt:!1,tag:1120},autoReject:{ttl:Y.FIVE_MINUTES,prompt:!1,tag:1121}},wc_sessionSettle:{req:{ttl:Y.FIVE_MINUTES,prompt:!1,tag:1102},res:{ttl:Y.FIVE_MINUTES,prompt:!1,tag:1103}},wc_sessionUpdate:{req:{ttl:Y.ONE_DAY,prompt:!1,tag:1104},res:{ttl:Y.ONE_DAY,prompt:!1,tag:1105}},wc_sessionExtend:{req:{ttl:Y.ONE_DAY,prompt:!1,tag:1106},res:{ttl:Y.ONE_DAY,prompt:!1,tag:1107}},wc_sessionRequest:{req:{ttl:Y.FIVE_MINUTES*3,prompt:!0,tag:1108},res:{ttl:Y.FIVE_MINUTES*3,prompt:!1,tag:1109}},wc_sessionEvent:{req:{ttl:Y.FIVE_MINUTES,prompt:!0,tag:1110},res:{ttl:Y.FIVE_MINUTES,prompt:!1,tag:1111}},wc_sessionDelete:{req:{ttl:Y.ONE_DAY,prompt:!1,tag:1112},res:{ttl:Y.ONE_DAY,prompt:!1,tag:1113}},wc_sessionPing:{req:{ttl:Y.ONE_DAY,prompt:!1,tag:1114},res:{ttl:Y.ONE_DAY,prompt:!1,tag:1115}},wc_sessionAuthenticate:{req:{ttl:Y.ONE_HOUR,prompt:!0,tag:1116},res:{ttl:Y.ONE_HOUR,prompt:!1,tag:1117},reject:{ttl:Y.FIVE_MINUTES,prompt:!1,tag:1118},autoReject:{ttl:Y.FIVE_MINUTES,prompt:!1,tag:1119}}},ul={min:Y.FIVE_MINUTES,max:Y.SEVEN_DAYS},En={idle:"IDLE",active:"ACTIVE"},MB={eth_sendTransaction:{key:""},eth_sendRawTransaction:{key:""},wallet_sendCalls:{key:""},solana_signTransaction:{key:"signature"},solana_signAllTransactions:{key:"transactions"},solana_signAndSendTransaction:{key:"signature"},sui_signAndExecuteTransaction:{key:"digest"},sui_signTransaction:{key:""},hedera_signAndExecuteTransaction:{key:"transactionId"},hedera_executeTransaction:{key:"transactionId"},near_signTransaction:{key:""},near_signTransactions:{key:""},tron_signTransaction:{key:"txID"},xrpl_signTransaction:{key:""},xrpl_signTransactionFor:{key:""},algo_signTxn:{key:""},sendTransfer:{key:"txid"},stacks_stxTransfer:{key:"txId"},polkadot_signTransaction:{key:""},cosmos_signDirect:{key:""},canton_prepareSignExecute:{key:""}},KB="request",jB=["wc_sessionPropose","wc_sessionRequest","wc_authRequest","wc_sessionAuthenticate"],WB="wc",HB="auth",GB="authKeys",ZB="pairingTopics",XB="requests",Ya=`${WB}@${1.5}:${HB}:`,Lr=`${Ya}:PUB_KEY`;class YB extends B9{constructor(e){super(e),this.name=zB,this.events=new $e.exports,this.initialized=!1,this.requestQueue={state:En.idle,queue:[]},this.sessionRequestQueue={state:En.idle,queue:[]},this.emittedSessionRequests=new eS({limit:500}),this.requestQueueDelay=Y.ONE_SECOND,this.expectedPairingMethodMap=new Map,this.recentlyDeletedMap=new Map,this.recentlyDeletedLimit=200,this.relayMessageCache=[],this.pendingSessions=new Map,this.init=async()=>{this.initialized||(await this.cleanup(),this.registerRelayerEvents(),this.registerExpirerEvents(),this.registerPairingEvents(),this.registerSubscriptionCleanup(),await this.registerLinkModeListeners(),this.client.core.pairing.register({methods:Object.keys(Je)}),this.initialized=!0,setTimeout(async()=>{await this.processPendingMessageEvents(),this.sessionRequestQueue.queue=this.getPendingSessionRequests(),this.processSessionRequestQueue()},Y.toMiliseconds(this.requestQueueDelay)))},this.connect=async n=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();const r={...n,requiredNamespaces:n.requiredNamespaces||{},optionalNamespaces:n.optionalNamespaces||{}};await this.isValidConnect(r),r.optionalNamespaces=WS(r.requiredNamespaces,r.optionalNamespaces),r.requiredNamespaces={};const{pairingTopic:i,requiredNamespaces:s,optionalNamespaces:o,sessionProperties:a,scopedProperties:c,relays:u,authentication:f,walletPay:h}=r,d=f?.[0]?.ttl||Je.wc_sessionPropose.req.ttl||Y.FIVE_MINUTES;this.validateRequestExpiry(d);let l=i,p,w=!1;try{if(l){const L=this.client.core.pairing.pairings.get(l);this.client.logger.warn("connect() with existing pairing topic is deprecated and will be removed in the next major release."),w=L.active}}catch(L){throw this.client.logger.error(`connect() -> pairing.get(${l}) failed`),L}if(!l||!w){const{topic:L,uri:R}=await this.client.core.pairing.create({internal:{skipSubscribe:!0}});l=L,p=R}if(!l){const{message:L}=J("NO_MATCHING_KEY",`connect() pairing topic: ${l}`);throw new Error(L)}const v=await this.client.core.crypto.generateKeyPair(),O=Le(d),P={requiredNamespaces:s,optionalNamespaces:o,relays:u??[{protocol:vy}],proposer:{publicKey:v,metadata:this.client.metadata},expiryTimestamp:O,pairingTopic:l,...a&&{sessionProperties:a},...c&&{scopedProperties:c},id:wn(),...(f||h)&&{requests:{authentication:f?.map(L=>{const{domain:R,chains:Z,nonce:W,uri:E,exp:y,nbf:m,type:g,statement:b,requestId:x,resources:B,signatureTypes:D}=L;return{domain:R,chains:Z,nonce:W,type:g??"caip122",aud:E,version:"1",iat:new Date().toISOString(),exp:y,nbf:m,statement:b,requestId:x,resources:B,signatureTypes:D}}),walletPay:h}}},A=ye("session_connect",P.id),{reject:I,resolve:S,done:M}=ii(d,Oy),F=({id:L})=>{if(L===P.id){this.client.events.off("proposal_expire",F);const R=this.pendingSessions.get(P.id);if(R){const{sessionTopic:Z,publicKey:W}=R;Promise.all([this.client.core.relayer.unsubscribe(Z),this.client.core.crypto.keychain.has(Z)?this.client.core.crypto.deleteSymKey(Z):Promise.resolve(),this.client.core.crypto.keychain.has(W)?this.client.core.crypto.deleteKeyPair(W):Promise.resolve()]).catch(E=>this.client.logger.warn(E))}this.pendingSessions.delete(P.id),this.events.emit(A,{error:{message:Oy,code:0}})}};return this.client.events.on("proposal_expire",F),this.events.once(A,({error:L,session:R})=>{this.client.events.off("proposal_expire",F),L?I(L):R&&S(R)}),await this.setProposal(P.id,P),await this.sendProposeSession({proposal:P,publishOpts:{internal:{throwOnFailedPublish:!0},tvf:{correlationId:P.id}}}).catch(L=>{throw this.deleteProposal(P.id),L}),{uri:p,approval:M}},this.pair=async n=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{return await this.client.core.pairing.pair(n)}catch(r){throw this.client.logger.error("pair() failed"),r}},this.approve=async n=>{const r=this.client.core.eventClient.createEvent({properties:{topic:n?.id?.toString(),trace:[on.session_approve_started]}});try{this.isInitialized(),await this.confirmOnlineStateOrThrow()}catch(F){throw r.setError(wi.no_internet_connection),F}try{await this.isValidProposalId(n?.id)}catch(F){throw this.client.logger.error(`approve() -> proposal.get(${n?.id}) failed`),r.setError(wi.proposal_not_found),F}try{await this.isValidApprove(n)}catch(F){throw this.client.logger.error("approve() -> isValidApprove() failed"),r.setError(wi.session_approve_namespace_validation_failure),F}const{id:i,relayProtocol:s,namespaces:o,sessionProperties:a,scopedProperties:c,sessionConfig:u,proposalRequestsResponses:f}=n,h=this.client.proposal.get(i);this.client.core.eventClient.deleteEvent({eventId:r.eventId});const{pairingTopic:d,proposer:l,requiredNamespaces:p,optionalNamespaces:w}=h;let v=this.client.core.eventClient?.getEvent({topic:d});v||(v=this.client.core.eventClient?.createEvent({type:on.session_approve_started,properties:{topic:d,trace:[on.session_approve_started,on.session_namespaces_validation_success]}}));const O=await this.client.core.crypto.generateKeyPair(),P=l.publicKey,A=await this.client.core.crypto.generateSharedKey(O,P),I={relay:{protocol:s??"irn"},namespaces:o,controller:{publicKey:O,metadata:this.client.metadata},expiry:Le(es),...a&&{sessionProperties:a},...c&&{scopedProperties:c},...u&&{sessionConfig:u},proposalRequestsResponses:f},S=Ie.relay;v.addTrace(on.subscribing_session_topic);try{await this.client.core.relayer.subscribe(A,{transportType:S,internal:{skipSubscribe:!0}})}catch(F){throw v.setError(wi.subscribe_session_topic_failure),F}v.addTrace(on.subscribe_session_topic_success);const M={...I,topic:A,requiredNamespaces:p,optionalNamespaces:w,pairingTopic:d,acknowledged:!1,self:I.controller,peer:{publicKey:l.publicKey,metadata:l.metadata},controller:O,transportType:Ie.relay,authentication:f?.authentication,walletPayResult:f?.walletPay};await this.client.session.set(A,M),v.addTrace(on.store_session);try{await this.sendApproveSession({sessionTopic:A,proposal:h,pairingProposalResponse:{relay:{protocol:s??"irn"},responderPublicKey:O},sessionSettleRequest:I,publishOpts:{internal:{throwOnFailedPublish:!0},tvf:{correlationId:i,...this.getTVFApproveParams(M)}}}),v.addTrace(on.session_approve_publish_success)}catch(F){throw this.client.logger.error(F),this.client.session.delete(A,Be("USER_DISCONNECTED")),await this.client.core.relayer.unsubscribe(A),F}return this.client.core.eventClient.deleteEvent({eventId:v.eventId}),await this.client.core.pairing.updateMetadata({topic:d,metadata:l.metadata}),await this.deleteProposal(i),await this.client.core.pairing.activate({topic:d}),await this.setExpiry(A,Le(es)),{topic:A,acknowledged:()=>Promise.resolve(this.client.session.get(A))}},this.reject=async n=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidReject(n)}catch(o){throw this.client.logger.error("reject() -> isValidReject() failed"),o}const{id:r,reason:i}=n;let s;try{s=this.client.proposal.get(r).pairingTopic}catch(o){throw this.client.logger.error(`reject() -> proposal.get(${r}) failed`),o}s&&await this.sendError({id:r,topic:s,error:i,rpcOpts:Je.wc_sessionPropose.reject}),await this.deleteProposal(r)},this.update=async n=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidUpdate(n)}catch(d){throw this.client.logger.error("update() -> isValidUpdate() failed"),d}const{topic:r,namespaces:i}=n,s=this.client.session.get(r);if(s.self.publicKey!==s.controller){const{message:d}=Be("UNAUTHORIZED_UPDATE_REQUEST");throw new Error(d)}const{done:o,resolve:a,reject:c}=ii(Y.FIVE_MINUTES,"Session update request expired without receiving any acknowledgement"),u=wn(),f=Cr().toString(),h=this.client.session.get(r).namespaces;return this.events.once(ye("session_update",u),({error:d})=>{d?c(d):a()}),await this.client.session.update(r,{namespaces:i}),await this.sendRequest({topic:r,method:"wc_sessionUpdate",params:{namespaces:i},throwOnFailedPublish:!0,clientRpcId:u,relayRpcId:f}).catch(d=>{this.client.logger.error(d),this.client.session.update(r,{namespaces:h}),c(d)}),{acknowledged:o}},this.extend=async n=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidExtend(n)}catch(c){throw this.client.logger.error("extend() -> isValidExtend() failed"),c}const{topic:r}=n,i=wn(),{done:s,resolve:o,reject:a}=ii(Y.FIVE_MINUTES,"Session extend request expired without receiving any acknowledgement");return this.events.once(ye("session_extend",i),({error:c})=>{c?a(c):o()}),await this.setExpiry(r,Le(es)),this.sendRequest({topic:r,method:"wc_sessionExtend",params:{},clientRpcId:i,throwOnFailedPublish:!0}).catch(c=>{a(c)}),{acknowledged:s}},this.request=async n=>{this.isInitialized();try{await this.isValidRequest(n)}catch(v){throw this.client.logger.error("request() -> isValidRequest() failed"),v}const{chainId:r,request:i,topic:s,expiry:o=Je.wc_sessionRequest.req.ttl}=n,a=this.client.session.get(s);a?.transportType===Ie.relay&&await this.confirmOnlineStateOrThrow();const c=wn(),u=Cr().toString(),{done:f,resolve:h,reject:d}=ii(o,"Request expired. Please try again.");this.events.once(ye("session_request",c),({error:v,result:O})=>{v?d(v):h(O)});const l="wc_sessionRequest",p=this.getAppLinkIfEnabled(a.peer.metadata,a.transportType);if(p)return await this.sendRequest({clientRpcId:c,relayRpcId:u,topic:s,method:l,params:{request:{...i,expiryTimestamp:Le(o)},chainId:r},expiry:o,throwOnFailedPublish:!0,appLink:p}).catch(v=>d(v)),this.client.events.emit("session_request_sent",{topic:s,request:i,chainId:r,id:c}),await f();const w={request:{...i,expiryTimestamp:Le(o)},chainId:r};return await Promise.all([new Promise(async v=>{await this.sendRequest({clientRpcId:c,relayRpcId:u,topic:s,method:l,params:w,expiry:o,throwOnFailedPublish:!0,tvf:this.getTVFParams(c,w)}).catch(O=>d(O)),this.client.events.emit("session_request_sent",{topic:s,request:i,chainId:r,id:c}),v()}),new Promise(async v=>{if(!a.sessionConfig?.disableDeepLink){const O=await Y5(this.client.core.storage,Dy);await G5({id:c,topic:s,wcDeepLink:O})}v()}),f()]).then(v=>v[2])},this.respond=async n=>{this.isInitialized();const r=this.client.core.eventClient.createEvent({properties:{topic:n?.topic||n?.response?.id?.toString(),trace:[on.session_request_response_started]}});try{await this.isValidRespond(n)}catch(u){throw r.addTrace(u?.message),r.setError(wi.session_request_response_validation_failure),u}r.addTrace(on.session_request_response_validation_success);const{topic:i,response:s}=n,{id:o}=s,a=this.client.session.get(i);a.transportType===Ie.relay&&await this.confirmOnlineStateOrThrow();const c=this.getAppLinkIfEnabled(a.peer.metadata,a.transportType);try{r.addTrace(on.session_request_response_publish_started),bn(s)?await this.sendResult({id:o,topic:i,result:s.result,throwOnFailedPublish:!0,appLink:c}):Ht(s)&&await this.sendError({id:o,topic:i,error:s.error,appLink:c}),this.cleanupAfterResponse(n)}catch(u){throw r.addTrace(u?.message),r.setError(wi.session_request_response_publish_failure),u}},this.ping=async n=>{this.isInitialized(),await this.confirmOnlineStateOrThrow();try{await this.isValidPing(n)}catch(i){throw this.client.logger.error("ping() -> isValidPing() failed"),i}const{topic:r}=n;if(this.client.session.keys.includes(r)){const i=wn(),s=Cr().toString(),{done:o,resolve:a,reject:c}=ii(Y.FIVE_MINUTES,"Ping request expired without receiving any acknowledgement");this.events.once(ye("session_ping",i),({error:u})=>{u?c(u):a()}),await Promise.all([this.sendRequest({topic:r,method:"wc_sessionPing",params:{},throwOnFailedPublish:!0,clientRpcId:i,relayRpcId:s}),o()])}else this.client.core.pairing.pairings.keys.includes(r)&&(this.client.logger.warn("ping() on pairing topic is deprecated and will be removed in the next major release."),await this.client.core.pairing.ping({topic:r}))},this.emit=async n=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidEmit(n);const{topic:r,event:i,chainId:s}=n,o=Cr().toString(),a=wn();await this.sendRequest({topic:r,method:"wc_sessionEvent",params:{event:i,chainId:s},throwOnFailedPublish:!0,relayRpcId:o,clientRpcId:a})},this.disconnect=async n=>{this.isInitialized(),await this.confirmOnlineStateOrThrow(),await this.isValidDisconnect(n);const{topic:r}=n;if(this.client.session.keys.includes(r))await this.sendRequest({topic:r,method:"wc_sessionDelete",params:Be("USER_DISCONNECTED"),throwOnFailedPublish:!0}),await this.deleteSession({topic:r,emitEvent:!1});else if(this.client.core.pairing.pairings.keys.includes(r))await this.client.core.pairing.disconnect({topic:r});else{const{message:i}=J("MISMATCHED_TOPIC",`Session or pairing topic not found: ${r}`);throw new Error(i)}},this.find=n=>(this.isInitialized(),this.client.session.getAll().filter(r=>HS(r,n))),this.getPendingSessionRequests=()=>this.client.pendingRequest.getAll(),this.authenticate=async(n,r)=>{this.isInitialized(),this.isValidAuthenticate(n);const i=r&&this.client.core.linkModeSupportedApps.includes(r)&&this.client.metadata.redirect?.linkMode,s=i?Ie.link_mode:Ie.relay;s===Ie.relay&&await this.confirmOnlineStateOrThrow();const{chains:o,statement:a="",uri:c,domain:u,nonce:f,type:h,exp:d,nbf:l,methods:p=[],expiry:w}=n,v=[...n.resources||[]],{topic:O,uri:P}=await this.client.core.pairing.create({methods:["wc_sessionAuthenticate"],transportType:s});if(this.client.logger.info({message:"Generated new pairing",pairing:{topic:O,uri:P}}),this.client.auth.authKeys.keys.includes(Lr)){const{responseTopic:B,publicKey:D}=this.client.auth.authKeys.get(Lr);B&&(await this.client.core.relayer.unsubscribe(B).catch(T=>this.client.logger.warn(T)),await this.client.auth.pairingTopics.delete(B,{message:"replaced",code:0}).catch(T=>this.client.logger.warn(T))),D&&this.client.core.crypto.keychain.has(D)&&await this.client.core.crypto.deleteKeyPair(D)}const A=await this.client.core.crypto.generateKeyPair(),I=Ra(A);if(await Promise.all([this.client.auth.authKeys.set(Lr,{responseTopic:I,publicKey:A}),this.client.auth.pairingTopics.set(I,{topic:I,pairingTopic:O})]),await this.client.core.relayer.subscribe(I,{transportType:s}),this.client.logger.info(`sending request to new pairing topic: ${O}`),p.length>0){const{namespace:B}=Ba(o[0]);let D=mS(B,"request",p);Ta(v)&&(D=ES(D,v.pop())),v.push(D)}const S=w&&w>Je.wc_sessionAuthenticate.req.ttl?w:Je.wc_sessionAuthenticate.req.ttl,M={authPayload:{type:h??"caip122",chains:o,statement:a,aud:c,domain:u,version:"1",nonce:f,iat:new Date().toISOString(),exp:d,nbf:l,resources:v},requester:{publicKey:A,metadata:this.client.metadata},expiryTimestamp:Le(S)},F={eip155:{chains:o,methods:[...new Set(["personal_sign",...p])],events:["chainChanged","accountsChanged"]}},L={requiredNamespaces:{},optionalNamespaces:F,relays:[{protocol:"irn"}],pairingTopic:O,proposer:{publicKey:A,metadata:this.client.metadata},expiryTimestamp:Le(Je.wc_sessionPropose.req.ttl),id:wn()},{done:R,resolve:Z,reject:W}=ii(S,"Request expired"),E=wn(),y=ye("session_connect",L.id),m=ye("session_request",E),g=async({error:B,session:D})=>{this.events.off(m,b),B?W(B):D&&Z({session:D})},b=async B=>{if(await this.deletePendingAuthRequest(E,{message:"fulfilled",code:0}),B.error){const q=Be("WC_METHOD_UNSUPPORTED","wc_sessionAuthenticate");return B.error.code===q.code?void 0:(this.events.off(y,g),W(B.error.message))}await this.deleteProposal(L.id),this.events.off(y,g);const{cacaos:D,responder:T}=B.result,U=[],k=[];for(const q of D){await t1({cacao:q,projectId:this.client.core.projectId})||(this.client.logger.error(q,"Signature verification failed"),W(Be("SESSION_SETTLEMENT_FAILED","Signature verification failed")));const{p:H}=q,G=Ta(H.resources),z=[Tf(H.iss)],N=Oa(H.iss);if(G){const V=i1(G),K=s1(G);U.push(...V),z.push(...K)}for(const V of z)k.push(`${V}:${N}`)}const C=await this.client.core.crypto.generateSharedKey(A,T.publicKey);let j;U.length>0&&(j={topic:C,acknowledged:!0,self:{publicKey:A,metadata:this.client.metadata},peer:T,controller:T.publicKey,expiry:Le(es),requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:"irn"},pairingTopic:O,namespaces:v1([...new Set(U)],[...new Set(k)]),transportType:s},await this.client.core.relayer.subscribe(C,{transportType:s}),await this.client.session.set(C,j),O&&await this.client.core.pairing.updateMetadata({topic:O,metadata:T.metadata}),j=this.client.session.get(C)),this.client.metadata.redirect?.linkMode&&T.metadata.redirect?.linkMode&&T.metadata.redirect?.universal&&r&&(this.client.core.addLinkModeSupportedApp(T.metadata.redirect.universal),this.client.session.update(C,{transportType:Ie.link_mode})),Z({auths:D,session:j})};this.events.once(y,g),this.events.once(m,b);let x;try{if(i){const B=Jn("wc_sessionAuthenticate",M,E);this.client.core.history.set(O,B);const D=await this.client.core.crypto.encode("",B,{type:ai,encoding:gn});x=Pa(r,O,D)}else await Promise.all([this.sendRequest({topic:O,method:"wc_sessionAuthenticate",params:M,expiry:n.expiry,throwOnFailedPublish:!0,clientRpcId:E}),this.sendRequest({topic:O,method:"wc_sessionPropose",params:L,expiry:Je.wc_sessionPropose.req.ttl,throwOnFailedPublish:!0,clientRpcId:L.id})])}catch(B){throw this.events.off(y,g),this.events.off(m,b),B}return await this.setProposal(L.id,L),await this.setAuthRequest(E,{request:{...M,verifyContext:{}},pairingTopic:O,transportType:s}),{uri:x??P,response:R}},this.approveSessionAuthenticate=async n=>{const{id:r,auths:i}=n,s=this.client.core.eventClient.createEvent({properties:{topic:r.toString(),trace:[bi.authenticated_session_approve_started]}});try{this.isInitialized()}catch(v){throw s.setError(ao.no_internet_connection),v}const o=this.getPendingAuthRequest(r);if(!o)throw s.setError(ao.authenticated_session_pending_request_not_found),new Error(`Could not find pending auth request with id ${r}`);const a=o.transportType||Ie.relay;a===Ie.relay&&await this.confirmOnlineStateOrThrow();const c=o.requester.publicKey,u=await this.client.core.crypto.generateKeyPair(),f=Ra(c),h={type:Hn,receiverPublicKey:c,senderPublicKey:u},d=[],l=[];for(const v of i){if(!await t1({cacao:v,projectId:this.client.core.projectId})){s.setError(ao.invalid_cacao);const S=Be("SESSION_SETTLEMENT_FAILED","Signature verification failed");throw await this.sendError({id:r,topic:f,error:S,encodeOpts:h}),new Error(S.message)}s.addTrace(bi.cacaos_verified);const{p:O}=v,P=Ta(O.resources),A=[Tf(O.iss)],I=Oa(O.iss);if(P){const S=i1(P),M=s1(P);d.push(...S),A.push(...M)}for(const S of A)l.push(`${S}:${I}`)}const p=await this.client.core.crypto.generateSharedKey(u,c);s.addTrace(bi.create_authenticated_session_topic);let w;if(d?.length>0){w={topic:p,acknowledged:!0,self:{publicKey:u,metadata:this.client.metadata},peer:{publicKey:c,metadata:o.requester.metadata},controller:c,expiry:Le(es),authentication:i,requiredNamespaces:{},optionalNamespaces:{},relay:{protocol:"irn"},pairingTopic:o.pairingTopic,namespaces:v1([...new Set(d)],[...new Set(l)]),transportType:a},s.addTrace(bi.subscribing_authenticated_session_topic);try{await this.client.core.relayer.subscribe(p,{transportType:a})}catch(v){throw s.setError(ao.subscribe_authenticated_session_topic_failure),v}s.addTrace(bi.subscribe_authenticated_session_topic_success),await this.client.session.set(p,w),s.addTrace(bi.store_authenticated_session),await this.client.core.pairing.updateMetadata({topic:o.pairingTopic,metadata:o.requester.metadata})}s.addTrace(bi.publishing_authenticated_session_approve);try{await this.sendResult({topic:f,id:r,result:{cacaos:i,responder:{publicKey:u,metadata:this.client.metadata}},encodeOpts:h,throwOnFailedPublish:!0,appLink:this.getAppLinkIfEnabled(o.requester.metadata,a)})}catch(v){throw s.setError(ao.authenticated_session_approve_publish_failure),v}return await this.client.auth.requests.delete(r,{message:"fulfilled",code:0}),await this.client.core.pairing.activate({topic:o.pairingTopic}),this.client.core.eventClient.deleteEvent({eventId:s.eventId}),{session:w}},this.rejectSessionAuthenticate=async n=>{this.isInitialized();const{id:r,reason:i}=n,s=this.getPendingAuthRequest(r);if(!s)throw new Error(`Could not find pending auth request with id ${r}`);s.transportType===Ie.relay&&await this.confirmOnlineStateOrThrow();const o=s.requester.publicKey,a=await this.client.core.crypto.generateKeyPair(),c=Ra(o),u={type:Hn,receiverPublicKey:o,senderPublicKey:a};await this.sendError({id:r,topic:c,error:i,encodeOpts:u,rpcOpts:Je.wc_sessionAuthenticate.reject,appLink:this.getAppLinkIfEnabled(s.requester.metadata,s.transportType)}),await this.client.auth.requests.delete(r,{message:"rejected",code:0}),await this.deleteProposal(r)},this.formatAuthMessage=n=>{this.isInitialized();const{request:r,iss:i}=n;return n1(r,i)},this.processRelayMessageCache=()=>{setTimeout(async()=>{if(this.relayMessageCache.length!==0)for(;this.relayMessageCache.length>0;)try{const n=this.relayMessageCache.shift();n&&await this.onRelayMessage(n)}catch(n){this.client.logger.error(n)}},50)},this.cleanupDuplicatePairings=async n=>{if(n.pairingTopic)try{const r=this.client.core.pairing.pairings.get(n.pairingTopic),i=this.client.core.pairing.pairings.getAll().filter(s=>s.peerMetadata?.url&&s.peerMetadata?.url===n.peer.metadata.url&&s.topic&&s.topic!==r.topic);if(i.length===0)return;this.client.logger.info(`Cleaning up ${i.length} duplicate pairing(s)`),await Promise.all(i.map(s=>this.client.core.pairing.disconnect({topic:s.topic}))),this.client.logger.info("Duplicate pairings clean up finished")}catch(r){this.client.logger.error(r)}},this.deleteSession=async n=>{const{topic:r,expirerHasDeleted:i=!1,emitEvent:s=!0,id:o=0}=n,{self:a}=this.client.session.get(r);await this.client.core.relayer.unsubscribe(r),await this.client.session.delete(r,Be("USER_DISCONNECTED")),this.addToRecentlyDeleted(r,"session"),this.client.core.crypto.keychain.has(a.publicKey)&&await this.client.core.crypto.deleteKeyPair(a.publicKey),this.client.core.crypto.keychain.has(r)&&await this.client.core.crypto.deleteSymKey(r),i||this.client.core.expirer.del(r),this.client.core.storage.removeItem(Dy).catch(c=>this.client.logger.warn(c)),r===this.sessionRequestQueue.queue[0]?.topic&&(this.sessionRequestQueue.state=En.idle),await Promise.all(this.getPendingSessionRequests().filter(c=>c.topic===r).map(c=>this.deletePendingSessionRequest(c.id,Be("USER_DISCONNECTED")))),s&&this.client.events.emit("session_delete",{id:o,topic:r})},this.deleteProposal=async(n,r)=>{if(r)try{const i=this.client.proposal.get(n);this.client.core.eventClient.getEvent({topic:i.pairingTopic})?.setError(wi.proposal_expired)}catch{}await Promise.all([this.client.proposal.delete(n,Be("USER_DISCONNECTED")),r?Promise.resolve():this.client.core.expirer.del(n)]),this.addToRecentlyDeleted(n,"proposal")},this.deletePendingSessionRequest=async(n,r,i=!1)=>{await Promise.all([this.client.pendingRequest.delete(n,r),i?Promise.resolve():this.client.core.expirer.del(n)]),this.addToRecentlyDeleted(n,"request"),this.sessionRequestQueue.queue=this.sessionRequestQueue.queue.filter(s=>s.id!==n),i&&(this.sessionRequestQueue.state=En.idle,this.client.events.emit("session_request_expire",{id:n}))},this.deletePendingAuthRequest=async(n,r,i=!1)=>{await Promise.all([this.client.auth.requests.delete(n,r),i?Promise.resolve():this.client.core.expirer.del(n)])},this.setExpiry=async(n,r)=>{this.client.session.keys.includes(n)&&(this.client.core.expirer.set(n,r),await this.client.session.update(n,{expiry:r}))},this.setProposal=async(n,r)=>{this.client.core.expirer.set(n,Le(Je.wc_sessionPropose.req.ttl)),await this.client.proposal.set(n,r)},this.setAuthRequest=async(n,r)=>{const{request:i,pairingTopic:s,transportType:o=Ie.relay}=r;this.client.core.expirer.set(n,i.expiryTimestamp),await this.client.auth.requests.set(n,{authPayload:i.authPayload,requester:i.requester,expiryTimestamp:i.expiryTimestamp,id:n,pairingTopic:s,verifyContext:i.verifyContext,transportType:o})},this.setPendingSessionRequest=async n=>{const{id:r,topic:i,params:s,verifyContext:o}=n,a=s.request.expiryTimestamp||Le(Je.wc_sessionRequest.req.ttl);this.client.core.expirer.set(r,a),await this.client.pendingRequest.set(r,{id:r,topic:i,params:s,verifyContext:o})},this.sendRequest=async n=>{const{topic:r,method:i,params:s,expiry:o,relayRpcId:a,clientRpcId:c,throwOnFailedPublish:u,appLink:f,tvf:h,publishOpts:d={}}=n,l=Jn(i,s,c);let p;const w=!!f;try{const P=w?gn:Ye;p=await this.client.core.crypto.encode(r,l,{encoding:P})}catch(P){throw await this.cleanup(),this.client.logger.error(`sendRequest() -> core.crypto.encode() for topic ${r} failed`),P}let v;if(jB.includes(i)){const P=jt(JSON.stringify(l)),A=jt(p);v=await this.client.core.verify.register({id:A,decryptedId:P})}const O={...Je[i].req,...d};if(O.attestation=v,o&&(O.ttl=o),a&&(O.id=a),this.client.core.history.set(r,l),w){const P=Pa(f,r,p);await global.Linking.openURL(P,this.client.name)}else O.tvf={...h,correlationId:l.id},u?(O.internal={...O.internal,throwOnFailedPublish:!0},await this.client.core.relayer.publish(r,p,O)):this.client.core.relayer.publish(r,p,O).catch(P=>this.client.logger.error(P));return l.id},this.sendProposeSession=async n=>{const{proposal:r,publishOpts:i}=n,s=Jn("wc_sessionPropose",r,r.id);this.client.core.history.set(r.pairingTopic,s);const o=await this.client.core.crypto.encode(r.pairingTopic,s,{encoding:Ye}),a=jt(JSON.stringify(s)),c=jt(o),u=await this.client.core.verify.register({id:c,decryptedId:a});await this.client.core.relayer.publishCustom({payload:{pairingTopic:r.pairingTopic,sessionProposal:o},opts:{...i,publishMethod:"wc_proposeSession",attestation:u}})},this.sendApproveSession=async n=>{const{sessionTopic:r,pairingProposalResponse:i,proposal:s,sessionSettleRequest:o,publishOpts:a}=n,c=Ha(s.id,i),u=await this.client.core.crypto.encode(s.pairingTopic,c,{encoding:Ye}),f=Jn("wc_sessionSettle",o,a?.id),h=await this.client.core.crypto.encode(r,f,{encoding:Ye});this.client.core.history.set(r,f),await this.client.core.relayer.publishCustom({payload:{sessionTopic:r,pairingTopic:s.pairingTopic,sessionProposalResponse:u,sessionSettlementRequest:h},opts:{...a,publishMethod:"wc_approveSession"}})},this.sendResult=async n=>{const{id:r,topic:i,result:s,throwOnFailedPublish:o,encodeOpts:a,appLink:c}=n,u=Ha(r,s);let f;const h=c&&typeof global?.Linking<"u";try{const p=h?gn:Ye;f=await this.client.core.crypto.encode(i,u,{...a||{},encoding:p})}catch(p){throw await this.cleanup(),this.client.logger.error(`sendResult() -> core.crypto.encode() for topic ${i} failed`),p}let d,l;try{d=await this.client.core.history.get(i,r);const p=d.request;try{l=this.getTVFParams(r,p.params,s)}catch(w){this.client.logger.warn(`sendResult() -> getTVFParams() failed: ${w?.message}`)}}catch(p){throw this.client.logger.error(`sendResult() -> history.get(${i}, ${r}) failed`),p}if(h){const p=Pa(c,i,f);await global.Linking.openURL(p,this.client.name)}else{const p=d.request.method,w=Je[p].res;w.tvf={...l,correlationId:r},o?(w.internal={...w.internal,throwOnFailedPublish:!0},await this.client.core.relayer.publish(i,f,w)):this.client.core.relayer.publish(i,f,w).catch(v=>this.client.logger.error(v))}await this.client.core.history.resolve(u)},this.sendError=async n=>{const{id:r,topic:i,error:s,encodeOpts:o,rpcOpts:a,appLink:c}=n,u=nl(r,s);let f;const h=c&&typeof global?.Linking<"u";try{const l=h?gn:Ye;f=await this.client.core.crypto.encode(i,u,{...o||{},encoding:l})}catch(l){throw await this.cleanup(),this.client.logger.error(`sendError() -> core.crypto.encode() for topic ${i} failed`),l}let d;try{d=await this.client.core.history.get(i,r)}catch(l){throw this.client.logger.error(`sendError() -> history.get(${i}, ${r}) failed`),l}if(h){const l=Pa(c,i,f);await global.Linking.openURL(l,this.client.name)}else{const l=d.request.method,p=a||Je[l].res;this.client.core.relayer.publish(i,f,p)}await this.client.core.history.resolve(u)},this.cleanup=async()=>{const n=[],r=[];this.client.session.getAll().forEach(i=>{let s=!1;Tr(i.expiry)&&(s=!0),this.client.core.crypto.keychain.has(i.topic)||(s=!0),s&&n.push(i.topic)}),this.client.proposal.getAll().forEach(i=>{Tr(i.expiryTimestamp)&&r.push(i.id)}),await Promise.all([...n.map(i=>this.deleteSession({topic:i})),...r.map(i=>this.deleteProposal(i))])},this.onProviderMessageEvent=async n=>{!this.initialized||this.relayMessageCache.length>0?this.relayMessageCache.push(n):await this.onRelayMessage(n)},this.onRelayEventRequest=async n=>{this.requestQueue.queue.push(n),await this.processRequestsQueue()},this.processRequestsQueue=async()=>{if(this.requestQueue.state===En.active){this.client.logger.info("Request queue already active, skipping...");return}for(this.client.logger.info(`Request queue starting with ${this.requestQueue.queue.length} requests`);this.requestQueue.queue.length>0;){this.requestQueue.state=En.active;const n=this.requestQueue.queue.shift();if(n)try{await this.processRequest(n)}catch(r){this.client.logger.warn(r)}}this.requestQueue.state=En.idle},this.processRequest=async n=>{const{topic:r,payload:i,attestation:s,transportType:o,encryptedId:a}=n,c=i.method;if(!this.shouldIgnorePairingRequest({topic:r,requestMethod:c}))switch(c){case"wc_sessionPropose":return await this.onSessionProposeRequest({topic:r,payload:i,attestation:s,encryptedId:a});case"wc_sessionSettle":return await this.onSessionSettleRequest(r,i);case"wc_sessionUpdate":return await this.onSessionUpdateRequest(r,i);case"wc_sessionExtend":return await this.onSessionExtendRequest(r,i);case"wc_sessionPing":return await this.onSessionPingRequest(r,i);case"wc_sessionDelete":return await this.onSessionDeleteRequest(r,i);case"wc_sessionRequest":return await this.onSessionRequest({topic:r,payload:i,attestation:s,encryptedId:a,transportType:o});case"wc_sessionEvent":return await this.onSessionEventRequest(r,i);case"wc_sessionAuthenticate":return await this.onSessionAuthenticateRequest({topic:r,payload:i,attestation:s,encryptedId:a,transportType:o});default:return this.client.logger.info(`Unsupported request method ${c}`)}},this.onRelayEventResponse=async n=>{const{topic:r,payload:i,transportType:s}=n,o=(await this.client.core.history.get(r,i.id)).request.method;switch(o){case"wc_sessionPropose":return this.onSessionProposeResponse(r,i,s);case"wc_sessionSettle":return this.onSessionSettleResponse(r,i);case"wc_sessionUpdate":return this.onSessionUpdateResponse(r,i);case"wc_sessionExtend":return this.onSessionExtendResponse(r,i);case"wc_sessionPing":return this.onSessionPingResponse(r,i);case"wc_sessionRequest":return this.onSessionRequestResponse(r,i);case"wc_sessionAuthenticate":return this.onSessionAuthenticateResponse(r,i);default:return this.client.logger.info(`Unsupported response method ${o}`)}},this.onRelayEventUnknownPayload=n=>{const{topic:r}=n,{message:i}=J("MISSING_OR_INVALID",`Decoded payload on topic ${r} is not identifiable as a JSON-RPC request or a response.`);throw new Error(i)},this.shouldIgnorePairingRequest=n=>{const{topic:r,requestMethod:i}=n,s=this.expectedPairingMethodMap.get(r);return!s||s.includes(i)?!1:!!(s.includes("wc_sessionAuthenticate")&&this.client.events.listenerCount("session_authenticate")>0)},this.onSessionProposeRequest=async n=>{const{topic:r,payload:i,attestation:s,encryptedId:o}=n,{params:a,id:c}=i;try{const u=this.client.core.eventClient.getEvent({topic:r});this.client.events.listenerCount("session_proposal")===0&&(console.warn("No listener for session_proposal event"),u?.setError(Qn.proposal_listener_not_found)),this.isValidConnect({...i.params});const f=a.expiryTimestamp||Le(Je.wc_sessionPropose.req.ttl),h={id:c,pairingTopic:r,expiryTimestamp:f,attestation:s,encryptedId:o,...a};await this.setProposal(c,h);const d=await this.getVerifyContext({attestationId:s,hash:jt(JSON.stringify(i)),encryptedId:o,metadata:h.proposer.metadata});u?.addTrace(vn.emit_session_proposal),this.client.events.emit("session_proposal",{id:c,params:h,verifyContext:d})}catch(u){await this.sendError({id:c,topic:r,error:u,rpcOpts:Je.wc_sessionPropose.autoReject}),this.client.logger.error(u)}},this.onSessionProposeResponse=async(n,r,i)=>{const{id:s}=r;if(bn(r)){const{result:o}=r;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",result:o});const a=this.client.proposal.get(s);this.client.logger.trace({type:"method",method:"onSessionProposeResponse",proposal:a});const c=a.proposer.publicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",selfPublicKey:c});const u=o.responderPublicKey;this.client.logger.trace({type:"method",method:"onSessionProposeResponse",peerPublicKey:u});const f=await this.client.core.crypto.generateSharedKey(c,u);this.pendingSessions.set(s,{sessionTopic:f,pairingTopic:n,proposalId:s,publicKey:c});const h=await this.client.core.relayer.subscribe(f,{transportType:i});this.client.logger.trace({type:"method",method:"onSessionProposeResponse",subscriptionId:h}),await this.client.core.pairing.activate({topic:n})}else if(Ht(r)){await this.deleteProposal(s);const o=ye("session_connect",s);if(this.events.listenerCount(o)===0)throw new Error(`emitting ${o} without any listeners, 954`);this.events.emit(o,{error:r.error})}},this.onSessionSettleRequest=async(n,r)=>{const{id:i,params:s}=r;try{this.isValidSessionSettleRequest(s);const{relay:o,controller:a,expiry:c,namespaces:u,sessionProperties:f,scopedProperties:h,sessionConfig:d,proposalRequestsResponses:l}=r.params,p=[...this.pendingSessions.values()].find(O=>O.sessionTopic===n);if(!p)return this.client.logger.error(`Pending session not found for topic ${n}`);const w=this.client.proposal.get(p.proposalId),v={topic:n,relay:o,expiry:c,namespaces:u,acknowledged:!0,pairingTopic:p.pairingTopic,requiredNamespaces:w.requiredNamespaces,optionalNamespaces:w.optionalNamespaces,controller:a.publicKey,self:{publicKey:p.publicKey,metadata:this.client.metadata},peer:{publicKey:a.publicKey,metadata:a.metadata},...f&&{sessionProperties:f},...h&&{scopedProperties:h},...d&&{sessionConfig:d},transportType:Ie.relay,authentication:l?.authentication,walletPayResult:l?.walletPay};await this.client.session.set(v.topic,v),await this.setExpiry(v.topic,v.expiry),await this.client.core.pairing.updateMetadata({topic:p.pairingTopic,metadata:v.peer.metadata}),this.pendingSessions.delete(p.proposalId),this.deleteProposal(p.proposalId,!1),this.cleanupDuplicatePairings(v),await this.sendResult({id:r.id,topic:n,throwOnFailedPublish:!0,result:!0}),this.client.events.emit("session_connect",{session:v}),this.events.emit(ye("session_connect",p.proposalId),{session:v})}catch(o){await this.sendError({id:i,topic:n,error:o}),this.client.logger.error(o)}},this.onSessionSettleResponse=async(n,r)=>{const{id:i}=r;bn(r)?(await this.client.session.update(n,{acknowledged:!0}),this.events.emit(ye("session_approve",i),{})):Ht(r)&&(await this.deleteSession({topic:n,emitEvent:!1}),this.events.emit(ye("session_approve",i),{error:r.error}))},this.onSessionUpdateRequest=async(n,r)=>{const{params:i,id:s}=r;try{const o=`${n}_session_update`,a=Gs.get(o);if(a&&this.isRequestOutOfSync(a,s)){this.client.logger.warn(`Discarding out of sync request - ${s}`),this.sendError({id:s,topic:n,error:Be("INVALID_UPDATE_REQUEST")});return}await this.isValidUpdate({topic:n,...i});const c=this.client.session.get(n);if(c.peer.publicKey!==c.controller)throw Be("UNAUTHORIZED_UPDATE_REQUEST");try{Gs.set(o,s),await this.client.session.update(n,{namespaces:i.namespaces}),await this.sendResult({id:s,topic:n,result:!0})}catch(u){throw Gs.delete(o),u}this.client.events.emit("session_update",{id:s,topic:n,params:i})}catch(o){await this.sendError({id:s,topic:n,error:o}),this.client.logger.error(o)}},this.isRequestOutOfSync=(n,r)=>r.toString().slice(0,-3)<n.toString().slice(0,-3),this.onSessionUpdateResponse=(n,r)=>{const{id:i}=r,s=ye("session_update",i);if(this.events.listenerCount(s)===0)throw new Error(`emitting ${s} without any listeners`);bn(r)?this.events.emit(ye("session_update",i),{}):Ht(r)&&this.events.emit(ye("session_update",i),{error:r.error})},this.onSessionExtendRequest=async(n,r)=>{const{id:i}=r;try{await this.isValidExtend({topic:n}),await this.setExpiry(n,Le(es)),await this.sendResult({id:i,topic:n,result:!0}),this.client.events.emit("session_extend",{id:i,topic:n})}catch(s){await this.sendError({id:i,topic:n,error:s}),this.client.logger.error(s)}},this.onSessionExtendResponse=(n,r)=>{const{id:i}=r,s=ye("session_extend",i);if(this.events.listenerCount(s)===0)throw new Error(`emitting ${s} without any listeners`);bn(r)?this.events.emit(ye("session_extend",i),{}):Ht(r)&&this.events.emit(ye("session_extend",i),{error:r.error})},this.onSessionPingRequest=async(n,r)=>{const{id:i}=r;try{this.isValidPing({topic:n}),await this.sendResult({id:i,topic:n,result:!0,throwOnFailedPublish:!0}),this.client.events.emit("session_ping",{id:i,topic:n})}catch(s){await this.sendError({id:i,topic:n,error:s}),this.client.logger.error(s)}},this.onSessionPingResponse=(n,r)=>{const{id:i}=r,s=ye("session_ping",i);setTimeout(()=>{if(this.events.listenerCount(s)===0)throw new Error(`emitting ${s} without any listeners 2176`);bn(r)?this.events.emit(ye("session_ping",i),{}):Ht(r)&&this.events.emit(ye("session_ping",i),{error:r.error})},500)},this.onSessionDeleteRequest=async(n,r)=>{const{id:i}=r;try{await this.isValidDisconnect({topic:n,reason:r.params}),this.cleanupPendingSentRequestsForTopic({topic:n,error:Be("USER_DISCONNECTED")}),await this.deleteSession({topic:n,id:i})}catch(s){this.client.logger.error(s)}},this.onSessionRequest=async n=>{const{topic:r,payload:i,attestation:s,encryptedId:o,transportType:a}=n,{id:c,params:u}=i;try{await this.isValidRequest({topic:r,...u});const f=this.client.session.get(r),h=await this.getVerifyContext({attestationId:s,hash:jt(JSON.stringify(Jn("wc_sessionRequest",u,c))),encryptedId:o,metadata:f.peer.metadata,transportType:a}),d={id:c,topic:r,params:u,verifyContext:h};await this.setPendingSessionRequest(d),a===Ie.link_mode&&f.peer.metadata.redirect?.universal&&this.client.core.addLinkModeSupportedApp(f.peer.metadata.redirect?.universal),this.client.signConfig?.disableRequestQueue?this.emitSessionRequest(d):(this.addSessionRequestToSessionRequestQueue(d),this.processSessionRequestQueue())}catch(f){await this.sendError({id:c,topic:r,error:f}),this.client.logger.error(f)}},this.onSessionRequestResponse=(n,r)=>{const{id:i}=r,s=ye("session_request",i);if(this.events.listenerCount(s)===0)throw new Error(`emitting ${s} without any listeners`);bn(r)?this.events.emit(ye("session_request",i),{result:r.result}):Ht(r)&&this.events.emit(ye("session_request",i),{error:r.error})},this.onSessionEventRequest=async(n,r)=>{const{id:i,params:s}=r;try{const o=`${n}_session_event_${s.event.name}`,a=Gs.get(o);if(a&&this.isRequestOutOfSync(a,i)){this.client.logger.info(`Discarding out of sync request - ${i}`);return}this.isValidEmit({topic:n,...s}),this.client.events.emit("session_event",{id:i,topic:n,params:s}),Gs.set(o,i)}catch(o){await this.sendError({id:i,topic:n,error:o}),this.client.logger.error(o)}},this.onSessionAuthenticateResponse=(n,r)=>{const{id:i}=r;this.client.logger.trace({type:"method",method:"onSessionAuthenticateResponse",topic:n,payload:r}),bn(r)?this.events.emit(ye("session_request",i),{result:r.result}):Ht(r)&&this.events.emit(ye("session_request",i),{error:r.error})},this.onSessionAuthenticateRequest=async n=>{const{topic:r,payload:i,attestation:s,encryptedId:o,transportType:a}=n;try{const{requester:c,authPayload:u,expiryTimestamp:f}=i.params,h=await this.getVerifyContext({attestationId:s,hash:jt(JSON.stringify(i)),encryptedId:o,metadata:c.metadata,transportType:a}),d={requester:c,pairingTopic:r,id:i.id,authPayload:u,verifyContext:h,expiryTimestamp:f};await this.setAuthRequest(i.id,{request:d,pairingTopic:r,transportType:a}),a===Ie.link_mode&&c.metadata.redirect?.universal&&this.client.core.addLinkModeSupportedApp(c.metadata.redirect.universal),this.client.events.emit("session_authenticate",{topic:r,params:i.params,id:i.id,verifyContext:h})}catch(c){this.client.logger.error(c);const u=i.params.requester.publicKey,f=await this.client.core.crypto.generateKeyPair(),h=this.getAppLinkIfEnabled(i.params.requester.metadata,a),d={type:Hn,receiverPublicKey:u,senderPublicKey:f};await this.sendError({id:i.id,topic:r,error:c,encodeOpts:d,rpcOpts:Je.wc_sessionAuthenticate.autoReject,appLink:h})}},this.addSessionRequestToSessionRequestQueue=n=>{this.sessionRequestQueue.queue.push(n)},this.cleanupAfterResponse=n=>{this.deletePendingSessionRequest(n.response.id,{message:"fulfilled",code:0}),setTimeout(()=>{this.sessionRequestQueue.state=En.idle,this.processSessionRequestQueue()},Y.toMiliseconds(this.requestQueueDelay))},this.cleanupPendingSentRequestsForTopic=({topic:n,error:r})=>{const i=this.client.core.history.pending;i.length>0&&i.filter(s=>s.topic===n&&s.request.method==="wc_sessionRequest").forEach(s=>{this.events.emit(ye("session_request",s.request.id),{error:r})})},this.processSessionRequestQueue=()=>{if(this.sessionRequestQueue.state===En.active){this.client.logger.info("session request queue is already active.");return}const n=this.sessionRequestQueue.queue[0];if(!n){this.client.logger.info("session request queue is empty.");return}try{this.emitSessionRequest(n)}catch(r){this.client.logger.error(r)}},this.emitSessionRequest=n=>{if(this.emittedSessionRequests.has(n.id)){this.client.logger.warn({id:n.id},`Skipping emitting \`session_request\` event for duplicate request. id: ${n.id}`);return}this.sessionRequestQueue.state=En.active,this.emittedSessionRequests.add(n.id),this.client.events.emit("session_request",n)},this.cleanupInProgress=!1,this.cleanupOrphanedSubscriptions=async()=>{const n=this.client.core.relayer.subscriber.topics;if(n.length===0)return;const r=new Set(this.client.session.keys),i=new Set(this.client.core.pairing.pairings.keys),s=new Set([...this.pendingSessions.values()].map(a=>a.sessionTopic));let o;if(this.client.auth.authKeys.keys.includes(Lr)){const{responseTopic:a}=this.client.auth.authKeys.get(Lr);o=a}for(const a of n)if(!r.has(a)&&!i.has(a)&&!s.has(a)&&a!==o){this.client.logger.info(`Cleaning up orphaned subscriber topic: ${a}`);try{await this.client.core.relayer.subscriber.unsubscribe(a)}catch(c){this.client.logger.warn(c,`Failed to clean up orphaned subscription: ${a}`)}}},this.onPairingCreated=n=>{if(n.methods&&this.expectedPairingMethodMap.set(n.topic,n.methods),n.active)return;const r=this.client.proposal.getAll().find(i=>i.pairingTopic===n.topic);r&&this.onSessionProposeRequest({topic:n.topic,payload:Jn("wc_sessionPropose",{...r,requiredNamespaces:r.requiredNamespaces,optionalNamespaces:r.optionalNamespaces,relays:r.relays,proposer:r.proposer,sessionProperties:r.sessionProperties,scopedProperties:r.scopedProperties},r.id),attestation:r.attestation,encryptedId:r.encryptedId})},this.isValidConnect=async n=>{if(!At(n)){const{message:u}=J("MISSING_OR_INVALID",`connect() params: ${JSON.stringify(n)}`);throw new Error(u)}const{pairingTopic:r,requiredNamespaces:i,optionalNamespaces:s,sessionProperties:o,scopedProperties:a,relays:c}=n;if(Ve(r)||await this.isValidPairingTopic(r),!r7(c,!0)){const{message:u}=J("MISSING_OR_INVALID",`connect() relays: ${c}`);throw new Error(u)}if(i&&!Ve(i)&&Hs(i)!==0){const u="requiredNamespaces are deprecated and are automatically assigned to optionalNamespaces";["fatal","error","silent"].includes(this.client.logger.level)?console.warn(u):this.client.logger.warn(u),this.validateNamespaces(i,"requiredNamespaces")}if(s&&!Ve(s)&&Hs(s)!==0&&this.validateNamespaces(s,"optionalNamespaces"),o&&!Ve(o)&&this.validateSessionProps(o,"sessionProperties"),a&&!Ve(a)){this.validateSessionProps(a,"scopedProperties");const u=Object.keys(i||{}).concat(Object.keys(s||{}));if(!Object.keys(a).every(f=>u.includes(f.split(":")[0])))throw new Error(`Scoped properties must be a subset of required/optional namespaces, received: ${JSON.stringify(a)}, required/optional namespaces: ${JSON.stringify(u)}`)}},this.validateNamespaces=(n,r)=>{const i=n7(n,"connect()",r);if(i)throw new Error(i.message)},this.isValidApprove=async n=>{if(!At(n))throw new Error(J("MISSING_OR_INVALID",`approve() params: ${n}`).message);const{id:r,namespaces:i,relayProtocol:s,sessionProperties:o,scopedProperties:a}=n;this.checkRecentlyDeleted(r),await this.isValidProposalId(r);const c=this.client.proposal.get(r),u=Pf(i,"approve()");if(u)throw new Error(u.message);const f=A1(c.requiredNamespaces,i,"approve()");if(f)throw new Error(f.message);if(!Ue(s,!0)){const{message:h}=J("MISSING_OR_INVALID",`approve() relayProtocol: ${s}`);throw new Error(h)}if(o&&!Ve(o)&&this.validateSessionProps(o,"sessionProperties"),a&&!Ve(a)){this.validateSessionProps(a,"scopedProperties");const h=new Set(Object.keys(i));if(!Object.keys(a).every(d=>h.has(d.split(":")[0])))throw new Error(`Scoped properties must be a subset of approved namespaces, received: ${JSON.stringify(a)}, approved namespaces: ${Array.from(h).join(", ")}`)}},this.isValidReject=async n=>{if(!At(n)){const{message:s}=J("MISSING_OR_INVALID",`reject() params: ${n}`);throw new Error(s)}const{id:r,reason:i}=n;if(this.checkRecentlyDeleted(r),await this.isValidProposalId(r),!s7(i)){const{message:s}=J("MISSING_OR_INVALID",`reject() reason: ${JSON.stringify(i)}`);throw new Error(s)}},this.isValidSessionSettleRequest=n=>{if(!At(n)){const{message:u}=J("MISSING_OR_INVALID",`onSessionSettleRequest() params: ${n}`);throw new Error(u)}const{relay:r,controller:i,namespaces:s,expiry:o}=n;if(!S1(r)){const{message:u}=J("MISSING_OR_INVALID","onSessionSettleRequest() relay protocol should be a string");throw new Error(u)}const a=JS(i,"onSessionSettleRequest()");if(a)throw new Error(a.message);const c=Pf(s,"onSessionSettleRequest()");if(c)throw new Error(c.message);if(Tr(o)){const{message:u}=J("EXPIRED","onSessionSettleRequest()");throw new Error(u)}},this.isValidUpdate=async n=>{if(!At(n)){const{message:c}=J("MISSING_OR_INVALID",`update() params: ${n}`);throw new Error(c)}const{topic:r,namespaces:i}=n;this.checkRecentlyDeleted(r),await this.isValidSessionTopic(r);const s=this.client.session.get(r),o=Pf(i,"update()");if(o)throw new Error(o.message);const a=A1(s.requiredNamespaces,i,"update()");if(a)throw new Error(a.message)},this.isValidExtend=async n=>{if(!At(n)){const{message:i}=J("MISSING_OR_INVALID",`extend() params: ${n}`);throw new Error(i)}const{topic:r}=n;this.checkRecentlyDeleted(r),await this.isValidSessionTopic(r)},this.isValidRequest=async n=>{if(!At(n)){const{message:c}=J("MISSING_OR_INVALID",`request() params: ${n}`);throw new Error(c)}const{topic:r,request:i,chainId:s,expiry:o}=n;this.checkRecentlyDeleted(r),await this.isValidSessionTopic(r);const{namespaces:a}=this.client.session.get(r);if(!I1(a,s)){const{message:c}=J("MISSING_OR_INVALID",`request() chainId: ${s}`);throw new Error(c)}if(!o7(i)){const{message:c}=J("MISSING_OR_INVALID",`request() ${JSON.stringify(i)}`);throw new Error(c)}if(!u7(a,s,i.method)){const{message:c}=J("MISSING_OR_INVALID",`request() method: ${i.method}`);throw new Error(c)}this.validateRequestExpiry(o)},this.isValidRespond=async n=>{if(!At(n)){const{message:o}=J("MISSING_OR_INVALID",`respond() params: ${n}`);throw new Error(o)}const{topic:r,response:i}=n;try{await this.isValidSessionTopic(r)}catch(o){throw n?.response?.id&&this.cleanupAfterResponse(n),o}if(!a7(i)){const{message:o}=J("MISSING_OR_INVALID",`respond() response: ${JSON.stringify(i)}`);throw new Error(o)}const s=this.client.pendingRequest.get(i.id);if(s.topic!==r){const{message:o}=J("MISMATCHED_TOPIC",`Request response topic mismatch. reqId: ${i.id}, expected topic: ${s.topic}, received topic: ${r}`);throw new Error(o)}},this.isValidPing=async n=>{if(!At(n)){const{message:i}=J("MISSING_OR_INVALID",`ping() params: ${n}`);throw new Error(i)}const{topic:r}=n;await this.isValidSessionOrPairingTopic(r)},this.isValidEmit=async n=>{if(!At(n)){const{message:a}=J("MISSING_OR_INVALID",`emit() params: ${n}`);throw new Error(a)}const{topic:r,event:i,chainId:s}=n;await this.isValidSessionTopic(r);const{namespaces:o}=this.client.session.get(r);if(!I1(o,s)){const{message:a}=J("MISSING_OR_INVALID",`emit() chainId: ${s}`);throw new Error(a)}if(!c7(i)){const{message:a}=J("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(i)}`);throw new Error(a)}if(!f7(o,s,i.name)){const{message:a}=J("MISSING_OR_INVALID",`emit() event: ${JSON.stringify(i)}`);throw new Error(a)}},this.isValidDisconnect=async n=>{if(!At(n)){const{message:i}=J("MISSING_OR_INVALID",`disconnect() params: ${n}`);throw new Error(i)}const{topic:r}=n;await this.isValidSessionOrPairingTopic(r)},this.isValidAuthenticate=n=>{const{chains:r,uri:i,domain:s,nonce:o}=n;if(!Array.isArray(r)||r.length===0)throw new Error("chains is required and must be a non-empty array");if(!Ue(i,!1))throw new Error("uri is required parameter");if(!Ue(s,!1))throw new Error("domain is required parameter");if(!Ue(o,!1))throw new Error("nonce is required parameter");if([...new Set(r.map(c=>Ba(c).namespace))].length>1)throw new Error("Multi-namespace requests are not supported. Please request single namespace only.");const{namespace:a}=Ba(r[0]);if(a!=="eip155")throw new Error("Only eip155 namespace is supported for authenticated sessions. Please use .connect() for non-eip155 chains.")},this.getVerifyContext=async n=>{const{attestationId:r,hash:i,encryptedId:s,metadata:o,transportType:a}=n,c={verified:{verifyUrl:o.verifyUrl||oo,validation:"UNKNOWN",origin:o.url||""}};try{if(a===Ie.link_mode){const f=this.getAppLinkIfEnabled(o,a);return c.verified.validation=f&&new URL(f).origin===new URL(o.url).origin?"VALID":"INVALID",c}const u=await this.client.core.verify.resolve({attestationId:r,hash:i,encryptedId:s,verifyUrl:o.verifyUrl});u&&(c.verified.origin=u.origin,c.verified.isScam=u.isScam,c.verified.validation=u.origin===new URL(o.url).origin?"VALID":"INVALID")}catch(u){this.client.logger.warn(u)}return this.client.logger.debug(`Verify context: ${JSON.stringify(c)}`),c},this.validateSessionProps=(n,r)=>{Object.values(n).forEach((i,s)=>{if(i==null){const{message:o}=J("MISSING_OR_INVALID",`${r} must contain an existing value for each key. Received: ${i} for key ${Object.keys(n)[s]}`);throw new Error(o)}})},this.getPendingAuthRequest=n=>{const r=this.client.auth.requests.get(n);return typeof r=="object"?r:void 0},this.addToRecentlyDeleted=(n,r)=>{if(this.recentlyDeletedMap.set(n,r),this.recentlyDeletedMap.size>=this.recentlyDeletedLimit){let i=0;const s=this.recentlyDeletedLimit/2;for(const o of this.recentlyDeletedMap.keys()){if(i++>=s)break;this.recentlyDeletedMap.delete(o)}}},this.checkRecentlyDeleted=n=>{const r=this.recentlyDeletedMap.get(n);if(r){const{message:i}=J("MISSING_OR_INVALID",`Record was recently deleted - ${r}: ${n}`);throw new Error(i)}},this.isLinkModeEnabled=(n,r)=>!n||r!==Ie.link_mode?!1:this.client.metadata?.redirect?.linkMode===!0&&this.client.metadata?.redirect?.universal!==void 0&&this.client.metadata?.redirect?.universal!==""&&n?.redirect?.universal!==void 0&&n?.redirect?.universal!==""&&n?.redirect?.linkMode===!0&&this.client.core.linkModeSupportedApps.includes(n.redirect.universal)&&typeof global?.Linking<"u",this.getAppLinkIfEnabled=(n,r)=>this.isLinkModeEnabled(n,r)?n?.redirect?.universal:void 0,this.handleLinkModeMessage=({url:n})=>{if(!n||!n.includes("wc_ev")||!n.includes("topic"))return;const r=Xg(n,"topic")||"",i=decodeURIComponent(Xg(n,"wc_ev")||""),s=this.client.session.keys.includes(r);s&&this.client.session.update(r,{transportType:Ie.link_mode}),this.client.core.dispatchEnvelope({topic:r,message:i,sessionExists:s})},this.registerLinkModeListeners=async()=>{if(Df()||Wn()&&this.client.metadata.redirect?.linkMode){const n=global?.Linking;if(typeof n<"u"){n.addEventListener("url",this.handleLinkModeMessage,this.client.name);const r=await n.getInitialURL();r&&setTimeout(()=>{this.handleLinkModeMessage({url:r})},50)}}},this.getTVFApproveParams=n=>{try{const r=w1(n.namespaces),i=kS(n.namespaces),s=FS(n.namespaces),o=n.sessionProperties,a=n.scopedProperties;return{approvedChains:r,approvedMethods:i,approvedEvents:s,sessionProperties:o,scopedProperties:a}}catch(r){return this.client.logger.warn(r,"Error getting TVF approve params"),{}}},this.getTVFParams=(n,r,i)=>{if(!r.request?.method)return{};const s={correlationId:n,rpcMethods:[r.request.method],chainId:r.chainId};try{const o=this.extractTxHashesFromResult(r.request,i);s.txHashes=o,s.contractAddresses=this.isValidContractData(r.request.params)?[r.request.params?.[0]?.to]:[]}catch(o){this.client.logger.warn(o,"Error getting TVF params")}return s},this.isValidContractData=n=>{if(!n)return!1;try{const r=n?.data||n?.[0]?.data;if(!r.startsWith("0x"))return!1;const i=r.slice(2);return/^[0-9a-fA-F]*$/.test(i)?i.length%2===0:!1}catch{}return!1},this.extractTxHashesFromResult=(n,r)=>{try{if(!r)return[];const i=n.method,s=MB[i];if(i==="sui_signTransaction")return[aS(r.transactionBytes)];if(i==="near_signTransaction")return[_g(r)];if(i==="near_signTransactions")return r.map(a=>_g(a));if(i==="xrpl_signTransactionFor"||i==="xrpl_signTransaction")return[r.tx_json?.hash];if(i==="polkadot_signTransaction")return[O7({transaction:n.params.transactionPayload,signature:r.signature})];if(i==="algo_signTxn")return Xi(r)?r.map(a=>$g(a)):[$g(r)];if(i==="cosmos_signDirect")return[uS(r)];if(i==="wallet_sendCalls")return fS(r);if(i==="canton_prepareSignExecute")return N7(n.params,r);if(typeof r=="string")return[r];const o=r[s.key];if(Xi(o))return i==="solana_signAllTransactions"?o.map(a=>oS(a)):o;if(typeof o=="string")return[o]}catch(i){this.client.logger.warn(i,"Error extracting tx hashes from result")}return[]}}async processPendingMessageEvents(){try{const e=this.client.session.keys,n=this.client.core.relayer.messages.getWithoutAck(e);for(const[r,i]of Object.entries(n))for(const s of i)try{await this.onProviderMessageEvent({topic:r,message:s,publishedAt:Date.now()})}catch{this.client.logger.warn(`Error processing pending message event for topic: ${r}, message: ${s}`)}}catch(e){this.client.logger.warn(e,"processPendingMessageEvents failed")}}isInitialized(){if(!this.initialized){const{message:e}=J("NOT_INITIALIZED",this.name);throw new Error(e)}}async confirmOnlineStateOrThrow(){await this.client.core.relayer.confirmOnlineStateOrThrow()}registerRelayerEvents(){this.client.core.relayer.on(Ne.message,e=>{this.onProviderMessageEvent(e)})}async onRelayMessage(e){const{topic:n,message:r,attestation:i,transportType:s}=e,{publicKey:o}=this.client.auth.authKeys.keys.includes(Lr)?this.client.auth.authKeys.get(Lr):{publicKey:void 0};try{try{if(s!==Ie.link_mode&&this.client.core.crypto.getPayloadType(r,gn)===ai){this.client.logger.warn(`onRelayMessage() -> non-link mode TYPE_2 payload ignored: ${r}`);return}}catch{}const a=await this.client.core.crypto.decode(n,r,{receiverPublicKey:o,encoding:s===Ie.link_mode?gn:Ye});rl(a)?(this.client.core.history.set(n,a),await this.onRelayEventRequest({topic:n,payload:a,attestation:i,transportType:s,encryptedId:jt(r)})):Ga(a)?(await this.client.core.history.resolve(a),await this.onRelayEventResponse({topic:n,payload:a,transportType:s}),this.client.core.history.delete(n,a.id)):(this.client.logger.error(`onRelayMessage() -> unknown payload: ${JSON.stringify(a)}`),await this.onRelayEventUnknownPayload({topic:n,payload:a,transportType:s})),await this.client.core.relayer.messages.ack(n,r)}catch(a){this.client.logger.error(`onRelayMessage() -> failed to process an inbound message: ${r}`),this.client.logger.error(a?.message)}}registerExpirerEvents(){this.client.core.expirer.on(Zt.expired,async e=>{const{topic:n,id:r}=Zg(e.target);if(r&&this.client.pendingRequest.keys.includes(r))return await this.deletePendingSessionRequest(r,J("EXPIRED"),!0);if(r&&this.client.auth.requests.keys.includes(r))return await this.deletePendingAuthRequest(r,J("EXPIRED"),!0);n?this.client.session.keys.includes(n)&&(await this.deleteSession({topic:n,expirerHasDeleted:!0}),this.client.events.emit("session_expire",{topic:n})):r&&(await this.deleteProposal(r,!0),this.client.events.emit("proposal_expire",{id:r}))})}registerSubscriptionCleanup(){this.client.core.heartbeat.on("heartbeat_pulse",async()=>{if(!this.cleanupInProgress){this.cleanupInProgress=!0;try{await this.cleanupOrphanedSubscriptions()}catch(e){this.client.logger.warn(e)}finally{this.cleanupInProgress=!1}}})}registerPairingEvents(){this.client.core.pairing.events.on(yi.create,e=>this.onPairingCreated(e)),this.client.core.pairing.events.on(yi.delete,e=>{this.addToRecentlyDeleted(e.topic,"pairing")})}isValidPairingTopic(e){if(!Ue(e,!1)){const{message:n}=J("MISSING_OR_INVALID",`pairing topic should be a string: ${e}`);throw new Error(n)}if(!this.client.core.pairing.pairings.keys.includes(e)){const{message:n}=J("NO_MATCHING_KEY",`pairing topic doesn't exist: ${e}`);throw new Error(n)}if(Tr(this.client.core.pairing.pairings.get(e).expiry)){const{message:n}=J("EXPIRED",`pairing topic: ${e}`);throw new Error(n)}}async isValidSessionTopic(e){if(!Ue(e,!1)){const{message:n}=J("MISSING_OR_INVALID",`session topic should be a string: ${e}`);throw new Error(n)}if(this.checkRecentlyDeleted(e),!this.client.session.keys.includes(e)){const{message:n}=J("NO_MATCHING_KEY",`session topic doesn't exist: ${e}`);throw new Error(n)}if(Tr(this.client.session.get(e).expiry)){await this.deleteSession({topic:e});const{message:n}=J("EXPIRED",`session topic: ${e}`);throw new Error(n)}if(!this.client.core.crypto.keychain.has(e)){const{message:n}=J("MISSING_OR_INVALID",`session topic does not exist in keychain: ${e}`);throw await this.deleteSession({topic:e}),new Error(n)}}async isValidSessionOrPairingTopic(e){if(this.checkRecentlyDeleted(e),this.client.session.keys.includes(e))await this.isValidSessionTopic(e);else if(this.client.core.pairing.pairings.keys.includes(e))this.isValidPairingTopic(e);else if(Ue(e,!1)){const{message:n}=J("NO_MATCHING_KEY",`session or pairing topic doesn't exist: ${e}`);throw new Error(n)}else{const{message:n}=J("MISSING_OR_INVALID",`session or pairing topic should be a string: ${e}`);throw new Error(n)}}async isValidProposalId(e){if(!i7(e)){const{message:n}=J("MISSING_OR_INVALID",`proposal id should be a number: ${e}`);throw new Error(n)}if(!this.client.proposal.keys.includes(e)){const{message:n}=J("NO_MATCHING_KEY",`proposal id doesn't exist: ${e}`);throw new Error(n)}if(Tr(this.client.proposal.get(e).expiryTimestamp)){await this.deleteProposal(e);const{message:n}=J("EXPIRED",`proposal id: ${e}`);throw new Error(n)}}validateRequestExpiry(e){if(e&&!d7(e,ul)){const{message:n}=J("MISSING_OR_INVALID",`request() expiry: ${e}. Expiry must be a number (in seconds) between ${ul.min} and ${ul.max}`);throw new Error(n)}}}class JB extends mi{constructor(e,n){super(e,n,kB,al),this.core=e,this.logger=n}}class Ty extends mi{constructor(e,n){super(e,n,FB,al),this.core=e,this.logger=n}}class QB extends mi{constructor(e,n){super(e,n,KB,al,r=>r.id),this.core=e,this.logger=n}}class _B extends mi{constructor(e,n){super(e,n,GB,Ya,()=>Lr),this.core=e,this.logger=n}}class $B extends mi{constructor(e,n){super(e,n,ZB,Ya),this.core=e,this.logger=n}}class eD extends mi{constructor(e,n){super(e,n,XB,Ya,r=>r.id),this.core=e,this.logger=n}}class tD{constructor(e,n){this.core=e,this.logger=n,this.authKeys=new _B(this.core,this.logger),this.pairingTopics=new $B(this.core,this.logger),this.requests=new eD(this.core,this.logger)}async init(){await this.authKeys.init(),await this.pairingTopics.init(),await this.requests.init()}}let nD=class tw extends A9{constructor(e){super(e),this.protocol=Iy,this.version=Ay,this.name=cl.name,this.events=new $e.exports.EventEmitter,this.on=(r,i)=>this.events.on(r,i),this.once=(r,i)=>this.events.once(r,i),this.off=(r,i)=>this.events.off(r,i),this.removeListener=(r,i)=>this.events.removeListener(r,i),this.removeAllListeners=r=>this.events.removeAllListeners(r),this.connect=async r=>{try{return await this.engine.connect(r)}catch(i){throw this.logger.error(i.message),i}},this.pair=async r=>{try{return await this.engine.pair(r)}catch(i){throw this.logger.error(i.message),i}},this.approve=async r=>{try{return await this.engine.approve(r)}catch(i){throw this.logger.error(i.message),i}},this.reject=async r=>{try{return await this.engine.reject(r)}catch(i){throw this.logger.error(i.message),i}},this.update=async r=>{try{return await this.engine.update(r)}catch(i){throw this.logger.error(i.message),i}},this.extend=async r=>{try{return await this.engine.extend(r)}catch(i){throw this.logger.error(i.message),i}},this.request=async r=>{try{return await this.engine.request(r)}catch(i){throw this.logger.error(i.message),i}},this.respond=async r=>{try{return await this.engine.respond(r)}catch(i){throw this.logger.error(i.message),i}},this.ping=async r=>{try{return await this.engine.ping(r)}catch(i){throw this.logger.error(i.message),i}},this.emit=async r=>{try{return await this.engine.emit(r)}catch(i){throw this.logger.error(i.message),i}},this.disconnect=async r=>{try{return await this.engine.disconnect(r)}catch(i){throw this.logger.error(i.message),i}},this.find=r=>{try{return this.engine.find(r)}catch(i){throw this.logger.error(i.message),i}},this.getPendingSessionRequests=()=>{try{return this.engine.getPendingSessionRequests()}catch(r){throw this.logger.error(r.message),r}},this.authenticate=async(r,i)=>{try{return console.warn("[WalletConnect] `authenticate` is deprecated and will be removed in a future release. Use `connect()`'s `authentication` instead to establish an authenticated session."),await this.engine.authenticate(r,i)}catch(s){throw this.logger.error(s.message),s}},this.formatAuthMessage=r=>{try{return this.engine.formatAuthMessage(r)}catch(i){throw this.logger.error(i.message),i}},this.approveSessionAuthenticate=async r=>{try{return await this.engine.approveSessionAuthenticate(r)}catch(i){throw this.logger.error(i.message),i}},this.rejectSessionAuthenticate=async r=>{try{return await this.engine.rejectSessionAuthenticate(r)}catch(i){throw this.logger.error(i.message),i}},this.name=e?.name||cl.name,this.metadata=z5(e?.metadata),this.signConfig=e?.signConfig;const n=O1({logger:e?.logger||cl.logger,name:this.name});this.logger=n,this.core=e?.core||new ol(e),this.session=new Ty(this.core,this.logger),this.proposal=new JB(this.core,this.logger),this.pendingRequest=new QB(this.core,this.logger),this.engine=new YB(this),this.auth=new tD(this.core,this.logger)}static async init(e){const n=new tw(e);return await n.initialize(),n}get context(){return bt(this.logger)}get pairing(){return this.core.pairing.pairings}async initialize(){this.logger.trace("Initialized");try{await this.core.start(),await this.session.init(),await this.proposal.init(),await this.pendingRequest.init(),await this.auth.init(),await this.engine.init(),this.logger.info("SignClient Initialization Success")}catch(e){throw this.logger.info("SignClient Initialization Failure"),this.logger.error(e.message),e}}};const rD=Ty,iD=nD;class sD extends $e.exports{constructor(){super()}}class Ry{constructor(e){this.opts=e}}class Ny{constructor(e){this.client=e}}var oD=Object.defineProperty,aD=Object.defineProperties,cD=Object.getOwnPropertyDescriptors,Uy=Object.getOwnPropertySymbols,uD=Object.prototype.hasOwnProperty,fD=Object.prototype.propertyIsEnumerable,fl=(t,e,n)=>e in t?oD(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,lD=(t,e)=>{for(var n in e||(e={}))uD.call(e,n)&&fl(t,n,e[n]);if(Uy)for(var n of Uy(e))fD.call(e,n)&&fl(t,n,e[n]);return t},hD=(t,e)=>aD(t,cD(e)),ve=(t,e,n)=>fl(t,typeof e!="symbol"?e+"":e,n);class dD extends Ny{constructor(e){super(e),ve(this,"signClient"),ve(this,"init",async()=>{this.signClient=await iD.init({core:this.client.core,metadata:this.client.metadata,signConfig:this.client.signConfig}),this.signClient.core.eventClient.init().catch(n=>{this.client.logger.warn(n)})}),ve(this,"pair",async n=>{await this.client.core.pairing.pair(n)}),ve(this,"approveSession",async n=>{const{topic:r,acknowledged:i}=await this.signClient.approve(hD(lD({},n),{id:n.id,namespaces:n.namespaces,sessionProperties:n.sessionProperties,scopedProperties:n.scopedProperties,sessionConfig:n.sessionConfig,proposalRequestsResponses:n?.proposalRequestsResponses}));return await i(),this.signClient.session.get(r)}),ve(this,"rejectSession",async n=>await this.signClient.reject(n)),ve(this,"updateSession",async n=>await this.signClient.update(n)),ve(this,"extendSession",async n=>await this.signClient.extend(n)),ve(this,"respondSessionRequest",async n=>await this.signClient.respond(n)),ve(this,"disconnectSession",async n=>await this.signClient.disconnect(n)),ve(this,"emitSessionEvent",async n=>await this.signClient.emit(n)),ve(this,"getActiveSessions",()=>this.signClient.session.getAll().reduce((n,r)=>(n[r.topic]=r,n),{})),ve(this,"getPendingSessionProposals",()=>this.signClient.proposal.getAll()),ve(this,"getPendingSessionRequests",()=>this.signClient.getPendingSessionRequests()),ve(this,"approveSessionAuthenticate",async n=>await this.signClient.approveSessionAuthenticate(n)),ve(this,"rejectSessionAuthenticate",async n=>await this.signClient.rejectSessionAuthenticate(n)),ve(this,"formatAuthMessage",n=>this.signClient.formatAuthMessage(n)),ve(this,"registerDeviceToken",n=>this.client.core.echoClient.registerDeviceToken(n)),ve(this,"on",(n,r)=>(this.setEvent(n,"off"),this.setEvent(n,"on"),this.client.events.on(n,r))),ve(this,"once",(n,r)=>(this.setEvent(n,"off"),this.setEvent(n,"once"),this.client.events.once(n,r))),ve(this,"off",(n,r)=>(this.setEvent(n,"off"),this.client.events.off(n,r))),ve(this,"removeListener",(n,r)=>(this.setEvent(n,"removeListener"),this.client.events.removeListener(n,r))),ve(this,"onSessionRequest",n=>{this.client.events.emit("session_request",n)}),ve(this,"onSessionProposal",n=>{this.client.events.emit("session_proposal",n)}),ve(this,"onSessionDelete",n=>{this.client.events.emit("session_delete",n)}),ve(this,"onProposalExpire",n=>{this.client.events.emit("proposal_expire",n)}),ve(this,"onSessionRequestExpire",n=>{this.client.events.emit("session_request_expire",n)}),ve(this,"onSessionRequestAuthenticate",n=>{this.client.events.emit("session_authenticate",n)}),ve(this,"setEvent",(n,r)=>{switch(n){case"session_request":this.signClient.events[r]("session_request",this.onSessionRequest);break;case"session_proposal":this.signClient.events[r]("session_proposal",this.onSessionProposal);break;case"session_delete":this.signClient.events[r]("session_delete",this.onSessionDelete);break;case"proposal_expire":this.signClient.events[r]("proposal_expire",this.onProposalExpire);break;case"session_request_expire":this.signClient.events[r]("session_request_expire",this.onSessionRequestExpire);break;case"session_authenticate":this.signClient.events[r]("session_authenticate",this.onSessionRequestAuthenticate);break}}),this.signClient={}}}const pD={decryptMessage:async t=>{const e={core:new ol({storageOptions:t.storageOptions,storage:t.storage,customStoragePrefix:t.customStoragePrefix})};await e.core.crypto.init();const n=e.core.crypto.decode(t.topic,t.encryptedMessage);return e.core=null,n},getMetadata:async t=>{const e={core:new ol({storageOptions:t.storageOptions,storage:t.storage,customStoragePrefix:t.customStoragePrefix}),sessionStore:null};e.sessionStore=new rD(e.core,e.core.logger),await e.sessionStore.init();const n=e.sessionStore.get(t.topic),r=n?.peer.metadata;return e.core=null,e.sessionStore=null,r}};function gD(t){const e=t.toLowerCase();return e.includes("pay.")||e.includes("pay=")||e.includes("pay_")||e.includes("pay%2e")||e.includes("pay%3d")||e.includes("pay%5f")}var yD=Object.defineProperty,Py=Object.getOwnPropertySymbols,wD=Object.prototype.hasOwnProperty,bD=Object.prototype.propertyIsEnumerable,ll=(t,e,n)=>e in t?yD(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,mD=(t,e)=>{for(var n in e||(e={}))wD.call(e,n)&&ll(t,n,e[n]);if(Py)for(var n of Py(e))bD.call(e,n)&&ll(t,n,e[n]);return t},Ee=(t,e,n)=>ll(t,typeof e!="symbol"?e+"":e,n);const qy=class nw extends Ry{constructor(e){super(e),Ee(this,"name"),Ee(this,"core"),Ee(this,"logger"),Ee(this,"events",new $e.exports),Ee(this,"engine"),Ee(this,"metadata"),Ee(this,"signConfig"),Ee(this,"pay"),Ee(this,"on",(n,r)=>this.engine.on(n,r)),Ee(this,"once",(n,r)=>this.engine.once(n,r)),Ee(this,"off",(n,r)=>this.engine.off(n,r)),Ee(this,"removeListener",(n,r)=>this.engine.removeListener(n,r)),Ee(this,"pair",async n=>{try{return await this.engine.pair(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"approveSession",async n=>{try{return await this.engine.approveSession(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"rejectSession",async n=>{try{return await this.engine.rejectSession(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"updateSession",async n=>{try{return await this.engine.updateSession(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"extendSession",async n=>{try{return await this.engine.extendSession(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"respondSessionRequest",async n=>{try{return await this.engine.respondSessionRequest(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"disconnectSession",async n=>{try{return await this.engine.disconnectSession(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"emitSessionEvent",async n=>{try{return await this.engine.emitSessionEvent(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"getActiveSessions",()=>{try{return this.engine.getActiveSessions()}catch(n){throw this.logger.error(n.message),n}}),Ee(this,"getPendingSessionProposals",()=>{try{return this.engine.getPendingSessionProposals()}catch(n){throw this.logger.error(n.message),n}}),Ee(this,"getPendingSessionRequests",()=>{try{return this.engine.getPendingSessionRequests()}catch(n){throw this.logger.error(n.message),n}}),Ee(this,"registerDeviceToken",n=>{try{return this.engine.registerDeviceToken(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"approveSessionAuthenticate",n=>{try{return this.engine.approveSessionAuthenticate(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"rejectSessionAuthenticate",n=>{try{return this.engine.rejectSessionAuthenticate(n)}catch(r){throw this.logger.error(r.message),r}}),Ee(this,"formatAuthMessage",n=>{try{return this.engine.formatAuthMessage(n)}catch(r){throw this.logger.error(r.message),r}}),this.metadata=e.metadata,this.name=e.name||Zf,this.signConfig=e.signConfig,this.core=e.core,this.logger=this.core.logger,this.engine=new dD(this),this.pay=void 0}static async init(e){const n=new nw(e);return await n.initialize(),n}async initialize(){this.logger.trace("Initialized");try{await this.engine.init(),X1.isAvailable()&&(this.pay=new X1(mD({clientId:await this.core.crypto.getClientId(),appId:this.core.projectId},this.opts.payConfig||{}))),this.logger.info("WalletKit Initialization Success")}catch(e){throw this.logger.info("WalletKit Initialization Failure"),this.logger.error(e.message),e}}};Ee(qy,"notifications",pD);let Cy=qy;const vD=Cy;je.CLIENT_CONTEXT=Zf,je.CLIENT_STORAGE_OPTIONS=NI,je.CLIENT_STORAGE_PREFIX=RI,je.IWalletKit=Ry,je.IWalletKitEngine=Ny,je.IWalletKitEvents=sD,je.PROTOCOL=Y1,je.PROTOCOL_VERSION=TI,je.REQUEST_CONTEXT=UI,je.WalletKit=vD,je.default=Cy,je.isPaymentLink=gD,Object.defineProperty(je,"__esModule",{value:!0})});
|
|
43
43
|
//# sourceMappingURL=index.umd.js.map
|