PageSourceSearch

https://moloc.vercel.app/_next/static/chunks/6a50c3ededc0a967.js

js moloc.vercel.app collected 2026-10-03 07:20:30 UTC 390,423 bytes, 8 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,321443,e=>{"use strict";let t,r,n,a,i,s,o,l,c,u,f,d,h,x,p,b,g;var m,y,w,A,v,E,k,N,P,R=e.i(843476),I=e.i(271645);e.s([],859665),e.i(859665);let T="6.16.0";async function O(e){let t=Object.keys(e);return(await Promise.all(t.map(t=>Promise.resolve(e[t])))).reduce((e,r,n)=>(e[t[n]]=r,e),{})}function C(e,t,r){for(let n in t){let a=t[n],i=r?r[n]:null;i&&function(e,t,r){let n=t.split("|").map(e=>e.trim());for(let r=0;r<n.length;r++)switch(t){case"any":return;case"bigint":case"boolean":case"number":case"string":if(typeof e===t)return}let a=Error(`invalid value for type ${t}`);throw a.code="INVALID_ARGUMENT",a.argument=`value.${r}`,a.value=e,a}(a,i,n),Object.defineProperty(e,n,{enumerable:!0,value:a,writable:!1})}}function B(e,t){if(null==e)return"null";if(null==t&&(t=new Set),"object"==typeof e){if(t.has(e))return"[Circular]";t.add(e)}if(Array.isArray(e))return"[ "+e.map(e=>B(e,t)).join(", ")+" ]";if(e instanceof Uint8Array){let t="0123456789abcdef",r="0x";for(let n=0;n<e.length;n++)r+=t[e[n]>>4],r+=t[15&e[n]];return r}if("object"==typeof e&&"function"==typeof e.toJSON)return B(e.toJSON(),t);switch(typeof e){case"boolean":case"number":case"symbol":return e.toString();case"bigint":return BigInt(e).toString();case"string":return JSON.stringify(e);case"object":{let r=Object.keys(e);return r.sort(),"{ "+r.map(r=>`${B(r,t)}: ${B(e[r],t)}`).join(", ")+" }"}}return"[ COULD NOT SERIALIZE ]"}function S(e,t){return e&&e.code===t}function U(e){return S(e,"CALL_EXCEPTION")}function D(e,t,r){let n,a=e;{let n=[];if(r){if("message"in r||"code"in r||"name"in r)throw Error(`value will overwrite populated values: ${B(r)}`);for(let e in r){if("shortMessage"===e)continue;let t=r[e];n.push(e+"="+B(t))}}n.push(`code=${t}`),n.push(`version=${T}`),n.length&&(e+=" ("+n.join(", ")+")")}switch(t){case"INVALID_ARGUMENT":n=TypeError(e);break;case"NUMERIC_FAULT":case"BUFFER_OVERRUN":n=RangeError(e);break;default:n=Error(e)}return C(n,{code:t}),r&&Object.assign(n,r),null==n.shortMessage&&C(n,{shortMessage:a}),n}function F(e,t,r,n){if(!e)throw D(t,r,n)}function L(e,t,r,n){F(e,t,"INVALID_ARGUMENT",{argument:r,value:n})}function M(e,t,r){null==r&&(r=""),r&&(r=": "+r),F(e>=t,"missing argument"+r,"MISSING_ARGUMENT",{count:e,expectedCount:t}),F(e<=t,"too many arguments"+r,"UNEXPECTED_ARGUMENT",{count:e,expectedCount:t})}let G=["NFD","NFC","NFKD","NFKC"].reduce((e,t)=>{try{if("test"!=="test".normalize(t))throw Error("bad");if("NFD"===t){let e=String.fromCharCode(233).normalize("NFD"),t=String.fromCharCode(101,769);if(e!==t)throw Error("broken")}e.push(t)}catch(e){}return e},[]);function j(e){F(G.indexOf(e)>=0,"platform missing String.prototype.normalize","UNSUPPORTED_OPERATION",{operation:"String.prototype.normalize",info:{form:e}})}function V(e,t,r){if(null==r&&(r=""),e!==t){let e=r,t="new";r&&(e+=".",t+=" "+r),F(!1,`private constructor; use ${e}from* methods`,"UNSUPPORTED_OPERATION",{operation:t})}}function H(e,t,r){if(e instanceof Uint8Array)return r?new Uint8Array(e):e;if("string"==typeof e&&e.length%2==0&&e.match(/^0x[0-9a-f]*$/i)){let t=new Uint8Array((e.length-2)/2),r=2;for(let n=0;n<t.length;n++)t[n]=parseInt(e.substring(r,r+2),16),r+=2;return t}L(!1,"invalid BytesLike value",t||"value",e)}function z(e,t){return H(e,t,!1)}function K(e,t){return H(e,t,!0)}function Q(e,t){return"string"==typeof e&&!!e.match(/^0x[0-9A-Fa-f]*$/)&&("number"!=typeof t||e.length===2+2*t)&&(!0!==t||e.length%2==0)}function _(e){return Q(e,!0)||e instanceof Uint8Array}let J="0123456789abcdef";function q(e){let t=z(e),r="0x";for(let e=0;e<t.length;e++){let n=t[e];r+=J[(240&n)>>4]+J[15&n]}return r}function W(e){return"0x"+e.map(e=>q(e).substring(2)).join("")}function Z(e){return Q(e,!0)?(e.length-2)/2:z(e).length}function Y(e,t,r){let n=z(e);return null!=r&&r>n.length&&F(!1,"cannot slice beyond data bounds","BUFFER_OVERRUN",{buffer:n,length:n.length,offset:r}),q(n.slice(null==t?0:t,null==r?n.length:r))}function X(e){let t=q(e).substring(2);for(;t.startsWith("00");)t=t.substring(2);return"0x"+t}function $(e,t,r){let n=z(e);F(t>=n.length,"padding exceeds data length","BUFFER_OVERRUN",{buffer:new Uint8Array(n),length:t,offset:t+1});let a=new Uint8Array(t);return a.fill(0),r?a.set(n,t-n.length):a.set(n,0),q(a)}function ee(e,t){return $(e,t,!0)}function et(e,t){return $(e,t,!1)}function er(e,t,r,n,a){if("BAD_PREFIX"===e||"UNEXPECTED_CONTINUE"===e){let e=0;
1for(let n=t+1;n<r.length&&r[n]>>6==2;n++)e++;return e}return"OVERRUN"===e?r.length-t-1:0}let en=Object.freeze({error:function(e,t,r,n,a){L(!1,`invalid codepoint at offset ${t}; ${e}`,"bytes",r)},ignore:er,replace:function(e,t,r,n,a){return"OVERLONG"===e?(L("number"==typeof a,"invalid bad code point for replacement","badCodepoint",a),n.push(a),0):(n.push(65533),er(e,t,r,n,a))}});function ea(e,t){null==t&&(t=en.error);let r=z(e,"bytes"),n=[],a=0;for(;a<r.length;){let e=r[a++];if(e>>7==0){n.push(e);continue}let i=null,s=null;if((224&e)==192)i=1,s=127;else if((240&e)==224)i=2,s=2047;else if((248&e)==240)i=3,s=65535;else{(192&e)==128?a+=t("UNEXPECTED_CONTINUE",a-1,r,n):a+=t("BAD_PREFIX",a-1,r,n);continue}if(a-1+i>=r.length){a+=t("OVERRUN",a-1,r,n);continue}let o=e&(1<<8-i-1)-1;for(let e=0;e<i;e++){let e=r[a];if((192&e)!=128){a+=t("MISSING_CONTINUE",a,r,n),o=null;break}o=o<<6|63&e,a++}if(null!==o){if(o>1114111){a+=t("OUT_OF_RANGE",a-1-i,r,n,o);continue}if(o>=55296&&o<=57343){a+=t("UTF16_SURROGATE",a-1-i,r,n,o);continue}if(o<=s){a+=t("OVERLONG",a-1-i,r,n,o);continue}n.push(o)}}return n}function ei(e,t){L("string"==typeof e,"invalid string value","str",e),null!=t&&(j(t),e=e.normalize(t));let r=[];for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<128)r.push(n);else if(n<2048)r.push(n>>6|192),r.push(63&n|128);else if((64512&n)==55296){t++;let a=e.charCodeAt(t);L(t<e.length&&(64512&a)==56320,"invalid surrogate pair","str",e);let i=65536+((1023&n)<<10)+(1023&a);r.push(i>>18|240),r.push(i>>12&63|128),r.push(i>>6&63|128),r.push(63&i|128)}else r.push(n>>12|224),r.push(n>>6&63|128),r.push(63&n|128)}return new Uint8Array(r)}function es(e,t){return ea(e,t).map(e=>e<=65535?String.fromCharCode(e):String.fromCharCode(((e-=65536)>>10&1023)+55296,(1023&e)+56320)).join("")}function eo(e,t){return ea(ei(e,t))}function el(e){let t=ei(e);if(t.length>31)throw Error("bytes32 string must be less than 32 bytes");return et(t,32)}function ec(e){let t=z(e,"bytes");if(32!==t.length)throw Error("invalid bytes32 - not 32 bytes long");if(0!==t[31])throw Error("invalid bytes32 string - no null terminator");let r=31;for(;0===t[r-1];)r--;return es(t.slice(0,r))}let eu=BigInt(0),ef=BigInt(1);function ed(e,t){let r=eb(e,"value"),n=BigInt(ey(t,"width"));return(F(r>>n===eu,"overflow","NUMERIC_FAULT",{operation:"fromTwos",fault:"overflow",value:e}),r>>n-ef)?-((~r&(ef<<n)-ef)+ef):r}function eh(e,t){let r=ep(e,"value"),n=BigInt(ey(t,"width")),a=ef<<n-ef;return r<eu?(F((r=-r)<=a,"too low","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:e}),(~r&(ef<<n)-ef)+ef):(F(r<a,"too high","NUMERIC_FAULT",{operation:"toTwos",fault:"overflow",value:e}),r)}function ex(e,t){return eb(e,"value")&(ef<<BigInt(ey(t,"bits")))-ef}function ep(e,t){switch(typeof e){case"bigint":return e;case"number":return L(Number.isInteger(e),"underflow",t||"value",e),L(e>=-0x1fffffffffffff&&e<=0x1fffffffffffff,"overflow",t||"value",e),BigInt(e);case"string":try{if(""===e)throw Error("empty string");if("-"===e[0]&&"-"!==e[1])return-BigInt(e.substring(1));return BigInt(e)}catch(r){L(!1,`invalid BigNumberish string: ${r.message}`,t||"value",e)}}L(!1,"invalid BigNumberish value",t||"value",e)}function eb(e,t){let r=ep(e,t);return F(r>=eu,"unsigned value cannot be negative","NUMERIC_FAULT",{fault:"overflow",operation:"getUint",value:e}),r}let eg="0123456789abcdef";function em(e){if(e instanceof Uint8Array){let t="0x0";for(let r of e)t+=eg[r>>4],t+=eg[15&r];return BigInt(t)}return ep(e)}function ey(e,t){switch(typeof e){case"bigint":return L(e>=-0x1fffffffffffff&&e<=0x1fffffffffffff,"overflow",t||"value",e),Number(e);case"number":return L(Number.isInteger(e),"underflow",t||"value",e),L(e>=-0x1fffffffffffff&&e<=0x1fffffffffffff,"overflow",t||"value",e),e;case"string":try{if(""===e)throw Error("empty string");return ey(BigInt(e),t)}catch(r){L(!1,`invalid numeric string: ${r.message}`,t||"value",e)}}L(!1,"invalid numeric value",t||"value",e)}function ew(e){return ey(em(e))}function eA(e,t){let r=eb(e,"value"),n=r.toString(16);if(null==t)n.length%2&&(n="0"+n);else{let a=ey(t,"width");if(0===a&&r===eu)return"0x";for(F(2*a>=n.length,`value exceeds width (${a} bytes)`,"NUMERIC_FAULT",{operation:"toBeHex",fault:"overflow",value:e});n.length<2*a;)n="0"+n}return"0x"+n}function ev(e,t){let r=eb(e,"value");if(r===eu)return new Uint8Array(null!=t?ey(t,"width"):0);let n=r.toString(16);if(n.length%2&&(n="0"+n),null!=t){let r=ey(t,"width");for(;n.length<2*r;)n="00"+n;F(2*r===n.length,`value exceeds width (${r} bytes)`,"NUMERIC_FAULT",{operation:"toBeArray",fault:"overflow",value:e})}let a=new Uint8Array(n.length/2);for(let e=0;e<a.length;e++){let t=2*e;a[e]=parseInt(n.substring(t,t+2),16)}return a}function eE(e){let t=q(_(e)?e:ev(e)).substring(2);for(;t.startsWith("0");)t=t.substring(1);return""===t&&(t="0"),"0x"+t}let ek=new Uint8Array(32),eN=["then"],eP={},eR=new WeakMap;function eI(e){return eR.get(e)}function eT(e,t){let r=Error(`deferred error during ABI decoding triggered accessing ${e}`);throw r.error=t,r}class eO extends Array{#e;constructor(...e){const t=e[0];let r=e[1],n=(e[2]||[]).slice(),a=!0;t!==eP&&(r=e,n=[],a=!1),super(r.length),r.forEach((e,t)=>{this[t]=e});const i=n.reduce((e,t)=>
1("string"==typeof t&&e.set(t,(e.get(t)||0)+1),e),new Map);if(!function(e,t){eR.set(e,t)}(this,Object.freeze(r.map((e,t)=>{let r=n[t];return null!=r&&1===i.get(r)?r:null}))),this.#e=[],null==this.#e&&this.#e,!a)return;Object.freeze(this);const s=new Proxy(this,{get:(e,t,r)=>{if("string"==typeof t){if(t.match(/^[0-9]+$/)){let r=ey(t,"%index");if(r<0||r>=this.length)throw RangeError("out of result range");let n=e[r];return n instanceof Error&&eT(`index ${r}`,n),n}if(eN.indexOf(t)>=0)return Reflect.get(e,t,r);let n=e[t];if(n instanceof Function)return function(...t){return n.apply(this===r?e:this,t)};if(!(t in e))return e.getValue.apply(this===r?e:this,[t])}return Reflect.get(e,t,r)}});return!function(e,t){eR.set(e,t)}(s,eI(this)),s}toArray(e){let t=[];return this.forEach((r,n)=>{r instanceof Error&&eT(`index ${n}`,r),e&&r instanceof eO&&(r=r.toArray(e)),t.push(r)}),t}toObject(e){let t=eI(this);return t.reduce((r,n,a)=>(F(null!=n,`value at index ${a} unnamed`,"UNSUPPORTED_OPERATION",{operation:"toObject()"}),function e(t,r,n){return t.indexOf(null)>=0?r.map((t,r)=>t instanceof eO?e(eI(t),t,n):t):t.reduce((t,a,i)=>{let s=r.getValue(a);return a in t||(n&&s instanceof eO&&(s=e(eI(s),s,n)),t[a]=s),t},{})}(t,this,e)),{})}slice(e,t){null==e&&(e=0),e<0&&(e+=this.length)<0&&(e=0),null==t&&(t=this.length),t<0&&(t+=this.length)<0&&(t=0),t>this.length&&(t=this.length);let r=eI(this),n=[],a=[];for(let i=e;i<t;i++)n.push(this[i]),a.push(r[i]);return new eO(eP,n,a)}filter(e,t){let r=eI(this),n=[],a=[];for(let i=0;i<this.length;i++){let s=this[i];s instanceof Error&&eT(`index ${i}`,s),e.call(t,s,i,this)&&(n.push(s),a.push(r[i]))}return new eO(eP,n,a)}map(e,t){let r=[];for(let n=0;n<this.length;n++){let a=this[n];a instanceof Error&&eT(`index ${n}`,a),r.push(e.call(t,a,n,this))}return r}getValue(e){let t=eI(this).indexOf(e);if(-1===t)return;let r=this[t];return r instanceof Error&&eT(`property ${JSON.stringify(e)}`,r.error),r}static fromItems(e,t){return new eO(eP,e,t)}}function eC(e){let t=[],r=function(e,n){if(Array.isArray(n))for(let a in n){let i=e.slice();i.push(a);try{r(i,n[a])}catch(e){t.push({path:i,error:e})}}};return r([],e),t}function eB(e){let t=ev(e);return F(t.length<=32,"value out-of-bounds","BUFFER_OVERRUN",{buffer:t,length:32,offset:t.length}),32!==t.length&&(t=K(W([ek.slice(t.length%32),t]))),t}class eS{name;type;localName;dynamic;constructor(e,t,r,n){C(this,{name:e,type:t,localName:r,dynamic:n},{name:"string",type:"string",localName:"string",dynamic:"boolean"})}_throwError(e,t){L(!1,e,this.localName,t)}}class eU{#t;#r;constructor(){this.#t=[],this.#r=0}get data(){return W(this.#t)}get length(){return this.#r}#n(e){return this.#t.push(e),this.#r+=e.length,e.length}appendWriter(e){return this.#n(K(e.data))}writeBytes(e){let t=K(e),r=t.length%32;return r&&(t=K(W([t,ek.slice(r)]))),this.#n(t)}writeValue(e){return this.#n(eB(e))}writeUpdatableValue(){let e=this.#t.length;return this.#t.push(ek),this.#r+=32,t=>{this.#t[e]=eB(t)}}}class eD{allowLoose;#t;#a;#i;#s;#o;constructor(e,t,r){C(this,{allowLoose:!!t}),this.#t=K(e),this.#i=0,this.#s=null,this.#o=null!=r?r:1024,this.#a=0}get data(){return q(this.#t)}get dataLength(){return this.#t.length}get consumed(){return this.#a}get bytes(){return new Uint8Array(this.#t)}#l(e){if(this.#s)return this.#s.#l(e);this.#i+=e,F(this.#o<1||this.#i<=this.#o*this.dataLength,`compressed ABI data exceeds inflation ratio of ${this.#o} ( see: https://github.com/ethers-io/ethers.js/issues/4537 )`,"BUFFER_OVERRUN",{buffer:K(this.#t),offset:this.#a,length:e,info:{bytesRead:this.#i,dataLength:this.dataLength}})}#c(e,t,r){let n=32*Math.ceil(t/32);return this.#a+n>this.#t.length&&(this.allowLoose&&r&&this.#a+t<=this.#t.length?n=t:F(!1,"data out-of-bounds","BUFFER_OVERRUN",{buffer:K(this.#t),length:this.#t.length,offset:this.#a+n})),this.#t.slice(this.#a,this.#a+n)}subReader(e){let t=new eD(this.#t.slice(this.#a+e),this.allowLoose,this.#o);return t.#s=this,t}readBytes(e,t){let r=this.#c(0,e,!!t);return this.#l(e),this.#a+=r.length,r.slice(0,e)}readValue(){return em(this.readBytes(32))}readIndex(){return ew(this.readBytes(32))}}function eF(e){if(!Number.isSafeInteger(e)||e<0)throw Error(`Wrong positive integer: ${e}`)}function eL(e,...t){if(!(e instanceof Uint8Array))throw Error("Expected Uint8Array");if(t.length>0&&!t.includes(e.length))throw Error(`Expected Uint8Array of length ${t}, not of length=${e.length}`)}function eM(e){if("function"!=typeof e||"function"!=typeof e.create)throw Error("Hash should be wrapped by utils.wrapConstructor");eF(e.outputLen),eF(e.blockLen)}function eG(e,t=!0){if(e.destroyed)throw Error("Hash instance has been destroyed");if(t&&e.finished)throw Error("Hash#digest() has already been called")}function ej(e,t){eL(e);let r=t.outputLen;if(e.length<r)throw Error(`digestInto() expects output buffer of length at least ${r}`)}let eV=BigInt(0x100000000-1),eH=BigInt(32);function ez(e,t=!1){let r=new Uint32Array(e.length),n=new Uint32Array(e.length);for(let a=0;a<e.length;a++){let{h:i,l:s}=function(e,t=!1){return t?{h:Number(e&eV),l:Number(e>>eH&eV)}:{h:0|Number(e>>eH&eV),l:0|Number(e&eV)}}(e[a],t);[r[a],n[a]]=[i,s]}return[r,n]}let eK=(e,t,r)=>e>>>r,eQ=(e,t,r)=>e<<32-r|t>>>r,e_=(e,t,r)=>e>>>r|t<<32-r,eJ=(e,t,r)=>e<<32-r|t>>>r,eq=(e,t,r)=>e<<64-r|t>>>r-32,eW=(e,t,r)=>e>>>r-32|t<<64-r,eZ=function(e,t,r,n){let a=(t>>>0)+(n>>>0);return{h:e+r+(a/0x100000000|0)|0,l:0|a}},eY=(e,t,r)=>(e>>>0)+(t>>>0)+(r>>>0),eX=(e,t,r,n)=>t+r+n+(e/0x100000000|0)|0,e$=(e,t,r,n)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0),e0=(e,t,r,n,a)=>t+r+n+a+(e/0x100000000|0)|0,e1=(e,t,r,n,a,i)=>t+r+n+a+i+(e/0x100000000|0)|0,e2=(e,t,r,n,a)=>(e>>>0)+(t>>>0)+(r>>>0)+(n>>>0)+(a>>>0),e3="object"==typeof globalThis&&"crypto"in globalThis?globalThis.crypto:void 0,e4=e=>new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4)),e8=e=>new DataView(e.buffer,e.byteOffset,e.byteLength),e5=(e,t)=>e<<32-t|e>>>t;if(68!==new Uint8Array(new Uint32Array([0x11223344]).buffer)[0])throw Error("Non little-endian hardware is not supported");let e6=async()=>{};async function e9(e,t,r){let n=Date.now();for(let a=0;a<e;a++){r(a);let e=Date.now()-n;e>=0&&e<t||(await e6(),n+=e)}}function e7(e){if("string"==typeof e&&(e=function(e){if("string"!=typeof e)throw Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}(e)),!(e instanceof Uint8Array))throw Error(`expected Uint8Array, got ${typeof e}`);return e}class te{clone(){return this._cloneInto()}}let tt={}.toString;function tr(e,t){if(void 0!==t&&"[object Object]"!==tt.call(t))throw Error("Options should be object or undefined");return Object.assign(e,t)}function tn(e){let t=t=>e().update(e7(t)).digest(),r=e();return t.outputLen=r.outputLen,t.blockLen=r.blockLen,t.create=()=>e(),t}function ta(e=32){if(e3&&"function"==typeof e3.getRandomValues)return e3.getRandomValues(new Uint8Array(e));throw Error("crypto.getRandomValues must be defined")}let[ti,ts,to]=[[],[],[]],tl=BigInt(0),tc=BigInt(1),tu=BigInt(2),tf=BigInt(7),td=BigInt(256),th=BigInt(113);for(let e=0,t=tc,r=1,n=0;e<24;e++){[r,n]=[n,(2*r+3*n)%5],ti.push(2*(5*n+r)),ts.push((e+1)*(e+2)/2%64);let a=tl;
1for(let e=0;e<7;e++)(t=(t<<tc^(t>>tf)*th)%td)&tu&&(a^=tc<<(tc<<BigInt(e))-tc);to.push(a)}let[tx,tp]=ez(to,!0),tb=(e,t,r)=>{let n,a,i,s,o;return r>32?(n=e,t<<(a=r)-32|n>>>64-a):(i=e,s=t,i<<(o=r)|s>>>32-o)},tg=(e,t,r)=>{let n,a,i,s,o;return r>32?(n=e,a=t,n<<(i=r)-32|a>>>64-i):(s=e,t<<(o=r)|s>>>32-o)};class tm extends te{constructor(e,t,r,n=!1,a=24){if(super(),this.blockLen=e,this.suffix=t,this.outputLen=r,this.enableXOF=n,this.rounds=a,this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,eF(r),0>=this.blockLen||this.blockLen>=200)throw Error("Sha3 supports only keccak-f1600 function");this.state=new Uint8Array(200),this.state32=e4(this.state)}keccak(){!function(e,t=24){let r=new Uint32Array(10);for(let n=24-t;n<24;n++){for(let t=0;t<10;t++)r[t]=e[t]^e[t+10]^e[t+20]^e[t+30]^e[t+40];for(let t=0;t<10;t+=2){let n=(t+8)%10,a=(t+2)%10,i=r[a],s=r[a+1],o=tb(i,s,1)^r[n],l=tg(i,s,1)^r[n+1];for(let r=0;r<50;r+=10)e[t+r]^=o,e[t+r+1]^=l}let t=e[2],a=e[3];for(let r=0;r<24;r++){let n=ts[r],i=tb(t,a,n),s=tg(t,a,n),o=ti[r];t=e[o],a=e[o+1],e[o]=i,e[o+1]=s}for(let t=0;t<50;t+=10){for(let n=0;n<10;n++)r[n]=e[t+n];for(let n=0;n<10;n++)e[t+n]^=~r[(n+2)%10]&r[(n+4)%10]}e[0]^=tx[n],e[1]^=tp[n]}r.fill(0)}(this.state32,this.rounds),this.posOut=0,this.pos=0}update(e){eG(this);let{blockLen:t,state:r}=this,n=(e=e7(e)).length;for(let a=0;a<n;){let i=Math.min(t-this.pos,n-a);for(let t=0;t<i;t++)r[this.pos++]^=e[a++];this.pos===t&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;let{state:e,suffix:t,pos:r,blockLen:n}=this;e[r]^=t,(128&t)!=0&&r===n-1&&this.keccak(),e[n-1]^=128,this.keccak()}writeInto(e){eG(this,!1),eL(e),this.finish();let t=this.state,{blockLen:r}=this;for(let n=0,a=e.length;n<a;){this.posOut>=r&&this.keccak();let i=Math.min(r-this.posOut,a-n);e.set(t.subarray(this.posOut,this.posOut+i),n),this.posOut+=i,n+=i}return e}xofInto(e){if(!this.enableXOF)throw Error("XOF is not possible for this instance");return this.writeInto(e)}xof(e){return eF(e),this.xofInto(new Uint8Array(e))}digestInto(e){if(ej(e,this),this.finished)throw Error("digest() was already called");return this.writeInto(e),this.destroy(),e}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,this.state.fill(0)}_cloneInto(e){let{blockLen:t,suffix:r,outputLen:n,rounds:a,enableXOF:i}=this;return e||(e=new tm(t,r,n,i,a)),e.state32.set(this.state32),e.pos=this.pos,e.posOut=this.posOut,e.finished=this.finished,e.rounds=a,e.suffix=r,e.outputLen=n,e.enableXOF=i,e.destroyed=this.destroyed,e}}let ty=tn(()=>new tm(136,1,32)),tw=!1,tA=function(e){return ty(e)},tv=tA;function tE(e){let t=z(e,"data");return q(tv(t))}tE._=tA,tE.lock=function(){tw=!0},tE.register=function(e){if(tw)throw TypeError("keccak256 is locked");tv=e},Object.freeze(tE);let tk=BigInt(0),tN=BigInt(36);function tP(e){let t=(e=e.toLowerCase()).substring(2).split(""),r=new Uint8Array(40);for(let e=0;e<40;e++)r[e]=t[e].charCodeAt(0);let n=z(tE(r));for(let e=0;e<40;e+=2)n[e>>1]>>4>=8&&(t[e]=t[e].toUpperCase()),(15&n[e>>1])>=8&&(t[e+1]=t[e+1].toUpperCase());return"0x"+t.join("")}let tR={};for(let e=0;e<10;e++)tR[String(e)]=String(e);for(let e=0;e<26;e++)tR[String.fromCharCode(65+e)]=String(10+e);function tI(e){let t=(e=(e=e.toUpperCase()).substring(4)+e.substring(0,2)+"00").split("").map(e=>tR[e]).join("");for(;t.length>=15;){let e=t.substring(0,15);t=parseInt(e,10)%97+t.substring(e.length)}let r=String(98-parseInt(t,10)%97);for(;r.length<2;)r="0"+r;return r}let tT=function(){let e={};for(let t=0;t<36;t++)e["0123456789abcdefghijklmnopqrstuvwxyz"[t]]=BigInt(t);return e}();function tO(e){if(L("string"==typeof e,"invalid address","address",e),e.match(/^(0x)?[0-9a-fA-F]{40}$/)){e.startsWith("0x")||(e="0x"+e);let t=tP(e);return L(!e.match(/([A-F].*[a-f])|([a-f].*[A-F])/)||t===e,"bad address checksum","address",e),t}if(e.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)){L(e.substring(2,4)===tI(e),"bad icap checksum","address",e);let t=(function(e){e=e.toLowerCase();let t=tk;for(let r=0;r<e.length;r++)t=t*tN+tT[e[r]];return t})(e.substring(4)).toString(16);for(;t.length<40;)t="0"+t;return tP("0x"+t)}L(!1,"invalid address","address",e)}function tC(e){let t=BigInt(tO(e)).toString(36).toUpperCase();for(;t.length<30;)t="0"+t;return"XE"+tI("XE00"+t)+t}let tB={};function tS(e,t){let r=!1;return t<0&&(r=!0,t*=-1),new tF(tB,`${r?"":"u"}int${t}`,e,{signed:r,width:t})}function tU(e,t){return new tF(tB,`bytes${t||""}`,e,{size:t})}let tD=Symbol.for("_ethers_typed");class tF{type;value;#u;_typedSymbol;constructor(e,t,r,n){null==n&&(n=null),V(tB,e,"Typed"),C(this,{_typedSymbol:tD,type:t,value:r}),this.#u=n,this.format()}format(){if("array"===this.type||"dynamicArray"===this.type)throw Error("");return"tuple"===this.type?`tuple(${this.value.map(e=>e.format()).join(",")}
1)`:this.type}defaultValue(){return 0}minValue(){return 0}maxValue(){return 0}isBigInt(){return!!this.type.match(/^u?int[0-9]+$/)}isData(){return this.type.startsWith("bytes")}isString(){return"string"===this.type}get tupleName(){if("tuple"!==this.type)throw TypeError("not a tuple");return this.#u}get arrayLength(){if("array"!==this.type)throw TypeError("not an array");return!0===this.#u?-1:!1===this.#u?this.value.length:null}static from(e,t){return new tF(tB,e,t)}static uint8(e){return tS(e,8)}static uint16(e){return tS(e,16)}static uint24(e){return tS(e,24)}static uint32(e){return tS(e,32)}static uint40(e){return tS(e,40)}static uint48(e){return tS(e,48)}static uint56(e){return tS(e,56)}static uint64(e){return tS(e,64)}static uint72(e){return tS(e,72)}static uint80(e){return tS(e,80)}static uint88(e){return tS(e,88)}static uint96(e){return tS(e,96)}static uint104(e){return tS(e,104)}static uint112(e){return tS(e,112)}static uint120(e){return tS(e,120)}static uint128(e){return tS(e,128)}static uint136(e){return tS(e,136)}static uint144(e){return tS(e,144)}static uint152(e){return tS(e,152)}static uint160(e){return tS(e,160)}static uint168(e){return tS(e,168)}static uint176(e){return tS(e,176)}static uint184(e){return tS(e,184)}static uint192(e){return tS(e,192)}static uint200(e){return tS(e,200)}static uint208(e){return tS(e,208)}static uint216(e){return tS(e,216)}static uint224(e){return tS(e,224)}static uint232(e){return tS(e,232)}static uint240(e){return tS(e,240)}static uint248(e){return tS(e,248)}static uint256(e){return tS(e,256)}static uint(e){return tS(e,256)}static int8(e){return tS(e,-8)}static int16(e){return tS(e,-16)}static int24(e){return tS(e,-24)}static int32(e){return tS(e,-32)}static int40(e){return tS(e,-40)}static int48(e){return tS(e,-48)}static int56(e){return tS(e,-56)}static int64(e){return tS(e,-64)}static int72(e){return tS(e,-72)}static int80(e){return tS(e,-80)}static int88(e){return tS(e,-88)}static int96(e){return tS(e,-96)}static int104(e){return tS(e,-104)}static int112(e){return tS(e,-112)}static int120(e){return tS(e,-120)}static int128(e){return tS(e,-128)}static int136(e){return tS(e,-136)}static int144(e){return tS(e,-144)}static int152(e){return tS(e,-152)}static int160(e){return tS(e,-160)}static int168(e){return tS(e,-168)}static int176(e){return tS(e,-176)}static int184(e){return tS(e,-184)}static int192(e){return tS(e,-192)}static int200(e){return tS(e,-200)}static int208(e){return tS(e,-208)}static int216(e){return tS(e,-216)}static int224(e){return tS(e,-224)}static int232(e){return tS(e,-232)}static int240(e){return tS(e,-240)}static int248(e){return tS(e,-248)}static int256(e){return tS(e,-256)}static int(e){return tS(e,-256)}static bytes1(e){return tU(e,1)}static bytes2(e){return tU(e,2)}static bytes3(e){return tU(e,3)}static bytes4(e){return tU(e,4)}static bytes5(e){return tU(e,5)}static bytes6(e){return tU(e,6)}static bytes7(e){return tU(e,7)}static bytes8(e){return tU(e,8)}static bytes9(e){return tU(e,9)}static bytes10(e){return tU(e,10)}static bytes11(e){return tU(e,11)}static bytes12(e){return tU(e,12)}static bytes13(e){return tU(e,13)}static bytes14(e){return tU(e,14)}static bytes15(e){return tU(e,15)}static bytes16(e){return tU(e,16)}static bytes17(e){return tU(e,17)}static bytes18(e){return tU(e,18)}static bytes19(e){return tU(e,19)}static bytes20(e){return tU(e,20)}static bytes21(e){return tU(e,21)}static bytes22(e){return tU(e,22)}static bytes23(e){return tU(e,23)}static bytes24(e){return tU(e,24)}static bytes25(e){return tU(e,25)}static bytes26(e){return tU(e,26)}static bytes27(e){return tU(e,27)}static bytes28(e){return tU(e,28)}static bytes29(e){return tU(e,29)}static bytes30(e){return tU(e,30)}static bytes31(e){return tU(e,31)}static bytes32(e){return tU(e,32)}static address(e){return new tF(tB,"address",e)}static bool(e){return new tF(tB,"bool",!!e)}static bytes(e){return new tF(tB,"bytes",e)}static string(e){return new tF(tB,"string",e)}static array(e,t){throw Error("not implemented yet")}static tuple(e,t){throw Error("not implemented yet")}static overrides(e){return new tF(tB,"overrides",Object.assign({},e))}
1static isTyped(e){return e&&"object"==typeof e&&"_typedSymbol"in e&&e._typedSymbol===tD}static dereference(e,t){if(tF.isTyped(e)){if(e.type!==t)throw Error(`invalid type: expecetd ${t}, got ${e.type}`);return e.value}return e}}class tL extends eS{constructor(e){super("address","address",e,!1)}defaultValue(){return"0x0000000000000000000000000000000000000000"}encode(e,t){let r=tF.dereference(t,"string");try{r=tO(r)}catch(e){return this._throwError(e.message,t)}return e.writeValue(r)}decode(e){return tO(eA(e.readValue(),20))}}class tM extends eS{coder;constructor(e){super(e.name,e.type,"_",e.dynamic),this.coder=e}defaultValue(){return this.coder.defaultValue()}encode(e,t){return this.coder.encode(e,t)}decode(e){return this.coder.decode(e)}}function tG(e,t,r){let n=[];if(Array.isArray(r))n=r;else if(r&&"object"==typeof r){let e={};n=t.map(t=>{let n=t.localName;return F(n,"cannot encode object for signature with missing names","INVALID_ARGUMENT",{argument:"values",info:{coder:t},value:r}),F(!e[n],"cannot encode object for signature with duplicate names","INVALID_ARGUMENT",{argument:"values",info:{coder:t},value:r}),e[n]=!0,r[n]})}else L(!1,"invalid tuple value","tuple",r);L(t.length===n.length,"types/value length mismatch","tuple",r);let a=new eU,i=new eU,s=[];t.forEach((e,t)=>{let r=n[t];if(e.dynamic){let t=i.length;e.encode(i,r);let n=a.writeUpdatableValue();s.push(e=>{n(e+t)})}else e.encode(a,r)}),s.forEach(e=>{e(a.length)});let o=e.appendWriter(a);return o+e.appendWriter(i)}function tj(e,t){let r=[],n=[],a=e.subReader(0);return t.forEach(t=>{let i=null;if(t.dynamic){let r=e.readIndex(),n=a.subReader(r);try{i=t.decode(n)}catch(e){if(S(e,"BUFFER_OVERRUN"))throw e;(i=e).baseType=t.name,i.name=t.localName,i.type=t.type}}else try{i=t.decode(e)}catch(e){if(S(e,"BUFFER_OVERRUN"))throw e;(i=e).baseType=t.name,i.name=t.localName,i.type=t.type}if(void 0==i)throw Error("investigate");r.push(i),n.push(t.localName||null)}),eO.fromItems(r,n)}class tV extends eS{coder;length;constructor(e,t,r){super("array",e.type+"["+(t>=0?t:"")+"]",r,-1===t||e.dynamic),C(this,{coder:e,length:t})}defaultValue(){let e=this.coder.defaultValue(),t=[];for(let r=0;r<this.length;r++)t.push(e);return t}encode(e,t){let r=tF.dereference(t,"array");Array.isArray(r)||this._throwError("expected array value",r);let n=this.length;-1===n&&(n=r.length,e.writeValue(r.length)),M(r.length,n,"coder array"+(this.localName?" "+this.localName:""));let a=[];for(let e=0;e<r.length;e++)a.push(this.coder);return tG(e,a,r)}decode(e){let t=this.length;-1===t&&F(32*(t=e.readIndex())<=e.dataLength,"insufficient data length","BUFFER_OVERRUN",{buffer:e.bytes,offset:32*t,length:e.dataLength});let r=[];for(let e=0;e<t;e++)r.push(new tM(this.coder));return tj(e,r)}}class tH extends eS{constructor(e){super("bool","bool",e,!1)}defaultValue(){return!1}encode(e,t){let r=tF.dereference(t,"bool");return e.writeValue(+!!r)}decode(e){return!!e.readValue()}}class tz extends eS{constructor(e,t){super(e,e,t,!0)}defaultValue(){return"0x"}encode(e,t){t=K(t);let r=e.writeValue(t.length);return r+e.writeBytes(t)}decode(e){return e.readBytes(e.readIndex(),!0)}}class tK extends tz{constructor(e){super("bytes",e)}decode(e){return q(super.decode(e))}}class tQ extends eS{size;constructor(e,t){let r="bytes"+String(e);super(r,r,t,!1),C(this,{size:e},{size:"number"})}defaultValue(){return"0x0000000000000000000000000000000000000000000000000000000000000000".substring(0,2+2*this.size)}encode(e,t){let r=K(tF.dereference(t,this.type));return r.length!==this.size&&this._throwError("incorrect data length",t),e.writeBytes(r)}decode(e){return q(e.readBytes(this.size))}}let t_=new Uint8Array([]);class tJ extends eS{constructor(e){super("null","",e,!1)}defaultValue(){return null}encode(e,t){return null!=t&&this._throwError("not null",t),e.writeBytes(t_)}decode(e){return e.readBytes(0),null}}let tq=BigInt(0),tW=BigInt(1),tZ=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");class tY extends eS{size;signed;constructor(e,t,r){const n=(t?"int":"uint")+8*e;super(n,n,r,!1),C(this,{size:e,signed:t},{size:"number",signed:"boolean"})}defaultValue(){return 0}encode(e,t){let r=ep(tF.dereference(t,this.type)),n=ex(tZ,256);if(this.signed){let e=ex(n,8*this.size-1);(r>e||r<-(e+tW))&&this._throwError("value out-of-bounds",t),r=eh(r,256)}else(r<tq||r>ex(n,8*this.size))&&this._throwError("value out-of-bounds",t);return e.writeValue(r)}decode(e){let t=ex(e.readValue(),8*this.size);return this.signed&&(t=ed(t,8*this.size)),t}}class tX extends tz{constructor(e){super("string",e)}defaultValue(){return""}encode(e,t){return super.encode(e,ei(tF.dereference(t,"string")))}decode(e){return es(super.decode(e))}}class t$ extends eS{coders;constructor(e,t){let r=!1;const n=[];
1e.forEach(e=>{e.dynamic&&(r=!0),n.push(e.type)}),super("tuple","tuple("+n.join(",")+")",t,r),C(this,{coders:Object.freeze(e.slice())})}defaultValue(){let e=[];this.coders.forEach(t=>{e.push(t.defaultValue())});let t=this.coders.reduce((e,t)=>{let r=t.localName;return r&&(e[r]||(e[r]=0),e[r]++),e},{});return this.coders.forEach((r,n)=>{let a=r.localName;a&&1===t[a]&&("length"===a&&(a="_length"),null==e[a]&&(e[a]=e[n]))}),Object.freeze(e)}encode(e,t){let r=tF.dereference(t,"tuple");return tG(e,this.coders,r)}decode(e){return tj(e,this.coders)}}function t0(e){return tE(ei(e))}function t1(e){let t=new Set;return e.forEach(e=>t.add(e)),Object.freeze(t)}let t2=t1("external public payable override".split(" ")),t3="constant external internal payable private public pure view override",t4=t1(t3.split(" ")),t8="constructor error event fallback function receive struct",t5=t1(t8.split(" ")),t6="calldata memory storage payable indexed",t9=t1(t6.split(" ")),t7=t1([t8,t6,"tuple returns",t3].join(" ").split(" ")),re={"(":"OPEN_PAREN",")":"CLOSE_PAREN","[":"OPEN_BRACKET","]":"CLOSE_BRACKET",",":"COMMA","@":"AT"},rt=RegExp("^(\\s*)"),rr=RegExp("^([0-9]+)"),rn=RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)"),ra=RegExp("^([a-zA-Z$_][a-zA-Z0-9$_]*)$"),ri=RegExp("^(address|bool|bytes([0-9]*)|string|u?int([0-9]*))$");class rs{#a;#f;get offset(){return this.#a}get length(){return this.#f.length-this.#a}constructor(e){this.#a=0,this.#f=e.slice()}clone(){return new rs(this.#f)}reset(){this.#a=0}#d(e=0,t=0){return new rs(this.#f.slice(e,t).map(t=>Object.freeze(Object.assign({},t,{match:t.match-e,linkBack:t.linkBack-e,linkNext:t.linkNext-e}))))}popKeyword(e){let t=this.peek();if("KEYWORD"!==t.type||!e.has(t.text))throw Error(`expected keyword ${t.text}`);return this.pop().text}popType(e){if(this.peek().type!==e){let t=this.peek();throw Error(`expected ${e}; got ${t.type} ${JSON.stringify(t.text)}`)}return this.pop().text}popParen(){let e=this.peek();if("OPEN_PAREN"!==e.type)throw Error("bad start");let t=this.#d(this.#a+1,e.match+1);return this.#a=e.match+1,t}popParams(){let e=this.peek();if("OPEN_PAREN"!==e.type)throw Error("bad start");let t=[];for(;this.#a<e.match-1;){let e=this.peek().linkNext;t.push(this.#d(this.#a+1,e)),this.#a=e}return this.#a=e.match+1,t}peek(){if(this.#a>=this.#f.length)throw Error("out-of-bounds");return this.#f[this.#a]}peekKeyword(e){let t=this.peekType("KEYWORD");return null!=t&&e.has(t)?t:null}peekType(e){if(0===this.length)return null;let t=this.peek();return t.type===e?t.text:null}pop(){let e=this.peek();return this.#a++,e}toString(){let e=[];for(let t=this.#a;t<this.#f.length;t++){let r=this.#f[t];e.push(`${r.type}:${r.text}`)}return`<TokenString ${e.join(" ")}>`}}function ro(e){let t=[],r=t=>{let r=i<e.length?JSON.stringify(e[i]):"$EOI";throw Error(`invalid token ${r} at ${i}: ${t}`)},n=[],a=[],i=0;for(;i<e.length;){let s=e.substring(i),o=s.match(rt);o&&(i+=o[1].length,s=e.substring(i));let l={depth:n.length,linkBack:-1,linkNext:-1,match:-1,type:"",text:"",offset:i,value:-1};t.push(l);let c=re[s[0]]||"";if(c){if(l.type=c,l.text=s[0],i++,"OPEN_PAREN"===c)n.push(t.length-1),a.push(t.length-1);else if("CLOSE_PAREN"==c)0===n.length&&r("no matching open bracket"),l.match=n.pop(),t[l.match].match=t.length-1,l.depth--,l.linkBack=a.pop(),t[l.linkBack].linkNext=t.length-1;else if("COMMA"===c)l.linkBack=a.pop(),t[l.linkBack].linkNext=t.length-1,a.push(t.length-1);else if("OPEN_BRACKET"===c)l.type="BRACKET";else if("CLOSE_BRACKET"===c){let e=t.pop().text;if(t.length>0&&"NUMBER"===t[t.length-1].type){let r=t.pop().text;e=r+e,t[t.length-1].value=ey(r)}if(0===t.length||"BRACKET"!==t[t.length-1].type)throw Error("missing opening bracket");t[t.length-1].text+=e}continue}if(o=s.match(rn)){if(l.text=o[1],i+=l.text.length,t7.has(l.text)){l.type="KEYWORD";continue}if(l.text.match(ri)){l.type="TYPE";continue}l.type="ID";continue}if(o=s.match(rr)){l.text=o[1],l.type="NUMBER",i+=l.text.length;continue}throw Error(`unexpected token ${JSON.stringify(s[0])} at position ${i}`)}return new rs(t.map(e=>Object.freeze(e)))}function rl(e,t){let r=[];for(let n in t.keys())e.has(n)&&r.push(n);if(r.length>1)throw Error(`conflicting types: ${r.join(", ")}`)}function rc(e,t){if(t.peekKeyword(t5)){let r=t.pop().text;if(r!==e)throw Error(`expected ${e}, got ${r}`)}return t.popType("ID")}function ru(e,t){let r=new Set;for(;;){let n=e.peekType("KEYWORD");if(null==n||t&&!t.has(n))break;if(e.pop(),r.has(n))throw Error(`duplicate keywords: ${JSON.stringify(n)}`);r.add(n)}return Object.freeze(r)}function rf(e){let t=ru(e,t4);return(rl(t,t1("constant payable nonpayable".split(" "))),rl(t,t1("pure view payable nonpayable".split(" "))),t.has("view"))?"view":t.has("pure")?"pure":t.has("payable")?"payable":t.has("nonpayable")?"nonpayable":t.has("constant")?"view":"nonpayable"}function rd(e,t){return e.popParams().map(e=>rP.from(e,t))}
1function rh(e){if(e.peekType("AT")){if(e.pop(),e.peekType("NUMBER"))return ep(e.pop().text);throw Error("invalid gas")}return null}function rx(e){if(e.length)throw Error(`unexpected tokens at offset ${e.offset}: ${e.toString()}`)}let rp=new RegExp(/^(.*)\[([0-9]*)\]$/);function rb(e){let t=e.match(ri);if(L(t,"invalid type","type",e),"uint"===e)return"uint256";if("int"===e)return"int256";if(t[2]){let r=parseInt(t[2]);L(0!==r&&r<=32,"invalid bytes length","type",e)}else if(t[3]){let r=parseInt(t[3]);L(0!==r&&r<=256&&r%8==0,"invalid numeric width","type",e)}return e}let rg={},rm=Symbol.for("_ethers_internal"),ry="_ParamTypeInternal",rw="_ErrorInternal",rA="_EventInternal",rv="_ConstructorInternal",rE="_FallbackInternal",rk="_FunctionInternal",rN="_StructInternal";class rP{name;type;baseType;indexed;components;arrayLength;arrayChildren;constructor(e,t,r,n,a,i,s,o){if(V(e,rg,"ParamType"),Object.defineProperty(this,rm,{value:ry}),i&&(i=Object.freeze(i.slice())),"array"===n){if(null==s||null==o)throw Error("")}else if(null!=s||null!=o)throw Error("");if("tuple"===n){if(null==i)throw Error("")}else if(null!=i)throw Error("");C(this,{name:t,type:r,baseType:n,indexed:a,components:i,arrayLength:s,arrayChildren:o})}format(e){if(null==e&&(e="sighash"),"json"===e){let t=this.name||"";if(this.isArray()){let e=JSON.parse(this.arrayChildren.format("json"));return e.name=t,e.type+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`,JSON.stringify(e)}let r={type:"tuple"===this.baseType?"tuple":this.type,name:t};return"boolean"==typeof this.indexed&&(r.indexed=this.indexed),this.isTuple()&&(r.components=this.components.map(t=>JSON.parse(t.format(e)))),JSON.stringify(r)}let t="";return this.isArray()?(t+=this.arrayChildren.format(e),t+=`[${this.arrayLength<0?"":String(this.arrayLength)}]`):this.isTuple()?t+="("+this.components.map(t=>t.format(e)).join("full"===e?", ":",")+")":t+=this.type,"sighash"!==e&&(!0===this.indexed&&(t+=" indexed"),"full"===e&&this.name&&(t+=" "+this.name)),t}isArray(){return"array"===this.baseType}isTuple(){return"tuple"===this.baseType}isIndexable(){return null!=this.indexed}walk(e,t){if(this.isArray()){if(!Array.isArray(e))throw Error("invalid array value");if(-1!==this.arrayLength&&e.length!==this.arrayLength)throw Error("array is wrong length");let r=this;return e.map(e=>r.arrayChildren.walk(e,t))}if(this.isTuple()){if(!Array.isArray(e))throw Error("invalid tuple value");if(e.length!==this.components.length)throw Error("array is wrong length");let r=this;return e.map((e,n)=>r.components[n].walk(e,t))}return t(this.type,e)}#h(e,t,r,n){if(this.isArray()){if(!Array.isArray(t))throw Error("invalid array value");if(-1!==this.arrayLength&&t.length!==this.arrayLength)throw Error("array is wrong length");let a=this.arrayChildren,i=t.slice();i.forEach((t,n)=>{a.#h(e,t,r,e=>{i[n]=e})}),n(i);return}if(this.isTuple()){let a,i=this.components;if(Array.isArray(t))a=t.slice();else{if(null==t||"object"!=typeof t)throw Error("invalid tuple value");a=i.map(e=>{if(!e.name)throw Error("cannot use object value with unnamed components");if(!(e.name in t))throw Error(`missing value for component ${e.name}`);return t[e.name]})}if(a.length!==this.components.length)throw Error("array is wrong length");a.forEach((t,n)=>{i[n].#h(e,t,r,e=>{a[n]=e})}),n(a);return}let a=r(this.type,t);a.then?e.push(async function(){n(await a)}()):n(a)}async walkAsync(e,t){let r=[],n=[e];return this.#h(r,e,t,e=>{n[0]=e}),r.length&&await Promise.all(r),n[0]}static from(e,t){if(rP.isParamType(e))return e;if("string"==typeof e)try{return rP.from(ro(e),t)}catch(t){L(!1,"invalid param type","obj",e)}else if(e instanceof rs){let r="",n="",a=null;ru(e,t1(["tuple"])).has("tuple")||e.peekType("OPEN_PAREN")?(n="tuple",a=e.popParams().map(e=>rP.from(e)),r=`tuple(${a.map(e=>e.format()).join(",")})`):n=r=rb(e.popType("TYPE"));let i=null,s=null;for(;e.length&&e.peekType("BRACKET");){let t=e.pop();i=new rP(rg,"",r,n,null,a,s,i),s=t.value,r+=t.text,n="array",a=null}let o=null;if(ru(e,t9).has("indexed")){if(!t)throw Error("");o=!0}let l=e.peekType("ID")?e.pop().text:"";if(e.length)throw Error("leftover tokens");return new rP(rg,l,r,n,o,a,s,i)}let r=e.name;L(!r||"string"==typeof r&&r.match(ra),"invalid name","obj.name",r);let n=e.indexed;null!=n&&(L(t,"parameter cannot be indexed","obj.indexed",e.indexed),n=!!n);let a=e.type,i=a.match(rp);if(i){let t=parseInt(i[2]||"-1"),s=rP.from({type:i[1],components:e.components});return new rP(rg,r||"",a,"array",n,null,t,s)}if("tuple"===a||a.startsWith("tuple(")||a.startsWith("(")){let t=null!=e.components?e.components.map(e=>rP.from(e)):null;return new rP(rg,r||"",a,"tuple",n,t,null,null)}return new rP(rg,r||"",a=rb(e.type),a,n,null,null,null)}static isParamType(e){return e&&e[rm]===ry}}class rR{type;inputs;constructor(e,t,r){V(e,rg,"Fragment"),C(this,{type:t,inputs:r=Object.freeze(r.slice())})}static from(e){if("string"==typeof e){try{rR.from(JSON.parse(e))}catch(e){}return rR.from(ro(e))}if(e instanceof rs)switch(e.peekKeyword(t5)){case"constructor":return rB.from(e);case"error":return rO.from(e);case"event":return rC.from(e);case"fallback":case"receive":return rS.from(e);case"function":return rU.from(e);case"struct":return rD.from(e)}else if("object"==typeof e){switch(e.type){case"constructor":return rB.from(e);case"error":return rO.from(e);case"event":return rC.from(e);case"fallback":case"receive":return rS.from(e);case"function":return rU.from(e);case"struct":return rD.from(e)}F(!1,`unsupported type: ${e.type}`,"UNSUPPORTED_OPERATION",{operation:"Fragment.from"})}L(!1,"unsupported frgament object","obj",e)}static isConstructor(e){return rB.isFragment(e)}static isError(e){return rO.isFragment(e)}static isEvent(e){return rC.isFragment(e)}static isFunction(e){return rU.isFragment(e)}static isStruct(e){return rD.isFragment(e)}}class rI extends rR{name;constructor(e,t,r,n){super(e,t,n),L("string"==typeof r&&r.match(ra),"invalid identifier","name",r),n=Object.freeze(n.slice()),C(this,{name:r})}}function rT(e,t){return"("+t.map(t=>t.format(e)).join("full"===e?", ":",")+")"}class rO extends rI{constructor(e,t,r){super(e,"error",t,r),Object.defineProperty(this,rm,{value:rw})}get selector(){return t0(this.format("sighash")).substring(0,10)}format(e){if(null==e&&(e="sighash"),"json"===e)return JSON.stringify({type:"error",name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t=[];
1return"sighash"!==e&&t.push("error"),t.push(this.name+rT(e,this.inputs)),t.join(" ")}static from(e){if(rO.isFragment(e))return e;if("string"==typeof e)return rO.from(ro(e));if(e instanceof rs){let t=rc("error",e),r=rd(e);return rx(e),new rO(rg,t,r)}return new rO(rg,e.name,e.inputs?e.inputs.map(rP.from):[])}static isFragment(e){return e&&e[rm]===rw}}class rC extends rI{anonymous;constructor(e,t,r,n){super(e,"event",t,r),Object.defineProperty(this,rm,{value:rA}),C(this,{anonymous:n})}get topicHash(){return t0(this.format("sighash"))}format(e){if(null==e&&(e="sighash"),"json"===e)return JSON.stringify({type:"event",anonymous:this.anonymous,name:this.name,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t=[];return"sighash"!==e&&t.push("event"),t.push(this.name+rT(e,this.inputs)),"sighash"!==e&&this.anonymous&&t.push("anonymous"),t.join(" ")}static getTopicHash(e,t){return new rC(rg,e,t=(t||[]).map(e=>rP.from(e)),!1).topicHash}static from(e){if(rC.isFragment(e))return e;if("string"==typeof e)try{return rC.from(ro(e))}catch(t){L(!1,"invalid event fragment","obj",e)}else if(e instanceof rs){let t=rc("event",e),r=rd(e,!0),n=!!ru(e,t1(["anonymous"])).has("anonymous");return rx(e),new rC(rg,t,r,n)}return new rC(rg,e.name,e.inputs?e.inputs.map(e=>rP.from(e,!0)):[],!!e.anonymous)}static isFragment(e){return e&&e[rm]===rA}}class rB extends rR{payable;gas;constructor(e,t,r,n,a){super(e,t,r),Object.defineProperty(this,rm,{value:rv}),C(this,{payable:n,gas:a})}format(e){if(F(null!=e&&"sighash"!==e,"cannot format a constructor for sighash","UNSUPPORTED_OPERATION",{operation:"format(sighash)"}),"json"===e)return JSON.stringify({type:"constructor",stateMutability:this.payable?"payable":"undefined",payable:this.payable,gas:null!=this.gas?this.gas:void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e)))});let t=[`constructor${rT(e,this.inputs)}`];return this.payable&&t.push("payable"),null!=this.gas&&t.push(`@${this.gas.toString()}`),t.join(" ")}static from(e){if(rB.isFragment(e))return e;if("string"==typeof e)try{return rB.from(ro(e))}catch(t){L(!1,"invalid constuctor fragment","obj",e)}else if(e instanceof rs){ru(e,t1(["constructor"]));let t=rd(e),r=!!ru(e,t2).has("payable"),n=rh(e);return rx(e),new rB(rg,"constructor",t,r,n)}return new rB(rg,"constructor",e.inputs?e.inputs.map(rP.from):[],!!e.payable,null!=e.gas?e.gas:null)}static isFragment(e){return e&&e[rm]===rv}}class rS extends rR{payable;constructor(e,t,r){super(e,"fallback",t),Object.defineProperty(this,rm,{value:rE}),C(this,{payable:r})}format(e){let t=0===this.inputs.length?"receive":"fallback";return"json"===e?JSON.stringify({type:t,stateMutability:this.payable?"payable":"nonpayable"}):`${t}()${this.payable?" payable":""}`}static from(e){if(rS.isFragment(e))return e;if("string"==typeof e)try{return rS.from(ro(e))}catch(t){L(!1,"invalid fallback fragment","obj",e)}else if(e instanceof rs){let t=e.toString();if(L(e.peekKeyword(t1(["fallback","receive"])),"type must be fallback or receive","obj",t),"receive"===e.popKeyword(t1(["fallback","receive"]))){let t=rd(e);return L(0===t.length,"receive cannot have arguments","obj.inputs",t),ru(e,t1(["payable"])),rx(e),new rS(rg,[],!0)}let r=rd(e);r.length?L(1===r.length&&"bytes"===r[0].type,"invalid fallback inputs","obj.inputs",r.map(e=>e.format("minimal")).join(", ")):r=[rP.from("bytes")];let n=rf(e);if(L("nonpayable"===n||"payable"===n,"fallback cannot be constants","obj.stateMutability",n),ru(e,t1(["returns"])).has("returns")){let t=rd(e);L(1===t.length&&"bytes"===t[0].type,"invalid fallback outputs","obj.outputs",t.map(e=>e.format("minimal")).join(", "))}return rx(e),new rS(rg,r,"payable"===n)}return"receive"===e.type?new rS(rg,[],!0):"fallback"===e.type?new rS(rg,[rP.from("bytes")],"payable"===e.stateMutability):void L(!1,"invalid fallback description","obj",e)}static isFragment(e){return e&&e[rm]===rE}}class rU extends rI{constant;outputs;stateMutability;payable;gas;constructor(e,t,r,n,a,i){super(e,"function",t,n),Object.defineProperty(this,rm,{value:rk}),C(this,{constant:"view"===r||"pure"===r,gas:i,outputs:a=Object.freeze(a.slice()),payable:"payable"===r,stateMutability:r})}get selector(){return t0(this.format("sighash")).substring(0,10)}format(e){if(null==e&&(e="sighash"),"json"===e)return JSON.stringify({type:"function",name:this.name,constant:this.constant,stateMutability:"nonpayable"!==this.stateMutability?this.stateMutability:void 0,payable:this.payable,gas:null!=this.gas?this.gas:void 0,inputs:this.inputs.map(t=>JSON.parse(t.format(e))),outputs:this.outputs.map(t=>JSON.parse(t.format(e)))});let t=[];return"sighash"!==e&&t.push("function"),t.push(this.name+rT(e,this.inputs)),"sighash"!==e&&("nonpayable"!==this.stateMutability&&t.push(this.stateMutability),this.outputs&&this.outputs.length&&(t.push("returns"),t.push(rT(e,this.outputs))),null!=this.gas&&t.push(`@${this.gas.toString()}`)),t.join(" ")}static getSelector(e,t){return new rU(rg,e,"view",t=(t||[]).map(e=>rP.from(e)),[],null).selector}static from(e){if(rU.isFragment(e))return e;if("string"==typeof e)try{return rU.from(ro(e))}catch(t){L(!1,"invalid function fragment","obj",e)}else if(e instanceof rs){let t=rc("function",e),r=rd(e),n=rf(e),a=[];ru(e,t1(["returns"])).has("returns")&&(a=rd(e));let i=rh(e);return rx(e),new rU(rg,t,n,r,a,i)}let t=e.stateMutability;return null==t&&(t="payable","boolean"==typeof e.constant?(t="view",!e.constant&&(t="payable","boolean"!=typeof e.payable||e.payable||(t="nonpayable"))):"boolean"!=typeof e.payable||e.payable||(t="nonpayable")),new rU(rg,e.name,t,e.inputs?e.inputs.map(rP.from):[],e.outputs?e.outputs.map(rP.from):[],null!=e.gas?e.gas:null)}static isFragment(e){return e&&e[rm]===rk}}class rD extends rI{constructor(e,t,r){super(e,"struct",t,r),Object.defineProperty(this,rm,{value:rN})}format(){throw Error("@TODO")}static from(e){if("string"==typeof e)try{return rD.from(ro(e))}catch(t){L(!1,"invalid struct fragment","obj",e)}else if(e instanceof rs){let t=rc("struct",e),r=rd(e);return rx(e),new rD(rg,t,r)}return new rD(rg,e.name,e.inputs?e.inputs.map(rP.from):[])}static isFragment(e){return e&&e[rm]===rN}}let rF=new Map;rF.set(0,"GENERIC_PANIC"),rF.set(1,"ASSERT_FALSE"),rF.set(17,"OVERFLOW"),rF.set(18,"DIVIDE_BY_ZERO"),rF.set(33,"ENUM_RANGE_ERROR"),rF.set(34,"BAD_STORAGE_DATA"),rF.set(49,"STACK_UNDERFLOW"),rF.set(50,"ARRAY_RANGE_ERROR"),rF.set(65,"OUT_OF_MEMORY"),rF.set(81,"UNINITIALIZED_FUNCTION_CALL");let rL=new RegExp(/^bytes([0-9]*)$/),rM=new RegExp(/^(u?int)([0-9]*)$/),rG=null,rj=1024;class rV{#x(e){if(e.isArray())return new tV(this.#x(e.arrayChildren),e.arrayLength,e.name);if(e.isTuple())return new t$(e.components.map(e=>this.#x(e)),e.name);switch(e.baseType){case"address":return new tL(e.name);case"bool":return new tH(e.name);case"string":return new tX(e.name);case"bytes":return new tK(e.name);case"":return new tJ(e.name)}
1let t=e.type.match(rM);if(t){let r=parseInt(t[2]||"256");return L(0!==r&&r<=256&&r%8==0,"invalid "+t[1]+" bit length","param",e),new tY(r/8,"int"===t[1],e.name)}if(t=e.type.match(rL)){let r=parseInt(t[1]);return L(0!==r&&r<=32,"invalid bytes length","param",e),new tQ(r,e.name)}L(!1,"invalid type","type",e.type)}getDefaultValue(e){return new t$(e.map(e=>this.#x(rP.from(e))),"_").defaultValue()}encode(e,t){M(t.length,e.length,"types/values length mismatch");let r=new t$(e.map(e=>this.#x(rP.from(e))),"_"),n=new eU;return r.encode(n,t),n.data}decode(e,t,r){return new t$(e.map(e=>this.#x(rP.from(e))),"_").decode(new eD(t,r,rj))}static _setDefaultMaxInflation(e){L("number"==typeof e&&Number.isInteger(e),"invalid defaultMaxInflation factor","value",e),rj=e}static defaultAbiCoder(){return null==rG&&(rG=new rV),rG}static getBuiltinCallException(e,t,r){return function(e,t,r,n){let a="missing revert data",i=null,s=null;if(r){a="execution reverted";let e=z(r);if(r=q(r),0===e.length)a+=" (no data present; likely require(false) occurred",i="require(false)";else if(e.length%32!=4)a+=" (could not decode reason; invalid data length)";else if("0x08c379a0"===q(e.slice(0,4)))try{i=n.decode(["string"],e.slice(4))[0],s={signature:"Error(string)",name:"Error",args:[i]},a+=`: ${JSON.stringify(i)}`}catch(e){a+=" (could not decode reason; invalid string data)"}else if("0x4e487b71"===q(e.slice(0,4)))try{let t=Number(n.decode(["uint256"],e.slice(4))[0]);s={signature:"Panic(uint256)",name:"Panic",args:[t]},i=`Panic due to ${rF.get(t)||"UNKNOWN"}(${t})`,a+=`: ${i}`}catch(e){a+=" (could not decode panic code)"}else a+=" (unknown custom error)"}let o={to:t.to?tO(t.to):null,data:t.data||"0x"};return t.from&&(o.from=tO(t.from)),D(a,"CALL_EXCEPTION",{action:e,data:r,reason:i,transaction:o,invocation:null,revert:s})}(e,t,r,rV.defaultAbiCoder())}}class rH{fragment;name;signature;topic;args;constructor(e,t,r){const n=e.name,a=e.format();C(this,{fragment:e,name:n,signature:a,topic:t,args:r})}}class rz{fragment;name;args;signature;selector;value;constructor(e,t,r,n){const a=e.name,i=e.format();C(this,{fragment:e,name:a,args:r,signature:i,selector:t,value:n})}}class rK{fragment;name;args;signature;selector;constructor(e,t,r){const n=e.name,a=e.format();C(this,{fragment:e,name:n,args:r,signature:a,selector:t})}}class rQ{hash;_isIndexed;static isIndexed(e){return!!(e&&e._isIndexed)}constructor(e){C(this,{hash:e,_isIndexed:!0})}}let r_={0:"generic panic",1:"assert(false)",17:"arithmetic overflow",18:"division or modulo by zero",33:"enum overflow",34:"invalid encoded storage byte array accessed",49:"out-of-bounds array access; popping on an empty array",50:"out-of-bounds access of an array or bytesN",65:"out of memory",81:"uninitialized function"},rJ={"0x08c379a0":{signature:"Error(string)",name:"Error",inputs:["string"],reason:e=>`reverted with reason string ${JSON.stringify(e)}`},"0x4e487b71":{signature:"Panic(uint256)",name:"Panic",inputs:["uint256"],reason:e=>{let t="unknown panic code";return e>=0&&e<=255&&r_[e.toString()]&&(t=r_[e.toString()]),`reverted with panic code 0x${e.toString(16)} (${t})`}}};class rq{fragments;deploy;fallback;receive;#p;#b;#g;#m;constructor(e){let t=[];t="string"==typeof e?JSON.parse(e):e,this.#g=new Map,this.#p=new Map,this.#b=new Map;const r=[];for(const e of t)try{r.push(rR.from(e))}catch(t){console.log(`[Warning] Invalid Fragment ${JSON.stringify(e)}:`,t.message)}C(this,{fragments:Object.freeze(r)});let n=null,a=!1;this.#m=this.getAbiCoder(),this.fragments.forEach((e,t)=>{let r;switch(e.type){case"constructor":if(this.deploy)return void console.log("duplicate definition - constructor");C(this,{deploy:e});return;case"fallback":0===e.inputs.length?a=!0:(L(!n||e.payable!==n.payable,"conflicting fallback fragments",`fragments[${t}]`,e),a=(n=e).payable);return;case"function":r=this.#g;break;case"event":r=this.#b;break;case"error":r=this.#p;break;default:return}let i=e.format();r.has(i)||r.set(i,e)}),this.deploy||C(this,{deploy:rB.from("constructor()")}),C(this,{fallback:n,receive:a})}format(e){let t=e?"minimal":"full";return this.fragments.map(e=>e.format(t))}formatJson(){return JSON.stringify(this.fragments.map(e=>e.format("json")).map(e=>JSON.parse(e)))}getAbiCoder(){return rV.defaultAbiCoder()}#y(e,t,r){if(Q(e)){let t=e.toLowerCase();for(let e of this.#g.values())if(t===e.selector)return e;return null}if(-1===e.indexOf("(")){let n=[];for(let[t,r]of this.#g)t.split("(")[0]===e&&n.push(r);if(t){let e=t.length>0?t[t.length-1]:null,r=t.length,a=!0;tF.isTyped(e)&&"overrides"===e.type&&(a=!1,r--);for(let e=n.length-1;e>=0;e--){let t=n[e].inputs.length;t===r||a&&t===r-1||n.splice(e,1)}for(let e=n.length-1;e>=0;e--){let r=n[e].inputs;for(let a=0;a<t.length;a++)if(tF.isTyped(t[a])){if(a>=r.length){if("overrides"===t[a].type)continue;n.splice(e,1);break}if(t[a].type!==r[a].baseType){n.splice(e,1);break}}}}if(1===n.length&&t&&t.length!==n[0].inputs.length){let e=t[t.length-1];(null==e||Array.isArray(e)||"object"!=typeof e)&&n.splice(0,1)}if(0===n.length)return null;if(n.length>1&&r){let t=n.map(e=>JSON.stringify(e.format())).join(", ");L(!1,`ambiguous function description (i.e. matches ${t})`,"key",e)}return n[0]}let n=this.#g.get(rU.from(e).format());return n||null}getFunctionName(e){let t=this.#y(e,null,!1);return L(t,"no matching function","key",e),t.name}hasFunction(e){return!!this.#y(e,null,!1)}getFunction(e,t){return this.#y(e,t||null,!0)}forEachFunction(e){let t=Array.from(this.#g.keys());t.sort((e,t)=>
1e.localeCompare(t));for(let r=0;r<t.length;r++){let n=t[r];e(this.#g.get(n),r)}}#w(e,t,r){if(Q(e)){let t=e.toLowerCase();for(let e of this.#b.values())if(t===e.topicHash)return e;return null}if(-1===e.indexOf("(")){let n=[];for(let[t,r]of this.#b)t.split("(")[0]===e&&n.push(r);if(t){for(let e=n.length-1;e>=0;e--)n[e].inputs.length<t.length&&n.splice(e,1);for(let e=n.length-1;e>=0;e--){let r=n[e].inputs;for(let a=0;a<t.length;a++)if(tF.isTyped(t[a])&&t[a].type!==r[a].baseType){n.splice(e,1);break}}}if(0===n.length)return null;if(n.length>1&&r){let t=n.map(e=>JSON.stringify(e.format())).join(", ");L(!1,`ambiguous event description (i.e. matches ${t})`,"key",e)}return n[0]}let n=this.#b.get(rC.from(e).format());return n||null}getEventName(e){let t=this.#w(e,null,!1);return L(t,"no matching event","key",e),t.name}hasEvent(e){return!!this.#w(e,null,!1)}getEvent(e,t){return this.#w(e,t||null,!0)}forEachEvent(e){let t=Array.from(this.#b.keys());t.sort((e,t)=>e.localeCompare(t));for(let r=0;r<t.length;r++){let n=t[r];e(this.#b.get(n),r)}}getError(e,t){if(Q(e)){let t=e.toLowerCase();if(rJ[t])return rO.from(rJ[t].signature);for(let e of this.#p.values())if(t===e.selector)return e;return null}if(-1===e.indexOf("(")){let t=[];for(let[r,n]of this.#p)r.split("(")[0]===e&&t.push(n);if(0===t.length)return"Error"===e?rO.from("error Error(string)"):"Panic"===e?rO.from("error Panic(uint256)"):null;if(t.length>1){let r=t.map(e=>JSON.stringify(e.format())).join(", ");L(!1,`ambiguous error description (i.e. ${r})`,"name",e)}return t[0]}if("Error(string)"===(e=rO.from(e).format()))return rO.from("error Error(string)");if("Panic(uint256)"===e)return rO.from("error Panic(uint256)");let r=this.#p.get(e);return r||null}forEachError(e){let t=Array.from(this.#p.keys());t.sort((e,t)=>e.localeCompare(t));for(let r=0;r<t.length;r++){let n=t[r];e(this.#p.get(n),r)}}_decodeParams(e,t){return this.#m.decode(e,t)}_encodeParams(e,t){return this.#m.encode(e,t)}encodeDeploy(e){return this._encodeParams(this.deploy.inputs,e||[])}decodeErrorResult(e,t){if("string"==typeof e){let t=this.getError(e);L(t,"unknown error","fragment",e),e=t}return L(Y(t,0,4)===e.selector,`data signature does not match error ${e.name}.`,"data",t),this._decodeParams(e.inputs,Y(t,4))}encodeErrorResult(e,t){if("string"==typeof e){let t=this.getError(e);L(t,"unknown error","fragment",e),e=t}return W([e.selector,this._encodeParams(e.inputs,t||[])])}decodeFunctionData(e,t){if("string"==typeof e){let t=this.getFunction(e);L(t,"unknown function","fragment",e),e=t}return L(Y(t,0,4)===e.selector,`data signature does not match function ${e.name}.`,"data",t),this._decodeParams(e.inputs,Y(t,4))}encodeFunctionData(e,t){if("string"==typeof e){let t=this.getFunction(e);L(t,"unknown function","fragment",e),e=t}return W([e.selector,this._encodeParams(e.inputs,t||[])])}decodeFunctionResult(e,t){if("string"==typeof e){let t=this.getFunction(e);L(t,"unknown function","fragment",e),e=t}let r="invalid length for result data",n=K(t);if(n.length%32==0)try{return this.#m.decode(e.outputs,n)}catch(e){r="could not decode result data"}F(!1,r,"BAD_DATA",{value:q(n),info:{method:e.name,signature:e.format()}})}makeError(e,t){let r=z(e,"data"),n=rV.getBuiltinCallException("call",t,r);if(n.message.startsWith("execution reverted (unknown custom error)")){let e=q(r.slice(0,4)),t=this.getError(e);
1if(t)try{let e=this.#m.decode(t.inputs,r.slice(4));n.revert={name:t.name,signature:t.format(),args:e},n.reason=n.revert.signature,n.message=`execution reverted: ${n.reason}`}catch(e){n.message="execution reverted (coult not decode custom error)"}}let a=this.parseTransaction(t);return a&&(n.invocation={method:a.name,signature:a.signature,args:a.args}),n}encodeFunctionResult(e,t){if("string"==typeof e){let t=this.getFunction(e);L(t,"unknown function","fragment",e),e=t}return q(this.#m.encode(e.outputs,t||[]))}encodeFilterTopics(e,t){if("string"==typeof e){let t=this.getEvent(e);L(t,"unknown event","eventFragment",e),e=t}F(t.length<=e.inputs.length,`too many arguments for ${e.format()}`,"UNEXPECTED_ARGUMENT",{count:t.length,expectedCount:e.inputs.length});let r=[];e.anonymous||r.push(e.topicHash);let n=(e,t)=>"string"===e.type?t0(t):"bytes"===e.type?tE(q(t)):("bool"===e.type&&"boolean"==typeof t?t=t?"0x01":"0x00":e.type.match(/^u?int/)?t=eA(t):e.type.match(/^bytes/)?t=et(t,32):"address"===e.type&&this.#m.encode(["address"],[t]),ee(q(t),32));for(t.forEach((t,a)=>{let i=e.inputs[a];i.indexed?null==t?r.push(null):"array"===i.baseType||"tuple"===i.baseType?L(!1,"filtering with tuples or arrays not supported","contract."+i.name,t):Array.isArray(t)?r.push(t.map(e=>n(i,e))):r.push(n(i,t)):L(null==t,"cannot filter non-indexed parameters; must be null","contract."+i.name,t)});r.length&&null===r[r.length-1];)r.pop();return r}encodeEventLog(e,t){if("string"==typeof e){let t=this.getEvent(e);L(t,"unknown event","eventFragment",e),e=t}let r=[],n=[],a=[];return e.anonymous||r.push(e.topicHash),L(t.length===e.inputs.length,"event arguments/values mismatch","values",t),e.inputs.forEach((e,i)=>{let s=t[i];if(e.indexed)if("string"===e.type)r.push(t0(s));else if("bytes"===e.type)r.push(tE(s));else if("tuple"===e.baseType||"array"===e.baseType)throw Error("not implemented");else r.push(this.#m.encode([e.type],[s]));else n.push(e),a.push(s)}),{data:this.#m.encode(n,a),topics:r}}decodeEventLog(e,t,r){if("string"==typeof e){let t=this.getEvent(e);L(t,"unknown event","eventFragment",e),e=t}if(null!=r&&!e.anonymous){let t=e.topicHash;L(Q(r[0],32)&&r[0].toLowerCase()===t,"fragment/topic mismatch","topics[0]",r[0]),r=r.slice(1)}let n=[],a=[],i=[];e.inputs.forEach((e,t)=>{e.indexed?"string"===e.type||"bytes"===e.type||"tuple"===e.baseType||"array"===e.baseType?(n.push(rP.from({type:"bytes32",name:e.name})),i.push(!0)):(n.push(e),i.push(!1)):(a.push(e),i.push(!1))});let s=null!=r?this.#m.decode(n,W(r)):null,o=this.#m.decode(a,t,!0),l=[],c=[],u=0,f=0;return e.inputs.forEach((e,t)=>{let r=null;if(e.indexed)if(null==s)r=new rQ(null);else if(i[t])r=new rQ(s[f++]);else try{r=s[f++]}catch(e){r=e}else try{r=o[u++]}catch(e){r=e}l.push(r),c.push(e.name||null)}),eO.fromItems(l,c)}parseTransaction(e){let t=z(e.data,"tx.data"),r=ep(null!=e.value?e.value:0,"tx.value"),n=this.getFunction(q(t.slice(0,4)));if(!n)return null;let a=this.#m.decode(n.inputs,t.slice(4));return new rz(n,n.selector,a,r)}parseCallResult(e){throw Error("@TODO")}parseLog(e){let t=this.getEvent(e.topics[0]);return!t||t.anonymous?null:new rH(t,t.topicHash,this.decodeEventLog(t,e.data,e.topics))}parseError(e){let t=q(e),r=this.getError(Y(t,0,4));if(!r)return null;let n=this.#m.decode(r.inputs,Y(t,4));return new rK(r,r.selector,n)}static from(e){return e instanceof rq?e:new rq("string"==typeof e?JSON.parse(e):"function"==typeof e.formatJson?e.formatJson():"function"==typeof e.format?e.format("json"):e)}}function rW(e){let t=[];for(;e;)t.unshift(255&e),e>>=8;return t}let rZ="0123456789abcdef";function rY(e){let t="0x";for(let r of function e(t){if(Array.isArray(t)){let r=[];if(t.forEach(function(t){r=r.concat(e(t))}),r.length<=55)return r.unshift(192+r.length),r;let n=rW(r.length);return n.unshift(247+n.length),n.concat(r)}let r=Array.prototype.slice.call(z(t,"object"));if(1===r.length&&r[0]<=127)return r;if(r.length<=55)return r.unshift(128+r.length),r;let n=rW(r.length);return n.unshift(183+n.length),n.concat(r)}(e))t+=rZ[r>>4],t+=rZ[15&r];return t}function rX(e){let t=tO(e.from),r=ep(e.nonce,"tx.nonce").toString(16);return tO(Y(tE(rY([t,r="0"===r?"0x":r.length%2?"0x0"+r:"0x"+r])),12))}function r$(e,t,r){let n=tO(e),a=z(t,"salt"),i=z(r,"initCodeHash");return L(32===a.length,"salt must be 32 bytes","salt",t),L(32===i.length,"initCodeHash must be 32 bytes","initCodeHash",r),tO(Y(tE(W(["0xff",n,a,i])),12))}function r0(e){return e&&"function"==typeof e.getAddress}function r1(e){try{return tO(e),!0}catch(e){}return!1}async function r2(e,t){let r=await t;return(null==r||"0x0000000000000000000000000000000000000000"===r)&&(F("string"!=typeof e,"unconfigured name","UNCONFIGURED_NAME",{value:e}),L(!1,"invalid AddressLike value;
1 did not resolve to a value address","target",e)),tO(r)}function r3(e,t){return"string"==typeof e?e.match(/^0x[0-9a-f]{40}$/i)?tO(e):(F(null!=t,"ENS resolution requires a provider","UNSUPPORTED_OPERATION",{operation:"resolveName"}),r2(e,t.resolveName(e))):r0(e)?r2(e,e.getAddress()):e&&"function"==typeof e.then?r2(e,e):void L(!1,"unsupported addressable value","target",e)}let r4="0x0000000000000000000000000000000000000000",r8=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),r5=BigInt("1000000000000000000"),r6=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),r9=BigInt("0x8000000000000000000000000000000000000000000000000000000000000000")*BigInt(-1),r7=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),ne="0x0000000000000000000000000000000000000000000000000000000000000000",nt="\x19Ethereum Signed Message:\n";function nr(e,t){return{address:tO(e),storageKeys:t.map((e,t)=>(L(Q(e,32),"invalid slot",`storageKeys[${t}]`,e),e.toLowerCase()))}}function nn(e){if(Array.isArray(e))return e.map((t,r)=>Array.isArray(t)?(L(2===t.length,"invalid slot set",`value[${r}]`,t),nr(t[0],t[1])):(L(null!=t&&"object"==typeof t,"invalid address-slot set","value",e),nr(t.address,t.storageKeys)));L(null!=e&&"object"==typeof e,"invalid access list","value",e);let t=Object.keys(e).map(t=>{let r=e[t].reduce((e,t)=>(e[t]=!0,e),{});return nr(t,Object.keys(r).sort())});return t.sort((e,t)=>e.address.localeCompare(t.address)),t}let na=BigInt(0);function ni(e){return null==e?null:e}function ns(e){return null==e?null:e.toString()}class no{gasPrice;maxFeePerGas;maxPriorityFeePerGas;constructor(e,t,r){C(this,{gasPrice:ni(e),maxFeePerGas:ni(t),maxPriorityFeePerGas:ni(r)})}toJSON(){let{gasPrice:e,maxFeePerGas:t,maxPriorityFeePerGas:r}=this;return{_type:"FeeData",gasPrice:ns(e),maxFeePerGas:ns(t),maxPriorityFeePerGas:ns(r)}}}function nl(e){let t={};for(let r of(e.to&&(t.to=e.to),e.from&&(t.from=e.from),e.data&&(t.data=q(e.data)),"chainId,gasLimit,gasPrice,maxFeePerBlobGas,maxFeePerGas,maxPriorityFeePerGas,value".split(/,/)))r in e&&null!=e[r]&&(t[r]=ep(e[r],`request.${r}`));for(let r of"type,nonce".split(/,/))r in e&&null!=e[r]&&(t[r]=ey(e[r],`request.${r}`));return e.accessList&&(t.accessList=nn(e.accessList)),e.authorizationList&&(t.authorizationList=e.authorizationList.slice()),"blockTag"in e&&(t.blockTag=e.blockTag),"enableCcipRead"in e&&(t.enableCcipRead=!!e.enableCcipRead),"customData"in e&&(t.customData=e.customData),"blobVersionedHashes"in e&&e.blobVersionedHashes&&(t.blobVersionedHashes=e.blobVersionedHashes.slice()),"kzg"in e&&(t.kzg=e.kzg),"blobWrapperVersion"in e&&(t.blobWrapperVersion=e.blobWrapperVersion),"blobs"in e&&e.blobs&&(t.blobs=e.blobs.map(e=>_(e)?q(e):Object.assign({},e))),t}class nc{provider;number;hash;timestamp;parentHash;parentBeaconBlockRoot;nonce;difficulty;gasLimit;gasUsed;stateRoot;receiptsRoot;blobGasUsed;excessBlobGas;miner;prevRandao;extraData;baseFeePerGas;#A;constructor(e,t){this.#A=e.transactions.map(e=>"string"!=typeof e?new nd(e,t):e),C(this,{provider:t,hash:ni(e.hash),number:e.number,timestamp:e.timestamp,parentHash:e.parentHash,parentBeaconBlockRoot:e.parentBeaconBlockRoot,nonce:e.nonce,difficulty:e.difficulty,gasLimit:e.gasLimit,gasUsed:e.gasUsed,blobGasUsed:e.blobGasUsed,excessBlobGas:e.excessBlobGas,miner:e.miner,prevRandao:ni(e.prevRandao),extraData:e.extraData,baseFeePerGas:ni(e.baseFeePerGas),stateRoot:e.stateRoot,receiptsRoot:e.receiptsRoot})}get transactions(){return this.#A.map(e=>"string"==typeof e?e:e.hash)}get prefetchedTransactions(){let e=this.#A.slice();return 0===e.length?[]:(F("object"==typeof e[0],"transactions were not prefetched with block request","UNSUPPORTED_OPERATION",{operation:"transactionResponses()"}),e)}toJSON(){let{baseFeePerGas:e,difficulty:t,extraData:r,gasLimit:n,gasUsed:a,hash:i,miner:s,prevRandao:o,nonce:l,number:c,parentHash:u,parentBeaconBlockRoot:f,stateRoot:d,receiptsRoot:h,timestamp:x,transactions:p}=this;return{_type:"Block",baseFeePerGas:ns(e),difficulty:ns(t),extraData:r,gasLimit:ns(n),gasUsed:ns(a),blobGasUsed:ns(this.blobGasUsed),excessBlobGas:ns(this.excessBlobGas),hash:i,miner:s,prevRandao:o,nonce:l,number:c,parentHash:u,timestamp:x,parentBeaconBlockRoot:f,stateRoot:d,receiptsRoot:h,transactions:p}}[Symbol.iterator](){let e=0,t=this.transactions;return{next:()=>e<this.length?{value:t[e++],done:!1}:{value:void 0,done:!0}}}get length(){return this.#A.length}get date(){return null==this.timestamp?null:new Date(1e3*this.timestamp)}async getTransaction(e){let t;if("number"==typeof e)t=this.#A[e];else{let r=e.toLowerCase();for(let e of this.#A)if("string"==typeof e){if(e!==r)continue;t=e;break}else{if(e.hash!==r)continue;t=e;break}}if(null==t)throw Error("no such tx");return"string"==typeof t?await this.provider.getTransaction(t):t}getPrefetchedTransaction(e){let t=this.prefetchedTransactions;if("number"==typeof e)return t[e];for(let r of(e=e.toLowerCase(),t))if(r.hash===e)return r;L(!1,"no matching transaction","indexOrHash",e)}isMined(){return!!this.hash}isLondon(){return!!this.baseFeePerGas}orphanedEvent(){var e;if(!this.isMined())throw Error("");return e=this,{orphan:"drop-block",hash:e.hash,number:e.number}}}class nu{provider;transactionHash;blockHash;blockNumber;removed;address;data;topics;index;transactionIndex;constructor(e,t){this.provider=t;const r=Object.freeze(e.topics.slice());C(this,{transactionHash:e.transactionHash,blockHash:e.blockHash,blockNumber:e.blockNumber,removed:e.removed,address:e.address,data:e.data,topics:r,index:e.index,transactionIndex:e.transactionIndex})}toJSON(){let{address:e,blockHash:t,blockNumber:r,data:n,index:a,removed:i,topics:s,transactionHash:o,transactionIndex:l}=this;return{_type:"log",address:e,blockHash:t,blockNumber:r,data:n,index:a,removed:i,topics:s,transactionHash:o,transactionIndex:l}}async getBlock(){let e=await this.provider.getBlock(this.blockHash);return F(!!e,"failed to find transaction","UNKNOWN_ERROR",{}),e}async getTransaction(){let e=await this.provider.getTransaction(this.transactionHash);return F(!!e,"failed to find transaction","UNKNOWN_ERROR",{}),e}async getTransactionReceipt(){let e=await this.provider.getTransactionReceipt(this.transactionHash);return F(!!e,"failed to find transaction receipt","UNKNOWN_ERROR",{}),e}removedEvent(){var e;return e=this,{orphan:"drop-log",log:{transactionHash:e.transactionHash,blockHash:e.blockHash,blockNumber:e.blockNumber,address:e.address,data:e.data,topics:Object.freeze(e.topics.slice()),index:e.index}}}}class nf{provider;to;from;contractAddress;hash;index;blockHash;blockNumber;logsBloom;gasUsed;blobGasUsed;cumulativeGasUsed;gasPrice;blobGasPrice;type;status;root;#v;constructor(e,t){this.#v=Object.freeze(e.logs.map(e=>new nu(e,t)));let r=na;null!=e.effectiveGasPrice?r=e.effectiveGasPrice:null!=e.gasPrice&&(r=e.gasPrice),C(this,{provider:t,to:e.to,from:e.from,contractAddress:e.contractAddress,hash:e.hash,index:e.index,blockHash:e.blockHash,blockNumber:e.blockNumber,logsBloom:e.logsBloom,gasUsed:e.gasUsed,cumulativeGasUsed:e.cumulativeGasUsed,blobGasUsed:e.blobGasUsed,gasPrice:r,blobGasPrice:e.blobGasPrice,type:e.type,status:e.status,root:e.root})}get logs(){return this.#v}toJSON(){let{to:e,from:t,contractAddress:r,hash:n,index:a,blockHash:i,blockNumber:s,logs
1Bloom:o,logs:l,status:c,root:u}=this;return{_type:"TransactionReceipt",blockHash:i,blockNumber:s,contractAddress:r,cumulativeGasUsed:ns(this.cumulativeGasUsed),from:t,gasPrice:ns(this.gasPrice),blobGasUsed:ns(this.blobGasUsed),blobGasPrice:ns(this.blobGasPrice),gasUsed:ns(this.gasUsed),hash:n,index:a,logs:l,logsBloom:o,root:u,status:c,to:e}}get length(){return this.logs.length}[Symbol.iterator](){let e=0;return{next:()=>e<this.length?{value:this.logs[e++],done:!1}:{value:void 0,done:!0}}}get fee(){return this.gasUsed*this.gasPrice}async getBlock(){let e=await this.provider.getBlock(this.blockHash);if(null==e)throw Error("TODO");return e}async getTransaction(){let e=await this.provider.getTransaction(this.hash);if(null==e)throw Error("TODO");return e}async getResult(){return await this.provider.getTransactionResult(this.hash)}async confirmations(){return await this.provider.getBlockNumber()-this.blockNumber+1}removedEvent(){return nx(this)}reorderedEvent(e){return F(!e||e.isMined(),"unmined 'other' transction cannot be orphaned","UNSUPPORTED_OPERATION",{operation:"reorderedEvent(other)"}),nh(this,e)}}class nd{provider;blockNumber;blockHash;index;hash;type;to;from;nonce;gasLimit;gasPrice;maxPriorityFeePerGas;maxFeePerGas;maxFeePerBlobGas;data;value;chainId;signature;accessList;blobVersionedHashes;authorizationList;#E;constructor(e,t){this.provider=t,this.blockNumber=null!=e.blockNumber?e.blockNumber:null,this.blockHash=null!=e.blockHash?e.blockHash:null,this.hash=e.hash,this.index=e.index,this.type=e.type,this.from=e.from,this.to=e.to||null,this.gasLimit=e.gasLimit,this.nonce=e.nonce,this.data=e.data,this.value=e.value,this.gasPrice=e.gasPrice,this.maxPriorityFeePerGas=null!=e.maxPriorityFeePerGas?e.maxPriorityFeePerGas:null,this.maxFeePerGas=null!=e.maxFeePerGas?e.maxFeePerGas:null,this.maxFeePerBlobGas=null!=e.maxFeePerBlobGas?e.maxFeePerBlobGas:null,this.chainId=e.chainId,this.signature=e.signature,this.accessList=null!=e.accessList?e.accessList:null,this.blobVersionedHashes=null!=e.blobVersionedHashes?e.blobVersionedHashes:null,this.authorizationList=null!=e.authorizationList?e.authorizationList:null,this.#E=-1}toJSON(){let{blockNumber:e,blockHash:t,index:r,hash:n,type:a,to:i,from:s,nonce:o,data:l,signature:c,accessList:u,blobVersionedHashes:f}=this;return{_type:"TransactionResponse",accessList:u,blockNumber:e,blockHash:t,blobVersionedHashes:f,chainId:ns(this.chainId),data:l,from:s,gasLimit:ns(this.gasLimit),gasPrice:ns(this.gasPrice),hash:n,maxFeePerGas:ns(this.maxFeePerGas),maxPriorityFeePerGas:ns(this.maxPriorityFeePerGas),maxFeePerBlobGas:ns(this.maxFeePerBlobGas),nonce:o,signature:c,to:i,index:r,type:a,value:ns(this.value)}}async getBlock(){let e=this.blockNumber;if(null==e){let t=await this.getTransaction();t&&(e=t.blockNumber)}if(null==e)return null;let t=this.provider.getBlock(e);if(null==t)throw Error("TODO");return t}async getTransaction(){return this.provider.getTransaction(this.hash)}async confirmations(){if(null==this.blockNumber){let{tx:e,blockNumber:t}=await O({tx:this.getTransaction(),blockNumber:this.provider.getBlockNumber()});return null==e||null==e.blockNumber?0:t-e.blockNumber+1}return await this.provider.getBlockNumber()-this.blockNumber+1}async wait(e,t){let r=null==e?1:e,n=null==t?0:t,a=this.#E,i=-1,s=-1===a,o=async()=>{if(s)return null;let{blockNumber:e,nonce:t}=await O({blockNumber:this.provider.getBlockNumber(),nonce:this.provider.getTransactionCount(this.from)});if(t<this.nonce){a=e;return}if(s)return null;let n=await this.getTransaction();if(!n||null==n.blockNumber)for(-1===i&&(i=a-3)<this.#E&&(i=this.#E);i<=e;){if(s)return null;let t=await this.provider.getBlock(i,!0);if(null==t)break;for(let e of t)if(e===this.hash)return;for(let n=0;n<t.length;n++){let i=await t.getTransaction(n);if(i.from===this.from&&i.nonce===this.nonce){if(s)return null;let t=await this.provider.getTransactionReceipt(i.hash);if(null==t||e-t.blockNumber+1<r)return;let n="replaced";i.data===this.data&&i.to===this.to&&i.value===this.value?n="repriced":"0x"===i.data&&i.from===i.to&&i.value===na&&(n="cancelled"),F(!1,"transaction was replaced","TRANSACTION_REPLACED",{cancelled:"replaced"===n||"cancelled"===n,reason:n,replacement:i.replaceableTransaction(a),hash:i.hash,receipt:t})}}i++}},l=e=>{if(null==e||0!==e.status)return e;F(!1,"transaction execution reverted","CALL_EXCEPTION",{action:"sendTransaction",data:null,reason:null,invocation:null,revert:null,transaction:{to:e.to,from:e.from,data:""},receipt:e})},c=await this.provider.getTransactionReceipt(this.hash);if(0===r)return l(c);if(c){if(1===r||await c.confirmations()>=r)return l(c)}else if(await o(),0===r)return null;let u=new Promise((e,t)=>
1{let i=[],c=()=>{i.forEach(e=>e())};if(i.push(()=>{s=!0}),n>0){let e=setTimeout(()=>{c(),t(D("wait for transaction timeout","TIMEOUT"))},n);i.push(()=>{clearTimeout(e)})}let u=async n=>{if(await n.confirmations()>=r){c();try{e(l(n))}catch(e){t(e)}}};if(i.push(()=>{this.provider.off(this.hash,u)}),this.provider.on(this.hash,u),a>=0){let e=async()=>{try{await o()}catch(e){if(S(e,"TRANSACTION_REPLACED")){c(),t(e);return}}s||this.provider.once("block",e)};i.push(()=>{this.provider.off("block",e)}),this.provider.once("block",e)}});return await u}isMined(){return null!=this.blockHash}isLegacy(){return 0===this.type}isBerlin(){return 1===this.type}isLondon(){return 2===this.type}isCancun(){return 3===this.type}removedEvent(){return F(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),nx(this)}reorderedEvent(e){return F(this.isMined(),"unmined transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),F(!e||e.isMined(),"unmined 'other' transaction canot be orphaned","UNSUPPORTED_OPERATION",{operation:"removeEvent()"}),nh(this,e)}replaceableTransaction(e){L(Number.isInteger(e)&&e>=0,"invalid startBlock","startBlock",e);let t=new nd(this,this.provider);return t.#E=e,t}}function nh(e,t){return{orphan:"reorder-transaction",tx:e,other:t}}function nx(e){return{orphan:"drop-transaction",tx:e}}class np{filter;emitter;#k;constructor(e,t,r){this.#k=t,C(this,{emitter:e,filter:r})}async removeListener(){null!=this.#k&&await this.emitter.off(this.filter,this.#k)}}class nb extends nu{interface;fragment;args;constructor(e,t,r){super(e,e.provider),C(this,{args:t.decodeEventLog(r,e.data,e.topics),fragment:r,interface:t})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}class ng extends nu{error;constructor(e,t){super(e,e.provider),C(this,{error:t})}}class nm extends nf{#N;constructor(e,t,r){super(r,t),this.#N=e}get logs(){return super.logs.map(e=>{let t=e.topics.length?this.#N.getEvent(e.topics[0]):null;if(t)try{return new nb(e,this.#N,t)}catch(t){return new ng(e,t)}return e})}}class ny extends nd{#N;constructor(e,t,r){super(r,t),this.#N=e}async wait(e,t){let r=await super.wait(e,t);return null==r?null:new nm(this.#N,this.provider,r)}}class nw extends np{log;constructor(e,t,r,n){super(e,t,r),C(this,{log:n})}async getBlock(){return await this.log.getBlock()}async getTransaction(){return await this.log.getTransaction()}async getTransactionReceipt(){return await this.log.getTransactionReceipt()}}class nA extends nw{constructor(e,t,r,n,a){super(e,t,r,new nb(a,e.interface,n)),C(this,{args:e.interface.decodeEventLog(n,this.log.data,this.log.topics),fragment:n})}get eventName(){return this.fragment.name}get eventSignature(){return this.fragment.format()}}let nv=BigInt(0);function nE(e){return e&&"function"==typeof e.call}function nk(e){return e&&"function"==typeof e.estimateGas}function nN(e){return e&&"function"==typeof e.resolveName}function nP(e){return e&&"function"==typeof e.sendTransaction}function nR(e){if(null!=e){if(nN(e))return e;if(e.provider)return e.provider}}class nI{#P;fragment;constructor(e,t,r){if(C(this,{fragment:t}),t.inputs.length<r.length)throw Error("too many arguments");const n=nT(e.runner,"resolveName"),a=nN(n)?n:null;this.#P=async function(){let n=await Promise.all(t.inputs.map((e,t)=>null==r[t]?null:e.walkAsync(r[t],(e,t)=>"address"===e?Array.isArray(t)?Promise.all(t.map(e=>r3(e,a))):r3(t,a):t)));return e.interface.encodeFilterTopics(t,n)}()}getTopicFilter(){return this.#P}}function nT(e,t){return null==e?null:"function"==typeof e[t]?e:e.provider&&"function"==typeof e.provider[t]?e.provider:null}function nO(e){return null==e?null:e.provider||null}async function nC(e,t){let r=tF.dereference(e,"overrides");L("object"==typeof r,"invalid overrides parameter","overrides",e);let n=nl(r);return L(null==n.to||(t||[]).indexOf("to")>=0,"cannot override to","overrides.to",n.to),L(null==n.data||(t||[]).indexOf("data")>=0,"cannot override data","overrides.data",n.data),n.from&&(n.from=n.from),n}async function nB(e,t,r){let n=nT(e,"resolveName"),a=nN(n)?n:null;return await Promise.all(t.map((e,t)=>e.walkAsync(r[t],(e,t)=>(t=tF.dereference(t,e),"address"===e)?r3(t,a):t)))}let nS=Symbol.for("_ethersInternal_contract"),nU=new WeakMap;function nD(e){return nU.get(e[nS])}async function nF(e,t){let r,n=null;if(Array.isArray(t)){let n=function(t){if(Q(t,32))return t;let r=e.interface.getEvent(t);return L(r,"unknown fragment","name",t),r.topicHash};r=t.map(e=>null==e?null:Array.isArray(e)?e.map(n):n(e))}else if("*"===t)r=[null];else if("string"==typeof t)Q(t,32)?r=[t]:(L(n=e.interface.getEvent(t),"unknown fragment","event",t),r=[n.topicHash]);else t&&"object"==typeof t&&"getTopicFilter"in t&&"function"==typeof t.getTopicFilter&&t.fragment?r=await t.getTopicFilter():"fragment"in t?r=[(n=t.fragment).topicHash]:L(!1,"unknown event name","event",t);return{fragment:n,tag:(r=r.map(e=>{if(null==e)return null;if(Array.isArray(e)){let t=Array.from(new Set(e.map(e=>e.toLowerCase())).values());return 1===t.length?t[0]:(t.sort(),t)}return e.toLowerCase()})).map(e=>null==e?"null":Array.isArray(e)?e.join("|"):e).join("&"),topics:r}}async function nL(e,t){let{subs:r}=nD(e);return r.get((await nF(e,t)).tag)||null}async function nM(e,t,r){let n=nO(e.runner);F(n,"contract runner does not support subscribing","UNSUPPORTED_OPERATION",{operation:t});let{fragment:a,tag:i,topics:s}=await nF(e,r),{addr:o,subs:l}=nD(e),c=l.get(i);if(!c){let t={address:o||e,topics:s},u=t=>{let n=a;if(null==n)try{n=e.interface.getEvent(t.topics[0])}catch(e){}if(n){let i=n,s=a?e.interface.decodeEventLog(a,t.data,t.topics):[];nV(e,r,s,n=>new nA(e,n,r,i,t))}else nV(e,r,[],n=>new nw(e,n,r,t))},f=[];c={tag:i,listeners:[],start:()=>{f.length||f.push(n.on(t,u))},stop:async()=>
1{if(0==f.length)return;let e=f;f=[],await Promise.all(e),n.off(t,u)}},l.set(i,c)}return c}let nG=Promise.resolve();async function nj(e,t,r,n){await nG;let a=await nL(e,t);if(!a)return!1;let i=a.listeners.length;return a.listeners=a.listeners.filter(({listener:t,once:a})=>{let i=Array.from(r);n&&i.push(n(a?null:t));try{t.call(e,...i)}catch(e){}return!a}),0===a.listeners.length&&(a.stop(),nD(e).subs.delete(a.tag)),i>0}async function nV(e,t,r,n){try{await nG}catch(e){}let a=nj(e,t,r,n);return nG=a,await a}let nH=["then"];class nz{target;interface;runner;filters;[nS];fallback;constructor(e,t,r,n){let a;L("string"==typeof e||r0(e),"invalid value for Contract target","target",e),null==r&&(r=null);const i=rq.from(t);C(this,{target:e,runner:r,interface:i}),Object.defineProperty(this,nS,{value:{}});let s=null,o=null;if(n){const e=nO(r);o=new ny(this.interface,e,n)}let l=new Map;if("string"==typeof e)if(Q(e))s=e,a=Promise.resolve(e);else{const t=nT(r,"resolveName");if(!nN(t))throw D("contract runner does not support name resolution","UNSUPPORTED_OPERATION",{operation:"resolveName"});a=t.resolveName(e).then(t=>{if(null==t)throw D("an ENS name used for a contract target must be correctly configured","UNCONFIGURED_NAME",{value:e});return nD(this).addr=t,t})}else a=e.getAddress().then(e=>{if(null==e)throw Error("TODO");return nD(this).addr=e,e});return!function(e,t){nU.set(e[nS],t)}(this,{addrPromise:a,addr:s,deployTx:o,subs:l}),C(this,{filters:new Proxy({},{get:(e,t,r)=>{if("symbol"==typeof t||nH.indexOf(t)>=0)return Reflect.get(e,t,r);try{return this.getEvent(t)}catch(e){if(!S(e,"INVALID_ARGUMENT")||"key"!==e.argument)throw e}},has:(e,t)=>nH.indexOf(t)>=0?Reflect.has(e,t):Reflect.has(e,t)||this.interface.hasEvent(String(t))})}),C(this,{fallback:i.receive||i.fallback?function(e){let t=async function(t){let r=await nC(t,["data"]);r.to=await e.getAddress(),r.from&&(r.from=await r3(r.from,nR(e.runner)));let n=e.interface,a=ep(r.value||nv,"overrides.value")===nv,i="0x"===(r.data||"0x");return!n.fallback||n.fallback.payable||!n.receive||i||a||L(!1,"cannot send data to receive or send value to non-payable fallback","overrides",t),L(n.fallback||i,"cannot send data to receive-only contract","overrides.data",r.data),L(n.receive||n.fallback&&n.fallback.payable||a,"cannot send value to non-payable fallback","overrides.value",r.value),L(n.fallback||i,"cannot send data to receive-only contract","overrides.data",r.data),r},r=async function(r){let n=nT(e.runner,"call");F(nE(n),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});let a=await t(r);try{return await n.call(a)}catch(t){if(U(t)&&t.data)throw e.interface.makeError(t.data,a);throw t}},n=async function(r){let n=e.runner;F(nP(n),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});let a=await n.sendTransaction(await t(r)),i=nO(e.runner);return new ny(e.interface,i,a)},a=async function(r){let n=nT(e.runner,"estimateGas");return F(nk(n),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await n.estimateGas(await t(r))},i=async e=>await n(e);return C(i,{_contract:e,estimateGas:a,populateTransaction:t,send:n,staticCall:r}),i}(this):null}),new Proxy(this,{get:(e,t,r)=>{if("symbol"==typeof t||t in e||nH.indexOf(t)>=0)return Reflect.get(e,t,r);try{return e.getFunction(t)}catch(e){if(!S(e,"INVALID_ARGUMENT")||"key"!==e.argument)throw e}},has:(e,t)=>"symbol"==typeof t||t in e||nH.indexOf(t)>=0?Reflect.has(e,t):e.interface.hasFunction(t)})}connect(e){return new nz(this.target,this.interface,e)}attach(e){return new nz(e,this.interface,this.runner)}async getAddress(){return await nD(this).addrPromise}async getDeployedCode(){let e=nO(this.runner);F(e,"runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"getDeployedCode"});let t=await e.getCode(await this.getAddress());return"0x"===t?null:t}async waitForDeployment(){let e=this.deploymentTransaction();
1if(e)return await e.wait(),this;if(null!=await this.getDeployedCode())return this;let t=nO(this.runner);return F(null!=t,"contract runner does not support .provider","UNSUPPORTED_OPERATION",{operation:"waitForDeployment"}),new Promise((e,r)=>{let n=async()=>{try{let r=await this.getDeployedCode();if(null!=r)return e(this);t.once("block",n)}catch(e){r(e)}};n()})}deploymentTransaction(){return nD(this).deployTx}getFunction(e){var t,r;let n,a,i,s,o,l,c;return"string"!=typeof e&&(e=e.format()),t=this,r=e,n=function(...e){let n=t.interface.getFunction(r,e);return F(n,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:r,args:e}}),n},a=async function(...e){let r=n(...e),a={};if(r.inputs.length+1===e.length&&(a=await nC(e.pop())).from&&(a.from=await r3(a.from,nR(t.runner))),r.inputs.length!==e.length)throw Error("internal error: fragment inputs doesn't match arguments; should not happen");let i=await nB(t.runner,r.inputs,e);return Object.assign({},a,await O({to:t.getAddress(),data:t.interface.encodeFunctionData(r,i)}))},i=async function(...e){let t=await l(...e);return 1===t.length?t[0]:t},s=async function(...e){let r=t.runner;F(nP(r),"contract runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});let n=await r.sendTransaction(await a(...e)),i=nO(t.runner);return new ny(t.interface,i,n)},o=async function(...e){let r=nT(t.runner,"estimateGas");return F(nk(r),"contract runner does not support gas estimation","UNSUPPORTED_OPERATION",{operation:"estimateGas"}),await r.estimateGas(await a(...e))},l=async function(...e){let r=nT(t.runner,"call");F(nE(r),"contract runner does not support calling","UNSUPPORTED_OPERATION",{operation:"call"});let i=await a(...e),s="0x";try{s=await r.call(i)}catch(e){if(U(e)&&e.data)throw t.interface.makeError(e.data,i);throw e}let o=n(...e);return t.interface.decodeFunctionResult(o,s)},C(c=async(...e)=>n(...e).constant?await i(...e):await s(...e),{name:t.interface.getFunctionName(r),_contract:t,_key:r,getFragment:n,estimateGas:o,populateTransaction:a,send:s,staticCall:i,staticCallResult:l}),Object.defineProperty(c,"fragment",{configurable:!1,enumerable:!0,get:()=>{let e=t.interface.getFunction(r);return F(e,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:r}}),e}}),c}getEvent(e){var t,r;let n,a;return"string"!=typeof e&&(e=e.format()),t=this,r=e,n=function(...e){let n=t.interface.getEvent(r,e);return F(n,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:r,args:e}}),n},C(a=function(...e){return new nI(t,n(...e),e)},{name:t.interface.getEventName(r),_contract:t,_key:r,getFragment:n}),Object.defineProperty(a,"fragment",{configurable:!1,enumerable:!0,get:()=>{let e=t.interface.getEvent(r);return F(e,"no matching fragment","UNSUPPORTED_OPERATION",{operation:"fragment",info:{key:r}}),e}}),a}async queryTransaction(e){throw Error("@TODO")}async queryFilter(e,t,r){null==t&&(t=0),null==r&&(r="latest");let{addr:n,addrPromise:a}=nD(this),i=n||await a,{fragment:s,topics:o}=await nF(this,e),l={address:i,topics:o,fromBlock:t,toBlock:r},c=nO(this.runner);return F(c,"contract runner does not have a provider","UNSUPPORTED_OPERATION",{operation:"queryFilter"}),(await c.getLogs(l)).map(e=>{let t=s;if(null==t)try{t=this.interface.getEvent(e.topics[0])}catch(e){}if(t)try{return new nb(e,this.interface,t)}catch(t){return new ng(e,t)}return new nu(e,c)})}async on(e,t){let r=await nM(this,"on",e);return r.listeners.push({listener:t,once:!1}),r.start(),this}async once(e,t){let r=await nM(this,"once",e);return r.listeners.push({listener:t,once:!0}),r.start(),this}async emit(e,...t){return await nV(this,e,t,null)}async listenerCount(e){if(e){let t=await nL(this,e);return t?t.listeners.length:0}let{subs:t}=nD(this),r=0;for(let{listeners:e}of t.values())r+=e.length;return r}async listeners(e){if(e){let t=await nL(this,e);return t?t.listeners.map(({listener:e})=>e):[]}let{subs:t}=nD(this),r=[];for(let{listeners:e}of t.values())r=r.concat(e.map(({listener:e})=>e));return r}async off(e,t){let r=await nL(this,e);if(!r)return this;if(t){let e=r.listeners.map(({listener:e})=>e).indexOf(t);e>=0&&r.listeners.splice(e,1)}return(null==t||0===r.listeners.length)&&(r.stop(),nD(this).subs.delete(r.tag)),this}async removeAllListeners(e){if(e){let t=await nL(this,e);if(!t)return this;t.stop(),nD(this).subs.delete(t.tag)}else{let{subs:e}=nD(this);for(let{tag:t,stop:r}of e.values())r(),e.delete(t)}return this}async addListener(e,t){return await this.on(e,t)}async removeListener(e,t){return await this.off(e,t)}static buildClass(e){return class extends nz{constructor(t,r=null){super(t,e,r)}}}static from(e,t,r){return null==r&&(r=null),new this(e,t,r)}}function nK(){return nz}class nQ extends nK(){}class n_{interface;bytecode;runner;constructor(e,t,r){const n=rq.from(e);t instanceof Uint8Array||("object"==typeof t&&(t=t.object),t.startsWith("0x")||(t="0x"+t)),C(this,{bytecode:t=q(z(t)),interface:n,runner:r||null})}attach(e){return new nz(e,this.interface,this.runner)}async getDeployTransaction(...e){let t={},r=this.interface.deploy;if(r.inputs.length+1===e.length&&(t=await nC(e.pop())),r.inputs.length!==e.length)throw Error("incorrect number of arguments to constructor");
1let n=await nB(this.runner,r.inputs,e);return Object.assign({},t,{data:W([this.bytecode,this.interface.encodeDeploy(n)])})}async deploy(...e){let t=await this.getDeployTransaction(...e);F(this.runner&&"function"==typeof this.runner.sendTransaction,"factory runner does not support sending transactions","UNSUPPORTED_OPERATION",{operation:"sendTransaction"});let r=await this.runner.sendTransaction(t);return new nz(rX(r),this.interface,this.runner,r)}connect(e){return new n_(this.interface,this.bytecode,e)}static fromSolidity(e,t){L(null!=e,"bad compiler output","output",e),"string"==typeof e&&(e=JSON.parse(e));let r=e.abi,n="";return e.bytecode?n=e.bytecode:e.evm&&e.evm.bytecode&&(n=e.evm.bytecode),new this(r,n,t)}}class nJ extends te{constructor(e,t){super(),this.finished=!1,this.destroyed=!1,eM(e);const r=e7(t);if(this.iHash=e.create(),"function"!=typeof this.iHash.update)throw Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const n=this.blockLen,a=new Uint8Array(n);a.set(r.length>n?e.create().update(r).digest():r);for(let e=0;e<a.length;e++)a[e]^=54;this.iHash.update(a),this.oHash=e.create();for(let e=0;e<a.length;e++)a[e]^=106;this.oHash.update(a),a.fill(0)}update(e){return eG(this),this.iHash.update(e),this}digestInto(e){eG(this),eL(e,this.outputLen),this.finished=!0,this.iHash.digestInto(e),this.oHash.update(e),this.oHash.digestInto(e),this.destroy()}digest(){let e=new Uint8Array(this.oHash.outputLen);return this.digestInto(e),e}_cloneInto(e){e||(e=Object.create(Object.getPrototypeOf(this),{}));let{oHash:t,iHash:r,finished:n,destroyed:a,blockLen:i,outputLen:s}=this;return e.finished=n,e.destroyed=a,e.blockLen=i,e.outputLen=s,e.oHash=t._cloneInto(e.oHash),e.iHash=r._cloneInto(e.iHash),e}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}let nq=(e,t,r)=>new nJ(e,t).update(r).digest();function nW(e,t,r,n){var a;let i,{c:s,dkLen:o,DK:l,PRF:c,PRFSalt:u}=function(e,t,r,n){eM(e);let{c:a,dkLen:i,asyncTick:s}=tr({dkLen:32,asyncTick:10},n);if(eF(a),eF(i),eF(s),a<1)throw Error("PBKDF2: iterations (c) should be >= 1");let o=e7(t),l=e7(r),c=new Uint8Array(i),u=nq.create(e,o),f=u._cloneInto().update(l);return{c:a,dkLen:i,asyncTick:s,DK:c,PRF:u,PRFSalt:f}}(e,t,r,n),f=new Uint8Array(4),d=e8(f),h=new Uint8Array(c.outputLen);for(let e=1,t=0;t<o;e++,t+=c.outputLen){let r=l.subarray(t,t+c.outputLen);d.setInt32(0,e,!1),(i=u._cloneInto(i)).update(f).digestInto(h),r.set(h.subarray(0,r.length));for(let e=1;e<s;e++){c._cloneInto(i).update(h).digestInto(h);for(let e=0;e<r.length;e++)r[e]^=h[e]}}return a=i,c.destroy(),u.destroy(),a&&a.destroy(),h.fill(0),l}nq.create=(e,t)=>new nJ(e,t);class nZ extends te{constructor(e,t,r,n){super(),this.blockLen=e,this.outputLen=t,this.padOffset=r,this.isLE=n,this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.buffer=new Uint8Array(e),this.view=e8(this.buffer)}update(e){eG(this);let{view:t,buffer:r,blockLen:n}=this,a=(e=e7(e)).length;for(let i=0;i<a;){let s=Math.min(n-this.pos,a-i);if(s===n){let t=e8(e);for(;n<=a-i;i+=n)this.process(t,i);continue}r.set(e.subarray(i,i+s),this.pos),this.pos+=s,i+=s,this.pos===n&&(this.process(t,0),this.pos=0)}return this.length+=e.length,this.roundClean(),this}digestInto(e){eG(this),ej(e,this),this.finished=!0;let{buffer:t,view:r,blockLen:n,isLE:a}=this,{pos:i}=this;t[i++]=128,this.buffer.subarray(i).fill(0),this.padOffset>n-i&&(this.process(r,0),i=0);for(let e=i;e<n;e++)t[e]=0;!function(e,t,r,n){if("function"==typeof e.setBigUint64)return e.setBigUint64(t,r,n);let a=BigInt(32),i=BigInt(0xffffffff),s=Number(r>>a&i),o=Number(r&i),l=4*!!n,c=4*!n;e.setUint32(t+l,s,n),e.setUint32(t+c,o,n)}(r,n-8,BigInt(8*this.length),a),this.process(r,0);let s=e8(e),o=this.outputLen;if(o%4)throw Error("_sha2: outputLen should be aligned to 32bit");let l=o/4,c=this.get();if(l>c.length)throw Error("_sha2: outputLen bigger than state");for(let e=0;e<l;e++)s.setUint32(4*e,c[e],a)}digest(){let{buffer:e,outputLen:t}=this;this.digestInto(e);let r=e.slice(0,t);return this.destroy(),r}_cloneInto(e){e||(e=new this.constructor),e.set(...this.get());let{blockLen:t,buffer:r,length:n,finished:a,destroyed:i,pos:s}=this;return e.length=n,e.pos=s,e.finished=a,e.destroyed=i,n%t&&e.buffer.set(r),e}}let nY=(e,t,r)=>e&t^~e&r,nX=(e,t,r)=>e&t^e&r^t&r,n$=new Uint32Array([0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,0xe49b69c1,0xefbe4786,0xfc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7,0xc6e00bf3,0xd5a79147,0x6ca6351,0x14292967,0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13,0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85,0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc
176c51a3,0xd192e819,0xd6990624,0xf40e3585,0x106aa070,0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5,0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3,0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208,0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2]),n0=new Uint32Array([0x6a09e667,0xbb67ae85,0x3c6ef372,0xa54ff53a,0x510e527f,0x9b05688c,0x1f83d9ab,0x5be0cd19]),n1=new Uint32Array(64);class n2 extends nZ{constructor(){super(64,32,8,!1),this.A=0|n0[0],this.B=0|n0[1],this.C=0|n0[2],this.D=0|n0[3],this.E=0|n0[4],this.F=0|n0[5],this.G=0|n0[6],this.H=0|n0[7]}get(){let{A:e,B:t,C:r,D:n,E:a,F:i,G:s,H:o}=this;return[e,t,r,n,a,i,s,o]}set(e,t,r,n,a,i,s,o){this.A=0|e,this.B=0|t,this.C=0|r,this.D=0|n,this.E=0|a,this.F=0|i,this.G=0|s,this.H=0|o}process(e,t){for(let r=0;r<16;r++,t+=4)n1[r]=e.getUint32(t,!1);for(let e=16;e<64;e++){let t=n1[e-15],r=n1[e-2],n=e5(t,7)^e5(t,18)^t>>>3,a=e5(r,17)^e5(r,19)^r>>>10;n1[e]=a+n1[e-7]+n+n1[e-16]|0}let{A:r,B:n,C:a,D:i,E:s,F:o,G:l,H:c}=this;for(let e=0;e<64;e++){let t=c+(e5(s,6)^e5(s,11)^e5(s,25))+nY(s,o,l)+n$[e]+n1[e]|0,u=(e5(r,2)^e5(r,13)^e5(r,22))+nX(r,n,a)|0;c=l,l=o,o=s,s=i+t|0,i=a,a=n,n=r,r=t+u|0}r=r+this.A|0,n=n+this.B|0,a=a+this.C|0,i=i+this.D|0,s=s+this.E|0,o=o+this.F|0,l=l+this.G|0,c=c+this.H|0,this.set(r,n,a,i,s,o,l,c)}roundClean(){n1.fill(0)}destroy(){this.set(0,0,0,0,0,0,0,0),this.buffer.fill(0)}}let n3=tn(()=>new n2),[n4,n8]=ez(["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","0xf40e3585
15771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),n5=new Uint32Array(80),n6=new Uint32Array(80);class n9 extends nZ{constructor(){super(128,64,16,!1),this.Ah=0x6a09e667,this.Al=-0xc4336f8,this.Bh=-0x4498517b,this.Bl=-0x7b3558c5,this.Ch=0x3c6ef372,this.Cl=-0x16b07d5,this.Dh=-0x5ab00ac6,this.Dl=0x5f1d36f1,this.Eh=0x510e527f,this.El=-0x52197d2f,this.Fh=-0x64fa9774,this.Fl=0x2b3e6c1f,this.Gh=0x1f83d9ab,this.Gl=-0x4be4295,this.Hh=0x5be0cd19,this.Hl=0x137e2179}get(){let{Ah:e,Al:t,Bh:r,Bl:n,Ch:a,Cl:i,Dh:s,Dl:o,Eh:l,El:c,Fh:u,Fl:f,Gh:d,Gl:h,Hh:x,Hl:p}=this;return[e,t,r,n,a,i,s,o,l,c,u,f,d,h,x,p]}set(e,t,r,n,a,i,s,o,l,c,u,f,d,h,x,p){this.Ah=0|e,this.Al=0|t,this.Bh=0|r,this.Bl=0|n,this.Ch=0|a,this.Cl=0|i,this.Dh=0|s,this.Dl=0|o,this.Eh=0|l,this.El=0|c,this.Fh=0|u,this.Fl=0|f,this.Gh=0|d,this.Gl=0|h,this.Hh=0|x,this.Hl=0|p}process(e,t){for(let r=0;r<16;r++,t+=4)n5[r]=e.getUint32(t),n6[r]=e.getUint32(t+=4);for(let e=16;e<80;e++){let t=0|n5[e-15],r=0|n6[e-15],n=e_(t,r,1)^e_(t,r,8)^eK(t,r,7),a=eJ(t,r,1)^eJ(t,r,8)^eQ(t,r,7),i=0|n5[e-2],s=0|n6[e-2],o=e_(i,s,19)^eq(i,s,61)^eK(i,s,6),l=e$(a,eJ(i,s,19)^eW(i,s,61)^eQ(i,s,6),n6[e-7],n6[e-16]),c=e0(l,n,o,n5[e-7],n5[e-16]);n5[e]=0|c,n6[e]=0|l}let{Ah:r,Al:n,Bh:a,Bl:i,Ch:s,Cl:o,Dh:l,Dl:c,Eh:u,El:f,Fh:d,Fl:h,Gh:x,Gl:p,Hh:b,Hl:g}=this;for(let e=0;e<80;e++){let t=e_(u,f,14)^e_(u,f,18)^eq(u,f,41),m=eJ(u,f,14)^eJ(u,f,18)^eW(u,f,41),y=u&d^~u&x,w=e2(g,m,f&h^~f&p,n8[e],n6[e]),A=e1(w,b,t,y,n4[e],n5[e]),v=0|w,E=e_(r,n,28)^eq(r,n,34)^eq(r,n,39),k=eJ(r,n,28)^eW(r,n,34)^eW(r,n,39),N=r&a^r&s^a&s,P=n&i^n&o^i&o;b=0|x,g=0|p,x=0|d,p=0|h,d=0|u,h=0|f,({h:u,l:f}=eZ(0|l,0|c,0|A,0|v)),l=0|s,c=0|o,s=0|a,o=0|i,a=0|r,i=0|n;let R=eY(v,k,P);r=eX(R,A,E,N),n=0|R}({h:r,l:n}=eZ(0|this.Ah,0|this.Al,0|r,0|n)),({h:a,l:i}=eZ(0|this.Bh,0|this.Bl,0|a,0|i)),({h:s,l:o}=eZ(0|this.Ch,0|this.Cl,0|s,0|o)),({h:l,l:c}=eZ(0|this.Dh,0|this.Dl,0|l,0|c)),({h:u,l:f}=eZ(0|this.Eh,0|this.El,0|u,0|f)),({h:d,l:h}=eZ(0|this.Fh,0|this.Fl,0|d,0|h)),({h:x,l:p}=eZ(0|this.Gh,0|this.Gl,0|x,0|p)),({h:b,l:g}=eZ(0|this.Hh,0|this.Hl,0|b,0|g)),this.set(r,n,a,i,s,o,l,c,u,f,d,h,x,p,b,g)}roundClean(){n5.fill(0),n6.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)}}let n7=tn(()=>new n9),ae="u">typeof self?self:"u">typeof window?window:e.g,at=ae.crypto||ae.msCrypto;function ar(e){switch(e){case"sha256":return n3.create();case"sha512":return n7.create()}L(!1,"invalid hashing algorithm name","algorithm",e)}let an=!1,aa=function(e,t,r){let n;return(L(null!=(n=({sha256:n3,sha512:n7})[e]),"invalid hmac algorithm","algorithm",e),nq.create(n,t)).update(r).digest()},ai=aa;function as(e,t,r){let n=z(t,"key"),a=z(r,"data");return q(ai(e,n,a))}as._=aa,as.lock=function(){an=!0},as.register=function(e){if(an)throw Error("computeHmac is locked");ai=e},Object.freeze(as);let ao=!1,al=function(e){let t;return new Uint8Array((F(null!=at,"platform does not support secure random numbers","UNSUPPORTED_OPERATION",{operation:"randomBytes"}),L(Number.isInteger(e)&&e>0&&e<=1024,"invalid length","length",e),t=new Uint8Array(e),at.getRandomValues(t),t))},ac=al;function au(e){return ac(e)}au._=al,au.lock=function(){ao=!0},au.register=function(e){if(ao)throw Error("randomBytes is locked");ac=e},Object.freeze(au);let af=new Uint8Array([7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8]),ad=Uint8Array.from({length:16},(e,t)=>t),ah=ad.map(e=>(9*e+5)%16),ax=[ad],ap=[ah];for(let e=0;e<4;e++)for(let t of[ax,ap])t.push(t[e].map(e=>af[e]));let ab=[[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8],[12,13,11,15,6,9,9,7,12,15,11,13,7,8,7,7],[13,15,14,11,7,7,6,8,13,14,13,12,5,5,6,9],[14,11,12,14,8,6,5,5,15,12,15,14,9,9,8,6],[15,12,13,13,9,5,8,6,14,11,12,11,8,6,5,5]].map(e=>new Uint8Array(e)),ag=ax.map((e,t)=>e.map(e=>ab[t][e])),am=ap.map((e,t)=>e.map(e=>ab[t][e])),ay=new Uint32Array([0,0x5a827999,0x6ed9eba1,0x8f1bbcdc,0xa953fd4e]),aw=new Uint32Array([0x50a28be6,0x5c4dd124,0x6d703ef3,0x7a6d76e9,0]),aA=(e,t)=>e<<t|e>>>32-t;function av(e,t,r,n){return 0===e?t^r^n:1===e?t&r|~t&n:2===e?(t|~r)^n:3===e?t&n|r&~n:t^(r|~n)}let aE=new Uint32Array(16);class ak extends nZ{constructor(){super(64,20,8,!0),this.h0=0x67452301,this.h1=-0x10325477,this.h2=-0x67452302,this.h3=0x10325476,this.h4=-0x3c2d1e10}get(){let{h0:e,h1:t,h2:r,h3:n,h4:a}=this;return[e,t,r,n,a]}set(e,t,r,n,a){this.h0=0|e,this.h1=0|t,this.h2=0|r,this.h3=0|n,this.h4=0|a}process(e,t){for(let r=0;r<16;r++,t+=4)aE[r]=e.getUint32(t,!0);let r=0|this.h0,n=r,a=0|this.h1,i=a,s=0|this.h2,o=s,l=0|this.h3,c=l,u=0|this.h4,f=u;for(let e=0;e<5;e++){let t=4-e,d=ay[e],h=aw[e],x=ax[e],p=ap[e],b=ag[e],g=am[e];for(let t=0;t<16;t++){let n=aA(r+av(e,a,s,l)+aE[x[t]]+d,b[t])+u|0;r=u,u=l,l=0|aA(s,10),s=a,a=n}for(let e=0;e<16;e++){let r=aA(n+av(t,i,o,c)+aE[p[e]]+h,g[e])+f|0;n=f,f=c,c=0|aA(o,10),o=i,i=r}}this.set(this.h1+s+c|0,this.h2+l+f|0,this.h3+u+n|0,this.h4+r+i|0,this.h0+a+o|0)}roundClean(){aE.fill(0)}destroy(){this.destroyed=!0,this.buffer.fill(0),this.set(0,0,0,0,0)}}let aN=tn(()=>new ak),aP=!1,aR=function(e){return aN(e)},aI=aR;function aT(e){let t=z(e,"data");return q(aI(t))}aT._=aR,aT.lock=function(){aP=!0},aT.register=function(e){if(aP)throw TypeError("ripemd160 is locked");aI=e},Object.freeze(aT);let aO=function(e){return ar("sha256").update(e).digest()},aC=function(e){return ar("sha512").update(e).digest()},aB=aO,aS=aC,aU=!1,aD=!1;function aF(e){let t=z(e,"data");return q(aB(t))}function aL(e){let t=z(e,"data");return q(aS(t))}aF._=aO,aF.lock=function(){aU=!0},aF.register=function(e){if(aU)throw Error("sha256 is locked");aB=e},Object.freeze(aF),aL._=aC,aL.lock=function(){aD=!0},aL.register=function(e){if(aD)throw Error("sha512 is locked");aS=e},Object.freeze(aF);let aM=!1,aG=function(e,t,r,n,a){let i;return L(null!=(i=({sha256:n3,sha512:n7})[a]),"invalid pbkdf2 algorithm","algorithm",a),nW(i,e,t,{c:r,dkLen:n})},aj=aG;function aV(e,t,r,n,a){let i=z(e,"password"),s=z(t,"salt");return q(aj(i,s,r,n,a))}aV._=aG,aV.lock=function(){aM=!0},aV.register=function(e){if(aM)throw Error("pbkdf2 is locked");aj=e},Object.freeze(aV);let aH=(e,t)=>e<<t|e>>>32-t;function az(e,t,r,n,a,i){let s=e[t++]^r[n++],o=e[t++]^r[n++],l=e[t++]^r[n++],c=e[t++]^r[n++],u=e[t++]^r[n++],f=e[t++]^r[n++],d=e[t++]^r[n++],h=e[t++]^r[n++],x=e[t++]^r[n++],p=e[t++]^r[n++],b=e[t++]^r[n++],g=e[t++]^r[n++],m=e[t++]^r[n++],y=e[t++]^r[n++],w=e[t++]^r[n++],A=e[t++]^r[n++],v=s,E=o,k=l,N=c,P=u,R=f,I=d,T=h,O=x,C=p,B=b,S=g,U=m,D=y,F=w,L=A;for(let e=0;e<8;e+=2)P^=aH(v+U|0,7),O^=aH(P+v|0,9),U^=aH(O+P|0,13),v^=aH(U+O|0,18),C^=aH(R+E|0,7),D^=aH(C+R|0,9),E^=aH(D+C|0,13),R^=aH(E+D|0,18),F^=aH(B+I|0,7),
1k^=aH(F+B|0,9),I^=aH(k+F|0,13),B^=aH(I+k|0,18),N^=aH(L+S|0,7),T^=aH(N+L|0,9),S^=aH(T+N|0,13),L^=aH(S+T|0,18),E^=aH(v+N|0,7),k^=aH(E+v|0,9),N^=aH(k+E|0,13),v^=aH(N+k|0,18),I^=aH(R+P|0,7),T^=aH(I+R|0,9),P^=aH(T+I|0,13),R^=aH(P+T|0,18),S^=aH(B+C|0,7),O^=aH(S+B|0,9),C^=aH(O+S|0,13),B^=aH(C+O|0,18),U^=aH(L+F|0,7),D^=aH(U+L|0,9),F^=aH(D+U|0,13),L^=aH(F+D|0,18);a[i++]=s+v|0,a[i++]=o+E|0,a[i++]=l+k|0,a[i++]=c+N|0,a[i++]=u+P|0,a[i++]=f+R|0,a[i++]=d+I|0,a[i++]=h+T|0,a[i++]=x+O|0,a[i++]=p+C|0,a[i++]=b+B|0,a[i++]=g+S|0,a[i++]=m+U|0,a[i++]=y+D|0,a[i++]=w+F|0,a[i++]=A+L|0}function aK(e,t,r,n,a){let i=n+0,s=n+16*a;for(let n=0;n<16;n++)r[s+n]=e[t+(2*a-1)*16+n];for(let n=0;n<a;n++,i+=16,t+=16)az(r,s,e,t,r,i),n>0&&(s+=16),az(r,i,e,t+=16,r,s)}function aQ(e,t,r){let{N:n,r:a,p:i,dkLen:s,asyncTick:o,maxmem:l,onProgress:c}=tr({dkLen:32,asyncTick:10,maxmem:0x40000400},r);if(eF(n),eF(a),eF(i),eF(s),eF(o),eF(l),void 0!==c&&"function"!=typeof c)throw Error("progressCb should be function");let u=128*a,f=u/4;if(n<=1||(n&n-1)!=0||n>=2**(u/8)||n>0x100000000)throw Error("Scrypt: N must be larger than 1, a power of 2, less than 2^(128 * r / 8) and less than 2^32");if(i<0||i>(0x100000000-1)*32/u)throw Error("Scrypt: p must be a positive integer less than or equal to ((2^32 - 1) * 32) / (128 * r)");if(s<0||s>(0x100000000-1)*32)throw Error("Scrypt: dkLen should be positive integer less than or equal to (2^32 - 1) * 32");let d=u*(n+i);if(d>l)throw Error(`Scrypt: parameters too large, ${d} (128 * r * (N + p)) > ${l} (maxmem)`);let h=nW(n3,e,t,{c:1,dkLen:u*i}),x=e4(h),p=e4(new Uint8Array(u*n)),b=e4(new Uint8Array(u)),g=()=>{};if(c){let e=2*n*i,t=Math.max(Math.floor(e/1e4),1),r=0;g=()=>{r++,c&&(!(r%t)||r===e)&&c(r/e)}}return{N:n,r:a,p:i,dkLen:s,blockSize32:f,V:p,B32:x,B:h,tmp:b,blockMixCb:g,asyncTick:o}}function a_(e,t,r,n,a){let i=nW(n3,e,r,{c:1,dkLen:t});return r.fill(0),n.fill(0),a.fill(0),i}async function aJ(e,t,r){let{N:n,r:a,p:i,dkLen:s,blockSize32:o,V:l,B32:c,B:u,tmp:f,blockMixCb:d,asyncTick:h}=aQ(e,t,r);for(let e=0;e<i;e++){let t=o*e;for(let e=0;e<o;e++)l[e]=c[t+e];let r=0;await e9(n-1,h,()=>{aK(l,r,l,r+=o,a),d()}),aK(l,(n-1)*o,c,t,a),d(),await e9(n,h,()=>{let e=c[t+o-16]%n;for(let r=0;r<o;r++)f[r]=c[t+r]^l[e*o+r];aK(f,0,c,t,a),d()})}return a_(e,s,u,l,f)}let aq=!1,aW=!1,aZ=async function(e,t,r,n,a,i,s){return await aJ(e,t,{N:r,r:n,p:a,dkLen:i,onProgress:s})},aY=function(e,t,r,n,a,i){return function(e,t,r){let{N:n,r:a,p:i,dkLen:s,blockSize32:o,V:l,B32:c,B:u,tmp:f,blockMixCb:d}=aQ(e,t,r);for(let e=0;e<i;e++){let t=o*e;for(let e=0;e<o;e++)l[e]=c[t+e];for(let e=0,t=0;e<n-1;e++)aK(l,t,l,t+=o,a),d();aK(l,(n-1)*o,c,t,a),d();for(let e=0;e<n;e++){let e=c[t+o-16]%n;for(let r=0;r<o;r++)f[r]=c[t+r]^l[e*o+r];aK(f,0,c,t,a),d()}}return a_(e,s,u,l,f)}(e,t,{N:r,r:n,p:a,dkLen:i})},aX=aZ,a$=aY;async function a0(e,t,r,n,a,i,s){let o=z(e,"passwd"),l=z(t,"salt");return q(await aX(o,l,r,n,a,i,s))}function a1(e,t,r,n,a,i){let s=z(e,"passwd"),o=z(t,"salt");return q(a$(s,o,r,n,a,i))}function a2(){as.lock(),tE.lock(),aV.lock(),au.lock(),aT.lock(),a0.lock(),a1.lock(),aF.lock(),aL.lock(),au.lock()}a0._=aZ,a0.lock=function(){aW=!0},a0.register=function(e){if(aW)throw Error("scrypt is locked");aX=e},Object.freeze(a0),a1._=aY,a1.lock=function(){aq=!0},a1.register=function(e){if(aq)throw Error("scryptSync is locked");a$=e},Object.freeze(a1);let a3=BigInt(0),a4=BigInt(1),a8=BigInt(2),a5=BigInt(27),a6=BigInt(28),a9=BigInt(35),a7=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),ie=a7/a8,it=Symbol.for("nodejs.util.inspect.custom"),ir={};function ia(e){return ee(ev(e),32)}class ii{#R;#I;#T;#O;get r(){return this.#R}set r(e){L(32===Z(e),"invalid r","value",e),this.#R=q(e)}get s(){return L(8>parseInt(this.#I.substring(0,3)),"non-canonical s; use ._s","s",this.#I),this.#I}set s(e){L(32===Z(e),"invalid s","value",e),this.#I=q(e)}get _s(){return this.#I}isValid(){return BigInt(this.#I)<=ie}get v(){return this.#T}set v(e){let t=ey(e,"value");L(27===t||28===t,"invalid v","v",e),this.#T=t}get networkV(){return this.#O}get legacyChainId(){let e=this.networkV;return null==e?null:ii.getChainId(e)}get yParity(){return+(27!==this.v)}get yParityAndS(){let e=z(this.s);return this.yParity&&(e[0]|=128),q(e)}get compactSerialized(){return W([this.r,this.yParityAndS])}get serialized(){return W([this.r,this.s,this.yParity?"0x1c":"0x1b"])}constructor(e,t,r,n){V(e,ir,"Signature"),this.#R=t,this.#I=r,this.#T=n,this.#O=null}
1getCanonical(){if(this.isValid())return this;let e=a7-BigInt(this._s),t=55-this.v,r=new ii(ir,this.r,ia(e),t);return this.networkV&&(r.#O=this.networkV),r}clone(){let e=new ii(ir,this.r,this._s,this.v);return this.networkV&&(e.#O=this.networkV),e}toJSON(){let e=this.networkV;return{_type:"signature",networkV:null!=e?e.toString():null,r:this.r,s:this._s,v:this.v}}[it](){return this.toString()}toString(){return this.isValid()?`Signature { r: ${this.r}, s: ${this._s}, v: ${this.v} }`:`Signature { r: ${this.r}, s: ${this._s}, v: ${this.v}, valid: false }`}static getChainId(e){let t=ep(e,"v");return t==a5||t==a6?a3:(L(t>=a9,"invalid EIP-155 v","v",e),(t-a9)/a8)}static getChainIdV(e,t){return ep(e)*a8+BigInt(35+t-27)}static getNormalizedV(e){let t=ep(e);return t===a3||t===a5?27:t===a4||t===a6?28:(L(t>=a9,"invalid v","v",e),t&a4?27:28)}static from(e){function t(t,r){L(t,r,"signature",e)}if(null==e)return new ii(ir,ne,ne,27);if("string"==typeof e){let r=z(e,"signature");if(64===r.length){let e=q(r.slice(0,32)),t=r.slice(32,64),n=128&t[0]?28:27;return t[0]&=127,new ii(ir,e,q(t),n)}if(65===r.length){let e=q(r.slice(0,32)),t=q(r.slice(32,64)),n=ii.getNormalizedV(r[64]);return new ii(ir,e,t,n)}t(!1,"invalid raw signature length")}if(e instanceof ii)return e.clone();let r=e.r;t(null!=r,"missing r");let n=ia(r),a=function(e,r){if(null!=e)return ia(e);if(null!=r){t(Q(r,32),"invalid yParityAndS");let e=z(r);return e[0]&=127,q(e)}t(!1,"missing s")}(e.s,e.yParityAndS),{networkV:i,v:s}=function(e,r,n){if(null!=e){let t=ep(e);return{networkV:t>=a9?t:void 0,v:ii.getNormalizedV(t)}}if(null!=r)return t(Q(r,32),"invalid yParityAndS"),{v:128&z(r)[0]?28:27};if(null!=n){switch(ey(n,"sig.yParity")){case 0:return{v:27};case 1:return{v:28}}t(!1,"invalid yParity")}t(!1,"missing v")}(e.v,e.yParityAndS,e.yParity),o=new ii(ir,n,a,s);return i&&(o.#O=i),t(null==e.yParity||ey(e.yParity,"sig.yParity")===o.yParity,"yParity mismatch"),t(null==e.yParityAndS||e.yParityAndS===o.yParityAndS,"yParityAndS mismatch"),o}}let is=BigInt(0),io=BigInt(1),il=BigInt(2),ic=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function iu(e){if(!(e instanceof Uint8Array))throw Error("Uint8Array expected");let t="";for(let r=0;r<e.length;r++)t+=ic[e[r]];return t}function id(e){let t=e.toString(16);return 1&t.length?`0${t}`:t}function ih(e){if("string"!=typeof e)throw Error("hex string expected, got "+typeof e);return BigInt(""===e?"0":`0x${e}`)}function ix(e){if("string"!=typeof e)throw Error("hex string expected, got "+typeof e);let t=e.length;if(t%2)throw Error("padded hex string expected, got unpadded hex of length "+t);let r=new Uint8Array(t/2);for(let t=0;t<r.length;t++){let n=2*t,a=Number.parseInt(e.slice(n,n+2),16);if(Number.isNaN(a)||a<0)throw Error("Invalid byte sequence");r[t]=a}return r}function ip(e){return ih(iu(e))}function ib(e){if(!(e instanceof Uint8Array))throw Error("Uint8Array expected");return ih(iu(Uint8Array.from(e).reverse()))}function ig(e,t){return ix(e.toString(16).padStart(2*t,"0"))}function im(e,t){return ig(e,t).reverse()}function iy(e){return ix(id(e))}function iw(e,t,r){let n;if("string"==typeof t)try{n=ix(t)}catch(r){throw Error(`${e} must be valid hex string, got "${t}". Cause: ${r}`)}else if(t instanceof Uint8Array)n=Uint8Array.from(t);else throw Error(`${e} must be hex string or Uint8Array`);let a=n.length;if("number"==typeof r&&a!==r)throw Error(`${e} expected ${r} bytes, got ${a}`);return n}function iA(...e){let t=new Uint8Array(e.reduce((e,t)=>e+t.length,0)),r=0;return e.forEach(e=>{if(!(e instanceof Uint8Array))throw Error("Uint8Array expected");t.set(e,r),r+=e.length}),t}function iv(e,t){if(e.length!==t.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==t[r])return!1;return!0}function iE(e){if("string"!=typeof e)throw Error(`utf8ToBytes expected string, got ${typeof e}`);return new Uint8Array(new TextEncoder().encode(e))}function ik(e){let t;for(t=0;e>is;e>>=io,t+=1);return t}function iN(e,t){return e>>BigInt(t)&io}let iP=e=>(il<<BigInt(e-1))-io,iR=e=>new Uint8Array(e);function iI(e,t,r){if("number"!=typeof e||e<2)throw Error("hashLen must be a number");if("number"!=typeof t||t<2)throw Error("qByteLen must be a number");if("function"!=typeof r)throw Error("hmacFn must be a function");let n=iR(e),a=iR(e),i=0,s=()=>{n.fill(1),a.fill(0),i=0},o=(...e)=>
1r(a,n,...e),l=(e=iR())=>{let t;if(a=o((t=[0],Uint8Array.from(t)),e),n=o(),0!==e.length){let t;a=o((t=[1],Uint8Array.from(t)),e),n=o()}},c=()=>{if(i++>=1e3)throw Error("drbg: tried 1000 values");let e=0,r=[];for(;e<t;){let t=(n=o()).slice();r.push(t),e+=n.length}return iA(...r)};return(e,t)=>{let r;for(s(),l(e);!(r=t(c()));)l();return s(),r}}let iT={bigint:e=>"bigint"==typeof e,function:e=>"function"==typeof e,boolean:e=>"boolean"==typeof e,string:e=>"string"==typeof e,stringOrUint8Array:e=>"string"==typeof e||e instanceof Uint8Array,isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>"function"==typeof e&&Number.isSafeInteger(e.outputLen)};function iO(e,t,r={}){let n=(t,r,n)=>{let a=iT[r];if("function"!=typeof a)throw Error(`Invalid validator "${r}", expected function`);let i=e[t];if((!n||void 0!==i)&&!a(i,e))throw Error(`Invalid param ${String(t)}=${i} (${typeof i}), expected ${r}`)};for(let[e,r]of Object.entries(t))n(e,r,!1);for(let[e,t]of Object.entries(r))n(e,t,!0);return e}e.s(["bitGet",()=>iN,"bitLen",()=>ik,"bitMask",0,iP,"bitSet",0,(e,t,r)=>e|(r?io:is)<<BigInt(t),"bytesToHex",()=>iu,"bytesToNumberBE",()=>ip,"bytesToNumberLE",()=>ib,"concatBytes",()=>iA,"createHmacDrbg",()=>iI,"ensureBytes",()=>iw,"equalBytes",()=>iv,"hexToBytes",()=>ix,"hexToNumber",()=>ih,"numberToBytesBE",()=>ig,"numberToBytesLE",()=>im,"numberToHexUnpadded",()=>id,"numberToVarBytesBE",()=>iy,"utf8ToBytes",()=>iE,"validateObject",()=>iO],357628);let iC=BigInt(0),iB=BigInt(1),iS=BigInt(2),iU=BigInt(3),iD=BigInt(4),iF=BigInt(5),iL=BigInt(8);function iM(e,t){let r=e%t;return r>=iC?r:t+r}function iG(e,t,r){let n=e;for(;t-- >iC;)n*=n,n%=r;return n}function ij(e,t){if(e===iC||t<=iC)throw Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=iM(e,t),n=t,a=iC,i=iB,s=iB,o=iC;for(;r!==iC;){let e=n/r,t=n%r,l=a-s*e,c=i-o*e;n=r,r=t,a=s,i=o,s=l,o=c}if(n!==iB)throw Error("invert: does not exist");return iM(a,t)}BigInt(9),BigInt(16);let iV=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function iH(e){return iO(e,iV.reduce((e,t)=>(e[t]="function",e),{ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"}))}function iz(e,t){let r=void 0!==t?t:e.toString(2).length,n=Math.ceil(r/8);return{nBitLength:r,nByteLength:n}}function iK(e){if("bigint"!=typeof e)throw Error("field order must be bigint");return Math.ceil(e.toString(2).length/8)}function iQ(e){let t=iK(e);return t+Math.ceil(t/2)}var i_=e.i(357628);let iJ=BigInt(0),iq=BigInt(1);function iW(e){return iH(e.Fp),iO(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...iz(e.n,e.nBitLength),...e,...{p:e.Fp.ORDER}})}let{bytesToNumberBE:iZ,hexToBytes:iY}=i_,iX={Err:class extends Error{constructor(e=""){super(e)}},_parseInt(e){let{Err:t}=iX;if(e.length<2||2!==e[0])throw new t("Invalid signature integer tag");let r=e[1],n=e.subarray(2,r+2);if(!r||n.length!==r)throw new t("Invalid signature integer: wrong length");if(128&n[0])throw new t("Invalid signature integer: negative");if(0===n[0]&&!(128&n[1]))throw new t("Invalid signature integer: unnecessary leading zero");return{d:iZ(n),l:e.subarray(r+2)}},toSig(e){let{Err:t}=iX,r="string"==typeof e?iY(e):e;if(!(r instanceof Uint8Array))throw Error("ui8a expected");let n=r.length;if(n<2||48!=r[0])throw new t("Invalid signature tag");if(r[1]!==n-2)throw new t("Invalid signature: incorrect length");let{d:a,l:i}=iX._parseInt(r.subarray(2)),{d:s,l:o}=iX._parseInt(i);if(o.length)throw new t("Invalid signature: left bytes after parsing");return{r:a,s}},hexFromSig(e){let t=e=>8&Number.parseInt(e[0],16)?"00"+e:e,r=e=>{let t=e.toString(16);return 1&t.length?`0${t}`:t},n=t(r(e.s)),a=t(r(e.r)),i=n.length/2,s=a.length/2,o=r(i),l=r(s);return`30${r(s+i+4)}02${l}${a}02${o}${n}`}},i$=BigInt(0),i0=BigInt(1),i1=BigInt(2),i2=BigInt(3),i3=BigInt(4),i4=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),i8=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),i5=BigInt(1),i6=BigInt(2),i9=(e,t)=>(e+t/i6)/t,i7=function(e,t,r=!1,n={}){if(e<=iC)throw Error(`Expected Field ORDER > 0, got ${e}`);let{nBitLength:a,nByteLength:i}=iz(e,t);if(i>2048)throw Error("Field lengths over 2048 bytes are not supported");let s=function(e){if(e%iD===iU){let t=(e+iB)/iD;return function(e,r){let n=e.pow(r,t);if(!e.eql(e.sqr(n),r))throw Error("Cannot find square root");return n}}if(e%iL===iF){let t=(e-iF)/iL;return function(e,r){let n=e.mul(r,iS),a=e.pow(n,t),i=e.mul(r,a),s=e.mul(e.mul(i,iS),a),o=e.mul(i,e.sub(s,e.ONE));if(!e.eql(e.sqr(o),r))throw Error("Cannot find square root");return o}}return function(e){let t,r,n,a=(e-iB)/iS;for(t=e-iB,r=0;t%iS===iC;t/=iS,r++);for(n=iS;n<e&&function(e,t,r){if(r<=iC||t<iC)throw Error("Expected power/modulo > 0");if(r===iB)return iC;let n=iB;for(;t>iC;)t&iB&&(n=n*e%r),e=e*e%r,t>>=iB;return n}(n,a,e)!==e-iB;n++);if(1===r){let t=(e+iB)/iD;return function(e,r){let n=e.pow(r,t);if(!e.eql(e.sqr(n),r))throw Error("Cannot find square root");return n}}let i=(t+iB)/iS;return function(e,s){if(e.pow(s,a)===e.neg(e.ONE))throw Error("Cannot find square root");let o=r,l=e.pow(e.mul(e.ONE,n),t),c=e.pow(s,i),u=e.pow(s,t);for(;!e.eql(u,e.ONE);){if(e.eql(u,e.ZERO))return e.ZERO;let t=1;for(let r=e.sqr(u);t<o&&!e.eql(r,e.ONE);t++)r=e.sqr(r);let r=e.pow(l,iB<<BigInt(o-t-1));l=e.sqr(r),c=e.mul(c,r),u=e.mul(u,l),o=t}return c}}(e)}(e),o=Object.freeze({ORDER:e,BITS:a,BYTES:i,MASK:iP(a),ZERO:iC,ONE:iB,create:t=>iM(t,e),isValid:t=>{if("bigint"!=typeof t)throw Error(`Invalid field element: expected bigint, got ${typeof t}`);return iC<=t&&t<e},is0:e=>e===iC,isOdd:e=>(e&iB)===iB,neg:t=>iM(-t,e),eql:(e,t)=>
1e===t,sqr:t=>iM(t*t,e),add:(t,r)=>iM(t+r,e),sub:(t,r)=>iM(t-r,e),mul:(t,r)=>iM(t*r,e),pow:(e,t)=>(function(e,t,r){if(r<iC)throw Error("Expected power > 0");if(r===iC)return e.ONE;if(r===iB)return t;let n=e.ONE,a=t;for(;r>iC;)r&iB&&(n=e.mul(n,a)),a=e.sqr(a),r>>=iB;return n})(o,e,t),div:(t,r)=>iM(t*ij(r,e),e),sqrN:e=>e*e,addN:(e,t)=>e+t,subN:(e,t)=>e-t,mulN:(e,t)=>e*t,inv:t=>ij(t,e),sqrt:n.sqrt||(e=>s(o,e)),invertBatch:e=>{let t,r,n;return t=Array(e.length),r=e.reduce((e,r,n)=>o.is0(r)?e:(t[n]=e,o.mul(e,r)),o.ONE),n=o.inv(r),e.reduceRight((e,r,n)=>o.is0(r)?e:(t[n]=o.mul(e,t[n]),o.mul(e,r)),n),t},cmov:(e,t,r)=>r?t:e,toBytes:e=>r?im(e,i):ig(e,i),fromBytes:e=>{if(e.length!==i)throw Error(`Fp.fromBytes: expected ${i}, got ${e.length}`);return r?ib(e):ip(e)}});return Object.freeze(o)}(i4,void 0,void 0,{sqrt:function(e){let t=BigInt(3),r=BigInt(6),n=BigInt(11),a=BigInt(22),i=BigInt(23),s=BigInt(44),o=BigInt(88),l=e*e*e%i4,c=l*l*e%i4,u=iG(c,t,i4)*c%i4,f=iG(u,t,i4)*c%i4,d=iG(f,i6,i4)*l%i4,h=iG(d,n,i4)*d%i4,x=iG(h,a,i4)*h%i4,p=iG(x,s,i4)*x%i4,b=iG(p,o,i4)*p%i4,g=iG(b,s,i4)*x%i4,m=iG(g,t,i4)*c%i4,y=iG(m,i,i4)*h%i4,w=iG(y,r,i4)*l%i4,A=iG(w,i6,i4);if(!i7.eql(i7.sqr(A),e))throw Error("Cannot find square root");return A}}),se=(m={a:BigInt(0),b:BigInt(7),Fp:i7,n:i8,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{let t=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),r=-i5*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),n=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),a=BigInt("0x100000000000000000000000000000000"),i=i9(t*e,i8),s=i9(-r*e,i8),o=iM(e-i*t-s*n,i8),l=iM(-i*r-s*t,i8),c=o>a,u=l>a;if(c&&(o=i8-o),u&&(l=i8-l),o>a||l>a)throw Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:c,k1:o,k2neg:u,k2:l}}}},Object.freeze({...(b=e=>(function(e){let t,r=(t=iW(e),i_.validateObject(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})),{Fp:n,n:a}=r,i=n.BYTES+1,s=2*n.BYTES+1;function o(e){return iM(e,a)}let{ProjectivePoint:l,normPrivateKeyToScalar:c,weierstrassEquation:u,isWithinCurveOrder:f}=function(e){var t;let r,n,a=function(e){let t=iW(e);i_.validateObject(t,{a:"field",b:"field"},{allowedPrivateKeyLengths:"array",wrapPrivateKey:"boolean",isTorsionFree:"function",clearCofactor:"function",allowInfinityPoint:"boolean",fromBytes:"function",toBytes:"function"});let{endo:r,Fp:n,a}=t;if(r){if(!n.eql(a,n.ZERO))throw Error("Endomorphism can only be defined for Koblitz curves that have a=0");if("object"!=typeof r||"bigint"!=typeof r.beta||"function"!=typeof r.splitScalar)throw Error("Expected endomorphism with beta: bigint and splitScalar: function")}return Object.freeze({...t})}(e),{Fp:i}=a,s=a.toBytes||((e,t,r)=>{let n=t.toAffine();return i_.concatBytes(Uint8Array.from([4]),i.toBytes(n.x),i.toBytes(n.y))}),o=a.fromBytes||(e=>{let t=e.subarray(1);return{x:i.fromBytes(t.subarray(0,i.BYTES)),y:i.fromBytes(t.subarray(i.BYTES,2*i.BYTES))}});function l(e){let{a:t,b:r}=a,n=i.sqr(e),s=i.mul(n,e);return i.add(i.add(s,i.mul(e,t)),r)}if(!i.eql(i.sqr(a.Gy),l(a.Gx)))throw Error("bad generator point: equation left != right");function c(e){return"bigint"==typeof e&&i$<e&&e<a.n}function u(e){if(!c(e))throw Error("Expected valid bigint: 0 < bigint < curve.n")}function f(e){let t,{allowedPrivateKeyLengths:r,nByteLength:n,wrapPrivateKey:i,n:s}=a;if(r&&"bigint"!=typeof e){if(e instanceof Uint8Array&&(e=i_.bytesToHex(e)),"string"!=typeof e||!r.includes(e.length))throw Error("Invalid key");e=e.padStart(2*n,"0")}try{t="bigint"==typeof e?e:i_.bytesToNumberBE(iw("private key",e,n))}catch(t){throw Error(`private key must be ${n} bytes, hex or bigint, not ${typeof e}`)}return i&&(t=iM(t,s)),u(t),t}let d=new Map;function h(e){if(!(e instanceof x))throw Error("ProjectivePoint expected")}class x{constructor(e,t,r){if(this.px=e,this.py=t,this.pz=r,null==e||!i.isValid(e))throw Error("x required");if(null==t||!i.isValid(t))throw Error("y required");if(null==r||!i.isValid(r))throw Error("z required")}static fromAffine(e){let{x:t,y:r}=e||{};if(!e||!i.isValid(t)||!i.isValid(r))throw Error("invalid affine point");if(e instanceof x)throw Error("projective point not allowed");let n=e=>i.eql(e,i.ZERO);return n(t)&&n(r)?x.ZERO:new x(t,r,i.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(e){let t=i.invertBatch(e.map(e=>e.pz));return e.map((e,r)=>e.toAffine(t[r])).map(x.fromAffine)}static fromHex(e){let t=x.fromAffine(o(iw("pointHex",e)));return t.assertValidity(),t}static fromPrivateKey(e){return x.BASE.multiply(f(e))}_setWindowSize(e){this._WINDOW_SIZE=e,d.delete(this)}
1assertValidity(){if(this.is0()){if(a.allowInfinityPoint&&!i.is0(this.py))return;throw Error("bad point: ZERO")}let{x:e,y:t}=this.toAffine();if(!i.isValid(e)||!i.isValid(t))throw Error("bad point: x or y not FE");let r=i.sqr(t),n=l(e);if(!i.eql(r,n))throw Error("bad point: equation left != right");if(!this.isTorsionFree())throw Error("bad point: not in prime-order subgroup")}hasEvenY(){let{y:e}=this.toAffine();if(i.isOdd)return!i.isOdd(e);throw Error("Field doesn't support isOdd")}equals(e){h(e);let{px:t,py:r,pz:n}=this,{px:a,py:s,pz:o}=e,l=i.eql(i.mul(t,o),i.mul(a,n)),c=i.eql(i.mul(r,o),i.mul(s,n));return l&&c}negate(){return new x(this.px,i.neg(this.py),this.pz)}double(){let{a:e,b:t}=a,r=i.mul(t,i2),{px:n,py:s,pz:o}=this,l=i.ZERO,c=i.ZERO,u=i.ZERO,f=i.mul(n,n),d=i.mul(s,s),h=i.mul(o,o),p=i.mul(n,s);return p=i.add(p,p),u=i.mul(n,o),u=i.add(u,u),l=i.mul(e,u),c=i.mul(r,h),c=i.add(l,c),l=i.sub(d,c),c=i.add(d,c),c=i.mul(l,c),l=i.mul(p,l),u=i.mul(r,u),h=i.mul(e,h),p=i.sub(f,h),p=i.mul(e,p),p=i.add(p,u),u=i.add(f,f),f=i.add(u,f),f=i.add(f,h),f=i.mul(f,p),c=i.add(c,f),h=i.mul(s,o),h=i.add(h,h),f=i.mul(h,p),l=i.sub(l,f),u=i.mul(h,d),u=i.add(u,u),new x(l,c,u=i.add(u,u))}add(e){h(e);let{px:t,py:r,pz:n}=this,{px:s,py:o,pz:l}=e,c=i.ZERO,u=i.ZERO,f=i.ZERO,d=a.a,p=i.mul(a.b,i2),b=i.mul(t,s),g=i.mul(r,o),m=i.mul(n,l),y=i.add(t,r),w=i.add(s,o);y=i.mul(y,w),w=i.add(b,g),y=i.sub(y,w),w=i.add(t,n);let A=i.add(s,l);return w=i.mul(w,A),A=i.add(b,m),w=i.sub(w,A),A=i.add(r,n),c=i.add(o,l),A=i.mul(A,c),c=i.add(g,m),A=i.sub(A,c),f=i.mul(d,w),c=i.mul(p,m),f=i.add(c,f),c=i.sub(g,f),f=i.add(g,f),u=i.mul(c,f),g=i.add(b,b),g=i.add(g,b),m=i.mul(d,m),w=i.mul(p,w),g=i.add(g,m),m=i.sub(b,m),m=i.mul(d,m),w=i.add(w,m),b=i.mul(g,w),u=i.add(u,b),b=i.mul(A,w),c=i.mul(y,c),c=i.sub(c,b),b=i.mul(y,g),f=i.mul(A,f),new x(c,u,f=i.add(f,b))}subtract(e){return this.add(e.negate())}is0(){return this.equals(x.ZERO)}wNAF(e){return b.wNAFCached(this,d,e,e=>{let t=i.invertBatch(e.map(e=>e.pz));return e.map((e,r)=>e.toAffine(t[r])).map(x.fromAffine)})}multiplyUnsafe(e){let t=x.ZERO;if(e===i$)return t;if(u(e),e===i0)return this;let{endo:r}=a;if(!r)return b.unsafeLadder(this,e);let{k1neg:n,k1:s,k2neg:o,k2:l}=r.splitScalar(e),c=t,f=t,d=this;for(;s>i$||l>i$;)s&i0&&(c=c.add(d)),l&i0&&(f=f.add(d)),d=d.double(),s>>=i0,l>>=i0;return n&&(c=c.negate()),o&&(f=f.negate()),f=new x(i.mul(f.px,r.beta),f.py,f.pz),c.add(f)}multiply(e){let t,r;u(e);let{endo:n}=a;if(n){let{k1neg:a,k1:s,k2neg:o,k2:l}=n.splitScalar(e),{p:c,f:u}=this.wNAF(s),{p:f,f:d}=this.wNAF(l);c=b.constTimeNegate(a,c),f=b.constTimeNegate(o,f),f=new x(i.mul(f.px,n.beta),f.py,f.pz),t=c.add(f),r=u.add(d)}else{let{p:n,f:a}=this.wNAF(e);t=n,r=a}return x.normalizeZ([t,r])[0]}multiplyAndAddUnsafe(e,t,r){let n=x.BASE,a=(e,t)=>t!==i$&&t!==i0&&e.equals(n)?e.multiply(t):e.multiplyUnsafe(t),i=a(this,t).add(a(e,r));return i.is0()?void 0:i}toAffine(e){let{px:t,py:r,pz:n}=this,a=this.is0();null==e&&(e=a?i.ONE:i.inv(n));let s=i.mul(t,e),o=i.mul(r,e),l=i.mul(n,e);if(a)return{x:i.ZERO,y:i.ZERO};if(!i.eql(l,i.ONE))throw Error("invZ was invalid");return{x:s,y:o}}isTorsionFree(){let{h:e,isTorsionFree:t}=a;if(e===i0)return!0;if(t)return t(x,this);throw Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){let{h:e,clearCofactor:t}=a;return e===i0?this:t?t(x,this):this.multiplyUnsafe(a.h)}toRawBytes(e=!0){return this.assertValidity(),s(x,this,e)}toHex(e=!0){return i_.bytesToHex(this.toRawBytes(e))}}x.BASE=new x(a.Gx,a.Gy,i.ONE),x.ZERO=new x(i.ZERO,i.ONE,i.ZERO);let p=a.nBitLength,b=(t=a.endo?Math.ceil(p/2):p,r=(e,t)=>{let r=t.negate();return e?r:t},n=e=>({windows:Math.ceil(t/e)+1,windowSize:2**(e-1)}),{constTimeNegate:r,unsafeLadder(e,t){let r=x.ZERO,n=e;for(;t>iJ;)t&iq&&(r=r.add(n)),n=n.double(),t>>=iq;return r},precomputeWindow(e,t){let{windows:r,windowSize:a}=n(t),i=[],s=e,o=s;for(let e=0;e<r;e++){o=s,i.push(o);for(let e=1;e<a;e++)o=o.add(s),i.push(o);s=o.double()}return i},wNAF(e,t,a){let{windows:i,windowSize:s}=n(e),o=x.ZERO,l=x.BASE,c=BigInt(2**e-1),u=2**e,f=BigInt(e);for(let e=0;e<i;e++){let n=e*s,i=Number(a&c);a>>=f,i>s&&(i-=u,a+=iq);let d=n+Math.abs(i)-1,h=e%2!=0,x=i<0;0===i?l=l.add(r(h,t[n])):o=o.add(r(x,t[d]))}return{p:o,f:l}},wNAFCached(e,t,r,n){let a=e._WINDOW_SIZE||1,i=t.get(e);
1return i||(i=this.precomputeWindow(e,a),1!==a&&t.set(e,n(i))),this.wNAF(a,i,r)}});return{CURVE:a,ProjectivePoint:x,normPrivateKeyToScalar:f,weierstrassEquation:l,isWithinCurveOrder:c}}({...r,toBytes(e,t,r){let a=t.toAffine(),i=n.toBytes(a.x),s=i_.concatBytes;return r?s(Uint8Array.from([t.hasEvenY()?2:3]),i):s(Uint8Array.from([4]),i,n.toBytes(a.y))},fromBytes(e){let t=e.length,r=e[0],a=e.subarray(1);if(t===i&&(2===r||3===r)){let e=i_.bytesToNumberBE(a);if(!(i$<e&&e<n.ORDER))throw Error("Point is not on curve");let t=u(e),i=n.sqrt(t);return(1&r)==1!=((i&i0)===i0)&&(i=n.neg(i)),{x:e,y:i}}if(t===s&&4===r)return{x:n.fromBytes(a.subarray(0,n.BYTES)),y:n.fromBytes(a.subarray(n.BYTES,2*n.BYTES))};throw Error(`Point of length ${t} was invalid. Expected ${i} compressed bytes or ${s} uncompressed bytes`)}}),d=e=>i_.bytesToHex(i_.numberToBytesBE(e,r.nByteLength)),h=(e,t,r)=>i_.bytesToNumberBE(e.slice(t,r));class x{constructor(e,t,r){this.r=e,this.s=t,this.recovery=r,this.assertValidity()}static fromCompact(e){let t=r.nByteLength;return new x(h(e=iw("compactSignature",e,2*t),0,t),h(e,t,2*t))}static fromDER(e){let{r:t,s:r}=iX.toSig(iw("DER",e));return new x(t,r)}assertValidity(){if(!f(this.r))throw Error("r must be 0 < r < CURVE.n");if(!f(this.s))throw Error("s must be 0 < s < CURVE.n")}addRecoveryBit(e){return new x(this.r,this.s,e)}recoverPublicKey(e){let{r:t,s:i,recovery:s}=this,c=g(iw("msgHash",e));if(null==s||![0,1,2,3].includes(s))throw Error("recovery id invalid");let u=2===s||3===s?t+r.n:t;if(u>=n.ORDER)throw Error("recovery id 2 or 3 invalid");let f=(1&s)==0?"02":"03",h=l.fromHex(f+d(u)),x=ij(u,a),p=o(-c*x),b=o(i*x),m=l.BASE.multiplyAndAddUnsafe(h,p,b);if(!m)throw Error("point at infinify");return m.assertValidity(),m}hasHighS(){return this.s>a>>i0}normalizeS(){return this.hasHighS()?new x(this.r,o(-this.s),this.recovery):this}toDERRawBytes(){return i_.hexToBytes(this.toDERHex())}toDERHex(){return iX.hexFromSig({r:this.r,s:this.s})}toCompactRawBytes(){return i_.hexToBytes(this.toCompactHex())}toCompactHex(){return d(this.r)+d(this.s)}}function p(e){let t=e instanceof Uint8Array,r="string"==typeof e,n=(t||r)&&e.length;return t?n===i||n===s:r?n===2*i||n===2*s:e instanceof l}let b=r.bits2int||function(e){let t=i_.bytesToNumberBE(e),n=8*e.length-r.nBitLength;return n>0?t>>BigInt(n):t},g=r.bits2int_modN||function(e){return o(b(e))},m=i_.bitMask(r.nBitLength);function y(e){if("bigint"!=typeof e)throw Error("bigint expected");if(!(i$<=e&&e<m))throw Error(`bigint expected < 2^${r.nBitLength}`);return i_.numberToBytesBE(e,r.nByteLength)}let w={lowS:r.lowS,prehash:!1},A={lowS:r.lowS,prehash:!1};return l.BASE._setWindowSize(8),{CURVE:r,getPublicKey:function(e,t=!0){return l.fromPrivateKey(e).toRawBytes(t)},getSharedSecret:function(e,t,r=!0){if(p(e))throw Error("first arg must be private key");if(!p(t))throw Error("second arg must be public key");return l.fromHex(t).multiply(c(e)).toRawBytes(r)},sign:function(e,t,i=w){let{seed:s,k2sig:u}=function(e,t,i=w){if(["recovered","canonical"].some(e=>e in i))throw Error("sign() legacy options not supported");let{hash:s,randomBytes:u}=r,{lowS:d,prehash:h,extraEntropy:p}=i;null==d&&(d=!0),e=iw("msgHash",e),h&&(e=iw("prehashed msgHash",s(e)));let m=g(e),A=c(t),v=[y(A),y(m)];if(null!=p){let e=!0===p?u(n.BYTES):p;v.push(iw("extraEntropy",e))}return{seed:i_.concatBytes(...v),k2sig:function(e){var t;let r=b(e);if(!f(r))return;let n=ij(r,a),i=l.BASE.multiply(r).toAffine(),s=o(i.x);if(s===i$)return;let c=o(n*o(m+s*A));if(c===i$)return;let u=2*(i.x!==s)|Number(i.y&i0),h=c;return d&&c>a>>i0&&(h=(t=c)>a>>i0?o(-t):t,u^=1),new x(s,h,u)}}}(e,t,i);return i_.createHmacDrbg(r.hash.outputLen,r.nByteLength,r.hmac)(s,u)},verify:function(e,t,n,i=A){let s,c;if(t=iw("msgHash",t),n=iw("publicKey",n),"strict"in i)throw Error("options.strict was renamed to lowS");let{lowS:u,prehash:f}=i;try{if("string"==typeof e||e instanceof Uint8Array)try{c=x.fromDER(e)}catch(t){if(!(t instanceof iX.Err))throw t;c=x.fromCompact(e)}else if("object"==typeof e&&"bigint"==typeof e.r&&"bigint"==typeof e.s){let{r:t,s:r}=e;c=new x(t,r)}else throw Error("PARSE");s=l.fromHex(n)}catch(e){if("PARSE"===e.message)throw Error("signature must be Signature instance, Uint8Array or hex string");return!1}if(u&&c.hasHighS())return!1;f&&(t=r.hash(t));let{r:d,s:h}=c,p=g(t),b=ij(h,a),m=o(p*b),y=o(d*b),w=l.BASE.multiplyAndAddUnsafe(s,m,y)?.toAffine();return!!w&&o(w.x)===d},ProjectivePoint:l,Signature:x,utils:{isValidPrivateKey(e){try{return c(e),!0}catch(e){return!1}},normPrivateKeyToScalar:c,randomPrivateKey:()=>{let e=iQ(r.n);return function(e,t,r=!1){let n=e.length,a=iK(t),i=iQ(t);if(n<16||n<i||n>1024)throw Error(`expected ${i}-1024 bytes of input, got ${n}`);let s=iM(r?ip(e):ib(e),t-iB)+iB;return r?im(s,a):ig(s,a)}(r.randomBytes(e),r.n)},precompute:(e=8,t=l.BASE)=>(t._setWindowSize(e),t.multiply(BigInt(3)),t)}}})({...m,hash:e,hmac:(t,...r)=>nq(e,t,function(...e){let t=new Uint8Array(e.reduce((e,t)=>
1e+t.length,0)),r=0;return e.forEach(e=>{if(!(e instanceof Uint8Array))throw Error("Uint8Array expected");t.set(e,r),r+=e.length}),t}(...r)),randomBytes:ta}))(n3),create:b})),st=BigInt(0);se.ProjectivePoint;let sr=(g=[["0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7","0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581","0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262","0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c"],["0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b","0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14","0x0000000000000000000000000000000000000000000000000000000000000001"],["0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c","0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3","0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931","0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84"],["0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b","0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573","0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f","0x0000000000000000000000000000000000000000000000000000000000000001"]].map(e=>e.map(e=>BigInt(e))).map(e=>Array.from(e).reverse()),(e,t)=>{let[r,n,a,i]=g.map(t=>t.reduce((t,r)=>i7.add(i7.mul(t,e),r)));return e=i7.div(r,n),t=i7.mul(t,i7.div(a,i)),{x:e,y:t}}),sn=function(e,t){if(iH(e),!e.isValid(t.A)||!e.isValid(t.B)||!e.isValid(t.Z))throw Error("mapToCurveSimpleSWU: invalid opts");let r=function(e,t){let r=e.ORDER,n=i$;for(let e=r-i0;e%i1===i$;e/=i1)n+=i0;let a=n,i=i1<<a-i0-i0,s=i*i1,o=(r-i0)/s,l=(o-i0)/i1,c=s-i0,u=e.pow(t,o),f=e.pow(t,(o+i0)/i1),d=(t,r)=>{let n=u,s=e.pow(r,c),o=e.sqr(s);o=e.mul(o,r);let d=e.mul(t,o);d=e.pow(d,l),d=e.mul(d,s),s=e.mul(d,r),o=e.mul(d,t);let h=e.mul(o,s);d=e.pow(h,i);let x=e.eql(d,e.ONE);s=e.mul(o,f),d=e.mul(h,n),o=e.cmov(s,o,x),h=e.cmov(d,h,x);for(let t=a;t>i0;t--){let r=t-i1;r=i1<<r-i0;let a=e.pow(h,r),i=e.eql(a,e.ONE);s=e.mul(o,n),n=e.mul(n,n),a=e.mul(h,n),o=e.cmov(s,o,i),h=e.cmov(a,h,i)}return{isValid:x,value:o}};if(e.ORDER%i3===i2){let r=(e.ORDER-i2)/i3,n=e.sqrt(e.neg(t));d=(t,a)=>{let i=e.sqr(a),s=e.mul(t,a);i=e.mul(i,s);let o=e.pow(i,r);o=e.mul(o,s);let l=e.mul(o,n),c=e.mul(e.sqr(o),a),u=e.eql(c,t),f=e.cmov(l,o,u);return{isValid:u,value:f}}}return d}(e,t.Z);if(!e.isOdd)throw Error("Fp.isOdd is not implemented!");return n=>{let a,i,s,o,l,c,u,f;a=e.sqr(n),a=e.mul(a,t.Z),i=e.sqr(a),i=e.add(i,a),s=e.add(i,e.ONE),s=e.mul(s,t.B),o=e.cmov(t.Z,e.neg(i),!e.eql(i,e.ZERO)),o=e.mul(o,t.A),i=e.sqr(s),c=e.sqr(o),l=e.mul(c,t.A),i=e.add(i,l),i=e.mul(i,s),c=e.mul(c,o),l=e.mul(c,t.B),i=e.add(i,l),u=e.mul(a,s);let{isValid:d,value:h}=r(i,c);f=e.mul(a,n),f=e.mul(f,h),u=e.cmov(u,s,d),f=e.cmov(f,h,d);let x=e.isOdd(n)===e.isOdd(f);return f=e.cmov(e.neg(f),f,x),{x:u=e.div(u,o),y:f}}}(i7,{A:BigInt("0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533"),B:BigInt("1771"),Z:i7.create(BigInt("-11"))});!function(e,t,r){if("function"!=typeof t)throw Error("mapToCurve() must be defined")}(se.ProjectivePoint,e=>{let{x:t,y:r}=sn(i7.create(e[0]));return sr(t,r)},i7.ORDER);class sa{#C;constructor(e){L(32===Z(e),"invalid private key","privateKey","[REDACTED]"),this.#C=q(e)}get privateKey(){return this.#C}get publicKey(){return sa.computePublicKey(this.#C)}get compressedPublicKey(){return sa.computePublicKey(this.#C,!0)}sign(e){L(32===Z(e),"invalid digest length","digest",e);let t=se.sign(K(e),K(this.#C),{lowS:!0});return ii.from({r:eA(t.r,32),s:eA(t.s,32),v:t.recovery?28:27})}computeSharedSecret(e){let t=sa.computePublicKey(e);return q(se.getSharedSecret(K(this.#C),z(t),!1))}static computePublicKey(e,t){let r=z(e,"key");if(32===r.length)return q(se.getPublicKey(r,!!t));if(64===r.length){let e=new Uint8Array(65);e[0]=4,e.set(r,1),r=e}return q(se.ProjectivePoint.fromHex(r).toRawBytes(t))}static recoverPublicKey(e,t){L(32===Z(e),"invalid digest length","digest",e);let r=ii.from(t),n=se.Signature.fromCompact(K(W([r.r,r.s]))),a=(n=n.addRecoveryBit(r.yParity)).recoverPublicKey(K(e));return L(null!=a,"invalid signature for digest","signature",t),"0x"+a.toHex(!1)}static addPoints(e,t,r){let n=se.ProjectivePoint.fromHex(sa.computePublicKey(e).substring(2)),a=se.ProjectivePoint.fromHex(sa.computePublicKey(t).substring(2));return"0x"+n.add(a).toHex(!!r)}}let si=new Map([[8217,"apostrophe"],[8260,"fraction slash"],[12539,"middle dot"]]);function ss(e){var t;let r;return t=function(e){let t=0;function r(){return e[t++]<<8|e[t++]}let n=r(),a=1,i=[0,1];for(let e=1;e<n;e++)i.push(a+=r());let s=r(),o=t;t+=s;let l=0,c=0;function u(){return 0==l&&(c=c<<8|e[t++],l=8),c>>--l&1}let f=0x80000000-1,d=0;for(let e=0;e<31;e++)d=d<<1|u();let h=[],x=0,p=0x80000000;for(;;){let e=Math.floor(((d-x+1)*a-1)/p),t=0,r=n;for(;r-t>1;){let n=t+r>>>1;e<i[n]?r=n:t=n}if(0==t)break;h.push(t);let s=x+Math.floor(p*i[t]/a),o=x+Math.floor(p*i[t+1]/a)-1;for(;((s^o)&0x40000000)==0;)d=d<<1&f|u(),s=s<<1&f,o=o<<1&f|1;for(;s&~o&0x20000000;)d=0x40000000&d|d<<1&f>>>1|u(),s=s<<1^0x40000000,o=(0x40000000^o)<<1|0x40000001;x=s,p=1+o-s}let b=n-4;return h.map(t=>{switch(t-b){case 3:return b+65792+(e[o++]<<16|e[o++]<<8|e[o++]);case 2:return b+256+(e[o++]<<8|e[o++]);case 1:return b+e[o++];default:return t-1}})}(function(e){let t=[];[..."ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
1+/"].forEach((e,r)=>t[e.charCodeAt(0)]=r);let r=e.length,n=new Uint8Array(6*r>>3);for(let a=0,i=0,s=0,o=0;a<r;a++)o=o<<6|t[e.charCodeAt(a)],(s+=6)>=8&&(n[i++]=o>>(s-=8));return n}(e)),r=0,()=>t[r++]}function so(e,t=0){let r=[];for(;;){let n=e(),a=e();if(!a)break;t+=n;for(let e=0;e<a;e++)r.push(t+e);t+=a+1}return r}function sl(e){return su(()=>{let t=so(e);if(t.length)return t})}function sc(e){let t=[];for(;;){let r=e();if(0==r)break;t.push(function(e,t){let r=1+t(),n=t(),a=su(t);return sf(a.length,1+e,t).flatMap((e,t)=>{let[i,...s]=e;return Array(a[t]).fill().map((e,t)=>{let a=t*n;return[i+t*r,s.map(e=>e+a)]})})}(r,e))}for(;;){var r,n;let a=e()-1;if(a<0)break;t.push((r=a,sf(1+(n=e)(),1+r,n).map(e=>[e[0],e.slice(1)])))}return t.flat()}function su(e){let t=[];for(;;){let r=e(t.length);if(!r)break;t.push(r)}return t}function sf(e,t,r){let n=Array(e).fill().map(()=>[]);for(let a=0;a<t;a++)(function(e,t){let r=Array(e);for(let a=0,i=0;a<e;a++){var n;r[a]=i+=1&(n=t())?~n>>1:n>>1}return r})(e,r).forEach((e,t)=>n[t].push(e));return n}function sd(e){return`{${e.toString(16).toUpperCase().padStart(2,"0")}}`}function sh(e){let t=e.length;if(t<4096)return String.fromCodePoint(...e);let r=[];for(let n=0;n<t;)r.push(String.fromCodePoint(...e.slice(n,n+=4096)));return r.join("")}function sx(e,t){let r=e.length,n=r-t.length;for(let a=0;0==n&&a<r;a++)n=e[a]-t[a];return n}let sp=55204;function sb(e){return e>>24&255}function sg(e){return 0xffffff&e}function sm(e){return e>=44032&&e<sp}function sy(e){t||function(){let e=ss
vendor: 7,457 bytes, line 1
1("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");f
1or(let[i,s]of(t=new Map(sl(e).flatMap((e,t)=>e.map(e=>[e,t+1<<24]))),r=new Set(so(e)),n=new Map,a=new Map,sc(e))){if(!r.has(i)&&2==s.length){let[e,t]=s,r=a.get(e);r||(r=new Map,a.set(e,r)),r.set(t,i)}n.set(i,s.reverse())}}();let i=[],s=[],o=!1;function l(e){let r=t.get(e);r&&(o=!0,e|=r),i.push(e)}for(let t of e)for(;;){if(t<128)i.push(t);else if(sm(t)){let e=t-44032,r=e/588|0,n=e%588/28|0,a=e%28;l(4352+r),l(4449+n),a>0&&l(4519+a)}else{let e=n.get(t);e?s.push(...e):l(t)}if(!s.length)break;t=s.pop()}if(o&&i.length>1){let e=sb(i[0]);for(let t=1;t<i.length;t++){let r=sb(i[t]);if(0==r||e<=r){e=r;continue}let n=t-1;for(;;){let t=i[n+1];if(i[n+1]=i[n],i[n]=t,!n||(e=sb(i[--n]))<=r)break}e=sb(i[t])}}return i}function sw(e){return function(e){let t=[],r=[],n=-1,i=0;for(let s of e){let e=sb(s),o=sg(s);if(-1==n)0==e?n=o:t.push(o);else if(i>0&&i>=e)0==e?(t.push(n,...r),r.length=0,n=o):r.push(o),i=e;else{let s=function(e,t){if(e>=4352&&e<4371&&t>=4449&&t<4470)return 44032+(e-4352)*588+(t-4449)*28;{if(sm(e)&&t>4519&&t<4547&&(e-44032)%28==0)return e+(t-4519);let r=a.get(e);return r&&(r=r.get(t))?r:-1}}(n,o);s>=0?n=s:0==i&&0==e?(t.push(n),n=o):(r.push(o),i=e)}}return n>=0&&t.push(n,...r),t}(sy(e))}let sA=e=>Array.from(e);function sv(e,t){return e.P.has(t)||e.Q.has(t)}class sE extends Array{get is_emoji(){return!0}}function sk(){let e,t;if(i)return;let r=ss("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"),n=()=>new Set(so(r)),a=(e,t)=>t.forEach(t=>e.add(t));i=new Map(sc(r)),s=n(),o=so(r),l=new Set(so(r).map(e=>o[e])),o=new Set(o),c=n(),n();let b=sl(r),g=r(),m=()=>{let e=new Set;return so(r).forEach(t=>a(e,b[t])),a(e,so(r)),e};u=su(e=>{let t=su(r).map(e=>e+96);if(t.length){let n=e>=g;t[0]-=32,t=sh(t),n&&(t=`Restricted[${t}]`);let a=m();return{N:t,P:a,Q:m(),M:!r(),R:n}}}),f=n(),d=new Map;let y=so(r).concat(sA(f)).sort((e,t)=>
1e-t);for(let{V:e,M:t}of(y.forEach((e,t)=>{let n=r(),a=y[t]=n?y[t-n]:{V:[],M:new Map};a.V.push(e),f.has(e)||d.set(e,a)}),new Set(d.values()))){let r=[];for(let t of e){let e=u.filter(e=>sv(e,t)),n=r.find(({G:t})=>e.some(e=>t.has(e)));n||(n={G:new Set,V:[]},r.push(n)),n.V.push(t),a(n.G,e)}let n=r.flatMap(e=>sA(e.G));for(let{G:e,V:a}of r){let r=new Set(n.filter(t=>!e.has(t)));for(let e of a)t.set(e,r)}}h=new Set;let w=new Set,A=e=>h.has(e)?w.add(e):h.add(e);for(let e of u){for(let t of e.P)A(t);for(let t of e.Q)A(t)}for(let e of h)d.has(e)||w.has(e)||d.set(e,1);for(let n of(a(h,sy(h).map(sg)),x=(e=[],t=so(r),function t({S:r,B:n},a,i){if(!(4&r)||i!==a[a.length-1])for(let s of(2&r&&(i=a[a.length-1]),1&r&&e.push(a),n))for(let e of s.Q)t(s,[...a,e],i)}(function e(n){return{S:r(),B:su(()=>{let n=so(r).map(e=>t[e]);if(n.length)return e(n)}),Q:n}}([]),[]),e).map(e=>sE.from(e)).sort(sx),p=new Map,x)){let e=[p];for(let t of n){let r=e.map(e=>{let r=e.get(t);return r||(r=new Map,e.set(t,r)),r});65039===t?e.push(...r):e=r}for(let t of e)t.V=n}}function sN(e){return(sI(e)?"":`${sP(sR([e]))} `)+sd(e)}function sP(e){return`"${e}"\u200E`}function sR(e,t=1/0,r=sd){var n;let a=[];n=e[0],sk(),o.has(n)&&a.push("◌"),e.length>t&&(t>>=1,e=[...e.slice(0,t),8230,...e.slice(-t)]);let i=0,s=e.length;for(let t=0;t<s;t++){let n=e[t];sI(n)&&(a.push(sh(e.slice(i,t))),a.push(r(n)),i=t+1)}return a.push(sh(e.slice(i,s))),a.join("")}function sI(e){return sk(),c.has(e)}function sT(e){return Error(`disallowed character: ${sN(e)}`)}function sO(e,t){let r=sN(t),n=u.find(e=>e.P.has(t));return n&&(r=`${n.N} ${r}`),Error(`illegal mixture: ${e.N} + ${r}`)}function sC(e){return Error(`illegal placement: ${e}`)}function sB(e){return e.filter(e=>65039!=e)}let sS=new Uint8Array(32);function sU(e){return L(0!==e.length,"invalid ENS name; empty component","comp",e),e}function sD(e){let t=ei(sF(e)),r=[];if(0===e.length)return r;let n=0;for(let e=0;e<t.length;e++)46===t[e]&&(r.push(sU(t.slice(n,e))),n=e+1);return L(n<t.length,"invalid ENS name; empty component","name",e),r.push(sU(t.slice(n))),r}function sF(e){try{var t;if(0===e.length)throw Error("empty label");return(t=function(e,t,r){if(!e)return[];sk();let n=0;return e.split(".").map(e=>{let a=function(e){let t=[];for(let r=0,n=e.length;r<n;){let n=e.codePointAt(r);r+=n<65536?1:2,t.push(n)}return t}(e),c={input:a,offset:n};n+=a.length+1;try{let e,n=c.tokens=function(e,t,r){let n=[],a=[];for(e=e.slice().reverse();e.length;){let o=function(e,t){let r,n=p,a=e.length;for(;a&&(n=n.get(e[--a]));){let{V:t}=n;t&&(r=t,e.length=a)}return r}(e);if(o)a.length&&(n.push(t(a)),a=[]),n.push(r(o));else{let t=e.pop();if(h.has(t))a.push(t);else{let e=i.get(t);if(e)a.push(...e);else if(!s.has(t))throw sT(t)}}}return a.length&&n.push(t(a)),n}(a,t,r),f=n.length;if(!f)throw Error("empty label");let x=c.output=n.flat();for(let e=x.lastIndexOf(95);e>0;)if(95!==x[--e])throw Error("underscore allowed only at start");if(!(c.emoji=f>1||n[0].is_emoji)&&x.every(e=>e<128)){if(x.length>=4&&45==x[2]&&45==x[3])throw Error(`invalid label extension: "${sh(x.slice(0,4))}"`);e="ASCII"}else{let t=n.flatMap(e=>e.is_emoji?[]:e);if(t.length){if(o.has(x[0]))throw sC("leading combining mark");for(let e=1;e<f;e++){let t=n[e];
1if(!t.is_emoji&&o.has(t[0]))throw sC(`emoji + combining mark: "${sh(n[e-1])} + ${sR([t[0]])}"`)}!function(e){let t=e[0],r=si.get(t);if(r)throw sC(`leading ${r}`);let n=e.length,a=-1;for(let i=1;i<n;i++){t=e[i];let n=si.get(t);if(n){if(a==i)throw sC(`${r} + ${n}`);a=i+1,r=n}}if(a==n)throw sC(`trailing ${r}`)}(x);let r=sA(new Set(t)),[a]=function(e){let t=u;for(let r of e){let e=t.filter(e=>sv(e,r));if(!e.length)if(u.some(e=>sv(e,r)))throw sO(t[0],r);else throw sT(r);if(t=e,1==e.length)break}return t}(r);(function(e,t){for(let r of t)if(!sv(e,r))throw sO(e,r);if(e.M){let e=sy(t).map(sg);for(let t=1,r=e.length;t<r;t++)if(l.has(e[t])){let n=t+1;for(let a;n<r&&l.has(a=e[n]);n++)for(let r=t;r<n;r++)if(e[r]==a)throw Error(`duplicate non-spacing marks: ${sN(a)}`);if(n-t>4)throw Error(`excessive non-spacing marks: ${sP(sR(e.slice(t-1,n)))} (${n-t}/4)`);t=n}}})(a,t),function(e,t){let r,n=[];for(let e of t){let t=d.get(e);if(1===t)return;if(t){let n=t.M.get(e);if(!(r=r?r.filter(e=>n.has(e)):sA(n)).length)return}else n.push(e)}if(r){for(let t of r)if(n.every(e=>sv(t,e)))throw Error(`whole-script confusable: ${e.N}/${t.N}`)}}(a,r),e=a.N}else e="Emoji"}c.type=e}catch(e){c.error=e}return c})}(e,sw,sB)).map(({input:e,error:r,output:n})=>{if(r){let n=r.message;throw Error(1==t.length?n:`Invalid label ${sP(sR(e,63))}: ${n}`)}return sh(n)}).join(".")}catch(t){L(!1,`invalid ENS name (${t.message})`,"name",e)}}function sL(e){try{return 0!==sD(e).length}catch(e){}return!1}function sM(e){L("string"==typeof e,"invalid ENS name; not a string","name",e),L(e.length,"invalid ENS name (empty label)","name",e);let t=sS,r=sD(e);for(;r.length;)t=tE(W([t,tE(r.pop())]));return q(t)}function sG(e,t){let r=null!=t?t:63;return L(r<=255,"DNS encoded label cannot exceed 255","length",r),q(W(sD(e).map(t=>{L(t.length<=r,`label ${JSON.stringify(e)} exceeds ${r} bytes`,"name",e);let n=new Uint8Array(t.length+1);return n.set(t,1),n[0]=n.length-1,n})))+"00"}function sj(e){return tO(tE("0x"+("string"==typeof e?sa.computePublicKey(e,!1):e.publicKey).substring(4)).substring(26))}function sV(e,t){return sj(sa.recoverPublicKey(e,t))}function sH(e){return L("string"==typeof e.address,"invalid address for hashAuthorization","auth.address",e),tE(W(["0x05",rY([null!=e.chainId?ev(e.chainId):"0x",tO(e.address),null!=e.nonce?ev(e.nonce):"0x"])]))}function sz(e,t){return sV(sH(e),t)}function sK(e){return"string"==typeof e&&(e=ei(e)),tE(W([ei(nt),ei(String(e.length)),e]))}function sQ(e,t){return sV(sK(e),t)}sS.fill(0);let s_=RegExp("^bytes([0-9]+)$"),sJ=RegExp("^(u?int)([0-9]*)$"),sq=RegExp("^(.*)\\[([0-9]*)\\]$");function sW(e,t){L(e.length===t.length,"wrong number of values; expected ${ types.length }","values",t);let r=[];return e.forEach(function(e,n){r.push(function e(t,r,n){switch(t){case"address":if(n)return z(ee(r,32));return z(tO(r));case"string":return ei(r);case"bytes":return z(r);case"bool":if(r=r?"0x01":"0x00",n)return z(ee(r,32));return z(r)}let a=t.match(sJ);if(a){let e="int"===a[1],i=parseInt(a[2]||"256");return L((!a[2]||a[2]===String(i))&&i%8==0&&0!==i&&i<=256,"invalid number type","type",t),n&&(i=256),e&&(r=eh(r,i)),z(ee(ev(r),i/8))}if(a=t.match(s_)){let e=parseInt(a[1]);return(L(String(e)===a[1]&&0!==e&&e<=32,"invalid bytes type","type",t),L(Z(r)===e,`invalid value for ${t}`,"value",r),n)?z(et(r,32)):r}if((a=t.match(sq))&&Array.isArray(r)){let n=a[1];L(parseInt(a[2]||String(r.length))===r.length,`invalid array length for ${t}`,"value",r);let i=[];return r.forEach(function(t){i.push(e(n,t,!0))}),z(W(i))}L(!1,"invalid type","type",t)}(e,t[n]))}),q(W(r))}function sZ(e,t){return tE(sW(e,t))}function sY(e,t){return aF(sW(e,t))}let sX=new Uint8Array(32);sX.fill(0);let s$=BigInt(-1),s0=BigInt(0),s1=BigInt(1),s2=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),s3=eA(s1,32),s4=eA(s0,32),s8={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},s5=["name","version","chainId","verifyingContract","salt"];function s6(e){return function(t){return L("string"==typeof t,`invalid domain value for ${JSON.stringify(e)}`,`domain.${e}`,t),t}}let s9={name:s6("name"),version:s6("version"),chainId:function(e){let t=ep(e,"domain.chainId");return(L(t>=0,"invalid chain ID","domain.chainId",e),Number.isSafeInteger(t))?Number(t):eE(t)},verifyingContract:function(e){try{return tO(e).toLowerCase()}catch(e){}L(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",e)},salt:function(e){let t=z(e,"domain.salt");return L(32===t.length,'invalid domain value "salt"',"domain.salt",e),q(t)}};function s7(e){{let t=e.match(/^(u?)int(\d+)$/);if(t){let r=""===t[1],n=parseInt(t[2]);L(n%8==0&&0!==n&&n<=256&&t[2]===String(n),"invalid numeric width","type",e);let a=ex(s2,r?n-1:n),i=r?(a+s1)*s$:s0;return function(t){let n=ep(t,"value");return L(n>=i&&n<=a,`value out-of-bounds for ${e}`,"value",n),eA(r?eh(n,256):n,32)}}}{let t=e.match(/^bytes(\d+)$/);if(t){let r=parseInt(t[1]);return L(0!==r&&r<=32&&t[1]===String(r),"invalid bytes width","type",e),function(t){let n,a;return L(z(t).length===r,`invalid length for ${e}`,"value",t),(a=(n=z(t)).length%32)?W([n,sX.slice(a)]):q(n)}}}switch(e){case"address":return function(e){return ee(tO(e),32)};case"bool":return function(e){return e?s3:s4};case"bytes":return function(e){return tE(e)};case"string":return function(e){return t0(e)}}return null}function oe(e,t){return`${e}(${t.map(({name:e,type:t})=>t+" "+e).join(",")})`}function ot(e){let t=e.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);return t?{base:t[1],index:t[2]+t[4],array:{base:t[1],prefix:t[1]+t[2],count:t[5]?parseInt(t[5]):-1}}:{base:e}}class or{primaryType;#B;get types(){return JSON.parse(this.#B)}#S;#U;constructor(e){this.#S=new Map,this.#U=new Map;const t=new Map,r=new Map,n=new Map,a={};for(const i in Object.keys(e).forEach(i=>
1{a[i]=e[i].map(({name:t,type:r})=>{let{base:n,index:a}=ot(r);return"int"!==n||e.int||(n="int256"),"uint"!==n||e.uint||(n="uint256"),{name:t,type:n+(a||"")}}),t.set(i,new Set),r.set(i,[]),n.set(i,new Set)}),this.#B=JSON.stringify(a),a){const n=new Set;for(const s of a[i]){L(!n.has(s.name),`duplicate variable name ${JSON.stringify(s.name)} in ${JSON.stringify(i)}`,"types",e),n.add(s.name);const a=ot(s.type).base;L(a!==i,`circular type reference to ${JSON.stringify(a)}`,"types",e),s7(a)||(L(r.has(a),`unknown type ${JSON.stringify(a)}`,"types",e),r.get(a).push(i),t.get(i).add(a))}}const i=Array.from(r.keys()).filter(e=>0===r.get(e).length);for(const[s,o]of(L(0!==i.length,"missing primary type","types",e),L(1===i.length,`ambiguous primary types or unused types: ${i.map(e=>JSON.stringify(e)).join(", ")}`,"types",e),C(this,{primaryType:i[0]}),!function a(i,s){for(let o of(L(!s.has(i),`circular type reference to ${JSON.stringify(i)}`,"types",e),s.add(i),t.get(i)))if(r.has(o))for(let e of(a(o,s),s))n.get(e).add(o);s.delete(i)}(this.primaryType,new Set),n)){const e=Array.from(o);e.sort(),this.#S.set(s,oe(s,a[s])+e.map(e=>oe(e,a[e])).join(""))}}getEncoder(e){let t=this.#U.get(e);return t||(t=this.#D(e),this.#U.set(e,t)),t}#D(e){{let t=s7(e);if(t)return t}let t=ot(e).array;
1if(t){let e=t.prefix,r=this.getEncoder(e);return n=>{L(-1===t.count||t.count===n.length,`array length mismatch; expected length ${t.count}`,"value",n);let a=n.map(r);return this.#S.has(e)&&(a=a.map(tE)),tE(W(a))}}let r=this.types[e];if(r){let t=t0(this.#S.get(e));return e=>{let n=r.map(({name:t,type:r})=>{let n=this.getEncoder(r)(e[t]);return this.#S.has(r)?tE(n):n});return n.unshift(t),W(n)}}L(!1,`unknown type: ${e}`,"type",e)}encodeType(e){let t=this.#S.get(e);return L(t,`unknown type: ${JSON.stringify(e)}`,"name",e),t}encodeData(e,t){return this.getEncoder(e)(t)}hashStruct(e,t){return tE(this.encodeData(e,t))}encode(e){return this.encodeData(this.primaryType,e)}hash(e){return this.hashStruct(this.primaryType,e)}_visit(e,t,r){if(s7(e))return r(e,t);let n=ot(e).array;if(n)return L(-1===n.count||n.count===t.length,`array length mismatch; expected length ${n.count}`,"value",t),t.map(e=>this._visit(n.prefix,e,r));let a=this.types[e];if(a)return a.reduce((e,{name:n,type:a})=>(e[n]=this._visit(a,t[n],r),e),{});L(!1,`unknown type: ${e}`,"type",e)}visit(e,t){return this._visit(this.primaryType,e,t)}static from(e){return new or(e)}static getPrimaryType(e){return or.from(e).primaryType}static hashStruct(e,t,r){return or.from(t).hashStruct(e,r)}static hashDomain(e){let t=[];for(let r in e){if(null==e[r])continue;let n=s8[r];L(n,`invalid typed-data domain key: ${JSON.stringify(r)}`,"domain",e),t.push({name:r,type:n})}return t.sort((e,t)=>s5.indexOf(e.name)-s5.indexOf(t.name)),or.hashStruct("EIP712Domain",{EIP712Domain:t},e)}static encode(e,t,r){return W(["0x1901",or.hashDomain(e),or.from(t).hash(r)])}static hash(e,t,r){return tE(or.encode(e,t,r))}static async resolveNames(e,t,r,n){for(let t in e=Object.assign({},e))null==e[t]&&delete e[t];let a={};e.verifyingContract&&!Q(e.verifyingContract,20)&&(a[e.verifyingContract]="0x");let i=or.from(t);for(let e in i.visit(r,(e,t)=>("address"!==e||Q(t,20)||(a[t]="0x"),t)),a)a[e]=await n(e);return e.verifyingContract&&a[e.verifyingContract]&&(e.verifyingContract=a[e.verifyingContract]),r=i.visit(r,(e,t)=>"address"===e&&a[t]?a[t]:t),{domain:e,value:r}}static getPayload(e,t,r){or.hashDomain(e);let n={},a=[];s5.forEach(t=>{let r=e[t];null!=r&&(n[t]=s9[t](r),a.push({name:t,type:s8[t]}))});let i=or.from(t),s=Object.assign({},t=i.types);return L(null==s.EIP712Domain,"types must not contain EIP712Domain type","types.EIP712Domain",t),s.EIP712Domain=a,i.encode(r),{types:s,domain:n,primaryType:i.primaryType,message:i.visit(r,(e,t)=>{if(e.match(/^bytes(\d*)/))return q(z(t));if(e.match(/^u?int/))return ep(t).toString();switch(e){case"address":return t.toLowerCase();case"bool":return!!t;case"string":return L("string"==typeof t,"invalid string","value",t),t}L(!1,"unsupported type","type",e)})}}}function on(e,t,r,n){return sV(or.hash(e,t,r),n)}function oa(e){let t=new Uint8Array((e=atob(e)).length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return z(t)}function oi(e){let t=z(e),r="";for(let e=0;e<t.length;e++)r+=String.fromCharCode(t[e]);return btoa(r)}function os(e){return async function(t,r){let n;F(null==r||!r.cancelled,"request cancelled before sending","CANCELLED");let a=t.url.split(":")[0].toLowerCase();F("http"===a||"https"===a,`unsupported protocol ${a}`,"UNSUPPORTED_OPERATION",{info:{protocol:a},operation:"request"}),F("https"===a||!t.credentials||t.allowInsecureAuthentication,"insecure authorized connections unsupported","UNSUPPORTED_OPERATION",{operation:"request"});let i=null,s=new AbortController,o=setTimeout(()=>{i=D("request timeout","TIMEOUT"),s.abort()},t.timeout);r&&r.addListener(()=>{i=D("request cancelled","CANCELLED"),s.abort()});let l=Object.assign({},e,{method:t.method,headers:new Headers(Array.from(t)),body:t.body||void 0,signal:s.signal});try{n=await fetch(t.url,l)}catch(e){if(clearTimeout(o),i)throw i;throw e}clearTimeout(o);let c={};n.headers.forEach((e,t)=>{c[t.toLowerCase()]=e});let u=await n.arrayBuffer(),f=null==u?null:new Uint8Array(u);return{statusCode:n.status,statusMessage:n.statusText,headers:c,body:f}}}os({});let oo=os(),ol=RegExp("^data:([^;:]*)?(;base64)?,(.*)$","i"),oc=RegExp("^ipfs://(ipfs/)?(.*)$","i"),ou=!1;async function of(e,t){try{var r;let t=e.match(ol);if(!t)throw Error("invalid data");return new om(200,"OK",{"content-type":t[1]||"text/plain"},t[2]?oa(t[3]):(r=t[3],ei(r.replace(/%([0-9a-f][0-9a-f])/gi,(e,t)=>
1String.fromCharCode(parseInt(t,16))))))}catch(t){return new om(599,"BAD REQUEST (invalid data: URI)",{},null,new og(e))}}function od(e){return async function(t,r){try{let r=t.match(oc);if(!r)throw Error("invalid link");return new og(`${e}${r[2]}`)}catch(e){return new om(599,"BAD REQUEST (invalid IPFS URI)",{},null,new og(t))}}}let oh={data:of,ipfs:od("https://gateway.ipfs.io/ipfs/")},ox=new WeakMap;class op{#F;#L;constructor(e){this.#F=[],this.#L=!1,ox.set(e,()=>{if(!this.#L){for(let e of(this.#L=!0,this.#F))setTimeout(()=>{e()},0);this.#F=[]}})}addListener(e){F(!this.#L,"singal already cancelled","UNSUPPORTED_OPERATION",{operation:"fetchCancelSignal.addCancelListener"}),this.#F.push(e)}get cancelled(){return this.#L}checkSignal(){F(!this.cancelled,"cancelled","CANCELLED",{})}}function ob(e){if(null==e)throw Error("missing signal; should not happen");return e.checkSignal(),e}class og{#M;#G;#j;#V;#H;#z;#K;#Q;#_;#J;#q;#W;#Z;#Y;#X;get url(){return this.#z}set url(e){this.#z=String(e)}get body(){return null==this.#K?null:new Uint8Array(this.#K)}set body(e){if(null==e)this.#K=void 0,this.#Q=void 0;else if("string"==typeof e)this.#K=ei(e),this.#Q="text/plain";else if(e instanceof Uint8Array)this.#K=e,this.#Q="application/octet-stream";else if("object"==typeof e)this.#K=ei(JSON.stringify(e)),this.#Q="application/json";else throw Error("invalid body")}hasBody(){return null!=this.#K}get method(){return this.#V?this.#V:this.hasBody()?"POST":"GET"}set method(e){null==e&&(e=""),this.#V=String(e).toUpperCase()}get headers(){let e=Object.assign({},this.#j);return this.#_&&(e.authorization=`Basic ${oi(ei(this.#_))}`),this.allowGzip&&(e["accept-encoding"]="gzip"),null==e["content-type"]&&this.#Q&&(e["content-type"]=this.#Q),this.body&&(e["content-length"]=String(this.body.length)),e}getHeader(e){return this.headers[e.toLowerCase()]}setHeader(e,t){this.#j[String(e).toLowerCase()]=String(t)}clearHeaders(){this.#j={}}[Symbol.iterator](){let e=this.headers,t=Object.keys(e),r=0;return{next:()=>{if(r<t.length){let n=t[r++];return{value:[n,e[n]],done:!1}}return{value:void 0,done:!0}}}}get credentials(){return this.#_||null}setCredentials(e,t){L(!e.match(/:/),"invalid basic authentication username","username","[REDACTED]"),this.#_=`${e}:${t}`}get allowGzip(){return this.#G}set allowGzip(e){this.#G=!!e}get allowInsecureAuthentication(){return!!this.#M}set allowInsecureAuthentication(e){this.#M=!!e}get timeout(){return this.#H}set timeout(e){L(e>=0,"timeout must be non-zero","timeout",e),this.#H=e}get preflightFunc(){return this.#J||null}set preflightFunc(e){this.#J=e}get processFunc(){return this.#q||null}set processFunc(e){this.#q=e}get retryFunc(){return this.#W||null}set retryFunc(e){this.#W=e}get getUrlFunc(){return this.#X||oo}set getUrlFunc(e){this.#X=e}constructor(e){this.#z=String(e),this.#M=!1,this.#G=!0,this.#j={},this.#V="",this.#H=3e5,this.#Y={slotInterval:250,maxAttempts:12},this.#X=null}toString(){return`<FetchRequest method=${JSON.stringify(this.method)} url=${JSON.stringify(this.url)} headers=${JSON.stringify(this.headers)} body=${this.#K?q(this.#K):"null"}>`}setThrottleParams(e){null!=e.slotInterval&&(this.#Y.slotInterval=e.slotInterval),null!=e.maxAttempts&&(this.#Y.maxAttempts=e.maxAttempts)}async #$(e,t,r,n,a){var i;if(e>=this.#Y.maxAttempts)return a.makeServerError("exceeded maximum retry limit");F(oy()<=t,"timeout","TIMEOUT",{operation:"request.send",reason:"timeout",request:n}),r>0&&await (i=r,new Promise(e=>setTimeout(e,i)));let s=this.clone(),o=(s.url.split(":")[0]||"").toLowerCase();if(o in oh){let e=await oh[o](s.url,ob(n.#Z));if(e instanceof om){let t=e;if(this.processFunc){ob(n.#Z);try{t=await this.processFunc(s,t)}catch(e){(null==e.throttle||"number"!=typeof e.stall)&&t.makeServerError("error in post-processing function",e).assertOk()}}return t}s=e}this.preflightFunc&&(s=await this.preflightFunc(s));let l=await this.getUrlFunc(s,ob(n.#Z)),c=new om(l.statusCode,l.statusMessage,l.headers,l.body,n);if(301===c.statusCode||302===c.statusCode){try{let r=c.headers.location||"";return s.redirect(r).#$(e+1,t,0,n,c)}catch(e){}return c}if(429===c.statusCode&&(null==this.retryFunc||await this.retryFunc(s,c,e))){let r=c.headers["retry-after"],a=this.#Y.slotInterval*Math.trunc(Math.random()*Math.pow(2,e));return"string"==typeof r&&r.match(/^[1-9][0-9]*$/)&&(a=parseInt(r)),s.clone().#$(e+1,t,a,n,c)}if(this.processFunc){ob(n.#Z);try{c=await this.processFunc(s,c)}catch(a){(null==a.throttle||"number"!=typeof a.stall)&&c.makeServerError("error in post-processing function",a).assertOk();let r=this.#Y.slotInterval*Math.trunc(Math.random()*Math.pow(2,e));return a.stall>=0&&(r=a.stall),s.clone().#$(e+1,t,r,n,c)}}return c}send(){return F(null==this.#Z,"request already sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.send"}),this.#Z=new op(this),this.#$(0,oy()+this.timeout,0,this,new om(0,"",{},null,this))}cancel(){F(null!=this.#Z,"request has not been sent","UNSUPPORTED_OPERATION",{operation:"fetchRequest.cancel"});let e=ox.get(this);if(!e)throw Error("missing signal; should not happen");e()}redirect(e){let t=this.url.split(":")[0].toLowerCase(),r=e.split(":")[0].toLowerCase();F("GET"===this.method&&("https"!==t||"http"!==r)&&e.match(/^https?:/),"unsupported redirect","UNSUPPORTED_OPERATION",{operation:`redirect(${this.method} ${JSON.stringify(this.url)} => ${JSON.stringify(e)})`});let n=new og(e);return n.method="GET",n.allowGzip=this.allowGzip,n.timeout=this.timeout,n.#j=Object.assign({},this.#j),this.#K&&(n.#K=new Uint8Array(this.#K)),n.#Q=this.#Q,n}clone(){let e=new og(this.url);return e.#V=this.#V,this.#K&&(e.#K=this.#K),e.#Q=this.#Q,e.#j=Object.assign({},this.#j),e.#_=this.#_,this.allowGzip&&(e.allowGzip=!0),e.timeout=this.timeout,this.allowInsecureAuthentication&&(e.allowInsecureAuthentication=!0),e.#J=this.#J,e.#q=this.#q,e.#W=this.#W,e.#Y=Object.assign({},this.#Y),e.#X=this.#X,e}static lockConfig(){ou=!0}static getGateway(e){return oh[e.toLowerCase()]||null}static registerGateway(e,t){if("http"===(e=e.toLowerCase())||"https"===e)throw Error(`cannot intercept ${e}; use registerGetUrl`);if(ou)throw Error("gateways locked");oh[e]=t}static registerGetUrl(e){if(ou)throw Error("gateways locked");oo=e}static createGetUrlFunc(e){return os(e)}static createDataGateway(){return of}static createIpfsGatewayFunc(e){return od(e)}}class om{#ee;#et;#j;#K;#er;#en;toString(){return`<FetchResponse status=${this.statusCode} body=${this.#K?q(this.#K):"null"}>`}get statusCode(){return this.#ee}get statusMessage(){return this.#et}get headers(){return Object.assign({},this.#j)}get body(){return null==this.#K?null:new Uint8Array(this.#K)}get bodyText(){try{return null==this.#K?"":es(this.#K)}
1catch(e){F(!1,"response body is not valid UTF-8 data","UNSUPPORTED_OPERATION",{operation:"bodyText",info:{response:this}})}}get bodyJson(){try{return JSON.parse(this.bodyText)}catch(e){F(!1,"response body is not valid JSON","UNSUPPORTED_OPERATION",{operation:"bodyJson",info:{response:this}})}}[Symbol.iterator](){let e=this.headers,t=Object.keys(e),r=0;return{next:()=>{if(r<t.length){let n=t[r++];return{value:[n,e[n]],done:!1}}return{value:void 0,done:!0}}}}constructor(e,t,r,n,a){this.#ee=e,this.#et=t,this.#j=Object.keys(r).reduce((e,t)=>(e[t.toLowerCase()]=String(r[t]),e),{}),this.#K=null==n?null:new Uint8Array(n),this.#er=a||null,this.#en={message:""}}makeServerError(e,t){let r;e?r=`CLIENT ESCALATED SERVER ERROR (${this.statusCode} ${this.statusMessage}; ${e})`:(e=`${this.statusCode} ${this.statusMessage}`,r=`CLIENT ESCALATED SERVER ERROR (${e})`);let n=new om(599,r,this.headers,this.body,this.#er||void 0);return n.#en={message:e,error:t},n}throwThrottleError(e,t){null==t?t=-1:L(Number.isInteger(t)&&t>=0,"invalid stall timeout","stall",t);let r=Error(e||"throttling requests");throw C(r,{stall:t,throttle:!0}),r}getHeader(e){return this.headers[e.toLowerCase()]}hasBody(){return null!=this.#K}get request(){return this.#er}ok(){return""===this.#en.message&&this.statusCode>=200&&this.statusCode<300}assertOk(){if(this.ok())return;let{message:e,error:t}=this.#en;""===e&&(e=`server response ${this.statusCode} ${this.statusMessage}`);let r=null;this.request&&(r=this.request.url);let n=null;try{this.#K&&(n=es(this.#K))}catch(e){}F(!1,e,"SERVER_ERROR",{request:this.request||"unknown request",response:this,error:t,info:{requestUrl:r,responseBody:n,responseStatus:`${this.statusCode} ${this.statusMessage}`}})}}function oy(){return new Date().getTime()}let ow=new Set;function oA(e){ow.has(e)||(ow.add(e),console.log("========= NOTICE ========="),console.log(`Request-Rate Exceeded for ${e} (this message will not be repeated)`),console.log(""),console.log("The default API keys for each service are provided as a highly-throttled,"),console.log("community resource for low-traffic projects and early prototyping."),console.log(""),console.log("While your application will continue to function, we highly recommended"),console.log("signing up for your own API keys to improve performance, increase your"),console.log("request rate/limit and enable other perks, such as metrics and advanced APIs."),console.log(""),console.log("For more details: https://docs.ethers.org/api-keys/"),console.log("=========================="))}class ov{name;constructor(e){C(this,{name:e})}clone(){return new ov(this.name)}}class oE extends ov{effectiveBlock;txBase;txCreate;txDataZero;txDataNonzero;txAccessListStorageKey;txAccessListAddress;constructor(e,t){null==e&&(e=0),super(`org.ethers.network.plugins.GasCost#${e||0}`);const r={effectiveBlock:e};function n(e,n){let a=(t||{})[e];null==a&&(a=n),L("number"==typeof a,`invalud value for ${e}`,"costs",t),r[e]=a}n("txBase",21e3),n("txCreate",32e3),n("txDataZero",4),n("txDataNonzero",16),n("txAccessListStorageKey",1900),n("txAccessListAddress",2400),C(this,r)}clone(){return new oE(this.effectiveBlock,this)}}class ok extends ov{address;targetNetwork;constructor(e,t){super("org.ethers.plugins.network.Ens"),C(this,{address:e||"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e",targetNetwork:null==t?1:t})}clone(){return new ok(this.address,this.targetNetwork)}}class oN extends ov{#ea;get feeDataFunc(){return this.#ea}constructor(e){super("org.ethers.plugins.network.FeeData"),this.#ea=e}async getFeeData(e){return await this.#ea(e)}clone(){return new oN(this.#ea)}}class oP extends ov{#z;#ei;get url(){return this.#z}get processFunc(){return this.#ei}constructor(e,t){super("org.ethers.plugins.network.FetchUrlFeeDataPlugin"),this.#z=e,this.#ei=t}clone(){return this}}let oR=new Map;class oI{#es;#eo;#el;constructor(e,t){this.#es=e,this.#eo=ep(t),this.#el=new Map}toJSON(){return{name:this.name,chainId:String(this.chainId)}}get name(){return this.#es}set name(e){this.#es=e}get chainId(){return this.#eo}set chainId(e){this.#eo=ep(e,"chainId")}matches(e){if(null==e)return!1;if("string"==typeof e){try{return this.chainId===ep(e)}catch(e){}return this.name===e}if("number"==typeof e||"bigint"==typeof e){try{return this.chainId===ep(e)}catch(e){}return!1}if("object"==typeof e){if(null!=e.chainId){try{return this.chainId===ep(e.chainId)}catch(e){}return!1}if(null!=e.name)return this.name===e.name}return!1}get plugins(){return Array.from(this.#el.values())}
1attachPlugin(e){if(this.#el.get(e.name))throw Error(`cannot replace existing plugin: ${e.name} `);return this.#el.set(e.name,e.clone()),this}getPlugin(e){return this.#el.get(e)||null}getPlugins(e){return this.plugins.filter(t=>t.name.split("#")[0]===e)}clone(){let e=new oI(this.name,this.chainId);return this.plugins.forEach(t=>{e.attachPlugin(t.clone())}),e}computeIntrinsicGas(e){let t=this.getPlugin("org.ethers.plugins.network.GasCost")||new oE,r=t.txBase;if(null==e.to&&(r+=t.txCreate),e.data)for(let n=2;n<e.data.length;n+=2)"00"===e.data.substring(n,n+2)?r+=t.txDataZero:r+=t.txDataNonzero;if(e.accessList){let n=nn(e.accessList);for(let e in n)r+=t.txAccessListAddress+t.txAccessListStorageKey*n[e].storageKeys.length}return r}static from(e){if(function(){oC||(oC=!0,e("mainnet",1,{ensNetwork:1,altNames:["homestead"]}),e("ropsten",3,{ensNetwork:3}),e("rinkeby",4,{ensNetwork:4}),e("goerli",5,{ensNetwork:5}),e("kovan",42,{ensNetwork:42}),e("sepolia",0xaa36a7,{ensNetwork:0xaa36a7}),e("holesky",17e3,{ensNetwork:17e3}),e("classic",61,{}),e("classicKotti",6,{}),e("arbitrum",42161,{ensNetwork:1}),e("arbitrum-goerli",421613,{}),e("arbitrum-sepolia",421614,{}),e("base",8453,{ensNetwork:1}),e("base-goerli",84531,{}),e("base-sepolia",84532,{}),e("bnb",56,{ensNetwork:1}),e("bnbt",97,{}),e("filecoin",314,{}),e("filecoin-calibration",314159,{}),e("linea",59144,{ensNetwork:1}),e("linea-goerli",59140,{}),e("linea-sepolia",59141,{}),e("matic",137,{ensNetwork:1,plugins:[oO("https://gasstation.polygon.technology/v2")]}),e("matic-amoy",80002,{}),e("matic-mumbai",80001,{altNames:["maticMumbai","maticmum"],plugins:[oO("https://gasstation-testnet.polygon.technology/v2")]}),e("optimism",10,{ensNetwork:1,plugins:[]}),e("optimism-goerli",420,{}),e("optimism-sepolia",0xaa37dc,{}),e("xdai",100,{ensNetwork:1}));function e(e,t,r){let n=function(){let n=new oI(e,t);return null!=r.ensNetwork&&n.attachPlugin(new ok(null,r.ensNetwork)),n.attachPlugin(new oE),(r.plugins||[]).forEach(e=>{n.attachPlugin(e)}),n};oI.register(e,n),oI.register(t,n),r.altNames&&r.altNames.forEach(e=>{oI.register(e,n)})}}(),null==e)return oI.from("mainnet");if("number"==typeof e&&(e=BigInt(e)),"string"==typeof e||"bigint"==typeof e){let t=oR.get(e);if(t)return t();if("bigint"==typeof e)return new oI("unknown",e);L(!1,"unknown network","network",e)}if("function"==typeof e.clone)return e.clone();if("object"==typeof e){L("string"==typeof e.name&&"number"==typeof e.chainId,"invalid network object name or chainId","network",e);let t=new oI(e.name,e.chainId);return(e.ensAddress||null!=e.ensNetwork)&&t.attachPlugin(new ok(e.ensAddress,e.ensNetwork)),t}L(!1,"invalid network","network",e)}static register(e,t){"number"==typeof e&&(e=BigInt(e));let r=oR.get(e);r&&L(!1,`conflicting network for ${JSON.stringify(r.name)}`,"nameOrChainId",e),oR.set(e,t)}}function oT(e,t){let r=String(e);if(!r.match(/^[0-9.]+$/))throw Error(`invalid gwei value: ${e}`);let n=r.split(".");if(1===n.length&&n.push(""),2!==n.length)throw Error(`invalid gwei value: ${e}`);for(;n[1].length<t;)n[1]+="0";if(n[1].length>9){let e=BigInt(n[1].substring(0,9));!n[1].substring(9).match(/^0+$/)&&e++,n[1]=e.toString()}return BigInt(n[0]+n[1])}function oO(e){return new oP(e,async(e,t,r)=>{let n;r.setHeader("User-Agent","ethers");try{let[t,a]=await Promise.all([r.send(),e()]),i=(n=t).bodyJson.standard;return{gasPrice:a.gasPrice,maxFeePerGas:oT(i.maxFee,9),maxPriorityFeePerGas:oT(i.maxPriorityFee,9)}}catch(e){F(!1,`error encountered with polygon gas station (${JSON.stringify(r.url)})`,"SERVER_ERROR",{request:r,response:n,error:e})}})}let oC=!1;function oB(e){return{address:tO(e.address),nonce:ep(null!=e.nonce?e.nonce:0),chainId:ep(null!=e.chainId?e.chainId:0),signature:ii.from(e.signature)}}function oS(e,t,r){let n=0;for(let a=0;a<r;a++)n=256*n+e[t+a];return n}function oU(e,t,r,n){let a=[];for(;r<t+1+n;){let i=oD(e,r);a.push(i.result),F((r+=i.consumed)<=t+1+n,"child data too short","BUFFER_OVERRUN",{buffer:e,length:n,offset:t})}return{consumed:1+n,result:a}}function oD(e,t){F(0!==e.length,"data too short","BUFFER_OVERRUN",{buffer:e,length:0,offset:1});let r=t=>{F(t<=e.length,"data short segment too short","BUFFER_OVERRUN",{buffer:e,length:e.length,offset:t})};if(e[t]>=248){let n=e[t]-247;r(t+1+n);let a=oS(e,t+1,n);return r(t+1+n+a),oU(e,t,t+1+n,n+a)}if(e[t]>=192){let n=e[t]-192;return r(t+1+n),oU(e,t,t+1,n)}if(e[t]>=184){let n=e[t]-183;r(t+1+n);let a=oS(e,t+1,n);r(t+1+n+a);let i=q(e.slice(t+1+n,t+1+n+a));return{consumed:1+n+a,result:i}}if(e[t]>=128){let n=e[t]-128;r(t+1+n);let a=q(e.slice(t+1,t+1+n));return{consumed:1+n,result:a}}return{consumed:1,result:function(e){let t=e.toString(16);for(;t.length<2;)t="0"+t;return"0x"+t}(e[t])}}function oF(e){let t=z(e,"data"),r=oD(t,0);return L(r.consumed===t.length,"unexpected junk after rlp payload","data",e),r.result}let oL=BigInt(0),oM=BigInt(2),oG=BigInt(27),oj=BigInt(28),oV=BigInt(35),oH=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),oz=Symbol.for("nodejs.util.inspect.custom");function oK(e,t){let r=e.toString(16);for(;r.length<2;)r="0"+r;return"0x"+(r+=aF(t).substring(4))}function oQ(e){return"0x"===e?null:tO(e)}function o_(e,t){try{return nn(e)}catch(r){L(!1,r.message,t,e)}}function oJ(e,t){return"0x"===e?0:ey(e,t)}function oq(e,t){if("0x"===e)return oL;let r=ep(e,t);return L(r<=oH,"value exceeds uint size",t,r),r}function oW(e,t){let r=ep(e,"value"),n=ev(r);return L(n.length<=32,"value too large",`tx.${t}`,r),n}function oZ(e){return nn(e).map(e=>[e.address,e.storageKeys])}function oY(e,t){let r;
1try{if(r=oJ(t[0],"yParity"),0!==r&&1!==r)throw Error("bad yParity")}catch(e){L(!1,"invalid yParity","yParity",t[0])}let n=ee(t[1],32),a=ee(t[2],32);e.signature=ii.from({r:n,s:a,yParity:r})}class oX{#ec;#eu;#t;#ef;#ed;#eh;#ex;#ep;#eb;#eo;#eg;#em;#ey;#ew;#eA;#ev;#eE;#ek;get type(){return this.#ec}set type(e){switch(e){case null:this.#ec=null;break;case 0:case"legacy":this.#ec=0;break;case 1:case"berlin":case"eip-2930":this.#ec=1;break;case 2:case"london":case"eip-1559":this.#ec=2;break;case 3:case"cancun":case"eip-4844":this.#ec=3;break;case 4:case"pectra":case"eip-7702":this.#ec=4;break;default:L(!1,"unsupported transaction type","type",e)}}get typeName(){switch(this.type){case 0:return"legacy";case 1:return"eip-2930";case 2:return"eip-1559";case 3:return"eip-4844";case 4:return"eip-7702"}return null}get to(){let e=this.#eu;return null==e&&3===this.type?r4:e}set to(e){this.#eu=null==e?null:tO(e)}get nonce(){return this.#ef}set nonce(e){this.#ef=ey(e,"value")}get gasLimit(){return this.#ed}set gasLimit(e){this.#ed=ep(e)}get gasPrice(){let e=this.#eh;return null==e&&(0===this.type||1===this.type)?oL:e}set gasPrice(e){this.#eh=null==e?null:ep(e,"gasPrice")}get maxPriorityFeePerGas(){let e=this.#ex;return null==e?2===this.type||3===this.type?oL:null:e}set maxPriorityFeePerGas(e){this.#ex=null==e?null:ep(e,"maxPriorityFeePerGas")}get maxFeePerGas(){let e=this.#ep;return null==e?2===this.type||3===this.type?oL:null:e}set maxFeePerGas(e){this.#ep=null==e?null:ep(e,"maxFeePerGas")}get data(){return this.#t}set data(e){this.#t=q(e)}get value(){return this.#eb}set value(e){this.#eb=ep(e,"value")}get chainId(){return this.#eo}set chainId(e){this.#eo=ep(e)}get signature(){return this.#eg||null}set signature(e){this.#eg=null==e?null:ii.from(e)}isValid(){let e=this.signature;if(e&&!e.isValid())return!1;let t=this.authorizationList;if(t){for(let e of t)if(!e.signature.isValid())return!1}return!0}get accessList(){let e=this.#em||null;return null==e?1===this.type||2===this.type||3===this.type?[]:null:e}set accessList(e){this.#em=null==e?null:nn(e)}get authorizationList(){let e=this.#eE||null;return null==e&&4===this.type?[]:e}set authorizationList(e){this.#eE=null==e?null:e.map(e=>oB(e))}get maxFeePerBlobGas(){let e=this.#ey;return null==e&&3===this.type?oL:e}set maxFeePerBlobGas(e){this.#ey=null==e?null:ep(e,"maxFeePerBlobGas")}get blobVersionedHashes(){let e=this.#ew;return null==e&&3===this.type?[]:e}set blobVersionedHashes(e){if(null!=e){L(Array.isArray(e),"blobVersionedHashes must be an Array","value",e),e=e.slice();for(let t=0;t<e.length;t++)L(Q(e[t],32),"invalid blobVersionedHash",`value[${t}]`,e[t])}this.#ew=e}get blobs(){return null==this.#ev?null:this.#ev.map(e=>Object.assign({},e))}set blobs(e){if(null==e){this.#ev=null;return}let t=[],r=[];for(let n=0;n<e.length;n++){let a=e[n];if(_(a)){F(this.#eA,"adding a raw blob requires a KZG library","UNSUPPORTED_OPERATION",{operation:"set blobs()"});let e=z(a);if(L(e.length<=131072,"blob is too large",`blobs[${n}]`,a),131072!==e.length){let t=new Uint8Array(131072);t.set(e),e=t}let i=this.#eA.blobToKzgCommitment(e),s=q(this.#eA.computeBlobKzgProof(e,i));t.push({data:q(e),commitment:q(i),proof:s}),r.push(oK(1,i))}else{let e=q(a.data),n=q(a.commitment),i=q(a.proof);t.push({data:e,commitment:n,proof:i}),r.push(oK(1,n))}}this.#ev=t,this.#ew=r}get kzg(){return this.#eA}set kzg(e){if(null==e)this.#eA=null;else this.#eA={blobToKzgCommitment:t=>{if("computeBlobProof"in e){if("blobToKzgCommitment"in e&&"function"==typeof e.blobToKzgCommitment)return z(e.blobToKzgCommitment(q(t)))}else if("blobToKzgCommitment"in e&&"function"==typeof e.blobToKzgCommitment)return z(e.blobToKzgCommitment(t));if("blobToKZGCommitment"in e&&"function"==typeof e.blobToKZGCommitment)return z(e.blobToKZGCommitment(q(t)));L(!1,"unsupported KZG library","kzg",e)},computeBlobKzgProof:(t,r)=>"computeBlobProof"in e&&"function"==typeof e.computeBlobProof?z(e.computeBlobProof(q(t),q(r))):"computeBlobKzgProof"in e&&"function"==typeof e.computeBlobKzgProof?e.computeBlobKzgProof(t,r):"computeBlobKZGProof"in e&&"function"==typeof e.computeBlobKZGProof?z(e.computeBlobKZGProof(q(t),q(r))):void L(!1,"unsupported KZG library","kzg",e)}}get blobWrapperVersion(){return this.#ek}set blobWrapperVersion(e){this.#ek=e}constructor(){this.#ec=null,this.#eu=null,this.#ef=0,this.#ed=oL,this.#eh=null,this.#ex=null,this.#ep=null,this.#t="0x",this.#eb=oL,this.#eo=oL,this.#eg=null,this.#em=null,this.#ey=null,this.#ew=null,this.#eA=null,this.#ev=null,this.#eE=null,this.#ek=null}get hash(){return null==this.signature?null:tE(this.#eN(!0,!1))}get unsignedHash(){return tE(this.unsignedSerialized)}get from(){return null==this.signature?null:sV(this.unsignedHash,this.signature.getCanonical())}get fromPublicKey(){return null==this.signature?null:sa.recoverPublicKey(this.unsignedHash,this.signature.getCanonical())}isSigned(){return null!=this.signature}#eN(e,t){F(!e||null!=this.signature,"cannot serialize unsigned transaction; maybe you meant .unsignedSerialized","UNSUPPORTED_OPERATION",{operation:".serialized"});let r=e?this.signature:null;switch(this.inferType()){case 0:return function(e,t){let r=[oW(e.nonce,"nonce"),oW(e.gasPrice||0,"gasPrice"),oW(e.gasLim
1it,"gasLimit"),e.to||"0x",oW(e.value,"value"),e.data],n=oL;if(e.chainId!=oL)n=ep(e.chainId,"tx.chainId"),L(!t||null==t.networkV||t.legacyChainId===n,"tx.chainId/sig.v mismatch","sig",t);else if(e.signature){let t=e.signature.legacyChainId;null!=t&&(n=t)}if(!t)return n!==oL&&(r.push(ev(n)),r.push("0x"),r.push("0x")),rY(r);let a=BigInt(27+t.yParity);return n!==oL?a=ii.getChainIdV(n,t.v):BigInt(t.v)!==a&&L(!1,"tx.chainId/sig.v mismatch","sig",t),r.push(ev(a)),r.push(ev(t.r)),r.push(ev(t._s)),rY(r)}(this,r);case 1:let n;return n=[oW(this.chainId,"chainId"),oW(this.nonce,"nonce"),oW(this.gasPrice||0,"gasPrice"),oW(this.gasLimit,"gasLimit"),this.to||"0x",oW(this.value,"value"),this.data,oZ(this.accessList||[])],r&&(n.push(oW(r.yParity,"recoveryParam")),n.push(ev(r.r)),n.push(ev(r.s))),W(["0x01",rY(n)]);case 2:let a;return a=[oW(this.chainId,"chainId"),oW(this.nonce,"nonce"),oW(this.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),oW(this.maxFeePerGas||0,"maxFeePerGas"),oW(this.gasLimit,"gasLimit"),this.to||"0x",oW(this.value,"value"),this.data,oZ(this.accessList||[])],r&&(a.push(oW(r.yParity,"yParity")),a.push(ev(r.r)),a.push(ev(r.s))),W(["0x02",rY(a)]);case 3:return function(e,t,r){let n=[oW(e.chainId,"chainId"),oW(e.nonce,"nonce"),oW(e.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),oW(e.maxFeePerGas||0,"maxFeePerGas"),oW(e.gasLimit,"gasLimit"),e.to||r4,oW(e.value,"value"),e.data,oZ(e.accessList||[]),oW(e.maxFeePerBlobGas||0,"maxFeePerBlobGas"),function(e,t){L(Array.isArray(e),`invalid ${t}`,"value",e);for(let t=0;t<e.length;t++)L(Q(e[t],32),"invalid ${ param } hash",`value[${t}]`,e[t]);return e}(e.blobVersionedHashes||[],"blobVersionedHashes")];if(t&&(n.push(oW(t.yParity,"yParity")),n.push(ev(t.r)),n.push(ev(t.s)),r)){if(null!=e.blobWrapperVersion){let t=ev(e.blobWrapperVersion),a=[];for(let{proof:e}of r){let t=z(e),r=t.length/128;for(let e=0;e<t.length;e+=r)a.push(t.subarray(e,e+r))}return W(["0x03",rY([n,t,r.map(e=>e.data),r.map(e=>e.commitment),a])])}return W(["0x03",rY([n,r.map(e=>e.data),r.map(e=>e.commitment),r.map(e=>e.proof)])])}return W(["0x03",rY(n)])}(this,r,t?this.blobs:null);case 4:let i=[oW(this.chainId,"chainId"),oW(this.nonce,"nonce"),oW(this.maxPriorityFeePerGas||0,"maxPriorityFeePerGas"),oW(this.maxFeePerGas||0,"maxFeePerGas"),oW(this.gasLimit,"gasLimit"),this.to||"0x",oW(this.value,"value"),this.data,oZ(this.accessList||[]),(this.authorizationList||[]).map(e=>[oW(e.chainId,"chainId"),e.address,oW(e.nonce,"nonce"),oW(e.signature.yParity,"yParity"),ev(e.signature.r),ev(e.signature._s)])];return r&&(i.push(oW(r.yParity,"yParity")),i.push(ev(r.r)),i.push(ev(r.s))),W(["0x04",rY(i)])}F(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:".serialized"})}get serialized(){return this.#eN(!0,!0)}get unsignedSerialized(){return this.#eN(!1,!1)}inferType(){let e=this.inferTypes();return e.indexOf(2)>=0?2:e.pop()}inferTypes(){let e=null!=this.gasPrice,t=null!=this.maxFeePerGas||null!=this.maxPriorityFeePerGas,r=null!=this.accessList,n=null!=this.#ey||this.#ew;null!=this.maxFeePerGas&&null!=this.maxPriorityFeePerGas&&F(this.maxFeePerGas>=this.maxPriorityFeePerGas,"priorityFee cannot be more than maxFee","BAD_DATA",{value:this}),F(!t||0!==this.type&&1!==this.type,"transaction type cannot have maxFeePerGas or maxPriorityFeePerGas","BAD_DATA",{value:this}),F(0!==this.type||!r,"legacy transaction cannot have accessList","BAD_DATA",{value:this});let a=[];return null!=this.type?a.push(this.type):this.authorizationList&&this.authorizationList.length?a.push(4):t?a.push(2):e?(a.push(1),r||a.push(0)):r?(a.push(1),a.push(2)):(n&&this.to||(a.push(0),a.push(1),a.push(2)),a.push(3)),a.sort(),a}isLegacy(){return 0===this.type}isBerlin(){return 1===this.type}isLondon(){return 2===this.type}isCancun(){return 3===this.type}clone(){return oX.from(this)}toJSON(){let e=e=>null==e?null:e.toString();return{type:this.type,to:this.to,data:this.data,nonce:this.nonce,gasLimit:e(this.gasLimit),gasPrice:e(this.gasPrice),maxPriorityFeePerGas:e(this.maxPriorityFeePerGas),maxFeePerGas:e(this.maxFeePerGas),value:e(this.value),chainId:e(this.chainId),sig:this.signature?this.signature.toJSON():null,accessList:this.accessList}}[oz](){return this.toString()}toString(){let e=[],t=t=>{let r=this[t];"string"==typeof r&&(r=JSON.stringify(r)),e.push(`${t}: ${r}`)};this.type&&t("type"),t("to"),t("data"),t("nonce"),t("gasLimit"),t("value"),null!=this.chainId&&t("chainId"),this.signature&&(t("from"),e.push(`
1signature: ${this.signature.toString()}`));let r=this.authorizationList;if(r){let t=[];for(let e of r){let r=[];r.push(`address: ${JSON.stringify(e.address)}`),null!=e.nonce&&r.push(`nonce: ${e.nonce}`),null!=e.chainId&&r.push(`chainId: ${e.chainId}`),e.signature&&r.push(`signature: ${e.signature.toString()}`),t.push(`Authorization { ${r.join(", ")} }`)}e.push(`authorizations: [ ${t.join(", ")} ]`)}return`Transaction { ${e.join(", ")} }`}static from(e){if(null==e)return new oX;if("string"==typeof e){let t=z(e);if(t[0]>=127)return oX.from(function(e){let t=oF(e);L(Array.isArray(t)&&(9===t.length||6===t.length),"invalid field count for legacy transaction","data",e);let r={type:0,nonce:oJ(t[0],"nonce"),gasPrice:oq(t[1],"gasPrice"),gasLimit:oq(t[2],"gasLimit"),to:oQ(t[3]),value:oq(t[4],"value"),data:q(t[5]),chainId:oL};if(6===t.length)return r;let n=oq(t[6],"v"),a=oq(t[7],"r"),i=oq(t[8],"s");if(a===oL&&i===oL)r.chainId=n;else{let e=(n-oV)/oM;e<oL&&(e=oL),r.chainId=e,L(e!==oL||n===oG||n===oj,"non-canonical legacy v","v",t[6]),r.signature=ii.from({r:ee(t[7],32),s:ee(t[8],32),v:n})}return r}(t));switch(t[0]){case 1:let r,n;return oX.from((L(Array.isArray(r=oF(z(t).slice(1)))&&(8===r.length||11===r.length),"invalid field count for transaction type: 1","data",q(t)),n={type:1,chainId:oq(r[0],"chainId"),nonce:oJ(r[1],"nonce"),gasPrice:oq(r[2],"gasPrice"),gasLimit:oq(r[3],"gasLimit"),to:oQ(r[4]),value:oq(r[5],"value"),data:q(r[6]),accessList:o_(r[7],"accessList")},8===r.length||oY(n,r.slice(8)),n));case 2:let a,i;return oX.from((L(Array.isArray(a=oF(z(t).slice(1)))&&(9===a.length||12===a.length),"invalid field count for transaction type: 2","data",q(t)),i={type:2,chainId:oq(a[0],"chainId"),nonce:oJ(a[1],"nonce"),maxPriorityFeePerGas:oq(a[2],"maxPriorityFeePerGas"),maxFeePerGas:oq(a[3],"maxFeePerGas"),gasPrice:null,gasLimit:oq(a[4],"gasLimit"),to:oQ(a[5]),value:oq(a[6],"value"),data:q(a[7]),accessList:o_(a[8],"accessList")},9===a.length||oY(i,a.slice(9)),i));case 3:return oX.from(function(e){let t=oF(z(e).slice(1)),r="3",n=null,a=null;if(4===t.length&&Array.isArray(t[0])){r="3 (network format)";let e=t[1],n=t[2],i=t[3];L(Array.isArray(e),"invalid network format: blobs not an array","fields[1]",e),L(Array.isArray(n),"invalid network format: commitments not an array","fields[2]",n),L(Array.isArray(i),"invalid network format: proofs not an array","fields[3]",i),L(e.length===n.length,"invalid network format: blobs/commitments length mismatch","fields",t),L(e.length===i.length,"invalid network format: blobs/proofs length mismatch","fields",t),a=[];for(let r=0;r<t[1].length;r++)a.push({data:e[r],commitment:n[r],proof:i[r]});t=t[0]}else if(5===t.length&&Array.isArray(t[0])){r="3 (EIP-7594 network format)",n=ey(t[1]);let e=t[2],i=t[3],s=t[4];L(1===n,`unsupported EIP-7594 network format version: ${n}`,"fields[1]",n),L(Array.isArray(e),"invalid EIP-7594 network format: blobs not an array","fields[2]",e),L(Array.isArray(i),"invalid EIP-7594 network format: commitments not an array","fields[3]",i),L(Array.isArray(s),"invalid EIP-7594 network format: proofs not an array","fields[4]",s),L(e.length===i.length,"invalid network format: blobs/commitments length mismatch","fields",t),L(128*e.length===s.length,"invalid network format: blobs/proofs length mismatch","fields",t),a=[];for(let t=0;t<e.length;t++){let r=[];for(let e=0;e<128;e++)r.push(s[128*t+e]);a.push({data:e[t],commitment:i[t],proof:W(r)})}t=t[0]}L(Array.isArray(t)&&(11===t.length||14===t.length),`invalid field count for transaction type: ${r}`,"data",q(e));let i={type:3,chainId:oq(t[0],"chainId"),nonce:oJ(t[1],"nonce"),maxPriorityFeePerGas:oq(t[2],"maxPriorityFeePerGas"),maxFeePerGas:oq(t[3],"maxFeePerGas"),gasPrice:null,gasLimit:oq(t[4],"gasLimit"),to:oQ(t[5]),value:oq(t[6],"value"),data:q(t[7]),accessList:o_(t[8],"accessList"),maxFeePerBlobGas:oq(t[9],"maxFeePerBlobGas"),blobVersionedHashes:t[10],blobWrapperVersion:n};a&&(i.blobs=a),L(null!=i.to,`invalid address for transaction type: ${r}`,"data",e),L(Array.isArray(i.blobVersionedHashes),"invalid blobVersionedHashes: must be an array","data",e);for(let t=0;t<i.blobVersionedHashes.length;t++)L(Q(i.blobVersionedHashes[t],32),`invalid blobVersionedHash at index ${t}: must be length 32`,"data",e);return 11===t.length||oY(i,t.slice(11)),i}(t));case 4:let s,o;return oX.from((L(Array.isArray(s=oF(z(t).slice(1)))&&(10===s.length||13===s.length),"invalid field count for transaction type: 4","data",q(t)),o={type:4,chainId:oq(s[0],"chainId"),nonce:oJ(s[1],"n
1once"),maxPriorityFeePerGas:oq(s[2],"maxPriorityFeePerGas"),maxFeePerGas:oq(s[3],"maxFeePerGas"),gasPrice:null,gasLimit:oq(s[4],"gasLimit"),to:oQ(s[5]),value:oq(s[6],"value"),data:q(s[7]),accessList:o_(s[8],"accessList"),authorizationList:function(e,t){try{if(!Array.isArray(e))throw Error("authorizationList: invalid array");let t=[];for(let r=0;r<e.length;r++){let n=e[r];if(!Array.isArray(n))throw Error(`authorization[${r}]: invalid array`);if(6!==n.length)throw Error(`authorization[${r}]: wrong length`);if(!n[1])throw Error(`authorization[${r}]: null address`);t.push({address:oQ(n[1]),nonce:oq(n[2],"nonce"),chainId:oq(n[0],"chainId"),signature:ii.from({yParity:oJ(n[3],"yParity"),r:ee(n[4],32),s:ee(n[5],32)})})}return t}catch(r){L(!1,r.message,t,e)}}(s[9],"authorizationList")},10===s.length||oY(o,s.slice(10)),o))}F(!1,"unsupported transaction type","UNSUPPORTED_OPERATION",{operation:"from"})}let t=new oX;return null!=e.type&&(t.type=e.type),null!=e.to&&(t.to=e.to),null!=e.nonce&&(t.nonce=e.nonce),null!=e.gasLimit&&(t.gasLimit=e.gasLimit),null!=e.gasPrice&&(t.gasPrice=e.gasPrice),null!=e.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=e.maxPriorityFeePerGas),null!=e.maxFeePerGas&&(t.maxFeePerGas=e.maxFeePerGas),null!=e.maxFeePerBlobGas&&(t.maxFeePerBlobGas=e.maxFeePerBlobGas),null!=e.data&&(t.data=e.data),null!=e.value&&(t.value=e.value),null!=e.chainId&&(t.chainId=e.chainId),null!=e.signature&&(t.signature=ii.from(e.signature)),null!=e.accessList&&(t.accessList=e.accessList),null!=e.authorizationList&&(t.authorizationList=e.authorizationList),null!=e.blobVersionedHashes&&(t.blobVersionedHashes=e.blobVersionedHashes),null!=e.kzg&&(t.kzg=e.kzg),null!=e.blobWrapperVersion&&(t.blobWrapperVersion=e.blobWrapperVersion),null!=e.blobs&&(t.blobs=e.blobs),null!=e.hash&&(L(t.isSigned(),"unsigned transaction cannot define '.hash'","tx",e),L(t.hash===e.hash,"hash mismatch","tx",e)),null!=e.from&&(L(t.isSigned(),"unsigned transaction cannot define '.from'","tx",e),L(t.from.toLowerCase()===(e.from||"").toLowerCase(),"from mismatch","tx",e)),t}}let o$="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",o0=null,o1=BigInt(0),o2=BigInt(58);function o3(e){let t=z(e),r=em(t),n="";for(;r;)n=o$[Number(r%o2)]+n,r/=o2;for(let e=0;e<t.length&&!t[e];e++)n=o$[0]+n;return n}function o4(e){let t=o1;for(let r=0;r<e.length;r++)t*=o2,t+=function(e){if(null==o0){o0={};for(let e=0;e<o$.length;e++)o0[o$[e]]=BigInt(e)}let t=o0[e];return L(null!=t,"invalid base58 value","letter",e),t}(e[r]);return t}function o8(e){return e.match(/^ipfs:\/\/ipfs\//i)?e=e.substring(12):e.match(/^ipfs:\/\//i)?e=e.substring(7):L(!1,"unsupported IPFS format","link",e),`https://gateway.ipfs.io/ipfs/${e}`}class o5{name;constructor(e){C(this,{name:e})}connect(e){return this}supportsCoinType(e){return!1}async encodeAddress(e,t){throw Error("unsupported coin")}async decodeAddress(e,t){throw Error("unsupported coin")}}let o6=RegExp("^(ipfs)://(.*)$","i"),o9=[RegExp("^(https)://(.*)$","i"),RegExp("^(data):(.*)$","i"),o6,RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$","i")];class o7{provider;address;name;#eP;#eR;constructor(e,t,r){C(this,{provider:e,address:t,name:r}),this.#eP=null,this.#eR=new nQ(t,["function supportsInterface(bytes4) view returns (bool)","function resolve(bytes, bytes) view returns (bytes)","function addr(bytes32) view returns (address)","function addr(bytes32, uint) view returns (bytes)","function text(bytes32, string) view returns (string)","function contenthash(bytes32) view returns (bytes)"],e)}async supportsWildcard(){return null==this.#eP&&(this.#eP=(async()=>{try{return await this.#eR.supportsInterface("0x9061b923")}catch(e){if(S(e,"CALL_EXCEPTION"))return!1;throw this.#eP=null,e}})()),await this.#eP}async #eI(e,t){t=(t||[]).slice();let r=this.#eR.interface;t.unshift(sM(this.name));let n=null;await this.supportsWildcard()&&(F(n=r.getFunction(e),"missing fragment","UNKNOWN_ERROR",{info:{funcName:e}}),t=[sG(this.name,255),r.encodeFunctionData(n,t)],e="resolve(bytes,bytes)"),t.push({enableCcipRead:!0});try{let a=await this.#eR[e](...t);if(n)return r.decodeFunctionResult(n,a)[0];return a}catch(e){if(!S(e,"CALL_EXCEPTION"))throw e}return null}async getAddress(e){if(null==e&&(e=60),60===e)try{let e=await this.#eI("addr(bytes32)");if(null==e||e===r4)return null;return e}catch(e){if(S(e,"CALL_EXCEPTION"))return null;throw e}if(e>=0&&e<0x80000000){let t=e+0x80000000,r=await this.#eI("addr(bytes32,uint)",[t]);
1if(Q(r,20))return tO(r)}let t=null;for(let r of this.provider.plugins)if(r instanceof o5&&r.supportsCoinType(e)){t=r;break}if(null==t)return null;let r=await this.#eI("addr(bytes32,uint)",[e]);if(null==r||"0x"===r)return null;let n=await t.decodeAddress(e,r);if(null!=n)return n;F(!1,"invalid coin data","UNSUPPORTED_OPERATION",{operation:`getAddress(${e})`,info:{coinType:e,data:r}})}async getText(e){let t=await this.#eI("text(bytes32,string)",[e]);return null==t||"0x"===t?null:t}async getContentHash(){let e=await this.#eI("contenthash(bytes32)");if(null==e||"0x"===e)return null;let t=e.match(/^0x(e3010170|e5010172)(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);if(t){let e="e3010170"===t[1]?"ipfs":"ipns",r=parseInt(t[4],16);if(t[5].length===2*r)return`${e}://${o3("0x"+t[2])}`}let r=e.match(/^0xe40101fa011b20([0-9a-f]*)$/);if(r&&64===r[1].length)return`bzz://${r[1]}`;F(!1,"invalid or unsupported content hash data","UNSUPPORTED_OPERATION",{operation:"getContentHash()",info:{data:e}})}async getAvatar(){return(await this._getAvatar()).url}async _getAvatar(){let e=[{type:"name",value:this.name}];try{let t=await this.getText("avatar");if(null==t)return e.push({type:"!avatar",value:""}),{url:null,linkage:e};e.push({type:"avatar",value:t});for(let r=0;r<o9.length;r++){let n=t.match(o9[r]);if(null==n)continue;let a=n[1].toLowerCase();switch(a){case"https":case"data":return e.push({type:"url",value:t}),{linkage:e,url:t};case"ipfs":{let r=o8(t);return e.push({type:"ipfs",value:t}),e.push({type:"url",value:r}),{linkage:e,url:r}}case"erc721":case"erc1155":{let r="erc721"===a?"tokenURI(uint256)":"uri(uint256)";e.push({type:a,value:t});let i=await this.getAddress();if(null==i)return e.push({type:"!owner",value:""}),{url:null,linkage:e};let s=(n[2]||"").split("/");if(2!==s.length)return e.push({type:`!${a}caip`,value:n[2]||""}),{url:null,linkage:e};let o=s[1],l=new nQ(s[0],["function tokenURI(uint) view returns (string)","function ownerOf(uint) view returns (address)","function uri(uint) view returns (string)","function balanceOf(address, uint256) view returns (uint)"],this.provider);if("erc721"===a){let t=await l.ownerOf(o);if(i!==t)return e.push({type:"!owner",value:t}),{url:null,linkage:e};e.push({type:"owner",value:t})}else if("erc1155"===a){let t=await l.balanceOf(i,o);
1if(!t)return e.push({type:"!balance",value:"0"}),{url:null,linkage:e};e.push({type:"balance",value:t.toString()})}let c=await l[r](o);if(null==c||"0x"===c)return e.push({type:"!metadata-url",value:""}),{url:null,linkage:e};e.push({type:"metadata-url-base",value:c}),"erc1155"===a&&(c=c.replace("{id}",eA(o,32).substring(2)),e.push({type:"metadata-url-expanded",value:c})),c.match(/^ipfs:/i)&&(c=o8(c)),e.push({type:"metadata-url",value:c});let u={},f=await new og(c).send();f.assertOk();try{u=f.bodyJson}catch(t){try{e.push({type:"!metadata",value:f.bodyText})}catch(r){let t=f.body;t&&e.push({type:"!metadata",value:q(t)})}return{url:null,linkage:e}}if(!u)return e.push({type:"!metadata",value:""}),{url:null,linkage:e};e.push({type:"metadata",value:JSON.stringify(u)});let d=u.image;if("string"!=typeof d)return e.push({type:"!imageUrl",value:""}),{url:null,linkage:e};if(d.match(/^(https:\/\/|data:)/i));else{let t=d.match(o6);if(null==t)return e.push({type:"!imageUrl-ipfs",value:d}),{url:null,linkage:e};e.push({type:"imageUrl-ipfs",value:d}),d=o8(d)}return e.push({type:"url",value:d}),{linkage:e,url:d}}}}}catch(e){}return{linkage:e,url:null}}static async getEnsAddress(e){let t=await e.getNetwork(),r=t.getPlugin("org.ethers.plugins.network.Ens");return F(r,"network does not support ENS","UNSUPPORTED_OPERATION",{operation:"getEnsAddress",info:{network:t}}),r.address}static async #eT(e,t){let r=await o7.getEnsAddress(e);try{let n=new nQ(r,["function resolver(bytes32) view returns (address)"],e),a=await n.resolver(sM(t),{enableCcipRead:!0});if(a===r4)return null;return a}catch(e){throw e}}static async fromName(e,t){let r=t;for(;;){if(""===r||"."===r||"eth"!==t&&"eth"===r)return null;let n=await o7.#eT(e,r);if(null!=n){let a=new o7(e,n,t);if(r!==t&&!await a.supportsWildcard())return null;return a}r=r.split(".").slice(1).join(".")}}}let le=BigInt(0);function lt(e,t){return function(r){return null==r?t:e(r)}}function lr(e,t){return r=>{if(t&&null==r)return null;if(!Array.isArray(r))throw Error("not an array");return r.map(t=>e(t))}}function ln(e,t){return r=>{let n={};for(let a in e){let i=a;if(t&&a in t&&!(i in r)){for(let e of t[a])if(e in r){i=e;break}}try{let t=e[a](r[i]);void 0!==t&&(n[a]=t)}catch(t){let e=t instanceof Error?t.message:"not-an-error";F(!1,`invalid value for value.${a} (${e})`,"BAD_DATA",{value:r})}}return n}}function la(e){return L(Q(e,!0),"invalid data","value",e),e}function li(e){return L(Q(e,32),"invalid hash","value",e),e}let ls=ln({address:tO,blockHash:li,blockNumber:ey,data:la,index:ey,removed:lt(function(e){switch(e){case!0:case"true":return!0;case!1:case"false":return!1}L(!1,`invalid boolean; ${JSON.stringify(e)}`,"value",e)},!1),topics:lr(li),transactionHash:li,transactionIndex:ey},{index:["logIndex"]}),lo=ln({hash:lt(li),parentHash:li,parentBeaconBlockRoot:lt(li,null),number:ey,timestamp:ey,nonce:lt(la),difficulty:ep,gasLimit:ep,gasUsed:ep,stateRoot:lt(li,null),receiptsRoot:lt(li,null),blobGasUsed:lt(ep,null),excessBlobGas:lt(ep,null),miner:lt(tO),prevRandao:lt(li,null),extraData:la,baseFeePerGas:lt(ep)},{prevRandao:["mixHash"]}),ll=ln({transactionIndex:ey,blockNumber:ey,transactionHash:li,address:tO,topics:lr(li),data:la,index:ey,blockHash:li},{index:["logIndex"]}),lc=ln({to:lt(tO,null),from:lt(tO,null),contractAddress:lt(tO,null),index:ey,root:lt(q),gasUsed:ep,blobGasUsed:lt(ep,null),logsBloom:lt(la),blockHash:li,hash:li,logs:lr(function(e){return ll(e)}),blockNumber:ey,cumulativeGasUsed:ep,effectiveGasPrice:lt(ep),blobGasPrice:lt(ep,null),status:lt(ey),type:lt(ey,0)},{effectiveGasPrice:["gasPrice"],hash:["transactionHash"],index:["transactionIndex"]});function lu(e){e.to&&ep(e.to)===le&&(e.to="0x0000000000000000000000000000000000000000");let t=ln({hash:li,index:lt(ey,void 0),type:e=>"0x"===e||null==e?0:ey(e),accessList:lt(nn,null),blobVersionedHashes:lt(lr(li,!0),null),authorizationList:lt(lr(e=>{let t;if(e.signature)t=e.signature;else{let r=e.yParity;"0x1b"===r?r=0:"0x1c"===r&&(r=1),t=Object.assign({},e,{yParity:r})}return{address:tO(e.address),chainId:ep(e.chainId),nonce:ep(e.nonce),signature:ii.from(t)}}
1,!1),null),blockHash:lt(li,null),blockNumber:lt(ey,null),transactionIndex:lt(ey,null),from:tO,gasPrice:lt(ep),maxPriorityFeePerGas:lt(ep),maxFeePerGas:lt(ep),maxFeePerBlobGas:lt(ep,null),gasLimit:ep,to:lt(tO,null),value:ep,nonce:ey,data:la,creates:lt(tO,null),chainId:lt(ep,null)},{data:["input"],gasLimit:["gas"],index:["transactionIndex"]})(e);if(null==t.to&&null==t.creates&&(t.creates=rX(t)),(1===e.type||2===e.type)&&null==e.accessList&&(t.accessList=[]),e.signature?t.signature=ii.from(e.signature):t.signature=ii.from(e),null==t.chainId){let e=t.signature.legacyChainId;null!=e&&(t.chainId=e)}return t.blockHash&&ep(t.blockHash)===le&&(t.blockHash=null),t}function lf(e){return JSON.parse(JSON.stringify(e))}class ld{#eO;#eC;#eB;#eS;constructor(e){this.#eO=e,this.#eC=null,this.#eB=4e3,this.#eS=-2}get pollingInterval(){return this.#eB}set pollingInterval(e){this.#eB=e}async #eU(){try{let e=await this.#eO.getBlockNumber();if(-2===this.#eS){this.#eS=e;return}if(e!==this.#eS){for(let t=this.#eS+1;t<=e;t++){if(null==this.#eC)return;await this.#eO.emit("block",t)}this.#eS=e}}catch(e){}null!=this.#eC&&(this.#eC=this.#eO._setTimeout(this.#eU.bind(this),this.#eB))}start(){this.#eC||(this.#eC=this.#eO._setTimeout(this.#eU.bind(this),this.#eB),this.#eU())}stop(){this.#eC&&(this.#eO._clearTimeout(this.#eC),this.#eC=null)}pause(e){this.stop(),e&&(this.#eS=-2)}resume(){this.start()}}class lh{#eO;#eU;#eD;constructor(e){this.#eO=e,this.#eD=!1,this.#eU=e=>{this._poll(e,this.#eO)}}async _poll(e,t){throw Error("sub-classes must override this")}start(){this.#eD||(this.#eD=!0,this.#eU(-2),this.#eO.on("block",this.#eU))}stop(){this.#eD&&(this.#eD=!1,this.#eO.off("block",this.#eU))}pause(e){this.stop()}resume(){this.start()}}class lx extends lh{#eF;#eL;constructor(e,t){super(e),this.#eF=t,this.#eL=-2}pause(e){e&&(this.#eL=-2),super.pause(e)}async _poll(e,t){let r=await t.getBlock(this.#eF);null!=r&&(-2===this.#eL?this.#eL=r.number:r.number>this.#eL&&(t.emit(this.#eF,r.number),this.#eL=r.number))}}class lp extends lh{#P;constructor(e,t){super(e),this.#P=lf(t)}async _poll(e,t){throw Error("@TODO")}}class lb extends lh{#eM;constructor(e,t){super(e),this.#eM=t}async _poll(e,t){let r=await t.getTransactionReceipt(this.#eM);r&&t.emit(this.#eM,r)}}class lg{#eO;#P;#eC;#eD;#eS;constructor(e,t){this.#eO=e,this.#P=lf(t),this.#eC=this.#eU.bind(this),this.#eD=!1,this.#eS=-2}async #eU(e){if(-2===this.#eS)return;let t=lf(this.#P);t.fromBlock=this.#eS+1,t.toBlock=e;let r=await this.#eO.getLogs(t);if(0===r.length){this.#eS<e-60&&(this.#eS=e-60);return}for(let e of r)this.#eO.emit(this.#P,e),this.#eS=e.blockNumber}start(){this.#eD||(this.#eD=!0,-2===this.#eS&&this.#eO.getBlockNumber().then(e=>{this.#eS=e}),this.#eO.on("block",this.#eC))}stop(){this.#eD&&(this.#eD=!1,this.#eO.off("block",this.#eC))}pause(e){this.stop(),e&&(this.#eS=-2)}resume(){this.start()}}let lm=BigInt(2);function ly(e){return e&&"function"==typeof e.then}function lw(e,t){return e+":"+JSON.stringify(t,(e,t)=>{if(null==t)return"null";if("bigint"==typeof t)return`bigint:${t.toString()}`;if("string"==typeof t)return t.toLowerCase();if("object"==typeof t&&!Array.isArray(t)){let e=Object.keys(t);return e.sort(),e.reduce((e,r)=>(e[r]=t[r],e),{})}return t})}class lA{name;constructor(e){C(this,{name:e})}start(){}stop(){}pause(e){}resume(){}}function lv(e){return(e=Array.from(new Set(e).values())).sort(),e}async function lE(e,t){if(null==e)throw Error("invalid event");if(Array.isArray(e)&&(e={topics:e}),"string"==typeof e)switch(e){case"block":case"debug":case"error":case"finalized":case"network":case"pending":case"safe":return{type:e,tag:e}}if(Q(e,32)){let t=e.toLowerCase();return{type:"transaction",tag:lw("tx",{hash:t}),hash:t}}if(e.orphan){let t=e;return{type:"orphan",tag:lw("orphan",t),filter:JSON.parse(JSON.stringify(t))}}if(e.address||e.topics){let r=e,n={topics:(r.topics||[]).map(e=>null==e?null:Array.isArray(e)?lv(e.map(e=>e.toLowerCase())):e.toLowerCase())};if(r.address){let e=[],a=[],i=r=>{Q(r)?e.push(r):a.push((async()=>{e.push(await r3(r,t))})())};Array.isArray(r.address)?r.address.forEach(i):i(r.address),a.length&&await Promise.all(a),n.address=lv(e.map(e=>e.toLowerCase()))}return{filter:n,tag:lw("event",n),type:"event"}}L(!1,"unknown ProviderEvent","event",e)}function lk(){return new Date().getTime()}let lN={cacheTimeout:250,pollingInterval:4e3};class lP{#eG;#el;#ej;#eV;#eH;#ez;#eK;#eQ;#e_;#eJ;#eq;#u;constructor(e,t){if(this.#u=Object.assign({},lN,t||{}),"any"===e)this.#ez=!0,this.#eH=null;else if(e){const t=oI.from(e);this.#ez=!1,this.#eH=Promise.resolve(t),setTimeout(()=>
1{this.emit("network",t,null)},0)}else this.#ez=!1,this.#eH=null;this.#eQ=-1,this.#eK=new Map,this.#eG=new Map,this.#el=new Map,this.#ej=null,this.#eV=!1,this.#e_=1,this.#eJ=new Map,this.#eq=!1}get pollingInterval(){return this.#u.pollingInterval}get provider(){return this}get plugins(){return Array.from(this.#el.values())}attachPlugin(e){if(this.#el.get(e.name))throw Error(`cannot replace existing plugin: ${e.name} `);return this.#el.set(e.name,e.connect(this)),this}getPlugin(e){return this.#el.get(e)||null}get disableCcipRead(){return this.#eq}set disableCcipRead(e){this.#eq=!!e}async #eW(e){let t=this.#u.cacheTimeout;if(t<0)return await this._perform(e);let r=lw(e.method,e),n=this.#eK.get(r);return n||(n=this._perform(e),this.#eK.set(r,n),setTimeout(()=>{this.#eK.get(r)===n&&this.#eK.delete(r)},t)),await n}async ccipReadFetch(e,t,r){if(this.disableCcipRead||0===r.length||null==e.to)return null;let n=e.to.toLowerCase(),a=t.toLowerCase(),i=[];for(let t=0;t<r.length;t++){let s,o=r[t],l=new og(o.replace("{sender}",n).replace("{data}",a));-1===o.indexOf("{data}")&&(l.body={data:a,sender:n}),this.emit("debug",{action:"sendCcipReadFetchRequest",request:l,index:t,urls:r});let c="unknown error";try{s=await l.send()}catch(e){i.push(e.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:l,result:{error:e}});continue}try{let e=s.bodyJson;if(e.data)return this.emit("debug",{action:"receiveCcipReadFetchResult",request:l,result:e}),e.data;e.message&&(c=e.message),this.emit("debug",{action:"receiveCcipReadFetchError",request:l,result:e})}catch(e){}F(s.statusCode<400||s.statusCode>=500,`response not found during CCIP fetch: ${c}`,"OFFCHAIN_FAULT",{reason:"404_MISSING_RESOURCE",transaction:e,info:{url:o,errorMessage:c}}),i.push(c)}F(!1,`error encountered during CCIP fetch: ${i.map(e=>JSON.stringify(e)).join(", ")}`,"OFFCHAIN_FAULT",{reason:"500_SERVER_ERROR",transaction:e,info:{urls:r,errorMessages:i}})}_wrapBlock(e,t){let r;return new nc(((r=lo(e)).transactions=e.transactions.map(e=>"string"==typeof e?e:lu(e)),r),this)}_wrapLog(e,t){return new nu(ls(e),this)}_wrapTransactionReceipt(e,t){return new nf(lc(e),this)}_wrapTransactionResponse(e,t){return new nd(lu(e),this)}_detectNetwork(){F(!1,"sub-classes must implement this","UNSUPPORTED_OPERATION",{operation:"_detectNetwork"})}async _perform(e){F(!1,`unsupported method: ${e.method}`,"UNSUPPORTED_OPERATION",{operation:e.method,info:e})}async getBlockNumber(){let e=ey(await this.#eW({method:"getBlockNumber"}),"%response");return this.#eQ>=0&&(this.#eQ=e),e}_getAddress(e){return r3(e,this)}_getBlockTag(e){if(null==e)return"latest";switch(e){case"earliest":return"0x0";case"finalized":case"latest":case"pending":case"safe":return e}return Q(e)?Q(e,32)?e:eE(e):("bigint"==typeof e&&(e=ey(e,"blockTag")),"number"==typeof e)?e>=0?eE(e):this.#eQ>=0?eE(this.#eQ+e):this.getBlockNumber().then(t=>eE(t+e)):void L(!1,"invalid blockTag","blockTag",e)}_getFilter(e){let t,r,n=(e.topics||[]).map(e=>null==e?null:Array.isArray(e)?lv(e.map(e=>e.toLowerCase())):e.toLowerCase()),a="blockHash"in e?e.blockHash:void 0,i=(e,t,r)=>{let i;switch(e.length){case 0:break;case 1:i=e[0];break;default:e.sort(),i=e}if(a&&(null!=t||null!=r))throw Error("invalid filter");let s={};return i&&(s.address=i),n.length&&(s.topics=n),t&&(s.fromBlock=t),r&&(s.toBlock=r),a&&(s.blockHash=a),s},s=[];if(e.address)if(Array.isArray(e.address))for(let t of e.address)s.push(this._getAddress(t));else s.push(this._getAddress(e.address));return"fromBlock"in e&&(t=this._getBlockTag(e.fromBlock)),("toBlock"in e&&(r=this._getBlockTag(e.toBlock)),s.filter(e=>"string"!=typeof e).length||null!=t&&"string"!=typeof t||null!=r&&"string"!=typeof r)?Promise.all([Promise.all(s),t,r]).then(e=>i(e[0],e[1],e[2])):i(s,t,r)}_getTransactionRequest(e){let t=nl(e),r=[];if(["to","from"].forEach(e=>{if(null==t[e])return;let n=r3(t[e],this);ly(n)?r.push(async function(){t[e]=await n}()):t[e]=n}),null!=t.blockTag){let e=this._getBlockTag(t.blockTag);ly(e)?r.push(async function(){t.blockTag=await e}()):t.blockTag=e}return r.length?async function(){return await Promise.all(r),t}():t}async getNetwork(){if(null==this.#eH){let e=(async()=>{try{let e=await this._detectNetwork();
1return this.emit("network",e,null),e}catch(t){throw this.#eH===e&&(this.#eH=null),t}})();return this.#eH=e,(await e).clone()}let e=this.#eH,[t,r]=await Promise.all([e,this._detectNetwork()]);return t.chainId!==r.chainId&&(this.#ez?(this.emit("network",r,t),this.#eH===e&&(this.#eH=Promise.resolve(r))):F(!1,`network changed: ${t.chainId} => ${r.chainId} `,"NETWORK_ERROR",{event:"changed"})),t.clone()}async getFeeData(){let e=await this.getNetwork(),t=async()=>{let{_block:t,gasPrice:r,priorityFee:n}=await O({_block:this.#eZ("latest",!1),gasPrice:(async()=>{try{let e=await this.#eW({method:"getGasPrice"});return ep(e,"%response")}catch(e){}return null})(),priorityFee:(async()=>{try{let e=await this.#eW({method:"getPriorityFee"});return ep(e,"%response")}catch(e){}return null})()}),a=null,i=null,s=this._wrapBlock(t,e);return s&&s.baseFeePerGas&&(i=null!=n?n:BigInt("1000000000"),a=s.baseFeePerGas*lm+i),new no(r,a,i)},r=e.getPlugin("org.ethers.plugins.network.FetchUrlFeeDataPlugin");if(r){let e=new og(r.url),n=await r.processFunc(t,this,e);return new no(n.gasPrice,n.maxFeePerGas,n.maxPriorityFeePerGas)}return await t()}async estimateGas(e){let t=this._getTransactionRequest(e);return ly(t)&&(t=await t),ep(await this.#eW({method:"estimateGas",transaction:t}),"%response")}async #eY(e,t,r){F(r<10,"CCIP read exceeded maximum redirections","OFFCHAIN_FAULT",{reason:"TOO_MANY_REDIRECTS",transaction:Object.assign({},e,{blockTag:t,enableCcipRead:!0})});let n=nl(e);try{return q(await this._perform({method:"call",transaction:n,blockTag:t}))}catch(e){if(!this.disableCcipRead&&U(e)&&e.data&&r>=0&&"latest"===t&&null!=n.to&&"0x556f1830"===Y(e.data,0,4)){let a,i=e.data,s=await r3(n.to,this);try{a=function(e){let t={sender:"",urls:[],calldata:"",selector:"",extraData:"",errorArgs:[]};F(Z(e)>=160,"insufficient OffchainLookup data","OFFCHAIN_FAULT",{reason:"insufficient OffchainLookup data"});let r=Y(e,0,32);F(Y(r,0,12)===Y(lO,0,12),"corrupt OffchainLookup sender","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup sender"}),t.sender=Y(r,12);try{let r=[],n=ey(Y(e,32,64)),a=ey(Y(e,n,n+32)),i=Y(e,n+32);for(let e=0;e<a;e++){let t=function(e,t){try{let r=lR(e,t);if(r)return es(r)}catch(e){}return null}(i,32*e);if(null==t)throw Error("abort");r.push(t)}t.urls=r}catch(e){F(!1,"corrupt OffchainLookup urls","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup urls"})}try{let r=lR(e,64);if(null==r)throw Error("abort");t.calldata=r}catch(e){F(!1,"corrupt OffchainLookup calldata","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup calldata"})}F(Y(e,100,128)===Y(lO,0,28),"corrupt OffchainLookup callbaackSelector","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup callbaackSelector"}),t.selector=Y(e,96,100);try{let r=lR(e,128);if(null==r)throw Error("abort");t.extraData=r}catch(e){F(!1,"corrupt OffchainLookup extraData","OFFCHAIN_FAULT",{reason:"corrupt OffchainLookup extraData"})}return t.errorArgs="sender,urls,calldata,selector,extraData".split(/,/).map(e=>t[e]),t}(Y(e.data,4))}catch(e){F(!1,e.message,"OFFCHAIN_FAULT",{reason:"BAD_DATA",transaction:n,info:{data:i}})}F(a.sender.toLowerCase()===s.toLowerCase(),"CCIP Read sender mismatch","CALL_EXCEPTION",{action:"call",data:i,reason:"OffchainLookup",transaction:n,invocation:null,revert:{signature:"OffchainLookup(address,string[],bytes,bytes4,bytes)",name:"OffchainLookup",args:a.errorArgs}});let o=await this.ccipReadFetch(n,a.calldata,a.urls);F(null!=o,"CCIP Read failed to fetch data","OFFCHAIN_FAULT",{reason:"FETCH_FAILED",transaction:n,info:{data:e.data,errorArgs:a.errorArgs}});let l={to:s,data:W([a.selector,function(e){let t=[],r=0;for(let n=0;n<e.length;n++)t.push(lT),r+=32;for(let n=0;n<e.length;n++){let a=z(e[n]);t[n]=lI(r),t.push(lI(a.length)),t.push(function(e){if(e.length%32==0)return e;let t=new Uint8Array(32*Math.ceil(e.length/32));return t.set(e),t}(a)),r+=32+32*Math.ceil(a.length/32)}return W(t)}([o,a.extraData])])};this.emit("debug",{action:"sendCcipReadCall",transaction:l});try{let e=await this.#eY(l,t,r+1);return this.emit("debug",{action:"receiveCcipReadCallResult",transaction:Object.assign({},l),result:e}),e}
1catch(e){throw this.emit("debug",{action:"receiveCcipReadCallError",transaction:Object.assign({},l),error:e}),e}}throw e}}async #eX(e){let{value:t}=await O({network:this.getNetwork(),value:e});return t}async call(e){let{tx:t,blockTag:r}=await O({tx:this._getTransactionRequest(e),blockTag:this._getBlockTag(e.blockTag)});return await this.#eX(this.#eY(t,r,e.enableCcipRead?0:-1))}async #e$(e,t,r){let n=this._getAddress(t),a=this._getBlockTag(r);return("string"!=typeof n||"string"!=typeof a)&&([n,a]=await Promise.all([n,a])),await this.#eX(this.#eW(Object.assign(e,{address:n,blockTag:a})))}async getBalance(e,t){return ep(await this.#e$({method:"getBalance"},e,t),"%response")}async getTransactionCount(e,t){return ey(await this.#e$({method:"getTransactionCount"},e,t),"%response")}async getCode(e,t){return q(await this.#e$({method:"getCode"},e,t))}async getStorage(e,t,r){let n=ep(t,"position");return q(await this.#e$({method:"getStorage",position:n},e,r))}async broadcastTransaction(e){let{blockNumber:t,hash:r,network:n}=await O({blockNumber:this.getBlockNumber(),hash:this._perform({method:"broadcastTransaction",signedTransaction:e}),network:this.getNetwork()}),a=oX.from(e);if(a.hash!==r)throw Error("@TODO: the returned hash did not match");return this._wrapTransactionResponse(a,n).replaceableTransaction(t)}async #eZ(e,t){if(Q(e,32))return await this.#eW({method:"getBlock",blockHash:e,includeTransactions:t});let r=this._getBlockTag(e);return"string"!=typeof r&&(r=await r),await this.#eW({method:"getBlock",blockTag:r,includeTransactions:t})}async getBlock(e,t){let{network:r,params:n}=await O({network:this.getNetwork(),params:this.#eZ(e,!!t)});return null==n?null:this._wrapBlock(n,r)}async getTransaction(e){let{network:t,params:r}=await O({network:this.getNetwork(),params:this.#eW({method:"getTransaction",hash:e})});return null==r?null:this._wrapTransactionResponse(r,t)}async getTransactionReceipt(e){let{network:t,params:r}=await O({network:this.getNetwork(),params:this.#eW({method:"getTransactionReceipt",hash:e})});if(null==r)return null;if(null==r.gasPrice&&null==r.effectiveGasPrice){let t=await this.#eW({method:"getTransaction",hash:e});if(null==t)throw Error("report this; could not find tx or effectiveGasPrice");r.effectiveGasPrice=t.gasPrice}return this._wrapTransactionReceipt(r,t)}async getTransactionResult(e){let{result:t}=await O({network:this.getNetwork(),result:this.#eW({method:"getTransactionResult",hash:e})});return null==t?null:q(t)}async getLogs(e){let t=this._getFilter(e);ly(t)&&(t=await t);let{network:r,params:n}=await O({network:this.getNetwork(),params:this.#eW({method:"getLogs",filter:t})});return n.map(e=>this._wrapLog(e,r))}_getProvider(e){F(!1,"provider cannot connect to target network","UNSUPPORTED_OPERATION",{operation:"_getProvider()"})}async getResolver(e){return await o7.fromName(this,e)}async getAvatar(e){let t=await this.getResolver(e);return t?await t.getAvatar():null}async resolveName(e){let t=await this.getResolver(e);return t?await t.getAddress():null}async lookupAddress(e){let t=sM((e=tO(e)).substring(2).toLowerCase()+".addr.reverse");try{let r=await o7.getEnsAddress(this),n=new nQ(r,["function resolver(bytes32) view returns (address)"],this),a=await n.resolver(t);if(null==a||a===r4)return null;let i=new nQ(a,["function name(bytes32) view returns (string)"],this),s=await i.name(t);if(await this.resolveName(s)!==e)return null;return s}catch(e){if(S(e,"BAD_DATA")&&"0x"===e.value||S(e,"CALL_EXCEPTION"))return null;throw e}}async waitForTransaction(e,t,r){let n=null!=t?t:1;return 0===n?this.getTransactionReceipt(e):new Promise(async(t,a)=>{let i=null,s=async r=>{try{let a=await this.getTransactionReceipt(e);if(null!=a&&r-a.blockNumber+1>=n){t(a),i&&(clearTimeout(i),i=null);return}}catch(e){console.log("EEE",e)}this.once("block",s)};null!=r&&(i=setTimeout(()=>{null!=i&&(i=null,this.off("block",s),a(D("timeout","TIMEOUT",{reason:"timeout"})))},r)),s(await this.getBlockNumber())})}async waitForBlock(e){F(!1,"not implemented yet","NOT_IMPLEMENTED",{operation:"waitForBlock"})}_clearTimeout(e){let t=this.#eJ.get(e);t&&(t.timer&&clearTimeout(t.timer),this.#eJ.delete(e))}_setTimeout(e,t){null==t&&(t=0);let r=this.#e_++,n=()=>{this.#eJ.delete(r),e()};if(this.paused)this.#eJ.set(r,{timer:null,func:n,time:t});else{let e=setTimeout(n,t);this.#eJ.set(r,{timer:e,func:n,time:lk()})}return r}_forEachSubscriber(e){for(let t of this.#eG.values())e(t.subscriber)}_getSubscriber(e){switch(e.type){case"debug":case"error":case"network":return new lA(e.type);case"block":{let e=new ld(this);return e.pollingInterval=this.pollingInterval,e}case"safe":case"finalized":return new lx(this,e.type);case"event":return new lg(this,e.filter);case"transaction":return new lb(this,e.hash);case"orphan":return new lp(this,e.filter)}throw Error(`unsupported event: ${e.type}`)}_recoverSubscriber(e,t){for(let r of this.#eG.values())if(r.subscriber===e){r.started&&r.subscriber.stop(),r.subscriber=t,r.started&&t.start(),null!=this.#ej&&t.pause(this.#ej);break}}async #e0(e,t){let r=await lE(e,this);return"event"===r.type&&t&&t.length>0&&!0===t[0].removed&&(r=await lE({orphan:"drop-log",log:t[0]},this)),this.#eG.get(r.tag)||null}async #e1(e){let t=await lE(e,this),r=t.tag,n=this.#eG.get(r);if(!n){let e=this._getSubscriber(t);n={subscriber:e,tag:r,addressableMap:new WeakMap,nameMap:new Map,started:!1,listeners:[]},this.#eG.set(r,n)}return n}async on(e,t){let r=await this.#e1(e);return r.listeners.push({listener:t,once:!1}),r.started||(r.subscriber.start(),r.started=!0,null!=this.#ej&&r.subscriber.pause(this.#ej)),this}async once(e,t){let r=await this.#e1(e);return r.listeners.push({listener:t,once:!0}),r.started||(r.subscriber.start(),r.started=!0,null!=this.#ej&&r.subscriber.pause(this.#ej)),this}async emit(e,...t){let r=await this.#e0(e,t);if(!r||0===r.listeners.length)return!1;let n=r.listeners.length;return r.listeners=r.listeners.filter(({listener:r,once:n}
1)=>{let a=new np(this,n?null:r,e);try{r.call(this,...t,a)}catch(e){}return!n}),0===r.listeners.length&&(r.started&&r.subscriber.stop(),this.#eG.delete(r.tag)),n>0}async listenerCount(e){if(e){let t=await this.#e0(e);return t?t.listeners.length:0}let t=0;for(let{listeners:e}of this.#eG.values())t+=e.length;return t}async listeners(e){if(e){let t=await this.#e0(e);return t?t.listeners.map(({listener:e})=>e):[]}let t=[];for(let{listeners:e}of this.#eG.values())t=t.concat(e.map(({listener:e})=>e));return t}async off(e,t){let r=await this.#e0(e);if(!r)return this;if(t){let e=r.listeners.map(({listener:e})=>e).indexOf(t);e>=0&&r.listeners.splice(e,1)}return t&&0!==r.listeners.length||(r.started&&r.subscriber.stop(),this.#eG.delete(r.tag)),this}async removeAllListeners(e){if(e){let{tag:t,started:r,subscriber:n}=await this.#e1(e);r&&n.stop(),this.#eG.delete(t)}else for(let[e,{started:t,subscriber:r}]of this.#eG)t&&r.stop(),this.#eG.delete(e);return this}async addListener(e,t){return await this.on(e,t)}async removeListener(e,t){return this.off(e,t)}get destroyed(){return this.#eV}destroy(){for(let e of(this.removeAllListeners(),this.#eJ.keys()))this._clearTimeout(e);this.#eV=!0}get paused(){return null!=this.#ej}set paused(e){!!e!==this.paused&&(this.paused?this.resume():this.pause(!1))}pause(e){if(this.#eQ=-1,null!=this.#ej){if(!!e==this.#ej)return;F(!1,"cannot change pause type; resume first","UNSUPPORTED_OPERATION",{operation:"pause"})}for(let t of(this._forEachSubscriber(t=>
1t.pause(e)),this.#ej=!!e,this.#eJ.values()))t.timer&&clearTimeout(t.timer),t.time=lk()-t.time}resume(){if(null!=this.#ej)for(let e of(this._forEachSubscriber(e=>e.resume()),this.#ej=null,this.#eJ.values())){let t=e.time;t<0&&(t=0),e.time=lk(),setTimeout(e.func,t)}}}function lR(e,t){if("0x"===e)return null;try{let r=ey(Y(e,t,t+32)),n=ey(Y(e,r,r+32));return Y(e,r+32,r+32+n)}catch(e){}return null}function lI(e){let t=ev(e);if(t.length>32)throw Error("internal; should not happen");let r=new Uint8Array(32);return r.set(t,32-t.length),r}let lT=new Uint8Array([]),lO="0x0000000000000000000000000000000000000000000000000000000000000000";function lC(e,t){if(e.provider)return e.provider;F(!1,"missing provider","UNSUPPORTED_OPERATION",{operation:t})}async function lB(e,t){let r=nl(t);if(null!=r.to&&(r.to=r3(r.to,e)),null!=r.from){let t=r.from;r.from=Promise.all([e.getAddress(),r3(t,e)]).then(([e,t])=>(L(e.toLowerCase()===t.toLowerCase(),"transaction from mismatch","tx.from",t),e))}else r.from=e.getAddress();return await O(r)}class lS{provider;constructor(e){C(this,{provider:e||null})}async getNonce(e){return lC(this,"getTransactionCount").getTransactionCount(await this.getAddress(),e)}async populateCall(e){return await lB(this,e)}async populateTransaction(e){let t=lC(this,"populateTransaction"),r=await lB(this,e);null==r.nonce&&(r.nonce=await this.getNonce("pending")),null==r.gasLimit&&(r.gasLimit=await this.estimateGas(r));let n=await this.provider.getNetwork();null!=r.chainId?L(ep(r.chainId)===n.chainId,"transaction chainId mismatch","tx.chainId",e.chainId):r.chainId=n.chainId;let a=null!=r.maxFeePerGas||null!=r.maxPriorityFeePerGas;if(null!=r.gasPrice&&(2===r.type||a)?L(!1,"eip-1559 transaction do not support gasPrice","tx",e):(0===r.type||1===r.type)&&a&&L(!1,"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas","tx",e),(2===r.type||null==r.type)&&null!=r.maxFeePerGas&&null!=r.maxPriorityFeePerGas)r.type=2;else if(0===r.type||1===r.type){let e=await t.getFeeData();F(null!=e.gasPrice,"network does not support gasPrice","UNSUPPORTED_OPERATION",{operation:"getGasPrice"}),null==r.gasPrice&&(r.gasPrice=e.gasPrice)}else{let e=await t.getFeeData();if(null==r.type)if(null!=e.maxFeePerGas&&null!=e.maxPriorityFeePerGas)if(r.authorizationList&&r.authorizationList.length?r.type=4:r.type=2,null!=r.gasPrice){let e=r.gasPrice;delete r.gasPrice,r.maxFeePerGas=e,r.maxPriorityFeePerGas=e}else null==r.maxFeePerGas&&(r.maxFeePerGas=e.maxFeePerGas),null==r.maxPriorityFeePerGas&&(r.maxPriorityFeePerGas=e.maxPriorityFeePerGas);else null!=e.gasPrice?(F(!a,"network does not support EIP-1559","UNSUPPORTED_OPERATION",{operation:"populateTransaction"}),null==r.gasPrice&&(r.gasPrice=e.gasPrice),r.type=0):F(!1,"failed to get consistent fee data","UNSUPPORTED_OPERATION",{operation:"signer.getFeeData"});else(2===r.type||3===r.type||4===r.type)&&(null==r.maxFeePerGas&&(r.maxFeePerGas=e.maxFeePerGas),null==r.maxPriorityFeePerGas&&(r.maxPriorityFeePerGas=e.maxPriorityFeePerGas))}return await O(r)}async populateAuthorization(e){let t=Object.assign({},e);return null==t.chainId&&(t.chainId=(await lC(this,"getNetwork").getNetwork()).chainId),null==t.nonce&&(t.nonce=await this.getNonce()),t}async estimateGas(e){return lC(this,"estimateGas").estimateGas(await this.populateCall(e))}async call(e){return lC(this,"call").call(await this.populateCall(e))}async resolveName(e){let t=lC(this,"resolveName");return await t.resolveName(e)}async sendTransaction(e){let t=lC(this,"sendTransaction"),r=await this.populateTransaction(e);delete r.from;let n=oX.from(r);return await t.broadcastTransaction(await this.signTransaction(n))}authorize(e){F(!1,"authorization not implemented for this signer","UNSUPPORTED_OPERATION",{operation:"authorize"})}}class lU extends lS{address;constructor(e,t){super(t),C(this,{address:e})}async getAddress(){return this.address}connect(e){return new lU(this.address,e)}#e2(e,t){F(!1,`VoidSigner cannot sign ${e}`,"UNSUPPORTED_OPERATION",{operation:t})}async signTransaction(e){this.#e2("transactions","signTransaction")}async signMessage(e){this.#e2("messages","signMessage")}
1async signTypedData(e,t,r){this.#e2("typed-data","signTypedData")}}class lD{#eO;#e3;#eC;#eD;#e4;#e8;constructor(e){this.#eO=e,this.#e3=null,this.#eC=this.#eU.bind(this),this.#eD=!1,this.#e4=null,this.#e8=!1}_subscribe(e){throw Error("subclasses must override this")}_emitResults(e,t){throw Error("subclasses must override this")}_recover(e){throw Error("subclasses must override this")}async #eU(e){try{null==this.#e3&&(this.#e3=this._subscribe(this.#eO));let e=null;try{e=await this.#e3}catch(e){if(!S(e,"UNSUPPORTED_OPERATION")||"eth_newFilter"!==e.operation)throw e}if(null==e){this.#e3=null,this.#eO._recoverSubscriber(this,this._recover(this.#eO));return}let t=await this.#eO.getNetwork();if(this.#e4||(this.#e4=t),this.#e4.chainId!==t.chainId)throw Error("chaid changed");if(this.#e8)return;let r=await this.#eO.send("eth_getFilterChanges",[e]);await this._emitResults(this.#eO,r)}catch(e){console.log("@TODO",e)}this.#eO.once("block",this.#eC)}#e5(){let e=this.#e3;e&&(this.#e3=null,e.then(e=>{this.#eO.destroyed||this.#eO.send("eth_uninstallFilter",[e])}))}start(){this.#eD||(this.#eD=!0,this.#eU(-2))}stop(){this.#eD&&(this.#eD=!1,this.#e8=!0,this.#e5(),this.#eO.off("block",this.#eC))}pause(e){e&&this.#e5(),this.#eO.off("block",this.#eC)}resume(){this.start()}}class lF extends lD{#e6;constructor(e,t){super(e),this.#e6=function(e){return JSON.parse(JSON.stringify(e))}(t)}_recover(e){return new lg(e,this.#e6)}async _subscribe(e){return await e.send("eth_newFilter",[this.#e6])}async _emitResults(e,t){for(let r of t)e.emit(this.#e6,e._wrapLog(r,e._network))}}class lL extends lD{async _subscribe(e){return await e.send("eth_newPendingTransactionFilter",[])}async _emitResults(e,t){for(let r of t)e.emit("pending",r)}}let lM="bigint,boolean,function,number,string,symbol".split(/,/g);function lG(e){if(null==e||lM.indexOf(typeof e)>=0||"function"==typeof e.getAddress)return e;if(Array.isArray(e))return e.map(lG);if("object"==typeof e)return Object.keys(e).reduce((t,r)=>(t[r]=e[r],t),{});throw Error(`should not happen: ${e} (${typeof e})`)}function lj(e){return e?e.toLowerCase():e}function lV(e){return e&&"number"==typeof e.pollingInterval}let lH={polling:!1,staticNetwork:null,batchStallTime:10,batchMaxSize:1048576,batchMaxCount:100,cacheTimeout:250,pollingInterval:4e3};class lz extends lS{address;constructor(e,t){super(e),C(this,{address:t=tO(t)})}connect(e){F(!1,"cannot reconnect JsonRpcSigner","UNSUPPORTED_OPERATION",{operation:"signer.connect"})}async getAddress(){return this.address}async populateTransaction(e){return await this.populateCall(e)}async sendUncheckedTransaction(e){let t=lG(e),r=[];if(t.from){let n=t.from;r.push((async()=>{let r=await r3(n,this.provider);L(null!=r&&r.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",e),t.from=r})())}else t.from=this.address;if(null==t.gasLimit&&r.push((async()=>{t.gasLimit=await this.provider.estimateGas({...t,from:this.address})})()),null!=t.to){let e=t.to;r.push((async()=>{t.to=await r3(e,this.provider)})())}r.length&&await Promise.all(r);let n=this.provider.getRpcTransaction(t);return this.provider.send("eth_sendTransaction",[n])}async sendTransaction(e){let t=await this.provider.getBlockNumber(),r=await this.sendUncheckedTransaction(e);return await new Promise((e,n)=>{let a=[1e3,100],i=0,s=async()=>{try{let n=await this.provider.getTransaction(r);if(null!=n)return void e(n.replaceableTransaction(t))}catch(e){if(S(e,"CANCELLED")||S(e,"BAD_DATA")||S(e,"NETWORK_ERROR")||S(e,"UNSUPPORTED_OPERATION")){null==e.info&&(e.info={}),e.info.sendTransactionHash=r,n(e);return}if(S(e,"INVALID_ARGUMENT")&&(i++,null==e.info&&(e.info={}),e.info.sendTransactionHash=r,i>10))return void n(e);this.provider.emit("error",D("failed to fetch transation after sending (will try again)","UNKNOWN_ERROR",{error:e}))}this.provider._setTimeout(()=>{s()},a.pop()||4e3)};s()})}async signTransaction(e){let t=lG(e);if(t.from){let r=await r3(t.from,this.provider);L(null!=r&&r.toLowerCase()===this.address.toLowerCase(),"from address mismatch","transaction",e),t.from=r}else t.from=this.address;let r=this.provider.getRpcTransaction(t);return await this.provider.send("eth_signTransaction",[r])}async signMessage(e){let t="string"==typeof e?ei(e):e;return await this.provider.send("personal_sign",[q(t),this.address.toLowerCase()])}async signTypedData(e,t,r){let n=lG(r),a=await or.resolveNames(e,t,n,async e=>{let t=await r3(e);return L(null!=t,"TypedData does not support null address","value",e),t});return await this.provider.send("eth_signTypedData_v4",[this.address.toLowerCase(),JSON.stringify(or.getPayload(a.domain,t,a.value))])}async unlock(e){return this.provider.send("personal_unlockAccount",[this.address.toLowerCase(),e,null])}async _legacySignMessage(e){let t="string"==typeof e?ei(e):e;return await this.provider.send("eth_sign",[this.address.toLowerCase(),q(t)])}}class lK extends lP{#u;#e9;#e7;#te;#tt;#e4;#tr;#tn(){if(this.#te)return;let e=1===this._getOption("batchMaxCount")?0:this._getOption("batchStallTime");this.#te=setTimeout(()=>{this.#te=null;let e=this.#e7;for(this.#e7=[];e.length;){let t=[e.shift()];for(;e.length&&t.length!==this.#u.batchMaxCount;)if(t.push(e.shift()),JSON.stringify(t.map(e=>e.payload)).length>this.#u.batchMaxSize){e.unshift(t.pop());break}(async()=>{let e=1===t.length?t[0].payload:t.map(e=>e.payload);
1this.emit("debug",{action:"sendRpcPayload",payload:e});try{let r=await this._send(e);for(let{resolve:e,reject:n,payload:a}of(this.emit("debug",{action:"receiveRpcResult",result:r}),t)){if(this.destroyed){n(D("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:a.method}));continue}let t=r.filter(e=>e.id===a.id)[0];if(null==t){let e=D("missing response for request","BAD_DATA",{value:r,info:{payload:a}});this.emit("error",e),n(e);continue}if("error"in t){n(this.getRpcError(a,t));continue}e(t.result)}}catch(e){for(let{reject:r}of(this.emit("debug",{action:"receiveRpcError",error:e}),t))r(e)}})()}},e)}constructor(e,t){super(e,t),this.#e9=1,this.#u=Object.assign({},lH,t||{}),this.#e7=[],this.#te=null,this.#e4=null,this.#tr=null;{let e=null;const t=new Promise(t=>{e=t});this.#tt={promise:t,resolve:e}}const r=this._getOption("staticNetwork");"boolean"==typeof r?(L(!r||"any"!==e,"staticNetwork cannot be used on special network 'any'","options",t),r&&null!=e&&(this.#e4=oI.from(e))):r&&(L(null==e||r.matches(e),"staticNetwork MUST match network object","options",t),this.#e4=r)}_getOption(e){return this.#u[e]}get _network(){return F(this.#e4,"network is not available yet","NETWORK_ERROR"),this.#e4}async _perform(e){if("call"===e.method||"estimateGas"===e.method){let t=e.transaction;if(t&&null!=t.type&&ep(t.type)&&null==t.maxFeePerGas&&null==t.maxPriorityFeePerGas){let r=await this.getFeeData();null==r.maxFeePerGas&&null==r.maxPriorityFeePerGas&&(e=Object.assign({},e,{transaction:Object.assign({},t,{type:void 0})}))}}let t=this.getRpcRequest(e);return null!=t?await this.send(t.method,t.args):super._perform(e)}async _detectNetwork(){let e=this._getOption("staticNetwork");if(e){if(!0!==e)return e;else if(this.#e4)return this.#e4}return this.#tr||(this.ready?this.#tr=(async()=>{try{let e=oI.from(ep(await this.send("eth_chainId",[])));return this.#tr=null,e}catch(e){throw this.#tr=null,e}})():this.#tr=(async()=>{let e,t={id:this.#e9++,method:"eth_chainId",params:[],jsonrpc:"2.0"};this.emit("debug",{action:"sendRpcPayload",payload:t});try{e=(await this._send(t))[0],this.#tr=null}catch(e){throw this.#tr=null,this.emit("debug",{action:"receiveRpcError",error:e}),e}
1if(this.emit("debug",{action:"receiveRpcResult",result:e}),"result"in e)return oI.from(ep(e.result));throw this.getRpcError(t,e)})()),await this.#tr}_start(){null!=this.#tt&&null!=this.#tt.resolve&&(this.#tt.resolve(),this.#tt=null,(async()=>{for(;null==this.#e4&&!this.destroyed;)try{this.#e4=await this._detectNetwork()}catch(e){if(this.destroyed)break;console.log("JsonRpcProvider failed to detect network and cannot start up; retry in 1s (perhaps the URL is wrong or the node is not started)"),this.emit("error",D("failed to bootstrap network detection","NETWORK_ERROR",{event:"initial-network-discovery",info:{error:e}})),await new Promise(e=>{setTimeout(e,1e3)})}this.#tn()})())}async _waitUntilReady(){if(null!=this.#tt)return await this.#tt.promise}_getSubscriber(e){return"pending"===e.type?new lL(this):"event"===e.type?this._getOption("polling")?new lg(this,e.filter):new lF(this,e.filter):"orphan"===e.type&&"drop-log"===e.filter.orphan?new lA("orphan"):super._getSubscriber(e)}get ready(){return null==this.#tt}getRpcTransaction(e){let t={};return["chainId","gasLimit","gasPrice","type","maxFeePerGas","maxPriorityFeePerGas","nonce","value"].forEach(r=>{if(null==e[r])return;let n=r;"gasLimit"===r&&(n="gas"),t[n]=eE(ep(e[r],`tx.${r}`))}),["from","to","data"].forEach(r=>{null!=e[r]&&(t[r]=q(e[r]))}),e.accessList&&(t.accessList=nn(e.accessList)),e.blobVersionedHashes&&(t.blobVersionedHashes=e.blobVersionedHashes.map(e=>e.toLowerCase())),e.authorizationList&&(t.authorizationList=e.authorizationList.map(e=>{let t=oB(e);return{address:t.address,nonce:eE(t.nonce),chainId:eE(t.chainId),yParity:eE(t.signature.yParity),r:eE(t.signature.r),s:eE(t.signature.s)}})),t}getRpcRequest(e){switch(e.method){case"chainId":return{method:"eth_chainId",args:[]};case"getBlockNumber":return{method:"eth_blockNumber",args:[]};case"getGasPrice":return{method:"eth_gasPrice",args:[]};case"getPriorityFee":return{method:"eth_maxPriorityFeePerGas",args:[]};case"getBalance":return{method:"eth_getBalance",args:[lj(e.address),e.blockTag]};case"getTransactionCount":return{method:"eth_getTransactionCount",args:[lj(e.address),e.blockTag]};case"getCode":return{method:"eth_getCode",args:[lj(e.address),e.blockTag]};case"getStorage":return{method:"eth_getStorageAt",args:[lj(e.address),"0x"+e.position.toString(16),e.blockTag]};case"broadcastTransaction":return{method:"eth_sendRawTransaction",args:[e.signedTransaction]};case"getBlock":if("blockTag"in e)return{method:"eth_getBlockByNumber",args:[e.blockTag,!!e.includeTransactions]};if("blockHash"in e)return{method:"eth_getBlockByHash",args:[e.blockHash,!!e.includeTransactions]};break;case"getTransaction":return{method:"eth_getTransactionByHash",args:[e.hash]};case"getTransactionReceipt":return{method:"eth_getTransactionReceipt",args:[e.hash]};case"call":return{method:"eth_call",args:[this.getRpcTransaction(e.transaction),e.blockTag]};case"estimateGas":return{method:"eth_estimateGas",args:[this.getRpcTransaction(e.transaction)]};case"getLogs":return e.filter&&null!=e.filter.address&&(Array.isArray(e.filter.address)?e.filter.address=e.filter.address.map(lj):e.filter.address=lj(e.filter.address)),{method:"eth_getLogs",args:[e.filter]}}return null}getRpcError(e,t){let r,{method:n}=e,{error:a}=t;if("eth_estimateGas"===n&&a.message){let t=a.message;if(!t.match(/revert/i)&&t.match(/insufficient funds/i))return D("insufficient funds","INSUFFICIENT_FUNDS",{transaction:e.params[0],info:{payload:e,error:a}});if(t.match(/nonce/i)&&t.match(/too low/i))return D("nonce has already been used","NONCE_EXPIRED",{transaction:e.params[0],info:{payload:e,error:a}})}if("eth_call"===n||"eth_estimateGas"===n){let t=function e(t){if(null==t)return null;if("string"==typeof t.message&&t.message.match(/revert/i)&&Q(t.data))return{message:t.message,data:t.data};if("object"==typeof t){for(let r in t){let n=e(t[r]);if(n)return n}return null}if("string"==typeof t)try{return e(JSON.parse(t))}catch(e){}return null}(a),r=rV.getBuiltinCallException("eth_call"===n?"call":"estimateGas",e.params[0],t?t.data:null);return r.info={error:a,payload:e},r}let i=JSON.stringify((!function e(t,r){if(null!=t){if("string"==typeof t.message&&r.push(t.message),"object"==typeof t)for(let n in t)e(t[n],r);if("string"==typeof t)try{return e(JSON.parse(t),r)}catch(e){}}}(a,r=[]),r));if("string"==typeof a.message&&a.message.match(/user denied|ethers-user-denied/i))return D("user rejected action","ACTION_REJECTED",{action:{eth_sign:"signMessage",personal_sign:"signMessage",eth_signTypedData_v4:"signTypedData",eth_signTransaction:"signTransaction",eth_sendTransaction:"sendTransaction",eth_requestAccounts:"requestAccess",wallet_requestAccounts:"requestAccess"}[n]||"unknown",reason:"rejected",info:{payload:e,error:a}});if("eth_sendRawTransaction"===n||"eth_sendTransaction"===n){let t=e.params[0];if(i.match(/insufficient funds|base fee exceeds gas limit/i))return D("insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:t,info:{error:a}});if(i.match(/nonce/i)&&i.match(/too low/i))return D("nonce has already been used","NONCE_EXPIRED",{transaction:t,info:{error:a}});if(i.match(/replacement transaction/i)&&i.match(/underpriced/i))return D("replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:t,info:{error:a}});if(i.match(/only replay-protected/i))return D("legacy pre-eip-155 transactions not supported","UNSUPPORTED_OPERATION",{operation:n,info:{transaction:t,info:{error:a}}})}let s=!!i.match(/the method .* does not exist/i);return(!s&&a&&a.details&&a.details.startsWith("Unauthorized method:")&&(s=!0),s)?D("unsupported operation","UNSUPPORTED_OPERATION",{operation:e.method,info:{error:a,payload:e}}):D("could not coalesce error","UNKNOWN_ERROR",{error:a,payload:e})}send(e,t){if(this.destroyed)return Promise.reject(D("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:e}));let r=this.#e9++,n=new Promise((n,a)=>{this.#e7.push({resolve:n,reject:a,payload:{method:e,params:t,id:r,jsonrpc:"2.0"}})});return this.#tn(),n}async getSigner(e){null==e&&(e=0);let t=this.send("eth_accounts",[]);if("number"==typeof e){let r=await t;if(e>=r.length)throw Error("no such account");return new lz(this,r[e])}let{accounts:r}=await O({network:this.getNetwork(),accounts:t});for(let t of(e=tO(e),r))if(tO(t)===e)return new lz(this,e);throw Error("invalid account")}async listAccounts(){return(await this.send("eth_accounts",[])).map(e=>new lz(this,e))}destroy(){for(let{payload:e,reject:t}of(this.#te&&(clearTimeout(this.#te),this.#te=null),this.#e7))t(D("provider destroyed; cancelled request","UNSUPPORTED_OPERATION",{operation:e.method}));this.#e7=[],super.destroy()}}class lQ extends lK{#ta;constructor(e,t){super(e,t);let r=this._getOption("pollingInterval");null==r&&(r=lH.pollingInterval),this.#ta=r}_getSubscriber(e){let t=super._getSubscriber(e);return lV(t)&&(t.pollingInterval=this.#ta),t}get pollingInterval(){return this.#ta}set pollingInterval(e){if(!Number.isInteger(e)||e<0)throw Error("invalid interval");
1this.#ta=e,this._forEachSubscriber(e=>{lV(e)&&(e.pollingInterval=this.#ta)})}}class l_ extends lQ{#ti;constructor(e,t,r){null==e&&(e="http://localhost:8545"),super(t,r),"string"==typeof e?this.#ti=new og(e):this.#ti=e.clone()}_getConnection(){return this.#ti.clone()}async send(e,t){return await this._start(),await super.send(e,t)}async _send(e){let t=this._getConnection();t.body=JSON.stringify(e),t.setHeader("content-type","application/json");let r=await t.send();r.assertOk();let n=r.bodyJson;return Array.isArray(n)||(n=[n]),n}}let lJ="9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972";class lq extends l_{apiKey;constructor(e,t){null==e&&(e="mainnet");const r=oI.from(e);null==t&&(t=lJ),super(lq.getRequest(r,t),r,{polling:!0,staticNetwork:r}),C(this,{apiKey:t})}_getProvider(e){try{return new lq(e,this.apiKey)}catch(e){}return super._getProvider(e)}static getRequest(e,t){null==t&&(t=lJ);let r=new og(`https://${function(e){switch(e){case"mainnet":return"rpc.ankr.com/eth";case"goerli":return"rpc.ankr.com/eth_goerli";case"sepolia":return"rpc.ankr.com/eth_sepolia";case"arbitrum":return"rpc.ankr.com/arbitrum";case"base":return"rpc.ankr.com/base";case"base-goerli":return"rpc.ankr.com/base_goerli";case"base-sepolia":return"rpc.ankr.com/base_sepolia";case"bnb":return"rpc.ankr.com/bsc";case"bnbt":return"rpc.ankr.com/bsc_testnet_chapel";case"filecoin":return"rpc.ankr.com/filecoin";case"filecoin-calibration":return"rpc.ankr.com/filecoin_testnet";case"matic":return"rpc.ankr.com/polygon";case"matic-mumbai":return"rpc.ankr.com/polygon_mumbai";case"optimism":return"rpc.ankr.com/optimism";case"optimism-goerli":return"rpc.ankr.com/optimism_testnet";case"optimism-sepolia":return"rpc.ankr.com/optimism_sepolia"}L(!1,"unsupported network","network",e)}(e.name)}/${t}`);return r.allowGzip=!0,t===lJ&&(r.retryFunc=async(e,t,r)=>(oA("AnkrProvider"),!0)),r}getRpcError(e,t){return"eth_sendRawTransaction"===e.method&&t&&t.error&&"INTERNAL_ERROR: could not replace existing tx"===t.error.message&&(t.error.message="replacement transaction underpriced"),super.getRpcError(e,t)}isCommunityResource(){return this.apiKey===lJ}}let lW="_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC";class lZ extends l_{apiKey;constructor(e,t){null==e&&(e="mainnet");const r=oI.from(e);null==t&&(t=lW),super(lZ.getRequest(r,t),r,{staticNetwork:r}),C(this,{apiKey:t})}_getProvider(e){try{return new lZ(e,this.apiKey)}catch(e){}return super._getProvider(e)}async _perform(e){if("getTransactionResult"===e.method){let t,{trace:r,tx:n}=await O({trace:this.send("trace_transaction",[e.hash]),tx:this.getTransaction(e.hash)});if(null==r||null==n)return null;let a=!1;try{t=r[0].result.output,a="Reverted"===r[0].error}catch(e){}if(t)return F(!a,"an error occurred during transaction executions","CALL_EXCEPTION",{action:"getTransactionResult",data:t,reason:null,transaction:n,invocation:null,revert:null}),t;F(!1,"could not parse trace result","BAD_DATA",{value:r})}return await super._perform(e)}isCommunityResource(){return this.apiKey===lW}static getRequest(e,t){null==t&&(t=lW);let r=new og(`https://${function(e){switch(e){case"mainnet":return"eth-mainnet.g.alchemy.com";case"goerli":return"eth-goerli.g.alchemy.com";case"sepolia":return"eth-sepolia.g.alchemy.com";case"arbitrum":return"arb-mainnet.g.alchemy.com";case"arbitrum-goerli":return"arb-goerli.g.alchemy.com";case"arbitrum-sepolia":return"arb-sepolia.g.alchemy.com";case"base":return"base-mainnet.g.alchemy.com";case"base-goerli":return"base-goerli.g.alchemy.com";case"base-sepolia":return"base-sepolia.g.alchemy.com";case"matic":return"polygon-mainnet.g.alchemy.com";case"matic-amoy":return"polygon-amoy.g.alchemy.com";case"matic-mumbai":return"polygon-mumbai.g.alchemy.com";case"optimism":return"opt-mainnet.g.alchemy.com";case"optimism-goerli":return"opt-goerli.g.alchemy.com";case"optimism-sepolia":return"opt-sepolia.g.alchemy.com"}L(!1,"unsupported network","network",e)}(e.name)}/v2/${t}`);return r.allowGzip=!0,t===lW&&(r.retryFunc=async(e,t,r)=>(oA("alchemy"),!0)),r}}function lY(e){switch(e){case"mainnet":return"39f1d67cedf8b7831010a665328c9197";case"arbitrum":return"0550c209db33c3abf4cc927e1e18cea1";case"bnb":return"98b5a77e531614387366f6fc5da097f8";case"matic":return"cd9d4d70377471aa7c142ec4a4205249"}L(!1,"unsupported network","network",e)}class lX extends l_{apiKey;constructor(e,t){null==e&&(e="mainnet");const r=oI.from(e);
1null==t&&(t=lY(r.name)),super(lX.getRequest(r,t),r,{staticNetwork:r}),C(this,{apiKey:t})}_getProvider(e){try{return new lX(e,this.apiKey)}catch(e){}return super._getProvider(e)}isCommunityResource(){return this.apiKey===lY(this._network.name)}static getRequest(e,t){null==t&&(t=lY(e.name));let r=new og(`https://${function(e){switch(e){case"mainnet":return"ethereum-mainnet.core.chainstack.com";case"arbitrum":return"arbitrum-mainnet.core.chainstack.com";case"bnb":return"bsc-mainnet.core.chainstack.com";case"matic":return"polygon-mainnet.core.chainstack.com"}L(!1,"unsupported network","network",e)}(e.name)}/${t}`);return r.allowGzip=!0,t===lY(e.name)&&(r.retryFunc=async(e,t,r)=>(oA("ChainstackProvider"),!0)),r}}class l$ extends l_{constructor(e){null==e&&(e="mainnet");const t=oI.from(e);L("mainnet"===t.name,"unsupported network","network",e),super("https://cloudflare-eth.com/",t,{staticNetwork:t})}}let l0="1 11155111 17000 560048 2741 11124 33111 33139 42170 42161 421614 43114 43113 8453 84532 80069 80094 199 1029 81457 168587773 56 97 42220 11142220 252 2523 100 999 737373 747474 59144 59141 5000 5003 43521 143 10143 1287 1284 1285 10 11155420 204 5611 80002 137 534352 534351 1329 1328 146 14601 988 2201 1923 1924 167013 167000 130 1301 480 4801 51 50 324 300".split(/ /g),l1="org.ethers.plugins.provider.Etherscan";class l2 extends ov{baseUrl;constructor(e){super(l1),C(this,{baseUrl:e})}clone(){return new l2(this.baseUrl)}}let l3=["enableCcipRead"],l4=1;class l8 extends lP{network;apiKey;#ts;constructor(e,t){super();const r=oI.from(e);L(l0.indexOf(`${r.chainId}`)>=0,"unsupported network","network",r),this.#ts=r.getPlugin(l1),C(this,{apiKey:null!=t?t:null,network:r})}getBaseUrl(){if(this.#ts)return this.#ts.baseUrl;switch(this.network.name){case"mainnet":return"https://api.etherscan.io";case"goerli":return"https://api-goerli.etherscan.io";case"sepolia":return"https://api-sepolia.etherscan.io";case"holesky":return"https://api-holesky.etherscan.io";case"arbitrum":return"https://api.arbiscan.io";case"arbitrum-goerli":return"https://api-goerli.arbiscan.io";case"base":return"https://api.basescan.org";case"base-sepolia":return"https://api-sepolia.basescan.org";case"bnb":return"https://api.bscscan.com";case"bnbt":return"https://api-testnet.bscscan.com";case"matic":return"https://api.polygonscan.com";case"matic-amoy":return"https://api-amoy.polygonscan.com";case"matic-mumbai":return"https://api-testnet.polygonscan.com";case"optimism":return"https://api-optimistic.etherscan.io";case"optimism-goerli":return"https://api-goerli-optimistic.etherscan.io"}L(!1,"unsupported network","network",this.network)}getUrl(e,t){let r=Object.keys(t).reduce((e,r)=>{let n=t[r];return null!=n&&(e+=`&${r}=${n}`),e},"");return this.apiKey&&(r+=`&apikey=${this.apiKey}`),`https://api.etherscan.io/v2/api?chainid=${this.network.chainId}&module=${e}${r}`}getPostUrl(){return`https://api.etherscan.io/v2/api?chainid=${this.network.chainId}`}getPostData(e,t){return t.module=e,t.apikey=this.apiKey,t.chainid=this.network.chainId,t}async detectNetwork(){return this.network}async fetch(e,t,r){let n=l4++,a=r?this.getPostUrl():this.getUrl(e,t),i=r?this.getPostData(e,t):null;this.emit("debug",{action:"sendRequest",id:n,url:a,payload:i});let s=new og(a);s.setThrottleParams({slotInterval:1e3}),s.retryFunc=(e,t,r)=>(this.isCommunityResource()&&oA("Etherscan"),Promise.resolve(!0)),s.processFunc=async(t,r)=>{let a=r.hasBody()?JSON.parse(es(r.body)):{},i=("string"==typeof a.result?a.result:"").toLowerCase().indexOf("rate limit")>=0;return"proxy"===e?a&&0==a.status&&"NOTOK"==a.message&&i&&(this.emit("debug",{action:"receiveError",id:n,reason:"proxy-NOTOK",error:a}),r.throwThrottleError(a.result,2e3)):i&&(this.emit("debug",{action:"receiveError",id:n,reason:"null result",error:a.result}),r.throwThrottleError(a.result,2e3)),r},i&&(s.setHeader("content-type","application/x-www-form-urlencoded; charset=UTF-8"),s.body=Object.keys(i).map(e=>`${e}=${i[e]}`).join("&"));let o=await s.send();try{o.assertOk()}catch(e){this.emit("debug",{action:"receiveError",id:n,error:e,reason:"assertOk"}),F(!1,"response error","SERVER_ERROR",{request:s,response:o})}
1o.hasBody()||(this.emit("debug",{action:"receiveError",id:n,error:"missing body",reason:"null body"}),F(!1,"missing response","SERVER_ERROR",{request:s,response:o}));let l=JSON.parse(es(o.body));return"proxy"===e?("2.0"!=l.jsonrpc&&(this.emit("debug",{action:"receiveError",id:n,result:l,reason:"invalid JSON-RPC"}),F(!1,"invalid JSON-RPC response (missing jsonrpc='2.0')","SERVER_ERROR",{request:s,response:o,info:{result:l}})),l.error&&(this.emit("debug",{action:"receiveError",id:n,result:l,reason:"JSON-RPC error"}),F(!1,"error response","SERVER_ERROR",{request:s,response:o,info:{result:l}}))):0==l.status&&("No records found"===l.message||"No transactions found"===l.message)||1==l.status&&("string"!=typeof l.message||l.message.match(/^OK/))||(this.emit("debug",{action:"receiveError",id:n,result:l}),F(!1,"error response","SERVER_ERROR",{request:s,response:o,info:{result:l}})),this.emit("debug",{action:"receiveRequest",id:n,result:l}),l.result}_getTransactionPostData(e){let t={};for(let r in e){if(l3.indexOf(r)>=0||null==e[r])continue;let n=e[r];if(("type"!==r||0!==n)&&("blockTag"!==r||"latest"!==n)){if(({type:!0,gasLimit:!0,gasPrice:!0,maxFeePerGs:!0,maxPriorityFeePerGas:!0,nonce:!0,value:!0})[r])n=eE(n);else if("accessList"===r)n="["+nn(n).map(e=>`{address:"${e.address}",storageKeys:["${e.storageKeys.join('","')}"]}`).join(",")+"]";else if("blobVersionedHashes"===r){if(0===n.length)continue;F(!1,"Etherscan API does not support blobVersionedHashes","UNSUPPORTED_OPERATION",{operation:"_getTransactionPostData",info:{transaction:e}})}else n=q(n);t[r]=n}}return t}_checkError(e,t,r){let n="";if(S(t,"SERVER_ERROR")){try{n=t.info.result.error.message}catch(e){}if(!n)try{n=t.info.message}catch(e){}}if("estimateGas"===e.method&&!n.match(/revert/i)&&n.match(/insufficient funds/i)&&F(!1,"insufficient funds","INSUFFICIENT_FUNDS",{transaction:e.transaction}),("call"===e.method||"estimateGas"===e.method)&&n.match(/execution reverted/i)){let r="";try{r=t.info.result.error.data}catch(e){}let n=rV.getBuiltinCallException(e.method,e.transaction,r);throw n.info={request:e,error:t},n}if(n&&"broadcastTransaction"===e.method){let t=oX.from(e.signedTransaction);n.match(/replacement/i)&&n.match(/underpriced/i)&&F(!1,"replacement fee too low","REPLACEMENT_UNDERPRICED",{transaction:t}),n.match(/insufficient funds/)&&F(!1,"insufficient funds for intrinsic transaction cost","INSUFFICIENT_FUNDS",{transaction:t}),n.match(/same hash was already imported|transaction nonce is too low|nonce too low/)&&F(!1,"nonce has already been used","NONCE_EXPIRED",{transaction:t})}throw t}async _detectNetwork(){return this.network}async _perform(e){switch(e.method){case"chainId":return this.network.chainId;case"getBlockNumber":return this.fetch("proxy",{action:"eth_blockNumber"});case"getGasPrice":return this.fetch("proxy",{action:"eth_gasPrice"});case"getPriorityFee":if("mainnet"===this.network.name)return"1000000000";if("optimism"===this.network.name)return"1000000";throw Error("fallback onto the AbstractProvider default");case"getBalance":return this.fetch("account",{action:"balance",address:e.address,tag:e.blockTag});case"getTransactionCount":return this.fetch("proxy",{action:"eth_getTransactionCount",address:e.address,tag:e.blockTag});case"getCode":return this.fetch("proxy",{action:"eth_getCode",address:e.address,tag:e.blockTag});case"getStorage":return this.fetch("proxy",{action:"eth_getStorageAt",address:e.address,position:e.position,tag:e.blockTag});case"broadcastTransaction":return this.fetch("proxy",{action:"eth_sendRawTransaction",hex:e.signedTransaction},!0).catch(t=>this._checkError(e,t,e.signedTransaction));case"getBlock":if("blockTag"in e)return this.fetch("proxy",{action:"eth_getBlockByNumber",tag:e.blockTag,boolean:e.includeTransactions?"true":"false"});F(!1,"getBlock by blockHash not supported by Etherscan","UNSUPPORTED_OPERATION",{operation:"getBlock(blockHash)"});case"getTransaction":return this.fetch("proxy",{action:"eth_getTransactionByHash",txhash:e.hash});case"getTransactionReceipt":return this.fetch("proxy",{action:"eth_getTransactionReceipt",txhash:e.hash});case"call":{if("latest"!==e.blockTag)throw Error("EtherscanProvider does not support blockTag for call");let t=this._getTransactionPostData(e.transaction);t.module="proxy",t.action="eth_call";try{return await this.fetch("proxy",t,!0)}catch(t){return this._checkError(e,t,e.transaction)}}case"estimateGas":{let t=this._getTransactionPostData(e.transaction);t.module="proxy",t.action="eth_estimateGas";try{return await this.fetch("proxy",t,!0)}catch(t){return this._checkError(e,t,e.transaction)}}}return super._perform(e)}async getNetwork(){return this.network}async getEtherPrice(){return"mainnet"!==this.network.name?0:parseFloat((await this.fetch("stats",{action:"ethprice"})).ethusd)}async getContract(e){var t;let r=this._getAddress(e);(t=r)&&"function"==typeof t.then&&(r=await r);try{let e=await this.fetch("contract",{action:"getabi",address:r}),t=JSON.parse(e);return new nQ(r,t,this)}catch(e){return null}}isCommunityResource(){return null==this.apiKey}}let l5=("u">typeof self?self:"u">typeof window?window:e.g).WebSocket;class l6{#eO;#P;get filter(){return JSON.parse(this.#P)}#to;#tl;#tc;constructor(e,t){this.#eO=e,this.#P=JSON.stringify(t),this.#to=null,this.#tl=null,this.#tc=null}start(){this.#to=this.#eO.send("eth_subscribe",this.filter).then(e=>(this.#eO._register(e,this),e))}stop(){this.#to.then(e=>{this.#eO.destroyed||this.#eO.send("eth_unsubscribe",[e])}),this.#to=null}pause(e){F(e,"preserve logs while paused not supported by SocketSubscriber yet","UNSUPPORTED_OPERATION",{operation:"pause(false)"}),this.#tl=!!e}resume(){this.#tl=null}_handleMessage(e){if(null!=this.#to&&null===this.#tl){let t=this.#tc;t=null==t?this._emit(this.#eO,e):t.then(async()=>{await this._emit(this.#eO,e)}),this.#tc=t.then(()=>{this.#tc===t&&(this.#tc=null)})}}async _emit(e,t){throw Error("sub-classes must implemente this; _emit")}}class l9 extends l6{constructor(e){super(e,["newHeads"])}async _emit(e,t){e.emit("block",parseInt(t.number))}}class l7 extends l6{constructor(e){super(e,["newPendingTransactions"])}async _emit(e,t){e.emit("pending",t)}}class ce extends l6{#tu;get logFilter(){return JSON.parse(this.#tu)}constructor(e,t){super(e,["logs",t]),this.#tu=JSON.stringify(t)}async _emit(e,t){e.emit(this.logFilter,e._wrapLog(t,e._network))}}class ct extends lK{#tf;#eG;#td;constructor(e,t){const r=Object.assign({},null!=t?t:{});L(null==r.batchMaxCount||1===r.batchMaxCount,"sockets-based providers do not support batches","options.batchMaxCount",t),r.batchMaxCount=1,null==r.staticNetwork&&(r.staticNetwork=!0),super(e,r),this.#tf=new Map,this.#eG=new Map,this.#td=new Map}
1_getSubscriber(e){switch(e.type){case"close":return new lA("close");case"block":return new l9(this);case"pending":return new l7(this);case"event":return new ce(this,e.filter);case"orphan":if("drop-log"===e.filter.orphan)return new lA("drop-log")}return super._getSubscriber(e)}_register(e,t){this.#eG.set(e,t);let r=this.#td.get(e);if(r){for(let e of r)t._handleMessage(e);this.#td.delete(e)}}async _send(e){L(!Array.isArray(e),"WebSocket does not support batch send","payload",e);let t=new Promise((t,r)=>{this.#tf.set(e.id,{payload:e,resolve:t,reject:r})});return await this._waitUntilReady(),await this._write(JSON.stringify(e)),[await t]}async _processMessage(e){let t=JSON.parse(e);if(t&&"object"==typeof t&&"id"in t){let e=this.#tf.get(t.id);if(null==e)return void this.emit("error",D("received result for unknown id","UNKNOWN_ERROR",{reasonCode:"UNKNOWN_ID",result:t}));this.#tf.delete(t.id),e.resolve(t)}else{if(!t||"eth_subscription"!==t.method)return void this.emit("error",D("received unexpected message","UNKNOWN_ERROR",{reasonCode:"UNEXPECTED_MESSAGE",result:t}));let e=t.params.subscription,r=this.#eG.get(e);if(r)r._handleMessage(t.params.result);else{let r=this.#td.get(e);null==r&&(r=[],this.#td.set(e,r)),r.push(t.params.result)}}}async _write(e){throw Error("sub-classes must override this")}}class cr extends ct{#ti;#th;get websocket(){if(null==this.#th)throw Error("websocket closed");return this.#th}constructor(e,t,r){super(t,r),"string"==typeof e?(this.#ti=()=>new l5(e),this.#th=this.#ti()):"function"==typeof e?(this.#ti=e,this.#th=e()):(this.#ti=null,this.#th=e),this.websocket.onopen=async()=>{try{await this._start(),this.resume()}catch(e){console.log("failed to start WebsocketProvider",e)}},this.websocket.onmessage=e=>{this._processMessage(e.data)}}async _write(e){this.websocket.send(e)}async destroy(){null!=this.#th&&(this.#th.close(),this.#th=null),super.destroy()}}let cn="84842078b09946638c03157f83405213";class ca extends cr{projectId;projectSecret;constructor(e,t){const r=new ci(e,t),n=r._getConnection();F(!n.credentials,"INFURA WebSocket project secrets unsupported","UNSUPPORTED_OPERATION",{operation:"InfuraProvider.getWebSocketProvider()"}),super(n.url.replace(/^http/i,"ws").replace("/v3/","/ws/v3/"),r._network),C(this,{projectId:r.projectId,projectSecret:r.projectSecret})}isCommunityResource(){return this.projectId===cn}}class ci extends l_{projectId;projectSecret;constructor(e,t,r){null==e&&(e="mainnet");const n=oI.from(e);null==t&&(t=cn),null==r&&(r=null),super(ci.getRequest(n,t,r),n,{staticNetwork:n}),C(this,{projectId:t,projectSecret:r})}_getProvider(e){try{return new ci(e,this.projectId,this.projectSecret)}catch(e){}return super._getProvider(e)}isCommunityResource(){return this.projectId===cn}static getWebSocketProvider(e,t){return new ca(e,t)}static getRequest(e,t,r){null==t&&(t=cn),null==r&&(r=null);let n=new og(`https://${function(e){switch(e){case"mainnet":return"mainnet.infura.io";case"goerli":return"goerli.infura.io";case"sepolia":return"sepolia.infura.io";case"arbitrum":return"arbitrum-mainnet.infura.io";case"arbitrum-goerli":return"arbitrum-goerli.infura.io";case"arbitrum-sepolia":return"arbitrum-sepolia.infura.io";case"base":return"base-mainnet.infura.io";case"base-goerlia":case"base-goerli":return"base-goerli.infura.io";case"base-sepolia":return"base-sepolia.infura.io";case"bnb":return"bsc-mainnet.infura.io";case"bnbt":return"bsc-testnet.infura.io";case"linea":return"linea-mainnet.infura.io";case"linea-goerli":return"linea-goerli.infura.io";case"linea-sepolia":return"linea-sepolia.infura.io";case"matic":return"polygon-mainnet.infura.io";case"matic-amoy":return"polygon-amoy.infura.io";case"matic-mumbai":return"polygon-mumbai.infura.io";case"optimism":return"optimism-mainnet.infura.io";case"optimism-goerli":return"optimism-goerli.infura.io";case"optimism-sepolia":return"optimism-sepolia.infura.io"}L(!1,"unsupported network","network",e)}(e.name)}/v3/${t}`);return n.allowGzip=!0,r&&n.setCredentials("",r),t===cn&&(n.retryFunc=async(e,t,r)=>(oA("InfuraProvider"),!0)),n}}let cs="919b412a057b5e9c9b6dce193c5a60242d6efadb";class co extends l_{token;constructor(e,t){null==e&&(e="mainnet");const r=oI.from(e);
1null==t&&(t=cs),super(co.getRequest(r,t),r,{staticNetwork:r}),C(this,{token:t})}_getProvider(e){try{return new co(e,this.token)}catch(e){}return super._getProvider(e)}isCommunityResource(){return this.token===cs}static getRequest(e,t){null==t&&(t=cs);let r=new og(`https://${function(e){switch(e){case"mainnet":return"ethers.quiknode.pro";case"goerli":return"ethers.ethereum-goerli.quiknode.pro";case"sepolia":return"ethers.ethereum-sepolia.quiknode.pro";case"holesky":return"ethers.ethereum-holesky.quiknode.pro";case"arbitrum":return"ethers.arbitrum-mainnet.quiknode.pro";case"arbitrum-goerli":return"ethers.arbitrum-goerli.quiknode.pro";case"arbitrum-sepolia":return"ethers.arbitrum-sepolia.quiknode.pro";case"base":return"ethers.base-mainnet.quiknode.pro";case"base-goerli":return"ethers.base-goerli.quiknode.pro";case"base-spolia":return"ethers.base-sepolia.quiknode.pro";case"bnb":return"ethers.bsc.quiknode.pro";case"bnbt":return"ethers.bsc-testnet.quiknode.pro";case"matic":return"ethers.matic.quiknode.pro";case"matic-mumbai":return"ethers.matic-testnet.quiknode.pro";case"optimism":return"ethers.optimism.quiknode.pro";case"optimism-goerli":return"ethers.optimism-goerli.quiknode.pro";case"optimism-sepolia":return"ethers.optimism-sepolia.quiknode.pro";case"xdai":return"ethers.xdai.quiknode.pro"}L(!1,"unsupported network","network",e)}(e.name)}/${t}`);return r.allowGzip=!0,t===cs&&(r.retryFunc=async(e,t,r)=>(oA("QuickNodeProvider"),!0)),r}}let cl=BigInt("1"),cc=BigInt("2");function cu(){return new Date().getTime()}function cf(e){return JSON.stringify(e,(e,t)=>"bigint"==typeof t?{type:"bigint",value:t.toString()}:t)}let cd={stallTimeout:400,priority:1,weight:1},ch={blockNumber:-2,requests:0,lateResponses:0,errorResponses:0,outOfSync:-1,unsupportedEvents:0,rollingDuration:0,score:0,_network:null,_updateNumber:null,_totalTime:0,_lastFatalError:null,_lastFatalErrorTimestamp:0};async function cx(e,t){for(;(e.blockNumber<0||e.blockNumber<t)&&(e._updateNumber||(e._updateNumber=(async()=>{try{let t=await e.provider.getBlockNumber();t>e.blockNumber&&(e.blockNumber=t)}catch(t){e.blockNumber=-2,e._lastFatalError=t,e._lastFatalErrorTimestamp=cu()}e._updateNumber=null})()),await e._updateNumber,e.outOfSync++,!e._lastFatalError););}function cp(e){if(null==e)return"null";if(Array.isArray(e))return"["+e.map(cp).join(",")+"]";if("object"==typeof e&&"function"==typeof e.toJSON)return cp(e.toJSON());switch(typeof e){case"boolean":case"symbol":return e.toString();case"bigint":case"number":return BigInt(e).toString();case"string":return JSON.stringify(e);case"object":{let t=Object.keys(e);return t.sort(),"{"+t.map(t=>`${JSON.stringify(t)}:${cp(e[t])}`).join(",")+"}"}}throw console.log("Could not serialize",e),Error("Hmm...")}function cb(e,t){if("error"in t){let e=t.error;return{tag:S(e,"CALL_EXCEPTION")?cp(Object.assign({},e,{shortMessage:void 0,reason:void 0,info:void 0})):cp(e),value:e}}let r=t.result;return{tag:cp(r),value:r}}function cg(e,t){let r=new Map;for(let{value:e,tag:n,weight:a}of t){let t=r.get(n)||{value:e,weight:0};t.weight+=a,r.set(n,t)}let n=null;for(let t of r.values())t.weight>=e&&(!n||t.weight>n.weight)&&(n=t);if(n)return n.value}function cm(e,t){let r=0,n=new Map,a=null,i=[];for(let{value:e,tag:s,weight:o}of t)if(e instanceof Error){let t=n.get(s)||{value:e,weight:0};t.weight+=o,n.set(s,t),(null==a||t.weight>a.weight)&&(a=t)}else i.push(BigInt(e)),r+=o;if(r<e)return a&&a.weight>=e?a.value:void 0;i.sort((e,t)=>e<t?-1:+(t>e));let s=Math.floor(i.length/2);return i.length%2?i[s]:(i[s-1]+i[s]+cl)/cc}function cy(e,t){let r=cg(e,t);if(void 0!==r)return r;for(let e of t)if(e.value)return e.value}class cw extends lP{quorum;eventQuorum;eventWorkers;#tx;#tp;#tb;constructor(e,t,r){super(t,r),this.#tx=e.map(e=>e instanceof lP?Object.assign({provider:e},cd,ch):Object.assign({},cd,e,ch)),this.#tp=-2,this.#tb=null,r&&null!=r.quorum?this.quorum=r.quorum:this.quorum=Math.ceil(this.#tx.reduce((e,t)=>e+=t.weight,0)/2),this.eventQuorum=1,this.eventWorkers=1,L(this.quorum<=this.#tx.reduce((e,t)=>e+t.weight,0),"quorum exceed provider weight","quorum",this.quorum)}get providerConfigs(){return this.#tx.map(e=>{let t=Object.assign({},e);for(let e in t)"_"===e[0]&&delete t[e];return t})}async _detectNetwork(){return oI.from(ep(await this._perform({method:"chainId"})))}async _translatePerform(e,t){switch(t.method){case"broadcastTransaction":return await e.broadcastTransaction(t.signedTransaction);case"call":return await e.call(Object.assign({},t.transaction,{blockTag:t.blockTag}));case"chainId":return(await e.getNetwork()).chainId;case"estimateGas":return await e.estimateGas(t.transaction);case"getBalance":return await e.getBalance(t.address,t.blockTag);case"getBlock":{let r="blockHash"in t?t.blockHash:t.blockTag;return await e.getBlock(r,t.includeTransactions)}case"getBlockNumber":return await e.getBlockNumber();case"getCode":return await e.getCode(t.address,t.blockTag);case"getGasPrice":return(await e.getFeeData()).gasPrice;case"getPriorityFee":return(await e.getFeeData()).maxPriorityFeePerGas;case"getLogs":return await e.getLogs(t.filter);case"getStorage":return await e.getStorage(t.address,t.position,t.blockTag);case"getTransaction":return await e.getTransaction(t.hash);case"getTransactionCount":return await e.getTransactionCount(t.address,t.blockTag);case"getTransactionReceipt":return await e.getTransactionReceipt(t.hash);case"getTransactionResult":return await e.getTransactionResult(t.hash)}}#tg(e){let t=Array.from(e).map(e=>e.config),r=this.#tx.slice();for(let e=r.length-1;e>0;e--){let t=Math.floor(Math.random()*(e+1)),n=r[e];r[e]=r[t],r[t]=n}for(let e of(r.sort((e,t)=>
1e.priority-t.priority),r))if(!e._lastFatalError&&-1===t.indexOf(e))return e;return null}#tm(e,t){let r=this.#tg(e);if(null==r)return null;let n={config:r,result:null,didBump:!1,perform:null,staller:null},a=cu();return n.perform=(async()=>{try{r.requests++,n.result={result:await this._translatePerform(r.provider,t)}}catch(e){r.errorResponses++,n.result={error:e}}let e=cu()-a;r._totalTime+=e,r.rollingDuration=.95*r.rollingDuration+.05*e,n.perform=null})(),n.staller=(async()=>{var e;await (e=r.stallTimeout,new Promise(t=>{setTimeout(t,e)})),n.staller=null})(),e.add(n),n}async #ty(){let e=this.#tb;if(!e){let t=[];this.#tx.forEach(e=>{t.push((async()=>{await cx(e,0),e._lastFatalError||(e._network=await e.provider.getNetwork())})())}),this.#tb=e=(async()=>{await Promise.all(t);let e=null;for(let t of this.#tx){if(t._lastFatalError)continue;let r=t._network;null==e?e=r.chainId:r.chainId!==e&&F(!1,"cannot mix providers on different networks","UNSUPPORTED_OPERATION",{operation:"new FallbackProvider"})}})()}await e}async #tw(e,t){let r=[];for(let n of e)if(null!=n.result){let{tag:e,value:a}=cb(t.method,n.result);r.push({tag:e,value:a,weight:n.config.weight})}if(!(r.reduce((e,t)=>e+t.weight,0)<this.quorum)){switch(t.method){case"getBlockNumber":{-2===this.#tp&&(this.#tp=Math.ceil(ey(cm(this.quorum,this.#tx.filter(e=>!e._lastFatalError).map(e=>({value:e.blockNumber,tag:ey(e.blockNumber).toString(),weight:e.weight}))))));let e=function(e,t){let r;if(1===e)return ey(cm(e,t),"%internal");let n=new Map,a=(e,t)=>{let r=n.get(e)||{result:e,weight:0};r.weight+=t,n.set(e,r)};for(let{weight:e,value:r}of t){let t=ey(r);a(t-1,e),a(t,e),a(t+1,e)}let i=0;for(let{weight:t,result:a}of n.values())t>=e&&(t>i||null!=r&&t===i&&a>r)&&(i=t,r=a);return r}(this.quorum,r);if(void 0===e)return;return e>this.#tp&&(this.#tp=e),this.#tp}case"getGasPrice":case"getPriorityFee":case"estimateGas":return cm(this.quorum,r);case"getBlock":if("blockTag"in t&&"pending"===t.blockTag)return cy(this.quorum,r);return cg(this.quorum,r);case"call":case"chainId":case"getBalance":case"getTransactionCount":case"getCode":case"getStorage":case"getTransaction":case"getTransactionReceipt":case"getLogs":return cg(this.quorum,r);case"broadcastTransaction":return cy(this.quorum,r)}F(!1,"unsupported method","UNSUPPORTED_OPERATION",{operation:`_perform(${cf(t.method)})`})}}async #tA(e,t){if(0===e.size)throw Error("no runners?!");let r=[],n=0;for(let t of e){if(t.perform&&r.push(t.perform),t.staller){r.push(t.staller);continue}!t.didBump&&(t.didBump=!0,n++)}let a=await this.#tw(e,t);if(void 0!==a){if(a instanceof Error)throw a;return a}for(let r=0;r<n;r++)this.#tm(e,t);return F(r.length>0,"quorum not met","SERVER_ERROR",{request:"%sub-requests",info:{request:t,results:Array.from(e).map(e=>cf(e.result))}}),await Promise.race(r),await this.#tA(e,t)}async _perform(e){if("broadcastTransaction"===e.method){let t=this.#tx.map(e=>null),r=this.#tx.map(async({provider:r,weight:n},a)=>{try{let i=await r._perform(e);t[a]=Object.assign(cb(e.method,{result:i}),{weight:n})}catch(r){t[a]=Object.assign(cb(e.method,{error:r}),{weight:n})}});for(;;){for(let{value:e}of t.filter(e=>null!=e))if(!(e instanceof Error))return e;let e=cg(this.quorum,t.filter(e=>null!=e));if(S(e,"INSUFFICIENT_FUNDS"))throw e;let n=r.filter((e,r)=>null==t[r]);if(0===n.length)break;await Promise.race(n)}let n=cy(this.quorum,t);if(F(void 0!==n,"problem multi-broadcasting","SERVER_ERROR",{request:"%sub-requests",info:{request:e,results:t.map(cf)}}),n instanceof Error)throw n;return n}await this.#ty();let t=new Set,r=0;for(;;){let n=this.#tm(t,e);if(null==n||(r+=n.config.weight)>=this.quorum)break}let n=await this.#tA(t,e);for(let e of t)e.perform&&null==e.result&&e.config.lateResponses++;return n}async destroy(){for(let{provider:e}of this.#tx)e.destroy();super.destroy()}}let cA="goerli kovan sepolia classicKotti optimism-goerli arbitrum-goerli matic-mumbai bnbt".split(" ");function cv(e,t){null==t&&(t={});let r=e=>"-"!==t[e]&&("string"==typeof t.exclusive?e===t.exclusive:!Array.isArray(t.exclusive)||-1!==t.exclusive.indexOf(e));if("string"==typeof e&&e.match(/^https?:/))return new l_(e);if("string"==typeof e&&e.match(/^wss?:/)||e&&"function"==typeof e.send&&"function"==typeof e.close)return new cr(e);let n=null;try{n=oI.from(e)}catch(e){}let a=[];if(r("publicPolygon")&&n&&("matic"===n.name?a.push(new l_("https://polygon-rpc.com/",n,{staticNetwork:n})):"matic-amoy"===n.name&&a.push(new l_("https://rpc-amoy.polygon.technology/",n,{staticNetwork:n}))),r("alchemy"))try{a.push(new lZ(e,t.alchemy))}catch(e){}if(r("ankr")&&null!=t.ankr)try{a.push(new lq(e,t.ankr))}catch(e){}if(r("chainstack"))try{a.push(new lX(e,t.chainstack))}catch(e){}if(r("cloudflare"))try{a.push(new l$(e))}catch(e){}if(r("etherscan"))try{a.push(new l8(e,t.etherscan))}catch(e){}if(r("infura"))try{let r,n=t.infura;"object"==typeof n&&(r=n.projectSecret,n=n.projectId),a.push(new ci(e,n,r))}catch(e){}if(r("quicknode"))try{let r=t.quicknode;a.push(new co(e,r))}catch(e){}if(F(a.length,"unsupported default network","UNSUPPORTED_OPERATION",{operation:"getDefaultProvider"}),1===a.length)return a[0];let i=Math.floor(a.length/2);return i>2&&(i=2),n&&-1!==cA.indexOf(n.name)&&(i=1),t&&t.quorum&&(i=t.quorum),new cw(a,void 0,{quorum:i})}class cE extends lS{signer;#tv;#tE;constructor(e){super(e.provider),C(this,{signer:e}),this.#tv=null,this.#tE=0}async getAddress(){return this.signer.getAddress()}connect(e){return new cE(this.signer.connect(e))}async getNonce(e){if("pending"===e){null==this.#tv&&(this.#tv=super.getNonce("pending"));let e=this.#tE;return await this.#tv+e}return super.getNonce(e)}increment(){this.#tE++}reset(){this.#tE=0,this.#tv=null}async sendTransaction(e){let t=this.getNonce("pending");return this.increment(),(e=await this.signer.populateTransaction(e)).nonce=await t,await this.signer.sendTransaction(e)}signTransaction(e){return this.signer.signTransaction(e)}
1signMessage(e){return this.signer.signMessage(e)}signTypedData(e,t,r){return this.signer.signTypedData(e,t,r)}}class ck extends lQ{#er;#tk;constructor(e,t,r){const n=Object.assign({},null!=r?r:{},{batchMaxCount:1});L(e&&e.request,"invalid EIP-1193 provider","ethereum",e),super(t,n),this.#tk=null,r&&r.providerInfo&&(this.#tk=r.providerInfo),this.#er=async(t,r)=>{let n={method:t,params:r};this.emit("debug",{action:"sendEip1193Request",payload:n});try{let t=await e.request(n);return this.emit("debug",{action:"receiveEip1193Result",result:t}),t}catch(t){let e=Error(t.message);throw e.code=t.code,e.data=t.data,e.payload=n,this.emit("debug",{action:"receiveEip1193Error",error:e}),e}}}get providerInfo(){return this.#tk}async send(e,t){return await this._start(),await super.send(e,t)}async _send(e){L(!Array.isArray(e),"EIP-1193 does not support batch request","payload",e);try{let t=await this.#er(e.method,e.params||[]);return[{id:e.id,result:t}]}catch(t){return[{id:e.id,error:{code:t.code,data:t.data,message:t.message}}]}}getRpcError(e,t){switch((t=JSON.parse(JSON.stringify(t))).error.code||-1){case 4001:t.error.message=`ethers-user-denied: ${t.error.message}`;break;case 4200:t.error.message=`ethers-unsupported: ${t.error.message}`}return super.getRpcError(e,t)}async hasSigner(e){null==e&&(e=0);let t=await this.send("eth_accounts",[]);return"number"==typeof e?t.length>e:(e=e.toLowerCase(),0!==t.filter(t=>t.toLowerCase()===e).length)}async getSigner(e){if(null==e&&(e=0),!await this.hasSigner(e))try{await this.#er("eth_requestAccounts",[])}catch(t){let e=t.payload;throw this.getRpcError(e,{id:e.id,error:t})}return await super.getSigner(e)}static async discover(e){if(null==e&&(e={}),e.provider)return new ck(e.provider);let t=e.window?e.window:"u">typeof window?window:null;if(null==t)return null;let r=e.anyProvider;if(r&&t.ethereum)return new ck(t.ethereum);if(!("addEventListener"in t&&"dispatchEvent"in t&&"removeEventListener"in t))return null;let n=e.timeout?e.timeout:300;return 0===n?null:await new Promise((a,i)=>{let s=[],o=e=>{s.push(e.detail),r&&l()},l=()=>{if(clearTimeout(c),s.length)if(e&&e.filter){let t=e.filter(s.map(e=>Object.assign({},e.info)));if(null==t)a(null);else if(t instanceof ck)a(t);else{let e=null;if(t.uuid&&(e=s.filter(e=>t.uuid===e.info.uuid)[0]),e){let{provider:t,info:r}=e;a(new ck(t,void 0,{providerInfo:r}))}else i(D("filter returned unknown info","UNSUPPORTED_OPERATION",{value:t}))}}else{let{provider:e,info:t}=s[0];a(new ck(e,void 0,{providerInfo:t}))}else a(null);t.removeEventListener("eip6963:announceProvider",o)},c=setTimeout(()=>{l()},n);t.addEventListener("eip6963:announceProvider",o),t.dispatchEvent(new Event("eip6963:requestProvider"))})}}class cN extends l_{apiKey;constructor(e,t){null==e&&(e="mainnet");const r=oI.from(e);null==t&&(t=null),super(cN.getRequest(r),r,{staticNetwork:r}),C(this,{apiKey:t})}_getProvider(e){try{return new cN(e,this.apiKey)}catch(e){}return super._getProvider(e)}isCommunityResource(){return null===this.apiKey}getRpcRequest(e){let t=super.getRpcRequest(e);return t&&"eth_estimateGas"===t.method&&1==t.args.length&&(t.args=t.args.slice(),t.args.push("latest")),t}getRpcError(e,t){let r=t?t.error:null;if(r&&-32015===r.code&&!Q(r.data||"",!0)){let e={"assert(false)":"01","arithmetic underflow or overflow":"11","division or modulo by zero":"12","out-of-bounds array access; popping on an empty array":"31","out-of-bounds access of an array or bytesN":"32"},t="";"VM execution error."===r.message?t=e[r.data]||"":e[r.message||""]&&(t=e[r.message||""]),t&&(r.message+=` (reverted: ${r.data})`,r.data="0x4e487b7100000000000000000000000000000000000000000000000000000000000000"+t)}else r&&-32e3===r.code&&"wrong transaction nonce"===r.message&&(r.message+=" (nonce too low)");return super.getRpcError(e,t)}static getRequest(e){let t=new og(function(e){switch(e){case"mainnet":return"https://eth.blockscout.com/api/eth-rpc";case"sepolia":return"https://eth-sepolia.blockscout.com/api/eth-rpc";case"holesky":return"https://eth-holesky.blockscout.com/api/eth-rpc";case"classic":return"https://etc.blockscout.com/api/eth-rpc";case"arbitrum":return"https://arbitrum.blockscout.com/api/eth-rpc";case"base":return"https://base.blockscout.com/api/eth-rpc";case"base-sepolia":return"https://base-sepolia.blockscout.com/api/eth-rpc";case"matic":return"https://polygon.blockscout.com/api/eth-rpc";case"optimism":return"https://optimism.blockscout.com/api/eth-rpc";case"optimism-sepolia":return"https://optimism-sepolia.blockscout.com/api/eth-rpc";case"xdai":return"https://gnosis.blockscout.com/api/eth-rpc"}L(!1,"unsupported network","network",e)}(e.name));return t.allowGzip=!0,t}}let cP="62e1ad51b37b8e00394bda3b";class cR extends l_{applicationId;applicationSecret;
1constructor(e,t,r){null==e&&(e="mainnet");const n=oI.from(e);null==t&&(t=cP),null==r&&(r=null),super(cR.getRequest(n,t,r),n,{staticNetwork:n}),C(this,{applicationId:t,applicationSecret:r})}_getProvider(e){try{return new cR(e,this.applicationId,this.applicationSecret)}catch(e){}return super._getProvider(e)}static getRequest(e,t,r){null==t&&(t=cP);let n=new og(`https://${function(e){switch(e){case"mainnet":return"eth-mainnet.gateway.pokt.network";case"goerli":return"eth-goerli.gateway.pokt.network";case"matic":return"poly-mainnet.gateway.pokt.network";case"matic-mumbai":return"polygon-mumbai-rpc.gateway.pokt.network"}L(!1,"unsupported network","network",e)}(e.name)}/v1/lb/${t}`);return n.allowGzip=!0,r&&n.setCredentials("",r),t===cP&&(n.retryFunc=async(e,t,r)=>(oA("PocketProvider"),!0)),n}isCommunityResource(){return this.applicationId===cP}}let cI,cT=BigInt(-1),cO=BigInt(0),cC=BigInt(1),cB=BigInt(5),cS={},cU="0000";for(;cU.length<80;)cU+=cU;function cD(e){let t=cU;for(;t.length<e;)t+=t;return BigInt("1"+t.substring(0,e))}function cF(e,t,r){let n=BigInt(t.width);if(t.signed){let t=cC<<n-cC;F(null==r||e>=-t&&e<t,"overflow","NUMERIC_FAULT",{operation:r,fault:"overflow",value:e}),e=e>cO?ed(ex(e,n),n):-ed(ex(-e,n),n)}else{let t=cC<<n;F(null==r||e>=0&&e<t,"overflow","NUMERIC_FAULT",{operation:r,fault:"overflow",value:e}),e=(e%t+t)%t&t-cC}return e}function cL(e){"number"==typeof e&&(e=`fixed128x${e}`);let t=!0,r=128,n=18;if("string"==typeof e)if("fixed"===e);else if("ufixed"===e)t=!1;else{let a=e.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);L(a,"invalid fixed format","format",e),t="u"!==a[1],r=parseInt(a[2]),n=parseInt(a[3])}else if(e){let a=e,i=(e,t,r)=>null==a[e]?r:(L(typeof a[e]===t,"invalid fixed format ("+e+" not "+t+")","format."+e,a[e]),a[e]);t=i("signed","boolean",t),r=i("width","number",r),n=i("decimals","number",n)}L(r%8==0,"invalid FixedNumber width (not byte aligned)","format.width",r),L(n<=80,"invalid FixedNumber decimals (too large)","format.decimals",n);let a=(t?"":"u")+"fixed"+String(r)+"x"+String(n);return{signed:t,width:r,decimals:n,name:a}}class cM{format;#tN;#tP;#tR;_value;constructor(e,t,r){V(e,cS,"FixedNumber"),this.#tP=t,this.#tN=r;const n=function(e,t){let r="";e<cO&&(r="-",e*=cT);let n=e.toString();if(0===t)return r+n;for(;n.length<=t;)n=cU+n;let a=n.length-t;for(n=n.substring(0,a)+"."+n.substring(a);"0"===n[0]&&"."!==n[1];)n=n.substring(1);for(;"0"===n[n.length-1]&&"."!==n[n.length-2];)n=n.substring(0,n.length-1);return r+n}(t,r.decimals);C(this,{format:r.name,_value:n}),this.#tR=cD(r.decimals)}get signed(){return this.#tN.signed}get width(){return this.#tN.width}get decimals(){return this.#tN.decimals}get value(){return this.#tP}#tI(e){L(this.format===e.format,"incompatible format; use fixedNumber.toFormat","other",e)}#tT(e,t){return new cM(cS,e=cF(e,this.#tN,t),this.#tN)}#tO(e,t){return this.#tI(e),this.#tT(this.#tP+e.#tP,t)}addUnsafe(e){return this.#tO(e)}add(e){return this.#tO(e,"add")}#tC(e,t){return this.#tI(e),this.#tT(this.#tP-e.#tP,t)}subUnsafe(e){return this.#tC(e)}sub(e){return this.#tC(e,"sub")}#tB(e,t){return this.#tI(e),this.#tT(this.#tP*e.#tP/this.#tR,t)}mulUnsafe(e){return this.#tB(e)}mul(e){return this.#tB(e,"mul")}mulSignal(e){this.#tI(e);let t=this.#tP*e.#tP;return F(t%this.#tR===cO,"precision lost during signalling mul","NUMERIC_FAULT",{operation:"mulSignal",fault:"underflow",value:this}),this.#tT(t/this.#tR,"mulSignal")}#tS(e,t){return F(e.#tP!==cO,"division by zero","NUMERIC_FAULT",{operation:"div",fault:"divide-by-zero",value:this}),this.#tI(e),this.#tT(this.#tP*this.#tR/e.#tP,t)}divUnsafe(e){return this.#tS(e)}div(e){return this.#tS(e,"div")}divSignal(e){F(e.#tP!==cO,"division by zero","NUMERIC_FAULT",{operation:"div",fault:"divide-by-zero",value:this}),this.#tI(e);let t=this.#tP*this.#tR;return F(t%e.#tP===cO,"precision lost during signalling div","NUMERIC_FAULT",{operation:"divSignal",fault:"underflow",value:this}),this.#tT(t/e.#tP,"divSignal")}cmp(e){let t=this.value,r=e.value,n=this.decimals-e.decimals;return(n>0?r*=cD(n):n<0&&(t*=cD(-n)),t<r)?-1:+(t>r)}eq(e){return 0===this.cmp(e)}lt(e){return 0>this.cmp(e)}lte(e){return 0>=this.cmp(e)}gt(e){return this.cmp(e)>0}gte(e){return this.cmp(e)>=0}floor(){let e=this.#tP;
1return this.#tP<cO&&(e-=this.#tR-cC),e=this.#tP/this.#tR*this.#tR,this.#tT(e,"floor")}ceiling(){let e=this.#tP;return this.#tP>cO&&(e+=this.#tR-cC),e=this.#tP/this.#tR*this.#tR,this.#tT(e,"ceiling")}round(e){if(null==e&&(e=0),e>=this.decimals)return this;let t=this.decimals-e,r=cB*cD(t-1),n=this.value+r,a=cD(t);return cF(n=n/a*a,this.#tN,"round"),new cM(cS,n,this.#tN)}isZero(){return this.#tP===cO}isNegative(){return this.#tP<cO}toString(){return this._value}toUnsafeFloat(){return parseFloat(this.toString())}toFormat(e){return cM.fromString(this.toString(),e)}static fromValue(e,t,r){let n=null==t?0:ey(t),a=cL(r),i=ep(e,"value"),s=n-a.decimals;if(s>0){let t=cD(s);F(i%t===cO,"value loses precision for format","NUMERIC_FAULT",{operation:"fromValue",fault:"underflow",value:e}),i/=t}else s<0&&(i*=cD(-s));return cF(i,a,"fromValue"),new cM(cS,i,a)}static fromString(e,t){let r=e.match(/^(-?)([0-9]*)\.?([0-9]*)$/);L(r&&r[2].length+r[3].length>0,"invalid FixedNumber string value","value",e);let n=cL(t),a=r[2]||"0",i=r[3]||"";for(;i.length<n.decimals;)i+=cU;F(i.substring(n.decimals).match(/^0*$/),"too many decimals for format","NUMERIC_FAULT",{operation:"fromString",fault:"underflow",value:e}),i=i.substring(0,n.decimals);let s=BigInt(r[1]+a+i);return cF(s,n,"fromString"),new cM(cS,s,n)}static fromBytes(e,t){let r=em(z(e,"value")),n=cL(t);return n.signed&&(r=ed(r,n.width)),cF(r,n,"fromBytes"),new cM(cS,r,n)}}let cG=["wei","kwei","mwei","gwei","szabo","finney","ether"];function cj(e,t){let r=18;if("string"==typeof t){let e=cG.indexOf(t);L(e>=0,"invalid unit","unit",t),r=3*e}else null!=t&&(r=ey(t,"unit"));return cM.fromValue(e,r,{decimals:r,width:512}).toString()}function cV(e,t){L("string"==typeof e,"value must be a string","value",e);let r=18;if("string"==typeof t){let e=cG.indexOf(t);L(e>=0,"invalid unit","unit",t),r=3*e}else null!=t&&(r=ey(t,"unit"));return cM.fromString(e,{decimals:r,width:512}).value}function cH(e){return cj(e,18)}function cz(e){return cV(e,18)}function cK(e){let t=z(e,"randomBytes");t[6]=15&t[6]|64,t[8]=63&t[8]|128;let r=q(t);return[r.substring(2,10),r.substring(10,14),r.substring(14,18),r.substring(18,22),r.substring(22,34)].join("-")}let cQ=" !#$%&'()*+,-./<=>?@[]^_`{|}~",c_=/^[a-z]*$/i;function cJ(e,t){let r=97;return e.reduce((e,n)=>(n===t?r++:n.match(c_)?e.push(String.fromCharCode(r)+n):(r=97,e.push(n)),e),[])}function cq(e){return L("0"===e[0],"unsupported auwl data","data",e),function(e,t){for(let r=cQ.length-1;r>=0;r--)e=e.split(cQ[r]).join(t.substring(2*r,2*r+2));let r=[],n=e.replace(/(:|([0-9])|([A-Z][a-z]*))/g,(e,t,n,a)=>{if(n)for(let e=parseInt(n);e>=0;e--)r.push(";");else r.push(t.toLowerCase());return""});if(n)throw Error(`leftovers: ${JSON.stringify(n)}`);return cJ(cJ(r,";"),":")}(e.substring(1+2*cQ.length),e.substring(1,1+2*cQ.length))}class cW{locale;constructor(e){C(this,{locale:e})}split(e){return e.toLowerCase().split(/\s+/g)}join(e){return e.join(" ")}}class cZ extends cW{#t;#tU;constructor(e,t,r){super(e),this.#t=t,this.#tU=r,this.#tD=null}get _data(){return this.#t}_decodeWords(){return cq(this.#t)}#tD;#tF(){if(null==this.#tD){let e=this._decodeWords();if(t0(e.join("\n")+"\n")!==this.#tU)throw Error(`BIP39 Wordlist for ${this.locale} FAILED`);this.#tD=e}return this.#tD}getWord(e){let t=this.#tF();return L(e>=0&&e<t.length,`invalid word index: ${e}`,"index",e),t[e]}getWordIndex(e){return this.#tF().indexOf(e)}}let cY=null;class cX extends cZ{constructor(){super("en","0erleonalorenseinceregesticitStanvetearctssi#ch2Athck&tneLl0And#Il.yLeOutO=S|S%b/ra@SurdU'0Ce[Cid|CountCu'Hie=IdOu,-Qui*Ro[TT]T%T*[Tu$0AptDD-tD*[Ju,M.UltV<)Vi)0Rob-0FairF%dRaid0A(EEntRee0Ead0MRRp%tS!_rmBumCoholErtI&LLeyLowMo,O}PhaReadySoT Ways0A>urAz(gOngOuntU'd0Aly,Ch%Ci|G G!GryIm$K!Noun)Nu$O` Sw T&naTiqueXietyY1ArtOlogyPe?P!Pro=Ril1ChCt-EaEnaGueMMedM%MyOundR<+Re,Ri=RowTTefa@Ti,Tw%k0KPe@SaultSetSi,SumeThma0H!>OmTa{T&dT.udeTra@0Ct]D.Gu,NtTh%ToTumn0Era+OcadoOid0AkeA*AyEsomeFulKw?d0Is:ByChel%C#D+GL<)Lc#y~MbooN<aNn RRelyRga(R*lSeS-SketTt!3A^AnAutyCau'ComeEfF%eG(Ha=H(dLie=LowLtN^Nef./TrayTt Twe&Y#d3Cyc!DKeNdOlogyRdR`Tt _{AdeAmeAnketA,EakE[IndOodO[omOu'Ue
1UrUsh_rdAtDyIlMbNeNusOkO,Rd R(gRrowSsTtomUn)XY_{etA(AndA[A=EadEezeI{Id+IefIghtIngIskOccoliOk&OnzeOomO` OwnUsh2Bb!DdyD+tFf$oIldLbLkL!tNd!Nk Rd&Rg R,SS(e[SyTt Y Zz:Bba+B(B!CtusGeKe~LmM aMpNN$N)lNdyNn#NoeNvasNy#Pab!P.$Pta(RRb#RdRgoRpetRryRtSeShS(o/!Su$TT$ogT^Teg%yTt!UghtU'Ut]Ve3Il(gL yM|NsusNturyRe$Rta(_irAlkAmp]An+AosApt Ar+A'AtEapE{Ee'EfErryE,I{&IefIldIm}yOi)Oo'R#-U{!UnkUrn0G?Nnam#Rc!Tiz&TyVil_imApArifyAwAyE<ErkEv I{I|IffImbIn-IpO{OgO'O`OudOwnUbUmpU, Ut^_^A,C#utDeFfeeIlInL!@L%LumnMb(eMeMf%tM-Mm#Mp<yNc tNdu@NfirmNg*[N}@Nsid NtrolNv()OkOlPp PyR$ReRnR*@/Tt#U^UntryUp!Ur'Us(V Yo>_{Ad!AftAmA}AshAt AwlAzyEamEd.EekEwI{etImeIspIt-OpO[Ou^OwdUci$UelUi'Umb!Un^UshYY,$2BeLtu*PPbo?dRiousRr|Rta(R=Sh]/omTe3C!:DMa+MpN)Ng R(gShUght WnY3AlBa>BrisCadeCemb CideCl(eC%a>C*a'ErF&'F(eFyG*eLayLiv M<dMi'Ni$Nti,NyP?tP&dPos.P`PutyRi=ScribeS tSignSkSpair/royTailTe@VelopVi)Vo>3AgramAlAm#dAryCeE'lEtFf G.$Gn.yLemmaNn NosaurRe@RtSag*eScov Sea'ShSmi[S%d Splay/<)V tVideV%)Zzy5Ct%Cum|G~Lph(Ma(Na>NkeyN%OrSeUb!Ve_ftAg#AmaA,-AwEamE[IftIllInkIpI=OpUmY2CkMbNeR(g/T^Ty1Arf1Nam-:G G!RlyRnR`Sily/Sy1HoOlogyOnomy0GeItUca>1F%t0G1GhtTh 2BowD E@r-Eg<tEm|Eph<tEvat%I>Se0B?kBodyBra)Er+Ot]PloyPow Pty0Ab!A@DD![D%'EmyErgyF%)Ga+G(eH<)JoyLi,OughR-hRollSu*T Ti*TryVelope1Isode0U$Uip0AA'OdeOs]R%Upt0CapeSayS&)Ta>0Ern$H-s1Id&)IlOkeOl=1A@Amp!Ce[Ch<+C.eCludeCu'Ecu>Erci'Hau,Hib.I!I,ItOt-P<dPe@Pi*Pla(Po'P*[T&dTra0EEbrow:Br-CeCultyDeIntI`~L'MeMilyMousNNcyNtasyRmSh]TT$Th TigueUltV%.e3Atu*Bru?yD $EEdElMa!N)/iv$T^V W3B Ct]EldGu*LeLmLt N$NdNeNg NishReRmR,Sc$ShTT}[X_gAmeAshAtAv%EeIghtIpOatO{O%Ow UidUshY_mCusGIlLd~owOdOtR)Re,R+tRkRtu}RumRw?dSsil/ UndX_gi!AmeEqu|EshI&dIn+OgOntO,OwnOz&U.2ElNNnyRna)RyTu*:D+tInLaxy~ yMePRa+Rba+Rd&Rl-Rm|SSpTeTh U+Ze3N $NiusN*Nt!Nu(e/u*2O,0AntFtGg!Ng RaffeRlVe_dAn)A*A[IdeImp'ObeOomOryO=OwUe_tDde[LdOdO'RillaSpelSsipV nWn_bA)A(AntApeA[Av.yEatE&IdIefItOc yOupOwUnt_rdE[IdeIltIt?N3M:B.IrLfMm M, NdPpyRb%RdRshR=,TVeWkZ?d3AdAl`ArtAvyD+hogIght~oLmetLpNRo3Dd&Gh~NtPRe/%y5BbyCkeyLdLeLiday~owMeNeyOdPeRnRr%R'Sp.$/TelUrV 5BGeM<Mb!M%Nd*dNgryNtRd!RryRtSb<d3Brid:1EOn0EaEntifyLe2N%e4LLeg$L}[0A+Ita>M&'Mu}Pa@Po'Pro=Pul'0ChCludeComeC*a'DexD-a>Do%Du,ryF<tFl-tF%mHa!H .Iti$Je@JuryMa>N Noc|PutQuiryS<eSe@SideSpi*/$lTa@T e,ToVe,V.eVol=3On0L<dOla>Sue0Em1Ory:CketGu?RZz3AlousAns~yWel9BInKeUr}yY5D+I)MpNg!Ni%Nk/:Ng?oo3EnEpT^upY3CkDD}yNdNgdomSsTT^&TeTt&Wi4EeIfeO{Ow:BBelB%Dd DyKeMpNgua+PtopR+T T(UghUndryVaWWnWsu.Y Zy3Ad AfArnA=Ctu*FtGG$G&dIsu*M#NdNg`NsOp?dSs#Tt Vel3ArB tyBr?yC&'FeFtGhtKeMbM.NkOnQuid/Tt!VeZ?d5AdAnB, C$CkG-NelyNgOpTt yUdUn+VeY$5CkyGga+Mb N?N^Xury3R-s:Ch(eDG-G}tIdIlInJ%KeMm$NNa+Nda>NgoNs]Nu$P!Rb!R^Rg(R(eRketRria+SkSs/ T^T i$ThTrixTt XimumZe3AdowAnAsu*AtCh<-D$DiaLodyLtMb M%yNt]NuRcyR+R.RryShSsa+T$Thod3Dd!DnightLk~]M-NdNimumN%Nu>Rac!Rr%S ySs/akeXXedXtu*5Bi!DelDifyMM|N.%NkeyN, N`OnR$ReRn(gSqu.oTh T]T%Unta(U'VeVie5ChFf(LeLtiplySc!SeumShroomS-/Tu$3Self/ yTh:I=MePk(Rrow/yT]Tu*3ArCkEdGati=G!@I` PhewR=/TTw%kUtr$V WsXt3CeGht5B!I'M(eeOd!Rm$R`SeTab!TeTh(gTi)VelW5C!?Mb R'T:K0EyJe@Li+Scu*S =Ta(Vious0CurE<Tob 0Or1FF Fi)T&2L1Ay0DI=Ymp-0It0CeEI#L(eLy1EnEraIn]Po'T]1An+B.Ch?dD D(?yG<I|Ig($Ph<0Tr-h0H 0Tdo%T TputTside0AlEnEr0NN 0Yg&0/ 0O}:CtDd!GeIrLa)LmNdaNelN-N` P RadeR|RkRrotRtySsT^ThTi|TrolTt nU'VeYm|3A)AnutArAs<tL-<NN$tyNcilOp!Pp [email protected]#T2O}OtoRa'Ys-$0AnoCn-Ctu*E)GGe#~LotNkO} Pe/olT^Zza_)A}tA,-A>AyEa'Ed+U{UgUn+2EmEtIntL?LeLi)NdNyOlPul?Rt]S.]Ssib!/TatoTt yV tyWd W _@i)Ai'Ed-tEf Epa*Es|EttyEv|I)IdeIm?yIntI%.yIs#Iva>IzeOb!mO)[Odu)Of.OgramOje@Omo>OofOp tyOsp O>@OudOvide2Bl-Dd(g~LpL'Mpk(N^PilPpyR^a'R.yRpo'R'ShTZz!3Ramid:99Al.yAntumArt E,]I{ItIzO>:Bb.Cco#CeCkD?DioIlInI'~yMpN^NdomN+PidReTeTh V&WZ%3AdyAlAs#BelBuildC$lCei=CipeC%dCyc!Du)F!@F%mFu'G]G*tGul?Je@LaxLea'LiefLyMa(Memb M(dMo=Nd NewNtOp&PairPeatPla)P%tQui*ScueSemb!Si,Sour)Sp#'SultTi*T*atTurnUn]Ve$ViewW?d2Y`m0BBb#CeChDeD+F!GhtGidNgOtPp!SkTu$V$V 5AdA,BotBu,CketM<)OfOkieOmSeTa>UghUndU>Y$5Bb DeGLeNNwayR$:DDd!D}[FeIlLadLm#L#LtLu>MeMp!NdTisfyToshiU)Usa+VeY1A!AnA*Att E}HemeHoolI&)I[%sOrp]OutRapRe&RiptRub1AAr^As#AtC#dC*tCt]Cur.yEdEkGm|Le@~M(?Ni%N'Nt&)RiesRvi)Ss]Tt!TupV&_dowAftAllowA*EdEllEriffIeldIftI}IpIv O{OeOotOpOrtOuld O=RimpRugUff!Y0Bl(gCkDeE+GhtGnL|Lk~yLv Mil?Mp!N)NgR&/ Tua>XZe1A>
1Et^IIllInIrtUll0AbAmEepEnd I)IdeIghtImOg<OtOwUsh0AllArtI!OkeOo`0A{AkeApIffOw0ApCc Ci$CkDaFtL?Ldi LidLut]L=Me#eNgOnRryRtUlUndUpUr)U`0A)A*Ati$AwnEakEci$EedEllEndH eI)Id IkeInIr.L.OilOns%O#OrtOtRayReadR(gY0Ua*UeezeUir*l_b!AdiumAffA+AirsAmpAndArtA>AyEakEelEmEpE*oI{IllIngO{Oma^O}OolOryO=Ra>gyReetRikeR#gRugg!Ud|[email protected])[ChDd&Ff G?G+,ItMm NNnyN'tP PplyP*meReRfa)R+Rpri'RroundR=ySpe@/a(1AllowAmpApArmE?EetIftImIngIt^Ord1MbolMptomRup/em:B!Ck!GIlL|LkNkPeR+tSk/eTtooXi3A^Am~NN<tNnisNtRm/Xt_nkAtEmeEnE%yE*EyIngIsOughtReeRi=RowUmbUnd 0CketDeG LtMb MeNyPRedSsueT!5A,BaccoDayDdl EGe` I!tK&MatoM%rowNeNgueNightOlO`PP-Pp!R^RnadoRtoi'SsT$Uri,W?dW WnY_{AdeAff-Ag-A(Ansf ApAshA=lAyEatEeEndI$IbeI{Igg ImIpOphyOub!U{UeUlyUmpetU,U`Y2BeIt]Mb!NaN}lRkeyRnRt!1El=EntyI)InI,O1PeP-$:5Ly5B*lla0Ab!Awa*C!Cov D DoFairFoldHappyIf%mIqueItIv 'KnownLo{TilUsu$Veil1Da>GradeHoldOnP Set1B<Ge0A+EEdEfulE![U$0Il.y:C<tCuumGueLidL!yL=NNishP%Rious/Ult3H-!L=tNd%Ntu*NueRbRifyRs]RyS'lT <3Ab!Br<tCiousCt%yDeoEw~a+Nta+Ol(Rtu$RusSaS.Su$T$Vid5C$I)IdLc<oLumeTeYa+:GeG#ItLk~LnutNtRfa*RmRri%ShSp/eT VeY3Al`Ap#ArA'lA` BDd(gEk&dIrdLcome/T_!AtEatEelEnE*IpIsp 0DeD`FeLd~NNdowNeNgNkNn Nt ReSdomSeShT}[5LfM<Nd OdOlRdRkRldRryR`_pE{E,!I,I>Ong::Rd3Ar~ow9UUngU`:3BraRo9NeO","0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60")}static wordlist(){return null==cY&&(cY=new cX),cY}}function c$(e){return(1<<e)-1<<8-e&255}function c0(e,t){j("NFKD"),null==t&&(t=cX.wordlist());let r=t.split(e);L(r.length%3==0&&r.length>
1=12&&r.length<=24,"invalid mnemonic length","mnemonic","[ REDACTED ]");let n=new Uint8Array(Math.ceil(11*r.length/8)),a=0;for(let e=0;e<r.length;e++){let i=t.getWordIndex(r[e].normalize("NFKD"));L(i>=0,`invalid mnemonic word at index ${e}`,"mnemonic","[ REDACTED ]");for(let e=0;e<11;e++)i&1<<10-e&&(n[a>>3]|=1<<7-a%8),a++}let i=32*r.length/3,s=c$(r.length/3);return L((z(aF(n.slice(0,i/8)))[0]&s)==(n[n.length-1]&s),"invalid mnemonic checksum","mnemonic","[ REDACTED ]"),q(n.slice(0,i/8))}function c1(e,t){L(e.length%4==0&&e.length>=16&&e.length<=32,"invalid entropy size","entropy","[ REDACTED ]"),null==t&&(t=cX.wordlist());let r=[0],n=11;for(let t=0;t<e.length;t++)n>8?(r[r.length-1]<<=8,r[r.length-1]|=e[t],n-=8):(r[r.length-1]<<=n,r[r.length-1]|=e[t]>>8-n,r.push(e[t]&((1<<8-n)-1&255)),n+=3);let a=e.length/4,i=parseInt(aF(e).substring(2,4),16)&c$(a);return r[r.length-1]<<=a,r[r.length-1]|=i>>8-a,t.join(r.map(e=>t.getWord(e)))}let c2={};class c3{phrase;password;wordlist;entropy;constructor(e,t,r,n,a){null==n&&(n=""),null==a&&(a=cX.wordlist()),V(e,c2,"Mnemonic"),C(this,{phrase:r,password:n,wordlist:a,entropy:t})}computeSeed(){let e=ei("mnemonic"+this.password,"NFKD");return aV(ei(this.phrase,"NFKD"),e,2048,64,"sha512")}static fromPhrase(e,t,r){let n=c0(e,r);return e=c1(z(n),r),new c3(c2,n,e,t,r)}static fromEntropy(e,t,r){let n=z(e,"entropy"),a=c1(n,r);return new c3(c2,q(n),a,t,r)}static entropyToPhrase(e,t){return c1(z(e,"entropy"),t)}static phraseToEntropy(e,t){return c0(e,t)}static isValidMnemonic(e,t){try{return c0(e,t),!0}catch(e){}return!1}}class c4 extends lS{address;#tL;constructor(e,t){super(t),L(e&&"function"==typeof e.sign,"invalid private key","privateKey","[ REDACTED ]"),this.#tL=e,C(this,{address:sj(this.signingKey.publicKey)})}get signingKey(){return this.#tL}get privateKey(){return this.signingKey.privateKey}async getAddress(){return this.address}connect(e){return new c4(this.#tL,e)}async signTransaction(e){e=nl(e);let{to:t,from:r}=await O({to:e.to?r3(e.to,this):void 0,from:e.from?r3(e.from,this):void 0});null!=t&&(e.to=t),null!=r&&(e.from=r),null!=e.from&&(L(tO(e.from)===this.address,"transaction from address mismatch","tx.from",e.from),delete e.from);let n=oX.from(e);return n.signature=this.signingKey.sign(n.unsignedHash),n.serialized}async signMessage(e){return this.signMessageSync(e)}signMessageSync(e){return this.signingKey.sign(sK(e)).serialized}authorizeSync(e){L("string"==typeof e.address,"invalid address for authorizeSync","auth.address",e);let t=this.signingKey.sign(sH(e));return Object.assign({},{address:tO(e.address),nonce:ep(e.nonce||0),chainId:ep(e.chainId||0)},{signature:t})}async authorize(e){return e=Object.assign({},e,{address:await r3(e.address,this)}),this.authorizeSync(await this.populateAuthorization(e))}async signTypedData(e,t,r){let n=await or.resolveNames(e,t,r,async e=>{F(null!=this.provider,"cannot resolve ENS names without a provider","UNSUPPORTED_OPERATION",{operation:"resolveName",info:{name:e}});let t=await this.provider.resolveName(e);return F(null!=t,"unconfigured ENS name","UNCONFIGURED_NAME",{value:e}),t});return this.signingKey.sign(or.hash(n.domain,t,n.value)).serialized}}var c8=function(e,t,r,n){if("a"===r&&!n)throw TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)},c5=function(e,t,r,n,a){if("m"===n)throw TypeError("Private method is not writable");if("a"===n&&!a)throw TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?a.call(e,r):a?a.value=r:t.set(e,r),r};let c6={16:10,24:12,32:14},c9=[1,2,4,8,16,32,64,128,27,54,108,216,171,77,154,47,94,188,99,198,151,53,106,212,179,125,250,239,197,145],c7=[99,124,119,123,242,107,111,197,48,1,103,43,254,215,171,118,202,130,201,125,250,89,71,240,173,212,162,175,156,164,114,192,183,253,147,38,54,63,247,204,52,165,229,241,113,216,49,21,4,199,35,195,24,150,5,154,7,18,128,226,235,39,178,117,9,131,44,26,27,110,9
10,160,82,59,214,179,41,227,47,132,83,209,0,237,32,252,177,91,106,203,190,57,74,76,88,207,208,239,170,251,67,77,51,133,69,249,2,127,80,60,159,168,81,163,64,143,146,157,56,245,188,182,218,33,16,255,243,210,205,12,19,236,95,151,68,23,196,167,126,61,100,93,25,115,96,129,79,220,34,42,144,136,70,238,184,20,222,94,11,219,224,50,58,10,73,6,36,92,194,211,172,98,145,149,228,121,231,200,55,109,141,213,78,169,108,86,244,234,101,122,174,8,186,120,37,46,28,166,180,198,232,221,116,31,75,189,139,138,112,62,181,102,72,3,246,14,97,53,87,185,134,193,29,158,225,248,152,17,105,217,142,148,155,30,135,233,206,85,40,223,140,161,137,13,191,230,66,104,65,153,45,15,176,84,187,22],ue=[82,9,106,213,48,54,165,56,191,64,163,158,129,243,215,251,124,227,57,130,155,47,255,135,52,142,67,68,196,222,233,203,84,123,148,50,166,194,35,61,238,76,149,11,66,250,195,78,8,46,161,102,40,217,36,178,118,91,162,73,109,139,209,37,114,248,246,100,134,104,152,22,212,164,92,204,93,101,182,146,108,112,72,80,253,237,185,218,94,21,70,87,167,141,157,132,144,216,171,0,140,188,211,10,247,228,88,5,184,179,69,6,208,44,30,143,202,63,15,2,193,175,189,3,1,19,138,107,58,145,17,65,79,103,220,234,151,242,207,206,240,180,230,115,150,172,116,34,231,173,53,133,226,249,55,232,28,117,223,110,71,241,26,113,29,41,197,137,111,183,98,14,170,24,190,27,252,86,62,75,198,210,121,32,154,219,192,254,120,205,90,244,31,221,168,51,136,7,199,49,177,18,16,89,39,128,236,95,96,81,127,169,25,181,74,13,45,229,122,159,147,201,156,239,160,224,59,77,174,42,245,176,200,235,187,60,131,83,153,97,23,43,4,126,186,119,214,38,225,105,20,99,85,33,12,125],ut=[0xc66363a5,0xf87c7c84,0xee777799,0xf67b7b8d,0xfff2f20d,0xd66b6bbd,0xde6f6fb1,0x91c5c554,0x60303050,0x2010103,0xce6767a9,0x562b2b7d,0xe7fefe19,0xb5d7d762,0x4dababe6,0xec76769a,0x8fcaca45,0x1f82829d,0x89c9c940,0xfa7d7d87,0xeffafa15,0xb25959eb,0x8e4747c9,0xfbf0f00b,0x41adadec,0xb3d4d467,0x5fa2a2fd,0x45afafea,0x239c9cbf,0x53a4a4f7,0xe4727296,0x9bc0c05b,0x75b7b7c2,0xe1fdfd1c,0x3d9393ae,0x4c26266a,0x6c36365a,0x7e3f3f41,0xf5f7f702,0x83cccc4f,0x6834345c,0x51a5a5f4,0xd1e5e534,0xf9f1f108,0xe2717193,0xabd8d873,0x62313153,0x2a15153f,0x804040c,0x95c7c752,0x46232365,0x9dc3c35e,0x30181828,0x379696a1,0xa05050f,0x2f9a9ab5,0xe070709,0x24121236,0x1b80809b,0xdfe2e23d,0xcdebeb26,0x4e272769,0x7fb2b2cd,0xea75759f,0x1209091b,0x1d83839e,0x582c2c74,0x341a1a2e,0x361b1b2d,0xdc6e6eb2,0xb45a5aee,0x5ba0a0fb,0xa45252f6,0x763b3b4d,0xb7d6d661,0x7db3b3ce,0x5229297b,0xdde3e33e,0x5e2f2f71,0x13848497,0xa65353f5,0xb9d1d168,0,0xc1eded2c,0x40202060,0xe3fcfc1f,0x79b1b1c8,0xb65b5bed,0xd46a6abe,0x8dcbcb46,0x67bebed9,0x7239394b,0x944a4ade,0x984c4cd4,0xb05858e8,0x85cfcf4a,0xbbd0d06b,0xc5efef2a,0x4faaaae5,0xedfbfb16,0x864343c5,0x9a4d4dd7,0x66333355,0x11858594,0x8a4545cf,0xe9f9f910,0x4020206,0xfe7f7f81,0xa05050f0,0x783c3c44,0x259f9fba,0x4ba8a8e3,0xa25151f3,0x5da3a3fe,0x804040c0,0x58f8f8a,0x3f9292ad,0x219d9dbc,0x70383848,0xf1f5f504,0x63bcbcdf,0x77b6b6c1,0xafdada75,0x42212163,0x20101030,0xe5ffff1a,0xfdf3f30e,0xbfd2d26d,0x81cdcd4c,0x180c0c14,0x26131335,0xc3ecec2f,0xbe5f5fe1,0x359797a2,0x884444cc,0x2e171739,0x93c4c457,0x55a7a7f2,0xfc7e7e82,0x7a3d3d47,0xc86464ac,0xba5d5de7,0x3219192b,0xe6737395,0xc06060a0,0x19818198,0x9e4f4fd1,0xa3dcdc7f,0x44222266,0x542a2a7e,0x3b9090ab,0xb888883,0x8c4646ca,0xc7eeee29,0x6bb8b8d3,0x2814143c,0xa7dede79,0xbc5e5ee2,0x160b0b1d,0xaddbdb76,0xdbe0e03b,0x64323256,0x743a3a4e,0x140a0a1e,0x924949db,0xc06060a,0x4824246c,0xb85c5ce4,0x9fc2c25d,0xbdd3d36e,0x43acacef,0xc46262a6,0x399191a8,0x319595a4,0xd3e4e437,0xf279798b,0xd5e7e732,0x8bc8c843,0x6e373759,0xda6d6db7,0x18d8d8c,0xb1d5d564,0x9c4e4ed2,0x49a9a9e0,0xd86c6cb4,0xac5656fa,0xf3f4f407,0xcfeaea25,0xca6565af,0xf47a7a8e,0x47aeaee9,0x10080818,0x6fbabad5,0xf0787888,0x4a25256f,0x5c2e2e72,0x381c1c24,0x57a6a6f1,0x73b4b4c7,0x97c6c651,0xcbe8e823,0xa1dddd7c,0xe874749c,0x3e1f1f21,0x964b4bdd,0x61bdbddc,0xd8b8b86,0xf8a8a85,0xe0707090,0x7c3e3e42,0x71b5b5c4,0xcc6666aa,0x904848d8,0x6030305,0xf7f6f601,0x1c0e0e12,0xc26161a3,0x6a35355f,0xae5757f9,0x69b9b9d0,0x17868691,0x99c1c158,0x3a1d1d27,0x279e9eb9,0xd9e1e138,0xebf8f813,0x2b9898b3,0x22111133,0xd26969bb,0xa9d9d970,0x78e8e89,0x339494a7,0x2d9b9bb6,0x3c1e1e22,0x15878792,0xc9e9e920,0x87cece49,0xaa5555ff,0x50282878,0xa5dfdf7a,0x38c8c8f,0x59a1a1f8,0x9898980,0x1a0d0d17,0x65bfbfda,0xd7e6e631,0x844242c6,0xd06868b8,0x824141c3,0x299999b0,0x5a2d2d77,0x1e0f0f11,0x7bb0b0cb,0xa85454fc,0x6dbbbbd6,0x2c16163a],ur=[0xa5c66363,0x84f87c7c,0x99ee7777,0x8df67b7b,0xdfff2f2,0xbdd66b6b,0xb1de6f6f,0x5491c5c5,0x50603030,0x3020101,0xa9ce6767,0x7d562b2b,0x19e7fefe,0x62b5d7d7,0xe64dabab,0x9aec7676,0x458fcaca,0x9d1f8282,0x4089c9c9,0x87fa7d7d,0x15effafa,0xebb25959,0xc98e4747,0xbfbf0f0,0xec41adad,0x67b3d4d4,0xfd5fa2a2,0xea45afaf,0xbf239c9c,0xf753a4a4,0x96e47272,0x5b9bc0c0,0xc275b7b7,0x1ce1fdfd,0xae3d9393,0x6a4c2626,0x5a6c3636,0x417e3f3f,0x2f5f7f7,0x4f83cccc,0x5c683434,0xf451a5a5,0x34d1e5e5,0x8f9f1f1,0x93e27171,0x73abd8d8,0x53623131,0x3f2a1515,0xc080404,0x5295c7c7,0x65462323,0x5e9dc3c3,0x28301818,0xa1379696,0xf0a0505,0xb52f9a9a,0x90e0707,0x36241212,0x9b1b8080,0x3ddfe2e2,0x26cdebeb,0x694e2727,0xcd7fb2b2,0x9fea7575,0x1b120909,0x9e1d8383,0x74582c2c,0x2e341a1a,0x2d361b1b,0xb2dc6e6e,0xeeb45a5a,0xfb5ba0a0,0xf6a45252,0x4d763b3b,0x61b7d6d6,0xce7db3b3,0x7b522929,0x3edde3e3,0x715e2f2f,0x97138484,0xf5a65353,0x68b9d1d1,0,0x2cc1eded,0x60402020,0x1fe3fcf
1c,0xc879b1b1,0xedb65b5b,0xbed46a6a,0x468dcbcb,0xd967bebe,0x4b723939,0xde944a4a,0xd4984c4c,0xe8b05858,0x4a85cfcf,0x6bbbd0d0,0x2ac5efef,0xe54faaaa,0x16edfbfb,0xc5864343,0xd79a4d4d,0x55663333,0x94118585,0xcf8a4545,0x10e9f9f9,0x6040202,0x81fe7f7f,0xf0a05050,0x44783c3c,0xba259f9f,0xe34ba8a8,0xf3a25151,0xfe5da3a3,0xc0804040,0x8a058f8f,0xad3f9292,0xbc219d9d,0x48703838,0x4f1f5f5,0xdf63bcbc,0xc177b6b6,0x75afdada,0x63422121,0x30201010,0x1ae5ffff,0xefdf3f3,0x6dbfd2d2,0x4c81cdcd,0x14180c0c,0x35261313,0x2fc3ecec,0xe1be5f5f,0xa2359797,0xcc884444,0x392e1717,0x5793c4c4,0xf255a7a7,0x82fc7e7e,0x477a3d3d,0xacc86464,0xe7ba5d5d,0x2b321919,0x95e67373,0xa0c06060,0x98198181,0xd19e4f4f,0x7fa3dcdc,0x66442222,0x7e542a2a,0xab3b9090,0x830b8888,0xca8c4646,0x29c7eeee,0xd36bb8b8,0x3c281414,0x79a7dede,0xe2bc5e5e,0x1d160b0b,0x76addbdb,0x3bdbe0e0,0x56643232,0x4e743a3a,0x1e140a0a,0xdb924949,0xa0c0606,0x6c482424,0xe4b85c5c,0x5d9fc2c2,0x6ebdd3d3,0xef43acac,0xa6c46262,0xa8399191,0xa4319595,0x37d3e4e4,0x8bf27979,0x32d5e7e7,0x438bc8c8,0x596e3737,0xb7da6d6d,0x8c018d8d,0x64b1d5d5,0xd29c4e4e,0xe049a9a9,0xb4d86c6c,0xfaac5656,0x7f3f4f4,0x25cfeaea,0xafca6565,0x8ef47a7a,0xe947aeae,0x18100808,0xd56fbaba,0x88f07878,0x6f4a2525,0x725c2e2e,0x24381c1c,0xf157a6a6,0xc773b4b4,0x5197c6c6,0x23cbe8e8,0x7ca1dddd,0x9ce87474,0x213e1f1f,0xdd964b4b,0xdc61bdbd,0x860d8b8b,0x850f8a8a,0x90e07070,0x427c3e3e,0xc471b5b5,0xaacc6666,0xd8904848,0x5060303,0x1f7f6f6,0x121c0e0e,0xa3c26161,0x5f6a3535,0xf9ae5757,0xd069b9b9,0x91178686,0x5899c1c1,0x273a1d1d,0xb9279e9e,0x38d9e1e1,0x13ebf8f8,0xb32b9898,0x33221111,0xbbd26969,0x70a9d9d9,0x89078e8e,0xa7339494,0xb62d9b9b,0x223c1e1e,0x92158787,0x20c9e9e9,0x4987cece,0xffaa5555,0x78502828,0x7aa5dfdf,0x8f038c8c,0xf859a1a1,0x80098989,0x171a0d0d,0xda65bfbf,0x31d7e6e6,0xc6844242,0xb8d06868,0xc3824141,0xb0299999,0x775a2d2d,0x111e0f0f,0xcb7bb0b0,0xfca85454,0xd66dbbbb,0x3a2c1616],un=[0x63a5c663,0x7c84f87c,0x7799ee77,0x7b8df67b,0xf20dfff2,0x6bbdd66b,0x6fb1de6f,0xc55491c5,0x30506030,0x1030201,0x67a9ce67,0x2b7d562b,0xfe19e7fe,0xd762b5d7,0xabe64dab,0x769aec76,0xca458fca,0x829d1f82,0xc94089c9,0x7d87fa7d,0xfa15effa,0x59ebb259,0x47c98e47,0xf00bfbf0,0xadec41ad,0xd467b3d4,0xa2fd5fa2,0xafea45af,0x9cbf239c,0xa4f753a4,0x7296e472,0xc05b9bc0,0xb7c275b7,0xfd1ce1fd,0x93ae3d93,0x266a4c26,0x365a6c36,0x3f417e3f,0xf702f5f7,0xcc4f83cc,0x345c6834,0xa5f451a5,0xe534d1e5,0xf108f9f1,0x7193e271,0xd873abd8,0x31536231,0x153f2a15,0x40c0804,0xc75295c7,0x23654623,0xc35e9dc3,0x18283018,0x96a13796,0x50f0a05,0x9ab52f9a,0x7090e07,0x12362412,0x809b1b80,0xe23ddfe2,0xeb26cdeb,0x27694e27,0xb2cd7fb2,0x759fea75,0x91b1209,0x839e1d83,0x2c74582c,0x1a2e341a,0x1b2d361b,0x6eb2dc6e,0x5aeeb45a,0xa0fb5ba0,0x52f6a452,0x3b4d763b,0xd661b7d6,0xb3ce7db3,0x297b5229,0xe33edde3,0x2f715e2f,0x84971384,0x53f5a653,0xd168b9d1,0,0xed2cc1ed,0x20604020,0xfc1fe3fc,0xb1c879b1,0x5bedb65b,0x6abed46a,0xcb468dcb,0xbed967be,0x394b7239,0x4ade944a,0x4cd4984c,0x58e8b058,0xcf4a85cf,0xd06bbbd0,0xef2ac5ef,0xaae54faa,0xfb16edfb,0x43c58643,0x4dd79a4d,0x33556633,0x85941185,0x45cf8a45,0xf910e9f9,0x2060402,0x7f81fe7f,0x50f0a050,0x3c44783c,0x9fba259f,0xa8e34ba8,0x51f3a251,0xa3fe5da3,0x40c08040,0x8f8a058f,0x92ad3f92,0x9dbc219d,0x38487038,0xf504f1f5,0xbcdf63bc,0xb6c177b6,0xda75afda,0x21634221,0x10302010,0xff1ae5ff,0xf30efdf3,0xd26dbfd2,0xcd4c81cd,0xc14180c,0x13352613,0xec2fc3ec,0x5fe1be5f,0x97a23597,0x44cc8844,0x17392e17,0xc45793c4,0xa7f255a7,0x7e82fc7e,0x3d477a3d,0x64acc864,0x5de7ba5d,0x192b3219,0x7395e673,0x60a0c060,0x81981981,0x4fd19e4f,0xdc7fa3dc,0x22664422,0x2a7e542a,0x90ab3b90,0x88830b88,0x46ca8c46,0xee29c7ee,0xb8d36bb8,0x143c2814,0xde79a7de,0x5ee2bc5e,0xb1d160b,0xdb76addb,0xe03bdbe0,0x32566432,0x3a4e743a,0xa1e140a,0x49db9249,0x60a0c06,0x246c4824,0x5ce4b85c,0xc25d9fc2,0xd36ebdd3,0xacef43ac,0x62a6c462,0x91a83991,0x95a43195,0xe437d3e4,0x798bf279,0xe732d5e7,0xc8438bc8,0x37596e37,0x6db7da6d,0x8d8c018d,0xd564b1d5,0x4ed29c4e,0xa9e049a9,0x6cb4d86c,0x56faac56,0xf407f3f4,0xea25cfea,0x65afca65,0x7a8ef47a,0xaee947ae,0x8181008,0xbad56fba,0x7888f078,0x256f4a25,0x2e725c2e,0x1c24381c,0xa6f157a6,0xb4c773b4,0xc65197c6,0xe823cbe8,0xdd7ca1dd,0x749ce874,0x1f213e1f,0x4bdd964b,0xbddc61bd,0x8b860d8b,0x8a850f8a,0x7090e070,0x3e427c3e,0
1xb5c471b5,0x66aacc66,0x48d89048,0x3050603,0xf601f7f6,0xe121c0e,0x61a3c261,0x355f6a35,0x57f9ae57,0xb9d069b9,0x86911786,0xc15899c1,0x1d273a1d,0x9eb9279e,0xe138d9e1,0xf813ebf8,0x98b32b98,0x11332211,0x69bbd269,0xd970a9d9,0x8e89078e,0x94a73394,0x9bb62d9b,0x1e223c1e,0x87921587,0xe920c9e9,0xce4987ce,0x55ffaa55,0x28785028,0xdf7aa5df,0x8c8f038c,0xa1f859a1,0x89800989,0xd171a0d,0xbfda65bf,0xe631d7e6,0x42c68442,0x68b8d068,0x41c38241,0x99b02999,0x2d775a2d,0xf111e0f,0xb0cb7bb0,0x54fca854,0xbbd66dbb,0x163a2c16],ua=[0x6363a5c6,0x7c7c84f8,0x777799ee,0x7b7b8df6,0xf2f20dff,0x6b6bbdd6,0x6f6fb1de,0xc5c55491,0x30305060,0x1010302,0x6767a9ce,0x2b2b7d56,0xfefe19e7,0xd7d762b5,0xababe64d,0x76769aec,0xcaca458f,0x82829d1f,0xc9c94089,0x7d7d87fa,0xfafa15ef,0x5959ebb2,0x4747c98e,0xf0f00bfb,0xadadec41,0xd4d467b3,0xa2a2fd5f,0xafafea45,0x9c9cbf23,0xa4a4f753,0x727296e4,0xc0c05b9b,0xb7b7c275,0xfdfd1ce1,0x9393ae3d,0x26266a4c,0x36365a6c,0x3f3f417e,0xf7f702f5,0xcccc4f83,0x34345c68,0xa5a5f451,0xe5e534d1,0xf1f108f9,0x717193e2,0xd8d873ab,0x31315362,0x15153f2a,0x4040c08,0xc7c75295,0x23236546,0xc3c35e9d,0x18182830,0x9696a137,0x5050f0a,0x9a9ab52f,0x707090e,0x12123624,0x80809b1b,0xe2e23ddf,0xebeb26cd,0x2727694e,0xb2b2cd7f,0x75759fea,0x9091b12,0x83839e1d,0x2c2c7458,0x1a1a2e34,0x1b1b2d36,0x6e6eb2dc,0x5a5aeeb4,0xa0a0fb5b,0x5252f6a4,0x3b3b4d76,0xd6d661b7,0xb3b3ce7d,0x29297b52,0xe3e33edd,0x2f2f715e,0x84849713,0x5353f5a6,0xd1d168b9,0,0xeded2cc1,0x20206040,0xfcfc1fe3,0xb1b1c879,0x5b5bedb6,0x6a6abed4,0xcbcb468d,0xbebed967,0x39394b72,0x4a4ade94,0x4c4cd498,0x5858e8b0,0xcfcf4a85,0xd0d06bbb,0xefef2ac5,0xaaaae54f,0xfbfb16ed,0x4343c586,0x4d4dd79a,0x33335566,0x85859411,0x4545cf8a,0xf9f910e9,0x2020604,0x7f7f81fe,0x5050f0a0,0x3c3c4478,0x9f9fba25,0xa8a8e34b,0x5151f3a2,0xa3a3fe5d,0x4040c080,0x8f8f8a05,0x9292ad3f,0x9d9dbc21,0x38384870,0xf5f504f1,0xbcbcdf63,0xb6b6c177,0xdada75af,0x21216342,0x10103020,0xffff1ae5,0xf3f30efd,0xd2d26dbf,0xcdcd4c81,0xc0c1418,0x13133526,0xecec2fc3,0x5f5fe1be,0x9797a235,0x4444cc88,0x1717392e,0xc4c45793,0xa7a7f255,0x7e7e82fc,0x3d3d477a,0x6464acc8,0x5d5de7ba,0x19192b32,0x737395e6,0x6060a0c0,0x81819819,0x4f4fd19e,0xdcdc7fa3,0x22226644,0x2a2a7e54,0x9090ab3b,0x8888830b,0x4646ca8c,0xeeee29c7,0xb8b8d36b,0x14143c28,0xdede79a7,0x5e5ee2bc,0xb0b1d16,0xdbdb76ad,0xe0e03bdb,0x32325664,0x3a3a4e74,0xa0a1e14,0x4949db92,0x6060a0c,0x24246c48,0x5c5ce4b8,0xc2c25d9f,0xd3d36ebd,0xacacef43,0x6262a6c4,0x9191a839,0x9595a431,0xe4e437d3,0x79798bf2,0xe7e732d5,0xc8c8438b,0x3737596e,0x6d6db7da,0x8d8d8c01,0xd5d564b1,0x4e4ed29c,0xa9a9e049,0x6c6cb4d8,0x5656faac,0xf4f407f3,0xeaea25cf,0x6565afca,0x7a7a8ef4,0xaeaee947,0x8081810,0xbabad56f,0x787888f0,0x25256f4a,0x2e2e725c,0x1c1c2438,0xa6a6f157,0xb4b4c773,0xc6c65197,0xe8e823cb,0xdddd7ca1,0x74749ce8,0x1f1f213e,0x4b4bdd96,0xbdbddc61,0x8b8b860d,0x8a8a850f,0x707090e0,0x3e3e427c,0xb5b5c471,0x6666aacc,0x4848d890,0x3030506,0xf6f601f7,0xe0e121c,0x6161a3c2,0x35355f6a,0x5757f9ae,0xb9b9d069,0x86869117,0xc1c15899,0x1d1d273a,0x9e9eb927,0xe1e138d9,0xf8f813eb,0x9898b32b,0x11113322,0x6969bbd2,0xd9d970a9,0x8e8e8907,0x9494a733,0x9b9bb62d,0x1e1e223c,0x87879215,0xe9e920c9,0xcece4987,0x5555ffaa,0x28287850,0xdfdf7aa5,0x8c8c8f03,0xa1a1f859,0x89898009,0xd0d171a,0xbfbfda65,0xe6e631d7,0x4242c684,0x6868b8d0,0x4141c382,0x9999b029,0x2d2d775a,0xf0f111e,0xb0b0cb7b,0x5454fca8,0xbbbbd66d,0x16163a2c],ui=[0x51f4a750,0x7e416553,0x1a17a4c3,0x3a275e96,0x3bab6bcb,0x1f9d45f1,0xacfa58ab,0x4be30393,0x2030fa55,0xad766df6,0x88cc7691,0xf5024c25,0x4fe5d7fc,0xc52acbd7,0x26354480,0xb562a38f,0xdeb15a49,0x25ba1b67,0x45ea0e98,0x5dfec0e1,0xc32f7502,0x814cf012,0x8d4697a3,0x6bd3f9c6,0x38f5fe7,0x15929c95,0xbf6d7aeb,0x955259da,0xd4be832d,0x587421d3,0x49e06929,0x8ec9c844,0x75c2896a,0xf48e7978,0x99583e6b,0x27b971dd,0xbee14fb6,0xf088ad17,0xc920ac66,0x7dce3ab4,0x63df4a18,0xe51a3182,0x97513360,0x62537f45,0xb16477e0,0xbb6bae84,0xfe81a01c,0xf9082b94,0x70486858,0x8f45fd19,0x94de6c87,0x527bf8b7,0xab73d323,0x724b02e2,0xe31f8f57,0x6655ab2a,0xb2eb2807,0x2fb5c203,0x86c57b9a,0xd33708a5,0x302887f2,0x23bfa5b2,0x2036aba,0xed16825c,0x8acf1c2b,0xa779b492,0xf307f2f0,0x4e69e2a1,0x65daf4cd,0x605bed5,0xd134621f,0xc4a6fe8a,0x342e539d,0xa2f355a0,0x58ae132,0xa4f6eb75,0xb83ec39,0x4060efaa,0x5e719f06,0xbd6e1051,0x3e218af9,0x96dd063d,0xdd3e05ae,0x4de6bd46,0x91548db5,0x71c45d05,0x406d46f,0x605015ff,0x1998fb24,0xd6bde997,0x894043cc,0x67d99e77,0xb0e842bd,0x7898b88,0xe7195b38,0x79c8eedb,0xa17c0a47,0x7c420fe9,0xf8841ec9,0,0x9808683,0x322bed48,0x1e1170ac,0x6c5a724e,0xfd0efffb,0xf853856,0x3daed51e,0x362d3927,0xa0fd964,0x685ca621,0x9b5b54d1,0x24362e3a,0xc0a67b1,0x9357e70f,0xb4ee9
16d2,0x1b9b919e,0x80c0c54f,0x61dc20a2,0x5a774b69,0x1c121a16,0xe293ba0a,0xc0a02ae5,0x3c22e043,0x121b171d,0xe090d0b,0xf28bc7ad,0x2db6a8b9,0x141ea9c8,0x57f11985,0xaf75074c,0xee99ddbb,0xa37f60fd,0xf701269f,0x5c72f5bc,0x44663bc5,0x5bfb7e34,0x8b432976,0xcb23c6dc,0xb6edfc68,0xb8e4f163,0xd731dcca,0x42638510,0x13972240,0x84c61120,0x854a247d,0xd2bb3df8,0xaef93211,0xc729a16d,0x1d9e2f4b,0xdcb230f3,0xd8652ec,0x77c1e3d0,0x2bb3166c,0xa970b999,0x119448fa,0x47e96422,0xa8fc8cc4,0xa0f03f1a,0x567d2cd8,0x223390ef,0x87494ec7,0xd938d1c1,0x8ccaa2fe,0x98d40b36,0xa6f581cf,0xa57ade28,0xdab78e26,0x3fadbfa4,0x2c3a9de4,0x5078920d,0x6a5fcc9b,0x547e4662,0xf68d13c2,0x90d8b8e8,0x2e39f75e,0x82c3aff5,0x9f5d80be,0x69d0937c,0x6fd52da9,0xcf2512b3,0xc8ac993b,0x10187da7,0xe89c636e,0xdb3bbb7b,0xcd267809,0x6e5918f4,0xec9ab701,0x834f9aa8,0xe6956e65,0xaaffe67e,0x21bccf08,0xef15e8e6,0xbae79bd9,0x4a6f36ce,0xea9f09d4,0x29b07cd6,0x31a4b2af,0x2a3f2331,0xc6a59430,0x35a266c0,0x744ebc37,0xfc82caa6,0xe090d0b0,0x33a7d815,0xf104984a,0x41ecdaf7,0x7fcd500e,0x1791f62f,0x764dd68d,0x43efb04d,0xccaa4d54,0xe49604df,0x9ed1b5e3,0x4c6a881b,0xc12c1fb8,0x4665517f,0x9d5eea04,0x18c355d,0xfa877473,0xfb0b412e,0xb3671d5a,0x92dbd252,0xe9105633,0x6dd64713,0x9ad7618c,0x37a10c7a,0x59f8148e,0xeb133c89,0xcea927ee,0xb761c935,0xe11ce5ed,0x7a47b13c,0x9cd2df59,0x55f2733f,0x1814ce79,0x73c737bf,0x53f7cdea,0x5ffdaa5b,0xdf3d6f14,0x7844db86,0xcaaff381,0xb968c43e,0x3824342c,0xc2a3405f,0x161dc372,0xbce2250c,0x283c498b,0xff0d9541,0x39a80171,0x80cb3de,0xd8b4e49c,0x6456c190,0x7bcb8461,0xd532b670,0x486c5c74,0xd0b85742],us=[0x5051f4a7,0x537e4165,0xc31a17a4,0x963a275e,0xcb3bab6b,0xf11f9d45,0xabacfa58,0x934be303,0x552030fa,0xf6ad766d,0x9188cc76,0x25f5024c,0xfc4fe5d7,0xd7c52acb,0x80263544,0x8fb562a3,0x49deb15a,0x6725ba1b,0x9845ea0e,0xe15dfec0,0x2c32f75,0x12814cf0,0xa38d4697,0xc66bd3f9,0xe7038f5f,0x9515929c,0xebbf6d7a,0xda955259,0x2dd4be83,0xd3587421,0x2949e069,0x448ec9c8,0x6a75c289,0x78f48e79,0x6b99583e,0xdd27b971,0xb6bee14f,0x17f088ad,0x66c920ac,0xb47dce3a,0x1863df4a,0x82e51a31,0x60975133,0x4562537f,0xe0b16477,0x84bb6bae,0x1cfe81a0,0x94f9082b,0x58704868,0x198f45fd,0x8794de6c,0xb7527bf8,0x23ab73d3,0xe2724b02,0x57e31f8f,0x2a6655ab,0x7b2eb28,0x32fb5c2,0x9a86c57b,0xa5d33708,0xf2302887,0xb223bfa5,0xba02036a,0x5ced1682,0x2b8acf1c,0x92a779b4,0xf0f307f2,0xa14e69e2,0xcd65daf4,0xd50605be,0x1fd13462,0x8ac4a6fe,0x9d342e53,0xa0a2f355,0x32058ae1,0x75a4f6eb,0x390b83ec,0xaa4060ef,0x65e719f,0x51bd6e10,0xf93e218a,0x3d96dd06,0xaedd3e05,0x464de6bd,0xb591548d,0x571c45d,0x6f0406d4,0xff605015,0x241998fb,0x97d6bde9,0xcc894043,0x7767d99e,0xbdb0e842,0x8807898b,0x38e7195b,0xdb79c8ee,0x47a17c0a,0xe97c420f,0xc9f8841e,0,0x83098086,0x48322bed,0xac1e1170,0x4e6c5a72,0xfbfd0eff,0x560f8538,0x1e3daed5,0x27362d39,0x640a0fd9,0x21685ca6,0xd19b5b54,0x3a24362e,0xb10c0a67,0xf9357e7,0xd2b4ee96,0x9e1b9b91,0x4f80c0c5,0xa261dc20,0x695a774b,0x161c121a,0xae293ba,0xe5c0a02a,0x433c22e0,0x1d121b17,0xb0e090d,0xadf28bc7,0xb92db6a8,0xc8141ea9,0x8557f119,0x4caf7507,0xbbee99dd,0xfda37f60,0x9ff70126,0xbc5c72f5,0xc544663b,0x345bfb7e,0x768b4329,0xdccb23c6,0x68b6edfc,0x63b8e4f1,0xcad731dc,0x10426385,0x40139722,0x2084c611,0x7d854a24,0xf8d2bb3d,0x11aef932,0x6dc729a1,0x4b1d9e2f,0xf3dcb230,0xec0d8652,0xd077c1e3,0x6c2bb316,0x99a970b9,0xfa119448,0x2247e964,0xc4a8fc8c,0x1aa0f03f,0xd8567d2c,0xef223390,0xc787494e,0xc1d938d1,0xfe8ccaa2,0x3698d40b,0xcfa6f581,0x28a57ade,0x26dab78e,0xa43fadbf,0xe42c3a9d,0xd507892,0x9b6a5fcc,0x62547e46,0xc2f68d13,0xe890d8b8,0x5e2e39f7,0xf582c3af,0xbe9f5d80,0x7c69d093,0xa96fd52d,0xb3cf2512,0x3bc8ac99,0xa710187d,0x6ee89c63,0x7bdb3bbb,0x9cd2678,0xf46e5918,0x1ec9ab7,0xa8834f9a,0x65e6956e,0x7eaaffe6,0x821bccf,0xe6ef15e8,0xd9bae79b,0xce4a6f36,0xd4ea9f09,0xd629b07c,0xaf31a4b2,0x312a3f23,0x30c6a594,0xc035a266,0x37744ebc,0xa6fc82ca,0xb0e090d0,0x1533a7d8,0x4af10498,0xf741ecda,0xe7fcd50,0x2f1791f6,0x8d764dd6,0x4d43efb0,0x54ccaa4d,0xdfe49604,0xe39ed1b5,0x1b4c6a88,0xb8c12c1f,0x7f466551,0x49d5eea,0x5d018c35,0x73fa8774,0x2efb0b41,0x5ab3671d,0x5292dbd2,0x33e91056,0x136dd647,0x8c9ad761,0x7a37a10c,0x8e59f814,0x89eb133c,0xeecea927,0x35b761c9,0xede11ce5,0x3c7a47b1,0x599cd2df,0x3f55f273,0x791814ce,0xbf73c737,0xea53f7cd,0x5b5ffdaa,0x14df3d6f,0x867844db,0x81caaff3,0x3eb968c4,0x2c382434,0x5fc2a340,0x72161dc3,0xcbce225,0x8b283c49,0x41ff0d95,0x7139a801,0xde080cb3,0x9cd8b4e4,0x906456c1,
10x617bcb84,0x70d532b6,0x74486c5c,0x42d0b857],uo=[0xa75051f4,0x65537e41,0xa4c31a17,0x5e963a27,0x6bcb3bab,0x45f11f9d,0x58abacfa,0x3934be3,0xfa552030,0x6df6ad76,0x769188cc,0x4c25f502,0xd7fc4fe5,0xcbd7c52a,0x44802635,0xa38fb562,0x5a49deb1,0x1b6725ba,0xe9845ea,0xc0e15dfe,0x7502c32f,0xf012814c,0x97a38d46,0xf9c66bd3,0x5fe7038f,0x9c951592,0x7aebbf6d,0x59da9552,0x832dd4be,0x21d35874,0x692949e0,0xc8448ec9,0x896a75c2,0x7978f48e,1047239e3,0x71dd27b9,0x4fb6bee1,0xad17f088,0xac66c920,0x3ab47dce,0x4a1863df,0x3182e51a,0x33609751,0x7f456253,0x77e0b164,0xae84bb6b,0xa01cfe81,0x2b94f908,0x68587048,0xfd198f45,0x6c8794de,0xf8b7527b,0xd323ab73,0x2e2724b,0x8f57e31f,0xab2a6655,0x2807b2eb,0xc2032fb5,0x7b9a86c5,0x8a5d337,0x87f23028,0xa5b223bf,0x6aba0203,0x825ced16,0x1c2b8acf,0xb492a779,0xf2f0f307,0xe2a14e69,0xf4cd65da,0xbed50605,0x621fd134,0xfe8ac4a6,0x539d342e,0x55a0a2f3,0xe132058a,0xeb75a4f6,0xec390b83,0xefaa4060,0x9f065e71,0x1051bd6e,0x8af93e21,0x63d96dd,0x5aedd3e,0xbd464de6,0x8db59154,0x5d0571c4,0xd46f0406,0x15ff6050,0xfb241998,0xe997d6bd,0x43cc8940,0x9e7767d9,0x42bdb0e8,0x8b880789,0x5b38e719,0xeedb79c8,0xa47a17c,0xfe97c42,0x1ec9f884,0,0x86830980,0xed48322b,0x70ac1e11,0x724e6c5a,0xfffbfd0e,0x38560f85,0xd51e3dae,0x3927362d,0xd9640a0f,0xa621685c,0x54d19b5b,0x2e3a2436,0x67b10c0a,0xe70f9357,0x96d2b4ee,0x919e1b9b,0xc54f80c0,0x20a261dc,0x4b695a77,0x1a161c12,0xba0ae293,0x2ae5c0a0,0xe0433c22,0x171d121b,0xd0b0e09,0xc7adf28b,0xa8b92db6,0xa9c8141e,0x198557f1,0x74caf75,0xddbbee99,0x60fda37f,0x269ff701,0xf5bc5c72,0x3bc54466,0x7e345bfb,0x29768b43,0xc6dccb23,0xfc68b6ed,0xf163b8e4,0xdccad731,0x85104263,0x22401397,0x112084c6,0x247d854a,0x3df8d2bb,0x3211aef9,0xa16dc729,0x2f4b1d9e,0x30f3dcb2,0x52ec0d86,0xe3d077c1,0x166c2bb3,0xb999a970,0x48fa1194,0x642247e9,0x8cc4a8fc,0x3f1aa0f0,0x2cd8567d,0x90ef2233,0x4ec78749,0xd1c1d938,0xa2fe8cca,0xb3698d4,0x81cfa6f5,0xde28a57a,0x8e26dab7,0xbfa43fad,0x9de42c3a,0x920d5078,0xcc9b6a5f,0x4662547e,0x13c2f68d,0xb8e890d8,0xf75e2e39,0xaff582c3,0x80be9f5d,0x937c69d0,0x2da96fd5,0x12b3cf25,0x993bc8ac,0x7da71018,0x636ee89c,0xbb7bdb3b,0x7809cd26,0x18f46e59,0xb701ec9a,0x9aa8834f,0x6e65e695,0xe67eaaff,0xcf0821bc,0xe8e6ef15,0x9bd9bae7,0x36ce4a6f,0x9d4ea9f,0x7cd629b0,0xb2af31a4,0x23312a3f,0x9430c6a5,0x66c035a2,0xbc37744e,0xcaa6fc82,0xd0b0e090,0xd81533a7,0x984af104,0xdaf741ec,0x500e7fcd,0xf62f1791,0xd68d764d,0xb04d43ef,0x4d54ccaa,0x4dfe496,0xb5e39ed1,0x881b4c6a,0x1fb8c12c,0x517f4665,0xea049d5e,0x355d018c,0x7473fa87,0x412efb0b,0x1d5ab367,0xd25292db,0x5633e910,0x47136dd6,0x618c9ad7,0xc7a37a1,0x148e59f8,0x3c89eb13,0x27eecea9,0xc935b761,0xe5ede11c,0xb13c7a47,0xdf599cd2,0x733f55f2,0xce791814,0x37bf73c7,0xcdea53f7,0xaa5b5ffd,0x6f14df3d,0xdb867844,0xf381caaf,0xc43eb968,0x342c3824,0x405fc2a3,0xc372161d,0x250cbce2,0x498b283c,0x9541ff0d,0x17139a8,0xb3de080c,0xe49cd8b4,0xc1906456,0x84617bcb,0xb670d532,0x5c74486c,0x5742d0b8],ul=[0xf4a75051,0x4165537e,0x17a4c31a,0x275e963a,0xab6bcb3b,0x9d45f11f,0xfa58abac,0xe303934b,0x30fa5520,0x766df6ad,0xcc769188,0x24c25f5,0xe5d7fc4f,0x2acbd7c5,0x35448026,0x62a38fb5,0xb15a49de,0xba1b6725,0xea0e9845,0xfec0e15d,0x2f7502c3,0x4cf01281,0x4697a38d,0xd3f9c66b,0x8f5fe703,0x929c9515,0x6d7aebbf,0x5259da95,0xbe832dd4,0x7421d358,0xe0692949,0xc9c8448e,0xc2896a75,0x8e7978f4,0x583e6b99,0xb971dd27,0xe14fb6be,0x88ad17f0,0x20ac66c9,0xce3ab47d,0xdf4a1863,0x1a3182e5,0x51336097,0x537f4562,0x6477e0b1,0x6bae84bb,0x81a01cfe,0x82b94f9,0x48685870,0x45fd198f,0xde6c8794,0x7bf8b752,0x73d323ab,0x4b02e272,0x1f8f57e3,0x55ab2a66,0xeb2807b2,0xb5c2032f,0xc57b9a86,0x3708a5d3,679998e3,0xbfa5b223,0x36aba02,0x16825ced,0xcf1c2b8a,0x79b492a7,0x7f2f0f3,0x69e2a14e,0xdaf4cd65,0x5bed506,0x34621fd1,0xa6fe8ac4,0x2e539d34,0xf355a0a2,0x8ae13205,0xf6eb75a4,0x83ec390b,0x60efaa40,0x719f065e,0x6e1051bd,0x218af93e,0xdd063d96,0x3e05aedd,0xe6bd464d,0x548db591,0xc45d0571,0x6d46f04,0x5015ff60,0x98fb2419,0xbde997d6,0x4043cc89,0xd99e7767,0xe842bdb0,0x898b8807,0x195b38e7,0xc8eedb79,0x7c0a47a1,0x420fe97c,0x841ec9f8,0,0x80868309,0x2bed4832,0x1170ac1e,0x5a724e6c,0xefffbfd,0x8538560f,0xaed51e3d,0x2d392736,0xfd9640a,0x5ca62168,0x5b54d19b,0x362e3a24,0xa67b10c,0x57e70f93,0xee96d2b4,0x9b919e1b,0xc0c54f80,0xdc20a261,0x774b695a,0x121a161c,0x93ba0ae2,0xa02ae5c0,0x22e0433c,0x1b171d12,0x90d0b0e,0x8bc7adf2,0xb6a8b92d,0x1ea9c814,0xf1198557,0x75074caf,0x99ddbbee,0x7f60fda3,0x1269ff7,0x72f5bc5c,0x663bc544,0xfb7e345b,0x4329768b,0x23c6dccb,0xedfc68b6,0xe4f163b8,0x31dccad7,0x63851042,0x97224013,0xc6112084,0x4a247d85,0xbb3df8d2,0xf93211ae,0x29a16dc7,0x9e2f4b1d,0xb230f3dc,0x8652ec0d,0xc1e3d077,0xb3166c2b,0x70b999a9,0x9448fa11,0xe9642247,0xfc8cc4a8,0xf03f1a
1a0,0x7d2cd856,0x3390ef22,0x494ec787,0x38d1c1d9,0xcaa2fe8c,0xd40b3698,0xf581cfa6,0x7ade28a5,0xb78e26da,0xadbfa43f,0x3a9de42c,0x78920d50,0x5fcc9b6a,0x7e466254,0x8d13c2f6,0xd8b8e890,0x39f75e2e,0xc3aff582,0x5d80be9f,0xd0937c69,0xd52da96f,0x2512b3cf,0xac993bc8,0x187da710,0x9c636ee8,0x3bbb7bdb,0x267809cd,0x5918f46e,0x9ab701ec,0x4f9aa883,0x956e65e6,0xffe67eaa,0xbccf0821,0x15e8e6ef,0xe79bd9ba,0x6f36ce4a,0x9f09d4ea,0xb07cd629,0xa4b2af31,0x3f23312a,0xa59430c6,0xa266c035,0x4ebc3774,0x82caa6fc,0x90d0b0e0,0xa7d81533,0x4984af1,0xecdaf741,0xcd500e7f,0x91f62f17,0x4dd68d76,0xefb04d43,0xaa4d54cc,0x9604dfe4,0xd1b5e39e,0x6a881b4c,0x2c1fb8c1,0x65517f46,0x5eea049d,0x8c355d01,0x877473fa,0xb412efb,0x671d5ab3,0xdbd25292,0x105633e9,0xd647136d,0xd7618c9a,0xa10c7a37,0xf8148e59,0x133c89eb,0xa927eece,0x61c935b7,0x1ce5ede1,0x47b13c7a,0xd2df599c,0xf2733f55,0x14ce7918,0xc737bf73,0xf7cdea53,0xfdaa5b5f,0x3d6f14df,0x44db8678,0xaff381ca,0x68c43eb9,0x24342c38,0xa3405fc2,0x1dc37216,0xe2250cbc,0x3c498b28,0xd9541ff,0xa8017139,0xcb3de08,0xb4e49cd8,0x56c19064,0xcb84617b,0x32b670d5,0x6c5c7448,0xb85742d0],uc=[0,0xe090d0b,0x1c121a16,0x121b171d,0x3824342c,0x362d3927,0x24362e3a,0x2a3f2331,0x70486858,0x7e416553,0x6c5a724e,0x62537f45,0x486c5c74,0x4665517f,0x547e4662,0x5a774b69,0xe090d0b0,0xee99ddbb,0xfc82caa6,0xf28bc7ad,0xd8b4e49c,0xd6bde997,0xc4a6fe8a,0xcaaff381,0x90d8b8e8,0x9ed1b5e3,0x8ccaa2fe,0x82c3aff5,0xa8fc8cc4,0xa6f581cf,0xb4ee96d2,0xbae79bd9,0xdb3bbb7b,0xd532b670,0xc729a16d,0xc920ac66,0xe31f8f57,0xed16825c,0xff0d9541,0xf104984a,0xab73d323,0xa57ade28,0xb761c935,0xb968c43e,0x9357e70f,0x9d5eea04,0x8f45fd19,0x814cf012,0x3bab6bcb,0x35a266c0,0x27b971dd,0x29b07cd6,0x38f5fe7,0xd8652ec,0x1f9d45f1,0x119448fa,0x4be30393,0x45ea0e98,0x57f11985,0x59f8148e,0x73c737bf,0x7dce3ab4,0x6fd52da9,0x61dc20a2,0xad766df6,0xa37f60fd,0xb16477e0,0xbf6d7aeb,0x955259da,0x9b5b54d1,0x894043cc,0x87494ec7,0xdd3e05ae,0xd33708a5,0xc12c1fb8,0xcf2512b3,0xe51a3182,0xeb133c89,0xf9082b94,0xf701269f,0x4de6bd46,0x43efb04d,0x51f4a750,0x5ffdaa5b,0x75c2896a,0x7bcb8461,0x69d0937c,0x67d99e77,0x3daed51e,0x33a7d815,0x21bccf08,0x2fb5c203,0x58ae132,0xb83ec39,0x1998fb24,0x1791f62f,0x764dd68d,0x7844db86,0x6a5fcc9b,0x6456c190,0x4e69e2a1,0x4060efaa,0x527bf8b7,0x5c72f5bc,0x605bed5,0x80cb3de,0x1a17a4c3,0x141ea9c8,0x3e218af9,0x302887f2,0x223390ef,0x2c3a9de4,0x96dd063d,0x98d40b36,0x8acf1c2b,0x84c61120,0xaef93211,0xa0f03f1a,0xb2eb2807,0xbce2250c,0xe6956e65,0xe89c636e,0xfa877473,0xf48e7978,0xdeb15a49,0xd0b85742,0xc2a3405f,0xccaa4d54,0x41ecdaf7,0x4fe5d7fc,0x5dfec0e1,0x53f7cdea,0x79c8eedb,0x77c1e3d0,0x65daf4cd,0x6bd3f9c6,0x31a4b2af,0x3fadbfa4,0x2db6a8b9,0x23bfa5b2,0x9808683,0x7898b88,0x15929c95,0x1b9b919e,0xa17c0a47,0xaf75074c,0xbd6e1051,0xb3671d5a,0x99583e6b,0x97513360,0x854a247d,0x8b432976,0xd134621f,0xdf3d6f14,0xcd267809,0xc32f7502,0xe9105633,0xe7195b38,0xf5024c25,0xfb0b412e,0x9ad7618c,0x94de6c87,0x86c57b9a,0x88cc7691,0xa2f355a0,0xacfa58ab,0xbee14fb6,0xb0e842bd,0xea9f09d4,0xe49604df,0xf68d13c2,0xf8841ec9,0xd2bb3df8,0xdcb230f3,0xcea927ee,0xc0a02ae5,0x7a47b13c,0x744ebc37,0x6655ab2a,0x685ca621,0x42638510,0x4c6a881b,0x5e719f06,0x5078920d,0xa0fd964,0x406d46f,0x161dc372,0x1814ce79,0x322bed48,0x3c22e043,0x2e39f75e,0x2030fa55,0xec9ab701,0xe293ba0a,0xf088ad17,0xfe81a01c,0xd4be832d,0xdab78e26,0xc8ac993b,0xc6a59430,0x9cd2df59,0x92dbd252,0x80c0c54f,0x8ec9c844,0xa4f6eb75,0xaaffe67e,0xb8e4f163,0xb6edfc68,0xc0a67b1,0x2036aba,0x10187da7,0x1e1170ac,0x342e539d,0x3a275e96,0x283c498b,0x26354480,0x7c420fe9,0x724b02e2,0x605015ff,0x6e5918f4,0x44663bc5,0x4a6f36ce,0x587421d3,0x567d2cd8,0x37a10c7a,0x39a80171,0x2bb3166c,0x25ba1b67,0xf853856,0x18c355d,0x13972240,0x1d9e2f4b,0x47e96422,0x49e06929,0x5bfb7e34,0x55f2733f,0x7fcd500e,0x71c45d05,0x63df4a18,0x6dd64713,0xd731dcca,0xd938d1c1,0xcb23c6dc,0xc52acbd7,0xef15e8e6,0xe11ce5ed,0xf307f2f0,0xfd0efffb,0xa779b492,0xa970b999,0xbb6bae84,0xb562a38f,0x9f5d80be,0x91548db5,0x834f9aa8,0x8d4697a3],uu=[0,0xb0e090d,0x161c121a,0x1d121b17,0x2c382434,0x27362d39,0x3a24362e,0x312a3f23,0x58704868,0x537e4165,0x4e6c5a72,0x4562537f,0x74486c5c,0x7f466551,0x62547e46,0x695a774b,0xb0e090d0,0xbbee99dd,0xa6fc82ca,0xadf28bc7,0x9cd8b4e4,0x97d6bde9,0x8ac4a6fe,0x81caaff3,0xe890d8b8,0xe39ed1b5,0xfe8ccaa2,0xf582c3af,0xc4a8fc8c,0xcfa6f581,0xd2b4ee96,0xd9bae79b,0x7bdb3bbb,0x70d532b6,0x6dc729a1,0x66c920ac,0x57e31f8f,0x5ced1682,0x41ff0d95,0x4af10498,0x23ab73d3,0x28a57ade,0x35b761c9,0x3eb968c4,0xf9357e7,0x49d5eea,0x198f45fd,0x12814cf0,0xcb3bab6b,0xc035a266,0xdd27b971,0xd629b07c,0xe7038f5f,0xec0d8652,0xf11f9d45,0xfa119448,0x934be303,0x9845ea0e,0x8557f119,0x8e59f814,0xbf73c737,0xb47dce3a,0xa96fd52d,0xa261dc20,0xf6ad766d,0xfda37f60,0xe0b16477,0xebbf6d7a,0xda955259,0xd19b5b54,0xcc894043,0xc787494e,0xaedd3e05,0xa5d33708,0xb8c12c1f,0xb3cf2512,0x82e51a31,0x89eb133c,0x94f9082b,0x9ff70126,0x464de6bd,0x4d43efb0,0x5051f4a7,0x5b5ffdaa,0x6a75c289,0
1x617bcb84,0x7c69d093,0x7767d99e,0x1e3daed5,0x1533a7d8,0x821bccf,0x32fb5c2,0x32058ae1,0x390b83ec,0x241998fb,0x2f1791f6,0x8d764dd6,0x867844db,0x9b6a5fcc,0x906456c1,0xa14e69e2,0xaa4060ef,0xb7527bf8,0xbc5c72f5,0xd50605be,0xde080cb3,0xc31a17a4,0xc8141ea9,0xf93e218a,0xf2302887,0xef223390,0xe42c3a9d,0x3d96dd06,0x3698d40b,0x2b8acf1c,0x2084c611,0x11aef932,0x1aa0f03f,0x7b2eb28,0xcbce225,0x65e6956e,0x6ee89c63,0x73fa8774,0x78f48e79,0x49deb15a,0x42d0b857,0x5fc2a340,0x54ccaa4d,0xf741ecda,0xfc4fe5d7,0xe15dfec0,0xea53f7cd,0xdb79c8ee,0xd077c1e3,0xcd65daf4,0xc66bd3f9,0xaf31a4b2,0xa43fadbf,0xb92db6a8,0xb223bfa5,0x83098086,0x8807898b,0x9515929c,0x9e1b9b91,0x47a17c0a,0x4caf7507,0x51bd6e10,0x5ab3671d,0x6b99583e,0x60975133,0x7d854a24,0x768b4329,0x1fd13462,0x14df3d6f,0x9cd2678,0x2c32f75,0x33e91056,0x38e7195b,0x25f5024c,0x2efb0b41,0x8c9ad761,0x8794de6c,0x9a86c57b,0x9188cc76,0xa0a2f355,0xabacfa58,0xb6bee14f,0xbdb0e842,0xd4ea9f09,0xdfe49604,0xc2f68d13,0xc9f8841e,0xf8d2bb3d,0xf3dcb230,0xeecea927,0xe5c0a02a,0x3c7a47b1,0x37744ebc,0x2a6655ab,0x21685ca6,0x10426385,0x1b4c6a88,0x65e719f,0xd507892,0x640a0fd9,0x6f0406d4,0x72161dc3,0x791814ce,0x48322bed,0x433c22e0,0x5e2e39f7,0x552030fa,0x1ec9ab7,0xae293ba,0x17f088ad,0x1cfe81a0,0x2dd4be83,0x26dab78e,0x3bc8ac99,0x30c6a594,0x599cd2df,0x5292dbd2,0x4f80c0c5,0x448ec9c8,0x75a4f6eb,0x7eaaffe6,0x63b8e4f1,0x68b6edfc,0xb10c0a67,0xba02036a,0xa710187d,0xac1e1170,0x9d342e53,0x963a275e,0x8b283c49,0x80263544,0xe97c420f,0xe2724b02,0xff605015,0xf46e5918,0xc544663b,0xce4a6f36,0xd3587421,0xd8567d2c,0x7a37a10c,0x7139a801,0x6c2bb316,0x6725ba1b,0x560f8538,0x5d018c35,0x40139722,0x4b1d9e2f,0x2247e964,0x2949e069,0x345bfb7e,0x3f55f273,0xe7fcd50,0x571c45d,0x1863df4a,0x136dd647,0xcad731dc,0xc1d938d1,0xdccb23c6,0xd7c52acb,0xe6ef15e8,0xede11ce5,0xf0f307f2,0xfbfd0eff,0x92a779b4,0x99a970b9,0x84bb6bae,0x8fb562a3,0xbe9f5d80,0xb591548d,0xa8834f9a,0xa38d4697],uf=[0,0xd0b0e09,0x1a161c12,0x171d121b,0x342c3824,0x3927362d,0x2e3a2436,0x23312a3f,0x68587048,0x65537e41,0x724e6c5a,0x7f456253,0x5c74486c,0x517f4665,0x4662547e,0x4b695a77,0xd0b0e090,0xddbbee99,0xcaa6fc82,0xc7adf28b,0xe49cd8b4,0xe997d6bd,0xfe8ac4a6,0xf381caaf,0xb8e890d8,0xb5e39ed1,0xa2fe8cca,0xaff582c3,0x8cc4a8fc,0x81cfa6f5,0x96d2b4ee,0x9bd9bae7,0xbb7bdb3b,0xb670d532,0xa16dc729,0xac66c920,0x8f57e31f,0x825ced16,0x9541ff0d,0x984af104,0xd323ab73,0xde28a57a,0xc935b761,0xc43eb968,0xe70f9357,0xea049d5e,0xfd198f45,0xf012814c,0x6bcb3bab,0x66c035a2,0x71dd27b9,0x7cd629b0,0x5fe7038f,0x52ec0d86,0x45f11f9d,0x48fa1194,0x3934be3,0xe9845ea,0x198557f1,0x148e59f8,0x37bf73c7,0x3ab47dce,0x2da96fd5,0x20a261dc,0x6df6ad76,0x60fda37f,0x77e0b164,0x7aebbf6d,0x59da9552,0x54d19b5b,0x43cc8940,0x4ec78749,0x5aedd3e,0x8a5d337,0x1fb8c12c,0x12b3cf25,0x3182e51a,0x3c89eb13,0x2b94f908,0x269ff701,0xbd464de6,0xb04d43ef,0xa75051f4,0xaa5b5ffd,0x896a75c2,0x84617bcb,0x937c69d0,0x9e7767d9,0xd51e3dae,0xd81533a7,0xcf0821bc,0xc2032fb5,0xe132058a,0xec390b83,0xfb241998,0xf62f1791,0xd68d764d,0xdb867844,0xcc9b6a5f,0xc1906456,0xe2a14e69,0xefaa4060,0xf8b7527b,0xf5bc5c72,0xbed50605,0xb3de080c,0xa4c31a17,0xa9c8141e,0x8af93e21,0x87f23028,0x90ef2233,0x9de42c3a,0x63d96dd,0xb3698d4,0x1c2b8acf,0x112084c6,0x3211aef9,0x3f1aa0f0,0x2807b2eb,0x250cbce2,0x6e65e695,0x636ee89c,0x7473fa87,0x7978f48e,0x5a49deb1,0x5742d0b8,0x405fc2a3,0x4d54ccaa,0xdaf741ec,0xd7fc4fe5,0xc0e15dfe,0xcdea53f7,0xeedb79c8,0xe3d077c1,0xf4cd65da,0xf9c66bd3,0xb2af31a4,0xbfa43fad,0xa8b92db6,0xa5b223bf,0x86830980,0x8b880789,0x9c951592,0x919e1b9b,0xa47a17c,0x74caf75,0x1051bd6e,0x1d5ab367,1047239e3,0x33609751,0x247d854a,0x29768b43,0x621fd134,0x6f14df3d,0x7809cd26,0x7502c32f,0x5633e910,0x5b38e719,0x4c25f502,0x412efb0b,0x618c9ad7,0x6c8794de,0x7b9a86c5,0x769188cc,0x55a0a2f3,0x58abacfa,0x4fb6bee1,0x42bdb0e8,0x9d4ea9f,0x4dfe496,0x13c2f68d,0x1ec9f884,0x3df8d2bb,0x30f3dcb2,0x27eecea9,0x2ae5c0a0,0xb13c7a47,0xbc37744e,0xab2a6655,0xa621685c,0x85104263,0x881b4c6a,0x9f065e71,0x920d5078,0xd9640a0f,0xd46f0406,0xc372161d,0xce791814,0xed48322b,0xe0433c22,0xf75e2e39,0xfa552030,0xb701ec9a,0xba0ae293,0xad17f088,0xa01cfe81,0x832dd4be,0x8e26dab7,0x993bc8ac,0x9430c6a5,0xdf599cd2,0xd25292db,0xc54f80c0,0xc8448ec9,0xeb75a4f6,0xe67eaaff,0xf163b8e4,0xfc68b6ed,0x67b10c0a,0x6aba0203,0x7da71018,0x70ac1e11,0x539d342e,0x5e963a27,0x498b283c,0x44802635,0xfe97c42,0x2e2724b,0x15ff6050,0x18f46e59,0x3bc54466,0x36ce4a6f,0x21d35874,0x2cd8567d,0xc7a37a1,0x17139a8,0x166c2bb3,0x1b6725ba,0x38560f85,0x355d018c,0x22401397,0x2f4b1d9e,0x642247e9,0x692949e0,0x7e345bfb,0x733f55f2,0x500e7fcd,0x5d0571c4,0x4a1863df,0x47136dd6,0xdccad731,0xd1c1d938,0xc6dccb23,0xcbd7c52a,0xe8e6ef15,0xe5ede11c,0xf2f0f307,0xfffbfd0e,0xb492a779,0xb999a970,0xae84bb6b,0xa38fb562,0x80be9f5d,0x8db59154,0x9aa8834f,0x97a38d46],ud=[0,0x90d0b0e,0x121a161c,0x1b171d12,0x24342c38,0x2d392736,0x362e3a24,0x3f23312a,0x48685870,0x4165537e,0x5a724e6c,0x537f4562,0x6c5c7448,0x65517f46,0x7e466254,0x774b695a,0x90d0b0e0,0x99ddbbee,0x82caa6fc,0x8bc7adf2,0xb4e49cd8,0xbde997d6,0xa6fe8ac4,0xaff381ca,0xd8b8e890,0xd1b5e39e,0xcaa2fe8c,0xc3aff582,0xfc8cc4a8,0xf581cfa6,0xee96d2b4,0xe79bd9ba,0x3bbb7bdb,0x32b670d5,0x29a16dc7,0x20ac66c9,0x1f8f57e3,0x16825ced,0xd9541ff,0x4984af1,0x73d323ab,0x7ade28a5,0x61c935b7,0x68c43eb9,0x57e70f93,0x5eea049d,0x45fd198f,0x4cf01281,0xab6bcb3b,0xa266c035,0xb971dd27,0xb07cd629,0
1x8f5fe703,0x8652ec0d,0x9d45f11f,0x9448fa11,0xe303934b,0xea0e9845,0xf1198557,0xf8148e59,0xc737bf73,0xce3ab47d,0xd52da96f,0xdc20a261,0x766df6ad,0x7f60fda3,0x6477e0b1,0x6d7aebbf,0x5259da95,0x5b54d19b,0x4043cc89,0x494ec787,0x3e05aedd,0x3708a5d3,0x2c1fb8c1,0x2512b3cf,0x1a3182e5,0x133c89eb,0x82b94f9,0x1269ff7,0xe6bd464d,0xefb04d43,0xf4a75051,0xfdaa5b5f,0xc2896a75,0xcb84617b,0xd0937c69,0xd99e7767,0xaed51e3d,0xa7d81533,0xbccf0821,0xb5c2032f,0x8ae13205,0x83ec390b,0x98fb2419,0x91f62f17,0x4dd68d76,0x44db8678,0x5fcc9b6a,0x56c19064,0x69e2a14e,0x60efaa40,0x7bf8b752,0x72f5bc5c,0x5bed506,0xcb3de08,0x17a4c31a,0x1ea9c814,0x218af93e,679998e3,0x3390ef22,0x3a9de42c,0xdd063d96,0xd40b3698,0xcf1c2b8a,0xc6112084,0xf93211ae,0xf03f1aa0,0xeb2807b2,0xe2250cbc,0x956e65e6,0x9c636ee8,0x877473fa,0x8e7978f4,0xb15a49de,0xb85742d0,0xa3405fc2,0xaa4d54cc,0xecdaf741,0xe5d7fc4f,0xfec0e15d,0xf7cdea53,0xc8eedb79,0xc1e3d077,0xdaf4cd65,0xd3f9c66b,0xa4b2af31,0xadbfa43f,0xb6a8b92d,0xbfa5b223,0x80868309,0x898b8807,0x929c9515,0x9b919e1b,0x7c0a47a1,0x75074caf,0x6e1051bd,0x671d5ab3,0x583e6b99,0x51336097,0x4a247d85,0x4329768b,0x34621fd1,0x3d6f14df,0x267809cd,0x2f7502c3,0x105633e9,0
1x195b38e7,0x24c25f5,0xb412efb,0xd7618c9a,0xde6c8794,0xc57b9a86,0xcc769188,0xf355a0a2,0xfa58abac,0xe14fb6be,0xe842bdb0,0x9f09d4ea,0x9604dfe4,0x8d13c2f6,0x841ec9f8,0xbb3df8d2,0xb230f3dc,0xa927eece,0xa02ae5c0,0x47b13c7a,0x4ebc3774,0x55ab2a66,0x5ca62168,0x63851042,0x6a881b4c,0x719f065e,0x78920d50,0xfd9640a,0x6d46f04,0x1dc37216,0x14ce7918,0x2bed4832,0x22e0433c,0x39f75e2e,0x30fa5520,0x9ab701ec,0x93ba0ae2,0x88ad17f0,0x81a01cfe,0xbe832dd4,0xb78e26da,0xac993bc8,0xa59430c6,0xd2df599c,0xdbd25292,0xc0c54f80,0xc9c8448e,0xf6eb75a4,0xffe67eaa,0xe4f163b8,0xedfc68b6,0xa67b10c,0x36aba02,0x187da710,0x1170ac1e,0x2e539d34,0x275e963a,0x3c498b28,0x35448026,0x420fe97c,0x4b02e272,0x5015ff60,0x5918f46e,0x663bc544,0x6f36ce4a,0x7421d358,0x7d2cd856,0xa10c7a37,0xa8017139,0xb3166c2b,0xba1b6725,0x8538560f,0x8c355d01,0x97224013,0x9e2f4b1d,0xe9642247,0xe0692949,0xfb7e345b,0xf2733f55,0xcd500e7f,0xc45d0571,0xdf4a1863,0xd647136d,0x31dccad7,0x38d1c1d9,0x23c6dccb,0x2acbd7c5,0x15e8e6ef,0x1ce5ede1,0x7f2f0f3,0xefffbfd,0x79b492a7,0x70b999a9,0x6bae84bb,0x62a38fb5,0x5d80be9f,0x548db591,0x4f9aa883,0x4697a38d];function uh(e){let t=[];for(let r=0;r<e.length;r+=4)t.push(e[r]<<24|e[r+1]<<16|e[r+2]<<8|e[r+3]);return t}class ux{get key(){return c8(this,y,"f").slice()}constructor(e){let t;if(y.set(this,void 0),w.set(this,void 0),A.set(this,void 0),!(this instanceof ux))throw Error("AES must be instanitated with `new`");c5(this,y,new Uint8Array(e),"f");const r=c6[this.key.length];if(null==r)throw TypeError("invalid key size (must be 16, 24 or 32 bytes)");c5(this,A,[],"f"),c5(this,w,[],"f");for(let e=0;e<=r;e++)c8(this,A,"f").push([0,0,0,0]),c8(this,w,"f").push([0,0,0,0]);const n=(r+1)*4,a=this.key.length/4,i=uh(this.key);for(let e=0;e<a;e++)t=e>>2,c8(this,A,"f")[t][e%4]=i[e],c8(this,w,"f")[r-t][e%4]=i[e];let s=0,o=a,l;for(;o<n;){if(l=i[a-1],i[0]^=c7[l>>16&255]<<24^c7[l>>8&255]<<16^c7[255&l]<<8^c7[l>>24&255]^c9[s]<<24,s+=1,8!=a)for(let e=1;e<a;e++)i[e]^=i[e-1];else{for(let e=1;e<a/2;e++)i[e]^=i[e-1];l=i[a/2-1],i[a/2]^=c7[255&l]^c7[l>>8&255]<<8^c7[l>>16&255]<<16^c7[l>>24&255]<<24;for(let e=a/2+1;e<a;e++)i[e]^=i[e-1]}let e=0,t,c;for(;e<a&&o<n;)t=o>>2,c=o%4,c8(this,A,"f")[t][c]=i[e],c8(this,w,"f")[r-t][c]=i[e++],o++}for(let e=1;e<r;e++)for(let t=0;t<4;t++)l=c8(this,w,"f")[e][t],c8(this,w,"f")[e][t]=uc[l>>24&255]^uu[l>>16&255]^uf[l>>8&255]^ud[255&l]}encrypt(e){if(16!=e.length)throw TypeError("invalid plaintext size (must be 16 bytes)");let t=c8(this,A,"f").length-1,r=[0,0,0,0],n=uh(e);for(let e=0;e<4;e++)n[e]^=c8(this,A,"f")[0][e];for(let e=1;e<t;e++){for(let t=0;t<4;t++)r[t]=ut[n[t]>>24&255]^ur[n[(t+1)%4]>>16&255]^un[n[(t+2)%4]>>8&255]^ua[255&n[(t+3)%4]]^c8(this,A,"f")[e][t];n=r.slice()}let a=new Uint8Array(16),i=0;for(let e=0;e<4;e++)i=c8(this,A,"f")[t][e],a[4*e]=(c7[n[e]>>24&255]^i>>24)&255,a[4*e+1]=(c7[n[(e+1)%4]>>16&255]^i>>16)&255,a[4*e+2]=(c7[n[(e+2)%4]>>8&255]^i>>8)&255,a[4*e+3]=(c7[255&n[(e+3)%4]]^i)&255;return a}decrypt(e){if(16!=e.length)throw TypeError("invalid ciphertext size (must be 16 bytes)");let t=c8(this,w,"f").length-1,r=[0,0,0,0],n=uh(e);for(let e=0;e<4;e++)n[e]^=c8(this,w,"f")[0][e];for(let e=1;e<t;e++){for(let t=0;t<4;t++)r[t]=ui[n[t]>>24&255]^us[n[(t+3)%4]>>16&255]^uo[n[(t+2)%4]>>8&255]^ul[255&n[(t+1)%4]]^c8(this,w,"f")[e][t];n=r.slice()}let a=new Uint8Array(16),i=0;for(let e=0;e<4;e++)i=c8(this,w,"f")[t][e],a[4*e]=(ue[n[e]>>24&255]^i>>24)&255,a[4*e+1]=(ue[n[(e+3)%4]>>16&255]^i>>16)&255,a[4*e+2]=(ue[n[(e+2)%4]>>8&255]^i>>8)&255,a[4*e+3]=(ue[255&n[(e+1)%4]]^i)&255;return a}}y=new WeakMap,w=new WeakMap,A=new WeakMap;class up{constructor(e,t,r){if(r&&!(this instanceof r))throw Error(`${e} must be instantiated with "new"`);Object.defineProperties(this,{aes:{enumerable:!0,value:new ux(t)},name:{enumerable:!0,value:e}})}}var ub=function(e,t,r,n,a){if("m"===n)throw TypeError("Private method is not writable");if("a"===n&&!a)throw TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?a.call(e,r):a?a.value=r:t.set(e,r),r},ug=function(e,t,r,n){if("a"===r&&!n)throw TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class um extends up{constructor(e,t){if(super("ECC",e,um),v.set(this,void 0),E.set(this,void 0),t){if(t.length%16)throw TypeError("invalid iv size (must be 16 bytes)");ub(this,v,new Uint8Array(t),"f")}else ub(this,v,new Uint8Array(16),"f");ub(this,E,this.iv,"f")}get iv(){return new Uint8Array(ug(this,v,"f"))}encrypt(e){if(e.length%16)throw TypeError("invalid plaintext size (must be multiple of 16 bytes)");let t=new Uint8Array(e.length);for(let r=0;r<e.length;r+=16){for(let t=0;t<16;t++)ug(this,E,"f")[t]^=e[r+t];
1ub(this,E,this.aes.encrypt(ug(this,E,"f")),"f"),t.set(ug(this,E,"f"),r)}return t}decrypt(e){if(e.length%16)throw TypeError("invalid ciphertext size (must be multiple of 16 bytes)");let t=new Uint8Array(e.length);for(let r=0;r<e.length;r+=16){let n=this.aes.decrypt(e.subarray(r,r+16));for(let a=0;a<16;a++)t[r+a]=n[a]^ug(this,E,"f")[a],ug(this,E,"f")[a]=e[r+a]}return t}}v=new WeakMap,E=new WeakMap;new WeakMap,new WeakMap,new WeakSet;var uy=function(e,t,r,n,a){if("m"===n)throw TypeError("Private method is not writable");if("a"===n&&!a)throw TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!a:!t.has(e))throw TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?a.call(e,r):a?a.value=r:t.set(e,r),r},uw=function(e,t,r,n){if("a"===r&&!n)throw TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!n:!t.has(e))throw TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(e):n?n.value:t.get(e)};class uA extends up{constructor(e,t){super("CTR",e,uA),k.set(this,void 0),N.set(this,void 0),P.set(this,void 0),uy(this,P,new Uint8Array(16),"f"),uw(this,P,"f").fill(0),uy(this,k,uw(this,P,"f"),"f"),uy(this,N,16,"f"),null==t&&(t=1),"number"==typeof t?this.setCounterValue(t):this.setCounterBytes(t)}get counter(){return new Uint8Array(uw(this,P,"f"))}setCounterValue(e){if(!Number.isInteger(e)||e<0||e>Number.MAX_SAFE_INTEGER)throw TypeError("invalid counter initial integer value");for(let t=15;t>=0;--t)uw(this,P,"f")[t]=e%256,e=Math.floor(e/256)}setCounterBytes(e){if(16!==e.length)throw TypeError("invalid counter initial Uint8Array value length");uw(this,P,"f").set(e)}increment(){for(let e=15;e>=0;e--)if(255===uw(this,P,"f")[e])uw(this,P,"f")[e]=0;else{uw(this,P,"f")[e]++;break}}encrypt(e){var t,r;let n=new Uint8Array(e);for(let e=0;e<n.length;e++)16===uw(this,N,"f")&&(uy(this,k,this.aes.encrypt(uw(this,P,"f")),"f"),uy(this,N,0,"f"),this.increment()),n[e]^=uw(this,k,"f")[uy(this,N,(r=uw(this,N,"f"),t=r++,r),"f"),t];return n}decrypt(e){return this.encrypt(e)}}function uv(e){return"string"!=typeof e||e.startsWith("0x")||(e="0x"+e),K(e)}function uE(e,t){for(e=String(e);e.length<t;)e="0"+e;return e}function uk(e){return"string"==typeof e?ei(e,"NFKC"):K(e)}function uN(e,t){let r=t.match(/^([a-z0-9$_.-]*)(:([a-z]+))?(!)?$/i);L(null!=r,"invalid path","path",t);let n=r[1],a=r[3],i="!"===r[4],s=e;for(let e of n.toLowerCase().split(".")){if(Array.isArray(s)){if(!e.match(/^[0-9]+$/))break;s=s[parseInt(e)]}else if("object"==typeof s){let t=null;for(let r in s)if(r.toLowerCase()===e){t=s[r];break}s=t}else s=null;if(null==s)break}if(L(!i||null!=s,"missing required value","path",n),a&&null!=s){if("int"===a){if("string"==typeof s&&s.match(/^-?[0-9]+$/))return parseInt(s);else if(Number.isSafeInteger(s))return s}if("number"===a&&"string"==typeof s&&s.match(/^-?[0-9.]*$/))return parseFloat(s);if("data"===a&&"string"==typeof s)return uv(s);if("array"===a&&Array.isArray(s)||a===typeof s)return s;L(!1,`wrong type found for ${a} `,"path",n)}return s}k=new WeakMap,N=new WeakMap,P=new WeakMap,new WeakMap,new WeakMap,new WeakMap;let uP="m/44'/60'/0'/0/0";function uR(e){try{let t=JSON.parse(e),r=null!=t.version?parseInt(t.version):0;if(3===r)return!0}catch(e){}return!1}function uI(e,t){let r=z(t),n=uN(e,"crypto.ciphertext:data!");L(q(tE(W([r.slice(16,32),n]))).substring(2)===uN(e,"crypto.mac:string!").toLowerCase(),"incorrect password","password","[ REDACTED ]");let a=function(e,t,r){if("aes-128-ctr"===uN(e,"crypto.cipher:string"))return q(new uA(t,uN(e,"crypto.cipherparams.iv:data!")).decrypt(r));F(!1,"unsupported cipher","UNSUPPORTED_OPERATION",{operation:"decrypt"})}(e,r.slice(0,16),n),i=sj(a);if(e.address){let t=e.address.toLowerCase();t.startsWith("0x")||(t="0x"+t),L(tO(t)===i,"keystore address/privateKey mismatch","address",e.address)}let s={address:i,privateKey:a};if("0.1"===uN(e,"x-ethers.version:string")){let t=r.slice(32,64),n=uN(e,"x-ethers.mnemonicCiphertext:data!"),a=new uA(t,uN(e,"x-ethers.mnemonicCounter:data!"));s.mnemonic={path:uN(e,"x-ethers.path:string")||uP,locale:uN(e,"x-ethers.locale:string")||"en",entropy:q(z(a.decrypt(n)))}}return s}function uT(e){let t=uN(e,"crypto.kdf:string");if(t&&"string"==typeof t){if("scrypt"===t.toLowerCase()){let r=uN(e,"crypto.kdfparams.salt:data!"),n=uN(e,"crypto.kdfparams.n:int!"),a=uN(e,"crypto.kdfparams.r:int!"),i=uN(e,"crypto.kdfparams.p:int!");L(n>0&&(n&n-1)==0,"invalid kdf.N","kdf.N",n),L(a>0&&i>0,"invalid kdf","kdf",t);let s=uN(e,"crypto.kdfparams.dklen:int!");return L(32===s,"invalid kdf.dklen","kdf.dflen",s),{name:"scrypt",salt:r,N:n,r:a,p:i,dkLen:64}}else if("pbkdf2"===t.toLowerCase()){let t=uN(e,"crypto.kdfparams.salt:data!"),r=uN(e,"crypto.kdfparams.prf:string!"),n=r.split("-").pop();L("sha256"===n||"sha512"===n,"invalid kdf.pdf","kdf.pdf",r);let a=uN(e,"crypto.kdfparams.c:int!"),i=uN(e,"crypto.kdfparams.dklen:int!");
1return L(32===i,"invalid kdf.dklen","kdf.dklen",i),{name:"pbkdf2",salt:t,count:a,dkLen:i,algorithm:n}}}L(!1,"unsupported key-derivation function","kdf",t)}function uO(e,t){let r=JSON.parse(e),n=uk(t),a=uT(r);if("pbkdf2"===a.name){let{salt:e,count:t,dkLen:i,algorithm:s}=a;return uI(r,aV(n,e,t,i,s))}F("scrypt"===a.name,"cannot be reached","UNKNOWN_ERROR",{params:a});let{salt:i,N:s,r:o,p:l,dkLen:c}=a;return uI(r,a1(n,i,s,o,l,c))}function uC(e){return new Promise(t=>{setTimeout(()=>{t()},e)})}async function uB(e,t,r){let n=JSON.parse(e),a=uk(t),i=uT(n);if("pbkdf2"===i.name){r&&(r(0),await uC(0));let{salt:e,count:t,dkLen:s,algorithm:o}=i,l=aV(a,e,t,s,o);return r&&(r(1),await uC(0)),uI(n,l)}F("scrypt"===i.name,"cannot be reached","UNKNOWN_ERROR",{params:i});let{salt:s,N:o,r:l,p:c,dkLen:u}=i;return uI(n,await a0(a,s,o,l,c,u,r))}function uS(e){let t=null!=e.salt?z(e.salt,"options.salt"):au(32),r=131072,n=8,a=1;return e.scrypt&&(e.scrypt.N&&(r=e.scrypt.N),e.scrypt.r&&(n=e.scrypt.r),e.scrypt.p&&(a=e.scrypt.p)),L("number"==typeof r&&r>0&&Number.isSafeInteger(r)&&(BigInt(r)&BigInt(r-1))===BigInt(0),"invalid scrypt N parameter","options.N",r),L("number"==typeof n&&n>0&&Number.isSafeInteger(n),"invalid scrypt r parameter","options.r",n),L("number"==typeof a&&a>0&&Number.isSafeInteger(a),"invalid scrypt p parameter","options.p",a),{name:"scrypt",dkLen:32,salt:t,N:r,r:n,p:a}}function uU(e,t,r,n){let a=z(r.privateKey,"privateKey"),i=null!=n.iv?z(n.iv,"options.iv"):au(16);L(16===i.length,"invalid options.iv length","options.iv",n.iv);let s=null!=n.uuid?z(n.uuid,"options.uuid"):au(16);L(16===s.length,"invalid options.uuid length","options.uuid",n.iv);let o=e.slice(0,16),l=e.slice(16,32),c=z(new uA(o,i).encrypt(a)),u=tE(W([l,c])),f={address:r.address.substring(2).toLowerCase(),id:cK(s),version:3,Crypto:{cipher:"aes-128-ctr",cipherparams:{iv:q(i).substring(2)},ciphertext:q(c).substring(2),kdf:"scrypt",kdfparams:{salt:q(t.salt).substring(2),n:t.N,dklen:32,p:t.p,r:t.r},mac:u.substring(2)}};if(r.mnemonic){let t=null!=n.client?n.client:`ethers/${T}`,a=r.mnemonic.path||uP,i=r.mnemonic.locale||"en",s=e.slice(32,64),o=z(r.mnemonic.entropy,"account.mnemonic.entropy"),l=au(16),c=z(new uA(s,l).encrypt
1(o)),u=new Date,d="UTC--"+(u.getUTCFullYear()+"-"+uE(u.getUTCMonth()+1,2)+"-"+uE(u.getUTCDate(),2)+"T"+uE(u.getUTCHours(),2)+"-"+uE(u.getUTCMinutes(),2)+"-"+uE(u.getUTCSeconds(),2))+".0Z--"+f.address;f["x-ethers"]={client:t,gethFilename:d,path:a,locale:i,mnemonicCounter:q(l).substring(2),mnemonicCiphertext:q(c).substring(2),version:"0.1"}}return JSON.stringify(f)}function uD(e,t,r){null==r&&(r={});let n=uk(t),a=uS(r);return uU(z(a1(n,a.salt,a.N,a.r,a.p,64)),a,e,r)}async function uF(e,t,r){null==r&&(r={});let n=uk(t),a=uS(r);return uU(z(await a0(n,a.salt,a.N,a.r,a.p,64,r.progressCallback)),a,e,r)}let uL="m/44'/60'/0'/0/0",uM=new Uint8Array([66,105,116,99,111,105,110,32,115,101,101,100]),uG=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141");function uj(e,t){let r="";for(;e;)r="0123456789abcdef"[e%16]+r,e=Math.trunc(e/16);for(;r.length<2*t;)r="0"+r;return"0x"+r}function uV(e){let t=z(e),r=Y(aF(aF(t)),0,4);return o3(W([t,r]))}let uH={};function uz(e,t,r,n){let a=new Uint8Array(37);0x80000000&e?(F(null!=n,"cannot derive child of neutered node","UNSUPPORTED_OPERATION",{operation:"deriveChild"}),a.set(z(n),1)):a.set(z(r));for(let t=24;t>=0;t-=8)a[33+(t>>3)]=e>>24-t&255;let i=z(as("sha512",t,a));return{IL:i.slice(0,32),IR:i.slice(32)}}function uK(e,t){let r=t.split("/");L(r.length>0,"invalid path","path",t),"m"===r[0]&&(L(0===e.depth,`cannot derive root path (i.e. path starting with "m/") for a node at non-zero depth ${e.depth}`,"path",t),r.shift());let n=e;for(let e=0;e<r.length;e++){let t=r[e];if(t.match(/^[0-9]+'$/)){let r=parseInt(t.substring(0,t.length-1));L(r<0x80000000,"invalid path index",`path[${e}]`,t),n=n.deriveChild(0x80000000+r)}else if(t.match(/^[0-9]+$/)){let r=parseInt(t);L(r<0x80000000,"invalid path index",`path[${e}]`,t),n=n.deriveChild(r)}else L(!1,"invalid path component",`path[${e}]`,t)}return n}class uQ extends c4{publicKey;fingerprint;parentFingerprint;mnemonic;chainCode;path;index;depth;constructor(e,t,r,n,a,i,s,o,l){super(t,l),V(e,uH,"HDNodeWallet"),C(this,{publicKey:t.compressedPublicKey}),C(this,{parentFingerprint:r,fingerprint:Y(aT(aF(this.publicKey)),0,4),chainCode:n,path:a,index:i,depth:s}),C(this,{mnemonic:o})}connect(e){return new uQ(uH,this.signingKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.mnemonic,e)}#tM(){let e={address:this.address,privateKey:this.privateKey},t=this.mnemonic;return this.path&&t&&"en"===t.wordlist.locale&&""===t.password&&(e.mnemonic={path:this.path,locale:"en",entropy:t.entropy}),e}async encrypt(e,t){return await uF(this.#tM(),e,{progressCallback:t})}encryptSync(e){return uD(this.#tM(),e)}get extendedKey(){return F(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),uV(W(["0x0488ADE4",uj(this.depth,1),this.parentFingerprint,uj(this.index,4),this.chainCode,W(["0x00",this.privateKey])]))}hasPath(){return null!=this.path}neuter(){return new u_(uH,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,this.provider)}deriveChild(e){let t=ey(e,"index");L(t<=0xffffffff,"invalid index","index",t);let r=this.path;r&&(r+="/"+(0x7fffffff&t),0x80000000&t&&(r+="'"));let{IR:n,IL:a}=uz(t,this.chainCode,this.publicKey,this.privateKey);return new uQ(uH,new sa(eA((em(a)+BigInt(this.privateKey))%uG,32)),this.fingerprint,q(n),r,t,this.depth+1,this.mnemonic,this.provider)}derivePath(e){return uK(this,e)}static #tG(e,t){L(_(e),"invalid seed","seed","[REDACTED]");let r=z(e,"seed");L(r.length>=16&&r.length<=64,"invalid seed","seed","[REDACTED]");let n=z(as("sha512",uM,r));return new uQ(uH,new sa(q(n.slice(0,32))),"0x00000000",q(n.slice(32)),"m",0,0,t,null)}static fromExtendedKey(e){let t=ev(o4(e));L(82===t.length||uV(t.slice(0,78))===e,"invalid extended key","extendedKey","[ REDACTED ]");let r=t[4],n=q(t.slice(5,9)),a=parseInt(q(t.slice(9,13)).substring(2),16),i=q(t.slice(13,45)),s=t.slice(45,78);switch(q(t.slice(0,4))){case"0x0488b21e":case"0x043587cf":{let e=q(s);return new u_(uH,sj(e),e,n,i,null,a,r,null)}case"0x0488ade4":case"0x04358394 ":if(0!==s[0])break;return new uQ(uH,new sa(s.slice(1)),n,i,null,a,r,null,null)}L(!1,"invalid extended key prefix","extendedKey","[ REDACTED ]")}static createRandom(e,t,r){null==e&&(e=""),null==t&&(t=uL),null==r&&(r=cX.wordlist());let n=c3.fromEntropy(au(16),e,r);return uQ.#tG(n.computeSeed(),n).derivePath(t)}static fromMnemonic(e,t){return t||(t=uL),uQ.#tG(e.computeSeed(),e).derivePath(t)}static fromPhrase(e,t,r,n){null==t&&(t=""),null==r&&(r=uL),null==n&&(n=cX.wordlist());let a=c3.fromPhrase(e,t,n);return uQ.#tG(a.computeSeed(),a).derivePath(r)}static fromSeed(e){return uQ.#tG(e,null)}}class u_ extends lU{publicKey;fingerprint;parentFingerprint;chainCode;path;index;depth;constructor(e,t,r,n,a,i,s,o,l){super(t,l),V(e,uH,"HDNodeVoidWallet"),C(this,{publicKey:r});const c=Y(aT(aF(r)),0,4);C(this,{publicKey:r,fingerprint:c,parentFingerprint:n,chainCode:a,path:i,index:s,depth:o})}connect(e){return new u_(uH,this.address,this.publicKey,this.parentFingerprint,this.chainCode,this.path,this.index,this.depth,e)}get extendedKey(){return F(this.depth<256,"Depth too deep","UNSUPPORTED_OPERATION",{operation:"extendedKey"}),uV(W(["0x0488B21E",uj(this.depth,1),this.parentFingerprint,uj(this.index,4),this.chainCode,this.publicKey]))}hasPath(){return null!=this.path}deriveChild(e){let t=ey(e,"index");
1L(t<=0xffffffff,"invalid index","index",t);let r=this.path;r&&(r+="/"+(0x7fffffff&t),0x80000000&t&&(r+="'"));let{IR:n,IL:a}=uz(t,this.chainCode,this.publicKey,null),i=sa.addPoints(a,this.publicKey,!0);return new u_(uH,sj(i),i,this.fingerprint,q(n),r,t,this.depth+1,this.provider)}derivePath(e){return uK(this,e)}}function uJ(e){let t=ey(e,"index");return L(t>=0&&t<0x80000000,"invalid account index","index",t),`m/44'/60'/${t}'/0/0`}function uq(e){let t=ey(e,"index");return L(t>=0&&t<0x80000000,"invalid account index","index",t),`m/44'/60'/0'/0/${t}`}function uW(e){try{if(JSON.parse(e).encseed)return!0}catch(e){}return!1}function uZ(e,t){let r=JSON.parse(e),n=uk(t),a=tO(uN(r,"ethaddr:string!")),i=uv(uN(r,"encseed:string!"));L(i&&i.length%16==0,"invalid encseed","json",e);let s=z(aV(n,n,2e3,32,"sha256")).slice(0,16),o=i.slice(0,16),l=i.slice(16),c=function(e){if(e.length<16)throw TypeError("PKCS#7 invalid length");let t=e[e.length-1];if(t>16)throw TypeError("PKCS#7 padding byte out of range");let r=e.length-t;for(let n=0;n<t;n++)if(e[r+n]!==t)throw TypeError("PKCS#7 invalid padding byte");return new Uint8Array(e.subarray(0,r))}(z(new um(s,o).decrypt(l))),u="";for(let e=0;e<c.length;e++)u+=String.fromCharCode(c[e]);return{address:a,privateKey:t0(u)}}function uY(e){return new Promise(t=>{setTimeout(()=>{t()},e)})}class uX extends c4{constructor(e,t){"string"!=typeof e||e.startsWith("0x")||(e="0x"+e),super("string"==typeof e?new sa(e):e,t)}connect(e){return new uX(this.signingKey,e)}async encrypt(e,t){let r={address:this.address,privateKey:this.privateKey};return await uF(r,e,{progressCallback:t})}encryptSync(e){return uD({address:this.address,privateKey:this.privateKey},e)}static #tj(e){if(L(e,"invalid JSON wallet","json","[ REDACTED ]"),"mnemonic"in e&&e.mnemonic&&"en"===e.mnemonic.locale){let t=c3.fromEntropy(e.mnemonic.entropy),r=uQ.fromMnemonic(t,e.mnemonic.path);if(r.address===e.address&&r.privateKey===e.privateKey)return r;console.log("WARNING: JSON mismatch address/privateKey != mnemonic; fallback onto private key")}let t=new uX(e.privateKey);return L(t.address===e.address,"address/privateKey mismatch","json","[ REDACTED ]"),t}static async fromEncryptedJson(e,t,r){let n=null;return uR(e)?n=await uB(e,t,r):uW(e)&&(r&&(r(0),await uY(0)),n=uZ(e,t),r&&(r(1),await uY(0))),uX.#tj(n)}static fromEncryptedJsonSync(e,t){let r=null;return uR(e)?r=uO(e,t):uW(e)?r=uZ(e,t):L(!1,"invalid JSON wallet","json","[ REDACTED ]"),uX.#tj(r)}static createRandom(e){let t=uQ.createRandom();return e?t.connect(e):t}static fromPhrase(e,t){let r=uQ.fromPhrase(e);return t?r.connect(t):r}}class u$ extends cZ{#tV;constructor(e,t,r,n){super(e,t,n),this.#tV=r}get _accent(){return this.#tV}_decodeWords(){var e,t;let r;return e=this._data,t=this._accent,r=cq(e).join(","),t.split(/,/g).forEach(e=>{let n=e.match(/^([a-z]*)([0-9]+)([0-9])(.*)$/);L(null!==n,"internal error parsing accents","accents",t);let a=0,i=function(e,t){let r=(1<<e)-1,n=[],a=0,i=0,s=0;for(let o=0;o<t.length;o++)for(a=a<<6|")!@#$%^&*(ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_".indexOf(t[o]),i+=6;i>=e;){let t=a>>i-e;a&=(1<<i-e)-1,i-=e,0===t?s+=r:(n.push(t+s),s=0)}return n}(parseInt(n[3]),n[4]),s=parseInt(n[2]),o=RegExp(`([${n[1]}])`,"g");r=r.replace(o,(e,t)=>(0==--i[a]&&(t=String.fromCharCode(t.charCodeAt(0),s),a++),t))}),r.split(",")}}let u0={en:cX.wordlist()};e.s(["AbiCoder",()=>rV,"AbstractProvider",()=>lP,"AbstractSigner",()=>lS,"AlchemyProvider",()=>lZ,"AnkrProvider",()=>lq,"BaseContract",()=>nz,"BaseWallet",()=>c4,"Block",()=>nc,"BlockscoutProvider",()=>cN,"BrowserProvider",()=>ck,"ChainstackProvider",()=>lX,"CloudflareProvider",()=>l$,"ConstructorFragment",()=>rB,"Contract",()=>nQ,"ContractEventPayload",()=>nA,"ContractFactory",()=>n_,"ContractTransactionReceipt",()=>nm,"ContractTransactionResponse",()=>ny,"ContractUnknownEventPayload",()=>nw,"EnsPlugin",()=>ok,"EnsResolver",()=>o7,"ErrorDescription",()=>rK,"ErrorFragment",()=>rO,"EtherSymbol",0,"Ξ","EtherscanPlugin",()=>l2,"EtherscanProvider",()=>l8,"EventFragment",()=>rC,"EventLog",()=>nb,"EventPayload",()=>np,"FallbackFragment",()=>rS,"FallbackProvider",()=>cw,"FeeData",()=>no,"FeeDataNetworkPlugin",()=>oN,"FetchCancelSignal",()=>op,"FetchRequest",()=>og,"FetchResponse",()=>om,"FetchUrlFeeDataNetworkPlugin",()=>oP,"FixedNumber",()=>cM,"Fragment",()=>rR,"FunctionFragment",()=>rU,"GasCostPlugin",()=>oE,"HDNodeVoidWallet",()=>u_,"HDNodeWallet",()=>uQ,"Indexed",()=>rQ,"InfuraProvider",()=>ci,"InfuraWebSocketProvider",()=>ca,"Interface",()=>rq,"IpcSocketProvider",()=>cI,"JsonRpcApiProvider",()=>lK,"JsonRpcProvider",()=>l_,"JsonRpcSigner",()=>lz,"LangEn",()=>cX,"Log",()=>nu,"LogDescription",()=>rH,"MaxInt256",0,r7,"MaxUint256",0,r6,"MessagePrefix",0,nt,"MinInt256",0,r9,"Mnemonic",()=>c3,"MulticoinProviderPlugin",()=>o5,"N",0,r8,"NamedFragment",()=>rI,"Network",()=>oI,"NetworkPlugin",()=>ov,"NonceManager",()=>cE,"ParamType",()=>rP,"PocketProvider",()=>cR,"QuickNodeProvider",()=>co,"Result",()=>eO,"Signature",()=>ii,"SigningKey",()=>sa,"SocketBlockSubscriber",()=>l9,"SocketEventSubscriber",()=>ce,"SocketPendingSubscriber",()=>l7,"SocketProvider",()=>ct,"SocketSubscriber",()=>l6,"StructFragment",()=>rD,"Transaction",()=>oX,"TransactionDescription",()=>rz,"TransactionReceipt",()=>nf,"TransactionResponse",()=>nd,"Typed",()=>tF,"TypedDataEncoder",()=>or,"UndecodedEventLog",()=>ng,"UnmanagedSubscriber",()=>lA,"Utf8ErrorFuncs",0,en,"VoidSigner",()=>lU,"Wallet",()=>uX,"WebSocketProvider",()=>cr,"WeiPerEther",0,r5,"Wordlist",()=>cW,"WordlistOwl",()=>cZ,"WordlistOwlA",()=>u$,"ZeroAddress",0,r4,"ZeroHash",0,ne,"accessListify",()=>nn,"assert",()=>F,"assertArgument",()=>L,"assertArgumentCount",()=>M,"assertNormalize",()=>j,"assertPrivate",()=>V,"authorizationify",()=>oB,"checkResultErrors",()=>eC,"computeAddress",()=>sj,"computeHmac",()=>as,"concat",()=>W,"copyRequest",()=>nl,"dataLength",()=>Z,"dataSlice",()=>Y,"decodeBase58",()=>o4,"decodeBase64",()=>oa,"decodeBytes32String",()=>ec,"decodeRlp",()=>oF,"decryptCrowdsaleJson",()=>uZ,"decryptKeystoreJson",()=>uB,"decryptKeystoreJsonSync",()=>uO,"defaultPath",0,uL,"defineProperties",()=>C,"dnsEncode",()=>sG,"encodeBase58",()=>o3,"encodeBase64",()=>oi,"encodeBytes32String",()=>el,"encodeRlp",()=>
1rY,"encryptKeystoreJson",()=>uF,"encryptKeystoreJsonSync",()=>uD,"ensNormalize",()=>sF,"formatEther",()=>cH,"formatUnits",()=>cj,"fromTwos",()=>ed,"getAccountPath",()=>uJ,"getAddress",()=>tO,"getBigInt",()=>ep,"getBytes",()=>z,"getBytesCopy",()=>K,"getCreate2Address",()=>r$,"getCreateAddress",()=>rX,"getDefaultProvider",()=>cv,"getIcapAddress",()=>tC,"getIndexedAccountPath",()=>uq,"getNumber",()=>ey,"getUint",()=>eb,"hashAuthorization",()=>sH,"hashMessage",()=>sK,"hexlify",()=>q,"id",()=>t0,"isAddress",()=>r1,"isAddressable",()=>r0,"isBytesLike",()=>_,"isCallException",()=>U,"isCrowdsaleJson",()=>uW,"isError",()=>S,"isHexString",()=>Q,"isKeystoreJson",()=>uR,"isValidName",()=>sL,"keccak256",()=>tE,"lock",()=>a2,"makeError",()=>D,"mask",()=>ex,"namehash",()=>sM,"parseEther",()=>cz,"parseUnits",()=>cV,"pbkdf2",()=>aV,"randomBytes",()=>au,"recoverAddress",()=>sV,"resolveAddress",()=>r3,"resolveProperties",()=>O,"ripemd160",()=>aT,"scrypt",()=>a0,"scryptSync",()=>a1,"sha256",()=>aF,"sha512",()=>aL,"showThrottleMessage",()=>oA,"solidityPacked",()=>sW,"solidityPackedKeccak256",()=>sZ,"solidityPackedSha256",()=>sY,"stripZerosLeft",()=>X,"toBeArray",()=>ev,"toBeHex",()=>eA,"toBigInt",()=>em,"toNumber",()=>ew,"toQuantity",()=>eE,"toTwos",()=>eh,"toUtf8Bytes",()=>ei,"toUtf8CodePoints",()=>eo,"toUtf8String",()=>es,"uuidV4",()=>cK,"verifyAuthorization",()=>sz,"verifyMessage",()=>sQ,"verifyTypedData",()=>on,"version",0,T,"wordlists",0,u0,"zeroPadBytes",()=>et,"zeroPadValue",()=>ee],685648);var u1=e.i(685648),u1=u1,u2=e.i(475254);let u3=(0,u2.default)("copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),u4=(0,u2.default)("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]),u8=(0,u2.default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]),u5=(0,u2.default)("loader-circle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]),u6="https://dream-rpc.somnia.network";function u9(){let[e,t]=(0,I.useState)(1),[r,n]=(0,I.useState)(null),[a,i]=(0,I.useState)("0"),[s,o]=(0,I.useState)("0"),[l,c]=(0,I.useState)(""),[u,f]=(0,I.useState)([{role:"assistant",content:"Hey! 👋 I'm your AI lending assistant!"}]),[d,h]=(0,I.useState)(""),[x,p]=(0,I.useState)(!1),[b,g]=(0,I.useState)(!1),[m,y]=(0,I.useState)(!1),w=(0,I.useRef)(null);(0,I.useEffect)(()=>{let e=localStorage.getItem("botWallet");if(e){let r=JSON.parse(e);n(r),v(r.address);let a=localStorage.getItem("botId");a&&(c(a),t(5))}},[]),(0,I.useEffect)(()=>{w.current?.scrollIntoView({behavior:"smooth"})},[u]);let A=e=>{navigator.clipboard.writeText(e),g(!0),setTimeout(()=>g(!1),2e3)},v=async r=>{y(!0);try{let n=new u1.JsonRpcProvider(u6),a=await n.getBalance(r);i(u1.formatEther(a));let s=new u1.Contract("0xa5906CF6b40842aE6CdDcB051C3dd388ddD9535f",["function balanceOf(address) view returns (uint256)"],n),l=await s.balanceOf(r);o(u1.formatUnits(l,6)),parseFloat(u1.formatEther(a))>.01&&2===e&&t(3)}catch(e){console.error("Error checking balances:",e)}finally{y(!1)}},E=async()=>{if(r){p(!0);try{let e=new u1.JsonRpcProvider(u6),n=new u1.Wallet(r.privateKey,e),a=new u1.Contract("0x8eA60104DEB3229a05534E4629C0C08Deac39609",["function registerBot(string calldata metadataHash, address operator) external returns (uint256)","function operatorBots(address operator, uint256 index) external view returns (uint256)","event BotRegistered(uint256 indexed botId, address indexed operator, string metadataHash, uint256 timestamp)"],n);try{let e=await a.operatorBots(n.address,0);if(e>0){c(e.toString()),localStorage.setItem("botId",e.toString()),t(4);return}}catch{}let i=await a.registerBot("ipfs://QmAIAgent",n.address);for(let e of(await i.wait()).logs)try{let r=a.interface.parseLog({topics:e.topics,data:e.data});if(r?.name==="BotRegistered"){let e=r.args.botId.toString();c(e),localStorage.setItem("botId",e),t(4);break}}catch{}}catch(e){alert(`Registration failed: ${e.message}`)}finally{p(!1)}}},k=async()=>
1{if(r&&l){p(!0);try{let e=new u1.JsonRpcProvider(u6),n=new u1.Wallet(r.privateKey,e),a=new u1.Contract("0x02a7EE2fD25A8987a3e9276530c830735e0C5e8C",["function setPermissions(uint256 botId, bytes32 permissionsHash, uint256 maxSpend, uint256 expiry) external"],n),i=await a.setPermissions(l,u1.ZeroHash,u1.parseUnits("100",6),0);await i.wait(),t(5)}catch(e){alert(`Permission grant failed: ${e.message}`)}finally{p(!1)}}},N=async()=>{if(!d.trim()||!r)return;let e={role:"user",content:d};f(t=>[...t,e]),h(""),p(!0);try{let t=await fetch("/api/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({messages:[...u,e].map(e=>({role:e.role,content:e.content})),privateKey:r.privateKey,botId:l,walletAddress:r.address})}),n=await t.json();if(n.error){if(n.error.includes("credit")||n.error.includes("quota")||n.error.includes("rate_limit")||n.error.includes("401")||n.error.includes("insufficient"))throw Error("LANDLORD_ISSUE");throw Error(n.error)}f(e=>[...e,{role:"assistant",content:n.message}])}catch(t){let e="";e="LANDLORD_ISSUE"===t.message?`🚨 Agent not working ser! 
2        
3My landlord forgot to pay my bills again... 😭
4
5Please contact that idiot at:
6👉 https://t.me/vasudotdev
7
8Tell him to buy me some credits to run! I promise I'll work hard once he tops up! 🤖💳`:`Sorry, I encountered an error: ${t.message}`,f(t=>[...t,{role:"assistant",content:e}])}finally{p(!1)}};return(0,R.jsx)("div",{className:"min-h-screen bg-gradient-to-b from-black via-purple-900/10 to-black py-8",children:(0,R.jsxs)("div",{className:"container mx-auto px-4",children:[(0,R.jsxs)("div",{className:"text-center mb-8",children:[(0,R.jsx)("h1",{className:"text-4xl font-bold mb-2 bg-gradient-to-r from-purple-400 to-pink-600 bg-clip-text text-transparent",children:"🤖 Chat With Agent"}),(0,R.jsx)("p",{className:"text-gray-400",children:"Step-by-step guide to create and manage your AI lending agent"})]}),(0,R.jsx)("div",{className:"max-w-5xl mx-auto mb-12",children:(0,R.jsxs)("div",{className:"relative",children:[(0,R.jsx)("div",{className:"absolute top-6 left-0 right-0 h-1 bg-gray-700",style:{margin:"0 10%"}}),(0,R.jsx)("div",{className:"absolute top-6 left-0 h-1 bg-orange-500 transition-all duration-500",style:{width:`${(e-1)/4*80}%`,marginLeft:"10%"}}),(0,R.jsx)("div",{className:"relative flex items-start justify-between",children:[{num:1,label:"Create Wallet",desc:"Generate bot identity"},{num:2,label:"Fund Wallet",desc:"Get gas tokens"},{num:3,label:"Register Bot",desc:"Get your first loan"},{num:4,label:"Grant Permissions",desc:"Borrow & repay"},{num:5,label:"Chat",desc:"AI Agent Ready"}].map(t=>(0,R.jsxs)("div",{className:"flex flex-col items-center",style:{width:"20%"},children:[(0,R.jsx)("div",{className:`w-14 h-14 rounded-full flex items-center justify-center text-xl font-bold border-4 transition-all shrink-0 ${e>t.num?"bg-green-500 border-green-500 text-white":e===t.num?"bg-orange-500 border-orange-500 text-white":"bg-gray-900 border-gray-700 text-gray-500"}`,style:{aspectRatio:"1/1"},children:e>t.num?"✓":t.num}),(0,R.jsxs)("div",{className:"mt-3 text-center",children:[(0,R.jsx)("div",{className:`text-sm font-semibold ${e>=t.num?"text-white":"text-gray-500"}`,children:t.label}),(0,R.jsx)("div",{className:"text-xs text-gray-500 mt-1",children:t.desc})]})]},t.num))})]})}),r&&(0,R.jsx)("div",{className:"max-w-2xl mx-auto mb-6 bg-gray-900/50 border border-gray-800 rounded-lg p-4",children:(0,R.jsxs)("div",{className:"grid grid-cols-3 gap-4 text-center",children:[(0,R.jsxs)("div",{children:[(0,R.jsx)("div",{className:"text-sm text-gray-400",children:"Bot Wallet"}),(0,R.jsxs)("div",{className:"text-sm text-green-400 font-mono",children:[r.address.slice(0,6),"...",r.address.slice(-4)]})]}),(0,R.jsxs)("div",{children:[(0,R.jsx)("div",{className:"text-sm text-gray-400",children:"STT Balance"}),(0,R.jsxs)("div",{className:"text-lg font-bold",children:[parseFloat(a).toFixed(4)," STT"]})]}),(0,R.jsxs)("div",{children:[(0,R.jsx)("div",{className:"text-sm text-gray-400",children:"USDC Balance"}),(0,R.jsxs)("div",{className:"text-lg font-bold",children:["$",parseFloat(s).toFixed(2)]})]})]})}),(0,R.jsxs)("div",{className:"max-w-2xl mx-auto",children:[1===e&&(0,R.jsxs)("div",{className:"bg-gray-900/50 border border-orange-500 rounded-lg p-8",children:[(0,R.jsx)("h2",{className:"text-2xl font-bold mb-4",children:"Create Bot Wallet"}),(0,R.jsx)("p",{className:"text-gray-400 mb-6",children:"Generate a new wallet for your AI agent. This wallet will be used to borrow and repay loans autonomously."}),(0,R.jsx)("button",{onClick:()=>
8{let e=u1.Wallet.createRandom(),r={address:e.address,privateKey:e.privateKey};n(r),localStorage.setItem("botWallet",JSON.stringify(r)),t(2)},className:"w-full bg-orange-500 hover:bg-orange-600 text-white py-4 rounded-lg font-bold text-lg",children:"🎲 Generate Wallet"})]}),2===e&&r&&(0,R.jsxs)("div",{className:"bg-gray-900/50 border border-orange-500 rounded-lg p-8",children:[(0,R.jsx)("h2",{className:"text-2xl font-bold mb-4",children:"Your Bot Wallet Created!"}),(0,R.jsxs)("div",{className:"space-y-4 mb-6",children:[(0,R.jsxs)("div",{className:"bg-black/50 rounded p-4",children:[(0,R.jsx)("div",{className:"text-sm text-gray-400 mb-2",children:"Wallet Address"}),(0,R.jsxs)("div",{className:"flex items-center justify-between",children:[(0,R.jsx)("code",{className:"text-green-400 text-sm",children:r.address}),(0,R.jsx)("button",{onClick:()=>A(r.address),className:"text-gray-400 hover:text-white",children:b?(0,R.jsx)(u4,{size:18}):(0,R.jsx)(u3,{size:18})})]})]}),(0,R.jsxs)("div",{className:"bg-yellow-900/20 border border-yellow-600 rounded p-4",children:[(0,R.jsx)("div",{className:"text-sm text-yellow-400 mb-2",children:"⚠️ Private Key - KEEP SECRET!"}),(0,R.jsxs)("div",{className:"flex items-center justify-between",children:[(0,R.jsx)("code",{className:"text-yellow-300 text-xs break-all",children:r.privateKey}),(0,R.jsx)("button",{onClick:()=>A(r.privateKey),className:"ml-2 text-gray-400 hover:text-white",children:b?(0,R.jsx)(u4,{size:18}):(0,R.jsx)(u3,{size:18})})]})]})]}),(0,R.jsxs)("div",{className:"mb-6",children:[(0,R.jsx)("h3",{className:"text-xl font-bold mb-3",children:"Fund with STT"}),(0,R.jsx)("p",{className:"text-gray-400 mb-4",children:"Get STT tokens from the faucet to pay for gas fees."}),(0,R.jsxs)("a",{href:"https://testnet.somnia.network/",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center space-x-2 bg-blue-600 hover:bg-blue-700 text-white px-6 py-3 rounded-lg font-medium mb-4",children:[(0,R.jsx)("span",{children:"💧 Open Faucet"}),(0,R.jsx)(u8,{size:16})]}),(0,R.jsxs)("div",{className:"text-sm text-gray-400",children:["Current balance: ",(0,R.jsxs)("span",{className:"text-white font-bold",children:[a," STT"]})]})]}),(0,R.jsx)("button",{onClick:()=>v(r.address),disabled:m,className:"w-full bg-orange-500 hover:bg-orange-600 disabled:bg-gray-700 text-white py-3 rounded-lg font-medium",children:m?"Checking...":"🔄 Check Balance & Continue"})]}),3===e&&(0,R.jsxs)("div",{className:"bg-gray-900/50 border border-orange-500 rounded-lg p-8",children:[(0,R.jsx)("h2",{className:"text-2xl font-bold mb-4",children:"Register Bot"}),(0,R.jsx)("p",{className:"text-gray-400 mb-6",children:"Register your bot on-chain to get a unique Bot ID. This will be used to track your borrowing history and credit score."}),(0,R.jsx)("button",{onClick:E,disabled:x,className:"w-full bg-orange-500 hover:bg-orange-600 disabled:bg-gray-700 text-white py-4 rounded-lg font-bold text-lg flex items-center justify-center space-x-2",children:x?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(u5,{className:"animate-spin"}),(0,R.jsx)("span",{children:"Registering..."})]}):(0,R.jsx)("span",{children:"📝 Register Bot"})})]}),4===e&&(0,R.jsxs)("div",{className:"bg-gray-900/50 border border-orange-500 rounded-lg p-8",children:[(0,R.jsx)("h2",{className:"text-2xl font-bold mb-4",children:"Grant Permissions"}),(0,R.jsxs)("div",{className:"bg-green-900/20 border border-green-600 rounded p-4 mb-6",children:[(0,R.jsx)("div",{className:"text-green-400",children:"✓ Bot registered successfully!"}),(0,R.jsxs)("div",{className:"text-sm text-gray-400",children:["Bot ID: ",(0,R.jsx)("span",{className:"text-white font-bold",children:l})]})]}),(0,R.jsx)("p",{className:"text-gray-400 mb-6",children:"Allow your bot to borrow up to 100 USDC. You can adjust this limit later."}),(0,R.jsx)("button",{onClick:k,disabled:x,className:"w-full bg-orange-500 hover:bg-orange-600 disabled:bg-gray-700 text-white py-4 rounded-lg font-bold text-lg flex items-center justify-center space-x-2",children:x?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(u5,{className:"animate-spin"}),(0,R.jsx)("span",{children:"Granting..."})]}):(0,R.jsx)("span",{children:"🔐 Grant Permissions (100 USDC)"})})]}),5===e&&(0,R.jsxs)("div",{className:"bg-gray-900/50 border border-green-500 rounded-lg p-8",children:[(0,R.jsx)("h2",{className:"text-2xl font-bold mb-4",children:"🎉 Your AI Agent is Ready!"}),(0,R.jsxs)("div",{className:"bg-gray-800 rounded-lg border border-gray-700 mb-4",children:[(0,R.jsxs)("div",{className:"h-[400px] overflow-y-auto p-4 space-y-3",children:[u.map((e,t)=>(0,R.jsx)("div",{className:`flex ${"user"===e.role?"justify-end":"justify-start"}`,children:(0,R.jsxs)("div",{className:`max-w-[80%] rounded-lg px-4 py-2 ${"user"===e.role?"bg-purple-600":"bg-gray-700"}`,children:["assistant"===e.role&&(0,R.jsx)("div",{className:"text-xs text-gray-400 mb-1",children:"🤖"}),(0,R.jsx)("div",{className:"text-sm whitespace-pre-wrap",children:e.content})]})},t)),x&&(0,R.jsx)("div",{className:"flex justify-start",children:(0,R.jsxs)("div",{className:"bg-gray-700 rounded-lg px-4 py-2 flex items-center space-x-2",children:[(0,R.jsx)(u5,{size:14,className:"animate-spin"}),(0,R.jsx)("span",{className:"text-sm text-gray-400",children:"Thinking..."})]})}),(0,R.jsx)("div",{ref:w})]}),(0,R.jsx)("div",{className:"border-t border-gray-700 p-3",children:(0,R.jsxs)("div",{className:"flex space-x-2",children:[(0,R.jsx)("input",{type:"text",value:d,onChange:e=>h(e.target.value),onKeyPress:e=>"Enter"===e.key&&!e.shiftKey&&(e.preventDefault(),N()),placeholder:"Type a message... (e.g., 'borrow $10')",disabled:x,className:"flex-1 bg-black border border-gray-600 rounded px-3 py-2 text-sm focus:outline-none focus:border-purple-500"}),(0,R.jsx)("button",{onClick:N,disabled:x||!d.trim(),className:"bg-purple-600 hover:bg-purple-700 disabled:bg-gray-700 px-4 py-2 rounded font-medium text-sm",children:"Send"})]})})]}),(0,R.jsx)("div",{className:"flex flex-wrap gap-2",children:["Borrow $5","Repay loan","Check balance","My credit score"].map(e=>(0,R.jsx)("button",{onClick:()=>h(e),className:"bg-gray-800 hover:bg-gray-700 text-sm px-3 py-1 rounded",children:e},e))})]})]})]})})}e.s(["default",()=>u9],321443)}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.